BR122021025020A2 - Codificador, decodificador e mídia legível por computador não transitória - Google Patents

Codificador, decodificador e mídia legível por computador não transitória Download PDF

Info

Publication number
BR122021025020A2
BR122021025020A2 BR122021025020-0A BR122021025020A BR122021025020A2 BR 122021025020 A2 BR122021025020 A2 BR 122021025020A2 BR 122021025020 A BR122021025020 A BR 122021025020A BR 122021025020 A2 BR122021025020 A2 BR 122021025020A2
Authority
BR
Brazil
Prior art keywords
block
picture
image
figures
decoding
Prior art date
Application number
BR122021025020-0A
Other languages
English (en)
Inventor
Virginie Drugeon
Kiyofumi Abe
Takahiro Nishi
Tadamasa Toma
Yusuke Kato
Original Assignee
Panasonic Intellectual Property Corporation Of America
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 Panasonic Intellectual Property Corporation Of America filed Critical Panasonic Intellectual Property Corporation Of America
Publication of BR122021025020A2 publication Critical patent/BR122021025020A2/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding 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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/16Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter for a given display mode, e.g. for interlaced or progressive display mode
    • 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
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

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

Abstract

A presente invenção refere-se a um conjunto de circuitos (160) de um codificador (100) que é configurado para codificar uma imagem de acordo com uma estrutura de codificação, incluindo uma figura de ponto de acesso aleatório intra (IRAP), figura dianteiras a serem emitidas antes da figura de IRAP na ordem de emissão e figuras traseiras a serem emitidas após a figura de IRAP na ordem de emissão. Quando a imagem é codificada, o conjunto de circuitos (160) codifica, de acordo com uma sinalização em um fluxo de bits, no máximo uma figura traseira entre as figuras traseiras antes de codificar as figuras dianteiras na ordem de codificação, e codifica as figuras traseiras diferentes de, no máximo, uma figura traseira após codificação das figuras dianteiras na ordem de codificação. A sinalização indica se uma imagem de cada uma das unidades de acesso no fluxo de bits é uma figura de campo. O conjunto de circuitos (160) codifica no máximo uma figura traseira antes de codificar as figuras dianteiras na ordem de codificação quando a sinalização indica que a figura é uma figura de campo.

Description

CODIFICADOR, DECODIFICADOR E MÍDIA LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIA
[0001] Dividido do BR112021020634-5 depositado em 20 de maio de 2020.
CAMPO DA TÉCNICA
[0002] A presente invenção refere-se à codificação de vídeo e, particularmente, a sistemas, componentes e métodos de codificação e decodificação de vídeo.
ANTECEDENTES DA TÉCNICA
[0003] Com o avanço na tecnologia de codificação de vídeo, de H.261 e MPEG-1 para H.264/AVC (Codificação de Vídeo Avançada), MPEG-LA, H.265/HEVC (Codificação de Vídeo de Alta Eficiência) e H.266/VVC (Codec de Vídeo Versátil), permanece uma necessidade constante de fornecer melhorias e otimizações à tecnologia de codificação de vídeo para processar uma quantidade cada vez maior de dados de vídeo digital em várias aplicações.
[0004] Literatura de Não Patente (NPL) 1 refere-se a um exemplo de um Padrão convencional em relação à tecnologia de codificação de vídeo descrita acima.
LISTA DE REFERÊNCIAS LITERATURA DE NÃO PATENTE
[0005] NPL 1: H.265 (ISO/IEC 23008-2/HEVC (codificação de vídeo de alta eficiência))
SUMÁRIO DA INVENÇÃO PROBLEMA DA TÉCNICA
[0006] Para tal método de codificação e um método de decodificação, um novo esquema é desejado a ser proposto a fim de melhorar uma eficiência de codificação, melhorar uma qualidade de imagem, reduzir a quantidade de processamento, reduzir a escala do conjunto de circuitos ou selecionar apropriadamente um elemento constituinte/operação para um filtro, um bloco, um tamanho, um vetor de movimento, uma figura de referência, um bloco de referência, etc.
[0007] A presente invenção fornece as configurações ou métodos que podem contribuir para, por exemplo, pelo menos um dentre: uma melhoria em uma eficiência de codificação; uma melhoria na qualidade da imagem; uma redução da quantidade de processamento; uma redução da escala do conjunto de circuitos; melhora na velocidade de processamento; seleção apropriada de um elemento/operação constituinte. Deve-se observar que a presente invenção pode incluir configurações ou métodos que contribuem para benefícios diferentes dos benefícios mencionados acima.
SOLUÇÕES PARA O PROBLEMA
[0008] De acordo com um aspecto da presente invenção, um codificador codifica uma imagem. O codificador inclui memória e conjunto de circuitos acoplados à memória. O conjunto de circuitos é configurado para codificar a imagem de acordo com uma estrutura de codificação, incluindo uma figura de ponto de acesso aleatório intra (IRAP), figura dianteiras a serem emitidas antes da figura de IRAP na ordem de emissão e figuras traseiras a serem emitidas após a figura de IRAP na ordem de emissão. Quando a imagem é codificada, o conjunto de circuitos codifica, de acordo com uma sinalização em um fluxo de bits, no máximo uma figura traseira entre as figuras traseiras antes de codificar as figuras dianteiras na ordem de codificação, e codifica as figuras traseiras diferentes de, no máximo, uma figura traseira após codificação das figuras dianteiras na ordem de codificação. A sinalização indica se uma imagem de cada uma das unidades de acesso no fluxo de bits é uma figura de campo. O conjunto de circuitos codifica, no máximo, uma figura traseira antes de codificar as figuras dianteiras na ordem de codificação quando a sinalização indica que a figura de cada uma das unidades de acesso no fluxo de bits é uma figura de campo.
[0009] De acordo com um aspecto da presente invenção, um decodificador decodifica uma imagem. O decodificador inclui memória e conjunto de circuitos acoplados à memória. O conjunto de circuitos é configurado para decodificar a imagem de acordo com uma estrutura de codificação, incluindo uma figura de ponto de acesso aleatório intra (IRAP), figuras dianteiras a serem emitidas antes da figura de IRAP na ordem de emissão e figuras traseiras a serem emitidas após a figura de IRAP na ordem de emissão. Quando a imagem é decodificada, o conjunto de circuitos decodifica, de acordo com uma sinalização em um fluxo de bits, no máximo uma figura traseira entre as figuras traseiras antes de decodificar as figuras dianteiras na ordem de decodificação, e decodifica as figuras traseiras diferentes de, no máximo, uma figura traseira após decodificar as figuras dianteiras na ordem de decodificação. A sinalização indica se uma imagem de cada uma das unidades de acesso no fluxo de bits é uma figura de campo. O conjunto de circuitos decodifica, no máximo, uma figura traseira antes de decodificar as figuras dianteiras na ordem de decodificação quando a sinalização indica que a figura de cada uma das unidades de acesso no fluxo de bits é uma figura de campo.
[0010] Algumas implementações de modalidades da presente invenção podem melhorar uma eficiência de codificação, podem ser simplesmente um processo de codificação/decodificação, pode acelerar uma velocidade de processo de codificação/decodificação, podem selecionar de forma eficiente os componentes/operações apropriados usados na codificação e decodificação, como filtro apropriado, tamanho de bloco, vetor de movimento, figura de referência, bloco de referência, etc.
[0011] Benefícios e vantagens adicionais das modalidades reveladas se tornarão evidentes a partir do relatório descritivo e dos desenhos. Os benefícios e/ou vantagens podem ser obtidos individualmente por meio das várias modalidades e características do relatório descritivo e desenhos, nem todos os quais precisam ser fornecidos a fim de obter um ou mais dentre tais benefícios e/ou vantagens.
[0012] Deve-se observar que modalidades gerais ou específicas podem ser implementadas como um sistema, um método, um circuito integrado, um programa de computador, uma mídia de armazenamento ou qualquer combinação seletiva dos mesmos.
EFEITO VANTAJOSO DA INVENÇÃO
[0013] A configuração ou método de acordo com um aspecto da presente invenção é contribuível para, por exemplo, pelo menos um dentre: uma melhoria em uma eficiência de codificação; uma melhoria na qualidade da imagem; uma redução da quantidade de processamento; uma redução da escala do conjunto de circuitos; melhora na velocidade de processamento; seleção apropriada de um elemento/operação constituinte. Deve-se observar que a configuração ou método de acordo com um aspecto da presente invenção pode contribuir para outros benefícios além dos benefícios mencionados acima.
BREVE DESCRIÇÃO DE DESENHOS
[0014] A Figura 1 é um diagrama de blocos que ilustra uma configuração funcional de um codificador de acordo com uma modalidade.
A Figura 2 é um fluxograma que ilustra um exemplo de um processo geral de codificação realizado pelo codificador.
A Figura 3 é um diagrama conceitual que ilustra um exemplo de divisão de bloco.
[0015] A Figura 4A é um diagrama conceitual que ilustra um exemplo de uma configuração de fatia.
A Figura 4B é um diagrama conceitual que ilustra um exemplo de uma configuração de ladrilho.
A Figura 5A é um gráfico que indica funções de base de transformada para vários tipos de transformada.
A Figura 5B é um diagrama conceitual que ilustra exemplos de transformadas de variação espacial (SVT).
A Figura 6A é um diagrama conceitual que ilustra um exemplo de um formato de filtro usado em um filtro em loop adaptativo (ALF).
Figura 6B é um diagrama conceitual que ilustra outro exemplo de um formato de filtro usado em um ALF.
Figura 6C é um diagrama conceitual que ilustra outro exemplo de um formato de filtro usado em um ALF.
[0016] A Figura 7 é um diagrama de blocos que indica um exemplo de uma configuração específica de um filtro em loop que funciona como um filtro de desblocagem (DBF).
A Figura 8 é um diagrama conceitual que indica um exemplo de um filtro de desblocagem com uma característica de filtragem simétrica em relação a um limite de bloco.
A Figura 9 é um diagrama conceitual para ilustrar um limite de bloco no qual um processo de filtro de desblocagem é realizado.
A Figura 10 é um diagrama conceitual que indica exemplos de valores de Bs.
A Figura 11 é um fluxograma que ilustra um exemplo de um processo realizado por meio de um processador de previsão do codificador.
A Figura 12 é um fluxograma que ilustra outro exemplo de um processo realizado pelo processador de previsão do codificador.
A Figura 13 é um fluxograma que ilustra outro exemplo de um processo realizado por meio do processador de previsão do codificador.
A Figura 14 é um diagrama conceitual que ilustra sessenta e sete modos de intraprevisão usados em intraprevisão em uma modalidade.
A Figura 15 é um fluxograma que ilustra um exemplo de fluxo de processamento básico de interprevisão.
A Figura 16 é um fluxograma que ilustra um exemplo de derivação de vetores de movimento.
A Figura 17 é um fluxograma que ilustra outro exemplo de derivação de vetores de movimento.
A Figura 18 é um fluxograma que ilustra outro exemplo de derivação de vetores de movimento.
A Figura 19 é um fluxograma que ilustra um exemplo de interprevisão no modo inter normal.
A Figura 20 é um fluxograma que ilustra um exemplo de interprevisão no modo de mesclagem.
A Figura 21 é um diagrama conceitual para ilustrar um exemplo de um processo de derivação de vetor de movimento no modo de mesclagem.
A Figura 22 é um fluxograma que ilustra um exemplo de processo de conversão de taxa de quadros (FRUC).
A Figura 23 é um diagrama conceitual para ilustrar um exemplo de correspondência de padrão (correspondência bilateral) entre dois blocos ao longo de uma trajetória de movimento.
[0017] A Figura 24 é um diagrama conceitual para ilustrar um exemplo de correspondência de padrão (correspondência de modelo) entre um modelo em uma figura atual e um bloco em uma figura de referência.
A Figura 25A é um diagrama conceitual para ilustrar um exemplo de derivação de um vetor de movimento de cada sub-bloco com base em vetores de movimento de uma pluralidade de blocos vizinhos.
A Figura 25B é um diagrama conceitual para ilustrar um exemplo de derivação de um vetor de movimento de cada sub-bloco no modo afim no qual três pontos de controle são usados.
A Figura 26A é um diagrama conceitual para ilustrar um modo de mesclagem afim.
A Figura 26B é um diagrama conceitual para ilustrar um modo de mesclagem afim no qual dois pontos de controle são usados.
A Figura 26C é um diagrama conceitual para ilustrar um modo de mesclagem afim no qual três pontos de controle são usados.
A Figura 27 é um fluxograma que ilustra um exemplo de um processo no modo de mesclagem afim.
A Figura 28A é um diagrama conceitual para ilustrar um modo inter afim no qual dois pontos de controle são usados.
A Figura 28B é um diagrama conceitual para ilustrar um modo inter afim no qual três pontos de controle são usados.
A Figura 29 é um fluxograma que ilustra um exemplo de um processo em modo inter afim.
A Figura 30A é um diagrama conceitual para ilustrar um modo inter afim no qual um bloco atual tem três pontos de controle e um bloco vizinho tem dois pontos de controle.
A Figura 30B é um diagrama conceitual para ilustrar um modo inter afim no qual um bloco atual tem dois pontos de controle e um bloco vizinho tem três pontos de controle.
A Figura 31A é um fluxograma que ilustra um processo de modo de mesclagem incluindo refinamento de vetor de movimento de decodificador (DMVR).
A Figura 31B é um diagrama conceitual para ilustrar um exemplo de um processo DMVR.
A Figura 32 é um fluxograma que ilustra um exemplo de geração de uma imagem de previsão.
A Figura 33 é um fluxograma que ilustra outro exemplo de geração de uma imagem de previsão.
A Figura 34 é um fluxograma que ilustra outro exemplo de geração de uma imagem de previsão.
A Figura 35 é um fluxograma que ilustra um exemplo de um processo de correção de imagem de previsão realizado por um processo de compensação de movimento de bloco sobreposto (OBMC).
A Figura 36 é um diagrama conceitual para ilustrar um exemplo de um processo de correção de imagem de previsão realizado por um processo de OBMC.
A Figura 37 é um diagrama conceitual para ilustrar a geração de duas imagens de previsão triangulares.
A Figura 38 é um diagrama conceitual para ilustrar um modelo que presume movimento linear uniforme.
A Figura 39 é um diagrama conceitual para ilustrar um exemplo de um método de geração de imagem de previsão usando um processo de correção de luminância realizado por um meio de um processo de compensação de iluminação local (LIC).
A Figura 40 é um diagrama de blocos que ilustra um exemplo de montagem do codificador.
[0018] A Figura 41 é um diagrama de blocos que ilustra uma configuração funcional de um decodificador de acordo com uma modalidade.
A Figura 42 é um fluxograma que ilustra um exemplo de um processo geral de decodificação realizado pelo decodificador.
A Figura 43 é um fluxograma que ilustra um exemplo de um processo realizado por um processador de previsão do decodificador.
A Figura 44 é um fluxograma que ilustra outro exemplo de um processo realizado pelo processador de previsão do decodificador.
A Figura 45 é um fluxograma que ilustra um exemplo de interprevisão no modo inter normal no decodificador.
A Figura 46 é um diagrama de blocos que ilustra um exemplo de montagem do decodificador.
A Figura 47 é um diagrama que ilustra um exemplo de uma estrutura de codificação de conteúdo codificado entrelaçado.
[0019] A Figura 48 é um fluxograma que ilustra um exemplo de um método de decodificação realizado por um decodificador no caso de iniciar a decodificação de uma figura de IRAP, de acordo com o Aspecto 1 de uma modalidade.
A Figura 49 é um fluxograma que ilustra um exemplo de um método de decodificação realizado por um decodificador no caso de iniciar a decodificação de uma figura de IRAP, de acordo com o Aspecto 2 de uma modalidade.
A Figura 50 é um diagrama que ilustra outro exemplo de uma estrutura de codificação de conteúdo codificado entrelaçado.
A Figura 51 é um diagrama de blocos que ilustra um exemplo de implementação de um codificador de acordo com uma modalidade.
A Figura 52 é um fluxograma que ilustra um exemplo de uma operação realizada pelo codificador ilustrado na Figura 51
A Figura 53 é um diagrama de blocos que ilustra um exemplo de implementação de um decodificador de acordo com uma modalidade.
A Figura 54 é um fluxograma que ilustra um exemplo de uma operação realizada pelo decodificador ilustrado na Figura 53
[0020] A Figura 55 é um diagrama de blocos que ilustra uma configuração geral de um sistema de fornecimento de conteúdo para implementar um serviço de distribuição de conteúdo.
A Figura 56 é um diagrama conceitual que ilustra um exemplo de uma estrutura de codificação em codificação escalável.
A Figura 57 é um diagrama conceitual que ilustra um exemplo de uma estrutura de codificação em codificação escalável.
A Figura 58 é um diagrama conceitual que ilustra um exemplo de uma tela de exibição de uma página da web.
A Figura 59 é um diagrama conceitual que ilustra um exemplo de uma tela de exibição de uma página da web.
A Figura 60 é um diagrama de blocos que ilustra um exemplo de um telefone inteligente.
[0021] A Figura 61 é um diagrama de blocos que ilustra um exemplo de uma configuração de um telefone inteligente.
DESCRIÇÃO DE MODALIDADE EXEMPLIFICATIVA (OU MODALIDADES EXEMPLIFICATIVAS)
[0022] Por exemplo, um codificador de acordo com um aspecto da presente invenção é um codificador que codifica uma imagem e inclui conjunto de circuitos e memória acoplados aos conjuntos de circuitos. Em operação, o conjunto de circuitos: codifica a imagem de acordo com uma estrutura de codificação, incluindo uma figura de ponto de acesso aleatório intra (IRAP), figuras dianteiras a serem emitidas antes da figura de IRAP na ordem de emissão e figuras traseiras a serem emitidas após a figura de IRAP na ordem de emissão. Quando a imagem é codificada, o conjunto de circuitos codifica no máximo uma figura traseira entre as figuras traseiras, antes das figuras dianteiras na ordem de codificação, e codifica as figuras traseiras diferentes de no máximo uma figura traseira, após as figuras dianteiras na ordem de codificação.
[0023] Desta maneira, ao codificar uma figura acessível aleatoriamente, o codificador pode ser capaz de realizar a codificação usando uma estrutura de codificação com melhor eficiência de codificação. Em adição, o codificador, ao codificar usando uma estrutura de codificação com melhor eficiência de codificação, pode reduzir a carga de processamento para procurar uma figura acessível aleatoriamente durante a decodificação e, portanto, pode ser possível melhorar a eficiência de processamento.
[0024] Aqui, por exemplo, quando a imagem é codificada, quando uma sinalização que indica se o conteúdo está codificado de modo entrelaçado com um campo por unidade de acesso indica 0, o conjunto de circuitos pode codificar todas as figuras traseiras, após as figuras dianteiras na ordem de codificação.
[0025] Adicionalmente, por exemplo, quando a imagem é codificada, quando uma sinalização que indica se o conteúdo está codificado de modo entrelaçado com um campo por unidade de acesso indica 1, o conjunto de circuitos pode codificar no máximo uma figura traseira entre as figuras traseiras, antes das figuras dianteiras na ordem de codificação e codificar as figuras traseiras diferentes de, no máximo, uma figura traseira, após as figuras dianteiras na ordem de codificação.
[0026] Um decodificador de acordo com um aspecto da presente invenção é um decodificador que decodifica uma imagem e inclui conjunto de circuitos e memória acoplados aos conjuntos de circuitos. Em operação, o conjunto de circuitos decodifica a imagem de acordo com uma estrutura de codificação incluindo uma figura de IRAP, figuras dianteiras a serem emitidas antes da figura de IRAP na ordem de emissão e figuras traseiras a serem emitidas após a figura de IRAP na ordem de emissão. Quando a imagem é decodificada, o conjunto de circuitos decodifica no máximo uma figura traseira entre as figuras traseiras, antes das figuras dianteiras na ordem de decodificação, e decodifica as figuras traseiras diferentes de no máximo uma figura traseira, após as figuras dianteiras na ordem de decodificação.
[0027] Desta forma, ao decodificar uma figura acessível aleatoriamente, o decodificador pode ser capaz de realizar a decodificação usando uma estrutura de codificação com melhor eficiência de codificação. Em adição, o decodificador, ao decodificar usando uma estrutura de codificação com melhor eficiência de codificação, pode reduzir a carga de processamento para procurar uma figura acessível aleatoriamente durante a decodificação e, portanto, pode ser possível melhorar a eficiência de processamento.
[0028] Aqui, por exemplo, quando a imagem é decodificada, quando uma sinalização que indica se o conteúdo está codificado de modo entrelaçado com um campo por unidade de acesso indica 0, o conjunto de circuitos pode decodificar todas as figuras traseiras, após as figuras dianteiras na ordem de decodificação.
[0029] Adicionalmente, quando a imagem é decodificada, quando uma sinalização que indica se o conteúdo está codificado de modo entrelaçado com um campo por unidade de acesso indica 1, o conjunto de circuitos pode decodificar no máximo uma figura traseira entre as figuras traseiras, antes das figuras dianteiras na ordem de decodificação, e decodificar as figuras traseiras que diferentes da, no máximo, uma figura traseira, após as figuras dianteiras na ordem de decodificação.
[0030] Adicionalmente, um método de codificação de acordo com um aspecto da presente invenção é um método de codificação para codificar uma imagem e inclui codificar a imagem de acordo com uma estrutura de codificação incluindo uma figura de IRAP, figuras dianteiras a serem emitidas antes da figura de IRAP na ordem de emissão, e as figuras traseiras a serem produzidas após a figura de IRAP na ordem de emissão. A codificação da imagem inclui a codificação de no máximo uma figura traseira entre as figuras traseiras, antes das figuras dianteiras na ordem de codificação, e a codificação das figuras traseiras diferentes de no máximo uma figura traseira, após as figuras dianteiras na ordem de codificação.
[0031] Desta forma, no método de codificação, ao codificar uma figura acessível aleatoriamente, pode ser possível realizar a codificação usando uma estrutura de codificação com melhor eficiência de codificação. Em adição, no método de codificação, ao codificar usando uma estrutura de codificação com melhor eficiência de codificação, é possível reduzir a carga de processamento para procurar uma figura acessível aleatoriamente durante a decodificação e, assim, pode ser possível melhorar a eficiência de processamento.
[0032] Adicionalmente, um método de decodificação de acordo com um aspecto da presente invenção é um método de decodificação para decodificar uma imagem e inclui decodificar a imagem de acordo com uma estrutura de codificação incluindo uma figura de IRAP, figuras dianteiras a serem emitidas antes da figura de IRAP na ordem de emissão, e as figuras traseiras a serem emitidas após a figura de IRAP na ordem de emissão. A decodificação da imagem inclui a decodificação de no máximo uma figura traseira entre as figuras traseiras, antes das figuras dianteiras na ordem de decodificação, e decodificação das figuras traseiras diferentes de no máximo uma figura traseira, após as figuras dianteiras na ordem de decodificação.
[0033] Desta forma, no método de decodificação, ao decodificar uma figura acessível aleatoriamente, pode ser possível realizar a decodificação usando uma estrutura de codificação com melhor eficiência de codificação. Em adição, no método de decodificação, ao decodificar usando uma estrutura de codificação com melhor eficiência de codificação, é possível reduzir a carga de processamento para a busca de uma figura acessível aleatoriamente durante a decodificação e, assim, pode ser possível melhorar a eficiência de processamento.
[0034] Adicionalmente, esses aspectos gerais e específicos podem ser implementados usando um sistema, um dispositivo, um método, um circuito integrado, um programa de computador, uma mídia de gravação não transiente, como um CD-ROM legível por computador ou qualquer combinação de sistemas, dispositivos, métodos, circuitos integrados, programas de computador ou mídia de gravação.
[0035] Doravante no presente documento, as modalidades serão descritas com referência aos desenhos. Observe que as modalidades descritas abaixo mostram, cada uma, um exemplo geral ou específico. Os valores numéricos, formas, materiais, componentes, a disposição e conexão dos componentes, etapas, a relação e ordem das etapas, etc., indicados nas seguintes modalidades são meros exemplos e não se destinam a limitar o escopo das concretizações.
[0036] As modalidades de um codificador e um decodificador serão descritas abaixo. As modalidades são exemplos de um codificador e um decodificador aos quais os processos e/ou configurações apresentadas na descrição de aspectos da presente invenção são aplicáveis. Os processos e/ou configurações também podem ser implementados em um codificador e um decodificador diferente daqueles de acordo com as modalidades. Por exemplo, em relação aos processos e/ou configurações aplicadas às modalidades, qualquer um dos seguintes pode ser implementado:
[0037] (1) Qualquer um dos componentes do codificador ou do decodificador de acordo com as modalidades apresentadas na descrição dos aspectos da presente invenção pode ser substituído ou combinado com outro componente apresentado em qualquer lugar na descrição dos aspectos da presente invenção.
[0038] (2) No codificador ou no decodificador de acordo com as modalidades, alterações discricionárias podem ser feitas em funções ou processos realizados por um ou mais componentes do codificador ou decodificador, tais como adição, substituição, remoção, etc., das funções ou processos. Por exemplo, qualquer função ou processo pode ser substituído ou combinado com outra função ou processo apresentado em qualquer lugar na descrição de aspectos da presente invenção.
[0039] (3) Em métodos implementados pelo codificador ou decodificador de acordo com as modalidades, alterações discricionárias podem ser feitas, como adição, substituição e remoção de um ou mais dos processos incluídos no método. Por exemplo, qualquer processo no método pode ser substituído ou combinado com outro processo apresentado em qualquer lugar na descrição de aspectos da presente invenção.
[0040] (4) Um ou mais componentes incluídos no codificador ou o decodificador de acordo com as modalidades podem ser combinados com um componente apresentado em qualquer lugar na descrição dos aspectos da presente invenção, podem ser combinados com um componente incluindo uma ou mais funções apresentadas em qualquer lugar no descrição de aspectos da presente invenção e podem ser combinados com um componente que implementa um ou mais processos implementados por um componente apresentado na descrição de aspectos da presente invenção.
[0041] (5) Um componente incluindo uma ou mais funções do codificador ou decodificador de acordo com as modalidades, ou um componente que implementa um ou mais processos do codificador ou decodificador de acordo com as modalidades, pode ser combinado ou substituído por um componente apresentado em qualquer lugar na descrição dos aspectos da presente invenção, com um componente incluindo uma ou mais funções apresentadas em qualquer lugar na descrição dos aspectos da presente invenção, ou com um componente que implementa um ou mais processos apresentados em qualquer lugar na descrição dos aspectos do presente invenção
[0042] (6) Em métodos implementados pelo codificador ou decodificador de acordo com as modalidades, qualquer um dos processos incluídos no método pode ser substituído ou combinado com um processo apresentado em qualquer lugar na descrição de aspectos da presente invenção ou com qualquer correspondente ou equivalente processo.
[0043] (7) Um ou mais processos incluídos em métodos implementados pelo codificador ou decodificador de acordo com as modalidades podem ser combinados com um processo apresentado em qualquer lugar na descrição de aspectos da presente invenção.
[0044] (8) A implementação dos processos e/ou configurações apresentadas na descrição dos aspectos da presente invenção não está limitada ao codificador ou ao decodificador de acordo com as modalidades. Por exemplo, os processos e/ou configurações podem ser implementados em um dispositivo usado para uma finalidade diferente do codificador de figura em movimento ou do decodificador de figura em movimento revelado nas modalidades.
CODIFICADOR
[0045] Em primeiro lugar, será descrito um codificador de acordo com uma modalidade. A Figura 1 é um diagrama de blocos que ilustra uma configuração funcional do codificador 100 de acordo com a modalidade. O codificador 100 é um codificador de vídeo que codifica um vídeo em unidades de um bloco.
[0046] Conforme ilustrado na Figura 1, o codificador 100 é um aparelho que codifica uma imagem em unidades de um bloco e inclui divisor 102, subtrator 104, transformador 106, quantizador 108, codificador de entropia 110, quantizador inverso 112, transformador inverso 114, somador 116, memória de bloco 118, filtro em loop 120, memória de quadro 122, intraprevisor 124, interprevisor 126 e controlador de previsão 128.
[0047] O codificador 100 é implementado como, por exemplo, um processador genérico e memória. Neste caso, quando um programa de software armazenado na memória é executado pelo processador, o processador funciona como divisor 102, subtrator 104, transformador 106, quantizador 108, codificador de entropia 110, quantizador inverso 112, transformador inverso 114, somador 116, filtro em loop 120, intraprevisor 124, interprevisor 126 e controlador de previsão 128. Alternativamente, o codificador 100 pode ser implementado como um ou mais circuitos eletrônicos dedicados correspondentes ao divisor 102, subtrator 104, transformador 106, quantizador 108, codificador de entropia 110, quantizador inverso 112, transformador inverso 114, somador 116, filtro em loop 120, intraprevisor 124, interprevisor 126 e controlador de previsão 128.
[0048] Doravante no presente documento, um fluxo geral de processos realizados pelo codificador 100 é descrito e, em seguida, cada um dos elementos constituintes incluídos no codificador 100 será descrito.
FLUXO GERAL DO PROCESSO DE CODIFICAÇÃO
[0049] A Figura 2 é um fluxograma que indica um exemplo de um processo geral de codificação realizado pelo codificador 100.
[0050] Em primeiro lugar, o divisor 102 do codificador 100 divide cada uma das figuras incluídas em uma imagem de entrada que é um vídeo em uma pluralidade de blocos com um tamanho fixo (por exemplo, 128 × 128 pixels) (Etapa Sa_1). O divisor 102, então, seleciona um padrão de divisão para o bloco de tamanho fixo (também referido como um formato de bloco) (Etapa Sa_2). Em outras palavras, o divisor 102 divide ainda mais o bloco de tamanho fixo em uma pluralidade de blocos que formam o padrão de divisão selecionado. O codificador 100 realiza, para cada um dentre a pluralidade de blocos, as etapas Sa_3 a Sa_9 para o bloco (que é um bloco atual a ser codificado).
[0051] Em outras palavras, um processador de previsão que inclui todo ou parte do intraprevisor 124, interprevisor 126 e controlador de previsão 128 gera um sinal de previsão (também referido como um bloco de previsão) do bloco atual a ser codificado (também referido como um bloco atual) (Etapa Sa_3).
[0052] Em seguida, o subtrator 104 gera uma diferença entre o bloco atual e um bloco de previsão como um residual de previsão (também referido como um bloco de diferença) (Etapa Sa_4).
[0053] Em seguida, o transformador 106 transforma o bloco de diferença e o quantizador 108 quantifica o resultado, para gerar uma pluralidade de coeficientes quantizados (Etapa Sa_5). Deve-se observar que o bloco com a pluralidade de coeficientes quantizados também é referido como um bloco de coeficiente.
[0054] Em seguida, o codificador de entropia 110 codifica (especificamente, a entropia codifica) o bloco de coeficiente e um parâmetro de previsão relacionado à geração de um sinal de previsão para gerar um sinal codificado (Etapa Sa_6). Deve-se observar que o sinal codificado também é referido como um fluxo de bits codificado, um fluxo de bits compactado ou um fluxo.
[0055] Em seguida, o quantizador inverso 112 realiza a quantização inversa do bloco de coeficiente e o transformador inverso 114 realiza a transformada inversa do resultado, para restaurar uma pluralidade de resíduos de previsão (isto é, um bloco de diferença) (Etapa Sa_7).
[0056] Em seguida, o somador 116 adiciona o bloco de previsão ao bloco de diferença restaurado para reconstruir o bloco atual como uma imagem reconstruída (também referido como um bloco reconstruído ou um bloco de imagem decodificado) (Etapa Sa_8). Desta forma, a imagem reconstruída é gerada.
[0057] Quando a imagem reconstruída é gerada, o filtro em loop 120 realiza a filtragem da imagem reconstruída conforme necessário (Etapa Sa_9).
[0058] O codificador 100 determina então se a codificação de toda a figura foi concluída (Etapa Sa_10). Ao determinar que a codificação ainda não foi concluída (Não na Etapa Sa_10), os processos da Etapa Sa_2 são executados repetidamente.
[0059] Embora o codificador 100 selecione um padrão de divisão para um bloco de tamanho fixo e codifique cada bloco de acordo com o padrão de divisão no exemplo descrito acima, deve-se observar que cada bloco pode ser codificado de acordo com um correspondente dentre uma pluralidade de padrões de divisão. Neste caso, o codificador 100 pode avaliar um custo para cada um dentre a pluralidade de padrões de divisão e, por exemplo, pode selecionar o sinal codificado obtido por codificação de acordo com o padrão de divisão que produz o menor custo como um sinal codificado que é emitido.
[0060] Conforme ilustrado, os processos nas Etapas Sa_1 a Sa_10 são realizados sequencialmente pelo codificador 100. Alternativamente, dois ou mais dos processos podem ser realizados em paralelo, os processos podem ser reordenados, etc.
DIVISOR
[0061] O divisor 102 divide cada uma das figuras incluídas em um vídeo de entrada em uma pluralidade de blocos e emite cada bloco para o subtrator 104. Por exemplo, o divisor 102 primeiro divide uma figura em blocos de tamanho fixo (por exemplo, 128 × 128). Outros tamanhos de bloco fixos podem ser empregados. O bloco de tamanho fixo também é conhecido como unidade de árvore de codificação (CTU). O divisor 102 então divide cada bloco de tamanho fixo em blocos de tamanhos variáveis (por exemplo, 64 × 64 ou menor), com base na divisão recursiva de árvore quádrupla e/ou bloco de árvore binária. Em outras palavras, o divisor 102 seleciona um padrão de divisão. O bloco de tamanho variável também é referido como uma unidade de codificação (CU), uma unidade de previsão (PU) ou uma unidade de transformada (TU). Deve-se observar que, em vários tipos de exemplos de processamento, não há necessidade de diferenciar entre CU, PU e TU; todos ou alguns dos blocos em uma figura podem ser processados em unidades de CU, PU ou TU.
[0062] A Figura 3 é um diagrama conceitual que ilustra um exemplo de divisão de blocos de acordo com uma modalidade. Na Figura 3, as linhas sólidas representam limites de bloco de blocos divididos por meio da divisão de bloco de árvore quádrupla e as linhas tracejadas representam limites de bloco de blocos divididos por divisão de bloco de árvore binária.
[0063] Aqui, o bloco 10 é um bloco quadrado com 128 × 128 pixels (bloco de 128 × 128). Este bloco 10 de 128 × 128 é primeiro dividido em quatro blocos quadrados de 64 × 64 (divisão de bloco de árvore quádrupla).
[0064] O bloco superior esquerdo de 64 × 64 é dividido verticalmente em dois blocos retangulares de 32 × 64, e o bloco esquerdo de 32 × 64 é dividido verticalmente em dois blocos retangulares de 16 × 64 (divisão de bloco de árvore binária). Como resultado, o bloco superior esquerdo de 64 × 64 é dividido em dois blocos de 16 × 64 11 e 12 e um bloco de 32 × 64 13.
[0065] O bloco superior direito 64 × 64 é dividido horizontalmente em dois blocos retangulares 64 × 32 14 e 15 (divisão do bloco binário da árvore).
[0066] O bloco inferior esquerdo de 64 × 64 é primeiro dividido em quatro blocos quadrados de 32 × 32 (divisão de bloco de árvore quádrupla). O bloco superior esquerdo e o bloco inferior direito entre os quatro blocos de 32 × 32 são divididos adicionalmente. O bloco superior esquerdo de 32 × 32 é dividido verticalmente em dois blocos retangulares de 16 × 32 e o bloco direito de 16 × 32 é dividido horizontalmente em dois blocos de 16 × 16 (divisão de bloco de árvore binária). O bloco inferior direito de 32 × 32 é dividido horizontalmente em dois blocos de 32 × 16 (divisão de bloco de árvore binária). Como resultado, o bloco inferior esquerdo 64 × 64 é dividido em 16 × 32 bloco 16, dois 16 × 16 blocos 17 e 18, dois 32 × 32 blocos 19 e 20, e dois 32 × 16 blocos 21 e 22.
[0067] O bloco 23 inferior direito 64 × 64 não é dividido.
[0068] Conforme descrito acima, na Figura 3, o bloco 10 é dividido em treze blocos de tamanho variável 11 a 23 com base em árvore quádrupla recursiva e divisão de bloco de árvore binária. Esse tipo de divisão também é conhecido como divisão de árvore quádrupla mais árvore binária (QTBT).
[0069] Deve-se observar que, na Figura 3, um bloco é dividido em quatro ou dois blocos (divisão de árvore quádrupla ou bloco de árvore binária), mas a divisão não está limitada a estes exemplos. Por exemplo, um bloco pode ser dividido em três blocos (divisão de bloco ternário). A divisão, incluindo essa divisão de bloco ternário, também é conhecida como divisão de árvore de tipo múltiplo (MBT).
ESTRUTURA DE FIGURA: FATIA/LADRILHO
[0070] Uma figura pode ser configurada em unidades de uma ou mais fatias ou blocos para decodificar a figura em paralelo. A figura configurada em unidades de uma ou mais fatias ou ladrilhos pode ser configurada pelo divisor 102.
[0071] Fatias são unidades básicas de codificação incluídas em uma figura. Uma figura pode incluir, por exemplo, uma ou mais fatias. Em adição, uma fatia inclui uma ou mais unidades de árvore de codificação (CTU) sucessivas.
[0072] A Figura 4A é um diagrama conceitual que ilustra um exemplo de uma configuração de fatia. Por exemplo, uma figura inclui 11 × 8 CTUs e é dividida em quatro fatias (fatias 1 a 4). A fatia 1 inclui dezesseis CTUs, a fatia 2 inclui vinte e uma CTUs, a fatia 3 inclui vinte e nove CTUs e a fatia 4 inclui vinte e duas CTUs. Aqui, cada CTU na figura pertence a uma das fatias. O formato de cada fatia é um formato que pode ser obtido por meio da divisão horizontal da figura. O limite de cada fatia não precisa coincidir com o final da imagem e pode ser coincidente com qualquer um dos limites entre os CTUs na imagem. A ordem de processamento das CTUs em uma fatia (uma ordem de codificação ou uma ordem de decodificação) é, por exemplo, uma ordem de varredura raster. Uma fatia inclui informações de cabeçalho e dados codificados. As características da fatia podem ser descritas nas informações do cabeçalho. Os recursos incluem um endereço CTU de uma CTU superior na fatia, um tipo de fatia, etc.
[0073] Um ladrilho é uma unidade de uma região retangular incluída em uma figura. Cada uma das peças pode ser atribuída com um número referido como Ladrilhada na ordem de varredura raster.
[0074] A Figura 4B é um diagrama conceitual que indica um exemplo de uma configuração de ladrilho. Por exemplo, uma figura inclui 11 × 8 CTUs e é dividida em quatro blocos de regiões retangulares (blocos 1 a 4). Quando os ladrilhos são usados, a ordem de processamento dos CTUs é alterada da ordem de processamento no caso em que nenhum ladrilho é usado. Quando nenhum bloco é usado, as CTUs em uma figura são processadas em ordem de varredura raster. Quando ladrilhos são usados, pelo menos uma CTU em cada ladrilho é processada na ordem de varredura raster. Por exemplo, conforme ilustrado na Figura 4B, a ordem de processamento das CTUs incluídas no bloco 1 é a ordem que começa na extremidade esquerda da primeira linha do bloco 1 em direção à extremidade direita da primeira linha do bloco 1 e, em seguida, começa na extremidade esquerda do a segunda linha do ladrilho 1 em direção à extremidade direita da segunda linha do ladrilho 1.
[0075] Deve-se observar que o único ladrilho pode incluir uma ou mais fatias e uma fatia pode incluir um ou mais ladrilhos.
SUBTRATOR
[0076] O subtrator 104 subtrai um sinal de previsão (amostra de previsão que é entrada do controlador de previsão 128 indicado abaixo) a partir de um sinal original (amostra original) em unidades de uma entrada de bloco do divisor 102 e dividido pelo divisor 102. Em outras palavras, o subtrator 104 calcula os erros de previsão (também referidos como resíduos) de um bloco a ser codificado (a seguir também referido como um bloco atual). O subtrator 104, então, emite os erros de previsão calculados (residuais) para o transformador 106.
[0077] O sinal original é um sinal que foi introduzido no codificador 100 e representa uma imagem de cada figura incluída em um vídeo (por exemplo, um sinal luma e dois sinais croma). Doravante no presente documento, um sinal que representa uma imagem também é referido como uma amostra.
TRANSFORMADOR
[0078] O transformador 106 transforma erros de previsão no domínio espacial em coeficientes de transformada no domínio de frequência e emite os coeficientes de transformada para o quantizador 108. Mais especificamente, o transformador 106 aplica-se, por exemplo, uma transformada de cosseno discreta definida (DCT) ou transformada de seno discreta (DST) para erros de previsão no domínio espacial. A DCT ou DST definido pode ser predefinido.
[0079] Deve-se observar que o transformador 106 pode selecionar adaptativamente um tipo de transformada dentre uma pluralidade de tipos de transformada e transformar erros de previsão em coeficientes de transformada usando uma função de base de transformada correspondente ao tipo de transformada selecionado. Esse tipo de transformada também é conhecido como transformada de núcleo múltiplo explícito (EMT) ou transformada múltipla adaptativa (AMT).
[0080] Os tipos de transformadas incluem, por exemplo, DCT-II, DCT-V, DCT-VIII, DST-I e DST-VII. A Figura 5A é um gráfico que indica funções de base de transformada para os tipos de transformada de exemplo. Na Figura 5A, N indica o número de pixels de entrada. Por exemplo, a seleção de um tipo de transformada dentre a pluralidade de tipos de transformada pode depender de um tipo de previsão (um de intraprevisão e interprevisão) e pode depender de um modo de intraprevisão.
[0081] Informações que indicam se deve ser aplicado tal EMT ou AMT (referido como, por exemplo, um sinalizador EMT ou um sinalizador AMT) e informações que indicam o tipo de transformada selecionado é normalmente sinalizado no nível CU. Deve-se observar que a sinalização de tais informações não precisa necessariamente ser realizada no nível CU e pode ser realizada em outro nível (por exemplo, no nível de sequência de bits, nível de figura, nível de fatia, nível de bloco ou Nível CTU).
[0082] Em adição, o transformador 106 pode transformar novamente os coeficientes de transformada (resultado da transformada). Essa retransformada também é referida como transformada secundária adaptativa (AST) ou transformada secundária não separável (NSST). Por exemplo, o transformador 106 realiza a retransformada em unidades de um sub-bloco (por exemplo, 4 × 4 sub-bloco) incluídas em um bloco de coeficiente de transformada correspondente a um erro de intraprevisão. As informações que indicam se deve ser aplicado NSST e as informações relacionadas a uma matriz de transformada para uso em NSST são normalmente sinalizadas no nível CU. Deve-se observar que a sinalização de tais informações não precisa necessariamente ser realizada no nível CU e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de figura, nível de fatia, nível de bloco ou CTU nível).
[0083] O transformador 106 pode empregar uma transformada separável e uma transformada não separável. Uma transformada separável é um método no qual uma transformada é realizada uma pluralidade de vezes, por meio da realização separada de uma transformada para cada uma dentre diversas direções de acordo com o número de dimensões de entradas. Uma transformada não separável é um método para realizar uma transformada coletiva em que duas ou mais dimensões em entradas multidimensionais são consideradas coletivamente como uma única dimensão.
[0084] Em um exemplo de uma transformada não separável, quando uma entrada é um bloco 4 × 4, o bloco 4 × 4 é considerado como um único conjunto incluindo dezesseis elementos e a transformada aplica uma matriz de transformada 16 × 16 para o conjunto.
[0085] Em outro exemplo de uma transformada não separável, um bloco de entrada 4 × 4 é considerado como um único conjunto incluindo dezesseis elementos e, em seguida, uma transformada (transformada de dados de hipercubo) em que a revolução de dados é realizada no conjunto uma pluralidade de vezes pode ser realizada.
[0086] Na transformada no transformador 106, os tipos de bases a serem transformadas no domínio da frequência de acordo com as regiões em uma CU podem ser comutados. Os exemplos incluem transformações de variação espacial (SVT). Em SVT, conforme ilustrado na Figura 5B, as UCs são divididas em duas regiões iguais horizontal ou verticalmente, e apenas uma das regiões é transformada no domínio de frequência. Um tipo de base de transformada pode ser definido para cada região. Por exemplo, DST7 e DST8 são usados. Neste exemplo, apenas uma dessas duas regiões na UC é transformada e a outra não. No entanto, essas duas regiões podem ser transformadas. Em adição, o método de divisão não se limita à divisão em duas regiões iguais e pode ser mais flexível. Por exemplo, o CU pode ser dividido em quatro regiões iguais, ou informações que indicam se a divisão pode ser codificada separadamente e ser sinalizada da mesma maneira que a divisão do CU. Deve-se observar que a SVT também é conhecida como transformada de sub-bloco (SBT).
QUANTIZADOR
[0087] O quantizador 108 quantiza a emissão de coeficientes de transformada do transformador 106. Mais especificamente, o quantizador 108 varre, em uma ordem de varredura determinada, os coeficientes de transformada do bloco atual e quantiza os coeficientes de transformada varridos com base em parâmetros de quantização (QP) correspondentes aos coeficientes de transformada. O quantizador 108, então, emite os coeficientes de transformada quantizados (doravante no presente documento também referidos como coeficientes quantizados) do bloco atual para o codificador de entropia 110 e o quantizador inverso 112. A ordem de varredura determinada pode ser predeterminada.
[0088] Uma determinada ordem de varredura é uma ordem para quantizar/quantizar de modo inverso os coeficientes de transformada. Por exemplo, uma determinada ordem de varredura pode ser definida como ordem ascendente de frequência (de baixa para alta frequência) ou ordem decrescente de frequência (de alta para baixa frequência).
[0089] Um parâmetro de quantização (QP) é um parâmetro que define uma etapa de quantização (largura de quantização). Por exemplo, quando o valor do parâmetro de quantização aumenta, a etapa de quantização também aumenta. Em outras palavras, quando o valor do parâmetro de quantização aumenta, o erro de quantização aumenta.
[0090] Em adição, uma matriz de quantização pode ser usada para quantização. Por exemplo, vários tipos de matrizes de quantização podem ser usados de modo a corresponder a tamanhos de transformadas de frequência, como 4 × 4 e 8 × 8, modos de previsão, como intra e interprevisão, e componentes de pixel, como componentes luma e de pixel de croma. Deve-se observar que quantização significa digitalizar valores amostrados em determinados intervalos de modo a corresponder a determinados níveis. Neste campo da técnica, a quantização pode ser referida usando outras expressões, como arredondamento e escalonamento, e pode empregar arredondamento e escalonamento. Os intervalos e níveis determinados podem ser predeterminados.
[0091] Os métodos que usam matrizes de quantização incluem um método que usa uma matriz de quantização que foi definida diretamente no lado do codificador e um método que usa uma matriz de quantização que foi definida como padrão (matriz padrão). No lado do codificador, uma matriz de quantização adequada para características de uma imagem pode ser definida definindo diretamente uma matriz de quantização. Este caso, entretanto, tem a desvantagem de aumentar uma quantidade de codificação para codificar a matriz de quantização.
[0092] Existe um método para quantizar um coeficiente de alta frequência e um coeficiente de baixa frequência sem usar uma matriz de quantização. É de observar que este método equivale a um método que utiliza uma matriz de quantização (matriz plana) cujos coeficientes têm o mesmo valor.
[0093] A matriz de quantização pode ser especificada usando, por exemplo, um conjunto de parâmetros de sequência (SPS) ou um conjunto de parâmetros de figura (PPS). O SPS inclui um parâmetro que é usado para uma sequência e o PPS inclui um parâmetro que é usado para uma figura. Cada um dentre os SPS e PPS pode ser simplesmente referido como um conjunto de parâmetros.
CODIFICADOR DE ENTROPIA
[0094] O codificador de entropia 110 gera um sinal codificado (fluxo de bits codificado) com base em coeficientes quantizados que foram introduzidos a partir do quantizador 108. Mais especificamente, o codificador de entropia 110, por exemplo, binariza coeficientes quantizados e codifica aritmeticamente o sinal binário e emite um fluxo de bits compactado ou sequência.
QUANTIZADOR INVERSO
[0095] O quantizador inverso 112 quantiza de modo inverso coeficientes quantizados que foram introduzidos a partir do quantizador 108. Mais especificamente, o quantizador inverso 112 quantiza de modo inverso, em uma ordem de varredura determinada, os coeficientes quantizados do bloco atual. O quantizador inverso 112, então, emite os coeficientes de transformada quantizados de modo inverso do bloco atual para o transformador inverso 114. A ordem de varredura determinada pode ser predeterminada.
TRANSFORMADOR INVERSO
[0096] O transformador inverso 114 restaura erros de previsão (residuais) por coeficientes por meio de transformação inversa de coeficientes de transformada que foram inseridos a partir do quantizador inverso 112. Mais especificamente, o transformador inverso 114 restaura os erros de previsão do bloco atual por meio da aplicação de uma transformada inversa correspondente à transformada aplicada pelo transformador 106 nos coeficientes de transformada. O transformador inverso 114, então, emite os erros de previsão restaurados para o somador 116.
[0097] Deve-se observar que, uma vez que as informações são perdidas na quantização, os erros de previsão restaurados não correspondem aos erros de previsão calculados pelo subtrator 104. Em outras palavras, os erros de previsão restaurados normalmente incluem erros de quantização.
SOMADOR
[0098] O somador 116 reconstrói o bloco atual adicionando erros de previsão que foram inseridos a partir do transformador inverso 114 e amostras de previsão que foram inseridas a partir do controlador de previsão 128. O somador 116, então, emite o bloco reconstruído para a memória de bloco 118 e o filtro em loop 120. Um bloco reconstruído também é conhecido como bloco decodificado local.
MEMÓRIA DE BLOCO
[0099] A memória de bloco 118 é, por exemplo, armazenamento para armazenar blocos em uma figura a ser codificada (doravante no presente documento referida como uma figura atual) que é referida na intraprevisão. Mais especificamente, a memória de bloco 118 armazena a emissão de blocos reconstruídos do somador 116.
MEMÓRIA DE QUADRO
[0100] A memória de quadro 122 é, por exemplo, armazenamento para armazenar figuras de referência para uso em interprevisão e também é referida como um quadro de armazenamento temporário. Mais especificamente, a memória de quadro 122 armazena blocos reconstruídos filtrados pelo filtro em loop 120.
FILTRO EM LOOP
[0101] O filtro em loop 120 aplica um filtro em loop a blocos reconstruídos pelo somador 116 e emite os blocos reconstruídos filtrados para a memória do quadro 122. Um filtro em loop é um filtro usado em um loop de codificação (filtro em loop) e inclui, por exemplo, um filtro de desblocagem (DF ou DBF), um deslocamento adaptativo de amostra (SAO) e um filtro em loop adaptativo (ALF).
[0102] Em um ALF, um filtro de erro mínimo para remover artefatos de compactação é aplicado. Por exemplo, um filtro selecionado entre uma pluralidade de filtros com base na direção e atividade de gradientes locais é aplicado para cada um dos sub-blocos 2 × 2 no bloco atual.
[0103] Mais especificamente, em primeiro lugar, cada sub-bloco (por exemplo, cada sub-bloco 2 × 2) é categorizado em uma dentre uma pluralidade de classes (por exemplo, quinze ou vinte e cinco classes). A classificação do sub-bloco é baseada na direcionalidade e atividade do gradiente. Por exemplo, o índice de classificação C (por exemplo, C = 5D + A) é derivado com base na direcionalidade do gradiente D (por exemplo, 0 a 2 ou 0 a 4) e na atividade do gradiente A (por exemplo, 0 a 4). Então, com base no índice de classificação C, cada sub-bloco é categorizado em uma dentre uma pluralidade de classes.
[0104] Por exemplo, a direcionalidade do gradiente D é calculada por meio da comparação de gradientes de uma pluralidade de direções (por exemplo, as direções horizontal, vertical e duas diagonais). Ademais, por exemplo, a atividade de gradiente A é calculada adicionando gradientes de uma pluralidade de direções e quantizando o resultado da adição.
[0105] O filtro a ser usado para cada sub-bloco é determinado a partir da pluralidade de filtros com base no resultado de tal categorização.
[0106] O formato de filtro a ser usado em um ALF é, por exemplo, um formato de filtro simétrico circular. A Figura 6A a Figura 6C ilustram exemplos de formatos de filtro usados em ALFs. A Figura 6A ilustra um filtro em formato de diamante 5 × 5, Figura 6B ilustra um filtro em formato de diamante 7 × 7 e a Figura 6C ilustra um filtro em formato de diamante 9 × 9. As informações que indicam a forma do filtro são normalmente sinalizadas no nível da figura. Deve-se observar que a sinalização de tais informações que indicam a forma do filtro não precisa necessariamente ser realizada no nível de figura e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível de bloco, CTU nível ou nível CU).
[0107] O ON ou OFF do ALF é determinado, por exemplo, no nível de figura ou nível CU. Por exemplo, a decisão de aplicar o ALF ao luma pode ser feita no nível de CU, e a decisão de aplicar ALF ao croma pode ser feita no nível da figura. As informações que indicam ON ou OFF do ALF são normalmente sinalizadas no nível de figura ou nível CU. Deve-se observar que a sinalização de informações que indicam ON ou OFF do ALF não precisa necessariamente ser realizada no nível de figura ou nível CU, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível do bloco ou nível CTU).
[0108] O coeficiente definido para a pluralidade de filtros selecionáveis (por exemplo, quinze ou até vinte e cinco filtros) é normalmente sinalizado no nível da figura. Deve-se observar que a sinalização do conjunto de coeficientes não precisa necessariamente ser realizada no nível de figura e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível de bloco, nível CTU, CU nível ou nível de sub-bloco).
FILTRO EM LOOP > FILTRO DE DESBLOCAGEM
[0109] Em um filtro de desblocagem, o filtro em loop 120 realiza um processo de filtro em um limite de bloco em uma imagem reconstruída de modo a reduzir a distorção que ocorre no limite de bloco.
[0110] A Figura 7 é um diagrama de blocos que ilustra um exemplo de uma configuração específica de filtro em loop 120 que funciona como um filtro de desblocagem.
[0111] O filtro em loop 120 inclui: determinador de limite 1201; determinador de filtro 1203; executor de filtragem 1205; determinador de processo 1208; filtro característico determinador 1207; e comutadores 1202, 1204 e 1206.
[0112] O determinador de limite 1201 determina se um pixel a ser filtrado por desblocagem (ou seja, um pixel atual) está presente em torno de um limite de bloco. O determinador de limite 1201, então, emite o resultado da determinação para o comutador 1202 e o determinador de processamento 1208.
[0113] No caso em que o determinador de limite 1201 determinou que um pixel atual está presente em torno de um limite de bloco, o comutador 1202 produz uma imagem não filtrada para o comutador 1204. No caso oposto, em que o determinador de limite 1201 determinou que nenhum pixel atual está presente em torno de um limite de bloco, o comutador 1202 produz uma imagem não filtrada para o comutador 1206.
[0114] O determinador de filtro 1203 determina se deve realizar a filtragem de desblocagem do pixel atual, com base no valor do pixel de pelo menos um pixel circundante localizado em torno do pixel atual. O determinador de filtro 1203, então, emite o resultado da determinação para o comutador 1204 e o determinador de processamento 1208.
[0115] No caso em que o determinador de filtro 1203 determinou realizar a filtragem de desblocagem do pixel atual, o comutador 1204 produz a imagem não filtrada obtida através do comutador 1202 para o executor de filtragem 1205. No caso oposto, onde o determinador de filtro 1203 determinou não realizar a filtragem de desblocagem do pixel atual, o comutador 1204 emite a imagem não filtrada obtida através do comutador 1202 para o comutador 1206.
[0116] Ao obter a imagem não filtrada através dos comutadores 1202 e 1204, o executor de filtragem 1205 executa, para o pixel atual, a filtragem de desblocagem com a característica de filtro determinada pelo determinador de característica de filtro 1207. O executor de filtragem 1205, então, emite o pixel filtrado para o comutador 1206.
[0117] Sob controle pelo determinador de processamento 1208, o comutador 1206 emite seletivamente um pixel que não foi filtrado por desblocagem e um pixel que foi filtrado por desblocagem pelo executor de filtragem 1205.
[0118] O determinador de processamento 1208 controla o comutador 1206 com base nos resultados das determinações feitas pelo determinador de limite 1201 e o determinador de filtro 1203. Em outras palavras, o determinador de processamento 1208 faz com que o comutador 1206 emita o pixel que foi filtrado por desblocagem quando o determinador de limite 1201 determinou que o pixel atual está presente em torno do limite de bloco e o determinador de filtro 1203 determinou realizar a filtragem de desblocagem do pixel atual. Em adição, diferente do caso acima, o determinador de processamento 1208 faz com que o comutador 1206 emita o pixel que não foi filtrado por desblocagem. Uma imagem filtrada é emitida a partir do comutador 1206 por meio da repetição da emissão de um pixel desta forma.
[0119] A Figura 8 é um diagrama conceitual que indica um exemplo de um filtro de desblocagem com uma característica de filtragem simétrica em relação a um limite de bloco.
[0120] Em um processo de filtro de desblocagem, um dos dois filtros de desblocagem com características diferentes, ou seja, um filtro forte e um filtro fraco, é selecionado usando valores de pixel e parâmetros de quantização. No caso do filtro forte, os pixels p0 a p2 e os pixels q0 a q2 estão presentes através de um limite de bloco, como ilustrado na Figura 8, os valores de pixel do respectivo pixel q0 a q2 são alterados para valores de pixel q’0 a q’2 por meio da realização, por exemplo, de cálculos de acordo com as expressões abaixo.
[0121] q’0 = (p1 + 2 × p0 + 2 × q0 + 2 × q1 + q2 + 4)/8
[0122] q’1 = (p0 +q0 + q1 + q2 + 2)/4
[0123] q’2 = (p0 + q0 + q1 +3 × q2 + 2 × q3 +4)/8
[0124] Deve-se observar que, nas expressões acima, p0 a p2 e q0 a q2 são os valores dos pixels dos respectivos pixels p0 a p2 e pixels q0 a q2. Em adição, q3 é o valor do pixel do pixel vizinho q3 localizado no lado oposto do pixel q2 em relação ao limite do bloco. Em adição, no lado direito de cada uma das expressões, os coeficientes que são multiplicados com os respectivos valores de pixel dos pixels a serem usados para a filtragem de desblocagem são coeficientes de filtro.
[0125] Adicionalmente, na filtragem de desblocagem, o recorte pode ser realizado de modo que os valores de pixel calculados não sejam definidos acima de um valor limite. No processo de recorte, os valores de pixel calculados de acordo com as expressões acima são recortados para um valor obtido de acordo com "um valor de pixel de computação ± 2 × um valor de limite" usando o valor de limite determinado com base em um parâmetro de quantização. Desta forma, é possível evitar uma suavização excessiva.
[0126] A Figura 9 é um diagrama conceitual para ilustrar um limite de bloco no qual um processo de filtro de desblocagem é executado. A Figura 10 é um diagrama conceitual que indica exemplos de valores de Bs.
[0127] O limite de bloco no qual o processo de filtro de desblocagem é realizado é, por exemplo, um limite entre unidades de previsão (PU) com blocos de 8 × 8 pixels, como ilustrado na Figura 9 ou um limite entre unidades de transformada (TU). O processo de filtragem de desblocagem pode ser realizado em unidades de quatro linhas ou quatro colunas. Em primeiro lugar, os valores de limite de força (Bs) são determinados como indicado na Figura 10 para o bloco P e bloco Q ilustrado na Figura 9
[0128] De acordo com os valores de Bs na Figura 10, é determinada a realização de processos de filtro de desblocagem de limites de bloco pertencentes à mesma imagem usando forças diferentes. O processo de filtro de desblocagem para um sinal croma é realizado quando um valor de Bs é 2. O processo de filtro de desblocagem para um sinal luma é realizado quando um valor de Bs é 1 ou mais e uma determinada condição é satisfeita. A condição determinada pode ser predeterminada. Deve-se observar que as condições para determinar os valores de Bs não estão limitadas àquelas indicadas na Figura 10, e um valor de Bs pode ser determinado com base em outro parâmetro.
PROCESSADOR DE PREVISÃO (INTRAPREVISOR, INTERPREVISOR, CONTROLE DE PREVISÃO)
[0129] A Figura 11 é um fluxograma que ilustra um exemplo de um processo realizado pelo processador de previsão do codificador 100. Deve-se observar que o processador de previsão inclui todos ou parte dos seguintes elementos constituintes: intraprevisor 124; interprevisor 126; e controlador de previsão 128.
[0130] O processador de previsão gera uma imagem de previsão de um bloco atual (Etapa Sb_1). Essa imagem de previsão também é conhecida como sinal de previsão ou bloco de previsão. Deve-se observar que o sinal de previsão é, por exemplo, um sinal de intraprevisão ou um sinal de interprevisão. Especificamente, o processador de previsão gera a imagem de previsão do bloco atual usando uma imagem reconstruída que já foi obtida por meio da geração de um bloco de previsão, geração de um bloco de diferença, geração de um bloco de coeficiente, restauração de um bloco de diferença e geração de um bloco de imagem decodificado.
[0131] A imagem reconstruída pode ser, por exemplo, uma imagem em uma figura de referência, ou uma imagem de um bloco codificado em uma figura atual que é a imagem incluindo o bloco atual. O bloco codificado na figura atual é, por exemplo, um bloco vizinho do bloco atual.
[0132] A Figura 12 é um fluxograma que ilustra outro exemplo de um processo realizado pelo processador de previsão do codificador 100.
[0133] O processador de previsão gera uma imagem de previsão usando um primeiro método (Etapa Sc_1a), gera uma imagem de previsão usando um segundo método (Etapa Sc_1b) e gera uma imagem de previsão usando um terceiro método (Etapa Sc_1c). O primeiro método, o segundo método e o terceiro método podem ser métodos mutuamente diferentes para gerar uma imagem de previsão. Cada um dentre primeiro até o terceiro método pode ser um método de interprevisão, um método de intraprevisão ou outro método de previsão. A imagem reconstruída acima descrita pode ser usada nestes métodos de previsão
[0134] Em seguida, o processador de previsão seleciona qualquer um dentre uma pluralidade de métodos de previsão gerados nas Etapas Sc_1a, Sc_1b e Sc_1c (Etapa Sc_2). A seleção da imagem de previsão, que é a seleção de um método ou modo para obter uma imagem de previsão final, pode ser feita por meio do cálculo de um custo para cada uma das imagens de previsão geradas e com base no custo. Alternativamente, a seleção da imagem de previsão pode ser feita com base em um parâmetro que é usado em um processo de codificação. O codificador 100 pode transformar informações para identificar uma imagem de previsão selecionada, um método ou um modo em um sinal codificado (também referido como um fluxo de bits codificado). A informação pode ser, por exemplo, uma sinalização ou semelhante. Desta forma, o decodificador é capaz de gerar uma imagem de previsão de acordo com o método ou modo selecionado com base na informação no codificador 100. Deve-se observar que, no exemplo ilustrado na Figura 12, o processador de previsão seleciona qualquer uma das imagens de previsão após as imagens de previsão serem geradas usando os respectivos métodos. No entanto, o processador de previsão pode selecionar um método ou um modo com base em um parâmetro para uso no processo de codificação descrito acima antes de gerar imagens de previsão e pode gerar uma imagem de previsão de acordo com o método ou modo selecionado.
[0135] Por exemplo, o primeiro método e o segundo método podem ser intraprevisão e interprevisão, respectivamente, e o processador de previsão pode selecionar uma imagem de previsão final para um bloco atual a partir de imagens de previsão geradas de acordo com os métodos de previsão.
[0136] A Figura 13 é um fluxograma que ilustra outro exemplo de um processo realizado pelo processador de previsão do codificador 100.
[0137] Em primeiro lugar, o processador de previsão gera uma imagem de previsão usando intraprevisão (Etapa Sd_1a) e gera uma imagem de previsão usando interprevisão (Etapa Sd_1b). Deve-se observar que a imagem de previsão gerada por intraprevisão também é referida como uma imagem de intraprevisão, e a imagem de previsão gerada por interprevisão é também referida como uma imagem de interprevisão.
[0138] Em seguida, o processador de previsão avalia cada imagem de intraprevisão e imagem de interprevisão (Etapa Sd_2). Um custo pode ser usado na avaliação. Em outras palavras, o processador de previsão calcula o custo C para cada imagem de intraprevisão e imagem de interprevisão. O custo C pode ser calculado de acordo com uma expressão de um modelo de otimização RD, por exemplo, C = D + λ × R. Nesta expressão, D indica uma distorção de codificação de uma imagem de previsão e é representado como, por exemplo, uma soma de diferenças absolutas entre o valor de pixel de um bloco atual e o valor de pixel de uma imagem de previsão. Em adição, R indica uma quantidade de codificação prevista de uma imagem de previsão, especificamente, a quantidade de codificação necessária para codificar as informações de movimento para gerar uma imagem de previsão, etc. Em adição, λ indica, por exemplo, um multiplicador de acordo com o método do multiplicador de Lagrange.
[0139] O processador de previsão então seleciona a imagem de previsão para a qual o menor custo C foi calculado entre a imagem de intraprevisão e a imagem de interprevisão, como a imagem de previsão final para o bloco atual (Etapa Sd_3). Em outras palavras, o método de previsão ou o modo para gerar a imagem de previsão para o bloco atual é selecionado.
INTRAPREVISOR
[0140] O intraprevisor 124 gera um sinal de previsão (sinal de intraprevisão) ao realizar intraprevisão (também referida como intraprevisão de quadro) do bloco atual, referindo-se a um bloco ou blocos na figura atual e armazenado na memória de bloco 118. Mais especificamente, o intraprevisor 124 gera um sinal de intraprevisão realizando intraprevisão a se referir a amostras (por exemplo, valores de luma e/ou croma) de um bloco ou blocos vizinhos ao bloco atual e, em seguida, emite o sinal de intraprevisão para o controlador de previsão 128
[0141] Por exemplo, o intraprevisor 124 executa a intraprevisão usando um modo de entre uma pluralidade de modos de intraprevisão que foram definidos. Os modos de intraprevisão incluem um ou mais modos de previsão não direcional e uma pluralidade de modos de previsão direcional. Os modos definidos podem ser predefinidos.
[0142] O um ou mais modos de previsão não direcional incluem, por exemplo, o modo de previsão planar e o modo de previsão DC definido no padrão H.265/codificação de vídeo de alta eficiência (HEVC).
[0143] A pluralidade de modos de previsão direcional inclui, por exemplo, os trinta e três modos de previsão direcional definidos no padrão H.265/HEVC. Deve-se observar que a pluralidade de modos de previsão direcional pode incluir ainda trinta e dois modos de previsão direcional, além dos trinta e três modos de previsão direcional (para um total de sessenta e cinco modos de previsão direcional). A Figura 14 é um diagrama conceitual que ilustra sessenta e sete modos de intraprevisão no total que podem ser usados em intraprevisão (dois modos de previsão não direcional e sessenta e cinco modos de previsão direcional). As setas sólidas representam as trinta e três direções definidas no padrão H.265/HEVC e as setas tracejadas representam as trinta e duas direções adicionais (os dois modos de previsão não direcional não são ilustrados na Figura 14).
[0144] Em vários tipos de exemplos de processamento, um bloco de luma pode ser referido na intraprevisão de um bloco de croma. Em outras palavras, um componente croma do bloco atual pode ser previsto com base em um componente luma do bloco atual. Essa intraprevisão também é conhecida como previsão de modelo linear de componente cruzado (CCLM). O modo de intraprevisão para um bloco croma em que tal bloco de luma é referido (também referido como, por exemplo, um modo CCLM) pode ser adicionado como um dos modos de intraprevisão para blocos croma.
[0145] O intraprevisor 124 pode corrigir valores de pixel intraprevistos com base em gradientes de pixel de referência horizontal/vertical. A intraprevisão acompanhada por este tipo de correção também é conhecida como combinação de intraprevisão dependente da posição (PDPC). As informações que indicam se deve ser aplicado o PDPC (referido como, por exemplo, um sinalizador PDPC) são normalmente sinalizadas no nível CU. Deve-se observar que a sinalização de tais informações não precisa necessariamente ser realizada no nível CU e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de figura, nível de fatia, nível de bloco ou CTU nível).
INTERPREVISOR
[0146] O interprevisor 126 gera um sinal de previsão (sinal de interprevisão) por meio da realização de interprevisão (também referida como interprevisão de quadro) do bloco atual, ao se referir a um bloco ou blocos em uma figura de referência, que é diferente da figura atual e é armazenado na memória de quadro 122. A interprevisão é realizada em unidades de um bloco atual ou um sub-bloco atual (por exemplo, um bloco 4 × 4) no bloco atual. Por exemplo, o interprevisor 126 realiza estimativa de movimento em uma figura de referência para o bloco atual ou o sub-bloco atual e descobre um bloco de referência ou um sub-bloco que melhor corresponde ao bloco atual ou ao sub-bloco atual. O interprevisor 126, então, obtém informações de movimento (por exemplo, um vetor de movimento) que compensa um movimento ou uma mudança do bloco de referência ou sub-bloco para o bloco atual ou sub-bloco. O interprevisor 126 gera um sinal de interprevisão do bloco atual ou sub-bloco por meio da realização de compensação de movimento (ou previsão de movimento) com base nas informações de movimento. O interprevisor 126 emite o sinal de interprevisão gerado para o controlador de previsão 128.
[0147] A informação de movimento usada na compensação de movimento pode ser sinalizada como sinais de interprevisão em várias formas. Por exemplo, um vetor de movimento pode ser sinalizado. Como outro exemplo, a diferença entre um vetor de movimento e um previsor de vetor de movimento pode ser sinalizada.
FLUXO BÁSICO DE INTERPREVISÃO
[0148] A Figura 15 é um fluxograma que ilustra um exemplo de fluxo de processamento básico de interprevisão.
[0149] Primeiro, o interprevisor 126 gera um sinal de previsão (Passos Se_1 a Se_3). Em seguida, o subtrator 104 gera a diferença entre um bloco atual e uma imagem de previsão como um resíduo de previsão (Etapa Se_4).
[0150] Aqui, na geração da imagem de previsão, o interprevisor 126 gera a imagem de previsão por meio da determinação de um vetor de movimento (MV) do bloco atual (Etapas Se_1 e Se_2) e compensação de movimento (Etapa Se_3). Adicionalmente, na determinação de um MV, o interprevisor 126 determina o MV através da seleção de um candidato de vetor de movimento (candidato de MV) (Etapa Se_1) e derivação de um MV (Etapa Se_2). A seleção do candidato do MV é feita, por exemplo, ao selecionar pelo menos um candidato de MV a partir de uma lista de candidatos de MV. Alternativamente, na derivação de um MV, o interprevisor 126 pode ainda selecionar pelo menos um candidato de MV a partir do pelo menos um candidato de MV e determinar o pelo menos um candidato de MV selecionado como o MV para o bloco atual. Alternativamente, o interprevisor 126 pode determinar o MV para o bloco atual por meio da realização de estimativa em uma região de figura de referência especificada por meio de cada um dentre o pelo menos um candidato de MV selecionado. Deve-se observar que a estimativa em uma região de figura de referência pode ser referida como estimativa de movimento.
[0151] Em adição, embora as etapas Se_1 a Se_3 sejam realizadas pelo interprevisor 126 no exemplo acima descrito, um processo que é, por exemplo, Etapa Se_1, Etapa Se_2 ou semelhantes pode ser realizado por meio de outro elemento constituinte incluído no codificador 100.
FLUXO DE DERIVAÇÃO DE VETORES DE MOVIMENTO
[0152] A Figura 16 é um fluxograma que ilustra um exemplo de derivação de vetores de movimento.
[0153] O interprevisor 126 deriva um MV de um bloco atual em um modo para codificar informações de movimento (por exemplo, um MV). Neste caso, por exemplo, a informação de movimento é codificada como um parâmetro de previsão e é sinalizada. Em outras palavras, as informações de movimento codificadas são incluídas em um sinal codificado (também conhecido como fluxo de bits codificado).
[0154] Alternativamente, o interprevisor 126 deriva um MV em um modo no qual informações de movimento não são codificadas. Nesse caso, nenhuma informação de movimento é incluída em um sinal codificado.
[0155] Aqui, os modos de derivação de MV podem incluir um modo interno normal, um modo de mesclagem, um modo FRUC, um modo afim, etc. que são descritos mais tarde. Os modos em que as informações de movimento são codificadas entre os modos incluem o modo interno normal, o modo de mesclagem, o modo afim (especificamente, um modo inter afim e um modo de mesclagem afim), etc. Deve-se observar que as informações de movimento podem incluir não apenas um MV, mas também informações de seleção de previsor de vetor de movimento que são descritas posteriormente. Os modos em que nenhuma informação de movimento é codificada incluem o modo FRUC, etc. O interprevisor 126 seleciona um modo para derivar um MV do bloco atual a partir dos modos e deriva o MV do bloco atual usando o modo selecionado.
[0156] A Figura 17 é um fluxograma que ilustra outro exemplo de derivação de vetores de movimento.
[0157] O interprevisor 126 deriva um MV de um bloco atual em um modo no qual uma diferença de MV é codificada. Neste caso, por exemplo, a diferença de MV é codificada como um parâmetro de previsão e é sinalizada. Em outras palavras, a diferença de MV codificada é incluída em um sinal codificado. A diferença de MV é a diferença entre o MV do bloco atual e o previsor de MV.
[0158] Alternativamente, o interprevisor 126 deriva um MV em um modo no qual nenhuma diferença de MV é codificada. Nesse caso, nenhuma diferença de MV codificada é incluída em um sinal codificado.
[0159] Aqui, como descrito acima, os modos de derivação de MV incluem o modo inter normal, o modo de mesclagem, o modo FRUC, o modo afim, etc. que são descritos mais tarde. Os modos em que uma diferença MV é codificada entre os modos incluem o modo inter normal, o modo afim (especificamente, o modo inter afim), etc. Os modos em que nenhuma diferença de MV é codificada incluem o modo FRUC, o modo de mesclagem, o modo afim (especificamente, o modo de mesclagem afim), etc. O interprevisor 126 seleciona um modo para derivar um MV do bloco atual a partir da pluralidade de modos e deriva o MV do bloco atual usando o modo selecionado.
FLUXO DE DERIVAÇÃO DE VETORES DE MOVIMENTO
[0160] A Figura 18 é um fluxograma que ilustra outro exemplo de derivação de vetores de movimento. Os modos de derivação de MV que são modos de interprevisão incluem uma pluralidade de modos e são aproximadamente divididos em modos nos quais uma diferença de MV é codificada e modos nos quais nenhuma diferença de vetor de movimento é codificada. Os modos em que nenhuma diferença MV é codificada incluem o modo de mesclagem, o modo FRUC, o modo afim (especificamente, o modo de mesclagem afim), etc. Esses modos são descritos em detalhes posteriormente. Simplesmente, o modo de mesclagem é um modo para derivar um MV de um bloco atual, por meio da seleção de um vetor de movimento de um bloco circundante codificado, e o modo FRUC é um modo para derivar um MV de um bloco atual por meio da realização da estimativa entre regiões codificadas. O modo afim é um modo para derivar, como um MV de um bloco atual, um vetor de movimento de cada um dentre uma pluralidade de sub-blocos incluídos no bloco atual, que presume uma transformada afim.
[0161] Mais especificamente, como ilustrado quando a informação do modo de interprevisão indica 0 (0 em Sf_1), o interprevisor 126 deriva um vetor de movimento usando o modo de mesclagem (Sf_2). Quando a informação do modo de interprevisão indica 1 (1 em Sf_1), o previsor 126 deriva um vetor de movimento usando o modo FRUC (Sf_3). Quando a informação do modo de interprevisão indica 2 (2 em Sf_1), o previsor 126 deriva um vetor de movimento usando o modo afim (especificamente, o modo de mesclagem afim) (Sf_4). Quando a informação do modo de interprevisão indica 3 (3 em Sf_1), o interprevisor 126 deriva um vetor de movimento usando um modo no qual uma diferença de MV é codificada (por exemplo, um modo inter normal (Sf_5).
DERIVAÇÃO MV> MODO INTER NORMAL
[0162] O modo inter normal é um modo de interprevisão para derivar um MV de um bloco atual com base em um bloco semelhante à imagem do bloco atual de uma região de figura de referência especificada por um candidato de MV. Neste modo interno normal, uma diferença de MV é codificada.
[0163] A Figura 19 é um fluxograma que ilustra um exemplo de interprevisão no modo inter normal.
[0164] Em primeiro lugar, o interprevisor 126 obtém uma pluralidade de candidatos de MV para um bloco atual com base em informações, tais como MVs de uma pluralidade de blocos codificados temporalmente ou que circundam espacialmente o bloco atual (Etapa Sg_1). Em outras palavras, o interprevisor 126 gera uma lista de candidatos de MV.
[0165] Em seguida, o interprevisor 126 extrai N (um número inteiro de 2 ou mais) candidatos de MV a partir da pluralidade de candidatos de MV obtidos na Etapa Sg_1, como candidatos ao previsor de vetor de movimento (também referidos como candidatos ao previsor de MV) de acordo com uma ordem de prioridade determinada (Etapa Sg_2). Deve-se observar que a ordem de prioridade pode ser determinada com antecedência para cada um dos N MV candidatos.
[0166] Em seguida, o interprevisor 126 seleciona um candidato a previsor de vetor de movimento a partir dos N candidatos a previsor de vetor de movimento, como o previsor de vetor de movimento (também referido como um previsor de MV) do bloco atual (Etapa Sg_3). Nesse momento, o interprevisor 126 codifica, em um fluxo, informações de seleção do previsor de vetor de movimento para identificar o previsor de vetor de movimento selecionado. Deve-se observar que a transmissão é um sinal codificado ou um fluxo de bits codificado conforme descrito acima.
[0167] Em seguida, o interprevisor 126 deriva um MV de um bloco atual ao se referir a uma figura de referência codificada (Etapa Sg_4). Neste momento, o interprevisor 126 codifica ainda, no fluxo, o valor de diferença entre o MV derivado e o previsor de vetor de movimento como uma diferença de MV. Deve-se observar que a figura de referência codificada é uma figura incluindo uma pluralidade de blocos que foram reconstruídos após serem codificados.
[0168] Por último, o interprevisor 126 gera uma imagem de previsão para o bloco atual por meio da realização da compensação de movimento do bloco atual usando o MV derivado e a figura de referência codificada (Etapa Sg_5). Deve-se observar que a imagem de previsão é um sinal de interprevisão conforme descrito acima.
[0169] Em adição, a informação que indica o modo de interprevisão (modo de inter normal no exemplo acima) usada para gerar a imagem de previsão é, por exemplo, codificada como um parâmetro de previsão.
[0170] Deve-se observar que a lista de candidatos de MV também pode ser usada como uma lista para uso em outro modo. Em adição, os processos relacionados à lista de candidatos de MV podem ser aplicados a processos relacionados à lista para uso em outro modo. Os processos relacionados à lista de candidatos de MV incluem, por exemplo, extração ou seleção de um candidato de MV da lista de candidatos de MV, reordenamento de candidatos de MV ou exclusão de um candidato de MV.
DERIVAÇÃO DE MV> MODO DE MESCLAGEM
[0171] O modo de mesclagem é um modo de interprevisão para selecionar um candidato de MV a partir de uma lista de candidatos de MV como um MV de um bloco atual, derivando assim o MV.
[0172] A Figura 20 é um fluxograma que ilustra um exemplo de interprevisão no modo de mesclagem.
[0173] Em primeiro lugar, o interprevisor 126 obtém uma pluralidade de candidatos de MV para um bloco atual com base em informações, tais como MVs de uma pluralidade de blocos codificados temporalmente ou que circundam espacialmente o bloco atual (Etapa Sh_1). Em outras palavras, o interprevisor 126 gera uma lista de candidatos de MV.
[0174] Em seguida, o interprevisor 126 seleciona um candidato de MV a partir da pluralidade de candidatos de MV obtidos na Etapa Sh_1, derivando assim um MV do bloco atual (Etapa Sh_2). Neste momento, o interprevisor 126 codifica, em um fluxo, informações de seleção de MV para identificar o candidato de MV selecionado.
[0175] Por último, o interprevisor 126 gera uma imagem de previsão para o bloco atual, por meio da realização da compensação de movimento do bloco atual usando o MV derivado e a figura de referência codificada (Etapa Sh_3).
[0176] Em adição, a informação que indica o modo de interprevisão (modo de mesclagem no exemplo acima) usada para gerar a imagem de previsão e incluída no sinal codificado é, por exemplo, codificada como um parâmetro de previsão.
[0177] A Figura 21 é um diagrama conceitual para ilustrar um exemplo de um processo de derivação de vetor de movimento de uma figura atual no modo de mesclagem.
[0178] Primeiro, é gerada uma lista de candidatos de MV na qual os candidatos ao previsor de MV são registrados. Exemplos de candidatos a previsor de MV incluem: previsores de MV espacialmente vizinhos que são MVs de uma pluralidade de blocos codificados localizados espacialmente em torno de um bloco atual; previsores de MV temporariamente vizinhos que são MVs de blocos circundantes nos quais a posição de um bloco atual em uma figura de referência codificada é projetada; previsores de MV combinados que são MVs gerados pela combinação do valor de MV de um previsor de MV espacialmente vizinho e o MV de um previsor de MV temporalmente vizinho; e um previsor de zero MV que é um MV que tem um valor zero.
[0179] Em seguida, um previsor de MV é selecionado a partir de uma pluralidade de previsores de MV registrados em uma lista de previsores de MV e o previsor de MV selecionado é determinado como o MV de um bloco atual.
[0180] Adicionalmente, o codificador de comprimento variável descreve e codifica, em um fluxo, merge_idx que é um sinal que indica qual previsor de MV foi selecionado.
[0181] Deve-se observar que os previsores de MV registrados na lista de previsores de MV descrita na Figura 21 são exemplos. O número de previsores de MV pode ser diferente do número de previsores de MV no diagrama, a lista de previsores de MV pode ser configurada de tal maneira que alguns dos tipos de previsores de MV no diagrama podem não ser incluídos, ou aquele um ou mais previsores de MV diferentes dos tipos de previsores de MV no diagrama estão incluídos.
[0182] Um MV final pode ser determinado por meio da realização de um processo de refinamento do vetor de movimento do decodificador (DMVR) a ser descrito posteriormente usando o MV do bloco atual derivado no modo de mesclagem.
[0183] Deve-se observar que os candidatos ao previsor de MV são candidatos de MV descritos acima, e a lista do previsor de MV é a lista de candidatos de MV descrita acima. Deve-se observar que a lista de candidatos de MV pode ser referida como uma lista de candidatos. Em adição, merge_idx são informações de seleção de MV.
DERIVAÇÃO MV> MODO FRUC
[0184] As informações de movimento podem ser derivadas do lado do decodificador sem serem sinalizadas do lado do codificador. Devese observar que, conforme descrito acima, o modo de mesclagem definido no padrão H.265/HEVC pode ser usado. Em adição, por exemplo, as informações de movimento podem ser derivadas por meio da realização da estimativa de movimento no lado do decodificador. Em uma modalidade, no lado do decodificador, a estimativa de movimento é realizada sem usar qualquer valor de pixel em um bloco atual.
[0185] Aqui, um modo para realizar estimativa de movimento no lado do decodificador é descrito. O modo para realizar estimativa de movimento no lado do decodificador pode ser referido como um modo de derivação de vetor de movimento de correspondência de padrão (PMMVD) ou um modo de conversão de taxa de quadros (FRUC).
[0186] Um exemplo de um processo de FRUC na forma de um fluxograma é ilustrado na Figura 22 Em primeiro lugar, uma lista de uma pluralidade de candidatos, em que cada um tem um previsor de vetor de movimento (MV) (isto é, uma lista de candidatos de MV que também pode ser usada como uma lista de mesclagem) é gerada ao referenciar a um vetor de movimento em um bloco codificado que espacialmente ou temporariamente é vizinho de um bloco atual (Etapa Si_1). Em seguida, um melhor candidato de MV é selecionado a partir da pluralidade de candidatos de MV registrados na lista de candidatos de MV (Etapa Si_2). Por exemplo, os valores de avaliação dos respectivos candidatos de MV incluídos na lista de candidatos de MV são calculados e um candidato de MV é selecionado com base nos valores de avaliação. Com base nos candidatos de vetor de movimento selecionados, um vetor de movimento para o bloco atual é derivado (Etapa Si_4). Mais especificamente, por exemplo, o candidato de vetor de movimento selecionado (melhor candidato de MV) é derivado diretamente como o vetor de movimento para o bloco atual. Em adição, por exemplo, o vetor de movimento para o bloco atual pode ser derivado usando correspondência de padrões em uma região circundante de uma posição em uma figura de referência em que a posição na figura de referência corresponde ao candidato de vetor de movimento selecionado. Em outras palavras, a estimativa que usa a correspondência de padrões e os valores de avaliação pode ser realizada na região circundante do melhor candidato de MV, e quando há um MV que produz um valor de avaliação melhor, o melhor candidato de MV pode ser atualizado para o MV que produz o melhor valor de avaliação e o MV atualizado pode ser determinado como o MV final para o bloco atual. Uma configuração em que nenhum processo para atualizar o melhor candidato de MV para o MV com um valor de avaliação melhor também é possível.
[0187] Por último, o interprevisor 126 gera uma imagem de previsão para o bloco atual por meio da realização da compensação de movimento do bloco atual usando o MV derivado e a figura de referência codificada (Etapa Si_5).
[0188] Um processo semelhante pode ser realizado em unidades de um sub-bloco.
[0189] Os valores de avaliação podem ser calculados de acordo com vários tipos de métodos. Por exemplo, uma comparação é feita entre uma imagem reconstruída em uma região em uma figura de referência correspondente a um vetor de movimento e uma imagem reconstruída em uma determinada região (a região pode ser, por exemplo, uma região em outra figura de referência ou uma região em um bloco vizinho de uma figura atual, conforme indicado abaixo). A região determinada pode ser predeterminada.
[0190] A diferença entre os valores de pixel das duas imagens reconstruídas pode ser usada para um valor de avaliação dos vetores de movimento. Deve-se observar que um valor de avaliação pode ser calculado usando outras informações que não o valor da diferença.
[0191] A seguir, um exemplo de correspondência de padrões é descrito em detalhes. Primeiro, um candidato de MV incluído em uma lista de candidatos de MV (por exemplo, uma lista de mesclagem) é selecionado como um ponto inicial de estimativa pela correspondência de padrões. Por exemplo, como correspondência de padrão, pode ser usada uma primeira correspondência de padrão ou uma segunda correspondência de padrão. A primeira correspondência de padrão e a segunda correspondência de padrão também são denominadas correspondência bilateral e correspondência de modelo, respectivamente.
DERIVAÇÃO DE MV> FRUC> CORRESPONDÊNCIA BILATERAL
[0192] Na primeira correspondência de padrões, a correspondência de padrões é realizada entre dois blocos ao longo de uma trajetória de movimento de um bloco atual que são dois blocos em duas figuras de referência diferentes. Consequentemente, na primeira correspondência de padrão, uma região em outra figura de referência ao longo da trajetória de movimento do bloco atual é usada como uma região determinada para calcular o valor de avaliação do candidato acima descrito. A região determinada pode ser predeterminada
[0193] A Figura 23 é um diagrama conceitual para ilustrar um exemplo da primeira correspondência de padrão (correspondência bilateral) entre os dois blocos nas duas figuras de referência ao longo da trajetória de movimento. Conforme ilustrado na Figura 23, na primeira correspondência de padrão, dois vetores de movimento (MV0, MV1) são derivados por meio da estimativa de um par que melhor combina entre os pares nos dois blocos nas duas figuras de referência diferentes (Ref0, Ref1) que são os dois blocos ao longo do movimento trajetória do bloco atual (bloco Cur). Mais especificamente, uma diferença entre a imagem reconstruída em um local especificado na primeira figura de referência codificada (Ref0) especificada por um candidato de MV e a imagem reconstruída em um local especificado na segunda figura de referência codificada (Ref1) especificada por um MV simétrico obtido ao escalar o candidato de MV em um intervalo de tempo de exibição é derivado para o bloco atual e um valor de avaliação é calculado usando o valor da diferença obtida. É possível selecionar, como MV final, o candidato de MV que produz o melhor valor de avaliação entre a pluralidade de candidatos de MV e que provavelmente produzirá bons resultados.
[0194] Na suposição de uma trajetória de movimento contínuo, os vetores de movimento (MV0, MV1) que especificam os dois blocos de referência são proporcionais às distâncias temporais (TD0, TD1) entre a figura atual (Cur Pic) e as duas figuras de referência (Ref0, Ref1). Por exemplo, quando a figura atual está temporariamente localizada entre as duas figuras de referência e as distâncias temporais da figura atual para as respectivas duas figuras de referência são iguais uma à outra, vetores de movimento bidirecionais simétricos de espelho são derivados na primeira correspondência de padrão.
DERIVAÇÃO DE MV> FRUC> CORRESPONDÊNCIA DE MODELO
[0195] Na segunda correspondência de padrões (correspondência de modelos), a correspondência de padrões é realizada entre um bloco em uma figura de referência e um modelo na figura atual (o modelo é um bloco vizinho ao bloco atual na figura atual (o bloco vizinho é, por exemplo, um bloco vizinho (ou blocos vizinhos) superior e/ou esquerdo)). Consequentemente, na segunda correspondência de padrões, o bloco vizinho ao bloco atual na figura atual é usado como a região determinada para calcular o valor de avaliação do candidato acima descrito.
[0196] A Figura 24 é um diagrama conceitual para ilustrar um exemplo de correspondência de padrão (correspondência de modelo) entre um modelo em uma figura atual e um bloco em uma figura de referência. Conforme ilustrado na Figura 24, na segunda correspondência de padrão, o vetor de movimento do bloco atual (bloco Cur) é derivado por meio da estimativa, na figura de referência (Ref0), do bloco que melhor corresponde ao bloco vizinho ao bloco atual na figura atual (Cur Pic ) Mais especificamente, é possível que a diferença entre uma imagem reconstruída em uma região codificada vizinha à esquerda e acima ou à esquerda ou acima e uma imagem reconstruída que está em uma região correspondente na figura de referência codificada (Ref0) e é especificada por um candidato de MV é derivado, um valor de avaliação é calculado usando o valor da diferença obtida e o candidato de MV que produz o melhor valor de avaliação entre uma pluralidade de candidatos de MV é selecionado como o melhor candidato de MV.
[0197] Tais informações que indicam se deve ser aplicado o modo FRUC (referido como, por exemplo, um sinalizador FRUC) podem ser sinalizadas no nível CU. Em adição, quando o modo FRUC é aplicado (por exemplo, quando um sinalizador FRUC é verdadeiro), a informação que indica um método de correspondência de padrão aplicável (seja a primeira correspondência de padrão ou a segunda correspondência de padrão) pode ser sinalizada no nível de CU. Deve-se observar que a sinalização de tais informações não precisa necessariamente ser realizada no nível CU, e pode ser realizada em outro nível (por exemplo, no nível de sequência, nível de figura, nível de fatia, nível de bloco, nível de CTU, ou nível de sub-bloco).
DERIVAÇÃO DE MV> MODO AFIM
[0198] A seguir, é descrito o modo afim para derivar um vetor de movimento em unidades de um sub-bloco com base em vetores de movimento de uma pluralidade de blocos vizinhos. Este modo também é conhecido como modo de previsão de compensação de movimento afim.
[0199] A Figura 25A é um diagrama conceitual para ilustrar um exemplo de derivação de um vetor de movimento de cada sub-bloco com base em vetores de movimento de uma pluralidade de blocos vizinhos. Na Figura 25A, o bloco atual inclui dezesseis sub-blocos 4 × 4. Aqui, o vetor de movimento V0 em um ponto de controle do canto superior esquerdo no bloco atual é derivado com base em um vetor de movimento de um bloco vizinho e, da mesma forma, o vetor de movimento V1 em um ponto de controle do canto superior direito no bloco atual é derivado com base em um vetor de movimento de um subbloco vizinho. Dois vetores do movimento v0 e v1 podem ser projetados de acordo com uma expressão (1A) indicada abaixo, e os vetores de movimento (vx, vy) para os respectivos sub-blocos no bloco atual podem ser derivados.
Figure img0001
[0200] Aqui, x e y indicam a posição horizontal e a posição vertical do sub-bloco, respectivamente, e w indica um determinado coeficiente de ponderação. O coeficiente de ponderação determinado pode ser predeterminado.
[0201] Essas informações que indicam o modo afim (por exemplo, referido como uma sinalização afim) podem ser sinalizadas no nível de CU. Deve-se observar que a sinalização das informações que indicam o modo afim não precisa necessariamente ser realizadas no nível CU, e podem ser realizadas em outro nível (por exemplo, no nível de sequência, nível de figura, nível de fatia, bloco nível, nível CTU ou nível de sub-bloco).
[0202] Em adição, o modo afim pode incluir vários modos para diferentes métodos para derivar vetores de movimento nos pontos de controle do canto superior esquerdo e superior direito. Por exemplo, o modo afim inclui dois modos que são o modo inter afim (também referido como um modo inter normal afim) e o modo de mesclagem afim.
DERIVAÇÃO DE MV> MODO AFIM
[0203] A Figura 25B é um diagrama conceitual para ilustrar um exemplo de derivação de um vetor de movimento de cada sub-bloco no modo afim no qual três pontos de controle são usados. Na Figura 25B, o bloco atual inclui dezesseis blocos 4 × 4. Aqui, o vetor de movimento V0no ponto de controle do canto superior esquerdo do para o bloco atual é derivado com base em um vetor de movimento de um bloco vizinho e, da mesma forma, o vetor de movimento V1 no ponto de controle do canto superior direito para o bloco atual é derivado com base em um vetor de movimento de um bloco vizinho e o vetor de movimento V2 no ponto de controle do canto inferior esquerdo, para o bloco atual é derivado com base em um vetor de movimento de um bloco vizinho. Três vetores de movimento v0, v1, e v2 podem ser projetados de acordo com uma expressão (1B) indicada abaixo, e os vetores de movimento (vx, vy) para os respectivos sub-blocos no bloco atual podem ser derivados.
Figure img0002
[0204] Aqui, x e y indicam a posição horizontal e a posição vertical do centro do sub-bloco, respectivamente, w indica a largura do bloco atual e h indica a altura do bloco atual.
[0205] Os modos afins nos quais diferentes números de pontos de controle (por exemplo, dois e três pontos de controle) são usados podem ser comutados e sinalizados no nível de UC. Deve-se observar que as informações que indicam o número de pontos de controle no modo afim usados no nível CU podem ser sinalizadas em outro nível (por exemplo, o nível de sequência, nível de figura, nível de fatia, nível de bloco, nível de CTU ou sub- nível de bloco).
[0206] Em adição, tal modo afim no qual três pontos de controle são usados pode incluir diferentes métodos para derivar vetores de movimento nos pontos de controle de canto superior esquerdo, superior direito e inferior esquerdo. Por exemplo, os modos afins incluem dois modos que são o modo inter afim (também referido como o modo inter normal afim) e o modo de mesclagem afim.
DERIVAÇÃO DE MV> MODO DE MESCLAGEM AFIM
[0207] A Figura 26A, Figura 26B e Figura 26C são diagramas conceituais para ilustrar o modo de mesclagem afim.
[0208] Conforme ilustrado na Figura 26A, no modo de mesclagem afim, por exemplo, os previsores de vetor de movimento nos respectivos pontos de controle de um bloco atual são calculados com base em uma pluralidade de vetores de movimento correspondentes a blocos codificados de acordo com o modo afim entre o bloco codificado A (esquerda), bloco B (superior), bloco C (superior direito), bloco D (inferior esquerdo) e bloco E (superior esquerdo) que estão próximos ao bloco atual. Mais especificamente, o bloco codificado A (esquerda), bloco B (superior), bloco C (superior direito), bloco D (inferior esquerdo) e bloco E (superior esquerdo) são verificados na ordem listada, e o primeiro bloco efetivo codificado de acordo com o modo afim é identificado. Os previsores de vetor de movimento nos pontos de controle do bloco atual são calculados com base em uma pluralidade de vetores de movimento correspondentes ao bloco identificado.
[0209] Por exemplo, conforme ilustrado na Figura 26B, quando o bloco A vizinho à esquerda do bloco atual foi codificado de acordo com um modo afim no qual dois pontos de controle são usados, os vetores de movimento v3 e v4 projetados na posição do canto superior esquerdo e a posição do canto superior direito do bloco codificado incluindo o bloco A são derivados. O previsor de vetor de movimento v0no ponto de controle do canto superior esquerdo do bloco atual e o previsor de vetor de movimento v1no ponto de controle do canto superior direito do bloco atual são calculados a partir de vetores de movimento derivados v3 e v4.
[0210] Por exemplo, conforme ilustrado na Figura 26C, quando o bloco A vizinho à esquerda do bloco atual foi codificado de acordo com um modo afim no qual três pontos de controle são usados, os vetores de movimento v3, v4, e v5 projetados na posição do canto superior esquerdo, a posição do canto superior direito e a posição do canto inferior esquerdo do bloco codificado incluindo o bloco A são derivadas. O previsor de vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual, o previsor de vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual e o previsor de vetor de movimento v2 no ponto de controle do canto inferior esquerdo do bloco atual são calculados a partir de vetores de movimento derivados v3, v4, e v5.
[0211] Deve-se observar que este método para derivar previsores de vetor de movimento pode ser usado para derivar previsores de vetor de movimento dos respectivos pontos de controle do bloco atual na Etapa Sj_1 na Figura 29 descrito mais tarde.
[0212] A Figura 27 é um fluxograma que ilustra um exemplo do modo de mesclagem afim.
[0213] No modo de mesclagem afim, conforme ilustrado, primeiro, o interprevisor 126 deriva os previsores de MV dos respectivos pontos de controle de um bloco atual (Etapa Sk_1). Os pontos de controle são um ponto de canto superior esquerdo do bloco atual e um ponto de canto superior direito do bloco atual, conforme ilustrado na Figura 25A, ou um ponto de canto superior esquerdo do bloco atual, um ponto de canto superior direito do bloco atual e um ponto de canto inferior esquerdo do bloco atual, como ilustrado na Figura 25B.
[0214] Em outras palavras, conforme ilustrado na Figura 26A, o interprevisor 126 verifica o bloco A codificado (esquerda), bloco B (superior), bloco C (superior direito), bloco D (inferior esquerdo) e bloco E (superior esquerdo) na ordem listada e identifica o primeiro bloco efetivo codificado de acordo com o modo afim.
[0215] Quando o bloco A é identificado e o bloco A tem dois pontos de controle, conforme ilustrado na Figura 26B, o interprevisor 126 calcula o vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual e vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual de vetores de movimento v3 e v4 no canto superior esquerdo e no canto superior direito do bloco codificado incluindo o bloco A. Por exemplo, o interprevisor 126 calcula o vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual e vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual por meio da projeção de vetores de movimento v3 e v4 no canto superior esquerdo e no canto superior direito do bloco codificado no bloco atual.
[0216] Alternativamente, quando o bloco A é identificado e o bloco A tem três pontos de controle, como ilustrado na Figura 26C, o interprevisor 126 calcula o vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual, vetor de movimento v1no ponto de controle do canto superior direito do bloco atual e vetor de movimento v2 no ponto de controle do canto inferior esquerdo do bloco atual de vetores de movimento v3, v4, e v5 no canto superior esquerdo, no canto superior direito e no canto inferior esquerdo do bloco codificado incluindo o bloco A. Por exemplo, o interprevisor 126 calcula o vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual, o vetor de movimento v1 no canto superior direito do ponto de controle do bloco atual e o vetor de movimento v2 no ponto de controle do canto inferior esquerdo do bloco atual por meio da projeção de vetores de movimento v3, v4, e v5 no canto superior esquerdo, no canto superior direito e no canto inferior esquerdo do bloco codificado no bloco atual.
[0217] Em seguida, o interprevisor 126 realiza compensação de movimento de cada um dentre uma pluralidade de sub-blocos incluídos no bloco atual. Em seguida, o interprevisor 126 realiza compensação de movimento de cada um dentre uma pluralidade de sub-blocos incluídos no bloco atual v0 e v1 e a expressão (1A) descrita acima ou (ii) três previsores de vetor de movimento v0, v1, e v2 e a expressão (1B) descrita acima (Etapa Sk_2). O interprevisor 126 realiza então a compensação de movimento dos sub-blocos usando esses MVs afins e figuras de referência codificadas (Etapa Sk_3). Como resultado, a compensação de movimento do bloco atual é realizada para gerar uma imagem de previsão do bloco atual.
DERIVAÇÃO DE MV> MODO INTER AFIM
[0218] A Figura 28A é um diagrama conceitual para ilustrar um modo inter afim no qual dois pontos de controle são usados.
[0219] No modo inter afim, como ilustrado na Figura 28A, um vetor de movimento selecionado a partir de vetores de movimento do bloco codificado A, bloco B e bloco C vizinho ao bloco atual é usado como previsor de vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual. Da mesma maneira, um vetor de movimento selecionado a partir de vetores de movimento do bloco codificado D e do bloco E, vizinho ao bloco atual, é usado como previsor de vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual.
[0220] A Figura 28B é um diagrama conceitual para ilustrar um modo inter afim no qual três pontos de controle são usados.
[0221] No modo inter afim, como ilustrado na Figura 28B, um vetor de movimento selecionado a partir de vetores de movimento do bloco codificado A, bloco B e bloco C vizinho ao bloco atual é usado como previsor de vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual. Da mesma maneira, um vetor de movimento selecionado a partir de vetores de movimento do bloco codificado D e do bloco E, vizinho ao bloco atual, é usado como previsor de vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual. Adicionalmente, um vetor de movimento selecionado a partir de vetores de movimento do bloco codificado F e bloco G vizinho ao bloco atual é usado como previsor de vetor de movimento v2 no ponto de controle do canto inferior esquerdo do bloco atual.
[0222] A Figura 29 é um fluxograma que ilustra um exemplo de um modo inter afim.
[0223] No modo inter afim, conforme ilustrado, primeiro, o interprevisor 126 deriva previsores de MV (v0, v1) ou (v0, v1, v2) dos respectivos dois ou três pontos de controle de um bloco atual (Etapa Sj_1). Os pontos de controle são um ponto de canto superior esquerdo do bloco atual e um ponto de canto superior direito do bloco atual, conforme ilustrado na Figura 25A, ou um ponto de canto superior esquerdo do bloco atual, um ponto de canto superior direito do bloco atual e um ponto de canto inferior esquerdo do bloco atual, como ilustrado na Figura 25B.
[0224] Em outras palavras, o interprevisor 126 deriva os previsores de vetor de movimento(v0, v1) ou (v0, v1, v2) dos respectivos dois ou três pontos de controle do bloco atual por meio da seleção de vetores de movimento de qualquer um dos blocos entre os blocos codificados na vizinhança dos respectivos pontos de controle do bloco atual ilustrado em qualquer uma das Figura 28A ou Figura 28B. Neste momento, o interprevisor 126 codifica, em um fluxo, informações de seleção do previsor de vetor de movimento para identificar os dois vetores de movimento selecionados.
[0225] Por exemplo, o interprevisor 126 pode determinar, usando uma avaliação de custo ou semelhante, o bloco a partir do qual um vetor de movimento como um previsor de vetor de movimento em um ponto de controle é selecionado dentre os blocos codificados vizinhos ao bloco atual e pode descrever, em um fluxo de bits, uma sinalização que indica qual previsor de vetor de movimento foi selecionado.
[0226] Em seguida, o interprevisor 126 realiza estimativa de movimento (Etapa Sj_3 e Sj_4) enquanto atualiza um previsor de vetor de movimento selecionado ou derivado na Etapa Sj_1 (Etapa Sj_2). Em outras palavras, o interprevisor 126 calcula, como um MV afim, um vetor de movimento de cada um dos sub-blocos que corresponde a um previsor de vetor de movimento atualizado, usando a expressão (1A) ou a expressão (1B) descrita acima (Etapa Sj_3). O interprevisor 126 executa então a compensação de movimento dos sub-blocos usando esses MVs afins e figuras de referência codificadas (Etapa Sj_4). Como resultado, por exemplo, o interprevisor 126 determina o previsor de vetor de movimento que produz o menor custo como o vetor de movimento em um ponto de controle em um ciclo de estimativa de movimento (Etapa Sj_5). Neste momento, o interprevisor 126 codifica ainda, no fluxo, o valor de diferença entre o MV determinado e o previsor de vetor de movimento como uma diferença de MV.
[0227] Por último, o interprevisor 126 gera uma imagem de previsão para o bloco atual, por meio da execução da compensação de movimento do bloco atual usando o MV determinado e a figura de referência codificada (Etapa Sj_6).
DERIVAÇÃO DE MV> MODO INTER AFIM
[0228] Quando os modos afins em que diferentes números de pontos de controle (por exemplo, dois e três pontos de controle) são usados podem ser comutados e sinalizados no nível de CU, o número de pontos de controle em um bloco codificado e o número de pontos de controle em um bloco corrente pode ser diferente um do outro. A Figura 30A e Figura 30B são diagramas conceituais para ilustrar métodos para derivar previsores de vetor de movimento em pontos de controle quando o número de pontos de controle em um bloco codificado e o número de pontos de controle em um bloco atual são diferentes um do outro.
[0229] Por exemplo, conforme ilustrado na Figura 30A, quando um bloco atual tem três pontos de controle no canto superior esquerdo, o canto superior direito e o canto inferior esquerdo, e o bloco A que fica próximo à esquerda do bloco atual foi codificado de acordo com um modo afim em que dois pontos de controle são usados, vetores de movimento v3 e v4 projetado na posição do canto superior esquerdo e a posição do canto superior direito no bloco codificado incluindo o bloco A são derivados. O previsor de vetor de movimento v0no ponto de controle do canto superior esquerdo do bloco atual e o previsor de vetor de movimento v1no ponto de controle do canto superior direito do bloco atual são calculados a partir de vetores de movimento derivados v3 e v4. Adicionalmente, previsor de vetor de movimento v2 no ponto de controle do canto inferior esquerdo o é calculado a partir de vetores de movimento derivados v0 e v1.
[0230] Por exemplo, conforme ilustrado na Figura 30B, quando um bloco atual tem dois pontos de controle no canto superior esquerdo e no canto superior direito, e o bloco A que é vizinho à esquerda do bloco atual foi codificado de acordo com o modo afim no qual três pontos de controle são usados, vetores de movimento v3, v4, e v5 projetada na posição do canto superior esquerdo, a posição do canto superior direito e a posição do canto inferior esquerdo no bloco codificado incluindo o bloco A são derivadas. O previsor de vetor de movimento v0 no ponto de controle do canto superior esquerdo do bloco atual e previsor de vetor de movimento v1 no ponto de controle do canto superior direito do bloco atual são calculados a partir de vetores de movimento derivados v3, v4, e v5.
[0231] Deve-se observar que este método para derivar previsores de vetor de movimento pode ser usado para derivar previsores de vetor de movimento dos respectivos pontos de controle do bloco atual na Etapa Sj_1 na Figura 29
DERIVAÇÃO DE MV> DMVR
[0232] A Figura 31A é um fluxograma que ilustra uma relação entre o modo de mesclagem e DMVR.
[0233] O interprevisor 126 deriva um vetor de movimento de um bloco atual de acordo com o modo de mesclagem (Etapa Sl_1). Em seguida, o interprevisor 126 determina se deve realizar a estimativa de um vetor de movimento, isto é, estimativa de movimento (Etapa Sl_2). Aqui, ao determinar a não realização da estimativa de movimento (Não na Etapa Sl_2), o interprevisor 126 determina o vetor de movimento derivado na Etapa Sl_1 como o vetor de movimento final para o bloco atual (Etapa Sl_4). Em outras palavras, neste caso, o vetor de movimento do bloco atual é determinado de acordo com o modo de mesclagem.
[0234] Ao determinar a realização da estimativa de movimento na Etapa Sl_1 (Sim na Etapa Sl_2), o interprevisor 126 deriva o vetor de movimento final para o bloco atual, estimando uma região circundante da figura de referência especificada pelo vetor de movimento derivado na Etapa Sl_1 (Etapa Sl_3). Em outras palavras, neste caso, o vetor de movimento do bloco atual é determinado de acordo com o DMVR.
[0235] A Figura 31B é um diagrama conceitual para ilustrar um exemplo de um processo DMVR para determinar um MV.
[0236] Primeiro, (por exemplo, no modo de mesclagem) o melhor MVP que foi definido para o bloco atual é determinado como um candidato a MV. Um pixel de referência é identificado a partir de uma primeira figura de referência (L0) que é uma figura codificada na direção L0 de acordo com um candidato de MV (L0). Da mesma maneira, um pixel de referência é identificado a partir de uma segunda figura de referência (L1) que é uma figura codificada na direção L1 de acordo com um candidato de MV (L1). Um modelo é gerado por meio do cálculo de uma média desses pixels de referência.
[0237] Em seguida, cada uma das regiões circundantes dos candidatos de MV da primeira figura de referência (L0) e da segunda figura de referência (L1) são estimados, e o MV que produz o menor custo é determinado como o MV final. Deve-se observar que o valor de custo pode ser calculado, por exemplo, usando um valor de diferença entre cada um dos valores de pixel no modelo e um correspondente dos valores de pixel na região de estimativa, os valores de candidatos de MV, etc.
[0238] Deve-se observar que os processos, configurações e operações descritos aqui são basicamente comuns entre o codificador e um decodificador a ser descrito posteriormente.
[0239] Exatamente os mesmos processos de exemplo descritos aqui nem sempre precisam ser realizados. Qualquer processo para permitir a derivação do MV final por estimativa em regiões circundantes de candidatos de MV pode ser usado.
COMPENSAÇÃO DE MOVIMENTO> BIO/OBMC
[0240] A compensação de movimento envolve um modo para gerar uma imagem de previsão e corrigir a imagem de previsão. O modo é, por exemplo, BIO e OBMC a ser descrito posteriormente.
[0241] A Figura 32 é um fluxograma que ilustra um exemplo de geração de uma imagem de previsão.
[0242] O interprevisor 126 gera uma imagem de previsão (Etapa Sm_1) e corrige a imagem de previsão, por exemplo, de acordo com qualquer um dos modos descritos acima (Etapa Sm_2).
[0243] A Figura 33 é um fluxograma que ilustra outro exemplo de geração de uma imagem de previsão.
[0244] O interprevisor 126 determina um vetor de movimento de um bloco atual (Etapa Sn_1). Em seguida, o interprevisor 126 gera uma imagem de previsão (Etapa Sn_2) e determina se deve ser realizado um processo de correção (Etapa Sn_3). Aqui, ao determinar a realização de um processo de correção (Sim na Etapa Sn_3), o interprevisor 126 gera a imagem de previsão final por meio da correção a imagem de previsão (Etapa Sn_4). Ao determinar não realizar um processo de correção (Não na Etapa Sn_3), o interprevisor 126 emite a imagem de previsão como a imagem de previsão final sem corrigir a imagem de previsão (Etapa Sn_5).
[0245] Em adição a compensação de movimento envolve um modo para corrigir a luminância de uma imagem de previsão ao gerar a imagem de previsão. O modo é, por exemplo, LIC a ser descrito mais tarde.
[0246] A Figura 34 é um fluxograma que ilustra outro exemplo de geração de uma imagem de previsão.
[0247] O interprevisor 126 deriva um vetor de movimento de um bloco atual (Etapa So_1). Em seguida, o interprevisor 126 determina se deve realizar um processo de correção de luminância (Etapa So_2). Aqui, ao determinar a realização de um processo de correção de luminância (Sim na Etapa So_2), o interprevisor 126 gera a imagem de previsão enquanto realiza um processo de correção de luminância (Etapa So_3). Em outras palavras, a imagem de previsão é gerada usando LIC. Ao determinar a não realização de um processo de correção de luminância (Não na Etapa So_2), o interprevisor 126 gera uma imagem de previsão por meio da realização da compensação de movimento normal sem realizar um processo de correção de luminância (Etapa So_4).
COMPENSAÇÃO DE MOVIMENTO> OBMC
[0248] Deve-se observar que um sinal de interprevisão pode ser gerado usando informações de movimento para um bloco vizinho, além de informações de movimento para o bloco atual obtidas a partir da estimativa de movimento. Mais especificamente, o sinal de interprevisão pode ser gerado em unidades de um sub-bloco no bloco atual por meio da realização de uma adição ponderada de um sinal de previsão com base nas informações de movimento obtidas a partir da estimativa de movimento (na figura de referência) e um sinal de previsão com base em informações de movimento para um bloco vizinho (na figura atual). Tal interprevisão (compensação de movimento) também é conhecida como compensação de movimento de bloco sobreposto (OBMC).
[0249] No modo OBMC, as informações que indicam um tamanho de sub-bloco para OBMC (referido como, por exemplo, um tamanho de bloco OBMC) podem ser sinalizadas no nível de sequência. Ademais, as informações que indicam se deve ser aplicado o modo OBMC (referido como, por exemplo, um sinalizador OBMC) podem ser sinalizadas no nível CU. Deve-se observar que a sinalização de tais informações não precisa necessariamente ser realizada no nível de sequência e nível de CU, e pode ser realizada em outro nível (por exemplo, no nível de figura, nível de fatia, nível de bloco, nível de CTU, ou nível de sub-bloco).
[0250] Exemplos do modo OBMC serão descritos em mais detalhes. As Figuras 35 e 36 são um fluxograma e um diagrama conceitual para ilustrar um esboço de um processo de correção de imagem de previsão realizado por um processo de OBMC.
[0251] Em primeiro lugar, conforme ilustrado na Figura 36, uma imagem de previsão (Pred) é obtida por meio de compensação de movimento normal usando um vetor de movimento (MV) atribuído ao bloco alvo de processamento (atual). Na Figura 36, a seta "MV" aponta uma figura de referência e indica a que o bloco atual da figura atual se refere a fim de obter uma imagem de previsão.
[0252] Em seguida, uma imagem de previsão (Pred_L) é obtida por meio da aplicação de um vetor de movimento (MV_L) que já foi derivado para o bloco codificado vizinho à esquerda do bloco atual para o bloco atual (reutilizando o vetor de movimento para o bloco atual ) O vetor de movimento (MV_L) é indicado por uma seta "MV_L" que indica uma figura de referência de um bloco atual. Uma primeira correção de uma imagem de previsão é realizada por meio da sobreposição de duas imagens de previsão Pred e Pred_L. Isso fornece um efeito de mesclar o limite entre os blocos vizinhos.
[0253] Da mesma maneira, uma imagem de previsão (Pred_U) é obtida por meio da aplicação de um vetor de movimento (MV_U) que já foi derivado para o bloco codificado vizinho acima do bloco atual para o bloco atual (reutilizando o vetor de movimento para o bloco atual). O vetor de movimento (MV_U) é indicado por uma seta "MV_U" que indica uma figura de referência de um bloco atual. Uma segunda correção de uma imagem de previsão é realizada por meio da sobreposição da imagem de previsão Pred_U às imagens de previsão (por exemplo, Pred e Pred_L) nas quais a primeira correção foi realizada. Isso fornece um efeito de mesclar o limite entre os blocos vizinhos. A imagem de previsão obtida pela segunda correção é aquela em que o limite entre os blocos vizinhos foi mesclado (suavizado), e portanto é a imagem de previsão final do bloco atual.
[0254] Embora o exemplo acima seja um método de correção de dois caminhos que usa blocos vizinhos esquerdo e superior, deve-se observar que o método de correção pode ser um método de correção de três ou mais caminhos que usam também o bloco vizinho direito e/ou o bloco vizinho inferior.
[0255] Deve-se observar que a região em que tal sobreposição é realizada pode ser apenas parte de uma região próxima a um limite de bloco em vez da região de pixel de todo o bloco.
[0256] Deve-se observar que o processo de correção da imagem de previsão de acordo com OBMC para obter uma imagem de previsão Pred de uma figura de referência por meio da sobreposição de imagem de previsão adicional Pred_L e Pred_U foi descrito acima. No entanto, quando uma imagem de previsão é corrigida com base em uma pluralidade de imagens de referência, um processo semelhante pode ser aplicado a cada uma da pluralidade de figuras de referência. Em tal caso, após as imagens de previsão corrigidas serem obtidas das respectivas figuras de referência por meio da realização da correção de imagem OBMC com base na pluralidade de figuras de referência, as imagens de previsão corrigidas obtidas são ainda sobrepostas para obter a imagem de previsão final.
[0257] Deve-se observar que, em OBMC, a unidade de um bloco atual pode ser a unidade de um bloco de previsão ou a unidade de um sub-bloco obtido por divisão adicional do bloco de previsão.
[0258] Um exemplo de um método para determinar se deve ser aplicado um processo OBMC é um método para usar um obmc_flag que é um sinal que indica se deve ser aplicado um processo OBMC. Como um exemplo específico, um codificador determina se o bloco atual pertence a uma região com movimento complicado. O codificador define o obmc_flag para um valor de "1" quando o bloco pertence a uma região com movimento complicado e aplica um processo OBMC durante a codificação, e define o obmc_flag para um valor de "0" quando o bloco não pertence a uma região que tem movimento complicado e codifica o bloco sem aplicar um processo OBMC. O decodificador comuta entre a aplicação e a não aplicação de um processo OBMC por meio da decodificação do obmc_flag escrito na transmissão (por exemplo, uma sequência compactada) e por meio da decodificação do bloco ao comutar entre a aplicação e a não aplicação do processo OBMC de acordo com o valor de sinalização.
[0259] O interprevisor 126 gera uma imagem de previsão retangular para um bloco de corrente retangular no exemplo acima. No entanto, o interprevisor 126 pode gerar uma pluralidade de imagens de previsão, em que cada uma tem uma forma diferente de um retângulo para o bloco corrente retangular, e pode combinar a pluralidade de imagens de previsão para gerar a imagem de previsão retangular final. A forma diferente de um retângulo pode ser, por exemplo, um triângulo.
[0260] A Figura 37 é um diagrama conceitual para ilustrar a geração de duas imagens de previsão triangulares.
[0261] O interprevisor 126 gera uma imagem de previsão triangular por meio da realização da compensação de movimento de uma primeira partição que tem uma forma triangular em um bloco atual usando um primeiro MV da primeira partição, para gerar uma imagem de previsão triangular. Da mesma maneira, o interprevisor 126 gera uma imagem de previsão triangular por meio da realização de compensação de movimento de uma segunda partição que tem uma forma triangular em um bloco atual usando um segundo MV da segunda partição, para gerar uma imagem de previsão triangular. O interprevisor 126, então, gera uma imagem de previsão com a mesma forma retangular que a forma retangular do bloco atual por meio da combinação dessas imagens de previsão.
[0262] Deve-se observar que, embora a primeira divisão e a segunda partição sejam triângulos no exemplo ilustrado na Figura 37, a primeira partição e a segunda partição podem ser trapézios ou outras formas diferentes umas das outras. Adicionalmente, embora o bloco atual inclua duas partições no exemplo ilustrado na Figura 37, o bloco atual pode incluir três ou mais partições.
[0263] Em adição, a primeira partição e a segunda partição podem se sobrepor uma à outra. Em outras palavras, a primeira partição e a segunda partição podem incluir a mesma região de pixel. Neste caso, uma imagem de previsão para um bloco atual pode ser gerada usando uma imagem de previsão na primeira divisão e uma imagem de previsão na segunda partição.
[0264] Em adição, embora um exemplo em que uma imagem de previsão seja gerada para cada uma das duas partições usando interprevisão, uma imagem de previsão pode ser gerada para pelo menos uma partição usando intraprevisão.
COMPENSAÇÃO DE MOVIMENTO> BIO
[0265] A seguir, um método para derivar um vetor de movimento é descrito. Primeiro, será descrito um modo para derivar um vetor de movimento com base em um modelo que presume movimento linear uniforme. Este modo também é conhecido como modo de fluxo óptico bidirecional (BIO).
[0266] A Figura 38 é um diagrama conceitual para ilustrar um modelo que presume movimento linear uniforme. Na Figura 38, (vx, vy) indica um vetor de velocidade e τ0 e τ1 indicam distâncias temporais entre uma figura atual (Cur Pic) e duas figuras de referência (Ref0, Ref1). (MVx0, MVy0) indicam os vetores de movimento correspondentes à figura de referência Ref0, e (MVx1, MVy1) indicam os vetores de movimento correspondentes à figura de referência Ref1.
[0267] Aqui, sob a suposição de movimento linear uniforme exibida por meio dos vetores de velocidade (vx, vy), (MVx0, MVy0) e (MVx1, MVy1) são representados como (vxτ0, vyτ0) e (−vxτ1, −vyτ1), respectivamente, e a seguinte equação de fluxo óptico (2) pode ser empregada.
Figure img0003
[0268] Aqui, I (k) indica um valor luma compensado por movimento da figura de referência k (k = 0, 1). Esta equação de fluxo óptico mostra que a soma de (i) o tempo derivado do valor luma, (ii) o produto da velocidade horizontal e o componente horizontal do gradiente espacial de uma figura de referência, e (iii) o produto da velocidade vertical e o componente vertical do gradiente espacial de uma figura de referência é igual a zero. Um vetor de movimento de cada bloco obtido a partir, por exemplo, de uma lista de mesclagem pode ser corrigido em unidades de um pixel, com base em uma combinação da equação de fluxo óptico e interpolação de Hermite.
[0269] Deve-se observar que um vetor de movimento pode ser derivado no lado do decodificador usando um método diferente de derivar um vetor de movimento com base em um modelo que presume movimento linear uniforme. Por exemplo, um vetor de movimento pode ser derivado em unidades de um sub-bloco com base em vetores de movimento de blocos vizinhos.
COMPENSAÇÃO DE MOVIMENTO> LIC
[0270] A seguir, um exemplo de um modo no qual uma imagem de previsão (previsão) é gerada usando um processo de compensação de iluminação local (LIC) será descrito.
[0271] A Figura 39 é um diagrama conceitual para ilustrar um exemplo de um método de geração de imagem de previsão usando um processo de correção de luminância realizado por meio de um processo LIC.
[0272] Primeiro, um MV é derivado de uma figura de referência codificada e uma figura de referência correspondente ao bloco atual é obtida.
[0273] A seguir, as informações que indicam como o valor luma mudou entre a figura de referência e a figura atual são extraídas para o bloco atual. Essa extração é realizada com base nos valores de pixel luma para a região de referência vizinha esquerda codificada (região de referência circundante) e a região de referência vizinha superior codificada (região de referência circundante) e o valor de pixel luma na posição correspondente na figura de referência especificada por meio do MV derivado. Um parâmetro de correção de luminância é calculado usando as informações que indicam como o valor de luma mudou.
[0274] A imagem de previsão para o bloco atual é gerada por meio da realização de um processo de correção de luminância no qual o parâmetro de correção de luminância é aplicado à figura de referência na figura de referência especificada pelo MV.
[0275] Deve-se observar que a forma da região de referência circundante ilustrada na Figura 39 é apenas um exemplo; a região de referência circundante pode ter uma forma diferente.
[0276] Ademais, embora o processo no qual uma imagem de previsão é gerada a partir de uma única figura de referência tenha sido descrito aqui, os casos em que uma imagem de previsão é gerada a partir de uma pluralidade de figuras de referência podem ser descritos da mesma maneira. A imagem de previsão pode ser gerada após a realização de um processo de correção de luminância das imagens de referência obtidas a partir das figuras de referência da mesma maneira como descrito acima.
[0277] Um exemplo de um método para determinar se deve ser aplicado um processo LIC é um método para usar um lic_flag, que é um sinal que indica se o processo LIC deve ser aplicado. Como um exemplo específico, o codificador determina se o bloco atual pertence a uma região com alteração de luminância. O codificador define o lic_flag para um valor de "1" quando o bloco pertence a uma região com uma alteração de luminância e aplica um processo LIC ao codificar, e define o lic_flag para um valor de "0" quando o bloco não pertence a uma região que tem uma mudança de luminância e codifica o bloco atual sem aplicar um processo LIC. O decodificador pode decodificar o lic_flag escrito na transmissão e decodificar o bloco atual por meio da comutação entre a aplicação e a não aplicação de um processo LIC de acordo com o valor de sinalização.
[0278] Um exemplo de um método diferente para determinar se um processo LIC deve ser aplicado é um método de determinação de acordo com se um processo LIC foi aplicado a um bloco circundante. Em um exemplo específico, quando o modo de mesclagem é usado no bloco atual, se um processo LIC foi aplicado na codificação do bloco codificado circundante selecionado ao derivar o MV no processo de modo de mesclagem é determinado. De acordo com o resultado, a codificação é realizada ao comutar entre a aplicação e a não aplicação de um processo LIC. É de observar que, também neste exemplo, os mesmos processos são aplicados em processos do lado do decodificador.
[0279] Uma modalidade do processo de correção de luminância (LIC) descrito com referência à Figura 39 é descrito em detalhes abaixo.
[0280] Em primeiro lugar, o interprevisor 126 deriva um vetor de movimento para obter uma figura de referência correspondente a um bloco atual a ser codificado a partir de uma figura de referência que é uma imagem codificada.
[0281] Em seguida, o interprevisor 126 extrai informações que indicam como o valor luma da figura de referência foi alterado para o valor luma da figura atual, usando o valor de pixel luma de uma região de referência circundante codificada que fica à esquerda ou acima do bloco atual e o valor luma na posição correspondente na figura de referência especificada por meio de um vetor de movimento e calcula um parâmetro de correção de luminância. Por exemplo, presume-se que o valor do pixel luma de um determinado pixel na região de referência circundante na figura atual é p0, e que o valor do pixel luma do pixel correspondente ao pixel dado na região de referência circundante na figura de referência é p1. O interprevisor 126 calcula os coeficientes A e B para otimizar A × p1 + B = p0 como o parâmetro de correção de luminância para uma pluralidade de pixels na região de referência circundante.
[0282] Em seguida, o interprevisor 126 realiza um processo de correção de luminância usando o parâmetro de correção de luminância para a figura de referência na figura de referência especificada pelo vetor de movimento, para gerar uma imagem de previsão para o bloco atual. Por exemplo, presume-se que o valor do pixel luma na figura de referência é p2 e que o valor do pixel luma com correção de luminância da imagem de previsão é p3. O interprevisor 126 gera a imagem de previsão após ser submetido ao processo de correção de luminância por meio do cálculo de A × p2 + B = p3 para cada um dos pixels na figura de referência.
[0283] Deve-se observar que a forma da região de referência circundante ilustrada na Figura 39 é um exemplo; uma forma diferente da forma da região de referência circundante pode ser usada. Em adição, parte da região de referência circundante ilustrada na Figura 39 podem ser usados. Por exemplo, uma região com um determinado número de pixels extraídos a partir de cada um dentre um pixel vizinho superior e um pixel vizinho esquerdo pode ser usada como uma região de referência circundante. O número determinado de pixels pode ser predeterminado.
[0284] Em adição, a região de referência circundante não está limitada a uma região vizinha ao bloco atual e pode ser uma região que não é vizinha ao bloco atual. No exemplo ilustrado na Figura 39, a região de referência circundante na figura de referência é uma região especificada por um vetor de movimento em uma figura atual, a partir de uma região de referência circundante na figura atual. No entanto, uma região especificada por outro vetor de movimento também é possível. Por exemplo, o outro vetor de movimento pode ser um vetor de movimento em uma região de referência circundante na figura atual.
[0285] Embora as operações realizadas pelo codificador 100 tenham sido descritas aqui, deve-se observar que o decodificador 200 normalmente executa operações semelhantes.
[0286] Deve-se observar que o processo LIC pode ser aplicado não apenas ao luma, mas também ao croma. Neste momento, um parâmetro de correção pode ser derivado individualmente para cada um de Y, Cb e Cr, ou um parâmetro de correção comum pode ser usado para qualquer um de Y, Cb e Cr.
[0287] Em adição, o processo LIC pode ser aplicado em unidades de um sub-bloco. Por exemplo, um parâmetro de correção pode ser derivado usando uma região de referência circundante em um subbloco atual e uma região de referência circundante em um sub-bloco de referência em uma figura de referência especificada por um MV do sub-bloco atual.
CONTROLADOR DE PREVISÃO
[0288] O interprevisor 128 seleciona um dentre um sinal de intraprevisão (uma emissão de sinal do intraprevisor 124) e um sinal de interprevisão (uma emissão de sinal do previsor interno 126) e emite o sinal selecionado para o subtrator 104 e somador 116 como um sinal de previsão.
[0289] Conforme ilustrado na Figura 1, em vários tipos de exemplos de codificador, o controlador de previsão 128 pode emitir um parâmetro de previsão que é inserido no codificador de entropia 110. O codificador de entropia 110 pode gerar um fluxo de bits codificado (ou uma sequência), com base no parâmetro de previsão que é inserido do controlador de previsão 128 e coeficientes quantizados que são inseridos do quantizador 108. O parâmetro de previsão pode ser usado em um decodificador. O decodificador pode receber e decodificar o fluxo de bits codificado e realizar os mesmos processos que os processos de previsão realizados pelo intraprevisor 124, interprevisor 126 e controlador de previsão 128. O parâmetro de previsão pode incluir (i) um sinal de previsão de seleção (por exemplo, um vetor de movimento, um tipo de previsão ou um modo de previsão usado pelo intraprevisor 124 ou interprevisor 126), ou (ii) um índice opcional, uma sinalização, ou um valor que é baseado em um processo de previsão realizado em cada um dentre o intraprevisor 124, o interprevisor 126 e o controlador de previsão 128, ou que indica o processo de previsão.
EXEMPLO DE MONTAGEM DO CODIFICADOR
[0290] A Figura 40 é um diagrama de blocos que ilustra um exemplo de montagem do codificador 100. O codificador 100 inclui processador a1 e memória a2. Por exemplo, a pluralidade de elementos constituintes do codificador 100 ilustrado na Figura 1 são montados no processador a1 e na memória a2 ilustrada na Figura 40
[0291] O processador a1 é um conjunto de circuitos que realiza o processamento de informações e é acessível à memória a2. Por exemplo, o processador a1 é um conjunto de circuitos eletrônico geral ou dedicado que codifica um vídeo. O processador a1 pode ser um processador como uma CPU. Em adição, o processador a1 pode ser um agregado de uma pluralidade de circuitos eletrônicos. Em adição, por exemplo, o processador a1 pode assumir as funções de dois ou mais elementos constituintes dentre a pluralidade de elementos constituintes do codificador 100 ilustrado na Figura 1, etc.
[0292] A memória a2 é dedicada ou memória geral para armazenar informações que são usadas pelo processador a1 para codificar um vídeo. A memória a2 pode ser um conjunto de circuitos eletrônico e pode ser conectada ao processador a1. Em adição, a memória a2 pode ser incluída no processador a1. Em adição, a memória a2 pode ser um agregado de uma pluralidade de circuitos eletrônicos. Em adição, a memória a2 pode ser um disco magnético, um disco óptico ou semelhante, ou pode ser representada como um armazenamento, uma mídia de gravação ou semelhante. Em adição, a memória a2 pode ser memória não volátil ou memória volátil.
[0293] Por exemplo, a memória a2 pode armazenar um vídeo a ser codificado ou um fluxo de bits correspondente a um vídeo codificado. Em adição, a memória a2 pode armazenar um programa para fazer com que o processador a1 codifique um vídeo.
[0294] Em adição, por exemplo, a memória a2 pode assumir as funções de dois ou mais elementos constituintes para armazenar informações da pluralidade de elementos constituintes do codificador 100 ilustrado na Figura 1, etc. Por exemplo, a memória a2 pode assumir as funções de memória de bloco 118 e memória de quadro 122 ilustrada na Figura 1 Mais especificamente, a memória a2 pode armazenar um bloco reconstruído, uma figura reconstruída, etc.
[0295] Deve-se observar que, no codificador 100, todos dentre a pluralidade de elementos constituintes indicados na Figura 1, etc. podem não ser implementados e todos os processos descritos acima podem não ser realizados. Parte dos elementos constituintes indicados na Figura 1, etc. podem ser incluídos em outro dispositivo, ou parte dos processos descritos acima podem ser realizados por outro dispositivo.
DECODIFICADOR
[0296] Em seguida, um decodificador capaz de decodificar uma emissão de sinal codificado (fluxo de bits codificado), por exemplo, a partir do codificador 100 descrito acima, será descrito. A Figura 41 é um diagrama de blocos que ilustra uma configuração funcional do decodificador 200 de acordo com uma modalidade. O decodificador 200 é um decodificador de vídeo que decodifica um vídeo em unidades de um bloco.
[0297] Conforme ilustrado na Figura 41, o decodificador 200 inclui o decodificador de entropia 202, o quantizador inverso 204, o transformador inverso 206, o somador 208, a memória de bloco 210, o filtro em loop 212, a memória de quadro 214, o intraprevisor 216, o interprevisor 218 e o controlador de previsão 220.
[0298] O decodificador 200 é implementado como, por exemplo, um processador genérico e memória. Neste caso, quando um programa de software armazenado na memória é executado pelo processador, o processador funciona como decodificador de entropia 202, quantizador inverso 204, transformador inverso 206, somador 208, filtro em loop 212, intraprevisor 216, interprevisor 218 e controlador de previsão 220. Alternativamente, o decodificador 200 pode ser implementado como um ou mais circuitos eletrônicos dedicados correspondentes ao decodificador de entropia 202, quantizador inverso 204, transformador inverso 206, somador 208, filtro em loop 212, intraprevisor 216, interprevisor 218 e controlador de previsão 220.
[0299] Doravante no presente documento, um fluxo geral de processos realizados pelo decodificador 200 é descrito e, em seguida, cada um dos elementos constituintes incluídos no decodificador 200 será descrito.
FLUXO GERAL DO PROCESSO DE DECODIFICAÇÃO
[0300] A Figura 42 é um fluxograma que ilustra um exemplo de um processo geral de decodificação realizado por meio do decodificador 200.
[0301] Em primeiro lugar, o decodificador de entropia 202 do decodificador 200 identifica um padrão de divisão de um bloco com um tamanho fixo (por exemplo, 128 × 128 pixels) (Etapa Sp_1). Este padrão de divisão é um padrão de desdobramento selecionado por meio do codificador 100. O decodificador 200 então executa os processos da Etapa Sp_2 a Sp_6 para cada um dentre uma pluralidade de blocos do padrão de divisão.
[0302] Em outras palavras, o decodificador de entropia 202 decodifica (especificamente, decodifica entropia) coeficientes quantizados codificados e um parâmetro de previsão de um bloco atual a ser decodificado (também referido como um bloco atual) (Etapa Sp_2).
[0303] Em seguida, o quantizador inverso 204 realiza a quantização inversa da pluralidade de coeficientes quantizados e o transformador inverso 206 realiza a transformada inversa do resultado, para restaurar uma pluralidade de resíduos de previsão (isto é, um bloco de diferença) (Etapa Sp_3).
[0304] Em seguida, o processador de previsão incluindo todo ou parte do intraprevisor 216, interprevisor 218 e controlador de previsão 220 gera um sinal de previsão (também referido como um bloco de previsão) do bloco atual (Etapa Sp_4).
[0305] Em seguida, o somador 208 adiciona o bloco de previsão ao bloco de diferença para gerar uma imagem reconstruída (também referida como um bloco de imagem decodificada) do bloco atual (Etapa Sp_5).
[0306] Quando a imagem reconstruída é gerada, o filtro em loop 212 realiza a filtragem da imagem reconstruída (Etapa Sp_6).
[0307] O decodificador 200 determina então se a decodificação de toda a figura foi concluída (Etapa Sp_7). Ao determinar que a decodificação ainda não foi concluída (Não na Etapa Sp_7), o decodificador 200 executa repetidamente os processos que começam na Etapa Sp_1.
[0308] Conforme ilustrado, os processos das etapas Sp_1 a Sp_7 são realizados sequencialmente pelo decodificador 200. Alternativamente, dois ou mais dos processos podem ser realizados em paralelo, a ordem de processamento de dois ou mais dos processos pode ser modificada, etc.
DECODIFICADOR DE ENTROPIA
[0309] O decodificador de entropia 202 decodifica por entropia um fluxo de bits codificado. Mais especificamente, por exemplo, a aritmética do decodificador de entropia 202 decodifica um fluxo de bits codificado em um sinal binário. O decodificador de entropia 202, então, debinariza o sinal binário. Com isso, o decodificador de entropia 202 emite coeficientes quantizados de cada bloco para o quantizador inverso 204. O decodificador de entropia 202 pode emitir um parâmetro de previsão incluído em um fluxo de bits codificado (ver Figura 1) para o intraprevisor 216, o interprevisor 218 e o controlador de previsão 220. O interprevisor 216, o interprevisor 218 e o controlador de previsão 220 em uma modalidade são capazes de executar os mesmos processos de previsão que aqueles realizados por meio do intraprevisor 124, interprevisor 126 e controlador de previsão 128 no lado do codificador.
QUANTIZADOR INVERSO
[0310] Quantizador inverso 204 quantiza de modo inverso coeficientes quantizados de um bloco a ser decodificado (doravante no presente documento como um bloco atual) que são entradas a partir do decodificador de entropia 202. Mais especificamente, o quantizador inverso 204 quantiza de modo inverso coeficientes quantizados do bloco atual, com base nos parâmetros de quantização correspondentes aos coeficientes quantizados. O quantizador inverso 204, então, emite os coeficientes de transformada quantizada de modo inverso do bloco corrente para o transformador inverso 206.
TRANSFORMADOR INVERSO
[0311] O transformador inverso 206 restaura erros de previsão pela transformada inversa dos coeficientes de transformada que são entradas do quantizador inverso 204.
[0312] Por exemplo, quando as informações analisadas a partir de um fluxo de bits codificado indicam que EMT ou AMT deve ser aplicado (por exemplo, quando um sinalizador AMT é verdadeiro), o transformador inverso 206 transforma os coeficientes de transformada do bloco atual com base nas informações que indicam a transformada analisada modelo.
[0313] Ademais, por exemplo, quando a informação analisada a partir de um fluxo de bits codificado indica que NSST deve ser aplicado, o transformador inverso 206 aplica uma transformada inversa secundária aos coeficientes de transformada.
SOMADOR
[0314] O somador 208 reconstrói o bloco atual por meio da edição de erros de previsão que são entradas do transformador inverso 206 e amostras de previsão que são entradas do controlador de previsão 220. O somador 208, então, emite o bloco reconstruído para a memória de bloco 210 e o filtro em loop 212.
MEMÓRIA DE BLOCO
[0315] A memória de bloco 210 é o armazenamento para armazenar blocos em uma figura a ser decodificada (doravante referida como uma figura atual) e a ser referida na intraprevisão. Mais especificamente, a memória de bloco 210 armazena a emissão de blocos reconstruídos do somador 208.
FILTRO EM LOOP
[0316] O filtro em loop 212 aplica um filtro em loop aos blocos reconstruídos pelo somador 208 e emite os blocos reconstruídos filtrados para a memória de quadro 214, dispositivo de exibição, etc.
[0317] Quando a informação que indica ON ou OFF de um ALF analisado a partir de um fluxo de bits codificado indica que um ALF está ON, um filtro entre uma pluralidade de filtros é selecionado com base na direção e atividade de gradientes locais e o filtro selecionado é aplicado ao bloco reconstruído.
MEMÓRIA DE QUADRO
[0318] A memória de quadro 214 é, por exemplo, armazenamento para armazenar figuras de referência para uso em interprevisão e também é referida como um quadro de armazenamento temporário. Mais especificamente, a memória de quadro 214 armazena um bloco reconstruído filtrado pelo filtro em loop 212.
PROCESSADOR DE PREVISÃO (INTRAPREVISOR, INTERPREVISOR, CONTROLE DE PREVISÃO)
[0319] A Figura 43 é um fluxograma que ilustra um exemplo de um processo realizado por um processador de previsão do decodificador 200. Deve-se observar que o processador de previsão inclui todos ou parte dos seguintes elementos constituintes: intraprevisor 216; interprevisor 218; e controlador de previsão 220.
[0320] O processador de previsão gera uma imagem de previsão de um bloco atual (Etapa Sq_1). Essa imagem de previsão também é conhecida como sinal de previsão ou bloco de previsão. Deve-se observar que o sinal de previsão é, por exemplo, um sinal de intraprevisão ou um sinal de interprevisão. Especificamente, o processador de previsão gera a imagem de previsão do bloco atual usando uma imagem reconstruída que já foi obtida por meio da geração de um bloco de previsão, geração de um bloco de diferença, geração de um bloco de coeficiente, restauração de um bloco de diferença e geração de um bloco de imagem decodificado.
[0321] A imagem reconstruída pode ser, por exemplo, uma imagem em uma figura de referência, ou uma imagem de um bloco decodificado em uma figura atual que é a figura incluindo o bloco atual. O bloco decodificado na figura atual é, por exemplo, um bloco vizinho do bloco atual.
[0322] A Figura 44 é um fluxograma que ilustra outro exemplo de um processo realizado pelo processador de previsão do decodificador 200.
[0323] O processador de previsão determina um método ou um modo para gerar uma imagem de previsão (Etapa Sr_1). Por exemplo, o método ou modo pode ser determinado com base em, por exemplo, um parâmetro de previsão, etc.
[0324] Ao determinar um primeiro método como um modo para gerar uma imagem de previsão, o processador de previsão gera uma imagem de previsão de acordo com o primeiro método (Etapa Sr_2a). Ao determinar um segundo método como um modo para gerar uma imagem de previsão, o processador de previsão gera uma imagem de previsão de acordo com o segundo método (Etapa Sr_2b). Ao determinar um terceiro método como um modo para gerar uma imagem de previsão, o processador de previsão gera uma imagem de previsão de acordo com o terceiro método (Etapa Sr_2c).
[0325] O primeiro método, o segundo método e o terceiro método podem ser métodos mutuamente diferentes para gerar uma imagem de previsão. Cada um dentre primeiro até o terceiro método pode ser um método de interprevisão, um método de intraprevisão ou outro método de previsão. A imagem reconstruída acima descrita pode ser usada nestes métodos de previsão.
INTRAPREVISOR
[0326] O intraprevisor 216 gera um sinal de previsão (sinal de intraprevisão) por meio da realização de intraprevisão ao se referir a um bloco ou blocos na figura atual armazenada na memória de bloco 210, com base no modo de intraprevisão analisado a partir do fluxo de bits codificado. Mais especificamente, o intraprevisor 216 gera um sinal de intraprevisão por meio da realização de intraprevisão ao se referir a amostras (por exemplo, valores de luma e/ou croma) de um bloco ou blocos vizinhos ao bloco atual e, em seguida, emite o sinal de intraprevisão para o controlador de previsão 220
[0327] Deve-se observar que quando um modo de intraprevisão em que um bloco de luma é referido na intraprevisão de um bloco de croma é selecionado, o previsor interno 216 pode prever o componente de croma do bloco corrente com base no componente de luma do bloco corrente.
[0328] Ademais, quando a informação analisada a partir de um fluxo de bits codificado indica que o PDPC deve ser aplicado, o intraprevisor 216 corrige os valores de pixel intraprevistos com base em gradientes de pixel de referência horizontal/vertical.
INTERPREVISOR
[0329] O interprevisor 218 prevê o bloco atual ao se referir a uma figura de referência armazenada na memória de quadro 214. A interprevisão é realizada em unidades de um bloco atual ou um sub-bloco (por exemplo, um bloco 4 × 4) no bloco atual. Por exemplo, o interprevisor 218 gera um sinal de interprevisão do bloco atual ou sub-bloco por meio da realização de compensação de movimento usando informações de movimento (por exemplo, um vetor de movimento) analisadas a partir de um fluxo de bits codificado (por exemplo, uma emissão de parâmetro de previsão de decodificador de entropia 202) e emite o sinal de interprevisão para o controlador de previsão 220.
[0330] Deve-se observar que quando a informação analisada a partir do fluxo de bits codificado indica que o modo OBMC deve ser aplicado, o interprevisor 218 gera o sinal de interprevisão usando informações de movimento de um bloco vizinho, além de informações de movimento do bloco atual obtido de estimativa de movimento.
[0331] Ademais, quando a informação analisada a partir do fluxo de bits codificado indica que o modo FRUC deve ser aplicado, o interprevisor 218 deriva informações de movimento por meio da realização de estimativa de movimento de acordo com o método de correspondência de padrão (correspondência bilateral ou correspondência de modelo) analisado a partir do fluxo de bits codificado. O interprevisor 218 então executa a compensação de movimento (previsão) usando as informações de movimento derivadas.
[0332] Ademais, quando o modo BIO deve ser aplicado, o interprevisor 218 deriva um vetor de movimento com base em um modelo que presume movimento linear uniforme. Ademais, quando a informação analisada a partir do fluxo de bits codificado indica que o modo de previsão de compensação de movimento afim deve ser aplicado, o interprevisor 218 deriva um vetor de movimento de cada sub-bloco com base em vetores de movimento de blocos vizinhos.
DERIVAÇÃO MV> MODO INTER NORMAL
[0333] Quando a informação analisada a partir de um fluxo de bits codificado indica que o modo inter normal deve ser aplicado, o interprevisor 218 deriva um MV com base na informação analisada a partir do fluxo de bits codificado e realiza compensação de movimento (previsão) usando o MV.
[0334] A Figura 45 é um fluxograma que ilustra um exemplo de interprevisão no modo inter normal no decodificador 200.
[0335] O interprevisor 218 do decodificador 200 realiza compensação de movimento para cada bloco. O interprevisor 218 obtém uma pluralidade de candidatos de MV para um bloco atual com base em informações, tais como MVs de uma pluralidade de blocos decodificados temporalmente ou espacialmente circundando o bloco atual (Etapa Ss_1). Em outras palavras, o interprevisor 218 gera uma lista de candidatos de MV.
[0336] Em seguida, o interprevisor 218 extrai N (um número inteiro de 2 ou mais) candidatos de MV a partir da pluralidade de candidatos de MV obtidos na Etapa Ss_1, como candidatos ao previsor de vetor de movimento (também referidos como candidatos ao previsor de MV) de acordo com uma ordem de prioridade determinada (Etapa Ss_2). Deve-se observar que a ordem de prioridade pode ser determinada com antecedência para cada um dentre os candidatos previsores de N MV.
[0337] Em seguida, o interprevisor 218 decodifica as informações de seleção de previsor de vetor de movimento a partir de uma transmissão de entrada (ou seja, um fluxo de bits codificado) e seleciona um candidato a previsor de MV a partir dos candidatos ao previsor N MV usando as informações de seleção do previsor de vetor de movimento decodificado, como um vetor de movimento (também referido como um previsor de MV) do bloco atual (Etapa Ss_3).
[0338] Em seguida, o interprevisor 218 decodifica uma diferença de MV do fluxo de entrada e deriva um MV para um bloco atual adicionando um valor de diferença que é a diferença de MV decodificada e um previsor de vetor de movimento selecionado (Etapa Ss_4).
[0339] Por último, o interprevisor 218 gera uma imagem de previsão para o bloco atual por meio da realização de compensação de movimento do bloco atual usando o MV derivado e a figura de referência decodificada (Etapa Ss_5).
CONTROLADOR DE PREVISÃO
[0340] O controlador de previsão 220 seleciona o sinal de intraprevisão ou o sinal de interprevisão e emite o sinal de previsão selecionado para o somador 208. Como um todo, as configurações, funções e processos do controlador de previsão 220, intraprevisor 216 e interprevisor 218 no lado do decodificador podem corresponder às configurações, funções e processos do controlador de previsão 128, intraprevisor 124 e interprevisor 126 no lado do codificador.
EXEMPLO DE MONTAGEM DO DECODIFICADOR
[0341] A Figura 46 é um diagrama de blocos que ilustra um exemplo de montagem do decodificador 200. O decodificador 200 inclui processador b1 e memória b2. Por exemplo, a pluralidade de elementos constituintes do decodificador 200 ilustrado na Figura 41 são montados no processador b1 e memória b2 ilustrados na Figura 46
[0342] O processador b1 é um conjunto de circuitos que executa o processamento de informações e é acessível à memória b2. Por exemplo, o processador b1 é um conjunto de circuitos eletrônico geral ou dedicado que decodifica um vídeo (ou seja, um fluxo de bits codificado). O processador b1 pode ser um processador como uma CPU. Em adição, o processador b1 pode ser um agregado de uma pluralidade de circuitos eletrônicos. Em adição, por exemplo, o processador b1 pode assumir as funções de dois ou mais elementos constituintes dentre a pluralidade de elementos constituintes do decodificador 200 ilustrado na Figura 41, etc.
[0343] A memória b2 é dedicada ou memória geral para armazenar informações que são usadas pelo processador b1 para decodificar um fluxo de bits codificado. A memória b2 pode ser um conjunto de circuitos eletrônico e pode ser conectada ao processador b1. Em adição, a memória b2 pode ser incluída no processador b1. Em adição, a memória b2 pode ser um agregado de uma pluralidade de circuitos eletrônicos. Em adição, a memória b2 pode ser um disco magnético, um disco óptico ou semelhante, ou pode ser representado como um armazenamento, uma mídia de gravação ou semelhante. Em adição, a memória b2 pode ser uma memória não volátil ou uma memória volátil.
[0344] Por exemplo, a memória b2 pode armazenar um vídeo ou um fluxo de bits. Em adição, a memória b2 pode armazenar um programa para fazer com que o processador b1 decodifique um fluxo de bits codificado.
[0345] Em adição, por exemplo, a memória b2 pode assumir as funções de dois ou mais elementos constituintes para armazenar informações dentre a pluralidade de elementos constituintes do decodificador 200 ilustrado na Figura 41, etc. Especificamente, a memória b2 pode assumir as funções de bloco de memória 210 e memória de quadro 214 ilustrada na Figura 41 Mais especificamente, a memória b2 pode armazenar um bloco reconstruído, uma figura reconstruída, etc
[0346] Deve-se observar que, no decodificador 200, toda a pluralidade de elementos constituintes ilustrados na Figura 41, etc. podem não ser implementados e todos os processos descritos acima podem não ser realizados. Parte dos elementos constituintes indicados na Figura 41, etc. podem ser incluídos em outro dispositivo, ou parte dos processos descritos acima podem ser realizados por outro dispositivo.
DEFINIÇÃO DE TERMOS
[0347] Os respectivos termos podem ser definidos conforme indicado abaixo como exemplos.
[0348] Uma figura é um conjunto de amostras de luma em formato monocromático ou um conjunto de amostras de luma e dois conjuntos correspondentes de amostras de croma nos formatos de cores 4: 2: 0, 4: 2: 2 e 4: 4: 4. Uma figura pode ser um quadro ou um campo.
[0349] Um quadro é a composição de um campo superior e um campo inferior, onde as linhas de amostra 0, 2, 4,... se originam do campo superior e as linhas de amostra 1, 3, 5,... se originam do campo inferior.
[0350] Uma fatia é um número inteiro de unidades de árvore de codificação contidas em um segmento de fatia independente e todos os segmentos de fatia dependentes subsequentes (se houver) que precedem o segmento seguinte de fatia independente (se houver) dentro da mesma unidade de acesso.
[0351] Um ladrilho é uma região retangular de blocos de árvore de codificação dentro de uma coluna de ladrilho específica e uma linha de ladrilho específica em uma figura. Um ladrilho pode ser uma região retangular do quadro que se destina a ser decodificada e codificada de forma independente, embora a filtragem de loop através das bordas do ladrilho ainda possa ser aplicada.
[0352] Um bloco é um conjunto M × N (coluna M por linha N) de amostras ou um conjunto M × N de coeficientes de transformada. Um bloco pode ser uma região quadrada ou retangular de pixels incluindo uma matriz Luma e duas matrizes croma.
[0353] Uma unidade de árvore de codificação (CTU) pode ser um bloco de árvore de codificação de amostras de luma de uma figura que tem três conjuntos de amostra, ou dois blocos de árvore de codificação correspondentes de amostras de croma. Alternativamente, uma CTU pode ser um bloco de árvore de codificação de amostras de uma de uma figura monocromática e uma figura que é codificada usando três planos de cores separados e estruturas de sintaxe usadas para codificar as amostras.
[0354] Um superbloco pode ser um bloco quadrado de 64 × 64 pixels que consiste em 1 ou 2 blocos de informações de modo ou é particionado recursivamente em quatro blocos de 32 × 32, que podem ser posteriormente particionados.
ASPECTO 1:
[0355] O acesso aleatório de um fluxo de bits é implementado pela inserção de uma figura de ponto de acesso aleatório intra (IRAP) em uma posição de acesso aleatório no fluxo de bits. Dito de outra forma, na codificação de vídeo, uma figura de IRAP fornece um ponto de acesso aleatório dentro de um fluxo de bits e a reprodução (decodificação) pode ser realizada mesmo no meio do fluxo de bits, a partir da figura de IRAP. Especificamente, uma figura de IRAP é uma figura acessível aleatoriamente e é uma figura da qual o fluxo de bits pode ser corretamente decodificado, mesmo quando as figuras anteriores não estão disponíveis.
[0356] Adicionalmente, as figuras que precedem uma figura de IRAP na ordem de emissão são chamadas de figuras dianteiras e as figuras que seguem uma figura de IRAP na ordem de emissão são chamadas de figuras traseiras.
[0357] Mais especificamente, uma figura traseira é uma figura a ser emitida após a figura de IRAP na ordem de emissão e é uma figura que também segue a figura de IRAP associada na ordem de decodificação. Durante a decodificação, uma figura posterior não usa nenhuma figura de referência localizada antes da figura de IRAP associada na ordem de emissão e, portanto, quando a figura de IRAP associada foi decodificada, a figura posterior pode ser decodificada usando a figura de IRAP associada.
[0358] Por outro lado, uma figura dianteira é uma figura a ser emitida antes da figura de IRAP na ordem de emissão e é uma figura que segue a figura de IRAP associada na ordem de decodificação. Normalmente, durante a decodificação, uma figura dianteira usa figuras de referência localizadas à frente da figura de IRAP associada e, portanto, não é decodificável mesmo quando a figura de IRAP acessada aleatoriamente é decodificada. Por esta razão, quando o decodificador 200 realiza o acesso aleatório do fluxo de bits e começa a decodificar a partir da figura de IRAP como uma operação típica, as figuras dianteiras da figura de IRAP são ignoradas e apenas as figuras traseiras da figura de IRAP são decodificadas e geradas.
[0359] Como no HEVC, a codificação de vídeo neste aspecto também contém os conceitos de figuras IRAP, figuras dianteiras e figuras traseiras.
[0360] No entanto, HEVC contém uma restrição de que as figuras dianteiras de uma figura de IRAP precisam ser decodificadas antes de todas as figuras traseiras da figura de IRAP em ordem de decodificação.
[0361] Essa restrição no HEVC é excessivamente restritiva para a codificação entrelaçada de conteúdo. Um exemplo de restrição excessiva será descrito com referência à Figura 47
[0362] A Figura 47 é um diagrama que ilustra um exemplo de uma estrutura de codificação de conteúdo codificado entrelaçado. A Figura 47 ilustra uma estrutura de codificação na qual o conteúdo é codificado de modo entrelaçado pela codificação de cada campo dentro de cada unidade de acesso.
[0363] Na Figura 47, IDR0 e I8, que são as figuras expressas em cinza, indicam figuras IRAP. Adicionalmente, o número na figura indica a ordem de decodificação (ordem de codificação) e as setas indicam a figura a que se refere. Deve-se observar que IDR é a abreviatura de atualização de decodificação instantânea e significa que todas as figuras que seguem na ordem de decodificação são decodificáveis. As figuras traseiras de IDR0 são B1 a B7. Adicionalmente, as figuras traseiras de I8 são B9 e B14 a B19, e as figuras dianteiras de I8 são B10 a B13. Deve-se observar que B significa que a referência em ambas as direções é possível.
[0364] Conforme ilustrado na Figura 47, em uma estrutura de codificação na qual o conteúdo é codificado de modo entrelaçado por meio da codificação de cada campo dentro de cada unidade de acesso, espera-se que um campo inferior seja decodificado após o campo superior incluído em uma figura única junto com o campo inferior na ordem de decodificação. Por exemplo, no exemplo da Figura 47, espera-se que B9 seja decodificado após I8 na ordem de decodificação.
[0365] No entanto, I8 é uma figura de campo superior IRAP e B9 é a figura de campo inferior posterior. Especificamente, uma vez que a restrição acima existe em HEVC, a decodificação de B9, que é uma figura de campo traseira, imediatamente após a figura de campo superior I8 do IRAP na ordem de decodificação é proibida porque isso significaria que B9 seria decodificado antes das figuras dianteiras de I8.
[0366] Desta maneira, em HEVC, uma estrutura de codificação tal como a ilustrada na Figura 47 é proibido devido à existência da restrição acima. Por esta razão, é necessário evitar a restrição acima, tornando I8 uma figura I normal, por exemplo, em vez de uma figura de IRAP, e assim a eficiência da codificação pode se deteriorar. Em adição, uma vez que não é possível realizar o controle usando a figura de IRAP ao realizar o acesso aleatório durante a decodificação, o processamento pode se tornar complicado.
[0367] Em vista disso, no Aspecto 1, um método que modifica (relaxa) a restrição acima em HEVC para permitir a codificação e decodificação usando uma estrutura de codificação como ilustrado na Figura 47 serão descritos.
[0368] Mais especificamente, no presente aspecto, a restrição acima pode ser relaxada para uma restrição que permite que apenas uma figura posterior seja decodificada adiante, entre a figura de IRAP associada e as figuras dianteiras na ordem de decodificação. De acordo com a restrição relaxada da maneira acima, no máximo uma figura posterior associada à figura de IRAP pode ser decodificada antes de todas as figuras dianteiras associadas à figura de IRAP em ordem de decodificação. No presente aspecto, relaxar a restrição em HEVC desta maneira permite uma estrutura de codificação tal como a ilustrada na Figura 47 para ser usado.
[0369] Doravante no presente documento, será descrito um exemplo de um método de decodificação que aplica a restrição (a restrição relaxada) no presente aspecto no caso de iniciar a decodificação de uma figura de IRAP.
[0370] A Figura 48 é um fluxograma que ilustra um exemplo de um método de decodificação realizado por meio do decodificador 200 no caso de iniciar a decodificação de uma figura de IRAP, de acordo com o Aspecto 1 da modalidade.
[0371] Primeiro, o decodificador de entropia 202 do decodificador 200 decodifica uma figura de IRAP no meio de um fluxo de bits (S10).
[0372] Em seguida, o decodificador de entropia 202 verifica se o tipo da próxima figura alvo, que é o próximo alvo de decodificação, é uma figura traseira (S11).
[0373] Quando a próxima figura alvo é uma figura traseira na etapa S11 (sim na etapa S11), o decodificador de entropia 202 decodifica apenas aquela figura alvo, isto é, aquela figura traseira(S12). Deve-se observar que, quando a próxima figura alvo não é uma figura posterior na etapa S11 (não em S11), o decodificador de entropia 202 prossegue para a etapa S13.
[0374] Em seguida, o decodificador de entropia 202 ignora a decodificação de todas as figuras dianteiras associadas à figura de IRAP decodificada na etapa S10 (S13). Isso ocorre porque todas as figuras dianteiras não podem ser decodificadas, uma vez que as figuras de referência localizadas à frente da figura de IRAP decodificada na etapa S10 na ordem de emissão não foram decodificadas.
[0375] Em seguida, o decodificador de entropia 202 decodifica todas as figuras restantes dentro do fluxo de bits associado à figura de IRAP decodificada na etapa S10 (S14).
[0376] Embora o processamento pelo decodificador 200 seja descrito acima como um exemplo, o processamento por meio do codificador 100 é o mesmo. A diferença é que, uma vez que a figura de IRAP é decodificada de modo a permitir acesso aleatório durante a decodificação, a codificação é realizada desde o início e não no meio do fluxo de bits. Consequentemente, o codificador de entropia 110 do codificador 100 precisa realizar, sem pular, a codificação correspondente à etapa S13. Isso ocorre porque as figuras de referência localizadas à frente da figura de IRAP decodificada na etapa S10 na ordem de emissão também foram codificadas. Os outros processos são basicamente comuns entre o codificador e o decodificador, em que a única diferença é se um sinal necessário deve ser codificado na transmissão ou decodificado a partir da transmissão.
EFEITOS DO ASPECTO 1
[0377] De acordo com o Aspecto 1, ao codificar uma figura acessível aleatoriamente, o codificador 100 e o método de codificação podem ser capazes de realizar a codificação usando uma estrutura de codificação com melhor eficiência de codificação. Em adição, o codificador 100, ao codificar usando uma estrutura de codificação com melhor eficiência de codificação, pode reduzir a carga de processamento para procurar uma figura acessível aleatoriamente durante a decodificação e, portanto, pode ser possível melhorar a eficiência de processamento.
[0378] Adicionalmente, de acordo com o Aspecto 1, ao decodificar uma figura acessível aleatoriamente, o decodificador 200 e o método de decodificação podem ser capazes de realizar a decodificação usando uma estrutura de codificação com melhor eficiência de codificação. Em adição, o decodificador 200, ao codificar usando uma estrutura de codificação com melhor eficiência de codificação, pode reduzir a carga de processamento para procurar uma figura acessível aleatoriamente durante a decodificação e, portanto, pode ser possível melhorar a eficiência de processamento.
[0379] Portanto, no Aspecto 1, quando o conteúdo deve ser codificado de modo entrelaçado pela codificação de cada campo dentro de cada unidade de acesso, pode ser possível usar uma estrutura de codificação com melhor eficiência de codificação.
ASPECTO 2:
[0380] Doravante no presente documento, como Aspecto 2, será descrito um exemplo de um caso em que a restrição em HEVC ou uma modificação da restrição em HEVC é aplicada dependendo do conteúdo do fluxo de bits.
[0381] Quando o conteúdo deve ser codificado de modo entrelaçado pela codificação de cada campo dentro de cada unidade de acesso, a informação a ser codificada entrelaçada precisa ser codificada no fluxo de bits. Então, como um método de codificação de tais informações, existe um método que usa um field_seq_flag. Este field_seq_flag pode normalmente ser transmitido como um sinal dentro do conjunto de parâmetros de sequência (SPS). Especificamente, field_seq_flag pode ser usado como uma sinalização que indica se o conteúdo é codificado de modo entrelaçado com um campo por unidade de acesso.
[0382] Aqui, o caso em que field_seq_flag indica 1 indica que a figura incluída em cada unidade de acesso dentro do fluxo de bits é uma figura de campo. Neste caso, no presente aspecto, é aplicada uma restrição que permite que apenas uma figura posterior seja decodificada à frente entre a figura de IRAP associada e as figuras dianteiras na ordem de decodificação.
[0383] Por outro lado, quando field_seq_flag indica 0, a mesma restrição que em HEVC é aplicada. Especificamente, é aplicada uma restrição de que as figuras dianteiras da figura de IRAP precisam ser decodificadas à frente de todas as figuras traseiras da figura de IRAP em ordem de decodificação. Dito de outra forma, quando field_seq_flag indica 0, uma restrição que proíbe a decodificação de figuras traseiras à frente, entre a figura de IRAP associada e as figuras dianteiras, é aplicada.
[0384] Desse modo, usando field_seq_flag, uma estrutura de codificação como a ilustrada na Figura 47 pode ser usado quando field_seq_flag indica 1.
[0385] Para resumir, a restrição no presente aspecto é conforme descrito abaixo.
[0386] (1) quando field_seq_flag indica 0 e a figura que é o próximo alvo de decodificação é uma figura dianteira, todas as figuras dianteiras são decodificadas antes de todas as figuras traseiras associadas à mesma figura de IRAP em ordem de decodificação
[0387] (2) quando field_seq_flag indica 1, no máximo uma figura traseira pode ser decodificada antes de todas as figuras dianteiras associadas à mesma figura de IRAP na ordem de decodificação.
[0388] Doravante no presente documento, será descrito um exemplo de um método de decodificação que aplica a restrição no presente aspecto no caso de iniciar a decodificação de uma figura de IRAP.
[0389] A Figura 49 é um fluxograma que ilustra um exemplo de um método de decodificação realizado pelo decodificador no caso de iniciar a decodificação de uma figura de IRAP, de acordo com o Aspecto 2 da modalidade.
[0390] Primeiro, o decodificador de entropia 202 do decodificador 200 decodifica uma figura de IRAP no meio de um fluxo de bits (S20).
[0391] Em seguida, o decodificador de entropia 202 verifica o valor de field_seq_flag incluído no fluxo de bits e verifica se field_seq_flag é igual a 1 (S21).
[0392] Quando field_seq_flag é igual a 1 na etapa S21 (sim em S21), o decodificador de entropia 202 verifica se o tipo da próxima figura alvo que é o próximo alvo de decodificação é uma figura posterior (S22). Deve-se observar que, quando field_seq_flag não é igual a 1 na etapa S21 (não em S21), o decodificador de entropia 202 prossegue para a etapa S25 a ser descrito posteriormente.
[0393] Quando a próxima figura alvo é uma figura traseira na etapa S22 (sim na etapa S22), o decodificador de entropia 202 decodifica apenas aquela figura alvo, isto é, aquela figura traseira(S23). Deve-se observar que, quando a próxima figura alvo não é uma figura posterior na etapa S22 (não em S22), o decodificador de entropia 202 prossegue para a etapa S25 a ser discutida posteriormente.
[0394] Em seguida, o decodificador de entropia 202 atribui a figuras traseira decodificada na etapa S23 ao segundo campo da figura de IRAP (S24).
[0395] Aqui, para descrever com referência à Figura 47, por exemplo, a figura de IRAP decodificada na etapa S20 é, por exemplo, I8, e a figuras traseira decodificada na etapa S23 é, por exemplo, B9. Neste caso, I8 é uma figura de campo superior IRAP e B9 é uma figura de campo inferior posterior. Por esta razão, uma vez que B9 se torna uma figura de campo inferior IRAP devido à sua relação com I8, B9 é atribuído ao segundo campo da figura de IRAP na etapa S24.
[0396] Especificamente, quando a figura de IRAP decodificada na etapa S20 é uma figura de campo superior, o decodificador de entropia 202 atribui a figura posterior decodificada na etapa S23 como a figura de campo inferior do mesmo quadro incluindo a figura de IRAP. Por outro lado, quando a figura de IRAP decodificada na etapa S20 é uma figura de campo inferior, o decodificador de entropia 202 atribui a figuras traseira decodificada na etapa S23 como a figura de campo superior do mesmo quadro incluindo a figura de IRAP.
[0397] Em seguida, o decodificador de entropia 202 ignora a decodificação de todas as figuras dianteiras associadas à figura de IRAP decodificada na etapa S20 (S25). Isso ocorre porque todas as figuras dianteiras não podem ser decodificadas, uma vez que as figuras de referência localizadas à frente da figura de IRAP decodificada na etapa S20 na ordem de emissão não foram decodificadas.
[0398] Em seguida, o decodificador de entropia 202 decodifica todas as figuras restantes dentro do fluxo de bits associado à figura de IRAP decodificada na etapa S20 (S26)
[0399] Embora o processamento pelo decodificador 200 seja descrito acima como um exemplo, o processamento por meio do codificador 100 é o mesmo. O ponto de diferença é que, uma vez que a figura de IRAP é decodificada de modo a permitir acesso aleatório durante a decodificação, a codificação é realizada desde o início e não no meio do fluxo de bits, conforme descrito no Aspecto 1. Consequentemente, o codificador de entropia 110 do codificador 100 precisa realizar, sem pular, a codificação correspondente à etapa S25. Isso ocorre porque as figuras de referência localizadas à frente da figura de IRAP decodificada na etapa S20 na ordem de emissão também foram codificadas. Os outros processos são basicamente comuns entre o codificador e o decodificador, em que a única diferença é se um sinal necessário deve ser codificado na transmissão ou decodificado a partir da transmissão.
EFEITOS DO ASPECTO 2
[0400] De acordo com o Aspecto 2, uma restrição obtida por meio do relaxamento da restrição em HEVC é aplicada quando o conteúdo é codificado de modo entrelaçado pela codificação de cada campo dentro de cada unidade de acesso, e uma restrição que é a mesma que a restrição anterior em HEVC é aplicada quando a codificação entrelaçada não é realizada. Consequentemente, ao realizar a codificação entrelaçada, pode ser possível usar uma estrutura de codificação com melhor eficiência de codificação.
[0401] Mais especificamente, de acordo com o Aspecto 2, ao codificar uma figura acessível aleatoriamente, o codificador 100 e o método de codificação podem aplicar uma restrição obtida por meio do relaxamento da restrição em HEVC, para conteúdo codificado entrelaçado, apenas ao escrever, no SPS, um valor de uma sinalização que indica se o conteúdo é ou não codificado entrelaçado. Consequentemente, uma vez que uma figura de IRAP se torna disponível no meio de uma transmissão em um conteúdo codificado de modo entrelaçado e a codificação da sintaxe descrita em uma camada abaixo da camada na qual a sintaxe do cabeçalho da unidade NAL é descrita pode ser omitida, pode ser possível realizar codificação usando uma estrutura de codificação que pode melhorar ainda mais a eficiência da codificação.
[0402] Em adição, uma vez que o codificador 100 pode aplicar uma restrição obtida por meio do relaxamento da restrição em HEVC, ao conteúdo codificado entrelaçado, apenas ao escrever, no SPS, um valor de uma sinalização que indica se o conteúdo é ou não codificado entrelaçado, a carga de processamento a busca por uma figura acessível aleatoriamente durante a decodificação pode ser reduzida e, portanto, pode ser possível melhorar a eficiência do processamento.
[0403] Adicionalmente, de acordo com o Aspecto 2, ao decodificar uma figura acessível aleatoriamente, o decodificador 200 e o método de decodificação podem ser capazes de realizar a decodificação usando uma estrutura de codificação com melhor eficiência de codificação. Em adição, o decodificador 200, ao codificar usando uma estrutura de codificação com melhor eficiência de codificação, pode reduzir a carga de processamento para procurar uma figura acessível aleatoriamente durante a decodificação e, portanto, pode ser possível melhorar a eficiência de processamento. Em contraste, em HEVC, não era possível procurar uma figura acessível aleatoriamente durante a decodificação, a menos que o processamento, como verificação de sintaxe, etc, em uma camada abaixo do cabeçalho da unidade NAL seja realizado e, portanto, em comparação com o aspecto presente, a carga de processamento é maior.
[0404] Deve-se observar que, embora no Aspecto 1 e no Aspecto 2, uma estrutura de resultado de um conteúdo codificado de modo entrelaçado é exemplificada pelo caso em que a figura de IRAP é uma figura de campo superior na Figura 47, não se limita ao caso acima. O mesmo pode ser dito mesmo quando a figura de IRAP é uma figura de campo inferior, conforme ilustrado na Figura 50 Aqui, a Figura 50 é um diagrama que ilustra outro exemplo de uma estrutura de codificação de conteúdo codificado entrelaçado. Os mesmos sinais de referência e números são dados a elementos que são iguais aos da Figura 47 e, portanto, sua descrição será omitida.
VARIAÇÕES
[0405] No Aspecto 2 acima, o caso de relaxamento da restrição em HEVC quando field_seq_flag indica 1 é descrito, a presente invenção não está limitada a este caso. A restrição em HEVC pode ser excluída quando field_seq_flag indicar 1.
[0406] Especificamente, quando field_seq_flag indica 1, é possível não ter nenhuma restrição em relação à ordem entre as figuras dianteiras e finais. Mais especificamente, um codificador que codifica uma imagem inclui conjunto de circuitos e memória acoplados aos conjuntos de circuitos e, em operação, os conjuntos de circuitos codificam a imagem de acordo com uma estrutura de codificação incluindo uma figura de IRAP, figuras dianteiras a serem emitidas antes da figura de IRAP na ordem de emissão, e as figuras traseiras a serem produzidas após a figura de IRAP na ordem de emissão. Então, é suficiente que, quando a imagem é codificada, quando uma sinalização que indica se o conteúdo está codificado de modo entrelaçado com um campo por unidade de acesso indica 1, o conjunto de circuitos codifica cada uma das figuras traseiras e cada uma das figuras dianteiras sem restrição na ordem de codificação. Adicionalmente, um decodificador que decodifica uma imagem inclui conjunto de circuitos e memória acoplados ao conjunto de circuitos e, em operação, o conjunto de circuitos decodifica a imagem de acordo com uma estrutura de codificação incluindo uma figura de IRAP, o que leva as figuras a serem emitidas antes da figura de IRAP na ordem de emissão, e figuras traseiras a serem emitidas após a figura de IRAP na ordem de emissão. Então, é suficiente que, quando a imagem é decodificada, quando uma sinalização que indica se o conteúdo está codificado de modo entrelaçado com um campo por unidade de acesso indica 1, o conjunto de circuitos decodifica cada uma das figuras traseiras e cada uma das figuras dianteiras sem restrição na ordem de codificação.
[0407] Por outro lado, quando field_seq_flag indica 0, é suficiente que a mesma restrição que em HEVC seja aplicada. Especificamente, quando field_seq_flag indica 0, é suficiente aplicar uma restrição de que as figuras dianteiras da figura de IRAP precisam ser decodificadas antes de todas as figuras traseiras da figura de IRAP em ordem de decodificação. Mais especificamente, quando uma sinalização que indica se o conteúdo está codificado de modo entrelaçado com um campo por unidade de acesso indica 0, é suficiente que todas as figuras traseiras sejam codificadas (ou decodificadas) após as figuras dianteiras na ordem de codificação (ou ordem de decodificação).
[0408] Adicionalmente, a sinalização não está limitada a field_seq_flag descrito no Aspecto 2. Especificamente, field_seq_flag pode ser substituído por um nome diferente com o mesmo significado ou um parâmetro diferente, desde que possa ser usado como uma sinalização que indica se o conteúdo é codificado de modo entrelaçado com um campo por unidade de acesso. Em adição, a informação que indica field_seq_flag e sua substituição, que tem um nome diferente, mas o mesmo significado ou que é um parâmetro diferente, pode ser codificada em, por exemplo, informação de realce suplementar (SEI) que é uma região de cabeçalho diferente do SPS.
EXEMPLO DE IMPLEMENTAÇÃO DE CODIFICADOR
[0409] A Figura 51 é um diagrama de blocos que ilustra um exemplo de implementação do codificador 100 de acordo com a modalidade. O codificador 100 inclui conjunto de circuitos 160 e memória 162. Por exemplo, os componentes do codificador 100 ilustrados na Figura 1 são implementados pelos conjuntos de circuitos 160 e memória 162 ilustrados na Figura 51
[0410] O conjunto de circuitos 160 é um conjunto de circuitos que realiza o processamento de informações e é capaz de acessar a memória 162. Por exemplo, o conjunto de circuitos 160 é um conjunto de circuitos eletrônico dedicado ou de uso geral que codifica o vídeo. Os conjuntos de circuitos 160 podem ser um processador, como uma CPU. Adicionalmente, o conjunto de circuitos 160 pode ser um conjunto de circuitos eletrônicos. Adicionalmente, por exemplo, os conjuntos de circuitos 160 podem cumprir as funções de componentes incluídos na pluralidade de componentes do codificador 100 ilustrado na Figura 1 e assim por diante, exceto para componentes para armazenamento de informações.
[0411] A memória 162 é uma memória dedicada ou de uso geral na qual as informações para a codificação de vídeo pelos conjuntos de circuitos 160 são armazenadas. A memória 162 pode ser um conjunto de circuitos eletrônico e pode ser acoplada ao conjunto de circuitos 160. Adicionalmente, a memória 162 pode ser incluída no conjunto de circuitos 160. Adicionalmente, a memória 162 pode ser um conjunto de circuitos eletrônicos. Adicionalmente, a memória 162 pode ser um disco magnético, um disco óptico ou semelhante, e pode ser referida como um armazenamento, mídia de gravação e assim por diante. Adicionalmente, a memória 162 pode ser uma memória não volátil ou uma memória volátil.
[0412] Por exemplo, vídeo codificado ou um fluxo de bits correspondente ao vídeo codificado pode ser armazenado na memória 162. Adicionalmente, um programa para fazer com que os conjuntos de circuitos 160 codifiquem o vídeo pode ser armazenado na memória 162.
[0413] Adicionalmente, por exemplo, a memória 162 pode cumprir as funções de componentes para armazenar informações, entre a pluralidade de componentes do codificador 100 ilustrado na Figura 1 e assim por diante. Especificamente, a memória 162 pode cumprir as funções de memória de bloco 118 e memória de quadro 122 ilustrada na Figura 1 Mais especificamente, blocos reconfigurados e figuras reconfiguradas podem ser armazenados na memória 162.
[0414] Deve-se observar que, o codificador 100 não precisa necessariamente incluir todos os componentes ilustrados na Figura 1 e assim por diante, e o codificador 100 não precisa necessariamente realizar todos os processos descritos acima. Parte dos componentes ilustrados na Figura 1, e assim por diante, podem ser incluídos em outros dispositivos, e parte dos processos descritos acima podem ser executados por outros dispositivos. Então, ao fornecer parte dos componentes ilustrados na Figura 1 e assim por diante, e realizar parte dos processos descritos acima no codificador 100, o codificador 100 pode realizar de modo eficaz o processamento de previsão no modo de interprevisão.
[0415] A seguir, um exemplo da operação do codificador 100 ilustrado na Figura 51 será descrito.
[0416] A Figura 52 é um fluxograma que ilustra um exemplo da operação do codificador 100 ilustrado na Figura 51 Por exemplo, o codificador 100 ilustrado na Figura 51 realiza as operações ilustradas na Figura 52 ao codificar vídeo.
[0417] Especificamente, o conjunto de circuitos 160 do codificador 100, em operação, realiza o processo descrito abaixo. Em outras palavras, em primeiro lugar, ao codificar a imagem de acordo com uma estrutura de codificação incluindo uma figura de ponto de acesso aleatório intra (IRAP), figuras dianteiras a serem emitidas antes da figura de IRAP na ordem de emissão e figuras traseiras a serem emitidas após a figura de IRAP na ordem de emissão, o conjunto de circuitos 160 codifica no máximo uma figura traseira entre as figuras traseiras, antes das figuras dianteiras na ordem de codificação (S311). Em seguida, o conjunto de circuitos 160 codifica as figuras traseiras diferentes de, no máximo, uma figura traseira, após as figuras dianteiras na ordem de codificação (S312).
[0418] Consequentemente, ao codificar uma figura acessível aleatoriamente, o codificador 100 pode ser capaz de realizar a codificação usando uma estrutura de codificação com melhor eficiência de codificação. Em adição, o codificador 100, ao codificar usando uma estrutura de codificação com melhor eficiência de codificação, pode reduzir a carga de processamento para procurar uma figura acessível aleatoriamente durante a decodificação e, portanto, pode ser possível melhorar a eficiência de processamento.
EXEMPLO DE IMPLEMENTAÇÃO DE DECODIFICADOR
[0419] A Figura 53 é um diagrama de blocos que ilustra um exemplo de implementação do decodificador 200 de acordo com a modalidade. O decodificador 200 inclui conjunto de circuitos 260 e memória 262. Por exemplo, os componentes do decodificador 200 ilustrado na Figura 41 são implementados pelos conjuntos de circuitos 260 e memória 262 ilustrados na Figura 53
[0420] O conjunto de circuitos 260 é um conjunto de circuitos que executa o processamento de informações e é capaz de acessar a memória 262. Por exemplo, o conjunto de circuitos 260 é um conjunto de circuitos eletrônico dedicado ou de uso geral que decodifica vídeo. O conjunto de circuitos 260 pode ser um processador, como uma CPU. Adicionalmente, o conjunto de circuitos 260 pode ser um conjunto de circuitos eletrônicos. Adicionalmente, por exemplo, os conjuntos de circuitos 260 podem cumprir as funções de componentes incluídos na pluralidade de componentes do decodificador 200 ilustrado na Figura 41 e assim por diante, exceto para componentes para armazenamento de informações.
[0421] A memória 262 é uma memória dedicada ou de uso geral na qual as informações para a decodificação de vídeo pelos conjuntos de circuitos 260 são armazenadas. A memória 262 pode ser um conjunto de circuitos eletrônico e pode ser acoplada ao conjunto de circuitos 260. Adicionalmente, a memória 262 pode ser incluída no conjunto de circuitos 260. Adicionalmente, a memória 262 pode ser um conjunto de circuitos eletrônicos. Adicionalmente, a memória 262 pode ser um disco magnético, um disco óptico ou semelhante, e pode ser referida como um armazenamento, mídia de gravação e assim por diante. Adicionalmente, a memória 262 pode ser uma memória não volátil ou uma memória volátil.
[0422] Por exemplo, um fluxo de bits correspondente ao vídeo codificado ou vídeo correspondente a um fluxo de bits decodificado pode ser armazenado na memória 262. Adicionalmente, um programa para fazer com que os conjuntos de circuitos 260 decodifiquem o vídeo pode ser armazenado na memória 262.
[0423] Adicionalmente, por exemplo, a memória 262 pode cumprir as funções de componentes para armazenar informações, entre a pluralidade de componentes do decodificador 200 ilustrado na Figura 41 e assim por diante. Especificamente, a memória 262 pode cumprir as funções de memória de bloco 210 e memória de quadro 214 ilustrada na Figura 41 Mais especificamente, blocos reconfigurados e figuras reconfiguradas podem ser armazenados na memória 262.
[0424] Deve-se observar que, o decodificador 200 não precisa necessariamente incluir todos os componentes ilustrados na Figura 41 e assim por diante, e o decodificador 200 não precisa necessariamente executar todos os processos descritos acima. Parte dos componentes ilustrados na Figura 41 e assim por diante, podem ser incluídos em outros dispositivos e parte dos processos descritos acima podem ser executados por outros dispositivos. Então, ao fornecer parte dos componentes ilustrados na Figura 41 e assim por diante, e realizar parte dos processos descritos acima no decodificador 200, o decodificador 200 pode executar com eficiência a compensação de movimento.
[0425] Doravante no presente documento, um exemplo da operação do decodificador 200 ilustrado na Figura 53 serão descritos. A Figura 54 é um fluxograma que ilustra um exemplo da operação do decodificador 200 ilustrado na Figura 53 Por exemplo, o decodificador 200 ilustrado na Figura 53 realiza as operações ilustradas na Figura 54 ao decodificar vídeo.
[0426] Especificamente, o conjunto de circuitos 260 do decodificador 200, em operação, executa o processo descrito abaixo. Em outras palavras, em primeiro lugar, ao decodificar a imagem de acordo com uma estrutura de codificação incluindo uma figura de ponto de acesso aleatório intra (IRAP), figuras dianteiras a serem emitidas antes da figura de IRAP na ordem de emissão e figuras traseiras a serem emitidas após a figura de IRAP em ordem de emissão, o conjunto de circuitos 260 decodifica no máximo uma figura traseira entre as figuras traseiras, antes das figuras dianteiras na ordem de decodificação (S411). Em seguida, o conjunto de circuitos 260 decodifica as figuras traseiras diferentes de, no máximo, uma figura traseira, após as figuras dianteiras na ordem de decodificação (S412).
[0427] Consequentemente, ao decodificar uma figura acessível aleatoriamente, o decodificador 200 pode ser capaz de realizar a decodificação usando uma estrutura de codificação com melhor eficiência de codificação. Em adição, o decodificador 200, ao codificar usando uma estrutura de codificação com melhor eficiência de codificação, pode reduzir a carga de processamento para procurar uma figura acessível aleatoriamente durante a decodificação e, portanto, pode ser possível melhorar a eficiência de processamento.
INFORMAÇÕES SUPLEMENTARES
[0428] Adicionalmente, o codificador 100 e o decodificador 200 de acordo com a presente modalidade podem ser usados como um codificador de imagem e um decodificador de imagem, respectivamente, ou podem ser usados como um codificador de vídeo e um decodificador de vídeo, respectivamente. Alternativamente, cada um dos codificadores 100 e decodificadores 200 pode ser usado como um dispositivo de interprevisão (dispositivo de interprevisão imagens).
[0429] Especificamente, o codificador 100 e o decodificador 200 podem corresponder a apenas interprevisor (interprevisor de figura) 126 e interprevisor (interprevisor de figura) 218, respectivamente. Em adição, outros componentes, como o transformador 106 e o transformador inverso 206, podem ser incluídos em outros dispositivos.
[0430] Na presente modalidade, os respectivos componentes são configurados usando hardware dedicado, mas também podem ser implementados por meio da execução de programas de software adequados para os respectivos componentes. Os respectivos componentes podem ser implementados por uma unidade de execução de programa, como uma CPU ou um processador, ao ler e executar um programa de software gravado em uma mídia de gravação, como um disco rígido ou memória semicondutora.
[0431] Especificamente, cada um dos codificadores 100 e decodificadores 200 pode incluir conjunto de circuitos de processamento e armazenamento que estão eletricamente conectados aos conjuntos de circuitos de processamento e acessíveis aos conjuntos de circuitos de processamento. Por exemplo, o conjunto de circuitos de processamento corresponde aos conjuntos de circuitos 160 ou 260 e o armazenamento corresponde à memória 162 ou 262.
[0432] O conjunto de circuitos de processamento inclui pelo menos um hardware dedicado ou uma unidade de execução de programa e executa processos usando o armazenamento. Adicionalmente, no caso em que o conjunto de circuitos de processamento inclui a unidade de execução do programa, o armazenamento armazena o programa de software a ser executado pela unidade de execução do programa.
[0433] Aqui, o software para implementar o codificador 100 ou decodificador 200, etc., de acordo com a presente modalidade, é um programa conforme descrito abaixo.
[0434] Especificamente, o programa pode fazer com que um computador execute um método de codificação para codificar uma imagem e que inclui codificar a imagem de acordo com uma estrutura de codificação, incluindo uma figura de IRAP, figuras dianteiras a serem emitidas antes da figura de IRAP na ordem de emissão e figuras traseiras para ser emitido após a figura de IRAP na ordem de emissão. A codificação da imagem pode incluir a codificação de no máximo uma figura traseira entre as figuras traseiras, antes das figuras dianteiras na ordem de codificação, e codificar as figuras traseiras diferentes de no máximo uma figura traseira, após as figuras dianteiras na ordem de codificação.
[0435] Alternativamente, o programa pode fazer com que um computador execute uma imagem de decodificação para decodificar uma imagem e que inclui a decodificação da imagem de acordo com uma estrutura de codificação, incluindo uma figura de IRAP, figuras dianteiras a serem emitidas antes da figura de IRAP na ordem de emissão e figuras traseiras a serem emitidas após a figura de IRAP na ordem de emissão. A decodificação da imagem pode incluir a decodificação de no máximo uma figura traseira entre as figuras traseiras, antes das figuras dianteiras na ordem de decodificação, e decodificar as figuras traseiras diferentes de no máximo uma imagem posterior, após as figuras dianteiras na ordem de decodificação.
[0436] Ademais, conforme descrito acima, cada componente pode ser um circuito. Os circuitos podem ser integrados em um único circuito como um todo ou podem ser separados uns dos outros. Ademais, cada componente pode ser implementado como um processador de uso geral ou como um processador dedicado.
[0437] Ademais, um processo realizado por um componente específico pode ser realizado por outro componente. Ademais, a ordem dos processos pode ser alterada ou vários processos podem ser realizados em paralelo. Ademais, um dispositivo de codificação pode incluir o codificador 100 e o decodificador 200.
[0438] Os números ordinais, como o primeiro e o segundo, usados na descrição anterior, podem ser substituídos conforme necessário. Adicionalmente, os números ordinais podem ser atribuídos de novo ou removidos dos componentes.
[0439] Conforme descrito acima, os aspectos do codificador 100 e do decodificador 200 foram descritos com base na modalidade exemplar, mas os aspectos do codificador 100 e do decodificador 200 não estão limitados a essas modalidades exemplares. Várias modificações para cada uma das modalidades exemplares que podem ser concebidas por aqueles versados na técnica e formas configuradas combinando componentes em diferentes modalidades exemplares sem se afastar do espírito da presente invenção podem ser incluídas no escopo dos aspectos do codificador 100 e decodificador 200.
[0440] Um ou mais dentre os aspectos revelados neste documento podem ser realizados combinando pelo menos parte dos outros aspectos na presente invenção. Em adição, um ou mais dos aspectos revelados no presente documento podem ser realizados combinando, com outros aspectos, parte dos processos indicados em qualquer um dos fluxogramas de acordo com os aspectos, parte da configuração de qualquer um dos dispositivos, parte das sintaxes etc.
IMPLEMENTAÇÃO E APLICAÇÃO
[0441] Conforme descrito em cada uma das modalidades acima, cada bloco funcional ou operacional pode ser tipicamente realizado como uma MPU (unidade de microprocessamento) e memória, por exemplo. Ademais, os processos realizados por cada um dos blocos funcionais podem ser realizados como uma unidade de execução de programa, como um processador que lê e executa software (um programa) gravado em uma mídia de gravação, como ROM. O software pode ser distribuído. O software pode ser gravado em uma variedade de mídias de gravação, como memória de semicondutor. Observe que cada bloco funcional também pode ser realizado como hardware (circuito dedicado). Várias combinações de hardware e software podem ser empregadas.
[0442] O processamento descrito em cada uma das modalidades pode ser realizado por meio de processamento integrado usando um único aparelho (sistema) e, alternativamente, pode ser realizado por meio de processamento descentralizado usando uma pluralidade de aparelhos. Ademais, o processador que executa o programa descrito acima pode ser um único processador ou uma pluralidade de processadores. Em outras palavras, o processamento integrado pode ser realizado e, alternativamente, o processamento descentralizado pode ser realizado.
[0443] As modalidades da presente invenção não estão limitadas às modalidades exemplares acima; várias modificações podem ser feitas nas modalidades exemplares, os resultados das quais também estão incluídos no escopo das modalidades da presente invenção.
[0444] Em seguida, exemplos de aplicação do método de codificação de imagem em movimento (método de codificação de imagem) e o método de decodificação de imagem em movimento (método de decodificação de imagem) descritos em cada uma das modalidades acima serão descritos, bem como vários sistemas que implementam os exemplos de aplicação. Tal sistema pode ser caracterizado pelo fato de incluir um codificador de imagem que emprega o método de codificação de imagem, um decodificador de imagem que emprega o método de decodificação de imagem ou um codificador-decodificador de imagem que inclui o codificador e o decodificador de imagem. Outras configurações de tal sistema podem ser modificadas caso a caso.
EXEMPLOS DE USO
[0445] A Figura 55 ilustra uma configuração geral do sistema de fornecimento de conteúdo ex100 adequado para implementar um serviço de distribuição de conteúdo. A área em que o serviço de comunicação é fornecido é dividida em células de tamanhos desejados e as estações base ex106, ex107, ex108, ex109 e ex110, que são estações sem fio fixas no exemplo ilustrado, estão localizadas nas respectivas células.
[0446] No sistema de fornecimento de conteúdo ex100, dispositivos incluindo computador ex111, dispositivo de jogo ex112, câmera ex113, eletrodomésticos ex114 e telefone inteligente ex115 são conectados à internet ex101 através do provedor de serviços de internet ex102 ou rede de comunicações ex104 e estações base ex106 a ex110. O conteúdo que fornece o sistema ex100 pode combinar e conectar qualquer combinação dos dispositivos acima. Em várias implementações, os dispositivos podem ser direta ou indiretamente conectados entre si por meio de uma rede telefônica ou comunicação de campo próximo, em vez de via estações base ex106 a ex110. Adicionalmente, o servidor de transmissão contínua ex103 pode ser conectado a dispositivos incluindo computador ex111, dispositivo de jogo ex112, câmera ex113, eletrodomésticos ex114 e telefone inteligente ex115 via, por exemplo, internet ex101. O servidor de transmissão contínua ex103 também pode ser conectado a, por exemplo, um terminal em um ponto de acesso no avião ex117 via satélite ex116.
[0447] Observe que, em vez de estações base ex106 a ex110, podem ser usados pontos de acesso sem fio ou hotspots. O servidor de transmissão contínua ex103 pode ser conectado à rede de comunicações ex104 diretamente em vez de via internet ex101 ou provedor de serviços de internet ex102, e pode ser conectado ao avião ex117 diretamente em vez de via satélite ex116.
[0448] A câmera ex113 é um dispositivo capaz de capturar imagens estáticas e vídeo, como uma câmera digital. O telefone inteligente ex115 é um dispositivo telefone inteligente, telefone celular ou telefone com sistema de telefonia pessoal (PHS) que pode operar sob os padrões de sistema de comunicações móveis dos sistemas 2G, 3G, 3.9G e 4G, bem como o 5G de próxima geração sistema.
[0449] O aparelho doméstico ex114 é, por exemplo, um refrigerador ou um dispositivo incluído em um sistema de cogeração de célula de combustível doméstico.
[0450] No sistema de fornecimento de conteúdo ex100, um terminal incluindo uma função de captura de imagem e/ou vídeo é capaz de, por exemplo, transmissão contínua ao vivo por meio da conexão ao servidor de transmissão contínua ex103 através, por exemplo, da estação base ex106. Durante a transmissão contínua, um terminal (por exemplo, computador ex111, dispositivo de jogo ex112, câmera ex113, eletrodoméstico ex114, telefone inteligente ex115 ou um terminal em avião ex117) pode realizar o processamento de codificação descrito nas modalidades acima em imagens estáticas ou conteúdo de vídeo capturado por um usuário através do terminal, pode multiplexar dados de vídeo obtidos por meio da codificação e dados de áudio obtidos pela codificação de áudio correspondente ao vídeo e pode transmitir os dados obtidos para o servidor de transmissão contínua ex103. Em outras palavras, o terminal funciona como o codificador de imagem de acordo com um aspecto da presente invenção.
[0451] O servidor de transmissão contínua ex103 transmite dados de conteúdo transmitidos para clientes que solicitam a transmissão. Exemplos de clientes incluem computador ex111, dispositivo de jogo ex112, câmera ex113, eletrodomésticos ex114, telefone inteligente ex115 e terminais dentro do avião ex117, que são capazes de decodificar os dados codificados descritos acima. Os dispositivos que recebem os dados transmitidos podem decodificar e reproduzir os dados recebidos. Em outras palavras, os dispositivos podem funcionar cada um como o decodificador de imagem, de acordo com um aspecto da presente invenção.
PROCESSAMENTO DESCENTRALIZADO
[0452] O servidor de transmissão contínua ex103 pode ser realizado como uma pluralidade de servidores ou computadores entre os quais tarefas como o processamento, gravação e transmissão contínua de dados são divididos. Por exemplo, o servidor de transmissão contínua ex103 pode ser realizado como uma rede de distribuição de conteúdo (CDN) que transmite conteúdo por meio de uma rede conectando vários servidores de borda localizados em todo o mundo. Em um CDN, um servidor de borda fisicamente próximo ao cliente pode ser atribuído dinamicamente ao cliente. O conteúdo é armazenado em cache e transmitido ao servidor de borda para reduzir os tempos de carregamento. No caso de, por exemplo, algum tipo de erro ou alteração na conectividade devido, por exemplo, a um pico de tráfego, é possível transmitir dados de forma estável em altas velocidades, uma vez que é possível evitar partes afetadas da rede, por exemplo, por meio da divisão do processamento entre uma pluralidade de servidores de borda ou comutar as tarefas de transmissão contínua para um servidor de borda diferente e continuar a transmissão contínua.
[0453] A descentralização não se limita apenas à divisão do processamento para transmissão contínua; a codificação dos dados capturados pode ser dividida e executada pelos terminais, no lado do servidor ou em ambos. Em um exemplo, na codificação típica, o processamento é realizado em dois loops. O primeiro loop é para detectar o quão complicada é a imagem quadro-a-quadro ou cena-a-cena, ou detectar a carga de codificação. O segundo loop é para processamento que mantém a qualidade da imagem e melhora a eficiência da codificação. Por exemplo, é possível reduzir a carga de processamento dos terminais e melhorar a qualidade e a eficiência da codificação do conteúdo ao fazer com que os terminais realizem o primeiro loop da codificação e ao fazer com que o lado do servidor que recebeu o conteúdo realize o segundo loop da codificação. Nesse caso, após o recebimento de um pedido de decodificação, é possível que os dados codificados resultantes do primeiro loop realizado por um terminal sejam recebidos e reproduzidos em outro terminal em tempo aproximadamente real. Isso possibilita a realização de uma transmissão contínua em tempo real suave.
[0454] Em outro exemplo, a câmera ex113 ou semelhante extrai uma quantidade de recurso (uma quantidade de recursos ou características) de uma imagem, compacta os dados relacionados à quantidade de recurso como metadados e transmite os metadados compactados para um servidor. Por exemplo, o servidor determina a importância de um objeto com base na quantidade de recursos e altera a precisão da quantização de acordo para realizar a compactação adequada para o significado (ou significado do conteúdo) da imagem. Os dados de quantidade de recursos são particularmente eficazes para melhorar a precisão e a eficiência da previsão do vetor de movimento durante a segunda passagem de compressão realizada por meio do servidor. Ademais, a codificação que tem uma carga de processamento relativamente baixa, como a codificação de comprimento variável (VLC), pode ser tratada por meio do terminal, e a codificação que tem uma carga de processamento relativamente alta, como a codificação aritmética binária adaptável ao contexto (CABAC), pode ser manipulado por meio do servidor.
[0455] Em ainda outro exemplo, há casos em que uma pluralidade de vídeos de aproximadamente a mesma cena são capturados por uma pluralidade de terminais em, por exemplo, um estádio, shopping center ou fábrica. Nesse caso, por exemplo, a codificação pode ser descentralizada por meio da divisão das tarefas de processamento entre a pluralidade de terminais que capturaram os vídeos e, se necessário, outros terminais que não capturaram os vídeos e o servidor, por unidade. As unidades podem ser, por exemplo, grupos de figuras (GOP), figuras ou blocos resultantes da divisão de uma figura. Isso torna possível reduzir os tempos de carregamento e obter uma transmissão contínua mais próxima do tempo real.
[0456] Visto que que os vídeos são aproximadamente da mesma cena, o gerenciamento e/ou instruções podem ser exercidos pelo servidor para que os vídeos capturados pelos terminais possam ser referenciados. Ademais, o servidor pode receber dados codificados dos terminais, alterar a relação de referência entre itens de dados ou corrigir ou substituir as próprias figuras e, em seguida, realizar a codificação. Isso torna possível gerar uma transmissão com maior qualidade e eficiência para os itens individuais de dados.
[0457] Adicionalmente, o servidor pode transmitir dados de vídeo após realizar a transcodificação para converter o formato de codificação dos dados de vídeo. Por exemplo, o servidor pode converter o formato de codificação de MPEG para VP (por exemplo, VP9), pode converter H.264 para H.265, etc.
[0458] Desta maneira, a codificação pode ser realizada por um terminal ou um ou mais servidores. Consequentemente, embora o dispositivo que realiza a codificação seja referido como um "servidor" ou "terminal" na descrição a seguir, alguns ou todos os processos realizados pelo servidor podem ser realizados pelo terminal e, da mesma forma, alguns ou todos os processos realizados pelo terminal podem ser realizados pelo servidor. Isso também se aplica aos processos de decodificação.
3D, MULTIÂNGULO
[0459] Tem havido um aumento no uso de imagens ou vídeos combinados de imagens ou vídeos de diferentes cenas capturadas simultaneamente, ou da mesma cena capturada de diferentes ângulos, por meio de uma pluralidade de terminais, como câmera ex113 e/ou telefone inteligente ex115. Os vídeos capturados por meio dos terminais podem ser combinados com base, por exemplo, na relação posicional relativa obtida separadamente entre os terminais, ou regiões em um vídeo com pontos de recurso correspondentes.
[0460] Em adição a codificação de figuras em movimento bidimensionais, o servidor pode codificar uma imagem estática com base na análise de cena de uma imagem em movimento, automaticamente ou em um ponto no tempo especificado pelo usuário, e transmitir a imagem estática codificada para uma recepção terminal. Adicionalmente, quando o servidor pode obter a relação posicional relativa entre os terminais de captura de vídeo, além de figuras em movimento bidimensionais, o servidor pode gerar a geometria tridimensional de uma cena com base no vídeo da mesma cena capturada de diferentes ângulos. O servidor pode codificar separadamente dados tridimensionais gerados a partir de, por exemplo, uma nuvem de pontos e, com base em um resultado de reconhecimento ou rastreamento de uma pessoa ou objeto usando dados tridimensionais, pode selecionar ou reconstruir e gerar um vídeo a ser transmitido para um terminal de recepção, a partir de vídeos capturados por meio de uma pluralidade de terminais.
[0461] Isso permite que o usuário desfrute de uma cena por meio da seleção livre de vídeos correspondentes aos terminais de captura de vídeo e permite que o usuário aprecie o conteúdo obtido por meio da extração de um vídeo em um ponto de vista selecionado a partir de dados tridimensionais reconstruídos a partir de uma pluralidade de imagens ou vídeos. Adicionalmente, como acontece com o vídeo, o som pode ser gravado de ângulos relativamente diferentes e o servidor pode multiplexar o áudio de um ângulo ou espaço específico com o vídeo correspondente e transmitir o vídeo e áudio multiplexados.
[0462] Nos últimos anos, o conteúdo que é uma composição do mundo real e um mundo virtual, como conteúdo de realidade virtual (VR) e realidade aumentada (AR), também se tornou popular. No caso de imagens VR, o servidor pode criar imagens a partir dos pontos de vista de ambos os olhos esquerdo e direito e realizar a codificação que tolera a referência entre as duas imagens do ponto de vista, como codificação do tipo multi-view (MVC), e, alternativamente, pode codificar as imagens como transmissões separadas sem referência. Quando as imagens são decodificadas como transmissões separadas, as transmissões podem ser sincronizadas ao serem reproduzidas, de modo a recriar um espaço tridimensional virtual de acordo com o ponto de vista do usuário.
[0463] No caso de imagens AR, o servidor pode sobrepor as informações do objeto virtual existente em um espaço virtual às informações da câmera que representam um espaço do mundo real, com base em uma posição tridimensional ou movimento da perspectiva do usuário. O decodificador pode obter ou armazenar informações de objetos virtuais e dados tridimensionais, gerar imagens bidimensionais com base no movimento da perspectiva do usuário e, em seguida, gerar dados sobrepostos por meio da conexão perfeita das imagens. Alternativamente, o decodificador pode transmitir, para o servidor, movimento da perspectiva do usuário, além de uma solicitação de informações do objeto virtual. O servidor pode gerar dados sobrepostos com base em dados tridimensionais armazenados no servidor de acordo com o movimento recebido e codificar e transmitir os dados sobrepostos gerados para o decodificador. Observe que os dados sobrepostos normalmente incluem, além dos valores RGB, um valor α que indica transparência, e o servidor define o valor α para seções diferentes do objeto gerado a partir de dados tridimensionais para, por exemplo, 0, e pode realizar a codificação enquanto essas seções são transparentes. Alternativamente, o servidor pode definir o plano de fundo para um determinado valor RGB, como um croma key, e gerar dados em que outras áreas além do objeto são definidas como plano de fundo. O valor RGB determinado pode ser predeterminado.
[0464] A decodificação de dados transmitidos de forma semelhante pode ser realizada pelo cliente (por exemplo, os terminais), no lado do servidor, ou dividida entre eles. Em um exemplo, um terminal pode transmitir uma solicitação de recepção para um servidor, o conteúdo solicitado pode ser recebido e decodificado por meio de outro terminal e um sinal decodificado pode ser transmitido para um dispositivo com um exibidor. É possível reproduzir dados de alta qualidade de imagem descentralizando o processamento e selecionando o conteúdo de forma adequada, independentemente da capacidade de processamento do próprio terminal de comunicação. Em ainda outro exemplo, enquanto uma TV, por exemplo, está recebendo dados de imagem de grande tamanho, uma região de uma imagem, como um bloco obtido por meio da divisão da imagem, pode ser decodificada e exibida em um terminal pessoal ou terminais de um ou mais espectadores da TV. Isso possibilita que os visualizadores compartilhem uma visão geral, bem como para que cada visualizador verifique sua área atribuída ou inspecione uma região mais detalhadamente de perto.
[0465] Em situações em que uma pluralidade de conexões sem fio é possível em distâncias próximas, médias e distantes, em ambientes internos ou externos, pode ser possível receber conteúdo perfeitamente usando um padrão de sistema de transmissão contínua, como MPEG-DASH. O usuário pode comutar entre os dados em tempo real enquanto seleciona livremente um decodificador ou aparelho de exibição, incluindo o terminal do usuário, exibições dispostas em ambientes internos ou externos, etc. Ademais, ao usar, por exemplo, informações sobre a posição do usuário, a decodificação pode ser realizada enquanto se comuta qual terminal controla a decodificação e qual terminal controla a exibição do conteúdo. Isso torna possível mapear e exibir informações, enquanto o usuário está se movendo em direção a um destino, na parede de um prédio próximo no qual um dispositivo capaz de exibir conteúdo está embutido, ou em parte do solo. Ademais, também é possível comutar a taxa de bits dos dados recebidos com base na acessibilidade aos dados codificados em uma rede, como quando os dados codificados são armazenados em cache em um servidor rapidamente acessível a partir do terminal de recepção, ou quando os dados codificados são copiados para um servidor de ponta em um serviço de entrega de conteúdo.
CODIFICAÇÃO ESCALÁVEL
[0466] A comutação de conteúdo será descrita com referência a um fluxo escalável, ilustrado na Figura 56, que é codificado por compressão através da implementação do método de codificação de figura em movimento descrito nas modalidades acima. O servidor pode ter uma configuração na qual o conteúdo é comutado enquanto faz uso da escalabilidade temporal e/ou espacial de um fluxo, o que é alcançado por meio da divisão e codificação de camadas, conforme ilustrado na Figura. Observe que pode haver uma pluralidade de transmissões individuais com o mesmo conteúdo, mas com qualidade diferente. Em outras palavras, ao determinar qual camada decodificar com base em fatores internos, como a capacidade de processamento no lado do decodificador, e fatores externos, como largura de banda de comunicação, o lado do decodificador pode comutar livremente entre conteúdo de baixa resolução e conteúdo de alta resolução durante a decodificação. Por exemplo, em um caso em que o usuário deseja continuar assistindo, por exemplo em casa em um dispositivo como uma TV conectada à Internet, um vídeo que o usuário assistia anteriormente no telefone inteligente ex115 enquanto estava em trânsito, o dispositivo pode simplesmente decodificar a mesma transmissão até uma camada diferente, o que reduz a carga do servidor.
[0467] Adicionalmente, além da configuração descrita acima, na qual a escalabilidade é alcançada como resultado das figuras que são codificadas por camada, em que a camada de aprimoramento está acima da camada de base, a camada de aprimoramento pode incluir metadados com base em, por exemplo, informações estatísticas na imagem. O lado do decodificador pode gerar conteúdo de alta qualidade de imagem ao realizar imagens de super resolução em uma imagem na camada de base com base nos metadados. A imagem de super resolução pode melhorar a relação SN enquanto mantém a resolução e/ou aumenta a resolução. Os metadados incluem informações para identificar um coeficiente de filtro linear ou não linear, conforme usado no processamento de super resolução, ou informações que identificam um valor de parâmetro no processamento de filtro, aprendizado de máquina ou um método de mínimos quadrados usado no processamento de super resolução.
[0468] Alternativamente, pode ser fornecida uma configuração na qual uma imagem é dividida em, por exemplo, ladrilhos de acordo com, por exemplo, o significado de um objeto na imagem. No lado do decodificador, apenas uma região parcial é decodificada por meio da seleção de um bloco para decodificar. Adicionalmente, ao armazenar um atributo do objeto (pessoa, carro, bola, etc.) e uma posição do objeto no vídeo (coordenadas em imagens idênticas) como metadados, o lado do decodificador pode identificar a posição de um objeto desejado com base em os metadados e determinar qual bloco ou blocos incluem aquele objeto. Por exemplo, conforme ilustrado na Figura 59, os metadados podem ser armazenados usando uma estrutura de armazenamento de dados diferente dos dados de pixel, tal como uma mensagem SEI (informação de melhoria suplementar) em HEVC. Esses metadados indicam, por exemplo, a posição, tamanho ou cor do objeto principal.
[0469] Os metadados podem ser armazenados em unidades de uma pluralidade de figuras, como fluxo, sequência ou unidades de acesso aleatório. O lado do decodificador pode obter, por exemplo, o momento em que uma pessoa específica aparece no vídeo e, ao ajustar as informações de tempo com as informações da unidade de figura, pode identificar uma figura na qual o objeto está presente e pode determinar a posição do objeto na figura.
OTIMIZAÇÃO DA PÁGINA DA WEB
[0470] A Figura 58 ilustra um exemplo de uma tela de exibição de uma página da web no computador ex111, por exemplo. A Figura 59 ilustra um exemplo de uma tela de exibição de uma página da web no telefone inteligente ex115, por exemplo. Conforme ilustrado na Figura 58 e Figura 59, uma página da web pode incluir uma pluralidade de links de imagem que são links para o conteúdo da imagem, e a aparência da página da web pode ser diferente dependendo do dispositivo usado para visualizar a página da web. Quando uma pluralidade de links de imagem são visualizáveis na tela, até que o usuário selecione explicitamente um link de imagem, ou até que o link de imagem esteja no centro aproximado da tela ou todo o link de imagem caiba na tela, o aparelho de exibição (decodificador) pode exibir, como os links de imagem, imagens estáticas incluídas no conteúdo ou figuras I; pode exibir vídeo como um GIF animado usando uma pluralidade de imagens estáticas ou figuras I; ou pode receber apenas a camada de base e decodificar e exibir o vídeo.
[0471] Quando um link de imagem é selecionado pelo usuário, o aparelho de exibição realiza a decodificação enquanto, por exemplo, dá a prioridade mais alta para a camada de base. Observe que se houver informações no código HTML da página da web indicando que o conteúdo é escalável, o aparelho de exibição pode decodificar até a camada de aprimoramento. Adicionalmente, a fim de garantir a reprodução em tempo real, antes que uma seleção seja feita ou quando a largura de banda for severamente limitada, o aparelho de exibição pode reduzir o atraso entre o ponto no tempo em que a figura dianteira é decodificada e o ponto no tempo em que o a figura decodificada é exibida (isto é, o atraso entre o início da decodificação do conteúdo e a exibição do conteúdo) por meio da decodificação e exibindo apenas figuras de referência direta (figura I, figura P, figura B de referência direta). Ainda adicionalmente, o aparelho de exibição pode ignorar propositadamente a relação de referência entre as figuras e decodificar grosseiramente todas as figuras B e P como figuras de referência direta e, em seguida, realizar a decodificação normal conforme o número de figuras recebidas ao longo do tempo aumenta.
ACIONAMENTO AUTÔNOMO
[0472] Ao transmitir e receber imagens estáticas ou dados de vídeo, como informações de mapa bidimensional ou tridimensional para acionamento autônomo ou acionamento assistido de um automóvel, o terminal de recepção pode receber, além de dados de imagem pertencentes a uma ou mais camadas, informações sobre, por exemplo, o clima ou a construção de estradas como metadados e associar os metadados aos dados de imagem na decodificação. Observe que os metadados podem ser atribuídos por camada e, alternativamente, podem simplesmente ser multiplexados com os dados da imagem.
[0473] Nesse caso, visto que o automóvel, drone, avião, etc., contém o terminal de recepção é móvel, o terminal de recepção pode perfeitamente receber e realizar a decodificação enquanto comuta entre as estações base entre as estações base ex106 a ex110 por meio da transmissão informações que indicam a posição de o terminal de recepção. Ademais, de acordo com a seleção feita pelo usuário, a situação do usuário e/ou a largura de banda da conexão, o terminal de recepção pode selecionar de modo dinâmico em que medida os metadados são recebidos, ou em que medida as informações do mapa, por exemplo, são atualizadas.
[0474] No sistema de fornecimento de conteúdo ex100, o cliente pode receber, decodificar e reproduzir, em tempo real, as informações codificadas transmitidas pelo usuário.
TRANSMISSÃO CONTÍNUA DE CONTEÚDO INDIVIDUAL
[0475] No sistema de fornecimento de conteúdo ex100, em adição a alta qualidade de imagem, também são possíveis conteúdos longos distribuídos por uma entidade de distribuição de vídeo, transmissão contínua do tipo unicast ou multicast de baixa qualidade de imagem e conteúdo curto a partir de um indivíduo. Esse tipo de conteúdo a partir de indivíduos provavelmente aumentará ainda mais sua popularidade. O servidor pode primeiro realizar o processamento de edição no conteúdo antes do processamento de codificação, a fim de refinar o conteúdo individual. Isso pode ser alcançado usando a seguinte configuração, por exemplo.
[0476] Em tempo real, durante a captura de conteúdo de vídeo ou imagem, ou depois que o conteúdo foi capturado e acumulado, o servidor realiza o processamento de reconhecimento com base nos dados brutos ou dados codificados, como processamento de erro de captura, processamento de pesquisa de cena, análise de significado e/ou processamento de detecção de objetos. Então, com base no resultado do processamento de reconhecimento, o servidor - quando solicitado ou automaticamente - edita o conteúdo, exemplos dos quais incluem: correção como foco e/ou correção de desfoque de movimento; remover cenas de baixa prioridade, como cenas com baixo brilho em comparação com outras fotos, ou fora de foco; ajuste da borda do objeto; e ajuste de tom de cor. O servidor codifica os dados editados com base no resultado da edição. É conhecido que vídeos excessivamente longos tendem a receber menos visualizações. Consequentemente, a fim de manter o conteúdo dentro de uma duração específica que se adapte à duração do vídeo original, o servidor pode, além das cenas de baixa prioridade descritas acima, recortar automaticamente cenas com baixo movimento, com base em um processamento de imagem resultado. Alternativamente, o servidor pode gerar e codificar um resumo de vídeo com base no resultado de uma análise do significado de uma cena.
[0477] Pode haver casos em que o conteúdo individual pode incluir conteúdo que infrinja direitos autorais, direitos morais, direitos de retratos, etc. Tal instância pode levar a uma situação desfavorável para o criador, como quando o conteúdo é compartilhado além do escopo pretendido pelo criador. Consequentemente, antes da codificação, o servidor pode, por exemplo, editar imagens de modo a desfocar rostos de pessoas na periferia da tela ou desfocar o interior de uma casa, por exemplo. Adicionalmente, o servidor pode ser configurado para reconhecer os rostos de pessoas que não sejam uma pessoa registrada nas imagens a serem codificadas e, quando tais rostos aparecem em uma imagem, pode aplicar um filtro de mosaico, por exemplo, ao rosto da pessoa. Alternativamente, como pré ou pós-processamento para codificação, o usuário pode especificar, por razões de direitos autorais, uma região de uma imagem incluindo uma pessoa ou uma região do fundo a ser processada. O servidor pode processar a região especificada, por exemplo, por meio da substituição da região por uma imagem diferente ou borrando a região. Se a região incluir uma pessoa, a pessoa pode ser rastreada na imagem em movimento e a região da cabeça da pessoa pode ser substituída por outra imagem conforme a pessoa se move.
[0478] Visto que existe uma demanda para visualização em tempo real do conteúdo produzido por indivíduos, que tende a ser pequeno no tamanho dos dados, o decodificador pode primeiro receber a camada de base como a prioridade mais alta e realizar a decodificação e reprodução, embora isso possa diferir dependendo largura de banda. Quando o conteúdo é reproduzido duas ou mais vezes, como quando o decodificador recebe a camada de aprimoramento durante a decodificação e reprodução da camada de base e faz um loop na reprodução, o decodificador pode reproduzir um vídeo de alta qualidade de imagem incluindo a camada de aprimoramento. Se a transmissão for codificada usando tal codificação escalável, o vídeo pode ser de baixa qualidade quando em um estado não selecionado ou no início do vídeo, mas pode oferecer uma experiência na qual a qualidade da imagem da transmissão aumenta progressivamente de maneira inteligente. Isso não se limita apenas à codificação escalável; a mesma experiência pode ser oferecida configurando uma única transmissão a partir de uma transmissão de baixa qualidade reproduzida pela primeira vez e uma segunda transmissão codificado usando a primeira transmissão como referência.
OUTROS EXEMPLOS DE IMPLEMENTAÇÃO E APLICAÇÃO
[0479] A codificação e decodificação podem ser realizadas por meio do LSI (conjunto de circuitos de integração em grande escala) ex500 (ver Figura 55), que é tipicamente incluído em cada terminal. O LSI ex500 pode ser configurado com um único chip ou uma pluralidade de chips. O software para codificar e decodificar figuras em movimento pode ser integrado em algum tipo de mídia de gravação (como um CDROM, um disco flexível ou um disco rígido) que é legível, por exemplo, por meio de computador ex111 e a codificação e decodificação pode ser realizada usando o software. Adicionalmente, quando o telefone inteligente ex115 está equipado com uma câmera, os dados de vídeo obtidos pela câmera podem ser transmitidos. Neste caso, os dados de vídeo podem ser codificados por LSI ex500 incluído no telefone inteligente ex115.
[0480] Observe que o LSI ex500 pode ser configurado para baixar e ativar um aplicativo. Nesse caso, o terminal primeiro determina se é compatível com o esquema usado para codificar o conteúdo ou se é capaz de executar um serviço específico. Quando o terminal não é compatível com o esquema de codificação do conteúdo, ou quando o terminal não é capaz de executar um serviço específico, o terminal pode primeiro baixar um codec ou software de aplicativo e, em seguida, obter e reproduzir o conteúdo.
[0481] Além do exemplo de sistema de fornecimento de conteúdo ex100 que usa internet ex101, pelo menos o codificador de imagem em movimento (codificador de imagem) ou o decodificador de imagem em movimento (decodificador de imagem) descrito nas modalidades acima pode ser implementado em um sistema de transmissão digital. O mesmo processamento de codificação e processamento de decodificação pode ser aplicado para transmitir e receber ondas de rádio de transmissão sobrepostas com dados de áudio e vídeo multiplexados usando, por exemplo, um satélite, mesmo que seja voltado para transmissão do tipo multicast, ao passo que transmissão do tipo unicast é mais fácil com o sistema de fornecimento de conteúdo ex100.
CONFIGURAÇÃO DE HARDWARE
[0482] A Figura 60 ilustra mais detalhes do telefone inteligente ex115 mostrado na Figura 55 A Figura 61 ilustra um exemplo de configuração do telefone inteligente ex115. telefone inteligente ex115 inclui antena ex450 para transmitir e receber ondas de rádio de e para a estação base ex110, câmera ex465 capaz de capturar vídeo e imagens fixas e exibidor ex458 que exibe dados decodificados, como vídeo capturado por meio da câmera ex465 e vídeo recebido por meio da antena ex450. O telefone inteligente ex115 inclui ainda a interface de usuário ex466, como um painel de toque, unidade de emissão de áudio ex457, como um alto-falante para a emissão de voz ou outro áudio, unidade de entrada de áudio ex456, como um microfone para entrada de áudio, memória ex467 capaz de armazenar dados decodificados, como vídeos capturados ou imagens estáticas, áudio gravado, vídeo ou imagens estáticas recebidas e correio, bem como dados decodificados e o slot ex464 que é uma interface para SIM ex468 para autorizar o acesso a uma rede e vários dados. Observe que a memória externa pode ser usada em vez da memória ex467.
[0483] Controlador principal ex460, que pode controlar de forma abrangente o exibidor ex458 e a interface de usuário ex466, circuito de alimentação ex461, controlador de entrada de interface de usuário ex462, processador de sinal de vídeo ex455, interface de câmera ex463, controlador de display ex459, modulador/demodulador ex452, multiplexador/demultiplexador ex453, áudio o processador de sinal ex454, o slot ex464 e a memória ex467 são conectados através do barramento ex470.
[0484] Quando o usuário liga o botão liga/desliga do circuito da fonte de alimentação ex461, o telefone inteligente ex115 é ligado em um estado operacional e cada componente é alimentado por uma bateria.
[0485] O telefone inteligente ex115 realiza o processamento, por exemplo, de chamadas e transmissão de dados, com base no controle realizado por meio do controlador principal ex460, que inclui uma CPU, ROM e RAM. Ao fazer chamadas, um sinal de áudio gravado por meio da unidade de entrada de áudio ex456 é convertido em um sinal de áudio digital por meio do processador de sinal de áudio ex454, ao qual o processamento de espalhamento de espectro é aplicado por meio do modulador/demodulador ex452 e a conversão digital-analógica, e o processamento de conversão de frequência é aplicado por meio do transmissor/receptor ex451 e o sinal resultante é transmitido pela antena ex450. Os dados recebidos são amplificados, convertidos em frequência e analógico-digital convertidos, espectro de propagação inverso processado pelo modulador/demodulador ex452, convertido em um sinal de áudio analógico por meio do processador de sinal de áudio ex454 e, em seguida, emitido pela unidade de emissão de áudio ex457. No modo de transmissão de dados, texto, imagem estática ou dados de vídeo podem ser transmitidos sob o controle do controlador principal ex460 através do controlador de entrada de interface de usuário ex462 com base na operação da interface de usuário ex466 do corpo principal, por exemplo. O processamento de recebimento e transmissão similar é realizado. No modo de transmissão de dados, ao enviar um vídeo, imagem estática ou vídeo e áudio, a compressão do processador de sinal de vídeo ex455 codifica, através do método de codificação de imagem em movimento descrito nas modalidades acima, um sinal de vídeo armazenado na memória ex467 ou uma entrada de sinal de vídeo de câmera ex465 e transmite os dados de vídeo codificados para o multiplexador/demultiplexador ex453. O processador de sinal de áudio ex454 codifica um sinal de áudio gravado por meio da unidade de entrada de áudio ex456 enquanto a câmera ex465 captura um vídeo ou imagem estática e transmite os dados de áudio codificados para o multiplexador/demultiplexador ex453. O multiplexador/demultiplexador ex453 multiplexa os dados de vídeo codificados e dados de áudio codificados usando um determinado esquema, modula e converte os dados usando modulador/demodulador (circuito modulador/demodulador) ex452 e transmissor/receptor ex451 e transmite o resultado através da antena ex450. O esquema determinado pode ser predeterminado.
[0486] Quando o vídeo anexado a um e-mail ou bate-papo, ou um vídeo vinculado a uma página da web, é recebido, por exemplo, a fim de decodificar os dados multiplexados recebidos através da antena ex450, o multiplexador/demultiplexador ex453 demultiplexa os dados multiplexados para dividir os dados multiplexados em um fluxo de bits de dados de vídeo e um fluxo de bits de dados de áudio, fornece os dados de vídeo codificados para o processador de sinal de vídeo ex455 através do barramento síncrono ex470 e fornece os dados de áudio codificados para o processador de sinal de áudio ex454 via barramento síncrono ex470. O processador de sinal de vídeo ex455 decodifica o sinal de vídeo que usa um método de decodificação de imagem em movimento correspondente ao método de codificação de imagem em movimento descrito nas modalidades acima, e o vídeo ou uma imagem estática incluída no arquivo de imagem em movimento vinculada é exibida no monitor ex458 através do controlador de exibição ex459. O processador de sinal de áudio ex454 decodifica o sinal de áudio e produz áudio da unidade de emissão de áudio ex457. Como a transmissão contínua em tempo real está se tornando cada vez mais popular, pode haver casos em que a reprodução do áudio pode ser socialmente inadequada, dependendo do ambiente do usuário. Consequentemente, como um valor inicial, uma configuração na qual apenas os dados de vídeo são reproduzidos, ou seja, o sinal de áudio não é reproduzido, pode ser preferencial; o áudio pode ser sincronizado e reproduzido apenas quando uma entrada, tal como quando o usuário clica nos dados de vídeo, é recebida.
[0487] Embora o telefone inteligente ex115 tenha sido usado no exemplo acima, outras implementações são concebíveis: um terminal transceptor incluindo um codificador e um decodificador; um terminal de transmissor incluindo apenas um codificador; e um terminal receptor incluindo apenas um decodificador. Na descrição do sistema de transmissão digital, é dado um exemplo em que dados multiplexados obtidos como um resultado de dados de vídeo que são multiplexados com dados de áudio são recebidos ou transmitidos. Os dados multiplexados, no entanto, podem ser dados de vídeo multiplexados com outros dados que não dados de áudio, como dados de texto relacionados ao vídeo. Adicionalmente, os próprios dados de vídeo em vez de dados multiplexados podem ser recebidos ou transmitidos
[0488] Embora o controlador principal ex460 incluindo uma CPU seja descrito como controlando os processos de codificação ou decodificação, vários terminais geralmente incluem GPUs. Consequentemente, é aceitável uma configuração em que uma grande área seja processada de uma só vez, ao fazer uso da capacidade de desempenho da GPU através da memória compartilhada por meio da CPU e pela GPU, ou memória incluindo um endereço que é gerenciado de modo a permitir o uso comum por meio da CPU e GPU. Isso torna possível encurtar o tempo de codificação, manter a natureza do fluxo em tempo real e reduzir o atraso. Em particular, o processamento relacionado à estimativa de movimento, filtragem de desblocagem, deslocamento adaptativo de amostra (SAO) e transformação/quantização pode ser efetivamente exercido por meio da GPU em vez da CPU em unidades de figuras, por exemplo, tudo de uma vez.
APLICABILIDADE INDUSTRIAL
[0489] A presente invenção é aplicável a um receptor de televisão, um gravador de vídeo digital, uma navegação automotiva, um telefone móvel, uma câmera digital, uma câmera de vídeo digital, um sistema de teleconferência, um espelho eletrônico, etc.
LISTAGEM DE REFERÊNCIA NOS DESENHOS
100 codificador
102 divisor
104 subtrator
106 transformador
108 quantizador
110 codificador de entropia
112, 204 quantizador inverso
114, 206 transformador inverso
116, 208 somador
118, 210 memória de bloco
120, 212 filtro em loop
122, 214 memória de quadro
124, 216 intraprevisor
126, 218 interprevisor
128, 220 controlador de previsão
200 decodificador
202 decodificador de entropia
1201 determinador de limite
1202, 1204, 1206 comutador
1203 determinador de filtro
1205 executor de filtragem
1207 determinador de característica de filtragem
1208 determinador de processamento
a1, b1 processador
a2, b2 memória

Claims (3)

  1. Codificador que codifica uma imagem, o codificador caracterizado pelo fato de que compreende:
    memória; e
    conjunto de circuitos acoplado à memória e configurado para codificar a imagem de acordo com uma estrutura de codificação incluindo uma figura de ponto de acesso aleatório intra (IRAP), figuras dianteiras a serem emitidas antes da figura de IRAP em ordem de emissão, e figuras traseiras a serem emitidas após a figura de IRAP na ordem de emissão, em que
    quando a imagem é codificada, o conjunto de circuitos:
    codifica, de acordo com uma sinalização em um fluxo de bits, no máximo uma figura traseira entre as figuras traseiras antes de codificar as figuras dianteiras em ordem de codificação; e
    codifica as figuras traseiras diferentes da no máximo uma figura traseira após codificar as figuras dianteiras na ordem de codificação,
    a sinalização indica se uma imagem de cada uma de unidades de acesso no fluxo de bits é uma figura de campo,
    o conjunto de circuitos codifica a no máximo uma figura traseira antes de codificar as figuras dianteiras na ordem de codificação quando a sinalização indica que a figura de cada uma das unidades de acesso no fluxo de bits é uma figura de campo,
    a sinalização é fornecida em um conjunto de parâmetro de sequência, e
    o conjunto de circuitos determina se deve codificar a no máximo uma figura traseira antes de codificar as figuras dianteiras na ordem de codificação, para cada uma de unidades de sequência, com base na sinalização.
  2. Decodificador que decodifica uma imagem, o decodificador caracterizado pelo fato de que compreende:
    memória; e
    conjunto de circuitos acoplado à memória e configurado para decodificar a imagem de acordo com uma estrutura de codificação incluindo uma figura de ponto de acesso aleatório intra (IRAP), figuras dianteiras a serem emitidas antes da figura de IRAP em ordem de emissão, e figuras traseiras a serem emitidas após a figura de IRAP na ordem de emissão, em que
    quando a imagem é decodificada, o conjunto de circuitos:
    decodifica, de acordo com uma sinalização em um fluxo de bits, no máximo uma figura traseira entre as figuras traseiras antes de decodificar as figuras dianteiras em ordem de decodificação; e
    decodifica as figuras traseiras diferentes da no máximo uma figura traseira após decodificar as figuras dianteiras na ordem de decodificação,
    a sinalização indica se uma imagem de cada uma de unidades de acesso no fluxo de bits é uma figura de campo,
    o conjunto de circuitos decodifica a no máximo uma figura traseira antes de decodificar as figuras dianteiras na ordem de decodificação quando a sinalização indica que a figura de cada uma das unidades de acesso no fluxo de bits é uma figura de campo,
    a sinalização é fornecida em um conjunto de parâmetro de sequência, e
    o conjunto de circuitos determina se deve decodificar a no máximo uma figura traseira antes de decodificar as figuras dianteiras na ordem de decodificação, para cada uma de unidades de sequência, com base na sinalização.
  3. Mídia legível por computador não transitória caracterizada pelo fato de que armazena um fluxo de bits, o fluxo de bits incluindo: uma figura de ponto de acesso aleatório intra (IRAP); figuras dianteiras; figuras traseiras; e uma sinalização de acordo com a qual um decodificador que recebe o fluxo de bits executa um processo de decodificação, em que
    no processo de decodificação:
    a imagem é decodificada de acordo com uma estrutura de codificação incluindo a figura de IRAP, as figuras dianteiras a serem emitidas antes da figura de IRAP em ordem de emissão, e as figuras traseiras a serem emitidas após a figura de IRAP na ordem de emissão;
    de acordo com a sinalização, no máximo uma figura traseira entre as figuras traseiras é decodificada antes das figuras dianteiras serem decodificadas em ordem de decodificação; e
    as figuras traseiras diferentes da no máximo uma figura traseira são decodificadas após as figuras dianteiras serem decodificadas na ordem de decodificação,
    a sinalização indica se uma imagem de cada uma de unidades de acesso no fluxo de bits é uma figura de campo,
    no processo de decodificação, a no máximo uma figura traseira é decodificada antes das figuras dianteiras serem decodificadas na ordem de decodificação quando a sinalização indica que a figura de cada uma das unidades de acesso no fluxo de bits é uma figura de campo, e
    no processo de decodificação, todas dentre as figuras traseiras são decodificadas após as figuras dianteiras serem decodificadas na ordem de decodificação quando a sinalização indica que a figura de cada uma das unidades de acesso não é uma figura de campo.
BR122021025020-0A 2019-05-20 2020-05-20 Codificador, decodificador e mídia legível por computador não transitória BR122021025020A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962850053P 2019-05-20 2019-05-20
US62/850,053 2019-05-20
PCT/JP2020/019894 WO2020235586A1 (ja) 2019-05-20 2020-05-20 符号化装置、復号装置、符号化方法及び復号方法
BR112021020634-5 2020-05-20
BR112021020634A BR112021020634A2 (pt) 2019-05-20 2020-05-20 Dispositivo de codificação, dispositivo de decodificação, método de codificação e método de decodificação

Publications (1)

Publication Number Publication Date
BR122021025020A2 true BR122021025020A2 (pt) 2022-03-15

Family

ID=73459395

Family Applications (5)

Application Number Title Priority Date Filing Date
BR112021020634A BR112021020634A2 (pt) 2019-05-20 2020-05-20 Dispositivo de codificação, dispositivo de decodificação, método de codificação e método de decodificação
BR122021025013-8A BR122021025013A2 (pt) 2019-05-20 2020-05-20 Método de codificação, método de decodificação e mídia legível por computador não transitória
BR122021025014-6A BR122021025014A2 (pt) 2019-05-20 2020-05-20 Codificador, decodificador e mídia legível por computador não transitória
BR122021025024-3A BR122021025024A2 (pt) 2019-05-20 2020-05-20 Método de codificação, método de decodificação e mídia legível por computador não transitória
BR122021025020-0A BR122021025020A2 (pt) 2019-05-20 2020-05-20 Codificador, decodificador e mídia legível por computador não transitória

Family Applications Before (4)

Application Number Title Priority Date Filing Date
BR112021020634A BR112021020634A2 (pt) 2019-05-20 2020-05-20 Dispositivo de codificação, dispositivo de decodificação, método de codificação e método de decodificação
BR122021025013-8A BR122021025013A2 (pt) 2019-05-20 2020-05-20 Método de codificação, método de decodificação e mídia legível por computador não transitória
BR122021025014-6A BR122021025014A2 (pt) 2019-05-20 2020-05-20 Codificador, decodificador e mídia legível por computador não transitória
BR122021025024-3A BR122021025024A2 (pt) 2019-05-20 2020-05-20 Método de codificação, método de decodificação e mídia legível por computador não transitória

Country Status (8)

Country Link
US (1) US20220060729A1 (pt)
EP (1) EP3975566A4 (pt)
JP (2) JP7453970B2 (pt)
KR (1) KR20220009376A (pt)
CN (1) CN113875257A (pt)
BR (5) BR112021020634A2 (pt)
MX (1) MX2021013287A (pt)
WO (1) WO2020235586A1 (pt)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX2021012094A (es) * 2019-04-03 2021-11-03 Huawei Tech Co Ltd Un codificador, un decodificador y metodos correspondientes.

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4356033B2 (ja) * 2007-05-17 2009-11-04 ソニー株式会社 画像データ処理装置および方法
KR101097690B1 (ko) * 2009-04-28 2011-12-22 파나소닉 주식회사 화상 복호 방법 및 화상 복호 장치
BR112015030508B1 (pt) * 2013-06-12 2023-11-07 Mitsubishi Electric Corporation Dispositivos e métodos de codificação de imagem e de decodificação de imagem
WO2015025747A1 (ja) * 2013-08-22 2015-02-26 ソニー株式会社 符号化装置、符号化方法、送信装置、復号化装置、復号化方法および受信装置
US20150264404A1 (en) * 2014-03-17 2015-09-17 Nokia Technologies Oy Method and apparatus for video coding and decoding
US9911460B2 (en) * 2014-03-24 2018-03-06 Microsoft Technology Licensing, Llc Fast and smart video trimming at frame accuracy on generic platform
CN109155863B (zh) * 2016-05-20 2022-09-20 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法及解码方法
WO2018150934A1 (ja) * 2017-02-20 2018-08-23 ソニー株式会社 画像処理装置および方法
MX2021012094A (es) * 2019-04-03 2021-11-03 Huawei Tech Co Ltd Un codificador, un decodificador y metodos correspondientes.

Also Published As

Publication number Publication date
BR122021025013A2 (pt) 2022-03-15
US20220060729A1 (en) 2022-02-24
WO2020235586A1 (ja) 2020-11-26
BR122021025024A2 (pt) 2022-03-15
CN113875257A (zh) 2021-12-31
BR112021020634A2 (pt) 2022-03-03
EP3975566A1 (en) 2022-03-30
EP3975566A4 (en) 2022-08-03
BR122021025014A2 (pt) 2022-03-15
KR20220009376A (ko) 2022-01-24
MX2021013287A (es) 2021-11-17
JP7453970B2 (ja) 2024-03-21
JP2024063232A (ja) 2024-05-10
JPWO2020235586A1 (pt) 2020-11-26

Similar Documents

Publication Publication Date Title
US20220279197A1 (en) Image decoder and decoding method
EP3926954A1 (en) Encoding device, decoding device, encoding method, and decoding method
BR112020002205A2 (pt) codificador de imagem, decodificador de imagem, método de codificação de imagem e método de decodificação de imagem
BR112020026686A2 (pt) Sistema e método para codificação de vídeo
BR112020022773A2 (pt) codificador, decodificador, método de codificação e método de decodificação
EP3958561A1 (en) Encoding device, decoding device, encoding method, and decoding method
BR112021014711A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
BR112020025664A2 (pt) dispositivo codificador, dispositivo decodificador, método de codificação e método de decodificação
BR112021004822A2 (pt) codificador, decodificador, método de codificação e método de decodificação
BR112020021187A2 (pt) codificador, decodificador, método de codificação, e método de decodificação
BR112021009596A2 (pt) codificador, decodificador, método de codificação, e método de decodificação
BR112021005443A2 (pt) codificador, decodificador, método de codificação, e método de decodificação
BR112020021718B1 (pt) Codificador, decodificador, método de codificação e método de decodificação
JP2023060057A (ja) 符号化装置及び符号化方法
US11533511B2 (en) Encoder, decoder, encoding method, and decoding method
BR112021012769A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
BR112021011019A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
EP3849196A1 (en) Encoding device, decoding device, encoding method, and decoding method
BR112021001890A2 (pt) codificador, decodificador, método de codificação e método de decodificação
US20220060729A1 (en) Decoder
EP4210339A1 (en) Reproduction device, transmission device, reproduction method, and transmission method
JP7455829B2 (ja) 符号化装置、復号装置、符号化方法、および復号方法
CN113841413B (zh) 编码装置、解码装置、编码方法和解码方法
CN113994704B (zh) 编码装置、解码装置、编码方法和解码方法
EP4124043A1 (en) Image processing device, image processing method, bitstream transmission device, and non-temporary storage medium

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]