BR122020016787B1 - RECORDING MEDIA - Google Patents
RECORDING MEDIA Download PDFInfo
- Publication number
- BR122020016787B1 BR122020016787B1 BR122020016787-4A BR122020016787A BR122020016787B1 BR 122020016787 B1 BR122020016787 B1 BR 122020016787B1 BR 122020016787 A BR122020016787 A BR 122020016787A BR 122020016787 B1 BR122020016787 B1 BR 122020016787B1
- Authority
- BR
- Brazil
- Prior art keywords
- block
- processing
- blocks
- prediction
- parallel
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
Abstract
MEIO DE GRAVAÇÃO. Trata-se de um decodificador de vídeo que decodifica um fluxo codificado, que inclui uma parte de decodificação paralela por entropia para decodificar por entropia o fluxo de blocos nas linhas de blocos em paralelo, uma parte de previsão paralela de QP para computar valores de previsão dos blocos nas linhas de blocos em paralelo e uma parte de processamento de decodificação em paralelo para gerar pixels decodificados dos blocos nas linhas de blocos em paralelo, sendo que o pixel decodificado é obtido mediante a utilização de dados decodificados pela parte de decodificação paralela por entropia e o valor de previsão. Ao desempenhar o processamento de computação em paralelo por unidade de N linhas de blocos, o processamento é desempenhado em um bloco de processamento em uma (K-1)ésima linha de bloco, que precede um bloco de processamento em uma Késima linha de bloco em pelo menos um bloco em uma posição horizontal para computar o valor de previsão do bloco de processamento através da referência a um bloco já processado correspondente ao bloco de processamento.RECORDING MEDIUM. This is a video decoder that decodes an encoded stream, which includes an entropy parallel decoding part for entropy decoding the stream of blocks in parallel block lines, a QP parallel prediction part for computing prediction values of the blocks in the parallel block lines and a parallel decoding processing part for generating decoded pixels of the blocks in the parallel block lines, the decoded pixel being obtained by using data decoded by the entropy parallel decoding part and the forecast value. When performing parallel computing processing per unit of N lines of blocks, processing is performed in a processing block in a (K-1)th block line, which precedes a processing block in a Kth block line in at least one block in a horizontal position for computing the prediction value of the processing block by referring to an already processed block corresponding to the processing block.
Description
[0001] Dividido do BR112014017608-6 depositado em 16 de janeiro de 2013.[0001] Divided from BR112014017608-6 filed on January 16, 2013.
[0002] As modalidades discutidas no presente documento referem- se a um decodificador de vídeo, a um codificador de vídeo, a um método de decodificação de vídeo e a um método de codificação de vídeo.[0002] The embodiments discussed in this document relate to a video decoder, a video encoder, a video decoding method and a video encoding method.
[0003] Uma tecnologia recente de codificação de vídeo envolve dividir uma imagem em blocos, prever os pixels contidos em cada um dos blocos e codificar os diferenciais de previsão para atingir uma alta taxa de compressão. Nessa tecnologia, um modo de previsão para formar pixels de previsão a partir de pixels dentro de uma gravura sujeita à codificação é chamado de "intraprevisão", e um modo de previsão para formar pixels de previsão a partir de uma imagem de referência previamente codificada chamada de "compensação de movimento" é chamado de "interprevisão".[0003] A recent video coding technology involves dividing an image into blocks, predicting the pixels contained in each of the blocks, and encoding the prediction differentials to achieve a high compression ratio. In this technology, a predictive mode for forming predictive pixels from pixels within a picture subject to encoding is called "intraprediction", and a predictive mode for forming predictive pixels from a previously encoded reference image called of "motion compensation" is called "interprediction".
[0004] No codificador de vídeo, a interprevisão expressa uma regi ão chamada de pixels previstos dentro de um vetor de movimento composto de dados de coordenadas bidimensionais, o que inclui um componente horizontal e um componente vertical, e codifica dados diferenciais de previsão do vetor de movimento e dos pixels. A fim de suprimir uma quantidade de codificação do vetor de movimento, um vetor de previsão é gerado a partir de um vetor de movimento de um bloco adjacente ao bloco submetido à codificação, e o vetor diferencial entre o vetor de movimento e o vetor de previsão é codificado.[0004] In the video encoder, interprediction expresses a region called predicted pixels within a motion vector composed of two-dimensional coordinate data, which includes a horizontal component and a vertical component, and encodes differential vector prediction data motion and pixels. In order to suppress a motion vector encoding amount, a prediction vector is generated from a motion vector of a block adjacent to the block undergoing encoding, and the differential vector between the motion vector and the prediction vector it is encoded.
[0005] Em Grupo de Especialistas em Figuras com Movimento (MPEG)-4 AVC/H.264 (abaixo no presente documento chamado tam- bém de "H.264"), que é um padrão atual de aprovisionamento de codificação comumente representado por Codificação de Vídeo de Alta Eficiência (HEVC), um endereço é atribuído a cada um dos blocos divididos em uma ordem de mapa de bits, e a ordem de processamento dos blocos aquiesce com a ordem de endereço.[0005] In Motion Pictures Expert Group (MPEG)-4 AVC/H.264 (hereinafter also referred to as "H.264"), which is a current encoding provisioning standard commonly represented by High Efficiency Video Coding (HEVC), an address is assigned to each of the divided blocks in a bitmap order, and the processing order of the blocks matches the address order.
[0006] No processo de codificação e decodificação de vídeo, uma grande quantidade de pixels é geralmente processada a cada segundo. Em particular, a compensação de movimento ou a transformação ortogonal pode exigir alto desempenho computacional e, portanto, pode ser preferencial que um processo de codificação ou decodificação de vídeo implante processamento paralelo. Na codificação de vídeo, há uma relação de dependência entre os blocos para computar vários valores de previsão de um bloco periférico até um bloco submetido à codificação de uma maneira similar à computação dos vetores de previsão conforme descrito acima. Portanto, pode ser difícil desempenhar o processamento paralelo nos blocos.[0006] In the video encoding and decoding process, a large amount of pixels are usually processed every second. In particular, motion compensation or orthogonal transformation may require high computational performance, and therefore it may be preferable for a video encoding or decoding process to deploy parallel processing. In video encoding, there is a dependency relationship between blocks to compute various prediction values from an peripheral block to a block subjected to encoding in a similar way to computing the prediction vectors as described above. Therefore, it can be difficult to perform parallel processing on blocks.
[0007] Um método para implantar o processamento paralelo nos blocos sem afetar a ordem de processamento ou a relação de dependência entre os blocos pode, por exemplo, incluir desempenhar o processamento paralelo ao alterar uma posição horizontal de cada um dos blocos de processamento correspondentes às linhas de blocos.[0007] A method to implement parallel processing in blocks without affecting the processing order or the dependency relationship between the blocks may, for example, include performing parallel processing by changing a horizontal position of each of the processing blocks corresponding to the block lines.
[0008] Na descrição seguinte, tal processamento paralelo é cha mado "processamento paralelo de linha de bloco". A seguir, é descrito um caso no qual o processamento paralelo de linha de bloco é desempenhado em correspondência a duas linhas de blocos.[0008] In the following description, such parallel processing is called "block line parallel processing". The following describes a case in which block line parallel processing is performed in correspondence of two block lines.
[0009] A fim de desempenhar o processamento paralelo de linha de bloco, um dispositivo de processamento de vídeo inclui uma unidade 1 e uma unidade 2, sendo que cada uma é configurada para processar independentemente as linhas de blocos correspondentes. Por exemplo, a unidade 1 pode ser configurada para processar linhas de blocos de número ímpar, e a unidade 2 pode ser configurada para processar linhas de blocos de número par.[0009] In order to perform block line parallel processing, a video processing device includes a unit 1 and a unit 2, each of which is configured to independently process the corresponding block lines. For example, unit 1 can be configured to process odd-numbered block lines, and unit 2 can be configured to process even-numbered block lines.
[00010] A Figura 1 é um diagrama que ilustra um exemplo de processamento paralelo de linha de bloco. Conforme ilustrado na Figura 1, um endereço horizontal de um bloco em uma primeira linha de bloco processada pela unidade 1 é alterado por dois ou mais blocos a partir de um endereço horizontal de um bloco em uma segunda linha de bloco processada pela unidade 2.[00010] Figure 1 is a diagram illustrating an example of block line parallel processing. As illustrated in Figure 1, a horizontal address of a block in a first block line processed by unit 1 is changed by two or more blocks from a horizontal address of a block in a second block line processed by unit 2.
[00011] Assim, quando um bloco de processamento X processado pela unidade 2 é focado, um bloco A no lado esquerdo do bloco de processamento X é um bloco processado no qual o processamento já tenha sido desempenhado. Similarmente, um bloco B, um bloco C e um bloco D processados pela unidade 1 são blocos processados. O bloco B é no lado superior esquerdo do bloco de processamento X, o bloco C é acima do bloco de processamento X e o bloco D é no lado superior direito do bloco de processamento X. O bloco X pode ser capaz de utilizar resultados codificados desses blocos processados.[00011] Thus, when a processing block X processed by unit 2 is focused, a block A on the left side of processing block X is a processed block on which processing has already been performed. Similarly, a B block, a C block and a D block processed by unit 1 are processed blocks. Block B is on the upper left side of processing block X, block C is above processing block X and block D is on the upper right side of processing block X. Block X may be able to use encoded results from these processed blocks.
[00012] Por exemplo, o processamento nas linhas de blocos de número par pode ser capaz de começar sem esperar o fim do processamento nas linhas de blocos de número ímpar e, portanto, o bloco de processamento X pode ser capaz de implantar o processamento paralelo associado a processamento tal como previsão de movimento ou transformação ortogonal. No exemplo acima é descrito o processamento paralelo de duas linhas de blocos; entretanto, a implantação de processamento paralelo não se limita ao processamento paralelo das duas linhas de blocos. Em um caso de processamento paralelo de N linhas de blocos, N unidades podem ser atribuídas às N linhas de blocos no dispositivo de processamento de vídeo.[00012] For example, processing on even-numbered block lines may be able to start without waiting for the end of processing on odd-numbered block lines, and therefore processing block X may be able to implement parallel processing associated with processing such as motion prediction or orthogonal transformation. The example above describes the parallel processing of two rows of blocks; however, implementing parallel processing is not limited to parallel processing of two rows of blocks. In a case of parallel processing of N block lines, N units can be assigned to the N block lines in the video processing device.
[00013] Note que quando o processamento paralelo de linha de bloco é executado como um programa, uma unidade de processamen- to pode ser um thread ou uma unidade de processamento central (CPU).[00013] Note that when block-line parallel processing is executed as a program, a processing unit can be either a thread or a central processing unit (CPU).
[00014] De acordo com H.264, a codificação por entropia pode ser efetuada ao processar uma série de bits de emissão na ordem de blocos de processamento com base na especificação-padrão. Portanto, o dispositivo de processamento de vídeo armazena temporariamente os resultados do processamento paralelo de linha de bloco mencionado previamente, e um codificador por entropia codifica os resultados armazenados na ordem de blocos de processamento com base na especificação-padrão.[00014] According to H.264, entropy encoding can be performed by processing a series of emission bits in the order of processing blocks based on the standard specification. Therefore, the video processing device temporarily stores the previously mentioned block-line parallel processing results, and an entropy encoder encodes the stored results in order of processing blocks based on the standard specification.
[00015] Em contrapartida, o HEVC revela uma tecnologia para intercalar uma série de bits de emissão entre as linhas de blocos. A Figura 2 é um diagrama que ilustra um exemplo de processamento paralelo de linha de bloco desempenhado por uma parte de processamento por entropia em HEVC. Conforme ilustrado na Figura 2, a codificação ou decodificação por entropia pode ser desempenhada por processamento paralelo entre as linhas de blocos.[00015] In contrast, HEVC discloses a technology for interleaving a series of emission bits between rows of blocks. Figure 2 is a diagram illustrating an example of block line parallel processing performed by an entropy processing part in HEVC. As illustrated in Figure 2, entropy encoding or decoding can be performed by parallel processing between rows of blocks.
[00016] Documento Não Patente 1: ISO/IEC 14496-10 (MPEG-4 Parte 10) / ITU-T Rec.H.264[00016] Non-Patent Document 1: ISO/IEC 14496-10 (MPEG-4 Part 10) / ITU-T Rec.H.264
[00017] Documento Não Patente 2: Thomas Wiegand,Woo-Jin Han, Benjamin Bross, Jens-Rainer Ohm,Gary J. Sullivan,"Working Draft 5 of High-Efficiency Video Coding" JCTVC-G1103, JCT-VC sétimo encontro, dezembro de 2011.[00017] Non-Patent Document 2: Thomas Wiegand,Woo-Jin Han, Benjamin Bross, Jens-Rainer Ohm,Gary J. Sullivan,"Working Draft 5 of High-Efficiency Video Coding" JCTVC-G1103, JCT-VC seventh meeting, December 2011.
[00018] Documento Não Patente 3: Software de referência HEVC HM 5.0 https://hevc.hhi.fraunhofer.de/svn/svn HEVCSoftware/tags/HM-5.0/[00018] Non-Patent Document 3: Reference Software HEVC HM 5.0 https://hevc.hhi.fraunhofer.de/svn/svn HEVCSoftware/tags/HM-5.0/
[00019] Documento Não Patente 4: MPEG-2, Modelo de Teste 5 (TM 5), Doc. ISO/IEC JTC1/SC29/WG11/N0400, Comitê de Edição de Modelo de Teste, abril de 1993.[00019] Non-Patent Document 4: MPEG-2, Test Model 5 (TM 5), Doc. ISO/IEC JTC1/SC29/WG11/N0400, Test Model Editing Committee, April 1993.
[00020] Em um sistema de codificação híbrido, que é uma combinação de compensação de movimento e transformação ortogonal (por exemplo, a transformada discreta de cosseno (DCT)) representada por H.264 ou HEVC, a compressão é implantada ao dividir uma imagem em blocos, o que gera pixels de previsão dos blocos, e desempenhar uma transformação ortogonal tal como DCT nos pixels diferenciais, entre os pixels originais e os pixels de previsão, para quantizar os coeficientes de emissão da transformação ortogonal.[00020] In a hybrid coding system, which is a combination of motion compensation and orthogonal transformation (eg, discrete cosine transform (DCT)) represented by H.264 or HEVC, compression is implemented when splitting an image into blocks, which generates block prediction pixels, and perform an orthogonal transformation such as DCT on the differential pixels between the original pixels and the prediction pixels to quantize the emission coefficients of the orthogonal transformation.
[00021] Nesse sistema híbrido, é preparado um parâmetro de quan- tização (QP) para regular a precisão da quantização, e o valor QP é codificado para cada um dos blocos de forma a controlar uma quantidade de fluxo de bits de emissão.[00021] In this hybrid system, a quantization parameter (QP) is prepared to regulate the quantization precision, and the QP value is encoded for each of the blocks in order to control a quantity of emission bit stream.
[00022] Entretanto, em um caso no qual todos os coeficientes de transformada quantizados nos blocos são 0, os resultados de quanti- zação inversa são todos 0. Portanto, o valor QP pode não ser exigido para o processamento de decodificação. Em tal caso, o valor QP é invalidado, e como resultado não é codificado.[00022] However, in a case where all quantized transform coefficients in the blocks are 0, the inverse quantization results are all 0. Therefore, the QP value may not be required for decoding processing. In such a case, the QP value is invalidated, and as a result it is not encoded.
[00023] Um valor de previsão do valor QP (abaixo no presente documento chamado de "valor de previsão QP") é gerado em cada um dos blocos. Portanto, quando os valores QP dos blocos de processamento são invalidados, o valor QP de cada um dos blocos é definido como o valor de previsão QP. Como um método para determinar o valor QP para cada um dos blocos, o algoritmo utilizado no TM 5 revelado no Documento Não Patente 4 pode ser conhecido na técnica.[00023] A predictive value of the QP value (hereinafter referred to as "predictive QP value") is generated in each of the blocks. Therefore, when the QP values of the processing blocks are invalidated, the QP value of each of the blocks is set to the QP prediction value. As a method for determining the QP value for each of the blocks, the algorithm used in TM 5 disclosed in Non-Patent Document 4 may be known in the art.
[00024] Um método para codificar o valor QP de acordo com H.264 ou HEVC inclui codificar o valor diferencial QP_DELTA entre o valor QP e o valor de previsão QP do bloco de processamento. Por exemplo, o valor de previsão QP pode ser um valor QP QP_prev, que é o valor QP de um bloco imediatamente precedente ao bloco de processamento na ordem do mapa de bits. O QP_DELTA pode ser computa- do pela seguinte fórmula (1). QP_DELTA = QP – QP_prev ……………(1)[00024] A method to encode the QP value according to H.264 or HEVC includes encoding the differential value QP_DELTA between the QP value and the QP prediction value of the processing block. For example, the QP prediction value can be a QP value QP_prev, which is the QP value of a block immediately preceding the processing block in bitmap order. The QP_DELTA can be computed by the following formula (1). QP_DELTA = QP – QP_prev ……………(1)
[00025] O decodificador de vídeo é configurado para decodificar o QP_DELTA codificado por entropia pelo codificador de vídeo para recuperar o valor QP pela seguinte fórmula (2). QP = QP_DELTA + QP_prev ……………(2)[00025] The video decoder is configured to decode the entropy encoded QP_DELTA by the video encoder to recover the QP value by the following formula (2). QP = QP_DELTA + QP_prev ……………(2)
[00026] Quando não há um bloco imediatamente precedente ao bloco de processamento, tal como o primeiro bloco da gravura de processamento, o QP_prev pode ser um valor determinado anteriormente do processamento do primeiro bloco. Por exemplo, de acordo com H.264, o QP_prev do primeiro bloco da gravura tem atribuído um valor QP de fatia descrito em informações de cabeçalho chamadas "Fatia".[00026] When there is no block immediately preceding the processing block, such as the first block of the processing engraving, the QP_prev can be a previously determined value from the processing of the first block. For example, in accordance with H.264, the QP_prev of the first block of the engraving is assigned a slice QP value described in header information called "Slice".
[00027] Ademais, de acordo com H.264 ou HEVC, o valor QP de cada um dos blocos pode ser utilizado para determinar a força de filtro de um filtro de desbloqueio que não seja a quantização da transformação ortogonal. O QP invalidade não é relatado ao decodificador de vídeo. Portanto, o valor QP do bloco que tem o QP invalidado pode ser processado como o QP_prev.[00027] Furthermore, according to H.264 or HEVC, the QP value of each of the blocks can be used to determine the filter strength of an unblocking filter other than the quantization of the orthogonal transformation. The invalidity QP is not reported to the video decoder. Therefore, the QP value of the block that has the QP invalidated can be processed as the QP_prev.
[00028] Aqui, se foca em uma (K-1)ésima linha de bloco e em uma Késima linha de bloco no processamento paralelo de linha de bloco. Quando um primeiro bloco X na Késima linha de bloco é processado ao mesmo tempo do começo do processamento da Késima linha de bloco, aproximadamente dois blocos na Késima linha de bloco já terão sido processados anteriormente à (K-1)ésima linha de bloco. Um bloco que precede o primeiro bloco da Késima linha de bloco corresponde ao último bloco da (K-1)ésima linha de bloco. Consequentemente, o processamento do bloco Y ainda está para ser completado no momento do começo do processamento da Késima linha de bloco.[00028] Here, focus on a (K-1)th block line and a Kth block line in block line parallel processing. When a first block X in the Kth block line is processed at the same time as the start of the processing of the Kth block line, approximately two blocks in the Kth block line will already have been processed before the (K-1)th block line. A block preceding the first block of the Kth block line corresponds to the last block of the (K-1)th block line. Consequently, the processing of the Y block is yet to be completed at the time of starting the processing of the Kth block line.
[00029] Portanto, quando o bloco X é processado, um QP_prev não está determinado. Dado que o QP_prev do bloco X não está determi- nado, um QP_prev de um bloco subsequente ao bloco X não é determinado.[00029] Therefore, when block X is processed, a QP_prev is not determined. Since the QP_prev of block X is not determined, a QP_prev of a block subsequent to block X is not determined.
[00030] Consequentemente, os valores de previsão QP não são computados em paralelo entre as linhas de blocos, mas são computados sequencialmente. As Figuras 3A e 3B são diagramas de blocos, sendo que cada um ilustra uma configuração esquemática de um dispositivo de processamento de vídeo da técnica relacionada ao desempenhar um processamento paralelo de linha de bloco da técnica relacionada.[00030] Consequently, QP prediction values are not computed in parallel between rows of blocks, but are computed sequentially. Figures 3A and 3B are block diagrams, each illustrating a schematic configuration of a related art video processing device performing related art block-line parallel processing.
[00031] Mais especificamente, a Figura 3A é um diagrama de blocos que ilustra uma configuração esquemática de um codificador da técnica relacionada ao desempenhar o processamento paralelo de linha de bloco. A Figura 3B é um diagrama de blocos que ilustra uma configuração esquemática de um codificador da técnica relacionada ao desempenhar o processamento paralelo de linha de bloco.[00031] More specifically, Figure 3A is a block diagram illustrating a schematic configuration of an encoder of the art related to performing block line parallel processing. Figure 3B is a block diagram illustrating a schematic configuration of a related art encoder performing block line parallel processing.
[00032] Conforme ilustrado nas Figuras 3A e 3B, no dispositivo de processamento de vídeo da técnica relacionada, uma parte de previsão de QP configurada para computar os valores QP de previsão podem ser um gargalo.[00032] As illustrated in Figures 3A and 3B, in the related art video processing device, a QP prediction part configured to compute prediction QP values may be a bottleneck.
[00033] A Figura 4A é um diagrama que ilustra um exemplo de processamento paralelo de linha de bloco em processamento de previsão de QP. No exemplo ilustrado na Figura 4A, a primeira linha de bloco e a segunda linha de bloco são processadas em paralelo. Nesse caso, quando X representa o bloco de processamento da segunda linha de bloco, a computação de um valor de previsão QP do bloco X pode precisar esperar até que o processamento do bloco Y seja completado. Isto é, o processamento da segunda linha de bloco não é iniciado a menos que o processamento da primeira linha de bloco seja completado.[00033] Figure 4A is a diagram illustrating an example of block line parallel processing in QP prediction processing. In the example illustrated in Figure 4A, the first block line and the second block line are processed in parallel. In that case, when X represents the processing block of the second line of block, computation of a QP prediction value of block X may need to wait until the processing of block Y is completed. That is, the processing of the second block line is not started unless the processing of the first block line is completed.
[00034] A Figura 4B é um diagrama que ilustra outro exemplo de processamento paralelo de linha de bloco no processamento de previsão de QP. Conforme ilustrado na Figura 4B, quando o processamento do bloco Y tiver sido completado, o processamento da segunda linha de bloco é iniciado.[00034] Figure 4B is a diagram illustrating another example of block line parallel processing in QP prediction processing. As illustrated in Figure 4B, when the processing of the Y block has been completed, the processing of the second line of block starts.
[00035] A Figura 4C é um diagrama que ilustra ainda outro exemplo de processamento paralelo de linha de bloco no processamento de previsão de QP. No exemplo ilustrado na Figura 4C, a parte de previsão de QP que tem estado em processamento da primeira linha de bloco pode precisar esperar até que o processamento de um bloco V seja completado a fim de computar um valor QP de um bloco W em uma terceira linha de bloco.[00035] Figure 4C is a diagram illustrating yet another example of block line parallel processing in QP prediction processing. In the example illustrated in Figure 4C, the prediction part of QP that has been processing the first block line may need to wait until the processing of a V block is completed in order to compute a QP value of a W block in a third block line.
[00036] Isto é, o processamento da terceira linha de bloco não é iniciado a menos que o processamento da segunda linha de bloco esteja completado.[00036] That is, the processing of the third block line is not started unless the processing of the second block line is completed.
[00037] Assim, o processamento da (K-1)ésima linha de bloco pode precisar ser completado para iniciar a Késima linha de bloco, e consequentemente, os valores QP podem ser computados em série na tecnologia da técnica relacionada.[00037] Thus, the processing of the (K-1)th block line may need to be completed to start the Kth block line, and consequently, the QP values can be serially computed in the technology of the related art.
[00038] Quando o processamento de codificação é desempenhado em paralelo, e as partes de previsão de QP são processadas em série, pode ser necessário considerar os seguintes fatos. Por exemplo, dado que o QP_prev do bloco X não está determinado, o QP_DELTA não é computado no primeiro bloco da Késima linha de bloco, e o processamento por entropia do bloco X não é iniciado até que o processamento do bloco Y seja completado.[00038] When encoding processing is performed in parallel, and QP prediction parts are processed serially, it may be necessary to consider the following facts. For example, since the QP_prev of block X is not determined, the QP_DELTA is not computed in the first block of the Kth block line, and the entropy processing of block X is not started until the processing of block Y is completed.
[00039] Consequentemente, dado que a iniciação do processamento por entropia é atrasada, o tamanho de armazenamento temporário para armazenar os resultados gerados pela parte de processamento de codificação pode ser aumentado. Ademais, o processamento de um filtro de desbloqueio não é iniciado.[00039] Consequently, given that the initiation of entropy processing is delayed, the temporary storage size for storing the results generated by the encoding processing part can be increased. Furthermore, the processing of an unblocking filter is not started.
[00040] Similarmente, o processamento paralelo de linha de bloco em um decodificador de vídeo pode ser considerado abaixo. De acordo com HEVC, o processamento por entropia pode ser desempenhado em paralelo entre as linhas de blocos. Similar ao primeiro exemplo, a (K-1)ésima linha de bloco e a Késima linha de bloco recebem o foco, e o processamento de recuperação de QP do primeiro bloco X da Kési- ma linha de bloco é considerado. Nesse caso, o QP_DELTA do bloco Y ainda está para ser decodificado no momento em que o QP_DELTA do bloco X é decodificado e, portanto, o valor QP do bloco Y não será recuperado.[00040] Similarly, block-line parallel processing in a video decoder can be considered below. According to HEVC, entropy processing can be performed in parallel between rows of blocks. Similar to the first example, the (K-1)th block row and the Kth block row are given focus, and the QP recovery processing of the first X block of the Kth block row is considered. In this case, the Y block QP_DELTA is yet to be decoded at the time the X block QP_DELTA is decoded, and therefore the Y block QP value will not be retrieved.
[00041] Dado que o valor de previsão QP QP_prev do bloco X corresponde ao valor QP do bloco Y, o QP_prev do bloco X não será computado. Como resultado, o valor QP do bloco X não será recuperado. Consequentemente, os valores QP de previsão dos blocos respectivos podem ser desempenhados em série, o que pode resultar em um gargalo no processamento paralelo de uma maneira similar ao codificador de vídeo.[00041] Since the QP prediction value QP_prev of block X corresponds to the QP value of block Y, the QP_prev of block X will not be computed. As a result, the QP value of block X will not be retrieved. Consequently, the prediction QP values of the respective blocks can be performed serially, which can result in a bottleneck in parallel processing in a similar way to the video encoder.
[00042] Consequentemente, a tecnologia revelada abaixo pode possibilitar o processamento computacional dos valores QP de previsão para implantar processamento paralelo, o qual pode aprimorar a eficiência do processamento paralelo de linha de bloco.[00042] Consequently, the technology disclosed below can enable computational processing of the prediction QP values to implement parallel processing, which can improve the efficiency of block-line parallel processing.
[00043] De acordo com um aspecto das modalidades, é fornecido um decodificador de vídeo para decodificar um fluxo codificado com um sistema de codificação de vídeo, no qual o fluxo codificado é obtido através da codificação de uma imagem de uma pluralidade de blocos divididos. O decodificador de vídeo inclui uma parte de decodificação paralela por entropia configurada para decodificar por entropia o fluxo dos blocos contidos nas linhas de blocos, sendo que o fluxo dos blocos em cada uma das linhas de blocos é decodificado por entropia em paralelo com o fluxo dos blocos em uma correspondente dentre as linhas de blocos, sendo que cada uma das linhas de blocos indica uma matriz dos blocos; uma parte de previsão paralela de QP configurada para computar valores de previsão de parâmetros de quantização dos blocos contidos nas linhas de blocos, sendo que os valores de previsão dos blocos em cada uma das linhas de blocos são computados em paralelo com os valores de previsão dos blocos em uma correspondente dentre as linhas de blocos; e uma parte de processamento de decodificação em paralelo configurada para gerar pixels decodificados com relação aos blocos contidos nas linhas de blocos, sendo que os pixels decodificados com relação aos blocos em cada uma das linhas de blocos são gerados em paralelo com os pixels decodificados com relação aos blocos em uma correspondente dentre as linhas de blocos, sendo que cada um dos pixels decodificados é decodificado mediante a utilização de dados decodificados pela parte de decodifica- ção paralela por entropia e o valor de previsão computado pela parte de previsão paralela de QP. No decodificador de vídeo, quando a parte de previsão paralela de QP desempenha o processamento de computação de valor de previsão em paralelo por unidade de N linhas de blocos onde o N é um valor de dois ou maior, a parte de previsão paralela de QP desempenha o processamento de computação de valor de previsão em um bloco de processamento em uma (K-1)ésima linha de bloco, o que precede um bloco de processamento em uma Késima linha de bloco por pelo menos um bloco em uma posição horizontal, de forma a computar o valor de previsão do bloco de processamento na (K-1)ésima linha de bloco pela referência a um bloco que já tenha sido processado na Késima linha de bloco correspondente ao bloco de pro-cessamento na (K-1)ésima linha de bloco no processamento paralelo.[00043] According to an aspect of the embodiments, a video decoder is provided for decoding an encoded stream with a video encoding system, in which the encoded stream is obtained by encoding a picture of a plurality of divided blocks. The video decoder includes an entropy parallel decoding part configured to entropy decode the stream of blocks contained in the rows of blocks, whereby the stream of blocks in each of the rows of blocks is entropy decoded in parallel with the stream of blocks. blocks in a corresponding one of the rows of blocks, each of the rows of blocks indicating a matrix of the blocks; a parallel prediction part of QP configured to compute prediction values of quantization parameters of the blocks contained in the rows of blocks, whereby the prediction values of the blocks in each of the rows of blocks are computed in parallel with the prediction values of the blocks in a corresponding one of the rows of blocks; and a parallel decoding processing part configured to generate decoded pixels with respect to blocks contained in the rows of blocks, wherein the decoded pixels with respect to blocks in each of the rows of blocks are generated in parallel with the decoded pixels with respect to to the blocks in a corresponding one of the rows of blocks, each of the decoded pixels being decoded using data decoded by the entropy parallel decoding part and the prediction value computed by the QP parallel prediction part. In the video decoder, when the parallel prediction part of QP performs computation processing of prediction value in parallel per unit of N lines of blocks where N is a value of two or greater, the parallel prediction part of QP performs the prediction value computing processing in a processing block in a (K-1)th block line, which precedes a processing block in a Kth block line by at least one block in a horizontal position, so to compute the prediction value of the processing block in the (K-1)th block line by referring to a block that has already been processed in the Kth block line corresponding to the processing block in the (K-1)th line block in parallel processing.
[00044] O objeto e as vantagens na invenção serão realizados e conseguidos por meio de elementos e combinações particularmente apontados nas concretizações anexas.[00044] The object and advantages in the invention will be realized and achieved through elements and combinations particularly pointed out in the attached embodiments.
[00045] Deve ser compreendido que tanto a descrição anterior geral como a descrição detalhada a seguir são exemplificativas e explanató- rias, e não são restritivas da invenção.[00045] It should be understood that both the foregoing general description and the following detailed description are exemplary and explanatory, and are not restrictive of the invention.
[00046] Objetos e vantagens adicionais das modalidades serão estabelecidos em parte na descrição que segue, e em parte serão óbvios a partir da descrição ou poderão ser aprendidos pela prática da invenção.[00046] Additional objects and advantages of embodiments will be set forth in part in the description that follows, and in part will be obvious from the description or may be learned by practice of the invention.
[00047] A Figura 1 é um diagrama que ilustra um exemplo de processamento paralelo de linha de bloco;[00047] Figure 1 is a diagram illustrating an example of block line parallel processing;
[00048] a Figura 2 é um diagrama que ilustra um exemplo de processamento paralelo de linha de bloco de uma parte de processamento por entropia de acordo com HEVC;[00048] Figure 2 is a diagram illustrating an example of block line parallel processing of an entropy processing part according to HEVC;
[00049] a Figura 3A é um diagrama de blocos que ilustra uma configuração esquemática de um codificador da técnica relacionada ao desempenhar o processamento paralelo de linha de bloco;[00049] Figure 3A is a block diagram illustrating a schematic configuration of an encoder of the related art performing block line parallel processing;
[00050] a Figura 3B é um diagrama de blocos que ilustra uma configuração esquemática de um codificador da técnica relacionada ao desempenhar o processamento paralelo de linha de bloco;[00050] Figure 3B is a block diagram illustrating a schematic configuration of an encoder of the art related to performing block-line parallel processing;
[00051] a Figura 4A é um diagrama que ilustra um exemplo de processamento paralelo de linha de bloco em processamento de previsão de QP;[00051] Figure 4A is a diagram illustrating an example of block line parallel processing in QP prediction processing;
[00052] a Figura 4B é um diagrama que ilustra outro exemplo de processamento paralelo de linha de bloco no processamento de previsão de QP;[00052] Figure 4B is a diagram illustrating another example of block line parallel processing in QP prediction processing;
[00053] a Figura 4C é um diagrama que ilustra ainda outro exemplo de processamento paralelo de linha de bloco no processamento de previsão de QP;[00053] Figure 4C is a diagram illustrating yet another example of block line parallel processing in QP prediction processing;
[00054] a Figura 5 é um diagrama de blocos que ilustra um exemplo de configuração de um decodificador de vídeo de acordo com uma primeira modalidade;[00054] Figure 5 is a block diagram illustrating an example of a video decoder configuration according to a first embodiment;
[00055] a Figura 6 é um diagrama de blocos que ilustra exemplos de configuração de componentes respectivos de uma parte de decodi- ficação paralela do decodificador de vídeo de acordo com a primeira modalidade;[00055] Figure 6 is a block diagram illustrating configuration examples of respective components of a parallel decoding part of the video decoder according to the first embodiment;
[00056] a Figura 7 é um diagrama de blocos que ilustra um exemplo de configuração de uma parte de processamento de decodificação do decodificador de vídeo de acordo com a primeira modalidade;[00056] Figure 7 is a block diagram illustrating an example of configuring a decoding processing part of the video decoder according to the first embodiment;
[00057] a Figura 8 é um diagrama de blocos que ilustra um exemplo de blocos disponíveis em processamento em paralelo de previsão de QP em um caso no qual N = 3;[00057] Figure 8 is a block diagram illustrating an example of blocks available in parallel processing of QP prediction in a case where N = 3;
[00058] a Figura 9 é um diagrama de blocos que ilustra um exemplo de configuração de uma parte de previsão de QP do decodificador de vídeo de acordo com a primeira modalidade;[00058] Figure 9 is a block diagram illustrating an example of configuring a QP prediction part of the video decoder according to the first embodiment;
[00059] a Figura 10A é um diagrama que ilustra um exemplo de processamento de previsão de QP no decodificador de vídeo de acordo com a primeira modalidade;[00059] Fig. 10A is a diagram illustrating an example of QP prediction processing in the video decoder according to the first embodiment;
[00060] a Figura 10B é um diagrama que ilustra outro exemplo do processamento de previsão de QP no decodificador de vídeo de acordo com a primeira modalidade;[00060] Figure 10B is a diagram illustrating another example of QP prediction processing in the video decoder according to the first embodiment;
[00061] a Figura 11 é um fluxograma que ilustra um exemplo de processamento de decodificação de bloco no decodificador de vídeo de acordo com a primeira modalidade;[00061] Figure 11 is a flowchart illustrating an example of block decoding processing in the video decoder according to the first embodiment;
[00062] a Figura 12 é um diagrama de blocos que ilustra um exemplo de configuração de um codificador de vídeo de acordo com uma segunda modalidade;[00062] Figure 12 is a block diagram illustrating an example of a video encoder configuration according to a second embodiment;
[00063] a Figura 13 é um diagrama de blocos que ilustra exemplos de configuração de componentes respectivos de uma parte de codificação paralela no codificador de vídeo de acordo com a segunda mo- dalidade;[00063] Figure 13 is a block diagram illustrating configuration examples of respective components of a parallel coding part in the video encoder according to the second embodiment;
[00064] a Figura 14 é um diagrama de blocos que ilustra um exemplo de configuração de uma parte de processamento de codificação do codificador de vídeo de acordo com a segunda modalidade;[00064] Figure 14 is a block diagram illustrating an example of configuring a coding processing part of the video encoder according to the second embodiment;
[00065] a Figura 15 é um diagrama de blocos que ilustra um exemplo de configuração de uma parte de previsão de QP do codificador de vídeo de acordo com a segunda modalidade;[00065] Figure 15 is a block diagram illustrating an example of configuring a QP prediction part of the video encoder according to the second embodiment;
[00066] a Figura 16 é um fluxograma que ilustra um exemplo de processamento de codificação de bloco no codificador de vídeo de acordo com a segunda modalidade; e[00066] Figure 16 is a flowchart illustrating an example of block encoding processing in the video encoder according to the second embodiment; It is
[00067] a Figura 17 é um diagrama de blocos que ilustra um exemplo de configuração de um dispositivo de processamento de vídeo de acordo com uma terceira modalidade.[00067] Figure 17 is a block diagram illustrating an example configuration of a video processing device according to a third embodiment.
[00068] A seguir, modalidades preferenciais serão descritas com referência aos desenhos anexos. Note que uma imagem (gravura) contida em um vídeo pode ser tanto um quadro como um campo. O quadro é um de imagens estacionárias de dados de vídeo, e o campo é uma imagem estacionária obtida ao adquirir dados de linhas de número ímpar ou linhas de número par a partir do quadro.[00068] In the following, preferred embodiments will be described with reference to the attached drawings. Note that an image (recording) contained in a video can be both a frame and a field. The frame is one of still images of video data, and the field is a still image obtained by acquiring data from odd-numbered lines or even-numbered lines from the frame.
[00069] Ademais, o vídeo submetido ao processamento pode ser um vídeo a cores ou monocromático.[00069] Furthermore, the video subjected to processing can be a color or monochrome video.
[00070] A Figura 5 é um diagrama de blocos que ilustra um exemplo de configuração de um decodificador de vídeo de acordo com uma primeira modalidade. No exemplo ilustrado na Figura 5, um decodifi- cador de vídeo 10 inclui uma parte de decodificação paralela 101 e uma parte de armazenamento de pixel decodificado 105. A parte de decodificação paralela 101 inclui uma parte de decodificação paralela por entropia 102, uma parte de previsão paralela de QP 103 e uma parte de processamento de decodificação em paralelo 104.[00070] Figure 5 is a block diagram illustrating an example of a video decoder configuration according to a first embodiment. In the example illustrated in Figure 5, a video decoder 10 includes a parallel decoding part 101 and a decoded pixel storage part 105. The parallel decoding part 101 includes an entropy parallel decoding part 102, a parallel prediction of QP 103 and a parallel decoding processing part 104.
[00071] Note que o decodificador de vídeo 10 é configurado para processar N linhas de blocos em paralelo. Note também que as "linhas de blocos" indicam matrizes de blocos em uma direção horizontal dentro de uma imagem.[00071] Note that video decoder 10 is configured to process N lines of blocks in parallel. Note also that the "rows of blocks" indicate arrays of blocks in a horizontal direction within an image.
[00072] Os componentes respectivos da parte de decodificação paralela 101 são configurados para desempenhar o processamento em um bloco idêntico para cada uma das linhas de blocos. Ademais, uma posição horizontal de um bloco de processamento na (K-1)ésima linha de bloco é configurada para preceder uma posição horizontal de um bloco de processamento na Késima linha de bloco por dois ou mais blocos.[00072] The respective components of the parallel decoding part 101 are configured to perform processing in an identical block for each of the rows of blocks. Furthermore, a horizontal position of a processing block in the (K-1)th block line is configured to precede a horizontal position of a processing block in the Tenth block line by two or more blocks.
[00073] Isso pode ser devido ao fato de que as informações decodificadas no bloco superior e no bloco superior direito ao bloco de processamento podem estar disponíveis (accessíveis) ao alterar dois ou mais blocos entre as linhas de blocos, mesmo quando as linhas de blocos são decodificadas em paralelo. Quando somente as informações decodificadas do bloco superior são acessadas (utilizadas), a quantidade de alteração da posição horizontal entre as linhas de blocos pode ser um bloco. A seguir, o "bloco superior" indica um bloco acima do bloco de processamento e o "bloco superior à direita" indica um bloco imediatamente ao lado direito do bloco acima do bloco de processamento.[00073] This may be due to the fact that information decoded in the upper block and upper right block of the processing block may be available (accessible) when changing two or more blocks between rows of blocks, even when rows of blocks are decoded in parallel. When only the top block's decoded information is accessed (used), the amount of horizontal position change between rows of blocks can be one block. In the following, "upper block" indicates a block above the processing block and "top right block" indicates a block immediately to the right of the block above the processing block.
[00074] A parte de decodificação paralela 101 é configurada para decodificar um fluxo codificado obtido através da codificação de uma imagem dividida em blocos plurais de utilizar um sistema de codificação de vídeo. A parte de decodificação paralela 101 pode decodificar o fluxo codificado, por exemplo, a cada unidade de N linhas de blocos em paralelo. Cada um dos pixels decodificados a cada bloco em cada uma das linhas de blocos é emitido à parte de armazenamento de pixel decodificado 105. Os pixels que são decodificados são chamados de "pixels decodificados".[00074] The parallel decoding part 101 is configured to decode an encoded stream obtained by encoding a picture divided into plural blocks using a video encoding system. The parallel decoding part 101 can decode the encoded stream, for example, every unit of N lines of blocks in parallel. Each of the decoded pixels of each block in each of the rows of blocks is sent to the decoded pixel storage part 105. The pixels that are decoded are called "decoded pixels".
[00075] A parte de decodificação paralela por entropia 102 é configurada para dividir um fluxo de entrada nas linhas de blocos, e decodificar por entropia os blocos do fluxo contido nas linhas de blocos em paralelo. A parte de decodificação paralela por entropia 102 emite os dados decodificados por entropia à parte de processamento de decodi- ficação em paralelo 104.[00075] The entropy parallel decoding part 102 is configured to divide an input stream into the rows of blocks, and entropy decode the blocks of the stream contained in the rows of blocks in parallel. The entropy parallel decoding part 102 outputs the entropy decoded data to the parallel decoding processing part 104.
[00076] A parte de previsão paralela de QP 103 é configurada para computar o valor de previsão (valor de previsão QP) do parâmetro de quantização (QP) de cada um dos blocos contidos na correspondente dentre as linhas de blocos enquanto desempenha o processamento de computação nos blocos contidos nas linhas de blocos em paralelo. OS valores QP de previsão computados são emitidos à parte de processamento de decodificação em paralelo 104.[00076] The parallel prediction part of QP 103 is configured to compute the prediction value (QP prediction value) of the quantization parameter (QP) of each of the blocks contained in the corresponding one of the rows of blocks while performing the processing of computation on the blocks contained in the rows of parallel blocks. The computed prediction QP values are output to the parallel decoding processing part 104.
[00077] A parte de processamento de decodificação em paralelo 104 é configurada para gerar o pixel decodificado correspondente a cada um dos blocos contidos na correspondente dentre as linhas de blocos enquanto gera os pixels decodificados das linhas de blocos respectivas em paralelo. Cada um dos pixels decodificados é decodificado mediante a utilização de dados decodificados pela parte de de- codificação paralela por entropia 102 e o valor de previsão QP computado pela parte de previsão paralela de QP 103. Os pixels decodificados gerados são emitidos à parte de armazenamento de pixel decodificado 105.[00077] The parallel decoding processing part 104 is configured to generate the decoded pixel corresponding to each of the blocks contained in the corresponding one of the rows of blocks while generating the decoded pixels of the respective rows of blocks in parallel. Each of the decoded pixels is decoded using data decoded by the entropy parallel decoding part 102 and the prediction value QP computed by the QP parallel prediction part 103. The generated decoded pixels are output to the decoded pixel storage part 103. decoded pixel 105.
[00078] A parte de armazenamento de pixel decodificado 105 é configurada para armazenar os pixels decodificados dos blocos emitidos a partir da parte de decodificação paralela 101. Os pixels decodificados agregados a cada unidade de imagem podem formar uma ima- gem (uma gravura). A parte de armazenamento de pixel decodificado 105 armazena a imagem decodificada emitida quando o processamento de decodificação para uma gravura se completa.[00078] The decoded pixel storage part 105 is configured to store the decoded pixels of the blocks output from the parallel decoding part 101. The decoded pixels aggregated to each picture unit can form an image (a picture). The decoded pixel storage part 105 stores the decoded image output when the decoding processing for a picture completes.
[00079] A seguir, a parte de decodificação paralela 101 é descrita. A Figura 6 é um diagrama de blocos que ilustra exemplos de configuração de componentes respectivos da parte de decodificação paralela 101 no decodificador de vídeo de acordo com a primeira modalidade. No exemplo ilustrado na Figura 6, a parte de decodificação paralela por entropia 102 inclui uma primeira parte de decodificação por entropia 221, uma segunda parte de decodificação por entropia 222 e uma parte de decodificação por entropia de número N 223.[00079] Next, the parallel decoding part 101 is described. Fig. 6 is a block diagram illustrating configuration examples of respective components of the parallel decoding part 101 in the video decoder according to the first embodiment. In the example illustrated in Fig. 6 , the parallel entropy decoding part 102 includes a first entropy decoding part 221, a second entropy decoding part 222, and an entropy decoding part of N number 223.
[00080] No exemplo ilustrado na Figura 6, a parte de previsão paralela de QP 103 inclui uma primeira parte de previsão de QP 231, uma segunda parte de previsão de QP 232 e uma parte de previsão de QP de número N 233. No exemplo ilustrado na Figura 6, a parte de processamento de decodificação em paralelo 104 inclui uma primeira parte de processamento de decodificação 241, uma segunda parte de processamento de decodificação 242, uma parte de processamento de decodificação de número N 243 e uma parte de armazenamento de informações de bloco 244.[00080] In the example illustrated in Figure 6, the parallel forecast part of QP 103 includes a first forecast part of QP 231, a second forecast part of QP 232 and a forecast part of QP number N 233. In the example Illustrated in Fig. 6, the parallel decoding processing part 104 includes a first decoding processing part 241, a second decoding processing part 242, an N-number decoding processing part 243, and an information storage part. of block 244.
[00081] Note que quando L = 1 para N, a parte de decodificação por entropia de número L, a parte de previsão de QP de número L e a parte de decodificação de número L são configuradas para desempenhar o processamento na uma e mesma dentre as linhas de blocos. Na descrição a seguir, a parte de decodificação por entropia de número L, a parte de previsão de QP de número L e a parte de decodificação de número L são chamadas genericamente de "parte de processamento de decodificação de linha de bloco". Por exemplo, uma parte de processamento de decodificação de linha de bloco 201 inclui uma primei- ra parte de decodificação por entropia 221, uma primeira parte de previsão de QP 231 e uma primeira parte de processamento de decodifi- cação 241.[00081] Note that when L = 1 for N, the L-number entropy decoding part, the L-number QP prediction part, and the L-number decoding part are configured to perform processing in one and the same of the rows of blocks. In the following description, the L-number entropy decoding part, the L-number QP prediction part, and the L-number decoding part are generically called "block line decoding processing part". For example, a block line decoding processing part 201 includes a first entropy decoding part 221, a first QP prediction part 231 and a first decoding processing part 241.
[00082] Quando a parte de processamento de decodificação de linha de bloco 201 tiver processado a Késima linha de bloco, a parte de processamento de decodificação de linha de bloco 201 subsequentemente processa a linha de bloco de número (K + N).[00082] When the block line decoding processing part 201 has processed the 10th block line, the block line decoding processing part 201 subsequently processes the block line number (K+N).
[00083] A parte de decodificação paralela por entropia 102 é configurada para dividir o fluxo de entrada em linhas de blocos. As partes de decodificação por entropia 221 a 223 decodificam por entropia as linhas de blocos divididas a partir do fluxo em paralelo por unidades de N linhas de blocos. As partes de decodificação por entropia 221 a 223 são configuradas para desempenhar o processamento de decodifica- ção por entropia correspondente ao processamento de codificação por entropia em um codificador de vídeo.[00083] The entropy parallel decoding part 102 is configured to divide the input stream into rows of blocks. The entropy decoding parts 221 to 223 entropy decode the block lines divided from the parallel stream by units of N block lines. Entropy decoding parts 221 to 223 are configured to perform entropy decoding processing corresponding to entropy encoding processing in a video encoder.
[00084] As partes de processamento de decodificação 241 a 243 são configuradas para desempenhar processamento de decodificação em paralelo. A Figura 7 é um diagrama de blocos que ilustra um exemplo da parte de processamento de decodificação no decodifica- dor de vídeo de acordo com a primeira modalidade. Dado que as partes de processamento de decodificação 241 a 243 são configuradas para desempenhar um processamento similar, a parte de processamento de decodificação 241 é usada como um exemplo das partes de processamento de decodificação na descrição a seguir.[00084] The decoding processing parts 241 to 243 are configured to perform decoding processing in parallel. Fig. 7 is a block diagram illustrating an example of the decoding processing part in the video decoder according to the first embodiment. Since the decoding processing parts 241 to 243 are configured to perform similar processing, the decoding processing part 241 is used as an example of the decoding processing parts in the following description.
[00085] A primeira parte de processamento de decodificação 241 inclui uma parte de recuperação de valor QP 301, uma parte de quan- tização inversa 302, uma parte de transformação ortogonal inversa 303, uma parte de recuperação de vetor de movimento 304, uma parte de geração de pixel de previsão 305 e uma parte de geração de pixel decodificado 306.[00085] The first decoding processing part 241 includes a QP value recovery part 301, an inverse quantization part 302, an inverse orthogonal transformation part 303, a motion vector recovery part 304, a a prediction pixel generation part 305 and a decoded pixel generation part 306.
[00086] A parte de recuperação de valor QP 301 é configurada para recuperar o valor QP que utiliza uma entrada de valor de previsão QP a partir da primeira parte de previsão de QP 231 descrita mais tarde, e uma entrada de valor diferencial QP a partir da primeira parte de de- codificação por entropia 221 (por exemplo, veja a fórmula previamente mencionada (2)). O valor QP recuperado é emitido à parte de quanti- zação inversa 302.[00086] The QP value retrieval part 301 is configured to retrieve the QP value using a QP prediction value input from the first QP prediction part 231 described later, and a QP differential value input from of the first entropy decoding part 221 (for example, see previously mentioned formula (2)). The retrieved QP value is output to inverse quantization part 302.
[00087] A parte de quantização inversa 302 é configurada para desempenhar a quantização inversa ao multiplicar o valor QP recuperado por um coeficiente de transformação ortogonal. O coeficiente de transformação ortogonal inversamente quantizado é emitido à parte de transformação ortogonal inversa 303.[00087] The inverse quantization part 302 is configured to perform inverse quantization by multiplying the retrieved QP value by an orthogonal transformation coefficient. The inversely quantized orthogonal transform coefficient is output to the inverse orthogonal transform part 303.
[00088] A parte de transformação ortogonal inversa 303 é configurada para desempenhar a transformação ortogonal inversa na entrada de coeficiente de transformação ortogonal, a partir da parte de quanti- zação inversa 302, para gerar um pixel de previsão de erro. O pixel de previsão de erro gerado é emitido à parte de geração de pixel decodificado 306.[00088] The inverse orthogonal transformation part 303 is configured to perform inverse orthogonal transformation on the orthogonal transformation coefficient input from the inverse quantization part 302 to generate an error prediction pixel. The generated error prediction pixel is sent to the decoded pixel generation part 306.
[00089] A parte de recuperação de vetor de movimento 304 é configurada para adquirir, a partir da parte de armazenamento de informações de bloco 244, informações de vetor de movimento sobre um bloco periférico para o bloco de processamento para computar um vetor de previsão. A parte de recuperação de vetor de movimento 304 é configurada para adicionar o vetor de previsão e a entrada de vetor diferencial da primeira parte de decodificação por entropia 221 para recuperar o vetor de movimento. O vetor de movimento recuperado é emitido à parte de geração de pixel de previsão 305.[00089] The motion vector recovery part 304 is configured to acquire, from the block information storage part 244, motion vector information about an peripheral block for the processing block to compute a prediction vector. The motion vector recovery part 304 is configured to add the prediction vector and the differential vector input of the first entropy decoding part 221 to recover the motion vector. The retrieved motion vector is output to the prediction pixel generation part 305.
[00090] A parte de geração de pixel de previsão 305 é configurada para adquirir dados de pixel de uma gravura de referência indicada pelo vetor de movimento, a partir da parte de armazenamento de pixel decodificado 105 que armazena gravuras decodificadas previamente, para gerar um pixel de previsão. O pixel de previsão gerado é emitido à parte de geração de pixel decodificado 306.[00090] The prediction pixel generation part 305 is configured to acquire pixel data of a reference picture indicated by the motion vector, from the decoded pixel storage part 105 that stores previously decoded pictures, to generate a pixel of forecast. The generated prediction pixel is sent to the decoded pixel generation part 306.
[00091] A parte de geração de pixel decodificado 306 é configurada para adicionar a entrada de pixel de previsão a partir da parte de geração de pixel de previsão 305 e a entrada de pixel de previsão de erro a partir da parte de transformação ortogonal inversa 303 para gerar um pixel decodificado. O pixel decodificado gerado é armazenado na parte de armazenamento de pixel decodificado 105.[00091] The decoded pixel generation part 306 is configured to add the prediction pixel input from the prediction pixel generation part 305 and the error prediction pixel input from the inverse orthogonal transformation part 303 to generate a decoded pixel. The generated decoded pixel is stored in the decoded pixel storage part 105.
[00092] A seguir, o processamento desempenhado por cada uma das partes de previsão de QP é descrito. Inicialmente, os blocos disponíveis (acessíveis) utilizados no processamento de previsão desempenhado por cada uma das partes de processamento de QP são descritos. A Figura 8 é um diagrama de blocos que ilustra um exemplo de blocos disponíveis utilizados em processamento em paralelo de previsão de QP em um caso no qual N = 3. No exemplo ilustrado na Figura 8, quando N = 3 indica N linhas de blocos, o processamento de previsão de QP é desempenhado em N linhas de blocos em paralelo enquanto o processamento é atrasado em dois blocos em cada uma das N linhas de blocos.[00092] Next, the processing performed by each of the QP prediction parts is described. Initially, the available (accessible) blocks used in the prediction processing performed by each of the QP processing parts are described. Figure 8 is a block diagram illustrating an example of available blocks used in parallel processing of QP prediction in a case where N = 3. In the example illustrated in Figure 8, when N = 3 indicates N rows of blocks, QP prediction processing is performed on N rows of blocks in parallel while processing is delayed by two blocks on each of the N rows of blocks.
[00093] Nesse caso, os blocos disponíveis correspondentes ao bloco de processamento X são blocos sombreados ilustrados na Figura 8. Os blocos sombreados na Figura 8 indicam blocos já processados quando o bloco de processamento X é submetido ao processamento; isto é, os blocos sombreados na Figura 8 indicam os blocos disponíveis (acessíveis). Na Figura 8, o bloco indicado por um quadro espesso retrata um bloco submetido ao processamento (abaixo, no presente documento, também chamado de "bloco de processamento"). Cada uma das partes de previsão de QP é configurada para computar o valor de previsão QP do bloco de processamento pela referência aos blocos disponíveis (blocos já processados). A seguir, a computação do valor de previsão QP é descrita em maiores detalhes.[00093] In this case, the available blocks corresponding to processing block X are shaded blocks illustrated in Figure 8. The shaded blocks in Figure 8 indicate blocks already processed when processing block X is submitted to processing; that is, the shaded blocks in Figure 8 indicate available (accessible) blocks. In Figure 8, the block indicated by a thick frame depicts a block undergoing processing (hereinafter also called a "processing block"). Each of the QP prediction parts is configured to compute the processing block's QP prediction value by reference to available blocks (already processed blocks). Next, the computation of the QP prediction value is described in more detail.
[00094] A Figura 9 é um diagrama de blocos que ilustra um exemplo de configuração da parte de previsão de QP no decodificador de vídeo de acordo com a primeira modalidade. Dado que as partes de previsão de QP 231 a 233 são configuradas para desempenhar um processamento similar, a primeira parte de previsão de QP 231 é usada como um exemplo das partes de previsão de QP na descrição a seguir.[00094] Figure 9 is a block diagram illustrating an example of configuring the QP prediction part in the video decoder according to the first embodiment. Since the QP prediction parts 231 to 233 are configured to perform similar processing, the first QP prediction part 231 is used as an example of the QP prediction parts in the following description.
[00095] Na Figura 9, a primeira parte de previsão de QP 231 inclui uma parte de armazenamento de QP 401 imediatamente precedente, uma parte de seleção de QP 402 e uma parte de aquisição de QP superior 403.[00095] In Figure 9 , the first QP prediction part 231 includes an immediately preceding QP storage part 401, a QP selection part 402 and an upper QP acquisition part 403.
[00096] A parte de armazenamento de QP 401 imediatamente precedente é configurada para receber, a partir da parte de recuperação de valor QP 301, o valor QP do bloco que tiver sido processado imediatamente antes do bloco de processamento atual, e para armazenar o valor QP recebido. O valor QP armazenado pela parte de armazenamento de QP imediatamente precedente 401 é inicializado ao mesmo tempo do começo do processamento da gravura.[00096] The immediately preceding QP storage part 401 is configured to receive, from the QP value recovery part 301, the QP value of the block that has been processed immediately before the current processing block, and to store the value QP received. The QP value stored by the immediately preceding QP storage part 401 is initialized at the same time as the start of engraving processing.
[00097] Por exemplo, o valor QP armazenado pela parte de armazenamento de QP imediatamente precedente 401 é inicializado com um valor de Fatia de QP codificado com informações de cabeçalho de Fatia de uma maneira similar ao H. 264. A Fatia é uma unidade de grupos divididos de blocos associados a uma gravura.[00097] For example, the QP value stored by the immediately preceding QP storage part 401 is initialized with a Slice value of QP encoded with Slice header information in a similar manner to H.264. divided groups of blocks associated with an engraving.
[00098] A parte de aquisição de QP superior 403 pode, por exemplo, adquirir um valor QP de um bloco localizado acima do bloco de processamento a partir da parte de armazenamento de informações de bloco 244.[00098] The upper QP acquisition part 403 can, for example, acquire a QP value of a block located above the processing block from the block information storage part 244.
[00099] A parte de seleção de QP 402 é configurada para selecio- nar um dos valores QP emitidos a partir da parte de armazenamento de QP imediatamente precedente 401 e da parte de aquisição de QP superior 403, para emitir o valor QP selecionado como o valor de previsão QP para a parte de recuperação de valor QP 301.[00099] The QP selection part 402 is configured to select one of the QP values output from the immediately preceding QP storage part 401 and the upper QP acquisition part 403, to output the selected QP value as the QP forecast value for QP value recovery part 301.
[000100] Por exemplo, quando o bloco de processamento é um primeiro (uma cabeça) dos blocos em uma linha de bloco, a parte de seleção de QP 402 seleciona o valor QP emitido a partir da parte de aquisição de QP superior 403, ao passo que quando o bloco de processamento é qualquer um dos blocos que não o primeiro bloco na linha de bloco, a parte de seleção de QP 402 seleciona o valor QP emitido a partir da parte de armazenamento de QP imediatamente precedente 401. A parte de seleção de QP 402 emite o valor QP selecionado como o valor de previsão QP à parte de recuperação de valor QP 301.[000100] For example, when the processing block is a first (a head) of the blocks in a block line, the QP selection part 402 selects the QP value output from the upper QP acquisition part 403, while whereas when the processing block is any one of the blocks other than the first block in the block line, the QP selection part 402 selects the QP value output from the immediately preceding QP storage part 401. The selection part of QP 402 outputs the selected QP value as the QP prediction value to the QP value retrieval part 301.
[000101] A seguir, a previsão (seleção) do valor QP no exemplo acima é descrita com referência aos desenhos correspondentes. A Figura 10A é um diagrama que ilustra um exemplo de processamento de previsão de QP no decodificador de vídeo de acordo com a primeira modalidade. No exemplo ilustrado na Figura 10A, quando o bloco de processamento X representa um bloco submetido ao processamento, e o bloco de processamento X é um primeiro (uma cabeça) dentre os blocos na linha de bloco, a parte de seleção de QP 402 seleciona um valor QP de um bloco superior A.[000101] In the following, the prediction (selection) of the QP value in the example above is described with reference to the corresponding drawings. Fig. 10A is a diagram illustrating an example of QP prediction processing in the video decoder according to the first embodiment. In the example illustrated in Fig. 10A, when the processing block X represents a block undergoing processing, and the processing block X is a first (a head) among the blocks in the block line, the selection part of QP 402 selects a QP value of an upper block A.
[000102] A Figura 10B é um diagrama que ilustra outro exemplo de processamento de previsão de QP no decodificador de vídeo de acordo com a primeira modalidade. Conforme ilustrado na Figura 10B, quando o bloco de processamento X é um dos blocos que não o primeiro bloco na linha de bloco, a parte de seleção de QP 402 seleciona um valor QP de um bloco B que tenha sido processado imediatamente antes do bloco de processamento X.[000102] Figure 10B is a diagram illustrating another example of QP prediction processing in the video decoder according to the first embodiment. As illustrated in Fig. 10B, when the processing block X is one of the blocks other than the first block in the block line, the QP selection part 402 selects a QP value from a block B that has been processed immediately before the block of X processing.
[000103] Note que o valor QP do bloco próximo ao bloco de processamento X é utilizado como o valor de previsão QP, nesse caso. Consequentemente, a eficiência de previsão do valor QP diminui marginalmente em comparação com um caso no qual o valor QP do bloco que foi processado imediatamente antes do bloco de processamento X é selecionado (utilizado) na ordem de mapa de bits.[000103] Note that the QP value of the block next to the X processing block is used as the QP prediction value in this case. Consequently, the QP value prediction efficiency decreases marginally compared to a case in which the QP value of the block that was processed immediately before the X processing block is selected (used) in the bitmap order.
[000104] No exemplo acima, o valor de previsão QP é gerado através da utilização do valor QP do bloco que foi processado imediatamente antes do bloco de processamento X, quando o bloco de processamento não é o primeiro bloco. Entretanto, o valor QP pode ser gerado por outros métodos quando o valor QP é previsto a partir de um bloco adjacente ao bloco de processamento.[000104] In the example above, the QP prediction value is generated by using the QP value of the block that was processed immediately before the processing block X, when the processing block is not the first block. However, the QP value can be generated by other methods when the QP value is predicted from a block adjacent to the processing block.
[000105] Ademais, o processamento da parte de seleção de QP 402 pode ser conforme segue. Quando a linha de bloco submetida ao processamento é uma segunda linha de bloco à linha de bloco de número N, os valores QP armazenados pela parte de armazenamento de QP imediatamente precedente 401 são os valores de Fatia de QP, sendo que cada um dos quais é determinado por uma unidade de Fatia. Consequentemente, a eficiência de previsão pode ser relativamente baixa quando o valor de Fatia de QP é aplicado como o valor de previsão QP de cada um dos blocos.[000105] Furthermore, the processing of the selection part of QP 402 can be as follows. When the block line subjected to processing is a block line second to block line number N, the QP values stored by the immediately preceding QP storage part 401 are the QP Slice values, each of which is determined by a Slice unit. Consequently, the prediction efficiency can be relatively low when the QP Slice value is applied as the QP prediction value of each of the blocks.
[000106] Assim, quando o bloco de processamento é o primeiro dos blocos na segunda linha de bloco à linha de bloco de número N, a parte de seleção de QP 402 pode selecionar o valor QP adquirido pela parte de aquisição de QP superior 403, ao passo que quando o bloco de processamento é qualquer um dos blocos fora o primeiro bloco na segunda linha de bloco à linha de bloco de número N, a parte de seleção de QP 402 pode selecionar o valor QP retido pela parte de armazenamento de QP imediatamente precedente 401.[000106] Thus, when the processing block is the first of the blocks in the second block line to block line number N, the QP selection part 402 can select the QP value acquired by the upper QP acquisition part 403, whereas when the processing block is any one of the blocks outside the first block in the second block line to block line number N, the QP selection part 402 can select the QP value retained by the QP storage part immediately precedent 401.
[000107] Ademais, quando o bloco de processamento é um primeiro dos blocos em uma linha de bloco subsequente à linha de bloco de número (N + 1), a parte de seleção de QP 402 pode selecionar o valor QP retido pela parte de armazenamento de QP imediatamente precedente 401. Nesse caso, o valor QP retido pela parte de armazenamento de QP imediatamente precedente 401 corresponde ao valor QP do último dos blocos (o último bloco) na linha de bloco localizada N blocos acima do bloco de processamento.[000107] Furthermore, when the processing block is a first of the blocks in a block line subsequent to the block line number (N+1), the QP selection part 402 can select the QP value retained by the storage part of immediately preceding QP 401. In this case, the QP value held by the immediately preceding QP storage part 401 corresponds to the QP value of the last of the blocks (the last block) in the block line located N blocks above the processing block.
[000108] A Késima linha de bloco e a linha de bloco de número (K + N) são processadas pela parte de processamento de decodificação idêntica, pela parte de previsão de QP idêntica e pela parte de decodi- ficação por entropia idêntica. Portanto, o bloco que foi processado imediatamente antes do bloco de processamento na Késima linha de bloco corresponde ao último bloco da linha de bloco de número (K - N).[000108] The 10th block line and the number block line (K+N) are processed by the identical decoding processing part, identical QP prediction part, and identical entropy decoding part. Therefore, the block that was processed immediately before the processing block in the 10th block line corresponds to the last block of the number block line (K - N).
[000109] Ademais, quando o bloco de processamento é o primeiro dos blocos na linha de bloco, a parte de seleção de QP 402 pode ser configurada para selecionar constantemente o valor QP armazenado na parte de armazenamento de QP imediatamente precedente 401. Ademais, quando o bloco de processamento é o primeiro dos blocos em uma dentre a primeira linha de bloco à linha de bloco de número N, a parte de seleção de QP 402 pode ser configurada para selecionar o valor de Fatia de QP como o valor de previsão QP.[000109] Furthermore, when the processing block is the first of the blocks in the block line, the QP selection part 402 can be configured to constantly select the QP value stored in the immediately preceding QP storage part 401. Furthermore, when the processing block is the first of the blocks in one of the first block line to block line number N, the QP selection part 402 can be configured to select the QP Slice value as the QP prediction value.
[000110] Nesse caso, o valor QP do último dos blocos (o último bloco) na linha de bloco localizada N blocos acima do bloco de processamento pode ser selecionado como o valor de previsão QP do primeiro bloco na linha de bloco de número (N + 1).[000110] In this case, the QP value of the last of the blocks (the last block) in the block line located N blocks above the processing block can be selected as the QP prediction value of the first block in the block line number (N +1).
[000111] Com a configuração acima, o processo de computar os valores de previsão dos parâmetros de quantização correspondentes às linhas de blocos pode ser desempenhado em paralelo.[000111] With the above configuration, the process of computing the prediction values of the quantization parameters corresponding to the rows of blocks can be performed in parallel.
[000112] A seguir, são descritas operações do decodificador de vídeo 10 de acordo com a primeira modalidade. A Figura 11 é um fluxo- grama que ilustra um exemplo de processamento de decodificação de bloco na primeira modalidade. Note que o processamento de decodifi- cação de bloco ilustrado na Figura 11 corresponde ao processamento de decodificação desempenhado em um bloco.[000112] Next, operations of the video decoder 10 are described according to the first embodiment. Fig. 11 is a flowchart illustrating an example of block decoding processing in the first embodiment. Note that the block decoding processing illustrated in Figure 11 corresponds to the decoding processing performed on a block.
[000113] Na etapa S101, cada uma das partes de decodificação por entropia decodifica por entropia informações codificadas tais como o vetor de movimento diferencial, o valor QP diferencial e o coeficiente de transformação ortogonal quantizado de cada um dos blocos. As informações decodificadas por entropia são emitidas às partes de processamento de decodificação correspondentes às partes de processados por entropia.[000113] In step S101, each of the entropy decoding parts entropy decodes encoded information such as the differential motion vector, the differential QP value and the quantized orthogonal transformation coefficient of each of the blocks. The entropy-decoded information is output to the decode processing parts corresponding to the entropy-processing parts.
[000114] Na etapa S102, a parte de recuperação de vetor de movimento 304 adquire, a partir da parte de armazenamento de informações de bloco 244, informações de vetor de movimento a respeito de um bloco periférico, para o bloco de processamento computar um vetor de previsão.[000114] In the step S102, the motion vector recovery part 304 acquires, from the block information storage part 244, motion vector information about a peripheral block, for the processing block to compute a vector of forecast.
[000115] Na etapa S103, a parte de recuperação de vetor de movimento 304 adiciona o vetor de movimento diferencial e o vetor de previsão para recuperar o vetor de movimento. As informações de vetor de movimento recuperado são armazenadas na parte de armazenamento de informações de bloco 244.[000115] In step S103, the motion vector recovery part 304 adds the differential motion vector and the prediction vector to recover the motion vector. The retrieved motion vector information is stored in the block information storage part 244.
[000116] Na etapa S104, a parte de geração de pixel de previsão 305 adquire dados de pixel de uma gravura de referência indicada pelo vetor de movimento a partir da parte de armazenamento de pixel decodificado 105 que armazena gravuras decodificadas previamente para gerar um pixel de previsão.[000116] In step S104, the prediction pixel generation part 305 acquires pixel data of a reference picture indicated by the motion vector from the decoded pixel storage part 105 which stores previously decoded pictures to generate a pixel of forecast.
[000117] Na etapa S105, cada uma das partes de previsão de QP gera o valor de previsão QP de um correspondente dentre os blocos para inserir os valores QP de previsão gerados dentro da parte de recuperação de valor QP 301.[000117] In step S105, each of the QP prediction parts generates the QP prediction value of a correspondent among the blocks for inserting the generated prediction QP values into the QP value retrieval part 301.
[000118] Na etapa S106, a parte de recuperação de valor QP 301 recupera cada um dos valores QP com base na entrada correspondente de valor de previsão QP e no valor diferencial. Os valores QP são armazenados na parte de armazenamento de informações de bloco 244 enquanto estiverem sendo providos à parte de quantização inversa 302. Quando um dentre o valor QP do bloco acima do bloco de processamento e o valor QP do bloco processado, que é processado pela parte de processamento de decodificação de linha de bloco 201 previamente, for aplicado ao valor de previsão QP, pode não haver necessidade de conter (atrasar) a geração do valor de previsão QP. Como resultado, a eficiência do processamento paralelo pode ser aprimorada.[000118] In step S106, the QP value retrieval part 301 retrieves each of the QP values based on the corresponding QP prediction value input and the differential value. The QP values are stored in the block information storage part 244 while being provided to the inverse quantization part 302. When one of the QP value of the block above the processing block and the QP value of the processed block, which is processed by the line decoding processing part of block 201 previously applied to the prediction value QP, there may be no need to hold back (delay) the generation of the prediction value QP. As a result, the efficiency of parallel processing can be improved.
[000119] Na etapa S107, a parte de quantização inversa 302 multiplica o coeficiente de transformação ortogonal quantizado pelo valor QP.[000119] In step S107, the inverse quantization part 302 multiplies the quantized orthogonal transformation coefficient by the QP value.
[000120] Na etapa S108, a parte de transformação ortogonal inversa 303 desempenha a transformação ortogonal inversa no coeficiente de transformação ortogonal quantizado para gerar um pixel de previsão de erro.[000120] In step S108, the inverse orthogonal transform part 303 performs inverse orthogonal transform on the quantized orthogonal transform coefficient to generate an error prediction pixel.
[000121] Na etapa S109, a parte de geração de pixel decodificado 306 adiciona o pixel de previsão de erro e o pixel de previsão para gerar um pixel decodificado.[000121] In the step S109, the decoded pixel generation part 306 adds the error prediction pixel and the prediction pixel to generate a decoded pixel.
[000122] Na etapa S110, a parte de armazenamento de pixel decodificado 105 armazena o pixel decodificado. A etapa mencionada previamente é o fim do processamento de decodificação no bloco (bloco de processamento), o que inicia o próximo processamento de decodifica- ção no bloco subsequente. Quando o processamento de decodificação em todos os blocos contidos em uma gravura for terminado, a imagem decodificada armazenada na parte de armazenamento de pixel decodificado 105 pode, por exemplo, ser exibida em uma parte de exibição tal como um visor.[000122] In step S110, the decoded pixel storage part 105 stores the decoded pixel. The previously mentioned step is the end of decoding processing in the block (processing block), which starts the next decoding processing in the subsequent block. When the decoding processing on all blocks contained in a picture is finished, the decoded image stored in the decoded pixel storage part 105 can, for example, be displayed on a display part such as a viewer.
[000123] Conforme descrito acima, no decodificador de vídeo de acordo com a primeira modalidade, a computação dos valores QP de previsão pode ser desempenhada em paralelo, o que pode aprimorar a eficiência do processamento paralelo de linha de bloco.[000123] As described above, in the video decoder according to the first embodiment, computation of predictive QP values can be performed in parallel, which can improve the efficiency of block-line parallel processing.
[000124] A seguir, um codificador de vídeo de acordo com uma segunda modalidade é descrito. No codificador de vídeo de acordo com a segunda modalidade, o processamento de previsão de QP pode ser desempenhado em paralelo por uma unidade de linhas de blocos, correspondente ao decodificador de vídeo de acordo com a primeira modalidade.[000124] Next, a video encoder according to a second embodiment is described. In the video encoder according to the second embodiment, QP prediction processing can be performed in parallel by a block line unit corresponding to the video decoder according to the first embodiment.
[000125] A Figura 12 é um diagrama de blocos que ilustra um exemplo de configuração de um codificador de vídeo 50 de acordo com a segunda modalidade. No exemplo ilustrado na Figura 12, o codificador de vídeo 50 inclui uma parte de codificação paralela 501 e uma parte de armazenamento de pixel decodificado 505. A parte de decodifica- ção paralela 501 inclui uma parte de processamento paralelo de codificação 502, uma parte de previsão paralela de QP 503 e uma parte de codificação por entropia em paralelo 504. Note que o codificador de vídeo 50 é configurado para processar N linhas de blocos em paralelo.[000125] Figure 12 is a block diagram illustrating an example configuration of a video encoder 50 according to the second embodiment. In the example illustrated in Figure 12, the video encoder 50 includes a parallel encoding part 501 and a decoded pixel storage part 505. The parallel decoding part 501 includes an encoding parallel processing part 502, a parallel QP prediction 503 and a parallel entropy coding part 504. Note that the video encoder 50 is configured to process N lines of blocks in parallel.
[000126] Os componentes respectivos da parte de codificação paralela 501 são configurados para desempenhar o processamento em um bloco idêntico para cada uma das linhas de blocos. Ademais, uma posição horizontal de um bloco de processamento de (K-1)ésima linha de bloco é configurada para preceder uma posição horizontal de um bloco de processamento de Késima linha de bloco por dois ou mais blocos.[000126] The respective components of the parallel coding part 501 are configured to perform the processing in an identical block for each of the rows of blocks. Furthermore, a horizontal position of a (K-1)th block line processing block is configured to precede a horizontal position of a kth block line processing block by two or more blocks.
[000127] Isso pode ser devido ao fato de que as informações codificadas no bloco superior e no bloco superior direito ao bloco de processamento podem estar disponíveis (accessíveis) ao alterar dois ou mais blocos entre as linhas de blocos, mesmo quando as linhas de blocos são codificadas em paralelo. Quando as informações do bloco superior são acessadas (utilizadas), a quantidade de alteração da posição horizontal entre as linhas de blocos pode ser um bloco.[000127] This may be due to the fact that information encoded in the upper block and upper right block of the processing block may be available (accessible) when changing two or more blocks between rows of blocks, even when rows of blocks are encoded in parallel. When the top block information is accessed (used), the amount of horizontal position change between rows of blocks can be one block.
[000128] A parte de codificação paralela 501 é configurada para dividir uma imagem em blocos plurais, e codificar os blocos divididos através da utilização de um sistema de codificação de vídeo em, por exemplo, N linhas de blocos em paralelo. O pixel decodificado que é decodificado localmente pela parte de codificação paralela 501 é armazenado na parte de armazenamento de pixel decodificado 505.[000128] The parallel coding part 501 is configured to divide an image into plural blocks, and encode the divided blocks using a video coding system into, for example, N lines of blocks in parallel. The decoded pixel which is locally decoded by the parallel coding part 501 is stored in the decoded pixel storage part 505.
[000129] A parte de processamento paralelo de codificação 502 é configurada para gerar o coeficiente de transformação ortogonal quan- tizado, e informações do vetor de movimento diferencial para cada um dos blocos contidos nas linhas de blocos, enquanto processa as linhas de blocos em paralelo. Os coeficientes de transformação ortogonal gerados e as informações de vetor diferencial (também chamadas de "dados de codificação") são emitidos à parte de codificação por entropia em paralelo 504. O valor QP utilizado para a quantização é emitido à parte de previsão paralela de QP 503.[000129] The parallel processing part of coding 502 is configured to generate the quantized orthogonal transformation coefficient, and differential motion vector information for each of the blocks contained in the rows of blocks, while processing the rows of blocks in parallel . The generated orthogonal transform coefficients and differential vector information (also called "coding data") are output to the parallel entropy encoding part 504. The QP value used for quantization is output to the parallel prediction part of QP 503.
[000130] A parte de previsão paralela de QP 503 é configurada para computar o valor de previsão (valor de previsão QP) do parâmetro de quantização (QP) de cada um dos blocos contidos na linha de blocos correspondente enquanto desempenha o processamento de computação nos blocos contidos nas linhas de blocos em paralelo. Os valores QP de previsão computados são emitidos à parte de codificação por entropia em paralelo 504.[000130] The parallel prediction part of QP 503 is configured to compute the prediction value (QP prediction value) of the quantization parameter (QP) of each of the blocks contained in the corresponding block line while performing computation processing on the blocks contained in rows of parallel blocks. The computed prediction QP values are output to the parallel entropy encoding part 504.
[000131] A parte de codificação por entropia em paralelo 504 codifica por entropia cada um dos blocos contidos na linha de bloco correspondente através da utilização do coeficiente de transformação ortogonal quantizado, o valor QP diferencial que é a diferença entre o valor QP e o valor de previsão QP, as informações de vetor de movimento diferencial e similares enquanto desempenha o processamento de co-dificação por entropia nos blocos contidos nas linhas de blocos em paralelo. O fluxo codificado pela parte de codificação por entropia em paralelo 504 é emitido ao decodificador de vídeo 10, e similares.[000131] The parallel entropy encoding part 504 entropy encodes each of the blocks contained in the corresponding block line by using the quantized orthogonal transformation coefficient, the differential QP value which is the difference between the QP value and the value of QP prediction, the differential motion vector information and the like while performing entropy encoding processing on the blocks contained in the rows of blocks in parallel. The stream encoded by the parallel entropy coding part 504 is output to the video decoder 10, and the like.
[000132] A parte de armazenamento de pixel decodificado 505 é configurada para armazenar o pixel decodificado obtido ao decodificar localmente cada um dos blocos emitidos a partir da parte de codificação paralela 501. O ato da decodificação local pode também ser chamada de "decodificação local".[000132] The decoded pixel storage part 505 is configured to store the decoded pixel obtained by locally decoding each of the blocks output from the parallel coding part 501. The act of local decoding can also be called "local decoding" .
[000133] A seguir, a parte de codificação paralela 501 é descrita. A Figura 13 é um diagrama de blocos que ilustra exemplos de configuração de componentes respectivos da parte de codificação paralela 501 no codificador de vídeo de acordo com a segunda modalidade; No exemplo ilustrado na Figura 13, a parte de processamento de codificação em paralelo 502 inclui uma primeira parte de processamento de codificação 621, uma segunda parte de processamento de codificação 622, uma parte de processamento de codificação de número N 623 e uma parte de armazenamento de informações de bloco 624.[000133] Next, the parallel encoding part 501 is described. Fig. 13 is a block diagram illustrating configuration examples of respective components of the parallel coding part 501 in the video encoder according to the second embodiment; In the example illustrated in Fig. 13 , the parallel coding processing part 502 includes a first coding processing part 621, a second coding processing part 622, an N-number coding processing part 623, and a storage part. of block information 624.
[000134] No exemplo ilustrado na Figura 13, a parte de previsão paralela de QP 503 inclui uma primeira parte de previsão de QP 631, uma segunda parte de previsão de QP 632 e uma parte de previsão de QP de número N 633. No exemplo ilustrado na Figura 13, a parte de codificação paralela por entropia 504 inclui uma primeira parte de codificação por entropia 641, uma segunda parte de codificação por entropia 642 e uma parte de codificação por entropia de número N 643.[000134] In the example illustrated in Figure 13, the parallel forecast part of QP 503 includes a first forecast part of QP 631, a second forecast part of QP 632 and a forecast part of QP number N 633. In the example Illustrated in Figure 13, the parallel entropy coding part 504 includes a first entropy coding part 641, a second entropy coding part 642, and an entropy coding part of N number 643.
[000135] Note que quando L = 1 para N, a parte de codificação de número L, a parte de previsão de QP de número L e a parte de codificação por entropia de número L são configuradas para desempenhar o processamento na uma e mesma dentre as linhas de blocos. Na descrição a seguir, a parte de codificação de número L, a parte de previsão de QP de número L e a parte de codificação por entropia de número L são chamadas genericamente de "parte de processamento de codificação de linha de bloco".[000135] Note that when L = 1 for N, the L-number coding part, L-number QP prediction part, and L-number entropy coding part are configured to perform processing in one and the same of the rows of blocks. In the following description, the L-number coding part, the L-number QP prediction part, and the L-number entropy coding part are generically called the "block line coding processing part".
[000136] Por exemplo, uma parte de processamento de codificação de linha de bloco 601 inclui uma primeira parte de codificação 621, uma primeira parte de previsão de QP 631 e uma primeira parte de processamento de codificação por entropia 641.[000136] For example, a block line coding processing part 601 includes a first coding part 621, a first QP prediction part 631 and a first entropy coding processing part 641.
[000137] Quando a parte de processamento de codificação de linha de bloco 601 tiver desempenhado o processamento de codificação na Késima linha de bloco, a parte de processamento de codificação de linha de bloco 601 subsequentemente desempenha o processamento de codificação na linha de bloco de número (K + N).[000137] When the block line encoding processing part 601 has performed encoding processing on the 10th block line, the block line encoding processing part 601 subsequently performs encoding processing on the number block line (K + N).
[000138] A parte de codificação por entropia em paralelo 502 é configurada para dividir uma imagem de entrada em linhas de blocos plurais. As partes de processamento de codificação 621 a 623 são configuradas para desempenhar o processamento de codificação em paralelo por unidade das linhas de blocos divididas da imagem (por exemplo, N linhas de blocos nesse caso). O processamento de codificação pode ser um processamento de codificação tal como H.264 ou HEVC.[000138] Parallel entropy coding part 502 is configured to divide an input image into rows of plural blocks. The coding processing parts 621 to 623 are configured to perform per-unit parallel coding processing of the divided block lines of the image (eg, N block lines in this case). The encoding processing may be encoding processing such as H.264 or HEVC.
[000139] A Figura 14 é um diagrama de blocos que ilustra um exemplo de configuração da parte de processamento de codificação (por exemplo, a primeira parte de processamento de codificação 621) no codificador de vídeo de acordo com a segunda modalidade. Dado que as partes de processamento de codificação 621 a 623 são configuradas para desempenhar um processamento similar, a parte de proces- samento de codificação 621 é usada como um exemplo das partes de processamento de codificação na descrição a seguir.[000139] Figure 14 is a block diagram illustrating an example of configuring the encoding processing part (for example, the first encoding processing part 621) in the video encoder according to the second embodiment. Since the encoding processing parts 621 to 623 are configured to perform similar processing, the encoding processing part 621 is used as an example of the encoding processing parts in the following description.
[000140] A primeira parte de processamento de codificação 621 inclui uma parte de previsão de diferencial 701, uma parte de transformação ortogonal 702 uma parte de quantização 703, uma parte de determinação de QP 704, uma parte de quantização inversa 705, uma parte de transformação ortogonal inversa 706, uma parte de geração de pixel decodificado 707, uma parte de detecção de movimento 708, uma parte de geração de sinal de previsão 709 e uma parte de geração de vetor diferencial 710.[000140] The first coding processing part 621 includes a differential prediction part 701, an orthogonal transformation part 702, a quantization part 703, a QP determination part 704, an inverse quantization part 705, a Inverse orthogonal transform 706, a decoded pixel generation part 707, a motion detection part 708, a prediction signal generation part 709 and a differential vector generation part 710.
[000141] A parte de detecção de movimento 708 é configurada para adquirir dados de pixel de uma gravura de referência a partir da parte de armazenamento de pixel decodificado 505 para detectar um vetor de movimento. As informações de vetor de movimento detectado são armazenadas na parte de armazenamento de informações de bloco 624 para serem usadas para a próxima codificação.[000141] The motion detection part 708 is configured to acquire pixel data of a reference picture from the decoded pixel storage part 505 to detect a motion vector. The detected motion vector information is stored in the information storage part of block 624 to be used for the next encoding.
[000142] A parte de geração de sinal de previsão 709 é configurada para adquirir um pixel de referência a partir da parte de armazenamento de pixel decodificado 505 para gerar um sinal de pixel de previsão com base em informações de posição regional da imagem de referência inserida. O sinal de pixel de previsão gerado é emitido à parte de geração de vetor diferencial 701.[000142] The prediction signal generation part 709 is configured to acquire a reference pixel from the decoded pixel storage part 505 to generate a prediction pixel signal based on regional position information of the inserted reference image . The generated prediction pixel signal is output to the differential vector generation part 701.
[000143] A parte de geração de vetor diferencial 110 é configurada para gerar um vetor de previsão. O vetor de previsão pode ser obtido conforme segue. Os vetores de movimento de blocos localizados no lado esquerdo, acima, e no lado superior direito do bloco de processamento são adquiridos a partir da parte de armazenamento de informações de bloco 624, e um valor mediano dos três vetores de movimento pode ser determinado como o vetor de previsão.[000143] The differential vector generation part 110 is configured to generate a prediction vector. The prediction vector can be obtained as follows. The motion vectors of blocks located on the upper left side and upper right side of the processing block are acquired from the block information storage part 624, and a median value of the three motion vectors can be determined as the forecast vector.
[000144] Conforme descrito no exemplo acima, dado que o bloco de processamento de cada uma das linhas de blocos é alterado em dois blocos em uma direção horizontal a partir do bloco de processamento da linha de bloco precedente, o processamento de codificação no bloco localizado acima do bloco de processamento e no bloco localizado do lado superior direito do bloco de processamento já foi completado. Assim, a parte de geração de vetor diferencial 710 pode ser capaz de adquirir os vetores de movimento dos blocos periféricos.[000144] As described in the example above, given that the processing block of each of the row of blocks is shifted by two blocks in a horizontal direction from the processing block of the preceding block row, the coding processing in the block located above the processing block and in the block located on the upper right side of the processing block has already been completed. Thus, the differential vector generation part 710 may be able to acquire the motion vectors of the peripheral blocks.
[000145] A parte de geração de vetor diferencial 710 é configurada para adquirir o vetor de movimento do bloco de processamento a partir da parte de detecção de movimento 708 para gerar o vetor diferencial entre o vetor de movimento e o vetor de previsão. O vetor diferencial gerado é emitido à primeira parte de codificação por entropia 641.[000145] The differential vector generation part 710 is configured to acquire the motion vector of the processing block from the motion detection part 708 to generate the differential vector between the motion vector and the prediction vector. The generated differential vector is output to the first entropy coding part 641.
[000146] A parte de previsão de diferencial 701 é configurada para computar a diferença entre a imagem original e os sinais de pixel de previsão para gerar sinais de previsão de erro. Os sinais de previsão de erro gerados são emitidos à parte de transformação ortogonal 702.[000146] The differential prediction part 701 is configured to compute the difference between the original image and the prediction pixel signals to generate error prediction signals. The generated error prediction signals are output to the orthogonal transformation part 702.
[000147] A parte de transformação ortogonal 702 é configurada para desempenhar o processamento de transformação ortogonal tal como uma transformada discreta de cosseno (DCT) nos sinais de previsão de erro. Os coeficientes de transformação ortogonal obtidos são emitidos à parte de quantização 703.[000147] The orthogonal transformation part 702 is configured to perform orthogonal transformation processing such as a discrete cosine transform (DCT) on the error prediction signals. The obtained orthogonal transformation coefficients are output to quantization part 703.
[000148] A parte de quantização 703 é configurada para quantizar os coeficientes de transformação ortogonal com base no parâmetro de quantização (QP). Um exemplo do método de quantização inclui dividir os coeficientes ortogonais por um valor determinado pelo QP, e arredondas o resultado obtido ao próximo número inteiro. O coeficiente de transformação ortogonal quantizado é multiplicado pelo valor QP para desempenhar a quantização inversa. O processamento de arredondamento pode tornar a quantização uma transformação irreversível. Os coeficientes quantizados de transformação ortogonal são emitidos à primeira parte de codificação por entropia 641.[000148] The quantization part 703 is configured to quantize the orthogonal transformation coefficients based on the quantization parameter (QP). An example of the quantization method includes dividing the orthogonal coefficients by a value determined by the QP, and rounding the obtained result to the next whole number. The quantized orthogonal transform coefficient is multiplied by the QP value to perform inverse quantization. Rounding processing can make quantization an irreversible transformation. The quantized orthogonal transform coefficients are output to the first entropy encoding part 641.
[000149] A parte de quantização 703 é configurada para gerar informações de sinalizador quanto a se os coeficientes quantizados de transformação ortogonal são todos "0" ou não, para emitir as informações de sinalizador geradas junto com os valores QP utilizados para a quantização para a parte de determinação de QP 704. Os valores QP são emitidos à parte de quantização inversa 705 e à primeira parte de previsão de QP 631.[000149] The quantization part 703 is configured to generate flag information as to whether the quantized orthogonal transformation coefficients are all "0" or not, to output the generated flag information along with the QP values used for quantization to the QP determination part 704. The QP values are output to the inverse quantization part 705 and the first QP prediction part 631.
[000150] A primeira parte de previsão de QP 631 é configurada para gerar o valor de previsão QP do bloco de processamento. O valor de previsão QP gerado é emitido à parte de determinação de QP 704 e à primeira parte de codificação por entropia 641.[000150] The first prediction part of QP 631 is configured to generate the QP prediction value of the processing block. The generated QP prediction value is output to the QP determination part 704 and the first entropy encoding part 641.
[000151] Quando um dentre o valor QP do bloco acima do bloco de processamento e o valor QP do bloco processado que é processado pela parte de processamento de codificação de linha de bloco 601 associada à primeira parte de previsão de QP 631 previamente é aplicado ao valor de previsão QP, pode não haver necessidade de conter (atrasar) a geração do valor de previsão QP. Como resultado, a eficiência do processamento paralelo pode ser aprimorada.[000151] When one of the QP value of the block above the processing block and the QP value of the processed block that is processed by the block line coding processing part 601 associated with the first prediction part of QP 631 previously is applied to the forecast value QP, there may be no need to contain (delay) the generation of the forecast value QP. As a result, the efficiency of parallel processing can be improved.
[000152] A parte de determinação de QP 704 é configurada para determinar o QP do bloco de processamento com base no valor QP inserido a partir da parte de quantização 703 e no valor de previsão. Quando os coeficientes de transformação ortogonal são todos "0", as informações de diferencial de QP não serão codificados por entropia. Portanto, os valores QP utilizados pela parte de quantização 703 não serão relatados ao lado decodificador. Como resultado, tais valores QP podem ser invalidados.[000152] The QP determination part 704 is configured to determine the QP of the processing block based on the QP value entered from the quantization part 703 and the prediction value. When the orthogonal transform coefficients are all "0", the QP differential information will not be entropy encoded. Therefore, the QP values used by the quantization part 703 will not be reported to the decoder side. As a result, such QP values can be invalidated.
[000153] Por exemplo, a parte de determinação de QP 704 adquire as informações de sinalizador quanto a se os coeficientes quantizados de transformação ortogonal gerados pela parte de quantização 703 são todos "0" ou não. Quando a parte de determinação de QP 704 adquire as informações de sinalizador que indicam que os coeficientes de transformação ortogonal são todos "0", a parte de determinação de QP 704 define o valor de previsão QP como o valor QP do bloco de processamento. Quando a parte de determinação de QP 704 adquire as informações de sinalizador que indicam que nenhum dos coeficientes de transformação ortogonal é "0", a parte de determinação de QP 704 define o valor QP utilizado pela parte de quantização 703 como o valor QP do bloco de processamento. O valor QP determinado pela parte de determinação de QP 704 é armazenado na parte de armaze-namento de informações de bloco 624.[000153] For example, the QP determination part 704 acquires the flag information as to whether the quantized orthogonal transform coefficients generated by the quantization part 703 are all "0" or not. When the QP determining part 704 acquires the flag information that indicates that the orthogonal transformation coefficients are all "0", the QP determining part 704 sets the QP prediction value to the QP value of the processing block. When the QP determining part 704 acquires the flag information that indicates that none of the orthogonal transformation coefficients are "0", the QP determining part 704 sets the QP value used by the quantization part 703 as the QP value of the block of processing. The QP value determined by the QP determining part 704 is stored in the block information storage part 624.
[000154] A parte de quantização inversa 705 é configurada para desempenhar o processamento de quantização inversa nos coeficientes quantizados de transformação ortogonal. Os coeficientes quantizados inversamente ortogonais são emitidos à parte de transformação ortogonal inversa 706.[000154] The inverse quantization part 705 is configured to perform inverse quantization processing on the quantized orthogonal transform coefficients. The inversely orthogonal quantized coefficients are output to the inverse orthogonal transform part 706.
[000155] A parte de transformação ortogonal inversa 706 é configurada para desempenhar a transformação ortogonal inversa nos coeficientes quantizados de transformação ortogonal. Os sinais processados de transformação ortogonal inversa são emitidos à parte de geração de pixel decodificado 707.[000155] The inverse orthogonal transform part 706 is configured to perform inverse orthogonal transform on the quantized orthogonal transform coefficients. Inverse orthogonal transform processed signals are output to decoded pixel generation part 707.
[000156] A parte de geração de pixel decodificado 707 é configurada para adicionar o sinal de pixel de previsão adquirido a partir da parte de geração de sinal de previsão 709 ao sinal processado de transformação ortogonal inversa de forma a gerar um pixel decodificado localmente. O pixel decodificado gerado é armazenado na parte de armazenamento de pixel decodificado 505.[000156] The decoded pixel generation part 707 is configured to add the prediction pixel signal acquired from the prediction signal generation part 709 to the inverse orthogonal transform processed signal so as to generate a locally decoded pixel. The generated decoded pixel is stored in the decoded pixel storage part 505.
[000157] A seguir, o processamento desempenhado por cada uma das partes de previsão de QP é descrito. A Figura 15 é um diagrama de blocos que ilustra um exemplo de configuração de uma parte de previsão de QP no codificador de vídeo de acordo com a segunda modalidade; Dado que as partes de previsão de QP 631 a 633 são configuradas para desempenhar um processamento similar, a primeira parte de previsão de QP 631 é usada como um exemplo das partes de previsão de QP na descrição a seguir.[000157] Next, the processing performed by each of the QP prediction parts is described. Fig. 15 is a block diagram illustrating an example of configuring a QP prediction part in the video encoder according to the second embodiment; Since the QP prediction parts 631 to 633 are configured to perform similar processing, the first QP prediction part 631 is used as an example of the QP prediction parts in the following description.
[000158] Na Figura 15, a primeira parte de previsão de QP 631 inclui uma parte de armazenamento de QP 801 imediatamente precedente, uma parte de seleção de QP 802 e uma parte de aquisição de QP superior 803.[000158] In Figure 15 , the first QP prediction part 631 includes an immediately preceding QP storage part 801, a QP selection part 802 and an upper QP acquisition part 803.
[000159] A parte de armazenamento de QP 801 imediatamente precedente é configurada para receber, a partir da parte de determinação de QP 704, o valor QP do bloco que tiver sido processado imediatamente antes do bloco de processamento atual, e para armazenar o valor QP recebido. Os valores QP armazenados pela parte de armazenamento de QP imediatamente precedente 801 são inicializados ao mesmo tempo do começo do processamento da gravura.[000159] The immediately preceding QP storage part 801 is configured to receive, from the QP determination part 704, the QP value of the block that has been processed immediately before the current processing block, and to store the QP value received. The QP values stored by the immediately preceding QP storage part 801 are initialized at the same time as the start of engraving processing.
[000160] Por exemplo, o valor QP armazenado pela parte de armazenamento de QP imediatamente precedente 401 é inicializado com um valor de Fatia de QP codificado com informações de cabeçalho de Fatia de uma maneira similar ao H. 264. A Fatia é uma unidade de grupos divididos de blocos associados a uma gravura.[000160] For example, the QP value stored by the immediately preceding QP storage part 401 is initialized with a Slice value of QP encoded with Slice header information in a manner similar to H.264. divided groups of blocks associated with an engraving.
[000161] A parte de aquisição de QP superior 803 pode adquirir um valor QP de um bloco localizado acima do bloco de processamento a partir da parte de armazenamento de informações de bloco 624.[000161] The upper QP acquisition part 803 can acquire a QP value of a block located above the processing block from the block information storage part 624.
[000162] A parte de seleção de QP 802 é configurada para selecionar um dos valores QP emitidos a partir da parte de armazenamento de QP imediatamente precedente 801 e da parte de aquisição de QP superior 803 para emitir o valor QP selecionado como o valor de previsão QP à parte de determinação de QP 704 ou à primeira parte de codificação por entropia 641.[000162] The QP selection part 802 is configured to select one of the QP values output from the immediately preceding QP storage part 801 and the upper QP acquisition part 803 to output the selected QP value as the prediction value QP to QP determination part 704 or first entropy coding part 641.
[000163] Por exemplo, quando o bloco de processamento é um primeiro (uma cabeça) de blocos em uma linha de bloco, a parte de seleção de QP 802 seleciona o valor QP emitido a partir da parte de aquisição de QP superior 803, ao passo que quando o bloco de processamento é qualquer bloco na linha de bloco fora o primeiro bloco, a parte de seleção de QP 802 seleciona o valor QP emitido a partir da parte de armazenamento de QP imediatamente precedente 801. A parte de seleção de QP 802 emite o valor selecionado QP como o valor de previsão QP à parte de determinação de QP 704 ou à primeira parte de codificação por entropia 641.[000163] For example, when the processing block is a first (a head) of blocks in a block line, the QP selection part 802 selects the QP value output from the top QP acquisition part 803, while whereas when the processing block is any block in the block line other than the first block, the QP selection part 802 selects the QP value output from the immediately preceding QP storage part 801. The QP selection part 802 outputs the selected QP value as the QP prediction value to the QP determination part 704 or the first entropy encoding part 641.
[000164] A previsão (seleção) do valor QP nos exemplos acima é ilustrada nas Figuras 10A e 10B. Nesse caso, o valor QP do bloco próximo ao bloco de processamento X é utilizado como o valor de previsão QP. Consequentemente, a eficiência de previsão do valor QP diminui marginalmente em comparação com o caso através da utilização (selecionar) do valor QP do bloco imediatamente antes do bloco de processamento X na ordem de mapa de bits.[000164] The prediction (selection) of the QP value in the examples above is illustrated in Figures 10A and 10B. In this case, the QP value of the block next to the X processing block is used as the QP prediction value. Consequently, the efficiency of predicting the QP value marginally decreases compared to the case by using (selecting) the QP value of the block immediately before the processing block X in the bitmap order.
[000165] No exemplo acima, o valor de previsão QP é gerado através da utilização do valor QP do bloco que foi processado imediatamente antes do bloco de processamento X, quando o bloco de processamento não é o primeiro bloco. Entretanto, o valor QP pode ser gerado por outros métodos quando o valor QP é previsto a partir de um bloco adjacente ao bloco de processamento.[000165] In the example above, the QP prediction value is generated by using the QP value of the block that was processed immediately before the processing block X, when the processing block is not the first block. However, the QP value can be generated by other methods when the QP value is predicted from a block adjacent to the processing block.
[000166] Note que o processamento da parte de seleção de QP 802 no codificador de vídeo 50 de acordo com a segunda modalidade pode ser conforme segue de uma maneira similar ao decodificador de vídeo 10 de acordo com a primeira modalidade. Quando a linha de bloco submetida ao processamento é a segunda linha de bloco à linha de bloco de número N, os valores QP armazenados pela parte de armazenamento de QP imediatamente precedente 801 são os valores de Fatia de QP, sendo que cada um dos quais é determinado por uma unidade de Fatia. Consequentemente, a eficiência de previsão pode ser relativamente baixa quando o valor de Fatia de QP é aplicado como o valor de previsão QP de cada um dos blocos.[000166] Note that the processing of the QP selection part 802 in the video encoder 50 according to the second embodiment can be as follows in a similar manner to the video decoder 10 according to the first embodiment. When the block line subjected to processing is the second block line to block line number N, the QP values stored by the immediately preceding QP storage part 801 are the QP Slice values, each of which is determined by a Slice unit. Consequently, the prediction efficiency can be relatively low when the QP Slice value is applied as the QP prediction value of each of the blocks.
[000167] Assim, quando o bloco de processamento é o primeiro dos blocos na segunda linha de bloco à linha de bloco de número N, a parte de seleção de QP 802 pode selecionar o valor QP adquirido pela parte de aquisição de QP superior 803, ao passo que quando o bloco de processamento é qualquer um dos blocos fora o primeiro bloco na segunda linha de bloco à linha de bloco de número N, a parte de seleção de QP 802 pode selecionar o valor QP retido pela parte de armazenamento de QP imediatamente precedente 801.[000167] Thus, when the processing block is the first of the blocks in the second block line to block line number N, the QP selection part 802 can select the QP value acquired by the upper QP acquisition part 803, whereas when the processing block is any one of the blocks outside the first block in the second block line to block line number N, the QP selection part 802 can select the QP value retained by the QP storage part immediately precedent 801.
[000168] Ademais, quando o bloco de processamento é um primeiro dos blocos em uma linha de bloco subsequente à linha de bloco de número (N + 1), a parte de seleção de QP 802 pode selecionar o valor QP retido pela parte de armazenamento de QP imediatamente precedente 801. Nesse caso, o valor QP retido pela parte de armazenamento de QP imediatamente precedente 801 corresponde a um valor QP do último dos blocos (o último bloco) na linha de bloco localizada N blocos acima do bloco de processamento.[000168] Furthermore, when the processing block is a first of the blocks in a block line subsequent to the block line number (N+1), the QP selection part 802 can select the QP value retained by the storage part of immediately preceding QP 801. In this case, the QP value held by the immediately preceding QP storage part 801 corresponds to a QP value of the last of the blocks (the last block) in the block line located N blocks above the processing block.
[000169] A Késima linha de bloco e a linha de bloco de número (K + N) são processadas pela parte de processamento de decodificação idêntica, pela parte de previsão de QP idêntica e pela parte de decodi- ficação por entropia idêntica. Portanto, o bloco que foi processado imediatamente antes do bloco de processamento na Késima linha de bloco corresponde ao último bloco da linha de bloco de número (K - N).[000169] The 10th block line and number block line (K+N) are processed by identical decoding processing part, identical QP prediction part, and identical entropy decoding part. Therefore, the block that was processed immediately before the processing block in the 10th block line corresponds to the last block of the number block line (K - N).
[000170] Ademais, quando o bloco de processamento é um primeiro (uma cabeça) de blocos em uma linha de bloco, a parte de seleção de QP 802 pode ser configurada para selecionar constantemente um va lor QP armazenado na parte de armazenamento de QP imediatamente precedente 801. Ademais, quando o bloco de processamento é um primeiro dos blocos em uma dentre a primeira linha de bloco à linha de bloco de número N, a parte de seleção de QP 802 pode ser configurada para selecionar o valor de Fatia de QP como o valor de previsão QP.[000170] Furthermore, when the processing block is a first (a head) of blocks in a block line, the QP selection part 802 can be configured to constantly select a QP value stored in the QP storage part immediately precedent 801. Furthermore, when the processing block is a first of the blocks in one of the first block line to block line number N, the QP selection part 802 can be configured to select the QP Slice value as the PQ prediction value.
[000171] Nesse caso, o valor QP do último dos blocos (o último bloco) na linha de bloco localizada N blocos acima do bloco de processamento pode ser selecionado como o valor de previsão QP do primeiro bloco na linha de bloco de número (N + 1).[000171] In this case, the QP value of the last of the blocks (the last block) in the block line located N blocks above the processing block can be selected as the QP prediction value of the first block in the block line number (N +1).
[000172] Cada uma das partes de codificação por entropia 641 a 643 codifica por entropia o vetor de movimento diferencial, o valor QP diferencial e o coeficiente de transformação ortogonal quantizado de cada um dos blocos para uma correspondente dentre as linhas de blocos.[000172] Each of the entropy encoding parts 641 to 643 entropy encodes the differential motion vector, the differential QP value and the quantized orthogonal transformation coefficient of each of the blocks to a corresponding one of the rows of blocks.
[000173] Com a configuração acima, os valores de previsão dos parâmetros de quantização correspondentes às linhas de blocos podem ser desempenhados em paralelo.[000173] With the above configuration, the prediction values of the quantization parameters corresponding to the rows of blocks can be performed in parallel.
[000174] A seguir são descritas as operações do codificador de vídeo 50 de acordo com a segunda modalidade. A Figura 16 é um fluxo- grama que ilustra um exemplo de processamento de codificação de bloco na segunda modalidade. Note que o processamento de codificação de bloco ilustrado na Figura 16 corresponde ao processamento de codificação desempenhado em um bloco.[000174] Next, the operations of the video encoder 50 according to the second mode are described. Fig. 16 is a flow chart illustrating an example of block encoding processing in the second embodiment. Note that the block encoding processing illustrated in Figure 16 corresponds to the encoding processing performed in a block.
[000175] Na etapa S201, um bloco submetido ao processamento (isto é, um bloco de processamento) é inserido em cada uma das partes de processamento de codificação 621 a 623. A parte de detecção de movimento 708 é configurada para adquirir dados de pixel de uma gravura de referência a partir da parte de armazenamento de pixel decodificado 505 para detectar um vetor de movimento.[000175] In step S201, a block subjected to processing (that is, a processing block) is inserted into each of the encoding processing parts 621 to 623. The motion detection part 708 is configured to acquire pixel data of a reference picture from the decoded pixel storage part 505 to detect a motion vector.
[000176] Na etapa S202, a parte de geração de vetor diferencial 710 gera um vetor diferencial entre o vetor de movimento detectado e o vetor de previsão gerado.[000176] In step S202, the differential vector generation part 710 generates a differential vector between the detected motion vector and the generated prediction vector.
[000177] Na etapa S203, a parte de detecção de movimento 708 armazena o vetor de movimento detectado na parte de armazenamento de informações de bloco 624.[000177] In step S203, the motion detection part 708 stores the detected motion vector in the block information storage part 624.
[000178] Na etapa S204, a parte de geração de sinal de previsão 709 adquire informações de posição regional da imagem de referência, que é referida pelo vetor de movimento detectado pela parte de detecção de movimento 708, para gerar um sinal de pixel de previsão.[000178] In step S204, the prediction signal generation part 709 acquires regional position information from the reference image, which is referred to by the motion vector detected by the motion detection part 708, to generate a pixel prediction signal .
[000179] Na etapa S205, a parte de geração de vetor diferencial 701 adquire a diferença entre o sinal de pixel de previsão gerado pela parte de geração de sinal de previsão 709 e o pixel original inserido para gerar um sinal de erro de previsão.[000179] In the step S205, the differential vector generation part 701 acquires the difference between the prediction pixel signal generated by the prediction signal generation part 709 and the original input pixel to generate a prediction error signal.
[000180] Na etapa S206, a parte de transformação ortogonal 702 desempenha a transformação ortogonal no sinal de erro de previsão para gerar um coeficiente de transformação ortogonal.[000180] In the step S206, the orthogonal transformation part 702 performs orthogonal transformation on the prediction error signal to generate an orthogonal transformation coefficient.
[000181] Na etapa S207, a parte de quantização 703 quantiza o coeficiente de transformação ortogonal com base no parâmetro de quanti- zação (QP).[000181] In step S207, the quantization part 703 quantizes the orthogonal transformation coefficient based on the quantization parameter (QP).
[000182] Na etapa S208, cada uma das partes de previsão de QP 631 a 633 gera um valor de previsão QP do bloco de processamento. O valor de previsão QP pode, por exemplo, ser um valor QP de um bloco localizado acima do bloco de processamento, ou um valor QP de um bloco processado previamente pela parte de processamento de codificação de linha de bloco 601 em associação com a parte de previsão de QP correspondente.[000182] In step S208, each of the QP prediction parts 631 to 633 generates a QP prediction value of the processing block. The prediction value QP can, for example, be a QP value of a block located above the processing block, or a QP value of a block previously processed by the block line coding processing part 601 in association with the processing part corresponding QP prediction.
[000183] Na etapa S209, a parte de determinação de QP 704 determina o valor QP do bloco de processamento como um dentre o valor QP adquirido a partir da parte de quantização 703 e o valor de previ- são QP adquirido a partir da parte de previsão de QP. O método de determinação do valor QP do bloco de processamento já está descrito acima.[000183] In step S209, the QP determining part 704 determines the QP value of the processing block as one of the QP value acquired from the quantization part 703 and the QP prediction value acquired from the QP part. QP prediction. The method of determining the QP value of the processing block is already described above.
[000184] Na etapa S210, cada uma das partes de codificação por entropia codifica o coeficiente de transformação ortogonal quantizado, o valor QP diferencial e o vetor diferencial.[000184] In step S210, each of the entropy encoding parts encodes the quantized orthogonal transformation coefficient, the differential QP value and the differential vector.
[000185] Na etapa S211, a parte de quantização inversa 705 e a parte de transformação ortogonal inversa 706 desempenham respectivamente o processamento de quantização inversa e as quantizações de processamento de transformação ortogonal inversa, no coeficiente de transformação ortogonal quantizado, para gerar um sinal correspondente ao sinal de erro de previsão.[000185] In step S211, the inverse quantization part 705 and the inverse orthogonal transformation part 706 respectively perform inverse quantization processing and inverse orthogonal transformation processing quantizations, on the quantized orthogonal transformation coefficient, to generate a corresponding signal to the forecast error signal.
[000186] Na etapa S212, a parte de geração de pixel decodificado 707 adiciona o sinal de pixel de previsão adquirido a partir da parte de geração de sinal de previsão 709, e o sinal adquirido a partir da parte de transformação ortogonal inversa 706, para gerar um pixel decodificado localmente.[000186] In the step S212, the decoded pixel generation part 707 adds the prediction pixel signal acquired from the prediction signal generation part 709, and the signal acquired from the inverse orthogonal transformation part 706, to generate a locally decoded pixel.
[000187] Na etapa S213, a parte de armazenamento de pixel decodificado 505 armazena o pixel decodificado gerado. A etapa mencionada previamente é o fim do processamento de codificação no bloco (bloco de processamento), o que inicia o próximo processamento de codificação no bloco subsequente.[000187] In the step S213, the decoded pixel storage part 505 stores the generated decoded pixel. The previously mentioned step is the end of coding processing in the block (processing block), which starts the next coding processing in the subsequent block.
[000188] Conforme descrito acima, no codificador de vídeo de acordo com a segunda modalidade, a computação dos valores QP de previsão pode ser desempenhada em paralelo, o que pode aprimorar a eficiência do processamento paralelo de linha de bloco.[000188] As described above, in the video encoder according to the second embodiment, computation of predictive QP values can be performed in parallel, which can improve the efficiency of block-line parallel processing.
[000189] A Figura 17 é um diagrama de blocos que ilustra um exemplo de configuração de um dispositivo de processamento de vídeo de acordo com uma terceira modalidade. Um dispositivo de processamen- to de vídeo 90 de acordo com a terceira modalidade pode ser um exemplo do codificador de vídeo ou do decodificador de vídeo descritos nas modalidades mencionadas previamente. Conforme ilustrado na Figura 17, o dispositivo de processamento de vídeo 90 inclui um controlador 901, uma parte de armazenagem principal 902, uma parte de armazenagem auxiliar 903, um dispositivo de unidade 904, uma parte de interface de rede 906, uma parte de entrada 907 e uma parte de exibição 908. As partes mencionadas previamente são mutuamente conectadas através de um barramento de forma que os dados sejam mutuamente transmitidos e recebidos entre essas partes.[000189] Figure 17 is a block diagram illustrating an example configuration of a video processing device according to a third embodiment. A video processing device 90 according to the third embodiment may be an example of the video encoder or the video decoder described in the previously mentioned embodiments. As shown in Figure 17, the video processing device 90 includes a controller 901, a main storage part 902, an auxiliary storage part 903, a drive device 904, a network interface part 906, an input part 907 and a display part 908. The aforementioned parts are mutually connected through a bus so that data is mutually transmitted and received between these parts.
[000190] O controlador 901 serve como uma CPU que desempenha o controle em cada um dos dispositivos ou desempenha a operação ou processamento de dados dentro de um computador. O controlador 901 também serve como uma unidade aritmética capaz de executar um programa de computador armazenado na parte de armazenagem principal 902 de forma que o controlador 901 receba dados a partir da parte de entrada 907 ou de um dispositivo de armazenamento, desempenhe a operação ou o processamento nos dados recebidos e emita os dados resultantes à parte de exibição 908 ou ao dispositivo de armazenamento.[000190] The controller 901 serves as a CPU that performs control in each of the devices or performs operation or data processing within a computer. The controller 901 also serves as an arithmetic unit capable of executing a computer program stored in the main storage portion 902 such that the controller 901 receives data from the input portion 907 or a storage device, performs the operation or the processing on the received data and output the resulting data to the display portion 908 or to the storage device.
[000191] A parte de armazenagem principal 902 pode ser um dispositivo de armazenamento tal como uma memória somente leitura (ROM, read-only memory) ou uma memória de acesso aleatório (RAM, random access memory) que armazene, permanente ou temporariamente, programas ou dados tais como um software básico de um sistema operacional (OS, operating system) ou de um software de aplicativo, o qual é executado pelo controlador 901.[000191] The main storage part 902 can be a storage device such as a read-only memory (ROM, read-only memory) or a random access memory (RAM, random access memory) that stores, permanently or temporarily, programs or data such as basic operating system (OS) software or application software which is executed by controller 901.
[000192] A parte de armazenagem auxiliar 903 pode ser um dispositivo de armazenamento tal como uma unidade de disco rígido (HDD, hard disk drive), que armazena dados associados ao software de apli- cativo.[000192] The auxiliary storage part 903 can be a storage device such as a hard disk drive (HDD, hard disk drive), which stores data associated with the application software.
[000193] O dispositivo de unidade 904 é configurado para recolher os programas a partir de uma mídia de gravação 905, tal como um disco flexível ou similares, para instalar os programas recolhidos no dispositivo de armazenamento.[000193] The drive device 904 is configured to retrieve programs from a recording medium 905, such as a floppy disk or the like, to install the retrieved programs onto the storage device.
[000194] Ademais, a mídia de gravação 905 é configurada para armazenar programas predeterminados. Os programas armazenados na mídia de gravação 905 são instalados no dispositivo de processamento de vídeo 90 através do dispositivo de unidade 904. Assim, os programas predeterminados instalados podem ser prontamente executáveis pelo dispositivo de processamento de vídeo 90.[000194] Furthermore, the recording medium 905 is configured to store predetermined programs. The programs stored on the recording medium 905 are installed on the video processing device 90 through the drive device 904. Thus, the installed predetermined programs can be readily executable by the video processing device 90.
[000195] A seção de IF de rede 906 é uma interface entre o dispositivo de processamento de vídeo 90 e dispositivos periféricos que têm funções de comunicação conectados através de redes tal como uma rede de área local (LAN, local area network) e uma rede de área ampla (WAN, wide area network) composta de percursos de transmissão de dados tal como linhas com fio e/ou sem fio.[000195] The network IF section 906 is an interface between the video processing device 90 and peripheral devices that have communication functions connected through networks such as a local area network (LAN, local area network) and a network wide area network (WAN) consisting of data transmission paths such as wired and/or wireless lines.
[000196] A parte de entrada 907 pode incluir um teclado que tenha uma tecla de cursor, um bloco de teclas numéricas e várias teclas funcionais, um mouse ou um bloco de deslizamento para selecionar teclas exibidas em uma tela de exibição da parte de exibição 908. A parte de entrada 907 é uma interface de usuário para um usuário designar instruções operacionais ou entrada de dados ao controlador 901.[000196] Input part 907 may include a keyboard that has a cursor key, a numeric keypad and various function keys, a mouse or a slider pad for selecting keys displayed on a display screen of display part 908 Input portion 907 is a user interface for a user to assign operating instructions or input data to controller 901.
[000197] A parte de exibição 908 inclui um visor de cristal líquido (LCD, liquid crystal display) configurado para exibir dados correspondentes a entrada de dados de exibição a partir do controlador 901. Note que a parte de exibição 908 pode ser fornecida externamente, e o dispositivo de processamento de vídeo 90 pode incluir um controlador de exibição nesse caso.[000197] Display portion 908 includes a liquid crystal display (LCD) configured to display data corresponding to display data input from controller 901. Note that display portion 908 may be provided externally, and the video processing device 90 may include a display controller in that case.
[000198] Assim, o codificador de vídeo ou decodificador de vídeo ilustrado nas modalidades acima podem ser implantados como programas (por exemplo, um programa de codificação de vídeo ou um programa de decodificação de vídeo) executado por um computador. Esses programas podem ser instalados no computador através de um servidor ou similares de forma a fazer com que o computador execute os programas, o que pode implantar o codificador de vídeo ou decodi- ficador de vídeo mencionado previamente.[000198] Thus, the video encoder or video decoder illustrated in the above embodiments can be implemented as programs (for example, a video encoding program or a video decoding program) executed by a computer. These programs can be installed on the computer through a server or similar in order to make the computer run the programs, which can implement the previously mentioned video encoder or video decoder.
[000199] Ademais, tal programa de codificação de vídeo ou programa de decodificação de vídeo pode ser armazenado na mídia de gravação 905 de forma a fazer com que um computador ou um terminal móvel recolha esses programas armazenados na mídia de gravação 905 para implantar o processamento de codificação de vídeo ou processamento de decodificação de vídeo mencionado previamente.[000199] Furthermore, such a video encoding program or video decoding program can be stored on the recording medium 905 in order to make a computer or a mobile terminal collect these programs stored on the recording medium 905 to implement processing previously mentioned video encoding or video decoding processing.
[000200] Note que a mídia de gravação 905 pode ser de vários tipos de mídia de gravação, tal como um CD-ROM, um disco flexível e um disco óptico magnético no qual a informação é gravada oticamente, eletricamente ou magneticamente; ou uma memória semicondutiva tal como uma ROM ou uma memória rápida na qual a informação é gravada eletricamente. Note que a mídia de gravação 905 não inclui onda portadora.[000200] Note that the recording medium 905 can be of various types of recording medium, such as a CD-ROM, a floppy disk, and a magnetic optical disk on which information is recorded optically, electrically, or magnetically; or a semiconductor memory such as ROM or fast memory in which information is electrically recorded. Note that recording media 905 does not include a carrier wave.
[000201] Os programas executados no dispositivo de processamento de vídeo 90 podem ter configurações modulares que incluem as partes respectivas ilustradas nas modalidades mencionadas previamente. No hardware desempenho, o controlador 901 recolhe os programas a partir da parte de armazenagem auxiliar 903 e executa os programas recolhidos. Consequentemente, uma ou mais dentre as partes são carregadas na parte de armazenagem principal 902 de forma que as partes carregadas possam ser geradas na parte de armazenagem principal 902.[000201] The programs executed in the video processing device 90 can have modular configurations that include the respective parts illustrated in the previously mentioned embodiments. In hardware performance, the controller 901 retrieves the programs from the auxiliary storage portion 903 and executes the retrieved programs. Consequently, one or more of the parts are loaded into the main storage part 902 so that the loaded parts can be generated in the main storage part 902.
[000202] Ademais, o processamento de codificação de vídeo ou o processamento de decodificação de vídeo ilustrados nas modalidades acima podem ser implantados como um ou mais circuitos integrados.[000202] Furthermore, the video encoding processing or the video decoding processing illustrated in the above embodiments can be implemented as one or more integrated circuits.
[000203] De acordo com as tecnologias reveladas, a computação dos valores QP de previsão pode ser desempenhada em paralelo, o que pode aprimorar uma eficiência do processamento paralelo de linha de bloco.[000203] According to the disclosed technologies, computing the prediction QP values can be performed in parallel, which can improve a block-line parallel processing efficiency.
[000204] As tecnologias reveladas são descritas de acordo com as modalidades e a modificação; entretanto, as tecnologias reveladas não são limitadas às modalidades reveladas. Várias modificações ou alterações podem ser feitas dentro do escopo das invenções descritas nas concretizações. Ademais, combinações e modificações do todo ou de parte dos componentes das modalidades mencionadas previamente podem ser aplicadas.[000204] The disclosed technologies are described according to the modalities and the modification; however, the disclosed technologies are not limited to the disclosed embodiments. Various modifications or alterations can be made within the scope of the inventions described in the embodiments. Furthermore, combinations and modifications of all or part of the components of the previously mentioned modalities may be applied.
[000205] Todos os exemplos e toda a linguagem condicionante exposta no presente documento se destinam a propósitos pedagógicos para auxiliar o leitor na compreensão da contribuição à técnica, por parte da invenção e dos conceitos do autor, e devem ser interpretados como livres de limitação a exemplos e condições especificamente expostos, bem como livres de uma demonstração de superioridade ou inferioridade da invenção devido à organização de tais exemplos no relatório descritivo. Apesar das modalidades das presentes invenções terem sido descritas em detalhes, deve ser compreendido que as várias mudanças, substituições e alterações poderiam ser feitas às mesmas sem se afastar do espírito e do escopo da invenção.[000205] All examples and all conditioning language set out in this document are intended for pedagogical purposes to assist the reader in understanding the contribution to the technique, by the invention and concepts of the author, and must be interpreted as free from limitation to specifically exposed examples and conditions, as well as free from a demonstration of superiority or inferiority of the invention due to the organization of such examples in the descriptive report. Although embodiments of the present inventions have been described in detail, it should be understood that various changes, substitutions and alterations could be made thereto without departing from the spirit and scope of the invention.
[000206] Este pedido de patente se baseia em, e reivindica o benefício de prioridade do Pedido de Patente Japonês no 2012-010465 depositado em 20 de janeiro de 2012, cujo conteúdo está incorporado em sua totalidade no presente documento a título de referência.[000206] This patent application builds upon, and claims priority benefit from, Japanese Patent Application No. 2012-010465 filed on January 20, 2012, the contents of which are incorporated in their entirety herein by reference.
Claims (1)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012-010465 | 2012-01-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
BR122020016787B1 true BR122020016787B1 (en) | 2023-06-13 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9973756B2 (en) | Video encoder and video encoding method | |
KR20170125086A (en) | Image prediction method and related apparatus | |
BR112013016702B1 (en) | METHOD AND DEVICE FOR ENCODING AND DECODING VIDEO WITH IMPROVED ERROR RESILIENCE | |
BR112020006969A2 (en) | limited memory access window for motion vector refinement | |
BR122020016787B1 (en) | RECORDING MEDIA | |
BR122020016799B1 (en) | VIDEO DECODER FOR DECODING A STREAM ENCODED WITH A VIDEO CODING SYSTEM, VIDEO DECODING METHOD PERFORMED BY A VIDEO DECODER, AND RECORDING MEDIA | |
BR112014017608B1 (en) | VIDEO DECODER FOR DECODING AN ENCODED STREAM WITH A VIDEO CODING SYSTEM | |
BR122020016798B1 (en) | VIDEO DECODING METHOD PERFORMED BY A VIDEO DECODER | |
JP6317720B2 (en) | Moving picture coding apparatus, moving picture coding method, and moving picture coding program | |
JP6065090B2 (en) | Moving picture decoding apparatus, moving picture decoding method, and moving picture decoding program | |
JP6311821B2 (en) | Moving image processing apparatus and moving image processing method | |
JP2016054514A (en) | Moving image encoding device, moving image encoding method, and moving image encoding program | |
BR122021013575B1 (en) | Video decoding method, and video decoding apparatus |