"APARELHO E MÉTODO DE PROCESSAMENTO DE IMAGEM, E, PROGRAMA PARA FAZER COM QUE UM COMPUTADOR EFETUE PROCESSAMENTO" Campo técnico
A presente invenção se refere a um aparelho de processamento de imagem, método e programa, e a um aparelho de processamento de imagem, método e programa que sejam capazes de melhorar a qualidade de imagem.
Conhecimento da técnica
Um fator que causa degradação na qualidade de imagem de imagens codificadas através de um método de MPEG-2 (Grupo de Especialistas em Imagens em Movimento fase 2) é ruído de bloco. Assim sendo, em um aparelho que codifica imagem através de um método de MPEG-4 (Grupo de Especialistas em Imagens em Movimento fase 4) ou de um método de H.264/AVC (Codificação de Vídeo Avançada), um filtro de desbloqueio que efetua processamento de desbloqueio para remover ruído de bloco é fornecido (por exemplo, ver Documento de Patente 1). Através de tal processamento de desbloqueio, mesmo para, em particular, imagens em taxas de bit baixa, degradação na qualidade de imagem pode ser suprimida.
Documento de Patente 1: Patente Japonesa N0 3489735 Divulgação da Invenção Problemas Técnicos
Contudo, já que no processamento de desbloqueio, processo de filtragem de passa baixo é efetuado por fronteiras entre blocos, há um problema no qual o ruído de bloco pode ser removido ao estágio que informação detalhada sobre o projeto e o similar (daqui em diante também referenciado como uma textura) de uma imagem é perdida.
A presente invenção tem sido designada em vista das circunstâncias descritas acima e aponta para melhorar a qualidade de imagem efetuando processamento de desbloqueio apropriadamente. Solução técnica
Um aparelho de processamento de imagem de acordo com um aspecto da presente invenção inclui um filtro de desbloqueio que efetua processamento de desbloqueio em uma imagem decodificada obtida através da decodificação de uma segunda imagem, que é usada para a estimativa de movimento de uma primeira imagem em um caso onde a primeira imagem é codificada, e que é codificada antes da primeira imagem, e meios de cálculo da quantidade de características para calcular uma quantidade de características representando a complexidade da segunda imagem. O filtro de desbloqueio controla se o processamento de desbloqueio é ou não para ser aplicado à imagem decodificada ou controla o grau para o qual o processamento de desbloqueio é para ser aplicado à imagem decodifica, com base da quantidade de características. Os meios de cálculo de quantidade de características podem
calcular a dificuldade de codificação da segunda imagem como a quantidade de características.
Em um caso onde a segunda imagem é uma imagem codificada usando prognóstico de entre quadros, os meios de cálculo da quantidade de características pode configurar, como a quantidade de características, um valor obtido normalizando a dificuldade de codificação de uma terceira imagem codificada usando prognóstico de dentro de quadro antes da codificação da segunda imagem.
Os meios de cálculo da quantidade de características podem dividir a segunda imagem que não tem sido codificada em uma grande quantidade de blocos, e calcular a quantidade de características nas bases de dispersão de valores de elementos mínimos de imagem para cada um dos blocos.
Os meios de cálculo da quantidade de características podem dividir a segunda imagem que não tem sido codificada em uma grande quantidade de blocos, e calcular a quantidade de características nas bases de um coeficiente de transformação obtida efetuando transformação ortogonal para cada um dos blocos.
Os meios de cálculo da quantidade de características podem calcular a quantidade de características nas bases de um erro de prognostico, que é uma diferença entre uma imagem prognosticada para a segunda imagem prognosticada através de prognóstico de entre quadros e a segunda imagem que não foi codificada.
O aparelho de processamento de imagem pode codificar um ai através de um método de H.264/AVC (Codificação de Vídeo Avançada). A distância do objeto (Df) pode controlar se o processamento de desbloqueio é ou não para ser aplicado à imagem decodificada ou controlar o grau para o qual o processamento de desbloqueio é para ser aplicado à imagem decodificada ajustando um valor de disable_deblocking_filter_idc, slice_c0_offset_div2, ou slice_beta_offset_div2.
O aparelho de processamento de imagem pode codificar uma imagem através de um método MPEG-4 (Grupo de Especialistas em Codificação de Imagens em Movimento fase 4), H.245/AVC (Codificação de Vídeo Avançada), ou VC-I (Codificação/Decodificação de Vídeo 1).
Um método ou programa de processamento de imagem de acordo com um aspecto da presente invenção inclui os estágios de calcular uma quantidade de características representando a complexidade de uma segunda imagem que é usada para estimação de movimento de uma primeira imagem em um caso onde a primeira imagem é codificada e, que é codificada antes da primeira imagem, e controlar se o processamento de desbloqueio é ou não para ser aplicado a uma imagem decodificada obtida através da decodificação da segunda imagem ou controle do grau para o qual o processamento de desbloqueio é para ser aplicado à imagem decodificada, nas bases da quantidade de características.
Em um aspecto da presente invenção, uma quantidade de características representando a complexidade da segunda imagem que é usada para estimação de movimento da primeira imagem em um caso onde a primeira imagem é codificada e, que é codificada antes da primeira imagem, é calculada, e controlar se o processamento de desbloqueio é ou não aplicado a uma imagem decodificada obtida através da decodificação da segunda imagem ou controle do grau para o qual o processamento de desbloqueio é para ser aplicado à imagem decodificada, é efetuado nas bases da quantidade de características
De acordo com um aspecto da presente invenção, o processamento de desbloqueio pode ser efetuado apropriadamente de acordo com as características de uma imagem. Em adição, de acordo com um aspecto da presente invenção, a qualidade de imagem pode ser melhorada. Descrição Breve dos Desenhos
[Fig. 1] Fig. 1 é um diagrama em bloco mostrando uma modalidade de um aparelho de processamento de imagem para o qual a presente invenção é aplicada.
[Fig. 2] Fig. 2 é um fluxograma para explicar um processo de codificação efetuado através do aparelho de processamento de imagem na Fig. 1.
[Fig. 3] Fig. 3 é um fluxograma para explicar uma primeira modalidade de um processo de controle de desbloqueio efetuado através do aparelho de processamento de imagem na Fig. 1. [Fig. 4] Fig. 4 é um fluxograma para explicar uma segunda
modalidade de um processo de controle de desbloqueio efetuado através do aparelho de processamento de imagem na Fig. 2.
[Fig. 5] Fig. 5 é um fluxograma para explicar uma terceira modalidade de um processo de controle de desbloqueio efetuado através do aparelho de processamento de imagem na Fig. 3.
[Fig. 6] Fig. 6 é um fluxograma para explicar uma quarta modalidade de um processo de controle de desbloqueio efetuado através do aparelho de processamento de imagem na Fig. 4.
[Fig. 7] Fig. 7 é um diagrama em bloco mostrando um
exemplo da configuração de um computador pessoal. Explicação dos Numerais de Referência
Aparelho de processamento de imagem 101, unidade de cálculo da quantidade de características 113, adicionador 114, unidade de transformação ortogonal 115, unidade de controle de taxa 119, unidade de adição de erro prognosticado 120, filtro de desbloqueio 124, unidade de prognóstico de dentro de quadro 126, unidade de compensação e estimativa de movimento 127, seção de cálculo de atividade 141, seção de transformação ortogonal unidade de conversão ortogonal 142 Melhores Modos de Realizar a Invenção
Daqui em diante, as modalidades da prioridade serão descritas com referência aos desenhos.
Fig. 1 é um diagrama em bloco mostrando a configuração de uma modalidade de um aparelho de processamento de imagem para o qual a presente invenção é aplicada.
Um aparelho de processamento de imagem 101 é um aparelho para codificar uma imagem de entrada através de um método de H.264/AVC (Codificação de Vídeo Avançada) e emitir a imagem codificada para, por exemplo, um aparelho de gravação ou um caminho de transmissão, que não é ilustrado, no estágio subseqüente.
O aparelho de processamento de imagem 101 é configurado para incluir uma unidade de conversão A/D 111 (Analógico/Digital), uma área de armazenamento temporário de re-arrumação de tela 112, um unidade de cálculo da quantidade de características unidade de cálculo da quantidade de características 113, um adicionador 114, uma unidade de transformação ortogonal 115, uma unidade de quantização 116, uma unidade de codificação de menos perda 117, uma área de armazenamento temporário 118, uma unidade de controle de taxa unidade de controle de taxa 119, uma unidade de adição de erro prognosticado 120, uma unidade de desfazer quantização 121, uma unidade de transformação ortogonal inversa 122, um adicionador 123, um filtro de desbloqueio filtro de desbloqueio 124, uma memória de quadro 125, unidade de prognóstico de dentro de quadro 126, e uma unidade de compensação e estimativa de movimento unidade de compensação e estimativa de movimento 127. Em adição, a unidade de cálculo da quantidade de características 113 é configurada para incluir uma seção de cálculo de atividade 141 e uma seção de transformação ortogonal
A unidade de conversão A/D 111 analógico - digital converte uma imagem de entrada proveniente de fora em uma imagem digital, e fornece a imagem digital convertida (daqui em diante, também referido com uma imagem original quando apropriado) para a área de armazenamento temporário de registro-arrumação de tela 112.
A área de armazenamento temporário de registro-arrumação de tela 112 re-arruma as imagens originais fornecidas provenientes da unidade de conversão A/D 111 nas bases de uma estrutura de GOP (Grupo de Imagens), e seqüencialmente fornece as imagens originais para a unidade de cálculo da quantidade de características 113.
A unidade de cálculo da quantidade de características 113 calcula uma quantidade de características representando a complexidade de uma imagem original. Em adição, a unidade de cálculo da quantidade de características 113 fornece, para o adicionador 114, a unidade de prognóstico de dentro de quadro 126, e a unidade de compensação e estimativa de movimento 127, a imagem original para a qual o cálculo da quantidade de características foi completado. Entre os elementos constituindo a unidade de cálculo da quantidade de características 113, a seção de cálculo de atividade 141 divide uma imagem original em uma grande quantidade de blocos, e calcula a quantidade de características da imagem original nas bases da dispersão de valores de elemento mínimo de imagem para cada bloco, conforme descrito mais tarde com referência à Fig. 4. A seção de cálculo de atividade 141 fornece informação indicando a quantidade de características calculada para o filtro de desbloqueio 124.
Em adição, como descrito mais tarde com referência à Fig. 5, a seção de transformação ortogonal 142 divide uma imagem original em uma grande quantidade de blocos, e calcula a quantidade de características da imagem original nas bases de um coeficiente de transformação obtidas efetuando a transformação ortogonal para cada um dos blocos. A seção de transformação ortogonal 142 fornece informação indicando a quantidade de características calculada para o filtro de desbloqueio filtro de desbloqueio 124.
Para cada bloco macro, o adicionador 114 obtém, a partir da unidade de prognóstico de dentro de quadro 126 ou da unidade de compensação e estimativa de movimento 127, uma de uma imagem prognosticada de dentro de quadro, prognosticada usando prognóstico de dentro de quadro (prognóstico de dentro de quadro ) e uma imagem prognosticada de entre quadros, prognosticada usando prognóstico de entre quadros (prognóstico de entre quadros, prognóstico de compensação de movimento) para uma imagem original. O adicionador 114 calcula, para Como descrito acima bloco macro, uma diferença entre a imagem original e a imagem prognosticada de dentro de quadro ou a imagem prognosticada de entre quadros, e fornece, para a unidade de transformação ortogonal 115 e para a unidade de adição de erro prognosticado 120, uma imagem de diferença formada a partir dos erros de prognóstico obtidos através do cálculo da diferença.
A unidade de transformação ortogonal 115 efetua transformação ortogonal, tal como transformada de co-seno discreta ou transformada de Karhunen-Loeve, em uma imagem de diferença para cada bloco tendo um tamanho pré-determinado, e fornece os coeficientes de transformação assim obtidos para a unidade de quantização unidade de quantização 116.
A unidade de quantização 116 faz a quantização dos coeficientes de transformação fornecidos a partir da unidade de transformação ortogonal 115 usando escalas de quantização controladas pela unidade de controle de taxa 119, e fornece os coeficientes de transformação quantizados para a unidade de codificação de menos perda 117 e para a unidade de desfazer quantização 121.
A unidade de codificação de menos perda 117 obtém informação sobre prognóstico de dentro de quadro a partir da unidade de prognóstico de dentro de quadro 126 e obtém informação sobre prognóstico de entre quadros a partir da unidade de compensação e estimativa de movimento 127. A unidade de codificação de menos perda 117 arruma, os coeficientes de transformação quantizados, a informação sobre prognóstico de dentro de quadro, a informação sobre prognóstico de entre quadros, e o similar em uma ordem pré-determinada, e efetua processamento de codificação de menos perda, tal como codificação de comprimento variável tal como CAVLC (Codificação de Comprimento Variável Adaptativa ao Contexto) ou codificação aritmética tal como CABAC (Codificação Aritmética Binária Adaptativa ao Contexto), sobre os dados arrumados. A unidade de codificação de menos perda 117 fornece os dados codificados para a área de armazenamento temporário 118 a serem armazenados nela.
A área de armazenamento temporário 118 emite, como uma imagem codificada através do método de H.264/AVC, dados fornecidos a partir da unidade de codificação de menos perda 117, por exemplo, para um aparelho de gravação ou um caminho de transmissão, que não é ilustrado, no estágio subseqüente.
A unidade de controle de taxa 119 controla, nas bases da quantidade de código de uma imagem armazenada na área de armazenamento temporário 118, uma taxa de bit, que é a quantidade de código por vez atribuída a uma imagem a ser codificada. Por exemplo, a unidade de controle de taxa 119 controla, usando um método de controle de taxa definido pelo Modelo de Teste 5 de MPEG-2 (TM5), a taxa de bit controlando o valor de uma escala de quantização, que é um valor dividindo um coeficiente de transmissão quando a unidade de quantização 116 efetua quantização. Em adição, conforme descrito acima com referência à Fig. 3, a unidade de controle de taxa 119 calcula a dificuldade de codificação conforma a quantidade de características representando a complexidade de uma imagem original, e fornece a dificuldade de codificação calculada para o filtro de desbloqueio 124.
A unidade de adição de erro prognosticado 120 calcula, como descrito mais tarde com referência à Fig. 6, a quantidade de características representando a complexidade de uma imagem nas bases dos erros de prognóstico formando uma imagem de diferença fornecida a partir do adicionador 114. A unidade de adição de erro prognosticado 120 fornece a informação indicando a quantidade de características calculada para o filtro de desbloqueio 124.
A unidade de desfazer quantização 121 desfaz a quantização dos coeficientes de transformação fornecidos a partir da unidade de quantização 116 e fornece os coeficientes de transformação desfeitos de quantização para a unidade de transformação ortogonal inversa 122.
A unidade de transformação ortogonal inversa 122 efetua transformação ortogonal inversa, tal como transformada de co-seno discreta inversa ou transformada de Karhunen-Loeve, sobre os coeficientes de transformação fornecidos a partir da unidade de desfazer quantização 121. Assim sendo, a imagem de diferença é obtida através da decodificação. A unidade de transformação ortogonal inversa 122 fornece a imagem de diferença decodificada para o adicionador 123.
O adicionador 123 obtém, a partir da unidade de prognóstico de dentro de quadro 126 ou da unidade de compensação e estimativa de movimento 127, uma imagem prognosticada de dentro de quadro ou uma imagem prognosticada de entre quadros que foi usada para gerar de uma imagem de diferença, e adiciona a imagem de diferença e a imagem prognosticada de dentro de quadro obtida ou a imagem prognosticada de entre quadros juntas. Assim sendo, uma imagem original é obtida através de decodificação. O adicionador 123 fornece a imagem decodificada (daqui em diante, referida como uma imagem decodificada, quando apropriado) para o filtro de desbloqueio 124.
Um filtro de desbloqueio 124 efetua o processamento de desbloqueio para remover ruído de bloco em uma imagem decodificada. Note que, com descrito mais tarde com referência às Figs. 3 à 6, o filtro de desbloqueio 124 controla se o processamento de desbloqueio é ou não aplicado à imagem decodificada ou controla o grau para o qual o processamento de desbloqueio é para ser aplicado à imagem decodificada, nas bases da quantidade de características obtida a partir da unidade de controle de taxa 119, da 129, da seção de cálculo de atividade 141, ou da seção de transformação ortogonal 142. O filtro de desbloqueio 124 fornece uma imagem decodificada que foi submetida ao processamento de desbloqueio para a memória de quadro 125. Em adição, o filtro de desbloqueio 124 diretamente fornece, como uma imagem a ser usada para prognóstico de dentro de quadro, uma imagem decodificada que não foi submetida ao processamento de desbloqueio, para a memória de quadro 125. A memória de quadro 125 armazena, como uma imagem a ser referida em um caso onde prognóstico de dentro de quadro ou prognóstico de entre quadros é efetuado (daqui em diante, referido como uma imagem de referência, quando apropriado), um imagem decodificada fornecida a partir do filtro de desbloqueio 124.
A unidade de prognóstico de dentro de quadro 126 efetua, para cada bloco macro, usando um adjacente elemento mínimo de imagem codificado para o bloco macro correspondente dentro do mesmo quadro armazenado na memória de quadro 125, prognóstico de dentro de quadro para gerar uma imagem prognosticada para uma imagem original. Note que, como descrito acima, um elemento mínimo de imagem de uma imagem original que não foi submetida ao processamento de desbloqueio é usado para prognóstico de dentro de quadro.
A unidade de compensação e estimativa de movimento 127 detecta, para cada bloco macro, usando uma imagem de referência em um quadro diferente armazenado na memória de quadro 125, um vetor de movimento de uma imagem original com relação à imagem de referência, e efetua compensação de movimento sobre a imagem de referência usando o vetor de movimento detectado. Conseqüentemente, a unidade de compensação e estimativa de movimento 127 efetua prognóstico de entre quadros para gerar uma imagem prognosticada de entre quadros para a imagem original.
Em adição, um modo de prognóstico a ser aplicado para cada bloco macro é determinado, por exemplo, através de uma unidade de determinação de modo, que não é ilustrado, usando uma Modo de Baixa Complexidade (modo de alta velocidade). Em um caso onde um modo de prognóstico aplicado é um modo de prognóstico para prognóstico de dentro de quadro, conforme mostrado na Fig. 1, a memória de quadro 125 e a unidade de prognóstico de dentro de quadro 126 são conectadas juntas e a unidade de prognóstico de dentro de quadro 126, o adicionador 114, e o adicionador 123 são conectados juntos. A unidade de prognóstico de dentro de quadro 126 gera uma imagem prognosticada de dentro de quadro nas bases do modo de prognóstico selecionado, e fornece a imagem prognosticada gerada para o adicionador 114 e o adicionador 123. Em adição, a unidade de prognóstico de dentro de quadro 126 fornece, como informação sobre prognóstico de dentro de quadro de um bloco macro para o qual prognóstico de dentro de quadro foi efetuado, informação sobre o modo de prognóstico aplicada e o similar para a unidade de codificação de menos perda 117.
Em adição, em um caso onde o modo de prognóstico aplicado é um modo de prognóstico para prognóstico de entre quadros, embora não mostrado na Fig. 1, a memória de quadro 125 e a unidade de prognóstico de dentro de quadro 126 são conectadas juntas e a unidade de prognóstico de dentro de quadro 126, o adicionador 114, e o adicionador 123 são conectados juntos. A unidade de compensação e estimativa de movimento 127 geram uma imagem prognosticada de entre quadros nas bases do modo de prognóstico selecionado, e fornece a imagem prognosticada de entre quadros gerada para o adicionador 114 e o adicionador 123, Em adição, a unidade de prognóstico de dentro de quadro 126 fornece, como informação sobre prognóstico de entre quadros de um bloco macro para o qual prognóstico de entre quadros foi efetuado, a informação sobre o modo de prognóstico aplicado, a unidade vetor de movimento detectado, o número de uma imagem (foto) referido para, e o similar para a unidade de codificação de menos perda 117.
A seguir, um processo de codificação efetuado através do aparelho de processamento de imagem 101 na Fig. 1 será descrito com referência à um fluxograma da Fig. 2. Note que este processo é iniciado, por exemplo, quando a entrada de uma imagem a partir do lado de fora para o aparelho de processamento de imagem 101 é iniciada. No estágio SI, o aparelho de processamento de imagem 101 inicia a codificação de uma imagem. Isto é, através do início das operações descritas acima com referência à Fig. 1 por unidades individuais do aparelho de processamento de imagem 101, codificação de uma imagem de entrada através do método de H.264/AVC é iniciada. Em adição, um processo de controle de desbloqueio, que será descrito mais tarde com referência às Figs. 3 à 6, também é iniciado.
No estágio S2, o aparelho de processamento de imagem 101 determina se todas as imagens foram codificadas. Codificação de imagens é efetuada até ser determinado no estágio S2 que todas as imagens de entrada a partir do lado de foram codificados. Em um caso onde é determinado que todas as imagens de entrada a partir do lado de fora forma codificados, o processo de codificação termina.
A seguir, uma primeira modalidade de um processo de controle de desbloqueio efetuado através do aparelho de processamento de imagem 101 no processo do processo de decodificação, que foi descrito acima com referência à Fig. 2, será descrito com referência à um fluxograma da Fig. 3.
No estágio S21, a unidade de controle de taxa 119 calcula Complexidade. Especificamente, a unidade de controle de taxa 119 obtém uma imagem codificada (foto) api9 da área de armazenamento temporário 118. A unidade de controle de taxa 119 calcula uma dificuldade de codificação Complexidade como uma quantidade de características representando a complexidade da imagem, usando a seguinte equação (1):
Complexidade = PictureGeneratedBis χ
PictureAverageQuant... (1)
Aqui, PictureGeneratedBis representa a quantidade de código gerado da imagem. Em adição, PictureAverageQuant representa a média de escalas de quantização aplicada para a imagem e é calculada através da seguinte equação (2):
[Expressão 1]
j MBNum
PictureAverageQuant= MBNum Σ Quantk -(2)
Aqui, MBNum representa o número de blocos macros da i. Em adição, Quantk representa uma escala de quantização aplicada a um bloco de ordem k bloco macro dentro da imagem e é calculado através da seguinte equação (3):
[Expressão 2]
QPk
Quantk = 2 6
Aqui, QPk representa um parâmetro de quantização do bloco de ordem k bloco macro dentro da imagem. Isto é, Complexidade calculada pela equação (1) é um valor
obtido multiplexando a quantidade de código gerado da imagem com a média de escala de quantizações. Assim sendo, Complexidade se torna menor conforme o movimento de uma imagem é diminuído. Em adição, Complexidade se torna maior conforme o movimento da imagem é aumentado.
No estágio S22, o filtro de desbloqueio 124 ajusta os parâmetros envolvendo o processamento de desbloqueio. Especificamente, a unidade de controle de taxa 119 fornece informação indicando a Complexity Calculada para o filtro de desbloqueio 124. O filtro de desbloqueio 124 ajusta o valor de disable_deblocking_filter_idc, slice_alpha_c0_offset_div2, e slice_beta_offset_div2 de acordo com o valor da complexidade de uma imagem a ser submetida ao processamento de desbloqueio.
Disable_deblocking_filter_idc é um parâmetro para configuração se o processamento de desbloqueio é ou não para ser aplicado e pode ser configurado para cada fatia de dados da imagem. Disable_deblocking_filter_idc é configurado para 0 em um caso onde o processamento de desbloqueio é aplicado, configurado para 1 em um caso onde processamento de desbloqueio não é aplicado, e configurado para 2 em um caso onde o processamento de desbloqueio não é aplicado em um fronteira entre fatias de dados da imagem.
Slice_alpha_c0_offset_div2 é um parâmetro para ajustar o
grau para o qual processamento de desbloqueio é aplicado a uma fronteira entre blocos em um caso onde a fatia é dividida em blocos de 4 χ 4 elementos mínimos de imagem e pode ser configurado para cada fatia, Slice_alpha_c0_offset_div2 pode ser configurado com um intervalo de -6 à +6. Conforme o valor é diminuído, o grau para o qual o processamento de desbloqueio é aplicado se torna mais baixo. Conforme o valor é aumentado, o grau para o qual o processamento de desbloqueio é aplicado se torna mais alto.
Slice_beta_offset_div2 é um parâmetro para ajustar o grau para o qual o processamento de desbloqueio é aplicado a um elemento mínimo de imagem dentro de um bloco em um caso onde uma fatia é dividida em blocos de 4 χ 4 elementos mínimos de imagem e pode ser configurado para cada fatia. Slice_beta_offset_div2 pode ser configurado dentro de um intervalo de -6 à +6. Conforme o valor é diminuído, o grau para o qual o processamento de desbloqueio é aplicado se torna mais baixo. Conforme o valor é aumentado, o grau para o qual o processamento de desbloqueio é aplicado se torna mais alto.
No estágio S22, por exemplo, em um caso onde Complexity é menos do que um pré-determinado limite The, disable_deblocking_filter_idc é configurado para 1. Isto é, para uma imagem no qual somente ruído de bloco leve é gerado e movimento muito pequeno ocorre, o processamento de desbloqueio não é aplicado.
Em adição, por exemplo, em um caso onde Complexity é igual a ou mais do que o limite The, o valor de slice_alpha_c0_offset_div2 e slice_beta_offset_div2 são ajustados de acordo com o valor de Complexity. Por exemplo, conforme o valor de Complexidade se torna menor, slice_alpha_c0_offset_div2 e slice_beta_offset_div2 são configurados para os valores mais próximos de -6. Em adição, conforme o valor de Complexidade se torna maior, slice_alpha_c0_offset_div2 e slice_beta_offset_div2 são configurados para valores mais próximos de +6. Isto é, para uma imagem na qual o ruído de bloco é menos provável de ser gerado e uma pequena quantidade de movimento ocorre, o grau para o qual o processamento de desbloqueio é aplicado, é diminuído. Em adição, para uma imagem na qual o ruído de bloco e mais provável de ser gerado e uma grande quantidade de movimento ocorre, o grau para o qual o processamento de desbloqueio é aplicado, é aumentado.
No estágio S23, o filtro de desbloqueio 124 efetua o processamento de desbloqueio, e o processo de controle de desbloqueio termina. Uma imagem decodificada que foi submetida ao processamento de desbloqueio é armazenada como uma imagem de referência na memória de quadro 125. Note que em um caso onde disable_deblocking_filter_idc é configurado para 1, o processamento de desbloqueio não é efetuado.
Conforme descrito acima, de acordo com Complexity, o processamento de desbloqueio é apropriadamente efetuado sobre uma imagem decodificada, e uma imagem de referência da qual o ruído de bloco foi removido é gerado enquanto a textura é mantida. Assim sendo, a qualidade de imagem de uma imagem que é submetida à codificação de prognóstico de entre quadros usando a imagem de referência, pode ser melhorada.
Note que o valor do limite THc pode se mudado de acordo com o tipo de imagem, isto é, de acordo com se a imagem é uma imagem I, uma imagem P, ou uma imagem B.
Em adição, as dificuldades de codificação de uma imagem P e uma imagem B, que são imagens codificadas usando prognóstico de entre quadros, podem ser normalizadas usando Complexidade de uma imagem I, que é uma imagem codificada usando prognóstico de dentro de quadro antes da imagem, e o processamento de desbloqueio pode ser controlado nas bases dos valores normalizados (Norm_Complexity). Norm_ComplexityPpic, que é obtido normalizando Complexidade de uma imagem P, e Norm_CopmlexityBpic, que é obtido normalizando Complexidade de uma imagem B, são calculados através das seguintes equações (4) à (8):
ComplexityIpic = PictureGeneratedBislpic χ PictureAverageQuantIpic... (4) ComplexityPpic = PictureGeneratedBisPpic χ
PictureAverageQuantPpic... (5)
ComplexityBpic = PictureGeneratedBisBpie χ PictureAverageQuantBpic... (6)
Norm_ComplexityPpic = ComplexityPpic/Complexitylpic... (7) Norm_ComplexityBpic = ComplexityBpic/Complexitylpic... (8)
Note que Complexitylpic, PictureGeneratedBisIpic, e PietureAverageQuantlpie representam a dificuldade de codificação, a quantidade de código gerada, e a média de escalas de quantização de uma imagem P, respectivamente. Em adição, ComplexityPpic, PictureGeneratedBisPpic, e PictureAverageQuantPpic representam a dificuldade de codificação, a quantidade de código gerada, e a média de escalas de quantização de uma imagem P, respectivamente. Em adição, ComplexityBpic, PictureGeneratedBisBpic, e PictureAverageQuantBpic representam a dificuldade de codificação, a quantidade de código gerada, e a média de escalas de quantização de uma imagem B, respectivamente.
Por exemplo, em um caso onde uma imagem a ser submetida ao processamento de desbloqueio é uma imagem P ou uma imagem B, se Norm_Complexity é menos do que um limite pré-determinado Thcn, disable_deblocking_filter_idc é configurado para 1. Isto é, para uma imagem na qual somente ruído de bloco leve é gerado e movimento muito pequeno ocorre, o processamento de desbloqueio não é aplicado.
Em adição, por exemplo, em um caso onde Norm Complexity é igual à ou mais do que o limite Thcn, os valores de slice_alpha_cO_offset_div2 e slice_beta_offset_div2 são ajustados de acordo com o valor de Norm Complexity. Por exemplo, conforme o valor de Norm_Complexity se torna menor, slice_alpha_c0_offset_div2 e slice_beta_offset_div2 são configurados para valores mais próximo de -6. Em adição, conforme o valor de Norm_Complexity se torna maior, slice_alpha_c0_offset_div2 e slice_beta_offset_div2 são configurados para valores mais próximos de +6. Isto é, para uma imagem na qual o ruído de bloco é menos provável de ser gerado e uma pequena quantidade de movimento ocorre, o grau para o qual o processamento de desbloqueio é aplicado, é diminuído. Em adição, para uma imagem na qual o ruído de bloco e mais provável de ser gerado e uma grande quantidade de movimento ocorre, o grau para o qual o processamento de desbloqueio é aplicado, é aumentado.
Já que Norm_ComplexityPpic e Norm_ComplexityBpic representam o movimento de uma imagem P e uma imagem B em um caso onde o movimento de uma imagem I é configurado para Iea complexidade do movimento de cada imagem pode assim ser extraída com mais segurança, o processamento de desbloqueio pode ser efetuado mais apropriadamente. Assim sendo, a qualidade de imagem de uma imagem que é submetida à codificação de prognóstico de entre quadros ainda pode ser melhorada.
Note que o valor do limite Thcn pode ser mudado de acordo com o tipo de imagem, isto é, de acordo com se a imagem é uma imagem P ou uma imagem B.
Em adição, é preferível que uma imagem I a ser usada para normalização, seja uma imagem I que foi mais recentemente codificado antes da imagem em movimento ou uma imagem I referida na codificação da imagem.
Em adição, para uma imagem I, o processamento de desbloqueio é controlado nas bases da Complexidade, como descrito acima.
A seguir, uma segunda modalidade de um processo de controle de desbloqueio efetuado através do aparelho de processamento de imagem 101 no processo do processo de codificação, que foi descrito acima com referência à Fig. 2, será descrito com referência a um fluxograma da Fig. 4.
No estágio S41, a seção de cálculo de atividade 141 calcula Atividade. Especificamente, a seção de cálculo de atividade 141 calcula Atividade como uma quantidade de características representando a complexidade de uma imagem a ser codificada, usando a seguinte equação (9):
[Expressão 3]
I MBNum
Activhy = MBNum Σ actk ...(9)
Aqui, actk representa a atividade de um bloco de ordem k macro da imagem e é calculada pela seguinte equação (10):
[Expressão 4]
ClCtk = 1 +jmin^ (var sblk) -·· (10)
Aqui, um bloco macro é dividido em quatro blocos secundários formados por 8x8 elementos mínimos de imagem e a variável sblk representa um valor indicando dispersão de valores de elemento mínimo de imagem de um bloco secundário dividido e é calculado pelas seguintes equações (11) e (12):
[Expressão 5]
ι 64 _ 2
var sblk =~γτΣ (Pk-P) - (U)
64 a=/ _ j « Aqui, Pk representa o valor de elemento mínimo de imagem de um bloco de ordem k elemento mínimo de imagem dentro de um bloco secundário.
Em adição, variável sblk é obtido para cada bloco secundário nos dois casos, um modo de codificação de DCT de quadro e um modo de codificação de DCT de campo, e minsblk =1,8 (variável sblk) na equação 910) representa o valor mínimo do variável sblk obtido.
Isto é, Atividade calculada pela equação (9) é uma média das atividades de blocos macros individuais na imagem e é um valor, por exemplo, a ser usado para controle de taxa definido pelo Modelo de Teste 5 de MPEG-2 (TM5). Assim sendo, Atividade se torna menor conforme uma mudança nos valores de elemento mínimo de imagem é diminuída. Em adição, Atividade se torna maior conforme uma mudança nos valores de pie é aumentada.
No estágio S42, o filtro de desbloqueio 124 ajusta parâmetros envolvendo o processamento de desbloqueio. Especificamente, a seção de cálculo de atividade 141 fornece informação indicando a Atividade calculada para o filtro de desbloqueio 124. O filtro de desbloqueio 124 ajusta os valores de disable_deblocking_filter_idc, slice_alpha_c0_offset_div2 e slice_beta_offset_div2 de acordo com o valor de Atividade de uma imagem a ser submetida ao processamento de desbloqueio.
Por exemplo, em um caso onde Atividade é menos do que um pré-determinado limite Tha, disable_deblocking_filter_idc é configura para 1. Isto é, para uma imagem limpa na qual somente ruído de bloco leve é gerado e uma muito pequena quantidade de mudança ocorre nos valores de elemento mínimo de imagem, o processamento de desbloqueio não é aplicado.
Em adição, por exemplo, em um caso onde Atividade é igual à ou mais do que o limite Tha, os valores de slice_alpha_c0_offset_div2 e slice_beta_offset_div2 são ajustados de acordo com o valor de Atividade. Por exemplo, conforme o valor de Atividade se torna menor, slice_alpha_c0_offset_div2 e slice_beta_offset_div2 são configurados para valores próximos de -6. Em adição, conforme os valor de Atividade se torna maior, slice_alpha_c0_offset_div2 e slice_beta_offset_div2 são configurados para valores próximos à +6. Isto é, para uma imagem na qual o ruído de bloco é menos provável de ser gerado e uma pequena quantidade de mudança ocorre nos valores de elemento mínimo de imagem, o grau para o qual o processamento de desbloqueio é aplicado, é diminuído. Em adição, para uma imagem complicada na qual o ruído de bloco é mais provável de ser gerado e uma grande quantidade de mudança ocorre nos valores de elemento mínimo de imagem, o grau para o qual o processamento de desbloqueio é aplicado, é aumentado.
No estágio S43, como no processamento descrito acima do estágio S23 na Fig. 3, o processamento de desbloqueio é efetuado, e o processo de controle de desbloqueio termina.
Como descrito acima, de acordo com Atividade, o processamento de desbloqueio é apropriadamente efetuado em uma imagem decodificada, e uma imagem de referência da qual o ruído de bloco foi removido é gerado enquanto a textura é mantida. Assim sendo, a qualidade de imagem de um ai que é submetida à codificação de prognóstico de entre quadros usando a imagem de referência, pode ser melhorada.
Em adição, em um caso onde Atividade é usada, antes de uma imagem ser codificada, uma quantidade de características representando a complexidade da imagem, pode ser obtida
Ainda mais, como descrito acima, já que Atividade é um valor usado no controle de taxa definido pelo Modelo de Teste 5 de MPEG-2 (TM5), por exemplo, Atividade pode ser calculada pela unidade de controle de taxa 119.
Em adição, no lugar da Atividade descrita acima, isto é, a média das atividades de blocos macros individuais, um valor refletindo o tamanho de dispersão de valores de elemento mínimo de imagem da imagem, tal como, o valor total das atividades dos blocos macros individuais, podem ser usadas.
desbloqueio efetuado pelo aparelho de processamento de imagem 101 no processo do processo de codificação, que foi descrito acima com referência à Fig. 2, será descrito com referência a um fluxograma de Fig. 5.
calcula a soma total de coeficientes de transformação ortogonal. Especificamente, a seção de transformação ortogonal 142 divide uma imagem a ser codificada em blocos tendo um tamanho pré-determinado. Note que, daqui em diante, um exemplo no qual a divisão em blocos de 4 χ 4 elementos mínimos de imagem é efetuada e transformada de Hadamard é empregada com transformação ortogonal será descrita. A seção de transformação ortogonal 142 efetua transformada de Hadamard de cada bloco usando a seguinte equação (13):
imagem de 4 χ 4 elementos mínimos de imagem antes da transformada de Hadamard ser efetuada, e P' representa uma matriz de 4 χ 4 coeficientes de transformação após a transformada de Hadamard ser efetuada. Em adição, H representa uma matriz de Hadamard de quarta ordem representa pela seguinte equação (14), e HT representa uma matriz transposta de um matriz de Hadamard de quarta ordem.
5
Uma terceira modalidade de um processo de controle de
No estágio S61, a seção de transformação ortogonal 142
Para' = HTPH... (13)
Aqui, para representa um matriz de elemento mínimo de
[Expressão 6]
H4 =
'1111 1 1-11-1
\
-(14)
1 1-1-1 J -1 -1 1 A seção de transformação ortogonal 142 calcula, para cada bloco, a soma Ph dos valores absolutos de coeficientes de transformação outros do que um coeficiente de transformação de coordenadas (0,0) da matriz de coeficiente de transformação P' (um coeficiente de transformação de um componente Dc (corrente direta)). Isto é, Ph representa a soma de valores absolutos de coeficientes de transformação de componentes de AC (corrente alternada) que são correlacionados com relação à quantidade de código entre coeficientes de transformação dentro de um bloco após a transformada de Hadamard ser efetuada. Ainda mais, a seção de transformação ortogonal 142 calcula a soma total DCtotal de Ph dos blocos inteiros na imagem. Note que uma menor DCtotal é obtida conforme uma imagem se torna simples, na qual as componentes de freqüência estão concentradas. Em adição, um maior DCtotal é obtido conforme uma imagem se torna complicada, na qual as componentes de freqüência estão dispersas.
No estágio S62, o filtro de desbloqueio 124 ajusta os parâmetros envolvendo o processamento de desbloqueio. Especificamente, a seção de transformação ortogonal 142 fornece informação indicando a DCtotal calculada para o filtro de desbloqueio 124. O filtro de desbloqueio 124 ajusta os valores de disable_deblocking_filter_idc, slice_alpha_c0_offset_div2, e slice_beta_offset_div2 de acordo com o valor da DCtotal de uma imagem a ser submetida ao processamento de desbloqueio.
Por exemplo, em um caso onde a DCtotal é menos do que um limite pré-determinado Thd, disable_deblocking_filter_idc é configurada para 1. Isto é, para uma bem simples imagem na qual somente ruído leve é gerado e as componentes de freqüência estão concentradas, o processamento de desbloqueio não é aplicado.
Em adição, por exemplo, em um caso onde DCtotal é igual a um ou mais do que o limite Thd, os valores de slice_alpha_c0_offset_div2 e slice_beta_offset_div2 são ajustados de acordo com o valor de DCtotal. Por exemplo, conforme o valor de DCtotal se torna menor, slice_alpha_c0_offset_div2 e slice_beta_offset_div2 são configurados para valores próximos de -6. Em adição, conforme os valor de DCtotal se torna maior, slice_alpha_c0_offset_div2 e slice_beta_offset_div2 são configurados para valores próximos à +6. Isto é, para uma imagem simples na qual o ruído de bloco é menos provável de ser gerado e as componentes de freqüência estão concentradas, o grau para o qual o processamento de desbloqueio é aplicado, é diminuído. Em adição, para uma imagem complicada na qual o ruído de bloco é mais provável de ser gerado e as componentes de freqüência estão dispersas, o grau para o qual o processamento de desbloqueio é aplicado, é aumentado.
No estágio S63, como no processamento descrito acima do estágio S23 na Fig. 3, o processamento d é efetuado, e o processo de controle de desbloqueio termina.
Note que, embora na descrição acima, um exemplo no qual a transformada de Hadamard é empregada como transformação ortogonal, foi descrita, outros tipos de transformação ortogonal, tal como, por exemplo, DCT (transformada de co-seno discreta), pode ser empregada.
Em adição, independente do tipo de transformação ortogonal, os tamanhos dos blocos é a ser obtido através da divisão, não são limitados à 4x4 elementos mínimos de imagem descrita acima. Por exemplo, os tamanhos dos blocos podem ser configurados para tamanhos desejados, tal como, por exemplo, 8x8 elementos mínimos de imagem.
Conforme o descrito acima, de acordo com a DCtotal, o processamento de desbloqueio é apropriadamente efetuado sobre uma imagem decodificada, e a imagem de referência da qual o ruído de bloco foi removido é gerada enquanto a textura é mantida. Assim sendo, a qualidade de imagem que é submetida à codificação de prognóstico de entre quadros usando a imagem de referência, pode ser melhorada. Em adição, já que a DCtotal é a soma total dos coeficientes de transformação resolvido nas componentes de freqüência através da aplicação de transformação ortogonal, a correlação com relação à dificuldade de codificação da imagem, é aumentada. Assim sendo, a complexidade de uma imagem pode se expressa com uma lata precisão comparada com a Activity.
Ainda mais, em um caso onde DCtotal é usada, antes de uma imagem ser codificada, uma quantidade de características representando a complexidade da imagem, pode ser obtida.
Em adição, no lugar da seção de transformação ortogonal 142, usando a unidade de transformação ortogonal 115, os coeficientes de transformação ortogonal podem ser calculados.
Ainda mais, no lugar d DCtotal descrita acima, isto é, a soma total dos coeficientes de componentes AC, valores refletindo os tamanhos dos coeficientes de transformação ortogonal das componentes AC da imagem, tal como, por exemplo, a média dos coeficientes de transformação ortogonal das componentes de AC, podem ser usadas.
Uma quarta moda de um processo de controle de desbloqueio efetuado através do aparelho de processamento de imagem 101 no processo do processo de codificação, que foi descrito acima com referência à Fig. 2, será descrito com referência a um fluxograma da Fig. 6.
No estágio S81, a unidade de adição de erro prognosticado 120 calcula a soma total de erros de prognóstico. Especificamente, em um caso onde uma imagem a ser codificação, isto é, uma imagem para a qual uma diferença é calculada pelo adicionador 114, é uma imagem P ou uma imagem B, a unidade de adição de erro prognosticado 120 adiciona, para uma imagem, os erros de prognóstico fornecidos do adicionador 114. Assim sendo, a soma total Et dos erros de prognóstico é calculada. Note que, quanto mais facilmente o movimento de uma imagem é prognóstico, isto é, quanto menor e mais simples o movimento da imagem é, menor o Et é. Em adição, quanto mais difícil o movimento de uma imagem é prognóstico,isto é, quanto maior e mais complicado o movimento da imagem é, maior o Et é.
No estágio S82, o filtro de desbloqueio 124 ajusta os parâmetros envolvendo o processamento de desbloqueio. Especificamente, a unidade de adição de erro prognosticado 120 fornece, ao filtro de desbloqueio 124, informação indicando a soma total Et calculada dos erros de prognóstico. O filtro de desbloqueio 124 ajusta os valores de disable_deblocking_filter_idc, slice_alpha_c0_offset_div2, e
slice_beta_offset_div2 de acordo com o valor de Et.
Por exemplo, em um caso onde Et é menos do que um limite pré-determinado The. Disable_deblocking_filter_idc é configurado para 1. Isto é, para uma imagem na qual somente ruído de bloco leve é gerado e movimento muito pequeno ocorre, o processamento de desbloqueio não é aplicado.
Em adição, por exemplo, em um caso onde Et é igual à ou mais do que o limite The, o valor de slice_alpha_c0_offset_div2 e slice_beta_offset_div2 são ajustados de acordo com o valor de Et. Por exemplo, conforme o valor de Et se torna menor, slice_alpha_c0_offset_div2 e slice_beta_offset_div2 são configurados para valores mais próximos de -6. Em adição, conforme o valor de Et se torna maior, slice_alpha_c0_offset_div2 e slice_beta_offset_div2 são configurados para valores mais próximo de +6. Isto é, para uma imagem mais simples na qual o ruído de bloco é menos provável de ser gerado e uma pequena quantidade de movimento ocorre, o grau para o qual o processamento de desbloqueio é aplicado é diminuído. Em adição, para uma imagem complicada na qual o ruído de bloco é mais provável de ser gerado e uma grande quantidade de movimento ocorre, o grau para o qual o processamento de desbloqueio é aplicado, é aumentado.
No estágio S83, como no processamento descrito acima do estágio S23 na Fig. 3, o processamento de desbloqueio é efetuado, e o processo de controle de desbloqueio termina.
Como descrito acima, de acordo com Et, o processamento de desbloqueio é apropriadamente efetuado em uma imagem decodificada, e uma imagem de referência da qual o ruído de bloco foi removido é gerado enquanto a textura é mantida. Assim sendo, a qualidade de imagem de uma imagem que é submetida à codificação de prognóstico de entre quadros usando a imagem de referência, pode ser melhorada.
Em adição, em um caso onde Et é usado, ante de uma imagem ser codificada, uma quantidade de características representando a complexidade da imagem, pode ser obtida.
Ainda mais, no lugar do Et descrito acima, isto é, a soma total dos erros de prognóstico, os valores refletindo os tamanhos dos erros de prognóstico para a imagem, tal como, por exemplo, a média dos coeficientes de transformação ortogonal, pode ser usada.
Conforme descrito acima, de acordo com a característica da imagem, o processamento de desbloqueio pode ser efetuado apropriadamente. Como um resultado, a qualidade de imagem subjetiva da imagem pode ser melhorada.
Note que, embora na descrição acima, um exemplo no qual qualquer um de Complexidade, Atividade; DCtotal, e Et seja individualmente usado tal que os valores de disable_deblocking_filter_idc, slice_alpha_c0_offset_div2, e slice_beta_offset_div2 possam ser ajustados, a complexidade da imagem pode ser determinada através da unidade de seleção de uma grande quantidade de valores tal que os valore de disable_deblocking_filter_idc, slice_alpha_c0_offset_div2, e
slice_beta_offset_div2 possam se ajusta nas bases do resultado.
Em adição, embora na descrição acima, em exemplo, no qual a codificação é efetuada através do método de H.264/AVC foi descrita, a presente invenção é também aplicável a um caso onde codificação é efetuada através de um método de codificação usando um filtro de desbloqueio do tipo em laço, tal como, por exemplo, um método de MPEG-4 (Grupo de Especialistas em Codificação de Imagem em Movimento fase 4) ou de VC-I (Codificação e Decodificação de Vídeo)
A série de processamento descrita acima pode ser efetuada por hardware ou software. Em um caso onde a série de processamento é efetuada por software um programa constituindo o software é instalado a partir de um meio de gravação de programa em um computador construído em hardware dedicado ou, por exemplo, em um computador pessoal de propósito geral capaz de efetuar várias funções nas bases de vários programas instalados nele.
Fig. 7 é um diagrama em bloco mostrando um exemplo da configuração de um computador pessoal 300 que efetua a ser de processamento descrita acima através de um programa, Uma CPU (Um de Processamento Central) 301 efetua vários tipos de processamento de acordo com um programa armazenado em um ROM (Memória de Somente Leitura) 302 ou uma unidade de gravação 308. Um programa a ser efetuado pela CPU 301, dados e o similar são armazenados em uma RAM (Memória de Acesso Randômico) 303, quando apropriado. A CPU 301, a ROM 302, e a RAM 303 são conectadas cada um a outra através de uma barra de comunicação 304.
Uma interface de entrada/saída 305 é conectada à CPU 301 através da barra de comunicação 304. Um unidade de entrada 306 constituída por um teclado, um mouse, um microfone, e o similar e uma unidade de saída 307 constituída por um mostrador, um alto-falante, e o similar são conectados à interface de entrada/saída 305. A CPU 301 efetua vários tipos de processamento da com as instruções entradas através da unidade de entrada 306. A CPU 301 emite um resultado de processamento para a unidade de saída 307.
A unidade de gravação 308 conectada à interface de entrada/saída 305 é constituída por, por exemplo, um disco rígido. A unidade de gravação 308 armazena um programa a ser efetuado pela CPU 301 e vários dados. Uma unidade de comunicação 309 se comunica com um aparelho externo através de uma rede, tal como a Internet ou uma rede de área local.
Em adição, um programa pode ser obtido através da unidade de comunicação 309 e armazenado na unidade de gravação 308.
Quando um meio removível 311, tal como um disco magnético, um disco óptico, um disco magnético - óptico, ou uma memória de semicondutor, é instalado em um mecanismo de operação 319 conectado à interface de entrada/saída 305, o mecanismo de operação 310 opera o meio removível 311 e obtém um programa e dados gravados no meio removível 311. O programa e dados obtidos são transferidos para e armazenados na unidade de gravação 308 quando necessário.
Um meio de gravação de programa que é instalado em um computador e que armazena um programa executável pelo computador é constituído pelo meio removível 311, o qual é um meio de armazenamento, tal como um disco magnético (incluindo um disco flexível), um disco óptico(incluindo um CD-ROM (Memória de Somente Leitura de Disco) ou um DVD (Disco Versátil digital), um disco magnético-óptico, ou uma memória de semicondutor, a ROM 302 na qual um programa é temporariamente ou permanentemente armazenada, ou o disco rígido formando a unidade de gravação 308, como mostrado na Fig. 7. Um programa é armazenada no meio de gravação de programa usando um meio de comunicação com fio ou sem fio, tal como uma rede de área local, a Internet, ou transmissão difusa de satélite digital, tal como um roteador ou um modem, quando necessário.
Note que nesta especificação, os estágios descrevendo um programa armazenado no meio de gravação de programa incluem não somente processamento efetuado em série no tempo de acordo com a ordem escrita mas também processamento efetuado em paralelo ou independentemente, o processamento sendo não necessariamente efetuado em série no tempo.
Ainda mais, uma modalidade da presente invenção não é limitada às modalidades descritas acima, e várias mudanças podem ser feitas sem fugir da essência da presente invenção.