BR112018016440B1 - DECODER, METHOD FOR DECODING BLOCK COEFFICIENTS, ENCODER FOR ENCODING BLOCK COEFFICIENTS, AND NON-TRAINER COMPUTER READABLE STORAGE MEDIA - Google Patents

DECODER, METHOD FOR DECODING BLOCK COEFFICIENTS, ENCODER FOR ENCODING BLOCK COEFFICIENTS, AND NON-TRAINER COMPUTER READABLE STORAGE MEDIA Download PDF

Info

Publication number
BR112018016440B1
BR112018016440B1 BR112018016440-2A BR112018016440A BR112018016440B1 BR 112018016440 B1 BR112018016440 B1 BR 112018016440B1 BR 112018016440 A BR112018016440 A BR 112018016440A BR 112018016440 B1 BR112018016440 B1 BR 112018016440B1
Authority
BR
Brazil
Prior art keywords
block
scan
coefficient
scan order
hiding
Prior art date
Application number
BR112018016440-2A
Other languages
Portuguese (pt)
Other versions
BR112018016440A2 (en
Inventor
Alexey Konstantinovich Filippov
Vasily Alexeevich Rufitskiy
Original Assignee
Huawei Technologies Co., Ltd.
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority claimed from PCT/RU2016/000068 external-priority patent/WO2017138831A1/en
Publication of BR112018016440A2 publication Critical patent/BR112018016440A2/en
Publication of BR112018016440B1 publication Critical patent/BR112018016440B1/en

Links

Abstract

A invenção propõe um decodificador para decodificar coeficientes de blocos de uma sequência de vídeo a partir de um fluxo de bits. O decodificador compreende um módulo de descodificação configurado para descodificar um ou mais vetores coeficientes de cada bloco a partir do fluxo de bits. O decodificador compreende um módulo de verificação configurado para reconstruir, para pelo menos um bloco, informação oculta de um ou mais coeficientes desse bloco, a informação oculta que constitui ou faz parte da informação da ordem de varredura associada a esse bloco. O decodificador compreende um seletor de ordem de varredura configurado para selecionar uma ordem de varredura para cada bloco a partir de um conjunto de ordens de varredura, preferivelmente, de um conjunto de ordens de varredura pré-definidos e gerados, com base na informação de ordem de varredura associada àquele bloco. O decodificador compreende um desserializador configurado para inverter a varredura, para cada bloco, de 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 coeficiente.The invention proposes a decoder for decoding block coefficients of a video sequence from a bit stream. The decoder comprises a decoding module configured to decode one or more coefficient vectors of each block from 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 that constitutes or is part of the 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 pre-defined and generated scan orders, based on the order information. associated with that block. The decoder comprises a deserializer configured to reverse scan, for each block, one or more coefficient vectors of that block in accordance with the scan order selected for that block, so as to obtain a coefficient matrix.

Description

CAMPO TÉCNICOTECHNICAL FIELD

[001] A presente invenção refere-se de modo mais geral ao campo de processamento de vídeos e a um método e equipamento para seleção de ordem de digitalização, em particular à seleção de ordem de digitalização adaptável ao conteúdo, e refere-se especificamente a um decodificador para decodificar coeficientes de blocos de uma sequência de vídeos e a um codificador para codificar coeficientes de blocos de uma sequência de vídeos.[001] The present invention relates more generally to the field of video processing and to a method and equipment for scanning order selection, in particular content-adaptive scanning order selection, and specifically relates to a decoder for decoding block coefficients of a video sequence and an encoder for encoding block coefficients of a video sequence.

FUNDAMENTOSFUNDAMENTALS

[002] Aplicativos de comunicação e armazenamento de vídeos digitais são implementados por uma vasta gama de dispositivos digitais, tais como câmeras digitais, radiotelefones celulares, computadores portáteis, sistemas de difusão, e sistemas de teleconferência por vídeo. Uma das mais importantes e desafiadoras tarefas destes aplicativos é a compressão de vídeos. A tarefa de compressão de vídeos é complexa e é restringida por dois parâmetros contraditórios: eficiência de compressão e complexidade computacional. Padrões de codificação de vídeos, tais como ITU-T H.264/AVC ou padrão de Codificação de Vídeos de Alta Eficiência (HEVC) ITU-T H.265/HEVC, fornecem uma boa compensação entre estes parâmetros. Por aquela razão o suporte de padrões de codificação de vídeos é um requisito mandatório para quase todos os aplicativos de compressão de vídeos.[002] Digital video communication and storage applications are implemented by a wide range of digital devices, such as digital cameras, cellular radiotelephones, portable computers, 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 trade-off between these parameters. For that reason, support for video coding standards is a mandatory requirement for almost all video compression applications.

[003] Os padrões de codificação de vídeos do estado da técnica são baseados na partição de uma imagem fonte em blocos. O processamento destes blocos depende das suas dimensões, 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 intrapredição e de interpredição. Modos de intrapredição usam 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 denominada de predição espacial. Os modos de interpredição são projetados para predição temporal e utilizam amostras de referência de imagens anteriores ou seguintes para prever pixels dos blocos da imagem atual. Após um estágio de predição, é executada codificação de transformação para um erro de predição que é a diferença entre um sinal original e sua predição. Em seguida, os coeficientes de transformação e informações colaterais são codificados usando um codificador de entropia tipo, por exemplo, Codificação Aritmética Binária Adaptável ao Contexto (CABAC) para AVC/H.264 e HEVC/H.265.[003] State of the art video coding standards are based on partitioning a source image into blocks. The processing of these blocks depends on their dimensions, spatial position and a coding mode specified by an encoder. Coding modes can be classified into two groups according to the type of prediction: intra-prediction and inter-prediction 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 called spatial prediction. Interprediction modes are designed for temporal prediction and use reference samples from previous or next images to predict pixels from blocks in the current image. After a prediction stage, transformation coding is performed for a prediction error that is the difference between an original signal and its prediction. Then, the transformation coefficients and collateral information are encoded using a type entropy encoder, for example, Context Adaptive Binary Arithmetic Coding (CABAC) for AVC/H.264 and HEVC/H.265.

[004] Evidentemente, erros de predição têm diferentes estatísticas para diferentes modos de predição e dependem fortemente do conteúdo a ser previsto. Portanto, diferentes transformações são rentáveis 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 transformação, podem ser usadas múltiplas transformações que possuem diferentes compactações de energia para diferentes casos específicos.[004] Evidently, prediction errors have different statistics for different prediction modes and strongly depend on the content to be predicted. Therefore, different transformations are cost-effective from the perspective of compression performance for different cases. To increase the coding efficiency of the transformation coding stage, multiple transformations can be used that have different energy compressions for different specific cases.

[005] O padrão ITU-T H.265/HEVC conhecido, por exemplo, a partir de ISO/IEC 23008-2:2013, “Tecnologia da informação - Codificação de alta eficiência e entrega de mídia em ambientes heterogêneos - Parte 2: Codificação de vídeos de alta eficiência”, novembro de 2013, apresenta um conjunto de ferramentas de codificação de vídeos do estado da técnica que fornecem uma compensação 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, “Visão Geral do Padrão de Codificação de Vídeos de Alta Eficiência (HEVC)”, em IEEE Transactions on Circuits and Systems for Video Technology, Vol. 22, No. 12, dezembro de 2012, cujo teor total é incorporado neste documento por referência.[005] 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, presents a set of prior art video encoding tools that provide a reasonable trade-off between encoding efficiency and computational complexity. An overview of the ITU-T H.265/HEVC standard is given in the article by Gary J. Sullivan, “High Efficiency Video Coding (HEVC) Standard Overview,” 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.

[006] De modo similar ao padrão de codificação de vídeos ITU-T H.264/AVC, o padrão de codificação de vídeos HEVC/H.265 propicia uma divisão da imagem fonte em blocos, por exemplo, unidades de codificação (CUs). Cada uma das CUs pode ainda ser dividida tanto em CUs menores como em unidades de predição (PUs). Uma PU pode ser intrapredita ou interpredita de acordo com o tipo de processamento aplicado aos pixels da PU. No caso de interpredição, uma PU representa uma área de pixels que é processada por compensação de movimento usando 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 transformação (TUs). Uma TU pode ter diferentes dimensões (por exemplo, 4x4, 8x8, 16x16 e 32x32 pixels) e pode ser processada de diferentes modos. Para uma transformação de TU codificação está sendo executada, isto é, o erro de predição está sendo transformado com uma transformada discreta de cosseno ou uma transformada discreta de seno - no padrão HEVC/H.265, é aplicada a blocos intracodificados - e quantizado. Portanto, pixels reconstruídos contêm ruído de quantização e artefatos de bloqueamento que podem influenciar a precisão da predição.[006] Similar to the ITU-T H.264/AVC video coding standard, the HEVC/H.265 video coding standard provides for dividing the source image into blocks, for example, coding units (CUs) . Each of the CUs can further be divided into both smaller CUs and prediction units (PUs). A PU can be intrapredicted 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 transformation units (TUs). A TU can have different dimensions (for example, 4x4, 8x8, 16x16 and 32x32 pixels) and can be processed in different ways. For a TU transformation encoding is being performed, that is, the prediction error is being transformed with a discrete cosine transform or a discrete sine transform - in the HEVC/H.265 standard, it is applied to intracoded blocks - and quantized. Therefore, reconstructed pixels contain quantization noise and blocking artifacts that can influence prediction accuracy.

[007] Em todos os padrões anteriores de codificação de vídeos exceto HEVC/H.265, apenas uma transformação foi usada para manter o projeto simples. O padrão HEVC/H.265 especifica duas transformações para intracodificação: DST para blocos 4x4, porque esta transformação fornece uma melhor compactação de energia para pequenos blocos intrapreditos, e DCT para outros blocos.[007] In all previous video coding standards except HEVC/H.265, only one transformation was used to keep the design simple. The HEVC/H.265 standard specifies two transformations for intracoding: DST for 4x4 blocks, because this transformation provides better power compression for small intrapredicted blocks, and DCT for other blocks.

[008] Além disso, é adotada uma técnica de digitalização de coeficientes dependente de modo (MDCS) para o padrão HEVC/H.265. A ideia básica por trás disto é selecionar uma ordem de digitalização sujeita a um modo selecionado de intrapredição. Para blocos intracodificados, a ordem de digitalização de um bloco de transformação (TB) 4x4 e de um bloco luma TB 8x8 é determinada pelo modo de intrapredição, vide Joel Sole, Rajan Joshi, Nguyen Nguyen, Tianying Ji, Marta Karczewicz, Gordon Clare, Felix Henry e Alberto Duenas. “Codificação de Coeficientes de Transformação em HEVC”, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 22, No. 12, dezembro de 2012, pp. 1765-1777. Cada um dos 35 modos de intrapredição utiliza uma das três possíveis ordens de digitalização: diagonal, horizontal ou vertical. Uma tabela de pesquisa mapeia o modo de intrapredição para uma das digitalizações.[008] Furthermore, a mode-dependent coefficient digitization technique (MDCS) is adopted for the HEVC/H.265 standard. The basic idea behind this is to select a scanning order subject to a selected mode of intraprediction. For intracoded blocks, the digitization order of a 4x4 transform block (TB) and an 8x8 TB luma block is determined by the intraprediction mode, see Joel Sole, Rajan Joshi, Nguyen Nguyen, Tianying Ji, Marta Karczewicz, Gordon Clare, Felix Henry and Alberto Duenas. “Transformation 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.

[009] Esta ferramenta explora a correlação horizontal ou vertical do residual dependendo do modo de intrapredição. Por exemplo, para um modo de predição horizontal a energia de coeficientes de transformação é agrupada nas primeiras poucas colunas, de modo que uma digitalização vertical resulta em menos caixas sendo codificadas por entropia. De modo similar para uma predição vertical, uma digitalização horizontal é benéfica. Experimentos mostraram que a inclusão de digitalizações horizontais e verticais para grandes TBs oferece pouca eficiência de compressão, de modo que a aplicação destas digitalizações é limitada aos dois menores TBs.[009] This tool explores the horizontal or vertical correlation of the residual depending on the intraprediction mode. For example, for a horizontal prediction mode the energy of transformation coefficients is grouped into the first few columns, so that a vertical scan results in fewer bins being entropy coded. Similarly to a vertical prediction, a horizontal scan is beneficial. Experiments have shown that including horizontal and vertical scans for large TBs offers little compression efficiency, so the application of these scans is limited to the two smallest TBs.

[0010] Técnicas similares a MDCS são consideradas no documento Yung-Lyul Lee, Ki-Hun Han, Dong-Gyu Sim e Jeongil Seo. “Digitalização Adaptativa para Intracodificação H.264/AVC”, ETRI Journal, Volume 28, Número 5, outubro de 2006, pp. 668-671, no documento Byeong-Doo Choi, Jin-Hyung Kim e Sung-Jea Ko. “Digitalização Adaptativa de Coeficientes Baseada no Modo de Intrapredição”, ETRI Journal, Volume 29, Número 5, outubro de 2007, pp. 694-696, e no documento Md. Salah Uddin Yusuf e Mohiuddin Ahmad. “Um Novo Esquema de Digitalização para Predição Direcional Espacial de Intracodificação AVS”, International Journal of Advanced Research in Electrical Electronics and Instrumentation Engineering, Vol. 2, Questão 8, agosto de 2013, pp. 41204126. As ordens de digitalização diferem daquelas que são usadas no padrão HEVC/H.265. Também é proposto mapear modos de intrapredição para ordens de digitalização.[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 Intracoding”, 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 Digitization of Coefficients Based on Intraprediction Mode”, ETRI Journal, Volume 29, Number 5, October 2007, pp. 694-696, and in the document Md. Salah Uddin Yusuf and Mohiuddin Ahmad. “A New Scanning Scheme for Spatial Directional Prediction of AVS Intracoding”, International Journal of Advanced Research in Electrical Electronics and Instrumentation Engineering, Vol. 2, Issue 8, August 2013, pp. 41204126. Scan orders differ from those used in the HEVC/H.265 standard. It is also proposed to map intraprediction modes to scan orders.

[0011] Além disso, o modo de partição - como conhecido a partir de Bae Keun Lee, Jae Cheol Kwom e Joo Young Kim. “Método e Equipamento para Digitalizar Coeficientes Baseado em Modo de Partição de Unidade de Predição”, Publicação de Pedido de Patente dos Estados Unidos, US 2014/0314143 A1, PCT/KR2012/009373, 08 de novembro de 2012 -, e parâmetros de quantização (QP) - como conhecidos a partir de Thai-Há Nguyen, Yoichi Yagasaki e Ali Tabatabai. “Digitalização e aplicações de digitalização adaptativa de coeficientes QP”, Publicação de Pedido de Patente dos Estados Unidos, US 2011/0249726 A1, 01 de abril de 2011 - podem ser usados como recursos para selecionar uma ordem de digitalização não apenas para intracodificação, mas também para intercodificação.[0011] Furthermore, the partition mode - as known from Bae Keun Lee, Jae Cheol Kwom and Joo Young Kim. “Method and Equipment for Digitizing Coefficients Based on Prediction Unit Partition Mode”, United States Patent Application Publication, US 2014/0314143 A1, PCT/KR2012/009373, November 8, 2012 -, and quantization parameters (QP) - as known from Thai-Ha Nguyen, Yoichi Yagasaki and Ali Tabatabai. “Digitization and Applications of Adaptive Digitization of QP Coefficients”, United States Patent Application Publication, US 2011/0249726 A1, April 1, 2011 - can be used as resources for selecting a digitization order not only for intracoding, but also for intercoding.

[0012] Portanto, existe uma ampla variedade de ordens de digitalização, as quais podem ser eficientes para os mesmos modos e dimensões de TU. Esta é a principal razão porque um procedimento baseado em RDO (Otimização de Taxa-Distorção) ou similar - por exemplo, baseado em distorção ou análise de atividades - pode ser usado para tomar uma decisão final sobre qual das potenciais ordens de digitalização deve ser selecionada.[0012] Therefore, there is a wide variety of scanning orders, which can be efficient for the same TU modes and dimensions. This is the main reason why a procedure based on RDO (Rate-Distortion Optimization) or similar - for example, based on distortion 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 digitalização em um procedimento baseado em RDO é conhecido, por exemplo, a partir de Muhammed Zeyd Coban e Marta Karczewicz. “Digitalização adaptativa de coeficientes de transformação para codificação de vídeos”, Publicação de Pedido de Patente dos Estados Unidos, US 2012/0099646 A1, 17 de outubro de 2011. Neste caso, é selecionada a ordem de digitalização que fornece o menor custo RD. Portanto, a principal vantagem desta técnica é que uma ordem de digitalização selecionada fornece o maior ganho de codificação. Portanto, a eficiência de codificação desta técnica é maior que aquela para outros métodos se a sobrecarga de sinalização não for levada em consideração.[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 Digitization of Transformation Coefficients for Video Coding”, United States Patent Application Publication, US 2012/0099646 A1, October 17, 2011. In this case, the digitization order that provides the lowest RD cost is selected. Therefore, the main advantage of this technique is that a selected scan order provides the highest coding gain. Therefore, the coding efficiency of this technique is higher than that for other methods if signaling overhead is not taken into account.

[0014] Este estado da técnica propõe dois algoritmos para selecionar a ordem de digitalização que fornece o maior ganho de codificação. A principal característica distinta entre estes dois algoritmos é que são usados diferentes mecanismos para detectar tais TBs onde esta técnica de seleção adaptativa de ordem de digitalização é inaplicável, isto é, é usada uma ordem de digitalização padrão. Em um primeiro algoritmo, o número de coeficientes de transformação significativos é comparado com um número limite. Em um segundo algoritmo, a posição dos últimos coeficientes de transformação significativos é comparada com uma posição limite. Em contraste com as técnicas previamente descritas, uma ordem de digitalização selecionada deverá ser assinalada para ambos estes casos, de modo que um decodificador possa aplicar uma ordem de digitalização correta aos coeficientes de transformação recebidos. Portanto, a principal desvantagem das técnicas que usam um procedimento de tomada de decisão baseada em RDO é uma sobrecarga de sinalização.[0014] This prior art proposes two algorithms for selecting the scanning order that provides the greatest 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 transformation coefficients is compared with a threshold number. In a second algorithm, the position of the last significant transformation coefficients is compared with a threshold position. In contrast to previously described techniques, a selected digitization order must be assigned for both of these cases, so that a decoder can apply a correct digitization order to the received transformation coefficients. Therefore, the main disadvantage of techniques that use an RDO-based decision-making procedure is signaling overhead.

[0015] Outro modo para melhorar a eficiência de compressão quando comparada a MDCS é adaptar uma ordem de digitalização de acordo com as estatísticas coletadas para blocos que têm os valore similares de parâmetros tais como modo de intrapredição, modo de partição, dimensão de blocos, etc. ao invés de utilizar ordens de digitalização previamente definidas. Consequentemente, são definidas ordens iniciais de digitalização para utilizar nos casos em que uma estatística não é suficiente. Quando um montante dos blocos usados para coletar as estatísticas exceder um limite, a ordem de digitalização pode ser adaptada baseada nas estatísticas coletadas, vide Yan Ye e Marta Karczewicz. “Digitalização adaptativa de coeficientes para codificação de vídeos”, Patente dos Estados Unidos, US 8.488.668 B2, 04 de junho de 2008. Uma técnica similar é conhecida a partir de Sridhar Srinivasan. “Ordem de digitalização adaptativa de coeficientes”, Especificação de Patente Europeia, EP 1679903 B1, 30 de novembro de 2005.[0015] Another way to improve compression efficiency when compared to MDCS is to adapt a scan order according to statistics collected for blocks that have similar values of parameters such as intraprediction mode, partition mode, block size, etc. instead of using previously defined scanning orders. Consequently, initial scan orders are defined to use in cases where one statistic is not sufficient. When the amount of blocks used to collect statistics exceeds a threshold, the scanning order can be adapted based on the collected statistics, see Yan Ye and Marta Karczewicz. “Adaptive Coefficient Digitization for Video Coding”, United States Patent, US 8,488,668 B2, June 4, 2008. A similar technique is known from Sridhar Srinivasan. “Coefficient adaptive digitization order”, European Patent Specification, EP 1679903 B1, 30 November 2005.

[0016] Contudo, tal ordem de digitalização adaptativa baseada em estatísticas coletadas de blocos previamente codificados ou decodificados nem sempre fornece uma eficiência de codificação que seja maior que ordens de digitalização predefinidas tais como digitalizações em ziguezague, diagonais, verticais, horizontais, helicoidais horárias e anti-horárias, etc.[0016] However, such an adaptive scan order based on statistics collected from previously encoded or decoded blocks does not always provide a coding efficiency that is greater than predefined scan orders such as zigzag, diagonal, vertical, horizontal, clockwise and helical scans. counterclockwise, etc.

SUMÁRIOSUMMARY

[0017] Tendo reconhecido os problemas e desvantagens acima mencionados, a presente invenção visa aperfeiçoar o estado da técnica. Em particular, o objetivo da presente invenção é fornecer um decodificador de vídeos, um método de decodificação, um codificador de vídeos e um método de codificação para uma eficiência de codificação melhorada.[0017] Having recognized the above-mentioned problems and disadvantages, the present invention aims to improve the state of the art. In particular, 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 pretende em particular melhorar a eficiência de codificação por meio de uma ordem de digitalização melhorada para digitalizar uma matriz de coeficientes em um ou mais vetores de coeficientes ou para digitalizar inversamente um ou mais vetores de coeficientes em uma matriz de coeficientes.[0018] The present invention aims in particular to improve coding efficiency by means of an improved scanning order to digitize a matrix of coefficients into one or more vectors of coefficients or to inversely digitize one or more vectors of coefficients into a matrix of coefficients .

[0019] Além disso, a presente invenção pretende melhorar a eficiência de codificação mediante redução da sobrecarga de sinalização.[0019] Furthermore, the present invention aims to improve coding efficiency by reducing signaling overhead.

[0020] O objetivo acima mencionado da presente invenção é alcançado pela solução fornecida nas reivindicações independentes anexas. Implementações vantajosas da presente invenção são ainda definidas nas respectivas reivindicações dependentes.[0020] The aforementioned objective of the present invention is achieved by the solution provided in the attached independent claims. Advantageous implementations of the present invention are further defined in the respective dependent claims.

[0021] Um primeiro aspecto da presente invenção fornece um decodificador para decodificar coeficientes de blocos de uma sequência de vídeos a partir de um fluxo de bits. O decodificador compreende um módulo de lista de configurações de digitalizações configurado para fornecer uma ou mais ordens de digitalização predefinidas. Uma ordem de digitalização é também conhecida na técnica como um padrão de digitalização. O decodificador compreende um gerador de ordens de digitalização configurado para gerar uma ou mais ordens de digitalização. O decodificador compreende um seletor de ordens de digitalização configurado para selecionar uma ordem de digitalização para cada bloco a partir das ordens de digitalização predefinidas e geradas com base nas informações de ordens de digitalização contidas no fluxo de bits. O decodificador compreende um módulo de decodificação configurado para decodificar um ou mais vetores de coeficientes de cada bloco a partir do fluxo de bits. O decodificador compreende um desserializador configurado para digitalizar inversamente, para cada bloco, o um ou mais vetores de coeficientes daquele bloco de acordo com a ordem de digitalização selecionada para aquele bloco de modo a obter uma matriz de coeficientes. O gerador de ordens de digitalização é configurado para gerar a uma ou mais ordens de digitalização que dependem da uma ou mais matrizes de coeficientes previamente obtidas de blocos da sequência de vídeos.[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 configuration list module configured to provide one or more predefined scan orders. A scanning order is also known in the art as a scanning 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 from 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 from 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 so as to obtain a matrix of coefficients. The scan order generator is configured to generate one or more scan orders that depend on the one or more coefficient matrices previously obtained from blocks of the video sequence.

[0022] Deste modo, a presente invenção é vantajosa pelo fato de que fornece tanto ordens de digitalização predefinidas como ordens de digitalização geradas adaptáveis ao conteúdo. Ao estender o conjunto de ordens de digitalização disponíveis, a eficiência de taxa-distorção de quantização pode ser consequentemente melhorada.[0022] Therefore, the present invention is advantageous in that it provides both predefined scanning orders and generated scanning orders adaptable to content. By extending the set of available digitization orders, the rate-distortion efficiency of quantization 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 padrão de digitalização é configurado para fornecer uma ou mais ordens de digitalização predefinidas para cada uma de uma pluralidade de conjuntos de parâmetros de codificação. O gerador de ordens de digitalização é configurado para gerar uma ordem de digitalização para cada um dos conjuntos de parâmetros de codificação que dependem da uma ou mais matrizes de coeficientes previamente obtidas associadas àquele conjunto de parâmetros de codificação. O seletor de ordens de digitalização é configurado para selecionar uma ordem de digitalização para cada bloco mediante determinação de um conjunto de parâmetros de codificação daquele bloco, e selecionar a ordem de digitalização para a matriz de coeficientes obtida para aquele bloco a partir das ordens de digitalização 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 sets of coding parameters that depend on the one or more previously obtained coefficient matrices associated with that set of coding parameters. The scan order selector is configured to select a scan order for each block by determining a set of coding parameters for that block, and select the scan order for the coefficient matrix obtained for that block from the scan orders predefined and generated for the given set of encoding parameters.

[0024] Deste modo, tanto as ordens de digitalização predefinidas como as ordens de digitalização geradas adaptáveis ao conteúdo podem ser fornecidas para cada conjunto de parâmetros de codificação. Sendo assim, diferentes ordens de digitalização podem ser geradas para diferentes conjuntos de parâmetros de codificação, de modo que o conjunto de ordens de digitalização disponíveis possa ser aumentado e adaptado para cada conjunto de parâmetros de codificação. Portanto, a ordem de digitalização selecionada pode melhorar ainda mais a eficiência de taxa-distorção.[0024] In this way, both predefined scan orders and content-adaptive generated scan orders can be provided for each set of encoding parameters. Therefore, 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 further improve the rate-distortion efficiency.

[0025] Em particular, 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 transformação, e um ou mais parâmetros de quantização.[0025] In particular, each set of coding parameters may correspond, for example, to a combination of one or more prediction modes, a partition mode, one or more transformation 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 coeficientes configurado para fornecer, para cada um dos conjuntos de parâmetros de codificação, uma estatística de distribuição de uma ou mais matrizes de coeficientes previamente obtidas associadas àquele conjunto de parâmetros de codificação. O gerador de ordens de digitalização é configurado para gerar a ordem de digitalização para cada um dos conjuntos de parâmetros de codificação que dependem 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 sets of coding parameters that depend on the distribution statistics for that set of coding parameters.

[0027] Deste modo, as ordens de digitalização geradas podem refletir uma estatística de distribuição de matrizes de coeficientes anteriores. As ordens de digitalização geradas podem, portanto, fornecer uma boa eficiência de codificação para subsequentes matrizes de coeficientes se a estatística de distribuição das matrizes subsequentes for similar àquela das matrizes de coeficientes anteriores.[0027] In this way, the generated scan orders can reflect a distribution statistic of previous coefficient matrices. The generated scan orders can therefore 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 digitalização selecionada para um determinado bloco for predefinida, o estimador de distribuição de coeficientes é configurado para não atualizar ou é configurado para reiniciar a estatística de distribuição para o conjunto de parâmetros de codificação do determinado bloco.[0028] In one form of decoder implementation according to the first aspect of the invention, if the selected scanning order for a given block is predefined, the coefficient distribution estimator is configured not to update or is configured to reset the statistics distribution for the set of coding parameters of the given block.

[0029] Deste modo, se a ordem de digitalização selecionada para um determinado bloco for uma ordem de digitalização predefinida, isto significa que, para o conjunto de parâmetros de codificação do determinado bloco, a ordem de digitalização gerada pode fornecer uma eficiência de codificação que é pior que aquela das ordens de digitalização predefinidas. Portanto, o determinado 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 determinado bloco é preferivelmente não usada para atualizar a estatística de distribuição fornecida pelo estimador de distribuição de coeficientes. Alternativamente, pode ser preferível reiniciar a estatística de distribuição fornecida pelo estimador de distribuição de coeficientes, uma vez que a estatística de matrizes de coeficientes anteriores pode não corresponder mais à estatística das matrizes de coeficientes atuais.[0029] Thus, 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 that 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 given block's distribution statistic is preferably not used to update the distribution statistic provided by the coefficient distribution estimator. Alternatively, it may be preferable to restart the distribution statistic provided by the coefficient distribution estimator, since the statistic of previous coefficient matrices may no longer match the statistic of the current coefficient matrices.

[0030] Em uma forma de implementação do decodificador de acordo com o primeiro aspecto da invenção, o módulo de decodificação é configurado para analisar, para cada bloco, informações de parâmetros de codificação a partir do fluxo de bits. O seletor de ordens de digitalização é configurado para determinar o conjunto de parâmetros de codificação de um determinado bloco de acordo com as informações de parâmetros de codificação analisadas para aquele determinado 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, coding parameter information from the bit stream. The scan order selector is configured to determine the set of encoding parameters of a given block according to the parsed encoding parameter information for that given block.

[0031] Deste modo, o decodificador pode obter informações referentes ao conjunto de parâmetros de codificação e usar as ordens de digitalização predefinidas e geradas que correspondem a este conjunto de parâmetros de codificação, de modo a melhorar a eficiência de codificação.[0031] In this way, 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 é configurado para analisar as informações de ordens de digitalização que identificam a ordem de digitalização selecionada a partir 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 scan order selected from the bit stream.

[0033] Deste modo, o decodificador está apto a identificar a ordem de digitalização selecionada a partir do fluxo de bits e, dependendo de esta ordem de digitalização selecionada ser predefinida ou gerada, o decodificador pode corretamente digitalizar inversamente os vetores de coeficientes e pode, por exemplo, atualizar ou não corretamente a estatística de distribuição fornecida pelo estimador de distribuição de coeficientes.[0033] In this way, the decoder is able to identify the selected digitization order from the bit stream and, depending on whether this selected digitization order is predefined or generated, the decoder can correctly inversely digitize the coefficient vectors and can, for example, whether or not to correctly update the distribution statistic provided by the coefficient distribution estimator.

[0034] As funções do decodificador de acordo com o primeiro aspecto da invenção e de quaisquer funções de qualquer de suas formas de implementação podem ser executadas por um processador ou um computador, e qualquer de seus meios pode ser implementado 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 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 on such processor or computer.

[0035] Um segundo aspecto da presente invenção fornece um método para decodificar coeficientes de blocos de uma sequência de vídeos a partir de um fluxo de bits. O método compreende fornecer uma ou mais ordens de digitalização predefinidas. O método compreende gerar uma ou mais ordens de digitalização. O método compreende selecionar uma ordem de digitalização para cada bloco a partir das ordens de digitalização predefinidas e geradas com base nas informações de ordens de digitalização contidas no fluxo de bits. O método compreende decodificar um ou mais vetores de coeficientes de cada bloco a partir do fluxo de bits. O método compreende digitalizar inversamente, para cada bloco, o um ou mais vetores de coeficientes daquele bloco de acordo com a ordem de digitalização selecionada para aquele bloco de modo a obter uma matriz de coeficientes. A geração de uma ou mais ordens de digitalização compreende gerar a uma ou mais ordens de digitalização que dependem da uma ou mais matrizes de coeficientes previamente obtidas de blocos da sequência de vídeos.[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 predefined scan orders generated based on scan order information contained in the bit stream. The method comprises decoding one or more coefficient vectors of each block from the bit stream. The method comprises inversely digitizing, for each block, the one or more coefficient vectors of that block in accordance with the digitization order selected for that block in order to obtain a matrix of coefficients. Generating one or more digitization orders comprises generating one or more digitization orders that depend on one or more coefficient matrices previously obtained from blocks of the video sequence.

[0036] Recursos 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 de 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 fornece um codificador para codificar coeficientes de blocos de uma sequência de vídeos 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 padrão de digitalização configurado para fornecer uma ou mais ordens de digitalização predefinidas. O codificador compreende um gerador de ordens de digitalização configurado para gerar uma ou mais ordens de digitalização. O codificador compreende um seletor de ordens de digitalização configurado para selecionar uma ordem de digitalização para cada bloco a partir das ordens de digitalização predefinidas e geradas. O codificador compreende um serializador configurado para digitalizar, para cada bloco, a matriz de coeficientes daquele bloco de acordo com a ordem de digitalização selecionada para aquele bloco de modo a obter um ou mais vetores de coeficientes. O codificador compreende um módulo de codificação configurado para codificar os vetores de coeficientes em um fluxo de bits. O gerador de ordens de digitalização é configurado para gerar a uma ou mais ordens de digitalização que dependem da uma ou mais matrizes de coeficientes previamente digitalizadas de blocos da sequência de vídeos.[0038] A third aspect of the present invention provides an encoder 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 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 from the predefined and generated scan orders. The encoder comprises a serializer configured to digitize, for each block, the coefficient matrix of that block in accordance with the digitization order selected for that block so as to obtain one or more coefficient vectors. The encoder comprises an encoding module configured to encode the coefficient vectors into a bit stream. The digitization order generator is configured to generate one or more digitization orders that depend on the one or more previously digitized coefficient matrices of blocks of the video sequence.

[0039] Deste modo, a presente invenção é vantajosa pelo fato de que fornece tanto ordens de digitalização predefinidas como ordens de digitalização geradas adaptáveis ao conteúdo. Ao estender o conjunto de ordens de digitalização disponíveis, a eficiência de taxa-distorção de quantização pode ser consequentemente melhorada.[0039] Therefore, the present invention is advantageous in that it provides both predefined scanning orders and generated scanning orders adaptable to content. By extending the set of available digitization orders, the rate-distortion efficiency of quantization 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 padrão de digitalização é configurado para fornecer uma ou mais ordens de digitalização predefinidas para cada uma de uma pluralidade de conjuntos de parâmetros de codificação. O gerador de ordens de digitalização é configurado para gerar uma ordem de digitalização para cada um dos conjuntos de parâmetros de codificação que dependem da uma ou mais matrizes de coeficientes previamente digitalizadas associadas àquele conjunto de parâmetros de codificação. O seletor de ordens de digitalização é configurado para selecionar uma ordem de digitalização para cada bloco mediante determinação de um conjunto de parâmetros de codificação daquele bloco, e selecionar a ordem de digitalização para a matriz de coeficientes daquele bloco a partir das ordens de digitalização 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 scanning pattern list module is configured to provide one or more predefined scanning 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 that depend on the one or more previously digitized 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 coding parameters for that block, and select the scan order for that block's coefficient matrix from the predefined scan orders and generated for the given set of encoding parameters.

[0041] Deste modo, tanto as ordens de digitalização predefinidas como as ordens de digitalização geradas adaptáveis ao conteúdo podem ser fornecidas para cada conjunto de parâmetros de codificação. Sendo assim, diferentes ordens de digitalização podem ser geradas para diferentes conjuntos de parâmetros de codificação, de modo que o conjunto de ordens de digitalização disponíveis possa ser aumentado e adaptado para cada conjunto de parâmetros de codificação. Portanto, a ordem de digitalização selecionada pode melhorar ainda mais a eficiência de taxa-distorção.[0041] In this way, both predefined scan orders and content-adaptive generated scan orders can be provided for each set of encoding parameters. Therefore, 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 further improve the rate-distortion efficiency.

[0042] Em particular, 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 transformação, e um ou mais parâmetros de quantização.[0042] In particular, each set of coding parameters may correspond to a combination of one or more prediction mode, a partition mode, one or more transformation 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 coeficientes configurado para fornecer, para cada um dos conjuntos de parâmetros de codificação, uma estatística de distribuição de uma ou mais matrizes de coeficientes previamente digitalizados associadas àquele conjunto de parâmetros de codificação. O gerador de ordens de digitalização é configurado para gerar a ordem de digitalização para cada um dos conjuntos de parâmetros de codificação que depende da estatística de distribuição para aquele conjunto de parâmetros de codificação.[0043] In one form of implementing 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 digitized 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 that depends on the distribution statistics for that coding parameter set.

[0044] Deste modo, as ordens de digitalização geradas podem refletir uma estatística de distribuição de matrizes de coeficientes anteriores, de modo que estas ordens de digitalização geradas podem fornecer uma boa eficiência de codificação para subsequentes matrizes de coeficientes no caso de a estatística de distribuição das matrizes subsequentes ser similar àquela das matrizes de coeficientes anteriores.[0044] In this way, 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 case the distribution statistic of the subsequent matrices be 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 digitalização selecionada para uma determinada matriz de coeficientes for predefinida, o estimador de distribuição de coeficientes é configurado para não atualizar ou é configurado para reiniciar a estatística de distribuição para o conjunto de parâmetros de codificação do determinado bloco.[0045] In one form of encoder implementation according to the third aspect of the invention, if the selected scanning 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] Deste modo, se a ordem de digitalização selecionada para um determinado bloco for uma ordem de digitalização predefinida, isto significa que, para o conjunto de parâmetros de codificação do determinado bloco, a ordem de digitalização gerada pode fornecer uma eficiência de codificação que é pior que aquela das ordens de digitalização predefinidas. Portanto, o determinado 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 determinado bloco é preferivelmente não usada para atualizar a estatística de distribuição fornecida pelo estimador de distribuição de coeficientes. Alternativamente, pode ser preferível reiniciar a estatística de distribuição fornecida pelo estimador de distribuição de coeficientes, uma vez que a estatística de matrizes de coeficientes anteriores pode não corresponder mais à estatística das matrizes de coeficientes atuais.[0046] Thus, 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 that 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 given block's distribution statistic is preferably not used to update the distribution statistic provided by the coefficient distribution estimator. Alternatively, it may be preferable to restart the distribution statistic provided by the coefficient distribution estimator, since the statistic of previous coefficient matrices may no longer match the statistic of the current coefficient matrices.

[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 ordens de digitalização que identificam a ordem de digitalização selecionada a partir do 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 scan order selected from the bit stream.

[0048] Deste modo, é vantajoso que o decodificador esteja apto a identificar a ordem de digitalização selecionada a partir do fluxo de bits e, dependendo de esta ordem de digitalização selecionada ser predefinida ou gerada, o decodificador pode corretamente digitalizar inversamente os vetores de coeficientes e pode, por exemplo, atualizar ou não corretamente a estatística de distribuição fornecida pelo estimador de distribuição de coeficientes.[0048] Therefore, it is advantageous that the decoder is able to identify the selected digitization order from the bit stream and, depending on whether this selected digitization order is predefined or generated, the decoder can correctly inversely digitize the coefficient vectors. and may, 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 ordens de digitalização é configurado para selecionar a ordem de digitalização a partir das ordens de digitalização predefinidas e geradas com base em uma função 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 scan orders generated based on a cost function.

[0050] Deste modo, um procedimento baseado na função custo pode ser usado para selecionar com precisão uma ordem de digitalização entre as ordens de digitalização geradas e as ordens de digitalização predefinidas. Consequentemente, mesmo se ordens de digitalização geradas baseadas em estatísticas coletadas de blocos previamente codificados ou decodificados não fornecerem uma melhor eficiência de codificação que ordens de digitalização predefinidas, a seleção de ordens de digitalização pode melhorar a eficiência de codificação. Em particular, a função custo pode, por exemplo, ser uma função de Otimização de Taxa-Distorção (RDO).[0050] In this way, a procedure based on the cost function can be used to accurately select a scanning order between the generated scanning orders and the predefined scanning orders. Consequently, even if scan orders generated based on statistics collected from previously encoded or decoded blocks do not provide better coding efficiency than predefined scan orders, the selection of scan orders can improve coding efficiency. In particular, the cost function may, for example, be a Rate-Distortion Optimization (RDO) function.

[0051] As funções do codificador de acordo com o terceiro aspecto da invenção e de quaisquer funções de qualquer de suas formas de implementação podem ser executadas por um processador ou um computador, e qualquer de seus meios pode ser implementado 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 on such processor or computer.

[0052] Um quarto aspecto da presente invenção fornece um método para codificar coeficientes de blocos de uma sequência de vídeos em um fluxo de bits, os coeficientes de cada bloco estando contidos em uma respectiva matriz de coeficientes. O método compreende fornecer uma ou mais ordens de digitalização predefinidas. O método compreende gerar uma ou mais ordens de digitalização. O método compreende selecionar uma ordem de digitalização para cada bloco a partir das ordens de digitalização predefinidas e geradas. O método compreende digitalizar, para cada bloco, os coeficientes daquele bloco de acordo com a ordem de digitalização selecionada para aquele bloco de modo a obter um ou mais vetores de coeficientes. O método compreende codificar os vetores de coeficientes no fluxo de bits. A geração de uma ou mais ordens de digitalização compreende gerar a uma ou mais ordens de digitalização que dependem da uma ou mais matrizes de coeficientes previamente digitalizadas de blocos da sequência de vídeos.[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 digitizing, for each block, the coefficients of that block according to the digitization order selected for that block in order to obtain one or more vectors of coefficients. The method comprises encoding the coefficient vectors in the bit stream. Generating one or more digitization orders comprises generating one or more digitization orders that depend on the one or more previously digitized coefficient matrices of blocks of the video sequence.

[0053] Recursos 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 de 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 fornece um decodificador, preferivelmente de acordo com o primeiro aspecto, para decodificar coeficientes de blocos de uma sequência de vídeos a partir de um fluxo de bits. O decodificador compreende um módulo de decodificação configurado para decodificar um ou mais vetores de coeficientes de cada bloco a partir do fluxo de bits. O decodificador compreende um módulo de verificação configurado para reconstruir, para ao menos um bloco, informações ocultas a partir de um ou mais coeficientes daquele bloco, as informações ocultas constituindo ou fazendo parte de informações de ordens de digitalização associadas àquele bloco. O decodificador compreende um seletor de ordens de digitalização configurado para selecionar uma ordem de digitalização para cada bloco a partir de um conjunto de ordens de digitalização, preferivelmente a partir de um conjunto de ordens de digitalização predefinidas e geradas, com base nas informações de ordens de digitalização associadas àquele bloco. O decodificador compreende um desserializador configurado para digitalizar inversamente, para cada bloco, o um ou mais vetores de coeficientes daquele bloco de acordo com a ordem de digitalização 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 from a bit stream. The decoder comprises a decoding module configured to decode one or more coefficient vectors of each block from 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 so as to obtain a matrix of coefficients.

[0056] Deste modo, a eficiência de codificação é vantajosamente melhorada pelo fato de que a sobrecarga de sinalização é reduzida.[0056] In this way, coding efficiency is advantageously improved by the fact that signaling overhead 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 é configurado para reconstruir, para ao menos um bloco, as informações ocultas a partir de ao menos um vetor de ocultação de coeficientes escolhido de entre o um ou mais vetores de coeficientes obtidos para aquele bloco. Em particular, o um ou mais vetores de coeficientes podem corresponder a um respectivo grupo de coeficientes (CG), o vetor de ocultação de coeficientes então correspondendo ao grupo de coeficientes no qual a ocultação de dados é realizada. Deste modo, a reconstrução das informações ocultas a partir de diversos vetores de coeficientes ocultos, por exemplo preferivelmente a partir de diversos grupos de coeficientes, é vantajosa pelo fato de mais bits poderem ser ocultos e um maior índice para as informações de ordens de digitalização poder 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 from at least one coefficient hiding vector chosen from between the one or more vectors of coefficients obtained for that block. In particular, the one or more coefficient vectors may correspond to a respective coefficient group (CG), the coefficient hiding vector then corresponding to the coefficient group on which data hiding is performed. In this way, the reconstruction of hidden information from several vectors of hidden coefficients, for example preferably from several groups of coefficients, is advantageous in that more bits can be hidden and a higher index for the digitization order information can be be rebuilt.

[0058] Em uma forma de implementação do decodificador de acordo com o quinto aspecto da invenção, o módulo de verificação é configurado para reconstruir, para ao menos um bloco, as informações ocultas a partir do vetor de ocultação de coeficientes que depende de uma condição de ocultação, a condição de ocultação compreendendo uma comparação de um parâmetro que depende do vetor de ocultação de coeficientes com um limite. Deste modo, a ocultação é facilitada.[0058] 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 from the coefficient hiding vector that depends on a condition hiding, the hiding condition comprising a comparison of a parameter that depends on the coefficient hiding vector with a threshold. This makes concealment easier.

[0059] Em uma forma de implementação do decodificador de acordo com o quinto aspecto da invenção, o parâmetro é: - um número de coeficientes significativos dentro do vetor de ocultação de coeficientes, ou - uma distância entre primeiro e último coeficientes significativos dentro do vetor de ocultação de coeficientes, ou - uma razão de um valor máximo absoluto para um valor mínimo absoluto não-zero dos coeficientes dentro do vetor de ocultação de coeficientes. 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. Deste modo, a condição de ocultação é vantajosamente propiciada.[0059] In one form of implementation of the decoder according to the fifth aspect of the invention, the parameter is: - a number of significant coefficients within the coefficient hiding vector, or - a distance between first and last significant coefficients within the vector of coefficient hiding, or - a ratio of an absolute maximum value to a non-zero absolute minimum value of the coefficients within the coefficient hiding vector. The hiding condition is true if the parameter is above the threshold, and false if the parameter is below the threshold. In this way, the concealment condition is advantageously provided.

[0060] Em uma forma de implementação do decodificador de acordo com o quinto aspecto da invenção, o módulo de verificação é configurado para verificar a condição de ocultação, e para reconstruir as informações ocultas a partir do vetor de ocultação de coeficientes se a condição de ocultação for verdadeira. Deste modo, a ordem de digitalização pode ser selecionada sem informações colaterais adicionais provenientes do fluxo de bits.[0060] In one form of decoder implementation according to the fifth aspect of the invention, the verification module is configured to check the hiding condition, and to reconstruct the hidden information from the coefficient hiding vector if the hiding condition concealment is true. In this way, the scanning order can be selected without additional side information coming from the bit stream.

[0061] 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 ordens de digitalização é configurado para selecionar uma ordem de digitalização padrão predefinida. Deste modo, uma ordem de digitalização pode ser selecionada mesmo se não for possível ocultação no lado do codificador.[0061] 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. In this way, a scanning order can be selected even if hiding is not possible on the encoder side.

[0062] Em uma forma de implementação do decodificador de acordo com o quinto aspecto da invenção, o módulo de verificação é configurado para reconstruir as informações ocultas a partir do vetor de ocultação de coeficientes mediante aplicação de uma função verificação ao vetor de ocultação de coeficientes, um resultado da função verificação sendo as informações ocultas. Deste modo, a ordem de digitalização pode ser vantajosamente obtida a partir dos coeficientes.[0062] 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 from the coefficient hiding vector by applying a verification function to the coefficient hiding vector , a result of the verification function being the information hidden. In this way, the scanning order can be advantageously obtained from the coefficients.

[0063] Em uma forma de implementação do decodificador de acordo com o quinto aspecto da invenção, o resultado da função verificação depende das coordenadas (x, y), dentro da matriz de coeficientes, do último coeficiente significativo do vetor de ocultação de coeficientes. A função verificação pode, por exemplo, ser a seguinte função: mod(x + y + R,2) x e y sendo as coordenadas e R sendo um valor inteiro. Deste modo, o resultado da função verificação pode ser obtido diretamente a partir das coordenadas de coeficientes.[0063] In one form of implementation of the decoder according to the fifth aspect of the invention, the result of the verification function depends on the coordinates (x, y), within the coefficient matrix, of the last significant coefficient of the coefficient hiding vector. The verification function can, for example, be the following function: mod(x + y + R,2) x and y being the coordinates and R being an integer value. In this way, the result of the verification function can be obtained directly from the coefficient coordinates.

[0064] Em uma forma de implementação do decodificador de acordo com o quinto aspecto da invenção, o módulo de verificação é configurado para reconstruir, para um primeiro bloco, informações ocultas a partir de um ou mais coeficientes do primeiro bloco, as informações ocultas constituindo ou fazendo parte de informações de ordens de digitalização associadas ao primeiro bloco, e o seletor de ordens de digitalização é configurado para selecionar, para o primeiro e ao menos um segundo bloco, uma ordem de digitalização com base nas informações de ordens de digitalização associadas ao primeiro bloco. Deste modo, esta forma de implementação fornece uma decodificação de “modo de mesclagem”, na qual o valor da ordem de digitalização selecionada para o segundo bloco é reconstruído/predito usando os valores de coeficientes do primeiro bloco sem ocultar qualquer coisa dentro dos coeficientes do segundo bloco. Por exemplo, o primeiro e o segundo blocos são adjacentes espacialmente.[0064] 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. Thus, 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 first block. second block. For example, the first and second blocks are spatially adjacent.

[0065] Em particular, o seletor de ordens de digitalização pode ser configurado para selecionar, para um grupo de blocos, uma ordem de digitalização com base nas informações de ordens de digitalização associadas ao primeiro bloco, onde 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 ao menos um índice de digitalização não-padrão oculto dentro de seus coeficientes. Alternativamente, o grupo de blocos pode incluir diversos blocos sequencialmente codificados, de modo que os referidos blocos codificados tenham o mesmo índice de digitalização. Alternativamente, o grupo de blocos pode incluir diversos blocos e/ou diversos blocos sequencialmente codificados com coeficientes para os quais a condição de ocultação é falsa.[0065] In particular, the scan order selector may be configured to select, for a group of blocks, a scan order based on scan order information associated with the first block, where 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 scanning index hidden within their coefficients. Alternatively, the group of blocks may include several sequentially coded blocks such that said coded blocks have the same scanning index. Alternatively, the group of blocks may include several blocks and/or several blocks sequentially encoded with coefficients for which the concealment condition is false.

[0066] Em particular, no modo de mesclagem são disponíveis diversas opções para o decodificador saber que nenhuma informação de ordem de digitalização está oculta nos coeficientes do ao menos um segundo bloco. Primeiramente, informações colaterais podem ser codificadas no fluxo de bits, por exemplo, uma bandeira para um grupo de blocos que habilita ou desabilita a utilização do modo de mesclagem para aqueles. Em segundo lugar, sem informações colaterais, é proposto aplicar a regra de mesclagem ao 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 ao segundo bloco se a condição de ocultação não for satisfeita para o segundo bloco, isto é, a ordem de digitalização para o segundo bloco é selecionada com base nas informações de ordens de digitalização associadas ao primeiro bloco. Em terceiro lugar, é proposta uma combinação das duas alternativas, a referida combinação compreendendo informações colaterais no fluxo de bits e aplicando uma mesclagem dependente da condição de ocultação.[0066] In particular, in blending mode, several options are available for the decoder to know that no scanning order information is hidden in the coefficients of at least one second block. First, side information can be encoded into the bitstream, for example, a flag for a group of blocks that enables or disables the use of merge mode for those. Secondly, without collateral information, it is proposed to apply the merge rule to 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 satisfied 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 two alternatives is proposed, said combination comprising collateral information in the bit stream and applying a merge dependent on the hiding condition.

[0067] As funções do decodificador de acordo com o quinto aspecto da invenção e de quaisquer funções de qualquer de suas formas de implementação podem ser executadas por um processador ou um computador, e qualquer de seus meios pode ser implementado como software e/ou hardware em tal processador ou computador.[0067] The functions of the decoder according to the fifth 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 on such processor or computer.

[0068] Um sexto aspecto da presente invenção fornece um método, preferivelmente de acordo com o segundo aspecto, para decodificar coeficientes de blocos de uma sequência de vídeos a partir de um fluxo de bits. O método compreende decodificar um ou mais vetores de coeficientes de cada bloco a partir do fluxo de bits. O método compreende reconstruir, para ao menos um bloco, informações ocultas a partir de um ou mais coeficientes daquele bloco, as informações ocultas constituindo ou fazendo parte de informações de ordens de digitalização associadas àquele bloco. O método compreende selecionar uma ordem de digitalização para cada bloco a partir de um conjunto de ordens de digitalização, preferivelmente a partir de um conjunto de ordens de digitalização predefinidas e geradas, com base nas informações de ordens de digitalização associadas àquele bloco. O método compreende digitalizar inversamente, para cada bloco, o um ou mais vetores de coeficientes daquele bloco de acordo com a ordem de digitalização selecionada para aquele bloco, deste modo obtendo uma matriz de coeficientes.[0068] A sixth aspect of the present invention provides a method, preferably in accordance with the second aspect, for decoding block coefficients of a video sequence from a bit stream. The method comprises decoding one or more coefficient vectors of each block from the bit stream. The method comprises reconstructing, for at least one block, hidden information from one or more coefficients of that block, the hidden information constituting or forming part of scanning 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 inversely digitizing, for each block, the one or more coefficient vectors of that block according to the digitization order selected for that block, thereby obtaining a matrix of coefficients.

[0069] Recursos 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.[0069] 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.

[0070] O método de acordo com o sexto aspecto da invenção ou de qualquer de suas formas de implementação pode ser executado por um processador ou um computador.[0070] 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.

[0071] Um sétimo aspecto da presente invenção fornece um codificador, preferivelmente de acordo com o terceiro aspecto, para codificar coeficientes de blocos de uma sequência de vídeos em um fluxo de bits, os coeficientes de cada bloco estando contidos em uma respectiva matriz de coeficientes. O codificador compreende um seletor de ordens de digitalização configurado para selecionar uma ordem de digitalização para cada bloco a partir de um conjunto de ordens de digitalização, preferivelmente a partir de um conjunto de ordens de digitalização predefinidas e geradas. O codificador compreende um serializador configurado para digitalizar, para cada bloco, a matriz de coeficientes daquele bloco de acordo com a ordem de digitalização selecionada para aquele bloco de modo a obter um ou mais vetores de coeficientes. O codificador compreende um módulo de ocultação configurado para ocultar, para ao menos um bloco, informações de ordens de digitalização que identificam a ordem de digitalização selecionada para aquele bloco ao menos parcialmente em um ou mais coeficientes daquele bloco (isto é, configurado para ocultar aquelas informações de ordem de digitalização ou parte daquelas naqueles um ou mais coeficientes). O codificador compreende um módulo de codificação configurado para codificar os vetores de coeficientes no fluxo de bits. Deste modo, a eficiência de codificação pode ser melhorada pela redução da sobrecarga de sinalização.[0071] 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 coefficient matrix . 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 digitize, for each block, the coefficient matrix of that block in accordance with the digitization order selected for that block so as 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 scanning order information or part thereof in those one or more coefficients). The encoder comprises a coding module configured to encode the coefficient vectors in the bit stream. In this way, coding efficiency can be improved by reducing signaling overhead.

[0072] Em uma forma de implementação do codificador de acordo com o sétimo aspecto da invenção, o módulo de ocultação é configurado para ocultar, para ao menos um bloco, as informações de ordens de digitalização em ao menos um vetor de ocultação de coeficientes escolhido entre o um ou mais vetores de coeficientes obtidos para aquele bloco.[0072] 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 scanning order information in at least one chosen coefficient hiding vector. between the one or more vectors of coefficients obtained for that block.

[0073] Em uma forma de implementação do codificador de acordo com o sétimo aspecto da invenção, o módulo de ocultação é configurado para ocultar, para ao menos um bloco, as informações de ordens de digitalização no vetor de ocultação de coeficientes que depende de uma condição de ocultação, a condição de ocultação compreendendo uma comparação de um parâmetro que depende do vetor de ocultação de coeficientes com um limite.[0073] 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 scanning order information in the coefficient hiding vector that depends on a hiding condition, the hiding condition comprising a comparison of a parameter that depends on the coefficient hiding vector with a threshold.

[0074] Em uma forma de implementação do codificador de acordo com o sétimo aspecto da invenção, o parâmetro é: - um número de coeficientes significativos dentro do vetor de ocultação de coeficientes, ou - uma distância entre primeiro e último coeficientes significativos dentro do vetor de ocultação de coeficientes, ou - uma razão de um valor máximo absoluto para um valor mínimo absoluto não-zero dos coeficientes dentro do vetor de ocultação de coeficientes, onde 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.[0074] In one form of encoder implementation according to the seventh aspect of the invention, the parameter is: - a number of significant coefficients within the coefficient hiding vector, or - a distance between first and last significant coefficients within the vector of coefficient hiding, or - a ratio of an absolute maximum value to a non-zero absolute minimum value of the coefficients within the coefficient hiding vector, where the hiding condition is true if the parameter is above the threshold, and false if the parameter is below the limit.

[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 é configurado para verificar a condição de ocultação, e para ocultar as informações de ordens de digitalização no vetor de ocultação de coeficientes se a condição de ocultação for verdadeira.[0075] 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 coefficient hiding vector if the condition concealment is true.

[0076] 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 ordens de digitalização é configurado para selecionar recursivamente outra ordem de digitalização a partir do conjunto de ordens de digitalização até que a condição de ocultação para aquela outra ordem de digitalização selecionada seja verdadeira. Deste modo, a seleção de outras ordens de digitalização é vantajosa pelo fato de que é possível executar ocultação de dados mesmo se a primeira ordem de digitalização selecionada implicasse em uma condição de ocultação falsa.[0076] 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. Therefore, the selection of other scanning orders is advantageous in that it is possible to perform data hiding even if the first selected scanning order would imply a false hiding condition.

[0077] 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 digitalização selecionada for uma ordem de digitalização padrão predefinida, o módulo de ocultação é configurado para não ocultar as informações de ordem de digitalização no vetor de ocultação de coeficientes.[0077] In one form of encoder implementation according to the seventh aspect of the invention, if the hiding condition is false and the selected scanning order is a predefined standard scanning order, the hiding module is configured to not hide the Scan order information in the coefficient hiding vector.

[0078] Em uma forma de implementação do codificador de acordo com o sétimo aspecto da invenção, o módulo de ocultação é configurado para ocultar, para ao menos um bloco, as informações de ordens de digitalização no vetor de ocultação de coeficientes por meio de: - aplicar uma função verificação ao vetor de ocultação de coeficientes de modo a obter um resultado da função verificação, - determinar se o resultado da função verificação corresponde às informações de ordens de digitalização, - se não, modificar o vetor de ocultação de coeficientes de modo que o resultado da função verificação corresponda às informações de ordens de digitalização.[0078] 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 scanning order information in the coefficient hiding vector by means of: - apply a check function to the coefficient hiding vector in order to obtain a result of the check function, - determine whether the result of the check function matches the scan order information, - if not, modify the coefficient hiding vector so that the result of the verification function matches the scan order information.

[0079] Em uma forma de implementação do codificador de acordo com o sétimo aspecto da invenção, o resultado da função verificação depende das coordenadas (x, y), dentro da matriz de coeficientes, do último coeficiente significativo do vetor de ocultação de coeficientes. A função verificação pode, por exemplo, ser a seguinte função: mod(x + y + R,2) x e y sendo as coordenadas e R sendo um valor inteiro.[0079] In one form of encoder implementation according to the seventh aspect of the invention, the result of the verification function depends on the coordinates (x, y), within the coefficient matrix, of the last significant coefficient of the coefficient hiding vector. The verification function can, for example, be the following function: mod(x + y + R,2) x and y being the coordinates and R being an integer value.

[0080] Em uma forma de implementação do codificador de acordo com o sétimo aspecto da invenção, se uma ordem de digitalização idêntica for selecionada pelo seletor de ordens de digitalização para um primeiro e ao menos um segundo bloco, o módulo de ocultação é configurado para ocultar informações de ordens de digitalização que identificam a ordem de digitalização idêntica em um ou mais coeficientes de apenas o primeiro bloco. Deste modo, é possível uma codificação de acordo com um “modo de mesclagem”. Em tal modo, preferivelmente as informações de ordens de digitalização que identificam a ordem de digitalização idêntica não estão ocultas em coeficientes do segundo bloco. Em outras palavras, o valor da ordem de digitalização selecionada para o segundo bloco é reconstruído/predito no lado do decodificador usando as informações de ordens de digitalização ocultas em coeficientes do primeiro bloco. O primeiro e o segundo blocos são, por exemplo, adjacentes espacialmente ou, por exemplo, blocos sucessivos no fluxo de bits. Portanto, as informações de ordens de digitalização do segundo bloco podem ser transmitidas ao decodificador sem ocultar qualquer coisa dentro dos coeficientes do segundo bloco.[0080] In one form of encoder implementation 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 hiding module is configured to hide scan order information that identifies the identical scan order in one or more coefficients of the first block only. In this way, coding according to a “blending mode” is possible. In such a mode, preferably scan order information identifying the 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, spatially adjacent or, for example, successive blocks in the bit stream. Therefore, the second block's scan order information can be transmitted to the decoder without hiding anything within the second block's coefficients.

[0081] Em particular, um grupo de blocos que compreende o primeiro bloco e um ou mais segundos blocos pode ser um grupo de blocos que tem ao menos um índice de digitalização não-padrão oculto dentro de seus coeficientes. Alternativamente, o grupo de blocos pode incluir diversos blocos sequencialmente codificados, de modo que os referidos blocos codificados tenham o mesmo índice de digitalização. Alternativamente, o grupo de blocos pode incluir diversos blocos e/ou diversos blocos sequencialmente codificados com coeficientes para os quais a condição de ocultação é falsa.[0081] In particular, a group of blocks comprising the first block and one or more second blocks may be a group of blocks that have at least one non-standard scanning index hidden within their coefficients. Alternatively, the group of blocks may include several sequentially coded blocks such that said coded blocks have the same scanning index. Alternatively, the group of blocks may include several blocks and/or several blocks sequentially encoded with coefficients for which the concealment condition is false.

[0082] Em particular, no modo de mesclagem são disponíveis diversas opções para o decodificador saber que nenhuma informação de ordem de digitalização está oculta nos coeficientes do ao menos um segundo bloco. Primeiramente, o codificador adiciona informações colaterais no fluxo de bits, por exemplo, uma bandeira que habilita ou desabilita a utilização do modo de mesclagem para um ou mais blocos, por exemplo, para o um ou mais segundos blocos. Em segundo lugar, sem informações colaterais, é proposto aplicar a regra de mesclagem ao 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 ao segundo bloco se a condição de ocultação não for satisfeita para o segundo bloco, isto é, a ordem de digitalização para o segundo bloco é selecionada com base nas informações de ordens de digitalização associadas ao primeiro bloco. Em terceiro lugar, é proposta uma combinação das duas alternativas, a referida combinação compreendendo informações colaterais no fluxo de bits e aplicando uma mesclagem dependente da condição de ocultação.[0082] In particular, in the blending mode, several options are available for the decoder to know that no scanning 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. Secondly, without collateral information, it is proposed to apply the merge rule to 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 satisfied 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 two alternatives is proposed, said combination comprising collateral information in the bit stream and applying a merge dependent on the hiding condition.

[0083] As funções do codificador de acordo com o sétimo aspecto da invenção e de quaisquer funções de qualquer de suas formas de implementação podem ser executadas por um processador ou um computador, e qualquer de seus meios pode ser implementado como software e/ou hardware em tal processador ou computador.[0083] The functions of the encoder according to the seventh 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 on such processor or computer.

[0084] Um oitavo aspecto da presente invenção fornece um método, preferivelmente de acordo com o quarto aspecto da invenção, para codificar coeficientes de blocos de uma sequência de vídeos 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 digitalização para cada bloco a partir de um conjunto de ordens de digitalização, preferivelmente a partir de um conjunto de ordens de digitalização predefinidas e geradas. O método compreende digitalizar, para cada bloco, a matriz de coeficientes daquele bloco de acordo com a ordem de digitalização selecionada para aquele bloco de modo a obter um ou mais vetores de coeficientes. O método compreende ocultar, para ao menos um bloco, informações de ordens de digitalização que identificam a ordem de digitalização selecionada para aquele bloco ao menos parcialmente em um ou mais coeficientes daquele bloco. O método compreende codificar os vetores de coeficientes no fluxo de bits.[0084] An eighth aspect of the present invention provides a method, preferably in accordance with 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 matrix of coefficients. 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 digitizing, for each block, the coefficient matrix of that block in accordance with the digitization order selected for that block in order to obtain one or more coefficient vectors. The method comprises hiding, for at least one block, scanning order information that identifies the selected scanning order for that block at least partially in one or more coefficients of that block. The method comprises encoding the coefficient vectors in the bit stream.

[0085] Recursos 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.[0085] 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.

[0086] O método de acordo com o oitavo aspecto da invenção ou de qualquer de suas formas de implementação pode ser executado por um processador ou um computador.[0086] 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.

[0087] Um nono aspecto da presente invenção fornece 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 for executado em um dispositivo de computação.[0087] A ninth aspect of the present invention provides a computer program comprising program code for performing the method according to the second, fourth, sixth or eighth aspect of the invention, when the computer program is executed on a device. computing.

[0088] Deve ser observado que todos os dispositivos, elementos, unidades e meios descritos no presente pedido de patente podem ser implementados em elementos de software ou de hardware ou qualquer tipo de combinação destes. Todas as etapas que são executadas pelas diversas entidades descritas no presente pedido de patente, assim como as funcionalidades descritas a serem executadas pelas diversas entidades, pretendem significar que a respectiva entidade está adaptada ou configurada para executar as respectivas etapas e funcionalidades. Mesmo se, na descrição a seguir de modalidades específicas, uma modalidade ou etapa específica a ser totalmente formada por entidades eternas não refletidas na descrição de um elemento específico detalhado daquela entidade que executa aquela etapa ou funcionalidade específica, deverá 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 combinação destes. BREVE DESCRIÇÃO DOS DESENHOS[0088] It should be noted that all devices, elements, units and means described in the present patent application can be implemented in software or hardware elements or any type of combination thereof. All steps that are performed by the various entities described in the present patent application, as well as the functionalities described to be performed by the various entities, are intended to mean that the respective entity is adapted or configured to execute the respective steps and functionalities. Even if, in the following description of specific embodiments, a specific modality or step is to be wholly formed by eternal entities not reflected in the detailed description of a specific element of that entity performing that specific step or functionality, it should be clear to a person skilled in the art of technique that these methods and functionalities can be implemented in respective software or hardware elements, or any type of combination thereof. BRIEF DESCRIPTION OF THE DRAWINGS

[0089] Os aspectos e formas de implementação acima da presente invenção serão explanados na descrição a seguir de modalidades específicas em relação aos desenhos anexos, nos quais:[0089] 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:

[0090] a Fig. 1 mostra um codificador de vídeos de acordo com uma modalidade da presente invenção;[0090] Fig. 1 shows a video encoder according to an embodiment of the present invention;

[0091] a Fig. 2 mostra um decodificador de vídeos de acordo com uma modalidade da presente invenção;[0091] Fig. 2 shows a video decoder according to an embodiment of the present invention;

[0092] a Fig. 3 mostra um fluxograma de estimativa de distribuição de coeficientes no decodificador de vídeos de acordo com uma modalidade da presente invenção;[0092] Fig. 3 shows a flowchart for estimating coefficient distribution in the video decoder according to an embodiment of the present invention;

[0093] a Fig. 4 mostra um fluxograma de estimativa de distribuição de coeficientes no codificador de vídeos de acordo com uma modalidade da presente invenção;[0093] Fig. 4 shows a flowchart for estimating coefficient distribution in the video encoder according to an embodiment of the present invention;

[0094] a Fig. 5 mostra um fluxograma de uma inicialização de uma lista de ordens de digitalização de acordo com uma modalidade da presente invenção;[0094] Fig. 5 shows a flowchart of an initialization of a list of scanning orders in accordance with an embodiment of the present invention;

[0095] a Fig. 6 mostra um fluxograma de sinalização implicita e explicita de ordens de digitalização selecionadas de acordo com uma modalidade da presente invenção;[0095] Fig. 6 shows a flowchart of implicit and explicit signaling of selected scanning orders in accordance with an embodiment of the present invention;

[0096] as Figs. 7 e 8 mostram uma condição de ocultação de acordo com uma modalidade da presente invenção;[0096] Figs. 7 and 8 show a concealment condition in accordance with an embodiment of the present invention;

[0097] a Fig. 9 mostra uma decodificação de entropia de coeficientes de acordo com o estado da técnica;[0097] Fig. 9 shows a decoding of coefficient entropy according to the state of the art;

[0098] a Fig. 10 mostra uma modalidade da presente invenção para melhorar a eficiência de codificação mediante redução da sobrecarga de sinalização no fluxo de bits;[0098] Fig. 10 shows an embodiment of the present invention for improving coding efficiency by reducing signaling overhead in the bit stream;

[0099] a Fig. 11 mostra um reordenador de coeficientes de acordo com a presente invenção; e[0099] Fig. 11 shows a coefficient reorderer according to the present invention; It is

[00100] a Fig. 12 mostra um exemplo de condições de ocultação definidas para ordens de digitalização.[00100] Fig. 12 shows an example of occultation conditions defined for scanning orders.

DESCRIÇÃO DETALHADA DE MODALIDADESDETAILED DESCRIPTION OF MODALITIES

[00101] A Fig. 1 mostra um codificador de vídeos de acordo com uma modalidade da presente invenção, e mostra em particular um codificador 100 para codificar coeficientes de blocos de uma sequência de vídeos em um fluxo de dados 107, os coeficientes de cada bloco estando contidos em uma respectiva matriz de coeficientes.[00101] Fig. 1 shows a video encoder in accordance with an embodiment of the present invention, and shows in particular an encoder 100 for encoding block coefficients of a video sequence in a data stream 107, the coefficients of each block being contained in a respective matrix of coefficients.

[00102] O codificador compreende um módulo de lista padrão de digitalização 110 configurada para fornecer uma ou mais ordens de digitalização predefinidas.[00102] The encoder comprises a scan pattern list module 110 configured to provide one or more predefined scan orders.

[00103] O codificador compreende um gerador de ordens de digitalização 111 configurado para gerar uma ou mais ordens de digitalização.[00103] The encoder comprises a scan order generator 111 configured to generate one or more scan orders.

[00104] O codificador compreende um seletor de ordens de digitalização 109 configurado para selecionar uma ordem de digitalização para cada bloco a partir das ordens de digitalização predefinidas e geradas.[00104] The encoder comprises a scan order selector 109 configured to select a scan order for each block from the predefined and generated scan orders.

[00105] O codificador compreende um serializador 104 configurado para digitalizar, para cada bloco, a matriz de coeficientes daquele bloco de acordo com a ordem de digitalização selecionada para aquele bloco de modo a obter um ou mais vetores de coeficientes.[00105] The encoder comprises a serializer 104 configured to digitize, for each block, the coefficient matrix of that block in accordance with the digitization order selected for that block so as to obtain one or more coefficient vectors.

[00106] O codificador compreende um módulo de codificação 106 configurado para codificar os vetores de coeficientes em um fluxo de bits 107.[00106] The encoder comprises a coding module 106 configured to encode the coefficient vectors into a bit stream 107.

[00107] O gerador de ordens de digitalização 111 é configurado para gerar a uma ou mais ordens de digitalização que dependem da uma ou mais matrizes de coeficientes previamente digitalizadas de blocos da sequência de vídeos.[00107] Scan order generator 111 is configured to generate one or more scan orders that depend on one or more previously scanned coefficient matrices of blocks of the video sequence.

[00108] A Fig. 2 mostra um decodificador de vídeos de acordo com uma modalidade da presente invenção, e mostra em particular um decodificador 200 para decodificar coeficientes de blocos de uma sequência de vídeos a partir de um fluxo de dados 207.[00108] Fig. 2 shows a video decoder in accordance with an embodiment of the present invention, and shows in particular a decoder 200 for decoding block coefficients of a video sequence from a data stream 207.

[00109] O decodificador compreende um módulo de lista padrão de digitalização 210 configurado para fornecer uma ou mais ordens de digitalização predefinidas.[00109] The decoder comprises a scan pattern list module 210 configured to provide one or more predefined scan orders.

[00110] O decodificador compreende um gerador de ordens de digitalização 211 configurado para gerar uma ou mais ordens de digitalização.[00110] The decoder comprises a scan order generator 211 configured to generate one or more scan orders.

[00111] O decodificador compreende um seletor de ordens de digitalização 209 configurado para selecionar uma ordem de digitalização para cada bloco a partir das ordens de digitalização predefinidas e geradas com base nas informações de ordens de digitalização SCAN_IDX contidas no fluxo de bits.[00111] The decoder comprises a scan order selector 209 configured to select a scan order for each block from predefined scan orders generated based on SCAN_IDX scan order information contained in the bit stream.

[00112] O decodificador compreende um módulo de decodificação 206 configurado para decodificar um ou mais vetores de coeficientes de cada bloco a partir do fluxo de bits 207.[00112] The decoder comprises a decoding module 206 configured to decode one or more coefficient vectors of each block from the bit stream 207.

[00113] O decodificador compreende um desserializador 204 configurado para digitalizar inversamente, para cada bloco, o um ou mais vetores de coeficientes daquele bloco de acordo com a ordem de digitalização selecionada para aquele bloco de modo a obter uma matriz de coeficientes.[00113] The decoder comprises a deserializer 204 configured to inversely digitize, for each block, the one or more coefficient vectors of that block in accordance with the digitization order selected for that block in order to obtain a matrix of coefficients.

[00114] O gerador de ordens de digitalização 211 é configurado para gerar a uma ou mais ordens de digitalização que dependem da uma ou mais matrizes de coeficientes previamente obtidas de blocos da sequência de vídeos.[00114] Scan order generator 211 is configured to generate one or more scan orders that depend on one or more coefficient matrices previously obtained from blocks of the video sequence.

[00115] Em particular, a Fig. 1 mostra um exemplo de uma parte residual de codificação do lado do codificador com seções de ordens de digitalização adaptáveis ao conteúdo. No exemplo, o codificador 100 é configurado para aplicar interpredição ou intrapredição a cada bloco de cada imagem da sequência de vídeos. Um modo de intrapredição usa 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 é projetado para predição temporal e utiliza amostras de referência de imagens anteriores ou seguintes para prever pixels do bloco da imagem atual. 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 por meio de interpredição ou intrapredição.[00115] In particular, Fig. 1 shows an example of an encoder-side coding residual part with content-adaptive scanning order sections. In the example, encoder 100 is configured to apply interprediction or intraprediction to each block of each image in 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 uses 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 interprediction or intraprediction.

[00116] Um modo de predição para obter o sinal residual 101 pode referir-se correspondentemente ao modo tanto de intrapredição como de interpredição. Mais adiante, o modo de predição pode corresponder a qualquer 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 a até 35 modos de intrapredição, os quais podem incluir 33 modos direcionais e 2 modos não-direcionais, tais como um modo de predição de corrente direta (DC) e um modo de predição planar. Os 33 modos direcionais podem cobrir uma faixa angular de p radianos ou 180 graus. Se a direção de um modo vertical for considerada como zero grau, os 33 modos direcionais podem ser simétricos em torno do eixo geométrico a -45 graus. Em relação ao modo de predição, o codificador pode ser configurado para determinar, para um determinado bloco, um da pluralidade de modos de predição disponíveis baseados em uma Otimização de Taxa-Distorção (RDO).[00116] A prediction mode for obtaining the residual signal 101 may correspondingly refer to both intraprediction and interprediction mode. Further, the prediction mode may correspond to any 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 DC prediction mode. to soar. The 33 directional modes can cover an angular range of p radians or 180 degrees. If the direction of a vertical mode is considered to be zero degrees, the 33 directional modes can be symmetric about the geometric axis at -45 degrees. Regarding the prediction mode, the encoder can be configured to determine, for a given block, one of the plurality of available prediction modes based on a Rate-Distortion Optimization (RDO).

[00117] Uma Unidade de Árvore de Codificação (CTU) é a raiz de uma estrutura de codificação da sequência de vídeos de uma dimensão predefinida, que contém uma parte de uma imagem (por exemplo, 64x64 pixels). Uma CTU pode ser particionada em Unidades de Codificação (CUs). Uma CU é uma estrutura básica de codificação da sequência de vídeos de uma dimensão predefinida, que contém uma parte de uma imagem que pertence a uma CTU. Uma CU pode ser particionada em outras CUs. Uma Unidade de Predição (PU) é uma estrutura de codificação que é o resultado da partição de uma CU. Uma PU pode ser particionada em diversas Unidades de Transformação (TUs) ou coincidir com uma única TU. Uma TU pode ser intrapredita ou interpredita de acordo com o tipo de processamento aplicado aos pixels da PU. No caso de interpredição, uma PU representa uma área de pixels que é processada por compensação de movimento usando um vetor de movimento especificado para uma PU.[00117] A Coding Tree Unit (CTU) is the root of a video sequence coding structure of a predefined dimension, 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 encoding structure of a predefined dimension, which contains a part of an image that belongs to a CTU. A CU can be partitioned into other CUs. A Prediction Unit (PU) is a coding structure that is the result of partitioning a CU. A PU can be partitioned into several Transformation Units (TUs) or coincide with a single TU. A TU can be intrapredicted 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.

[00118] No que se refere a isto, um modo de partição pode depender da PU, e em particular da dimensão e/ou orientação da PU. O modo de partição pode corresponder a qualquer de uma pluralidade de modos de partição disponíveis. O codificador pode ser configurado para determinar, para um bloco ou PU, um da pluralidade de modos de partição disponíveis baseado em um método RDO. Por exemplo, o modo de partição pode corresponder a uma forma orientada horizontalmente, na qual uma CU pode ser particionada em 2NxN PUs ou blocos. Também, o modo de partição pode corresponder a uma forma orientada verticalmente, na qual uma CU pode ser particionada em Nx2N PUs ou blocos, ou a uma forma quadrada na qual uma CU pode ser particionada em 2Nx2N PUs ou blocos.[00118] In this regard, a partition mode may depend on the PU, and in particular 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 2NxN PUs or blocks. Also, the partition mode can correspond to a vertically oriented shape, in which a CU can be partitioned into Nx2N PUs or blocks, or a square shape in which a CU can be partitioned into 2Nx2N PUs or blocks.

[00119] O sinal residual 101 pode ser fornecido a um módulo de transformação 102 para codificar por transformação o sinal residual 101 de modo a obter coeficientes de transformação. Em particular, para intrapredição uma PU pode especificar um modo de predição para um conjunto de TUs. Uma TU pode ter diferentes dimensões - por exemplo, 4x4, 8x8, 16x16 e 32x32 pixels - e pode ser processada de diferentes modos. Exemplos de transformadas que podem ser aplicadas a um sinal residual compreendem, por exemplo, Transformada Discreta de Cosseno (DCT) e Transformada Discreta de Seno (DST).[00119] The residual signal 101 can be provided to a transformation module 102 to transform encode the residual signal 101 to obtain transformation coefficients. In particular, for intraprediction a PU can specify a prediction mode for a set of TUs. A TU can have different dimensions - for example, 4x4, 8x8, 16x16 and 32x32 pixels - and can be processed in different ways. Examples of transforms that can be applied to a residual signal include, for example, Discrete Cosine Transform (DCT) and Discrete Sine Transform (DST).

[00120] No que se refere a isto, um parâmetro de transformação pode ter a dimensão ou a forma da TU, ou ambas dimensão e forma. Um parâmetro de transformação adicional pode ser a transformada sendo aplicada, por exemplo, DCT ou DST entre outras.[00120] In this regard, a transformation parameter can have the size or shape of the TU, or both size and shape. An additional transformation parameter can be the transform being applied, for example, DCT or DST among others.

[00121] O sinal residual 101 calculado para um bloco da imagem fonte é transformado pelo módulo de transformação 102 e em seguida quantizado por um módulo de quantização 103. O módulo de quantização 103 processa os coeficientes de transformação de modo a obter coeficientes de transformação quantizados (QTCs) na forma de uma matriz de coeficientes.[00121] The residual signal 101 calculated for a block of the source image is transformed by the transformation module 102 and then quantized by a quantization module 103. The quantization module 103 processes the transformation coefficients in order to obtain quantized transformation coefficients (QTCs) in the form of a coefficient matrix.

[00122] No que se refere a isto, um parâmetro de quantização pode corresponder ao 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.[00122] In this regard, a quantization parameter may correspond to the number of significant coefficients of the coefficient matrix, that is, the number of coefficients of the coefficient matrix that have a non-zero value.

[00123] A matriz de coeficientes é serializada por meio do serializador 104 por digitalização em uma ordem determinada pelo seletor de ordens de digitalização 109. A ordem de digitalização pode ser selecionada tanto a partir das ordens de digitalização predefinidas fornecidas pela lista padrão de digitalização 110 como a partir das ordens de digitalização geradas fornecidas pelo gerador de ordens de digitalização 111. As ordens de digitalização fornecidas pela lista padrão de digitalização 110 são predefinidas no lado tanto do codificador 100 como do decodificador 200 e, portanto, uma ordem de digitalização selecionada a partir da lista padrão de digitalização 110 é estática, isto é, não é modificada durante todo o processo de codificação ou decodificação. As ordens de digitalização fornecidas pelo gerador de ordens de digitalização 111 são dinâmicas, isto é, são geradas dependendo de uma ou mais matrizes de coeficientes previamente obtidas de blocos da sequência de vídeos. Em particular, as ordens de digitalização geradas podem ser geradas de acordo com as estatísticas de distribuição de matrizes de coeficientes durante o processo de codificação ou decodificação.[00123] The coefficient matrix is serialized via the serializer 104 by scanning in an order determined by the scan order selector 109. The scan order can be selected either from the predefined scan orders provided by the scan default list 110 as from the generated scan orders provided by the scan order generator 111. The scan orders provided by the standard scan list 110 are predefined on the side of both the encoder 100 and the decoder 200 and therefore a scan order selected from from the scan pattern list 110 is static, that is, it is not modified during the entire encoding or decoding process. The scan orders provided by the 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. In particular, the generated scanning orders can be generated according to the distribution statistics of coefficient matrices during the encoding or decoding process.

[00124] O um ou mais vetores de coeficientes obtidos pelo serializador 104 a partir de uma matriz de coeficientes são armazenados em um buffer de coeficientes quantizados 105. O módulo de codificação 106 pode ser na forma de um módulo de codificação de entropia para codificar por entropia os vetores de coeficientes no fluxo de bits 107. A ordem de digitalização que é selecionada pelo seletor de ordens de digitalização 109 pode ser identificado por meio de informações de índices de digitalização ou de ordens de digitalização SCAN_IDX.[00124] The one or more vectors of coefficients obtained by the serializer 104 from a matrix of coefficients are stored in a quantized coefficient buffer 105. The encoding module 106 may be in the form of an entropy encoding module for encoding by entropy of the coefficient vectors in the bit stream 107. The scan order that is selected by the scan order selector 109 can be identified through scan index information or SCAN_IDX scan orders.

[00125] Estas informações de índices de digitalização podem ser explicitamente adicionadas ao fluxo de bits 107, isto é, o valor das informações de ordens de digitalização SCAN_IDX pode ser armazenado no fluxo de bits 107 por meio de um parâmetro ou variável dedicado. Alternativamente, um módulo de ocultação 112 pode ser configurado para ocultar ao menos parcialmente as informações de ordens de digitalização SCAN_IDX nos vetores de coeficientes, isto é, nos valores da matriz de coeficientes após serialização. Por exemplo, o módulo de ocultação 112 pode executar correspondentemente ajustes dos coeficientes armazenados no buffer de coeficientes quantizados 105 de modo que um correspondente módulo de verificação localizado em um módulo de verificação 212 do decodificador 200 possa obter as informações de ordens de digitalização SCAN_IDX pela aplicação de uma função de verificação àquelas. Os coeficientes ajustados resultantes ou os vetores de coeficientes armazenados no buffer de coeficientes quantizados 105 podem em seguida ser codificados por entropia e transmitidos ao decodificador 200 no fluxo de bits 107.[00125] This scan index information can be explicitly added to bitstream 107, that is, the value of SCAN_IDX scan order information can be stored in bitstream 107 via a dedicated parameter or variable. Alternatively, a hiding module 112 can be configured to at least partially hide SCAN_IDX scan order information in the coefficient vectors, i.e., in the values of the coefficient matrix after serialization. For example, the hiding module 112 may correspondingly perform adjustments of the coefficients stored in the quantized coefficient buffer 105 so that a corresponding verification module located in a verification module 212 of the decoder 200 may obtain the SCAN_IDX scan order information by the application. of a verification function to those. 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.

[00126] Os coeficientes de um ou mais vetores de coeficientes armazenados no buffer de coeficientes quantizados 105 podem em seguida ser ajustados ou não, dependendo das informações de ordens de digitalização SCAN_IDX serem transmitidas explicita ou implicitamente no fluxo de bits 107, isto é, dependendo de as informações de ordens de digitalização serem ocultas ou não.[00126] The coefficients of one or more coefficient vectors stored in the quantized coefficient buffer 105 may then be adjusted or not, depending on whether SCAN_IDX scan order information is transmitted explicitly or implicitly in the bit stream 107, i.e., depending whether scan order information is hidden or not.

[00127] Em particular, o módulo de lista padrão de digitalização 110 é configurada para fornecer uma ou mais ordens de digitalização predefinidas para cada um de uma pluralidade de conjuntos de parâmetros de codificação. O gerador de ordens de digitalização 111 é configurado para gerar uma ordem de digitalização para cada um dos conjuntos de parâmetros de codificação que dependem de uma ou mais matrizes de coeficientes previamente digitalizadas associados àquele conjunto de parâmetros de codificação. O seletor de ordens de digitalização 109 é configurado para selecionar uma ordem de digitalização para cada bloco mediante: - determinação de um conjunto de parâmetros de codificação daquele bloco, e - seleção da ordem de digitalização para a matriz de coeficientes daquele bloco a partir das ordens de digitalização predefinidas e geradas para o determinado conjunto de parâmetros de codificação.[00127] In particular, 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. Scan order generator 111 is configured to generate a scan order for each of the sets of coding parameters that depend on one or more previously scanned coefficient matrices associated with that set of coding parameters. The scan order selector 109 is configured to select a scan order for each block by: - determining a set of coding parameters for that block, and - selecting the scan order for the coefficient matrix for that block from the orders predefined and generated scan numbers for the given set of encoding parameters.

[00128] No que se refere a isto, um conjunto de parâmetros de codificação corresponde a uma combinação específica de ao menos um ou mais de: - um modo de predição, - um modo de partição, - um ou mais parâmetros de transformação, e - um ou mais parâmetros de quantização.[00128] In this regard, a set of coding parameters corresponds to a specific combination of at least one or more of: - a prediction mode, - a partition mode, - one or more transformation parameters, and - one or more quantization parameters.

[00129] O modo de predição, o modo de partição, os parâmetros de transformação e os parâmetros de quantização são de modo geral referidos pela referência 108 na Fig. 1. Por exemplo, um conjunto de parâmetros de codificação pode corresponder a apenas um modo de predição (por exemplo, um modo de intrapredição direcional específico), a apenas um modo de partição (por exemplo, uma orientação específica da PU), a apenas um ou mais parâmetros de transformação (por exemplo, uma dimensão e/ou forma específica da TU), ou a apenas 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, do modo de partição, dos parâmetros de transformação e/ou dos parâmetros de quantização.[00129] The prediction mode, partition mode, transformation parameters and quantization parameters are generally referred to by reference 108 in Fig. 1. For example, a set of coding parameters can correspond to only one mode prediction mode (e.g., a specific directional intraprediction mode), to just one partition mode (e.g., a specific PU orientation), to just one or more transformation parameters (e.g., a specific dimension and/or shape of TU), or to just one or more quantization parameters (e.g., 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, transformation parameters and/or quantization parameters.

[00130] O codificador 100 pode compreender um estimador de distribuição de coeficientes 113 configurado para fornecer, para cada um dos conjuntos de parâmetros de codificação, uma estatística de distribuição de uma ou mais matrizes de coeficientes previamente digitalizadas associadas àquele conjunto de parâmetros de codificação. O gerador de ordens de digitalização 111 é configurado para gerar a ordem de digitalização para cada um dos conjuntos de parâmetros de codificação que dependem da estatística de distribuição para aquele conjunto de parâmetros de codificação.[00130] 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 previously digitized coefficient matrices 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 that depend on the distribution statistics for that set of coding parameters.

[00131] Em particular, os coeficientes armazenados no buffer de coeficientes quantizados 105 são também uma fonte para a estimativa de estatística de distribuição de coeficientes que é usada pelo gerador de ordens de digitalização 111. Contudo, antes da estimativa da distribuição de coeficientes, os coeficientes armazenados são desserializados de volta a partir do vetor de coeficientes para uma matriz de coeficientes por meio de um desserializador 114.[00131] In particular, 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, prior to estimating the coefficient distribution, the Stored coefficients are deserialized back from the coefficient vector to a coefficient array via a deserializer 114.

[00132] A estatística de distribuição de uma matriz de coeficientes compreende preferivelmente, como definido em US 2008/0310504, uma indicação da probabilidade de que um valor de coeficiente em uma posição da matriz de coeficientes bidimensional seja zero ou não-zero e pode, por exemplo, compreender uma contagem, uma probabilidade ou outra métrica estatística associada a cada uma das posições da matriz de coeficientes bidimensional. Uma ordem de digitalização gerada que dependa de tal estatística de distribuição pode correspondentemente ser uma ordem de digitalização que é configurada para digitalizar com maior prioridade as posições de coeficientes com maior probabilidade de ter coeficientes não-zero.[00132] The distribution statistic of a coefficient matrix preferably comprises, as defined in US 2008/0310504, an indication of the probability that a coefficient value at a position of the two-dimensional coefficient matrix is zero or non-zero and may, for example, understanding a count, probability, or other statistical metric associated with each of the positions of the two-dimensional coefficient matrix. A generated scan order that depends on such a distribution statistic may correspondingly be a scan order that is configured to scan with higher priority those coefficient positions that are more likely to have non-zero coefficients.

[00133] Em particular, se a ordem de digitalização selecionada para um determinado bloco for uma ordem de digitalização gerada, o estimador de distribuição de coeficientes 113 pode ser configurado para atualizar a estatística de distribuição para o conjunto de parâmetros de codificação do determinado bloco de acordo com a estatística de distribuição da matriz de coeficientes do determinado bloco. A estatística de distribuição da matriz de coeficientes do determinado bloco pode refletir se o coeficiente em uma posição na matriz de coeficientes do determinado bloco é zero ou não-zero. A estatística de distribuição fornecida pelo estimador de distribuição de coeficientes 113 pode em seguida, por exemplo, ser atualizada dependendo da referida estatística de distribuição da matriz de coeficientes do determinado bloco.[00133] In particular, if the selected scan order for a given block is a generated scan order, the coefficient distribution estimator 113 can be configured to update the distribution statistic for the given block's set of encoding parameters. according to the distribution statistics of the coefficient matrix of the given block. The distribution statistics of the coefficient matrix of the given block may reflect whether 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.

[00134] Em particular, se a ordem de digitalização selecionada para uma determinada matriz de coeficientes for predefinida, o estimador de distribuição de coeficientes 113 pode ser configurado para não atualizar ou pode ser configurado para reiniciar a estatística de distribuição para o conjunto de parâmetros de codificação do determinado bloco. Reiniciar a estatística de distribuição pode, por exemplo, consistir em reiniciar a referida contagem, probabilidade ou outra métrica estatística.[00134] In particular, if the selected scanning 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 scanning parameters. coding of the given block. Resetting the distribution statistic may, for example, consist of resetting said count, probability, or other statistical metric.

[00135] Esta atualização, não-atualização, ou reinício da estatística de distribuição executada pelo estimador de distribuição de coeficientes 113 que depende do seletor de ordens de digitalização 109 ter selecionado uma ordem de digitalização gerada ou predefinida é refletida na Fig. 1 por uma seta tracejada desde o seletor de ordens de digitalização 109 até o estimador de distribuição de coeficientes 113.[00135] This update, non-update, or reset of the distribution statistic performed by the coefficient distribution estimator 113 that depends on the scan order selector 109 having selected a generated or predefined scan order is reflected in Fig. 1 by a dashed arrow from scan order selector 109 to coefficient distribution estimator 113.

[00136] O decodificador da modalidade proposta é mostrado na Fig. 14. Os estágios de processamento são similares àqueles do codificador (vide Fig. 13) e são aplicados na ordem inversa. A diferença mais importante é que o buffer de coeficientes quantizados armazena QTCs após serem desserializados, isto é, como uma matriz de QTCs mas não QTCs como um ou mais vetores.[00136] The decoder of the proposed modality is shown in Fig. 14. The processing stages are similar to those of the encoder (see Fig. 13) and are applied in reverse order. The most important difference is that the quantized coefficient buffer stores QTCs after they are deserialized, that is, as an array of QTCs but not QTCs as one or more vectors.

[00137] Em particular, a Fig. 2 mostra um exemplo de uma parte de decodificação residual com seleção de ordens de digitalização adaptáveis ao conteúdo. No exemplo, o decodificador 200 é configurado para obter um sinal residual 201 a partir 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 transformação quantizados, um buffer de coeficientes quantizados 205 armazena a referida matriz de coeficientes. A matriz de coeficientes armazenada é em seguida processada por um módulo de quantização inversa 203 e por um módulo de transformação inversa 202 para obter o sinal residual 201 correspondente ao sinal residual 101 no codificador 100. Usando o sinal residual 201, a sequência de vídeos codificada pode ser reconstruída de acordo com técnicas conhecidas.[00137] In particular, Fig. 2 shows an example of a residual decoding part with selection of content-adaptive scanning orders. 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 transformation 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 transformation module 202 to obtain the residual signal 201 corresponding 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.

[00138] O estimador de distribuição de coeficientes 213 do decodificador 200 pode ser similar ou idêntico em função ao estimador de distribuição de coeficientes 113 do codificador 100. No exemplo, eles diferem pelo fato do estimador de distribuição de coeficientes 213 receber como entrada a matriz de coeficientes armazenada no buffer de coeficientes quantizados 205 enquanto que o estimador de distribuição de coeficientes 113 recebe como entrada a matriz de coeficientes obtida a partir do desserializador 114.[00138] 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, they differ in that the coefficient distribution estimator 213 receives 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.

[00139] A presente invenção propõe o uso combinado de ordens de digitalização predefinidas e de ordens de digitalização geradas no lado tanto do codificador 100 como do decodificador 200 dependendo das matrizes de coeficientes previamente digitalizadas, respectivamente obtidas, de blocos da sequência de vídeos. Em particular, as ordens de digitalização geradas são geradas mediante análise de uma estatística de distribuição dos coeficientes dentro da matriz de coeficientes, isto é, mediante análise de uma distribuição dos coeficientes de transformação quantizados.[00139] The present invention proposes the combined use of predefined scanning orders and scanning orders generated on the side of both the encoder 100 and the decoder 200 depending on the previously digitized coefficient matrices, respectively obtained, from blocks of the video sequence. In particular, the generated digitization orders are generated by analyzing a distribution statistic of the coefficients within the coefficient matrix, that is, by analyzing a distribution of the quantized transformation coefficients.

[00140] Uma característica específica da invenção proposta é que estatísticas de distribuição para coeficientes de transformação quantizados (QTCs) são estimadas com maior precisão ao levar em consideração a ordem de digitalização selecionada, como mostrado, por exemplo, nas Figs. 1 e 2 pela seta entre o seletor de ordens de digitalização 109, 209 e o estimador de distribuição de coeficientes 113, 213. Esta estimativa mais precisa pode consistir em, por exemplo, atualizar, não atualizar, ou reiniciar a estatística de distribuição como mostrado acima.[00140] A specific feature of the proposed invention is that distribution statistics for quantized transformation coefficients (QTCs) are estimated with greater accuracy when taking into account the selected scanning order, as shown, for example, in Figs. 1 and 2 by the arrow between the scan order selector 109, 209 and the coefficient distribution estimator 113, 213. This more accurate estimate may consist of, for example, updating, not updating, or resetting the distribution statistic as shown above.

[00141] A distribuição de coeficientes pode ser estimada com maior precisão mediante divisão dos dados fonte em 4 períodos estacionários e estimando a distribuição de coeficientes apenas dentro destes períodos estacionários. Um período estacionário é um número de blocos que têm distribuição similar de QTCs e estão espacialmente próximos entre si.[00141] The distribution of coefficients can be estimated with greater precision 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.

[00142] Na presente invenção, é particularmente proposto detectar um período estacionário mediante introdução de um limite no número de blocos processados que é assinalado ter ordem de digitalização gerada adaptativamente. Quando a ordem de digitalização for selecionada a partir de ordens de digitalização predefinidas pelo módulo de lista padrão de digitalização, não existe necessidade de atualizar a estatística de distribuição, uma vez que para este caso o fato de a ordem de digitalização ser uma ordem predefinida indica que o bloco atualmente processado pertence a diferente período estacionário.[00142] In the present invention, it is particularly proposed to detect a stationary period by introducing a limit on the number of processed blocks that are marked to have adaptively generated scanning order. When the scan order is selected from predefined scan orders by the scan default list module, there is no need to update the distribution statistics, as for this case the fact that the scan order is a predefined order indicates that the currently processed block belongs to a different stationary period.

[00143] A Fig. 3 mostra um fluxograma de estimativa de estatística de distribuição no decodificador de vídeos de acordo com uma modalidade da presente invenção.[00143] Fig. 3 shows a flowchart for estimating distribution statistics in the video decoder according to an embodiment of the present invention.

[00144] No decodificador de vídeos, a estimativa 301 da estatística de distribuição pelo estimador de distribuição de coeficientes 213 compreende diversas etapas.[00144] In the video decoder, the estimation 301 of the distribution statistics by the coefficient distribution estimator 213 comprises several steps.

[00145] Em uma etapa 302, o modo de predição, o modo de partição, os parâmetros de transformação e/ou os parâmetros de quantização 208 para um bloco são analisados a partir do fluxo de bits 207. Preferivelmente, esta análise é executada pelo módulo de decodificação 206. De acordo com as informações analisadas, o seletor de ordens de digitalização 209 determina preferivelmente o modo de codificação daquele bloco.[00145] In a step 302, the prediction mode, partition mode, transformation parameters and/or quantization parameters 208 for a block are analyzed from the bit stream 207. Preferably, this analysis is performed by the decoding module 206. According to the analyzed information, the scanning order selector 209 preferably determines the encoding mode of that block.

[00146] Em uma etapa 303, as informações de ordens de digitalização SCAN_IDX que identificam a ordem de digitalização selecionada para aquele bloco são analisadas a partir do fluxo de bits 207. Esta análise é feita preferivelmente pelo módulo de decodificação 206.[00146] 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.

[00147] Em uma etapa 304, o seletor de ordens de digitalização 209 seleciona a ordem de digitalização para aquele bloco a partir das ordens de digitalização predefinidas e geradas com base nas informações de ordens de digitalização SCAN_IDX analisadas.[00147] In a step 304, the scan order selector 209 selects the scan order for that block from the predefined scan orders generated based on the analyzed SCAN_IDX scan order information.

[00148] Em uma etapa 305, é determinado se a ordem de digitalização selecionada é uma ordem de digitalização predefinida fornecida pelo módulo de lista padrão de digitalização 210 ou uma ordem de digitalização gerada fornecida pelo gerador de ordens de digitalização 211.[00148] 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.

[00149] Se a ordem de digitalização selecionada para aquele bloco for uma ordem gerada (por exemplo, fornecida pelo gerador de ordens de digitalização 211), o estimador de distribuição de coeficientes 213 atualiza, em uma etapa 306, a estatística de distribuição atual. Esta estatística de distribuição atual é obtida preferivelmente a partir de blocos anteriores. A estatística de distribuição atual é atualizada de acordo com uma estatística de distribuição da matriz de coeficientes obtida para aquele bloco.[00149] If the scan order selected for that block is a generated order (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 statistic is updated according to a coefficient matrix distribution statistic obtained for that block.

[00150] Se, contudo, a ordem de digitalização selecionada para aquele bloco for uma ordem predefinida (por exemplo, fornecida pelo módulo de lista padrão de digitalização 210), o estimador de distribuição de coeficientes 213 processa, em uma etapa 306, a estatística de distribuição daquele bloco separadamente a partir da estatística de distribuição atual. Por exemplo, o estimador de distribuição de coeficientes 213 pode não atualizar ou pode reiniciar a estatística de distribuição atual.[00150] If, however, the scan order selected for that block is a predefined order (e.g., provided by the scan pattern list module 210), the coefficient distribution estimator 213 processes, in one step 306, the statistics of that block separately from the current distribution statistic. For example, the coefficient distribution estimator 213 may not update or may reset the current distribution statistic.

[00151] Após a etapa 306 ou 307, a estimativa 301 da estatística de distribuição termina (na etapa 308).[00151] After step 306 or 307, estimation 301 of the distribution statistic ends (at step 308).

[00152] A Fig. 4 mostra um fluxograma de estimativa de estatística de distribuição no codificador de vídeos de acordo com uma modalidade da presente invenção.[00152] Fig. 4 shows a flowchart of estimating distribution statistics in the video encoder according to an embodiment of the present invention.

[00153] No codificador de vídeos, a estimativa 401 da estatística de distribuição pelo estimador de distribuição de coeficientes 113 compreende diversas etapas.[00153] In the video encoder, the estimation 401 of the distribution statistics by the coefficient distribution estimator 113 comprises several steps.

[00154] Em uma etapa 402, um procedimento RDO é executado pelo seletor de ordens de digitalização 109 com a finalidade de selecionar, de entre as ordens de digitalização predefinidas fornecidas pelo módulo de lista padrão de digitalização 110 e as ordens de digitalização geradas fornecidas pelo gerador de ordens de digitalização 111, a ordem de digitalização que fornece o mínimo custo de taxa- distorção (RD). Nesta etapa, são obtidas as informações de ordens de digitalização SCAN_IDX da ordem de digitalização selecionada.[00154] In a step 402, an RDO procedure is performed by the scan order selector 109 for the purpose of selecting from among 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.

[00155] Em uma etapa 403, é obtida a ordem de digitalização correspondente às informações de ordens de digitalização SCAN_IDX selecionadas.[00155] In a step 403, the scan order corresponding to the selected SCAN_IDX scan order information is obtained.

[00156] As etapas adicionais 404 a 407 correspondem às etapas 305 a 308 da Fig. 3.[00156] Additional steps 404 to 407 correspond to steps 305 to 308 of Fig. 3.

[00157] Como mostrado nas Figs. 3 e 4, no lado tanto do codificador como do decodificador é inicializada uma lista de ordens de digitalização. Esta inclui elementos do módulo de lista padrão de digitalização e ordens de digitalização geradas pelo gerador de ordens de digitalização. Dependendo de a ordem de digitalização selecionada pelo seletor de ordens de digitalização ser gerada ou predefinida, é tomada uma decisão quanto à estatística de distribuição. Esta decisão pode consistir em atualizar ou não a estatística de distribuição atual, ou no reinício da estatística de distribuição atual.[00157] As shown in Figs. 3 and 4, on both the encoder and decoder sides a list of digitization orders is initialized. This includes elements from 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 is made regarding the distribution statistic. This decision may consist of whether or not to update the current distribution statistic, or restarting the current distribution statistic.

[00158] Um dos possíveis modos para inicializar a lista de ordens de digitalização é mostrado na Fig. 5. A Fig. 5 mostra correspondentemente um fluxograma 500 de uma inicialização 501 de uma lista de ordens de digitalização de acordo com uma modalidade da presente invenção.[00158] One of the possible ways to initialize the scan order list is shown in Fig. 5. Fig. 5 correspondingly shows a flowchart 500 of an initialization 501 of a scan order list in accordance with an embodiment of the present invention .

[00159] A sua inicialização depende do modo de predição, do modo de partição, dos parâmetros de transformação e dos parâmetros de quantização especificados para um bloco sendo processado.[00159] Its initialization depends on the prediction mode, partition mode, transformation parameters and quantization parameters specified for a block being processed.

[00160] Em uma etapa 502, é determinado se o modo de predição daquele bloco é um modo de intrapredição planar. Se isto for verdadeiro, é definida 508 uma lista padrão de digitalização de ordens de digitalização predefinidas de modo a compreender ordens de digitalização diagonais e ordem Z predefinidas. Se isto for falso, é executada a etapa 503.[00160] In a step 502, it is determined whether the prediction mode of that block is a planar intraprediction mode. If this is true, a standard scan list of predefined scan orders is defined 508 to comprise predefined diagonal scan orders and predefined Z order. If this is false, step 503 is performed.

[00161] Na etapa 503, é determinado se o modo de predição daquele bloco é um modo de intrapredição DC. Se isto for verdadeiro, é definida 508 uma lista padrão de digitalização de ordens de digitalização predefinidas de modo a compreender ordens de digitalização diagonais e de ordem Z predefinidas. Se isto for falso, é executada a etapa 504.[00161] In step 503, it is determined whether the prediction mode of that block is a DC intraprediction mode. If this is true, a standard scan list of predefined scan orders is defined 508 to comprise predefined diagonal and Z-order scan orders. If this is false, step 504 is performed.

[00162] 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, é definida 509 uma lista padrão de digitalização de ordens de digitalização predefinidas de modo a compreender ordens de digitalização verticais, verticais-diagonais e helicoidais. Se isto for falso, é executada a etapa 505.[00162] In step 504, it is determined whether the prediction mode of that block is an angular intraprediction mode close to the horizontal. If this is true, a standard scan list of predefined scan orders is defined 509 to comprise vertical, vertical-diagonal and helical scan orders. If this is false, step 505 is performed.

[00163] 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, é definida 510 uma lista padrão de digitalização de ordens de digitalização predefinidas de modo a compreender ordens de digitalização horizontais, horizontais-diagonais e helicoidais. Se isto for falso, é executada a etapa 506.[00163] In step 505, it is determined whether the prediction mode of that block is an angular intraprediction mode close to vertical. If this is true, a standard scan list of predefined scan orders is defined 510 to comprise horizontal, horizontal-diagonal and helical scan orders. If this is false, step 506 is performed.

[00164] 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, é definida 511 uma lista padrão de digitalização de ordens de digitalização predefinidas de modo a compreender ordens de digitalização diagonais, de ordem Z e helicoidais. Se isto for falso, é executada a etapa 507. Na etapa 507, é definida uma lista padrão de digitalização de ordens de digitalização predefinidas de modo a compreender uma ordem de digitalização diagonal.[00164] 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 standard scan list of predefined scan orders is defined 511 to comprise diagonal, Z-order and helical scan orders. If this is false, step 507 is performed. In step 507, a standard scan list of predefined scan orders is defined to comprise a diagonal scan order.

[00165] Após definir a lista de ordens de digitalização de ordens de digitalização predefinidas para aquele bloco, a lista de ordens de digitalização é ajustada 512 usando o modo de partição, os parâmetros de transformação e os parâmetros de quantização daquele bloco.[00165] After defining the scan order list of predefined scan orders for that block, the scan order list is adjusted 512 using the partition mode, transformation parameters, and quantization parameters of that block.

[00166] Em uma etapa 513, a uma ou mais ordens de digitalização geradas fornecidas pelo gerador de ordens de digitalização são adicionadas às ordens de digitalização predefinidas, de modo que, por exemplo, o seletor de ordens de digitalização 109 do codificador possa selecionar a partir das ordens de digitalização predefinidas e geradas, a ordem de digitalização que fornece o custo mínimo de RD.[00166] 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 the From the predefined and generated scan orders, the scan order that provides the minimum RD cost.

[00167] Como mostrado na Fig. 5, as ordens de digitalização predefinidas podem depender do modo de predição e/ou do modo de partição e/ou dos parâmetros de transformação e/ou dos parâmetros de quantização. Por exemplo, as ordens de digitalização mais prováveis para os casos de intramodos planares ou DC são a ordem Z e a ordem de digitalização diagonal. Para modos angulares, a direcionalidade do sinal residual pode ser levada em consideração de modo que as ordens de digitalização predefinidas possam ser selecionadas para serem ortogonais à direcionalidade de intramodos.[00167] As shown in Fig. 5, the predefined scanning orders may depend on the prediction mode and/or the partition mode and/or the transformation parameters and/or the quantization parameters. For example, the most likely scan orders for the planar or DC intramode cases are the Z order and the 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.

[00168] Depois esta lista de ordens de digitalização predefinidas pode ser atualizada de acordo com outros parâmetros de codificação, tais como o modo de partição, os parâmetros de transformação e os parâmetros de quantização. Em particular, esta lista pode ser atualizada de acordo com as dimensões de partição e de transformação.[00168] Then this list of predefined scan orders can be updated according to other coding parameters, such as partition mode, transformation parameters and quantization parameters. In particular, this list can be updated according to partition and transformation dimensions.

[00169] Por exemplo, no modo de interpredição, modos de predição não-quadrados podem também indicar a natureza direcional do sinal residual e a lista de ordens de digitalização predefinidas pode ser adequadamente atualizada: se um retângulo de partição for orientado verticalmente, então ordens de digitalização horizontais e horizontais-diagonais são adicionadas à lista de digitalização. A lista de ordens de digitalização predefinidas é atualizada adequadamente para partição orientada horizontalmente: em tal caso, são adicionadas ordens de digitalização verticais e verticais-diagonais à lista de ordens de digitalização predefinidas.[00169] 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 appropriately updated: if a partition rectangle is oriented vertically, then orders horizontal and horizontal-diagonal scans are added to the scan list. The list of predefined scan orders is updated accordingly for horizontally oriented partition: in such a case, vertical and vertical-diagonal scan orders are added to the list of predefined scan orders.

[00170] Por exemplo, esta lista de ordens de digitalização predefinidas pode ser atualizada de acordo com as dimensões de transformação. Menores dimensões de TU introduzem restrições sobre alguns padrões de digitalização. Então, por exemplo, digitalizações helicoidais podem ser excluídas da lista de ordens de digitalização predefinidas se a dimensão de TU for menor que 8x8 pixels.[00170] For example, this list of predefined scan orders can be updated according to the transformation dimensions. Smaller TU dimensions introduce restrictions on some scanning patterns. So, for example, helical scans may be excluded from the list of predefined scan orders if the TU dimension is less than 8x8 pixels.

[00171] Os parâmetros de quantização (QP) podem afetar tanto a lista de ordens de digitalização predefinidas como o método de sinalização. Para valores de QP elevados, o número de padrões de digitalização pode ser reduzido. Por exemplo, digitalizações helicoidais podem ser ignoradas para todas as dimensões de TU, uma vez que QTCs ficam mais alinhados à esquerda, topo e canto superior esquerdo da matriz de QTCs.[00171] Quantization parameters (QP) can affect both the list of predefined scan orders and the signaling method. For high QP values, the number of scanning patterns can be reduced. For example, helical scans can be ignored for all TU dimensions, since QTCs are more aligned to the left, top, and upper left corner of the QTC array.

[00172] Um exemplo da dependência do esquema de sinalização no QP é mostrado na Fig. 6. A Fig. 6 mostra em particular um fluxograma 600 de sinalização implícita e explícita de ordem de digitalização selecionada de acordo com uma modalidade da presente invenção.[00172] An example of the dependence of the signaling scheme on the QP is shown in Fig. 6. Fig. 6 shows in particular a flowchart 600 of implicit and explicit signaling of selected scan order in accordance with an embodiment of the present invention.

[00173] Em uma etapa 601, é obtido um valor de QP. Se aquele valor de QP for menor ou igual 602 a um valor de QP para taxas de bits elevadas QPHBR, então as informações de ordens de digitalização SCAN_IDX devem ser codificadas por entropia 603 no fluxo de bits.[00173] In a step 601, a QP value is obtained. If that QP value is less than or equal 602 to a QP value for high bit rates QPHBR, then the SCAN_IDX scan order information must be entropy 603 encoded in the bit stream.

[00174] Se o valor de QP estiver acima do valor QPHBR e abaixo de um outro valor de QP para taxas de bits baixas QPLBR, então as informações de ordens de digitalização SCAN_IDX devem ser parcialmente codificadas por entropia 606 e parcialmente ocultas dentro dos coeficientes de transformação quantizados pelo módulo de ocultação 112.[00174] If the QP value is above the QPHBR value and below another 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. transformation quantized by the hiding module 112.

[00175] Se o valor de QP estiver acima do valor QPHBR e acima ou igual àquele outro valor de QP para taxas de bits baixas QPLBR, então as informações de ordens de digitalização SCAN_IDX devem ser ocultas 605 dentro dos coeficientes de transformação quantizados pelo módulo de ocultação 112.[00175] If the QP value is above the QPHBR value and above or equal to that other QP value for low bit rates QPLBR, then the SCAN_IDX scan order information must be hidden 605 within the transformation coefficients quantized by the scanning module. concealment 112.

[00176] Consequentemente, a ocultação torna-se mais cara com o aumento da taxa de bits e é completamente desligada para elevadas taxas de bits. Pelo contrário, para taxas de bits baixas, a ocultação torna-se mais preferível. Por outro lado, isto é, para taxas de bits intermediárias, ambos os mecanismos de sinalização estão sendo usados. A seleção do mecanismo de sinalização é executada para cada bloco ou TU dependendo de a ocultação poder ser executada para aquele.[00176] Consequently, hiding becomes more expensive with increasing bitrate and is completely turned off for high bitrates. On the contrary, for low bitrates, hiding becomes more preferable. On the other hand, that is, for intermediate bitrates, both signaling mechanisms are being used. The signaling mechanism selection is performed for each block or TU depending on whether obfuscation can be performed for that one.

[00177] De acordo com a presente invenção, é proposto um decodificador 200 para decodificar coeficientes de blocos de uma sequência de vídeos a partir de um fluxo de bits 207. O decodificador compreende: - um módulo de decodificação 206 configurado para decodificar um ou mais vetores de coeficientes de cada bloco a partir do fluxo de bits 207, - um módulo de verificação 212 configurado para reconstruir, para ao menos um bloco, informações ocultas a partir de um ou mais coeficientes daquele bloco, as informações ocultas constituindo ou fazendo parte de informações de ordens de digitalização SCAN_IDX associadas àquele bloco, - um seletor de ordens de digitalização 209 configurado para selecionar uma ordem de digitalização para cada bloco a partir de um conjunto de ordens de digitalização, preferivelmente a partir de um conjunto de ordens de digitalização predefinidas e geradas, com base nas informações de ordens de digitalização SCAN_IDX associadas àquele bloco, - um desserializador 204 configurado para digitalizar inversamente, para cada bloco, o um ou mais vetores de coeficientes daquele bloco de acordo com a ordem de digitalização selecionada para aquele bloco de modo a obter uma matriz de coeficientes.[00177] In accordance with the present invention, a decoder 200 is proposed for decoding block coefficients of a video sequence from a bit stream 207. The decoder comprises: - a decoding module 206 configured to decode one or more vectors of coefficients of each block from the bit stream 207, - a verification module 212 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_IDX scan order information associated with that block, - 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 scan orders and generated, based on the SCAN_IDX scan order information associated with that block, - a deserializer 204 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 mode block to obtain a matrix of coefficients.

[00178] De acordo com a presente invenção, é proposto um correspondente codificador 100 para codificar coeficientes de blocos de uma sequência de vídeos em um fluxo de bits 107, os coeficientes de cada bloco estando contidos em uma respectiva matriz de coeficientes. O codificador compreende: - um seletor de ordens de digitalização 109 configurado para selecionar uma ordem de digitalização para cada bloco a partir de um conjunto de ordens de digitalização, preferivelmente a partir de um conjunto de ordens de digitalização predefinidas e geradas, - um serializador 104 configurado para digitalizar, para cada bloco, a matriz de coeficientes daquele bloco de acordo com a ordem de digitalização selecionada para aquele bloco de modo a obter um ou mais vetores de coeficientes, - um módulo de ocultação 112 configurado para ocultar, para ao menos um bloco, informações de ordens de digitalização SCAN_IDX que identificam a ordem de digitalização selecionada para aquele bloco ao menos parcialmente em um ou mais coeficientes daquele bloco, - um módulo de codificação 106 configurado para codificar os vetores de coeficientes no fluxo de bits 107.[00178] According to the present invention, a corresponding encoder 100 is proposed to encode block coefficients of a video sequence in a bit stream 107, the coefficients of each block being contained in a respective coefficient matrix. The encoder comprises: - 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, - a serializer 104 configured to scan, for each block, the coefficient matrix of that block in accordance with the scanning order selected for that block so as to obtain one or more coefficient vectors, - a hiding module 112 configured to hide, for at least one block, 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, - a coding module 106 configured to encode the coefficient vectors in the bit stream 107.

[00179] A eficiência de codificação pode então ser melhorada porque a sobrecarga de sinalização no fluxo de bits 107, 207 gerada pelo codificador e recebida pelo decodificador pode ser reduzida.[00179] Coding efficiency can then be improved because the signaling overhead in the bit stream 107, 207 generated by the encoder and received by the decoder can be reduced.

[00180] Preferivelmente, o módulo de verificação 212 é configurado para reconstruir, para ao menos um bloco, as informações ocultas a partir de ao menos um vetor de ocultação de coeficientes escolhido entre o um ou mais vetores de coeficientes obtidos para aquele bloco. Também, o módulo de ocultação 112 é configurado para ocultar, para ao menos um bloco, as informações de ordens de digitalização SCAN_IDX em ao menos um vetor de ocultação de coeficientes escolhido entre o um ou mais vetores de coeficientes obtidos para aquele bloco.[00180] Preferably, the verification module 212 is configured to reconstruct, for at least one block, the hidden information from at least one coefficient hiding 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 coefficient hiding vector chosen from the one or more coefficient vectors obtained for that block.

[00181] 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 ocultação de coeficientes com um limite.[00181] Reconstruction and concealment may depend on a concealment condition. Such a hiding condition comprises a comparison of a parameter that depends on the coefficient hiding vector with a threshold.

[00182] O parâmetro pode ser: - um número de coeficientes significativos, isto é, não- zeros, dentro do vetor de ocultação de coeficientes, ou - uma distância entre primeiro e último coeficientes significativos dentro do vetor de ocultação de coeficientes, ou - uma razão de um valor máximo absoluto para um valor mínimo absoluto não-zero dos coeficientes dentro do vetor de ocultação de coeficientes, onde 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.[00182] The parameter may be: - a number of significant coefficients, i.e. non-zeros, within the coefficient hiding vector, or - a distance between first and last significant coefficients within the coefficient hiding vector, or - a ratio of an absolute maximum value to a non-zero absolute minimum value of the coefficients within the coefficient hiding vector, where the hiding condition is true if the parameter is above the threshold, and false if the parameter is below the threshold.

[00183] As Figs. 7 e 8 mostram uma condição de ocultação de acordo com uma modalidade da presente invenção. Em particular, a Fig. 7 mostra um bloco ou TU que é subdividido em grupos de coeficientes (CGs), cada vetor de coeficientes correspondendo a um grupo de coeficientes. A Fig. 8 mostra um exemplo de vetor de coeficientes que ilustra o caso em que o parâmetro consiste na distância N entre primeiro e último coeficientes significativos, isto é, não-zeros, dentro do vetor de coeficientes. Se o valor de N estiver acima de um limite TSIG, então a condição de ocultação é verdadeira e as informações de ordens de digitalização podem ser ocultadas naquele vetor de coeficientes.[00183] Figs. 7 and 8 show a concealment condition in accordance with an embodiment of the present invention. In particular, Fig. 7 shows a block or TU that is subdivided into coefficient groups (CGs), each coefficient vector corresponding to a coefficient group. Fig. 8 shows an example of a vector of coefficients that illustrates the case in which the parameter consists of the distance N between the first and last significant coefficients, that is, non-zeros, within the vector of coefficients. If the value of N is above a TSIG threshold, then the hiding condition is true and scan order information can be hidden in that coefficient vector.

[00184] Em particular, o módulo de verificação 212 pode ser configurado para reconstruir as informações ocultas a partir do vetor de ocultação de coeficientes mediante aplicação de uma função verificação ao vetor de ocultação de coeficientes, um resultado da função verificação sendo as informações ocultas. Também, o módulo de ocultação 112 é configurado para ocultar, para ao menos um bloco, as informações de ordens de digitalização SCAN_IDX no vetor de ocultação de coeficientes por meio de: - aplicar uma função verificação ao vetor de ocultação de coeficientes de modo a obter um resultado da função verificação, - determinar se o resultado da função verificação corresponde às informações de ordens de digitalização SCAN_IDX, - se não, modificar o vetor de ocultação de coeficientes de modo que o resultado da função verificação corresponda às informações de ordens de digitalização SCAN_IDX.[00184] In particular, the verification module 212 may be configured to reconstruct the hidden information from the coefficient hiding vector by applying a verification function to the coefficient hiding 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 coefficient hiding vector by: - applying a check function to the coefficient hiding vector in order to obtain a result of the check function, - determine whether the result of the check function matches the SCAN_IDX scan order information, - if not, modify the coefficient hiding vector so that the result of the check function matches the SCAN_IDX scan order information .

[00185] É proposto que o resultado da função verificação dependa das coordenadas (x, y), dentro da matriz de coeficientes, do último coeficiente significativo do vetor de ocultação de coeficientes. A função verificação pode, por exemplo, ser a seguinte função: mod(x + y + R,2) x e y sendo as coordenadas e R sendo um valor inteiro.[00185] It is proposed that the result of the verification function depends on the coordinates (x, y), within the coefficient matrix, of the last significant coefficient of the coefficient hiding vector. The verification function can, for example, be the following function: mod(x + y + R,2) x and y being the coordinates and R being an integer value.

[00186] Por exemplo, a função verificação pode também ser uma das seguintes funções ou outras funções verificação conhecidas: - uma função verificação de paridade aplicada aos bits menos significativos de algum coeficiente selecionado a partir da matriz de coeficientes usando um padrão binário, e - uma função 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 e primeiro coeficientes não-zero.[00186] For example, the check function may also be one of the following functions or other known check functions: - a parity check function applied to the least significant bits of some coefficient selected from the coefficient matrix using a binary pattern, and - a parity check function applied to a position index of the last or first non-zero coefficients or to a linear combination of the position index of the last and first non-zero coefficients.

[00187] No que se refere a isto, a Fig. 9 mostra uma decodificação de entropia 901 de coeficientes de acordo com o estado da técnica, e particularmente de acordo com o padrão de codificação de vídeos H.265. A decodificação de entropia 901 compreende decodificar 902 as coordenadas X e Y do último QTC significativo, isto é, não-zero. Em seguida, uma máscara de valores de significância de QTCs (máscara de significância) é assinalada 903 de acordo com uma ordem de digitalização, começando a partir do último QTC significativo. Valores e sinais são analisados 904, 905 a partir do fluxo de bits apenas para valores de coeficientes significativos.[00187] In this regard, Fig. 9 shows an entropy decoding 901 of coefficients in accordance with the state of the art, and particularly in accordance with the H.265 video coding standard. Entropy decoding 901 comprises decoding 902 the X and Y coordinates of the last significant, i.e. non-zero, QTC. Then, a mask of significance values of QTCs (significance mask) is assigned 903 according to a scanning order, starting from the last significant QTC. Values and signals are analyzed 904, 905 from the bit stream only for significant coefficient values.

[00188] Portanto, uma extensão da máscara de significância 1D pode ser obtida a partir da ordem de digitalização e coordenadas do último QTC significativo. Obviamente, não é suficiente apenas aplicar métodos conhecidos de ocultação de dados para embutir dados de indicação de ordens de digitalização em QTCs, uma vez que os QTCs são analisados a partir do fluxo de bits usando informações de ordens de digitalização.[00188] Therefore, an extension of the 1D significance mask can be obtained 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, since QTCs are analyzed from the bit stream using scan order information.

[00189] A Fig. 10 mostra uma modalidade da presente invenção, e em particular uma modalidade para melhorar a eficiência de codificação mediante redução da sobrecarga de sinalização no fluxo de bits 107, 207 gerada pelo codificador e recebida pelo decodificador.[00189] Fig. 10 shows an embodiment of the present invention, and in particular 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.

[00190] Na modalidade da Fig. 10, é possível uma ocultação de ordens de digitalização dentro de QTCs. Durante o processo de codificação, várias diferentes ordens de digitalização - indexadas por SCAN_IDX - são aplicadas durante os estágios de quantização 1001 e de ocultação 1002. O procedimento de quantização 1001 pode usar informações de digitalização para estimar o número de bits (isto é, taxa de bits) para codificar valores de QTC e para executar otimização de taxa- distorção mediante ajuste destes valores de QTC em relação à taxa de bits estimada.[00190] In the embodiment of Fig. 10, it is possible to hide scanning orders within QTCs. During the encoding process, several different scanning orders - indexed by SCAN_IDX - are applied during the quantization 1001 and hiding 1002 stages. The quantization procedure 1001 may use digitization information to estimate the number of bits (i.e., rate of bits) to encode QTC values and to perform rate-distortion optimization by adjusting these QTC values relative to the estimated bit rate.

[00191] Se a ocultação não tiver tido êxito 1003, isto é, por exemplo, se a condição de ocultação for falsa, então outra ordem de digitalização SCAN_IDX é selecionada 1004. De preferência outra ordem de digitalização é selecionada até que a ocultação tenha êxito. Se a digitalização selecionada for uma ordem de digitalização padrão, por exemplo, não é executada ocultação.[00191] If the hiding was unsuccessful 1003, i.e., 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, obfuscation is not performed.

[00192] Se a ocultação tiver êxito ou a ordem de digitalização selecionada for a padrão, então é possível reordenar 1005 os QTCs de acordo com a ordem de digitalização padrão. As etapas seguintes compreendem sinalizar 1006 os QTCs e codificar por entropia 1007. As referidas etapas 1006 e 1007 podem corresponder aos blocos 104 e 106 da Fig. 1. A serialização 1006 pode também ser inserida entre 1001 e 1002 como no caso da Fig. 1.[00192] If the hiding is successful or the selected scan order is the default, then it is possible to reorder 1005 the QTCs according to the default scan order. The following steps comprise signaling 1006 the QTCs and entropy coding 1007. Said steps 1006 and 1007 may correspond to blocks 104 and 106 of Fig. 1. Serialization 1006 may also be inserted between 1001 and 1002 as in the case of Fig. 1 .

[00193] A ocultação 1002 compreende verificar a condição de ocultação, e também modificar QTCs de modo que a condição de ocultação seja satisfeita. Esta modificação pode incluir: alterar valores de QTCs, ajustar valores de QTCs para zero e fazer com que QTCs insignificantes (de valor zero) sejam significativos (não-zero). Obviamente, é sempre possível ajustar QTCs de modo que a condição de ocultação seja satisfeita. Contudo, os ajustes de QTCs no lado do codificador são restringidos pela distorção provocada por estes ajustes, e são aplicadas restrições razoáveis de ajuste. Por exemplo, devido ao procedimento de quantização, um ajuste razoável de coeficientes é mais ou manos um. Esta restrição torna possível que a operação de ocultação não possa ser executada, isto é, não existiram ajustes possíveis de QTCs para satisfazer a condição de ocultação (1003 avalia para caso “não” para digitalizações não-padrão).[00193] Concealment 1002 comprises checking the concealment condition, and also modifying QTCs so that the concealment condition is satisfied. This modification may include: changing QTC values, setting QTC values to zero, and making insignificant (zero-valued) QTCs significant (non-zero). Of course, it is always possible to adjust QTCs so that the hiding condition is satisfied. However, the adjustments of QTCs on the encoder side are restricted by the distortion caused by these adjustments, and reasonable adjustment restrictions are applied. For example, due to the quantization procedure, a reasonable adjustment of coefficients is plus or minus one. This restriction makes it possible that the hiding operation cannot be performed, that is, there were no possible adjustments of QTCs to satisfy the hiding condition (1003 evaluates to “no” case for non-standard scans).

[00194] No lado do decodificador, após decodificação de entropia 1011, as informações ocultas são recuperadas 1012 a partir de dados serializados e, portanto, o estágio de ocultação necessita informações sobre ordens de digitalização que serão usadas no lado do decodificador de modo que possam ser embutidas em relação à ordem de digitalização selecionada. O procedimento de ocultação de dados pode também ser executado conjuntamente com quantização, como é feito, por exemplo, para Ocultação de Bits de Sinais. Contudo, a ocultação pode falhar para alguns dos QTCs, uma vez que a condição de ocultação não é satisfeita. Por exemplo, TU tem um número significativo de QTCs que é menor que um limite. Neste caso o processamento adicional depende de a ordem de digitalização ser aquela padrão. Se for usada digitalização padrão, o decodificador pode obtê-la 1015 mediante aplicação da mesma condição de ocultação a QTCs analisados durante o estágio de decodificação de entropia. Caso contrário, a ordem de digitalização é ignorada e a ordem de digitalização seguinte é verificada, se disponível.[00194] On the decoder side, after entropy decoding 1011, the hidden information is recovered 1012 from serialized data and therefore the hiding stage needs information about scan orders that will be used on the decoder side so that it can be inlined relative to the selected scanning order. The data hiding procedure can also be performed in conjunction with quantization, as is done, for example, for Signal Bit Hiding. However, hiding may fail for some of the QTCs since the hiding condition is not satisfied. For example, TU has a significant number of QTCs that are less than a threshold. In this case, additional processing depends on whether the scanning order is the standard one. If standard scanning is used, the decoder can obtain it 1015 by applying the same obfuscation condition to QTCs analyzed during the entropy decoding stage. Otherwise, the scan order is ignored and the next scan order is checked, if available.

[00195] Se a ordem de digitalização padrão estiver em vigor, o estágio de reordenação de QTCs pode ser ignorado, porque as digitalizações fonte e alvo são as mesmas. Para ordens de digitalização não-padrão é proposto executar a reordenação de coeficientes, de modo que os estágios de codificação de entropia e de decodificação de entropia possam ser executados sem mudanças. Uma implementação específica pode usar operação de remapeamento para evitar operação desnecessária de cópia para reordenação, isto é, por redefinição de uma correspondência entre coordenadas de matriz de QTC 2D e posição 1D dentro de uma digitalização selecionada. No estágio de serialização/desserialização este remapeamento pode fornecer índices de contexto CABAC e coordenadas de QTC menos significativas para a determinada posição de digitalização 1D como se os QTCs fossem reordenados.[00195] If the default scan order is in effect, the QTCs reordering stage can be skipped, because the source and target scans are the same. For non-standard scanning orders it is proposed to perform coefficient reordering, so that the entropy encoding and entropy decoding stages can be performed without changes. A specific implementation may use remapping operation to avoid unnecessary copy-to-reorder operation, that is, by resetting a correspondence between 2D QTC matrix coordinates and 1D position within a selected scan. At the serialization/deserialization stage this remapping can provide CABAC context indices and less significant QTC coordinates for the given 1D scan position as if the QTCs were reordered.

[00196] A Fig. 11 mostra um reordenador de coeficientes de acordo com a presente invenção e, em particular, mostra um exemplo de reordenador de QTCs para um bloco 4x4: reordenação de digitalização diagonal para horizontal.[00196] Fig. 11 shows a coefficient reorderer according to the present invention and, in particular, shows an example of a QTC reorderer for a 4x4 block: diagonal to horizontal scan reordering.

[00197] No que se refere a isto, fazer referência ao documento “Codificação de Coeficientes de Transformação em HEVC” por Joel Sole e outros, IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL. 22, NO. 12, dezembro de 2012, páginas 1765-1777. Na Seção V.B deste documento, é mencionado que uma bandeira significativa é codificada usando um modelo de contexto para cada coeficiente entre o último na ordem de digitalização (o qual é excluído) e o coeficiente DC. Para um bloco de transformação 4x4 TB, isto é matriz de QTCs, o contexto depende da posição do coeficiente dentro do TB, como em H.264/AVC. Apesar do fato de que a codificação de entropia ser executada para dados serializados e binarizados, o modelo de contexto para codificar um bit de significância de um QTC é selecionado dependendo da posição deste QTC dentro de uma matriz de QTCs, e da significância de QTCs adjacentes espacialmente (direita e mais abaixo). O decodificador do estado da técnica analisa bit de significância a partir do fluxo de bits usando 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 QTCs significativos previamente decodificados. Se a ordem de digitalização estiver indisponível para o decodificador, a posição espacial de QTC é indefinida e, portanto, o modelo de contexto não pode ser obtido.[00197] In this regard, refer to the document “Coding of Transformation Coefficients 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 mentioned that a meaningful flag is encoded using a context model for each coefficient between the last one in the scan order (which is deleted) and the DC coefficient. For a 4x4 TB transformation block, i.e. matrix of QTCs, the context depends on the position of the coefficient within the TB, as in H.264/AVC. Despite the fact that entropy coding is performed for serialized and binarized data, the context 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 adjacent QTCs. spatially (right and lower). The prior art decoder parses significance bit from the bit stream using context model, which is selected according to the QTC position for which this bit is being parsed and the positions of previously decoded significant QTCs. If the scanning order is unavailable to the decoder, the spatial position of QTC is undefined and therefore the context model cannot be obtained.

[00198] O estágio de reordenação proposto, como mostrado, por exemplo, na Fig. 11, antes do codificador de entropia, garante que o decodificador e o decodificador usarão a mesma ordem de digitalização e os mesmos modelos de contexto para os QTCs codificados/decodificados.[00198] The proposed reordering stage, as shown, for example, in Fig. 11, before the entropy encoder, guarantees that the decoder and decoder will use the same scanning order and the same context models for the encoded QTCs/ decoded.

[00199] A Fig. 11 descreve em particular um caso em que, após quantização, uma matriz de QTCs foi obtida (parte inferior esquerda da mesma) com o coeficiente menos significativo (para digitalização diagonal) localizado em (x=1, y=2). No caso de digitalização diagonal, 8 bits de significância de coeficientes devem ser codificados.[00199] Fig. 11 describes in particular a case in which, after quantization, a matrix of QTCs was obtained (bottom left thereof) with the least significant coefficient (for diagonal scanning) located at (x=1, y= two). In case of diagonal scanning, 8 coefficient significance bits must be encoded.

[00200] Com a finalidade de selecionar outra ordem de digitalização (por exemplo, pelo seletor 109), por exemplo, digitalização horizontal ao invés da diagonal, pode ser benéfico codificar as primeiras duas fileiras de bits de QTCs mais dois bits de QTCs da terceira fileira (10 QTCs no total). Contudo, se estes coeficientes forem reordenados da digitalização diagonal para uma horizontal (como mostrado na parte superior da Fig. 11), a posição do último dos mesmos 8 bits de QTC deve ser codificada.[00200] For the purpose of selecting another scanning order (e.g., by selector 109), e.g., horizontal rather than diagonal scanning, it may be beneficial to encode the first two QTC bit rows plus two QTC bit rows from the third row (10 QTCs in total). However, if these coefficients are reordered from the diagonal to a horizontal scan (as shown at the top of Fig. 11), the position of the last of the same 8 QTC bits must be encoded.

[00201] Para o módulo de codificação de entropia 106, duas digitalizações estão disponíveis: - uma padrão, que deveria ser usada pelo módulo de codificação de entropia 206 para analisar o fluxo de bits, - a digitalização selecionada pelo seletor de ordens de digitalização 109.[00201] For the entropy coding module 106, two scans are available: - a standard one, which should be used by the entropy coding module 206 to analyze the bit stream, - the scan selected by the scan order selector 109 .

[00202] Quando o módulo de codificação de entropia seleciona um modelo de contexto de acordo com a posição de QTCs, o mesmo usa não apenas X, Y definidos pelo seletor de ordens de digitalização 109, mas recalcula X, Y para a correspondente posição de QTC após ser reordenado.[00202] 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 QTC after being reordered.

[00203] Por exemplo, no exemplo da Fig. 11, é proposto considerar um caso em que o seletor de ordens de digitalização 109 selecionou digitalização diagonal e a digitalização padrão é horizontal. O módulo de codificação de entropia 106 codificará o coeficiente colocado na posição (x=1, y=1) (marcada como “E” para digitalização diagonal) com uso de módulo de contexto de posição reordenada (x0, y=2) (também marcada como “E” para digitalização horizontal), assim como coeficientes adjacentes serão definidos não como “I” e “H”, mas como “F” e “I”.[00203] For example, in the example of Fig. 11, it is proposed to consider a case in which the scan order selector 109 selected diagonal scanning and the default scanning is horizontal. 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 adjacent coefficients will be defined not as “I” and “H”, but as “F” and “I”.

[00204] Esta operação de reordenação pode ser implementada como um remapeamento das coordenadas X e Y a partir de uma digitalização selecionada para a padrão, isto é, para implementar esta reordenação não é necessário executar operações de cópia/troca de memória para QTCs, mas apenas fornecer uma tabela de pesquisa para as coordenadas x e y para cada um dos pares (digitalização selecionada, digitalização padrão).[00204] This reordering operation can be implemented as a remapping of the X and Y coordinates from a selected scan to the standard one, that is, to implement this reordering it is not necessary to perform memory copy/swap operations for QTCs, but just provide a lookup table for the x and y coordinates for each of the pairs (select scan, default scan).

[00205] A ocultação de dados pode usar métodos conhecidos para embutir ordem de digitalização em QTCs. Contudo, no caso presente de ocultação da ordem de digitalização, uma outra possibilidade consiste em que uma ordem de digitalização possa ser especificada por uma condição aplicada a coordenadas do último valor de QTC significativo (x, y), por exemplo: mod(x + y,2) = scan_idx (C1)[00205] Data hiding can use known methods to embed scan order in QTCs. However, in the present case of scanning order hiding, another possibility is that a scanning order can be specified by a condition applied to coordinates of the last significant QTC value (x, y), for example: mod(x + y,2) = scan_idx (C1)

[00206] Neste caso o codificador pode modificar a posição do último QTC significativo com a finalidade de indicar uma digitalização que deveria ser usada pelo decodificador. A condição de ocultação para o método de ocultação descrito é um conjunto de coordenadas especificadas para uma ordem de digitalização. No que se refere a isto, a FIG. 12 mostra um exemplo de condições de ocultação definidas para ordens de digitalização.[00206] In this case the encoder can modify the position of the last significant QTC for the purpose of indicating a digitization 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, FIG. 12 shows an example of occultation conditions defined for scan orders.

[00207] Na Fig. 12, marcas “X” indicam posições que são verificadas usando a condição (C1). É também possível combinar esta técnica com ocultação de dados dentro de valores de QTC. Por exemplo, o valor recuperado a partir da última posição de QTC significativo pode ser usado como uma parte da condição de ocultação para ocultação dentro de valores de QTC.[00207] In Fig. 12, “X” marks indicate positions that are checked using condition (C1). It is also possible to combine this technique with data hiding within QTC values. For example, the value retrieved from the last significant QTC position can be used as a part of the hiding condition for hiding within QTC values.

[00208] É sabido que a ocultação é mais eficiente se sinais hospedeiro e alvo tiverem uma distribuição universal. Outra modalidade desta invenção é a possibilidade de fazer a distribuição de (C1) mais perto de universal por aleatorização. Especificamente, uma fonte adicional de ruído aleatório R pode ser adicionada: [00208] It is known that concealment is more efficient if host and target signals have a universal distribution. Another embodiment 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:

[00209] O valor de R deverá estar tão não-relacionado com a ordem de digitalização quanto possível. Por exemplo, pode ser um número de TUs adjacentes, um valor de paridade de uma soma de valores de amostras de referência, ou um número total de bits codificados.[00209] The value of R should be as unrelated to the scanning order as possible. For example, it may be a number of adjacent TUs, a parity value of a sum of reference sample values, or a total number of encoded bits.

[00210] Portanto, a invenção propõe, para reduzir a sobrecarga de sinalização, obter uma ordem de digitalização antes da desserialização de QTCs, durante decodificação de entropia. Quando ocultando dados relacionados a TU (tais como modo de intrapredição, bandeira de filtragem, etc.) as informações sendo ocultas são utilizadas após os estágios de desserialização e dequantificação. A invenção propõe, portanto, uma possibilidade de usar dados ocultos em QTCs antes destes coeficientes serem desserializados.[00210] Therefore, the invention proposes, to reduce signaling overhead, to obtain a digitization order before deserialization of QTCs, during entropy decoding. When hiding TU-related data (such as intraprediction mode, filter flag, etc.) the information being hidden is used after the deserialization and dequantification stages. The invention therefore proposes a possibility of using hidden data in QTCs before these coefficients are deserialized.

[00211] 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 transformação usados, por exemplo, para codificação de imagens móveis. O objetivo da presente invenção é melhorar a eficiência de taxa-distorção de quantização pele extensão do conjunto de ordens de digitalização disponíveis usando diferentes recursos de codificação (por exemplo, modo de intrapredição, tamanho de bloco, modo de partição) ao nível de TU. Uma implementação específica desta invenção é apresentada como uma técnica que simultaneamente usa mecanismos se seleção de digitalização dependentes de modo e baseados em RDO.[00211] The present invention describes a quantization procedure that is applicable to residues obtained after prediction and transformation processes used, for example, for coding mobile images. The objective of the present invention is to improve the quantization rate-distortion efficiency by extending the set of available scan orders using different coding resources (e.g., intraprediction mode, block size, partition 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.

[00212] A presente invenção soluciona problemas relacionados à seleção baseada em RDO de ordens de digitalização. Em particular, soluciona o problema em que ordens de digitalização adaptativas baseadas em estatísticas coletadas de blocos previamente codificados ou decodificados nem sempre fornecem uma melhor eficiência de codificação em relação a padrões de digitalização predefinidos conhecidos. Portanto, é proposto como solução um procedimento baseado em RDO para selecionar apenas uma digitalização entre as ordens de digitalização geradas adaptáveis ao conteúdo e aos padrões de digitalização predefinidos.[00212] The present invention solves problems related to RDO-based selection of scan orders. In particular, it solves the problem where adaptive scan orders based on statistics collected from previously encoded or decoded blocks do not always provide better coding efficiency over known predefined scan patterns. Therefore, an RDO-based procedure to select only one scan among the generated scan orders adaptive to the content and predefined scan patterns is proposed as a solution.

[00213] Em particular, a presente invenção soluciona o problema acima mencionado de aumentar a eficiência de codificação de seleção de ordens de digitalização pelo fato de que tanto os padrões de digitalização predefinidos como as ordens de digitalização geradas adaptativamente estão disponíveis.[00213] In particular, the present invention solves the above-mentioned problem of increasing the coding efficiency of selecting scan orders by the fact that both predefined scan patterns and adaptively generated scan orders are available.

[00214] A presente invenção nas suas modalidades de codificação multimídia fornece ainda a vantagem de que pode ser usada em muitas aplicações potenciais em estruturas híbridas de codificação de vídeos que são compatíveis com Modelo de Exploração Conjunta (JEM) que é a fundação para um padrão de codificação de vídeos da próxima geração. Uma vantagem adicional é a taxa BD (Bj0ntegaard Delta Rate) reduzida e melhoramentos subjetivos de qualidade em comparação com JEM1. Uma vantagem adicional é que uma Transformação Múltipla Adaptativa (AMT) computacionalmente complexa também conhecida como Transformação Múltipla Melhorada (EMT) pode ser substituída por um procedimento de seleção de ordens de digitalização adaptativas mais simples.[00214] The present invention in its multimedia coding modalities further provides the advantage that it can be used in many potential applications in hybrid video coding structures that are compatible with the Joint Exploration Model (JEM) which is the foundation for a standard next generation video encoding. 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 Transformation (AMT) also known as Enhanced Multiple Transformation (EMT) can be replaced by a simpler adaptive scan order selection procedure.

[00215] Um aspecto da presente invenção é a combinação de padrões ou ordens de digitalização predefinidos com ordens de digitalização geradas adaptativamente. Além disso, a adição de um mecanismo de sinalização para um procedimento de seleção de ordens de digitalização permite melhorar significativamente o processo de geração de ordens de digitalização adaptativas para melhorar a sua eficiência de codificação.[00215] One aspect of the present invention is the combination of predefined scan patterns or orders with adaptively generated scan orders. Furthermore, the addition of a signaling mechanism to a scan order selection procedure allows to significantly improve the adaptive scan order generation process to improve its coding efficiency.

[00216] A presente invenção foi descrita em conjunto com diversas modalidades como exemplos assim como implementações. Contudo, outras variações podem ser compreendidas e realizadas por aqueles versados na técnica e executando a invenção reivindicada, a partir dos estudos dos desenhos, desta revelação e das reivindicações independentes. Nas reivindicações, assim como na descrição, a palavra “compreendendo” não exclui outros elementos ou etapas e o artigo indefinido “um” não exclui uma pluralidade. Um único elemento ou outra unidade pode satisfazer as funções de diversas entidades ou itens mencionados nas reivindicações. O simples fato de que algumas medidas são mencionadas nas diferentes reivindicações dependentes mútuas não indica que uma combinação destas medidas não possa ser usada em uma implementação vantajosa.[00216] The present invention has been described together with several embodiments as examples as well as implementations. However, other variations can be understood and carried out by those skilled in the art and carrying out the claimed invention, from studies of the drawings, this disclosure and the independent claims. In the claims, as well as in the description, the word “comprising” does not exclude other elements or steps and the indefinite article “one” does not exclude a plurality. A single element or other unit may satisfy the functions of several entities or items mentioned in the claims. The mere fact that some measures are mentioned in the different mutual dependent claims does not indicate that a combination of these measures cannot be used in an advantageous implementation.

Claims (37)

1. Decodificador, caracterizado por compreender: um meio legível por computador não transitório portando um programa de computador que compreende um código de programa; e um ou mais processadores configurados para executar o código de programa para: decodificar um ou mais vetores de coeficiente de um fluxo de bits representando uma sequência de quadros de vídeo, em que cada quadro de vídeo é associado a um ou mais blocos, e em que cada vetor de coeficiente dos um ou mais vetores de coeficiente corresponde a um bloco associado a um quadro de vídeo da sequência de quadros de vídeo, reconstruir, para ao menos um bloco, informações ocultas a partir do vetor de coeficiente correspondendo ao pelo menos um bloco, em que as informações ocultas compreendem uma parte de informações de ordens de varredura associadas ao pelo menos um bloco, selecionar, para cada bloco, uma ordem de varredura para o bloco a partir de um conjunto de ordens de varredura baseadas nas informações de ordens de varredura associadas ao pelo menos bloco, e varrer inversamente, para cada bloco, os um ou mais vetores de coeficientes de acordo com a ordem de varredura selecionada para o bloco de modo a obter uma matriz de coeficientes para o bloco.1. Decoder, characterized by comprising: a non-transitory computer-readable medium carrying a computer program comprising a program code; and one or more processors configured to execute program code for: decoding one or more coefficient vectors of a bit stream representing a sequence of video frames, wherein each video frame is associated with one or more blocks, and in that each coefficient vector of the one or more coefficient vectors corresponds to a block associated with a video frame of the sequence of video frames, reconstruct, for at least one block, hidden information from the coefficient vector corresponding to the at least one block, wherein the hidden information comprises a portion of scan order information associated with the at least one block, selecting, for each block, a scan order for the block from a set of scan orders based on the order information of scans associated with the at least block, and reversely scanning, for each block, the one or more coefficient vectors in accordance with the scan order selected for the block so as to obtain a matrix of coefficients for the block. 2. Decodificador, de acordo com a reivindicação 1, caracterizado pelo fato de que reconstruir, para o ao menos um bloco, as informações ocultas compreende: reconstruir, para o ao menos um bloco, as informações ocultas a partir de um vetor de ocultação de coeficientes escolhido dentre o um ou mais vetores de coeficientes obtidos para o ao menos um bloco.2. Decoder, according to claim 1, characterized by the fact that reconstructing, for the at least one block, the hidden information comprises: reconstructing, for the at least one block, the hidden information from a hidden information vector coefficients chosen from one or more vectors of coefficients obtained for at least one block. 3. Decodificador, de acordo com a reivindicação 1, caracterizado pelo fato de que reconstruir, para o ao menos um bloco, as informações ocultas compreende: reconstruir, para o ao menos um bloco, as informações ocultas a partir de um vetor de ocultação de coeficientes que depende de uma condição de ocultação, em que a condição de ocultação é baseada em uma comparação de um parâmetro que depende do vetor de ocultação de coeficientes com um limite.3. Decoder, according to claim 1, characterized by the fact that reconstructing, for the at least one block, the hidden information comprises: reconstructing, for the at least one block, the hidden information from a hidden information vector coefficients that depends on a hiding condition, wherein the hiding condition is based on a comparison of a parameter that depends on the coefficients hiding vector with a threshold. 4. Decodificador, de acordo com a reivindicação 3, caracterizado pelo fato de o parâmetro ser: - um número de coeficientes significativos dentro do vetor de ocultação de coeficientes, ou - uma distância entre primeiro e último coeficientes significativos dentro do vetor de ocultação de coeficientes, ou - uma razão de um valor máximo absoluto para um valor mínimo absoluto não-zero dos coeficientes dentro do vetor de ocultação de coeficientes, onde 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.4. Decoder according to claim 3, characterized in that the parameter is: - a number of significant coefficients within the coefficient hiding vector, or - a distance between first and last significant coefficients within the coefficient hiding vector , or - a ratio of an absolute maximum value to a non-zero absolute minimum value of the coefficients within the coefficient hiding vector, where the hiding condition is true if the parameter is above the threshold, and false if the parameter is below of the limit. 5. Decodificador, de acordo com a reivindicação 3 ou 4, caracterizado pelo fato de os um ou mais processadores serem adicionalmente configurados para executar o código de programa para verificar a condição de ocultação, e para reconstruir as informações ocultas a partir do vetor de ocultação de coeficientes se a condição de ocultação for verdadeira.5. Decoder according to claim 3 or 4, characterized in that the one or more processors are further configured to execute program code to check the hiding condition, and to reconstruct the hidden information from the hiding vector of coefficients if the hiding condition is true. 6. Decodificador, de acordo com a reivindicação 3, caracterizado pelo fato de que, se a condição de ocultação for falsa, selecionar, para cada bloco, a ordem de varredura compreende selecionar uma ordem de varredura padrão predefinida.6. The decoder of claim 3, wherein, if the concealment condition is false, selecting, for each block, the scan order comprises selecting a predefined default scan order. 7. Decodificador, de acordo com a reivindicação 2, caracterizado pelo fato de que reconstruir, para o ao menos um bloco, as informações ocultas compreende: reconstruir, para o ao menos um bloco, as informações ocultas a partir do vetor de ocultação de coeficientes mediante aplicação de uma função verificação ao vetor de ocultação de coeficientes, em que um resultado da aplicação da função verificação compreende as informações ocultas.7. Decoder according to claim 2, characterized by the fact that reconstructing, for the at least one block, the hidden information comprises: reconstructing, for the at least one block, the hidden information from the coefficient hiding vector by applying a verification function to the coefficient hiding vector, wherein a result of applying the verification function comprises the hidden information. 8. Decodificador, de acordo com a reivindicação 7, caracterizado pelo fato de que o resultado da aplicação da função verificação depende das coordenadas (x, y), dentro da matriz de coeficientes, de um último coeficiente significativo do vetor de ocultação de coeficientes, em que a função verificação compreende a seguinte função: mod(x + y + R,2) onde x e y são as coordenadas da matriz de coeficientes e R é um valor inteiro.8. Decoder, according to claim 7, characterized by the fact that the result of applying the verification function depends on the coordinates (x, y), within the coefficient matrix, of a last significant coefficient of the coefficient hiding vector, where the verification function comprises the following function: mod(x + y + R,2) where x and y are the coordinates of the coefficient matrix and R is an integer value. 9. Decodificador, de acordo com a reivindicação 1, caracterizado pelo fato de que os um ou mais processadores são adicionalmente configurados para executar o código de programa para: reconstruir, para um primeiro bloco, informações ocultas a partir do vetor de coeficiente correspondendo ao primeiro bloco, em que as informações ocultas compreendem uma parte informações de ordens de varredura associadas ao primeiro bloco, e selecionar, para o primeiro e ao menos um segundo bloco, uma ordem de varredura que é baseada nas informações de ordens de varredura associadas ao primeiro bloco.9. The decoder of claim 1, wherein the one or more processors are further configured to execute program code to: reconstruct, for a first block, hidden information from the coefficient vector corresponding to the first block, wherein the hidden information comprises a portion of scan order information associated with the first block, and selecting, for the first and at least one second block, a scan order that is based on the scan order information associated with the first block . 10. Método para decodificar coeficientes de blocos, caracterizado por compreender: decodificar um ou mais vetores de coeficientes de um fluxo de bits representando uma sequência de quadros de vídeo, em que cada quadro de vídeo é associado a um ou mais blocos, e em que cada vetor de coeficiente dos um ou mais vetores de coeficiente corresponde a um bloco associado a um quadro de vídeo da sequência de quadros de vídeo, reconstruir, para ao menos um bloco, informações ocultas a partir dos um ou mais vetores de coeficiente do ao menos bloco, em que as informações ocultas compreendem uma parte de informações de ordens de varredura associadas ao pelo menos um bloco, selecionar, para cada bloco, uma ordem de varredura para o bloco a partir de um conjunto de ordens de varredura baseadas nas informações de ordens de varredura associadas ao pelo menos um bloco, e obter uma matriz de coeficiente mediante varredura inversa , para cada bloco, dos um ou mais vetores de coeficientes de acordo com a ordem de varredura selecionada para o bloco.10. Method for decoding block coefficients, characterized by comprising: decoding one or more coefficient vectors of a bit stream representing a sequence of video frames, wherein each video frame is associated with one or more blocks, and wherein each coefficient vector of the one or more coefficient vectors corresponds to a block associated with a video frame of the sequence of video frames, reconstruct, for at least one block, hidden information from the one or more coefficient vectors of the at least block, wherein the hidden information comprises a portion of scan order information associated with the at least one block, selecting, for each block, a scan order for the block from a set of scan orders based on the order information of scans associated with at least one block, and obtain a coefficient matrix by inverse scanning, for each block, of the one or more coefficient vectors according to the scan order selected for the block. 11. Codificador para codificar coeficientes de blocos, caracterizado por compreender: um meio legível por computador não transitório portando um programa de computador que compreende um código de programa; e um ou mais processadores configurados para executar o código de programa para: selecionar, para cada bloco, uma ordem de varredura para o bloco a partir de um conjunto de ordens de varredura, em que cada bloco corresponde a uma matriz de coeficiente respectiva, varrer, para cada bloco, a matriz de coeficientes correspondendo ao bloco de acordo com a ordem de varredura selecionada para o bloco para obter um vetor de coeficiente correspondendo ao bloco, ocultar, para ao menos um bloco, informações de ordens de varredura que identificam a ordem de varredura selecionada para o pelo menos um bloco ao menos parcialmente no vetor de coeficiente correspondendo ao pelo menos um bloco, codificar, para cada bloco, o vetor de coeficiente correspondendo aos blocos em um fluxo de bits representando uma sequência de quadros de vídeo, em que cada quadro de vídeo é associado a um ou mais blocos, e em que cada vetor de coeficiente dos um ou mais vetores de coeficiente corresponde a um bloco associado a um quadro de vídeo da sequência de quadros de vídeo.11. Encoder for encoding block coefficients, characterized by comprising: a non-transitory computer readable medium carrying a computer program comprising a program code; and one or more processors configured to execute program code to: select, for each block, a scan order for the block from a set of scan orders, wherein each block corresponds to a respective coefficient matrix, scan , for each block, the matrix of coefficients corresponding to the block according to the scan order selected for the block to obtain a coefficient vector corresponding to the block, hide, for at least one block, scan order information identifying the order of selected scanning for the at least one block at least partially in the coefficient vector corresponding to the at least one block, encode, for each block, the coefficient vector corresponding to the blocks in a bit stream representing a sequence of video frames, in that each video frame is associated with one or more blocks, and wherein each coefficient vector of the one or more coefficient vectors corresponds to a block associated with a video frame of the video frame sequence. 12. Codificador, de acordo com a reivindicação 11, caracterizado pelo fato de que ocultar, para o ao menos um bloco, as informações de ordens de varredura compreende: ocultar, para o pelo menos um bloco, as informações de ordens de varredura em um vetor de ocultação de coeficientes escolhido entre os vetores de coeficiente correspondendo ao pelo menos um bloco.12. Encoder according to claim 11, characterized by the fact that hiding, for the at least one block, the scan order information comprises: hiding, for the at least one block, the scan order information in a coefficient hiding vector chosen from the coefficient vectors corresponding to at least one block. 13. Codificador, de acordo com a reivindicação 12, caracterizado pelo fato de que ocultar, para o ao menos um bloco, as informações de ordens de varredura no vetor de ocultação de coeficientes é baseado em uma condição de ocultação, em que a condição de ocultação é baseada em uma comparação de um parâmetro que depende do vetor de ocultação de coeficientes com um limite.13. Encoder according to claim 12, characterized by the fact that hiding, for the at least one block, the scan order information in the coefficient hiding vector is based on a hiding condition, wherein the condition of Hiding is based on a comparison of a parameter that depends on the coefficient hiding vector with a threshold. 14. Codificador, de acordo com a reivindicação 13, caracterizado pelo fato de o parâmetro ser: - um número de coeficientes significativos dentro do vetor de ocultação de coeficientes, ou - uma distância entre primeiro e último coeficientes significativos dentro do vetor de ocultação de coeficientes, ou - uma razão de um valor máximo absoluto para um valor mínimo absoluto não-zero dos coeficientes dentro do vetor de ocultação de coeficientes, onde 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.14. Encoder according to claim 13, characterized in that the parameter is: - a number of significant coefficients within the coefficient hiding vector, or - a distance between first and last significant coefficients within the coefficient hiding vector , or - a ratio of an absolute maximum value to a non-zero absolute minimum value of the coefficients within the coefficient hiding vector, where the hiding condition is true if the parameter is above the threshold, and false if the parameter is below of the limit. 15. Codificador, de acordo com a reivindicação 13, caracterizado pelo fato de que os um ou mais processadores são adicionalmente configurados para executar o código de programa para: verificar a condição de ocultação, e ocultar as informações de ordens de varredura no vetor de ocultação de coeficientes se a condição de ocultação for verdadeira.15. Encoder according to claim 13, characterized by the fact that the one or more processors are further configured to execute program code to: check the hiding condition, and hide scan order information in the hiding vector of coefficients if the hiding condition is true. 16. Codificador, de acordo com a reivindicação 13, caracterizado pelo fato de, se a condição de ocultação for falsa, os um ou mais processadores são adicionalmente configurados para executar o código de programa para , recursivamente, selecionar outra ordem de varedura a partir do conjunto de ordens de varredura até que a condição de ocultação para aquela outra ordem de varredura selecionada seja verdadeira.16. The encoder of claim 13, wherein, if the hiding condition is false, the one or more processors are further configured to execute program code to recursively select another scan order from the set of scan orders until the occultation condition for that other selected scan order is true. 17. Codificador, de acordo com a reivindicação 13, caracterizado pelo fato de, se a condição de ocultação for falsa, selecionar, para cada bloco, a ordem de varredura compreende selecionar uma ordem de varredura padrão predefinida.17. Encoder according to claim 13, characterized in that, if the hiding condition is false, selecting, for each block, the scan order comprises selecting a predefined default scan order. 18. Codificador, de acordo com a reivindicação 12, caracterizado pelo fato de que ocultar, para o pelo menos um bloco, as informações de ordens de varredura no vetor de ocultação de coeficientes compreende: aplicar uma função verificação ao vetor de ocultação de coeficientes para obter um resultado de aplicação da função verificação, e determinar se o resultado da aplicação da função verificação corresponde às informações de ordens de varredura, e, se não, modificar o vetor de ocultação de coeficientes de modo que o resultado da aplicação da função verificação corresponda às informações de ordens de varredura.18. Encoder according to claim 12, characterized in that hiding, for the at least one block, the scan order information in the coefficient hiding vector comprises: applying a check function to the coefficient hiding vector to obtain a result of applying the check function, and determine whether the result of applying the check function matches the scan order information, and, if not, modify the coefficient hiding vector so that the result of applying the check function matches to scan order information. 19. Codificador, de acordo com a reivindicação 18, caracterizado pelo fato do resultado da aplicação da função verificação depender das coordenadas (x, y), dentro da matriz de coeficientes, de um último coeficiente significativo do vetor de ocultação de coeficientes, em que a função verificação compreende a seguinte função: mod(x + y + R,2) x e y sendo as coordenadas da matriz de coeficientes e R sendo um valor inteiro.19. Encoder, according to claim 18, characterized in that the result of applying the verification function depends on the coordinates (x, y), within the coefficient matrix, of a last significant coefficient of the coefficient hiding vector, in which the verification function comprises the following function: mod(x + y + R,2) x and y being the coordinates of the coefficient matrix and R being an integer value. 20. Codificador, de acordo com a reivindicação 11, caracterizado pelo fato de que, se uma ordem de varredura idêntica for selecionada para um primeiro e ao menos um segundo bloco, os um ou mais processadores são adicionalmente configurados para executar o código de programa para: ocultar as informações de ordens de varredura que identificam a ordem de varrdura idêntica em um ou mais coeficientes do primeiro bloco.20. The encoder of claim 11, wherein, if an identical scan order is selected for a first and at least a second block, the one or more processors are further configured to execute program code for : hide scan order information that identifies identical scan order in one or more coefficients of the first block. 21. Decodificador, de acordo com a reivindicação 1, caracterizado pelo fato de que os um ou mais processadores são adicionalmente configurados para executar o código de programa para: obter uma ou mais ordens de varredura pré-definidas, gerar uma ou mais ordens de varredura geradas, e selecionar, para cada bloco, a ordem de varredura para o bloco a partir das uma ou mais ordens de varredura pré- definidas e as uma ou mais ordens de varredura geradas com base nas informações de ordem de varredura para o bloco contido no fluxo de bits, em que gerar as uma ou mais ordens de varredura geradas depende de uma ou mais matrizes de coeficientes obtida previamente de blocos.21. The decoder of claim 1, wherein the one or more processors are further configured to execute program code to: obtain one or more predefined scan orders, generate one or more scan orders generated, and select, for each block, the scan order for the block from the one or more predefined scan orders and the one or more scan orders generated based on the scan order information for the block contained in the bit stream, in which generating the one or more scan orders generated depends on one or more coefficient matrices previously obtained from blocks. 22. Decodificador, de acordo com a reivindicação 21, caracterizado pelo fato de as uma ou mais ordens de varredura predefinidas serem obtidas para cada um de uma pluralidade de conjuntos de parâmetros de codificação, em que os um ou mais processadores são adicionalmente configurados para executar o código de programa para: gerar, para cada conjunto de parâmetros de codificação, uma ordem de varredura para o conjunto de parâmetros de codificação dependendo de uma ou mais matrizes de coeficientes previamente obtidas associadas ao conjunto de parâmetros de codificação, em que selecionar, para cada bloco, a ordem de varredura para o bloco compreende: determinar um conjunto de parâmetros de codificação do bloco, e selecionar a ordem de varredura para a matriz de coeficientes obtida para o bloco a partir das uma ou mais ordens de varredura predefinidas e das uma ou mais ordens de varredura geradas para o conjunto de parâmetros de digitalização determinado do bloco.22. The decoder of claim 21, wherein the one or more predefined scan orders are obtained for each of a plurality of coding parameter sets, wherein the one or more processors are further configured to execute the program code to: generate, for each set of coding parameters, a scan order for the set of coding parameters depending on one or more previously obtained coefficient matrices associated with the set of coding parameters, which to select, to each block, the scan order for the block comprises: determining a set of coding parameters for the block, and selecting the scan order for the coefficient matrix obtained for the block from the one or more predefined scan orders and the one or more scan orders generated for the block's given set of scan parameters. 23. Decodificador, de acordo com a reivindicação 22, caracterizado pelo fato de que os um ou mais processadores são adicionalmente configurados para executar o código de programa para: obter, para cada um da pluralidade de conjuntos de parâmetros de codificação, estatística de distribuição de uma ou mais matrizes de coeficientes previamente obtida associada ao conjunto de parâmetros de codificação, e gerar, para cada conjunto de parâmetro de codificação, a ordem de varredura para o conjunto de parâmetros de codificação que dependem da estatística de distribuição para o conjunto de parâmetros de codificação.23. The decoder of claim 22, wherein the one or more processors are further configured to execute program code to: obtain, for each of the plurality of coding parameter sets, distribution statistics of one or more previously obtained coefficient matrices associated with the set of coding parameters, and generate, for each set of coding parameters, the scan order for the set of coding parameters that depend on the distribution statistics for the set of coding parameters. codification. 24. Decodificador, de acordo com a reivindicação 23, caracterizado pelo fato de, se a ordem de varredura selecionada para um determinado bloco for uma ordem de varredura predefinida, então os um ou mais processadores são adicionalmente configurados para executar o código de programa para não atualizar ou reiniciar a estatística de distribuição para o conjunto de parâmetros de codificação do determinado bloco.24. The decoder of claim 23, wherein if the scan order selected for a given block is a predefined scan order, then the one or more processors are further configured to execute program code to not update or reset the distribution statistics for the given block's set of encoding parameters. 25. Decodificador, de acordo com a reivindicação 23, caracterizado pelo fato de que os um ou mais processadores são adicionalmente configurados para executar o código de programa para: analisar, para cada bloco, informações de parâmetros de codificação a partir do fluxo de bits, e determinar o conjunto de parâmetros de codificação de um determinado bloco de acordo com as informações de parâmetros de codificação analisadas para o determinado bloco.25. The decoder of claim 23, wherein the one or more processors are further configured to execute program code to: analyze, for each block, coding parameter information from the bit stream, and determining the set of encoding parameters of a given block according to the analyzed encoding parameter information for the given block. 26. Decodificador, de acordo com a reivindicação 21, caracterizado pelo fato de que os um ou mais processadores são adicionalmente configurados para executar o código de programa para: analisar as informações de ordens de varredura que identificam a ordem de varredura selecionada a partir do fluxo de bits.26. The decoder of claim 21, wherein the one or more processors are further configured to execute program code to: analyze scan order information that identifies the scan order selected from the stream of bits. 27. Método, de acordo com a reivindicação 10, caracterizado pelo fato de compreender adicionalmente: obter uma ou mais ordens de varredura pré-definidas, gerar uma ou mais ordens de varredura geradas, e selecionar, para cada bloco, a ordem de varredura para o bloco a partir das uma ou mais ordens de varredura pré- definidas e as uma ou mais ordens de varredura geradas com base nas informações de ordem de varredura para o bloco contido no fluxo de bits, em que gerar as uma ou mais ordens de varredura geradas depende de uma ou mais matrizes de coeficientes obtidas previamente de blocos.27. The method of claim 10, further comprising: obtaining one or more predefined scan orders, generating one or more generated scan orders, and selecting, for each block, the scan order for the block from the one or more predefined scan orders and the one or more scan orders generated based on the scan order information for the block contained in the bitstream in which to generate the one or more scan orders generated depends on one or more coefficient matrices previously obtained from blocks. 28. Codificador, de acordo com a reivindicação 11, caracterizado pelo fato de que os um ou mais processadores são adicionalmente configurados para executar o código de programa para: obter uma ou mais ordens de varredura pré-definidas, gerar uma ou mais ordens de varredura geradas, e selecionar, para cada bloco, a ordem de varredura para o bloco a partir das uma ou mais ordens de varredura pré- definidas e as uma ou mais ordens de varredura geradas, em que gerar as uma ou mais ordens de varredura geradas depende de uma ou mais matrizes de coeficientes obtidas previamente de blocos.28. The encoder of claim 11, wherein the one or more processors are further configured to execute program code to: obtain one or more predefined scan orders, generate one or more scan orders generated, and select, for each block, the scan order for the block from the one or more predefined scan orders and the one or more generated scan orders, where generating the one or more generated scan orders depends of one or more coefficient matrices previously obtained from blocks. 29. Codificador, de acordo com a reivindicação 28, caracterizado pelo fato de que as uma ou mais ordens de varredura pré-definidas são obtidas para cada um de uma pluralidade de conjuntos de parâmetro de codificação, em que os um ou mais processadores são adicionalmente configurados para executar o código de programa para: gerar, para cada conjunto de parâmetro de codificação, uma ordem de varredura para o conjunto de parâmetro de codificação dependendo de uma ou mais matrizes de coeficientes previamente obtidas associadas ao conjunto de parâmetro de codificação, em que selecionar, para cada bloco, a ordem de varredura para o bloco compreende: determinar um conjunto de parâmetros de codificação do bloco, e selecionar a ordem de varredura para a matriz de coeficientes obtida para o bloco a partir das uma ou mais ordens de varredura pré-definidas e das uma ou mais ordens de varredura geradas para o conjunto de parâmetros de codificação determinado do bloco.29. The encoder of claim 28, wherein the one or more predefined scan orders are obtained for each of a plurality of encoding parameter sets, wherein the one or more processors are additionally configured to execute program code to: generate, for each coding parameter set, a scan order for the coding parameter set depending on one or more previously obtained coefficient matrices associated with the coding parameter set, wherein Selecting, for each block, the scan order for the block comprises: determining a set of block coding parameters, and selecting the scan order for the coefficient matrix obtained for the block from the one or more pre-scan orders. -defined and the one or more scan orders generated for the given set of coding parameters of the block. 30. Codificador, de acordo com a reivindicação 29, caracterizado pelo fato de que os um ou mais processadores são adicionalmente configurados para executar código de programa para: obter, para cada um da pluralidade de conjuntos de parâmetros de codificação, estatística de distribuição de uma ou mais matrizes de coeficientes previamente obtida associada ao conjunto de parâmetros de codificação, e gerar, para cada conjunto de parâmetros de codificação, a ordem de varredura para o conjunto de parâmetros de codificação dependendo da estatística de distribuição para o conjunto de parâmetro de codificação.30. The encoder of claim 29, wherein the one or more processors are further configured to execute program code to: obtain, for each of the plurality of encoding parameter sets, distribution statistics of a or more previously obtained coefficient matrices associated with the coding parameter set, and generating, for each coding parameter set, the scan order for the coding parameter set depending on the distribution statistics for the coding parameter set. 31. Codificador, de acordo com a reivindicação 30, caracterizado pelo fato de que, se a ordem de varredura selecionada para um dado bloco for uma ordem de varredura pré-definida, então os um ou mais processadores são adicionalmente configurados para executar o código de programa para não atualizar ou reinicializar a estatística de distribuição para o conjunto de parâmetros de codificação do dado bloco.31. The encoder of claim 30, wherein if the scan order selected for a given block is a predefined scan order, then the one or more processors are further configured to execute the code of program to not update or reset the distribution statistics for the given block's set of coding parameters. 32. Codificador, de acordo com a reivindicação 28, caracterizado pelo fato de que os um ou mais processadores são adicionalmente configurados para executar o código de programa para adicionar informações de ordem de varredura identificando a ordem de varredura selecionada no fluxo de bits.32. The encoder of claim 28, wherein the one or more processors are further configured to execute program code to add scan order information identifying the selected scan order in the bit stream. 33. Codificador, de acordo com a reivindicação 28, caracterizado pelo fato de que selecionar, para cada bloco, a ordem de varredura a partir das uma ou mais ordens de varredura pré-definidas e as uma ou mais ordens de varredura geradas é baseado em uma função custo.33. Encoder according to claim 28, characterized in that selecting, for each block, the scan order from the one or more predefined scan orders and the one or more generated scan orders is based on a cost function. 34. Meio de armazenamento legível por computador não transitório, caracterizado por compreender instruções para a execução em um processador, em que as instruções, quando executados pelo processador, levam o processador a realizar o método como definido na reivindicação 10.34. Non-transitory computer-readable storage medium comprising instructions for execution on a processor, wherein the instructions, when executed by the processor, cause the processor to perform the method as defined in claim 10. 35. Decodificador, de acordo com a reivindicação 1, caracterizado pelo fato de que o conjunto de ordens de varredura compreende um conjunto de ordens de varredura pré- definidas e de ordens de varredura geradas.35. Decoder according to claim 1, characterized in that the set of scan orders comprises a set of predefined scan orders and generated scan orders. 36. Codificador, de acordo com a reivindicação 11, caracterizado pelo fato de que o conjunto de ordens de varredura compreende um conjunto de ordens de varredura pré- definidas e de ordens de varredura geradas.36. Encoder according to claim 11, characterized in that the set of scan orders comprises a set of predefined scan orders and generated scan orders. 37. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que o conjunto de ordens de varredura compreende um conjunto de ordens de varredura pré- definidas e de ordens de varredura geradas.37. Method according to claim 10, characterized by the fact that the set of scan orders comprises a set of predefined scan orders and generated scan orders.
BR112018016440-2A 2016-02-12 DECODER, METHOD FOR DECODING BLOCK COEFFICIENTS, ENCODER FOR ENCODING BLOCK COEFFICIENTS, AND NON-TRAINER COMPUTER READABLE STORAGE MEDIA BR112018016440B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2016/000068 WO2017138831A1 (en) 2016-02-12 2016-02-12 Method and apparatus for scan order selection

Publications (2)

Publication Number Publication Date
BR112018016440A2 BR112018016440A2 (en) 2018-12-26
BR112018016440B1 true BR112018016440B1 (en) 2023-07-18

Family

ID=

Similar Documents

Publication Publication Date Title
US10798390B2 (en) Method and apparatus for scan order selection
AU2016203628B2 (en) Method, apparatus and system for encoding and decoding video data
JP6595711B2 (en) Method and apparatus for transform coding with block-level transform selection and implicit signaling within a hierarchical partition
CN111819853B (en) Image block encoding device and image block encoding method
CN111935482B (en) Method, device and equipment for encoding and decoding video image
BR112019018464A2 (en) intra filtering indicator in video encoding
US11582455B2 (en) Method and apparatus for scan order selection
BR112016013761B1 (en) METHOD AND APPARATUS FOR RECONSTRUCTING IMAGE BLOCKS USING PREDICTION AND COMPUTER READABLE STORAGE MEDIA
KR20210068101A (en) Single-level transform division and adaptive sub-block transform
BR112020007835A2 (en) apparatus and methods of image encoding and image decoding, apparatus for storing, capturing, transmitting or receiving videos, computer software, machine-readable non-transitory storage media, and data signal.
KR20230111255A (en) Intra frame prediction method, apparatus and decoder and encoder
WO2023048646A2 (en) Methods and systems for performing combined inter and intra prediction
BR112018016440B1 (en) DECODER, METHOD FOR DECODING BLOCK COEFFICIENTS, ENCODER FOR ENCODING BLOCK COEFFICIENTS, AND NON-TRAINER COMPUTER READABLE STORAGE MEDIA
BR112018016409B1 (en) DECODER, METHOD TO DECODE, ENCODER, AND METHOD TO ENCODE
US11412250B2 (en) Method and apparatus for deriving temporal motion
CN114979632A (en) Block vector encoding/decoding method, encoding device, decoding device, and storage medium
BR112018008131B1 (en) ENCODER FOR ENCODING A SOURCE IMAGE, AND DECODER AND METHOD FOR DECODING AN INPUT BIT STREAM