BR122023024004A2 - Codificador de vídeo, decodificador de vídeo e métodos correspondentes - Google Patents

Codificador de vídeo, decodificador de vídeo e métodos correspondentes Download PDF

Info

Publication number
BR122023024004A2
BR122023024004A2 BR122023024004-9A BR122023024004A BR122023024004A2 BR 122023024004 A2 BR122023024004 A2 BR 122023024004A2 BR 122023024004 A BR122023024004 A BR 122023024004A BR 122023024004 A2 BR122023024004 A2 BR 122023024004A2
Authority
BR
Brazil
Prior art keywords
partition
value
block
video
flag
Prior art date
Application number
BR122023024004-9A
Other languages
English (en)
Inventor
Han Gao
Semih ESENLIK
Jianle Chen
Anand Meher Kotra
Biao Wang
Zhijie ZHAO
Original Assignee
Huawei Technologies Co., Ltd.
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 Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Publication of BR122023024004A2 publication Critical patent/BR122023024004A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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/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
    • 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/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/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/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Closed-Circuit Television Systems (AREA)

Abstract

codificador de vídeo, decodificador de vídeo e métodos correspondentes. a presente revelação fornece um aparelho de codificação e decodificação, bem como um método de codificação e decodificação. em particular, a presente revelação refere-se a partição de bloco e sinalização dos parâmetros de partição em um fluxo de bits. um sinalizador de substituição em um cabeçalho de região de imagem indica se um bloco é ou não para ser particionado de acordo com primeiras informações de restrição de partição. o sinalizador de substituição é incluído no fluxo de bits e o bloco é particionado de acordo.

Description

CAMPO DA TÉCNICA
[0001] Modalidades do presente pedido de modo geral referem-se ao campo de codificação de vídeo e mais particularmente à divisão e partição de blocos.
FUNDAMENTOS
[0002] Codificação de vídeo (codificação e decodificação de vídeo) é usada em uma ampla faixa de aplicações em vídeo digital, por exemplo, difusão de TV digital, transmissão de vídeo pela internet e redes móveis, aplicações de conversação em tempo real tais como chat de vídeo, videoconferência, DVD e discos Blu-ray, aquisição de conteúdo de vídeo e sistemas de edição, e câmeras de vídeo de aplicativos de segurança.
[0003] Desde o desenvolvimento da abordagem de codificação de vídeo híbrida com base em bloco no padrão H.261 em 1990, novas técnicas e ferramentas de codificação de vídeo foram desenvolvidas e formaram a base para novos padrões de codificação de vídeo. Padrões de codificação de vídeo adicionais incluem vídeo MPEG-1, vídeo MPEG-2, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), ITU-T H.265/Codificação de Vídeo de Alta Eficiência (HEVC), ITU-T H.266/codificação de vídeo versátil (VVC) e extensões, por exemplo, escalabilidade e/ou extensões tridimensionais (3D) desses padrões. À medida que a criação e o uso de vídeo se tornaram cada vez mais e mais onipresentes, tráfego de vídeo é a maior carga nas redes de comunicação e armazenamento de dados, consequentemente, uma das metas da maioria dos padrões de codificação de vídeo era conseguir uma redução de taxa de bits em comparação com seu antecessor, sem sacrificar a qualidade da figura. Mesmo que a mais recente codificação de vídeo de Alta Eficiência (HEVC) possa compactar vídeo cerca de duas vezes mais do que a AVC sem sacrificar a qualidade, existe um desejo por novas técnicas para compactar adicionalmente o vídeo em comparação com a HEVC.
SUMÁRIO
[0004] Modalidades do presente pedido (ou da presente revelação) fornecem aparelhos e métodos para codificação e decodificação de acordo com as reivindicações independentes.
[0005] Os supracitados e outros objetivos são alcançados pela matéria das reivindicações independentes. Formas de implementação adicionais são evidentes a partir das reivindicações dependentes, da descrição e das figuras.
[0006] A partir do padrão, a definição de algum recurso é como a seguir: conjunto de parâmetros de figura (PPS): Uma estrutura de sintaxe contendo elementos de sintaxe que se aplicam a zero ou mais figuras codificadas inteiras conforme determinado por um elemento de sintaxe encontrado em cada cabeçalho de fatia. conjunto de parâmetros de sequência (SPS): Uma estrutura de sintaxe contendo elementos de sintaxe que se aplicam a zero ou mais CVSs inteiras conforme determinado pelo conteúdo de um elemento de sintaxe encontrado no PPS referido por um elemento de sintaxe encontrado em cada cabeçalho de fatia. cabeçalho de fatia: Uma parte de uma fatia codificada contendo os elementos de dados pertencentes ao primeiro ou a todos os bricks representados na fatia. subfigura: Uma região retangular de uma ou mais fatias dentro de uma figura.
[0007] Uma fatia consiste ou em um número de tiles completos ou apenas em uma sequência consecutiva de bricks completos de um tile. tile: Uma região retangular de CTUs dentro de uma coluna de tile particular e uma linha de tile particular em uma figura.
[0008] Uma figura é dividida em uma ou mais linhas de tile e uma ou mais colunas de tile. Um tileé uma sequência de CTUs que cobre uma região retangular de uma figura.
[0009] Um tileé dividido em um ou mais bricks, cada um dos quais consistindo em um número de linhas de CTU dentro do tile.
[0010] Um tile que não é dividido em vários brickstambém é referido como um brick. No entanto, um brick que é um verdadeiro subconjunto de um tilenão é referido como um tile.
[0011] Uma fatia ou contém vários tiles de uma figura ou vários bricks de um tile.
[0012] Uma subfigura contém uma ou mais fatias que cobrem coletivamente uma região retangular de uma figura.
[0013] Dois modos de fatias são suportados, a saber, o modo de fatia de rastreio-varredura e o modo de fatia retangular. No modo de fatia de rastreio- varredura, uma fatia contém uma sequência de tiles em um rastreio-varredura de tile de uma figura. No modo de fatia retangular, uma fatia contém vários bricks de uma figura que coletivamente formam uma região retangular da figura. Os bricks dentro de uma fatia retangular estão na ordem de varredura de rastreio de brick da fatia.
[0014] De acordo com um primeiro aspecto da invenção, um método é fornecido para decodificação de um fluxo de bits de vídeo implementado por um dispositivo de decodificação, em que o fluxo de bits de vídeo inclui dados que representam uma região de imagem e um cabeçalho de região de imagem da região de imagem, o método de decodificação compreendendo: obter (um sinalizador de substituição a partir do fluxo de bits de vídeo; quando o valor do sinalizador de substituição for um valor substituto, obter primeiras informações de restrição de partição para a região de imagem a partir do cabeçalho de região de imagem; e particionar um bloco da região de imagem de acordo com as primeiras informações de restrição de partição.
[0015] Esta abordagem habilita que cada região de imagem tenha informações de restrição de partição de si mesma, diferentes das informações de restrição de partição para uma pluralidade de regiões de imagem no conjunto de parâmetros, então esta abordagem habilita análise de fluxo de bits eficiente e, em particular, sinalização de informações de restrição de partição eficiente.
[0016] Sendo que a obtenção de primeiras informações de restrição de partição para a região de imagem a partir do cabeçalho de região de imagem pode compreender: obter primeiras informações de restrição de partição para a região de imagem a partir dos dados que representam o cabeçalho de região de imagem.
[0017] Sendo que o valor substituto pode ser pré-ajustado.
[0018] Sendo que o valor substituto compreende verdadeiro, falso, 0 ou 1.
[0019] Sendo que o cabeçalho de região de imagem pode ser um conjunto ou estrutura contendo os elementos de dados pertencentes a toda ou parte da região de imagem.
[0020] Em uma possível forma de implementação do método de acordo com o primeiro aspecto propriamente dito, o método de decodificação compreende adicionalmente: obter um sinalizador habilitado de substituição a partir do fluxo de bits de vídeo, em que o valor do sinalizador habilitado de substituição é um valor de habilitação.
[0021] Sendo que o valor de habilitação pode ser pré-ajustado.
[0022] Sendo que o valor de habilitação compreende verdadeiro, falso, 0 ou 1.
[0023] Em uma possível forma de implementação do método de acordo com o primeiro aspecto propriamente dito, o método de decodificação compreende adicionalmente: obter um sinalizador habilitado de substituição a partir do fluxo de bits de vídeo, em que a obtenção do sinalizador de substituição a partir do fluxo de bits de vídeo compreende: quando o valor do sinalizador habilitado de substituição é um valor de habilitação, obter o sinalizador de substituição a partir do fluxo de bits de vídeo.
[0024] Sendo que o valor de habilitação pode ser pré-ajustado.
[0025] Sendo que o valor de habilitação compreende verdadeiro, falso, 0 ou 1.
[0026] Com o fornecimento de sinalizador habilitado de substituição, a substituição pode ser controlada de uma maneira eficiente, aumentando assim a flexibilidade no tratamento de elementos de sintaxe relacionados à partição de bloco. É notado que quando o sinalizador habilitado de substituição é ajustado no valor de habilitação, o sinalizador de substituição pode ser adicionalmente extraído a partir do fluxo de bits. Ou então, o sinalizador de substituição pode não ser extraído a partir do fluxo de bits e nenhuma substituição é aplicada nesse caso. Em vez disso uma segunda ou terceira restrição de partição pode ser usada para particionar o bloco.
[0027] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior do primeiro aspecto ou com o primeiro aspecto propriamente dito, o fluxo de bits de vídeo adicionalmente inclui dados que representam um conjunto de parâmetros do fluxo de bits de vídeo, e o método de decodificação compreende adicionalmente: quando o valor do sinalizador habilitado de substituição é um valor de desabilitação, particionar o bloco da região de imagem de acordo com segundas informações de restrição de partição para o fluxo de bits de vídeo. Sendo que as segundas informações de restrição de partição podem ser do conjunto de parâmetros ou estar no conjunto de parâmetros.
[0028] Sendo que o conjunto de parâmetros pode ser um conjunto de parâmetros de sequência (SPS) ou um conjunto de parâmetros de figura (PPS) ou qualquer outro conjunto de parâmetros.
[0029] Sendo que o valor de desabilitação é diferente do valor de habilitação.
[0030] Sendo que o valor de desabilitação pode ser pré-ajustado.
[0031] Sendo que o valor de desabilitação compreende verdadeiro, falso, 0 ou 1.
[0032] Sendo que quando o valor do sinalizador habilitado de substituição é um valor de desabilitação, as primeiras informações de restrição de partição podem não estar presentes no fluxo de bits de vídeo e o valor das primeiras informações de restrição de partição pode ser inferido ser igual ao valor das segundas informações de restrição de partição.
[0033] Sendo que o conjunto de parâmetros pode ser um conjunto ou uma estrutura contendo elementos de sintaxe que se aplicam a zero ou mais figuras codificadas inteiras ou sequência de vídeo codificada compreendendo a região de imagem.
[0034] Sendo que o conjunto de parâmetros é diferente do cabeçalho de região de imagem.
[0035] Por exemplo, as segundas informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo, informações de profundidade de árvore de múltiplos tipos máxima, informações de tamanho de nó raiz de árvore ternária permitido máximo ou informações de tamanho de nó raiz de árvore binária permitido máximo. Qualquer combinação/subconjunto destes e de parâmetros adicionais podem ser sinalizados a fim de configurar as restrições da partição.
[0036] Sendo que as informações de tamanho de nó folha de árvore quaternária permitido mínimo podem ser um valor delta para obter o valor de tamanho de nó folha de árvore quaternária permitido mínimo. Por exemplo, as informações de tamanho de nó folha de árvore quaternária permitido mínimo podem ser sps_log2_min_qt_size_intra_slices_minus2, sps_log2_min_qt_size_inter_slices_minus2, ou log2_min_qt_size_minus2.
[0037] Sendo que as informações de tamanho de nó raiz de árvore ternária permitido máximo podem ser um valor delta para obter o valor de tamanho de nó raiz de árvore ternária permitido máximo. Por exemplo, as informações de tamanho de nó raiz de árvore ternária permitido máximo podem ser sps_log2_diff_ctu_max_tt_size_intra_slices, sps_log2_diff_ctu_max_tt_size_inter_slices, ou log2_diff_ctu_max_tt_size.
[0038] Sendo que as informações de tamanho de nó raiz de árvore binária permitido máximo podem ser um valor delta para obter o valor de tamanho de nó raiz de árvore binária permitido máximo. Por exemplo, as informações de tamanho de nó raiz de árvore binária permitido máximo podem ser sps_log2_diff_ctu_max_bt_size_intra_slices, sps_log2_diff_ctu_max_bt_size_inter_slices, ou log2_diff_ctu_max_bt_size.
[0039] Por exemplo, informações de profundidade de árvore de múltiplos tipos máxima podem ser sps_max_mtt_hierarchy_depth_inter_slices, sps_max_mtt_hierarchy_depth_intra_slices, ou max_mtt_hierarchy_depth.
[0040] Além disso, ou alternativamente, as segundas informações de restrição de partição compreendem informações de restrição de partição para um bloco no modo intra, ou informações de restrição de partição para um bloco no modo inter.
[0041] As segundas informações de restrição de partição podem incluir tanto as informações de restrição de partição para blocos no modo intra quanto informações de restrição de partição para blocos no modo inter sinalizados separadamente. No entanto, a presente invenção não é limitada a essa maneira e pode haver uma informação de restrição de partição comum tanto para as informações de restrição de partição para blocos no modo intra e informações de restrição de partição para blocos no modo inter.
[0042] Sendo que o bloco no modo intra ou o bloco no modo inter se refere ao conjunto de parâmetros.
[0043] Sendo que o conjunto de parâmetros pode compreender conjunto de parâmetros de sequência (SPS) ou conjunto de parâmetros de figura (PPS).
[0044] Sendo que o bloco no modo intra pode estar dentro de uma CTU em uma fatia com slice_type igual a 2 (I) com referência ao conjunto de parâmetros ou o bloco no modo inter pode estar dentro de uma CTU em uma fatia com slice_type igual a 0 (B) ou 1 (P) com referência ao conjunto de parâmetros.
[0045] Além disso, ou alternativamente, as segundas informações de restrição de partição compreendem informações de restrição de partição para um bloco luma e/ou informações de restrição de partição para um bloco croma.
[0046] Sendo que o bloco luma ou bloco croma se refere ao conjunto de parâmetros.
[0047] Sendo que o conjunto de parâmetros pode compreender conjunto de parâmetros de sequência (SPS) ou conjunto de parâmetros de figura (PPS).
[0048] Sendo que o bloco luma ou o bloco croma pode estar dentro de uma CTU em uma fatia referente ao conjunto de parâmetros.
[0049] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior do primeiro aspecto ou com o primeiro aspecto propriamente dito, o fluxo de bits de vídeo adicionalmente inclui dados que representam um conjunto de parâmetros do fluxo de bits de vídeo, a obtenção de um sinalizador habilitado de substituição a partir do fluxo de bits de vídeo compreende obter o sinalizador habilitado de substituição a partir do conjunto de parâmetros ou obter o sinalizador habilitado de substituição no conjunto de parâmetros.
[0050] Sendo que a obtenção do sinalizador habilitado de substituição a partir do conjunto de parâmetros pode compreender obter o sinalizador habilitado de substituição a partir dos dados que representam o conjunto de parâmetros. Sendo que o conjunto de parâmetros pode ser um conjunto de parâmetros de sequência (SPS) ou um conjunto de parâmetros de figura (PPS) ou qualquer outro conjunto de parâmetros.
[0051] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior do primeiro aspecto ou com o primeiro aspecto propriamente dito, a obtenção do sinalizador de substituição a partir do fluxo de bits de vídeo compreende a obtenção do sinalizador de substituição a partir do cabeçalho de região de imagem.
[0052] Sendo que a obtenção do sinalizador de substituição a partir do cabeçalho de região de imagem pode compreender obter o sinalizador de substituição a partir dos dados que representam o cabeçalho de região de imagem.
[0053] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior do primeiro aspecto ou com o primeiro aspecto propriamente dito, as primeiras informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo, informações de profundidade de árvore de múltiplos tipos máxima, informações de tamanho de nó raiz de árvore ternária permitido máximo ou informações de tamanho de nó raiz de árvore binária permitido máximo.
[0054] Sendo que as informações de tamanho de nó folha de árvore quaternária permitido mínimo podem ser um valor delta para obter o valor de tamanho de nó folha de árvore quaternária permitido mínimo. Por exemplo, as informações de tamanho de nó folha de árvore quaternária permitido mínimo podem ser sps_log2_min_qt_size_intra_slices_minus2, sps_log2_min_qt_size_inter_slices_minus2, ou log2_min_qt_size_minus2.
[0055] Sendo que as informações de tamanho de nó raiz de árvore ternária permitido máximo podem ser um valor delta para obter o valor de tamanho de nó raiz de árvore ternária permitido máximo. Por exemplo, as informações de tamanho de nó raiz de árvore ternária permitido máximo podem ser sps_log2_diff_ctu_max_tt_size_intra_slices, sps_log2_diff_ctu_max_tt_size_inter_slices, ou log2_diff_ctu_max_tt_size.
[0056] Sendo que as informações de tamanho de nó raiz de árvore binária permitido máximo podem ser um valor delta para obter o valor de tamanho de nó raiz de árvore binária permitido máximo. Por exemplo, as informações de tamanho de nó raiz de árvore binária permitido máximo pode ser sps_log2_diff_ctu_max_bt_size_intra_slices, sps_log2_diff_ctu_max_bt_size_inter_slices, ou log2_diff_ctu_max_bt_size.
[0057] Por exemplo, informações de profundidade de árvore de múltiplos tipos máxima podem ser sps_max_mtt_hierarchy_depth_inter_slices, sps_max_mtt_hierarchy_depth_intra_slices, ou max_mtt_hierarchy_depth.
[0058] Por exemplo, a região de imagem compreende uma fatia, um tile, ou uma subfigura, e o cabeçalho de região de imagem compreende um cabeçalho de fatia da fatia, um cabeçalho de tile do tile ou um cabeçalho da subfigura.
[0059] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior do primeiro aspecto ou com o primeiro aspecto propriamente dito, o fluxo de bits de vídeo pode adicionalmente incluir dados que representam um conjunto de parâmetros do fluxo de bits de vídeo, e o método de decodificação compreende adicionalmente: quando o valor do sinalizador de substituição não for o valor substituto, particionar S230 o bloco da região de imagem de acordo com segundas informações de restrição de partição para o fluxo de bits de vídeo a partir do conjunto de parâmetros ou particionar S230 o bloco da região de imagem de acordo com segundas informações de restrição de partição para o fluxo de bits de vídeo no conjunto de parâmetros.
[0060] Sendo que o conjunto de parâmetros pode ser um conjunto de parâmetros de sequência (SPS) ou um conjunto de parâmetros de figura (PPS) ou qualquer outro conjunto de parâmetros.
[0061] Sendo que o valor substituto é verdadeiro, o valor do sinalizador de substituição não ser o valor substituto significa que o valor do sinalizador de substituição é falso.
[0062] Sendo que o valor substituto é 1, o valor do sinalizador de substituição não ser o valor substituto significa que o valor do sinalizador de substituição é 0.
[0063] De acordo com um segundo aspecto da invenção, um método para codificação de um fluxo de bits de vídeo implementado por um dispositivo de codificação, em que o fluxo de bits de vídeo inclui dados que representam uma região de imagem e um cabeçalho de região de imagem da região de imagem, o método de codificação compreendendo: determinar se particionar um bloco da região de imagem está ou não de acordo com as primeiras informações de restrição de partição no cabeçalho de região de imagem; ao determinar que particionar o bloco está de acordo com as primeiras informações de restrição de partição, particionar um bloco da região de imagem de acordo com as primeiras informações de restrição de partição e estabelecer o valor de um sinalizador de substituição como um valor substituto; e incluir os dados do sinalizador de substituição no fluxo de bits de vídeo.
[0064] Em uma possível forma de implementação do método de acordo com o segundo aspecto propriamente dito, o método de codificação compreende adicionalmente: determinar se particionar o bloco de acordo com as primeiras informações de restrição de partição está habilitado; ao determinar que particionar o bloco de acordo com as primeiras informações de restrição de partição está habilitado, e estabelecer o valor de um sinalizador habilitado de substituição como um valor de habilitação; e incluir os dados do sinalizador habilitado de substituição no fluxo de bits de vídeo.
[0065] Sendo que a determinação de se particiona um bloco da região de imagem está de acordo com primeiras informações de restrição de partição no cabeçalho de região de imagem compreende: ao determinar que particionar o bloco de acordo com as primeiras informações de restrição de partição está habilitado, determinar se particiona um bloco da região de imagem está de acordo com primeiras informações de restrição de partição no cabeçalho de região de imagem.
[0066] Por exemplo, o fluxo de bits de vídeo adicionalmente inclui dados que representam um conjunto de parâmetros do fluxo de bits de vídeo, e o método de codificação compreende adicionalmente: ao determinar que particionar o bloco de acordo com primeiras informações de restrição de partição não está habilitado, particionar o bloco da região de imagem de acordo com segundas informações de restrição de partição para o fluxo de bits de vídeo no conjunto de parâmetros e estabelecer o valor de um sinalizador habilitado de substituição como um valor de desabilitação.
[0067] Além disso, ou alternativamente, as segundas informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo, informações de profundidade de árvore de múltiplos tipos máxima, informações de tamanho de nó raiz de árvore ternária permitido máximo ou informações de tamanho de nó raiz de árvore binária permitido máximo.
[0068] Além disso, ou alternativamente, as segundas informações de restrição de partição compreendem informações de restrição de partição para um bloco no modo intra, ou informações de restrição de partição para um bloco no modo inter.
[0069] Por exemplo, as segundas informações de restrição de partição compreendem informações de restrição de partição para um bloco luma, ou informações de restrição de partição para um bloco croma.
[0070] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior do segundo aspecto ou com o segundo aspecto propriamente dito, o fluxo de bits de vídeo adicionalmente inclui dados que representam um conjunto de parâmetros do fluxo de bits de vídeo, o sinalizador habilitado de substituição está no conjunto de parâmetros.
[0071] Por exemplo, o sinalizador de substituição está no cabeçalho de região de imagem.
[0072] Além das modalidades ou alternativamente a qualquer uma das mesmas, as primeiras informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo, informações de profundidade de árvore de múltiplos tipos máxima, informações de tamanho de nó raiz de árvore ternária permitido máximo ou informações de tamanho de nó raiz de árvore binária permitido máximo.
[0073] Além das modalidades ou alternativamente a qualquer uma das mesmas, a região de imagem compreende uma fatia, um tile, ou uma subfigura, e o cabeçalho de região de imagem compreende um cabeçalho de fatia da fatia, um cabeçalho de tile do tile, ou um cabeçalho da subfigura.
[0074] Por exemplo, o fluxo de bits de vídeo adicionalmente inclui dados que representam um conjunto de parâmetros do fluxo de bits de vídeo, o método de decodificação compreende adicionalmente: ao determinar que particionar o bloco não está de acordo com as primeiras informações de restrição de partição, particionar (S360) o bloco da região de imagem de acordo com as segundas informações de restrição de partição para o fluxo de bits de vídeo no conjunto de parâmetros, e estabelecer o valor do sinalizador de substituição como valor não substituto.
[0075] O método de acordo com o segundo aspecto pode ser estendido em formas de implementação correspondentes às formas de implementação do primeiro aparelho de acordo com o primeiro aspecto. Portanto, uma forma de implementação do método compreende o(s) recurso(s) da forma de implementação correspondente do primeiro aparelho.
[0076] As vantagens dos métodos de acordo com o segundo aspecto são as mesmas para as formas de implementação correspondentes do primeiro aparelho de acordo com o primeiro aspecto.
[0077] De acordo com um terceiro aspecto da invenção, um decodificador é fornecido, compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar qualquer dos métodos de decodificação mencionados acima de acordo com o primeiro aspecto ou qualquer implementação possível do primeiro aspecto.
[0078] De acordo com um quarto aspecto da invenção, um codificador é fornecido, compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador para realizar o método de acordo com qualquer um dos métodos de decodificação mencionados acima de acordo com o segundo aspecto ou qualquer implementação possível do segundo aspecto.
[0079] De acordo com um quinto aspecto, é proposta uma mídia de armazenamento legível por computador tendo armazenadas na mesma instruções que quando executadas, fazem um ou mais processadores configurados codificar dados de vídeo. As instruções fazem o um ou mais processadores realizar um método de acordo com o primeiro ou segundo aspecto ou qualquer implementação possível do primeiro ou segundo aspecto.
[0080] De acordo com um sexto aspecto, a invenção refere-se a um programa de computador compreendendo código de programa para realizar o método de acordo com o primeiro ou segundo aspecto ou qualquer modalidade possível do primeiro ou segundo aspecto quando executado em um computador.
[0081] De acordo com um sétimo aspecto da invenção, um decodificador é fornecido para decodificar um fluxo de bits de vídeo, em que o fluxo de bits de vídeo inclui dados que representam uma região de imagem e um cabeçalho de região de imagem da região de imagem, o decodificador compreendendo: uma unidade de determinação de substituição para obter um sinalizador de substituição a partir do fluxo de bits de vídeo; uma unidade de determinação de restrição de partição para, quando o valor do sinalizador de substituição for um valor substituto, obter primeiras informações de restrição de partição para a região de imagem a partir do cabeçalho de região de imagem; e uma unidade de partição de bloco para particionar um bloco da região de imagem de acordo com as primeiras informações de restrição de partição.
[0082] O método de acordo com o primeiro aspecto da invenção pode ser realizado por decodificador de acordo com o sétimo aspecto da invenção. Recursos e formas de implementação adicionais do decodificador de acordo com o terceiro aspecto da invenção correspondem aos recursos e formas de implementação do método de acordo com o primeiro aspecto da invenção ou qualquer implementação possível do primeiro aspecto. De acordo com um oitavo aspecto do invenção, um codificador é fornecido para codificação de um fluxo de bits de vídeo, em que o fluxo de bits de vídeo inclui dados que representam uma região de imagem e um cabeçalho de região de imagem da região de imagem, o codificador compreendendo: uma unidade de partição de bloco para particionar um bloco da região de imagem de acordo com primeiras informações de restrição; um gerador de fluxo de bits para inserir primeiras informações de restrição de partição para a região de imagem no cabeçalho de região de imagem e estabelecer o valor de um sinalizador de substituição como um valor substituto; e para inserir o sinalizador de substituição no fluxo de bits do vídeo.
[0083] O método de acordo com o segundo aspecto da invenção pode ser realizado pelo codificador de acordo com o oitavo aspecto da invenção. Outros recursos e formas de implementação do codificador de acordo com o oitavo aspecto da invenção correspondem aos recursos e formas de implementação do método de acordo com o segundo aspecto da invenção ou qualquer implementação possível do segundo aspecto.
[0084] Com o propósito de esclarecimento, qualquer uma das modalidades reveladas no presente documento pode ser combinada com qualquer uma ou mais das outras modalidades para criar uma nova modalidade dentro do escopo da presente revelação.
[0085] De acordo com um nono aspecto da invenção, um fluxo de bits de vídeo é fornecido, em que o fluxo de bits de vídeo inclui dados que representam uma região de imagem e um cabeçalho de região de imagem da região de imagem, o fluxo de bits de vídeo adicionalmente inclui um sinalizador de substituição especificando se as primeiras informações de restrição de partição para a região de imagem estão presentes no cabeçalho de região de imagem.
[0086] Em uma possível forma de implementação do método de acordo com o nono aspecto propriamente dito, o fluxo de bits de vídeo adicionalmente inclui um sinalizador habilitado de substituição especificando se o sinalizador de substituição está ou não presente no cabeçalho de região de imagem.
[0087] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior do primeiro aspecto ou com o primeiro aspecto propriamente dito, o sinalizador habilitado de substituição está no conjunto de parâmetros ou dados que representam o conjunto de parâmetros.
[0088] Em uma possível forma de implementação do método de acordo com qualquer implementação anterior do primeiro aspecto ou com o primeiro aspecto propriamente dito, o sinalizador de substituição está no cabeçalho de região de imagem ou nos dados que representam o cabeçalho de região de imagem.
[0089] Detalhes de uma ou mais modalidades são apresentados nos desenhos anexos e na descrição abaixo. Outros recursos, objetivos, e vantagens serão evidentes a partir da descrição, desenhos e reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[0090] Nas seguintes modalidades da invenção são descritas em mais detalhes com referência às figuras anexas e aos desenhos, nos quais:
[0091] A Figura 1A é um diagrama de blocos mostrando um exemplo de um sistema de codificação de vídeo configurado para implementar modalidades da invenção.
[0092] A Figura 1B é um diagrama de blocos mostrando um outro exemplo de um sistema de codificação de vídeo configurado para implementar modalidades da invenção.
[0093] A Figura 2 é um diagrama de blocos mostrando um exemplo de um codificador de vídeo configurado para implementar modalidades da invenção.
[0094] A Figura 3 é um diagrama de blocos mostrando um exemplo de estrutura de um decodificador de vídeo configurado para implementar modalidades da invenção.
[0095] A Figura 4 é um diagrama de blocos ilustrando um exemplo de um aparelho de codificação ou um aparelho de decodificação.
[0096] A Figura 5 é um diagrama de blocos ilustrando um outro exemplo de um aparelho de codificação ou um aparelho de decodificação;
[0097] A Figura 6 é um diagrama ilustrativo de um exemplo de partição de bloco usando uma estrutura de árvore binária árvore quaternária (QTBT).
[0098] A Figura 7 é um diagrama ilustrativo de um exemplo de estrutura em árvore correspondente à partição de bloco usando a estrutura QTBT da Figura 6.
[0099] A Figura 8 é um diagrama ilustrativo de um exemplo de tipos de partição de árvore ternária horizontal.
[0100] A Figura 9 é um diagrama ilustrativo de um exemplo de tipos de partição de árvore ternária vertical.
[0101] A Figura 10 é um diagrama de fluxo ilustrando um método de decodificação de acordo com uma modalidade.
[0102] A Figura 11 é um diagrama de fluxo ilustrando um método de decodificação de acordo com uma modalidade.
[0103] A Figura 12 é um diagrama de blocos ilustrando um decodificador exemplificativo.
[0104] A Figura 13 é um diagrama de blocos ilustrando um codificador exemplificativo.
[0105] A Figura 14A é um diagrama de fluxo ilustrando um método de codificação de acordo com uma modalidade relacionada ao sinalizador de substituição.
[0106] A Figura 14B é um diagrama de fluxo ilustrando um método de codificação de acordo com uma modalidade relacionada ao sinalizador habilitado de substituição.
[0107] A Figura 15 é um diagrama de blocos mostrando um exemplo de estrutura de um sistema de fornecimento de conteúdo, o qual realiza um serviço de entrega de conteúdo.
[0108] A Figura 16 é um diagrama de blocos mostrando uma estrutura de um exemplo de um dispositivo terminal.
[0109] A seguir referências numéricas idênticas se referem a recursos idênticos ou pelo menos funcionalmente equivalentes se não explicitamente especificado de outra forma;
[0110] A Figura 17 é um diagrama de blocos mostrando um exemplo de um codificador de vídeo configurado para implementar modalidades da invenção;
[0111] A Figura 18 é um diagrama de blocos mostrando um exemplo de estrutura de um decodificador de vídeo configurado para implementar modalidades da invenção.
[0112] A seguir referências numéricas idênticas se referem a recursos idênticos ou pelo menos funcionalmente equivalentes, se não explicitamente especificado de outra forma.
DESCRIÇÃO DETALHADA DAS MODALIDADES
[0113] Na descrição a seguir, é feita referência às figuras anexas, as quais formam parte da revelação, e que mostram, a título de ilustração, aspectos específicos de modalidades da invenção ou aspectos específicos em que modalidades da presente invenção podem ser usadas. É entendido que modalidades da invenção podem ser usadas em outros aspectos e compreendem mudanças estruturais ou lógicas não representadas nas figuras. A descrição detalhada a seguir, portanto, não deve ser tomada em um sentido limitante, e o escopo da presente invenção é definido pelas reivindicações anexas.
[0114] Por exemplo, entende-se que uma revelação em conexão com um método descrito pode também ser verdadeira para um dispositivo ou sistema correspondente configurado para realizar o método e vice-versa. Por exemplo, se uma ou uma pluralidade de etapas de método específicas são descritas, um dispositivo correspondente pode incluir uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, para realizar a uma ou a pluralidade de etapas de método descritas (por exemplo, uma unidade realizando uma ou uma pluralidade de etapas, ou uma pluralidade de unidades cada uma realizando uma ou mais da pluralidade de etapas), mesmo se tal uma ou mais unidades não são explicitamente descritas ou ilustradas nas figuras. Por outro lado, por exemplo, se um aparelho específico é descrito com base em uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, um método correspondente pode incluir uma etapa para realizar a funcionalidade da uma ou da pluralidade de unidades (por exemplo, uma etapa realizando a funcionalidade de uma ou pluralidade de unidades, ou uma pluralidade de etapas, cada uma realizando a funcionalidade de uma ou mais da pluralidade de unidades), mesmo se tal uma ou pluralidade de etapas não são explicitamente descritas ou ilustradas nas figuras. Além disso, entende-se que os recursos das várias modalidades e/ou aspectos exemplificativos descritos no presente documento podem ser combinados entre si, a menos que especificamente indicado de outra forma.
[0115] Codificação de vídeo tipicamente se refere ao processamento de uma sequência de figuras, as quais formam o vídeo ou sequência de vídeo. Em vez do termo "figura", o termo "quadro" ou "imagem" pode ser usado como sinônimos no campo de codificação de vídeo. Codificação de vídeo usada no presente pedido (ou presente revelação) indica ou codificação de vídeo ou decodificação de vídeo. Codificação de vídeo é realizada no lado de fonte, tipicamente compreendendo processar (por exemplo, por compressão) as figuras de vídeo originais para reduzir a quantidade de dados exigida para representar as figuras de vídeo (para armazenamento e/ou transmissão mais eficiente). Decodificação de vídeo é realizada no lado de destino e tipicamente compreende o processamento inverso comparado ao codificador para representar as figuras de vídeo. Modalidades que se referem à "codificação"de figuras de vídeo (ou figuras em geral, como será explicado adiante) devem ser entendidas como relacionadas ou à "codificação"ou "decodificação"para sequência de vídeo. A combinação da parte de codificação e da parte de decodificação também é referida como CODEC (Codificação e Decodificação).
[0116] No caso de codificação de vídeo sem perdas, as figuras de vídeo originais podem ser reconstruídas, isto é, as figuras de vídeo reconstruídas têm a mesma qualidade que as figuras de vídeo originais (presumindo nenhuma perda de transmissão ou outra perda de dados durante armazenamento ou transmissão). Em caso de codificação de vídeo com perdas, compressão adicional, por exemplo, por quantização, é realizada, para reduzir a quantidade de dados que representam as figuras de vídeo, que não podem ser completamente reconstruídas no decodificador, isto é, a qualidade das figuras de vídeo reconstruídas é mais baixa ou pior comparada à qualidade das figuras de vídeo originais.
[0117] Vários padrões de codificação de vídeo desde H.261 pertencem ao grupo de "codecs de vídeo híbridos com perdas" (isto é, combinam predição espacial e temporal no domínio de amostra e codificação de transformada 2D para aplicar quantização no domínio de transformada). Cada figura de uma sequência de vídeo é tipicamente particionada em um conjunto de blocos não sobrepostos e a codificação é tipicamente realizada a um nível de bloco. Em outras palavras, no codificador o vídeo é tipicamente processado, isto é, codificado, a um nível de bloco (bloco de vídeo), por exemplo, usando-se predição espacial (intra figura) e predição temporal (inter figuras) para gerar um bloco de predição, subtraindo o bloco de predição do bloco corrente (bloco correntemente processado/a ser processado) para obter um bloco residual, transformando o bloco residual e quantizando o bloco residual no domínio de transformada para reduzir a quantidade de dados a serem transmitidos (compressão), enquanto no decodificador o processamento inverso comparado ao codificador é parcialmente aplicado ao bloco codificado ou comprimido para reconstruir o bloco corrente para representação. Além disso, o codificador duplica o loop de processamento de decodificador de modo que ambos irão gerar predições idênticas (por exemplo, predições intra e inter) e/ou reconstruções para processar, isto é, codificar, os blocos subsequentes.
[0118] Conforme usado no presente documento, o termo "bloco" pode ser uma parte de uma figura ou um quadro. Para conveniência da descrição, modalidades da invenção são descritas no presente documento em referência à Codificação de Vídeo de Alta Eficiência (HEVC) ou ao software de referência de Codificação de vídeo versátil (VVC), desenvolvido pela Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas de Codificação de Vídeo ITU-T (VCEG) e Grupo de Especialistas em Figuras em Movimento ISO/IEC (MPEG). Uma pessoa de habilidade comum na técnica irá entender que as modalidades da invenção não estão limitadas a HEVC ou VVC. A mesma pode se referir a CU, PU e TU. Na HEVC, uma CTU é dividida em CUs usando-se uma estrutura de árvore quaternária indicada como árvore de codificação. A decisão de codificar ou não uma área de figura usando predição inter figuras (temporal) ou intra figura (espacial) é feita ao nível de CU. Cada CU pode ser adicionalmente dividido em uma, duas ou quatro PUs de acordo com o tipo de divisão de PU. Dentro de uma PU, o mesmo processo de predição é aplicado e as informações relevantes são transmitidas para o decodificador com base na PU. Depois de obter o bloco residual aplicando-se o processo de predição com base no tipo de divisão de PU, uma CU pode ser particionada em unidades de transformada (TUs) de acordo com uma outra estrutura de árvore quaternária semelhante à árvore de codificação para a CU. No desenvolvimento mais recente da técnica de compressão de vídeo, o quadro de partição árvore quaternária e árvore binária (QTBT) é usado para particionar um bloco de codificação. Na estrutura de bloco QTBT, uma CU pode ter um formato quadrado ou retangular. Por exemplo, uma unidade de árvore de codificação (CTU) é primeiramente particionada por uma estrutura de árvore quaternária. Os nós folha de árvore quaternária são adicionalmente particionados por uma estrutura de árvore binária. Os nós folha de árvore binária são chamados de unidades de codificação (CUs), e essa segmentação é usada para predição e processamento de transformada sem qualquer partição adicional. Isso significa que CU, PU e TU têm o mesmo tamanho de bloco na estrutura de bloco de codificação de QTBT. Em paralelo, partição múltipla, por exemplo, partição em árvore ternária também foi proposta para ser usada juntamente com a estrutura de blocos QTBT. O termo "dispositivo"também pode ser "aparelho", "decodificador" ou "codificador".
[0119] Nas seguintes modalidades de um codificador 20, um decodificador 30 e um sistema de codificação 10 são descritos com base nas Figuras 1 a 3.
[0120] A Figura 1A é um diagrama de blocos conceitual ou esquemático ilustrando um sistema de codificação exemplificativo 10, por exemplo, um sistema de codificação de vídeo 10 que pode utilizar técnicas do presente pedido (presente revelação). O codificador 20 (por exemplo, Codificador de vídeo 20) e o decodificador 30 (por exemplo, decodificador de vídeo 30) do sistema de codificação de vídeo 10 representam exemplos de dispositivos que podem ser configurados para realizar técnicas de acordo com vários exemplos descritos no presente pedido. Como mostrado na Figura 1A, o sistema de codificação 10 compreende um dispositivo de fonte 12 configurado para fornecer dados codificados 13, por exemplo, uma figura codificada 13, por exemplo, para um dispositivo de destino 14 para decodificar os dados codificados 13.
[0121] O dispositivo de fonte 12 compreende um codificador 20 e pode adicionalmente, isto é, opcionalmente, compreender uma fonte de figura 16, uma unidade de pré-processamento 18, por exemplo, uma unidade de pré- processamento de figura 18, e uma interface de comunicação ou unidade de comunicação 22.
[0122] A fonte de figura 16 pode compreender ou ser qualquer tipo de dispositivo de captura de figura, por exemplo, para capturar uma figura do mundo real, e/ou qualquer tipo de um dispositivo gerador de figura ou comentário (para codificação de conteúdo de tela, alguns textos na tela são também considerados uma parte de uma figura ou imagem a ser codificada), por exemplo, um processador de computação gráfica para gerar uma figura animada por computador, ou qualquer tipo de dispositivo para obter e/ou fornecer uma figura do mundo real, uma figura animada por computador (por exemplo, um conteúdo de tela, uma figura de realidade virtual (VR)) e/ou qualquer combinação destes (por exemplo, uma figura de realidade aumentada (AR)). A fonte de figura pode ser qualquer tipo de memória ou armazenamento armazenando qualquer uma das figuras acima mencionadas.
[0123] Uma figura (digital) é ou pode ser considerada como um arranjo bidimensional ou matriz de amostras com valores de intensidade. Uma amostra no arranjo também pode ser referida como pixel (forma abreviada de elemento de figura) ou um pel. O número de amostras na direção (ou eixo geométrico) horizontal e vertical do arranjo ou figura define o tamanho e/ou resolução da figura. Para representação de cor, tipicamente três componentes de cor são empregados, isto é, a figura pode ser representada ou incluir três arranjos de amostra. No formato RBG ou espaço de cor uma figura compreende um arranjo de amostra vermelha, verde e azul correspondente. No entanto, em codificação de vídeo cada pixel é tipicamente representado em um formato de luminância/crominância ou espaço de cor, por exemplo, YCbCr, que compreende um componente de luminância indicado por Y (algumas vezes L também é usado alternativamente) e dois componentes de crominância indicados por Cb e Cr. O componente de luminância (ou luma curta) Y representa o brilho ou intensidade do nível de cinza (por exemplo, como em uma figura em escala de cinza), enquanto os dois componentes de crominância (ou croma curta) Cb e Cr representam os componentes de cromaticidade ou de informações de cor. Consequentemente, uma figura no formato YCbCr compreende um arranjo de amostra de luminância de valores de amostra de luminância (Y) e dois arranjos de amostra de crominância de valores de crominância (Cb e Cr). As figuras no formato RGB podem ser convertidas ou transformadas para o formato YCbCr e vice-versa, o processo também é conhecido como transformada ou conversão de cor. Se uma figura é monocromática, a figura pode compreender apenas um arranjo de amostra de luminância.
[0124] A fonte de figura 16 (por exemplo, fonte de vídeo 16) pode ser, por exemplo, uma câmera para capturar uma figura, uma memória, por exemplo, uma memória de figura, compreendendo ou armazenando uma figura previamente capturada ou gerada, e/ou qualquer tipo de interface (interna ou externa) para obter ou receber uma figura. A câmera pode ser, por exemplo, uma câmera local ou integrada que está integrada no dispositivo de fonte, a memória pode ser uma memória local ou integrada, por exemplo, integrada no dispositivo de fonte. A interface pode ser, por exemplo, uma interface externa para receber uma figura a partir de uma fonte de vídeo externa, por exemplo, um dispositivo externo de captura de figura tal como uma câmera, uma memória externa, ou um dispositivo externo de geração de figura, por exemplo, um processador de computação gráfica externo, computador ou servidor. A interface pode ser qualquer tipo de interface, por exemplo, uma interface com fio ou sem fio, uma interface óptica, de acordo com qualquer protocolo de interface exclusivo ou padronizado. A interface para obter os dados de figura 17 pode ser a mesma interface ou uma parte da interface de comunicação 22.
[0125] Diferentemente da unidade de pré-processamento 18 e do processamento realizado pela unidade de pré-processamento 18, a figura ou dados de figura 17 (por exemplo, dados de vídeo 16) também podem ser referidos como figura bruta ou dados de figura brutos 17.
[0126] A unidade de pré-processamento 18 é configurada para receber os dados de figura (bruta) 17 e para realizar pré-processamento nos dados de figura 17 para obter uma figura pré-processada 19 ou dados de figura pré-processados 19. Pré-processamento realizado pela unidade de pré- processamento 18 pode, por exemplo, compreender corte, conversão de formato de cor (por exemplo, de RGB para YCbCr), correção de cor, ou eliminação de ruído. Pode ser entendido que a unidade de pré-processamento 18 pode ser um componente opcional.
[0127] O codificador 20 (por exemplo, codificador de vídeo 20) é configurado para receber os dados de figura pré-processados 19 e fornecer dados de figura codificados 21 (mais detalhes serão descritos abaixo, por exemplo, com base na Figura 2 ou Figura 4).
[0128] A interface de comunicação 22 do dispositivo de fonte 12 pode ser configurada para receber os dados de figura codificados 21 e para transmitir os dados de figura codificados 21 (ou qualquer versão adicionalmente processada dos mesmos) através do canal de comunicação 13 para um outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo, para armazenamento ou reconstrução direta, ou para processar os dados de figura codificados 21, respectivamente, antes de armazenar os dados codificados 13 e/ou transmitir os dados codificados 13 para um outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo para decodificação ou armazenamento.
[0129] O dispositivo de destino 14 compreende um decodificador 30 (por exemplo, um decodificador de vídeo 30), e pode adicionalmente, isto é, opcionalmente, compreender uma interface de comunicação ou unidade de comunicação 28, uma unidade de pós-processamento 32 e um dispositivo de exibição 34.
[0130] A interface de comunicação 28 do dispositivo de destino 14 é configurada para receber os dados de figura codificados 21 (ou qualquer versão adicionalmente processada dos mesmos) ou os dados codificados 13, por exemplo, diretamente a partir do dispositivo de fonte 12 ou de qualquer outra fonte, por exemplo, um dispositivo de armazenamento, por exemplo, um dispositivo de armazenamento de dados de figura codificados e fornecer os dados de figura codificados 21 para o decodificador 30.
[0131] A interface de comunicação 22 e a interface de comunicação 28 podem ser configuradas para transmitir ou receber os dados de figura codificados 21 ou dados codificados 13 via um enlace de comunicação direta entre o dispositivo de fonte 12 e o dispositivo de destino 14, por exemplo, uma conexão direta com fio ou sem fio, ou via qualquer tipo de rede, por exemplo, uma rede com fio ou sem fio ou qualquer combinação destas, ou qualquer tipo de rede privada e pública, ou qualquer tipo de combinação das mesmas.
[0132] A interface de comunicação 22 pode ser, por exemplo, configurada para empacotar os dados de figura codificados 21 em um formato apropriado, por exemplo, pacotes, e/ou processar os dados de figura codificados usando qualquer tipo de codificação de transmissão ou processamento para transmissão através de um enlace de comunicação ou rede de comunicação.
[0133] A interface de comunicação 28, formando a contraparte da interface de comunicação 22, pode ser, por exemplo, configurada para receber os dados transmitidos e processar os dados de transmissão usando qualquer tipo de decodificação ou processamento de transmissão correspondente e/ou desempacotamento dos dados codificados 13 para obter os dados de figura codificados 21.
[0134] Tanto a interface de comunicação 22 quanto a interface de comunicação 28 podem ser configuradas como interfaces de comunicação unidirecionais, conforme indicado pela seta para os dados de figura codificados 13 na Figura 1A apontando do dispositivo de fonte 12 para o dispositivo de destino 14, ou interfaces de comunicação bidirecionais e podem ser configuradas, por exemplo, para enviar e receber mensagens, por exemplo, para configurar uma conexão, para confirmar e trocar quaisquer outras informações relacionadas ao enlace de comunicação e/ou transmissão de dados, por exemplo, transmissão de dados de figura codificados.
[0135] O decodificador 30 é configurado para receber os dados de figura codificados 21 e fornecer dados de figura decodificados 31 ou uma figura decodificada 31 (detalhes adicionais serão descritos abaixo, por exemplo, com base na Figura 3 ou Figura 5).
[0136] O pós-processador 32 do dispositivo de destino 14 é configurado para pós-processar os dados de figura decodificados 31 (também chamados de dados de figura reconstruídos), por exemplo, a figura decodificada 31, para obter dados de figura pós-processados 33, por exemplo, uma figura pós-processada 33. O pós-processamento realizado pela unidade de pós- processamento 32 pode compreender, por exemplo, conversão de formato de cor (por exemplo, de YCbCr para RGB), correção de cor, corte, ou nova amostragem, ou qualquer outro processamento, por exemplo, para preparar os dados de figura decodificados 31 para exibição, por exemplo, pelo dispositivo de exibição 34.
[0137] O dispositivo de exibição 34 do dispositivo de destino 14 é configurado para receber os dados de figura pós-processados 33 para exibir a figura, por exemplo, para um usuário ou visualizador. O dispositivo de exibição 34 pode ser ou compreender qualquer tipo de exibidor para representar a figura reconstruída, por exemplo, um exibidor ou exibidor integrado ou externo. Os exibidores podem, por exemplo, compreender exibidores de cristal líquido (LCD), exibidores de diodos emissores de luz orgânica (OLED), exibidores de plasma, projetores, exibidores microLED, cristal líquido em silício (LCoS), processador de luz digital (DLP) ou qualquer tipo de outro exibidor.
[0138] Embora a Figura 1A represente o dispositivo de fonte 12 e o dispositivo de destino 14 como dispositivos separados, modalidades de dispositivos também podem compreender ambos ou ambas as funcionalidades, o dispositivo de fonte 12 ou funcionalidade correspondente e o dispositivo de destino 14 ou funcionalidade correspondente. Em tais modalidades o dispositivo de fonte 12 ou funcionalidade correspondente e o dispositivo de destino 14 ou funcionalidade correspondente podem ser implementados usando o mesmo hardware e/ou software ou por hardware e/ou software separado(s) ou qualquer combinação dos mesmos.
[0139] Como será evidente para a pessoa versada com base na descrição, a existência e divisão (exata) de funcionalidades das diferentes unidades ou funcionalidades dentro do dispositivo de fonte 12 e/ou dispositivo de destino 14 como mostrado na Figura 1A pode variar dependendo do dispositivo e aplicação efetivos.
[0140] O codificador 20 (por exemplo, um codificador de vídeo 20) e o decodificador 30 (por exemplo, um decodificador de vídeo 30), podem, cada um deles, ser implementado como qualquer um dentre uma variedade de conjuntos de circuito adequados, tais como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específicas (ASICs), arranjos de porta programáveis em campo (FPGAs), lógica discreta, hardware, ou qualquer combinação dos mesmos. Se as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em uma mídia de armazenamento adequada, legível por computador não transitória e pode executar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta revelação. Qualquer um dos supracitados (incluindo hardware, software, uma combinação de hardware e software, etc.) pode ser considerado como sendo um ou mais processadores. Cada um dentre o codificador de vídeo 20 e decodificador de vídeo 30 podem ser incluídos em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador combinados (CODEC) em um respectivo dispositivo.
[0141] O codificador 20 pode ser implementado via circuitos de processamento 46 para incorporar os vários módulos conforme discutido em relação ao codificador 20 da Figura 2 e/ou qualquer outro sistema ou subsistema codificador descrito no presente documento. O decodificador 30 pode ser implementado via circuitos de processamento 46 para incorporar os vários módulos conforme discutido em relação ao decodificador 30 da Figura 3 e/ou qualquer outro sistema ou subsistema decodificador descrito no presente documento. Os circuitos de processamento podem ser configurados para realizarem as várias operações conforme discutido adiante. Conforme mostrado na Figura 5, se as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em uma mídia de armazenamento adequada, legível por computador não transitória e pode executar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta revelação. Tanto o codificador de vídeo 20 quanto o decodificador de vídeo 30 podem ser integrados como parte de uma codificador/decodificador combinados (CODEC) em um único dispositivo, por exemplo, como mostrado na Figura 1B.
[0142] O dispositivo de fonte 12 pode ser referido como um dispositivo de codificação de vídeo ou um aparelho de codificação de vídeo. O dispositivo de destino 14 pode ser referido como um dispositivo de decodificação de vídeo ou um aparelho de decodificação de vídeo. O dispositivo de fonte 12 e o dispositivo de destino 14 podem ser exemplos de dispositivos de codificação de vídeo ou aparelhos de codificação de vídeo.
[0143] O dispositivo de fonte 12 e o dispositivo de destino 14 podem compreender qualquer um dentre uma ampla faixa de dispositivos, incluindo qualquer tipo de dispositivos portáteis ou estacionários, por exemplo, computadores tipo notebook ou laptop, telefones móveis, smartphones, tablets ou computadores tipo tablet, câmeras, computadores de mesa, decodificadores, televisões, dispositivos de exibição, reprodutores de mídia digital, consoles de videogame, dispositivos de streaming de vídeo (tais como servidores de serviços de conteúdo ou servidores de entrega de conteúdo), dispositivo receptor de difusão, dispositivo transmissor de difusão, ou semelhantes e podem usar nenhum ou qualquer tipo de sistema operacional.
[0144] Em alguns casos, o dispositivo de fonte 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio. Assim, o dispositivo de fonte 12 e o dispositivo de destino 14 podem ser dispositivos de comunicação sem fio.
[0145] Em alguns casos, o sistema de codificação de vídeo 10 ilustrado na Figura 1A é meramente um exemplo e as técnicas do presente pedido podem aplicar-se às configurações de codificação de vídeo (por exemplo, codificação de vídeo ou decodificação de vídeo) que não incluem necessariamente qualquer comunicação de dados entre os dispositivos de codificação e decodificação. Em outros exemplos, dados são recuperados a partir de uma memória local, transmitidos por streaming por uma rede, ou semelhantes. Um dispositivo de codificação de vídeo pode codificar e armazenar dados na memória, e/ou um dispositivo de decodificação de vídeo pode recuperar e decodificar dados a partir da memória. Em alguns exemplos, a codificação e a decodificação são realizadas por dispositivos que não se comunicam entre si, mas simplesmente codificam dados para a memória e/ou recuperam e decodificam dados a partir da memória.
[0146] Para conveniência da descrição, modalidades da invenção são descritas no presente documento, por exemplo, por referência à Codificação de Vídeo de Alta Eficiência (HEVC) ou ao software de referência de codificação de Vídeo Versátil (VVC), o padrão de codificação de vídeo de próxima geração desenvolvido pela Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas de Codificação de Vídeo ITU-T (VCEG) e Grupo de Especialistas em Figuras em Movimento ISO/IEC (MPEG). Uma pessoa de habilidade comum na técnica entenderá que modalidades da invenção não estão limitadas a HEVC ou VVC.
[0147] Deve ser entendido que, para cada um dos exemplos acima descritos com referência ao codificador de vídeo 20, o decodificador de vídeo 30 pode ser configurado para realizar um processo recíproco. No que diz respeito aos elementos de sintaxe de sinalização, o decodificador de vídeo 30 pode ser configurado para receber e analisar tal elemento de sintaxe e decodificar os dados de vídeo associados de acordo. Em alguns exemplos, o codificador de vídeo 20 pode codificar com entropia um ou mais elementos de sintaxe no fluxo de bits de vídeo codificados. Em tais exemplos, o decodificador de vídeo 30 pode analisar tal elemento de sintaxe e decodificar os dados de vídeo associados de acordo.
[0148] A Figura 1B é um diagrama ilustrativo de um outro sistema de codificação de vídeo exemplificativo 40 incluindo o codificador 20 da Figura 2 e/ou decodificador 30 da Figura 3 de acordo com uma modalidade exemplificativa. O sistema 40 pode implementar técnicas de acordo com vários exemplos descritos no presente pedido. Na implementação ilustrada, o sistema de codificação de vídeo 40 pode incluir dispositivo(s) de geração de imagem 41, codificador de vídeo 100, decodificador de vídeo 30 (e/ou um codificador de vídeo implementado via circuitos lógicos 47 de unidade(s) de processamento 46), uma antena 42, um ou mais processadores 43, um ou mais armazenamentos de memória 44, e/ou um dispositivo de exibição 45.
[0149] Conforme ilustrado, dispositivo(s) de geração de imagem 41, antena 42, unidade(s) de processamento 46, circuitos lógicos 47, codificador de vídeo 20, decodificador de vídeo 30, processador(es) 43, armazenamento(s) de memória 44 e/ou dispositivo de exibição 45 podem ter a capacidade de comunicação um com o outro. Conforme discutido, embora ilustrado tanto com o codificador de vídeo 20 quanto o decodificador de vídeo 30, o sistema de codificação de vídeo 40 pode incluir apenas codificador de vídeo 20 ou apenas decodificador de vídeo 30 em vários exemplos.
[0150] Como mostrado, em alguns exemplos, o sistema de codificação de vídeo 40 pode incluir a antena 42. A antena 42 pode ser configurada para transmitir ou receber um fluxo de bits codificados de dados de vídeo, por exemplo. Além disso, em alguns exemplos, o sistema de codificação de vídeo 40 pode incluir dispositivo de exibição 45. O dispositivo de exibição 45 pode ser configurado para apresentar dados de vídeo. Como mostrado, em alguns exemplos, circuitos lógicos 47 podem ser implementados via unidade(s) de processamento 46. Unidade(s) de processamento 46 podem incluir lógica de circuito integrado de aplicação específica (ASIC), processador(es) gráfico(s), processador(es) de propósito geral, ou semelhantes. O sistema de codificação de vídeo 40 também pode incluir processador(es) opcional (opcionais) 43, que podem incluir de forma semelhante lógica de circuito integrado de aplicação específica (ASIC), processador(es) gráfico(s), processador(es) de propósito geral, ou semelhantes. Em alguns exemplos, circuitos lógicos 47 podem ser implementados via hardware, hardware dedicado de codificação de vídeo, ou semelhantes, e o(s) processador(es) 43 pode(m) implementar software de propósito geral, sistemas operantes ou semelhantes. Além disso, os armazenamentos de memória 44 podem ser qualquer tipo de memória, tal como memória volátil (por exemplo, Memória de Acesso Aleatório Estática (SRAM), Memória de Acesso Aleatório Dinâmica (DRAM), etc.) ou memória não volátil (por exemplo, memória flash, etc.) e assim por diante. Em um exemplo não limitativo, armazenamento(s) de memória 44 podem ser implementados por memória cache. Em alguns exemplos, circuitos lógicos 47 podem acessar armazenamento(s) de memória 44 (para implementação de um buffer (buffer de imagem), por exemplo). Em outros exemplos, circuitos lógicos 47 e/ou unidade(s) de processamento 46 pode incluir armazenamentos de memória (por exemplo, cache ou semelhantes) para a implementação de um buffer de imagem ou semelhantes.
[0151] Em alguns exemplos, o codificador de vídeo 100 implementado via circuitos lógicos pode incluir um buffer de imagem (por exemplo, via unidade(s) de processamento 46 ou armazenamento(s) de memória 44)) e uma unidade de processamento gráfico (por exemplo, via unidade(s) de processamento 46). A unidade de processamento gráfico pode ser acoplada comunicativamente ao buffer de imagem. A unidade de processamento gráfico pode incluir codificador de vídeo 100 conforme implementado via circuitos lógicos 47 para incorporar os vários módulos conforme discutido em relação à Figura 2 e/ou qualquer outro sistema ou subsistema codificador descrito no presente documento. Os circuitos lógicos podem ser configurados para realizarem as várias operações conforme discutidas no presente documento.
[0152] O decodificador de vídeo 30 pode ser implementado de uma maneira semelhante à implementada via circuitos lógicos 47 para incorporar os vários módulos conforme discutido em relação ao decodificador 30 da Figura 3 e/ou qualquer outro sistema ou subsistema decodificador descrito no presente documento. Em alguns exemplos, o decodificador de vídeo 30 pode ser implementado via circuitos lógicos pode incluir um buffer de imagem (por exemplo, via unidade(s) de processamento 420 ou armazenamento(s) de memória 44)) e uma unidade de processamento gráfico (por exemplo, via unidade(s) de processamento 46). A unidade de processamento gráfico pode ser acoplada comunicativamente ao buffer de imagem. A unidade de processamento gráfico pode incluir decodificador de vídeo 30 conforme implementado via circuitos lógicos 47 para incorporar os vários módulos conforme discutido em relação à Figura 3 e/ou qualquer outro sistema ou subsistema decodificador descrito no presente documento.
[0153] Em alguns exemplos, a antena 42 do sistema de codificação de vídeo 40 pode ser configurada para receber um fluxo de bits codificados de dados de vídeo. Conforme discutido, o fluxo de bits codificados pode incluir dados, indicadores, valores de índice, dados de seleção de modo ou semelhantes associados a codificar um quadro de vídeo, como discutido no presente documento, tais como dados associados à partição de codificação (por exemplo, coeficientes de transformada ou coeficientes de transformada quantizados, indicadores opcionais (conforme discutido) e/ou dados que definem a partição de codificação). O sistema de codificação de vídeo 40 também pode incluir decodificador de vídeo 30 acoplado à antena 42 e configurado para decodificar o fluxo de bits codificados. O dispositivo de exibição 45 configurado para apresentar quadros de vídeo.
[0154] A Figura 2 mostra um diagrama de blocos esquemático/conceitual de um codificador de vídeo exemplificativo 20 que é configurado para implementar as técnicas do presente pedido. No exemplo da Figura 2, o codificador de vídeo 20 compreende uma unidade de cálculo residual 204, uma unidade de processamento de transformada 206, uma unidade de quantização 208, uma unidade de quantização inversa 210, e unidade de processamento de transformada inversa 212, uma unidade de reconstrução 214, um buffer 216, uma unidade de filtro loop 220, um buffer de figura decodificada (DPB) 230, uma unidade de processamento de predição 260 e uma unidade de codificação de entropia 270. A unidade de processamento de predição 260 pode incluir uma unidade de predição inter 244, uma unidade de predição intra 254 e uma unidade de seleção de modo 262. A unidade de predição inter 244 pode incluir uma unidade de estimativa de movimento e uma unidade de compensação de movimento (não mostradas). Um codificador de vídeo 20 como mostrado na Figura 2 também pode ser referido como codificador de vídeo híbrido ou um codificador de vídeo de acordo com um codec de vídeo híbrido.
[0155] Por exemplo, a unidade de cálculo residual 204, a unidade de processamento de transformada 206, a unidade de quantização 208, a unidade de processamento de predição 260 e a unidade de codificação de entropia 270 formam um caminho de sinal de encaminhamento do codificador 20, enquanto que, por exemplo, a unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o buffer 216, o filtro loop 220, o buffer de figura decodificada (DPB) 230, a unidade de processamento de predição 260 forma um caminho de sinal reverso do codificador, em que o caminho de sinal reverso do codificador corresponde ao caminho de sinal do decodificador (ver o decodificador 30 na Figura 3).
[0156] A unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o filtro loop 220, o buffer de figura decodificada (DPB) 230, a unidade de predição inter 244 e a unidade de predição intra 254 também são referidas para formar o "decodificador embutido" do codificador de vídeo 20.
[0157] O codificador 20 é configurado para receber, por exemplo, pela entrada 202, uma figura 201 ou um bloco 203 da figura 201, por exemplo, figura de uma sequência de figuras formando um vídeo ou sequência de vídeo. O bloco de figura 203 também pode ser referido como bloco de figura corrente ou bloco de figura a ser codificado, e a figura 201 como figura corrente ou figura a ser codificada (em particular em codificação de vídeo para distinguir a figura corrente de outras figuras, por exemplo, figuras previamente codificadas e/ou decodificadas da mesma sequência de vídeo, isto é, a sequência de vídeo que também compreende a figura corrente).
[0158] Uma figura (digital) é ou pode ser considerada como um arranjo bidimensional ou matriz de amostras com valores de intensidade. Uma amostra no arranjo também pode ser referida como pixel (forma abreviada de elemento de figura) ou um pel. O número de amostras na direção (ou eixo geométrico) horizontal e vertical do arranjo ou figura define o tamanho e/ou resolução da figura. Para representação de cor, tipicamente três componentes de cor são empregados, isto é, a figura pode ser representada ou incluir três arranjos de amostra. No formato RBG ou espaço de cor uma figura compreende um arranjo de amostra vermelha, verde e azul correspondente. No entanto, em codificação de vídeo cada pixel é tipicamente representado em um formato de luminância e crominância ou espaço de cor, por exemplo, YCbCr, que compreende um componente de luminância indicado por Y (algumas vezes também L é usado alternativamente) e dois componentes de crominância indicados por Cb e Cr. O componente de luminância (ou luma curta) Y representa o brilho ou intensidade do nível de cinza (por exemplo, como em uma figura em escala de cinza), enquanto os dois componentes de crominância (ou croma curta) Cb e Cr representam a cromaticidade ou componentes de informações de cor. Consequentemente, uma figura no formato YCbCr compreende um arranjo de amostra de luminância de valores de amostra de luminância (Y), e dois arranjos de amostra de crominância de valores de crominância (Cb e Cr). As figuras em formato RGB podem ser convertidas ou transformadas para o formato YCbCr e vice-versa, o processo também é conhecido como transformada ou conversão de cor. Se uma figura é monocromática, a figura pode compreender apenas um arranjo de amostra de luminância. Consequentemente, uma figura pode ser, por exemplo, um arranjo de amostras de luma em formato monocromático ou um arranjo de amostras de luma e dois arranjos correspondentes de amostras de croma em formato de cor 4: 2: 0, 4: 2: 2 e 4: 4: 4. PARTIÇÃO
[0159] Modalidades do codificador 20 podem compreender uma unidade de partição (não representada na Figura 2) configurada para particionar a figura 201 em uma pluralidade de (tipicamente não sobrepostos) blocos de figura 203. Esses blocos também podem ser referidos como blocos raiz, macroblocos (H.264 / AVC) ou blocos de árvore de codificação (CTB) ou unidades de árvore de codificação (CTU) (H.265/HEVC e VVC). A unidade de partição pode ser configurada para usar o mesmo tamanho de bloco para todas as figuras de uma sequência de vídeo e a grade correspondente definindo o tamanho de bloco, ou para mudar o tamanho de bloco entre figuras ou subconjuntos ou grupos de figuras, e particionar cada figura nos blocos correspondentes.
[0160] Em modalidades adicionais, o codificador de vídeo pode ser configurado para receber diretamente um bloco 203 da figura 201, por exemplo, um, vários ou todos os blocos que formam a figura 201. O bloco de figura 203 também pode ser referido como bloco de figura corrente ou bloco de figura a ser codificado.
[0161] Em um exemplo, a unidade de processamento de predição 260 do codificador de vídeo 20 pode ser configurada para realizar qualquer combinação das técnicas de partição descritas acima.
[0162] Como a figura 201, o bloco 203 novamente é ou pode ser considerado como um arranjo bidimensional ou matriz de amostras com valores de intensidade (valores de amostra), embora de menor dimensão que a figura 201. Em outras palavras, o bloco 203 pode compreender, por exemplo, um arranjo de amostra (por exemplo, um arranjo de luma no caso de uma figura monocromática 201) ou três arranjos de amostra (por exemplo, uma luma e dois arranjos de croma em caso de uma figura colorida 201) ou qualquer outro número e/ou tipo de arranjos dependendo do formato de cor aplicado. O número de amostras na direção (ou eixo geométrico) horizontal e vertical do bloco 203 define o tamanho de bloco 203. Por conseguinte, um bloco pode, por exemplo, um arranjo MxN (coluna M por linha N) de amostras, ou um arranjo MxN de coeficientes de transformada.
[0163] O codificador 20 conforme mostrado na Figura 2 é configurado para codificar a figura 201 bloco a bloco, por exemplo, a codificação e predição são realizadas por bloco 203.
[0164] Modalidades do codificador de vídeo 20 como mostrado na Figura 2 podem ser adicionalmente configuradas para particionar e/ou codificar a figura usando-se fatias (também referidas como fatias de vídeo), em que uma figura pode ser particionada ou codificada usando uma ou mais fatias (tipicamente não sobrepostas), e cada fatia pode compreender um ou mais blocos (por exemplo, CTUs) ou um ou mais grupos de blocos (por exemplo, tiles (H.265/HEVC e VVC) ou bricks (VVC)).
[0165] Modalidades do codificador de vídeo 20 como mostrado na Figura 2 podem ser adicionalmente configuradas para particionar e/ou codificar a figura usando-se grupos de fatias/tiles(também referidos como grupos de tiles de vídeo) e/ou tiles(também referidos como tiles de vídeo), em que uma figura pode ser particionada ou codificada usando um ou mais grupos de fatias/tiles (tipicamente não sobrepostos), e cada grupo de fatia/tile pode compreender, por exemplo, um ou mais blocos (por exemplo, CTUs) ou um ou mais tiles, em que cada tile, por exemplo, pode ser de formato retangular e pode compreender um ou mais blocos (por exemplo, CTUs), por exemplo, blocos completos ou fracionários.
CÁLCULO RESIDUAL
[0166] A unidade de cálculo residual 204 é configurada para calcular um bloco residual 205 com base no bloco de figura 203 e um bloco de predição 265 (detalhes adicionais sobre o bloco de predição 265 são fornecidos adiante), por exemplo, subtraindo-se valores de amostra do bloco de predição 265 dos valores de amostra do bloco de figura 203, amostra por amostra (pixel por pixel) para obter o bloco residual 205 no domínio de amostra.
TRANSFORMADA
[0167] A unidade de processamento de transformada 206 é configurada para aplicar uma transformada, por exemplo uma transformada discreta de cosseno (DCT) ou transformada discreta de seno (DST), nos valores de amostra do bloco residual 205 para obter coeficientes de transformada 207 em um domínio de transformada. Os coeficientes de transformada 207 também podem ser referidos como coeficientes residuais de transformada e representam o bloco residual 205 no domínio de transformada.
[0168] A unidade de processamento de transformada 206 pode ser configurada para aplicar aproximações inteiras de DCT/DST, tais como as transformadas especificadas para HEVC/H.265. Comparado a uma transformada DCT ortogonal, tais aproximações inteiras são tipicamente escaladas por um determinado fator. A fim de preservar a norma do bloco residual que é processado pelas transformadas direta e inversa, fatores de escala adicionais são aplicados como parte do processo de transformada. Os fatores de escala são tipicamente escolhidos com base em determinadas restrições como fatores de escala sendo uma potência de dois para operação de deslocamento, profundidade de bit dos coeficientes de transformada, equilíbrio entre precisão e custos de implementação, etc. Fatores de escala específicos são, por exemplo, especificados para a transformada inversa, por exemplo, por unidade de processamento de transformada inversa 212, em um decodificador 30 (e a transformada inversa correspondente, por exemplo, por unidade de processamento de transformada inversa 212 em um codificador 20) e fatores de escala correspondentes para a transformada direta, por exemplo, pela unidade de processamento de transformada 206, em um codificador 20 podem ser especificados de acordo.
[0169] Modalidades do codificador de vídeo 20 (respectivamente unidade de processamento de transformada 206) podem ser configuradas para emitir parâmetros de transformada, por exemplo, um tipo de transformada ou transformadas, por exemplo, diretamente ou codificado ou compactado via unidade de codificação de entropia 270, de modo que, por exemplo, o decodificador de vídeo 30 possa receber e usar os parâmetros de transformada para decodificação.
QUANTIZAÇÃO
[0170] A unidade de quantização 208 é configurada para quantizar os coeficientes de transformada 207 para obter coeficientes de transformada quantizados 209, por exemplo, aplicando-se quantização escalar ou quantização vetorial. Os coeficientes de transformada quantizados 209 também podem ser referidos como coeficientes residuais quantizados 209. O processo de quantização pode reduzir a profundidade de bits associada a alguns ou todos os coeficientes de transformada 207. Por exemplo, um coeficiente de transformada de n bits pode ser arredondado para baixo até um Coeficiente de transformada de m bits durante a quantização, onde n é maior que m. O grau de quantização pode ser modificado ajustando-se um parâmetro de quantização (QP). Por exemplo, para quantização escalar, diferentes escalas podem ser aplicadas para alcançar uma quantização mais fina ou mais grosseira. Tamanhos de etapa de quantização menores correspondem a quantização mais fina, enquanto que tamanhos de etapa de quantização maiores correspondem a quantização mais grosseira. O tamanho de etapa de quantização aplicável pode ser indicado por um parâmetro de quantização (QP). O parâmetro de quantização pode, por exemplo, ser um índice para um conjunto pré-ajustado de tamanhos de etapa de quantização aplicáveis. Por exemplo, pequenos parâmetros de quantização podem corresponder a quantização fina (tamanhos de etapas de quantização pequenos) e parâmetros de quantização grandes podem corresponder a quantização grosseira (tamanhos de etapas de quantização grandes) ou vice- versa. A quantização pode incluir divisão por um tamanho de etapa de quantização e desquantização correspondente ou inversa, por exemplo, por quantização inversa 210, pode incluir multiplicação pelo tamanho de etapa de quantização. Modalidades de acordo com alguns padrões, por exemplo, HEVC, podem ser configuradas para usar um parâmetro de quantização para determinar o tamanho de etapa de quantização. De modo geral, o tamanho de etapa de quantização pode ser calculado com base em um parâmetro de quantização usando uma aproximação de ponto fixo de uma equação incluindo divisão. Fatores de escala adicionais podem ser introduzidos para quantização e desquantização para restaurar a norma do bloco residual, que pode ser modificado por causa da escala usada na aproximação de ponto fixo da equação para o tamanho de etapa de quantização e parâmetro de quantização. Em uma implementação exemplificativa, a escala da transformada inversa e a desquantização podem ser combinadas. Alternativamente, tabelas de quantização personalizadas podem ser usadas e sinalizadas de um codificador para um decodificador, por exemplo, em um fluxo de bits. A quantização é uma operação com perdas, em que a perda aumenta com tamanhos crescentes de etapas de quantização.
[0171] Modalidades do codificador de vídeo 20 (respectivamente unidade de quantização 208) podem ser configuradas para emitir parâmetros de quantização (QP), por exemplo, diretamente ou codificados via unidade de codificação de entropia 270, de modo que, por exemplo, o decodificador de vídeo 30 pode receber e aplicar os parâmetros de quantização para decodificação.
[0172] A unidade de quantização inversa 210 é configurada para aplicar a quantização inversa da unidade de quantização 208 nos coeficientes quantizados para obter coeficientes desquantizados 211, por exemplo, aplicando-se o inverso do esquema de quantização aplicado pela unidade de quantização 208 com base no ou usando o mesmo tamanho de etapa de quantização que a unidade de quantização 208. Os coeficientes desquantizados 211 também podem ser referidos como coeficientes residuais desquantizados 211 e correspondem - embora tipicamente não idênticos aos coeficientes de transformada devido à perda por quantização - aos coeficientes de transformada 207.
[0173] A unidade de processamento de transformada inversa 212 é configurada para aplicar a transformada inversa da transformada aplicada pela unidade de processamento de transformada 206, por exemplo, uma transformada de cosseno discreta (DCT) inversa ou transformada de seno discreta (DST) inversa, para obter um bloco de transformada inversa 213 no domínio de amostra. O bloco de transformada inversa 213 também pode ser referido como bloco desquantizado de transformada inversa 213 ou bloco residual de transformada inversa 213.
[0174] A unidade de reconstrução 214 (por exemplo, Somador 214) é configurada para adicionar o bloco de transformada inversa 213 (isto é, bloco residual reconstruído 213) ao bloco de predição 265 para obter um bloco reconstruído 215 no domínio de amostra, por exemplo, adicionando-se os valores de amostra do bloco residual reconstruído 213 e os valores de amostra do bloco de predição 265.
[0175] Opcional, a unidade de buffer 216 (ou "buffer" curto 216), por exemplo, um buffer de linha 216, é configurada para armazenar e, buffer ou armazenar o bloco reconstruído 215 e os respectivos valores de amostra, por exemplo, para predição dentro de bloco. Em outras modalidades, o codificador pode ser configurado para usar blocos reconstruídos não filtrados e/ou os respectivos valores de amostra armazenados na unidade de buffer 216 para qualquer tipo de estimativa e/ou predição, por exemplo, predição dentro de bloco.
[0176] Modalidades do codificador 20 podem ser configuradas de modo que, por exemplo, a unidade de buffer 216 não é apenas usada para armazenar os blocos reconstruídos 215 para predição dentro de bloco 254, mas também para a unidade de filtro loop 220 (não mostrada na Figura 2), e/ou de modo que, por exemplo, a unidade de buffer 216 e a unidade de buffer de figura decodificada 230 formam um buffer. Outras modalidades podem ser configuradas para usar blocos filtrados 221 e/ou blocos ou amostras do buffer de figura decodificada 230 (ambos não mostrados na Figura 2) como entrada ou base para predição dentro de bloco 254.
[0177] A unidade de filtro loop 220 (ou "filtro loop" curto 220) é configurada para filtrar o bloco reconstruído 215 para obter um bloco filtrado 221, por exemplo, para suavizar transições de pixel, ou aperfeiçoar de outra forma a qualidade de vídeo. A unidade de filtro loop 220 é destinada a representar um ou mais filtros loop, como um filtro de desbloqueio, um filtro de desvio adaptável a amostra (SAO) ou outros filtros, por exemplo, um filtro bilateral ou um filtro loop adaptável (ALF) ou filtros de nitidez ou suavização ou filtros colaborativos. Embora a unidade de filtro loop 220 seja mostrada na Figura 2 como sendo um filtro loop, em outras configurações, a unidade de filtro loop 220 pode ser implementada como um filtro pós-loop. O bloco 221 filtrado também pode ser referido como bloco 221 reconstruído filtrado. O buffer de figura decodificada 230 pode armazenar os blocos de codificação reconstruídos depois que a unidade de filtro loop 220 realiza as operações de filtragem nos blocos de codificação reconstruídos.
[0178] A unidade de filtro loop 220 (ou "filtro loop" curto 220), é configurada para filtrar o bloco reconstruído 215 para obter um bloco filtrado 221 ou, em geral, para filtrar amostras reconstruídas para obter valores de amostra filtrados. A unidade de filtro loop é, por exemplo, configurada para suavizar transições de pixel, ou aperfeiçoar de outra forma a qualidade de vídeo. A unidade de filtro loop 220 pode compreender um ou mais filtros loop tais como um filtro de desbloqueio, um filtro de desvio adaptável a amostra (SAO) ou um ou mais outros filtros, por exemplo, um filtro loop adaptável (ALF), um filtro de supressão de ruído (NSF), ou qualquer combinação dos mesmos. Em um exemplo, a unidade de filtro loop 220 pode compreender um filtro de desbloqueio, um filtro SAO e um filtro ALF. A ordem do processo de filtragem pode ser o filtro de desbloqueio, SAO e ALF. Em um outro exemplo, um processo chamado o mapeamento de luma com escala de croma (LMCS) (a saber, o remodelador inloop adaptável) é adicionado. Este processo é realizado antes do desbloqueio. Em um outro exemplo, o processo de desbloqueio de filtro também pode ser aplicado às bordas de sub-blocos intra por exemplo, bordas de sub-blocos afins, bordas de sub-blocos ATMVP, bordas de transformada de sub-bloco (SBT) e bordas de subpartição intra (ISP). Embora a unidade de filtro loop 220 seja mostrada na Figura 2 como sendo um filtro loop, em outras configurações, a unidade de filtro loop 220 pode ser implementada como um filtro pós-loop. O bloco filtrado 221 também pode ser referido como bloco reconstruído filtrado 221.
[0179] Modalidades do codificador de vídeo 20 (respectivamente unidade de filtro loop 220) podem ser configuradas para emitir parâmetros de filtro loop (como parâmetros de filtro SAO ou parâmetros de filtro ALF ou parâmetros LMCS), por exemplo, diretamente ou codificados via unidade de codificação de entropia 270, de modo que, por exemplo, um decodificador 30 possa receber e aplicar os mesmos parâmetros de filtro loop ou respectivos filtros loop para decodificação.
[0180] Modalidades do codificador 20 (respectivamente unidade de filtro loop 220) podem ser configuradas para emitir parâmetros de filtro loop (tais como informações de desvio adaptável a amostra), por exemplo, diretamente ou codificadas por entropia via unidade de codificação de entropia 270 ou qualquer outra unidade de codificação de entropia, de modo que, por exemplo, um decodificador 30 possa receber e aplicar os mesmos parâmetros de filtro loop para decodificação.
[0181] O buffer de figura decodificada (DPB) 230 pode ser uma memória de figura de referência que armazena dados de figura de referência para uso na codificação de dados de vídeo pelo codificador de vídeo 20. O DPB 230 pode ser formado por qualquer um dentre uma variedade de dispositivos de memória, tais como memória de acesso aleatório dinâmica (DRAM), incluindo DRAM síncrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM), ou outros tipos de dispositivos de memória. O DPB 230 e o buffer 216 podem ser fornecidos pelo mesmo dispositivo de memória ou dispositivos de memória separados. Em algum exemplo, o buffer de figura decodificada (DPB) 230 é configurado para armazenar o bloco filtrado 221. O buffer de figura decodificada 230 pode ser adicionalmente configurado para armazenar outros blocos previamente filtrados, por exemplo, blocos 221 previamente reconstruídos e filtrados, da mesma figura corrente ou de figuras diferentes, por exemplo, figuras completas previamente reconstruídas, e pode fornecer figuras previamente reconstruídas, isto é, decodificadas, (e blocos de referência e amostras correspondentes) e/ou uma figura corrente parcialmente reconstruída (e blocos de referência e amostras correspondentes), por exemplo, para predição inter. Em algum exemplo, se o bloco reconstruído 215 é reconstruído, mas sem filtragem em in-loop, o buffer de figura decodificada (DPB) 230 é configurado para armazenar um ou mais blocos reconstruídos não filtrados 215 ou, em geral, amostras reconstruídas não filtradas, por exemplo, se o bloco reconstruído 215 não é filtrado pela unidade de filtro loop 220, ou qualquer outra versão adicionalmente processada dos blocos reconstruídos ou amostras.
[0182] A unidade de processamento de predição 260, também referida como unidade de processamento de predição de bloco 260, é configurada para receber ou obter o bloco 203 (bloco corrente 203 da figura corrente 201) e dados de figura reconstruídos, por exemplo, amostras de referência da mesma (corrente) figura do buffer 216 e/ou dados de figura de referência 231 de uma ou uma pluralidade de figuras previamente decodificadas do buffer de figura decodificada 230, e para processar tais dados para predição, isto é, para fornecer um bloco de predição 265, o qual pode ser um bloco de predição inter 245 ou um bloco de predição intra 255.
[0183] A unidade de seleção de modo 262 pode ser configurada para selecionar um modo de predição (por exemplo, um modo de predição intra ou inter) e/ou um bloco de predição correspondente 245 ou 255 para ser usado como bloco de predição 265 para o cálculo do bloco residual 205 e para a reconstrução do bloco reconstruído 215.
[0184] Modalidades da unidade de seleção de modo 262 podem ser configuradas para selecionar o modo de predição (por exemplo, a partir daqueles suportados pela unidade de processamento de predição 260), o que fornece a melhor correspondência ou em outras palavras o residual mínimo (residual mínimo significa melhor compressão para transmissão ou armazenamento), ou um sobrecarga de sinalização mínima (sobrecarga de sinalização mínima significa melhor compressão para transmissão ou armazenamento), ou que considera ou equilibra ambos. A unidade de seleção de modo 262 pode ser configurada para determinar o modo de predição com base na otimização de distorção de taxa (RDO), isto é, selecionar o modo de predição que fornece uma otimização de distorção de taxa mínima ou cuja distorção de taxa associada pelo menos atende a um critério de seleção de modo de predição.
[0185] A seguir, o processamento de predição (por exemplo, unidade de processamento de predição 260 e seleção de modo (por exemplo, por unidade de seleção de modo 262) realizado por um codificador exemplificativo 20 será explicado em mais detalhes.
[0186] Além das ou alternativamente às modalidades mencionadas acima, em outras modalidades de acordo com a Figura 17, a unidade de seleção de modo 260 compreende unidade de partição 262, unidade de predição inter 244 e unidade de predição intra 254 e é configurada para receber ou obter dados de figura original, por exemplo, um bloco original 203 (bloco corrente 203 da figura corrente 17), e dados de figura reconstruídos, por exemplo, amostras ou blocos reconstruídos filtrados e/ou não filtrados da mesma (corrente) figura e/ou a partir de uma ou uma pluralidade de figuras previamente decodificadas, por exemplo, do buffer de figura decodificada 230 ou outros buffers (por exemplo, buffer em linha, não mostrado). Os dados de figura reconstruídos são usados como dados de figura de referência para predição, por exemplo, predição inter ou predição intra, para obter um bloco de predição 265 ou preditor 265.
[0187] A unidade de seleção de modo 260 pode ser configurada para determinar ou selecionar uma partição para um modo de predição de bloco corrente (incluindo sem partição) e um modo de predição (por exemplo, um modo de predição intra ou inter) e gerar um bloco de predição correspondente 265, que é usado para o cálculo do bloco residual 205 e para a reconstrução do bloco reconstruído 215.
[0188] Modalidades da unidade de seleção de modo 260 podem ser configuradas para selecionar a partição e o modo de predição (por exemplo, a partir daqueles suportados por ou disponíveis para a unidade de seleção de modo 260), que fornecem a melhor correspondência ou em outras palavras o mínimo residual (mínimo residual significa melhor compressão para transmissão ou armazenamento), ou uma sobrecarga de sinalização mínima (sobrecarga de sinalização mínima significa melhor compressão para transmissão ou armazenamento), ou a que considera ou equilibra ambos. A unidade de seleção de modo 260 pode ser configurada para determinar o modo de partição e predição com base em otimização de distorção de taxa (RDO), isto é, selecionar o modo de predição que fornece uma distorção de taxa mínima. Termos como "melhor", "mínimo", "ótimo"etc., neste contexto não se referem necessariamente a um "melhor", "mínimo", "ótimo", etc., geral, mas também podem se referir ao cumprimento de uma rescisão ou critério de seleção como um valor que excede ou cai abaixo de um limiar ou outras restrições levando potencialmente a uma "seleção abaixo de ótima", mas reduzindo a complexidade e o tempo de processamento.
[0189] Em outras palavras, a unidade de partição 262 pode ser configurada para particionar uma figura de uma sequência de vídeo em uma sequência de unidades de árvore de codificação (CTUs), e a CTU 203 pode ser adicionalmente particionada em partições de bloco menores ou sub-blocos (que formam novamente blocos), por exemplo, iterativamente usando partição de árvore quaternária (QT), partição binária (BT) ou partição de árvore tripla (TT) ou qualquer combinação das mesmas, e para realizar, por exemplo, a predição para cada uma das partições de bloco ou sub-blocos, em que a seleção de modo compreende a seleção da estrutura de árvore do bloco particionado 203 e os modos de predição são aplicados a cada uma das partições de bloco ou sub- blocos.
[0190] A seguir, a partição (por exemplo, por unidade de partição 260) e processamento de predição (por unidade de predição inter 244 e unidade de predição intra 254) realizado por um codificador de vídeo exemplificativo 20 será explicado em mais detalhes.
[0191] Partição
[0192] A unidade de partição 262 pode ser configurada para particionar uma figura de uma sequência de vídeo em uma sequência de unidades de árvore de codificação (CTUs) e a unidade de partição 262 pode particionar (ou dividir) uma unidade de árvore de codificação (CTU) 203 em menores partições, por exemplo blocos menores de tamanho quadrado ou retangular. Para uma figura com três arranjos de amostra, uma CTU consiste em um bloco NxN de amostras de luma junto com dois blocos correspondentes de amostras de croma. O tamanho permitido máximo do bloco luma em uma CTU é especificado como sendo 128x128 na codificação de vídeo versátil (VVC) em desenvolvimento, mas o mesmo pode ser especificado para ser de valor que não seja 128x128 no futuro, por exemplo, 256x256. As CTUs de uma figura podem ser aglomeradas/agrupadas como grupos de fatias/tiles, tiles ou bricks. Um tile cobre uma região retangular de uma figura e um tile pode ser dividida em um ou mais bricks. Um brick consiste em várias linhas de CTU dentro de um tile. Um tile que não é dividida por partições em vários bricks pode ser referida como um brick. No entanto, um brick é um verdadeiro subconjunto de um tile e não é referido como um tile. Existem dois modos de grupos de tiles são suportados no VVC, a saber, o modo de fatia de rastreio-varredura/grupo de tiles e o modo de fatia retangular. No modo de grupo de tile de rastreio- varredura, um grupo de fatia/tile contém uma sequência de tiles na varredura de rastreio de bloco de uma figura. No modo de fatia retangular, uma fatia contém vários bricks de uma figura que coletivamente formam uma região retangular da figura. Os bricks dentro de uma fatia retangular estão na ordem de rastreio de varredura de brick da fatia. Esses blocos menores (que também podem ser referidos como sub-blocos) podem ser adicionalmente particionados em partições ainda menores. Isto também se refere a partição de árvore ou partição de árvore hierárquica, em que um bloco raiz, por exemplo, a nível de árvore raiz 0 (nível de hierarquia 0, profundidade 0), pode ser particionado recursivamente, por exemplo, particionado em dois ou mais blocos de um próximo nível de árvore inferior, por exemplo, nós ao nível de árvore 1 (nível de hierarquia 1, profundidade 1), em que esses blocos podem ser novamente particionados em dois ou mais blocos de um próximo nível inferior, por exemplo, nível de árvore 2 (nível de hierarquia 2, profundidade 2), etc. até que a partição seja encerrada, por exemplo, porque um critério de terminação é atendido, por exemplo, uma profundidade de árvore máxima ou tamanho de bloco mínimo é alcançado. Os blocos que não são adicionalmente particionados também são chamados de blocos de folha ou nós folha da árvore. Uma árvore usando partição em duas partições é referida como árvore binária (BT), uma árvore usando partição em três partições é chamada de árvore ternária (TT) e uma árvore usando partição em quatro partições é referida como árvore quaternária (QT).
[0193] Por exemplo, uma unidade de árvore de codificação (CTU) pode ser ou compreender um CTB de amostras de luma, dois CTBs correspondentes de amostras de croma de uma figura que tem três arranjos de amostra, ou um CTB de amostras de uma figura monocromática ou uma figura que é codificada usando três planos de cor separados e estruturas de sintaxe usadas para codificar as amostras. Correspondentemente, um bloco de árvore de codificação (CTB) pode ser um bloco NxN de amostras para algum valor de N de modo que a divisão de um componente em CTBs seja uma partição. Uma unidade de codificação (CU) pode ser ou compreender um bloco de codificação de amostras de luma, dois blocos de codificação correspondentes de amostras de croma de uma figura que tem três arranjos de amostra, ou um bloco de codificação de amostras de uma figura monocromática ou uma figura que é codificada usando três planos de cor e estruturas de sintaxe separados usados para codificar as amostras. Correspondentemente, um bloco de codificação (CB) pode ser um bloco MxN de amostras para alguns valores de M e N de modo que a divisão de um CTB em blocos de codificação seja uma partição.
[0194] Em modalidades, por exemplo, de acordo com HEVC, uma unidade de árvore de codificação (CTU) pode ser dividida em CUs usando-se uma estrutura de árvore quaternária denotada como árvore de codificação. A decisão de codificar ou não uma área de figura usando predição entre figuras (temporal) ou dentro da figura (espacial) é feita ao nível de CU de folha. Cada CU de folha pode ser dividida em uma, duas ou quatro PUs de acordo com o tipo de divisão de PU. Dentro de uma PU, o mesmo processo de predição é aplicado e as informações relevantes são transmitidas para o decodificador com base em uma PU. Depois de obter o bloco residual aplicando-se o processo de predição com base no tipo de divisão de PU, uma CU de folha pode ser particionada em unidades de transformada (TUs) de acordo com uma outra estrutura de árvore quaternária similar à árvore de codificação para a CU.
[0195] Em modalidades, por exemplo, de acordo com o padrão de codificação de vídeo mais recente correntemente em desenvolvimento, que é referido como Codificação de Vídeo Versátil (VVC), uma árvore de múltiplos tipos aninhada Árvore quaternária combinada usando estrutura de segmentação de divisões binárias e ternárias, por exemplo usado para particionar uma unidade de árvore de codificação. Na estrutura de árvore de codificação dentro de uma unidade de árvore de codificação, uma CU pode ter ou um formato quadrado ou retangular. Por exemplo, a unidade de árvore de codificação (CTU) é primeiramente particionada por uma árvore quaternária. Em seguida, os nós folha da árvore quaternária podem ser adicionalmente particionados por uma estrutura de árvore de múltiplos tipos. Existem quatro tipos de divisão em estrutura de árvore de múltiplos tipos, divisão binária vertical (SPLIT_BT_VER), divisão binária horizontal (SPLIT_BT_HOR), divisão ternária vertical (SPLIT_TT_VER), e divisão ternária horizontal (SPLIT_TT_HOR). Os nós folha de árvore de múltiplos tipos são chamados unidades de codificação (CUs), e a menos que a CU seja muito grande para o comprimento de transformada máximo, essa segmentação é usada para predição e processamento de transformada sem qualquer partição adicional. Isso significa que, na maioria dos casos, a CU, PU e TU têm o mesmo tamanho de bloco na árvore quaternária com estrutura de bloco de codificação de árvore de múltiplos tipos aninhada. A exceção ocorre quando o comprimento de transformada suportado máximo é menor do que a largura ou altura do componente de cor da CU.VVC desenvolve um mecanismo de sinalização exclusivo das informações de divisão de partição em árvore quaternária com estrutura de árvore de codificação de árvore de múltiplos tipos aninhada. No mecanismo de sinalização, uma unidade de árvore de codificação (CTU) é tratada como a raiz de uma árvore quaternária e é primeiramente particionada por uma estrutura de árvore quaternária. Cada nó folha da árvore quaternária (quando suficientemente grande para permitir isso) é então particionado por uma estrutura de árvore de múltiplos tipos. Na estrutura em árvore de múltiplos tipos, um primeiro sinalizador (mtt_split_cu_flag) é sinalizado para indicar se o nó é ou não adicionalmente particionado; quando um nó é adicionalmente particionado, um segundo sinalizador (mtt_split_cu_vertical_flag) é sinalizado para indicar a direção de divisão e então um terceiro sinalizador (mtt_split_cu_binary_flag) é sinalizado para indicar se a divisão é binária ou ternária. Com base nos valores de mtt_split_cu_vertical_flag e mtt_split_cu_binary_flag, o modo de corte de árvore de múltiplos tipos (MttSplitMode) de uma CU pode ser derivado por um decodificador com base em uma regra predefinida ou uma tabela. Deve ser notado, para um determinado projeto, por exemplo, projeto de encadeamento de bloco 64x64 de Luma e 32x32 de Croma em decodificadores de hardware VVC, a divisão de TT é proibida quando ou a largura ou a altura de um bloco de codificação de luma é maior que 64, como mostrado na Figura 6. A divisão de TT também é proibida quando ou a largura ou a altura de um bloco de codificação de croma é maior que 32. O projeto de tubulação irá dividir uma figura em unidades de dados de encadeamento virtual s(VPDUs), que são definidas como unidades não sobrepostas em uma figura. Nos decodificadores de hardware, VPDUs sucessivos são processados por múltiplos estágios de encadeamento simultaneamente. O tamanho de VPDU é aproximadamente proporcional ao tamanho do buffer na maioria dos estágios de encadeamento, portanto, é importante manter o tamanho de VPDU pequeno. Na maioria dos decodificadores de hardware, o tamanho de VPDU pode ser definido no tamanho de bloco máximo de transformada (TB). No entanto, em VVC, a partição de árvore ternária (TT) e de árvore binária (BT) pode levar ao aumento de tamanho de VPDUs.
[0196] Além disso, deve ser notado que, quando uma porção de um bloco de nó de árvore excede o limite inferior ou direito da figura, o bloco de nó de árvore é forçado a ser dividido até que todas as amostras de cada CU codificada estejam localizadas dentro dos limites de figura.
[0197] Como um exemplo, a ferramenta de Subpartições Intra (ISP) pode dividir blocos preditos intra de luma vertical ou horizontalmente em 2 (duas) ou 4 subpartições, dependendo do tamanho de bloco.
[0198] Em um exemplo, a unidade de seleção de modo 260 do codificador de vídeo 20 pode ser configurada para realizar qualquer combinação das técnicas de partição descritas no presente documento.
[0199] Conforme descrito acima, o codificador 20 é configurado para determinar ou selecionar o melhor modo ou um modo de predição ideal a partir de um conjunto de modos de predição (predeterminados). O conjunto de modos de predição pode compreender, por exemplo, modos de predição intra e/ou modos de predições inter.
[0200] O conjunto de modos de predição intra pode compreender 35 modos de predição intra diferentes, por exemplo, modos não direcionais como modo DC (ou médio) e modo planar, ou modos direcionais, por exemplo, como definido em H.265, ou pode compreender 67 modos de predição intra diferentes, por exemplo, modos não direcionais como modo DC (ou médio) e modo planar, ou modos direcionais, por exemplo, conforme definido para VVC. Como um exemplo, vários modos de predição intra angulares convencionais são substituídos de forma adaptável por modos de predição intra de grandes ângulos para os blocos não quadrados, por exemplo, conforme definido em VVC. Como um outro exemplo, para evitar operações de divisão para predição DC, apenas o lado mais longo é usado para calcular a média para blocos não quadrados. E, os resultados da predição intra de modo planar podem ser adicionalmente modificados por um método de combinação de predição intra dependente de posição (PDPC).
[0201] A unidade de predição intra 254 é configurada para usar amostras reconstruídas de blocos vizinhos da mesma figura corrente para gerar um bloco de predição intra 265 de acordo com um modo de predição intra do conjunto de modos de predição intra.
[0202] A unidade de predição intra 254 (ou em geral a unidade de seleção de modo 260) é adicionalmente configurada para emitir parâmetros de predição intra (ou em informações gerais indicativas do modo de predição intra selecionado para o bloco) para a unidade de codificação de entropia 270 em forma de elementos de sintaxe 266 para inclusão nos dados de figura codificados 21, de modo que, por exemplo, o decodificador de vídeo 30 possa receber e usar os parâmetros de predição para decodificação.
[0203] O conjunto de (ou possíveis) modos de predição inter depende das figuras de referência disponíveis (isto é, figuras anteriores pelo menos parcialmente decodificadas, por exemplo, armazenadas em DBP 230) e outros parâmetros de predição inter, por exemplo, se toda a figura de referência ou apenas uma parte, por exemplo, uma área de janela de busca ao redor da área do bloco corrente, da figura de referência é usada para buscar um bloco de referência de melhor correspondência e/ou, por exemplo, se a interpolação de pixel é aplicada, por exemplo, interpolação de metade de pel/semipel, quarto de pel e/ou 1/16 de pel, ou não.
[0204] Além dos modos de predição acima, o modo de salto, o modo direto e/ou outro modo de predição inter podem ser aplicados.
[0205] Por exemplo, Predição de fusão estendida, a lista de candidatos a fusão de tal modo é construída incluindo-se os seguintes cinco tipos de candidatos em ordem: MVP espacial de CUs espaciais vizinhas, MVP temporal de CUs colocadas, MVP com base em histórico a partir de uma tabela FIFO, MVP médio pareado e MVs zero. E um refinamento de vetor de movimento lateral de decodificador (DMVR) de correspondência bilateral pode ser aplicado para aumentar a precisão dos MVs do modo de fusão. Modo de fusão com MVD (MMVD), que vem do modo de fusão com diferenças de vetor de movimento. Um sinalizador MMVD é sinalizado logo após enviar um sinalizador de salto e um sinalizador de fusão para especificar se o modo MMVD é usado para uma CU. E um esquema de resolução de vetor de movimento adaptável a nível de CU (AMVR) pode ser aplicado. AMVR permite que MVD da CU seja codificada com precisão diferente. Dependendo do modo de predição para a CU corrente, as MVDs da CU corrente podem ser selecionadas de forma adaptável. Quando uma CU é codificada no modo de fusão, o modo combinado de predição inter/intra (CIIP) pode ser aplicado à CU corrente. A média ponderada dos sinais de predição inter e intra é realizada para obter a predição de CIIP. Predição compensada de movimento afim, o campo de movimento afim do bloco é descrito por informações de movimento de dois pontos de controle (4 parâmetros) ou três vetores de movimento de ponto de controle (6 parâmetros). Predição de vetor de movimento temporal com base em sub-bloco (SbTMVP), que é similar à predição de vetor de movimento temporal (TMVP) em HEVC, mas prevê os vetores de movimento das sub-CUs dentro da CU corrente. O fluxo ótico bidirecional (BDOF), previamente referido como BIO, é uma versão mais simples que requer muito menos computação, especialmente em termos de número de multiplicações e do tamanho do multiplicador. Modo de partição triangular, nesse modo, uma CU é dividida igualmente em duas partições em formato de triângulo, usando ou a divisão diagonal ou a divisão antidiagonal. Além disso, o modo de predição dupla é estendido além de uma simples média para permitir calcular a média ponderada dos dois sinais de predição.
[0206] Além dos modos de predição acima, o modo de salto e/ou o modo direto podem ser aplicados.
[0207] A unidade de processamento de predição 260 pode ser adicionalmente configurada para particionar o bloco 203 em partições de bloco menores ou sub-blocos, por exemplo, iterativamente usando partição de árvore quaternária (QT), partição binária (BT), ou partição de árvore ternária (TT) ou qualquer combinação das mesmas, e para realizar, por exemplo, a predição para cada uma das partições de bloco ou sub-blocos, em que a seleção de modo compreende a seleção da estrutura de árvore do bloco particionado 203 e os modos de predição aplicados a cada uma das partições de bloco ou sub-blocos.
[0208] A unidade de predição inter 244 pode incluir unidade de estimativa de movimento (ME) (não mostrada na Figura 2) e unidade de compensação de movimento (MC) (não mostrada na Figura 2). A unidade de estimativa de movimento é configurada para receber ou obter o bloco de figura 203 (bloco de figura corrente 203 da figura corrente 201) e uma figura decodificada 231, ou pelo menos um ou uma pluralidade de blocos previamente reconstruídos, por exemplo, blocos reconstruídos de uma ou uma pluralidade de outras/diferentes figuras previamente decodificadas 231, para estimativa de movimento. Por exemplo, uma sequência de vídeo pode compreender a figura corrente e as figuras previamente decodificadas 231, ou em outras palavras, a figura corrente e as figuras previamente decodificadas 231 podem fazer parte de ou formar uma sequência de figuras formando uma sequência de vídeo.
[0209] O codificador 20 pode, por exemplo, ser configurado para selecionar um bloco de referência a partir de uma pluralidade de blocos de referência da mesma ou de diferentes figuras da pluralidade de outras figuras e fornecer uma figura de referência (ou índice de figura de referência, ...) e/ou um desvio (desvio espacial) entre a posição (coordenadas x, y) do bloco de referência e a posição do bloco corrente como parâmetros de predição inter para a unidade de estimativa de movimento (não mostrada na Figura 2). Este desvio também é chamado vetor de movimento (MV).
[0210] A unidade de compensação de movimento é configurada para obter, por exemplo, receber, um parâmetro de predição inter e para realizar predição inter com base no ou usando o parâmetro de predição inter para obter um bloco de predição inter 265. Compensação de movimento, realizada por unidade de compensação de movimento (não mostrada na Figura 2), pode envolver obter ou gerar o bloco de predição com base no vetor de movimento/de bloco determinado por estimativa de movimento, possivelmente realizando interpolações para precisão de subpixel. A filtragem de interpolação pode gerar amostras de pixel adicionais, aumentando assim potencialmente o número de blocos de predição candidatos que podem ser usados para codificar um bloco de figura. Ao receber o vetor de movimento para a PU do bloco de figura corrente, a unidade de compensação de movimento pode localizar o bloco de predição para o qual o vetor de movimento aponta em uma das listas de figura de referência. A unidade de compensação de movimento também pode gerar elementos de sintaxe associados aos blocos e à fatia de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de figura da fatia de vídeo.
[0211] A unidade de predição intra 254 é configurada para obter, por exemplo, receber, o bloco de figura 203 (bloco de figura corrente) e um ou uma pluralidade de blocos previamente reconstruídos, por exemplo, blocos vizinhos reconstruídos, da mesma figura para estimativa intra. O codificador 20 pode, por exemplo, ser configurado para selecionar um modo de predição intra a partir de uma pluralidade de modos de predição intra (predeterminados).
[0212] Modalidades do codificador 20 podem ser configuradas para selecionar o modo de predição intra com base em um critério de otimização, por exemplo, residual mínimo (por exemplo, o modo de predição intra fornecendo o bloco de predição 255 mais similar ao bloco de figura corrente 203) ou distorção de taxa mínima.
[0213] A unidade de predição intra 254 é adicionalmente configurada para determinar com base no parâmetro de predição intra, por exemplo, o modo de predição intra selecionado, o bloco de predição intra 255. Em qualquer caso, após selecionar um modo de predição intra para um bloco, a unidade de predição intra 254 também é configurada para fornecer parâmetro de predição intra, isto é, informações indicativas do modo de predição intra selecionado para o bloco para a unidade de codificação de entropia 270. Em um exemplo, a unidade de predição intra 254 pode ser configurada para realizar qualquer combinação das técnicas de predição intra descritas adiante.
[0214] A unidade de codificação de entropia 270 é configurada para aplicar um algoritmo ou esquema de codificação de entropia (por exemplo, um esquema de codificação de comprimento variável (VLC), um esquema VLC adaptável a contexto (CALVC), um esquema de codificação aritmética, uma codificação aritmética binária adaptável a contexto (CABAC), codificação aritmética binária adaptável a contexto com base em sintaxe (SBAC), codificação de entropia de partição de intervalo de probabilidade (PIPE) ou uma outra metodologia ou técnica de codificação de entropia) nos coeficientes residuais quantizados 209, parâmetros de predição inter, parâmetro de predição intra, e/ou parâmetros de filtro loop, individualmente ou em conjunto (ou não) para obter dados de figura codificados 21 que podem ser emitidos pela saída 272, por exemplo na forma de um fluxo de bits codificado 21. O fluxo de bits codificado 21 pode ser transmitido para o decodificador de vídeo 30, ou arquivado para posterior transmissão ou recuperação pelo decodificador de vídeo 30. A unidade de codificação de entropia 270 pode ser adicionalmente configurada para codificar com entropia os outros elementos de sintaxe para a fatia de vídeo corrente sendo codificada.
[0215] Outras variações estruturais do codificador de vídeo 20 podem ser usadas para codificar o fluxo de vídeo. Por exemplo, um codificador com base em não transformada 20 pode quantizar o sinal residual diretamente sem a unidade de processamento de transformada 206 para determinados blocos ou quadros. Em uma outra implementação, um codificador 20 pode ter a unidade de quantização 208 e a unidade de quantização inversa 210 combinadas em uma única unidade.
[0216] A Figura 3 mostra um decodificador de vídeo 30 exemplificativo que é configurado para implementar as técnicas do presente pedido. O decodificador de vídeo 30 configurado para receber dados de figura codificados (por exemplo, fluxo de bits codificados) 21, por exemplo, codificado pelo codificador 100, para obter uma figura decodificada 131. Durante o processo de decodificação, o decodificador de vídeo 30 recebe dados de vídeo, por exemplo, um fluxo de bits de vídeo codificados que representa blocos de figura de uma fatia de vídeo codificada e elementos de sintaxe associados, a partir do codificador de vídeo 100.
[0217] No exemplo da Figura 3, o decodificador 30 compreende uma unidade de decodificação de entropia 304, uma unidade de quantização inversa 310, uma unidade de processamento de transformada inversa 312, uma unidade de reconstrução 314 (por exemplo, um somador 314), um buffer 316, um filtro loop 320, um buffer de figura decodificada 330 e uma unidade de processamento de predição 360. A unidade de processamento de predição 360 pode incluir uma unidade de predição inter 344, uma unidade de predição intra 354 e uma unidade de seleção de modo 362. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação de modo geral recíproca à passagem de codificação descrita em relação ao codificador de vídeo 100 da Figura 2
[0218] Conforme explicado no que diz respeito ao codificador 20, a unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o filtro loop 220, o buffer de figura decodificada (DPB) 230, a unidade de predição inter 344 e a unidade de predição intra 354 também são referidas como formando o "decodificador embutido" do codificador de vídeo 20. Consequentemente, a unidade de quantização inversa 310 pode ser idêntica em função à unidade de quantização inversa 110, a unidade de processamento de transformada inversa 312 pode ser idêntica em função à unidade de processamento de transformada inversa 212, a unidade de reconstrução 314 pode ser idêntica em função à unidade de reconstrução 214, o filtro loop 320 pode ser idêntico em função ao filtro loop 220, e o buffer de figura decodificada 330 pode ser idêntico em função ao buffer de figura decodificada 230. Portanto, as explicações fornecidas para as respectivas unidades e funções do codificador de vídeo 20 se aplicam correspondentemente às respectivas unidades e funções íons do decodificador de vídeo 30.
[0219] A unidade de decodificação de entropia 304 é configurada para realizar decodificação de entropia para os dados de figura codificados 21 para obter, por exemplo, coeficientes quantizados 309 e/ou parâmetros de codificação decodificados (não mostrados na Figura 3), por exemplo, (decodificados) qualquer um dos ou todos os parâmetros de predição inter, parâmetro de predição intra, parâmetros de filtro loop, e/ou outros elementos de sintaxe. A unidade de decodificação de entropia 304 é adicionalmente configurada para encaminhar parâmetros de predição inter, parâmetro de predição intra e/ou outros elementos de sintaxe para a unidade de processamento de predição 360. O decodificador de vídeo 30 pode receber os elementos de sintaxe ao nível de fatia de vídeo e/ou ao nível de bloco de vídeo.
[0220] A unidade de decodificação de entropia 304 é configurada para analisar o fluxo de bits 21 (ou em geral dados de figura codificados 21) e realizar, por exemplo, decodificação de entropia para os dados de figura codificados 21 para obter, por exemplo, coeficientes quantizados 309 e/ou parâmetros de codificação decodificados (não mostrados na Figura 3), por exemplo qualquer um dos ou todos os parâmetros de predição inter (por exemplo, índice de figura de referência e vetor de movimento), parâmetro de predição intra (por exemplo, modo de predição intra ou índice), parâmetros de transformada, parâmetros de quantização, parâmetros de filtro loop e/ou outros elementos de sintaxe. A unidade de decodificação de entropia 304 talvez configurada para aplicar os algoritmos de decodificação ou esquemas correspondentes aos esquemas de codificação conforme descrito em relação à unidade de codificação de entropia 270 do codificador 20. A unidade de decodificação de entropia 304 pode ser configurada adicionalmente para fornecer parâmetros de predição inter, parâmetro de predição intra e/ou outros elementos de sintaxe para a unidade de aplicação de modo 360 e outros parâmetros para outras unidades do decodificador 30. O decodificador de vídeo 30 pode receber os elementos de sintaxe ao nível de fatia de vídeo e/ou nível de bloco de vídeo. Além disso ou como uma alternativa para fatias e respectivos elementos de sintaxe, grupos de tiles e/ou blocos e respectivos elementos de sintaxe podem ser recebidos e/ou usados.
[0221] A unidade de quantização inversa 310 pode ser idêntica em função à unidade de quantização inversa 110, a unidade de processamento de transformada inversa 312 pode ser idêntica em função à unidade de processamento de transformada inversa 112, a unidade de reconstrução 314 pode ser idêntica em função de unidade de reconstrução 114, o buffer 316 pode ser idêntico em função ao buffer 116, o filtro loop 320 pode ser idêntico em função ao filtro loop 120, e o buffer de figura decodificada 330 pode ser idêntico em função ao buffer de figura decodificada 130.
[0222] Modalidades do decodificador 30 podem compreender uma unidade de partição (não representada na Figura 3). Em um exemplo, a unidade de processamento de predição 360 do decodificador de vídeo 30 pode ser configurada para realizar qualquer combinação das técnicas de partição descritas acima.
[0223] A unidade de processamento de predição 360 pode compreender uma unidade de predição inter 344 e uma unidade de predição intra 354, em que a unidade de predição inter 344 pode parecer a unidade de predição inter 144 em função, e a unidade de predição intra 354 pode parecer a unidade de predição intra 154 em função. A unidade de processamento de predição 360 é tipicamente configurada para realizar a predição de bloco e/ou obter o bloco de predição 365 a partir dos dados codificados 21 e para receber ou obter (explicitamente ou implicitamente) os parâmetros relacionados à predição e/ou as informações sobre o modo de predição selecionado, por exemplo, a partir da unidade de decodificação de entropia 304.
[0224] Quando a fatia de vídeo é codificada como uma fatia codificada intra (I), a unidade de predição intra 354 da unidade de processamento de predição 360 é configurada para gerar o bloco de predição 365 para um bloco de figura da fatia de vídeo corrente com base em um modo de predição intra sinalizado e dados a partir de blocos previamente decodificados do quadro ou figura corrente. Quando o quadro de vídeo é codificado como uma fatia codificada inter (isto é, B ou P), a unidade de predição inter 344 (por exemplo, unidade de compensação de movimento) da unidade de processamento de predição 360 é configurada para produzir blocos de predição 365 para um bloco de vídeo da fatia de vídeo corrente com base nos vetores de movimento e outros elementos de sintaxe recebidos a partir da unidade de decodificação de entropia 304. Para predição inter, os blocos de predição podem ser produzidos a partir de uma das figuras de referência dentro de uma das listas de figura de referência. O decodificador de vídeo 30 pode construir as listas de quadro de referência, Lista 0 e Lista 1, usando técnicas de construção padrão com base em figuras de referência armazenadas no DPB 330.
[0225] A unidade de processamento de predição 360 é configurada para determinar informações de predição para um bloco de vídeo da fatia de vídeo corrente analisando-se os vetores de movimento e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos de predição para o bloco de vídeo corrente sendo decodificado. Por exemplo, a unidade de processamento de predição 360 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, predição intra ou inter) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de predição inter (por exemplo, fatia B, fatia P, ou fatia GPB), informações de construção para uma ou mais das listas de figura de referência para a fatia, vetores de movimento para cada bloco de vídeo codificado inter da fatia, status de predição inter para cada bloco de vídeo codificado inter da fatia, e outros informações para decodificar os blocos de vídeo na fatia de vídeo corrente.
[0226] A unidade de quantização inversa 310 é configurada para quantizar inversamente, isto é, desquantizar, os coeficientes de transformada quantizados fornecidos no fluxo de bits e decodificados pela unidade de decodificação de entropia 304. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização calculado pelo codificador de vídeo 100 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa que devem ser aplicados.
[0227] A unidade de quantização inversa 310 também pode ser configurada para receber parâmetros de quantização (QP) (ou em geral informações relacionadas à quantização inversa) e coeficientes quantizados a partir dos dados de figura codificados 21 (por exemplo, por análise e/ou decodificação, por exemplo, pela unidade de decodificação de entropia 304) e para aplicar com base nos parâmetros de quantização uma quantização inversa nos coeficientes quantizados decodificados 309 para obter coeficientes desquantizados 311, que também podem ser referidos como coeficientes de transformada 311.
[0228] A unidade de processamento de transformada inversa 312 é configurada para aplicar uma transformada inversa, por exemplo, uma DCT inversa, uma transformada integral inversa ou um processo de transformada inversa similar conceitualmente, aos coeficientes de transformada a fim de produzir blocos residuais no domínio de pixel.
[0229] A unidade de processamento de transformada inversa 312 também pode ser configurada para receber coeficientes desquantizados 311, também referidos como coeficientes de transformada 311, e para aplicar uma transformada aos coeficientes desquantizados 311 a fim de obter blocos residuais reconstruídos 213 no domínio de amostra. Os blocos residuais reconstruídos 213 também podem ser referidos como blocos de transformada 313. A transformada pode ser uma transformada inversa, por exemplo, uma DCT inversa, uma DST inversa, uma transformada integral inversa ou um processo de transformada inversa similar conceitualmente. A unidade de processamento de transformada inversa 312 pode ser adicionalmente configurada para receber parâmetros de transformada ou informações correspondentes a partir dos dados de figura codificados 21 (por exemplo, por análise e/ou decodificação, por exemplo, pela unidade de decodificação de entropia 304) para determinar a transformada a ser aplicada aos coeficientes desquantizados 311.
[0230] A unidade de reconstrução 314 (por exemplo, Somador 314) é configurada para adicionar o bloco de transformada inversa 313 (isto é, bloco residual reconstruído 313) ao bloco de predição 365 para obter um bloco reconstruído 315 no domínio de amostra, por exemplo, adicionando-se os valores de amostra do bloco residual reconstruído 313 e os valores de amostra do bloco de predição 365.
[0231] A unidade de filtro loop 320 (ou no loop de codificação ou depois do loop de codificação) é configurada para filtrar o bloco reconstruído 315 para obter um bloco filtrado 321, por exemplo, para suavizar transições de pixel, ou aperfeiçoar de outra forma a qualidade do vídeo. Em um exemplo, a unidade de filtro loop 320 pode ser configurada para realizar qualquer combinação das técnicas de filtragem descritas adiante. A unidade de filtro loop 320 é destinada a representar um ou mais filtros loop tais como um filtro de desbloqueio, um filtro de desvio adaptável à amostra (SAO) ou outros filtros, por exemplo, um filtro bilateral ou um filtro loop adaptável (ALF) ou filtros de nitidez ou suavização ou filtros colaborativos. Embora a unidade de filtro loop 320 seja mostrada na Figura 3 como estando em um filtro loop, em outras configurações, a unidade de filtro loop 320 pode ser implementada como um filtro pós-loop.
[0232] A unidade de filtro loop 320 também pode compreender um ou mais filtros loop tais como um filtro de desbloqueio, um filtro de desvio adaptável à amostra (SAO) ou um ou mais outros filtros, por exemplo, um filtro loop adaptável (ALF), um filtro de supressão de ruído (NSF), ou qualquer combinação dos mesmos. Em um exemplo, a unidade de filtro loop 220 pode compreender um filtro de desbloqueio, um filtro SAO e um filtro ALF. A ordem do processo de filtragem pode ser o filtro de desbloqueio, SAO e ALF. Em um outro exemplo, um processo chamado mapeamento de luma com escala de croma (LMCS) (a saber, o remodelador in-loop adaptável) é adicionado. Este processo é realizado antes do desbloqueio. Em um outro exemplo, o processo de desbloqueio de filtro também pode ser aplicado às bordas de sub-bloco intra, por exemplo, bordas de sub-blocos afins, bordas de sub-blocos ATMVP, bordas de transformada de sub- bloco (SBT) e bordas de subpartição intra (ISP).
[0233] Os blocos de vídeo decodificados 321 em um dado quadro ou figura são então armazenados no buffer de figura decodificada 330, que armazena figuras de referência usadas para compensação de movimento subsequente.
[0234] Os blocos de vídeo decodificados 321 de uma figura são então armazenados no buffer de figura decodificada 330, que armazena as figuras decodificadas 331 como figuras de referência para compensação de movimento subsequente para outras figuras e/ou para emitir exibição respectivamente.
[0235] O decodificador 30 é configurado para emitir a figura decodificada 331, por exemplo via saída 332, para apresentação ou visualização para um usuário.
[0236] Outras variações do decodificador de vídeo 30 podem ser usadas para decodificar o fluxo de bits comprimido. Por exemplo, o decodificador 30 pode produzir o fluxo de vídeo de saída sem a unidade de filtragem loop 320. Por exemplo, um decodificador com base em não transformada 30 pode quantizar inversamente o sinal residual diretamente sem a unidade de processamento de transformada inversa 312 para determinados blocos ou quadros. Em uma outra implementação, o decodificador de vídeo 30 pode ter a unidade de quantização inversa 310 e a unidade de processamento de transformada inversa 312 combinadas em uma única unidade.
[0237] Além disso ou alternativamente às modalidades acima mencionadas, em outras modalidades de acordo com a Figura 18, a unidade de predição inter 344 pode ser idêntica à unidade de predição inter 244 (em particular à unidade de compensação de movimento) e a unidade de predição intra 354 pode ser idêntica à unidade de predição inter 254 em função, e realiza decisões de divisão ou partição e predição com base nos parâmetros de partição e/ou predição ou respectivas informações recebidas a partir dos dados de figura codificados 21 (por exemplo, por análise e/ou decodificação, por exemplo, pela unidade de decodificação de entropia 304). A unidade de aplicação de modo 360 pode ser configurada para realizar a predição (predição intra ou inter) por bloco com base em figuras reconstruídas, blocos ou respectivas amostras (filtradas ou não filtradas) para obter o bloco de predição 365.
[0238] Quando a fatia de vídeo é codificada como uma fatia codificada intra (I), a unidade de predição intra 354 da unidade de aplicação de modo 360 é configurada para gerar o bloco de predição 365 para um bloco de figura da fatia de vídeo corrente com base em um modo de predição intra sinalizado e dados a partir de blocos previamente decodificados da figura corrente. Quando a figura de vídeo é codificada como uma fatia codificada inter (isto é, B ou P), a unidade de predição inter 344 (por exemplo, unidade de compensação de movimento) da unidade de aplicação de modo 360 é configurada para produzir blocos de predição 365 para um bloco de vídeo da fatia de vídeo corrente com base nos vetores de movimento e outros elementos de sintaxe recebidos a partir da unidade de decodificação de entropia 304. Para predição inter, os blocos de predição podem ser produzidos a partir de uma das figuras de referência dentro de uma das listas de figura de referência. O decodificador de vídeo 30 pode construir as listas de quadro de referência, Lista 0 e Lista 1, usando técnicas de construção padrão com base em figuras de referência armazenadas no DPB 330. O mesmo ou similar pode ser aplicado para ou por modalidades usando grupos de tiles (por exemplo, grupos de tiles de vídeo) e/ou tiles (por exemplo, tiles de vídeo), além de ou alternativamente fatias (por exemplo, fatias de vídeo), por exemplo um vídeo pode ser codificado usando grupos de tiles I, P ou B e/ou tiles.
[0239] A unidade de aplicação de modo 360 é configurada para determinar as informações de predição para um bloco de vídeo da fatia de vídeo corrente, analisando-se os vetores de movimento ou informações relacionadas e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos de predição para o bloco de vídeo corrente sendo decodificado. Por exemplo, a unidade de aplicação de modo 360 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, predição intra ou inter) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de predição inter (por exemplo, fatia B, Fatia P, ou fatia GPB), informações de construção para uma ou mais das listas de figura de referência para a fatia, vetores de movimento para cada bloco de vídeo codificado inter da fatia, status de predição inter para cada bloco de vídeo codificado da fatia e outras informações para decodificar os blocos de vídeo na fatia de vídeo corrente. O mesmo ou similar pode ser aplicado para ou por modalidades usando grupos de tiles (por exemplo, grupos de tiles de vídeo) e/ou tiles (por exemplo, tiles de vídeo) além de ou alternativamente a fatias (por exemplo, fatias de vídeo), por exemplo, um vídeo pode ser codificado usando grupos de tiles I, P ou B e/ou tiles.
[0240] Modalidades do decodificador de vídeo 30 como mostrado na Figura 3 podem ser configuradas para particionar e/ou decodificar a figura usando-se fatias (também referidas como fatias de vídeo), em que uma figura pode ser particionada ou decodificada usando um ou mais fatias (tipicamente não sobrepostas), e cada fatia pode compreender um ou mais blocos (por exemplo, CTUs) ou um ou mais grupos de blocos (por exemplo, tiles (H.265/HEVC e VVC) ou bricks (VVC)).
[0241] Modalidades do decodificador de vídeo 30 conforme mostrado na Figura 3 podem ser configuradas para particionar e/ou decodificar a figura usando-se fatias/grupos de tiles(também referidos como grupos de tiles de vídeo) e/ou tiles(também referidos como tiles de vídeo), em que uma figura pode ser particionada ou decodificada usando uma ou mais fatias/grupos de tiles (tipicamente não sobrepostos), e cada grupo de fatia/tiles pode compreender, por exemplo, um ou mais blocos (por exemplo, CTUs) ou uma ou mais tiles, em que cado tile, por exemplo, pode ser de formato retangular e pode compreender um ou mais blocos (por exemplo, CTUs), por exemplo, blocos completos ou fracionários.
[0242] Outras variações do decodificador de vídeo 30 podem ser usadas para decodificar os dados de figura codificados 21. Por exemplo, o decodificador 30 pode produzir o fluxo de vídeo de saída sem a unidade de filtragem loop 320. Por exemplo, um decodificador 30 com base em não transformada pode quantizar inversamente o sinal residual diretamente sem a unidade de processamento de transformada inversa 312 para determinados blocos ou quadros. Em uma outra implementação, o decodificador de vídeo 30 pode ter a unidade de quantização inversa 310 e a unidade de processamento de transformada inversa 312 combinadas em uma única unidade.
[0243] Deve ser entendido que, no codificador 20 e no decodificador 30, um resultado de processamento de uma etapa corrente pode ser adicionalmente processado e então emitido para a próxima etapa. Por exemplo, após filtragem de interpolação, derivação de vetor de movimento ou filtragem loop, uma operação adicional, tal como Clip ou deslocamento, pode ser realizada no resultado do processamento da filtragem de interpolação, derivação de vetor de movimento ou filtragem loop.
[0244] A Figura 4 é um diagrama esquemático de um dispositivo de codificação de vídeo 400 de acordo com uma modalidade da revelação. O dispositivo de codificação de vídeo 400 é adequado para implementar as modalidades reveladas conforme descritas no presente documento. Em uma modalidade, o dispositivo de codificação de vídeo 400 pode ser um decodificador tal como o decodificador de vídeo 30 da Figura 1A ou um codificador tal como o codificador de vídeo 20 da Figura 1A. Em uma modalidade, o dispositivo de codificação de vídeo 400 pode ser um ou mais componentes do decodificador de vídeo 30 da Figura 1A ou o codificador de vídeo 20 da Figura 1A conforme descrito acima.
[0245] O dispositivo de codificação de vídeo 400 compreende portas de ingresso 410 e unidades receptoras (Rx) 420 para receber dados; um processador, unidade lógica, ou unidade de processamento central (CPU) 430 para processar os dados; unidades transmissoras (Tx) 440 e portas de saída 450 para transmitir os dados; e uma memória 460 para armazenar os dados. O dispositivo de codificação de vídeo 400 também pode compreender componentes ópticos que podem ser convertidos em elétricos (OE) e componentes elétricos que podem ser convertidos em ópticos (EO) acoplados às portas de ingresso 410, às unidades receptoras 420, às unidades transmissoras 440, e às portas de saída 450 para saída ou ingresso de sinais ópticos ou elétricos.
[0246] O processador 430 é implementado por hardware e software. O processador 430 pode ser implementado como um ou mais chips de CPU, núcleos (por exemplo, como um processador de múltiplos núcleos), FPGAs, ASICs e DSPs. O processador 430 está em comunicação com as portas de ingresso 410, unidades receptoras 420, unidades transmissoras 440, portas de saída 450, e memória 460. O processador 430 compreende um módulo de codificação 470. O módulo de codificação 470 implementa as modalidades reveladas descritas acima. Por exemplo, o módulo de codificação 470 implementa, processa, prepara ou fornece as várias operações de codificação. A inclusão do módulo de codificação 470, portanto, fornece um aperfeiçoamento substancial para a funcionalidade do dispositivo de codificação de vídeo 400 e efetua uma transformada do dispositivo de codificação de vídeo 400 para um estado diferente. Alternativamente, o módulo de codificação 470 é implementado como instruções armazenadas na memória 460 e executadas pelo processador 430.
[0247] A memória 460 compreende um ou mais discos, unidades de fita, e unidades de estado sólido e pode ser usada como um dispositivo de armazenamento de dados de estouro de capacidade, para armazenar programas quando tais programas são selecionados para execução, e para armazenar instruções e dados que são lidos durante execução de programa. A memória 460 pode ser volátil e/ou não volátil e pode ser memória apenas para leitura (ROM), memória de acesso aleatório (RAM), memória endereçável por conteúdo ternário (TCAM), e/ou memória de acesso aleatório estática (SRAM).
[0248] A Figura 5 é um diagrama de blocos simplificado de um aparelho 500 que pode ser usado tanto como o dispositivo de fonte 310 e o dispositivo de destino 320 da Figura 1 ou como ambos de acordo com uma modalidade exemplificativa. O aparelho 500 pode implementar técnicas do presente pedido descritas acima. O aparelho 500 pode estar na forma de um sistema de computação incluindo múltiplos dispositivos de computação, ou na forma de um único dispositivo de computação, por exemplo, um telefone móvel, um computador tipo tablet, um computador tipo laptop, um computador tipo notebook, um computador de mesa, e semelhantes.
[0249] Um processador 502 no aparelho 500 pode ser uma unidade de processamento central. Alternativamente, o processador 502 pode ser qualquer outro tipo de dispositivo, ou múltiplos dispositivos, com capacidade de manipular ou processar informações existentes ou desenvolvidas no futuro. Embora as implementações reveladas possam ser praticadas com um único processador como mostrado, por exemplo, o processador 502, vantagens em velocidade e eficiência podem ser alcançadas usando mais de um processador.
[0250] Uma memória 504 no aparelho 500 pode ser um dispositivo de memória apenas para leitura (ROM) ou um dispositivo de memória de acesso aleatório (RAM) em uma implementação. Qualquer outro tipo adequado de dispositivo de armazenamento pode ser usado como a memória 504. A memória 504 pode incluir código e dados 506 que são acessados pelo processador 502 usando um barramento 512. A memória 504 pode adicionalmente incluir um sistema operacional 508 e programas de aplicativo 510, os programas de aplicativo 510 incluindo pelo menos um programa que permite ao processador 502 realizar os métodos descritos no presente documento. Por exemplo, os programas de aplicativo 510 podem incluir aplicativos de 1 a N, que incluem adicionalmente um aplicativo de codificação de vídeo que realiza os métodos descritos no presente documento. O aparelho 500 também pode incluir memória adicional na forma de um armazenamento secundário 514, que pode, por exemplo, ser um cartão de memória usado com um dispositivo de computação móvel. Como as sessões de comunicação de vídeo podem conter uma quantidade significativa de informações, elas podem ser armazenadas no todo ou em parte no armazenamento secundário 514 e carregadas na memória 504 conforme necessário para processamento. O aparelho 500 também pode incluir um ou mais dispositivos de saída, tais como um exibidor 518. O exibidor 518 pode ser, em um exemplo, um exibidor sensível ao toque que combina uma tela com um elemento sensível ao toque que é operável para detectar entradas de toque. O exibidor 518 pode ser acoplado ao processador 502 via barramento 512.
[0251] O aparelho 500 também pode incluir um ou mais dispositivos de saída, tais como um exibidor 518. O exibidor 518 pode ser, em um exemplo, um exibidor sensível ao toque que combina um exibidor com um elemento sensível ao toque que é operável para detectar entradas de toque. O exibidor 518 pode ser acoplado ao processador 502 via barramento 512. Outros dispositivos de saída que permitem a um usuário programar ou usar de outra forma o aparelho 500 podem ser fornecidos além do ou como uma alternativa ao exibidor 518. Quando o dispositivo de saída é ou inclui um exibidor, o exibidor pode ser implementado de várias maneiras, incluindo por um exibidor de cristal líquido (LCD), um exibidor de tubo de raios catódicos (CRT), um exibidor de plasma ou exibidor de diodo emissor de luz (LED), tal como um exibidor de LED orgânico (OLED).
[0252] O aparelho 500 também pode incluir ou estar em comunicação com um dispositivo de detecção de imagem 520, por exemplo, uma câmera, ou qualquer outro dispositivo de detecção de imagem 520 existente ou a ser desenvolvido que possa detectar uma imagem tal como a imagem de um usuário operando o aparelho 500. O dispositivo de detecção de imagem 520 pode ser posicionado de modo que ele seja direcionado ao usuário operando o aparelho 500. Em um exemplo, a posição e o eixo geométrico óptico do dispositivo de detecção de imagem 520 podem ser configurados de modo que o campo de visão inclua uma área que é diretamente adjacente ao exibidor 518 e a partir da qual o exibidor 518 é visível.
[0253] O aparelho 500 também pode incluir ou estar em comunicação com um dispositivo de detecção de som 522, por exemplo, um microfone, ou qualquer outro dispositivo de detecção de som existente ou a ser desenvolvido que possa detectar sons perto do aparelho 500. O dispositivo de detecção 522 pode ser posicionado de modo que ele seja direcionado para o usuário operando o aparelho 500 e pode ser configurado para receber sons, por exemplo, fala ou outras elocuções, feitas pelo usuário enquanto o usuário opera o aparelho 500.
[0254] Embora a Figura 5 represente o processador 502 e a memória 504 do aparelho 500 como sendo integrados em uma única unidade, outras configurações podem ser utilizadas. As operações do processador 502 podem ser distribuídas por várias máquinas (cada máquina tendo um ou mais dos processadores) que podem ser acopladas diretamente ou através de uma área local ou outra rede. A memória 504 pode ser distribuída por várias máquinas tal como uma memória com base em rede ou memória em múltiplas máquinas realizando as operações do aparelho 500. Embora representado aqui como um único barramento, o barramento 512 do aparelho 500 pode ser composto por vários barramentos. Além disso, o armazenamento secundário 514 pode ser diretamente acoplado a outros componentes do aparelho 500 ou pode ser acessado através de uma rede e pode compreender uma única unidade integrada tal como um cartão de memória ou múltiplas unidades tais como vários cartões de memória. O aparelho 500 pode, assim, ser implementado em uma ampla variedade de configurações.
[0255] Codificação de Vídeo de Última Geração (NGVC) remove a separação dos conceitos de CU, PU e TU e suporta mais flexibilidade para formatos de partição de CU. Um tamanho da CU corresponde a um tamanho do nó de codificação e pode ser quadrado ou não quadrado (por exemplo, retangular) em formato.
[0256] Além disso, ou alternativamente, TU ou PU também podem ser obtidas dividindo-se a CU.
[0257] Em J. An e outros, "Block partitioning structure for next generation video coding", International Telecommunication Union, COM16- C966, setembro de 2015 (doravante, "proposta VCEG COM16-C966"), técnicas de partição em árvore quaternária-árvore binária (QTBT) foram propostas para futuro padrão de codificação de vídeo além de HEVC. Simulações mostraram que a estrutura QTBT proposta é mais eficiente que a estrutura de árvore quaternária na HEVC usada. Em HEVC, a predição inter para pequenos blocos é restrita a reduzir o acesso da memória da compensação de movimento, e predição inter não é suportada para blocos 4x4. Na QTBT do JEM, essas restrições são removidas.
[0258] Na QTBT, uma CU pode ter ou um formato quadrado ou retangular. Como mostrado na Figura 6, uma unidade de árvore de codificação (CTU) é primeiramente particionada por uma estrutura de árvore quaternária. Os nós folha de árvore quaternária podem ser adicionalmente particionados por uma estrutura de árvore binária. Existem dois tipos de divisão, divisão horizontal simétrica e divisão vertical simétrica, na divisão de árvore binária. Em cada caso, um nó é dividido dividindo-se o nó ao meio, tanto horizontal quanto verticalmente. Os nós folha de árvore binária são chamados unidades de codificação (CUs), e essa segmentação é usada para predição e processamento de transformada sem qualquer partição adicional. Isso significa que CU, PU e TU têm o mesmo tamanho de bloco na estrutura de bloco de codificação de QTBT. Uma CU às vezes consiste em blocos de codificação (CBs) de componentes de cores diferentes, por exemplo, uma CU contém um CB de luma e dois CBs de croma no caso de fatias P e B do formato de croma 4: 2: 0 e às vezes consiste em um CB de um único componente, por exemplo, uma CU contém apenas um CB de luma ou apenas dois CBs de croma no caso de fatias I.
[0259] Os seguintes parâmetros são definidos para o esquema de partição de QTBT. - Tamanho de CTU: o tamanho de nó raiz de uma árvore quaternária, o mesmo conceito que em HEVC - MinQTSize: o tamanho de nó folha de árvore quaternária permitido mínimo - MaxBTSize: o tamanho de nó raiz de árvore binária permitido máximo - MaxBTDepth: a profundidade de árvore binária permitida máxima - MinBTSize: o tamanho de nó folha de árvore binária permitido mínimo
[0260] Em um exemplo da estrutura de partição de QTBT, quando o nó de árvore quaternária tem tamanho igual ou menor que MinQTSize, nenhuma árvore quaternária adicional é considerada. Ele não será mais dividido pela árvore binária pois o tamanho excede o MaxBTSize. Caso contrário, o nó de árvore quaternária de folha poderia ser particionado adicionalmente pela árvore binária. Portanto, o nó folha de árvore quaternária também é o nó raiz para a árvore binária e tem a profundidade de árvore binária como 0. Quando a profundidade de árvore binária atinge MaxBTDepth (isto é, 4), nenhuma divisão adicional é considerada. Quando o nó de árvore binária tem largura igual a MinBTSize (isto é, 4), nenhuma divisão horizontal adicional é considerada. Da mesma forma, quando o nó de árvore binária tem altura igual a MinBTSize, nenhuma divisão vertical adicional é considerada. Os nós folha da árvore binária são adicionalmente processados por predição e processamento de transformada sem qualquer partição adicional. No JEM, o tamanho de CTU máximo é de amostras de 256x256 luma. Os nós folha da árvore binária (CUs) podem ser adicionalmente processados (por exemplo, realizando-se um processo de predição e um processo de transformada) sem qualquer partição adicional.
[0261] A Figura 6 ilustra um exemplo de um bloco 30 (por exemplo, um CTB) particionado usando técnicas de partição de QTBT. Como mostrado na Figura 6, usando técnicas de partição de QTBT, cada um dos blocos é dividido simetricamente através do centro de cada bloco. A Figura 7 ilustra a estrutura de árvore correspondente à partição de bloco da Figura 6 As linhas cheias na Figura 7 indicam divisão de árvore quaternária e linhas pontilhadas indicam divisão de árvore binária. Em um exemplo, em cada nó de divisão (isto é, não folha) da árvore binária, um elemento de sintaxe (por exemplo, um sinalizador) é sinalizado para indicar o tipo de divisão realizada (por exemplo, horizontal ou vertical), onde 0 indica divisão horizontal e 1 indica divisão vertical. Para a divisão de árvore quaternária, não há necessidade de indicar o tipo de divisão, pois a divisão de árvore quaternária sempre divide um bloco horizontal e verticalmente em 4 sub-blocos com um tamanho igual.
[0262] Conforme mostrado na Figura 7, no nó 50, o bloco 30 é dividido nos quatro blocos 31, 32, 33 e 34, mostrados na Figura 6, usando partição de QT. O bloco 34 não é adicionalmente dividido e é, portanto, um nó folha. No nó 52, o bloco 31 é adicionalmente dividido em dois blocos usando partição de BT. Como mostrado na Figura 7, o nó 52 é marcado com um 1, indicando divisão vertical. Como tal, a divisão no nó 52 resulta no bloco 37 e no bloco incluindo ambos os blocos 35 e 36. Os blocos 35 e 36 são criados por uma divisão vertical adicional no nó 54. No nó 56, o bloco 32 é adicionalmente dividido em dois blocos 38 e 39 usando partição de BT.
[0263] No nó 58, o bloco 33 é dividido em 4 blocos de tamanho igual usando partição de QT. Os blocos 43 e 44 são criados a partir dessa partição de QT e não são mais divididos. No nó 60, o bloco superior esquerdo é primeiro dividido usando divisão de árvore binária vertical resultando no bloco 40 e um bloco vertical direito. O bloco vertical direito é então dividido usando divisão de árvore binária horizontal em blocos 41 e 42. O bloco direito inferior criado a partir da divisão de árvore quaternária no nó 58 é dividido no nó 62 usando divisão de árvore binária horizontal em blocos 45 e 46. Como mostrado na Figura 7, o nó 62 é marcado com um 0, indicando divisão horizontal.
[0264] Além de QTBT, uma estrutura de partição de bloco denominada árvore de múltiplos tipos (MTT) é proposta para substituir BT em estruturas de CU com base em QTBT, o que significa que uma CTU pode ser dividida por partição de QT em primeiro lugar para obter um bloco da CTU, e então o bloco pode ser dividido pela partição de MTT em segundo lugar.
[0265] A estrutura de partição de MTT ainda é uma estrutura de árvore recursiva. Na MTT, múltiplas estruturas de partição diferentes (por exemplo, duas ou mais) são usadas. Por exemplo, de acordo com as técnicas de MTT, duas ou mais estruturas de partição diferentes podem ser usadas para cada nó que não de folha respectivo de uma estrutura de árvore, em cada profundidade da estrutura de árvore. A profundidade de um nó em uma estrutura de árvore pode se referir ao comprimento do caminho (por exemplo, o número de divisões) do nó à raiz da estrutura de árvore.
[0266] Em MTT, existem dois tipos de partição, partição de BT e partição de árvore ternária (TT). O tipo de partição pode ser selecionado de partição de BT e partição de TT. A estrutura de partição de TT difere das estruturas QT ou BT, porque a estrutura de partição de TT não divide um bloco no centro. A região central do bloco permanece junto no mesmo sub-bloco. Diferente de QT, que produz quatro blocos, ou árvore binária, que produz dois blocos, a divisão de acordo com uma estrutura de partição de TT produz três blocos. Exemplos de tipos de partição de acordo com a estrutura de partição de TT incluem tipos de partição simétrica (tanto horizontal quanto vertical), bem como tipos de partição assimétrica (tanto horizontal quanto vertical). Além disso, os tipos de partição simétrica de acordo com a estrutura de partição de TT podem ser irregulares/não uniformes ou regulares/uniformes. Os tipos de partição assimétrica de acordo com a estrutura de partição de TT são irregulares/não uniformes. Em um exemplo, uma estrutura de partição de TT pode incluir pelo menos um dos seguintes tipos de partição: árvore ternária simétrica regular/uniforme horizontal, árvore ternária simétrica regular/uniforme vertical, árvore ternária simétrica irregular/não uniforme horizontal, árvore ternária simétrica irregular/não uniforme vertical, árvore ternária assimétrica irregular/não uniforme horizontal ou tipos de partição de árvore ternária assimétrica irregular/não uniforme vertical.
[0267] Em geral, um tipo de partição de árvore ternária simétrica irregular/não uniforme é um tipo de partição que é simétrico em torno de uma linha central do bloco, mas onde pelo menos um dos três blocos resultantes não é do mesmo tamanho que o outros dois. Um exemplo preferido é quando os blocos laterais têm 1/4 do tamanho de bloco, e o bloco central tem 1/2 (metade) do tamanho do bloco. Um tipo de partição de árvore ternária simétrica regular/uniforme é um tipo de partição que é simétrico em torno de uma linha central do bloco, e os blocos resultantes são todos do mesmo tamanho. Uma partição como essa é possível se a altura ou largura do bloco, dependendo de uma divisão vertical ou horizontal, é um múltiplo de 3. Um tipo de partição de árvore ternária assimétrica irregular/não uniforme é um tipo de partição que não é simétrico em torno de uma linha central do bloco, e onde pelo menos um dos blocos resultantes não é do mesmo tamanho que os outros dois.
[0268] A Figura 8 é um diagrama conceitual ilustrando tipos de partição de árvore ternária horizontal exemplificativos opcionais. A Figura 9 é um diagrama conceitual ilustrando exemplos opcionais de tipos de partição de árvore ternária vertical. Tanto na Figura 8 quanto na Figura 9, h representa a altura do bloco em amostras de luma ou de croma e w representa a largura do bloco em amostras de luma ou de croma. Observe-se que a respectiva linha central de um bloco não representa o limite do bloco (isto é, as partições de árvore ternária não dividem um bloco através da linha central). Em vez disso, a linha central \ é usada para representar se um tipo particular de partição é ou não simétrico ou assimétrico em relação à linha central do bloco original. A linha central também está ao longo da direção da divisão.
[0269] Conforme mostrado na Figura 8, o bloco 71 é particionado com um tipo de partição simétrica regular/uniforme horizontal. O tipo de partição simétrica regular/uniforme horizontal produz metades superior e inferior simétricas em relação à linha central do bloco 71. O tipo de partição simétrica regular/uniforme horizontal produz três sub-blocos de tamanho igual, cada um com uma altura de h/3 e uma largura de w. O tipo de partição simétrica regular/uniforme horizontal é possível quando a altura do bloco 71 é divisível regularmente por 3.
[0270] O bloco 73 é particionado com um tipo de partição simétrica irregular/não uniforme horizontal. O tipo de partição simétrica irregular/não uniforme horizontal produz metades superior e inferior simétricas em relação à linha central do bloco 73. O tipo de partição simétrica irregular/não uniforme horizontal produz dois blocos de tamanho igual (por exemplo, os blocos superior e inferior com uma altura de h/4), e um bloco central de um tamanho diferente (por exemplo, um bloco central com uma altura de h/2). Em um exemplo, de acordo com o tipo de partição simétrica irregular/não uniforme horizontal, a área do bloco central é igual às áreas combinadas dos blocos superior e inferior. Em alguns exemplos, o tipo de partição simétrica irregular/não uniforme horizontal pode ser preferido para blocos tendo uma altura que é uma potência de 2 (por exemplo, 2, 4, 8, 16, 32, etc.).
[0271] O bloco 75 é particionado com um tipo de partição assimétrica irregular/não uniforme horizontal. O tipo de partição assimétrica irregular/não uniforme horizontal não produz uma metade superior e inferior simétricas em relação à linha central do bloco 75 (isto é, as metades superior e inferior são assimétricas). No exemplo da Figura 8, o tipo de partição assimétrica irregular/não uniforme horizontal produz um bloco superior com altura de h/4, um bloco central com altura de 3h/8 e um bloco inferior com altura de 3h/8. Certamente, outras disposições assimétricas podem ser usadas.
[0272] Conforme mostrado na Figura 9, o bloco 81 é particionado com um tipo de partição simétrica regular/uniforme vertical. O tipo de partição simétrica regular/uniforme vertical produz metades esquerda e direita simétricas em relação à linha central do bloco 81. O tipo de partição simétrica regular/uniforme vertical produz três sub-blocos de tamanho igual, cada um com uma largura de w/3 e uma altura de h. O tipo de partição simétrica regular/uniforme vertical é possível quando a largura do bloco 81 é regularmente divisível por 3.
[0273] O bloco 83 é particionado com um tipo de partição simétrica irregular/não uniforme vertical. O tipo de partição simétrica irregular/não uniforme vertical produz metades esquerda e direita simétricas em relação à linha central do bloco 83. O tipo de partição simétrica irregular/não uniforme vertical produz metades direita e esquerda simétricas em relação à linha central de 83. O tipo de partição simétrica irregular/não uniforme vertical produz dois blocos de tamanho igual (por exemplo, os blocos esquerdo e direito com uma largura de w/4), e um bloco central de um tamanho diferente (por exemplo, um bloco central com uma largura de w/2). Em um exemplo, de acordo com o tipo de partição simétrica irregular/não uniforme vertical, a área do bloco central é igual às áreas combinadas dos blocos esquerdo e direito. Em alguns exemplos, o tipo de partição simétrica irregular/não uniforme vertical pode ser preferido para blocos com uma largura que é uma potência de 2 (por exemplo, 2, 4, 8, 16, 32, etc.).
[0274] O bloco 85 é particionado com um tipo de partição assimétrica irregular/não uniforme vertical. O tipo de partição assimétrica irregular/não uniforme vertical não produz uma metade esquerda e direita simétricas em relação à linha central do bloco 85 (isto é, as metades esquerda e direita são assimétricas). No exemplo da Figura 9, o tipo de partição assimétrica irregular/não uniforme vertical produz um bloco esquerdo com largura de w/4, um bloco central com largura de 3w/8 e um bloco direito com largura de 3w/8. Certamente, outras disposições assimétricas podem ser usadas.
[0275] Além dos parâmetros para QTBT, os seguintes parâmetros são definidos para o esquema de partição de MTT. - MaxBTSize: o tamanho de nó raiz de árvore binária permitido máximo - MinBtSize: o tamanho de nó raiz de árvore binária permitido mínimo - MaxMttDepth: a profundidade de árvore de múltiplos tipos máxima - Desvio MaxMttDepth: o desvio de profundidade de árvore de múltiplos tipos máxima - MaxTtSize: o tamanho de nó raiz de árvore ternária permitido máximo - MinTtSize: o tamanho de nó raiz de árvore ternária permitido mínimo - MinCbSize: o tamanho de bloco de codificação permitido mínimo
[0276] As modalidades da revelação podem ser implementadas por um codificador de vídeo ou um decodificador de vídeo, tal como o codificador de vídeo 20 da Figura 2 ou decodificador de vídeo 30 da Figura 3, de acordo com uma modalidade do presente pedido. Um ou mais elementos estruturais do codificador de vídeo 20 ou decodificador de vídeo 30, incluindo unidade de partição, podem ser configurados para realizar as técnicas de modalidades da revelação.
[0277] Em [JVET-K1001-v4], relatório JVET AHG, J.-R.Ohm, GJSulivan, http://phenix.int-evry.fr/jvet/, o elemento de sintaxe de MinQtSizeY (log2_min_qt_size_intra_slices_minus_slices2 e log2_us_slices_minus_inter2 ) e o elemento de sintaxe de MaxMttDepth (max_mtt_hierarchy_depth_inter_slices e max_mtt_hierarchy_depth_intra_slices) são escolhidos em SPS.
[0278] O elemento de sintaxe da diferença entre o tamanho de CTB de luma e MaxBtSizeY (log2_diff_ctu_max_bt_size) é sinalizado no cabeçalho de fatia.
[0279] CtbSizeY e o elemento de sintaxe correspondente log2_ctu_size_minus2 indicam o tamanho de tamanho de bloco de codificação máximo em termos de número de amostras de luma.
[0280] MinQtSizeY é definido como o tamanho de luma mínimo de um bloco de folha resultante de divisão de árvore quaternária de uma CTU (unidade de árvore de codificação). O tamanho pode indicar ou a largura ou a altura do bloco em número de amostras. Também pode indicar a largura e a altura juntas no caso de blocos quadrados. Por exemplo, se MinQtSizeY é igual a 16, um bloco de codificação com um tamanho menor ou igual a 16 não pode ser particionado em bloco filho usando o método de divisão de árvore quaternária. No estado da técnica MinQtSizeY, log2_min_qt_size_intra_slices_minus2 e log2_min_qt_size_inter_slices_minus2 são usados para indicar o tamanho de bloco de árvore quaternária mínimo. Observe-se que a indicação do tamanho pode ser uma indicação indireta, o que significa que log2_min_qt_size_intra_slices_minus2 pode ser o logaritmo binário (base 2) do número de amostras luma do bloco de árvore quaternária mínimo. MttDepth é definido como a profundidade de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária ou CTU. Uma unidade de árvore de codificação (ou CTB, Coding Tree Block, Bloco de Árvore de Codificação) descreve o tamanho de bloco máximo que é usado para particionar um quadro de figura. MaxMttDepth descreve o limite superior para o número de divisões binárias ou ternárias consecutivas que podem ser aplicadas para obter um bloco filho. Como exemplo, presume-se que o tamanho de CTU seja 128x128 (largura igual a 128 e altura igual a 128), e MaxMttDepth seja igual a 1. Neste caso, o bloco pai (tamanho 128x128) pode primeiro ser dividido em dois blocos filhos de 128x64 usando divisão binária. No entanto, os blocos filhos não podem aplicar nenhuma divisão binária consecutiva (para resultar em blocos filhos 128x32 ou 64x64), uma vez que o número máximo de divisão binária permitido seja atingido. É notado que MaxMttDepth pode controlar a profundidade de divisão binária máxima ou a profundidade de divisão ternária máxima, ou ambas ao mesmo tempo. Se ela controla tanto a divisão binária quanto ternária ao mesmo tempo, 1 (uma) divisão binária seguida por 1 (uma) divisão ternária pode ser contada como 2 (duas) divisões hierárquicas. No estado da técnica, MaxMttDepth, max_mtt_hierarchy_depth_inter_slices e max_mtt_hierarchy_depth_intra_slices são usadas para indicar a profundidade de hierarquia máxima para unidades de codificação resultantes de árvore de múltiplos tipos.
[0281] É notado que os nomes dos elementos de sintaxe são usados como aparecem no estado da técnica. No entanto, deve ficar claro que os nomes podem ser mudados, portanto, o que deve ser considerado importante é o significado lógico dos elementos de sintaxe.
[0282] MaxBtSizeY é definido como o tamanho de luma máximo (largura ou altura), em termos de número de amostras, de um bloco de codificação que pode ser dividido usando uma divisão binária. Por exemplo, se MaxBtSizeY é igual a 64, um bloco de codificação com que é maior em tamanho ou em largura ou em altura não pode ser dividido usando divisão binária. Isso significa que um bloco que tem um tamanho 128x128 não pode ser dividido usando divisão binária, enquanto um bloco que tem um tamanho 64x64 pode ser dividido usando divisão binária.
[0283] MinBtSizeY é definido como o tamanho de luma mínimo (largura ou altura), em termos de número de amostras, de um bloco de codificação que pode ser dividido usando uma divisão binária. Por exemplo, se MinBtSizeY é igual a 16, um bloco de codificação que é menor ou igual ou em largura ou em altura não pode ser dividido usando divisão binária. Isso significa que um bloco que tem um tamanho 8x8 não pode ser dividido usando divisão binária, enquanto um bloco que tem um tamanho 32x32 pode ser dividido usando divisão binária.
[0284] MinCbSizeY é definido como o tamanho de bloco de codificação mínimo. Como exemplo, MinCbSizeY pode ser igual a 8, o que significa que um bloco pai que tem um tamanho de 8x8 não pode ser dividido usando nenhum dos métodos de divisão uma vez que o bloco filho resultante é garantido como sendo menor do que MinCbSizeY em largura ou altura. De acordo com um segundo exemplo, se MinCbSizeY é igual a 8, um bloco pai que tem um tamanho de 8x16 não pode ser particionado usando, por exemplo, divisão de árvore quaternária, uma vez que os quatro blocos filhos resultantes teriam um tamanho de 4x8 (largura igual a 4 e altura igual a 8), e a largura da largura dos blocos filhos resultantes seria menor que MinCbSizeY. No segundo exemplo, foi presumido que MinCbSizeY se aplica tanto à largura quanto à altura do bloco, embora 2 elementos de sintaxe diferentes possam ser usados para limitar independentemente a largura e a altura.
[0285] MinTbSizeY é definido como o tamanho de bloco mínimo de transformada, em termos de número de amostras, de um bloco de codificação que pode ser dividido usando uma divisão ternária. Como um exemplo, se MinTbSizeY é igual a 16, um bloco de codificação que seja menor ou igual em tamanho ou em largura ou em altura não pode ser dividido usando divisão ternária. Isso significa que um bloco que tem um tamanho 8x8 não pode ser dividido usando divisão ternária, enquanto um bloco que tem um tamanho 32x32 pode ser dividido usando divisão ternária.
[0286] Sintaxe de conjunto de parâmetros de sequência RBSP (Carga Útil de Sequência de Bite Bruto) (Seção 7.3.2.1 de [JVET-K1001-v4]) [Ed. (BB): SPS básico preliminar, sujeito a estudo adicional e desenvolvimento de especificação adicional pendente.]
[0287] Nessas tabelas de sintaxe, em negrito estão os elementos de sintaxe incluídos no fluxo de bits. Os elementos que não são mostrados em negrito são condições ou marcadores de posição para unidades de sintaxe adicionais.
[0288] Sintaxe de cabeçalho de fatia (Seção 7.3.3 de [JVET-K1001- v4]) [Ed. (BB): Cabeçalho de fatia básica preliminar, sujeito a estudos adicionais e desenvolvimento de especificação adicional pendente.]
[0289] A semântica dos elementos de sintaxe, isto é, como os elementos de sintaxe incluídos no fluxo de bits devem ser interpretados, também é fornecida em um padrão. A seguir, a semântica para os elementos mencionados acima é fornecida.
[0290] Semântica RBSP de conjunto de parâmetros de sequência (Seção 7.4.3.1 de [JVET-K1001-v4]) log2_ctu_size_minus2 mais 2 especifica o tamanho de bloco de árvore de codificação de luma de cada CTU.
[0291] As variáveis CtbLog2SizeY, CtbSizeY, MinCbLog2SizeY, MinCbSizeY, MinTbLog2SizeY, MaxTbLog2SizeY, PicWidthInCtbsY, PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicHeightInMinCbsY, PicSizeInMinCbsY, PicSizeInSamplesY, PicWidthInSamplesC e PicHeightInSamplesC são derivadas da seguinte forma:
[0292] [0298]... log2_min_qt_size_intra_slices_minus2 mais 2 especifica o tamanho de luma mínimo de um bloco de folha resultante de divisão de árvore quaternária de uma CTU em fatias com slice_type igual a 2 (I). O valor de log2_min_qt_size_intra_slices_minus2 estará na faixa de 0 a CtbLog2SizeY - 2, inclusive. MinQtLog2SizeIntraY = log2_min_qt_size_intra_slices_minus2 + 2 (722) [Ed. (BB): A folha de uma árvore quaternária pode ser uma unidade de codificação ou a raiz de uma árvore de múltiplos tipos aninhada.]
[0293] log2_min_qt_size_inter_slices_minus2 mais 2 especifica o tamanho de luma mínimo de um bloco de folha resultante de divisão de árvore quaternária de uma CTU em fatias com slice_type igual a 0 (B) ou 1 (P). O valor de log2_min_qt_size_inter_slices_minus2 estará na faixa de 0 a CtbLog2SizeY - 2, inclusive. MinQtLog2SizeInterY = log2_min_qt_size_inter_slices_minus2 + 2 (7- 23)
[0294] max_mtt_hierarchy_depth_inter_slices especifica a profundidade de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 0 (B) ou 1 (P). O valor de max_mtt_hierarchy_depth_inter_slices estará na faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, inclusive.
[0295] max_mtt_hierarchy_depth_intra_slices especifica a profundidade de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 2 (I). O valor de max_mtt_hierarchy_depth_intra_slices estará na faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, inclusive.
[0296] Semântica de cabeçalho de fatia (Seção 7.4.4 de [JVET- K1001-v4]))
[0297] ...
[0298] log2_diff_ctu_max_bt_size especifica a diferença entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária. O valor de log2_diff_ctu_max_bt_size estará na faixa de 0 a CtbLog2SizeY - MinCbLog2SizeY, inclusive.
[0299] Quando log2_diff_ctu_max_bt_size não está presente, o valor de log2_diff_ctu_max_bt_size é inferido ser igual a 2.
[0300] As variáveis MinQtLog2SizeY, MaxBtLog2SizeY, MinBtLog2SizeY, MaxTtLog2SizeY, MinTtLog2SizeY, MaxBtSizeY, MinBtSizeY, MaxTtSizeY, MinTtSizeY e MaxMttDepth são derivadas da seguinte forma: [Ed. (BB): Correntemente, o tamanho de TT máximo é fixo (amostras de luma 32x32 e amostras de croma correspondentes para fatias I e amostras de luma 64x64 e amostras de croma correspondentes para fatias P/B), bem como o tamanho de BT máximo para fatias I (CtbLog2SizeY-2, por exemplo, amostras de luma 32x32 e amostras de croma correspondentes para um tamanho de CTU de amostras de luma 128x128).
[0301] Na modalidade 1 da revelação:
[0302] A modalidade 1 refere-se à sinalização, no SPS (conjuntos de parâmetros de sequência), os elementos de sintaxe de alto nível relacionados à restrição de partição (por exemplo, MinQtSizeY, MaxMttDepht, MaxBtSizeY) individualmente por tipo de fatia, e/ou sinalizar um sinalizador de substituição de restrição de partição habilitada (ou desabilitada).
[0303] No cabeçalho Fatia, sinalizar o sinalizador de substituição de restrição de partição significa:
[0304] Se o sinalizador é verdadeiro, substituir elementos de sintaxe de alto nível relacionados à restrição de partição no cabeçalho de fatia, aqui a substituição significa sinalizar novamente os elementos no cabeçalho de fatia.
[0305] Caso contrário, inferir os elementos de sintaxe de alto nível relacionados à restrição de partição com os valores sinalizados do SPS com base em tipo de fatia.
[0306] Em outras palavras, o sinalizador de substituição de restrição de partição é sinalizado no cabeçalho de fatia, a fim de indicar se um ou mais parâmetros de restrição de partição são sinalizados no cabeçalho de fatia ou em um conjunto de parâmetros tais como SPS. Observa-se que o conjunto de parâmetros não precisa ser necessariamente SPS. Pode ser PPS, ou qualquer outro tipo de conjunto de parâmetros que refere-se, por exemplo, a mais de uma fatia, por exemplo a uma ou mais figuras do vídeo.
[0307] Alternativamente,
[0308] No SPS, os elementos de sintaxe de alto nível relacionados à restrição de partição (por exemplo, MinQtSizeY, MaxMttDepht, MaxBtSizeY) são sinalizados individualmente em pares com base em um recurso ou índice, e um sinalizador habilitado (ou desabilitado) substituto de restrição de partição é sinalizado.
[0309] No cabeçalho Fatia, o sinalizador de substituição de restrição de partição é sinalizado e: se a bandeira é verdadeira, substituir elementos de sintaxe de alto nível relacionados à restrição de partição no cabeçalho de fatia, aqui os meios de substituição sinalizam novamente os elementos no cabeçalho de fatia.
[0310] Caso contrário inferir os elementos de sintaxe de alto nível relacionados à restrição de partição com os valores sinalizados a partir do SPS com base no recurso ou índice usado para individualizar a sinalização.
[0311] Em relação à posição de sinalização e substituição, alternativamente, por exemplo: a sinalização de elementos de sintaxe de alto nível relacionados à restrição de partição pode ser realizada em um conjunto de parâmetros, e a operação de substituição pode ser realizada em um cabeçalho de fatia. a sinalização de elementos de sintaxe de alto nível relacionados à restrição de partição pode ser realizada em um conjunto de parâmetros, e a operação de substituição pode ser realizada em um cabeçalho de tile. a sinalização de elementos de sintaxe de alto nível relacionados à restrição de partição pode ser realizada em um primeiro conjunto de parâmetros, e a operação de substituição pode ser realizada em um segundo conjunto de parâmetros. a sinalização de elementos de sintaxe de alto nível relacionados à restrição de partição pode ser realizada no cabeçalho de fatia, e a operação de substituição pode ser realizada no cabeçalho de tile.
[0312] Em geral, quando a sinalização de elementos de sintaxe de alto nível relacionados à restrição de partição é realizada em um primeiro conjunto de parâmetros, e a operação de substituição é realizada em um segundo conjunto de parâmetros, codificação eficiente pode ser alcançada porque o primeiro conjunto se refere a áreas de imagem/vídeo maiores que o segundo conjunto de parâmetros.
[0313] Vantagem da técnica (por exemplo, sinalização em SPS, substituição no cabeçalho de fatia): A restrição de partição de alto nível controla o equilíbrio entre complexidade de partição e a eficiência de codificação proveniente da partição. A invenção garante a flexibilidade para controlar o equilíbrio por fatia individual.
[0314] Tanto o codificador quanto a decodificação fazem as mesmas (correspondentes) operações.
[0315] A sintaxe correspondente e a modificação semântica com base no estado da técnica são mostradas abaixo:
[0316] Sintaxe RBSP de conjunto de parâmetros de sequência modificada (Seção 7.3.2.1 de [JVET-K1001-v4]) [Ed. (BB): SPS básico preliminar, sujeito a estudo adicional e desenvolvimento de especificação adicional pendente.]
[0317] Sintaxe do cabeçalho de fatia modificada (Seção 7.3.3 de [JVET-K1001-v4]) [Ed. (BB): Cabeçalho de fatia básica preliminar, sujeito a estudos adicionais e desenvolvimento de especificação adicional pendente.]
[0318] Semântica RBSP de conjunto de parâmetros de sequência modificada (Seção 7.4.3.1 de [JVET-K1001-v4])
[0319] partition_constraint_override_enabled_flag igual a 1 especifica a presença de partition_constraint_override_flag nos cabeçalhos de fatia para fatias que se referem ao SPS. partition_constraint_override_enabled_flag igual a 0 especifica a ausência de partition_constraint_override_flag nos cabeçalhos de fatia para fatias que se referem ao SPS.
[0320] sps_log2_min_qt_size_intra_slices_minus2 mais 2 especifica o tamanho de luma mínimo padrão de um bloco de folha resultante de divisão de árvore quaternária de uma CTU em fatias com slice_type igual a 2 (I) com referência ao SPS, a menos que os tamanhos de luma mínimos padrão de um bloco de folha resultante de divisão de árvore quaternária de uma CTU é substituída pelos tamanhos de luma mínimos de um bloco de folha resultante de divisão de árvore quaternária de uma CTU presente no cabeçalho de fatia das fatias referentes ao SPS. O valor de log2_min_qt_size_intra_slices_minus2 estará na faixa de 0 a CtbLog2SizeY - 2, inclusive.
[0321] MinQtLog2SizeIntraY = log2_min_qt_size_intra_slices_minus2 + 2 (7-22)
[0322] sps_log2_min_qt_size_inter_slices_minus2 mais 2 especifica o tamanho de luma mínimo padrão de um bloco de folha resultante de divisão de árvore quaternária de uma CTU em fatias com slice_type igual a 0 (B) ou 1 (P) com referência ao SPS, a menos que os tamanhos de luma mínimos padrão de um bloco de folha resultante de divisão de árvore quaternária de uma CTU sejam substituídos pelos tamanhos de luma mínimos de um bloco de folha resultante de divisão de árvore quaternária de uma CTU presente no cabeçalho de fatia das fatias referentes ao SPS. O valor de log2_min_qt_size_inter_slices_minus2 estará na faixa de 0 a CtbLog2SizeY - 2, inclusive.
[0323] MinQtLog2SizeInterY = log2_min_qt_size_inter_slices_minus2 + 2 (7-23)
[0324] sps_max_mtt_hierarchy_depth_inter_slices especifica a profundidade de hierarquia máxima padrão para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 0 (B) ou 1 (P) com referência ao SPS, a menos que as profundidades de hierarquia máxima padrão para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária sejam substituídas pelas profundidades de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária presente no cabeçalho de fatia das fatias que se referem ao SPS. O valor de max_mtt_hierarchy_depth_inter_slices estará na faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, inclusive.
[0325] sps_max_mtt_hierarchy_depth_intra_slices especifica a profundidade de hierarquia máxima padrão para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 2 (I) com referência ao SPS, a menos que as profundidades de hierarquia máxima padrão para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária sejam substituídas pelas profundidades de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária presente no cabeçalho de fatia das fatias que se referem ao SPS. O valor de max_mtt_hierarchy_depth_intra_slices estará na faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, inclusive.
[0326] sps_log2_diff_ctu_max_bt_size_intra_slices especifica a diferença padrão entre o tamanho de CTB de luma e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária em fatias com slice_type igual a 2 (I) com referência ao SPS, a menos que as diferenças padrão entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária sejam substituídas pelas diferenças entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura ) de um bloco de codificação que pode ser dividido usando uma divisão binária presente no cabeçalho de fatia das fatias referentes ao SPS. O valor de log2_diff_ctu_max_bt_size estará na faixa de 0 a CtbLog2SizeY - MinCbLog2SizeY, inclusive.
[0327] sps_log2_diff_ctu_max_bt_size_inter_slices especifica a diferença padrão entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária em fatias com slice_type igual a 0 (B) ou 1 (P) com referência ao SPS, a menos que as diferenças padrão entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária sejam substituídas pelas diferenças entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária presente no cabeçalho de fatia das fatias referentes ao SPS. O valor de log2_diff_ctu_max_bt_size estará na faixa de 0 a CtbLog2SizeY - MinCbLog2SizeY, inclusive.
[0328] Semântica de cabeçalho de fatia modificada (Seção 7.4.4 de [JVET-K1001-v4]) ...
[0329] partition_constraint_override_flag igual a 1 especifica que parâmetros de restrição de partição estão presentes no cabeçalho de fatia. partition_constraint_override_flag igual a 0 especifica que parâmetros de restrição da partição não estão presentes no cabeçalho de fatia. Quando não estão presentes, o valor de partition_cosntraints_override_flag é inferido ser igual a 0.
[0330] log2_min_qt_size_minus2 mais 2 especifica o tamanho de luma mínimo de um bloco de folha resultante de divisão de árvore quaternária de uma CTU para a fatia corrente. O valor de log2_min_qt_size_inter_slices_minus2 estará na faixa de 0 a CtbLog2SizeY - 2, inclusive. Quando não estão presentes, os valores de log2_min_qt_size_minus2 são inferidos serem iguais a sps_log2_min_qt_size_intra_slices_minus2 se slice_type igual a 2 (I) e inferidos serem iguais a sps_log2_min_qt_size_inter_slices_minus2 se slice_type igual a 0 (B) ou 1 (P).
[0331] max_mtt_hierarchy_depth especifica a profundidade de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária para a fatia corrente. O valor de max_mtt_hierarchy_depth_intra_slices estará na faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, inclusive. Quando não estão presentes, os valores de max_mtt_hierarchy_depth são inferidos serem iguais a sps_max_mtt_hierarchy_depth_intra_slices com slice_type igual a 2 (I) e inferidos serem iguais a sps_max_mtt_hierarchy_depth_inter_slices com slice_type 1 (B) ou igual a 0 (B).
[0332] log2_diff_ctu_max_bt_size especifica a diferença entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária para a fatia corrente. O valor de log2_diff_ctu_max_bt_size estará na faixa de 0 a CtbLog2SizeY - MinCbLog2SizeY, inclusive. Quando não estão presentes, os valores de log2_diff_ctu_max_bt_size são inferidos serem iguais a sps_log2_diff_ctu_max_bt_size_intra_slices com slice_type igual a 2 (I) e inferida ser igual a sps_log2_diff_ctu_max_bt_size_inter_slices com slice_type igual a 0 (B) ou 1 (P).
[0333] As variáveis MinQtLog2SizeY, MaxBtLog2SizeY, MinBtLog2SizeY, MaxTtLog2SizeY, MinTtLog2SizeY, MaxBtSizeY, MinBtSizeY, MaxTtSizeY, MinTtSizeY e MaxMttDepth são derivados como segue:
[0334] Em uma implementação alternativa da modalidade 1 da revelação é descrita a seguir:
[0335] sps_max_mtt_hierarchy_depth_intra_slices especifica a profundidade de hierarquia máxima padrão para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 2 (I) com referência ao SPS, a menos que as profundidades de hierarquia máxima padrão para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária sejam substituídas pelas profundidades de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária presente no cabeçalho de fatia das fatias que se referem ao SPS. O valor de max_mtt_hierarchy_depth_intra_slices estará na faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, inclusive.
[0336] O conjunto de parâmetros de sequência (SPS) contém parâmetros que se aplicam a uma sequência de vídeo codificada inteira, e não mudam de figura para figura dentro de uma sequência de vídeo codificada (abreviação de CVS). Todas as figuras no mesmo CVS usam o mesmo SPS.
[0337] O PPS contém parâmetros que podem mudar para figuras diferentes dentro da mesma sequência de vídeo codificada. No entanto, múltiplas figuras podem referir-se ao mesmo PPS, mesmo aquelas com diferentes tipos de codificação de fatia (I, P e B).
[0338] Conforme mencionado na modalidade 1 da presente revelação, a restrição de partição de alto nível controla o equilíbrio entre complexidade de partição e a eficiência de codificação da partição. Para abordar a vantagem de controle flexível entre a complexidade e eficiência de codificação em figura/fatia individual, em vez do método na modalidade 1 (sinalizar os elementos de sintaxe de restrição de partição em SPS e substituir o elemento de sintaxe de restrição de partição no cabeçalho de fatia com base no sinalizador de substituição de restrição de partição, que é sinalizado pelo cabeçalho de fatia), os elementos de sintaxe de restrição de partição (MinQtSizeY, MaxMttDepth, MaxBtSizeY, MaxTtSizeY, etc.) são sinalizados em PPS, a fim de ajustar a compensação de complexidade de partição e a eficiência de codificação da partição ao nível de figura. Se cada figura usar PPS individual, então o ajuste será aplicado para figura individual; se múltiplas figuras se referirem ao mesmo PPS, então o mesmo ajuste será aplicado para as figuras.
[0339] A sinalização de nível de PPS de elementos de sintaxe de restrição de partição pode ser sinalizada em um grupo, por exemplo, no PPS um indicador para MinQtSizeY, um indicador para MaxMttDepth, um indicador para MaxBtSizeY e um indicador para MaxTtSizeY são sinalizados, neste caso, a capacidade de ajuste do equilíbrio entre complexidade de partição e a eficiência de codificação da partição é individualmente por figuras diferentes.
[0340] A sinalização de nível de PPS de elementos de sintaxe de restrição de partição também pode ser sinalizada em dois grupos com base no tipo de fatia, por exemplo, no PPS um indicador de fatia intra para MinQtSizeY, um indicador de fatia inter para o MinQtSizeY, um indicador de fatia intra para MaxMttDepth, um indicador inter para MaxMttDepth, um indicador de fatia intra para MaxBtSizeY, um indicador de fatia inter para MaxBtSizeY, um indicador de fatia intra para MaxTtSizeY e um indicador de fatia inter para MaxTtSizeY são sinalizados, neste caso, a possibilidade de ajuste do equilíbrio entre complexidade de partição e a eficiência de codificação da partição é individualmente pelo tipo de fatia (intra ou inter).
[0341] A sinalização de nível de PPS de elementos de sintaxe de restrição de partição pode ser sinalizada em múltiplos grupos com base na identificação (por exemplo, índice) de fatia, por exemplo, se uma figura é dividida em três fatias, no PPS três indicadores diferentes com base nas identificações de fatia para MinQtSizeY, três indicadores diferentes com base nas identificações de fatia para MaxMttDepth e três indicadores diferentes com base nas identificações de fatia para MaxBtSizeY e três indicadores diferentes com base nas identificações de fatia para MaxTtSizeY são sinalizados, neste caso, a possibilidade de ajuste do equilíbrio entre complexidade de partição e a eficiência de codificação da partição são individualmente por fatia.
[0342] Em comparação com o método na modalidade 1, a vantagem desta implementação alternativa é que a estrutura de indicação é simplificada. Neste método, para ajustar de forma flexível o equilíbrio entre complexidade de partição e o ganho de codificação da partição, a substituição do elemento de sintaxe de restrição de partição no cabeçalho de fatia não é necessária.
[0343] Por outro lado, comparada ao método na modalidade 1, esta implementação alternativa é limitada em alguns cenários. Este método apenas sinaliza as restrições de partição no PPS. Isso significa que não é possível ajustar o equilíbrio entre complexidade de partição e o ganho de codificação da partição individualmente por figuras, se múltiplas figuras se referem ao mesmo PPS. Além disso, se o ajuste é necessário apenas para figuras-chave, este método sinalizará informações redundantes no PPS.
[0344] a pluralidade de elementos de sintaxe de restrição de partição é sinalizada a um nível de conjunto de parâmetros (tais como PPS, VPS, SPS) ou cabeçalhos (tais como um cabeçalho de figura, cabeçalho de fatia ou cabeçalho de tile).
[0345] Na modalidade 2 da revelação:
[0346] As modalidades, significa • Elementos de restrição de sintaxe de alto nível de partição podem ser sinalizados no SPS. • Elementos de restrição de sintaxe de alto nível de partição podem ser substituídos no cabeçalho Fatia. • Elementos de restrição de sintaxe de alto nível de partição podem usar valores padrão. • BT e TT podem ser desativadas em SPS. • BT e TT podem ser desativadas no cabeçalho Fatia. • O sinalizador BT e TT habilitado (desabilitado) pode ser sinalizado no SPS e substituído no cabeçalho Fatia.
[0347] Vantagem da técnica (por exemplo, sinalização em SPS, substituição no cabeçalho de fatia): A restrição de partição de alto nível controla o equilíbrio entre complexidade de partição e a eficiência de codificação da partição. A invenção garante a flexibilidade para controlar o equilíbrio por fatia individual. Para valores padrão e habilitação de Bt Tt (função desabilitante), existe mesmo mais flexibilidade no controle dos elementos.
[0348] Tanto o codificador quanto a decodificação fazem as mesmas (correspondentes) operações
[0349] As modificações correspondentes com base no estado da técnica são mostradas abaixo:
[0350] Sintaxe RBSP de conjunto de parâmetros de sequência modificada (Seção 7.3.2.1 de [JVET-K1001-v4]) [Ed. (BB): SPS básico preliminar, sujeito a estudo adicional e desenvolvimento de especificação adicional pendente.]
[0351] Sintaxe de cabeçalho de Fatia modificado (Seção 7.3.3 de [JVET-K1001-v4]) [Ed. (BB): Cabeçalho de fatia básica preliminar, sujeito a estudos adicionais e desenvolvimento de especificação adicional pendente.
[0352] Semântica RBSP de conjunto de parâmetros de Sequência Modificada (Seção 7.4.3.1 de [JVET-K1001-v4]) ...
[0353] partition_constraint_control_present_flag igual a 1 especifica a presença de elementos de sintaxe de controle de restrição de partição no SPS. partition_constraint_control_present_flag igual a 0 especifica a ausência de elementos de sintaxe de controle de restrição de partição no SPS.
[0354] sps_btt_enabled_flag igual a 1 especifica que a operação da partição de árvore de múltiplos tipos é aplicada a fatias que se referem ao SPS nas quais slice_btt_enable_flag não está presente. sps_btt_enabled_flag igual a 0 especifica que a operação da partição de árvore de múltiplos tipos não é aplicada a fatias que se referem ao SPS nas quais slice_btt_enable_flag não está presente. Quando não está presente, o valor de sps_btt_enabled_flag é inferido ser igual a 1.
[0355] partition_constraint_override_enabled_flag igual a 1 especifica a presença de partition_constraint_override_flag nos cabeçalhos de fatia para fatias que se referem ao SPS. partition_constraint_override_enabled_flag igual a 0 especifica a ausência de partition_constraint_override_flag nos cabeçalhos de fatia para fatias que se referem ao SPS. Quando não está presente, o valor de partition_constraint_override_enabled_flag é inferido ser igual a 0.
[0356] sps_log2_min_qt_size_intra_slices_minus2 mais 2 especifica o valor inicial do tamanho de luma mínimo no SPS de um bloco de folha resultante de divisão de árvore quaternária de uma CTU em fatias com slice_type igual a 2 (I) com referência ao SPS, a menos que o valor inicial de tamanhos de luma mínimos de um bloco de folha resultante de divisão de árvore quaternária de uma CTU sejam substituídos pelos tamanhos de luma mínimos de um bloco de folha resultante de divisão de árvore quaternária de uma CTU presente no cabeçalho de fatia das fatias referentes ao SPS. O valor de log2_min_qt_size_intra_slices_minus2 estará na faixa de 0 a CtbLog2SizeY - 2, inclusive. Quando não está presente, o valor de sps_log2_min_qt_size_intra_slices_minus2 é inferido ser igual a 0. MinQtLog2SizeIntraY = log2_min_qt_size_intra_slices_minus2 + 2 (7-22)
[0357] sps_log2_min_qt_size_inter_slices_minus2 mais 2 especifica o valor inicial do tamanho de luma mínimo no SPS de um bloco de folha resultante de divisão de árvore quaternária de uma CTU em fatias com slice_type igual a 0 (B) ou 1 (P) com referência ao SPS, a menos que o valor inicial dos tamanhos de luma mínimos de um bloco de folha resultante de divisão de árvore quaternária de uma CTU sejam substituídos pelos tamanhos de luma mínimos de um bloco de folha resultante de divisão de árvore quaternária de uma CTU presente no cabeçalho de fatia das fatias referentes ao SPS. O valor de log2_min_qt_size_inter_slices_minus2 estará na faixa de 0 a CtbLog2SizeY - 2, inclusive. Quando não está presente, o valor de sps_log2_min_qt_size_inter_slices_minus2 é inferido ser igual a 0. MinQtLog2SizeInterY = log2_min_qt_size_inter_slices_minus2 + 2 (723)
[0358] sps_max_mtt_hierarchy_depth_inter_slices especifica o valor inicial de profundidade de hierarquia máxima no SPS para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 0 (B) ou 1 (P) com referência ao SPS, a menos que o valor inicial de profundidades de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária sejam substituídos pelas profundidades de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária presente no cabeçalho de fatia das fatias referente ao SPS. O valor de max_mtt_hierarchy_depth_inter_slices estará na faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, inclusive. Quando não está presente, se o sps_btt_enabled_flag é igual a 1 o valor de sps_max_mtt_hierarchy_depth_inter_slices é inferido ser igual a 3.
[0359] Caso contrário o valor de sps_max_mtt_hierarchy_depth_inter_slices é inferido ser igual a 0.
[0360] sps_max_mtt_hierarchy_depth_intra_slices especifica o valor inicial de profundidade de hierarquia máxima no SPS para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 2 (I) com referência ao SPS, a menos que o valor inicial de profundidades de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária sejam substituídas pelas profundidades de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária presente no cabeçalho de fatia das fatias que se referem ao SPS. O valor de max_mtt_hierarchy_depth_intra_slices estará na faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, inclusive. Quando não está presente, se o sps_btt_enabled_flag é igual a 1 o valor de sps_max_mtt_hierarchy_depth_intra_slices é inferido ser igual a 3.
[0361] Caso contrário o valor de sps_max_mtt_hierarchy_depth_intra_slices é inferido ser igual a 0.
[0362] sps_log2_diff_ctu_max_bt_size_intra_slices especifica o valor inicial de diferença entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) no SPS de um bloco de codificação que pode ser dividido usando uma divisão binária em fatias com slice_type igual a 2 (I) com referência ao SPS, a menos que o valor inicial das diferenças entre o tamanho de CTB de luma e o tamanho máximo de luma (largura ou altura) no SPS de um bloco de codificação que pode ser a divisão usando uma divisão binária sejam substituídas pelas diferenças entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária presente no cabeçalho de fatia das fatias referentes ao SPS. O valor de log2_diff_ctu_max_bt_size estará na faixa de 0 a CtbLog2SizeY - MinCbLog2SizeY, inclusive. Quando não está presente, se o sps_btt_enabled_flag é igual a 1 o valor de sps_log2_diff_ctu_max_bt_size_intra_slices é inferido ser igual a 2.
[0363] De outra forma o valor de sps_log2_diff_ctu_max_bt_size_intra_slices é inferido ser igual a CtbLog2SizeY - MinCbLog2SizeY.
[0364] sps_log2_diff_ctu_max_bt_size_inter_slices especifica o valor inicial da diferença entre o tamanho de CTB de luma e o tamanho de luma máximo (largura ou altura) no SPS de um bloco de codificação que pode ser dividido usando uma divisão binária em fatias com slice_type igual a 0 (B) ou 1 (P) com referência ao SPS, a menos que o valor inicial das diferenças entre o tamanho de CTB de luma e o tamanho máximo de luma (largura ou altura) no SPS de um bloco de codificação que pode ser dividido usando uma divisão binária sejam substituídas pelo diferenças entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária presente no cabeçalho de fatia das fatias referentes ao SPS. O valor de log2_diff_ctu_max_bt_size estará na faixa de 0 a CtbLog2SizeY - MinCbLog2SizeY, inclusive. Quando não está presente, se o sps_btt_enabled_flag for igual a 1 o valor de sps_log2_diff_ctu_max_bt_size_inter_slices é inferido ser igual a 0.
[0365] Ou então o valor de sps_log2_diff_ctu_max_bt_size_inter_slices é inferido ser igual a CtbLog2SizeY - MinCbLog2SizeY.
[0366] Semântica de cabeçalho de fatia modificada (Seção 7.4.4 de [JVET-K1001-v4])
[0367] partition_constraint_override_flag igual a 1 especifica que parâmetros de restrição de partição estão presentes no cabeçalho de fatia. partition_constraint_override_flag igual a 0 especifica que os parâmetros de restrições de partição não estão presentes no cabeçalho de fatia. Quando não estão presentes, o valor de partition_constraints_override_flag é inferido ser igual a 0.
[0368] slice_btt_enabled_flag igual a 1 especifica que a operação da partição de árvore de múltiplos tipos é aplicada para a fatia corrente. slice_btt_enabled_flag igual a 0 especifica que a operação da partição de árvore de múltiplos tipos não é aplicada para a fatia corrente. Quando slice_btt_enabled_flag não está presente, é inferido ser igual a sps_btt_enabled_flag.
[0369] log2_min_qt_size_minus2 mais 2 especifica o tamanho de luma mínimo de um bloco de folha resultante de divisão de árvore quaternária de uma CTU para a fatia corrente. O valor de log2_min_qt_size_inter_slices_minus2 estará na faixa de 0 a CtbLog2SizeY - 2, inclusive. Quando não estão presentes, os valores de log2_min_qt_size_minus2 são inferidos serem iguais a sps_log2_min_qt_size_intra_slices_minus2 com slice_type igual a 2 (I) e inferidos serem iguais a sps_log2_min_qt_size_inter_slices_minus2 com slice_type igual a 0 (B) ou 1 (P).
[0370] max_mtt_hierarchy_depth especifica a profundidade de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária para a fatia corrente. O valor de max_mtt_hierarchy_depth_intra_slices estará na faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, inclusive. Quando não estão presentes, os valores de max_mtt_hierarchy_depth são inferidos serem iguais a sps_max_mtt_hierarchy_depth_intra_slices com slice_type igual a 2 (I) e inferidos serem iguais a sps_max_mtt_hierarchy_depth_inter_slices com slice_type 1 (B) ou igual a 0 (B).
[0371] log2_diff_ctu_max_bt_size especifica a diferença entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária para a fatia corrente. O valor de log2_diff_ctu_max_bt_size estará na faixa de 0 a CtbLog2SizeY - MinCbLog2SizeY, inclusive. Quando não estão presentes, os valores de log2_diff_ctu_max_bt_size são inferidos serem iguais a sps_log2_diff_ctu_max_bt_size_intra_slices com slice_type igual a 2 (I) e inferidos serem iguais a sps_log2_diff_ctu_max_bt_size_inter_slices com slice_type igual a 0 (B) ou 1 (P).
[0372] As variáveis MinQtLog2SizeY, MaxBtLog2SizeY, MinBtLog2SizeY, MaxTtLog2SizeY, MinTtLog2SizeY, MaxBtSizeY, MinBtSizeY, MaxTtSizeY, MinTtSizeY e MaxMttDepth são derivados como segue:
[0373] Na modalidade 3 da revelação:
[0374] Se o MaxTTSizeY (tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão ternária) é sinalizado em SPS (ou outro conjunto de parâmetros ou cabeçalho de Fatia), a modalidade 1 ou modalidade 2 pode ser aplicada da mesma maneira que para os outros parâmetros de partição mencionados acima.
[0375] Vantagem da técnica: A invenção para a sinalização do indicador dos elementos de sintaxe MaxTtSizeY garante que haja mais flexibilidade no controle dos elementos.
[0376] Tanto o codificador quanto a decodificação fazem as mesmas (correspondentes) operações.
[0377] As mudanças de sintaxe são com base na modalidade 1 ou modalidade 2.
[0378] Sintaxe RBSP de conjunto de parâmetros de Sequência Modificada (Seção 7.3.2.1 de [JVET-K1001-v4])
[0379] Sintaxe de cabeçalho de Fatia Modificada (Seção 7.3.3 de [JVET-K1001-v4]) (BB): Cabeçalho de fatia básica preliminar, sujeito a estudos adicionais e desenvolvimento de especificação adicional pendente.
[0380] Na modalidade 4 da revelação:
[0381] Separar o btt_enabled_flag da modalidade 2 como bt_enalbed_flag e tt_eabled_flag para habilitar ou desabilitar a divisão bt e tt separadamente.
[0382] Vantagem da técnica: sinalizar o sinalizador de habilitação de BT e sinalizador de habilitação de TT separadamente fornece mais flexibilidade para controlar os elementos de sintaxe de restrição de partição.
[0383] Tanto o codificador quanto a decodificação fazem as mesmas (correspondentes) operações.
[0384] A sintaxe e mudanças semânticas com base na modalidade 2:
[0385] Sintaxe RBSP de conjunto de parâmetros de Sequência Modificada (Seção 7.3.2.1 de [JVET-K1001-v4]) [Ed. (BB): SPS básico preliminar, sujeito a estudo adicional e desenvolvimento de especificação adicional pendente.]
[0386] Sintaxe do cabeçalho do Slice modificado (Seção 7.3.3 de [JVET-K1001-v4]) [Ed. (BB): Cabeçalho de fatia básica preliminar, sujeito a estudos adicionais e desenvolvimento de especificação adicional pendente.]
[0387] Semântica RBSP de conjunto de parâmetros de sequência (Seção 7.4.3.1 de [JVET-K1001-v4])
[0388] partition_constraint_control_present_flag igual a 1 especifica a presença de elementos de sintaxe de controle de restrição de partição no SPS. partition_constraint_control_present_flag igual a 0 especifica a ausência de elementos de sintaxe de controle de restrição de partição no SPS.
[0389] sps_bt_enabled_flag igual a 1 especifica que a operação da partição de árvore binária é aplicada a fatias que se referem ao SPS nas quais slice_bt_enable_flag não está presente. sps_bt_enabled_flag igual a 0 especifica que a operação da partição de árvore binária não é aplicada a fatias que se referem ao SPS nas quais slice_bt_enable_flag não está presente. Quando não está presente, o valor de sps_bt_enabled_flag é inferido ser igual a 1.
[0390] sps_tt_enabled_flag igual a 1 especifica que a operação da partição de árvore ternária é aplicada a fatias referentes ao SPS em que slice_tt_enable_flag não está presente. sps_tt_enabled_flag igual a 0 especifica que a operação da partição de árvore ternária não é aplicada a fatias que se referem ao SPS nas quais slice_tt_enable_flag não está presente. Quando não está presente, o valor de sps_tt_enabled_flag é inferido ser igual a 1.
[0391] partition_constraint_override_enabled_flag igual a 1 especifica a presença de partition_constraint_override_flag nos cabeçalhos de fatia para fatias que se referem ao SPS. partition_constraint_override_enabled_flag igual a 0 especifica a ausência de partition_constraint_override_flag nos cabeçalhos de fatia para fatias que se referem ao SPS. Quando não está presente, o valor de partition_constraint_override_enabled_flag é inferido ser igual a 0.
[0392] sps_log2_min_qt_size_intra_slices_minus2 mais 2 especifica o tamanho de luma mínimo padrão de um bloco de folha resultante de divisão de árvore quaternária de uma CTU em fatias com slice_type igual a 2 (I) com referências ao SPS, a menos que os tamanhos de luma mínimos padrão de um bloco de folha resultante de divisão de árvore quaternária de uma CTU sejam substituídos pelos tamanhos de luma mínimos de um bloco de folha resultante de divisão de árvore quaternária de uma CTU presente no cabeçalho de fatia das fatias referentes ao SPS. O valor de log2_min_qt_size_intra_slices_minus2 estará na faixa de 0 a CtbLog2SizeY - 2, inclusive. Quando não está presente, o valor de sps_log2_min_qt_size_intra_slices_minus2 é inferido ser igual a 0. [MinQtLog2SizeIntraY = log2_min_qt_size_intra_slices_minus2 + 2 (7-22)
[0393] sps_log2_min_qt_size_inter_slices_minus2 mais 2 especifica o tamanho de luma mínimo padrão de um bloco de folha resultante de divisão de árvore quaternária de uma CTU em fatias com slice_type igual a 0 (B) ou 1 (P) com referência ao SPS, a menos que os tamanhos de luma mínimos padrão de um bloco de folha resultante de divisão de árvore quaternária de uma CTU sejam substituídos pelos tamanhos de luma mínimos de um bloco de folha resultante de divisão de árvore quaternária de uma CTU presente no cabeçalho de fatia das fatias referentes ao SPS. O valor de log2_min_qt_size_inter_slices_minus2 estará na faixa de 0 a CtbLog2SizeY - 2, inclusive. Quando não está presente, o valor de sps_log2_min_qt_size_inter_slices_minus2 é inferido ser igual a 0. MinQtLog2SizeInterY = log2_min_qt_size_inter_slices_minus2 + 2 (723)
[0394] sps_max_mtt_hierarchy_depth_inter_slices especifica a profundidade de hierarquia máxima padrão para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 0 (B) ou 1 (P) com referência ao SPS, a menos que as profundidades de hierarquia máxima padrão para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária sejam substituídas pelas profundidades de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária presente no cabeçalho de fatia das fatias que se referem ao SPS. O valor de max_mtt_hierarchy_depth_inter_slices estará na faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, inclusive. Quando não está presente, se sps_bt_enabled_flag é igual a 1 ou sps_tt_enabled_flag é igual a 1 o valor de sps_max_mtt_hierarchy_depth_inter_slices é inferido ser igual a 3.
[0395] Caso contrário o valor de sps_max_mtt_hierarchy_depth_inter_slices é inferido ser igual a 0.
[0396] sps_max_mtt_hierarchy_depth_intra_slices especifica a profundidade de hierarquia máxima padrão para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 2 (I) com referência ao SPS, a menos que as profundidades de hierarquia máxima padrão para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária sejam substituídas pelas profundidades de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária presente no cabeçalho de fatia das fatias que se referem ao SPS. O valor de max_mtt_hierarchy_depth_intra_slices estará na faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, inclusive. Quando não está presente, se o sps_btt_enabled_flag é igual a 1 sps_tt_enabled_flag é igual a 1 o valor de sps_max_mtt_hierarchy_depth_intra_slices é inferido ser igual a 3.
[0397] Caso contrário o valor de sps_max_mtt_hierarchy_depth_intra_slices é inferido ser igual a 0.
[0398] sps_log2_diff_ctu_max_bt_size_intra_slices especifica a diferença padrão entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária em fatias com slice_type igual a 2 (I) com referência ao SPS, a menos que as diferenças padrão entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária sejam substituídas pelas diferenças entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura ) de um bloco de codificação que pode ser dividido usando uma divisão binária presente no cabeçalho de fatia das fatias referentes ao SPS. O valor de log2_diff_ctu_max_bt_size estará na faixa de 0 a CtbLog2SizeY - MinCbLog2SizeY, inclusive. Quando não está presente, se sps_bt_enabled_flag é igual a 1 o valor de sps_log2_diff_ctu_max_bt_size_intra_slices é inferido ser igual a 2.
[0399] Caso contrário o valor de sps_log2_diff_ctu_max_bt_size_intra_slices é inferido ser igual a CtbLog2SizeY - MinCbLog2SizeY.
[0400] sps_log2_diff_ctu_max_bt_size_inter_slices especifica a diferença padrão entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária em fatias com slice_type igual a 0 (B) ou 1 (P) com referência ao SPS, a menos que as diferenças padrão entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária sejam substituídas pelas diferenças entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária presente no cabeçalho de fatia das fatias referentes ao SPS. O valor de log2_diff_ctu_max_bt_size estará na faixa de 0 a CtbLog2SizeY - MinCbLog2SizeY, inclusive. Quando não está presente, se sps_bt_enabled_flag é igual a 1 o valor de sps_log2_diff_ctu_max_bt_size_inter_slices é inferido ser igual a 0.
[0401] Caso contrário o valor de sps_log2_diff_ctu_max_bt_size_inter_slices é inferido ser igual a CtbLog2SizeY - MinCbLog2SizeY.
[0402] sps_log2_diff_ctu_max_tt_size_intra_slices especifica a diferença padrão entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão ternária em fatias com slice_type igual a 2 (I) com referência ao SPS, a menos que as diferenças padrão entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão ternária sejam substituídas pelas diferenças entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura ) de um bloco de codificação que pode ser dividido usando uma divisão ternária presente no cabeçalho de fatia das fatias referentes ao SPS. O valor de sps_log2_diff_ctu_max_tt_size estará na faixa de 0 a CtbLog2SizeY - MinCbLog2SizeY, inclusive. Quando não está presente, se sps_tt_enabled_flag é igual a 1 o valor de sps_log2_diff_ctu_max_tt_size_intra_slices é inferido ser igual a 2.
[0403] Caso contrário o valor de sps_log2_diff_ctu_max_tt_size_intra_slices é inferido ser igual a CtbLog2SizeY - MinCbLog2SizeY.
[0404] sps_log2_diff_ctu_max_tt_size_inter_slices especifica a diferença padrão entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão ternária em fatias com slice_type igual a 0 (B) ou 1 (P) com referência ao SPS, a menos que as diferenças padrão entre o tamanho de CTB de luma e o tamanho máximo de luma (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão ternária sejam substituídas pelas diferenças entre o tamanho de CTB de luma e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão ternária presente no cabeçalho de fatia das fatias referentes ao SPS. O valor de log2_diff_ctu_max_tt_size estará na faixa de 0 a CtbLog2SizeY - MinCbLog2SizeY, inclusive. Quando não está presente, se sps_tt_enabled_flag é igual a 1 o valor de sps_log2_diff_ctu_max_tt_size_inter_slices é inferido ser igual a 1.
[0405] Caso contrário o valor de sps_log2_diff_ctu_max_tt_size_inter_slices é inferido ser igual a CtbLog2SizeY - MinCbLog2SizeY. ...
[0406] Semântica de cabeçalho de Fatia Modificada (Seção 7.4.4 de [JVET-K1001-v4]) ...
[0407] partition_constraint_override_flag igual a 1 especifica que parâmetros de restrição de partição estão presentes no cabeçalho de fatia. partition_constraint_override_flag igual a 0 especifica que parâmetros de restrições de partição não estão presentes no cabeçalho de fatia. Quando não está presente, o valor de parititon_constraints_override_flag é inferido ser igual a 0.
[0408] slice_btt_enabled_flag igual a 1 especifica que a operação da partição de árvore de múltiplos tipos não é aplicada à fatia corrente. slice_btt_enabled_flag igual a 0 especifica que a operação da partição de árvore de múltiplos tipos é aplicada à fatia corrente. Quando slice_btt_enabled_flag não está presente, ele é inferido ser igual a sps_btt_enabled_flag.
[0409] log2_min_qt_size_minus2 mais 2 especifica o tamanho de luma mínimo de um bloco de folha resultante de divisão de árvore quaternária de uma CTU para a fatia corrente. O valor de log2_min_qt_size_inter_slices_minus2 estará na faixa de 0 a CtbLog2SizeY - 2, inclusive. Quando não estão presentes, os valores de log2_min_qt_size_minus2 é inferido ser igual a sps_log2_min_qt_size_intra_slices_minus2 com slice_type igual a 2 (I) e inferidos serem iguais a sps_log2_min_qt_size_inter_slices_minus2 com slice_type igual a 0 (B) ou 1 (P).
[0410] max_mtt_hierarchy_depth especifica a profundidade de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária para a fatia corrente. O valor de max_mtt_hierarchy_depth_intra_slices estará na faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, inclusive. Quando não estão presentes, os valores de max_mtt_hierarchy_depth são inferidos serem iguais a sps_max_mtt_hierarchy_depth_intra_slices com slice_type igual a 2 (I) e inferidos serem iguais a sps_max_mtt_hierarchy_depth_inter_slices com slice_type 1 (B) ou igual a 0 (B).
[0411] log2_diff_ctu_max_bt_size especifica a diferença entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária para a fatia corrente. O valor de log2_diff_ctu_max_bt_size estará na faixa de 0 a CtbLog2SizeY - MinCbLog2SizeY, inclusive. Quando não estão presentes, os valores de log2_diff_ctu_max_bt_size são inferidos serem iguais a sps_log2_diff_ctu_max_bt_size_intra_slices com slice_type igual a 2 (I) e inferidos serem iguais a sps_log2_diff_ctu_max_bt_size_inter_slices com slice_type igual a 0 (B) ou 1 (P).
[0412] log2_diff_ctu_max_tt_size especifica a diferença entre o tamanho de luma de CTB e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária para a fatia corrente. O valor de log2_diff_ctu_max_tt_size estará na faixa de 0 a CtbLog2SizeY - MinCbLog2SizeY, inclusive. Quando não estão presentes, os valores de log2_diff_ctu_max_tt_size são inferidos serem iguais a sps_log2_diff_ctu_max_tt_size_intra_slices com slice_type igual a 2 (I) e inferidos serem iguais a sps_log2_diff_ctu_max_tt_size_inter_slices com slice_type igual a 0 (B) ou 1 (P).
[0413] As variáveis MinQtLog2SizeY, MaxBtLog2SizeY, MinBtLog2SizeY, MaxTtLog2SizeY, MinTtLog2SizeY, MaxBtSizeY, MinBtSizeY, MaxTtSizeY, MinTtSizeY e MaxMttDepth são derivadas como segue:
[0414] A Figura 10 mostra o método correspondente de decodificação de um fluxo de bits de vídeo implementado por um dispositivo de decodificação, em que o fluxo de bits de vídeo inclui dados que representam uma região de imagem e um cabeçalho de região de imagem da região de imagem. O método de decodificação compreende as etapas de obter S110 um sinalizador de substituição (partition_constraint_override_flag) a partir do fluxo de bits de vídeo; quando o valor do sinalizador de substituição for um valor substituto (por exemplo, 1), obter S120 primeiras informações de restrição de partição para a região de imagem a partir do cabeçalho de região de imagem; particionar S130 um bloco da região de imagem de acordo com as primeiras informações de restrição de partição. Se o sinalizador não estiver estabelecido, as informações de restrição de partição podem ser obtidas a partir de uma fonte diferente do cabeçalho de região de imagem. A região de imagem pode ser fatia ou tile.
[0415] A Figura 11 mostra um fluxograma que incorpora o fluxograma da Figura 10. Além disso, o método ilustrado no fluxograma inclui as etapas de obter S210 um sinalizador habilitado de substituição (partition_constraint_override_enabled_flag) a partir do fluxo de bits de vídeo; em que quando o valor do sinalizador habilitado de substituição é um valor de habilitação (por exemplo, 1), obter S110 o sinalizador de substituição a partir do fluxo de bits de vídeo. Além disso, quando o valor do sinalizador de substituição não for o valor substituto (por exemplo, o valor do sinalizador de substituição é 0), a partição S230 do bloco da região de imagem pode ser realizado de acordo com segundas informações de restrição de partição para o fluxo de bits de vídeo a partir do conjunto de parâmetros. Além disso, quando o valor do sinalizador habilitado de substituição é um valor de desabilitação (por exemplo, o valor do sinalizador habilitado de substituição é 0), a partição S230 do bloco da região de imagem pode ser realizada de acordo com as segundas informações de restrição de partição para o fluxo de bits de vídeo a partir do conjunto de parâmetros.
[0416] Para recursos específicos nas modalidades da presente invenção, fazer referência às modalidades de método de decodificação relacionadas acima. Detalhes não são descritos no presente documento novamente.
[0417] A Figura 12 mostra um decodificador 1200 para decodificar um fluxo de bits de vídeo. O fluxo de bits de vídeo inclui dados que representam uma região de imagem e um cabeçalho de região de imagem da região de imagem. O decodificador compreende: uma unidade de determinação de substituição 1210 para obter um sinalizador de substituição a partir do fluxo de bits de vídeo; uma unidade de determinação de restrição de partição 1220 para, quando o valor do sinalizador de substituição for um valor substituto, obter as primeiras informações de restrição de partição para a região de imagem a partir do cabeçalho de região de imagem; uma unidade de partição de bloco 1230 para particionar um bloco da região de imagem de acordo com as primeiras informações de restrição de partição.
[0418] Para funções específicas de unidades no decodificador 1200 nas modalidades da presente invenção, fazer referência às descrições relacionadas da modalidade de método de decodificação da presente invenção. Detalhes não são descritos no presente documento novamente.
[0419] As unidades no decodificador 1200 podem ser implementadas por software ou circuito.
[0420] O decodificador 1200 pode ser o decodificador 30, dispositivo de codificação de vídeo 400 ou aparelho 500, ou parte do decodificador 30, dispositivo de codificação de vídeo 400, ou aparelho 500.
[0421] O codificador 1300 pode ser o codificador 20, dispositivo de codificação de vídeo 400, ou aparelho 500, ou parte do codificador 20, dispositivo de codificação de vídeo 400 ou aparelho 500.
[0422] A Figura 13 mostra um codificador 1300 para codificação de um fluxo de bits de vídeo, em que o fluxo de bits de vídeo inclui dados que representam uma região de imagem e um cabeçalho de região de imagem da região de imagem. O codificador compreende: uma unidade de determinação de partição 1310 para determinar se a partição de um bloco da região de imagem está ou não de acordo com primeiras informações de restrição de partição no cabeçalho de região de imagem; uma unidade de partição de bloco 1320 para particionar um bloco da região de imagem de acordo com primeiras informações de restrição de partição, ao determinar que particionar o bloco está de acordo com as primeiras informações de restrição de partição; uma unidade de estabelecimento de sinalizador de substituição 1330 para estabelecer o valor de um sinalizador de substituição como um valor substituto; e um gerador de fluxo de bits 1340 para inserir o sinalizador de substituição no fluxo de bits de vídeo.
[0423] Para funções específicas de unidades no codificador 1300 nas modalidades da presente invenção, fazer referência às descrições relacionadas da modalidade de método de codificação da presente invenção. Detalhes não são descritos no presente documento novamente.
[0424] As unidades no codificador 1300 podem ser implementadas por software ou circuito.
[0425] O codificador 1300 pode ser o codificador 20, dispositivo de codificação de vídeo 400 ou aparelho 500, ou parte do codificador 20, dispositivo de codificação de vídeo 400, ou aparelho 500.
[0426] sps_max_mtt_hierarchy_depth_intra_slices especifica a profundidade de hierarquia máxima padrão para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 2 (I) com referência ao SPS, a menos que as profundidades de hierarquia máxima padrão para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária sejam substituídas pelas profundidades de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária presente no cabeçalho de fatia das fatias que se referem ao SPS. O valor de max_mtt_hierarchy_depth_intra_slices estará na faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, inclusive.
[0427] A Figura 14A mostra um diagrama de fluxo de um método para codificação de um fluxo de bits de vídeo implementado por um dispositivo de codificação, em que o fluxo de bits de vídeo inclui dados que representam uma região de imagem e um cabeçalho de região de imagem da região de imagem. O método de codificação compreende as etapas de: determinar S310 se particionar um bloco da região de imagem está ou não de acordo com as primeiras informações de restrição de partição no cabeçalho de região de imagem; ao determinar que particionar o bloco está de acordo com as primeiras informações de restrição de partição ("sim" na etapa S310), particionar S320 o bloco da região de imagem de acordo com as primeiras informações de restrição de partição e estabelecer S325 o valor de um sinalizador de substituição como um valor substituto; e incluir S330 os dados do sinalizador de substituição no fluxo de bits de vídeo.
[0428] Em algumas modalidades exemplificativas, ao determinar que particionar o bloco não está de acordo com as primeiras informações de restrição de partição ("não"na etapa S310), particionar S360 o bloco da região de imagem de acordo com segundas informações de restrição de partição e estabelecer S365 o valor de um sinalizador de substituição como um valor substituto.
[0429] A Figura 14B mostra um método de codificação que compreende as etapas de: determinar S370 se particiona ou não o bloco de acordo com as primeiras informações de restrição de partição está habilitado. Ao determinar que particionar o bloco de acordo com as primeiras informações de restrição de partição é (determinado que seja) habilitado, o método inclui estabelecer S340 o valor de um sinalizador habilitado de substituição como um valor de habilitação; e incluir S350 os dados do sinalizador habilitado de substituição no fluxo de bits de vídeo. Além disso, ao determinar que particionar o bloco de acordo com as primeiras informações de restrição de partição é (determinado que seja) habilitado, determinar S310 se particionar um bloco da região de imagem está ou não de acordo com as primeiras informações de restrição de partição no cabeçalho de região de imagem.
[0430] Em algumas modalidades exemplificativas, ao determinar que particionar o bloco de acordo com as primeiras informações de restrição de partição está (determinado que seja) não habilitado (isto é, está desabilitado), o método inclui estabelecer S380 o valor de um sinalizador habilitado de substituição como um valor de não habilitação (desabilitação).
[0431] Para recursos específicos nas modalidades da presente invenção, fazer referência às modalidades de método de decodificação relacionadas acima. Detalhes não são descritos no presente documento novamente.
[0432] A seguir se encontra uma explicação das aplicações do método de codificação, bem como do método de decodificação conforme mostrado nas modalidades acima mencionadas, e um sistema que as usa.
[0433] A Figura 14 é um diagrama de blocos mostrando um sistema de fornecimento de conteúdo 3100 para realizar o serviço de distribuição de conteúdo. Este sistema de fornecimento de conteúdo 3100 inclui dispositivo de captura 3102, dispositivo terminal 3106 e, opcionalmente, inclui exibidor 3126. O dispositivo de captura 3102 se comunica com o dispositivo terminal 3106 através do enlace de comunicação 3104. O enlace de comunicação pode incluir o canal de comunicação 13 descrito acima. O enlace de comunicação 3104 inclui, porém, sem limitação, a WIFI, Ethernet, Cabo, sem fio (3G/4G/5G), USB ou qualquer tipo de combinação dos mesmos, ou semelhantes.
[0434] O dispositivo de captura 3102 gera dados, e pode codificar os dados pelo método de codificação como mostrado nas modalidades acima. Alternativamente, o dispositivo de captura 3102 pode distribuir os dados para um servidor de streaming (não mostrado nas figuras), e o servidor codifica os dados e transmite os dados codificados para o dispositivo terminal 3106. O dispositivo de captura 3102 inclui, porém, sem limitação, a câmera, smartphone ou Pad, computador ou laptop, sistema de videoconferência, PDA, dispositivo montado em veículo, ou uma combinação de qualquer um deles, ou semelhantes. Por exemplo, o dispositivo de captura 3102 pode incluir o dispositivo de fonte 12, conforme descrito acima. Quando os dados incluem vídeo, o codificador de vídeo 20 incluído no dispositivo de captura 3102 pode realmente realizar processamento de codificação de vídeo. Quando os dados incluem áudio (isto é, voz), um codificador de áudio incluído no dispositivo de captura 3102 pode realmente realizar o processamento de codificação de áudio. Para alguns cenários práticos, o dispositivo de captura 3102 distribui os dados de vídeo e áudio codificados multiplexando os mesmos juntos. Para outros cenários práticos, por exemplo, no sistema de videoconferência, os dados de áudio codificados e os dados de vídeo codificados não são multiplexados. O dispositivo de captura 3102 distribui os dados de áudio codificados e os dados de vídeo codificados para o dispositivo terminal 3106 separadamente.
[0435] No sistema de fornecimento de conteúdo 3100, o dispositivo terminal 310 recebe e reproduz os dados codificados. O dispositivo terminal 3106 poderia ser um dispositivo com capacidade de recebimento e recuperação de dados, tal como smartphone ou Pad 3108, computador ou laptop 3110, gravador de vídeo em rede (NVR)/gravador de vídeo digital (DVR) 3112, TV 3114, conversor (set top box, STB) 3116, sistema de videoconferência 3118, sistema de vigilância por vídeo 3120, assistente digital pessoal (PDA) 3122, dispositivo montado em veículo 3124, ou uma combinação de qualquer um deles, ou semelhantes, com capacidade de decodificar os dados codificados acima mencionados. Por exemplo, o dispositivo terminal 3106 pode incluir o dispositivo de destino 14, conforme descrito acima. Quando os dados codificados incluem vídeo, o decodificador de vídeo 30 incluído no dispositivo terminal é priorizado para realizar a decodificação de vídeo. Quando os dados codificados incluem áudio, um decodificador de áudio incluído no dispositivo terminal é priorizado para realizar processamento de decodificação de áudio.
[0436] Para um dispositivo terminal com seu exibidor, por exemplo, smartphone ou Pad 3108, computador ou laptop 3110, gravador de vídeo em rede (NVR)/gravador de vídeo digital (DVR) 3112, TV 3114, assistente digital pessoal (PDA) 3122, ou dispositivo montado em veículo 3124, o dispositivo terminal pode alimentar os dados decodificados para seu exibidor. Para um dispositivo terminal equipado sem exibidor, por exemplo, STB 3116, sistema de videoconferência 3118 ou sistema de vigilância por vídeo 3120, um exibidor externo 3126 é contatado no mesmo para receber e mostrar os dados decodificados.
[0437] Quando cada dispositivo neste sistema realiza codificação ou decodificação, o dispositivo de codificação de figura ou o dispositivo de decodificação de figura, como mostrado nas modalidades mencionadas acima, pode ser usado.
[0438] A Figura 15 é um diagrama que mostra uma estrutura de um exemplo do dispositivo terminal 3106. Depois que o dispositivo terminal 3106 recebe fluxo a partir do dispositivo de captura 3102, a unidade de procedimento de protocolo 3202 analisa o protocolo de transmissão do fluxo. O protocolo inclui, porém, sem limitação, Protocolo de Transmissão por Streaming em Tempo Real (RTSP), Protocolo de Transferência de Hipertexto (HTTP), Protocolo de Transmissão por Streaming Ao Vivo HTTP (HLS), MPEG-DASH, Protocolo de Transporte em Tempo Real (RTP), Protocolo de Mensagem em Tempo Real (RTMP), ou qualquer tipo de combinação dos mesmos, ou semelhantes.
[0439] Depois que a unidade de procedimento de protocolo 3202 processa o fluxo, um arquivo de fluxo é gerado. O arquivo é emitido para uma unidade de demultiplexação 3204. A unidade de demultiplexação 3204 pode separar os dados multiplexados em dados de áudio codificados e dados de vídeo codificados. Conforme descrito acima, para alguns cenários práticos, por exemplo, no sistema de videoconferência, os dados de áudio codificados e os dados de vídeo codificados não são multiplexados. Nesta situação, os dados codificados são transmitidos para o decodificador de vídeo 3206 e decodificador de áudio 3208 sem através da unidade de demultiplexação 3204.
[0440] Via processamento de demultiplexação, fluxo elementar (ES) de vídeo, ES de áudio, e opcionalmente legenda são gerados. O decodificador de vídeo 3206, que inclui o decodificador de vídeo 30, conforme explicado nas modalidades mencionadas acima, decodifica o ES de vídeo pelo método de decodificação como mostrado nas modalidades mencionadas acima para gerar quadro de vídeo, e alimenta esses dados para a unidade síncrona 3212. O decodificador de áudio 3208 decodifica o ES de áudio para gerar quadro de áudio, e alimenta esses dados para a unidade síncrona 3212. Alternativamente, o quadro de vídeo pode armazenar em um buffer(não mostrado na Figura 15) antes de alimentar o mesmo para a unidade síncrona 3212. Da mesma forma, o quadro de áudio pode armazenar em um buffer(não mostrado na Figura 15) antes de alimentar o mesmo para a unidade síncrona 3212.
[0441] A unidade síncrona 3212 sincroniza o quadro de vídeo e o quadro de áudio e fornece o vídeo/áudio para um exibidor de vídeo/áudio 3214. Por exemplo, a unidade síncrona 3212 sincroniza a apresentação das informações de vídeo e áudio. As informações podem codificar na sintaxe usando carimbos de data/hora relativos à apresentação de dados de áudio e dados visuais codificados e carimbos de data/hora relativos à entrega do próprio fluxo de dados.
[0442] Se a legenda é incluída no fluxo, o decodificador de legenda 3210 decodifica a legenda, e sincroniza a mesma com o quadro de vídeo e o quadro de áudio, e fornece o vídeo/áudio/legenda para um exibidor de vídeo/áudio/legenda 3216.
[0443] A presente invenção não está limitada ao sistema acima mencionado, e ou o dispositivo de codificação de figura ou o dispositivo de decodificação de figura nas modalidades acima mencionadas pode ser incorporado em outro sistema, por exemplo, um sistema de carro.
[0444] Operadores Matemáticos
[0445] Os operadores matemáticos usados neste pedido são semelhantes aos usados na linguagem de programação C. No entanto, os resultados das operações de divisão por número inteiro e deslocamento aritmético são definidos mais precisamente, e operações adicionais são definidas, tais como exponenciação e divisão com valor real. As convenções de numeração e contagem de modo geral começam em 0, por exemplo, "o primeiro"é equivalente ao 0, "o segundo"é equivalente a 1, etc.
[0446] Operadores lógicos
[0447] Os seguintes operadores lógicos são definidos da seguinte forma: x && y Booleano lógico "e" de x e y x | | y Booleano lógico "ou" de x e y ! Booleano lógico "não" x? y: z Se x é VERDADEIRO ou diferente de 0, avalia para o valor de y; caso contrário, avalia para o valor de z.
[0448] Operadores relacionais
[0449] Os seguintes operadores relacionais são definidos da seguinte forma: > Maior que > = Maior ou igual a <Menor que <= Menor ou igual a = = Igual a ! = Não igual a
[0450] Quando um operador relacional é aplicado a um elemento de sintaxe ou variável ao (à) qual foi atribuído o valor "na"(não aplicável), o valor "na"é tratado como um valor distinto para o elemento de sintaxe ou variável. O valor "na"não é inferido ser igual a qualquer outro valor.
[0451] sps_max_mtt_hierarchy_depth_intra_slices especifica a profundidade de hierarquia máxima padrão para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 2 (I) com referência ao SPS, a menos que as profundidades de hierarquia máxima padrão para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária sejam substituídas pelas profundidades de hierarquia máxima para unidades de codificação resultantes de divisão de árvore de múltiplos tipos de uma folha de árvore quaternária presente no cabeçalho de fatia das fatias que se referem ao SPS. O valor de max_mtt_hierarchy_depth_intra_slices estará na faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, inclusive.
[0452] Operadores semelhantes a bit
[0453] Os seguintes operadores semelhantes a bit são definidos da seguinte forma: & Bit-wise "e". Ao operar com argumentos inteiros, opera em uma representação de complemento de dois do valor de número inteiro. Ao operar em um argumento binário que contém menos bits que um outro argumento, o argumento mais curto é estendido adicionando-se mais bits significativos iguais a 0. | Bit-wise "ou". Ao operar com argumentos inteiros, opera em uma representação de complemento de dois do valor de número inteiro. Ao operar em um argumento binário que contém menos bits que um outro argumento, o argumento mais curto é estendido adicionando-se mais bits significativos iguais a 0. A Bit-wise "exclusivo ou". Ao operar com argumentos inteiros, opera em uma representação de complemento de dois do valor de número inteiro. Ao operar em um argumento binário que contém menos bits que um outro argumento, o argumento mais curto é estendido adicionando-se mais bits significativos iguais a 0. x >> y Deslocamento aritmético para a direita de uma representação inteira em complemento de dois de x por y dígitos binários. Esta função é definida apenas para valores inteiros não negativos de y. Bits deslocados para os bits mais significativos (MSBs) como resultado do deslocamento à direita têm um valor igual ao MSB de x antes da operação de deslocamento. x << y Deslocamento aritmético para a esquerda de uma representação inteira em complemento de dois de x por y dígitos binários. Esta função é definida apenas para valores de número inteiro não negativos de y. Os bits deslocados para os bits menos significativos (LSBs) como resultado do deslocamento à esquerda têm um valor igual a 0.
[0454] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas ou transmitidas como uma ou mais instruções ou código em uma mídia legível por computador e executadas por uma unidade de processamento com base em hardware. Mídia legível por computador pode incluir mídia de armazenamento legível por computador, que corresponde a uma mídia tangível tal como mídia de armazenamento de dados, ou mídia de comunicação incluindo qualquer mídia que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Desta forma, a mídia legível por computador de modo geral pode corresponder a (1) mídia de armazenamento legível por computador tangível que é não transitória ou (2) uma mídia de comunicação, como um sinal ou onda portadora. A mídia de armazenamento de dados pode ser qualquer mídia disponível que pode ser acessada por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implementação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir uma mídia legível por computador.
[0455] Como um exemplo, e não como limitação, tal mídia de armazenamento legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético, ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outra mídia que pode ser usada para armazenar código de programa desejado na forma de instruções ou estruturas de dados e que pode ser acessada por um computador. Além disso, qualquer conexão é apropriadamente denominada mídia legível por computador. Por exemplo, se instruções são transmitidas de um site da web, servidor ou outra fonte remota usando um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio, tais como infravermelho, rádio e microondas,então o cabo coaxial, cabo de fibra óptica, par trançado, DSL ou tecnologias sem fio tais como infravermelho, rádio e micro-ondas, estão incluídos na definição de mídia. Deve ser entendido, no entanto, que mídias de armazenamento legíveis por computador e mídias de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outras mídias transitórias, mas são em vez disso direcionados para mídias de armazenamento não transitórias, tangíveis. Disco magnético e disco óptico, conforme usados aqui, inclui disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu-ray, onde os discos magnéticos de modo geral reproduzem dados magneticamente, enquanto os discos ópticos reproduzem dados opticamente com lasers. Combinações desses acima também devem ser incluídas no escopo da mídia legível por computador.
[0456] As instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), arranjos lógicos programáveis em campo (FPGAs), ou outro equivalente integrado ou circuitos lógicos discretos. Por conseguinte, o termo "processador", conforme usado no presente documento, pode se referir a qualquer uma das estruturas anteriores ou qualquer outra estrutura adequada para a implementação das técnicas descritas no presente documento. Além disso, em alguns aspectos, a funcionalidade descrita no presente documento pode ser fornecida em módulos de hardware e/ou software dedicados configurados para codificação e decodificação, ou incorporados em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[0457] As técnicas desta revelação podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho portátil sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta revelação para enfatizar aspectos funcionais de dispositivos configurados para realizar as técnicas reveladas, mas não necessariamente exigem realização por diferentes unidades de hardware. Em vez disso, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por uma coleção de unidades de hardware operantes entre si, incluindo um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequados.
[0458] Em um exemplo, é fornecido um método de codificação implementado por um dispositivo de codificação, compreendendo: particionar um bloco de uma região de imagem de acordo com informações de restrição de partição; gerar um fluxo de bits incluindo um ou mais elementos de sintaxe de restrição de partição, em que o um ou mais elementos de sintaxe de restrição de partição indicam as informações de restrição de partição, em que o um ou mais elementos de sintaxe de restrição de partição são sinalizados a um nível de conjunto de parâmetros de figura (PPS).
[0459] Por exemplo, as informações de restrição de partição compreendem um ou mais selecionados a partir dos seguintes: informações de tamanho de nó folha de árvore quaternária permitido mínimo (MinQtSizeY), informações de profundidade de árvore de múltiplos tipos máxima (MaxMttDepth), informações de tamanho de nó raiz de árvore binária permitido máximo (MaxBtSizeY) e informações de tamanho de nó raiz de árvore ternária permitido máximo (MaxTtSizeY).
[0460] Por exemplo, em algumas modalidades, as informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo (MinQtSizeY), informações de profundidade de árvore de múltiplos tipos máxima (MaxMttDepth) e informações de tamanho de nó raiz de árvore binária permitido máximo (MaxBtSizeY).
[0461] Em algumas modalidades, as informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo (MinQtSizeY), informações de profundidade de árvore de múltiplos tipos máxima (MaxMttDepth), informações de tamanho de nó raiz de árvore binária permitido máximo (MaxBtSizeY), e informações de tamanho de nó raiz de árvore ternária permitido máximo (MaxTtSizeY).
[0462] Em qualquer método mencionado acima, as informações de restrição de partição compreendem: N conjuntos ou grupos de informações de restrição de partição correspondentes a N tipos de fatias, ou N conjuntos ou grupos de informações de restrição de partição correspondentes a N índices de fatias, e em que cada conjunto ou grupo de informações de restrição de partição compreende um ou mais selecionados a partir dos seguintes: informações de tamanho de nó folha de árvore quaternária permitido mínimo (MinQtSizeY), informações de profundidade de árvore de múltiplos tipos máxima (MaxMttDepth), informações de tamanho de nó raiz de árvore binária permitido máximo (MaxBt SizeY) e informações de tamanho de nó raiz de árvore ternária permitido máximo (MaxTtSizeY); em que N é um número inteiro positivo.
[0463] O método pode compreender: particionar um bloco de uma região de imagem de acordo com informações de restrição de partição; e gerar um fluxo de bits incluindo uma pluralidade de elementos de sintaxe de restrição de partição, em que a pluralidade de elementos de sintaxe de restrição de partição indicam as informações de restrição de partição, em que a pluralidade de elementos de sintaxe de restrição de partição são sinalizados a um nível de conjunto de parâmetros ou um cabeçalho.
[0464] Por exemplo, a pluralidade de elementos de sintaxe de restrição de partição é sinalizada em qualquer um de um nível de conjunto de parâmetros de vídeo (VPS), um nível de conjunto de parâmetros de sequência (SPS), um nível de conjunto de parâmetros de figura (PPS), um cabeçalho de figura, um cabeçalho de fatia ou um cabeçalho de tile.
[0465] Em algumas implementações exemplificativas, as informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo (MinQtSizeY), informações de profundidade de árvore de múltiplos tipos máxima (MaxMttDepth), e informações de tamanho de nó raiz de árvore binária permitido máximo (MaxBtSizeY).
[0466] Por exemplo, as informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo (MinQtSizeY), informações de profundidade de árvore de múltiplos tipos máxima (MaxMttDepth), informações de tamanho de nó raiz de árvore binária permitido máximo (MaxBtSizeY) e informações de tamanho de nó raiz de árvore ternária permitido máximo (MaxTtSizeY).
[0467] Em algumas modalidades, as informações de restrição de partição compreendem duas ou mais selecionadas a partir das seguintes: informações de tamanho de nó folha de árvore quaternária permitido mínimo (MinQtSizeY), informações de profundidade de árvore de múltiplos tipos máxima (MaxMttDepth), informações de tamanho de nó raiz de árvore binária permitido máximo (MaxBtSizeY) e informações de tamanho de nó raiz de árvore ternária permitido máximo (MaxTtSizeY).
[0468] Por exemplo, as informações de restrição de partição compreendem: N conjuntos ou grupos de informações de restrição de partição correspondentes a N tipos de fatias, ou N conjuntos ou grupos de informações de restrição de partição correspondentes a N índices de fatias, e em que cada conjunto ou grupo de informações de restrição de partição compreendem dois ou mais selecionados a partir de: informações de tamanho de nó folha de árvore quaternária permitido mínimo (MinQtSizeY), informações de profundidade de árvore de múltiplos tipos máxima (MaxMttDepth), informações de tamanho de nó raiz de árvore binária permitido máximo (MaxBtSizeY), e informações de tamanho de nó raiz de árvore ternária permitido máximo (MaxTtSizeY); em que N é um número inteiro positivo.
[0469] De acordo com uma modalidade, é fornecido um método de decodificação implementado por um dispositivo de decodificação, compreendendo: analisar a partir de um fluxo de bits um ou mais elementos de sintaxe de restrição de partição, em que o um ou mais elementos de sintaxe de restrição de partição indicam informações de restrição de partição, em que o um ou mais elementos de sintaxe de restrição de partição são obtidos a partir de um nível de conjunto de parâmetros de figura (PPS) do fluxo de bits; e particionar um bloco de uma região de imagem de acordo com as informações de restrição de partição.
[0470] Em algumas implementações, as informações de restrição de partição compreendem uma ou mais selecionadas a partir das seguintes: informações de tamanho de nó folha de árvore quaternária permitido mínimo (MinQtSizeY), informações de profundidade de árvore de múltiplos tipos máxima (MaxMttDepth), informações de tamanho de nó raiz de árvore binária permitido máximo (MaxBtSizeY), e informações de tamanho de nó raiz de árvore ternária permitido máximo (MaxTtSizeY).
[0471] Por exemplo, as informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo (MinQtSizeY), informações de profundidade de árvore de múltiplos tipos máxima (MaxMttDepth), e informações de tamanho de nó raiz de árvore binária permitido máximo (MaxBtSizeY). As informações de restrição de partição podem incluir informações de tamanho de nó folha de árvore quaternária permitido mínimo (MinQtSizeY), informações de profundidade de árvore de múltiplos tipos máxima (MaxMttDepth), informações de tamanho de nó raiz de árvore binária permitido máximo (MaxBtSizeY), e informações de tamanho de nó raiz de árvore ternária permitido máximo (MaxTtSizeY).
[0472] Em algumas modalidades, as informações de restrição de partição compreendem: N conjuntos ou grupos de informações de restrição de partição correspondentes a N tipos de fatias, ou N conjuntos ou grupos de informações de restrição de partição correspondentes a N índices de fatias, e em que cada conjunto ou grupo de informações de restrição de partição compreendem um ou mais selecionados a partir de: informações de tamanho de nó folha de árvore quaternária permitido mínimo (MinQtSizeY), informações de profundidade de árvore de múltiplos tipos máxima (MaxMttDepth), informações de tamanho de nó raiz de árvore binária permitido máximo (MaxBtSizeY), e informações de tamanho de nó raiz de árvore ternária permitido máximo (MaxTtSizeY); em que N é um número inteiro positivo.
[0473] De acordo com uma modalidade, é fornecido um método de decodificação implementado por um dispositivo de decodificação, compreendendo: analisar a partir de um fluxo de bits uma pluralidade de elementos de sintaxe de restrição de partição, em que a pluralidade de elementos de sintaxe de restrição de partição indicam informações de restrição de partição, em que a pluralidade de elementos de sintaxe de restrição de partição são obtidos a partir de um nível de conjunto de parâmetros do fluxo de bits ou um cabeçalho do fluxo de bits; e particionar um bloco de uma região de imagem de acordo com as informações de restrição de partição.
[0474] Por exemplo, a pluralidade de elementos de sintaxe de restrição de partição é obtida a partir de qualquer um dentre um nível de conjunto de parâmetros de vídeo (VPS), um nível de conjunto de parâmetros de sequência (SPS), um nível de conjunto de parâmetros de figura (PPS), um cabeçalho de figura, um cabeçalho de fatia ou um cabeçalho de tile.
[0475] Por exemplo, as informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo (MinQtSizeY), informações de profundidade de árvore de múltiplos tipos máxima (MaxMttDepth), e informações de tamanho de nó raiz de árvore binária permitido máximo (MaxBtSizeY).
[0476] Em algumas modalidades, as informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo (MinQtSizeY), informações de profundidade de árvore de múltiplos tipos máxima (MaxMttDepth), informações de tamanho de nó raiz de árvore binária permitido máximo (MaxBtSizeY), e informações de tamanho de nó raiz de árvore ternária permitido máximo (MaxTtSizeY).
[0477] Em algumas implementações, as informações de restrição de partição compreendem duas ou mais selecionadas a partir das seguintes: informações de tamanho de nó folha de árvore quaternária permitido mínimo (MinQtSizeY), informações de profundidade de árvore de múltiplos tipos máxima (MaxMttDepth), informações de tamanho de nó raiz de árvore binária permitido máximo (MaxBtSizeY), e informações de tamanho de nó raiz de árvore ternária permitido máximo (MaxTtSizeY).
[0478] Por exemplo, as informações de restrição de partição compreendem: N conjuntos ou grupos de informações de restrição de partição correspondentes a N tipos de fatias, ou N conjuntos ou grupos de informações de restrição de partição correspondentes a N índices de fatias, e em que cada conjunto ou grupo de informações de restrição de partição compreendem dois ou mais itens selecionados a partir dos seguintes: informações de tamanho de nó folha de árvore quaternária permitido mínimo (MinQtSizeY), informações da profundidade de árvore de múltiplos tipos máxima (MaxMttDepth), informações de tamanho de nó raiz de árvore binária permitido máximo (MaxBtSizeY), e informações de tamanho de nó raiz de árvore ternária permitido máximo (MaxTtSizeY); em que N é um número inteiro positivo.
[0479] Em alguns exemplos, as informações de restrição de partição compreendem informações de restrição de partição correspondentes a diferentes tipos de fatias ou correspondentes a diferentes índices de fatias.
[0480] Por exemplo, as informações de restrição de partição compreendem informações de restrição de partição no modo intra e/ou informações de restrição de partição no modo inter.
[0481] Em qualquer das modalidades, a região de imagem compreende uma figura ou uma parte da figura.
[0482] Em algumas modalidades, quando um valor de um sinalizador habilitado de partição de árvore de múltiplos tipos do conjunto de parâmetros de figura (PPS) habilita partição de árvore de múltiplos tipos para o bloco, analisar informações de restrição de partição a partir do conjunto de parâmetros de figura e aplicar partição de árvore de múltiplos tipos ao bloco da região de imagem de acordo com as informações de restrição de partição.
[0483] De acordo com uma modalidade, um codificador é fornecido compreendendo circuitos de processamento para realizar qualquer dos métodos acima.
[0484] De acordo com uma modalidade, um decodificador é fornecido compreendendo circuitos de processamento para realizar qualquer dos métodos acima.
[0485] De acordo com uma modalidade, um produto de programa de computador é fornecido compreendendo um código de programa para realizar o método de acordo com qualquer dos métodos acima.
[0486] De acordo com uma modalidade, um decodificador é fornecido, compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar o método de acordo com qualquer um dos métodos de decodificação mencionados acima.
[0487] De acordo com uma modalidade, um codificador é fornecido, compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador para realizar o método de acordo com qualquer dos métodos de decodificação mencionados acima.
[0488] De acordo com um primeiro aspecto, a invenção refere-se a um método para decodificação de um fluxo de bits de vídeo implementado por um dispositivo de decodificação, em que o fluxo de bits de vídeo inclui dados que representam uma região de imagem e um cabeçalho de região de imagem da região de imagem, o método de decodificação compreendendo: Obter um sinalizador de substituição a partir do fluxo de bits de vídeo;
[0489] Quando o valor do sinalizador de substituição (por exemplo, partition_constraint_override_flag) for valor substituto, obter primeiras informações de restrição de partição para a região de imagem a partir do cabeçalho de região de imagem; Particionar um bloco da região de imagem de acordo com as primeiras informações de restrição de partição.
[0490] Em uma implementação possível, a partição de um bloco da região de imagem de acordo com as primeiras informações de restrição de partição compreende: particionar um bloco da região de imagem em sub-blocos de acordo com as primeiras informações de restrição de partição. O método de decodificação compreende adicionalmente: reconstruir os sub-blocos.
[0491] Em uma possível implementação, em que o método de decodificação compreende adicionalmente: Obter um sinalizador habilitado de substituição a partir do fluxo de bits de vídeo; Sendo que quando o valor do sinalizador habilitado de substituição (por exemplo, partition_constraint_override_enabled_flag) é um valor de habilitação, obter o sinalizador de substituição a partir do fluxo de bits de vídeo.
[0492] Em uma possível implementação, o método de decodificação compreende adicionalmente: Obter um sinalizador de controle de restrição de partição presente a partir do fluxo de bits de vídeo; Sendo que quando o valor do sinalizador de controle de restrição de partição presente (por exemplo, partition_constraint_control_present_flag) é verdadeiro, obter o sinalizador habilitado de substituição a partir do fluxo de bits de vídeo.
[0493] Em uma possível implementação, o fluxo de bits de vídeo adicionalmente incluindo dados que representam um conjunto de parâmetros do fluxo de bits de vídeo, e o valor do sinalizador de controle de restrição de partição presente é falso especifica a ausência de elementos de sintaxe de controle de restrição de partição no conjunto de parâmetros.
[0494] Em uma implementação possível, o conjunto de parâmetros é um conjunto de parâmetros de figura ou conjunto de parâmetros de sequência.
[0495] Em uma implementação possível, o fluxo de bits de vídeo adicionalmente inclui dados que representam um conjunto de parâmetros do fluxo de bits de vídeo, e o método de decodificação compreende adicionalmente: Quando o valor do sinalizador habilitado de substituição é um valor de desabilitação, particionar o bloco da região de imagem de acordo com segundas informações de restrição de partição para o fluxo de bits de vídeo a partir do conjunto de parâmetros.
[0496] Em uma implementação possível, as segundas informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo, informações de profundidade de árvore de múltiplos tipos máxima, informações de tamanho de nó raiz de árvore ternária permitido máximo, ou informações tamanho de nó raiz de árvore binária permitido máximo.
[0497] Em uma implementação possível, as segundas informações de restrição de partição compreendem informações de restrição de partição correspondentes a diferentes parâmetros relacionados a regiões de imagem ou correspondentes a índice diferente.
[0498] Em uma implementação possível, as segundas informações de restrição de partição compreendem informações de restrição de partição no modo intra, ou informações de restrição de partição no modo inter.
[0499] Em uma implementação possível, as segundas informações de restrição de partição compreendem informações de restrição de partição para o bloco luma ou informações de restrição de partição para o bloco croma.
[0500] Em uma possível implementação, o fluxo de bits de vídeo adicionalmente inclui dados que representam um conjunto de parâmetros do fluxo de bits de vídeo, a obtenção de um sinalizador habilitado de substituição a partir do fluxo de bits de vídeo compreende obter o sinalizador habilitado de substituição a partir do conjunto de parâmetros.
[0501] Em uma implementação possível, a obtenção de um sinalizador de substituição a partir do fluxo de bits de vídeo compreende obter o sinalizador de substituição a partir do cabeçalho de região de imagem.
[0502] Em uma implementação possível, as primeiras informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo, informações de profundidade de árvore de múltiplos tipos máxima, informações de tamanho de nó raiz de árvore ternária permitido máximo ou informações de tamanho de nó raiz de árvore binária permitido máximo.
[0503] Em uma implementação possível, a região de imagem compreende uma fatia ou um tile, e o cabeçalho de região de imagem compreende um cabeçalho de fatia da fatia ou um cabeçalho de tile do tile.
[0504] Em uma possível implementação, em que o fluxo de bits de vídeo adicionalmente inclui dados que representam um conjunto de parâmetros do fluxo de bits de vídeo, o método de decodificação compreende adicionalmente: Quando o valor do sinalizador de substituição não for o valor substituto, particionar o bloco da região de imagem de acordo com segundas informações de restrição de partição para o fluxo de bits de vídeo a partir do conjunto de parâmetros.
[0505] Em uma implementação possível, quando um valor de um sinalizador habilitado de partição de árvore de múltiplos tipos (por exemplo, slice_btt_enabled_flag) a partir do cabeçalho de região de imagem habilita partição de árvore de múltiplos tipos para o bloco, obter as primeiras informações de restrição de partição e aplicar partição de árvore de múltiplos tipos ao bloco da região de imagem de acordo com as primeiras informações de restrição de partição.
[0506] Em uma implementação possível, o fluxo de bits de vídeo adicionalmente inclui dados que representam um conjunto de parâmetros do fluxo de bits de vídeo, quando o sinalizador habilitado de partição de árvore de múltiplos tipos a partir do cabeçalho de região de imagem não está presente e um valor de um sinalizador habilitado de partição de árvore de múltiplos tipos (por exemplo, sps_btt_enabled_flag) a partir do conjunto de parâmetros habilita a partição de árvore de múltiplos tipos para o bloco, habilita a partição de árvore de múltiplos tipos para o bloco, obter segundas informações de restrição de partição para o fluxo de bits de vídeo a partir do conjunto de parâmetros e aplicar partição de árvore de múltiplos tipos ao bloco da região de imagem de acordo com as segundas informações de restrição de partição.
[0507] De acordo com um segundo aspecto, a invenção refere-se a um método para decodificação de um fluxo de bits de vídeo implementado por um dispositivo de decodificação, em que o fluxo de bits de vídeo inclui dados que representam um bloco e um primeiro conjunto de parâmetros do fluxo de bits de vídeo, o método de decodificação compreendendo: Obter um sinalizador de substituição a partir do fluxo de bits de vídeo; Quando o valor do sinalizador de substituição for valor substituto, obter primeiras informações de restrição de partição para o bloco a partir do primeiro conjunto de parâmetros; Particionar o bloco de acordo com as primeiras informações de restrição de partição.
[0508] Em uma implementação possível, em que a partição do bloco de acordo com as primeiras informações de restrição de partição compreende: particionar o bloco em sub-blocos de acordo com as primeiras informações de restrição de partição. O método de decodificação compreende adicionalmente: reconstruir os sub-blocos.
[0509] Em uma possível implementação, em que o método de decodificação compreende adicionalmente: Obter um sinalizador habilitado de substituição a partir do fluxo de bits de vídeo; Sendo que quando o valor do sinalizador habilitado de substituição é um valor de habilitação, obter o sinalizador de substituição a partir do fluxo de bits de vídeo.
[0510] Em uma possível implementação, em que o método de decodificação compreende adicionalmente: Obter um sinalizador de controle de restrição de partição a partir do fluxo de bits de vídeo; Sendo que quando o valor do sinalizador de controle de restrição de partição presente é verdadeiro, obter o sinalizador habilitado de substituição a partir do fluxo de bits de vídeo.
[0511] Em uma possível implementação, em que o fluxo de bits de vídeo adicionalmente inclui dados que representam um segundo conjunto de parâmetros do fluxo de bits de vídeo, e o valor do sinalizador de controle de restrição de partição presente é falso especifica a ausência de elementos de sintaxe de controle de restrição de partição no conjunto de parâmetros.
[0512] Em uma implementação possível, em que o fluxo de bits de vídeo adicionalmente inclui dados que representam um segundo conjunto de parâmetros do fluxo de bits de vídeo, e o método de decodificação compreende adicionalmente: Quando o valor do sinalizador habilitado de substituição é um valor de desabilitação, particionar o bloco de acordo com segundas informações de restrição de partição para o fluxo de bits de vídeo a partir do segundo conjunto de parâmetros.
[0513] Em uma possível implementação, as segundas informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo, informações de profundidade de árvore de múltiplos tipos máxima, informações de tamanho de nó raiz de árvore ternária permitido máximo ou informações de tamanho máximo de nó raiz de árvore binária permitido.
[0514] Em uma implementação possível, as segundas informações de restrição de partição compreendem informações de restrição de partição correspondentes a diferentes parâmetros relacionados a regiões de imagem representadas pelo fluxo de bits de vídeo ou correspondentes a índice diferente.
[0515] Em uma implementação possível, as segundas informações de restrição de partição compreendem informações de restrição de partição no modo intra, ou informações de restrição de partição no modo inter.
[0516] Em uma possível implementação, as segundas informações de restrição de partição compreendem informações de restrição de partição para o bloco luma ou informações de restrição de partição para o bloco croma.
[0517] Em uma possível implementação, em que o fluxo de bits de vídeo adicionalmente inclui dados que representam um segundo conjunto de parâmetros do fluxo de bits de vídeo, a obtenção de um sinalizador habilitado de substituição a partir do fluxo de bits de vídeo compreende obter o sinalizador habilitado de substituição a partir do segundo conjunto de parâmetros
[0518] Em uma possível implementação, a obtenção de um sinalizador de substituição a partir do fluxo de bits de vídeo compreende obter o sinalizador de substituição a partir do primeiro conjunto de parâmetros.
[0519] Em uma implementação possível, as primeiras informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo, informações de profundidade de árvore de múltiplos tipos máxima, informações de tamanho de nó raiz de árvore ternária permitido máximo ou informações de tamanho de nó raiz de árvore binária permitido máximo.
[0520] Em uma implementação possível, em que o fluxo de bits de vídeo adicionalmente inclui dados que representam um segundo conjunto de parâmetros do fluxo de bits de vídeo; Sendo que o primeiro conjunto de parâmetros é um conjunto de parâmetros de figura e o segundo conjunto de parâmetros é um conjunto de parâmetros de sequência.
[0521] Em uma possível implementação, em que o fluxo de bits de vídeo adicionalmente inclui dados que representam um segundo conjunto de parâmetros do fluxo de bits de vídeo, o método de decodificação compreende adicionalmente: Quando o valor do sinalizador de substituição não for o valor substituto, particionar o bloco de acordo com segundas informações de restrição de partição para o fluxo de bits de vídeo a partir do segundo conjunto de parâmetros.
[0522] Em uma implementação possível, em que quando um valor de um sinalizador habilitado de partição de árvore de múltiplos tipos a partir do primeiro conjunto de parâmetros habilita a partição de árvore de múltiplos tipos para o bloco, obter primeiras informações de restrição de partição e aplicar partição de árvore de múltiplos tipos ao bloco de acordo com as primeiras informações de restrição de partição.
[0523] Em uma possível implementação, em que o fluxo de bits de vídeo adicionalmente inclui dados que representam um segundo conjunto de parâmetros do fluxo de bits de vídeo, quando o sinalizador habilitado de partição de árvore de múltiplos tipos a partir do primeiro conjunto de parâmetros não está presente e um valor de um sinalizador habilitado de partição de árvore de múltiplos tipos a partir do segundo conjunto de parâmetros habilita partição de árvore de múltiplos tipos para o bloco habilita a partição de árvore de múltiplos tipos para o bloco, obter segundas informações de restrição de partição para o fluxo de bits de vídeo a partir do segundo conjunto de parâmetros e aplicar partição de árvore de múltiplos tipos ao bloco de acordo com as segundas informações de restrição de partição.
[0524] De acordo com um terceiro aspecto, a invenção refere-se a um método para decodificação de um fluxo de bits de vídeo implementado por um dispositivo de decodificação, em que o fluxo de bits de vídeo inclui dados uma primeira região de imagem e um primeiro cabeçalho de região de imagem da primeira região de imagem, o método de decodificação compreendendo: Obter um sinalizador de substituição a partir do fluxo de bits de vídeo; Quando o valor do sinalizador de substituição for valor substituto, obter primeiras informações de restrição de partição para a primeira região de imagem a partir do primeiro cabeçalho de região de imagem; Particionar um bloco da primeira região de imagem de acordo com as primeiras informações de restrição de partição.
[0525] Em uma implementação possível, em que a partição do bloco da primeira região de imagem de acordo com as primeiras informações de restrição de partição compreende: particionar o bloco da primeira região de imagem em sub-blocos de acordo com as primeiras informações de restrição de partição. O método de decodificação compreende adicionalmente: reconstruir os sub-blocos.
[0526] Em uma possível implementação, em que o método de decodificação compreende adicionalmente: Obter um sinalizador habilitado de substituição a partir do fluxo de bits de vídeo; Sendo que quando o valor do sinalizador habilitado de substituição é um valor de habilitação, obter o sinalizador de substituição a partir do fluxo de bits de vídeo.
[0527] Em uma possível implementação, em que o método de decodificação compreende adicionalmente: Obter um sinalizador de controle de restrição de partição presente a partir do fluxo de bits de vídeo; Sendo que quando o valor do sinalizador de controle de restrição de partição presente é verdadeiro, obter o sinalizador habilitado de substituição a partir do fluxo de bits de vídeo.
[0528] Em uma implementação possível, em que o fluxo de bits de vídeo adicionalmente inclui dados que representam uma segunda região de imagem e um segundo cabeçalho de região de imagem da segunda região de imagem, e o valor do sinalizador de controle de restrição de partição presente é falso especifica a ausência de elementos de sintaxe de controle de restrição de partição no segundo cabeçalho de região de imagem.
[0529] Em uma possível implementação, em que o fluxo de bits de vídeo adicionalmente inclui dados que representam uma segunda região de imagem e um segundo cabeçalho de região de imagem da segunda região de imagem, e o método de decodificação compreende adicionalmente: Quando o valor do sinalizador habilitado de substituição é um valor de desabilitação, particionar o bloco da primeira região de imagem de acordo com segundas informações de restrição de partição para o fluxo de bits de vídeo a partir do segundo cabeçalho de região de imagem, em que a segunda região de imagem compreende o bloco da primeira região de imagem.
[0530] Em uma implementação possível, as segundas informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo, informações de profundidade de árvore de múltiplos tipos máxima, informações de tamanho de nó raiz de árvore ternária permitido máximo ou informações de tamanho de nó raiz de árvore binária permitido máximo.
[0531] Em uma implementação possível, as segundas informações de restrição de partição compreendem informações de restrição de partição correspondentes a diferentes parâmetros relacionados a regiões de imagem representadas pelo fluxo de bits de vídeo ou correspondentes a índice diferente.
[0532] Em uma implementação possível, as segundas informações de restrição de partição compreendem informações de restrição de partição no modo intra, ou informações de restrição de partição no modo inter.
[0533] Em uma implementação possível, as segundas informações de restrição de partição compreendem informações de restrição de partição para o bloco luma ou informações de restrição de partição para bloco croma.
[0534] Em uma implementação possível, em que o fluxo de bits de vídeo adicionalmente inclui dados que representam uma segunda região de imagem e um segundo cabeçalho de região de imagem da segunda região de imagem, a obtenção de um sinalizador habilitado de substituição a partir do fluxo de bits de vídeo compreende obter o sinalizador habilitado de substituição a partir do segundo cabeçalho de região de imagem.
[0535] Em uma implementação possível, a obtenção de um sinalizador de substituição a partir do fluxo de bits de vídeo compreende obter o sinalizador de substituição a partir do primeiro cabeçalho de região de imagem.
[0536] Em uma implementação possível, as primeiras informações de restrição de partição compreendem informações de tamanho de nó folha de árvore quaternária permitido mínimo, informações de profundidade de árvore de múltiplos tipos máxima, informações de tamanho de nó raiz de árvore ternária permitido máximo ou informações de tamanho de nó raiz de árvore binária permitido máximo.
[0537] Em uma implementação possível, em que o fluxo de bits de vídeo adicionalmente inclui dados que representam uma segunda região de imagem e um segundo cabeçalho de região de imagem da segunda região de imagem; Sendo que o primeiro cabeçalho de região de imagem é um cabeçalho de fatia e o segundo cabeçalho de região de imagem é um cabeçalho de tile, e a primeira região de imagem é uma fatia e a segunda região de imagem é um tile, e o tile compreende a fatia; ou, O primeiro cabeçalho de região de imagem é um cabeçalho de tile e o segundo cabeçalho de região de imagem é um cabeçalho de fatia, e a primeira região de imagem é um tile e a segunda região de imagem é uma fatia, e a fatia compreende o tile.
[0538] Em uma implementação possível, em que o fluxo de bits de vídeo adicionalmente inclui dados que representam uma segunda região de imagem e um segundo cabeçalho de região de imagem da segunda região de imagem, o método de decodificação compreende adicionalmente: Quando o valor do sinalizador de substituição não for o valor substituto, particionar o bloco da primeira região de imagem de acordo com segundas informações de restrição de partição para o fluxo de bits de vídeo a partir do segundo cabeçalho de região de imagem, em que a segunda região de imagem compreende o bloco da primeira região de imagem.
[0539] Em uma implementação possível, em que quando um valor de um sinalizador habilitado de partição de árvore de múltiplos tipos do primeiro cabeçalho de região de imagem habilita a partição de árvore de múltiplos tipos para o bloco, obter primeiras informações de restrição de partição e aplicar partição de árvore de múltiplos ao bloco da primeira região de imagem de acordo com as primeiras informações de restrição de partição.
[0540] Em uma possível implementação, em que o fluxo de bits de vídeo adicionalmente inclui dados que representam um segundo cabeçalho de região de imagem do fluxo de bits de vídeo, quando o sinalizador habilitado de partição de árvore de múltiplos tipos do primeiro cabeçalho de região de imagem não está presente e um valor de sinalizador habilitado de partição de árvore de múltiplos tipos a partir do segundo cabeçalho de região de imagem habilita partição de árvore de múltiplos tipos para o bloco habilita partição de árvore de múltiplos tipos para o bloco, obter segundas informações de restrição de partição para o fluxo de bits de vídeo a partir do segundo cabeçalho de região de imagem e aplicar partição de árvore de múltiplos tipos ao bloco da região de imagem de acordo com as segundas informações de restrição de partição.
[0541] De acordo com um quarto aspecto, a invenção refere-se a um aparelho para decodificar um fluxo de vídeo que inclui um processador e uma memória. A memória está armazenando instruções que fazem com que o processador realize o método de acordo com o primeiro aspecto, o segundo aspecto ou o terceiro aspecto, ou qualquer modalidade possível do primeiro aspecto, do segundo aspecto ou do terceiro aspecto.
[0542] De acordo com um quinto aspecto, é proposta uma mídia de armazenamento legível por computador tendo armazenadas na mesma instruções que quando executadas fazem um ou mais processadores configurados codificar dados de vídeo sejam propostos. As instruções fazem com que um ou mais processadores realizem um método de acordo com o primeiro aspecto, o segundo aspecto ou o terceiro aspecto, ou qualquer modalidade possível do primeiro aspecto, do segundo aspecto ou do terceiro aspecto.
[0543] De acordo com um sexto aspecto, a invenção refere-se a um programa de computador que compreende um código de programa para realizar o método de acordo com o primeiro aspecto, o segundo aspecto ou o terceiro aspecto, ou qualquer modalidade possível do primeiro aspecto, do segundo aspecto ou do terceiro aspecto quando executado em um computador.
[0544] Resumindo, a presente revelação fornece um aparelho de codificação e decodificação, bem como um método de codificação e decodificação. Em particular, a presente revelação se refere à partição de bloco e sinalização dos parâmetros de partição em um fluxo de bits. Um sinalizador de substituição em um cabeçalho de região de imagem indica se um bloco é ou não para ser particionado de acordo com primeiras informações de restrição de partição. O sinalizador de substituição é incluído no fluxo de bits e o bloco é particionado de acordo.

Claims (15)

1. Método para decodificar um fluxo de bits de vídeo implementado por um dispositivo de decodificação, CARACTERIZADO pelo fato de que compreende: obter um sinalizador habilitado de substituição a partir do fluxo de bits de vídeo; quando um valor do sinalizador habilitado de substituição for um valor de habilitação, obter um sinalizador de substituição a partir do fluxo de bits de vídeo, em que o fluxo de bits de vídeo compreende um cabeçalho de imagem de uma imagem, dados que representam uma fatia particionada a partir da imagem, e um conjunto de parâmetros de sequência (SPS), e em que o sinalizador de substituição indica se primeiras informações de restrição de partição estão presentes no cabeçalho de imagem; quando um valor do sinalizador de substituição for um valor substituto, obter um valor das primeiras informações de restrição de partição para a fatia a partir do cabeçalho de imagem; e particionar um bloco da fatia em uma pluralidade de sub-blocos de acordo com o valor obtido das primeiras informações de restrição de partição; quando o valor do sinalizador de substituição não for o valor substituto, particionar o bloco da fatia em uma pluralidade de sub-blocos de acordo com um valor padrão das primeiras informações de restrição de partição, em que o valor padrão das primeiras informações de restrição de partição é um valor de segundas informações de restrição de partição a partir do SPS; quando o valor do sinalizador habilitado de substituição for um valor de desabilitação, particionar o bloco da fatia de acordo com o valor das segundas informações de restrição de partição para o fluxo de bits de vídeo a partir do SPS; e reconstruir o bloco da fatia reconstruindo-se a pluralidade de sub- blocos.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que as segundas informações de restrição de partição compreendem uma ou mais dentre informações de tamanho de nó folha de quadtree permitido mínimo, informações de profundidade de árvore de múltiplos tipos máxima, informações de tamanho de nó de árvore ternária permitido máximo ou informações de tamanho de nó de árvore binária permitido máximo.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que as segundas informações de restrição de partição compreendem uma ou mais dentre informações de restrição de partição para blocos na fatia codificados em um modo intra, ou informações de restrição de partição para blocos na fatia codificados em um modo inter.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que as segundas informações de restrição de partição compreendem informações de restrição de partição para blocos luma na fatia, ou informações de restrição de partição para blocos croma na fatia.
5. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a obtenção do sinalizador de substituição a partir do fluxo de bits de vídeo compreende obter o sinalizador de substituição a partir do cabeçalho de imagem.
6. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que as primeiras informações de restrição de partição compreendem uma ou mais dentre informações de tamanho de nó folha de quadtree permitido mínimo, informações de profundidade de árvore de múltiplos tipos máxima, informações de tamanho de nó de árvore ternária permitido máximo ou informações de tamanho de nó de árvore binária permitido máximo.
7. Método para codificar uma imagem em um fluxo de bits de vídeo implementado por um dispositivo de codificação, CARACTERIZADO pelo fato de que compreende: determinar se particionar um bloco de uma fatia na imagem de acordo com primeiras informações de restrição de partição está habilitado; ao determinar que particionar o bloco de acordo com as primeiras informações de restrição de partição está habilitado, estabelecer o valor de um sinalizador habilitado de substituição como um valor de habilitação; e quando um valor de um sinalizador de substituição for um valor substituto, codificar um valor das primeiras informações de restrição de partição em um cabeçalho de imagem do fluxo de bits de vídeo; particionar o bloco em uma pluralidade de sub-blocos de acordo com o valor das primeiras informações de restrição de partição; e codificar o sinalizador de substituição com o valor substituto no fluxo de bits de vídeo; quando o valor do sinalizador de substituição não for o valor substituto, particionar o bloco em uma pluralidade de sub-blocos de acordo com um valor padrão das primeiras informações de restrição de partição, em que o valor padrão das primeiras informações de restrição de partição é um valor de segundas informações de restrição de partição; codificar o valor das segundas informações de restrição de partição em um conjunto de parâmetros de sequência (SPS) do fluxo de bits de vídeo; e codificar o sinalizador de substituição com um valor diferente do valor substituto no fluxo de bits de vídeo; ao determinar que particionar o bloco de acordo com as primeiras informações de restrição de partição não está habilitado, particionar o bloco de acordo com as segundas informações de restrição de partição e estabelecer o valor do sinalizador habilitado de substituição como um valor de desabilitação; e codificar o sinalizador habilitado de substituição no fluxo de bits.
8. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que as segundas informações de restrição de partição compreendem uma ou mais dentre informações de tamanho de nó folha de quadtree permitido mínimo, informações de profundidade de árvore de múltiplos tipos máxima, informações de tamanho de nó de árvore ternária permitido máximo ou informações de tamanho de nó de árvore binária permitido máximo.
9. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que as segundas informações de restrição de partição compreendem informações de restrição de partição para blocos na fatia que são codificados em um modo intra, ou informações de restrição de partição para blocos na fatia que são codificados em um modo inter.
10. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que as segundas informações de restrição de partição compreendem informações de restrição de partição para blocos luma na fatia, ou informações de restrição de partição para blocos croma na fatia.
11. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que o sinalizador de substituição está no cabeçalho de imagem.
12. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que as primeiras informações de restrição de partição compreendem uma ou mais dentre informações de tamanho de nó folha de quadtree permitido mínimo, informações de profundidade de árvore de múltiplos tipos máxima, informações de tamanho de nó de árvore ternária permitido máximo ou informações de tamanho de nó de árvore binária permitido máximo.
13. Mídia de armazenamento legível por computador não transitória CARACTERIZADA pelo fato de que é para armazenar dados associados a um vídeo, compreendendo: um fluxo de bits de vídeo armazenado em mídia de armazenamento legível por computador não transitória, em que o fluxo de bits de vídeo compreende um cabeçalho de imagem de uma imagem, e um conjunto de parâmetros de sequência (SPS) do fluxo de bits de vídeo, em que o fluxo de bits de vídeo compreende adicionalmente um sinalizador habilitado de substituição e um sinalizador de substituição, em que o sinalizador habilitado de substituição indica se particionar um bloco de uma fatia na imagem de acordo com primeiras informações de restrição de partição está habilitado, e em que o sinalizador de substituição indica se primeiras informações de restrição de partição estão presentes no cabeçalho de imagem, e as primeiras informações de restrição de partição são para substituir segundas informações de restrição de partição no SPS.
14. Decodificador, CARACTERIZADO pelo fato de que compreende: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada ao um ou mais processadores e armazenando instruções de programação para execução pelo um ou mais processadores, em que as instruções de programação, quando executadas pelo um ou mais processadores, configuram o decodificador para realizar operações compreendendo: obter um sinalizador habilitado de substituição a partir do fluxo de bits de vídeo; quando um valor do sinalizador habilitado de substituição for um valor de habilitação, obter um sinalizador de substituição a partir do fluxo de bits de vídeo, em que o fluxo de bits de vídeo compreende um cabeçalho de imagem de uma imagem, dados que representam uma fatia particionada a partir da imagem, e um conjunto de parâmetros de sequência (SPS), e em que o sinalizador de substituição indica se primeiras informações de restrição de partição estão presentes no cabeçalho de imagem; quando um valor do sinalizador de substituição for um valor substituto, obter um valor das primeiras informações de restrição de partição para a fatia a partir do cabeçalho de imagem; e particionar um bloco da fatia em uma pluralidade de sub-blocos de acordo com o valor obtido das primeiras informações de restrição de partição; quando o valor do sinalizador de substituição não for o valor substituto, particionar o bloco da fatia em uma pluralidade de sub-blocos de acordo com um valor padrão das primeiras informações de restrição de partição, em que o valor padrão das primeiras informações de restrição de partição é um valor de segundas informações de restrição de partição a partir do SPS; quando o valor do sinalizador habilitado de substituição for um valor de desabilitação, particionar o bloco da fatia de acordo com o valor das segundas informações de restrição de partição para o fluxo de bits de vídeo a partir do SPS; e reconstruir o bloco da fatia reconstruindo-se a pluralidade de sub- blocos.
15. Codificador, CARACTERIZADO pelo fato de que compreende: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada ao um ou mais processadores e armazenando instruções de programação para execução pelo um ou mais processadores, em que as instruções de programação, quando executadas pelo um ou mais processadores, configuram o codificador para realizar operações compreendendo: determinar se particionar um bloco de uma fatia na imagem de acordo com primeiras informações de restrição de partição está habilitado; ao determinar que particionar o bloco de acordo com as primeiras informações de restrição de partição está habilitado, estabelecer o valor de um sinalizador habilitado de substituição como um valor de habilitação; e quando um valor de um sinalizador de substituição for um valor substituto, codificar um valor das primeiras informações de restrição de partição em um cabeçalho de imagem do fluxo de bits de vídeo; particionar o bloco em uma pluralidade de sub-blocos de acordo com o valor das primeiras informações de restrição de partição; e codificar o sinalizador de substituição com o valor substituto no fluxo de bits de vídeo; quando o valor do sinalizador de substituição não for o valor substituto, particionar o bloco em uma pluralidade de sub-blocos de acordo com um valor padrão das primeiras informações de restrição de partição, em que o valor padrão das primeiras informações de restrição de partição é um valor de segundas informações de restrição de partição; codificar o valor das segundas informações de restrição de partição em um conjunto de parâmetros de sequência (SPS) do fluxo de bits de vídeo; e codificar o sinalizador de substituição com um valor diferente do valor substituto no fluxo de bits de vídeo; ao determinar que particionar o bloco de acordo com as primeiras informações de restrição de partição não está habilitado, particionar o bloco de acordo com as segundas informações de restrição de partição e estabelecer o valor do sinalizador habilitado de substituição como um valor de desabilitação; e codificar o sinalizador habilitado de substituição no fluxo de bits.
BR122023024004-9A 2018-09-18 2019-09-18 Codificador de vídeo, decodificador de vídeo e métodos correspondentes BR122023024004A2 (pt)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201862733074P 2018-09-18 2018-09-18
US201862733076P 2018-09-18 2018-09-18
US62/733,074 2018-09-18
US62/733,076 2018-09-18
US201862742263P 2018-10-05 2018-10-05
US62/742,263 2018-10-05
PCT/CN2019/106529 WO2020057572A1 (en) 2018-09-18 2019-09-18 A video encoder, a video decoder and corresponding methods
BR112020025569-6A BR112020025569A2 (pt) 2018-09-18 2019-09-18 codificador de vídeo, decodificador de vídeo e métodos correspondentes

Publications (1)

Publication Number Publication Date
BR122023024004A2 true BR122023024004A2 (pt) 2023-12-26

Family

ID=69888378

Family Applications (3)

Application Number Title Priority Date Filing Date
BR122023023994-6A BR122023023994A2 (pt) 2018-09-18 2019-09-18 Codificador de vídeo, decodificador de vídeo e métodos correspondentes
BR112020025569-6A BR112020025569A2 (pt) 2018-09-18 2019-09-18 codificador de vídeo, decodificador de vídeo e métodos correspondentes
BR122023024004-9A BR122023024004A2 (pt) 2018-09-18 2019-09-18 Codificador de vídeo, decodificador de vídeo e métodos correspondentes

Family Applications Before (2)

Application Number Title Priority Date Filing Date
BR122023023994-6A BR122023023994A2 (pt) 2018-09-18 2019-09-18 Codificador de vídeo, decodificador de vídeo e métodos correspondentes
BR112020025569-6A BR112020025569A2 (pt) 2018-09-18 2019-09-18 codificador de vídeo, decodificador de vídeo e métodos correspondentes

Country Status (14)

Country Link
US (2) US11070804B2 (pt)
EP (2) EP3847818B1 (pt)
JP (2) JP7355829B2 (pt)
KR (2) KR20240056655A (pt)
CN (2) CN112740689B (pt)
AU (2) AU2019344400C1 (pt)
BR (3) BR122023023994A2 (pt)
CA (1) CA3113219A1 (pt)
DK (1) DK3847818T3 (pt)
MX (1) MX2021003167A (pt)
PL (1) PL3847818T3 (pt)
PT (1) PT3847818T (pt)
WO (1) WO2020057572A1 (pt)
ZA (1) ZA202102113B (pt)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102072832B1 (ko) * 2012-09-26 2020-02-03 벨로스 미디어 인터내셔널 리미티드 화상 부호화 방법, 화상 복호 방법, 화상 부호화 장치, 화상 복호 장치, 및, 화상 부호화 복호 장치
US11418793B2 (en) * 2018-10-04 2022-08-16 Qualcomm Incorporated Adaptive affine motion vector coding
CN110430431B (zh) * 2019-06-25 2021-10-22 浙江大华技术股份有限公司 视频解码方法、芯片、装置、计算机设备和存储介质
SG11202110395VA (en) * 2019-06-26 2021-10-28 Tencent America LLC Implicit quadtree or binary-tree geometry partition for point cloud coding
US11496774B2 (en) 2019-08-27 2022-11-08 Tencent America LLC Header syntax for QT/BT/TT size
AU2019232797A1 (en) * 2019-09-17 2021-04-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a block of video samples
JP7310021B2 (ja) * 2019-11-28 2023-07-18 エルジー エレクトロニクス インコーポレイティド 映像/ビデオコーディング方法及び装置
EP4128773A4 (en) * 2020-03-29 2024-02-28 Alibaba Group Holding Ltd HIGH-LEVEL SYNTAX CONTROL OF A LOOP FILTER
US20210314567A1 (en) * 2020-04-04 2021-10-07 Qualcomm Incorporated Block partitioning for image and video coding
WO2021207055A1 (en) 2020-04-05 2021-10-14 Bytedance Inc. High level control of filtering in video coding
US11451811B2 (en) 2020-04-05 2022-09-20 Tencent America LLC Method and apparatus for video coding
CN115668941A (zh) * 2020-05-18 2023-01-31 北京达佳互联信息技术有限公司 视频编解码中语法元素的信令
WO2023198110A1 (en) * 2022-04-13 2023-10-19 Mediatek Inc. Block partitioning image and video data

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260614B2 (en) * 2000-11-10 2007-08-21 Sharp Laboratories Of America Methods and systems for scalable streaming of images with client-side control
KR101788292B1 (ko) * 2009-07-07 2017-10-19 톰슨 라이센싱 영역 기반 필터에 대해서 협력적 분할 부호화하는 방법 및 장치
US8711963B2 (en) * 2010-02-11 2014-04-29 Samsung Electronics Co., Ltd. Unified feedback frame for supporting a plurality of feedback modes and a multiple-input multiple-output (MIMO) communication system using the unified feedback frame
US20110194613A1 (en) * 2010-02-11 2011-08-11 Qualcomm Incorporated Video coding with large macroblocks
US9313514B2 (en) * 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
US9055305B2 (en) * 2011-01-09 2015-06-09 Mediatek Inc. Apparatus and method of sample adaptive offset for video coding
US8526495B2 (en) * 2010-11-22 2013-09-03 Mediatek Singapore Pte. Ltd. Apparatus and method of constrained partition size for high efficiency video coding
WO2012169952A2 (en) 2011-06-10 2012-12-13 Telefonaktiebolaget L M Ericsson (Publ) Signaling of end of slices
CN106851295B (zh) 2011-07-11 2019-10-18 太阳专利托管公司 编码方法及编码装置
US9538200B2 (en) * 2012-01-19 2017-01-03 Qualcomm Incorporated Signaling of deblocking filter parameters in video coding
US20130188719A1 (en) * 2012-01-20 2013-07-25 Qualcomm Incorporated Motion prediction in svc using motion vector for intra-coded block
WO2013141596A1 (ko) 2012-03-20 2013-09-26 삼성전자 주식회사 트리 구조의 부호화 단위에 기초한 스케일러블 비디오 부호화 방법 및 그 장치, 트리 구조의 부호화 단위에 기초한 스케일러블 비디오 복호화 방법 및 그 장치
US10091515B2 (en) * 2012-03-21 2018-10-02 Mediatek Singapore Pte. Ltd Method and apparatus for intra mode derivation and coding in scalable video coding
US9800869B2 (en) * 2012-06-15 2017-10-24 Google Technology Holdings LLC Method and apparatus for efficient slice header processing
US9716892B2 (en) * 2012-07-02 2017-07-25 Qualcomm Incorporated Video parameter set including session negotiation information
CN115065823A (zh) * 2012-07-02 2022-09-16 韩国电子通信研究院 视频编码/解码方法和非暂时性计算机可读记录介质
US9648335B2 (en) * 2013-07-12 2017-05-09 Qualcomm Incorporated Bitstream restrictions on picture partitions across layers
WO2015085449A1 (en) * 2013-12-13 2015-06-18 Qualcomm Incorporated Signaling of simplified depth coding (sdc) for depth intra-and inter – prediction modes in 3d video coding
CN104935940B (zh) * 2014-03-17 2018-02-16 寰发股份有限公司 基于深度的块分割的信号传递方法
US10715833B2 (en) * 2014-05-28 2020-07-14 Apple Inc. Adaptive syntax grouping and compression in video data using a default value and an exception value
WO2016203981A1 (ja) * 2015-06-16 2016-12-22 シャープ株式会社 画像復号装置及び画像符号化装置
WO2017008263A1 (en) * 2015-07-15 2017-01-19 Mediatek Singapore Pte. Ltd. Conditional binary tree block partitioning structure
CN106559669B (zh) 2015-09-29 2018-10-09 华为技术有限公司 预测图像编解码方法及装置
US20170272758A1 (en) * 2016-03-16 2017-09-21 Mediatek Inc. Video encoding method and apparatus using independent partition coding and associated video decoding method and apparatus
US10623774B2 (en) * 2016-03-22 2020-04-14 Qualcomm Incorporated Constrained block-level optimization and signaling for video coding tools
RU2710667C1 (ru) * 2016-05-28 2019-12-30 МедиаТек Инк. Способ и устройство привязки к текущему изображению для кодирования видео
WO2018030746A1 (ko) * 2016-08-08 2018-02-15 엘지전자(주) 영상의 처리 방법 및 이를 위한 장치
EP3306938A1 (en) * 2016-10-05 2018-04-11 Thomson Licensing Method and apparatus for binary-tree split mode coding
US10779004B2 (en) * 2016-10-12 2020-09-15 Mediatek Inc. Methods and apparatuses of constrained multi-type-tree block partition for video coding
US20180109812A1 (en) * 2016-10-14 2018-04-19 Media Tek Inc. Block partitioning using tree structures
US20180309508A1 (en) * 2017-04-21 2018-10-25 U.S.A. as represented by the Administrator of NASA Providing Continuous Two-Way High-Speed Data Transfer for Leo Based Satellites
US20180367818A1 (en) * 2017-06-15 2018-12-20 Futurewei Technologies, Inc. Block Partition Structure in Video Compression
WO2019007493A1 (en) * 2017-07-04 2019-01-10 Huawei Technologies Co., Ltd. ENHANCEMENT OF FORCED LIMIT PARTITION
EP3891983A1 (en) * 2018-12-04 2021-10-13 VID SCALE, Inc. Tile group partitioning
JP2021513755A (ja) * 2019-01-15 2021-05-27 エルジー エレクトロニクス インコーポレイティド 変換スキップフラグを利用した映像コーディング方法及び装置
EP3917143A4 (en) * 2019-01-23 2022-09-07 LG Electronics Inc. VIDEO SIGNAL PROCESSING METHOD AND DEVICE
US10742972B1 (en) * 2019-03-08 2020-08-11 Tencent America LLC Merge list construction in triangular prediction
US11856231B2 (en) * 2019-05-30 2023-12-26 Sharp Kabushiki Kaisha Systems and methods for signaling hypothetical reference decoder parameters in video coding
JP2022534238A (ja) * 2019-06-18 2022-07-28 エルジー エレクトロニクス インコーポレイティド ブロックサイズに基づいてbdpcmを行う画像デコード方法及びその装置
US20230145618A1 (en) * 2020-03-20 2023-05-11 Canon Kabushiki Kaisha High level syntax for video coding and decoding

Also Published As

Publication number Publication date
BR122023023994A2 (pt) 2023-12-26
CN112740689B (zh) 2024-04-12
EP4366310A1 (en) 2024-05-08
US20220021878A1 (en) 2022-01-20
AU2023229559A1 (en) 2023-09-28
US11930171B2 (en) 2024-03-12
US20210006786A1 (en) 2021-01-07
KR102660119B1 (ko) 2024-04-22
EP3847818B1 (en) 2023-12-13
AU2019344400A1 (en) 2021-05-06
CN114071165A (zh) 2022-02-18
PL3847818T3 (pl) 2024-04-29
AU2019344400B2 (en) 2023-06-15
BR112020025569A2 (pt) 2021-03-23
KR20240056655A (ko) 2024-04-30
JP2022501978A (ja) 2022-01-06
JP7355829B2 (ja) 2023-10-03
MX2021003167A (es) 2021-08-11
AU2019344400C1 (en) 2023-12-21
KR20210057166A (ko) 2021-05-20
PT3847818T (pt) 2024-03-05
WO2020057572A1 (en) 2020-03-26
CN112740689A (zh) 2021-04-30
EP3847818A4 (en) 2021-07-14
JP2023115314A (ja) 2023-08-18
CN114071165B (zh) 2022-09-23
US11070804B2 (en) 2021-07-20
DK3847818T3 (da) 2024-03-04
ZA202102113B (en) 2022-04-28
CA3113219A1 (en) 2020-03-26
EP3847818A1 (en) 2021-07-14

Similar Documents

Publication Publication Date Title
US11070804B2 (en) Video encoder, a video decoder and corresponding methods with improved block partitioning
AU2023248107A1 (en) Apparatus and method for inverse quantization
JP7286757B2 (ja) 分割制約要素間の関係
AU2023206208B2 (en) A video encoder, a video decoder and corresponding methods
BR122022009445A2 (pt) Codificador, decodificador e métodos correspondentes para simplificar sinalização de cabeçalho de imagem
BR112021009099A2 (pt) codificador de vídeo, decodificador de vídeo e métodos de codificação ou decodificação de uma imagem

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]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]