NO173576B - Fremgangsmaate og anordning for tekstkomprimering og -ekspansjon - Google Patents

Fremgangsmaate og anordning for tekstkomprimering og -ekspansjon Download PDF

Info

Publication number
NO173576B
NO173576B NO87875048A NO875048A NO173576B NO 173576 B NO173576 B NO 173576B NO 87875048 A NO87875048 A NO 87875048A NO 875048 A NO875048 A NO 875048A NO 173576 B NO173576 B NO 173576B
Authority
NO
Norway
Prior art keywords
byte
directory
compressed
compression
word
Prior art date
Application number
NO87875048A
Other languages
English (en)
Other versions
NO875048L (no
NO875048D0 (no
NO173576C (no
Inventor
Ronald Jay Lisle
Eual Aaron Moss
John Hoyt Ryder
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Publication of NO875048D0 publication Critical patent/NO875048D0/no
Publication of NO875048L publication Critical patent/NO875048L/no
Publication of NO173576B publication Critical patent/NO173576B/no
Publication of NO173576C publication Critical patent/NO173576C/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Document Processing Apparatus (AREA)

Description

Foreliggende oppfinnelse angår generelt en fremgangsmåte og anordning ved tekstkomprimering og -ekspansjon og nærmere bestemt fagområdet for digital/digitalomformere slik som de funnet i for eksempel den amerikanske patentklassen 340-347.
Det finnes flere patenter og publikasjoner innenfor dette området. U.S. patentnummer 4,545,032 beskriver for eksempel en av basisteknikkene med en ordbok, datakatalog eller tabell omforming ved hvilken numeriske koder for det engelske basis-språkets ordforråd anvendes. Ordene er imidlertid brutt opp i prefikser, suffikser og stammer og det fremkommer ikke at veide rangeringer av ordbok-innføringene eller tabell-innføringene ble betraktet eller anvendt. Det fremkommer heller ikke at konseptet kan koble mellom forskjellige tabeller eller ordbøker basert på brukerfeltet er blitt overveid.
U.S. patentnummer 4,597,057 viser et annet typisk eksempel på komprimeringsteknikk hvor standard ASCII kodet tekst kan bli delt i alfa numeriske og tegnsettings-elementer som "ord" med "ordene" delt i prefikser, suffikser og stammer. Prefiksene, suffiksene og stammene anvender numerisk koding på en måte lignende den nevnt i U.S. patentnummer 4,545,032.
U.S. patentnummer 4,295,124 er et tidligere eksempel på en ordbok eller tabell oppslagstype-omforming for anvendelse av numeriske koder til engelsk tekstform. De innførte ASCII kodede tekstordene anvendes for generere en andre representativ kode ved hjelp av nøkkeltransformering. Denne koden kan bli anvendt som lager-adresse for sammenligning med en på forhånd anordnet ordbok, datakatalog eller lager for tekst-ord. Når sampassing er funnet blir nøkkeladressen sendt som en identifiserer. Dersom ingen sampassing er funnet blir en hjelpekatalog bygget opp, men ordet blir sendt ikke-komprimert den første gangen det blir påtruffet. Neste gangen samme ordet påtreffes blir begge katalogene kontrollert og dersom ordet er funnet i den andre oppbyggede katalogen blir dens nøkkeladresse sendt. Mens denne beskrivelsen synes å være en effektiv og nyttig teknikk anvender den ikke fleksibiliteten med nummerkat al eiger som kan bli nøye valgt for feltbruk av tekst og ikke fremkommer for å anvende et veid bilde av verdien for tildeling av innganger i katalogen.
U.S. patentnummer 4,386,416 ligner på tidligere nevnte U.S. patentnummer 4,295,124, men anvender et kodevekslingstegn for å indikere om det anvendes en kode fra en biblioteklager-adresse eller en annen kodet fremstilling av ordene ikke funnet i biblioteket. Igjen kan det ikke sees å være anvendt noe veid bilde av verdien for katalog-inngangen eller ikke teknikken med en innledning eller topptekst for å identifisere bestemte undersett med kataloger anvendt for å gi en komprimering av den indikerte teksten.
Basisteknikken med koding som anvender kataloger for prefikser, suffikser og stammer med ord er funnet i flere publikasjoner slik som "Proceedings of the IEEE", vol. 55, nr. 3, mars, 1967, sidene 390-396 i en artikkel av E.E. White med tittelen "Printed English Compression by Dictionary Encod-ing". En komprimering av kun omkring to til en er funnet i denne publikasjonen og den er funnet å være generelt lik de beskrevet i de to første ovenfornevnte patentene.
Bruk multippel-tabeller eller selve katalogene er ikke totalt nytt. Et eksempel på dette er funnet i en artikkel av J. Pike, med tittelen "Text Compression Using A Four-Bit Coding Scheme", i "Computer Journal", vol. 24, nr. 4, 1981, sidene 324-330. Artikkelen beskriver imidlertid ikke noe som antyder at det kan anvendes et sant fleksibelt system som anvender forskjellige kataloger og en topptekst eller innledning i den komprimerte teksten for å angi hvilke valg av katalogene som er blitt for den gitte komprimeringen. Bruken av veide innføringer for valg av ord for å innbefatte de gitte katalogene er dessuten heller ikke beskrevet.
En tidligere artikkel av Rubin med tittelen "Experiments in Text File Compression" i publikasjonen "Communications of the ACM", fra november 1976, vol. 19, nr. 11, sidene 617-623 behandler veiing av frekvensen til forekomsten som et bilde av verdien for rangeringsordene for katalogkonstruksjonen for tekstkomprimering. Basert på eksperimenter utført av forfatteren blir det imidlertid konkludert med at frekvens var den beste metoden for å maksimalisere innsparing i valg av inngangsgrupper, dvs. kataloginnføringer. Det blir ikke tatt med i beregningen muligheten for at forskjellige rangerings-linjer ville forekomme i forskjellige kataloger på samme ord og at kobling mellom katalogene er bedre egnet for en gitt tekst er en mulighet.
En tidligere artikkel viser bruk av kodevekslings-tegnet for å bevirke utstrekning av størrelsen på katalogen eller endring fra bruk av en katalog til en annen er i artikkelen med tittelen "A New Technique for Compression and Data Storage", av Hahn som står i "Communications of the ACM", august 1974, vol. 17, nr. 8, sidene 434-436. Denne artikkelen viser også den dynamiske metoden med å tillegge nye eller ukjente symboler eller ord påtruffet i katalogen. Det anvendes imidlertid tegngrupper istedenfor ord og forfatteren bemerker at eksperimenter med teknikken viste noe mindre grad av komprimering enn ord kodet for engelsk tekstkomprimering.
En artikkel som angår flere metoder, men ikke beskriver bruken av veiing av ordfrekvens-teknikken og heller ikke bruk av innledning eller topptekst for å angi bruk av flere kataloger er funnet i "IEEE Transactions of Software Engi-neering", vol. SE6, nr. 4, juli 1980, på sidene 340-347 i en artikkel med tittelen "Overhead Storage Considerations and a Multi-Linear Method for Data File Compression" av Young et al. En lignende artikkel er funnet i "Computer publication" fra april 1981, sidene 71-75 i en artikkel med tittelen "An Overview of Data Compression Techniques" av Reghbati.
Til slutt skal det bemerkes at i "Journal of Library Automa-tion", vol. 11, nr. 2, juni 1978, sidene 97-105 beskriver tilstedeværelsen av et begrenset katalogskjema som anvender et kodevekslingstegn eller en katalogindikasjonskode for å vise dekomprimeringssystemet når et komprimert ord har blitt tatt fra en katalog-fil og for å angi ved dens fravær at ordet ikke er komprimert og er sendt i ordinær ASCII eller EBCDIC tegn. Pekere for kodevekslings-tegnene identifiserer seg selv som pekere og indikerer kataloginngangen for ord som de representerer. Kildefilene til EBCDIC eller ASCII kodet tekst er lest et ord om gangen og ordene blir sammenlignet i forhold til katalogen. Dersom ordet ikke er funnet blir ordet og enhver endebegrensning slik som tegnsettingsmerker eller mellomrom skrevet uendret inn i den komprimerte filen. Dersom ordet er funnet angir en peker at ordet har blitt funnet i katalogen og pekende til katalogen blir stedet skrevet til den komprimerte filen. Dette er i hovedsak samme teknikken som i tidligere nevnte U.S. patentnummer 4,386,416, som kun skiller seg ved terminologien som anvendes ved bruk for å beskrive denne metoden. Bruken av multippel-kataloger og en veid frekvens av forekomster for å tildele innganger er ikke beskrevet i denne artikkelen.
Av det foregående fremgår det fremfor alt klart at mens det er blitt gjort mye arbeid med hensyn til tekstkomprimerings-metoder, teknikker og systemer, har det blitt unngått bruk av utvidede multippelkataloger. Dette kan være på grunn av kompleksiteten ved håndtering av datalager-kravene og koblingen mellom katalogene. Tidligere studier av veid frekvensforekomst-metoden for å tildele innganger til katalogene har funnet i motsetning til foreliggende oppfinnelse at den veide frekvensen for bruk for kataloginngang ikke er fordelaktig som ren frekvensforekomst. De beste kompri-meringsforholdene fra ovenfor nevnte tidligere kjente publikasjoner er i området på fire eller fem til en, men det har vist seg at bruk av multippel kataloger med deres innganger valgt på basis av veide frekvensbruk kan komprimeringsforhold i størrelsesorden av mer enn seks til en og så høye som åtte til en bli rutinemessig tilgjengelig.
Formålet med foreliggende oppfinnelse er å tilveiebringe en forbedret tekstkomprimering og dekomprimeringsteknikk av katalogoppslagstypen ved hvilke selve katalogene har deres innganger anordnet med en veid brukerfrekvens for de påtrufne ordene.
Et annet formål med oppfinnelsen er å tilveiebringe en forbedret tekstkomprimerings- og ekspansjonsteknikk ved hvilke multippel kataloger er anvendt i samsvar med bestemte feltbruk av tekst som er komprimert og ved hvilken innledning eller topptekst er anvendt i komprimering for å angi hvilke valg av kataloger har blitt gjort for komprimering.
Ovenfornevnte formål tilveiebringes ved hjelp av en fremgangsmåte hvis karakteristiske trekk fremgår av krav 1 og et system hvis karakteristiske trekk fremgår av krav 7.
Ytterligere trekk ved oppfinnelsen fremgår av de øvrige krav.
I det påfølgende skal oppfinnelsen beskrives nærmere med henvisning til tegningene, hvor: Fig. 1 viser skjematisk et tekstkomprimerings- og dekomprimeringssystem i samsvar med oppfinnelsen. Fig. 2 viser skjematisk tildeling av lagerrom i segmenter som inneholder de aktuelle anvendte katalogene, en indeks for hvert katalogsegment og katalogsegment-kart så vel som styretabeller for bruk ved komprimering og dekomprimering. Fig. 3 viser skjematisk dekomprimerings-logikkstrømmen karakterisert av prosessoren på fig. 1. Fig. 4 viser en fullstendig utvidet komprimeringsrutine flyt-skjema, som er anvendt ved mikroprosessoren på fig. 1 for komprimering av tekst. Fig. 5 viser et typisk eksempel på formatet til en komprimert tekst-ring som anvender teknikken ifølge foreliggende oppfinnelse. Fig. 6 viser skjematisk tildelingen av bit-lokaliseringene i toppteksten eller innledningsseksjonen til en komprimert dataopptegning som muliggjør tolkning av mottakersystem eller tekstutvidelses-system for valg av egnede kataloger og styretabeller for ekspansjon av komprimert tekst.
Ved foreliggende oppfinnelse blir ovenfornevnte formål tilveiebragt ved å anordne flere språkbruk-spesifikke kataloger hvis innføringer av ord er rangert ved en veid frekvens av bruks-rangering basert på statistiske studier av arealet for anvendt bruk. Ord slik som "docket" eller "versus" eller "case" vil for eksempel fremkomme oftere i lov-tekster enn ved normal engelsk bruk. Lignende profesjon-elle sjargonger er funnet for andre fagområder og det skulle være uendelige muligheter med teknikk, forretning, medisin, agrikultur, petro-kjemi, etc. etc. Ved foreliggende oppfinnelse bygger brukeren til et tekstkomprimerings- og dekomprimeringssystem opp kataloger som er kundetilpasset for bruksområdet. Dette er gjort ved å anvende en avsøknings og analyseteknikk som innbefatter telling både av antall tegn i hvert enestående ord og antall forekomster av ord innenfor generell bruk over en prøve med tekster fra brukerens område. Utallige slike kataloger kan bli konstruert og tilført de maksimale fordelaktige effektene for å tilveiebringe en høy grad av komprimering for en bruker. En innledning eller topptekst blir konstruert i komprimert tekst for å angi at brukerens valg av egnede kataloger virkelig anvendt ved å foreta komprimering for en gitt tekstkilde-inngang. Toppteksten blir anvendt for å instruere mottakeren om hvilke kataloger og styretabeller som skal bli lastet inn i lageret for bruk ved dekomprimeringsrutinen. Enkle en-bit gruppe-innføringer i en styretabell kan bli anvendt for å indikere kilden i komprimert tekst for hvert individuelt ord eller gruppe med ord når ordene er funnet utenfor en enkel bit-gruppe styretabell. Et hierarki av kataloger som går fra en enkel bitgruppe styretabell som inneholder styreordene og katalogsegment-indikatorene såvel som en liste av noe mellom 80 og 224 ofte påtrufne ord er den høyeste prioriterte katalogen for søking for komprimering eller ekspansjon. To og tre bit-gruppe-kodede kataloginnføringer hvor først bitgruppe indikerer et bestemt katalogsegment i lageret og den andre bitgruppen indikerer en forskyvning eller lager-adresse-posisjon i segmentet blir også anvendt. Systemet kan bli anvendt for et typisk mikroprosessor-datamaskinsystem som har et massivt lager slik som en disk eller kassett og en normal dimensjonert arbeids lese/skrive lager i hvilket de forskjellige styretabellene og katalogene kan bli samlet for bruk ved lesing av den fra et masselager. Typiske flytdiagram for komprimering og dekomprimering er innbefattet og vil bli beskrevet nærmere.
Komprimeringsteknikken ifølge foreliggende oppfinnelse tillater at mer data kan bli lagret på et gitt medium og/eller det tillater sending av mer data i redusert tid over et transmisjonsledd mellom hvilke som helst av to steder. Det tilveiebragte normale komprimeringsforholdet kan være så høyt som 6 til 8 selv om, når virkningen av tillegging av transmisjons-topptekst og katalogindikatorer er tatt med i beregningen, kan det totale komprimeringsforholdet falle litt. Ved en databehandlings-organisasjon er forsinkelsen ved utskrift av dokumentasjonen svært kostbar. Ved mange slike steder er det behov for å dele store mengder med informasjon mellom ytterligere fjerntliggende steder som resulterer i investeringer i utstrakte kommunikasjonsnettverk. Veksten ved slike nettverk og hovedkostnadene til de anvendte organisasjonene er en faktor som dikterer nødvendigheten av utvikling av virkningsfulle tekstkomprimerings- ekspansjonsmetoder og systemer. Visuell fremvisning og skrivebordsmaskiner har blitt mer og mer vanlig og en hoveddel av informasjonen som behandles er tekstdata som er tilstede på skjermen. Enhver effektiv komprimeringsteknikk som vil minimalisere mengden av lagerrom og/eller anvendt transmisjonsmedium vil derfor være av stor fordel. Uttallige komprimeringsteknikker har blitt utviklet, som hentydet tidligere under angivelse av teknikkens stilling og fles-teparten av disse teknikkene resulterer i en total komprimeringsf aktor i størrelsesorden av 1,5 eller 2 til 1.
Foreliggende tekstkomprimerings-teknikk ved foreliggende oppfinnelse er en teknikk som adresserer graden av gjentag-ende forekomster og lengden på visse ord i basisspråket til personen som genererer og anvender teksten. Mange valg er tilveiebragt. Valgene kan være tilpasning til bestemte omgivelser og bestemte dokumenter ved å velge den anvendte basiskatalogtypen. Enten en for-definert eksisterende katalog eller kataloger som har blitt generert spesielt for tekst-komprimering eller kataloger som er dannet på linje for selve den individuelle teksten kan bli anvendt i kombinasjon eller separat. Katalogene er anordnet på bit-gruppe-brede grenser med adresser for å forenkle prosessen. De katalogene som har en bitgruppe-adresse anvender høyeste komprimerings-grad, men er også av begrenset lengde, siden kun 256 forskjellige innføringer kan finnes for en gitt 8-bits byte (bitgruppe). To byt-komprimeringsordkataloger muliggjør en definering av et mye større område med ord, dvs. 65.536 ord eller to byte innføringsadresser er således mulig. Utvidelse til en tri-byte adresse gjør det mulig med et maksimum på 16 777 216 innføringer som er langt over alle ord som er påtruffet i det engelske språket. Kataloger for grafiske fremvisninger og lydavspillinger er også mulig, siden de kun er digitale fremstillinger av bestemte signaler for utsend-else av grafisk anordning eller lyd-anordning. Teknikken er naturligvis ikke begrenset til det engelske språket. I virkeligheten kan ethvert språk med tegnstaving bli behandlet på lignende måte ved foreliggende fremgangsmåte. Engelsk er kun anvendt for å kunne forklare oppfinnelsen.
Basistrekket ved den foretrukne tekstkomprimeringsteknikken er å erstatte en 1, 2 eller 3 byte-adressemønster for et engelsk ord funnet i et gitt dokument. Ordet "dokument" anvendes her for å definere kodet tekstdata, grafisk data eller lyd-data som er dannet av eller anvendt av en menneske-operatør. Tasteinnføring kan bli opptegnet på en disk, et bånd eller lignende, lagret i et lager som en tekstkilde av typisk engelsk språk. Slik tekstkilde er en virkelig rekke med ASCII kodede alfanumeriske tegn, mellomrom-tegn, tegnsettingsmerker, styretegn, slik som skriving med store bokstaver, bokstavskifte, linjemating og lignende, etc. Tildelingen av katalogord-innføringer er basert på deres relative veide verdi i samsvar med deres bruksfrekvens og lengde. Relativ veid verdi er basert på lengden på hvert ord og frekvensen for dens forekomst i et bestemt dokument eller innenfor et bestemt fagområde, slik som jus, ingeniørviten-skap, medisin eller lignende. Begrensningen av de komprimerte bit-mønstrene til lengder på 1, 2 eller byter, som vil være 8, 16 eller 24 biter, gjør anvendelsen av disse teknikkene på byte-orienterte datamaskiner som finnes i handelen i dag uten videre gjennomførbar.
Basis komprimeringsteknikken vil anvende i det minste en og vanligvis flere kataloger. Den mest basis-messige og kompakte katalogen er 256 innførings-enkel-byte komprimeringstabellen. Denne tabellen blir generert for å inneholde styremønstrene nødvendig for å dekodere indikasjoner som forteller hvilke kataloger som blir anvendt ved en gitt komprimering, de mest vanlig forekommende ordene i det angjeldende fagområdet og ethvert nødvendig styremønster eller signal. Signal-byte adressekomprimeringen er vanligvis begrenset for 8 bit byter til 256 bestemte binærmønster. Noen av disse mønstrene kan bli reservert for å styre sekvensene og for definisjoner for individuelle katalogsegmenter som anvendes ved en gitt komprimering. Den enkle byte-komprimeringstabellen eller lageret bli således begrenset til ord som har høyest relativ verdi og som vil passe i de 256 mulige mønstrene minus antall reserverte styremønster. Dette trekket kan bli anvendt for små dokumenter med stor fordel. Små dokumenter er de som består kun av 2 til 3 sider for eksempel.
Dersom en 2 byte komprimeringskatalog eller lager skal bli konstruert vil den måtte ha et mulig maksimum på 65.536 definerte innføringer. En bit må imidlertid bli reservert for å angi at det er anvendt et to-byte mønster slik at kun 32.768 aktuelle kataloginnføringer da er mulig. Betraktet på en annen måte kan 128 segmenter med 256 ord bli omkodet. I mange tilfeller vil det normale vokabularet ved konstant bruk for en bestemt gruppe slik som et revisorkontor eller et advokatkontor vil det kun være et par tusen ord. Dersom den maksimale basiskatalogstørrelsen på 2 byter eller 65.536 mulige innføringer velges, vil i det minste en bit av den første byten måtte bli anvendt for å identifisere det faktumet at et 2-byte omkodingsmønster er anvendt på grunn av at dekomprimeringsrutinen må kjenne hvorledes de komprimerte bytene skal grupperes i enten 2'ere eller i 3'ere. I stedet for 256 muligheter for den første byten, er således kun 128 mønster tilbake i den første byten alene og totalt 128 seksjoner av 256 mønstrene kan hver i virkeligheten bli valgt. Et hundre og tjueåtte 8-bit mønster må bli reservert i styretabellen for å indikere hvilke 256 ordsegment av 2 byte katalogen som anvendes ved hvert øyeblikk. Den første "byten" med 2 byte adresse er tatt fra styretabellen. Dette vil etterlate av de opprinnelige 256 mulige mønstrene i enkel-byte styretabellen, 128 mønster som kan bli anvendt for styresekvenser, relative høyverdi-ord og lignende.
Dersom basisk katalogstørrelsen er valgfritt begrenset fra 32.768 til en halvdel av det antallet, dvs. 16.384 så vil 192 bit-mønstrene bli latt tilgjengelige i enkeltbit-tabellen for styresekvensene og relativ høyverdi-ord. Dersom en basis 2-byte katalogstørrelse på kun 8.192 mønster velges, et sannsynlig og nyttig valg, så vil 224 bit-mønstrene bli latt være igjen i enkelt-byte tabellen for styresekvenser, omkodingsformat-indikatorer og relative høyverdi-ord.
Antall bitmønster tilbake i enkeltbyte styretabellen av de 256 opprinnelige mulig vil generelt være 256 mindre enn basis-katalogstørrelsen valgt for å inneholde ordene i 2 eller 3 byte-katalogene som kan anvendes delt med 256. Det vil si måten omkodingen av dataen ved foreliggende oppfinnelse er ved direkte-tabellinnføringer, men indikasjoner må være anbragt i komprimert tekst for å indikere hvilken tabell som anvendes. En basestyretabell på 256 mulige innføringer må ha blitt reservert i seg med mønster for hver 256 innfør-ing i 2 byte katalogene som kan bli anvendt og et mønster for hver 65.536 innføring i hver anvendt byte-katalog. Disse er kalt "katalogsegmenter" og et bestemt identifiseringsmønster er reservert i styretabellen for hvert segment til den anvendte katalogen ved hvert tekstkomprimeringseksempel. Styretabellen kunne naturligvis bli ekspandert til å være en 2 byte tabell, men dette ville ha en negativ effekt på det totale komprimeringsforholdet. Høyere komprimeringsfaktorer kan i de fleste tilfellene bli tilveiebragt ved å velge et lite antall innføringer for basis-ordkatalogstørrelsen. Mange steder eller organisasjoner har et aktuelt arbeidsvokabular på kun et par tusen ord. Komprimeringsf aktoren kan derfor bli optimalisert ved å velge en basis arbeidsvokabular-katalog i størrelsesorden av 8.192 ord (1/4 av mulig størrelse på 2 byte mønsterkatalogen). Dette vil kreve kun 32 reserverte bit-mønster for den enkle byte-styretabellen siden 32 ganger 256 er 8.192. I det viste eksempelet ville 224 mulige innføringer forbli av de 256 tilgjengelige opprinnelige i en enkelt byte-styretabell. De 224 innføring-ene kunne med fordel bli tildelt hyppig bruksord, styretegn og alfanumeriske tegn om ønskelig.
Denne korte beskrivelsen av fleksibiliteten iboende i foreliggende oppfinnelse fører til en betraktning av hvorledes komplekse sett med mulige kataloger valgt for en gitt tekstkomprimering kan bli kommunisert for dekomprimerings-bruk eller ekspansjonsbruk. Dette blir tilveiebragt ved foreliggende oppfinnelse ved å anvende en innledning eller topptekst for den komprimerte teksten.
Figur 6 viser skjematisk topptekst-omkodingsformatet som er anvendt i foreliggende oppfinnelse. Linjen A viser starten på toppteksten med byte 0 som identifisert. Bitene AA blir anvendt ved foreliggende oppfinnelse for å definere typen på singel-bytekomprimeringstabellen som er blitt anvendt. To typer er mulig. Enten eksistensen av normalverdi-en-byte-komprimeringstabell og anvendt som består av et på forhånd anordnet sett med tildelinger for 256 mulige mønstere i en en-byte tabell eller en alternativ eksisterende en-byte komprimeringstabell skal bli anvendt og kan være funnet på et på forhånd definert eksternt lagermedium. En en-byte komprimeringstabell kan alternativt virkelig være anordnet innenfor den komprimerte tekst-byte-strengen eller en katalog med to eller tre byte-adressestørrelser kunne bli sendt. Disse fire mulige alternativene er omkodet ved å innstille verdien med biter AA som følgende: dersom bitene AA er 00 blir en normal en-byte komprimeringstabell anvendt ved den øvrige tekstkomprimeringsstrengen som følger toppteksten inn til en ny topptekst fremkommer. Dersom bit-verdiene for AA er 01, anvendes et reservert ikke-tildelt alternativ. Dette mønsteret kunne bli anvendt for å indikere at katalogen som skal bli anvendt vil bli sendt i komprimert tekst. Bitene 10 for AA definerer en eksisterende en-byte komprimeringstabell skal bli anvendt som skulle bli funnet av brukeren på forhånd definerte eksterne lagermedium, slik som en disk eller et bånd. Et eksempel ville være at en en-byte komprimeringstabell som har blitt optimalisert for kreftspesialister innenfor det medisinske området skal for eksempel anvendes for en gitt tekstkomprimering. Det endelige alternativet hvor biter ÅA er 11, er anvendt for å indikere at en en-byte komprimeringstabell har virkelig blitt generert og vil bli tilført innenfor komprimeringsstrengen som følger. Resten av bitene B til G i byte 0, linje Å, figur 6 anvendes som indikatorer for å definere hvilke typer eller valg av andre ordkataloger som er anvendt i komprimeringsrutinen for den gitte strømmen med komprimert tekst som følger toppteksten.
Bit B er for eksempel ved foreliggende oppfinnelse definert til å være indikatoren for en utvidet 3-byte bred adressekat-alog. Dersom verdien for bit B er 0 så er ingen 3-byte katalog anvendt og dersom den er 1 så er det anvendt noen definerbare 3-byte kataloger. Definisjonen som er anvendt, om noen definisjon, på 3-byte katalogen, er behandlet senere i toppskriftformatet, som vil bli beskrevet senere.
Bit C til bit G er hver individuelle bit-indikatorer anvendt på samme måte som bit B, men i stedet for å indikere bruken av alternativ 2-byte bred adressekataloger. I det viste eksempelet kunne muligens fem forskjellige 2-byte brede adressekataloger bli anvendt.
De øvrige bytene i toppskriften og måten de anvendes i forbindelse med indikatorbitene i byten 0 vil nå bli beskrevet .
Byte 1 vil enten være starten av komprimert tekst eller den vil bli tolket som en styretabell-nummer dersom det skal anvendes individuell styretabell annerledes enn normalverdi betingelse-styretabellen. Byten 1 vil være 0 dersom bitene AA i byte 0 er enten 00 eller 11. Dersom bitene AA er lik 10 vil et styretabellnummer på åtte biters bredde fremkomme i byte 1 for å identifisere en bestemt styretabell som skal bli adressert ved dekomprimeringssystemet fra et eksternt lagermedium. Dersom bitene AA er lik 11, så vil byte 1 virkelig være starten av en tilført styretabell i den komprimerte tekststrømmen og byte 1 til byte n vil bli tilført styretabellen, som vil være av summen av lengden på alle de tilførte ordene som skal bli tildelt i styretabellen puss 1.024 flere byter. Ett tusen og tjuefire er lik 256 ganger 4, hvor 256 fir-byte mønstrene er skrevet. Byte 1 til hver gruppe på 4 byter er en lengdeindikator på en mulig 256 byte-sekvens. Neste 3-byter i hver gruppe på 4 byter er sekvensnummer til ord i en tilført katalogstreng. Den tilførte styretabellen, når tilfredstillende, vil ved bytene 1 til n først inneholde alle tilførte ordinnføringer og for det andre deres tildelinger innenfor 256 byte gruppen med en 1 byte styretabell-anordning. Hver tildeling krever 4 byter hvor den første byten i en gruppe på 4 indikerer lengden i bytene opp til 256 byte-lengde av innføringen og de neste 3 bytene av en gruppe på 4 indikerer sekvensnummeret til aktuelle ord som skulle bli tildelt med tabellinnføringen når ordet blir tilført i katalogstrengen som følger styretabell-definisjonsdelen.
På figur 6, linje B, vil byte-katalog-tabelldefinisjonsseg-mentene for toppteksten begynne. Ved byte n+1 vil 3 byte-katalogdefinisjonene forekomme basert på om byte 0 bit B var en 0 eller en 1. Dersom bit B til byte 0 var 0, er for eksempel BA, BB og BC i bytene n+1 og n+2 på figur 6, linje B null, dvs. ingen biter er tilstede siden det ikke er anvendt noen 3-byte katalog som må bli definert i nærmere detalj. Dersom byte 0, bit B var lik en 1, så er imidlertid feltet BA 1 bit bred og feltet BB i byte n+1 er 7 biter bred. Byte BB er tolket som nummer for 65.536 ordsegmenter til en 3-byte katalog som er anvendt. Feltet BC, som er byte n+2, vil være nummeret som indikerer hvilke 3 byte-katalog som blir anvendt. Feltet BA definerer om feltene BB og BC er nødven-dige i det hele tatt. Dersom feltet BA er lik 0, så er BC null eller ingen biter må bli definert siden ikke noe 3-byte katalog, dvs. en normalverditilstand eller foran-anordning av 3 byte-katalogen vil bli anvendt. Dersom imidlertid feltet BA er satt til 1 så vil feltet BC bli identifiserende nummeret til den valgte 3-byte katalogen som skal bli anvendt.
Med hensyn til konvensjonen av etablering av topptekstfor-matet er byte n+3 en definisjonsseksjon for den første mulige 2-byte hjelpekatalogen som kan eller kan ikke bli anvendt. Byte 0 bit C definerer om eller ikke en 2-byte katalog av en type skal bli anvendt. Dersom byte 0 bit C er lik 0, så er alle feltene CA, CB, og CC i bytene n+3 og n+4 satt til 0 siden ingen ytterligere definisjon er nødvendig. Dersom imidlertid byte 0 bit C er en 1, så vil feltet CA være 1 bit og feltet CB vil være 7 biter bredt. Bit CA er en indikator som definerer om det har blitt anvendt en normal 2-byte katalog eller en bestemt 2-byte katalog som skal bli definert. Dersom CA er satt til 0 så anvendes en normaltilstands eller en for-anordnet 2 byte-katalog og byte n+4 felt CC, som normalt ville spesifisere nummeret for en gitt 2-byte katalog, må ikke bli gitt ved alle siden normaltilstanden er tilstede. Dersom imidlertid feltet CA er lik 1, så er feltet CD nummeret på 256 or lange segmenter som har blitt anvendt for den første 2-byte katalogen som er definert og feltet CC er identifiseringsnummeret for den 2-byte katalogen.
Denne formaten eller konvensjonen fortsetter på samme måte for byte n+5 til byte n+12 som viste ved linje B, C og D på fig. 6 i samsvar med statusen for bitene D, E, F og G i byte 0, linje A på fig. 6 som nettopp beskrevet. Dersom alle fem mulige indikatorene for 2 byte katalogene ved byte 0 anvendes så vil starten på den virkelige komprimerte teksten ikke begynne før byte n+13 i linje D på fig. 16 og vil fortsette for et ubestemt antall byter inntil enden av teksten forekommer ved byte n+n ved linje D på figur 6.
Flere illustrative eksempler på den første byten, byte 0, i en gitt topptekst vil nå bli beskrevet.
Eksempel 1:
Det antas at byte 0 til toppteksten har blitt sett til alle 0'er. Med henvisning til fig. 6 og beskrivelsen gitt for denne har en enkel byte komprimeringsteknikk blitt definert som blitt anvendt siden ingen av de 2 eller 3 byte-indikatorbitene B til G er sett til 1. Siden begge bitene AÅ er sett til 0 har dessuten en normal singel-byte komprimeringstabell blitt anvendt og siden dette er normaltabellen er den ved konvensjon allerede eksisterende i adresserommet for dekomprimeringsprogrammet ved mottageren eller brukerens ende. Dette betyr at mottageren og senderen har tidligere etablert deres normaltabellverdier og entret dem inn i deres respek-tive systemer via kommunikasjon. Siden dette er en 1 byte bred tabell er der 256 mulige innføringer. Noen av disse innføringene blir tildelt for styresekvenser, noen for spesielle tegn, og noen for bokstaver og sifre. Massen av innføringer vil imidlertid bli reservert for ord med et relativt høyt figurverdi som er påtruffet ved spesielle brukeres installasjonsvokabular.
Det aktuelle antall styresekvenser, spesielle tegn, bokstaver eller sifre og ord med relativ høy figurverdi er valgt av spesielle brukere basert på deres egne ønsker og erfaringer. En fremgangsmåte for å tildele disse mønstrene ville for brukeren være å avsøke en representativ variasjon av tekster fra hans eller hennes område for statistisk å isolere de relativt høyeste verdifigur-ordene som de forekommer i deres arbeidsvokabular ved deres installasjon. Et eksempel på en teknikk for å gjøre dette skal beskrives senere i beskrivelsen. Noen av de 256 mulige mønstrene vil imidlertid måtte bli tildelt for normal forekommende styringer som vil bli påtruffet. For eksempel blir et mellomromstegn og alle de store og små alfa og numeriske tegnene blir vanligvis definert med separate innføringer. Enden på linjen og enden på dokumentstyrekodene må bli reservert ved hvert tilfelle og en multippel mellomromskode er et nyttig tillegg. Komma og mellomrom-kombinasjoner eller avsnitt- og mellomromskombina-sjoner er også vanlige definisjoner, som også valgfrie anvendte kodeskiftetegn for å indikere endring av kodeteknik-ken eller lignende. Det skulle også bli reservert et tabellbrytende indikator-byte-mønster som kan bli anvendt ved hjelp av reglene for å indikere at byten i teksten som følger forekomsten av dette bestemte byte-mønsteret vil være et tabellnummer som skal bli anvendt i stedet for tabellen som anvendes for øyeblikket.
Ved det gitte eksempelet hvor byte 0 er alle 0'ene, vil den komprimerte teksten starte ved byte 1 i den komprimerte tekstbyte-strengen og selve toppteksten er en enkel byte, byte 0. Med navn og formatregelen som beskrevet ved figur 6 er første byten, byte 0, til toppteksten styrebyten som definerer den bestemte gruppen og typen på kataloger som har blitt anvendt og det øvrige formatet til topptekstfeltene definerer bestemte individuelle lengder og identifiserer hjelpekatalogene som blir anvendt ved den gitte komprimeringen av teksten som bli omkodet.
Eksempel 2:
Det antas at byte 2 er et se med 1 og syv 0'er. Dette indikerer ved regelen etablert for fig. 6 i dette eksempelet en i seg selv enkel byte-komprimeringsteknikk anvendes, men ikke non-verdien eller hjelpe-en-byte definisjonstabellen vil bli anvendt av dekomprimerings-algoritmen som må aksessere denne tabellen som ligger på et eksternt lagermedium. Tabellen vil normalt ha blitt gitt et navn av brukeren som består av et installasjonsvalgt prefiks slik som BASTAB fulgt av en postfiks for den numeriske verdien inneholdt i byte 1, for eksempel i topptekststrengen. En navneregel for en-byte komprimeringstabellene i et eksternt lagermedium kan for eksempel være "BASTAB.0" som vil være en normal tabellverdi eller "BASTAB.1" som vil være tabellen tilført i en komprimert tekst-byte-streng, og så videre. "BASTAB.n" ville være en ytterligere tabell som ligger i et eksternt lagermedium hvor n kunne ha en verdi mellom 2 og 255. Ved et slikt skjema ville den aktuelle komprimerte tekststrengen så begynne ved en relativ byte-posisjon 2 innenfor den komprimerte tekstbyte-strengen. I løpet av dekomprimeringen, som følger lesingen av byte 0, vil dekomprimeringsprogrammet aksessere den identifiserte en-byte-komprimerings-tabellen på det eksterne lagermediumet og lese det inn dekomprimerings-programadresse-rommet i lese/skrive lageret til prosessoren.
Som beskrevet ovenfor er en av bitmønstrene innenfor en byte-komprimeringstabellen normalt reservert for en tabell-koblingsindikator byte. Denne vil bli anvendt for kobling fra en byte-komprimeringstabell til en annen. Alltid når et tabell-koblingsmønster er påtruffet i den komprimerte byte-strengen vil den neste byten bli omkodet ifølge regelen og tolket som inneholdende nummeret på tabellen som skal bli anvendt neste gang. Den nye tabellen vil så bli lest fra det ytre lagermediumet og anbragt i dekomprimeringsprogram-adresse-lagerrommet, dersom den ikke allerede er tilstede der.
Eksempel 3:
Det antas at byte 0 er sett til 11000000. Denne regelen angir i samsvar med beskrivelsen av fig. 6 at en en-byte komprimeringstabell har blitt anvendt og at starttabellen som skal bli anvendt for dekompr imer ingen av tekst vil være en som er virkelig sendt innenfor en komprimert tekst-bytestreng som starter ved den relative byte-posisjon nummer 3. De relative byte-posisjonene 1 og 2 i tekststrengen som følger toppteksten inneholder binærverdien for den totale lengden på den tilførte en-byte komprimeringstabellen. Den tabellen blir tilført i den komprimerte byte-strengen og må bli utledet fra en den komprimerte byte-strengen og anbragt i dekomprimeringsprogrammets adresserbare lagerrom. Den komprimerte teksttabellen vil så begynne med byte 3 og vil slutte ved en telleverdi definert av lengden på tabellen som så vil bli fulgt av begynnelsen av den virkelige komprimerte teksten.
Eksempel 4:
Det antas at byte 0 er sett til 00100000. Dette mønsteret, i samsvar med regelen til figur 6, definerer at en kombinasjon av en-byte komprimeringstabellen til en type definert som normal-styretabellen og en 3-byte katalog av en type definert i feltet BA har blitt anvendt. Byte n+1 i dette tilfellet vil være byte 1 siden ingen styretabell-nummer eller tilført styretabell er nødvendig i denne konfigurasjonen for toppteksten som spesifisert. De syv lav-ordens bitene til byte 1 vil bli lengden da et nummer (mindre enn 1) for 65.536 ord-lange segmenter ble anvendt ved den anvendte 3-byte katalogen. Feltet BC vil være byte 2 og ville så definere identi-fiser ings-nummeret for en 3-byte katalog dersom en bestemt en anvendes og byte 3 ville være starten på den komprimerte teksten eller i tilfelle av at feltet BA (den høyeste ordensbiten av byte 1) var 0 som spesifiserer normal 3 byte tabell-tilstanden, ville byte 2 være starten til den komprimerte teksten.
Antall ord i 3-byte katalogen som har blitt spesifisert er anvendt antall på 65.536 ord-grupperinger. Forutsatt at 7 biter kan definere lengden kunne noe mellom 1 og 128 slike grupper bli definert. Antall ord i den totale lengden på katalogen av 3-byte komprimeringstypen vil derfor være minst 65.536 ord, men ikke mer enn 8.388.608. Ved en-byte komprimer ings-styretabellen ville et antall styremønster lik antall anvendte 65.536 ordgrupper måtte bli reservert for å identifisere hvilken seksjon av 3-byte katalogen som er anvendt ved et hvert gitt tidspunkt. For å omkode forekomsten av et ord funnet i en 3-byte katalog vil den første delen av dens identifisering være 1-byte identifisereren fra styretabellen, som vil indikere at segmentet til 3-byte katalogen som er funnet å inneholde ordet. De neste 2 bytene vil indikere den relative forskyvningen innenfor det segmentet til katalogen hvor det omkodete aktuelle ordet er funnet.
Dersom en gruppe på 65.536 ord ble anvendt ved en 3-byte komprimeringstabell, ville et 1-byte bitmønster ved en-byte komprimeringsstyretabellen bli anvendt for å fortelle dekomprimeringsprogrammet at 3-byte dekomprimeringskatalogen er nødvendig. Når dekomprimeringsrutinen møter det bestemte en-byte mønsteret i den komprimerte tekstbyte-strengen, må påfølgende 2-byter bli lest sammen for å spesifisere hvilke ord innenfor 65.536 ord 3-byte katalogen er representert fra den opprinnelige teksten.
Som en sidebemerkning skal det bemerkes »at dersom antall slike 65.536 ordgrupper er relativt små, som er tilstede ved direktelager ved små systemer, kan hele 3-byte komprimeringskatalogen bli lastet inn i adresserommet til dekomprimeringsprogrammet. Siden hver gruppe på 65.536 ord typisk vil oppta noe mindre enn en halv megabyte med lager med gjennomsnitts ordlengde på rundt fem tegn, det er et trekk ved store prosessorer, kunne flere megabyter med adresserom bli effektivt tildelt et dekomprimeringsprogram-rom. Ved små prosessorer er det vanligvis rom for kun fem slike grupper for å reservere tilstrekkelig adresserom for operasjonspro-grammet .
I tilfellet hvor 3-byte katalogen er større enn ønskelig for anbringelse i adresserommet til dekomprimeringsprogrammet vil katalogen bli aksest fra det eksterne lagermediumet på 65.536 ordsegmenter som nødvendig. Det er også teknikker tilgjengelige for minimalisering av mengden med eksternt lagerrom nødvendig for å oppta 3-byte katalogen. Mange av disse teknikkene er kjent, slik som den virkelige lager-aksessmeto-den anvendt av IBM og andre. Teknikken er å minimalisere de eksterne lagerkravene dersom noen er virkelig anvendt og er ikke spesiell til denne oppfinnelsen.
Som nevnt tidligere skulle et bit-mønster innenfor en-byte komprimeringstabellen bli reservert for en tabell-koblingsindikator. Dersom en 3-byte tabell har blitt anvendt skulle en 3-byte tabell koblingsindikator bli reservert. Når dekomprimeringsalgoritmen påtreffer dette spesifikke møns-teret kunne således påfølgende byte inneholde navnet til den bestemte 3-byte katalogen som skal bli aksestet på det eksterne lagermediumet.
Eksempel 5:
Det antas at byte 0 opptar en av verdiene 0010000 eller 00001000 eller 00000100 eller 00000010 eller 00000001. Ved dette eksempelet er ethvert av de fem forskjellige typene med 2-byte komprimeringskatalogene blitt anvendt. Begrensningen av fem typer er valgvis og basert på bruk av en 8 bit byte-format for byte 0 i linje A på fig. 6. Dersom mere enn fem typer av 2-byte katalogene er nødvendig kan byte 0 anvendt ved denne beskrivelsen bli ekspandert til et 16 bit felt eller mer. I et hvert tilfelle kunne antallet med 2 byte-kataloger som man kunne bruke bli en eller flere av ethvert av følgende eller andre typer: en bestemt katalog for selve dokumentet, dvs. en som har blitt generert ved å avsøke og prioritere rutinen som vil bli beskrevet nedenfor har resultert i konstruksjon av en bestemt katalog som er aktuell tilført med tekst. Eller en hjelpekatalog som inneholder spesielle jargonger, riktige navn, etc, hvor feltet med en bestemt brukers område har blitt anvendt. Eller en personal-katalog hvor det bestemte vokabularet til en bestemt person eller gruppe mennesker har blitt anvendt, eller en grafisk katalog eller en lyd-katalog, etc, etc. Det skal bemerkes at et antall uten grenser med slike kataloger kan bli definert og anvendt og at deres anvendelse kan bli kommunisert effektivt til dekomprimeringsrutine eller bruker.
Som ved 3-byte katalog-eksempelet ovenfor, kan hver av 2-byte katalogene har et bitmønster innenfor en-byte komprimerings-tabellen som blir anvendt som en katalogversjonskoblings-indikator for den anvendte katalogtypen. Et antall bitmøns-ter i en-byte komprimerings-styretabellen lik verdien til antall segmenter for 256 ord anvendt ved alle de valgte 2-byte katalogene vil naturligvis også måtte bli reservert. Når dekomprimeringsalgoritmen påtreffer noen av disse bitmønstrene i den komprimerte tekst-bytestrengen vil den ved definisjon ta den påfølgende byten som betyr antall ord innenfor en bestemt 256 ord gruppering som identifiseres av første byten fra en gitt identifisert 2-byte katalog. Siden hvert 256 ordsegment fra hver katalog har sitt eget tildelt styremønster er det ikke noe tvetydighet og den bestemte katalogen og det bestemte 256 ordsegmentet til katalogen er kjent fra selve styremønsteret slik at kun bestemte nummer med ord innenfor den grupperingen må bli transportert. Kun 2 byter er følgelig nødvendig for å omkode et ord som fremkommer innenfor en 2-byte katalog. Den første byten må passe til en av styremønstrene lagret i en-byte komprimeringsstyretabellen. Den andre byten er antall med ord eller sekvensnummeret til selve ordet innenfor det bestemte 256 ordsegmentet til 2-byte katalogen ved hvilket den ble funnet.
Som det fremgår fra definisjonen gitt ovenfor og diskusjonen med henvisning til fig. 6 kan et utall permutasjoner av bitmønstrene i byte 0 til toppteksten bli anvendt. 256 forskjellige valgfrie mønster finnes i virkeligheten gitt ved en 8-bit byte-format for byte 0. Bytene som følger byte 0 i toppteksten blir vurdert i en sekvens definert av prioritets-rekken for de anvendte katalogene som ble nevnt tidligere med hensyn til beskrivelse av fig. 6. Dersom byte 0 ble omkodet som 00100000, blir for eksempel en en-byte komprimeringstabell, som anvender normalverdiene for komprimeringstabellen og en normal 3-byte komprimeringskatalog anvendt. Byte 1 må ifølge regelen så definere lengden på normalverdi 3-byte komprimeringskatalogen, dvs. feltet BA til byte n+1 på fig. 6 vil bli sett til 0 og feltet BB er lengden når antall på 65.536 ordsegmenter virkelig blir anvendt i katalogen.
Som det fremgår av foregående beskrivelse kan flere kataloger bli anvendt og i generelle tilfeller kan hver katalog inneholde opp til j segmenter. Et gitt segment for en gitt katalog D vil således bli definert av D(i,j) og kan bli påkalt av et bestemt bit-mønster innenfor styretabellen. Summen på antall segmenter anvendt på alle katalogene anvendt ved et gitt komprimeringseksempel må bli reservert i individuelle bitmønstere innenfor styretabellen for å identifisere segmentene når de forekommer i den komprimerte tekststrengen. Dvs. det vil være et bitmønster i styretabellen for hvert segment med hver identifisert katalog som blir anvendt ved den komprimerte tekststrengen. Antall ord eller fraser representert av en byte ved sett komprimert data vil være det totale antall mulig ved en byte, 256, mindre enn det totale antall segmenter som må ha blitt identifisert reservert for dem i styretabellen og mindre enn antall satte styrebitmøns-ter ved siden av innenfor styretabellen for bestemte tegn, bokstaver, nummer og styresekvenser eller signaler. Ved en her anvendt arbitrær regel blir antall bitmønstre i-^nfor styretabellen anvendt for å identifisere katalogsegniir.tene tildelt sekvensiell starting ved toppen av styretabellen, dvs. med et bitmønster for alle l'er og forsettende til lavere nummererte bitmønster inntil det totale antall katalogsegmenter har blitt tildelt. Et hvert resterende styretabellrom kan så bli tildelt for styrebitmønstrene, spesielle tegn, boks^.'.ver, nummer og lignende og et hvert resterende rom kan .ii gitt over det høyeste av de figur-ordene.
Som også implisitt i de foregående reglene vil søkingen av katalogene ved omkodingsslutten være en prioritet definert av den som bruker komprimeringsteknikken. Den typiske sekvensen for søkingen ville være først å søke styretabellen for en-byte komprimerte ordmønster fulgt av søking av for 2-byte kataloger dersom noen er anvendt og i det minste alle 3-byte katalogene dersom en er anvendt.
Som nevnt tidligere har nummeret på 2-byte katalogene ved de gitte eksemplene være arbitrært begrenset til fem av 8-bit byte formaten for byte 0. Hver av de anvendte 2-byte katalogene og selve styretabellene og enhver 3-byte katalog kan imidlertid ha opp til 256 versjoner derav, som kan bli påkalt ved å innføre versjonskoblebitmønsteret for den typen av katalogen i den komprimerte strengen og fulgt ved regelen med en byte-identifisering, hvilken versjon av katalogene som skal bli aksesset neste gang.
Som et eksempel på tildelingene av styretabellen skal det betraktes et eksempel hvor en 3-byte katalog, som består av 16 segmenter på hvert 65.536 ord (for totalt 1.048.576 ord) har blitt valgt arbitrært og henvist til som katalog A. Det antas også at en 2-byte katalog som består av 32 segmenter med 256 ord hver (for totalt 8.192 ord) har blitt valgt arbitrært og er henvist til som katalog B. Det antas videre at en 2-byte katalog som består av kun 8 segmenter på hvert 256 ord (for totalt 2.028 ord) har blitt valgt og henvist til som katalog C for komprimering av teksten. De følgende trinnene vil bli tatt ved tildelingen av styrebit-mønstrene ved en byte-styretabell.
Først vil seksten 8-bitmønsteret bli tildelt i styretabellen for å representere seksten segmenter av 3-byte katalogen A. Deretter ville trettito 8-bit mønstere bli tildelt for å representere 32 segmenter av 2-byte katalogen B og så vil 8-bit mønstrene bli tildelt for å representere de 8 segmentene til 2 byte katalogen C. Så vil et antall på 8-bit styremøns-ter bli tildelt for forskjellige spesielle tegn, styresekvenser, bokstaver, nummer etc, som bli påtruffet. Ethvert øvrig bitmønster av 256 opprinnelige mulige mønster i styretabellen til en-byte bredden ville så bli tildelt den høyeste relative verdiordenen som er valgt i samsvar med teknikken som skal bli ytterligere beskrevet her. De bestemte katalogene indikert av omkodingsgruppen som har gjort valget av disse katalogene vil til slutt bli lest inn i lageret for å begynne komprimeringsrutinen.
For å beskrive arbeidet med komprimeringsrutinen må det nå bli gitt en nærmere detaljert analyse av systemet og dens fremgangsmåte for operasjon.
Man skal vende tilbake til fig. 1 som viser et totalsystem-diagram for en typisk tekstkomprimering eller ekspansjons-operasjon i samsvar med den foretrukne utførelsesformen av oppfinnelsen. Tekstinngangskildene kan være lese/skrive disk, tastatur styrt av en operatør, en kassett eller et kommunikasjonsnettverk tilpasset hvor innkommende ASCII eller EBCDIC omkodet tekst er mottatt fra et fjerntliggende sted. Tekstinngangs-anordningene er generelt gruppert sammen som "tekst-inngang" og merket som en boks på fig. 1 med prikket linje med henvisningstallet 1. En multiplekser 2 er indikert for å motta og velge i samsvar med adressene mottatt på adressebussen 3 fra mikroprosessoren 4 en av mulige inngangs-signaler for en inngangskilde med tekst som skal bli komprimert eller dekomprimert. Det skal bemerkes at individuelle adaptere for disken eller tastaturen, kassetten eller kompresjonsnettverkadapteren vil være anordnet for å omforme signaler fra det representerte mediumet til egnet spennings-nivå og format for fremstilling for multiplekser 2. Enhver serie eller parallell-adapter for å omforme fra serie til parallell eller parallell til serie format er forbundet med den andre side av multiplekseren 2, som vist med adapterene 5 og 6 henholdsvis, som tillater bruk av enten serie eller parallell-adresse og databusser i systemet og tillater riktig kommunikasjon via multiplekseren 2 til enten serie eller parallell inngangsanordningene eller utgangsanordningene i den prikkede blokken 1. Et hovedstyrelager, som vil være et leselager i de fleste tilfellene er indikert som styrelager 7, som er forbundet med adresse og databussene til styremikroprosessoren 4. Masselageret i form av disklager eller lignende er angitt som masselageret 8. De øvrige blokkene 9, 10 og 11 indikerer deler av lese/skrive adresserbart lager konfigurert av styremikroprosessoren og anvendt for dens arbeidslagerrom. En del 9 inneholder hovedkatalogene sammen med deres tegn og katalogsegmentkart såvel som styretabellen som har blitt henvist til som en lengde tidligere, av hvilke alle har blitt lest inn frå masselageret 8 i samsvar med et gitt valg av en bruker eller som reaksjon på lesingen av byte 0 til toppteksten beskrevet tidligere.
Blokken 10 inneholder en sende I/O buffer og blokken 11 en mottager I/O buffer. Disse bufferene vil bli konfigurert i det adresserbare lagerrommet som arealer i hvilke data som skal bli komprimert eller dekomprimert vil bli midlertidig bufret i løpet av komprimerings- eller dekomprimerings-algoritme-operasjonen som skal bli beskrevet. Tildelingen av rom innenfor hovedlageret 9 for katalogene vil også innbefatte katalogsegmenttegn og katalogsegment-avbildninger, som vil bli beskrevet nærmere nedenfor.
Det antas at de individuelle lagene indikert av en gitt bruker har blitt lest inn i lageret 9, og prosessoren 4 vil konstruere tegnene for å minimalisere katalogsøke-tiden. Disse kan ha blitt konstruert tidligere og lest inn ved tidspunktet hvor selve katalogen blir lastet fra masselageret 8. Indeks-settet består av et sett med elementer, av hvilke hvert element vil inneholde segmentnummeret som er reservert
1 styretabellen som skal bli definert for det segmentet. Indekselementet har således to innføringer for lengden av et ord og selve ordet for den laveste eller første innføringen av det katalogsegmentet i kollatert orden av ordene som blir anvendt. Indekselementet har også to innføringer for siste eller høyeste kollateringsordens-ordinnføring ved det segmentet for ordets lengde og for selve ordet. Med andre inneholder katalogsegmentindeksen for hvert segment som skal bli definert en lengde og en aktuell ordinnføring for laveste ordenskollateringsinnføring som fremkommer alfabetisk innenfor det segmentet og en lengde og en virkelig ordinnfør-ing for den høyeste kollateringsorden-innføring som fremkommer innenfor det segmentet. Kollateringsorden kan vanligvis være alfabetisk. Et eksempel på kollateringsorden er vist på fig. 2.
Kollateringsordenen antatt for eksempelet på fig. 2 er den anvendt ved IBM System/370 datamaskin-arkitekturen. Den er en tildelt hierarki-sorteringskollateringsorden med spesielle tegn først i definert orden som er kjent for brukeren av slike systemer fulgt av små og store bokstaver og sist av nummer i høyeste kollateringssekvens-orden. Kollateringsordenen kan bli betraktet som ekvivalent med en total "alfabetisk orden" for mulige innføringer som skal bli sortert. De aktuelle kataloginnføringen for hver katalog er således kollatert først og sortert i kollatert orden. Hvert katalogsegment begynner således med noen lave kollateringsorden-innføringer av en gitt lengde og et gitt innføringsord (eller nummer eller tegn som også kan være tilfelle) og segment-indeks-ender med høyeste kollateringsorden-innføring som fremkommer innenfor det segmentet til katalogen som blir anvendt. Katalogsegmentindekset er anvendt for å øke farten på katalogsøketiden ved å anvende binærsøketeknikk som vil bli beskrevet nærmere.
Ved det ovenfor gitte eksempelet vil det være 256 segmenter definert i katalogsegmentindeksen som vist på fig. 2. Det vil være 32 segmenter for 3-byte katalogen og 16 segmenter og 8 segmenter, henholdsvis, for de ytterligere 2-byte katalogene som ble valgt. Ingen segmenter er absolutt nødvendig for en-byte styretabellinnføringene siden disse kan bli avsøkt hurtig på en en-byte basis, men segment-tegnene for en-byte tabellen er anvendt for konsistensitetens skyld.
En katalogsegmentlager-avbildning er dessuten konstruert for korrelatering av de aktuelle segmentnummer og innføringsposi-sjonene med startlageradresse-stedene. Disse inneholder segmentnummer, lengde av første innføring i nummertegn og startlageradressen ved hvilken slik innføring fremkommer. Den er fulgt av neste innføring innenfor det segmentet med en lengde og en startadresse, etc., inntil alle segmenter og alle tegnlengder og alle startlageradresser har blitt lastet inn i lagersegment-lageravbildningen. Dette forenkler den binære søketeknikken som vil bli beskrevet senere siden det er mulig å finne en tilpassende innføring for et gitt ord som skal bli komprimert eller ekspandert mye hurtigere om en binær søketeknikk er anvendt for å søke kataloginnføringene. Katalogsegment-lageravbildningen vil også inneholde innfør-inger for ord innenfor styretabellen. Ved det gitte eksempelet ovenfor ville det være 168 bitmønster tilbake i styretabellen etter tildelingen av vanlige spesialtegn og katalogsegmentindikatorene har blitt fullført.
Dersom en komprimeringsrutine har vært fulgt, ville toppteksten som beskriver spesielle katalogvalg gjort for komprimeringen så bli skrevet i et komprimert datasett. Toppteksten ville for eksempel være 0011100 fulgt av 0001111 fulgt av 0011111 fulgt av 00000111 ved eksempelet gitt ovenfor. Dette vil definere det faktumet at en 3-byte katalog som består av 16 segmenter, en 2-byte katalog som består av 32 segmenter og en annen 2-byte katalog som består av 8 segmenter er blitt anvendt. I tillegg spesifiserer den første byten 00111000 faktumet at alle katalogene og styretabellen har blitt sett til å være normalverdidefinisjonene på grunn av at den første biten til hvert av de følgende 3 byter er sett til 0 som vist i eksempelet.
Den gitte tekstinngangen eller dokumentet vil deretter bli avsøkt og et ord vil bli utledet. Dette er vanligvis utført som ved tidligere kjent teknikk ved å undersøke tekststrømmen inn til tegnsettingsmerket eller et mellomrom som følger en tegnkode er påtruffet. Gruppen med tegnkoder og en mellomromskode blir så betraktet som et "ord" som skal bli sammenlignet med kataloginnføringer. Dannelse av store bokstaver er håndtert lignende og en kode er skrevet til komprimert datasett som angir dannelse av store bokstaver dersom den er detektert. En egnet styresekvens blir beskrevet for komprimert datasett og det første tegnet vil bli endret tilbake til en liten bokstav for katalogleting. En "alle tegn dannelse av store bokstaver" tilstand kan også forefinnes og en egnet styresekvens kan bli skrevet til det komprimerte datasettet for denne betingelsen med alle tegnene så omformet til små bokstaver for søking.
Ordet vil så bli kontrollert i forhold til innføringene i styretabellen som representerer den høyeste relative priori-teten eller verdifiguren for ordene. Dette blir gjort ved å anvende styretabell-katalogsegmentlager-avbildningen på figur 2 som anvender en binær søketeknikk. Dersom en tilpasning forekommer mellom inngangsordet og en innføring i styre-tabellordlisten blir en-byte mønsteret som representerer det ordet skrevet til det komprimerte datasettet og prosessen vil fortsette fram til trinnet rett foran dette.
Dersom ingen tilpasning i en-byte styretabellen forekommer blir et indekssett anvendt for å bestemme hvilke segment innenfor den første 2-byte katalogen kan være mulig inneholdende ordet dersom det skal bli funnet innenfor den første 2-byte katalogen. Katalogsegmentindekset på fig. 2 er anvendt for dette formål. Dette blir gjort ved å velge det første elementet til indekssettet og sammenligning av ordet mot den laveste innføringen og mot den høyeste innføringen i segmentet som indekssett-elementet representerer. Dersom ordet er inneholdt i ordningsrekkefølgen til den laveste og høyeste innføringen til et gitt indekssett-element for et gitt segment så vil en binær søking av ordene innenfor det bestemte segmentet bli utført i katalogsegmentlager-avbildningen for å bestemme om ordet som skal bli komprimert er virkelig inneholdt i den bestemte katalogen som skal bli avsøkt. Denne binære søkingen bruker katalogsegmentlager-avbildningen for å finne en mållageradresse. Dersom en tilpasning er funnet blir segmentnummeret og en-byte ord nummeret innenfor segmentet skrevet. I tilfelle av en 3-byte katalog vil forskyvningen av ordnummeret kreve 2 byter som følge av segmentnummeret.
Dersom ingen tilpasning er funnet ved en definert 2-byte katalog så vil påfølgende 2-byte katalog bli avsøkt inntil alle 2-byte katalogene som er definert har blitt mottatt. Dersom ingen tilpasning er funnet i noen av disse katalogene så fortsetter søkingen.
Dersom ingen tilpasning er funnet i noen katalog så kan ordet bli stavet ved å anvende en eller to metoder. Enten kan ordet bli ikke-komprimert og ganske enkelt sendt som EBCDIC eller ASCII fremstilling tegn for tegn inntil ordet er blitt fullstendig sendt eller skrevet til komprimert datatekst eller en spesiell styresekvens kan bli skrevet til komprimert datatekst fulgt av ikke-komprimert tegnfremstilling og fulgt av en annen styresekvens-byte for å indikere at slutten på den ikke-komprimerte delen har blitt nådd. Valg av hvilken teknikk som skal anvendes er skjønnsmessig. Bruk av kodevekslings-sekvenser eller styresekvenser for å indikere forekomsten av ikke-komprimert del med tekst innebærer at svært få styresekvenser må bli spesifisert ved en-byte styretabellen. Dersom individuelle tegns fremstillinger har blitt reservert ved styretabellen er det is. Uertid unødven-dig å indikere det faktumet at ikke-komprimert tekst følger ved. å entre en styresekvens eller kodevekslings-sekvens til komprimert tekststrøm. Dette er tilfellet på grunn av at ikke-komprimert EBCDIC eller ASCII tegn vil bli nøyaktig mottatt og dekodert siden de vil finne tilpasningsinnføringer i styretabellen.
Et eksempel på fullstendig datakomprimeringsalgoritme-flytdiagram som ville muliggjøre enhver programmerer å gi en individuell mikroprosessor eller operasjons-programspråk for dette er vist. Det er gitt i formen av et flytdiagram som kan bli lett omformet av en slik person til et operasjonspro-gram.
Fig. 4 viser det fullstendige flytdiagrammet for flere komprimeringsvalg som anvender forskjellige katalogtyper. Mens flytdiagrammet er selv-forklarende og kan lett bli omformet til et sett med mikroprosessor-instruksjoner, er det nødvendig med et par bemerkninger til det generelle flytdiagrammet og spesifisering av den involverte komprimeringsteknikken.
Den første oppgaven begynner ved blokken 12 på fig. 4 hvor komprimeringsrutinen er begynt. Det første spørsmålet spurt om i blokken 13 er om brukeren har valgt en en-byte tabell alene skal bli anvendt ved dens normaltilstand for komprimering. Dersom svaret er ja blir en topptekst med alle 0'er skrevet som vist i blokk 14 og komprimeringen av dokumentet begynner i blokken 32. Rutinen er å hente individuelle tegn enkeltvis fra dokumentfilen som inneholder EBCDIC eller ASCII kode av dokumentet som skal bli komprimert. Hver gang tegnet er en ordslutt, dvs. et rom eller tegnsettingsmerke er funnet eller dokumentendetegnet er funnet er et ord definert som har blitt isolert. Innføringsordet blir så sammenlignet mot en en-byte komprimeringstabell som anvender binærsøketeknikken beskrevet tidligere. Dersom en sann sammenligning eller tilpasning er funnet, blir bitverdien som korresponderer med adressestedet for ordet innenfor en-byte tabellen skrevet som komprimert versjon av ordet. Denne vil bli anbragt i bufferen 10 på figur 1, for eksempel for å danne en utgående komprimert tekst eller den kunne bli anbragt i hovedlageret 9 ved brukerens valg. I blokken 38 blir spørsmålet stilt om slutten på tekstindikatoren blir funnet ved det siste isolerte ordet og dersom det er tilfellet må slutten av tekstbitmønsteret bli skrevet til det komprimerte datasettet og komprimeringsprogrammet slutter. Dersom svaret på spørsmålet i blokken 32 er nei, blir ordbufferen i blokken 11 på figur 1 slettet og programrutinen går i sløyfe tilbake til begynnelsen for å hente et annet tegn fra dokumentfilen og anbringe den i ordbuffer 11 i blokk 33. Prosessen fortsetter inntil alle ordene i dokumentet har blitt omkodet eller har blitt behandlet på en alternativ måte ved å bokstavere ut når ingen tilpasning har blitt funnet eller dersom noen av lagrene er blitt anvendt. Denne delen av rutinen er funnet ved utgangen fra blokken 36 som dirigerer strømmen til blokken 43. Dersom en-byte tabellen er den eneste som blir anvendt, så i tilfelle av ingen tilpasningstilstand, er det nødvendig å enten bokstavere ordene direkte ved å anvende EBCDIC eller ASCII tegn som tidligere beskrevet i denne beskrivelsen eller å bekrefte denne endringen i omkoding ved å skrive et kodevekslingstegnbitmønster til det komprimerte datasettet som vist i blokk 44. Dette vil bli fulgt, dersom et kodevekslings-tegnmønster er anvendt, av å skrive hvert tegn fra ordbufferen 11 til det komprimerte datasettet og avslutte strengen med ikke-komprimerte tegn med et annet kodevekslings-bitmønster. Som nevnt tidligere er kodevekslingstegn-bitmønsteret ikke nødvendigvis i tilfeller hvor en-byte bufferen inneholder koder for alle de normale bokstavene og tegnene som vil være ved vanlige tilfeller. Det vil kun være nødvendig hvor det ikke har vært funnet noen tilpasning mellom ordsammenligningen og innholdet til en-byte bufferen for ordene med å konkludere at ordet i bufferen skulle bli skrevet tegn for tegn i komprimert datasett. Det skal bemerkes at ved et dekomprimeringsprogram, siden ingen ordtilpasning har blitt funnet ved å sammenligne tegn for tegn mot innholdet i en-byte tabellen, ville et "tegn" tilpasning bli funnet hvor tegnene har vært tidligere lagret. Denne teknikken er ikke vist i flytdiagrammet, men det skulle vært klart ut fra beskrivelsen.
Blokk 43 på fig. 4 viser også hierarkiet med letingen som er inneholdt i denne rutinen. Dersom en-byte tabellen ikke er den eneste som bli avsøkt så blir ordbuffer-innholdende sammenlignet mot enhver 2-byte katalog som har blitt valgt av brukeren som vist ved blokken 45. Dersom en tilpasning ikke er funnet i noen av 2-byte katalogen, så stilles spørsmålet i blokk 47 om en 3-byte katalog skal bli anvendt og dersom svaret er ja, foretas sammenligning i forhold til 3-byte katalogen som blir anvendt inntil en tilpasning er funnet eller dersom ingen tilpasning er funnet går programmene i sløyfe tilbake til blokken 44 for å skrive ordet i sin ikke-komprimerte form som beskrevet tidligere.
Med henvisning til blokk 18 på fig. 4 skal det bemerkes at dersom en en-byte katalog eller tabell skal bli generert basert på innholdsdokumentet som blir komprimert, dvs. hvis en bestemt katalog for dokumentet som skal studeres skal bli generert, begynner programmet i blokken 19 ved å åpne dokumentfilen, dvs. initialiseres i arealet i lageret hvor behandling av dokumentet ord for ord kan bli utført og fortsetter til blokken 20. Dokumentordene blir avsøkt og en liste blir konstruert i lageret til alle de enkelte bestemte ordene som er funnet i dokumentet. En verdi for antall forekomster av hvert bestemt ord blir også opprettholdt. Når dette har blitt fullført blir den relative veide figurverdien for hvert ord i dokumentet beregnet ved å multiplisere antall-telleverdien for forekomsten av hvert ord med lengden i tegnet til ordet. De resulterende verdifigurene blir sortert etter størrelse med høyere størrelse (høyeste verdifigur-ord) blir tildelt bitposisjonene som forblir i en-byte tabellen (etter tildeling av alfa, numeriske, spesielle tegn og styretegn har blitt fullført). Brukeren vil måtte definere hvor mange bitmønstere som vil være tilgjengelige i en en-byte tabell ved et skjønnsomt valg av styretegn etc. Dette vil etterlate et visst antall nummer av de 256 mulige tilgjengelige mønster. En bestemt topptekst blir så skrevet i en blokk 28 for å begynne den komprimerte datastrømmen. Dette er fulgt som vist ved blokk 29 av segmentlager-lokaliseringsavbildningen, et 2-byte mønster som angir lengden på alle ord som er vist i en-byte tabellen fra blokk 26 og fulgt av en aktuell liste av ord som skal bli anvendt i katalogen som vist ved blokk 31. Programmet beveges så til komprimeringsrutinen som begynner ved blokk 33 som vist.
Dersom en 3-byte katalog eller en 2-byte katalog er definert som nødvendig beskriver blokkene 52 og 62 tilfellesekvensene. Det bestemte valget av kataloger som er blitt gjort av brukeren som påkaller komprimeringsrutinen er betegnet og generert som en katalogstruktur som vist i blokk 68 for andre sett med kataloger annerledes enn de som er spesielt beskrevet. Hver av elementene til flytdiagrammet på fig. 4 håndterer enhver av mulighetene for å skrive en-byte kompri-meringstabeller, en-byte hjelpekomprimeringstabeller, 2-byte eller 3-byte kataloger av enhver type. Valg av hvilke kataloger som skal bli anvendt er latt fullstendig over til en person som oppkaller komprimeringsrutinen. Det resulterende valg av kataloger blir så reflektert ved konstruksjon av informasjonstoppteksten som begynner den komprimerte data-strømmen som beskrevet nærmere tidli:;?re. Når toppteksten har blitt konstruert følger komprimer ngsrutinen som vist på fig. 4 via et analysemønster for å sammenligne hvert ord mot den valgte listen av kataloger som skal bli anvendt og for å konstruere komprimert datasett i samsvar med instruksjonen på fig. 4.
Dekomprimering er en svært rett-frem operasjon er beskrevet med henvisning til figur 3. Et antall tabeller A, B, C og D vil bli definert som seksjoner i et hovedadresserbart lager 9. Verdiene som er lastet inn i tabellene D, C, B og A er skrevet i samsvar med toppteksten mottatt for det komprimerte datasettet. Analysen av toppteksten muliggjør at programmet i mikroprosessoren får tilgang til masselageret eller lageret og henter nødvendige verdier for å initialisere tabellene D, C, B og A som vist på fig. 3.
Beskrivelsen gitt for fig. 3 viser dekompr imer ing av tekst som blir fullført ved å anvende et indirekte adresseskjerna. De fire lagertabellene D, C, B og A tilknyttet dekomprimeringsprogrammet er definert som følger. Tabell D blir anvendt for å avbilde bitmønstrene til den første byten til den komprimerte strømmen i en rekke med forskyvninger innenfor tabellen C. Tabellen C inneholder med andre ord alle mulige permutasjoner for den første byten til toppteksten og tabellen D blir anvendt for å analysere toppteksten og velge hvilke av mønstrene som skulle bli angitt i tabellen C. Tabellen C er en overføringsvektortabell som indikerer hvilke valg av subrutiner innenfor dekomprimeringsprogrammet som må bli påkalt for å håndtere dekomprimeringen av hvert ord, setning, styresekvens, bokstav eller nummer som kan være aktuelt. Med andre ord, tabellen D er anvendt som en sammenligning i forhold til toppteksten for å analysere toppteksten og identifisere hvilke kataloger som skal bli anvendt. Tabellen C inneholder kataloger til subrutiner som vil være nødvendige for å håndtere hver dekomprimeringstype.
Hver bestemt versjon av hver katalog som har blitt spesifisert i toppteksten har også ytterligere tabeller A og B definert for seg. Tabellen er en indirekte adressetabell som inneholder et 2-byte reservert felt og et 1-byte ordlengde felt og et 4-byte adressefelt. Tabellen B er således segmentlager-lokaliseringsavbildningen for den angjeldende katalogen. Den andre tabellen, tabell A, inneholder dekomprimerte ord i seg selv og er katalogordlisten.
For dekomprimeringsrutinen analyseres toppteksten for å bestemme hvilken katalogstruktur som har blitt spesifisert. Et detaljert eksempel som antar eksistensen av generelle registerrom tilgjengelige i hovedlager 9 vil nå beskrives.
Dersom en normal en-byte tabell skal anvendes alene, blir en peker initialisert valgfri i et register R3 for generelle formål innenfor hovedlageret 9. Pekeren blir initialisert for å indikere byte-nummeret i den komprimerte teksten ved hvilket punkt den første byten med selve komprimeringen begynner. En annen peker blir etablert i et annet register-lager R4 for valgfrie generelle formål. Den blir initialisert for å peke ved adressen i lagerrommet til lageret 9 hvor det dekomprimerte tekstlagerarealet begynner. En annen peker, valgvis initialisert i registerrommet R5 for generelle formål blir initialisert for å peke på adressen i lageret hvor begynnelsen av tabellen D er lokalisert. En annen peker blir initialisert ved et register R6 for valgfrie generelle formål for å peke på begynnelsen av tabellen C i lageret. En ytterligere annen peker blir initialisert valgfritt i et register R7 for generelle formål som peker på begynnelsen av tabellen B og et annet register R8 blir initialisert, som inneholder en peker mot begynnelsen av tabell A. Verdiene for disse tabellene blir så fanget opp fra lageret 8, for eksempel, og lastet inn i hovedlageret, som begynner ved punktene som identifisert av pekerene i de nettopp beskrevne registerene.
Dekomprimeringen begynner så. En byte blir hentet fra den komprimerte teksten som begynner ved lokaliseringen beskrevet av pekeren og anbragt i et register R9 for generelle formål definert på fig. 1 som mottagerbufferen 11. R9 blir med andre ord lastet med byten fra stedet indikert av innholdet til register R3. Begynnelsen av adressen til tabell D kan så bli tillagt innholdet til registeret 9 for generelle formål, dvs. verdien for R5 blir addert til R9. Dette gir en ny verdi for en-byte ved et sted indikert av R9 som blir lastet inn i register RIO for generelle formål. Dette er avbildningsbyten valgt som resultat av mønsteret funnet i den første byten med komprimert tekst og definerer om byten representerer et ord, et styretegn, et spesielt symbol, en styresekvens, en bokstav eller et siffer etc.
Avbildningsbyten blir valgfritt multiplisert med 4, dvs. RIO blir forskjøvet til venstre to posisjoner, og begynner å adressere for tabell C, som er overføringsvektortabellen, blir tillagt produktet som således blir tilveiebragt. Dette gir styring av operasjonen til subrutinen hvis lokalisering er indikert i overføringsvektortabellen ved posisjonen nå indikert i registeret RIO. Delen av subrutinen blir så initialisert for å håndtere det spesielle symbolet, styre-sekvensen, bokstaven eller sifferet som har blitt identifisert av avbildningsbytetabellen. Spesielle symboler, styresekvenser, bokstaver, sifre etc, som hver har en bestemt subrutine. Ordene i en-byte komprimeringstabellen deler imidlertid alle en felles subrutine for dekomprimeringen. Subrutinen for ord-dekomprimeringen eksisterer i lageret og håndterer ord som vil bli funnet i en-byte komprimeringstabellen. Denne henter den komprimerte byten fra den komprimerte tekstbyte-strengen ved å laste R9 med byten fra lokaliseringen indikert av R3. Verdien for den komprimerte byten i R9 blir så multiplisert valgvis med 8, dvs. forskjøvet 3 bit-posisjoner mot venstre og begynnelses-adressen til tabellen B blir addert til det resulterende produktet. Med andre ord blir R7 sitt innhold addert til R9 som gir en peker til lengden og stedet for selve det dekomprimerte ordet. Lengden og stedet for ordet blir indikert av to mer enn verdien for R9 og fire mer enn verdien for R9, henholdsvis. Disse verdiene blir lastet inn i registerene RIO og Ril, henholdsvis, for generelle formål. Resultatet blir det selve dekomprimerte ordet som vil bli beveget fra katalog-ordlageret til tabellen A til det dekomprimerte tekstarbeidsarealet i hovedlageret 9. Ved det gitte eksempelet vil ordet fra lokaliseringen indikert ved Ril med en lengde angitt av innholdet til RIO bli beveget til lokaliseringen indikert med R4. Pekere vil så bli oppdatert for posisjonen til den neste komprimerte byten og for lokalisering av den neste dekomprimerte tekstinngangen. Ved det gitte eksempelet vil registeret R3 bli øket med 1 og verdien for RIO vil bli addert til R4. Dekompr imer ingspr ogramme t går så i sløyfe tilbake for å hente neste byte fra den komprimerte byte-strengen og gjentar prosessen angitt ovenfor.
Styringen av dekomprimeringsrutinen blir overført til slutten av filsubrutinen ved gjenkjennelse av en ende av filstyreteg-net eller sekvensen. Enden av fil-subrutinen fremviser den komprimerte datastrømmen på en måte valgt av brukeren, dvs. den kan bli ført ut gjennom multiplekseren 2 til et kommunikasjonsnettverk tilpasset for kommunikasjon med et fjerntliggende sted eller lagret på en disk eller kassett i blokken 1 som angitt på fig. 1. Alternativt kunne den også bli lastet inn på et diskmasselager 8 for gjenvinning ved et senere tidspunkt.
For en dekomprimeringsrutine som anvender en alternativ en-byte komprimeringstabell eller i tilfelle av at en tabellkob-lingstegn har blitt indikert i en styresekvens funnet innenfor den komprimerte tekstbyte-strengen, vil alternativ tabellverdier for tabellene A, B, C og D bli aksessert fra lageret og lastet inn i arbeidslagerrommet som ligger over de eksisterende tabellverdiene for A, B, C og D. Dekomprimeringsrutinen fortsetter da som beskrevet ovenfor. I tilfelle av at en-byte komprimeringstabellen og noen ytterligere kataloger har blitt spesifisert vil toppteksten indikere hvilken en-byte komprimeringstabell og hvilke andre kataloger som har blitt spesifisert og antall segmenter for hver av de andre spesifiserte katalogene som skal bli anvendt. Egnede tabellverdier for A, B, C og D blir så lastet fra det på forhånd definert ytre lagermediumet og lokalisert i adresserommet til dekomprimerinf programmet som nevnt ovenfor og dekomprimeringen fortsetter som beskrevet. Hvert segment til hver katalog vil ha sin egen korresponderende subrutine for å avbilde den komprimerte byten eller bytene i egnede ord innenfor det indikerte segmentet til den indikerte katalogen. Ved for eksempel en 2-byte katalog vil subrutinen for et bestemt segment til en bestemt 2-byte katalog bruke den andre byten til 2-byte komprimert fremstilling av ord som en forskyvning til egnet tabell B for å finne det dekomprimerte ordet innenfor ordkatalogen, tabell A. I tilfellet av en 3-bytekatalog bruker subrutinen for det bestemte segmentet til 3-byte katalogen den andre og tredje byten til 3-byte komprimert fremstilling av et ord som en forskyvning til riktig tabell B for den katalogen for å finne det dekomprimerte ordet eller setningen inn i katalogen lokalisert i
tabellen A for den bestemte valgte katalogen.
Med henvisning til fig. 5 er det vist en skjematisk fremstilling av bytestrengen til en komprimert tekst. Toppteksten er ikke indikert siden den er blitt behandlet nærmere på fig. 6. I linje Å på fig. 5, et kodevekslingstegn-bitmønster er den andre viste byten og selv om bruk av kodevekslingstegn-bitmønsteret kan bli unngått som nevnt tidligere er den brukt ved dette eksempelet. Kodevekslingstegn-bitmønsteret er fulgt av det første ikke-kodete tegnet med unntak for dets vanlige EBCDIC eller ASCII kode siden den utgjør et ord som ikke var funnet i noen katalog. Et antall innblandingstegn forekommer og det siste tegnet i ordet ikke funnet i noen katalog er kode fulgt av en andre kodevekslingstegn-bitmøns-ter. Komprimerte ord begynner igjen ved linjen B som er fortsettelsen av linje A på fig. 5. Et en-byte komprimert ord først, fulgt av et 2-byte katalogs komprimert ord med dens to felt med informasjon som fremstiller segmentnummeret for en gitt 2-byte katalog og den relative posisjonen for ordet innenfor katalogen. Denne er fulgt av et ytterligere en-byte komprimeringsord ved dette eksempelet, fulgt av et multippel rom-detekteringsbitmønster og fulgt ved linjen C med antall multippelrom som har blir detektert. Dette er fulgt av et segmentnummer for et 3-byte katalog komprimert ord fulgt av 2 byter som indikerer en relativ posisjon til det ordet innenfor det identifiserte segmentet for en 3-byte katalog.
Ved siden av kodevekslingstegnbitmønsteret må andre styremøn-ster bli definert og lastet inn i en byte-komprimeringsstyretabellen. Et versjonskoblingsstyremønster har tidligere blitt beskrevet, som når påtruffet i den komprimerte tekststrømmen er ment å indikere at følgende byte indikerer et nytt versjonsnummer for katalogen som blir anvendt. Den blir omkodet ved komprimeringsrutinen når katalogen som blir anvendt skal bli overlagt med en annen versjon av samme type for katalogen. En multippel utførende forekomst av blanke tegnrom i teksten er en annen forekomst som krever for best komprimering et nytt styretegn som ville være multippel mellomromstyretegn når gjenkjent. Det vil bli fulgt av en annen byte som angir antall blanke mellomrom som skal forekomme. Ved et 1-byte styretegn er det klart at 256 versjoner av den styringen kan bli indikert i den andre følgende byten. For et katalogsversjonskoblingsstyretegn kan følgende byte således spesifisere enhver av 256 versjoner av samme katalog. Dette kan bli anvendt for å øke antall ord som kan bli fremvist ved en byte ved å erstatte en-byte katalogene med andre versjoner, eller den kan bli anvendt for å tilveiebringe øket sikkerhet ved datatransmisjon.
Fra ovenfornevnte skulle det klart fremgå at det ville være mulig å ta uttallige modifikasjoner med hensyn til antall kataloger og katalogtyper mens det fremdeles anvendes samme basistopptekst-konstruksjonsskjema for å identifisere mottaker eller det anvendes kataloger og størrelsene på katalogene som er blitt anvendt ved komprimeringen. Vektfre-kvensene på bruksformål for å etablere innføringer i katalogene har seg vist seg å være ekstremt effektive innretninger for komprimering av tekst. Selve teksten kan være alfanumer-isk data, lyddata, grafisk data eller en hver annen lignende datategninformasjon som skal bli behandlet for lagring eller transmisjon. Oppfinnelsen har således blitt beskrevet med henvisning til en foretrukket utførelsesform, men det er klart at det ville også finnes andre utførelsesformer innenfor rammen av oppfinnelsen.

Claims (7)

1. Fremgangsmåte for datakomprimering innbefattende separering av en ukomprimert kodet datastrøm til enheter, sammenligning av enhetene mot i det minste en brukervalgt katalog med enheter som har komprimerte kodeekvivalenter for hver enhet lagret i tilknytning med de ikke-komprimerte omkodete enheten, karakterisert ved beregning av en komprimert datatopptekst som innbefatter indikasjon for å definere identifikasjonen til hver av de brukervalgte katalogene anvendt ved komprimering av dataen, og eksportering av komprimerte kodeekvivalenter for innkommende enheter for hvilke en sann sammenligning er funnet ved sammenligningstrinnet og eksportering av den ikke-komprimerte omkodete tegnstrømmen for enhver av enhetene for hvilke ingen sann sammenligning er funnet.
2. Fremgangsmåte ifølge krav 1, innbefattende separering av innkommende ikke-komprimert omkodet datastrøm i enheter, sammenligning av enhetene ved i det minste en brukervalgt kompilerte katalog med enheter som har komprimerte kodeekvivalenter for hver enhet lagret i tilknytning til ikke-komprimerte enheter, karakterisert ved eksportering av den komprimerte datatopptekst innbefattende indikering for å definere identiteten til hver av de brukervalgte katalogene anvendt ved komprimering av data, eksportering av komprimerte kodeekvivalenter for innkommende enheter for hvilke en sann sammenligning er funnet ved sammenligningstrinnet og eksportering av den ikke-komprimerte omkodete tegnstrømmen for enhver av enhetene for hvilke ingen sann sammenligning er funnet, og separering av den ikke-komprimerte strømmen ut fra de komprimerte delene til strømmen ut fra komprimeringskode- skiftetegnsignalene som omgir den ikke-komprimerte strøm-utgangsdelen.
3. Fremgangsmåte for dataekspansjon, innbefattende mottagelse av en innkommende komprimert omkodet datastrøm og separering av den innkommende komprimerte datastrømmen i enheter, karakterisert ved identifisering av den innkommende datastrømmen i en topp-tekstdel som innbefatter indikasjonsdefinering av identifisering av hver brukervalgt katalog anvendt ved dannelse av den komprimerte datastrømmen, aksessing av valgt kompilerte kataloger med enheter som har komprimerte kode-ekvivalenter for hver enhet lagret i tilknytning med den ikke-komprimerte enheten og sammenligning av de separate enhetene fra den innkommende strømmen med brukervalgte kompilerte kataloger, og eksportering av dekomprimerte kodeekvivalenter for de innkommende enhetene for hvilken en sann sammenligning er funnet ved sammenligningstrinnet og eksportering av data-strømmen fra enhver av enhetene for hvilken ingen sann sammenligning er funnet.
4 . Fremgangsmåte ifølge krav 1, 2 eller 3, karakterisert ved at enhetseksporteringen i brukervalgt komprimerte kataloger anordnes i verdiorden etablert ved multiplisering av gjennom-snittsfrekvensen av forekomsten til hver enhet i språket ved hvilket den er anvendt ved dens tegnlengde.
5 . Fremgangsmåte ifølge krav 1, 2, 3 eller 4, karakterisert ved at i det minste en av katalogene innbefatter en styretabell for innføringene som innbefatter segmentidentifiserere for hvert segment av hver brukervalgt katalog anvendt ved komprimeringen av dataen og identifisert i toppteksten til den komprimerte datastrømmen.
6. Fremgangsmåte ifølge krav 1, 2, 3, 4 eller 5, karakterisert ved at katalogene tildeles ved byte-adresserbare lagersteder i et datamaskinlager-aksess-system med lageradresser av heltallige hele mimmerbyter.
7 . Datakomprimerings- og dekomprimeringssystem, innbefattende en sender- og en mottagerinnretning for å forbinde senderen og mottageren for transmisjon og mottagelse av komprimert data, idet senderen innbefatter innretning for å akseptere en innkommende ikke-komprimert omkodet datastrøm og for å separere strømmen i enheter, idet senderen også innbefatter innretning for å sammenligne enhetene med i det minste en bruker valgt kompilert katalog med enheter med komprimerte kodeekvivalenter for hver enhet lagret i tilknytning med de ikke-komprimerte kodete enhetene, karakterisert ved innretning for eksportering av en komprimert datatopptekst innbefattende indikasjoner for å definere identiteten til hver brukervalgt katalog anvendt ved komprimering av data, innretning for å eksportere komprimerte kode-ekvivalenter for innkommende enheter for hvilken sann sammenligning er funnet ved sammenligningstrinnet og eksportering av ikke-konsentrert omkodet datastrøm for enhver enhet for hvilke ingen sann sammenligning er funnet, idet mottageren innbefatter innretning for å motta og analysere toppteksten for å definere identiteten til hver av de brukervalgte katalogene anvendt ved komprimeringen av den komprimerte datastrømmen og, innretning for å separere den innkommende komprimerte omkodete datastrømmen inn i enheter, innretning for å sammenligne enhetene med i det minste en av de brukervalgte og topptekstidentifiserte kompilerte katalogene med enheter som har komprimerte kodeekvivalenter for hver enhet lagret i tilknytning til med ikke-komprimerte omkodete enheter, og innretning for å eksportere ikke-komprimerte ekvivalenter for innkommende enheter for hvilken en sann sammenligning er funnet ved sammenligningstrinnet og for å føre ut datastrøm-men fra enhver av enhetene for hvilken ingen sann sammenligning er funnet.
NO875048A 1986-12-04 1987-12-03 Fremgangsmaate og anordning for tekstkomprimering og -ekspansjon NO173576C (no)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/937,799 US4843389A (en) 1986-12-04 1986-12-04 Text compression and expansion method and apparatus

Publications (4)

Publication Number Publication Date
NO875048D0 NO875048D0 (no) 1987-12-03
NO875048L NO875048L (no) 1988-06-06
NO173576B true NO173576B (no) 1993-09-20
NO173576C NO173576C (no) 1993-12-29

Family

ID=25470423

Family Applications (1)

Application Number Title Priority Date Filing Date
NO875048A NO173576C (no) 1986-12-04 1987-12-03 Fremgangsmaate og anordning for tekstkomprimering og -ekspansjon

Country Status (10)

Country Link
US (1) US4843389A (no)
EP (1) EP0286719B1 (no)
JP (1) JPS63151224A (no)
AT (1) ATE125375T1 (no)
AU (1) AU596713B2 (no)
BR (1) BR8706325A (no)
CA (1) CA1290061C (no)
DE (1) DE3751421T2 (no)
DK (1) DK636087A (no)
NO (1) NO173576C (no)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3750135T2 (de) * 1987-04-23 1994-12-08 Oce Nederland Bv Textverarbeitungssystem und -verfahren zur Prüfung des richtigen und folgerichtigen Gebrauchs von Einheiten und chemischen Formeln in einem Textverarbeitungssystem.
US5374928A (en) * 1987-05-25 1994-12-20 Megaword International Pty. Ltd. Method of processing a text in order to store the text in memory
US5551026A (en) * 1987-05-26 1996-08-27 Xerox Corporation Stored mapping data with information for skipping branches while keeping count of suffix endings
US5551049A (en) * 1987-05-26 1996-08-27 Xerox Corporation Thesaurus with compactly stored word groups
US5754847A (en) * 1987-05-26 1998-05-19 Xerox Corporation Word/number and number/word mapping
KR930003416B1 (ko) * 1988-03-29 1993-04-29 주식회사 금성사 폰트의 함축방법
US5258910A (en) * 1988-07-29 1993-11-02 Sharp Kabushiki Kaisha Text editor with memory for eliminating duplicate sentences
JPH0831100B2 (ja) * 1988-09-29 1996-03-27 富士ゼロックス株式会社 電子化辞書装置
CA2005070C (en) * 1988-12-23 1999-04-27 Henry C. Yuen Apparatus and method for using encoded video recorder/player timer preprogramming information
US5067152A (en) * 1989-01-30 1991-11-19 Information Technologies Research, Inc. Method and apparatus for vector quantization
US5006849A (en) * 1989-07-26 1991-04-09 Astro, Inc. Apparatus and method for effecting data compression
DE58907473D1 (de) * 1989-11-14 1994-05-19 Siemens Nixdorf Inf Syst Verfahren und Anordnung zum Komprimieren und Dekomprimieren von Daten.
US5184126A (en) 1989-12-28 1993-02-02 International Business Machines Corporation Method of decompressing compressed data
US5010344A (en) * 1989-12-28 1991-04-23 International Business Machines Corporation Method of decoding compressed data
US5010345A (en) 1989-12-28 1991-04-23 International Business Machines Corporation Data compression method
US5001478A (en) 1989-12-28 1991-03-19 International Business Machines Corporation Method of encoding compressed data
GB9001312D0 (en) * 1990-01-19 1990-03-21 Hewlett Packard Ltd Storage of compressed data
US5410671A (en) * 1990-05-01 1995-04-25 Cyrix Corporation Data compression/decompression processor
DE4015420A1 (de) * 1990-05-14 1991-11-21 Bosch Gmbh Robert Verfahren zur datenkompression
GB2246494B (en) * 1990-05-25 1994-08-31 Silicon Systems Inc Method and apparatus for serial communications
GB2244354B (en) * 1990-05-25 1994-02-23 Silicon Systems Inc Multi-device emulation
EP0459041B1 (en) * 1990-05-29 1997-07-09 Hewlett-Packard Limited Tape storage
US5023610A (en) * 1990-06-13 1991-06-11 Cordell Manufacturing, Inc. Data compression method using textual substitution
EP0688104A2 (en) * 1990-08-13 1995-12-20 Fujitsu Limited Data compression method and apparatus
JPH0495878A (ja) * 1990-08-14 1992-03-27 Sony Corp ピーク値検出回路
JPH04114266A (ja) * 1990-09-04 1992-04-15 Brother Ind Ltd 文書処理装置
US5333313A (en) * 1990-10-22 1994-07-26 Franklin Electronic Publishers, Incorporated Method and apparatus for compressing a dictionary database by partitioning a master dictionary database into a plurality of functional parts and applying an optimum compression technique to each part
US5473326A (en) * 1990-12-14 1995-12-05 Ceram Incorporated High speed lossless data compression method and apparatus using side-by-side sliding window dictionary and byte-matching adaptive dictionary
JP2729416B2 (ja) * 1991-07-15 1998-03-18 シャープ株式会社 テキストデータの復元方法
US5175543A (en) * 1991-09-25 1992-12-29 Hewlett-Packard Company Dictionary reset performance enhancement for data compression applications
FR2681966A1 (fr) * 1991-09-27 1993-04-02 Euro Cp Sarl Procede de compression-decompression de donnees textuelles dans un reseau domotique.
US5488725A (en) * 1991-10-08 1996-01-30 West Publishing Company System of document representation retrieval by successive iterated probability sampling
AU3247393A (en) * 1991-12-23 1993-07-28 Intel Corporation Circuitry for decoding huffman codes
US5590317A (en) * 1992-05-27 1996-12-31 Hitachi, Ltd. Document information compression and retrieval system and document information registration and retrieval method
GB2268666B (en) * 1992-06-24 1996-03-20 Sony Broadcast & Communication Serial data decoding
US5649151A (en) * 1992-06-29 1997-07-15 Apple Computer, Inc. Efficient method and apparatus for access and storage of compressed data
US5734892A (en) * 1992-06-29 1998-03-31 Apple Computer, Inc. Efficient method and apparatus for access and storage of compressed data
JPH0628108A (ja) * 1992-07-09 1994-02-04 Hitachi Ltd データ記憶システム
US5325091A (en) * 1992-08-13 1994-06-28 Xerox Corporation Text-compression technique using frequency-ordered array of word-number mappers
US5323155A (en) * 1992-12-04 1994-06-21 International Business Machines Corporation Semi-static data compression/expansion method
US5530645A (en) * 1993-06-30 1996-06-25 Apple Computer, Inc. Composite dictionary compression system
US5394143A (en) * 1993-06-30 1995-02-28 Digital Equipment Corporation Run-length compression of index keys
WO1995001677A1 (en) * 1993-06-30 1995-01-12 Codex, Inc. Method and apparatus for encoding and decoding compressed data in data communication
CA2125337A1 (en) * 1993-06-30 1994-12-31 Marlin Jay Eller Method and system for searching compressed data
JP3025827B2 (ja) * 1993-09-14 2000-03-27 松下電器産業株式会社 可変長コード化装置
JP3234075B2 (ja) * 1993-11-30 2001-12-04 ローム株式会社 立体映像再生装置
DE4342521C1 (de) * 1993-12-14 1995-07-13 Ibm Verfahren und Anordnung zur Expansion komprimierter Daten
US5798721A (en) * 1994-03-14 1998-08-25 Mita Industrial Co., Ltd. Method and apparatus for compressing text data
US5635931A (en) * 1994-06-02 1997-06-03 International Business Machines Corporation System and method for compressing data information
CN1099766C (zh) * 1994-06-16 2003-01-22 精工爱普生株式会社 数据压缩方法、数据复原方法及信息处理装置
US5561421A (en) * 1994-07-28 1996-10-01 International Business Machines Corporation Access method data compression with system-built generic dictionaries
DE4432436C2 (de) * 1994-09-12 1997-04-03 Tecomac Ag Datenkompressionsverfahren und Vorrichtung zum Komprimieren von Daten
US5758257A (en) 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US5684478A (en) * 1994-12-06 1997-11-04 Cennoid Technologies, Inc. Method and apparatus for adaptive data compression
US5499293A (en) * 1995-01-24 1996-03-12 University Of Maryland Privacy protected information medium using a data compression method
US5774714A (en) * 1995-03-27 1998-06-30 Hewlett-Packard Company Zone bit recording enhanced video data layout
GB2305746B (en) * 1995-09-27 2000-03-29 Canon Res Ct Europe Ltd Data compression apparatus
US5974180A (en) * 1996-01-02 1999-10-26 Motorola, Inc. Text compression transmitter and receiver
JP3566441B2 (ja) * 1996-01-30 2004-09-15 シャープ株式会社 テキスト圧縮用辞書作成装置
US5951623A (en) * 1996-08-06 1999-09-14 Reynar; Jeffrey C. Lempel- Ziv data compression technique utilizing a dictionary pre-filled with frequent letter combinations, words and/or phrases
US6082776A (en) * 1997-05-07 2000-07-04 Feinberg; Lawrence E. Storing personal medical information
US6470362B1 (en) * 1997-05-16 2002-10-22 Compaq Computer Corporation Extracting ordered list of words from documents comprising text and code fragments, without interpreting the code fragments
JPH11143877A (ja) * 1997-10-22 1999-05-28 Internatl Business Mach Corp <Ibm> 圧縮方法、辞書の見出し語インデックス・データを圧縮するための方法、及び機械翻訳システム
JP3337633B2 (ja) 1997-12-03 2002-10-21 富士通株式会社 データ圧縮方法及びデータ復元方法並びにデータ圧縮プログラム又はデータ復元プログラムを記録したコンピュータ読み取り可能な記録媒体
JP3421700B2 (ja) * 1998-01-22 2003-06-30 富士通株式会社 データ圧縮装置及び復元装置並びにその方法
US6327634B1 (en) * 1998-08-25 2001-12-04 Xilinx, Inc. System and method for compressing and decompressing configuration data for an FPGA
DE19854179A1 (de) * 1998-11-24 2000-05-25 Siemens Ag Verfahren und Anordnung zur Kompression bzw. Expansion von Zeichenketten durch eine DV-Einrichtung
JP4776050B2 (ja) * 1999-07-13 2011-09-21 ソニー株式会社 配信コンテンツ生成方法、コンテンツ配信方法および装置、並びに、コード変換方法
WO2001050612A1 (en) * 2000-01-05 2001-07-12 Realnetworks, Inc. Systems and methods for multiple-file data compression
US7026962B1 (en) * 2000-07-27 2006-04-11 Motorola, Inc Text compression method and apparatus
US20030217025A1 (en) * 2000-09-11 2003-11-20 David Costantino Textual data storage system and method
US6898605B2 (en) * 2000-09-11 2005-05-24 Snap-On Incorporated Textual data storage system and method
AU2001293596A1 (en) * 2000-09-29 2002-04-08 Gavagai Technology Incorporated A method and system for adapting synonym resources to specific domains
US20030157470A1 (en) * 2002-02-11 2003-08-21 Michael Altenhofen E-learning station and interface
US6657565B2 (en) 2002-03-21 2003-12-02 International Business Machines Corporation Method and system for improving lossless compression efficiency
US7574719B1 (en) 2002-06-27 2009-08-11 Microsoft Corporation Program guide data compression
US7269548B2 (en) * 2002-07-03 2007-09-11 Research In Motion Ltd System and method of creating and using compact linguistic data
AU2002361224A1 (en) * 2002-12-27 2004-07-22 Nokia Corporation Predictive text entry and data compression method for a mobile communication terminal
US7941311B2 (en) * 2003-10-22 2011-05-10 Microsoft Corporation System and method for linguistic collation
US7764673B1 (en) * 2004-08-04 2010-07-27 Cisco Technology, Inc. System and method for implementing a variable size codebook for compression in a communications environment
US7899665B2 (en) * 2004-08-20 2011-03-01 International Business Machines Corporation Methods and systems for detecting the alphabetic order used by different languages
US8954400B2 (en) * 2004-09-13 2015-02-10 International Business Machines Corporation Method, system and program product for managing structured data
US7594171B2 (en) * 2004-10-01 2009-09-22 Adobe Systems Incorporated Rule-based text layout
US20060106870A1 (en) * 2004-11-16 2006-05-18 International Business Machines Corporation Data compression using a nested hierarchy of fixed phrase length dictionaries
US20060236319A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Version control system
US7102552B1 (en) * 2005-06-07 2006-09-05 Windspring, Inc. Data compression with edit-in-place capability for compressed data
US7148824B1 (en) * 2005-08-05 2006-12-12 Xerox Corporation Automatic detection of character encoding format using statistical analysis of the text strings
US8918318B2 (en) * 2007-01-16 2014-12-23 Nec Corporation Extended recognition dictionary learning device and speech recognition system
US8391148B1 (en) * 2007-07-30 2013-03-05 Rockstar Consortion USLP Method and apparatus for Ethernet data compression
US8149469B2 (en) * 2007-08-03 2012-04-03 Canon Kabushiki Kaisha Image reading apparatus and image reading method
US8078454B2 (en) * 2007-09-28 2011-12-13 Microsoft Corporation Two-pass hash extraction of text strings
US7444347B1 (en) * 2007-11-16 2008-10-28 International Business Machines Corporation Systems, methods and computer products for compression of hierarchical identifiers
US8326605B2 (en) * 2008-04-24 2012-12-04 International Business Machines Incorporation Dictionary for textual data compression and decompression
US8326604B2 (en) * 2008-04-24 2012-12-04 International Business Machines Corporation Dictionary for textual data compression and decompression
BRPI0910787B1 (pt) * 2008-07-11 2019-12-03 Fraunhofer Ges Forschung método para codificar um símbolo, método para decodificar um símbolo, método para transmitir um símbolo de um transmissor a um receptor, codificador, decodificador e sistema para transmitir um símbolo de um transmissor a um receptor
WO2010043970A2 (en) * 2008-10-13 2010-04-22 Faroo Assets Limited System and method for distributed index searching of electronic content
CN105893337B (zh) * 2015-01-04 2020-07-10 伊姆西Ip控股有限责任公司 用于文本压缩和解压缩的方法和设备
US10956440B2 (en) * 2017-10-16 2021-03-23 International Business Machines Corporation Compressing a plurality of documents

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL302815A (no) * 1963-02-06
US4295124A (en) * 1979-08-13 1981-10-13 National Semiconductor Corporation Communication method and system
US4386416A (en) * 1980-06-02 1983-05-31 Mostek Corporation Data compression, encryption, and in-line transmission system
US4597057A (en) * 1981-12-31 1986-06-24 System Development Corporation System for compressed storage of 8-bit ASCII bytes using coded strings of 4 bit nibbles
US4545032A (en) * 1982-03-08 1985-10-01 Iodata, Inc. Method and apparatus for character code compression and expansion
JPS59228457A (ja) * 1983-06-09 1984-12-21 Fuji Photo Film Co Ltd 放射線画像データ圧縮方法および装置
EP0160672A4 (en) * 1983-10-19 1986-05-12 Text Sciences Corp METHOD AND DEVICE FOR COMPRESSING DATA.
US4646061A (en) * 1985-03-13 1987-02-24 Racal Data Communications Inc. Data communication with modified Huffman coding

Also Published As

Publication number Publication date
DK636087D0 (da) 1987-12-03
DE3751421D1 (de) 1995-08-24
NO875048L (no) 1988-06-06
NO875048D0 (no) 1987-12-03
US4843389A (en) 1989-06-27
CA1290061C (en) 1991-10-01
ATE125375T1 (de) 1995-08-15
EP0286719A3 (en) 1992-01-22
AU8163787A (en) 1988-06-09
DK636087A (da) 1988-06-05
EP0286719A2 (en) 1988-10-19
AU596713B2 (en) 1990-05-10
JPH026252B2 (no) 1990-02-08
JPS63151224A (ja) 1988-06-23
BR8706325A (pt) 1988-07-19
EP0286719B1 (en) 1995-07-19
NO173576C (no) 1993-12-29
DE3751421T2 (de) 1996-03-28

Similar Documents

Publication Publication Date Title
NO173576B (no) Fremgangsmaate og anordning for tekstkomprimering og -ekspansjon
US4939639A (en) Method of facilitating computer sorting
US5383121A (en) Method of providing computer generated dictionary and for retrieving natural language phrases therefrom
US5551020A (en) System for the compacting and logical linking of data blocks in files to optimize available physical storage
US5737733A (en) Method and system for searching compressed data
US6138086A (en) Encoding of language, country and character formats for multiple language display and transmission
US5109433A (en) Compressing and decompressing text files
EP0083393A2 (en) Method of compressing information and an apparatus for compressing English text
EP0310283A2 (en) A multilingual ordered data retrieval system
CN105808513B (zh) 转换装置和转换方法
EP0268069B1 (en) Method of forming a message file in a computer
GB2260633A (en) Converting phonetic transcription of Chinese into Chinese character
WO1985001814A1 (en) Method and apparatus for data compression
US5710919A (en) Record compression
US5915041A (en) Method and apparatus for efficiently decoding variable length encoded data
US4845612A (en) Apparatus for accessing a memory which has dedicated areas for separately storing addresses and character string data
US6032165A (en) Method and system for converting multi-byte character strings between interchange codes within a computer system
JPH02208714A (ja) 異種データ入出力方式
JPH0326420B2 (no)
JP2569857B2 (ja) 不定バイト長文字入力制御方式
JP2634926B2 (ja) かな漢字変換装置
US6829386B2 (en) Methods and apparatus for associating character codes with optimized character codes
AU777314B2 (en) A method of storing and retrieving miniaturised data
JPH0363099B2 (no)
Sharpe et al. Machine-independent system for processing medical text