BR112014017608B1 - Decodificador de vídeo para decodificar um fluxo codificado com um sistema de codificação de vídeo - Google Patents

Decodificador de vídeo para decodificar um fluxo codificado com um sistema de codificação de vídeo Download PDF

Info

Publication number
BR112014017608B1
BR112014017608B1 BR112014017608-6A BR112014017608A BR112014017608B1 BR 112014017608 B1 BR112014017608 B1 BR 112014017608B1 BR 112014017608 A BR112014017608 A BR 112014017608A BR 112014017608 B1 BR112014017608 B1 BR 112014017608B1
Authority
BR
Brazil
Prior art keywords
block
processing
parallel
prediction
blocks
Prior art date
Application number
BR112014017608-6A
Other languages
English (en)
Other versions
BR112014017608A2 (pt
BR112014017608A8 (pt
Inventor
Satoshi Shimada
Kimihiko Kazui
Junpei KOYAMA
Akira Nakagawa
Original Assignee
Fujitsu Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2012010465A external-priority patent/JP2013150215A/ja
Application filed by Fujitsu Limited filed Critical Fujitsu Limited
Publication of BR112014017608A2 publication Critical patent/BR112014017608A2/pt
Publication of BR112014017608A8 publication Critical patent/BR112014017608A8/pt
Publication of BR112014017608B1 publication Critical patent/BR112014017608B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Abstract

DECODIFICADOR DE VÍDEO, CODIFICADOR DE VÍDEO, MÉTODO DE DECODIFICAÇÃO DE VÍDEO E MÉTODO DE CODIFICAÇÃO DE VÍDEO. 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 linha de bloco (K- 1)ésima, que precede um bloco de processamento em uma linha de bloco Késima 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.

Description

CAMPO DA TÉCNICA
[0001] 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.
TÉCNICA ANTERIOR
[0002] 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] 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] Em Grupo de Especialistas em Figuras com Movimento (MPEG)-4 AVC/H.264 (abaixo no presente documento chamado també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] 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] 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] Na descrição seguinte, tal processamento paralelo é chamado "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] 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] 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] 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] 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] Note que quando o processamento paralelo de linha de bloco é executado como um programa, uma unidade de processamento pode ser um thread ou uma unidade de processamento central (CPU).
[00013] 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] 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.
DOCUMENTO DE TÉCNICA RELACIONADA
[00015] Documento Não Patente 1: ISO/IEC 14496-10 (MPEG-4 Parte 10) / ITU-T Rec.H.264
[00016] 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] 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] 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] 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] Nesse sistema híbrido, é preparado um parâmetro de quantizaçã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] Entretanto, em um caso no qual todos os coeficientes de transformada quantizados nos blocos são 0, os resultados de quantizaçã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] 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] 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 computado pela seguinte fórmula (1). QP_DELTA = QP - QP_prev …………… (1)
[00024] 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] 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] 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] 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] Portanto, quando o bloco X é processado, um QP_prev não está determinado. Dado que o QP_prev do bloco X não está determinado, um QP_prev de um bloco subsequente ao bloco X não é determinado.
[00029] 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] 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] 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] 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] 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] 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] Isto é, o processamento da terceira linha de bloco não é iniciado a menos que o processamento da segunda linha de bloco esteja completado.
[00036] 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] 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] 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] 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ésima 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] 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.
SUMÁRIO DA INVENÇÃO
[00041] 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] 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 processamento na (K-1)ésima linha de bloco no processamento paralelo.
[00043] 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] 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] 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.
BREVE DESCRIÇÃO DOS DESENHOS
[00046] A Figura 1 é um diagrama que ilustra um exemplo de processamento paralelo de linha de bloco;
[00047] 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] 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] 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] a Figura 4A é um diagrama que ilustra um exemplo de processamento paralelo de linha de bloco em processamento de previsão de QP;
[00051] a Figura 4B é um diagrama que ilustra outro exemplo de processamento paralelo de linha de bloco no processamento de previsão de QP;
[00052] 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] 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] a Figura 6 é um diagrama de blocos que ilustra exemplos de configuração de componentes respectivos de uma parte de decodificação paralela do decodificador de vídeo de acordo com a primeira modalidade;
[00055] 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] 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] 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] 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] 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] 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] 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] 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 modalidade;
[00063] 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] 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] 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] 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.
MODO DE EFETUAR A INVENÇÃO
[00067] 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] Ademais, o vídeo submetido ao processamento pode ser um vídeo a cores ou monocromático.
Primeira Modalidade Configuração
[00069] 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 decodificador 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] 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] 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] 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] 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] 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 decodificação em paralelo 104.
[00075] 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] 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 decodificaçã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] 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 imagem (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.
Parte de Decodificação em Paralelo
[00078] 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] 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] 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 primeira parte de decodificação por entropia 221, uma primeira parte de previsão de QP 231 e uma primeira parte de processamento de decodificação 241.
[00081] 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] 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] 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 decodificador 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] A primeira parte de processamento de decodificação 241 inclui uma parte de recuperação de valor QP 301, uma parte de quantizaçã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] 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 decodificação por entropia 221 (por exemplo, veja a fórmula previamente mencionada (2)). O valor QP recuperado é emitido à parte de quantização inversa 302.
[00086] 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] 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 quantizaçã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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] A parte de seleção de QP 402 é configurada para selecionar 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] 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] 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] 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] 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] 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] 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] 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] 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] 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 decodificaçã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] 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] 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] 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.
Operação
[000111] A seguir, são descritas operações do decodificador de vídeo 10 de acordo com a primeira modalidade. A Figura 11 é um fluxograma que ilustra um exemplo de processamento de decodificação de bloco na primeira modalidade. Note que o processamento de decodificação de bloco ilustrado na Figura 11 corresponde ao processamento de decodificação desempenhado em um bloco.
[000112] 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] 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] 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] 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] 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] 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] Na etapa S107, a parte de quantização inversa 302 multiplica o coeficiente de transformação ortogonal quantizado pelo valor QP.
[000119] 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] 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] 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] 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.
Segunda Modalidade
[000123] 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.
Configuração
[000124] 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] 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] 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] 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] A parte de processamento paralelo de codificação 502 é configurada para gerar o coeficiente de transformação ortogonal quantizado, 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] 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] 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 codificaçã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] 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".
Parte de Codificação em Paralelo
[000132] 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] 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] 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] 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] 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] 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] 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 processamento de codificação 621 é usada como um exemplo das partes de processamento de codificação na descrição a seguir.
[000139] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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 armazenamento de informações de bloco 624.
[000153] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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 decodificaçã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] 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 valor 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] 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] 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] 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.
Operação
[000173] A seguir são descritas as operações do codificador de vídeo 50 de acordo com a segunda modalidade. A Figura 16 é um fluxograma 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] 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] 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] 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] 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] 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] 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] Na etapa S207, a parte de quantização 703 quantiza o coeficiente de transformação ortogonal com base no parâmetro de quantização (QP).
[000181] 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] 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 previsã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] 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] 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] 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] 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] 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.
Terceira Modalidade
[000188] 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 processamento 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] 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] 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] 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 aplicativo.
[000192] 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] 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] 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] 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] 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] 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 decodificador de vídeo mencionado previamente.
[000198] 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] 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] 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] 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] 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] 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] 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] 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.

Claims (1)

1. Decodificador de vídeo para decodificar um fluxo codificado com um sistema de codificação de vídeo, o fluxo codificado sendo obtido codificando uma imagem de uma pluralidade de blocos divididos, o decodificador de vídeo compreendendo: uma parte de decodificação paralela por entropia configurada para decodificar por entropia o fluxo dos blocos contidos em linhas de bloco, o fluxo dos blocos em cada uma das linhas de bloco sendo decodificado por entropia em paralelo com o fluxo dos blocos em uma correspondente dentre as linhas de bloco, cada uma das linhas de bloco indicando 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 bloco, os valores de previsão dos blocos em cada uma das linhas de bloco sendo computados em paralelo com os valores de previsão dos blocos em uma correspondente dentre as linhas de bloco; e uma parte de processamento de decodificação em paralelo configurada para gerar pixels decodificados a respeito dos blocos contidos nas linhas de bloco, os pixels decodificados a respeito dos blocos em cada uma das linhas de bloco sendo gerados em paralelo aos pixels decodificados a respeito dos blocos em uma correspondente dentre as linhas de bloco, cada um dos pixels decodificados sendo decodificado utilizando 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, em que quando o processamento de computação de valor de previsão é executado em N linhas de bloco em paralelo, onde o N é um valor de dois ou maior, a parte de previsão paralela de QP executa o processamento de computação de valor de previsão de modo que um bloco de processamento em uma (K-1)ésima linha de bloco, que é processado em paralelo com um bloco de processamento em uma Késima linha de bloco, está à frente do bloco de processamento na Késima linha de bloco por pelo menos um bloco em uma posição horizontal; caracterizado pelo fato de que, quando o bloco de processamento na Késima linha de bloco está em um início da Késima linha de bloco, a parte de previsão paralela de QP substitui um parâmetro de quantização de um bloco de processamento imediatamente precedente gravado em uma parte de armazenamento de QP imediatamente precedente com um parâmetro de quantização definido para uma fatia a qual o bloco de processamento na Késima linha de bloco pertence, e computa o valor de previsão do parâmetro de quantização do bloco de processamento na Késima linha de bloco com base no parâmetro de quantização inicializado; quando o bloco de processamento na Késima linha de bloco está em uma posição diferente da inicial da Késima linha de bloco, a parte de previsão paralela de QP computa o valor de previsão do parâmetro de quantização do bloco de processamento na Késima linha de bloco com base em um parâmetro de quantização gravado na parte de armazenamento de QP imediatamente precedente; e a parte de processamento de decodificação em paralelo computa o parâmetro de quantização do bloco de processamento na Késima linha de bloco com base no valor de previsão computado pela parte de previsão paralela de QP, e executa processamento de filtro de desbloqueio para o bloco de processamento na Késima linha de bloco usando o parâmetro de quantização computado.
BR112014017608-6A 2012-01-20 2013-01-16 Decodificador de vídeo para decodificar um fluxo codificado com um sistema de codificação de vídeo BR112014017608B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012-010465 2012-01-20
JP2012010465A JP2013150215A (ja) 2012-01-20 2012-01-20 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム
PCT/JP2013/051225 WO2013108922A2 (en) 2012-01-20 2013-01-16 Video decoder, video encoder, video decoding method, and video encoding method

Publications (3)

Publication Number Publication Date
BR112014017608A2 BR112014017608A2 (pt) 2017-06-20
BR112014017608A8 BR112014017608A8 (pt) 2017-07-11
BR112014017608B1 true BR112014017608B1 (pt) 2023-06-27

Family

ID=

Similar Documents

Publication Publication Date Title
US20200244986A1 (en) Picture prediction method and related apparatus
US9973756B2 (en) Video encoder and video encoding method
BR112013016702B1 (pt) Método e dispositivo para codificação e decodificação de vídeo com resiliência de erro aprimorada
BR112020006969A2 (pt) janela de acesso à memória limitada para refinamento de vetor de movimento
BR112014017608B1 (pt) Decodificador de vídeo para decodificar um fluxo codificado com um sistema de codificação de vídeo
BR122020016799B1 (pt) Decodificador de vídeo para decodificar um fluxo codificado com um sistema de codificação de vídeo, método de decodificar vídeo executado por um decodificador de vídeo, e meio de gravação
BR122020016787B1 (pt) Meio de gravação
BR122020016798B1 (pt) Método de decodificar vídeo executado por um decodificador de vídeo
JP6317720B2 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム
JP6065090B2 (ja) 動画像復号装置、動画像復号方法、動画像復号プログラム
JP2016054514A (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム
JP2017127034A (ja) 動画像処理装置及び動画像処理方法
BR122021013575B1 (pt) Método de decodificação de vídeo, e aparelho de decodificação de vídeo