"PROCESSOS E DISPOSITIVOS PARA CODIFICAR E DECODIFICARINFORMAÇÕES DE MULTIPALAVRAS".
FUNDAMENTOS DA INVENÇÃO
A invenção refere-se a um processo conforme enumerado nopreâmbulo da Reivindicação 1. As patentes US 4 559 625 (Berlekamp e col.)e US 5 299 208 (Blaum e col.) apresentam a decodificação de palavras deinformação intercaladas e protegidas contra erro, no qual um padrão de erroem uma primeira palavra pode dar uma pista para localizar erros em outrapalavra do mesmo grupo de palavras. As referências utilizam um formatopadronizado e um modelo de falhas que tem rajadas de erros multisímbolosatravés de várias palavras. A ocorrência de um erro em uma palavraespecífica apresenta uma forte probabilidade para um erro ocorrer em umacorrespondente posição de símbolo indicada em uma ou mais palavrasseguintes. Este procedimento com freqüência aumenta o número de erroscorrigidos. Foi identificado agora um problema com este princípio: uma pistasomente se materializará quando a palavra de indício tiver sidocompletamente corrigida.
SUMÁRIO DA INVENÇÃO
Em conseqüência, entre outras coisas, um dos objetivos dapresente invenção é proporcionar um formato de codificação no qual palavrasde indício serão corretamente decodificadas com um maior grau de certeza doque uma palavra alvo. Por conseguinte agora, de acordo com um de seusaspectos a invenção é caracterizada de acordo com a parte caracterizadora daReivindicação 1. O indício encontrado pode resultar em, ou apontar para, umsímbolo de rasura. Com uma indicação deste tipo, a correção de erros seprocessará de uma maneira mais potente. Na realidade, muitos códigoscorrigirão no máximo t erros quando nenhuma indicação localizadora de erroé conhecida. Dadas as locações das rasuras, genericamente um número maiore > t de rasuras pode ser corrigido. Também, a proteção contra umacombinação de rajadas e erros aleatórias se aperfeiçoará. Alternativamente, ofornecimento de locações de rasura exigirá o emprego de somente um númeromais baixo de símbolos de síndrome, assim simplificando o cálculo. Emprincípio, a invenção pode ser usada em um ambiente de armazenamentoassim como em um ambiente de transmissão.
A invenção refere-se também a um processo de decodificarinformações assim codificadas, a um aparelho codificador e/ou decodificadorpara uso com o processo acima, e a um suporte munido das informações parainterconexão com a dita codificação e/ou decodificação. Aspectos vantajososadicionais da invenção são enumerados nas Reivindicações subordinadas.
DESCRIÇÃO SUCINTA DO DESENHO
Estes e outros aspectos da invenção serão expostos em maiordetalhe a seguir com referência à exposição de concretizações preferenciais, eem particular com referência às figuras apensas que mostram:
A fig. 1 um sistema com codificador, suporte, e decodificador;
A fig. 2 um princípio de formato de código;
A fig. 3 um formato de código produto;
A fig. 4 um Código De Longa Distância com detecção de rajada;
A fig. 5 um código de bandas e subcódigo indicador de rajada;
A fig. 6 um formato de subcódigo indicador de rajada;
A fig. 7 um código de bandas, e seu subcódigo produto;
A fig. 8 vários outros aspectos do mesmo;
A fig. 9 um formato alternativo;
A fig. 10 um detalhe sobre o intercalamento.
DESCRIÇÃO DETALHADA DE CONCRETIZAÇÕESPREFERENCIAIS
A figura 1 mostra um sistema compreensivo de acordo com ainvenção, que é munido de um codificador, de um suporte e de umdecodificador. A concretização é usada para codificar, armazenar, efinalmente decodificar uma seqüência de amostras ou símbolos multibitderivados de um sinal de áudio ou vídeo, ou de dados. O terminal 20 recebeum fluxo de símbolos que a título de exemplo ter uma dimensão de oito bit. Odivisor 22 recorrentemente e ciclicamente transfere primeiros símbolospropostos para as palavras de indício para o codificador 24. Outrossim, odivisor 22 transfere todos os outros símbolos para o codificador 26. Nocodificador 24 as palavras de indício são formadas codificando os dadosassociados em palavras código de um primeiro código corretor de erro demúltiplos símbolos. Este código pode ser um código Reed-Solomon, um código produto, um código intercalado, ou uma combinação dos mesmos. Nocodificador 26 as palavras alvo são formadas codificando em palavras códigode um segundo código corretor de erro de múltiplos símbolos. Naconcretização, todas as palavras código tem um comprimento uniforme,porém este não é um requisito rigoroso. De preferência, ambos os códigos serão códigos Reed-Solomon com o primeiro um subcódigo do segundocódigo. Conforme se evidenciará melhor com relação à figura 2, as palavrasde indício terão em geral um grau muito mais alto de proteção contra erros, econtém um número relativamente menor de símbolos não redundantes.
No bloco 28, as palavras código assim formadas sãotransferidas para uma ou mais saídas das quais um número arbitrário foiindicado, para que a distribuição sobre um suporte a ser posteriormenteexposto se torne uniforme. O bloco 30 simboliza o suporte propriamente ditoque recebe os dados codificados. Este pode na realidade relacionar-se com agravação direta em uma combinação apropriada de mecanismo de gravação mais suporte. Alternativamente, o suporte pode ser realizado como uma cópiade um suporte codificado mestre tal como um estampo. De preferência, oarmazenamento será óptico e inteiramente serial, porém outras configuraçõespodem ser usadas. No bloco 32, as várias palavras serão mais uma vez lidasdo suporte. A seguir as palavras de indício do primeiro código serão emitidaspara o decodificador 34, e decodificadas conforme baseadas em suasintrínsecas redundâncias. Outrossim, conforme se evidenciará da exposiçãoda figura 2 mais adiante, a decodificação em questão pode apresentar indíciossobre a localizações de erros em outras além destas palavras de indício. Obloco 35 recebe estes indícios e contém um programa para utilizar uma oumais estratégias diferentes para transladar os indícios em questão paralocações de apagar.As palavras alvo são decodificadas no decodificador 36.Sob controle das locações de apagar (ou rasurar), a proteção contra erros daspalavras alvo é aumentada a um nível aceitável. Finalmente, todas as palavrasdecodificadas são desmultiplexadas por intermédio de um elemento 38amoldavelmente ao formato original para saída 40. Para brevidade, aconfiguração mecânica para interconectar os vários subsistemas entre si foiomitida.
A figura 2 ilustra um formato de código relativamentesimples. Como mostrado, as informações codificadas foramespeculativamente distribuídas em um bloco de 16 fileiras e 32 colunas desímbolos, isto é, 512 símbolos. O armazenamento sobre um suporte éefetuada serialmente coluna a coluna a partir do coluna esquerda superior. Aregião hachurada contém símbolos de teste, e as palavras 0, 4, 8, e 12 têm 8símbolos de teste cada uma e constituem palavras de indício. As outraspalavras contem 4 símbolos de teste cada uma e constituem palavras alvo. Ointeiro bloco contém 432 símbolos de informação e 80 símbolos de teste. Osúltimos podem ser localizados de uma maneira mais distribuídas através desuas respectivas palavras. Uma parte dos símbolos de informações podem sersímbolos fictícios. O código Reed Solomon permite corrigir em cada palavrade indício até quatro erros de símbolo. Os erros de símbolo efetivos foramindicados por cruzes. Em conseqüência, todas as palavras de indício podemser decodificadas corretamente, atendendo-se a que nunca tem mais de quatroerros. Notadamente as palavras 2 e 3 todavia não podem ser decodificadas nabase de somente seus próprios símbolos redundantes. Agora, na figura 2todos os erros exceto 62, 66, 68 representam cadeias de erros. Todavia,somente cadeias 52 e 58 que cruzam pelo menos três palavras de indícioconsecutivas, são consideradas como rajadas de erro, de maneira que pelomenos todas as locações de símbolo intermediárias recebem um sinalizadorde rasura. Também, as palavras alvo antes do primeiro erro de palavra deindício da rajada e as palavras alvo imediatamente após o último erro depalavra de indício da rajada podem receber um sinalizador de rasura naquelalocação, dependendo da estratégia seguida. A cadeia 54 não é consideradauma rajada, porém é demasiadamente curta.
Em conseqüência, os dois erros na palavra 4 produzem umsinalizador de rasura em ambas as colunas associadas. Isto torna as palavras 2e 3 corrigíveis, cada uma com um único símbolo de erro e dois símbolos derasura. Todavia, erros aleatórios 62, 68, não de cadeia ou grupo 54constituem indícios para as palavras 5, 6, 7, porque cada um deles contémsomente uma palavra de indício. Em determinadas situações, uma rasura poderesultar em uma configuração de erro zero, porque um erro arbitrário em umsímbolo de 8-bit tem uma probabilidade 1/256 de causar mais uma vez umsímbolo correto. De forma idêntica, uma longa rajada atravessando umapalavra de indício específica pode produzir um símbolo correto na mesma.Por uma estratégia de formação de ponte entre símbolos de indícioprecedentes e subseqüentes da mesma rajada, este símbolo correto é entãoincorporado à rajada, e da mesma maneira como símbolos de indício errôneosconvertidos em valores de rasura para símbolos alvo apropriados. As decisõesacima pode ser corrigidas de acordo com a política decodificadora, que podealém disso ser controlada por outros parâmetros.
EXPOSIÇÃO DE UM FORMATO PRÁTICO
A seguir, um formato prático será exposto. A figura 3simboliza um formato de código produto. As palavras são horizontais everticais, e a paridade é hachurada. A figura 4 simboliza um denominadoCódigo de Longa Distância com especial detecção de rajada nas poucaspalavras superiores que tem mais paridade. A invenção apresenta umdenominado Código de bandas que pode ser construído como umacombinação dos princípios das Figuras 3 e 4. Sempre, a gravação éseqüencial ao longo das setas indicadas nas figuras 3,4.
Aspectos práticos da presente invenção são causados pornovos processos para armazenamento óptico digital. Um aspecto característico específico é aquele no caso de leitura incidente de substrato dacamada transmissora superior ser tão delgado quanto 100 micrômetros. Osbits de canal tem uma dimensão de cerca de 0,14 μ, de maneira que um bytede dados à taxa de canal de 2/3 terá um comprimento de apenas 1,7 μ. Odiâmetro de feixe na superfície superior tem um diâmetro de cerca de 125micrômetros. Uma caixa ou envelope para o disco reduzirá a probabilidade degrandes rajadas. Todavia, as partículas não-conformes de menos de 50 μpodem causar curtas falhas. A requerente utilizou inter alia um modelo defalha no qual as ditas falhas através de propagação de erro podem levar àrajadas de 200 μ, correspondentes a cerca de 120 bytes. Mais especificamente, a requerente utilizou um modelo de erro com rajadas dedimensões fixas de 120B que se iniciam aleatoriamente com umaprobabilidade por byte de 2.6*10"5, ou na média uma rajada por bloco de32kB. A invenção foi impelida por desenvolvimentos no armazenamento dedisco óptico, porém outras configurações tais como fitas de multitrilhas, outras tecnologias tais como magnéticas e magneto-ópticas também sebeneficiariam da abordagem aperfeiçoada aqui descrita.
A figura 5 mostra um código de bandas e subcódigo indicadorde rajada. Um código de bandas consiste em dois subcódigos A e Β. Osubcódigo indicador de rajada (BIS) contém as palavras de indício. Emformato, é um código de longa distância muito profundamente intercaladoque permite localizar as posições dos múltiplos erros de rajada. Os padrões deerro assim encontrados são processadas para obter informações de rasura paraas palavras de indício que são configuradas na presente concretização comoum subcódigo produto (PS). O subcódigo produto corrigirá combinações demúltiplas rajadas e erros aleatórios, através da utilização de sinalizadores derasura obtidos do subcódigo indicador de rajada.
O seguinte formato é proposto:
• o bloco de '32 kB' contém 16 setores DVD-compatíveis;
· cada dito setor contém 2064=2048 + 16 Bytes de dados
• cada setor após ECC codificação contém 2368 Bytes
• por conseguinte, a taxa de codificação é de 0,872
• no bloco, 256 blocos sync são formatados como segue:
• cada setor contém 16 blocos sync;
· cada bloco sync consiste em 4 grupos de 37 B
• cada grupo de 37 B contém 1 B de Subcódigo Indicador de Rajadaprofundamente intercalado e adicionalmente 36 B de Subcódigo Produto
Como mostrado na figura 5, as fileiras são lidasseqüencialmente do disco, partindo do padrão sync precedente. Cada fileiracontém 4 B dos BIS indicados de maneira hachurada e numeradosconsecutivamente, e separados por 36 outros bytes. Dezesseis fileiras formamum setor e 256 fileiras formam um bloco sync.
A fig. 6 mostra exclusivamente um formato subcódigoindicador de rajada dos mesmos 64 bytes numerados por setor da figura 5, e éconstruído como segue:
• existem 16 fileiras, com cada uma com um código [64,32,33]RS comt=16
• as colunas derivam em seqüência do disco como indicado pela seta, deforma que grupos de quatro colunas derivam de um único setor pararápido endereçamento;o BIS pode indicar pelo menos 16 rajadas de 592 B ( ~ 1 mm) cada uma;o BIS contém 32 B dados por setor, 4 colunas do BIS, e particularmente16 cabeçalhos B DVD, 5 B paridade no cabeçalho para permitir rápidaleitura-emissão de endereço e 11 B dados de usuário.
A figura 7 mostra um código de bandas e seu subcódigoproduto que é construído das palavras alvo. Os Bytes do Subcódigo Produtosão numerados na ordem em que são lidos do disco, enquanto ignorando osbytes BIS.
A figura 8 mostra vários outros aspectos da presenteconcretização do subcódigo produto. Em particular, o subcódigo produto éum Código Produto [256,228,29]*[144,143,2) de códigos Reed-Solomon. Onúmero de Bytes de dados é 228*143=323604, que é dezesseis vezes(2048+11) Bytes de usuário mais 12 Bytes sobressalentes.
A figura 9 mostra um formato alternativo à figura 8, deixandode fora completamente o código Reed-Solomon horizontal. A dimensão debloco horizontal é de 36 bytes (um quarto da figura 7), e utiliza um códigoReed-Solomon [256,224,33]. Cada setor tem 2368 Bytes e não sãonecessários quaisquer Bytes fictícios.
O código na primeira coluna é formado em duas etapas. Decada setor os 16 Bytes de cabeçalho são codificados em um código [20,16,5]primeiro a permitir rápida recuperação de endereço. Os 20 Bytes resultantesmais 32 bytes de usuário adicional por setor formam bytes de dados e sãocoletivamente adicionalmente codificados. Os símbolos de dados de um 2Ksetor podem situar-se em somente um setor físico, como segue. Cada colunado código [256,224,33) contém 8 símbolos de paridade por 2k setor. Alémdisso, cada código [256,208,49] tem 12 símbolos de paridade por 2K setor e4 símbolos de paridade do código [20,16,5] para obter um código[256,208,49] com 48 bytes redundantes.A figura 10 mostra este intercalamento em detalhe. Aqui,representa os Bytes de cabeçalho, '□' as paridades do código [20,16], '·' os32 bytes de dados 'adicionais' e 12 bytes de paridade para o código[256,208].