BR112018016409B1 - DECODER, METHOD TO DECODE, ENCODER, AND METHOD TO ENCODE - Google Patents
DECODER, METHOD TO DECODE, ENCODER, AND METHOD TO ENCODE Download PDFInfo
- Publication number
- BR112018016409B1 BR112018016409B1 BR112018016409-7A BR112018016409A BR112018016409B1 BR 112018016409 B1 BR112018016409 B1 BR 112018016409B1 BR 112018016409 A BR112018016409 A BR 112018016409A BR 112018016409 B1 BR112018016409 B1 BR 112018016409B1
- Authority
- BR
- Brazil
- Prior art keywords
- scan
- block
- coefficient
- scan order
- coefficients
- Prior art date
Links
Abstract
A invenção propõe um decodificador para decodificar os coeficientes de blocos de uma sequência de vídeo a partir de um fluxo de bits. O decodificador compreende um módulo de lista padrão de varredura para fornecimento de uma ou mais ordens de varredura pré-definidas, um gerador de ordem de varredura para gerar uma ou mais ordens de varredura, um seletor de ordem de varredura para a seleção de uma ordem de varredura para cada bloco a partir da pré-definidas e geradas ordens de varredura com base em informação da ordem de varredura contida no fluxo de bits, um módulo de decodificação para decodificar um ou mais vetores de coeficiente de cada bloco a partir do fluxo de bits, um desserializador para varredura inversa, para cada bloco, os um ou mais vetores de coeficiente daquele bloco de acordo com a ordem de varredura selecionada para aquele bloco de modo a obter uma matriz de coeficientes. O gerador de ordem de varredura gera um ou mais ordens de varredura de acordo com uma ou mais matrizes de coeficientes de blocos da sequência de vídeo previamente obtidas.The invention proposes a decoder for decoding the block coefficients of a video sequence from a bit stream. The decoder comprises a scan pattern list module for providing one or more predefined scan orders, a scan order generator for generating one or more scan orders, a scan order selector for selecting an order scan order for each block from the pre-defined and generated scan orders based on scan order information contained in the bit stream, a decoding module for decoding one or more coefficient vectors of each block from the bit stream. bits, a deserializer for reverse scanning, for each block, the one or more coefficient vectors of that block in accordance with the scan order selected for that block so as to obtain a matrix of coefficients. The scan order generator generates one or more scan orders according to one or more block coefficient matrices of the previously obtained video sequence.
Description
[0001] A presente invenção refere-se geralmente ao campo de processamento de video e a um método e aparelho for seleção de ordem de escaneamento, especificamente seleção de ordem de escaneamento adaptável ao conteúdo, e especificamente refere-se a um decodificador para decodificar coeficientes de blocos de uma sequência de vídeo e a um codificador para codificar coeficientes de blocos de uma sequência de video.[0001] The present invention generally relates to the field of video processing and to a method and apparatus for scanning order selection, specifically content-adaptive scanning order selection, and specifically relates to a decoder for decoding coefficients of blocks of a video sequence and to an encoder for encoding block coefficients of a video sequence.
[0002] As aplicações de comunicação e armazenamento de video digital são implementadas por uma ampla gama de dispositivos digitais, tais como câmeras digitais, telefones de rádio celular, laptops, sistemas de transmissão, e sistemas de teleconferência de vídeo. Uma das tarefas mais importantes e desafiadoras destas aplicações é a compressão de vídeo. A tarefa de compressão de vídeo é complexa e está constrita por dois parâmetros contraditórias: eficiência de compressão e complexidade computacional. Os padrões de codificação de vídeo, tais como ITU-T H.264/AVC ou padrão de Codificação de Vídeo de Alta Eficiência (HEVC) ITU-T H.265/HEVC, proveem um bom compromisso entre estes parâmetros. Por esta razão o suporte de padrões de codificação de vídeo é um requisito mandatório para quase todas as aplicações de compressão de vídeo.[0002] Digital video storage and communication applications are implemented by a wide range of digital devices, such as digital cameras, cellular radio telephones, laptops, broadcast systems, and video teleconferencing systems. One of the most important and challenging tasks of these applications is video compression. The task of video compression is complex and is constrained by two contradictory parameters: compression efficiency and computational complexity. Video coding standards, such as ITU-T H.264/AVC or ITU-T H.265/HEVC High Efficiency Video Coding (HEVC) standard, provide a good compromise between these parameters. For this reason, support for video coding standards is a mandatory requirement for almost all video compression applications.
[0003] Os padrões de codificação de vídeo do estado da técnica estão baseados em particionar uma imagem de fonte em blocos. O processamento destes blocos depende do seu tamanho, posição espacial e um modo de codificação especificado por um codificador. Os modos de codificação podem ser classificados em dois grupos de acordo com o tipo de predição: modos de intra e interpredição. Modos de intrapredição utilizam pixels da mesma imagem para gerar amostras de referência para calcular os valores de predição para os pixels do bloco sendo reconstruído. A intrapredição pode também ser referida como predição espacial. Modos de interpredição são designados para predição temporal e utilizam amostras de referência de imagens anterior ou seguinte para predizer pixels do bloco da imagem corrente. Após o estágio de predição, uma codificação de transformada é executada para um erro de predição que é a diferença entre um sinal original e sua predição. Então, os coeficientes de transformada e informações laterais são codificados utilizando um codificador de entropia como por exemplo, Codificação Aritmética Binária Adaptável ao Contexto (CABAC) para AVC/H.264 e HEVC/H.265.[0003] State-of-the-art video coding standards are based on partitioning a source image into blocks. The processing of these blocks depends on their size, spatial position and an encoding mode specified by an encoder. Coding modes can be classified into two groups according to the type of prediction: intra and interprediction modes. Intraprediction modes use pixels from the same image to generate reference samples to calculate prediction values for the pixels in the block being reconstructed. Intraprediction can also be referred to as spatial prediction. Interprediction modes are designed for temporal prediction and use reference samples from previous or next images to predict pixels from the current image block. After the prediction stage, a transform coding is performed for a prediction error which is the difference between an original signal and its prediction. Then, the transform coefficients and side information are encoded using an entropy encoder such as Context Adaptive Binary Arithmetic Coding (CABAC) for AVC/H.264 and HEVC/H.265.
[0004] Evidentemente, os erros de predição têm diferentes estatísticas para um diferente modo de predição e fortemente dependem do conteúdo a ser predito. Com isto, diferentes transformadas são proveitosas do ponto de vista de desempenho de compressão para diferentes casos. Para aumentar a eficiência de codificação do estágio de codificação de transformada, múltiplas transformadas podem ser utilizadas que possuem diferente compactação de energia para diferentes casos específicos.[0004] Evidently, prediction errors have different statistics for a different prediction mode and strongly depend on the content to be predicted. Therefore, different transforms are beneficial from the point of view of compression performance for different cases. To increase the coding efficiency of the transform coding stage, multiple transforms can be used that have different energy compression for different specific cases.
[0005] O padrão ITU-T H.265/HEVC conhecido, por exemplo, da ISO/IEC 23008-2:2013, "Information technology - High efficiency coding and media delivery in heterogeneous environments - Part 2: High efficiency vídeo coding", November 2013, declara um conjunto de ferramentas de codificação de vídeo do estado da técnica que provê um compromisso razoável entre eficiência de codificação e complexidade computacional. Uma visão geral sobre o padrão ITU-T H.265/HEVC é dada no artigo por Gary J. Sullivan, "Overview of the High Efficiency Video Coding (HEVC) Standard", em IEEE Transactions on Circuits and Systems for Video Technology, Vol. 22, No. 12, December 2012, o conteúdo inteiro do qual está aqui incorporado por referência.[0005] The ITU-T H.265/HEVC standard known, for example, from ISO/IEC 23008-2:2013, "Information technology - High efficiency coding and media delivery in heterogeneous environments - Part 2: High efficiency video coding" , November 2013, declares a set of prior art video coding tools that provide a reasonable compromise between coding efficiency and computational complexity. An overview of the ITU-T H.265/HEVC standard is given in the article by Gary J. Sullivan, "Overview of the High Efficiency Video Coding (HEVC) Standard", in IEEE Transactions on Circuits and Systems for Video Technology, Vol 22, No. 12, December 2012, the entire contents of which are incorporated herein by reference.
[0006] Similarmente ao padrão de codificação de vídeo ITU-T H.264/AVC, o padrão de codificação de vídeo HEVC/H.265 provê uma divisão da imagem de fonte em blocos, por exemplo, unidades de codificação (CUs). Cada uma das CUs pode ser adicionalmente dividida em ou menores CUs ou unidades de predição (PUs). Uma PU pode ser intra ou interpredita de acordo com o tipo de processamento aplicado para os pixels de PU. No caso de interpredição, uma PU representa uma área de pixels que é processada por compensação de movimento utilizando um vetor de movimento especificado para uma PU. Para intrapredição a PU especifica o modo de predição para um conjunto de unidades de transformada (TUs). Uma TU pode ter diferentes tamanhos (por exemplo, 4x4, 8x8, 16x16 e 32x32 pixels) e pode ser processada em diferentes modos. Para uma TU uma codificação de transformada está sendo executada, isto é, o erro de predição está sendo transformado com uma transformada de cosseno discreta ou a transformada de seno discreta - no padrão HEVC/H.265, é aplicada a blocos intracodificados - e quantizado. Com isto, os pixels reconstruídos contêm ruído de quantização e artefatos de bloqueio que podem influenciar a precisão de predição.[0006] Similar to the ITU-T H.264/AVC video coding standard, the HEVC/H.265 video coding standard provides a division of the source image into blocks, for example, coding units (CUs). Each of the CUs can be further divided into or smaller CUs or prediction units (PUs). A PU can be intra or interpredicted according to the type of processing applied to the PU pixels. In the case of interprediction, a PU represents an area of pixels that is processed by motion compensation using a motion vector specified for a PU. For intraprediction, the PU specifies the prediction mode for a set of transform units (TUs). A TU can have different sizes (e.g. 4x4, 8x8, 16x16 and 32x32 pixels) and can be processed in different modes. For a TU a transform coding is being performed, that is, the prediction error is being transformed with a discrete cosine transform or the discrete sine transform - in the HEVC/H.265 standard, it is applied to intracoded blocks - and quantized . As a result, the reconstructed pixels contain quantization noise and blocking artifacts that can influence the prediction accuracy.
[0007] Em todos os padrões de codificação de vídeo anteriores exceto HEVC/H.265, somente uma transformada foi utilizada para manter o projeto simples. O padrão HEVC/H.265 especifica duas transformadas para intracodificação: DST para blocos 4x4 já que esta transformada provê uma melhor compactação de energia para pequenos blocos intrapreditos, e DCT para outros blocos.[0007] In all previous video coding standards except HEVC/H.265, only one transform was used to keep the design simple. The HEVC/H.265 standard specifies two transforms for intracoding: DST for 4x4 blocks as this transform provides better energy compression for small intrapredicted blocks, and DCT for other blocks.
[0008] Além disso, uma técnica de escaneamento de coeficiente dependente de modo (MDCS) é adotada para o padrão HEVC/H.265. A ideia básica atrás disto é selecionar uma ordem de escaneamento sujeita a um modo de intrapredição selecionado. Para os blocos intracodificados, a ordem de escaneamento de um bloco de transformada (TB) 4x4 e um TB 8x8 luma é determinada pelo modo de intrapredição, ver Joel Sole, Rajan Joshi, Nguyen, Tianying Ji, Marta Karczewicz, Gordon Clare, Felix Henry, and Alberto Duenas. "Transform Coefficient Coding in HEVC," IEEE Transactions on Circuits and Systems for Video Technology, vol. 22, no. 12, December 2012, pp. 1765-1777. Cada um dos 35 modos de intrapredição utiliza uma das três possíveis ordens de escaneamento: diagonal, horizontal, ou vertical. Uma tabela de consulta mapeia o modo de intrapredição para um dos escaneamentos.[0008] Furthermore, a mode-dependent coefficient scanning (MDCS) technique is adopted for the HEVC/H.265 standard. The basic idea behind this is to select a scan order subject to a selected intraprediction mode. For intracoded blocks, the scan order of a 4x4 transform block (TB) and a TB 8x8 luma is determined by the intraprediction mode, see Joel Sole, Rajan Joshi, Nguyen, Tianying Ji, Marta Karczewicz, Gordon Clare, Felix Henry , and Alberto Duenas. "Transform Coefficient Coding in HEVC," IEEE Transactions on Circuits and Systems for Video Technology, vol. 22, no. 12, December 2012, pp. 1765-1777. Each of the 35 intraprediction modes uses one of three possible scan orders: diagonal, horizontal, or vertical. A lookup table maps the intraprediction mode to one of the scans.
[0009] Esta ferramenta explora a correlação horizontal ou vertical do resíduo dependendo do modo de intrapredição. Por exemplo, para um modo de predição horizontal, energia de coeficiente de transformada é agrupada nas primeiras poucas colunas, de modo que um escaneamento vertical resulta em menos bins sendo codificados em entropia. Similarmente para uma predição vertical, um escaneamento horizontal é benéfico. Experimentos mostram que incluindo escaneamentos horizontal e vertical para grandes TBs oferece pouca eficiência de compressão, de modo que a aplicação destes escaneamentos está limitada a dois menores TBs.[0009] This tool explores the horizontal or vertical correlation of the residual depending on the intraprediction mode. For example, for a horizontal prediction mode, transform coefficient energy is binned in the first few columns, so a vertical scan results in fewer bins being entropy encoded. Similar to a vertical prediction, a horizontal scan is beneficial. Experiments show that including horizontal and vertical scans for large TBs offers little compression efficiency, so the application of these scans is limited to two smaller TBs.
[0010] Técnicas similares a MDCS estão consideradas no documento Yung-Lyul Lee, Ki-Hun Han, Dong-Gyu Sim, and Jeongil Seo. "Adaptive Scanning for H.264/AVC Intra Coding," ETRI Journal, Volume 28, Número 5, October 2006, pp. 668-671, no documento Byeong-Doo Choi, Jin-Hyung Kim, and Sung-Jea Ko. "Adaptive Coefficient Scanning Com base em the Intra Prediction Mode," ETRI Journal, Volume 29, Número 5, October 2007, pp. 694-696, e no documento Md. Salah Uddin Yusuf and Mohiuddin Ahmad. "A Novel Scanning Scheme for Directional Spatial Prediction of AVS Intra Coding," International Journal of Advanced Research in Electrical, Electronics and Instrumentation Engineering, Vol. 2, Issue 8, August 2013, pp. 4120-4126. As ordens de escaneamento diferem de tais que são utilizadas no padrão HEVC/H.265. Também, é proposto mapear os modos de intrapredição para ordens de ordens de escaneamento.[0010] Techniques similar to MDCS are considered in the document Yung-Lyul Lee, Ki-Hun Han, Dong-Gyu Sim, and Jeongil Seo. "Adaptive Scanning for H.264/AVC Intra Coding," ETRI Journal, Volume 28, Number 5, October 2006, pp. 668-671, in the document Byeong-Doo Choi, Jin-Hyung Kim, and Sung-Jea Ko. "Adaptive Coefficient Scanning Based on the Intra Prediction Mode," ETRI Journal, Volume 29, Number 5, October 2007, pp. 694-696, and in the document Md. Salah Uddin Yusuf and Mohiuddin Ahmad. "A Novel Scanning Scheme for Directional Spatial Prediction of AVS Intra Coding," International Journal of Advanced Research in Electrical, Electronics and Instrumentation Engineering, Vol. 2, Issue 8, August 2013, pp. 4120-4126. The scan orders differ from those used in the HEVC/H.265 standard. Also, it is proposed to map the intraprediction modes to scan order orders.
[0011] Além disso, no modo de particionamento - como conhecido de Bae Keun Lee, Jae Cheol Kwon, and Joo Young Kim. "Method and Apparatus for Coefficient Scan Based on Partition Mode of Prediction Unit," United States Patent Application Publication, US 2014/0314143 A1, PCT/KR2012/009373, November 8, 2012 -, e parâmetros de quantização (QP) - como conhecido de Thai-Ha Nguyen, Yoichi Yagasaki, and Ali Tabatabai. "QP adaptive coefficients scanning and application," United States Patent Application Publication, US 2011/0249726 A1, April 1, 2011 - podem ser utilizados como características para selecionar uma ordem de escaneamento não apenas para intra mas para intercodificação também.[0011] Furthermore, in partitioning mode - as known to Bae Keun Lee, Jae Cheol Kwon, and Joo Young Kim. "Method and Apparatus for Coefficient Scan Based on Partition Mode of Prediction Unit," United States Patent Application Publication, US 2014/0314143 A1, PCT/KR2012/009373, November 8, 2012 -, and quantization parameters (QP) - as known by Thai-Ha Nguyen, Yoichi Yagasaki, and Ali Tabatabai. "QP adaptive coefficients scanning and application," United States Patent Application Publication, US 2011/0249726 A1, April 1, 2011 - can be used as features to select a scanning order not only for intra but for inter coding as well.
[0012] Assim, existe uma enorme variedade de ordens de escaneamento, as quais podem ser eficientes para os mesmos modos e tamanhos de TU. Esta é a principal razão porque um procedimento baseado em RDO (Otimização de Distorção de Taxa) ou similar - por exemplo, baseado em análise de distorção ou atividade - pode ser utilizado para tomar uma decisão final sobre qual das ordens de escaneamento potenciais deve ser selecionada.[0012] Thus, there is a huge variety of scan orders, which can be efficient for the same modes and TU sizes. This is the main reason why a procedure based on RDO (Rate Skew Optimization) or similar - for example, based on skew or activity analysis - can be used to make a final decision about which of the potential scan orders should be selected. .
[0013] Um exemplo de como é possível selecionar uma ordem de escaneamento em um procedimento baseado em RDO é conhecido, por exemplo, de Muhammed Zeyd Coban and Marta Karczewicz. "Adaptive scanning of transform coefficients for video coding," United States Patent Application Publication, US 2012/0099646 A1, October 17, 2011. Neste caso, a ordem de escaneamento que provê o mais baixo custo de RD é selecionada. Assim, a principal vantagem desta proposta é que uma ordem de escaneamento selecionada provê o mais alto ganho de codificação. Com isto, a eficiência de codificação desta proposta é mais alta do que para outros métodos se o excesso de processamento de sinalização não for levado em conta.[0013] An example of how it is possible to select a scanning order in an RDO-based procedure is known, for example, from Muhammed Zeyd Coban and Marta Karczewicz. "Adaptive scanning of transform coefficients for video coding," United States Patent Application Publication, US 2012/0099646 A1, October 17, 2011. In this case, the scanning order that provides the lowest RD cost is selected. Thus, the main advantage of this proposal is that a selected scanning order provides the highest coding gain. Therefore, the coding efficiency of this proposal is higher than for other methods if excess signaling processing is not taken into account.
[0014] Esta técnica anterior propõe dois algoritmos para selecionar a ordem de escaneamento provendo o mais alto ganho de codificação. A principal característica distinguida entre estes dois algoritmos é que diferentes mecanismos são utilizados para detectar tais TBs onde esta técnica de seleção de ordem de escaneamento adaptável é inaplicável, isto é, uma ordem de escaneamento padrão é utilizada. Em um primeiro algoritmo, o número de coeficientes de transformada significativos é comparado com um número limite. Em um segundo algoritmo, a posição dos últimos coeficientes de transformada significativos é comparada com uma posição limite. Em contraste com as técnicas anteriormente descritas, uma ordem de escaneamento selecionada deve ser sinalizada para estes ambos os casos, de modo que um decodificador possa aplicar uma ordem de escaneamento correta nos coeficientes de transformada recebidos. Assim, a principal desvantagem das propostas que utilizam um procedimento de tomada de decisão baseado em RDO é um excesso de processamento de sinalização.[0014] This prior technique proposes two algorithms to select the scanning order providing the highest coding gain. The main distinguishing feature between these two algorithms is that different mechanisms are used to detect such TBs where this adaptive scan order selection technique is inapplicable, i.e., a standard scan order is used. In a first algorithm, the number of significant transform coefficients is compared with a threshold number. In a second algorithm, the position of the last significant transform coefficients is compared with a threshold position. In contrast to the previously described techniques, a selected scan order must be signaled for both of these cases, so that a decoder can apply a correct scan order to the received transform coefficients. Thus, the main disadvantage of proposals that use an RDO-based decision-making procedure is an excess of signaling processing.
[0015] Outro modo para aperfeiçoar a eficiência de compressão se comparado com MDCS é adaptar a ordem de escaneamento de acordo com as estatísticas reunidas para blocos que têm valores similares de parâmetros tal como modo de intrapredição, modo de particionamento, tamanho de bloco, etc. ao invés de utilizar ordens de escaneamento definidas a priori. Consequentemente, as ordens de escaneamento iniciais são definidas para utilização nos casos quando uma estatística não é suficiente. Quando a quantidade dos blocos utilizados para coletar a estatística excede um limite, a ordem de escaneamento pode ser adaptada com base na estatística coletada, ver Yan Ye and Marta Karczewicz. "Adaptive coefficient scanning for video coding," United States Patent, US 8,488,668 B2, June 4, 2008. Uma proposta similar é conhecida de Sridhar Srinivasan. "Adaptive coefficient scan order," European Patent Specification, EP 1679903 B1, 30.11.2005.[0015] Another way to improve compression efficiency compared to MDCS is to adapt the scanning order according to the statistics gathered for blocks that have similar parameter values such as intraprediction mode, partitioning mode, block size, etc. . instead of using scanning orders defined a priori. Consequently, initial scan orders are defined for use in cases when a statistic is not sufficient. When the number of blocks used to collect statistics exceeds a threshold, the scanning order can be adapted based on the statistics collected, see Yan Ye and Marta Karczewicz. "Adaptive coefficient scanning for video coding," United States Patent, US 8,488,668 B2, June 4, 2008. A similar proposal is known from Sridhar Srinivasan. "Adaptive coefficient scan order," European Patent Specification, EP 1679903 B1, 30.11.2005.
[0016] No entanto, tal ordem de escaneamento adaptável com base em estatística reunida de blocos anteriormente codificados ou decodificados nem sempre provê uma eficiência de codificação que é mais alta do que as ordens de escaneamento predefinidas tal como ziguezague, diagonal, vertical, horizontal, escaneamentos de hélice horários e anti-horários, etc.[0016] However, such an adaptive scan order based on statistics gathered from previously encoded or decoded blocks does not always provide a coding efficiency that is higher than predefined scan orders such as zigzag, diagonal, vertical, horizontal, clockwise and counterclockwise helix scans, etc.
[0017] Tendo reconhecido as desvantagens e problemas acima mencionados, a presente invenção objetiva aperfeiçoar o estado da técnica. Especificamente, o objeto da presente invenção é prover um decodificador de vídeo, um método de decodificação, um codificador de vídeo, e um método de codificação para uma eficiência de codificação aperfeiçoada.[0017] Having recognized the aforementioned disadvantages and problems, the present invention aims to improve the state of the art. Specifically, the object of the present invention is to provide a video decoder, a decoding method, a video encoder, and a coding method for improved coding efficiency.
[0018] A presente invenção especificamente pretende aperfeiçoar a eficiência de codificação por meio de uma ordem de escaneamento aperfeiçoada para escanear uma matriz de coeficientes para um ou mais vetores de coeficiente ou para escaneamento inverso de um ou mais vetores de coeficiente em uma matriz de coeficientes.[0018] The present invention specifically intends to improve coding efficiency by means of an improved scanning order for scanning a coefficient matrix for one or more coefficient vectors or for inverse scanning of one or more coefficient vectors in a coefficient matrix .
[0019] Mais ainda, a presente invenção pretende aperfeiçoar a eficiência de codificação reduzindo o excesso de processamento de sinalização.[0019] Furthermore, the present invention aims to improve coding efficiency by reducing excess signaling processing.
[0020] O objeto da presente invenção acima mencionado é conseguido pela solução provida nas concretizações independentes anexas. Implementações vantajosas da presente invenção estão adicionalmente definidas nas respectivas concretizações dependentes.[0020] The aforementioned object of the present invention is achieved by the solution provided in the attached independent embodiments. Advantageous implementations of the present invention are further defined in the respective dependent embodiments.
[0021] Um primeiro aspecto da presente invenção provê um decodificador para decodificar coeficientes de blocos de uma sequência de vídeo de um fluxo de bits. O decodificador compreende um módulo de lista de padrões de escaneamento configurado para prover uma ou mais ordens de escaneamento predefinidas. Uma ordem de escaneamento é também conhecida na técnica como um padrão de escaneamento. O decodificador compreende um gerador de ordem de escaneamento configurado para gerar uma ou mais ordens de escaneamento. O decodificador compreende um seletor de ordem de escaneamento configurado para selecionar uma ordem de escaneamento para cada bloco das ordens de escaneamento predefinidas e geradas com base em informações de ordem de escaneamento contidas no fluxo de bits. O decodificador compreende um módulo de decodificação configurado para decodificar um ou mais vetores de coeficiente de cada bloco do fluxo de bits. O decodificador compreende um desserializador configurado para escaneamento inverso, para cada bloco, dos um ou mais vetores de coeficiente daquele bloco de acordo com a ordem de escaneamento selecionada para aquele bloco de modo a obter uma matriz de coeficientes. O gerador de ordem de escaneamento está configurado para gerar as uma ou mais ordens de escaneamento dependendo de uma ou mais matrizes de coeficientes anteriormente obtidas de blocos da sequência de vídeo.[0021] A first aspect of the present invention provides a decoder for decoding block coefficients of a video sequence from a bit stream. The decoder comprises a scan pattern list module configured to provide one or more predefined scan orders. A scan order is also known in the art as a scan pattern. The decoder comprises a scan order generator configured to generate one or more scan orders. The decoder comprises a scan order selector configured to select a scan order for each block of predefined scan orders generated based on scan order information contained in the bit stream. The decoder comprises a decoding module configured to decode one or more coefficient vectors of each block of the bit stream. The decoder comprises a deserializer configured to inversely scan, for each block, the one or more coefficient vectors of that block in accordance with the scan order selected for that block to obtain a matrix of coefficients. The scan order generator is configured to generate the one or more scan orders depending on one or more coefficient matrices previously obtained from blocks of the video sequence.
[0022] Por meio disto, a presente invenção é vantajosa em que esta provê tanto ordens de escaneamento predefinidas quanto ordens de escaneamento geradas adaptáveis ao conteúdo. Estendendo o conjunto de ordens de escaneamento disponíveis, a eficiência de distorção de taxa de quantização pode ser consequentemente aperfeiçoada.[0022] Hereby, the present invention is advantageous in that it provides both predefined scan orders and generated scan orders adaptable to the content. By extending the set of available scan orders, the quantization rate distortion efficiency can be consequently improved.
[0023] Em uma forma de implementação do decodificador de acordo com o primeiro aspecto da invenção, o módulo de lista de padrões de escaneamento está configurado para prover uma ou mais ordens de escaneamento predefinidas para cada um de uma pluralidade de conjuntos de parâmetros de codificação. O gerador de ordem de escaneamento está configurado para gerar uma ordem de escaneamento para cada um dos conjuntos de parâmetros de codificação dependendo de uma ou mais matrizes de coeficientes anteriormente obtidas associadas com aquele conjunto de parâmetros de codificação. O seletor de ordem de escaneamento está configurado para selecionar uma ordem de escaneamento para cada bloco determinando um conjunto de parâmetros de codificação daquele bloco, e selecionando a ordem de escaneamento para a matriz de coeficientes obtida para aquele bloco das ordens de escaneamento predefinidas e geradas para o conjunto de parâmetros de codificação determinado.[0023] In one form of implementation of the decoder according to the first aspect of the invention, the scan pattern list module is configured to provide one or more predefined scan orders for each of a plurality of coding parameter sets. . The scan order generator is configured to generate a scan order for each of the coding parameter sets depending on one or more previously obtained coefficient matrices associated with that coding parameter set. The scan order selector is configured to select a scan order for each block by determining a set of encoding parameters for that block, and selecting the scan order for the coefficient matrix obtained for that block from the predefined scan orders generated for the set of encoding parameters determined.
[0024] Por meio disto, tanto as ordens de escaneamento predefinidas quanto as ordens de escaneamento geradas adaptáveis ao conteúdo podem ser providas para cada conjunto de parâmetros de codificação. Como tal, diferentes ordens de escaneamento podem ser geradas para diferentes conjuntos de parâmetros de codificação, de modo que o conjunto de ordens de escaneamento disponíveis possa ser aumentado e adaptado para cada conjunto de parâmetros de codificação. Portanto, a ordem de escaneamento selecionada pode adicionalmente aperfeiçoar a eficiência de distorção de taxa.[0024] Hereby, both predefined scan orders and content-adaptive generated scan orders can be provided for each set of encoding parameters. As such, different scan orders can be generated for different sets of coding parameters, so that the set of available scan orders can be increased and adapted for each set of coding parameters. Therefore, the selected scanning order can additionally improve the rate distortion efficiency.
[0025] Especificamente, cada conjunto de parâmetros de codificação pode corresponder, por exemplo, a uma combinação de um ou mais de um modo de predição, um modo de partição, um ou mais parâmetros de transformada, e um ou mais parâmetros de quantização.[0025] Specifically, each set of coding parameters may correspond, for example, to a combination of one or more prediction mode, a partition mode, one or more transform parameters, and one or more quantization parameters.
[0026] Em uma forma de implementação do decodificador de acordo com o primeiro aspecto da invenção, o decodificador compreende um estimador de distribuição de coeficiente configurado para prover, para cada um dos conjuntos de parâmetros de codificação, uma estatística de distribuição de uma ou mais matrizes de coeficientes anteriormente obtidas associadas com aquele conjunto de parâmetros de codificação. O gerador de ordem de escaneamento está configurado para gerar a ordem de escaneamento para cada um dos conjuntos de parâmetros de codificação dependendo da estatística de distribuição para aquele conjunto de parâmetros de codificação.[0026] In one form of implementation of the decoder according to the first aspect of the invention, the decoder comprises a coefficient distribution estimator configured to provide, for each of the sets of coding parameters, a distribution statistic of one or more previously obtained coefficient matrices associated with that set of coding parameters. The scan order generator is configured to generate the scan order for each of the coding parameter sets depending on the distribution statistics for that coding parameter set.
[0027] Por meio disto, as ordens de escaneamento geradas podem refletir uma estatística de distribuição de matrizes de coeficientes anteriores. As ordens de escaneamento geradas podem assim prover uma boa eficiência de codificação para subsequentes matrizes de coeficientes se a estatística de distribuição das subsequentes matrizes for similar àquela das matrizes de coeficientes anteriores.[0027] Hereby, the generated scan orders can reflect a distribution statistic of previous coefficient matrices. The generated scan orders can thus provide good coding efficiency for subsequent coefficient matrices if the distribution statistics of the subsequent matrices are similar to those of the previous coefficient matrices.
[0028] Em uma forma de implementação do decodificador de acordo com o primeiro aspecto da invenção, se a ordem de escaneamento selecionada para um dado bloco for predefinida, o estimador de distribuição de coeficiente está configurado para não atualizar ou está configurado para reinicializar a estatística de distribuição para o conjunto de parâmetros de codificação do dado bloco.[0028] In one form of decoder implementation according to the first aspect of the invention, if the scan order selected for a given block is predefined, the coefficient distribution estimator is configured not to update or is configured to reset the statistic. distribution for the set of encoding parameters of the given block.
[0029] Por meio disto, se a ordem de escaneamento selecionada para um dado bloco for uma ordem de escaneamento predefinida, isto significa que, para o conjunto de parâmetros de codificação do dado bloco, a ordem de escaneamento gerada pode prover uma eficiência de codificação que é pior do que aquela das ordens de escaneamento predefinidas. Portanto, o dado bloco apresenta uma estatística de distribuição que não corresponde àquela das matrizes de coeficientes anteriores, de modo que a estatística de distribuição do dado bloco de preferência não é utilizada para atualizar a estatística de distribuição provida pelo estimador de distribuição de coeficiente. Alternativamente, pode ser preferível reinicializar a estatística de distribuição provida pelo estimador de distribuição de coeficiente já que a estatística de matrizes de coeficientes anteriores pode não mais corresponder à estatística de matrizes de coeficientes presentes.[0029] Hereby, if the scan order selected for a given block is a predefined scan order, this means that, for the given block's set of coding parameters, the generated scan order can provide a coding efficiency which is worse than that of predefined scan orders. Therefore, the given block presents a distribution statistic that does not correspond to that of the previous coefficient matrices, so the distribution statistic of the given preference block is not used to update the distribution statistic provided by the coefficient distribution estimator. Alternatively, it may be preferable to reset the distribution statistics provided by the coefficient distribution estimator as the previous coefficient matrix statistics may no longer match the present coefficient matrix statistics.
[0030] Em uma forma de implementação do decodificador de acordo com o primeiro aspecto da invenção, o módulo de decodificação está configurado para analisar, para cada bloco, as informações de parâmetro de codificação do fluxo de bits. O seletor de ordem de escaneamento está configurado para determinar o conjunto de parâmetros de codificação de um dado bloco de acordo com as informações de parâmetro de codificação analisadas para aquele dado bloco.[0030] In one form of implementation of the decoder according to the first aspect of the invention, the decoding module is configured to analyze, for each block, the encoding parameter information of the bit stream. The scan order selector is configured to determine the set of encoding parameters of a given block according to the analyzed encoding parameter information for that given block.
[0031] Por meio disto, o decodificador pode obter informações referentes ao conjunto de parâmetros de codificação e utilizar as ordens de escaneamento predefinidas e geradas que correspondem a este conjunto de parâmetros de codificação, de modo a aperfeiçoar a eficiência de codificação.[0031] Hereby, the decoder can obtain information regarding the set of coding parameters and use the predefined and generated scanning orders that correspond to this set of coding parameters, so as to improve the coding efficiency.
[0032] Em uma forma de implementação do decodificador de acordo com o primeiro aspecto da invenção, o módulo de decodificação está configurado para analisar as informações de ordem de escaneamento que identificam a ordem de escaneamento selecionada do fluxo de bits.[0032] In one form of implementation of the decoder according to the first aspect of the invention, the decoding module is configured to analyze scan order information that identifies the selected scan order of the bit stream.
[0033] Por meio disto, o decodificador é capaz de identificar a ordem de escaneamento selecionada do fluxo de bits e, dependendo de se esta ordem de escaneamento selecionada é predefinida ou gerada, o decodificador pode corretamente escanear inverso os vetores de coeficiente e pode, por exemplo, corretamente atualizar ou não a estatística de distribuição provida pelo estimador de distribuição de coeficiente.[0033] Hereby, the decoder is able to identify the selected scan order of the bit stream and, depending on whether this selected scan order is predefined or generated, the decoder can correctly inverse scan the coefficient vectors and can, for example, whether or not to correctly update the distribution statistics provided by the coefficient distribution estimator.
[0034] As funções do decodificador de acordo com o primeiro aspecto da invenção e quaisquer funções de quaisquer se suas formas de implementação podem ser executadas por um processador ou um computador, e quaisquer de seus meios podem ser implementados como software e/ou hardware em tal processador ou computador.[0034] The functions of the decoder according to the first aspect of the invention and any functions of any form of their implementation can be performed by a processor or a computer, and any of their means can be implemented as software and/or hardware in such processor or computer.
[0035] Um segundo aspecto da presente invenção provê um método para decodificar coeficientes de blocos de uma sequência de vídeo de um fluxo de bits. O método compreende prover uma ou mais ordens de escaneamento predefinidas. O método compreende gerar uma ou mais ordens de escaneamento. O método compreende selecionar uma ordem de escaneamento para cada bloco das ordens de escaneamento predefinidas e geradas com base em informações de ordem de escaneamento contidas no fluxo de bits. O método compreende decodificar um ou mais vetores de coeficiente de cada bloco do fluxo de bits. O método compreende escaneamento inverso, para cada bloco, dos um ou mais vetores de coeficiente daquele bloco de acordo com a ordem de escaneamento selecionada para aquele bloco de modo a obter uma matriz de coeficientes. Gerar uma ou mais ordens de escaneamento compreende gerar as uma ou mais ordens de escaneamento dependendo de uma ou mais matrizes de coeficientes anteriormente obtidas de blocos da sequência de vídeo.[0035] A second aspect of the present invention provides a method for decoding block coefficients of a video sequence from a bit stream. The method comprises providing one or more predefined scanning orders. The method comprises generating one or more scanning orders. The method comprises selecting a scan order for each block from the predefined scan orders generated based on scan order information contained in the bit stream. The method comprises decoding one or more coefficient vectors from each block of the bit stream. The method comprises inverse scanning, for each block, of the one or more coefficient vectors of that block in accordance with the scanning order selected for that block in order to obtain a matrix of coefficients. Generating the one or more scan orders comprises generating the one or more scan orders depending on one or more coefficient matrices previously obtained from blocks of the video sequence.
[0036] Características ou implementações adicionais do método de acordo com o segundo aspecto da invenção podem executar a funcionalidade do decodificador de acordo com o primeiro aspecto da invenção e suas diferentes formas de implementação.[0036] Additional features or implementations of the method according to the second aspect of the invention can perform the functionality of the decoder according to the first aspect of the invention and its different forms of implementation.
[0037] O método de acordo com o segundo aspecto da invenção ou qualquer de suas formas de implementação pode ser executado por um processador ou um computador.[0037] The method according to the second aspect of the invention or any of its implementation forms can be executed by a processor or a computer.
[0038] Um terceiro aspecto da presente invenção provê um codificador para codificar os coeficientes de blocos de uma sequência de vídeo em um fluxo de bits, os coeficientes de cada bloco estando contidos em uma respectiva matriz de coeficientes. O codificador compreende um módulo de lista de padrões de escaneamento configurado para prover uma ou mais ordens de escaneamento predefinidas. O codificador compreende um gerador de ordem de escaneamento configurado para gerar uma ou mais ordens de escaneamento. O codificador compreende um seletor de ordem de escaneamento configurado para selecionar uma ordem de escaneamento para cada bloco das ordens de escaneamento predefinidas e geradas. O codificador compreende um serializador configurado para escaneamento, para cada bloco, da matriz de coeficientes daquele bloco de acordo com a ordem de escaneamento selecionada para aquele bloco de modo a obter um ou mais vetores de coeficiente. O codificador compreende um módulo de codificação configurado para codificar os vetores de coeficiente dentro do fluxo de bits. O gerador de ordem de escaneamento está configurado para gerar as uma ou mais ordens de escaneamento dependendo de uma ou mais matrizes de coeficientes anteriormente escaneados de blocos da sequência de vídeo.[0038] A third aspect of the present invention provides an encoder for encoding the block coefficients of a video sequence into a bit stream, the coefficients of each block being contained in a respective coefficient matrix. The encoder comprises a scan pattern list module configured to provide one or more predefined scan orders. The encoder comprises a scan order generator configured to generate one or more scan orders. The encoder comprises a scan order selector configured to select a scan order for each block of the predefined and generated scan orders. The encoder comprises a serializer configured to scan, for each block, the coefficient matrix of that block in accordance with the scan order selected for that block to obtain one or more coefficient vectors. The encoder comprises a coding module configured to encode the coefficient vectors within the bit stream. The scan order generator is configured to generate the one or more scan orders depending on one or more previously scanned coefficient matrices of blocks of the video sequence.
[0039] Por meio disto, a presente invenção é vantajosa em que esta provê tanto ordens de escaneamento predefinidas quanto ordens de escaneamento geradas adaptáveis ao conteúdo. Estendendo o conjunto de ordens de escaneamento disponíveis, a eficiência de distorção de taxa de quantização pode ser consequentemente aperfeiçoada.[0039] Hereby, the present invention is advantageous in that it provides both predefined scan orders and generated scan orders adaptable to content. By extending the set of available scan orders, the quantization rate distortion efficiency can be consequently improved.
[0040] Em uma forma de implementação do codificador de acordo com o terceiro aspecto da invenção, o módulo de lista de padrões de escaneamento está configurado para prover uma ou mais ordens de escaneamento predefinidas para cada um de uma pluralidade de conjuntos de parâmetros de codificação. O gerador de ordem de escaneamento está configurado para gerar uma ordem de escaneamento para cada um dos conjuntos de parâmetros de codificação dependendo de uma ou mais matrizes de coeficientes anteriormente escaneados associadas com aquele conjunto de parâmetros de codificação. O seletor de ordem de escaneamento está configurado para selecionar uma ordem de escaneamento para cada bloco determinando um conjunto de parâmetros de codificação daquele bloco, e selecionando a ordem de escaneamento para a matriz de coeficientes daquele bloco das ordens de escaneamento predefinidas e geradas para o conjunto de parâmetros de codificação determinado.[0040] In one form of encoder implementation according to the third aspect of the invention, the scan pattern list module is configured to provide one or more predefined scan orders for each of a plurality of encoding parameter sets. . The scan order generator is configured to generate a scan order for each of the coding parameter sets depending on one or more previously scanned coefficient matrices associated with that coding parameter set. The scan order selector is configured to select a scan order for each block by determining a set of encoding parameters for that block, and selecting the scan order for that block's coefficient matrix from the predefined scan orders generated for the set. of given coding parameters.
[0041] Por meio disto, tanto as ordens de escaneamento predefinidas quanto as ordens de escaneamento geradas adaptáveis ao conteúdo podem ser providas para cada conjunto de parâmetros de codificação. Como tal, diferentes ordens de escaneamento podem ser geradas para diferentes conjuntos de parâmetros de codificação, de modo que o conjunto de ordens de escaneamento disponíveis possa ser aumentado e adaptado para cada conjunto de parâmetros de codificação. Portanto, a ordem de escaneamento selecionada pode adicionalmente aperfeiçoar a eficiência de distorção de taxa.[0041] Hereby, both predefined scan orders and content-adaptive generated scan orders can be provided for each set of coding parameters. As such, different scan orders can be generated for different sets of coding parameters, so that the set of available scan orders can be increased and adapted for each set of coding parameters. Therefore, the selected scanning order can additionally improve the rate distortion efficiency.
[0042] Especificamente, cada conjunto de parâmetros de codificação pode corresponder a uma combinação de um ou mais de um modo de predição, um modo de partição, um ou mais parâmetros de transformada, e um ou mais parâmetros de quantização.[0042] Specifically, each set of coding parameters may correspond to a combination of one or more prediction mode, a partition mode, one or more transform parameters, and one or more quantization parameters.
[0043] Em uma forma de implementação do codificador de acordo com o terceiro aspecto da invenção, o codificador compreende um estimador de distribuição de coeficiente configurado para prover, para cada um dos conjuntos de parâmetros de codificação, uma estatística de distribuição de uma ou mais matrizes de coeficientes anteriormente escaneados associadas com aquele conjunto de parâmetros de codificação. O gerador de ordem de escaneamento está configurado para gerar a ordem de escaneamento para cada um dos conjuntos de parâmetros de codificação dependendo da estatística de distribuição para aquele conjunto de parâmetros de codificação.[0043] In one form of implementation of the encoder in accordance with the third aspect of the invention, the encoder comprises a coefficient distribution estimator configured to provide, for each of the sets of encoding parameters, a distribution statistic of one or more matrices of previously scanned coefficients associated with that set of coding parameters. The scan order generator is configured to generate the scan order for each of the coding parameter sets depending on the distribution statistics for that coding parameter set.
[0044] Por meio disto, as ordens de escaneamento geradas podem refletir uma estatística de distribuição de matrizes de coeficientes anteriores, de modo que estas ordens de escaneamento geradas podem prover uma boa eficiência de codificação para subsequentes matrizes de coeficientes no caso que a estatística de distribuição das subsequentes matrizes seja similar àquela das matrizes de coeficientes anteriores.[0044] Hereby, the generated scan orders can reflect a distribution statistic of previous coefficient matrices, so that these generated scan orders can provide good coding efficiency for subsequent coefficient matrices in the case that the statistic of distribution of the subsequent matrices is similar to that of the previous coefficient matrices.
[0045] Em uma forma de implementação do codificador de acordo com o terceiro aspecto da invenção, se a ordem de escaneamento selecionada para uma dada matriz de coeficientes for predefinida, o estimador de distribuição de coeficiente está configurado para não atualizar ou está configurado para reinicializar a estatística de distribuição para o conjunto de parâmetros de codificação do dado bloco.[0045] In one form of encoder implementation according to the third aspect of the invention, if the selected scan order for a given coefficient matrix is predefined, the coefficient distribution estimator is configured not to update or is configured to reset the distribution statistics for the set of encoding parameters of the given block.
[0046] Por meio disto, se a ordem de escaneamento selecionada para um dado bloco for uma ordem de escaneamento predefinida, isto significa que, para o conjunto de parâmetros de codificação do dado bloco, a ordem de escaneamento gerada pode prover uma eficiência de codificação que é pior do que aquela das ordens de escaneamento predefinidas. Portanto, o dado bloco apresenta uma estatística de distribuição que não corresponde àquela das matrizes de coeficientes anteriores, de modo que a estatística de distribuição do dado bloco de preferência não é utilizada para atualizar a estatística de distribuição provida pelo estimador de distribuição de coeficiente. Alternativamente, pode ser preferível reinicializar a estatística de distribuição provida pelo estimador de distribuição de coeficiente já que a estatística de matrizes de coeficientes anteriores pode não mais corresponder à estatística de matrizes de coeficientes presentes.[0046] Hereby, if the scan order selected for a given block is a predefined scan order, this means that, for the set of coding parameters of the given block, the generated scan order can provide a coding efficiency which is worse than that of the predefined scan orders. Therefore, the given block presents a distribution statistic that does not correspond to that of the previous coefficient matrices, so the distribution statistic of the given preference block is not used to update the distribution statistic provided by the coefficient distribution estimator. Alternatively, it may be preferable to reset the distribution statistics provided by the coefficient distribution estimator as the previous coefficient matrix statistics may no longer match the present coefficient matrix statistics.
[0047] Em uma forma de implementação do codificador de acordo com o terceiro aspecto da invenção, o codificador compreende um módulo de sinalização configurado para adicionar informações de ordem de escaneamento que identificam a ordem de escaneamento selecionada no fluxo de bits.[0047] In one form of implementing the encoder in accordance with the third aspect of the invention, the encoder comprises a signaling module configured to add scan order information that identifies the selected scan order in the bit stream.
[0048] Por meio disto, é vantajoso que o decodificador seja capaz de identificar a ordem de escaneamento selecionada do fluxo de bits e, dependendo de se esta ordem de escaneamento selecionada é predefinida ou gerada, o decodificador pode corretamente escanear inverso os vetores de coeficiente e pode, por exemplo, corretamente atualizar ou não a estatística de distribuição provida pelo estimador de distribuição de coeficiente.[0048] Hereby, it is advantageous that the decoder is able to identify the selected scan order of the bit stream and, depending on whether this selected scan order is predefined or generated, the decoder can correctly inverse scan the coefficient vectors. and can, for example, correctly update or not the distribution statistic provided by the coefficient distribution estimator.
[0049] Em uma forma de implementação do codificador de acordo com o terceiro aspecto da invenção, o seletor de ordem de escaneamento está configurado para selecionar a ordem de escaneamento das ordens de escaneamento predefinidas e geradas com base em uma função de custo.[0049] In one form of encoder implementation according to the third aspect of the invention, the scan order selector is configured to select the scan order from predefined and generated scan orders based on a cost function.
[0050] Por meio disto, um procedimento baseado na função de custo pode ser utilizado para selecionar precisamente uma ordem de escaneamento entre as ordens de escaneamento geradas e as ordens de escaneamento predefinidas. Consequentemente, mesmo se as ordens de escaneamento geradas com base em estatística reunida de blocos anteriormente codificados ou decodificados não proverem uma melhor eficiência de codificação do que as ordens de escaneamento predefinidas, a seleção de ordem de escaneamento pode aperfeiçoar a eficiência de codificação. Especificamente, a função de custo pode, por exemplo, ser uma função de Otimização de Distorção de Taxa (RDO).[0050] Hereby, a procedure based on the cost function can be used to precisely select a scanning order from the generated scanning orders and the predefined scanning orders. Consequently, even if scan orders generated based on statistics gathered from previously encoded or decoded blocks do not provide better coding efficiency than predefined scan orders, scan order selection can improve coding efficiency. Specifically, the cost function may, for example, be a Rate Distortion Optimization (RDO) function.
[0051] As funções do codificador de acordo com o terceiro aspect da invenção e quaisquer funções de quaisquer de suas formas de implementação podem ser executadas por um processador ou um computador, e quaisquer de seus meios podem ser implementados como software e/ou hardware em tal processador ou computador.[0051] The functions of the encoder according to the third aspect of the invention and any functions of any of its implementation forms can be performed by a processor or a computer, and any of its means can be implemented as software and/or hardware in such processor or computer.
[0052] Um quarto aspecto da presente invenção provê um método para codificar coeficientes de blocos de uma sequência de vídeo em um fluxo de bits, os coeficientes de cada bloco estando contidos em uma respectiva matriz de coeficientes. O método compreende prover uma ou mais ordens de escaneamento predefinidas. O método compreende gerar uma ou mais ordens de escaneamento. O método compreende selecionar uma ordem de escaneamento para cada bloco das ordens de escaneamento predefinidas e geradas. O método compreende escanear, para cada bloco, os coeficientes daquele bloco de acordo com a ordem de escaneamento selecionada para aquele bloco de modo a obter um ou mais vetores de coeficiente. O método compreende codificar os vetores de coeficiente dentro do fluxo de bits. Gerar uma ou mais ordens de escaneamento compreende gerar as uma ou mais ordens de escaneamento dependendo de uma ou mais matrizes de coeficientes anteriormente escaneados de blocos da sequência de vídeo.[0052] A fourth aspect of the present invention provides a method for encoding block coefficients of a video sequence into a bit stream, the coefficients of each block being contained in a respective coefficient matrix. The method comprises providing one or more predefined scanning orders. The method comprises generating one or more scanning orders. The method comprises selecting a scan order for each block from the predefined and generated scan orders. The method comprises scanning, for each block, the coefficients of that block according to the scanning order selected for that block in order to obtain one or more coefficient vectors. The method comprises encoding the coefficient vectors within the bit stream. Generating the one or more scan orders comprises generating the one or more scan orders depending on one or more previously scanned coefficient matrices of blocks of the video sequence.
[0053] Características ou implementações adicionais do método de acordo com o quarto aspecto da invenção podem executar a funcionalidade do codificador de acordo com o terceiro aspecto da invenção e suas diferentes formas de implementação.[0053] Additional features or implementations of the method according to the fourth aspect of the invention can perform the functionality of the encoder according to the third aspect of the invention and its different forms of implementation.
[0054] O método de acordo com o quarto aspecto da invenção ou qualquer de suas formas de implementação pode ser executado por um processador ou um computador.[0054] The method according to the fourth aspect of the invention or any of its implementation forms can be executed by a processor or a computer.
[0055] Um quinto aspecto da presente invenção provê um decodificador, de preferência de acordo com o primeiro aspecto, para decodificar coeficientes de blocos de uma sequência de vídeo de um fluxo de bits. O decodificador compreende um módulo de decodificação configurado para decodificar um ou mais vetores de coeficiente de cada bloco do fluxo de bits. O decodificador compreende um módulo de verificação configurado para reconstruir, para pelo menos um bloco, informações ocultas de um ou mais coeficientes daquele bloco, as informações ocultas constituindo ou formando parte de informações de ordem de escaneamento associadas com aquele bloco. O decodificador compreende um seletor de ordem de escaneamento configurado para selecionar uma ordem de escaneamento para cada bloco de um conjunto de ordens de escaneamento, de preferência de um conjunto de ordens de escaneamento predefinidas e geradas, com base nas informações de ordem de escaneamento associadas com aquele bloco. O decodificador compreende um desserializador configurado para escaneamento inverso, para cada bloco, dos um ou mais vetores de coeficiente daquele bloco de acordo com a ordem de escaneamento selecionada para aquele bloco de modo a obter uma matriz de coeficientes.[0055] A fifth aspect of the present invention provides a decoder, preferably in accordance with the first aspect, for decoding block coefficients of a video sequence of a bit stream. The decoder comprises a decoding module configured to decode one or more coefficient vectors of each block of the bit stream. The decoder comprises a scanning module configured to reconstruct, for at least one block, hidden information from one or more coefficients of that block, the hidden information constituting or forming part of scan order information associated with that block. The decoder comprises a scan order selector configured to select a scan order for each block from a set of scan orders, preferably from a set of predefined and generated scan orders, based on scan order information associated with that block. The decoder comprises a deserializer configured to inversely scan, for each block, the one or more coefficient vectors of that block in accordance with the scan order selected for that block to obtain a matrix of coefficients.
[0056] Por meio disto, a eficiência de codificação é vantajosamente aperfeiçoada em que o excesso de processamento de sinalização é reduzido.[0056] Hereby, coding efficiency is advantageously improved in that excess signaling processing is reduced.
[0057] Em uma forma de implementação do decodificador de acordo com o quinto aspecto da invenção, o módulo de verificação está configurado para reconstruir, para pelo menos um bloco, as informações ocultas de pelo menos um vetor de coeficiente de ocultação escolhido dentre os um ou mais vetores de coeficiente obtidos para aquele bloco. Especificamente, os um ou mais vetores de coeficiente podem corresponder a um respectivo grupo de coeficientes (CG), o vetor de coeficiente de ocultação então correspondendo ao grupo de coeficientes no qual a ocultação de dados é executada. Por meio disto, reconstruir as informações ocultas de diversos vetores de coeficiente ocultos, por exemplo, de preferência de diversos grupos de coeficientes, é vantajoso em que mais bits podem ser ocultos e um maior índice para as informações de ordem de escaneamento pode ser reconstruído.[0057] In one form of implementation of the decoder according to the fifth aspect of the invention, the verification module is configured to reconstruct, for at least one block, the hidden information of at least one hiding coefficient vector chosen from among the one or more coefficient vectors obtained for that block. Specifically, the one or more coefficient vectors may correspond to a respective coefficient group (CG), the hiding coefficient vector then corresponding to the coefficient group on which data hiding is performed. Hereby, reconstructing the hidden information from several hidden coefficient vectors, for example, preferably from several groups of coefficients, is advantageous in that more bits can be hidden and a larger index for the scan order information can be reconstructed.
[0058] Em uma forma de implementação do decodificador de acordo com o quinto aspecto da invenção, o módulo de verificação está configurado para reconstruir, para pelo menos um bloco, as informações ocultas do vetor de coeficiente de ocultação dependendo de uma condição de ocultação, a condição de ocultação compreendendo uma comparação de um parâmetro dependendo do vetor de coeficiente de ocultação com um limite. Por meio disto, a ocultação é facilitada.[0058] In one form of decoder implementation according to the fifth aspect of the invention, the verification module is configured to reconstruct, for at least one block, the hidden information of the hiding coefficient vector depending on a hiding condition, the concealment condition comprising a comparison of a parameter depending on the concealment coefficient vector with a threshold. Hereby, concealment is facilitated.
[0059] Em uma forma de implementação do decodificador de acordo com o quinto aspecto da invenção, o parâmetro é:[0059] In one form of implementation of the decoder according to the fifth aspect of the invention, the parameter is:
[0060] - um número de coeficientes significativos dentro do vetor de coeficiente de ocultação, ou[0060] - a number of significant coefficients within the occultation coefficient vector, or
[0061] - uma distância entre primeiro e último coeficientes significativos dentro do vetor de coeficiente de ocultação, ou[0061] - a distance between first and last significant coefficients within the occultation coefficient vector, or
[0062] - uma razão de um valor absoluto máximo para um valor absoluto mínimo não zero dos coeficientes dentro do vetor de coeficiente de ocultação. A condição de ocultação é verdadeira se o parâmetro estiver acima do limite, e falsa se o parâmetro estiver abaixo do limite. Por meio disto, a condição de ocultação é vantajosamente provida.[0062] - a ratio of a maximum absolute value to a non-zero minimum absolute value of the coefficients within the hiding coefficient vector. The hiding condition is true if the parameter is above the threshold, and false if the parameter is below the threshold. Hereby, the concealment condition is advantageously provided.
[0063] Em uma forma de implementação do decodificador de acordo com o quinto aspecto da invenção, o módulo de verificação está configurado para verificar a condição de ocultação, e reconstruir as informações ocultas do vetor de coeficiente de ocultação se a condição de ocultação for verdadeira. Por meio disto, a ordem de escaneamento pode ser selecionada sem informações laterais adicionais do fluxo de bits.[0063] In one form of implementation of the decoder according to the fifth aspect of the invention, the verification module is configured to check the hiding condition, and reconstruct the hidden information of the hiding coefficient vector if the hiding condition is true . Hereby, the scanning order can be selected without additional side information from the bit stream.
[0064] Em uma forma de implementação do decodificador de acordo com o quinto aspecto da invenção, se a condição de ocultação for falsa, o seletor de ordem de escaneamento está configurado para selecionar uma ordem de escaneamento padrão predefinida. Por meio disto, a ordem de escaneamento pode ser selecionada mesmo se nenhuma ocultação foi possível no lado do codificador.[0064] In one form of implementation of the decoder according to the fifth aspect of the invention, if the concealment condition is false, the scan order selector is configured to select a predefined default scan order. Hereby, the scanning order can be selected even if no hiding was possible on the encoder side.
[0065] Em uma forma de implementação do decodificador de acordo com o quinto aspecto da invenção, o módulo de verificação está configurado para reconstruir as informações ocultas do vetor de coeficiente de ocultação aplicando uma função de verificação no vetor de coeficiente de ocultação, um resultado da função de verificação sendo as informações ocultas. Por meio disto, a ordem de escaneamento pode ser vantajosamente obtida dos coeficientes.[0065] In one form of implementation of the decoder according to the fifth aspect of the invention, the verification module is configured to reconstruct the hidden information of the occultation coefficient vector by applying a verification function on the occultation coefficient vector, a result of the verification function and the information is hidden. Hereby, the scanning order can be advantageously obtained from the coefficients.
[0066] Em uma forma de implementação do decodificador de acordo com o quinto aspecto da invenção, o resultado da função de verificação depende de coordenadas (x, y), dentro da matriz de coeficientes, do último coeficiente significativo do vetor de coeficiente de ocultação. A função de verificação pode, por exemplo, ser a seguinte função: mod( x+y + R ,2) e y sendo as coordenadas, e R sendo um valor de número inteiro. Por meio disto, o resultado da função de verificação pode ser obtido diretamente de coordenadas de coeficiente.[0066] In one form of implementation of the decoder according to the fifth aspect of the invention, the result of the verification function depends on coordinates (x, y), within the coefficient matrix, of the last significant coefficient of the occultation coefficient vector . The check function could, for example, be the following function: mod( x+y + R ,2) and y being the coordinates, and R being an integer value. Hereby, the result of the check function can be obtained directly from coefficient coordinates.
[0067] Em uma forma de implementação do decodificador de acordo com o quinto aspecto da invenção, o módulo de verificação está configurado para reconstruir, para um primeiro bloco, informações ocultas de um ou mais coeficientes do primeiro bloco, as informações ocultas constituindo ou formando parte de informações de ordem de escaneamento associadas com o primeiro bloco, e o seletor de ordem de escaneamento está configurado para selecionar, para o primeiro e pelo menos um segundo bloco, uma ordem de escaneamento com base nas informações de ordem de escaneamento associadas com o primeiro bloco. Por meio disto, esta forma de implementação provê uma decodificação de "modo de mesclagem", na qual o valor da ordem de escaneamento selecionada para o segundo bloco é reconstruído / predito utilizando os valores de coeficiente do primeiro bloco sem ocultar nada dentro dos coeficientes do segundo bloco. Por exemplo, o primeiro e segundos blocos são vizinhos espaciais.[0067] In one form of implementation of the decoder according to the fifth aspect of the invention, the verification module is configured to reconstruct, for a first block, hidden information from one or more coefficients of the first block, the hidden information constituting or forming part of scan order information associated with the first block, and the scan order selector is configured to select, for the first and at least one second block, a scan order based on the scan order information associated with the first block. Hereby, this form of implementation provides a "blend mode" decoding, in which the selected scan order value for the second block is reconstructed/predicted using the coefficient values of the first block without hiding anything within the coefficients of the second block. second block. For example, the first and second blocks are spatial neighbors.
[0068] Especificamente, o seletor de ordem de escaneamento pode estar configurado para selecionar, para um grupo de blocos, uma ordem de escaneamento com base nas informações de ordem de escaneamento associadas com o primeiro bloco, em que o grupo de blocos pode compreender o primeiro bloco e uma pluralidade de segundos blocos. O grupo de blocos pode incluir diversos blocos dentro de um grupo de blocos que tem pelo menos um índice de escaneamento não padrão oculto dentro de seus coeficientes. Alternativamente, o grupo de blocos pode incluir diversos blocos sequencialmente codificados, de modo que os ditos blocos codificados tenham o mesmo índice de escaneamento. Alternativamente, o grupo de blocos pode incluir diversos blocos e/ou diversos blocos sequencialmente codificados que têm coeficientes para os quais condição de ocultação é falsa.[0068] Specifically, the scan order selector may be configured to select, for a group of blocks, a scan order based on the scan order information associated with the first block, wherein the group of blocks may comprise the first block and a plurality of second blocks. The block group may include multiple blocks within a block group that have at least one non-standard scan index hidden within their coefficients. Alternatively, the group of blocks may include several sequentially coded blocks, such that said coded blocks have the same scan index. Alternatively, the group of blocks may include several blocks and/or several sequentially coded blocks that have coefficients for which the concealment condition is false.
[0069] Especificamente, no modo de mesclagem diversas opções estão disponíveis para o decodificador saber que nenhuma informação de ordem de escaneamento está oculta nos coeficientes do pelo menos um segundo bloco. Primeiramente, as informações laterais podem ser codificadas no fluxo de bits, por exemplo, um sinalizador para um grupo de blocos que habilita ou desabilita a utilização de modo de mesclagem para estes. Segundamente, sem informações laterais, é proposto aplicar uma regra de mesclagem no segundo bloco dependendo da condição de ocultação e conjunto de parâmetros de codificação do primeiro bloco e/ou do segundo bloco. Em outras palavras, uma mesclagem é aplicada no segundo bloco se a condição de ocultação não for atendida para o segundo bloco, isto é, a ordem de escaneamento para o segundo bloco é selecionada com base nas informações de ordem de escaneamento associadas com o primeiro bloco. Terceiramente, uma combinação das primeiras duas alternativas é proposta, a dita combinação compreendendo informações laterais no fluxo de bits e aplicando uma mesclagem dependendo da condição de ocultação.[0069] Specifically, in blend mode several options are available for the decoder to know that no scan order information is hidden in the coefficients of at least one second block. Firstly, side information can be encoded in the bit stream, for example, a flag for a group of blocks that enables or disables the use of merge mode for them. Secondly, without side information, it is proposed to apply a merge rule on the second block depending on the hiding condition and set of encoding parameters of the first block and/or the second block. In other words, a merge is applied to the second block if the hiding condition is not met for the second block, that is, the scan order for the second block is selected based on the scan order information associated with the first block. . Thirdly, a combination of the first two alternatives is proposed, said combination comprising side information in the bit stream and applying a merge depending on the hiding condition.
[0070] As funções do decodificador de acordo com o quinto aspect da invenção e quaisquer funções de quaisquer se suas formas de implementação podem ser executadas por um processador ou um computador, e quaisquer de seus meios podem ser implementados como software e/ou hardware em tal processador ou computador.[0070] The functions of the decoder according to the fifth aspect of the invention and any functions of any form of their implementation can be performed by a processor or a computer, and any of their means can be implemented as software and/or hardware in such processor or computer.
[0071] Um sexto aspecto da presente invenção provê um método,de preferência de acordo com o segundo aspecto, para decodificar os coeficientes de blocos de uma sequência de vídeo de um fluxo de bits. O método compreende decodificar um ou mais vetores de coeficiente de cada bloco do fluxo de bits. O método compreende reconstruir, para pelo menos um bloco, as informações ocultas de um ou mais coeficientes daquele bloco, as informações ocultas constituindo ou formando parte de informações de ordem de escaneamento associadas com aquele bloco. O método compreende selecionar uma ordem de escaneamento para cada bloco de um conjunto de ordens de escaneamento, de preferência de um conjunto de ordens de escaneamento predefinidas e geradas, com base nas informações de ordem de escaneamento associadas com aquele bloco. O método compreende escaneamento inverso, para cada bloco, dos um ou mais vetores de coeficiente daquele bloco de acordo com a ordem de escaneamento selecionada para aquele bloco, por meio disto obtendo uma matriz de coeficientes.[0071] A sixth aspect of the present invention provides a method, preferably in accordance with the second aspect, for decoding the block coefficients of a video sequence from a bit stream. The method comprises decoding one or more coefficient vectors from each block of the bit stream. The method comprises reconstructing, for at least one block, the hidden information of one or more coefficients of that block, the hidden information constituting or forming part of scan order information associated with that block. The method comprises selecting a scan order for each block from a set of scan orders, preferably from a set of predefined and generated scan orders, based on scan order information associated with that block. The method comprises inverse scanning, for each block, of the one or more coefficient vectors of that block in accordance with the scanning order selected for that block, thereby obtaining a matrix of coefficients.
[0072] Características ou implementações adicionais do método de acordo com o sexto aspecto da invenção podem executar a funcionalidade do decodificador de acordo com o quinto aspecto da invenção e suas diferentes formas de implementação.[0072] Additional features or implementations of the method according to the sixth aspect of the invention can perform the functionality of the decoder according to the fifth aspect of the invention and its different forms of implementation.
[0073] O método de acordo com o sexto aspecto da invenção ou qualquer de suas formas de implementação podem ser executadas por um processador ou um computador.[0073] The method according to the sixth aspect of the invention or any of its implementation forms can be executed by a processor or a computer.
[0074] Um sétimo aspecto da presente invenção provê um codificador, de preferência de acordo com o terceiro aspecto, para codificar coeficientes de blocos de uma sequência de vídeo em um fluxo de bits, os coeficientes de cada bloco estando contidos em uma respectiva matriz de coeficientes. O codificador compreende um seletor de ordem de escaneamento configurado para selecionar uma ordem de escaneamento para cada bloco de um conjunto de ordens de escaneamento, de preferência de um conjunto de ordens de escaneamento predefinidas e geradas. O codificador compreende um serializador configurado para escaneamento, para cada bloco, da matriz de coeficientes daquele bloco de acordo com a ordem de escaneamento selecionada para aquele bloco de modo a obter um ou mais vetores de coeficiente. O codificador compreende um módulo de ocultação configurado para ocultar, para pelo menos um bloco, informações de ordem de escaneamento que identificam a ordem de escaneamento selecionada para aquele bloco pelo menos parcialmente em um ou mais coeficientes daquele bloco (isto é, configurado para ocultar aquelas informações de ordem de escaneamento ou parte destas em aqueles um ou mais coeficientes). O codificador compreende um módulo de codificação configurado para codificar os vetores de coeficiente dentro do fluxo de bits. Por meio disto, a eficiência de codificação pode ser aperfeiçoada reduzindo o excesso de processamento de sinalização.[0074] A seventh aspect of the present invention provides an encoder, preferably according to the third aspect, for encoding block coefficients of a video sequence into a bit stream, the coefficients of each block being contained in a respective matrix of coefficients. The encoder comprises a scan order selector configured to select a scan order for each block from a set of scan orders, preferably from a set of predefined and generated scan orders. The encoder comprises a serializer configured to scan, for each block, the coefficient matrix of that block in accordance with the scan order selected for that block to obtain one or more coefficient vectors. The encoder comprises a hiding module configured to hide, for at least one block, scan order information that identifies the selected scan order for that block at least partially in one or more coefficients of that block (i.e., configured to hide those scan order information or part thereof in those one or more coefficients). The encoder comprises an encoding module configured to encode the coefficient vectors within the bit stream. By this, the coding efficiency can be improved by reducing signaling overhead.
[0075] Em uma forma de implementação do codificador de acordo com o sétimo aspecto da invenção, o módulo de ocultação está configurado para ocultar, para pelo menos um bloco, as informações de ordem de escaneamento em pelo menos um vetor de coeficiente de ocultação escolhido dentre os um ou mais vetores de coeficiente obtidos para aquele bloco.[0075] In one form of encoder implementation according to the seventh aspect of the invention, the hiding module is configured to hide, for at least one block, the scan order information in at least one chosen hiding coefficient vector. among the one or more coefficient vectors obtained for that block.
[0076] Em uma forma de implementação do codificador de acordo com o sétimo aspecto da invenção, o módulo de ocultação está configurado para ocultar, para pelo menos um bloco, as informações de ordem de escaneamento no vetor de coeficiente de ocultação dependendo de uma condição de ocultação, a condição de ocultação compreendendo uma comparação de um parâmetro dependendo do vetor de coeficiente de ocultação com um limite.[0076] In one form of encoder implementation according to the seventh aspect of the invention, the hiding module is configured to hide, for at least one block, the scan order information in the hiding coefficient vector depending on a condition of concealment, the concealment condition comprising a comparison of a parameter depending on the concealment coefficient vector with a threshold.
[0077] Em uma forma de implementação do codificador de acordo com o sétimo aspecto da invenção, o parâmetro é:[0077] In one form of encoder implementation according to the seventh aspect of the invention, the parameter is:
[0078] - um número de coeficientes significativos dentro do vetor de coeficiente de ocultação, ou[0078] - a number of significant coefficients within the occultation coefficient vector, or
[0079] - uma distância entre o primeiro e o último coeficientes significativos dentro do vetor de coeficiente de ocultação, ou[0079] - a distance between the first and last significant coefficients within the occultation coefficient vector, or
[0080] - uma razão de um valor absoluto máximo para um valor absoluto mínimo não zero dos coeficientes dentro do vetor de coeficiente de ocultação, em que a condição de ocultação é verdadeira se o parâmetro estiver acima do limite, e falsa se o parâmetro estiver abaixo do limite.[0080] - a ratio of a maximum absolute value to a non-zero minimum absolute value of the coefficients within the hiding coefficient vector, wherein the hiding condition is true if the parameter is above the threshold, and false if the parameter is below the limit.
[0081] Em uma forma de implementação do codificador de acordo com o sétimo aspecto da invenção, o módulo de ocultação está configurado para verificar a condição de ocultação, e para ocultar as informações de ordem de escaneamento no vetor de coeficiente de ocultação se a condição de ocultação for verdadeira.[0081] In one form of encoder implementation according to the seventh aspect of the invention, the hiding module is configured to check the hiding condition, and to hide the scan order information in the hiding coefficient vector if the condition concealment is true.
[0082] Em uma forma de implementação do codificador de acordo com o sétimo aspecto da invenção, se a condição de ocultação for falsa, o seletor de ordem de escaneamento está configurado para selecionar recursivamente outra ordem de escaneamento do conjunto de ordens de escaneamento até que a condição de ocultação para aquela outra ordem de escaneamento selecionada seja verdadeira. Por meio disto, selecionar outras ordens de escaneamento é vantajoso em que é possível executar a ocultação de dados mesmo se a primeira ordem de escaneamento selecionada implicasse uma condição de ocultação falsa.[0082] In one form of encoder implementation according to the seventh aspect of the invention, if the hiding condition is false, the scan order selector is configured to recursively select another scan order from the set of scan orders until the hiding condition for that other selected scan order is true. Thereby, selecting other scan orders is advantageous in that it is possible to perform data hiding even if the first selected scan order would imply a false hiding condition.
[0083] Em uma forma de implementação do codificador de acordo com o sétimo aspecto da invenção, se a condição de ocultação for falsa e a ordem de escaneamento selecionada for uma ordem de escaneamento padrão predefinida, o módulo de ocultação está configurado para não ocultar as informações de ordem de escaneamento no vetor de coeficiente de ocultação.[0083] In one form of encoder implementation according to the seventh aspect of the invention, if the hiding condition is false and the selected scan order is a predefined standard scan order, the hiding module is configured to not hide the scan order information in the occultation coefficient vector.
[0084] Em uma forma de implementação do codificador de acordo com o sétimo aspecto da invenção, o módulo de ocultação está configurado para ocultar, para pelo menos um bloco, as informações de ordem de escaneamento no vetor de coeficiente de ocultação:[0084] In one form of encoder implementation according to the seventh aspect of the invention, the hiding module is configured to hide, for at least one block, the scan order information in the hiding coefficient vector:
[0085] - aplicando uma função de verificação para o vetor de coeficiente de ocultação de modo a obter um resultado da função de verificação,[0085] - applying a check function to the occultation coefficient vector so as to obtain a result of the check function,
[0086] - determinar se o resultado da função de verificação corresponde às informações de ordem de escaneamento,[0086] - determine whether the result of the verification function matches the scan order information,
[0087] - se não, modificar o vetor de coeficiente de ocultação de modo que um resultado da função de verificação corresponda às informações de ordem de escaneamento.[0087] - if not, modify the occultation coefficient vector so that a result of the verification function matches the scan order information.
[0088] Em uma forma de implementação do codificador de acordo com o sétimo aspecto da invenção, o resultado da função de verificação depende de coordenadas (x, y), dentro da matriz de coeficientes, do último coeficiente significativo do vetor de coeficiente de ocultação. A função de verificação pode, por exemplo, ser a seguinte função: mod( x+y + R ,2)x e y sendo coordenadas, e R sendo um valor de número inteiro.[0088] In one form of encoder implementation according to the seventh aspect of the invention, the result of the verification function depends on coordinates (x, y), within the coefficient matrix, of the last significant coefficient of the hiding coefficient vector . The check function could, for example, be the following function: mod( x+y + R ,2)x and y being coordinates, and R being an integer value.
[0089] Em uma forma de implementação do codificador de acordo com o sétimo aspecto da invenção, se uma ordem de escaneamento idêntica for selecionada pelo seletor de ordem de escaneamento para um primeiro e pelo menos um segundo bloco, o módulo de ocultação está configurado para ocultar informações de ordem de escaneamento que identificam a ordem de escaneamento idêntica em um ou mais coeficientes de somente o primeiro bloco. Por meio disto, uma codificação de acordo com um "modo de mesclagem" é possível. Em tal modo, de preferência as informações de ordem de escaneamento que identificam a ordem de escaneamento idêntica não estão ocultas em coeficientes do segundo bloco. Em outras palavras, o valor da ordem de escaneamento selecionada para o segundo bloco é reconstruído / predito no lado do decodificador utilizando as informações de ordem de escaneamento ocultas em coeficientes do primeiro bloco. O primeiro e segundos blocos são, por exemplo, vizinhos espaciais ou, por exemplo, blocos sucessivos no fluxo de bits. Assim, as informações de ordem de escaneamento do segundo bloco podem ser transmitidas para o decodificador sem ocultar nada dentro dos coeficientes do segundo bloco.[0089] In a form of implementation of the encoder according to the seventh aspect of the invention, if an identical scan order is selected by the scan order selector for a first and at least a second block, the concealment module is configured to hide scan order information that identifies the identical scan order in one or more coefficients of the first block only. Hereby, encoding according to a "blending mode" is possible. In such a mode, preferably scan order information identifying identical scan order is not hidden in coefficients of the second block. In other words, the scan order value selected for the second block is reconstructed/predicted on the decoder side using the scan order information hidden in coefficients of the first block. The first and second blocks are, for example, spatial neighbors or, for example, successive blocks in the bit stream. Thus, the scan order information of the second block can be transmitted to the decoder without hiding anything within the coefficients of the second block.
[0090] Especificamente, um grupo de blocos que compreende o primeiro bloco e os um ou mais segundos blocos pode ser um grupo de blocos que tem pelo menos um índice de escaneamento não padrão oculto dentro de seus coeficientes. Alternativamente, o grupo de blocos pode incluir diversos blocos sequencialmente codificados, de modo que os ditos blocos codificados tenham o mesmo índice de escaneamento. Alternativamente, o grupo de blocos pode incluir diversos blocos e/ou diversos blocos sequencialmente codificados que têm coeficientes para os quais condição de ocultação é falsa.[0090] Specifically, a group of blocks comprising the first block and the one or more second blocks may be a group of blocks that have at least one non-standard scan index hidden within their coefficients. Alternatively, the group of blocks may include several sequentially coded blocks, such that said coded blocks have the same scan index. Alternatively, the group of blocks may include several blocks and/or several sequentially encoded blocks that have coefficients for which the concealment condition is false.
[0091] Especificamente, no modo de mesclagem diversas opções estão disponíveis para o decodificador saber que nenhuma informação de ordem de escaneamento está oculta nos coeficientes do pelo menos um segundo bloco. Primeiramente, o codificador adiciona as informações laterais no fluxo de bits, por exemplo, um sinalizador que habilita ou desabilita a utilização de modo de mesclagem para um ou mais blocos, por exemplo, para os um ou mais segundos blocos. Segundamente, sem informações laterais, é proposto aplicar uma regra de mesclagem no segundo bloco dependendo da condição de ocultação e conjunto de parâmetros de codificação do primeiro bloco e/ou do segundo bloco. Em outras palavras, uma mesclagem é aplicada no segundo bloco de a condição de ocultação não for atendida para o segundo bloco, isto é, a ordem de escaneamento para o segundo bloco é selecionada com base nas informações de ordem de escaneamento associadas com o primeiro bloco. Terceiramente, uma combinação das primeiras duas alternativas é proposta, a dita combinação compreendendo as informações laterais no fluxo de bits e aplicando uma mesclagem dependendo da condição de ocultação.[0091] Specifically, in merge mode several options are available for the decoder to know that no scan order information is hidden in the coefficients of at least one second block. First, the encoder adds side information to the bitstream, for example, a flag that enables or disables the use of blending mode for one or more blocks, for example, for the one or more second blocks. Second, without side information, it is proposed to apply a merge rule in the second block depending on the hiding condition and set of coding parameters of the first block and/or the second block. In other words, a merge is applied to the second block if the hiding condition is not met for the second block, that is, the scan order for the second block is selected based on the scan order information associated with the first block. . Thirdly, a combination of the first two alternatives is proposed, said combination comprising the side information in the bit stream and applying a merge depending on the hiding condition.
[0092] As funções do codificador de acordo com o sétimo aspect da invenção e quaisquer funções de quaisquer se suas formas de implementação podem ser executadas por um processador ou um computador, e quaisquer de seus meios podem ser implementados como software e/ou hardware em tal processador ou computador.[0092] The functions of the encoder according to the seventh aspect of the invention and any functions of any form of their implementation can be performed by a processor or a computer, and any of their means can be implemented as software and/or hardware in such processor or computer.
[0093] Um oitavo aspecto da presente invenção provê um método,de preferência de acordo com o quarto aspecto da invenção, para codificar coeficientes de blocos de uma sequência de vídeo em um fluxo de bits, os coeficientes de cada bloco estando contidos em uma respectiva matriz de coeficientes. O método compreende selecionar uma ordem de escaneamento para cada bloco de um conjunto de ordens de escaneamento, de preferência de um conjunto de ordens de escaneamento predefinidas e geradas. O método compreende escanear, para cada bloco, a matriz de coeficientes daquele bloco de acordo com a ordem de escaneamento selecionada para aquele bloco de modo a obter um ou mais vetores de coeficiente. O método compreende ocultar, para pelo menos um bloco, as informações de ordem de escaneamento que identificam a ordem de escaneamento selecionada para aquele bloco pelo menos parcialmente em um ou mais coeficientes daquele bloco. O método compreende codificar os vetores de coeficiente dentro do fluxo de bits.[0093] An eighth aspect of the present invention provides a method, preferably according to the fourth aspect of the invention, for encoding block coefficients of a video sequence into a bit stream, the coefficients of each block being contained in a respective coefficient matrix. The method comprises selecting a scan order for each block from a set of scan orders, preferably from a set of predefined and generated scan orders. The method comprises scanning, for each block, the coefficient matrix of that block according to the selected scanning order for that block in order to obtain one or more coefficient vectors. The method comprises hiding, for at least one block, scan order information identifying the selected scan order for that block at least partially in one or more coefficients of that block. The method comprises encoding the coefficient vectors within the bit stream.
[0094] Características ou implementações adicionais do método de acordo com o oitavo aspecto da invenção podem executar a funcionalidade do codificador de acordo com o sétimo aspecto da invenção e suas diferentes formas de implementação.[0094] Additional features or implementations of the method according to the eighth aspect of the invention can perform the functionality of the encoder according to the seventh aspect of the invention and its different forms of implementation.
[0095] O método de acordo com o oitavo aspecto da invenção ou qualquer de suas formas de implementação pode ser executado por um processador ou um computador.[0095] The method according to the eighth aspect of the invention or any of its implementation forms can be executed by a processor or a computer.
[0096] Um nono aspecto da presente invenção provê um programa de computador que compreende um código de programa para executar o método de acordo com o segundo, quarto, sexto ou oitavo aspecto da invenção, quando o programa de computador executa em um dispositivo de computação.[0096] A ninth aspect of the present invention provides a computer program comprising program code for carrying out the method according to the second, fourth, sixth or eighth aspect of the invention, when the computer program executes on a computing device .
[0097] Deve ser notado que todos os dispositivos, elementos, unidades e meios descritos no presente pedido podem ser implementados em elementos de software ou hardware ou qualquer tipo de sua combinação. Todas as etapas as quais são executadas pelas várias entidades descritas no presente pedido assim como as funcionalidades descritas para serem executadas pelas várias entidades pretendem significar que a respectiva entidade está adaptada para ou configurada para executas as respectivas etapas e funcionalidades. Mesmo se, na descrição seguinte de modalidades específicas, uma funcionalidade ou etapa específica para ser totalmente formada por entidades eternas não refletidas na descrição de um elemento detalhado específico desta entidade a qual executa esta etapa ou funcionalidade específica, deve ficar claro para uma pessoa versada na técnica que estes métodos e funcionalidades podem ser implementados em respectivos elementos de software ou hardware, ou qualquer tipo de sua combinação.[0097] It should be noted that all devices, elements, units and means described in the present application can be implemented in software or hardware elements or any type of combination thereof. All steps which are performed by the various entities described in the present application as well as the functionalities described to be performed by the various entities are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities. Even if, in the following description of specific embodiments, a specific functionality or step is to be fully formed by eternal entities not reflected in the description of a specific detailed element of this entity which performs this specific step or functionality, it should be clear to a person skilled in the art. technique that these methods and functionalities can be implemented in respective software or hardware elements, or any kind of combination thereof.
[0098] Os aspectos e formas de implementação acima da presente invenção serão explicados na descrição seguinte de modalidades específicas em relação aos desenhos anexos, nos quais[0098] The above aspects and forms of implementation of the present invention will be explained in the following description of specific embodiments in relation to the attached drawings, in which
[0099] Figura 1 mostra um codificador de vídeo de acordo com uma modalidade da presente invenção.[0099] Figure 1 shows a video encoder according to an embodiment of the present invention.
[0100] Figura 2 mostra um decodificador de vídeo de acordo com uma modalidade da presente invenção.[0100] Figure 2 shows a video decoder according to an embodiment of the present invention.
[0101] Figura 3 mostra um fluxograma de estimativa de distribuição de coeficientes no decodificador de vídeo de acordo com uma modalidade da presente invenção.[0101] Figure 3 shows a flowchart of estimating coefficient distribution in the video decoder according to an embodiment of the present invention.
[0102] Figura 4 mostra um fluxograma de estimativa de distribuição de coeficientes no codificador de vídeo de acordo com uma modalidade da presente invenção.[0102] Figure 4 shows a flowchart of estimating the distribution of coefficients in the video encoder according to an embodiment of the present invention.
[0103] Figura 5 mostra um fluxograma de uma inicialização de uma lista de ordens de escaneamento de acordo com uma modalidade da presente invenção.[0103] Figure 5 shows a flowchart of an initialization of a list of scan orders in accordance with an embodiment of the present invention.
[0104] Figura 6 mostra um fluxograma de sinalização implícita e explicita de ordem de escaneamento selecionada de acordo com uma modalidade da presente invenção.[0104] Figure 6 shows a flowchart of implicit and explicit signaling of selected scanning order in accordance with an embodiment of the present invention.
[0105] Figuras 7 e 8 mostram uma condição de ocultação de acordo com uma modalidade da presente invenção.[0105] Figures 7 and 8 show a concealment condition in accordance with an embodiment of the present invention.
[0106] Figura 9 mostra uma decodificação de entropia de coeficientes de acordo com a técnica anterior.[0106] Figure 9 shows a coefficient entropy decoding according to the prior art.
[0107] Figura 10 mostra uma modalidade da presente invenção para aperfeiçoar a eficiência de codificação reduzindo o excesso de processamento de sinalização no fluxo de bits.[0107] Figure 10 shows an embodiment of the present invention for improving coding efficiency by reducing excess signaling processing in the bit stream.
[0108] Figura 11 mostra uma reordenação de coeficientes de acordo com a presente invenção.[0108] Figure 11 shows a reordering of coefficients according to the present invention.
[0109] Figura 12 mostra um exemplo de condições de ocultação definidas para ordens de escaneamento.[0109] Figure 12 shows an example of occultation conditions defined for scan orders.
[0110] A Figura 1 mostra um codificador de vídeo de acordo com uma modalidade da presente invenção, e especificamente mostra um codificador 100 para codificar coeficientes de blocos de uma sequência de vídeo em um fluxo de bits 107, os coeficientes de cada bloco estando contidos em uma respectiva matriz de coeficientes.[0110] Figure 1 shows a video encoder in accordance with an embodiment of the present invention, and specifically shows an encoder 100 for encoding block coefficients of a video sequence into a bit stream 107, the coefficients of each block being contained in a respective matrix of coefficients.
[0111] O codificador compreende um módulo de lista de padrões de escaneamento 110 configurado para prover uma ou mais ordens de escaneamento predefinidas.[0111] The encoder comprises a scan pattern list module 110 configured to provide one or more predefined scan orders.
[0112] O codificador compreende um gerador de ordem de escaneamento 111 configurado para gerar uma ou mais ordens de escaneamento.[0112] The encoder comprises a scan order generator 111 configured to generate one or more scan orders.
[0113] O codificador compreende um seletor de ordem de escaneamento 109 configurado para selecionar uma ordem de escaneamento para cada bloco das ordens de escaneamento predefinidas e geradas.[0113] The encoder comprises a scan order selector 109 configured to select a scan order for each block of the predefined and generated scan orders.
[0114] O codificador compreende um serializador 104 configurado para escaneamento, para cada bloco, a matriz de coeficientes daquele bloco de acordo com a ordem de escaneamento selecionada para aquele bloco de modo a obter um ou mais vetores de coeficiente.[0114] The encoder comprises a serializer 104 configured to scan, for each block, the coefficient matrix of that block according to the scanning order selected for that block in order to obtain one or more coefficient vectors.
[0115] O codificador compreende um módulo de codificação 106 configurado para codificar os vetores de coeficiente dentro do fluxo de bits 107.[0115] The encoder comprises a coding module 106 configured to encode the coefficient vectors within the bit stream 107.
[0116] O gerador de ordem de escaneamento 111 está configurado para gerar as uma ou mais ordens de escaneamento dependendo de uma ou mais matrizes de coeficientes anteriormente escaneados de blocos da sequência de vídeo.[0116] The scan order generator 111 is configured to generate the one or more scan orders depending on one or more previously scanned coefficient matrices of blocks of the video sequence.
[0117] A Figura 2 mostra um decodificador de vídeo de acordo com uma modalidade da presente invenção, e especificamente um decodificador 200 para decodificar coeficientes de blocos de uma sequência de vídeo de um fluxo de bits 207.[0117] Figure 2 shows a video decoder according to an embodiment of the present invention, and specifically a decoder 200 for decoding block coefficients of a video sequence from a bit stream 207.
[0118] O decodificador compreende um módulo de lista de padrões de escaneamento 210 configurado para prover uma ou mais ordens de escaneamento predefinidas.[0118] The decoder comprises a scan pattern list module 210 configured to provide one or more predefined scan orders.
[0119] O decodificador compreende um gerador de ordem de escaneamento 211 configurado para gerar uma ou mais ordens de escaneamento.[0119] The decoder comprises a scan order generator 211 configured to generate one or more scan orders.
[0120] O decodificador compreende um seletor de ordem de escaneamento 209 configurado para selecionar uma ordem de escaneamento para cada bloco das ordens de escaneamento predefinidas e geradas com base em informações de ordem de escaneamento SCAN_IDX contidas no fluxo de bits.[0120] The decoder comprises a scan order selector 209 configured to select a scan order for each block of predefined scan orders generated based on SCAN_IDX scan order information contained in the bit stream.
[0121] O decodificador compreende um módulo de decodificação 206 configurado para decodificar um ou mais vetores de coeficiente de cada bloco do fluxo de bits 207.[0121] The decoder comprises a decoding module 206 configured to decode one or more coefficient vectors of each block of the bit stream 207.
[0122] O decodificador compreende um desserializador 204 configurado para escaneamento inverso, para cada bloco, dos um ou mais vetores de coeficiente daquele bloco de acordo com a ordem de escaneamento selecionada para aquele bloco de modo a obter uma matriz de coeficientes.[0122] The decoder comprises a deserializer 204 configured to reverse scan, for each block, the one or more coefficient vectors of that block in accordance with the scan order selected for that block in order to obtain a matrix of coefficients.
[0123] O gerador de ordem de escaneamento 211 está configurado para gerar as uma ou mais ordens de escaneamento dependendo de uma ou mais matrizes de coeficientes anteriormente obtidas de blocos da sequência de vídeo.[0123] The scan order generator 211 is configured to generate the one or more scan orders depending on one or more coefficient matrices previously obtained from blocks of the video sequence.
[0124] Especificamente, a Figura 1 mostra um exemplo de uma parte de codificação residual do lado de codificador com seleção de ordem de escaneamento adaptável ao conteúdo. No exemplo, o codificador 100 está configurado para aplicar inter ou intrapredição a cada bloco de cada imagem da sequência de vídeo. Um modo de intrapredição utiliza pixels da mesma imagem para gerar amostras de referência para calcular os valores de predição para os pixels do bloco sendo reconstruído. Um modo de interpredição está designado para predição temporal e utilizar amostras de referência de imagens anterior ou seguinte para predizer pixels do bloco da imagem corrente. O resultado do estágio de predição pode ser um sinal residual 101 que é a diferença entre um sinal original de um bloco e seu sinal de predição obtido através de inter ou intrapredição.[0124] Specifically, Figure 1 shows an example of an encoder-side residual coding part with content-adaptive scan order selection. In the example, encoder 100 is configured to apply inter- or intra-prediction to each block of each image of the video sequence. An intraprediction mode uses pixels from the same image to generate reference samples to calculate prediction values for the pixels in the block being reconstructed. An interprediction mode is designed for temporal prediction and using reference samples from previous or next images to predict pixels of the current image block. The result of the prediction stage may be a residual signal 101 which is the difference between an original signal of a block and its prediction signal obtained through inter- or intra-prediction.
[0125] Um modo de predição para obter o sinal residual 101 pode correspondentemente referir a ou um modo de intra ou inter predição. Mais ainda, o modo de predição pode corresponder a qualquer um de uma pluralidade de modos ou direções de predição disponíveis. Por exemplo, a pluralidade de modos de predição disponíveis pode compreender até 35 modos de intrapredição, os quais podem incluir 33 modos direcionais e 2 modos não direcionais, tal como um modo de predição de corrente contínua (CC) e um modo de predição plana. Os 33 modos direcionais podem cobrir uma faixa angular de π radianos ou 180 graus. Se a direção de um modo vertical for considerada como zero graus, os 33 modos direcionais podem ser simétricos ao redor do eixo geométrico de -45 graus. Com relação ao modo de predição, o codificador pode estar configurado para determinar, para um dado bloco, um da pluralidade de modos de predição disponíveis com base em uma Otimização de Distorção de Taxa (RDO).[0125] A prediction mode for obtaining the residual signal 101 may correspondingly refer to either an intra- or an inter-prediction mode. Furthermore, the prediction mode may correspond to any one of a plurality of available prediction modes or directions. For example, the plurality of available prediction modes may comprise up to 35 intra-prediction modes, which may include 33 directional modes and 2 non-directional modes, such as a direct current (DC) prediction mode and a flat prediction mode. The 33 directional modes can cover an angular range of π radians or 180 degrees. If the direction of a vertical mode is considered to be zero degrees, the 33 directional modes can be symmetrical around the -45 degree geometric axis. With respect to the prediction mode, the encoder may be configured to determine, for a given block, one of the plurality of available prediction modes based on a Rate Distortion Optimization (RDO).
[0126] Uma Unidade de Árvore de Codificação (CTU) é a raiz de uma estrutura de codificação da sequência de vídeo de um tamanho pré-definido, que contém uma parte de uma imagem (por exemplo, 64x64 pixels). Uma CTU pode ser particionada Unidades de Codificação (CUs). Uma CU é uma estrutura de codificação básica da sequência de vídeo de um tamanho pré-determinado, que contém uma parte de uma imagem a qual pertence a uma CTU. Uma CU pode ser particionada em CUs adicionais. Uma Unidade de Predição (PU) é uma estrutura de codificação a qual é o resultado do particionamento de uma CU. Uma PU pode ser particionada em diversas Unidades de Transformada (TUs) ou coincidir com uma única TU. Uma PU pode ser intra ou interpredita de acordo com o tipo de processamento aplicado para os pixels de PU. No caso de interpredição, uma PU representa uma área de pixels que é processada por compensação de movimento utilizando um vetor de movimento especificado para um PU.[0126] A Coding Tree Unit (CTU) is the root of a video sequence coding structure of a predefined size, which contains a portion of an image (e.g., 64x64 pixels). A CTU can be partitioned into Coding Units (CUs). A CU is a basic video sequence coding structure of a predetermined size, which contains a part of an image which belongs to a CTU. A CU can be partitioned into additional CUs. A Prediction Unit (PU) is a coding structure which is the result of partitioning a CU. A PU can be partitioned into several Transformation Units (TUs) or coincide with a single TU. A PU can be intra or interpredicted according to the type of processing applied to the PU pixels. In the case of interprediction, a PU represents an area of pixels that is processed by motion compensation using a motion vector specified for a PU.
[0127] Neste aspecto, um modo de partição pode depender da PU, e especificamente do tamanho e/ou da orientação da PU. O modo de partição pode corresponder a qualquer um de uma pluralidade de modos de partição disponíveis. O codificador pode estar configurado para determinar, para um bloco ou PU, um da pluralidade de modos de partição disponíveis com base em um método de RDO. Por exemplo, o modo de partição pode corresponder a uma forma horizontalmente orientada, na qual uma CU pode ser particionada em 2N*N PUs ou blocos. Também, o modo de partição pode corresponder a uma forma verticalmente orientada, na qual uma CU pode ser particionada N*2N PUs ou blocos, ou a uma forma quadrada, na qual uma CU pode ser particionada em 2N*2N PUs ou blocos.[0127] In this aspect, a partition mode may depend on the PU, and specifically on the size and/or orientation of the PU. The partition mode may correspond to any of a plurality of available partition modes. The encoder may be configured to determine, for a block or PU, one of the plurality of available partition modes based on an RDO method. For example, the partition mode can correspond to a horizontally oriented shape, in which a CU can be partitioned into 2N*N PUs or blocks. Also, the partition mode can correspond to a vertically oriented shape, in which a CU can be partitioned into N*2N PUs or blocks, or a square shape, in which a CU can be partitioned into 2N*2N PUs or blocks.
[0128] O sinal residual 101 pode ser provido uma um módulo de transformada 102 para codificação de transformada do sinal residual 101 de modo a obter coeficientes de transformada. Especificamente, para intrapredição uma PU pode especificar um modo de predição para um conjunto de TUs. Uma TU pode ter diferentes tamanhos - por exemplo, 4x4, 8x8, 16x16 e 32x32 pixels - e pode ser processada em diferentes modos. Exemplos de transformadas que podem ser aplicadas a um sinal residual compreendem, por exemplo, Transformada de Cosseno Discreta (DCT) e Transformada de Seno Discreta (DST).[0128] The residual signal 101 may be provided with a transform module 102 for transform encoding the residual signal 101 in order to obtain transform coefficients. Specifically, for intraprediction a PU can specify a prediction mode for a set of TUs. A TU can have different sizes - for example, 4x4, 8x8, 16x16 and 32x32 pixels - and can be processed in different modes. Examples of transforms that can be applied to a residual signal include, for example, Discrete Cosine Transform (DCT) and Discrete Sine Transform (DST).
[0129] Neste aspecto, um parâmetro de transformada pode ser o tamanho ou a forma da TU, ou tanto o tamanho quanto a forma. Um parâmetro de transformada adicional pode ser a transformada sendo aplicada, por exemplo, DCT ou DST entre outras.[0129] In this regard, a transform parameter can be the size or shape of the TU, or both the size and shape. An additional transform parameter can be the transform being applied, for example DCT or DST among others.
[0130] O sinal residual 101 calculado para um bloco da imagem de fonte é transformado pelo módulo de transformada 102 e então quantizado por um módulo de quantização 103. O módulo de quantização 103 processa os coeficientes de transformada de modo a obter coeficientes de transformada quantizados (QTCs) na forma de uma matriz de coeficientes.[0130] The residual signal 101 calculated for a block of the source image is transformed by the transform module 102 and then quantized by a quantization module 103. The quantization module 103 processes the transform coefficients to obtain quantized transform coefficients (QTCs) in the form of a coefficient matrix.
[0131] Neste aspecto, um parâmetro de quantização pode corresponder a um número de coeficientes significativos da matriz de coeficientes, isto é, o número de coeficientes da matriz de coeficientes que têm um valor não zero.[0131] In this aspect, a quantization parameter may correspond to a number of significant coefficients of the coefficient matrix, that is, the number of coefficients of the coefficient matrix that have a non-zero value.
[0132] A matriz de coeficientes é serializada por meio do serializador 104 escaneando em uma ordem determinada pelo seletor de ordem de escaneamento 109. A ordem de escaneamento pode ser ou selecionada das ordens de escaneamento predefinidas providas pela lista de padrões de escaneamento 110 ou das ordens de escaneamento geradas providas pelo gerador de ordem de escaneamento 111. As ordens de escaneamento providas pela lista de padrões de escaneamento 110 são predefinidas tanto para o lado de codificador 100 quanto de decodificador 200 e assim uma ordem de escaneamento selecionada da lista de padrões de escaneamento 110 é estática, isto é, não é modificada através de todo o processo de codificação ou decodificação. Ordens de escaneamento providas pelo gerador de ordem de escaneamento 111 são dinâmicas, isto é, são geradas dependendo de uma ou mais matrizes de coeficientes anteriormente obtidas de blocos da sequência de vídeo. Especificamente, as ordens de escaneamento geradas podem ser geradas de acordo com uma estatística de distribuição de matrizes de coeficientes durante o processo de codificação ou decodificação.[0132] The coefficient matrix is serialized by scanning serializer 104 in an order determined by scan order selector 109. The scanning order can be either selected from the predefined scan orders provided by the scan pattern list 110 or from the generated scan orders provided by the scan order generator 111. The scan orders provided by the scan pattern list 110 are predefined for both the encoder 100 and decoder 200 sides and thus a scan order selected from the scan pattern list 110 scanning is static, that is, it is not modified throughout the entire encoding or decoding process. Scan orders provided by scan order generator 111 are dynamic, that is, they are generated depending on one or more coefficient matrices previously obtained from blocks of the video sequence. Specifically, the generated scan orders may be generated according to a distribution statistic of coefficient matrices during the encoding or decoding process.
[0133] Os um ou mais vetores de coeficiente obtidos pelo serializador 104 de uma matriz de coeficientes são armazenados em um armazenamento temporário de coeficientes quantizados 105. O módulo de codificação 106 pode estar na forma de um módulo de codificação de entropia para codificar em entropia os vetores de coeficiente dentro do fluxo de bits 107. A ordem de escaneamento que é selecionada pelo seletor de ordem de escaneamento 109 pode ser identificada por meio de um índice de escaneamento ou informações de ordem de escaneamento SCAN_IDX.[0133] The one or more coefficient vectors obtained by the serializer 104 from a coefficient matrix are stored in a quantized coefficient buffer 105. The encoding module 106 may be in the form of an entropy encoding module for encoding in entropy the coefficient vectors within the bit stream 107. The scan order that is selected by the scan order selector 109 may be identified using a scan index or SCAN_IDX scan order information.
[0134] Estas informações de índice de escaneamento podem ser explicitamente adicionadas ao fluxo de bits 107, isto é, o valor das informações de ordem de escaneamento SCAN_IDX pode ser armazenado no fluxo de bits 107 por meio de uma variável ou parâmetro dedicado. Alternativamente, um módulo de ocultação 112 pode estar configurado para ocultar pelo menos parcialmente as informações de ordem de escaneamento SCAN_IDX nos vetores de coeficiente, isto é, nos valores da matriz de coeficientes após serialização. Por exemplo, um módulo de ocultação 112 pode correspondentemente executar ajustes dos coeficientes armazenados no armazenamento temporário de coeficientes quantizados 105 de modo que um módulo de verificação correspondente localizado em um módulo de verificação 212 do decodificador 200 possa derivar as informações de ordem de escaneamento SCAN_IDX aplicando uma função de verificação a estas. Os coeficientes ou vetores de coeficiente ajustados resultantes armazenados no armazenamento temporário de coeficientes quantizados 105 podem então ser codificados em entropia e transmitidos para o decodificador 200 no fluxo de bits 107.[0134] This scan index information can be explicitly added to the bitstream 107, that is, the value of the SCAN_IDX scan order information can be stored in the bitstream 107 via a dedicated variable or parameter. Alternatively, a hiding module 112 may be configured to at least partially hide the SCAN_IDX scan order information in the coefficient vectors, i.e., in the values of the coefficient matrix after serialization. For example, a hiding module 112 may correspondingly perform adjustments of the coefficients stored in the quantized coefficient temporary store 105 so that a corresponding verification module located in a verification module 212 of the decoder 200 may derive the SCAN_IDX scan order information by applying a verification function for these. The resulting adjusted coefficients or coefficient vectors stored in the quantized coefficient buffer 105 may then be entropy encoded and transmitted to the decoder 200 in the bit stream 107.
[0135] Os coeficientes dos um ou mais vetores de coeficiente armazenados no armazenamento temporário de coeficientes quantizados 105 podem então ser ajustados ou não, dependendo ser as informações de ordem de escaneamento SCAN_IDX são explicitamente ou implicitamente transmitidas no fluxo de bits 107, isto é, dependendo se as informações de ordem de escaneamento estão ocultas ou não.[0135] The coefficients of the one or more coefficient vectors stored in the quantized coefficient buffer 105 may then be adjusted or not, depending on whether the SCAN_IDX scan order information is explicitly or implicitly transmitted in the bit stream 107, i.e. depending on whether the scan order information is hidden or not.
[0136] Especificamente, o módulo de lista de padrões de escaneamento 110 está configurado para prover uma ou mais ordens de escaneamento predefinidas para cada um de uma pluralidade de conjuntos de parâmetros de codificação. O gerador de ordem de escaneamento 111 está configurado para gerar uma ordem de escaneamento para cada um dos conjuntos de parâmetros de codificação dependendo de uma ou mais matrizes de coeficientes anteriormente escaneados associadas com aquele conjunto de parâmetros de codificação. O seletor de ordem de escaneamento 109 está configurado para selecionar uma ordem de escaneamento para cada bloco:[0136] Specifically, the scan pattern list module 110 is configured to provide one or more predefined scan orders for each of a plurality of coding parameter sets. The scan order generator 111 is configured to generate a scan order for each of the coding parameter sets depending on one or more previously scanned coefficient matrices associated with that coding parameter set. Scan order selector 109 is configured to select a scan order for each block:
[0137] - determinando um conjunto de parâmetros de codificação daquele bloco, e[0137] - determining a set of coding parameters for that block, and
[0138] - selecionando a ordem de escaneamento para a matriz de coeficientes daquele bloco das ordens de escaneamento predefinidas e geradas para o conjunto de parâmetros de codificação determinado.[0138] - selecting the scan order for the coefficient matrix of that block from the predefined and generated scan orders for the given set of coding parameters.
[0139] Neste aspecto, um conjunto de parâmetros de codificação corresponde a uma combinação específica de pelo menos um ou mais de:[0139] In this aspect, a set of encoding parameters corresponds to a specific combination of at least one or more of:
[0140] - um modo de predição,[0140] - a prediction mode,
[0141] - um modo de partição,[0141] - a partition mode,
[0142] - um ou mais parâmetros de transformada, e[0142] - one or more transform parameters, and
[0143] - um ou mais parâmetros de quantização.[0143] - one or more quantization parameters.
[0144] O modo de predição, modo de partição, parâmetros de transformada, e parâmetros de quantização estão geralmente referidos pela referência 108 na Figura 1. Por exemplo, um conjunto de parâmetros de codificação pode corresponder a somente um modo de predição (por exemplo, um modo de intrapredição direcional específico), a somente um modo de partição (por exemplo, uma orientação específica da PU), a somente um ou mais parâmetros de transformada (por exemplo, um tamanho e/ou forma específico da TU), ou a somente um ou mais parâmetros de quantização (por exemplo, um número específico de coeficientes significativos da matriz de coeficientes). Também, o conjunto de parâmetros de codificação pode corresponder a uma combinação específica do modo de predição, modo de partição, parâmetros de transformada, e/ou parâmetros de quantização.[0144] The prediction mode, partition mode, transform parameters, and quantization parameters are generally referred to by reference 108 in Figure 1. For example, a set of encoding parameters may correspond to only one prediction mode (e.g. , a specific directional intraprediction mode), to only one partition mode (e.g., a specific orientation of the PU), to only one or more transform parameters (e.g., a specific size and/or shape of the TU), or to only one or more quantization parameters (for example, a specific number of significant coefficients from the coefficient matrix). Also, the set of encoding parameters may correspond to a specific combination of prediction mode, partition mode, transform parameters, and/or quantization parameters.
[0145] O codificador 100 pode compreender um estimador de distribuição de coeficiente 113 configurado para prover, para cada um dos conjuntos de parâmetros de codificação, uma estatística de distribuição de uma ou mais matrizes de coeficientes anteriormente escaneados associados com aquele conjunto de parâmetros de codificação. O gerador de ordem de escaneamento 111 está configurado para gerar a ordem de escaneamento para cada um dos conjuntos de parâmetros de codificação dependendo da estatística de distribuição para aquele conjunto de parâmetros de codificação.[0145] Encoder 100 may comprise a coefficient distribution estimator 113 configured to provide, for each of the sets of coding parameters, a distribution statistic of one or more matrices of previously scanned coefficients associated with that set of coding parameters. . The scan order generator 111 is configured to generate the scan order for each of the sets of coding parameters depending on the distribution statistics for that set of coding parameters.
[0146] Especificamente, os coeficientes armazenados no armazenamento temporário de coeficientes quantizados 105 são também uma fonte para a estimativa de estatística de distribuição de coeficientes que é utilizada pelo gerador de ordem de escaneamento 111. No entanto, antes de estimar a distribuição de coeficientes, os coeficientes armazenados são desserializados de volta do vetor de coeficiente para uma matriz de coeficientes por meio de um desserializador 114.[0146] Specifically, the coefficients stored in the quantized coefficient buffer 105 are also a source for the estimation of coefficient distribution statistics that is used by the scan order generator 111. However, before estimating the coefficient distribution, the stored coefficients are deserialized back from the coefficient vector to an array of coefficients via a deserializer 114.
[0147] A estatística de distribuição de uma matriz de coeficientes de preferência compreende, como definido na US 2008/0310504, uma indicação da probabilidade que um valor de coeficiente em uma posição da matriz de coeficientes bidimensional é zero ou não zero e por, por exemplo, compreender uma contagem, uma probabilidade ou outra métrica estatística associada com cada uma das posições de coeficiente da matriz de coeficientes bidimensional. Uma ordem de escaneamento gerada dependendo da tal estatística de distribuição pode correspondentemente ser uma ordem de escaneamento que está configurada para escanear com prioridade mais alta as posições de coeficiente com uma probabilidade mais alta de ter coeficientes não zero.[0147] The distribution statistic of a preference coefficient matrix comprises, as defined in US 2008/0310504, an indication of the probability that a coefficient value in a position of the two-dimensional coefficient matrix is zero or non-zero and by, example, comprising a count, probability, or other statistical metric associated with each of the coefficient positions of the two-dimensional coefficient matrix. A scan order generated depending on such a distribution statistic may correspondingly be a scan order that is configured to scan with higher priority those coefficient positions with a higher probability of having non-zero coefficients.
[0148] Especificamente, se a ordem de escaneamento selecionada para um dado bloco for uma ordem de escaneamento gerada, o estimador de distribuição de coeficiente 113 pode estar configurado para atualizar a estatística de distribuição para o conjunto de parâmetros de codificação do dado bloco de acordo com estatística de distribuição da matriz de coeficientes do dado bloco. A estatística de distribuição da matriz de coeficientes do dado bloco pode refletir se ou não o coeficiente em uma posição na matriz de coeficientes do dado bloco é zero ou não zero. A estatística de distribuição provida pelo estimador de distribuição de coeficiente 113 pode então, por exemplo, ser atualizada dependendo da dita estatística de distribuição da matriz de coeficientes do dado bloco.[0148] Specifically, if the selected scan order for a given block is a generated scan order, the coefficient distribution estimator 113 may be configured to update the distribution statistic for the set of encoding parameters of the given block accordingly. with distribution statistics of the coefficient matrix of the given block. The distribution statistics of the coefficient matrix of the given block may reflect whether or not the coefficient at a position in the coefficient matrix of the given block is zero or non-zero. The distribution statistic provided by the coefficient distribution estimator 113 may then, for example, be updated depending on said distribution statistic of the coefficient matrix of the given block.
[0149] Especificamente, se a ordem de escaneamento selecionada para uma dada matriz de coeficientes for predefinida, o estimador de distribuição de coeficiente 113 pode estar configurado para não atualizar ou pode estar configurado para reinicializar a estatística de distribuição para o conjunto de parâmetros de codificação do dado bloco. Reinicializar a estatística de distribuição pode, por exemplo, consistir em reinicializar a dita contagem, probabilidade ou outra métrica estatística.[0149] Specifically, if the selected scan order for a given coefficient matrix is predefined, the coefficient distribution estimator 113 may be configured not to update or may be configured to reset the distribution statistic for the set of coding parameters. of the given block. Resetting the distribution statistic may, for example, consist of resetting said count, probability or other statistical metric.
[0150] Esta atualização, não atualização, ou reinicialização da estatística de distribuição executada pelo estimador de distribuição de coeficiente 113 dependendo se o seletor de ordem de escaneamento 109 selecionou uma ordem de escaneamento gerada ou predefinida está refletido na Figura 1 por uma seta tracejada do seletor de ordem de escaneamento 109 para o estimador de distribuição de coeficiente 113.[0150] This update, non-update, or reset of the distribution statistic performed by the coefficient distribution estimator 113 depending on whether the scan order selector 109 selected a generated or predefined scan order is reflected in Figure 1 by a dashed arrow of the scan order selector 109 for coefficient distribution estimator 113.
[0151] O decodificador da modalidade proposta está mostrado na Figura 14. Os estágios de processamento são similares àqueles do codificador (ver Figura 13) e são aplicados na ordem inversa. A diferença mais importante é que o armazenamento temporário de coeficientes quantizados armazena os QTCs após estes serem desserializados, isto é, como uma matriz de QTCs mas não os QTCs como um ou mais vetores.[0151] The decoder of the proposed modality is shown in Figure 14. The processing stages are similar to those of the encoder (see Figure 13) and are applied in reverse order. The most important difference is that the temporary storage of quantized coefficients stores the QTCs after they are deserialized, that is, as an array of QTCs but not the QTCs as one or more vectors.
[0152] Especificamente, a Figura 2 mostra um exemplo de uma parte de decodificação residual com seleção de ordem de escaneamento adaptável ao conteúdo. No exemplo, o decodificador 200 está configurado para obter um sinal residual 201 do fluxo de bits 207. Após gerar, pelo módulo de decodificação 206 (por exemplo, um módulo de decodificação de entropia) e pelo desserializador 204, a matriz de coeficientes que compreende coeficientes de transformada quantizados, um armazenamento temporário de coeficientes quantizados 205 armazena a dita matriz de coeficientes. A matriz de coeficientes armazenada é então processada por um módulo de quantização inversa 203 e por um módulo de transformada inversa 202 para obter o sinal residual 201 que corresponde ao sinal residual 101 no codificador 100. Utilizando o sinal residual 201, a sequência de vídeo codificada pode ser reconstruída de acordo com técnicas conhecidas.[0152] Specifically, Figure 2 shows an example of a residual decoding part with content-adaptive scan order selection. In the example, decoder 200 is configured to obtain a residual signal 201 from bit stream 207. After generating, by decoding module 206 (e.g., an entropy decoding module) and deserializer 204, the coefficient matrix comprising quantized transform coefficients, a quantized coefficient buffer 205 stores said coefficient matrix. The stored coefficient matrix is then processed by an inverse quantization module 203 and an inverse transform module 202 to obtain the residual signal 201 that corresponds to the residual signal 101 in the encoder 100. Using the residual signal 201, the encoded video sequence can be reconstructed according to known techniques.
[0153] O estimador de distribuição de coeficiente 213 do decodificador 200 pode ser similar ou idêntico em função ao estimador de distribuição de coeficiente 113 do codificador 100. No exemplo, estes diferem em que o estimador de distribuição de coeficiente 213 recebe como entrada a matriz de coeficientes armazenados no armazenamento temporário de coeficientes quantizados 205 enquanto que o estimador de distribuição de coeficiente 113 recebe como entrada a matriz de coeficientes obtida do desserializador 114.[0153] The coefficient distribution estimator 213 of the decoder 200 may be similar or identical in function to the coefficient distribution estimator 113 of the encoder 100. In the example, these differ in that the coefficient distribution estimator 213 takes as input the matrix of coefficients stored in the quantized coefficient buffer 205 while the coefficient distribution estimator 113 receives as input the coefficient matrix obtained from the deserializer 114.
[0154] A presente invenção propõe a utilização combinada de ordens de escaneamento predefinidas e ordens de escaneamento geradas tanto no lado de codificador 100 quanto de decodificador 200 dependendo de matrizes de coeficientes de blocos da sequência de vídeo anteriormente escaneados, respectivamente obtidos. Especificamente, as ordens de escaneamento geradas são geradas analisando uma estatística de distribuição dos coeficientes dentro da matriz de coeficientes, isto é, analisando uma distribuição dos coeficientes de transformada quantizados.[0154] The present invention proposes the combined use of predefined scanning orders and scanning orders generated on both the encoder 100 and decoder 200 sides depending on previously scanned video sequence block coefficient matrices, respectively obtained. Specifically, the generated scan orders are generated by analyzing a distribution statistic of the coefficients within the coefficient matrix, that is, by analyzing a distribution of the quantized transform coefficients.
[0155] Uma característica específica da invenção proposta é que a estatística de distribuição para os coeficientes de transformada quantizados (QTCs) é estimada mais precisamente levando em consideração a ordem de escaneamento selecionada, como mostrado por exemplo nas Figuras 1 e 2 pela seta entre o seletor de ordem de escaneamento 109, 209 e o estimador de distribuição de coeficiente 113, 213. Esta estimativa mais precisa pode consistir por exemplo, em atualizar, não atualizar, ou reinicializar a estatística de distribuição como acima mostrado.[0155] A specific feature of the proposed invention is that the distribution statistics for the quantized transform coefficients (QTCs) are estimated more precisely taking into account the selected scanning order, as shown for example in Figures 1 and 2 by the arrow between the scan order selector 109, 209 and the coefficient distribution estimator 113, 213. This more accurate estimation may consist of, for example, updating, not updating, or resetting the distribution statistic as shown above.
[0156] A distribuição de coeficientes pode ser estimada mais precisamente dividindo os dados de fonte em 4 períodos estacionários e estimar a distribuição de coeficientes somente dentro destes períodos estacionários. Um período estacionário é um número de blocos que têm uma distribuição de QTCs similar e estão espacialmente próximos uns dos outros.[0156] The distribution of coefficients can be estimated more precisely by dividing the source data into 4 stationary periods and estimating the distribution of coefficients only within these stationary periods. A stationary period is a number of blocks that have a similar distribution of QTCs and are spatially close to each other.
[0157] Na presente invenção, está especificamente proposto detectar um período estacionário introduzindo um limite sobre o número de blocos processados que está sinalizado ter ordem de escaneamento adaptavelmente gerada. Quando a ordem de escaneamento é selecionada das ordens de escaneamento predefinidas providas pelo módulo de lista de padrões de escaneamento, não há necessidade de atualizar a estatística de distribuição, porque para este caso o fato que a ordem de escaneamento é uma predefinida indica que o bloco correntemente processado pertence a um diferente período estacionário.[0157] In the present invention, it is specifically proposed to detect a stationary period by introducing a limit on the number of processed blocks that are signaled to have adaptively generated scan order. When the scan order is selected from the predefined scan orders provided by the scan pattern list module, there is no need to update the distribution statistics, because for this case the fact that the scan order is a predefined one indicates that the block currently processed belongs to a different stationary period.
[0158] A Figura 3 mostra um fluxograma de estimativa de estatística de distribuição no decodificador de vídeo de acordo com uma modalidade da presente invenção.[0158] Figure 3 shows a flowchart of estimating distribution statistics in the video decoder according to an embodiment of the present invention.
[0159] No decodificador de vídeo, a estimativa 301 da estatística de distribuição pelo estimador de distribuição de coeficiente 213 compreende diversas etapas.[0159] In the video decoder, the estimation 301 of the distribution statistic by the coefficient distribution estimator 213 comprises several steps.
[0160] Na etapa 302, o modo de predição, modo de partição, parâmetros de transformada, e/ou parâmetros de quantização 208 para um bloco são analisados do fluxo de bits 207. De preferência, esta análise é executada pelo módulo de decodificação 206. De acordo com as informações analisadas, o seletor de ordem de escaneamento 209 de preferência determina o modo de codificação daquele bloco.[0160] In step 302, the prediction mode, partition mode, transform parameters, and/or quantization parameters 208 for a block are analyzed from bit stream 207. Preferably, this analysis is performed by decoding module 206 According to the analyzed information, the scanning order selector 209 preferably determines the encoding mode of that block.
[0161] Em uma etapa 303, as informações de ordem de escaneamento SCAN_IDX que identificam a ordem de escaneamento selecionada para aquele bloco são analisadas do fluxo de bits 207. Esta análise é de preferência feita pelo módulo de decodificação 206.[0161] In a step 303, the SCAN_IDX scan order information that identifies the selected scan order for that block is analyzed from the bit stream 207. This analysis is preferably done by the decoding module 206.
[0162] Em uma etapa 304, o seletor de ordem de escaneamento 209 seleciona a ordem de escaneamento para aquele bloco das ordens de escaneamento predefinidas e geradas com base nas informações de ordem de escaneamento analisadas SCAN_IDX.[0162] In a step 304, the scan order selector 209 selects the scan order for that block from the predefined and generated scan orders based on the analyzed scan order information SCAN_IDX.
[0163] Em uma etapa 305, é determinado se a ordem de escaneamento selecionada é uma ordem de escaneamento predefinida provida pelo módulo de lista de padrões de escaneamento 210 ou uma ordem de escaneamento gerada provida pelo gerador de ordem de escaneamento 211.[0163] In a step 305, it is determined whether the selected scan order is a predefined scan order provided by the scan pattern list module 210 or a generated scan order provided by the scan order generator 211.
[0164] Se a ordem de escaneamento selecionada para aquele bloco for uma gerada (por exemplo, provida pelo gerador de ordem de escaneamento 211), o estimador de distribuição de coeficiente 213 atualiza, em uma etapa 306, a estatística de distribuição corrente. Esta estatística de distribuição corrente é obtida de preferência de blocos anteriores. A estatística de distribuição corrente é atualizada de acordo com a estatística de distribuição da matriz de coeficientes obtidos para aquele bloco.[0164] If the scan order selected for that block is a generated one (e.g., provided by scan order generator 211), the coefficient distribution estimator 213 updates, in a step 306, the current distribution statistic. This current distribution statistic is preferably obtained from previous blocks. The current distribution statistics are updated according to the distribution statistics of the coefficient matrix obtained for that block.
[0165] Se, no entanto, a ordem de escaneamento selecionada para aquele bloco for uma predefinida (por exemplo, provida pelo módulo de lista de padrões de escaneamento 210), o estimador de distribuição de coeficiente 213 processa, em uma etapa 306, a estatística de distribuição daquele bloco separadamente da estatística de distribuição corrente. Por exemplo, o estimador de distribuição de coeficiente 213 pode não atualizar ou pode reinicializar a estatística de distribuição corrente.[0165] If, however, the scan order selected for that block is a predefined one (e.g., provided by the scan pattern list module 210), the coefficient distribution estimator 213 processes, in one step 306, the distribution statistics for that block separately from the current distribution statistics. For example, the coefficient distribution estimator 213 may not update or may reset the current distribution statistic.
[0166] Após a etapa 306 ou 307, a estimativa 301 da estatística de distribuição termina (na etapa 308).[0166] After step 306 or 307, estimation 301 of the distribution statistic ends (at step 308).
[0167] A Figura 4 mostra um fluxograma de estimativa de estatística de distribuição no codificador de vídeo de acordo com uma modalidade da presente invenção.[0167] Figure 4 shows a flowchart of estimating distribution statistics in the video encoder in accordance with an embodiment of the present invention.
[0168] No codificador de vídeo, a estimativa 401 da estatística de distribuição pelo estimador de distribuição de coeficiente 113 compreende diversas etapas.[0168] In the video encoder, the estimation 401 of the distribution statistic by the coefficient distribution estimator 113 comprises several steps.
[0169] Em uma etapa 402, um procedimento de RDO é executado pelo seletor de ordem de escaneamento 109 de modo a selecionar, dentre as ordens de escaneamento predefinidas providas pelo módulo de lista de padrões de escaneamento 110 e as ordens de escaneamento geradas providas pelo gerador de ordem de escaneamento 111, a ordem de escaneamento que provê o custo de distorção de taxa (RD) mínima. Nesta etapa, as informações de ordem de escaneamento SCAN_IDX da ordem de escaneamento selecionada são obtidas.[0169] In a step 402, an RDO procedure is performed by the scan order selector 109 in order to select from the predefined scan orders provided by the scan pattern list module 110 and the generated scan orders provided by the scan order generator 111, the scan order that provides the minimum rate distortion (RD) cost. In this step, the SCAN_IDX scan order information of the selected scan order is obtained.
[0170] Em uma etapa 403, a ordem de escaneamento que corresponde às informações de ordem de escaneamento selecionadas SCAN_IDX é obtida.[0170] In a step 403, the scan order that corresponds to the selected scan order information SCAN_IDX is obtained.
[0171] As etapas adicionais 404 a 407 correspondem às etapas 305 a 308 da Figura 3.[0171] Additional steps 404 to 407 correspond to steps 305 to 308 of Figure 3.
[0172] Como mostrado nas Figuras 3 e 4, nos lados tanto do codificador quanto do decodificador a lista de ordens de escaneamento é inicializada. Esta inclui membros do módulo de lista de padrões de escaneamento e ordens de escaneamento geradas pelo gerador de ordem de escaneamento. Dependendo se a ordem de escaneamento selecionada pelo seletor de ordem de escaneamento é gerada ou predefinida, uma decisão sobre a estatística de distribuição é tomada. Esta decisão pode consistir em atualizar a estatística de distribuição corrente ou não, ou em reinicializar a estatística de distribuição corrente.[0172] As shown in Figures 3 and 4, on both the encoder and decoder sides the scan order list is initialized. This includes members of the scan pattern list module and scan orders generated by the scan order generator. Depending on whether the scan order selected by the scan order selector is generated or predefined, a decision about the distribution statistic is made. This decision may consist of updating the current distribution statistic or not, or resetting the current distribution statistic.
[0173] Um dos possíveis modos de inicializar a lista de ordens deescaneamento está mostrado na Figura 5. A Figura 5 correspondentemente mostra um fluxograma 500 de uma inicialização 501 de uma lista de ordens de escaneamento de acordo com uma modalidade da presente invenção.[0173] One of the possible ways of initializing the list of scan orders is shown in Figure 5. Figure 5 correspondingly shows a flowchart 500 of an initialization 501 of a list of scan orders in accordance with an embodiment of the present invention.
[0174] Sua inicialização depende do modo de predição, modo de particionamento, parâmetros de transformada e parâmetros de quantização especificados para um bloco sendo processado.[0174] Its initialization depends on the prediction mode, partitioning mode, transform parameters and quantization parameters specified for a block being processed.
[0175] Em uma etapa 502, é determinado se o modo de predição daquele bloco é um modo de intrapredição plana. Se isto for verdadeiro, uma lista de padrões de escaneamento de ordens de escaneamento predefinidas é definida 508 de modo a compreender uma ordem Z e ordens de escaneamento diagonal predefinidas. Se isto for falso, a etapa 503 é executada.[0175] In a step 502, it is determined whether the prediction mode of that block is a flat intraprediction mode. If this is true, a scan pattern list of predefined scan orders is defined 508 to comprise a Z order and predefined diagonal scan orders. If this is false, step 503 is performed.
[0176] Na etapa 503, é determinado se o modo de predição daquele bloco é um modo de intrapredição CC. Se isto for verdadeiro, uma lista de padrões de escaneamento de ordens de escaneamento predefinidas é definida 508 de modo a compreender ordem Z e ordens de escaneamento diagonal predefinidas. Se isto for falso, a etapa 504 é executada.[0176] In step 503, it is determined whether the prediction mode of that block is a CC intraprediction mode. If this is true, a scan pattern list of predefined scan orders is defined 508 to comprise Z order and predefined diagonal scan orders. If this is false, step 504 is performed.
[0177] Na etapa 504, é determinado se o modo de predição daquele bloco é um modo de intrapredição angular próximo da horizontal. Se isto for verdadeiro, uma lista de padrões de escaneamento de ordens de escaneamento predefinidas é definida 509 de modo a compreender ordens de escaneamento vertical, vertical-diagonal, e hélice. Se isto for falso, a etapa 505 é executada.[0177] In step 504, it is determined whether the prediction mode of that block is a near-horizontal angular intraprediction mode. If this is true, a list of predefined scan order scan patterns is defined 509 to comprise vertical, vertical-diagonal, and helical scan orders. If this is false, step 505 is performed.
[0178] Na etapa 505, é determinado se o modo de predição daquele bloco é um modo de intrapredição angular próximo da vertical. Se isto for verdadeiro, uma lista de padrões de escaneamento de ordens de escaneamento predefinidas é definida 510 de modo a compreender ordens de escaneamento horizontal, horizontal-diagonal, e hélice. Se isto for falso, a etapa 506 é executada.[0178] In step 505, it is determined whether the prediction mode of that block is an angular intraprediction mode close to the vertical. If this is true, a list of predefined scan order scan patterns is defined 510 to comprise horizontal, horizontal-diagonal, and helical scan orders. If this is false, step 506 is performed.
[0179] Na etapa 506, é determinado se o modo de predição daquele bloco é um modo de intrapredição angular próximo da diagonal. Se isto for verdadeiro, uma lista de padrões de escaneamento de ordens de escaneamento predefinidas é definida 511 de modo a compreender ordens de escaneamento diagonal, ordem Z, e hélice. Se isto for falso, etapa 507 é executada. Na etapa 507, uma lista de padrões de escaneamento de ordens de escaneamento predefinidas é definida de modo a compreender uma ordem de escaneamento diagonal.[0179] In step 506, it is determined whether the prediction mode of that block is an angular intraprediction mode close to the diagonal. If this is true, a scan pattern list of predefined scan orders is defined 511 to comprise diagonal, Z-order, and helix scan orders. If this is false, step 507 is performed. In step 507, a list of scan patterns of predefined scan orders is defined to comprise a diagonal scan order.
[0180] Após definir a lista de ordens de escaneamento de ordens de escaneamento predefinidas para aquele bloco, a lista de ordens de escaneamento é ajustada 512 utilizando o modo de porcionamento, os parâmetros de transformada e parâmetros de quantização daquele bloco.[0180] After defining the scan order list of predefined scan orders for that block, the scan order list is adjusted 512 using the portioning mode, transform parameters, and quantization parameters of that block.
[0181] Em uma etapa 513, os um ou mais ordens de escaneamento geradas providas pelo gerador de ordem de escaneamento são adicionadas às ordens de escaneamento predefinidas, de modo que, por exemplo, o seletor de ordem de escaneamento 109 do codificador pode selecionar das ordens de escaneamento predefinidas e geradas, a ordem de escaneamento que provê o custo de RD mínimo.[0181] In a step 513, the one or more generated scan orders provided by the scan order generator are added to the predefined scan orders, so that, for example, the encoder scan order selector 109 can select from Predefined and generated scan orders, the scan order that provides the minimum RD cost.
[0182] Como mostrado na Figura 5, as ordens de escaneamento predefinidas podem depender do modo de predição e/ou modo de particionamento e/ou parâmetros de transformada e/ou parâmetros de quantização. Por exemplo, as ordens de escaneamento mais prováveis para os casos de intramodos de CC ou planos são a ordem Z e ordem de escaneamento diagonal. Para modos angulares, a direcionalidade do sinal residual pode ser levada em conta de modo que as ordens de escaneamento predefinidas podem ser selecionadas para serem ortogonais para a direcionalidade de intramodo.[0182] As shown in Figure 5, the predefined scan orders may depend on the prediction mode and/or partitioning mode and/or transform parameters and/or quantization parameters. For example, the most likely scan orders for DC or flat intramode cases are Z order and diagonal scan order. For angular modes, the directionality of the residual signal can be taken into account so that predefined scan orders can be selected to be orthogonal to the intramode directionality.
[0183] Posteriormente esta lista de ordens de escaneamento predefinidas pode ser atualizada de acordo com outros parâmetros de codificação, tal como o modo de porcionamento, os parâmetros de transformada e parâmetros de quantização. Especificamente, esta lista pode ser atualizada de acordo com os tamanhos de particionamento e transformada.[0183] Later this list of predefined scan orders can be updated according to other coding parameters, such as portioning mode, transform parameters and quantization parameters. Specifically, this list can be updated according to the partitioning and transformed sizes.
[0184] Por exemplo, no modo de interpredição, modos de predição não quadrada podem também indicar a natureza direcional do sinal residual e a lista de ordens de escaneamento predefinidas podem ser atualizadas consequentemente: se um retângulo de particionamento for orientado verticalmente então as ordens de escaneamento horizontal e horizontaldiagonal são adicionadas à lista de escaneamento. A lista de ordens de escaneamento predefinidas é atualizada consequentemente para o particionamento horizontalmente orientado: em tal caso, escaneamentos vertical e vertical-diagonal são adicionados às ordens de escaneamento predefinidas.[0184] For example, in interprediction mode, non-square prediction modes can also indicate the directional nature of the residual signal and the list of predefined scan orders can be updated accordingly: if a partitioning rectangle is oriented vertically then the predefined scan orders can be updated accordingly. horizontal and horizontaldiagonal scans are added to the scan list. The list of predefined scan orders is updated accordingly for horizontally oriented partitioning: in such a case, vertical and vertical-diagonal scans are added to the predefined scan orders.
[0185] Por exemplo, a lista de ordens de escaneamento predefinidas pode ser atualizada de acordo com os tamanhos de transformada. Menores tamanhos de TU introduzem restrições sobre alguns padrões de escaneamento. Então, por exemplo, escaneamentos de hélice podem ser excluídos da lista de ordem de escaneamento predefinidas se o tamanho de TU for menor do que 8x8 pixels.[0185] For example, the list of predefined scan orders can be updated according to transform sizes. Smaller TU sizes introduce restrictions on some scanning patterns. So, for example, helix scans may be excluded from the predefined scan order list if the TU size is smaller than 8x8 pixels.
[0186] Os parâmetros de quantização (QP) podem afetar tanto a lista de ordens de escaneamento predefinidas quanto o método de sinalização. Para altos valores de QP, o número de padrões de escaneamento pode ser reduzido. Por exemplo, os escaneamentos de hélice podem ser pulados para todos os tamanhos de TU, porque os QTCs tornam-se mais alinhados com o canto esquerdo, topo e superior esquerdo da matriz de QTCs.[0186] Quantization parameters (QP) can affect both the list of predefined scan orders and the signaling method. For high QP values, the number of scan patterns can be reduced. For example, helix scans may be skipped for all TU sizes because the QTCs become more aligned with the left, top, and top left of the QTC array.
[0187] Um exemplo da dependência do esquema de sinalização em QP está mostrado na Figura 6. A Figura 6 especificamente mostra um fluxograma 600 de sinalização implícita e explicita de ordem de escaneamento selecionada de acordo com uma modalidade da presente invenção.[0187] An example of the dependence of the signaling scheme on QP is shown in Figure 6. Figure 6 specifically shows a flowchart 600 of implicit and explicit signaling of selected scan order in accordance with an embodiment of the present invention.
[0188] Em uma primeira etapa 601, um valor de QP é obtido. Se este valor de QP for menor do que ou igual 602 a um valor de QP para altas taxas de bits QPHBR, então as informações de ordem de escaneamento SCAN_IDX devem ser codificadas em entropia 603 no fluxo de bits.[0188] In a first step 601, a QP value is obtained. If this QP value is less than or equal 602 to a QP value for high bitrates QPHBR, then the SCAN_IDX scan order information must be entropy 603 encoded in the bitstream.
[0189] Se um valor de QP estiver acima do valor QPHBR e abaixo de um valor de QP adicional para baixas taxas de bits QPLBR, então as informações de ordem de escaneamento SCAN_IDX devem ser parcialmente codificadas em entropia 606 e parcialmente ocultas dentro dos coeficientes de transformada quantizados pelo módulo de ocultação 112.[0189] If a QP value is above the QPHBR value and below an additional QP value for low bitrates QPLBR, then the SCAN_IDX scan order information must be partially entropy encoded 606 and partially hidden within the scan coefficients. transformed quantized by the hiding module 112.
[0190] Se o valor de QP estiver acima do valor QPHBR e acima ou igual àquele valor de QP adicional para baixas taxas de bits QPLBR, então as informações de ordem de escaneamento SCAN_IDX devem ser ocultas 605 dentro dos coeficientes de transformada quantizados pelo módulo de ocultação 112.[0190] If the QP value is above the QPHBR value and above or equal to that additional QP value for low bit rates QPLBR, then the SCAN_IDX scan order information must be hidden 605 within the transform coefficients quantized by the scanning module. concealment 112.
[0191] Consequentemente, a ocultação torna-se mais dispendiosa com o aumento de taxa de bits e é totalmente desligas para altas taxas de bits. Para baixas taxas de bits vice-versa, a ocultação torna-se mais preferível. De outro modo, isto é, para taxas de bits médias, ambos os mecanismos de sinalização estão sendo utilizados. A seleção do mecanismo de sinalização é executada para cada bloco ou TU dependendo se a ocultação pode ser executada para este.[0191] Consequently, obfuscation becomes more expensive with increasing bitrate and is completely turned off for high bitrates. For low bitrates vice versa, hiding becomes more preferable. Otherwise, that is, for medium bitrates, both signaling mechanisms are being used. The selection of the signaling mechanism is performed for each block or TU depending on whether obfuscation can be performed for it.
[0192] De acordo com a presente invenção, um decodificador 200 para decodificar coeficientes de blocos de uma sequência de vídeo de um fluxo de bits 207 está proposto. O decodificador compreende:[0192] According to the present invention, a decoder 200 for decoding block coefficients of a video sequence of a bit stream 207 is proposed. The decoder comprises:
[0193] - um módulo de decodificação 206 configurado para decodificar um ou mais vetores de coeficiente de cada bloco do fluxo de bits 207,[0193] - a decoding module 206 configured to decode one or more coefficient vectors from each block of the bit stream 207,
[0194] - um módulo de verificação 212 configurado para reconstruir, para pelo menos um bloco, informações ocultas de um ou mais coeficientes daquele bloco, as informações ocultas constituindo ou formando parte de informações de ordem de escaneamento SCAN_IDX associadas com aquele bloco,[0194] - a scanning module 212 configured to reconstruct, for at least one block, hidden information of one or more coefficients of that block, the hidden information constituting or forming part of SCAN_IDX scan order information associated with that block,
[0195] - um seletor de ordem de escaneamento 209 configurado para selecionar uma ordem de escaneamento para cada bloco de um conjunto de ordens de escaneamento, de preferência de um conjunto de ordens de escaneamento predefinidas e geradas, com base nas informações de ordem de escaneamento SCAN_IDX associadas com aquele bloco,[0195] - a scan order selector 209 configured to select a scan order for each block from a set of scan orders, preferably from a set of predefined and generated scan orders, based on the scan order information SCAN_IDX associated with that block,
[0196] - um desserializador 204 configurado para escaneamento inverso, para cada bloco, os um ou mais vetores de coeficiente daquele bloco de acordo com a ordem de escaneamento selecionada para aquele bloco de modo a obter uma matriz de coeficientes.[0196] - a deserializer 204 configured to reverse scan, for each block, the one or more coefficient vectors of that block in accordance with the scan order selected for that block in order to obtain a matrix of coefficients.
[0197] De acordo com a presente invenção, um codificador correspondente 100 para codificar coeficientes de blocos de uma sequência de vídeo em um fluxo de bits 107 está proposto, os coeficientes de cada bloco estando contidos em uma respectiva matriz de coeficientes. O codificador compreende:[0197] According to the present invention, a corresponding encoder 100 for encoding block coefficients of a video sequence into a bit stream 107 is proposed, the coefficients of each block being contained in a respective coefficient matrix. The encoder comprises:
[0198] - um seletor de ordem de escaneamento 109 configurado para selecionar uma ordem de escaneamento para cada bloco de um conjunto de ordens de escaneamento, de preferência de um conjunto de ordens de escaneamento predefinidas e geradas,[0198] - a scan order selector 109 configured to select a scan order for each block from a set of scan orders, preferably from a set of predefined and generated scan orders,
[0199] - um serializador 104 configurado para escaneamento, para cada bloco, a matriz de coeficientes daquele bloco de acordo com a ordem de escaneamento selecionada para aquele bloco de modo a obter um ou mais vetores de coeficiente,[0199] - a serializer 104 configured to scan, for each block, the coefficient matrix of that block in accordance with the scan order selected for that block in order to obtain one or more coefficient vectors,
[0200] - um módulo de ocultação 112 configurado para ocultar, para pelo menos um bloco, as informações de ordem de escaneamento SCAN_IDX que identificam a ordem de escaneamento selecionada para aquele bloco pelo menos parcialmente em um ou mais coeficientes daquele bloco,[0200] - a hiding module 112 configured to hide, for at least one block, the SCAN_IDX scan order information that identifies the selected scan order for that block at least partially in one or more coefficients of that block,
[0201] - um módulo de codificação 106 configurado para codificar os vetores de coeficiente dentro do fluxo de bits 107.[0201] - an encoding module 106 configured to encode the coefficient vectors within the bit stream 107.
[0202] A eficiência de codificação pode então ser aperfeiçoada porque o excesso de processamento de sinalização no fluxo de bits 107, 207 gerado pelo codificador e recebido pelo decodificador pode ser reduzido.[0202] Coding efficiency can then be improved because excess signaling processing in the bit stream 107, 207 generated by the encoder and received by the decoder can be reduced.
[0203] De preferência, o módulo de verificação 212 está configurado para reconstruir, para pelo menos um bloco, as informações ocultas de pelo menos um vetor de coeficiente de ocultação escolhido dentre os um ou mais vetores de coeficiente obtidos para aquele bloco. Também, o módulo de ocultação 112 está configurado para ocultar, para pelo menos um bloco, as informações de ordem de escaneamento SCAN_IDX em pelo menos um vetor de coeficiente de ocultação escolhido dentre os um ou mais vetores de coeficiente obtidos para aquele bloco.[0203] Preferably, the verification module 212 is configured to reconstruct, for at least one block, the hidden information of at least one hiding coefficient vector chosen from the one or more coefficient vectors obtained for that block. Also, the hiding module 112 is configured to hide, for at least one block, the SCAN_IDX scan order information in at least one hiding coefficient vector chosen from the one or more coefficient vectors obtained for that block.
[0204] A reconstrução e a ocultação podem depender de uma condição de ocultação. Tal condição de ocultação compreende uma comparação de um parâmetro que depende do vetor de coeficiente de ocultação com um limite.[0204] Reconstruction and concealment may depend on a concealment condition. Such a concealment condition comprises a comparison of a parameter that depends on the concealment coefficient vector with a threshold.
[0205] O parâmetro pode ser:[0205] The parameter can be:
[0206] - um número de coeficientes significativos, isto é, não zero,dentro do vetor de coeficiente de ocultação, ou[0206] - a number of significant, i.e., non-zero, coefficients within the occultation coefficient vector, or
[0207] - uma distância entre primeiro e último coeficientes significativos dentro do vetor de coeficiente de ocultação, ou[0207] - a distance between first and last significant coefficients within the occultation coefficient vector, or
[0208] - uma razão de um valor absoluto máximo para um valor absoluto mínimo não zero dos coeficientes dentro do vetor de coeficiente de ocultação,[0208] - a ratio of a maximum absolute value to a non-zero minimum absolute value of the coefficients within the hiding coefficient vector,
[0209] em que a condição de ocultação é verdadeira se o parâmetro estiver acima do limite, e falsa se o parâmetro estiver abaixo do limite.[0209] where the hiding condition is true if the parameter is above the threshold, and false if the parameter is below the threshold.
[0210] As Figuras 7 e 8 mostram uma condição de ocultação de acordo com uma modalidade da presente invenção. Especificamente, A Figura 7 mostra um bloco ou TU o qual está dividido em grupos de coeficientes (CGs), cada vetor de coeficiente correspondendo a um grupo de coeficientes. A Figura 8 mostra um exemplo de vetor de coeficiente que ilustra o caso que o parâmetro consiste na distância N entre o primeiro e o último coeficientes significativos, isto é, não zero dentro do vetor de coeficiente. Se o valor N estiver acima de um limite TSIG, então a condição de ocultação é verdadeira e as informações de ordem de escaneamento podem ser ocultas naquele vetor de coeficiente.[0210] Figures 7 and 8 show a concealment condition in accordance with an embodiment of the present invention. Specifically, Figure 7 shows a block or TU which is divided into groups of coefficients (CGs), each coefficient vector corresponding to a group of coefficients. Figure 8 shows an example of a coefficient vector that illustrates the case that the parameter consists of the distance N between the first and last significant coefficients, that is, non-zero within the coefficient vector. If the N value is above a TSIG threshold, then the hiding condition is true and scan order information can be hidden in that coefficient vector.
[0211] Especificamente, o módulo de verificação 212 pode estar configurado para reconstruir as informações ocultas do vetor de coeficiente de ocultação aplicando uma função de verificação no vetor de coeficiente de ocultação, um resultado da função de verificação sendo as informações ocultas. Também, o módulo de ocultação 112 está configurado para ocultar, para pelo menos um bloco, as informações de ordem de escaneamento SCAN_IDX no vetor de coeficiente de ocultação:[0211] Specifically, the verification module 212 may be configured to reconstruct the hidden information of the occultation coefficient vector by applying a verification function to the occultation coefficient vector, a result of the verification function being the hidden information. Also, the hiding module 112 is configured to hide, for at least one block, the SCAN_IDX scan order information in the hiding coefficient vector:
[0212] - aplicando uma função de verificação no vetor de coeficiente de ocultação de modo a obter um resultado da função de verificação,[0212] - applying a check function on the occultation coefficient vector so as to obtain a result of the check function,
[0213] - determinando se o resultado da função de verificação corresponde às informações de ordem de escaneamento SCAN_IDX,[0213] - determining whether the result of the check function matches the SCAN_IDX scan order information,
[0214] - se não, modificar o vetor de coeficiente de ocultação de modo que um resultado da função de verificação corresponda às informações de ordem de escaneamento SCAN_IDX.[0214] - if not, modify the occultation coefficient vector so that a result of the check function matches the SCAN_IDX scan order information.
[0215] Está proposto que o resultado da função de verificação depende de coordenadas (x, y), dentro da matriz de coeficientes, do último coeficiente significativo do vetor de coeficiente de ocultação. A função de verificação pode ser, por exemplo, a seguinte função: mod( x+y + R ,2) x e y sendo as coordenadas, e R sendo um valor de número inteiro.[0215] It is proposed that the result of the verification function depends on coordinates (x, y), within the matrix of coefficients, of the last significant coefficient of the concealment coefficient vector. The check function could be, for example, the following function: mod( x+y + R ,2) x and y being the coordinates, and R being an integer value.
[0216] Por exemplo, a função de verificação pode também ser uma das seguintes funções ou outras funções de verificação conhecidas:[0216] For example, the check function may also be one of the following functions or other known check functions:
[0217] - uma função de verificação de paridade aplicada aos bits menos significativos de algum coeficiente selecionado da matriz de coeficientes utilizando um padrão binário, e[0217] - a parity check function applied to the least significant bits of some coefficient selected from the coefficient matrix using a binary pattern, and
[0218] - uma função de verificação de paridade aplicada a um índice de posição do último ou primeiro coeficiente não zero ou a uma combinação linear do índice de posição do último ou primeiro coeficiente não zero.[0218] - a parity check function applied to a position index of the last or first non-zero coefficient or to a linear combination of the position index of the last or first non-zero coefficient.
[0219] Neste aspecto, a Figura 9 mostra uma decodificação de entropia 901 de coeficientes de acordo com a técnica anterior, e especificamente de acordo com o padrão de codificação de vídeo H.265. A decodificação de entropia 901 compreende decodificar 902 coordenadas X e Y do último QTC significativo, isto é, não zero. Então, uma máscara de valores significância de QTCs (máscara de significância) é sinalizada 903 de acordo com uma ordem de escaneamento, iniciando do último QTC significativo. Os valores e sinais são analisados 904, 905 do fluxo de bits somente para os valores de coeficiente significativos.[0219] In this aspect, Figure 9 shows an entropy 901 decoding of coefficients in accordance with the prior art, and specifically in accordance with the H.265 video coding standard. Entropy decoding 901 comprises decoding 902 X and Y coordinates of the last significant, i.e. non-zero, QTC. Then, a mask of significance values of QTCs (significance mask) is flagged 903 according to a scanning order, starting from the last significant QTC. The values and signals are analyzed 904, 905 of the bit stream only for the significant coefficient values.
[0220] Com isto, um comprimento da máscara de significância 1D pode ser derivado da ordem de escaneamento e coordenadas do último QTC significativo. Obviamente, não é suficiente apenas aplicar métodos de ocultação de dados conhecidos para embutir dados de indicação de ordem de escaneamento em QTCs, porque os QTCs são analisados do fluxo de bits utilizando as informações de ordem de escaneamento.[0220] With this, a length of the 1D significance mask can be derived from the scan order and coordinates of the last significant QTC. Obviously, it is not enough to just apply known data hiding methods to embed scan order indication data into QTCs, because QTCs are parsed from the bit stream using the scan order information.
[0221] A Figura 10 mostra uma modalidade da presente invenção, e especificamente uma modalidade para aperfeiçoar a eficiência de codificação reduzindo o excesso de processamento de sinalização no fluxo de bits 107, 207 gerado pelo codificador e recebido pelo decodificador.[0221] Figure 10 shows an embodiment of the present invention, and specifically an embodiment for improving coding efficiency by reducing signaling overhead in the bit stream 107, 207 generated by the encoder and received by the decoder.
[0222] Na modalidade da Figura 10, uma ocultação de ordem de escaneamento dentro de QTCs é possível. Durante o processo de codificação, diversas diferentes ordens de escaneamento - indexadas por SCAN_IDX - são aplicadas durante os estágios de quantização 1001 e ocultação 1002. Procedimento de quantização 1001 pode utilizar informações de escaneamento para estimar o número de bits (isto é, taxa de bits) para codificar os valores de QTC e para executar uma otimização de distorção de taxa ajustando estes valores de QTC com relação à taxa de bits estimada.[0222] In the embodiment of Figure 10, a hiding of scanning order within QTCs is possible. During the encoding process, several different scan orders - indexed by SCAN_IDX - are applied during the quantization 1001 and hiding 1002 stages. Quantization procedure 1001 may utilize scanning information to estimate the number of bits (i.e., bit rate ) to encode the QTC values and to perform a rate distortion optimization by adjusting these QTC values with respect to the estimated bitrate.
[0223] Se a ocultação não teve sucesso 1003, isto é, por exemplo se a condição de ocultação for falsa, então outra ordem de escaneamento SCAN_IDX é selecionada 1004. De preferência outra ordem de escaneamento é selecionada até que a ocultação tenha sucesso. Se a o escaneamento selecionado for uma ordem de escaneamento padrão, por exemplo, nenhuma ocultação é executada.[0223] If the hiding was unsuccessful 1003, that is, for example if the hiding condition is false, then another SCAN_IDX scan order is selected 1004. Preferably another scanning order is selected until the hiding is successful. If the selected scan is a standard scan order, for example, no masking is performed.
[0224] Se ocultação tiver sucesso ou a ordem de escaneamento selecionada for aquele padrão, então é possível reordenar 1005 os QTCs de acordo com ordem de escaneamento padrão. As próximas etapas compreendem serializar 1006 os QTCs e codificar em entropia 1007. As ditas etapas 1006 e 1007 podem corresponder aos blocos 104 e 106 da Figura 1. A serialização 1006 pode também ser inserida entre 1001 e 1002 como é o caso na Figura 1.[0224] If hiding is successful or the selected scan order is that of the default, then it is possible to reorder 1005 the QTCs according to the default scan order. The next steps comprise serializing 1006 the QTCs and entropy coding 1007. Said steps 1006 and 1007 may correspond to blocks 104 and 106 of Figure 1. Serialization 1006 may also be inserted between 1001 and 1002 as is the case in Figure 1.
[0225] Ocultar 1002 compreende verificar a condição de ocultação, e também modificar os QTCs de modo que a condição de ocultação seja atendida. Esta modificação pode incluir: alteras os valores de QTCs, ajustar os valores de QTCs para zero e tornar os QTCs não significativos (de valor zero) para serem uns significativos (não zero). Obviamente, é sempre possível ajustar os QTCs de modo que, condição de ocultação seja atendida. No entanto, os ajustes de QTCs no lado do codificador estão constritos pela distorção incorrida por estes ajustes, e constrições de ajuste razoáveis são aplicadas. Por exemplo, por causa do procedimento de quantização um ajuste de coeficiente razoável é mais ou menos um. Esta constrição torna possível que a operação de ocultação pode não ser executada, isto é, não houveram possíveis ajustes de QTCs para atender a condição de ocultação (1003 avaliam para o caso "não" para escaneamentos não padrão).[0225] Hiding 1002 comprises checking the hiding condition, and also modifying the QTCs so that the hiding condition is met. This modification may include: changing the values of QTCs, setting the values of QTCs to zero, and making non-significant (zero-valued) QTCs to be significant (non-zero) ones. Of course, it is always possible to adjust the QTCs so that the concealment condition is met. However, the QTC adjustments on the encoder side are constrained by the distortion incurred by these adjustments, and reasonable adjustment constraints apply. For example, because of the quantization procedure a reasonable coefficient fit is plus or minus one. This constraint makes it possible that the concealment operation may not be performed, ie there were no possible adjustments of QTCs to meet the concealment condition (1003 evaluate to the "no" case for non-default scans).
[0226] No lado do decodificador, após a decodificação de entropia 1011, as informações ocultas são recuperadas 1012 de dados serializados, e portanto o estágio de ocultação também requer informações sobre a ordem de escaneamento que será utilizada no lado do decodificador de modo que, estas possam ser embutidas com relação à ordem de escaneamento selecionada. O procedimento de ocultação de dados pode também ser executado juntamente com quantização, como é feito, por exemplo, Para Ocultação de Bit de Sinalização. No entanto, a ocultação pode falhar para alguns dos QTCs, porque a condição de ocultação não é atendida. Por exemplo, a TU tem um número de QTCs significativos que é menor do que um limite. Neste caso um processamento adicional depende se uma ordem de escaneamento é aquele padrão. Se o escaneamento padrão foi utilizado, o decodificador pode derivá-lo 1015 aplicando a mesma condição de ocultação a QTCs analisados durante estágio de decodificação de entropia. De outro modo, a ordem de escaneamento é pulada e a próxima ordem de escaneamento está sendo verificada se disponível.[0226] On the decoder side, after entropy decoding 1011, hidden information is retrieved 1012 from serialized data, and therefore the hiding stage also requires information about the scanning order that will be used on the decoder side so that, these can be embedded with respect to the selected scan order. The data hiding procedure can also be performed together with quantization, as is done, for example, for Signaling Bit Hiding. However, concealment may fail for some of the QTCs because the concealment condition is not met. For example, the TU has a number of significant QTCs that is less than a threshold. In this case further processing depends on whether a scan order is that standard. If standard scanning was used, the decoder can derive it 1015 by applying the same concealment condition to QTCs analyzed during the entropy decoding stage. Otherwise, the scan order is skipped and the next scan order is being checked if available.
[0227] Se ordem de escaneamento padrão estiver em efeito, reordenar o estágio de QTCs pode ser pulado, porque os escaneamentos de fonte e de alvo são os mesmos. Para as ordens de escaneamento não padrão é proposto executar uma reordenação de coeficientes, de modo que, os estágios de codificação de entropia e decodificação de entropia possam ser executados sem mudanças. Uma implementação específica pode utilizar uma operação de remapeamento para evitar uma operação de cópia desnecessária para reordenamento, isto é, redefinindo uma coincidência entre coordenadas de matriz de QTC 2D e posição 1D dentro de um escaneamento selecionado. No estágio de serialização / desserialização este remapeamento pode prover índices de contexto de CABAC e coordenadas de último QTC significativo para a dada posição de escaneamento 1D como ser os QTCs fossem reordenados.[0227] If default scan order is in effect, reordering the QTC stage can be skipped, because the source and target scans are the same. For the non-standard scanning orders it is proposed to perform a coefficient reordering, so that the entropy encoding and entropy decoding stages can be performed without changes. A specific implementation may use a remapping operation to avoid an unnecessary copy operation for reordering, i.e., redefining a match between 2D QTC array coordinates and 1D position within a selected scan. At the serialization/deserialization stage this remapping can provide CABAC context indices and last significant QTC coordinates for the given 1D scan position as if the QTCs were reordered.
[0228] A Figura 11 mostra uma reordenação de coeficientes de acordo com a presente invenção, e especificamente mostra um exemplo de reordenação de QTCs para um bloco 4x4: reordenação de escaneamento diagonal para horizontal.[0228] Figure 11 shows a reordering of coefficients in accordance with the present invention, and specifically shows an example of reordering QTCs for a 4x4 block: diagonal to horizontal scan reordering.
[0229] Neste aspecto, é referido ao documento "Transform Coefficient Coding in HEVC" by Joel Sole et al., IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL. 22, NO. 12, DECEMBER 2012, pages 1765-1777. Na Seção V.B deste documento, está declarado que um sinalizador de significância é codificado utilizando um modelo de contexto para cada coeficiente entre o último em ordem de escaneamento (o qual é excluído) e o coeficiente CC. Para um bloco de transformada 4 x 4 TB, isto é, matriz de QTCs, o contexto depende da posição do coeficiente dentro de TB, como em H.264/AVC. Apesar do fato que uma codificação de entropia é executada para dados serializados e binarizados, um modelo de contesto para codificar um bit de significância de um QTC é selecionado dependendo da posição deste QTC dentro de uma matriz de QTCs, e a significância de QTCs espacialmente vizinhos (direito e inferior). O decodificador do estado da técnica analisa o bit de significância do fluxo de bits utilizando um modelo de contexto, que é selecionado de acordo com a posição de QTC para o qual este bit está sendo analisado e as posições de QTC significativos anteriormente decodificados. Se a ordem de escaneamento estiver indisponível no decodificador, a posição espacial of QTC é indefinida e com isto, o modelo de contexto não pode ser derivado.[0229] In this regard, reference is made to the document "Transform Coefficient Coding in HEVC" by Joel Sole et al., IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL. 22, NO. 12, DECEMBER 2012, pages 1765-1777. In Section V.B of this document, it is stated that a significance flag is encoded using a context template for each coefficient between the last in scan order (which is excluded) and the CC coefficient. For a 4 x 4 TB transform block, ie matrix of QTCs, the context depends on the position of the coefficient within the TB, as in H.264/AVC. Despite the fact that an entropy encoding is performed for both serialized and binarized data, a contest model for encoding a significance bit of a QTC is selected depending on the position of this QTC within an array of QTCs, and the significance of spatially neighboring QTCs. (right and bottom). The prior art decoder analyzes the significance bit of the bit stream using a context model, which is selected according to the QTC position for which this bit is being analyzed and the previously decoded significant QTC positions. If the scan order is unavailable in the decoder, the spatial position of QTC is undefined and thus the context model cannot be derived.
[0230] O estágio de reordenação proposto, como mostrado por exemplo, na Figura 11, antes do codificador de entropia, assegura que o codificador e o decodificador utilizarão a mesma ordem de escaneamento e os mesmos modelos de contexto para os QTCs codificados / decodificados.[0230] The proposed reordering stage, as shown for example in Figure 11, before the entropy encoder, ensures that the encoder and decoder will use the same scan order and the same context models for the encoded/decoded QTCs.
[0231] A Figura 11 especificamente descreve um caso quando, após a quantização, uma matriz of QTCs foi obtida (parte esquerda inferior desta) com o último coeficiente significativo (para escaneamento diagonal) localizado em (x=1, y=2). No caso de escaneamento diagonal 8 bits de significância de coeficiente devem ser codificados.[0231] Figure 11 specifically describes a case when, after quantization, a matrix of QTCs was obtained (lower left part of this) with the last significant coefficient (for diagonal scanning) located at (x=1, y=2). In case of diagonal scanning 8 bits of coefficient significance must be encoded.
[0232] De modo a selecionar outra ordem de escaneamento (por exemplo, pelo seletor 109), por exemplo, escaneamento horizontal ao invés de um diagonal, pode ser benéfico codificar as primeiras duas linhas of Bits de QTCs mais dois bits de QTC da terceira linha (10 QTCs totais). No entanto, se estes coeficientes forem reordenados de escaneamento diagonal para um horizontal (como mostrado na parte superior da Figura 11), a posição dos últimos mesmos 8 bits de QTC deve ser codificada.[0232] In order to select another scan order (e.g., by selector 109), e.g., horizontal scanning rather than a diagonal one, it may be beneficial to encode the first two lines of QTC bits plus two QTC bits from the third line (10 total QTCs). However, if these coefficients are reordered from a diagonal to a horizontal scan (as shown at the top of Figure 11), the position of the same last 8 bits of QTC must be encoded.
[0233] Para o módulo de codificação de entropia 106, dois escaneamentos estão disponíveis:[0233] For the entropy coding module 106, two scans are available:
[0234] - um padrão, que seria utilizado pelo módulo de decodificação de entropia 206 para analisar o fluxo de bits[0234] - a pattern, which would be used by the entropy decoding module 206 to analyze the bit stream
[0235] - o escaneamento selecionado pelo seletor de ordem de escaneamento 109.[0235] - the scan selected by scan order selector 109.
[0236] Quando o módulo de codificação de entropia seleciona um modelo de contexto de acordo com a posição de QTCs, este utiliza não apenas X,Y definidos pelo seletor de ordem de escaneamento 109, mas recalcula X,Y para a posição correspondente do QTC após este ser reordenado.[0236] When the entropy coding module selects a context model according to the position of QTCs, it not only uses X,Y defined by the scan order selector 109, but recalculates X,Y for the corresponding position of the QTC after it is reordered.
[0237] Por exemplo, no exemplo da Figura 11, é proposto considerar um caso quando o seletor de ordem de escaneamento 109 selecionou um escaneamento diagonal e o escaneamento padrão é um horizontal. O módulo de codificação de entropia 106 codificará o coeficiente colocado na posição (x=1, y=1) (marcado como "E" para escaneamento diagonal) com utilização de módulo de contexto de posição reordenada (x0, y=2) (também marcada como "E" para escaneamento horizontal), assim como os coeficientes vizinhos serão definidos não como "I" e "H", mas como "F" e "I".[0237] For example, in the example of Figure 11, it is proposed to consider a case when the scan order selector 109 selected a diagonal scan and the default scan is a horizontal one. The entropy coding module 106 will encode the coefficient placed at position (x=1, y=1) (marked as "E" for diagonal scanning) using the reordered position context module (x0, y=2) (also marked as "E" for horizontal scanning), as well as neighboring coefficients will be defined not as "I" and "H", but as "F" and "I".
[0238] Esta operação de reordenamento pode ser implementada como um remapeamento de coordenadas X e Y de um escaneamento selecionado para aquele padrão, isto é, para implementar este reordenamento não é necessário executar uma cópia de memória / operações de troca para QTCs mas apenas prover uma tabela de consulta para coordenadas x e y para cada par (escaneamento selecionado, escaneamento padrão).[0238] This reordering operation can be implemented as a remapping of X and Y coordinates of a selected scan to that pattern, i.e. to implement this reordering it is not necessary to perform a memory copy/swap operations for QTCs but just provide a lookup table for x and y coordinates for each pair (selected scan, standard scan).
[0239] A ocultação de dados pode utilizar métodos conhecidos para embutir a ordem de escaneamento em QTCs. No entanto, no presente caso de ocultação da ordem de escaneamento, uma possibilidade adicional consiste em que uma ordem de escaneamento pode ser especificada por uma condição aplicada a coordenadas do último valor (x, y) de QTC significativo, por exemplo: mod(x + y,2) = scan_idx. (C1)[0239] Data hiding may utilize known methods to embed scan order in QTCs. However, in the present case of scan order concealment, an additional possibility is that a scan order can be specified by a condition applied to coordinates of the last significant QTC (x, y) value, for example: mod(x + y,2) = scan_idx. (C1)
[0240] Neste caso, o codificador pode modificar a posição do ultimo QTC significativo de modo a indicar um escaneamento que deve ser utilizado pelo decodificador. A condição de ocultação para o método de ocultação descrito é um conjunto de coordenadas especificado para uma ordem de escaneamento. Neste aspecto, a Figura 12 mostra um exemplo de condições de ocultação definidas para ordens de escaneamento.[0240] In this case, the encoder can modify the position of the last significant QTC in order to indicate a scan that should be used by the decoder. The hiding condition for the described hiding method is a set of coordinates specified for a scanning order. In this regard, Figure 12 shows an example of masking conditions defined for scan orders.
[0241] Na Figura 12, marcas "X" indicam posições que são verificadas utilizando a condição (C1). É também possível combinar esta proposta com ocultação de dados dentro de valores de QTC. Por exemplo, o valor recuperado da última posição QTC significativo pode ser utilizado como parte de condição de ocultação para ocultação dentro de valores de QTCs.[0241] In Figure 12, "X" marks indicate positions that are checked using condition (C1). It is also possible to combine this proposal with data hiding within QTC values. For example, the value retrieved from the last significant QTC position can be used as part of the hiding condition for hiding within values of QTCs.
[0242] É conhecido que a ocultação é mais eficiente se os sinais de hospedeiro e alvo tiverem uma distribuição universal. Outra modalidade desta invenção é a possibilidade de tornar a distribuição de (C1) mais próxima da universal por randomização. Especificamente, uma fonte adicional de ruído randômico R pode ser adicionada: mod(x + y + R,2) = scan_idx.[0242] It is known that concealment is more efficient if the host and target signals have a universal distribution. Another modality of this invention is the possibility of making the distribution of (C1) closer to universal by randomization. Specifically, an additional source of random noise R can be added: mod(x + y + R,2) = scan_idx.
[0243] O valor de R deve ser tão não correlacionado com a ordem de escaneamento selecionada quanto possível. Por exemplo, este pode ser um número de TUs vizinhas, um valor de paridade de uma soma de valores de amostra de referência, ou um número total de bits codificados.[0243] The R value should be as uncorrelated with the selected scan order as possible. For example, this may be a number of neighboring TUs, a parity value of a sum of reference sample values, or a total number of encoded bits.
[0244] Assim, a invenção propõe, reduzir o excesso de processamento de sinalização, derivar uma ordem de escaneamento antes da desserialização de QTCs, durante a decodificação de entropia. Quando ocultando dados relativos a TU (tal como modo de intrapredição, sinalizador de filtragem, etc.) as informações sendo ocultas são utilizadas após os estágios de desserialização e dequantização. A invenção propõe assim uma possibilidade de utilizar dados ocultos em QTCs antes destes coeficientes serem desserializados.[0244] Thus, the invention proposes, to reduce excess signaling processing, to derive a scanning order before deserialization of QTCs, during entropy decoding. When hiding TU-related data (such as intraprediction mode, filtering flag, etc.) the information being hidden is used after the deserialization and dequantization stages. The invention thus proposes a possibility of using hidden data in QTCs before these coefficients are deserialized.
[0245] A presente invenção descreve um procedimento de quantização que é aplicável aos resíduos obtidos após os processos de predição e transformada utilizados, por exemplo, para codificação de imagens móveis. O objetivo da presente invenção é aperfeiçoar a eficiência de distorção de taxa de quantização estendendo o conjunto de ordens de escaneamento disponíveis selecionadas utilizando diferentes características de codificação (por exemplo, modo de intrapredição, tamanho de bloco, modo de particionamento) no nível de TU. Uma implementação específica desta invenção está apresentada como uma técnica que simultaneamente utiliza mecanismos de seleção de escaneamento dependente de modo e baseada em RDO.[0245] The present invention describes a quantization procedure that is applicable to the residuals obtained after the prediction and transform processes used, for example, for coding moving images. The aim of the present invention is to improve the quantization rate distortion efficiency by extending the set of selected available scan orders using different coding characteristics (eg, intraprediction mode, block size, partitioning mode) at the TU level. A specific implementation of this invention is presented as a technique that simultaneously uses mode-dependent and RDO-based scan selection mechanisms.
[0246] A presente invenção resolve problemas relativos à seleção baseada em RDO de ordens de escaneamento. Especificamente, esta resolve o problema que ordens de escaneamento adaptáveis com base em estatística reunidas de blocos anteriormente codificados ou decodificados nem sempre proveem uma melhor eficiência de codificação com relação a padrões de escaneamento pré-definidos conhecidos. Assim, um procedimento baseado em RDO para selecionar apenas um escaneamento entre as ordens de escaneamento geradas adaptáveis ao conteúdo e os padrões de escaneamento pré-definidos é proposto como uma solução.[0246] The present invention solves problems related to RDO-based selection of scan orders. Specifically, it solves the problem that statistically based adaptive scan orders gathered from previously encoded or decoded blocks do not always provide better coding efficiency with respect to known predefined scan patterns. Therefore, an RDO-based procedure to select only one scan among the generated content-adaptive scan orders and predefined scan patterns is proposed as a solution.
[0247] Especificamente, a presente invenção resolve o problema acima mencionado de aumentar a eficiência de codificação de seleção de ordem de escaneamento em que tanto padrões de escaneamento pré-definidos quanto ordens de escaneamento adaptavelmente geradas são disponíveis.[0247] Specifically, the present invention solves the aforementioned problem of increasing the encoding efficiency of scan order selection in which both predefined scan patterns and adaptively generated scan orders are available.
[0248] A presente invenção em suas modalidades de codificação de multimídia mais ainda provê a vantagem que esta pode ser utilizada em muitas aplicações potenciais em estrutura de codificação de vídeo híbrida que são compatíveis com Joint Exploration Model (JEM) que é a fundação para o padrão de codificação de vídeo de próxima geração. Uma vantagem adicional é a taxa BD reduzida (Bj0ntegaard Delta Rate) e aperfeiçoamentos de qualidade subjetiva em comparação com JEM1. Uma vantagem adicional é que uma Transformada Múltipla Adaptável a (AMT) computacionalmente complexa também conhecida como Transformada Múltipla Melhorada (EMT) pode ser substituída por um procedimento de seleção de ordem de escaneamento adaptável mais simples.[0248] The present invention in its multimedia coding modalities further provides the advantage that it can be used in many potential applications in a hybrid video coding structure that are compatible with the Joint Exploration Model (JEM) which is the foundation for the next generation video encoding standard. An additional advantage is the reduced BD rate (Bj0ntegaard Delta Rate) and subjective quality improvements compared to JEM1. An additional advantage is that a computationally complex Adaptive Multiple Transform (AMT) also known as Enhanced Multiple Transform (EMT) can be replaced by a simpler adaptive scan order selection procedure.
[0249] Um aspecto da presente invenção é a combinação de padrões ou ordens de escaneamento pré-definidos com ordens de escaneamento adaptavelmente geradas. Mais ainda, adicionar um mecanismo de sinalização para um procedimento de seleção de ordem de escaneamento permite significativamente aperfeiçoar o processo de gerar ordens de escaneamento adaptáveis para aumentar sua eficiência de codificação.[0249] One aspect of the present invention is the combination of predefined scan patterns or orders with adaptively generated scan orders. Furthermore, adding a signaling mechanism to a scan order selection procedure allows you to significantly improve the process of generating adaptive scan orders to increase your coding efficiency.
[0250] A presente invenção foi descrita em conjunto com várias modalidades como exemplos assim como implementações. No entanto, outras variações podem ser compreendidas e efetuadas por aquelas pessoas versadas na técnica e que praticam a invenção reivindicada, dos estudos dos desenhos, desta descrição das concretizações independentes. Nas concretizações assim como na descrição a palavra "compreendendo" não exclui outros elementos ou etapas e o artigo indefinido "um" ou "uma" não exclui uma pluralidade. Um único elemento ou outra unidade pode cumprir as funções de diversas entidades ou itens recitados nas concretizações. O mero fato que certas medidas estão recitadas nas mútuas diferentes concretizações dependentes não indica que uma combinação destas medidas não possa ser utilizada em uma implementação vantajosa.[0250] The present invention has been described together with various embodiments as examples as well as implementations. However, other variations can be understood and carried out by those persons skilled in the art and who practice the claimed invention, from studies of the drawings, from this description of the independent embodiments. In the embodiments as well as in the description, the word "comprising" does not exclude other elements or stages and the indefinite article "one" or "an" does not exclude a plurality. A single element or other unit can fulfill the functions of several entities or items recited in the concretizations. The mere fact that certain measures are recited in different mutually dependent embodiments does not indicate that a combination of these measures cannot be used in an advantageous implementation.
Claims (35)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2016/000069 WO2017138832A1 (en) | 2016-02-12 | 2016-02-12 | Method and apparatus for scan order selection |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112018016409A2 BR112018016409A2 (en) | 2018-12-26 |
BR112018016409B1 true BR112018016409B1 (en) | 2023-07-11 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10798390B2 (en) | Method and apparatus for scan order selection | |
JP6676193B2 (en) | Method for encoding a point cloud representing a scene, an encoder system, and a non-transitory computer-readable recording medium storing a program | |
US11582455B2 (en) | Method and apparatus for scan order selection | |
ES2691195T3 (en) | Apparatus for encoding an image | |
CN107046645B9 (en) | Image coding and decoding method and device | |
CN111819853A (en) | Signaling residual symbols for prediction in transform domain | |
BRPI1012755B1 (en) | Method and device for encoding at least one image or a sequence of at least one image, method and device for decoding a data stream representing at least one image or a sequence of at least one image, data stream and computer readable memory | |
WO2022117089A1 (en) | Prediction method, encoder, decoder and storage medium | |
CN110870312B (en) | Method and apparatus for intra-frame coding in video compression | |
US20180167618A1 (en) | Method and device for processing video signal by using graph-based transform | |
US10469838B2 (en) | Method and apparatus for processing video signal using graph-based transformation based on prediction angle | |
US20220116664A1 (en) | Loop filtering method and device | |
KR20230111255A (en) | Intra frame prediction method, apparatus and decoder and encoder | |
CN112106365B (en) | Method and apparatus for adaptive context modeling in video encoding and decoding | |
KR20180031710A (en) | METHOD AND APPARATUS FOR ENCODING / DECODING A VIDEO SIGNAL USING AN OPTIMIZED TRANSFORM IN MULTIPLE GRAPHIC BASED MODEL | |
BR112018016409B1 (en) | DECODER, METHOD TO DECODE, ENCODER, AND METHOD TO ENCODE | |
BR112018016440B1 (en) | DECODER, METHOD FOR DECODING BLOCK COEFFICIENTS, ENCODER FOR ENCODING BLOCK COEFFICIENTS, AND NON-TRAINER COMPUTER READABLE STORAGE MEDIA | |
CN116170596A (en) | Encoding and decoding method and electronic equipment | |
WO2024163447A1 (en) | System and method for filtered intra block copy prediction | |
BR112018008131B1 (en) | ENCODER FOR ENCODING A SOURCE IMAGE, AND DECODER AND METHOD FOR DECODING AN INPUT BIT STREAM | |
BR112018009921B1 (en) | DEVICE AND METHOD FOR CONFIGURING A SEQUENCE OF FILTERS FOR VIDEO CODING |