Relatório Descritivo da Patente de Invenção para "PROCESSO DE CODIFICAÇÃO E PROCESSO DE DECODIFICAÇÃO DE SINAL DE IMAGEM, PROCESSO DE CODIFICAÇÃO E PROCESSO DE DECODIFI- CAÇÃO DE FONTE DE INFORMAÇÃO, APARELHO PARA OS MESMOS, PROGRAMAS PARA OS MESMOS,E, MEIOS DE ARMAZENAGEM QUE ARMAZENAM OS PROGRAMAS". Campo Técnico
A presente invenção refere-se a um processo de codificação de sinal de imagem para fácil e eficientemente codificar um sinal de imagem que representa um sinal de inteiro de Gaussian; um processo de decodifica- ção de sinal de imagem para decodificar os dados codificados gerados pelo processo de codificação de sinal de imagem; um processo de codificação de fonte de informação para fácil e eficientemente codificar um sinal de inteiro de Gaussian e um aparelho correspondente; um processo de decodificação de fonte de informação para decodificar os dados codificados gerados pelo processo de codificação de fonte de informação e um aparelho correspon- dente; um programa de codificação de fonte de informação para implementar o processo de codificação de fonte de informação e um meio de armazena- gem legível de computador que armazena o programa; e um programa de decodificação de fonte de informação para implementar o processo de deco- dificação de fonte de informação e um meio de armazenagem legível de computador que armazena o programa.
A prioridade é reivindicada no Pedido de Patente Japonesa N0 2006-307512, depositado em 14 de novembro de 2.006, cujos teores são in- corporados aqui como referência. Técnica Antecedente
Um sinal de Gaussian é um sinal cuja probabilidade de geração segue uma distribuição normal (também denominado "distribuição de Gaus- sian"), em que a distribuição normal aparece em várias cenas nos campos matemáticos e de engenharia e assim é uma distribuição extremamente im- portante.
É admitido que um sinal de Gaussian como um alvo de codifica- ção aqui possui valores de sinal de inteiro. Adicionalmente, em geral, é ad- mitido que a média do sinal é zero e os valores de sinal são "i- id"(independente e identicamente distribuído).
Muitos processos para codificar um sinal inteiro são conhecidos.
Por exemplo, códigos de Golomb são amplamente usados pelos quais um sinal que segue uma distribuição exponencial (que pode ser denominado de " distribuição de Laplacian" ou "distribuição geométrica",e, é uma distribuição exponencial bilateral a mesmo que afirmado de outro modo) pode ser efici- entemente codificado sem usar uma tabela para codificação ou decodifica- ção, em que os códigos podem ser muito facilmente processados e instanta- neamente decodificados. Em adição, qualquer valor de entrada de inteiro grande pode ser codificado usando os códigos de Golomb.
A representação de código dos códigos de Golomb varia depen- dendo do parâmetro de código de Golomb (denominado "g" aqui) que possui um valor de inteiro maior do que ou igual a I.
A Tabela na figura 20 mostra os códigos de Golomb (parâmetro de código de Golomb g=1.....6) correspondente ao inteiro z=0.....10. Os có- digos de Golomb possui uma relação para cada parâmetro de código g, de tal modo que quando o valor do inteiro ζ (a ser codificado) aumenta pelo va- Ior de g, a extensão do código aumenta em 1).
Como o aumento da extensão do código é moderado de acordo com o aumento no parâmetro de código de Golomb g, um relativamente grande valor do parâmetro de código de Golomb g é apropriado para codifi- car uma distribuição suave. Em contraste, a medida que a extensão do códi- go torna-se rápida de acordo com a redução no parâmetro de código de Go- lomb g, um relativamente pequeno valor do parâmetro de código de Golomb g é apropriado para codificar uma distribuição pronunciada que converge em zero.
Em um sinal de imagem, uma diferença no brilho entre pixels que são adjacentes temporária ou espacialmente ou um coeficiente de trans- formação ortogonal do valor de brilho de cada pixel é um exemplo do sinal que segue a distribuição exponencial e os códigos de Golomb podem ser usados para codificação de tal sinal.
Por outro lado, os códigos de Huffman utilizam uma tabela de código, podem ser instantaneamente decodificados e a quantidade média de seu código é mais curta (isto é, códigos compactos) entre todos os códigos de extensão variável. Adicionalmente, os códigos aritméticos podem com- primir uma fonte de sinal estático para um limite lógico (que pode ser superi- or em comparação com os códigos compactos) pelo uso de um processo diferente daquele usado pelos códigos de extensão variável.
O documento de patente I como mostrado mais adiante relata sobre uma invenção para quantização de vetor de uma quantidade indicativa de uma imagem de acordo com uma árvore de busca binária usando uma rede neural e esta invenção refere-se à uma técnica para codificar uma ima- gem por meio de códigos de Huffman dinâmicos.
A figura 21 mostra distribuições de freqüência da distribuição normal e da distribuição exponencial, em que a média é 0 e a dispersão é 16. O eixo vertical mostra a probabilidade da freqüência e o Iogaritmo é usa- do de modo a mostrar ambas as partes finais de cada distribuição em uma maneira facilmente compreensível. Como mostrado na figura 21, na escala de Iogaritmo vertical, a distribuição normal possui uma forma parabólica e a distribuição exponencial possui uma forma triangular.
A fim de codificar tal distribuição de inteiro bilateralmente simé- trica, cada valor deverá ser convertido em um inteiro maior do que ou igual a zero usando, na maioria das vezes, um processo de representar cada valor usando informação de sinal (positivo/negativo) e informação de valor absolu- to separadamente ou uma conversão relativamente simples como mostrada abaixo.
Quando os valores antes e após a conversão acima são, respec- tivamente, indicados por a e b, a conversão é representada como: b = 2a-1 quando a>0 b = 2a quando a<0
De acordo com tal conversão, a = -3, -2, -1, 0, 1, 2, 3 são con- vertidos respectivamente em b = 6, 4, 2,1, 3, 5. Quando os códigos de Golomb são usados para codificar um sinal de Gaussian, a eficiência de codificação é consideravelmente degrada- da em comparação com os códigos de Huffman e os códigos aritméticos. Isto é um problema essencial causado porque a probabilidade de geração de sinal admitida para os códigos de Golomb não segue uma distribuição nor- mal, porém segue uma distribuição exponencial.
Similar aos códigos de Golomb, existem muitos tipos de códigos que não necessitam de uma tabela de código e podem ser códigos de Fibo- nacci, códigos de Elias ou códigos de Exp-Golomb. Todavia, não existem códigos aos quais uma pressuposição que a probabilidade de geração de sinal segue a distribuição normal é aplicada.
O Documento Não-Patente 1 (mostrado mais adiante) descreve na página 8 que " contrário ao que acontece para distribuições geométricas e geométricas de dois lados, não há código instantâneo, simples, para a dis- tribuição normal". Isto é, não há nenhum código ao qual uma pressuposição que a probabilidade de geração de sinal segue a distribuição normal é apli- cada.
Portanto, se a eficiência de codificação for prioridade dada na codificação de um sinal de Gaussian, convencionalmente, os códigos de Huffman ou códigos aritméticos têm sido usados.
Todavia, isto também apresenta os seguintes problemas: (i) Os códigos aritméticos requerem uma tabela de freqüência, que não é requerida pelos códigos de Golomb tanto no codificador como no decodifica- dor.
(ii) Os códigos de Huffman requerem uma tabela de código ou uma tabela de freqüência, que não é requerida pelos códigos de Golomb, tanto no codifica- dor como no decodificador.
(iii) É necessário para ambos os tipos de códigos determinar previamente uma faixa em que a codificação de cada valor de entrada não pode ser reali- zada sem um processo de exceção, isto é, para detectar uma faixa de valor de entrada.
(IV) Para ambos os tipos de códigos, a quantidade de processamento é mai- or do que aquela dos códigos de Golomb, em que a quantidade de proces- samento dos códigos aritméticos é particularmente grande.
Em adição, o Documento Não-patente 2 mostrado abaixo propõe códigos de Golomb híbridos pelo que uma fonte de sinal de Gaussian gene- ralizada pode ser instantaneamente decodificada. Embora seja possível co- dificar e decodificar qualquer valor de entrada de inteiro neste caso, é reque- rida uma estrutura complexa e visa uma distribuição que seja mais pronunci- ada do que a distribuição exponencial mais pronunciada do que a distribui- ção normal.
Adicionalmente, se a facilidade do processamento de codifica-
ção for prioridade dada na codificação de um sinal de Gaussian, convencio- nalmente, como mostrado no Documento Não-patente I, os códigos de Go- lomb têm sido usados no custo da eficiência da codificação. Todavia este caso apresenta um problema que a otimização do parâmetro de código Go- Iomb é necessária.
Documento de Patente 1 Pedido de Patente Japonesa Não-Examinado, Pri- meira Publicação N0 200I-5967
Documento Não-patente 1:P Boldi, S Vigna: "Compressed perfect embedded skip Iists for quick inverted-index lookups", Proceedings of String Processing and Information Retrieval, 12a Conferência Internacional, pp. 1-15, 2005 Documento Não-patente 2: S Xue, Y Xu, B Oelmann: "Hybrid Golomb codes for a group of quantised GG sources", IEE Procee- dings, Vision Image and Signal Processing, Vol. I50, n°4, pp. 256-260, 2003 Descrição da Invenção Problema a ser Solucionado pela Invenção
Embora códigos universais codifiquem eficientemente vários ti- pos de fontes de sinal gerais tais como imagens e vozes, que seguem a dis- tribuição normal, não existem códigos aos quais uma pressuposição que a probabilidade de geração de sinal segue a distribuição normal seja aplica- da,como mostrado no Documento Não-patente 1.
Portanto, a codificação do sinal de Gaussian pelo uso dos códi- gos de Golomb pode ser antecipada. Como acima descrito, um sinal que segue a distribuição expo- nencial pode ser eficientemente codificado usando códigos; nenhuma tabela para codificação e decodificação é necessária para os códigos de Golomb; os códigos de Golomb podem ser muito facilmente processados e instanta- neamente decodificados; e ainda, qualquer valor de entrada de inteiro maior pode ser codificado pelos códigos de Golomb.
Todavia, uma probabilidade de geração de sinal da distribuição exponencial é atribuída como uma admissão aos códigos de Golomb. Por- tanto, se um sinal de Gaussin for codificado usando os códigos de Golomb, a eficiência de codificação é consideravelmente degradada em comparação com aquela dos códigos de Huffman ou códigos aritméticos.
Portanto, convencionalmente, quando codificar um sinal de Gaussin, os códigos de Huffman ou códigos aritméticos são usados.
Todavia, quando usar os códigos de Huffman ou códigos aritmé- ticos, existem problemas tais que uma tabela de freqüência, que não é re- querida pelos códigos de Golomb, é necessária; a faixa do valor de entrada deverá ser determinada previamente; e a quantidade de processamento é maior do que os códigos de Golomb.
Em consideração dos problemas acima, o Documento Não- patente 2 propõe os códigos de Golomb híbridos. Todavia, este caso requer uma estrutura complexa e visa uma distribuição que é mais pronunciada do que a distribuição exponencial mais pronunciada do que a distribuição nor- mal.
Em adição, o Documento Não-patente 1 dá prioridade à facilida- de do processo de codificação e utiliza os códigos de Golomb pela otimiza- ção do parâmetro de código de Golomb, sem considerar a eficiência de codi- ficação. Todavia, neste caso, a eficiência de codificação é degradada em comparação com os códigos de Huffman ou códigos aritméticos e é neces- sário otimizar o parâmetro de código de Golomb. A luz das circunstâncias acima, um objetivo da presente inven-
ção é proporcionar novas técnicas de codificação e decodificação de fonte de informação para fácil e eficientemente codificar e decodificar um sinal de inteiro de Gaussian.
Meios para Solucionar Problema
(I)ApareIho de codificação da fonte de informação da presente invenção
A fim de fácil e eficientemente codificar um sinal de inteiro de Gaussian, o aparelho de codificar fonte de informação da presente invenção inclui: (i)um dispositivo de entrada para introduzir uma seqüência de valor de um sinal de inteiro de Gaussian como um alvo de codificação; (ii) um disposi- tivo de conversão de par de inteiro para transformar os valores de sinal inclu- ídos na seqüência de valor de sinal (introduzido pelo dispositivo de entrada) em pares de inteiro, cada qual tendo dois inteiros, dispostos na ordem de entrada; (iii) um dispositivo de mapeamento para considerar cada um dos pares de inteiro (obtidos pela conversão de dispositivo de conversão de par de inteiro) como um ponto da malha nas coordenadas bidimensionais, e, obter valores de inteiro maiores do que ou igual a zero pela realização de um mapeamento de bidimensional para unidimensional em que quanto mais cur- ta a distância de cada ponto da malha até a origem, menor o valor atribuído ao ponto da malha pelo mapeamento ; e (iv)um dispositivo codifi- cador para codificar os valores de inteiro (obtidos pelo dispositivo de mape- amento) usando códigos que são usados para codificação de uma fonte de informação que segue uma distribuição exponencial.
Na estrutura acima, o dispositivo de codificação pode codificar os valores de inteiro (obtidos pelo dispositivo de mapeamento) usando códi- gos de Golomb que são apropriados para codificar uma fonte de informação que segue uma distribuição exponencial. Em tal caso, a fim de automatica- mente instalar um parâmetro de código de Golomb, o aparelho pode ainda incluir: (i) um dispositivo de computação de dispersão para computar uma dispersão dos valores de sinal introduzidos pelo dispositivo de entrada; e (ii) um dispositivo de determinação de parâmetro de código para determinar um parâmetro de código dos códigos de Golomb, que possui um valor em pro- porção à dispersão computada pelo dispositivo de computação de dispersão.
O aparelho de codificação de fonte de informação da presente invenção pode ter um alvo de codificação que é um sinal de imagem indi- cando um sinal inteiro de Gaussian. Em tal caso, o aparelho de codificação de fonte de informação da presente invenção funciona como um aparelho de codificação de sinal de imagem.
O processo de codificação de fonte de informação da presente invenção, que é implementado quando o dispositivo acima opera, pode tam- bém ser implementado por um programa de computador. Tal programa de computador pode ser provido por armazená-lo em um meio de armazena- gem legível de computador apropriado ou por meio de uma rede,e, pode ser instalado e operado em um dispositivo de controle tal como uma CPU de modo a implementar a presente invenção.
(2) Aparelho de decodificação de fonte de informação da presente invenção A fim de decodificar os dados codificados gerados pelo aparelho de codificação de fonte de informação da presente invenção, o aparelho de decodificação da fonte de informação da presente invenção inclui: (i)um dis- positivo de decodificação para decodificar os valores de inteiro pela decodifi- cação de seus dados decodificados, que são gerados pelo aparelho de codi- ficação de fonte de informação da presente invenção; (ii) um dispositivo de restauração para restaurar os pares de inteiros (que foram mapeados para obter os valores de inteiro) pela sujeição dos valores de inteiro (decodifica- dos pelo dispositivo de decodificação) a um mapeamento unidimensional para bidimensional, que é um mapeamento inverso do mapeamento bidi- mensional para unidimensional usado pelo aparelho de codificação de fonte de informação da presente invenção; e (iv) um dispositivo de saída para emi- tir inteiros que formam cada par de inteiro (restaurado pelo dispositivo de restauração), do primeiro elemento para o seu segundo elemento.
Para a estrutura acima, se o aparelho de codificação de fonte de informação da presente invenção gerar dados codificados dos valores de inteiro usando os códigos de Golomb, o dispositivo de decodificação decodi- fica os dados dos valores de inteiro pela decodificação dos correspondentes códigos de Golomb.
Também para a estrutura acima, se o aparelho de codificação da fonte de informação da presente invenção determinar um parâmetro de có- digo dos códigos de Golomb, que tem um valor em proporção a uma disper- são dos valores de sinal do alvo de codificação, então o aparelho de decodi- ficação ainda inclui um dispositivo de entrada de parâmetro de código de Golomb para introduzir um parâmetro de código de Golomb como acima de- terminado, como parâmetro de código de Golomb usado para a decodifica- ção.
Se o aparelho de codificação de fonte de informação da presen- te invenção gerar dados codificados de um alvo de codificação que é um sinal de imagem indicando um sinal de inteiro de Gaussian, então, o apare- Iho de decodificação de fonte de informação da presente invenção funciona como um aparelho de decodificação de sinal de imagem.
O processo de decodificação de fonte de informação da presen- te invenção, que é implementado quando os dispositivos acima são opera- dos, pode também ser implementado por um programa de computador. Tal programa de computador pode ser provido pela armazenagem do mesmo em um meio de armazenagem legível de computador apropriado ou por meio de uma rede e pode ser instalado e operado em um dispositivo de con- trole tal como uma CPU de modo a implementar a presente invenção. Efeito Vantajoso da Invenção Como acima descrito, de acordo com a presente invenção, é
possível fácil e eficientemente codificar e decodificar um sinal de inteiro de Gaussian, que não tem sido capaz de ser eficientemente codificado usando os conhecidos códigos de Golomb ou similar embora um sinal de inteiro de Gaussian aparece em várias cenas em campos matemáticos e de engenha- ria.
Em adição, geralmente, quando uma fonte de informação se ex- pande, a eficiência de codificação da codificação de extensão variável rele- vante é melhorada. A conversão entre os pares de inteiro e inteiros empre- gados na presente invenção não é nada porém uma expansão bidimensional da fonte de informação, e, assim a eficiência de codificação pode ser melho- rada pela presente invenção. Breve Descrição dos Desenhos A figura 1 é um diagrama mostrando um exemplo de mapea- mento bidimensional para unidimensional na presente invenção.
A figura 2 é um diagrama explicando uma tabela que armazena correspondentes relações entre os pares de inteiro e inteiros.
A figura 3 mostra a estrutura de um aparelho de codificação de
fonte de informação e um aparelho de decodificação de fonte de informação como concretizações da presente invenção.
A figura 4 mostra um fluxograma executado pelo aparelho de codificação de fonte de informação da concretização. A figura 5 é um diagrama explicando o algoritmo para implemen-
tar o mapeamento bidimensional para unidimensional realizado na presente invenção.
A figura 6 é um diagrama mostrando os resultados de uma expe- riência realizada para verificar a eficácia da presente invenção. A figura 7 é também um diagrama mostrando os resultados de
uma experiência realizada para verificar a eficácia da presente invenção.
A figura 8 é também um diagrama mostrando os resultados de uma experiência realizada para verificar a eficácia da presente invenção.
A figura 9 é também um diagrama mostrando os resultados de uma experiência realizada para verificar a eficácia da presente invenção.
A figura 10 é também um diagrama mostrando os resultados de uma experiência realizada para verificar a eficácia da presente invenção.
A figura 11 mostra um fluxograma executado pelo aparelho de decodificação de fonte de informação da concretização. A figura 12 mostra um fluxograma detalhado executado pelo a-
parelho de codificação de fonte de informação da concretização.
A figura 13 também mostra um fluxograma detalhado executado pelo aparelho de codificação de fonte de informação da concretização.
A figura 14 também mostra um fluxograma detalhado executado pelo aparelho de codificação de fonte de informação da concretização.
A figura 15 também mostra um fluxograma executado pelo apa- relho de codificação de fonte de informação da concretização. A figura 16 também mostra um fluxograma detalhado executado pelo aparelho de codificação de fonte de informação da concretização.
A figura 17 também mostra um fluxograma detalhado executado pelo aparelho de decodificação de fonte de informação da concretização. A figura 18 também mostra um fluxograma detalhado executado
pelo aparelho de decodificação de fonte de informação da concretização.
A figura 19 também mostra um fluxograma detalhado executado pelo aparelho de decodificação de fonte de informação da concretização.
A figura 20 é um diagrama explicando os códigos de Golomb. A figura 21 é um diagrama explicando a distribuição normal e a
distribuição exponencial. Listagem de Referência
1 aparelho de codificação de fonte de informação
2 aparelho de decodificação de fonte de informação 10 unidade de entrada de sinal
11 unidade de conversão de par de inteiro
12 unidade de mapeamento bidimensional para uni- dimensional
13 codificador de Golomb
20 unidade de entrada de dados codificados
21 decodificador de Golomb
22 unidade de mapeamento inverso de unidimensional para bidimensional
23 unidade de saída
Melhor Modalidade para Realizar a Invenção No processo de codificação de fonte de informação da presente
invenção, o sinal de inteiro de Gaussian1 que é introduzido na ordem de a-i, a2, a3, a4..., é convertido em pares de inteiro, cada qual tendo dois elementos tais como (a-ι, a2), (a3) a4)...de acordo com a ordem de entrada. Cada par de inteiro é representado por (x,y). Em seguida, o par de inteiro (x,y) é submetido a mapeamento de
bidimensional para unidimensional em que quanto mais curta a distância de cada ponto da malha até a origem, menor o valor atribuído ao ponto da ma- lha pelo mapeamento, de modo que o inteiro correspondente (valor)z (maior do que ou igual a 0) seja obtido.
De acordo com tal mapeamento de bidimensional para unidi- mensional em que,quanto mais curta a distância de cada ponto da malha a origem, menor o valor atribuído ao ponto da malha, cada par de inteiro x, y é convertido em inteiro ζ como mostrado na figura I.
O processo de mapeamento acima pode ser realizado preparan- do uma tabela (ver figura 2), que armazena correspondentes relações entre os ares de inteiro e os valores de inteiro, previamente e referindo-se à tabela usando o par de inteiro (x, y) como chave, obtendo deste modo o inteiro ζ como o resultado de mapeamento para o par de inteiro (x, y).
Em contraste com uma tabela de freqüência requerida quando utilizar os códigos de Huffman ou códigos aritméticos, a tabela acima prepa- rada não depende de fonte de informação como o alvo de codificação e po- de ser usada de modo geral.
Em adição, o processo de mapeamento acima pode ser realiza- do pela repetição:(i) computar a distância mínima do ponto da malha a ori- gem como ponto de partida até os pontos da malha não-processados (isto é, ainda não dispostos),e, (ii) dispor cada ponto da malha tendo a distância mí- nima da origem em uma ordem específica e atribuindo um valor de inteiro individual a cada ponto da malha disposto, obtendo-se deste modo o inteiro ζ como resultado de mapeamento para cada par de inteiro (x, y).
Utilizando o processo acima, a correspondência entre cada par de inteiro (x, y) e cada inteiro ζ pode ser estabelecida sem admitir os limites superior e inferior do valor de sinal.
O processo de codificação da fonte de informação da presente invenção utiliza o mapeamento de bidimensional para unidimensional, em que quanto mais curta a distância de cada ponto da malha até a origem, menor o valor atribuído ao ponto da malha, pela seguinte razão. O valor ζ do ponto da malha, que é distante da origem por dis-
tância L, é aproxiamdamente igual ao número de pontos da malha dentro de um círculo cujo raio é L e é também aproximadamente igual à área do circu- lo.isto é, "ζ = πΙ_2". Isto é uma aproximação geral (o número real dos pontos da malha é muito grande),e "aproximadamente igual " é eficaz quando, por exemplo, ζ é algumas centenas.
A probabilidade para os pontos da malha pode ser originalmente representada usando uma distribuição normal, isto é, "f oc exp(-aL2)" em que a é uma constante. Portanto, usando a relação acima "ζ = πΙ_2", uma distribu- ição exponencial "f oc exp (-az/π)" para ζ é obtida.
Consequentemente, um mapeamento reversível para converter uma fonte de sinal de Gaussian em uma fonte de sinal de uma distribuição exponencial é realizada pelo mapeamento de bidimensional para unidimen- sional (usado no processo de codificação de fonte de informação da presen- te invenção) em que quanto mais curta a distância de cada ponto de reticulo até a origem, menor o valor atribuído ao ponto da malha.
Portanto, no processo de codificação de fonte de informação da presente invenção, o inteiro ζ é obtido pela aplicação do mapeamento de bidimensional para unidimensional ao par de inteiro (x, y) e então codificado usando códigos (por exemplo, códigos de Golomb) que são usados para codificar uma fonte de informação que segue a distribuição exponencial.
Como acima descrito, um sinal que segue a distribuição expo- nencial pode ser eficientemente codificado usando códigos de Golomb, em que nenhuma tabela de código é necessária para codificação e decodifica- ção relevantes, os códigos de Golomb podem ser muito facilmente proces- sados e instantaneamente decodificados e qualquer valor de entrada de in- teiro grande pode ser codificado. Portanto, de acordo com o processo de codificação de fonte de
informação da presente invenção, um sinal de inteiro de Gaussian pode ser fácil e eficientemente codificado.
Também no processo de decodificação da fonte de informação da presente invenção, os dados codificados para inteiros, que são introduzi- dos como " z\, z2, z3, Z4,...", são decodificados de modo que cada valor de inteiro z, que tem sido codificado usando o processo de codificação de fonte de informação da presente invenção, é decodificado na ordem de entrada de dados codificados.
No processo acima, se os dados codificados para os inteiros fo- rem gerados pelo processo de codificação de fonte de informação da pre- sente invenção que emprega os códigos de Golomb, então os dados codifi- cados são submetidos à decodifcaão de Golomb de modo a obter o valor de inteiro decodificado.
A seguir, o inteiro ζ decodificado é submetido a um mapeamento de unidimensional para bidimensional, que é um mapeamento inverso do mapeamento de bidimensional para unidimensional usado no processo de codificação de fonte de informação da presente invenção, de modo que o par de inteiro x, y (isto é, como entrada do primeiro mapeamento) seja res- taurado.
Quando o mapeamento de bidimensional para unidimensional usado no processo de codificação da fonte de informação da presente in- venção é executado e então o inteiro decodificado ζ é obtido, o acima ma- peamento de unidimensional para bidimensional é realizado pela especifica- ção do par de inteiro (x, y) atribuído a z.
Portanto, similar ao processo de mapeamento realizado no pro- cesso de codificação de fonte de informação da presente invenção, o mape- amento de unidimensional para bidimensional pode ser realizado preparando uma tabela (ver figura 2), que armazena correspondente relação entre os pares de inteiro e os valores de inteiro, previamente, e referindo-se à tabela usando o ζ inteiro como uma chave, deste modo obtendo o par de inteiro (x, y) como resultado de mapeamento para o inteiro z. Em adição, o processo de mapeamento acima pode ser realiza-
do pela repetição (i)computar a distância mínima do ponto da malha a ori- gem como o ponto de partida até ponto da malha que não tem ainda sido disposto,e, (ii) dispor cada ponto da malha tendo a distância mínima da ori- gem em uma ordem específica e atribuindo um valor de inteiro individual a cada ponto da malha, obtendo deste modo o par de inteiro (x, y) como o re- sultado do mapeamento para cada inteiro z.
Na etapa seguinte do processo de decodificação da fonte de in- formação da presente invenção, os valores de inteiro x e y, que formam um par de inteiro (x, y) são emitidos em seqüência (x, e então y).
Como descrito acima, de acordo com o processo de decodifica- ção da fonte de informação da presente invenção, os dados codificados, que 5 são obtidos pela codificação que emprega códigos usados para codificar uma fonte de informação que segue a distribuição exponencial, são decodifi- cados de modo que o sinal de inteiro de Gaussian possa ser fácil e eficien- temente decodificado.
Abaixo, a presente invenção será explicada em mais detalhes de 10 acordo com uma concretização em que uma fonte de sinal de Gaussian é convertido em uma fonte de sinal exponencial por meio da expansão bidi- mensional e formação da seqüência bidimensional da fonte de sinal de Gaussian e o resultado convertido é codificado usando os códigos de Go- Iomb apropriados para a fonte de sinal exponencial.
A figura 3 mostra a estrutura de um aparelho de codificação de
fonte de informação 1 e um aparelho de decodificação de fonte de informa- ção 2 como concretizações da presente invenção.
Como mostrado na figura I, o aparelho de codificação de fonte de informação 1 de acordo com a presente invenção inclui uma unidade de entrada de sinal 10 na qual uma seqüência de valor de sinal de um sinal de inteiro de Gaussian (como um alvo de codificação) é introduzida; uma unida- de de conversão de par de inteiro 11 para converter os valores de sinal (en- trada através da unidade de entrada de sinal 10) nos pares de inteiro (cada qual tendo dois elementos), na ordem de entrada; uma unidade de mapea- mento de bidimensional para unidimensional 12 para aplicar o mapeamento de bi-dimensionnal para unidimensional aos pares de inteiro obtidos pela conversão da unidade de conversão de par de inteiro 11, em que no mape- amento, quanto mais curta a distância de cada ponto da malha até a origem, menor é o valor atribuído ao ponto da malha, obtendo deste modo valores de inteiro maiores do que ou iguais a zero; e um codificador de Golomb 13 para codificar os valores de inteiro obtidos pela unidade de mapeamento de bidi- mensional para unidimensional 12 pelo uso de códigos de Golomb. Por outro lado, o aparelho de decodificação de fonte de informa- ção 2 de acordo com a presente invenção inclui uma unidade de entrada de dados codificados 20 na qual os dados codificados para valores de inteiro são introduzidos; um decodificador de Golomb 21 para submeter os dados codificados, que tem sido introduzidos através da unidade de entrada de da- dos codificados 20, a decodificação de Golomb de modo a restaurar os valo- res de inteiro; uma unidade de mapeamento inverso de unidimensional para bi-dimensinal 22 para restaurar os pares de inteiro quando o processo de mapeamento for executado pela unidade de mapeamento de bidimensional para unidimensional 12 no aparelho de codificação de fonte de informação 1 de acordo com a presente invenção,e, os valores de inteiro decodificados pelo decodificador de Golomb 21 tem sido obtidos, em que os pares de intei- ro restaurados pela unidade 22 correspondem à entrada de mapeamento de bidimensional para unidimensional para gerar os valores de inteiro decodifi- cados pelo decodificador de Golomb 21,e, são restaurados pela especifica- ção dos pares de inteiros correspondentes aos valores de inteiro decodifica- dos; e uma unidade de saída seqüencial 23 para emitir os inteiros, que for- mam os pares de inteiro restaurados pela unidade de mapeamento inverso de unidimensional para bidimensional 22, na ordem do primeiro elemento para o segundo elemento de cada par.
A figura 4 mostra um exemplo do fluxograma executado pelo aparelho de codificação de fonte de informação 1 tendo a estrutura acima descrita de acordo com a presente invenção.
Com referência ao fluxograma, o processo executado pelo apa- relho de codificação de fonte de informação I com base na presente inven- ção será explicado em mais detalhes.
No aparelho de codificação de fonte de informação 1 com base na presente invenção, na primeira etapa S 101,os valores de sinal de um sinal de inteiro de Gaussian são introduzidos por cada par de dois elementos a partir da cabeça do sinal.
Na etapa seguinte, S102, o sinal de inteiro de Gaussian, que é introduzido na ordem de a-ι, &2 -»a3, a4 é convertido em pares de intei- ro, cada qual tendo dois elementos tais como (a-i, 82), (83, aÀ),... em confor- midade com a ordem de entrada. Cada par de inteiro é representado por
(x.y)·
Na seguinte etapa S103, o par de inteiro (x,y) é submetido ao mapeamento de bidimensional para unidimensional em que quanto mais cur- ta a distância de cada ponto da malha até a origem, menor o valor atribuído ao ponto da malha pelo mapeamento, de modo que o inteiro (valor) z (maior do que ou igual a 0 seja obtido.
Na etapa seguinte S104, o inteiro z é submetido à codificação de Golomb pelo uso de um parâmetro de código de Golomb g que é provido separadamente,e, na etapa seguinte S105, os dados codificados obtidos são emitidos.
Na seguinte etapa S106, é determinado se a introdução do sinal de inteiro de Gaussian tem ou não sido completada. Se não estiver ainda sido completada, a operação retoma para a etapa S101 novamen- te,enquanto se estiver completa, a operação é terminada.
No caso acima, o parâmetro de código de Golomb g é provido separadamente. Todavia, as características estatísticas do sinal de entrada podem ser repesquisadas previamente e o parâmetro g pode ser apropria- damente determinado com base no resultado de pesquisa.
Por exemplo, se o sinal de entrada tiver uma dispersão σ2 ,então o parâmetro de código de Golomb g pode ser definido por:
G = 2 loge2 π σ2
em que g é apropriadamente arredondado.
Como acima explicado com referência à figura 20, quando reali-
zar a codificação usando os códigos de Golomb, um grande valor do parâ- metro de código de Golomb g é apropriado para codificar uma distribuição suave, enquanto um pequeno valor do parâmetro de código de Golomb g é apropriado para codificar uma distribuição pronunciada que converge em 30 zero. Portanto, quando o parâmetro de código de Golomb g é definido de acordo com tal regra, um valor apropriado do parâmetro de código de Go- lomb g pode ser automaticamente determinado. Abaixo, o mapeamento de bidimensional para unidimensional realizado na etapa S 103 será explicado.
No mapeamento de bidimensional para unidimensional (ver o exemplo na figura I), quanto mais curta a distância de cada ponto da malha até a origem, menor é o valor de inteiro z atribuído ao ponto da malha. Por- tanto, o mapeamento inverso de unidimensional para bidimensional para os primeiros nove valores z é mostrado na figuras 2.
Geralmente, existe uma pluralidade de pontos da malha tendo a mesma distância a partir da origem. Todavia, qualquer processo de numera- 10 ção pode ser aplicado a tais pontos da malha. Como mostrado na figura I, a numeração ao longo de uma rotação na direção dos ponteiros do relógio a partir do início ao final pode ser realizada. Todavia, qualquer processo de numeração com base em uma regra uniforme pode ser usado de modo que o lado do codificador possa realizar uma conversão inversa correspondente. 15 Em adição, embora seja necessário admitir os limites superior e
inferior dos valores de entrada x e y, uma tabela apropriada como mostrada na figura 2 pode ser preparada previamente, de modo que a expansão bidi- mensional, formação de seqüência unidimensional e seus processos inver- sos podem facilmente ser realizados apenas com referência à tabela.
Para uso prático, os limites superior e inferior dos valores de en-
trada podem ser admitidos na maioria dos casos. Por exemplo, se um sinal diferencial para uma imagem de 8 bits é visado, então é possível que -255< x e y < 255. Neste caso, uma tabela tendo 26I, 121 elementos é provida, em que:
(255-(-255)+ 1)2= 5112 = 261.121
Mesmo quando os limites superior e inferior dos valores de en- tradas não podem ser admitidos, a correspondência infinita entre (x,Y) e z é possível por dispor os pontos da malha na ordem de proximidades à origem ilimitadamente usando pseudo-códigos gerados por um algoritmo como mos- trado na figura 5. O algoritmo será explicado em mais detalhes mais tarde.
Na figura 5, l(x,y) indica a distância entre a origem e o ponto (x,y), em que uma distância Euclidean é geralmente usada como distância: i(x.y)=(x2+y2)1/2
Ao invés, uma distância de Euciidean ao quadrado, que pode ser mais facilmente processado, pode ser usado, e produz o mesmo resultado de
1(x,y)= x2+y*
Em adição, a função de distância (x,y) pode não ser isotrópi- co.Se os elementos da fonte de informação de Gaussian de entrada não es- tiverem estritamente iid (distribuído independente e identicamente) e houver uma correlação entre os mesmos, então a seguinte fórmula pode ser usada empregando uma constante apropriada a:
1(x,y)=x2+y2+axy
em que a<0 quando há uma correlação positiva entre x e y e a>0 quando há uma correlação negativa entre x e y.
Adicionalmente, de acordo com o formato da distribuição bidi- mensional dos pares de sinal de entrada, norma L1 tal como:
1(x,y)=|x|+ly
pode ser usada ou, mais comumente, a seguinte norma Ly (a força y de ca- da elemento de sinal) pode ser usada;
Fórmula 1 l(x,y) = I xly +I y Iy
Abaixo, resultados de uma experiência realizada para verificar a eficácia da presente invenção serão mostrados.
A figura 6 mostra a distribuição de frequência de uma fonte de sinal que é muito próxima de um sinal de Gaussian obtido pelo processa- 25 mento de uma imagem real. O eixo vertical mostra o logaritmo da probabili- dade relevante. É óbvio que a distribuição de frequência da fonte de sinal corrente possui uma forma parabólica, isto é, segue-se uma distribuição normal.
A figura 7 é um gráfico obtido por extrair em seqüência os ele- mentos da fonte de sinal acima como pares de dois valores numéricos (x, y), e representando a sua distribuição de frequência em uma forma tridimensio- nal. Similarmente, o eixo vertical mostra logaritmo da probabilidade relevan- te. O gráfico mostra um parabolóide de revolução formado pela revolução de uma parábola.
A figura 8 mostra linhas de contorno do parabolóide de revolu- ção. As linhas de contorno são quase concêntricas embora uma ligeira cor- relação positiva seja observada entre as mesmas.
No gráfico tendo uma escala de logaritmo vertical, a distribuição exponencial mostra uma forma triangular como mostrado na figura 21. Toda- via, após o sinal ser convertido para ter uma distribuição de um lado por meio das fórmulas acima descritas:
B = 2a-1 quando a>0
B = -2a quando a<0,
uma linha quase reta inclinada para a direita é obtida.
A figura 9 mostra uma distribuição de frequência de um valor unidimensional z,que é obtido pela sujeição do par de valor (x, y) a um ma- peamento de bidimensional para unidimensional de acordo com a presente invenção, em uma escala de logaritmo vertical similar à figura 6.
O gráfico mostra uma linha quase reta inclinada para direita, que indica que a distribuição quase coincide com uma distribuição exponencial. Portanto, a codificação eficiente usando os códigos de Golomb pode ser an- tecipada.
Os resultados de codificação real serão mostrados abaixo. A fonte de informação empregada inclui 13.509.440 amostras e a quantidade de informação computada por meio de entropia é 64.035.731 (bits). Isto é um valor teórico e a quantidade de código gerado pela codificação real sempre excede o valor.
A fonte de informação acima foi submetida a um mapeamento de bidimensional para unidimensional de acordo com a presente invenção,e, o resultado representado por meio do parâmetro de código de Golomb g=7 era 64.503.706 (bits), de modo que a codificação podia ser realizada com 30 um aumento da quantidade de código de 0,73% (isto é, eficiência da codifi- cação de 0,9927).
Em um processo convencional realizado como um exemplo comparativo, a mesma fonte de informação foi submetida a codificação de Golomb sem nenhum mapeamento específico, em que os códigos de Go- Iomb em g=1 produziram o resultado mínimo, que era 68.898.893 (bits) (isto é, eficiência de codificação de 0,9294).
Os outros quatro tipos de dados foram submetidos a similares
experiências.
A figura 10 mostra as eficiências de codificação comparadas ob- tidas pela experiência. Entre o dado I a dado 5 na figura 10, o dado I corres- ponde ao resultado acima descrito. A eficiência de codificação da presente 10 invenção era sempre 90% ou mais. Com relação à média da eficiência de codificação, a presente invenção tinha uma média de 94,1% enquanto pro- cesso convencional tinha uma média de 87,4%, de modo que havia uma di- ferença aproximadamente de 7-ponto entre os mesmos.
Consequentemente, a eficácia do processo de codificação reali- zado pelo aparelho de codificação de fonte de informação I de acordo com a presente invenção podia ser verificada, em que o aparelho de codificação da fonte de informação I codifica um sinal de inteiro de Gaussian com base no fluxograma da figura 4.
A figura 11 mostra um exemplo do fluxograma executado pelo aparelho de decodificação da fonte de informação 2 tendo a estrutura mos- trada na figura 3, de acordo com a presente invenção.
Com referência ao fluxograma, o processo executado pelo apa- relho de decodificação da fonte de informação 2 com base na presente in- venção será explicado em mais detalhes.
No aparelho de decodificação de fonte de informação 2 com ba-
se na presente invenção, na primeira etapa S201, elementos dos dados co- dificados (códigos de Golomb de valores de inteiro z) gerados pelo aparelho de codificação da fonte de informação 1 com base na presente invenção são introduzidos um por um a partir da cabeça dos dados codificados.
Na etapa seguinte S202, os códigos de Golomb de entrada são
decodificados usando o parâmetro de código de Golomb g, de modo a obter os valores de inteiro z maiores do que ou iguais a zero. Na etapa seguinte S203, os valores de inteiro z são submetidos a mapeamento de unidimensional para bidimensional de modo a mapear os inteiros z nos pares de inteiro x,y. Na etapa seguinte S204, cada par de intei- ro x,y é emitido na ordem de x para y.
Quando o mapeamento de bidimensional para unidimensional
usado no aparelho de codificação de fonte de informação I com base na pre- sente invenção for executado e então o inteiro z decodificado for obtido, o mapeamento unidimensional para bidimensional na etapa S203 é realizado pela especificação do par de inteiro x,y atribuído a z.
Na etapa seguinte S205, é determinado se a entrada dos códi-
gos de Golomb tem ou não sido completada. Se não tiver ainda sido comple- tada, a operação retorna para a etapa S201 novamente, enquanto que se tivesse sido completada, a operação é terminada.
Concretizações Objetivas Abaixo, concretizações objetivas dos processos executados nas
etapas S102 e S103 no fluxograma da figura 4 e os processos executados nas etapas S203 e S204 no fluxograma da figura 11 serão mostrados.
(1) Concretização objetiva do processo executado na etapa S102 no fluxo- grama da figura 4
A figura 12 mostra um fluxograma detalhado do processo execu-
tado na etapa S102 no fluxograma da figura 4.
Na etapa relevante S102,quando receber os dois valores de si- nal de um sinal de inteiro de Gaussian, que são introduzidos através da eta- pa S101, na primeira etapa S301 do fluxograma da figura 12, o valor do sinal 25 x na cabeça dos dados recebidos é armazenado na memória x e na seguinte etapa S302, o outro valor de sinal y dos dados recebidos é armazenado na memória y.
Na etapa seguinte S303, os valores de sinal x e y são, respecti- vamente, recuperados das memórias x e y e são emitidos como um par de inteiro (x, y).
Consequentemente, na etapa S102, o fluxograma da figura 12 é executado de modo que os valores na seqüência de sinal de um sinal de inteiro de Gaussian sejam emitidos dois por dois como pares.
(2) Concretização objetiva do processo executado na etapa S102 no fluxo- grama da figura 4
As figuras 13 a 16 mostram fluxogramas detalhados do processo executado na etapa S102 no fluxograma da figura 4.
Na etapa relevante S103, o mapeamento de bidimensional para unidimensional implementado pelo algoritmo mostrado na figura 5 é realiza- do de modo a mapear o par de inteiro x,y no inteiro z e o inteiro z é então emitido.
Isto é, como mostrado no fluxograma da figura 13, na primeira
etapa S40I, os valores de inteiro xO e yO como alvo de mapeamento são for- necidos e, na etapa seguinte S402, uma memória de armazenagem de pon- to da malha Z é esvaziada e um variável z é inicializado para 0.
Na etapa seguinte S403, um processo A definido por um fluxo- grama da figura 14 é executado e na etapa seguinte S404, um processo B definido por um fluxograma da figura 15 é executado.
No processo B, um processo X definido por um fluxograma da figura 16 é executado. No processo X, se uma condição for satisfeita, é de- terminado que um inteiro z como resultado de mapeamento do par de inteiro (xO.yO) tenha sido obtido e o inteiro z é emitido. A operação então processa- se para etapa S405 e é finalizada.
Em contraste, se a condição não for satisfeita, nenhum dado é emitido e a operação retorna para a etapa S403,isto é, para o processo A.
Embora os processos A, B e X sejam explicados em mais deta- 25 lhes, uma sua breve explicação é tal que, no processo A, para pontos da malha (x,y) que não haviam ainda sido dispostos e ainda tido um inteiro atri- buído, o valor mínimo dmin da distância entre a origem e cada ponto da ma- lha é computado, em que "-dmin<x<dmin" e "-dmin<y<",que são colocados no processo B. Geralmente, uma pluralidade de pontos da malha produz o 30 valor mínimo dmin.
Portanto, no processo B, cada um dos pontos da malha é extraí- do de acordo com uma ordem de extração específica,e, um valor de inteiro é atribuído a cada ponto da malha extraído enquanto o valor de inteiro atribuí- do é incrementado por um para cada atribuição.
Para a atribuição acima no processo X, é determinado se o en- trada (xO,yO) tem aparecido ou não como um ponto da malha (x,y). Se for 5 determinado que (xO.yO) tenha aparecido, o inteiro z atribuído ao ponto da malha relevante x,y é determinado como resultado de mapeamento.Se for determinado que (xO,yO)não tenha aparecido, dmin é incrementado por a- quele no processo B, de modo que uma operação similar seja repetida até o entrada (xO.yO) aparecer.
Abaixo, o processo A será explicado com referência ao fluxo-
grama da figura 14.
No processo A, entre os pontos da malha (x,y) na faixa bidimen- sional em que cada um de x e y é maior do que ou igual a-dmin e é também menor do que ou igual a dmin (dmin é um inteiro incrementado por um no 15 processo B), aqueles que ainda não tenham sido dispostos são colocados como alvos de processamento e o valor mínimo da distância da origem é computado para os alvos.
Na primeira etapa S50I, o valor de inteiro dmin é inicializado para
0. Na etapa seguinte S502, aquele ajustado de valores x e y é gerado para ciclo de execução (de S502 a S508) dentro da faixa de "-dmin<x<dmin" e dmin<y<dmin" de acordo com a ordem de seleção de valor específico, em que a mudança de valor é sempre 1.
Na etapa seguinte S503, é determinado se o ajuste gerado (x,y) tem sido ou não armazenado na memória de armazenagem de ponto da ma- 25 Iha Z. Se estiver já armazenado, a operação avança para a etapa S508 e se não estiver ainda armazenado, a operação avança para a etapa S504. Na etapa S504, uma variável d é ajustada na distância l(x,y) entre o ponto da malha (x,y) e a origem, que é computada pelo processo da etapa S505.
A distância l(x,y) pode ser computada usando a seguinte função: l(x,y) = X2 + y2
Na etapa seguinte S506, os valores de d e dmin são compara- dos entre si. Se d for maior do que ou igual a dmin, a operação imediata- mente avança para a etapa S508. Se d for menor do que dmin, a operação avança para a etapa S507, em que dmin é ajustado para d e então avança para a etapa S508.
Na etapa S508, é determinado se todas as possíveis combina- ções entre x e y têm aparecido ou não dentro da faixa de "-dimi < x < dmin" e "-dmin < y < dmin". Se não tiver ainda aparecido, a operação retoma para a etapa S502 e se tiverem já aparecido, o processo A é completado.
Abaixo, o processo B será explicado com referência ao fluxo- grama da figura 15.
No processo B, entre os pontos da malha (x,y) em uma faixa bi-
dimensional em que cada um de x e y é maior do que ou igual a -dmin e é também menor do que ou igual a dmin (dmin é um inteiro incrementado por um), aqueles que não têm ainda sido dispostos e satisfazem " 1(x,y)=dmin" (dmin é obtido através do processo A) são submetidos ao processo X no
fluxograma da figura 16.
Na primeira etapa S60I, um sinalizador "encontrado" é ajustado para 0. Na etapa seguinte S602, um ajuste de valores x e y é gerado para cada ciclo de execução (de S602 a S609) dentro da faixa de "-dmin < x < dmin" e " -dmin < y < dmin" de acordo com uma ordem de seleção de valor
específica, em que a mudança de valor é sempre I.
Na seguinte etapa S603, é determinado se o ajuste gerado (x,y) tem ou não sido armazenado na memória de armazenagem de ponto da ma- lha Z. Se tivesse sido já armazenado, a operação avança para etapa S609 e se não tivesse sido armazenado ainda, a operação avança para etapa S604.
Na etapa S604,um d variável é ajustado para a distância I (x,y) entre o ponto da malha (x,y) e a origem, que é computada pelo processo da etapa S605.
A distância 1(x,y) pode ser computada usando a seguinte fun- ção:
1(x,y) = X2 + y2
Na etapa seguinte S606, os valores de d e dmin são compara-
dos entre si. Se não coincidirem com dmin, a operação imediatamente avan- ça para a etapa S609. Se coincidir com dmin, a operação avança para a e- tapa S607 em que o processo X é executado.
Na etapa S608, o par de inteiro (x,y) é armazenado na memória de armazenagem de ponto da malha Z; o valor z de inteiro (que é definido separadamente) é incrementado por um;e o valor de sinalizador "encontra- 5 do" é ajustado para I. A operação então avança para a etapa S609.
Na etapa S609, é determinado se todas as combinações possí- veis entre x e y têm aparecido ou não dentro da faixa de "-dmin x dmin" e "- dmin y dmin". Se as mesmas têm ou não ainda aparecido, a operação retor- na para a etapa S602 e se elas têm já aparecido, a operação avança para a 10 etapa S6I0. Na etapa S6I0, é determinado se o valor de sinalizador "encon- trado" é igual ou não a 0.
De acordo com a determinação da etapa S6I0, quando é deter- minado que o valor de sinalizador "encontrado" não é igual a 0, a operação retorna para a etapa S60I e quando é determinado que o valor de sinalizador "encontrado" é igual a 0, a operação avança para a etapa S6II. Na etapa S6II, o valor de dmin é incrementado por um e o processo B é finalizado.
Abaixo, o processo X será explicado com referência ao fluxo- grama da figura 16.
No processo X, quando os valores xO e yO, que foram fornecidos como alvo de mapeamento, tornam-se iguais aos valores x e y, que são a seguir processados no Ioop relevante,um valor z mapeado unidimensional correspondente ao mesmo é emitido.
Na primeira etapa S70I, é determinado se x=x0 e y=y0 ou não. Se for determinado que x=x0 e y=yO, a operação avança para a etapa S702, 25 em que um valor inteiro atribuído a (x,y) é emitido como resultado de mape- amento. A operação então avança para a etapa S703, em que a operação de mapeamento de bidimensional para unidimensional é terminada. Em con- traste, se for determinado que a condição "x=x0 e y=y0" não está satisfeita, o processo X é finalizado (Isto é, a operação retorna para a etapa S608 no 30 processo B).
Consequentemente, pela execução dos fluxogramas das figuras 13 a 16, na etapa S103 da figura 4,o mapeamento de bidimensional para unidimensional implementado pelo algoritmo mostrado na figura 5 é realiza- do de modo a mapear o par de inteiro (x,y) para o inteiro z e o inteiro z é en- tão emitido.
(3) Concretização objetiva do processo executado na etapa S202 é o fluxo- grama da figura 11.
As figuras 17 e 18 mostram fluxogramas detalhados do processo executado na etapa S203 no fluxograma da figura 11.
Na etapa S203, o mapeamento de unidimensional para bidimen- sional implementado pelo algoritmo mostrado na figura 5 é realizado de mo- do a mapear o inteiro z (decodificado através do processo da etapa S202) para o par de inteiro (x,y) e o par de inteiro (x,y) é então emitido.
Especificamente, como mostrado no fluxograma da figura 17, na primeira etapa S801, o valor de inteiro zO como alvo de mapeamento é for- necido. Na etapa seguinte S802, a memória de armazenagem de ponto da malha Z é esvaziada e a variável z é inicializada para 0.
Na etapa seguinte S803, o processo A decidido pelo fluxograma da figura 14 é executado,e, na etapa seguinte S804, o processo B decidido pelo fluxograma da figura 15 é executado (todavia, processo X é modificado para um processo X’ como adiante explicado).
Isto é, no processo B, o processo X’ definido por um fluxograma
na figura 18 é executado. No processo X’, se uma condição for satisfeita, é determinado que um par de inteiro (x,y) como o resultado de mapeamento do inteiro zO tem sido obtido e o par de inteiro (x,y) é emitido. A operação então avança para a etapa S805 e é finalizada.
Em contraste, se a condição não for satisfeita, nenhum dado é
emitido e a operação retorna para a etapa S803, isto é, para o processo A.
Abaixo,o processo X’ será explicado com referência ao fluxo- grama da figura 18.
No processo X’, quando o valor zO, que foi introduzido como alvo de mapeamento, torna-se igual ao valor z, que é agora processado no circui- to relevante, valores mapeados bidimensionais (x,y) correspondentes ao mesmo são emitidos. Na primeira etapa S901, é determinado se z=zO ou não. Se for determinado que z=zO, a operação avança para a etapa S902, em que os valores inteiros (x e y) atribuídos ao inteiro z são emitidos como resultado de mapeamento. A operação então avança para a etapa S903 e a operação de 5 mapeamento de unidimensional para bidimensional é terminada. Em con- traste, se for determinado que z φ zO, o processo X’ é finalizado (Isto é, a operação retorna para a etapa S608 no processo B).
Consequentemente, pela execução dos fluxogramas das figuras 17 a 18, na etapa S203 da figura II, o mapeamento de unidimensional para bidimensional implementado pelo algoritmo mostrado na figura 5 é realizado de modo a mapear o inteiro z no par de inteiro (x,y) e o par de inteiro (x,y) é então emitido.
(4) Concretização objetiva do processo executado na etapa S204 no fluxo- grama da figura II.
A figura 19 mostra um fluxograma detalhado do processo execu-
tado na etapa S204 no fluxograma da figura 11.
Na etapa relevante S204, quando receber o par de inteiro (x,y) obtido pelo processo da etapa S203, na primeira etapa S’1001 do fluxogra- ma da figura 19, o valor x do sinal na cabeça dos dados recebidos é arma- zenado na memória x e o outro valor de sinal y dos dados recebidos é arma- zenado na memória y.
Na etapa seguinte S1002,o valor de sinal x na cabeça dos dados é recuperado da memória x e emitido,e, na seguinte etapa S1003, o outro valor de sinal y é recuperado da memória y e emitido.
Consequentemente, na etapa S204,pela execução do fluxogra-
ma das figura 19, os valores de inteiro x e y que formam o par de inteiro (x,y) como o resultado de mapeamento são emitidos na ordem de x a y. Aplicabilidade Industrial
Na presente invenção, um sinal de inteiro de Gaussian é um alvo para codificação e decodificação e uma estrutura que implementa um mape- amento reversível para converter uma fonte de sinal de Gaussian em uma fonte de sinal de uma distribuição exponencial é empregada. Conseqüente- mente, é possível fácil e eficientemente codificar e decodificar um sinal de inteiro de Gaussian, que não tem sido capaz de ser eficientemente codifica- do usando conhecidos códigos de Golomb ou similar,embora um sinal de inteiro de Gaussian aparece em várias cenas nos campos matemáticos e de engenharia.