Koodi on rajallisen järjestetyn merkkijoukon yksi-yhteen yhdistäminen johonkin äärelliseen aakkostoon kuuluvista toisista, ei välttämättä järjestetyistä, yleensä laajemmista merkkijoukoista tiedon lähetyksen , tallennuksen tai muuntamisen koodaamiseksi. .
Koodaus on tietojen muuntamista luomalla yksiselitteinen merkitys elementtien [1] välille , jotka eivät kuulu yhteen aakkostoon ja joilla on samat sarjanumerot. Esimerkiksi morsekoodi : siinä yksi pisteiden ja väliviivojen sarja vastaa mitä tahansa merkkiä. Binäärikoodi : sen nollien ja ykkösten yhdistelmillä on myös järjestys.
Alkuperäisten koodattujen symbolien sarjaa kutsutaan yleisesti koodiviestiksi tai koodiviestiksi . Joskus tunnetun pituisten koodattujen symbolien sarjaa kutsutaan koodisanaksi tai koodikehykseksi .
Prosessia, jossa viesti muunnetaan merkkien yhdistelmäksi koodin mukaisesti, kutsutaan koodaukseksi , viestin palauttamista merkkiyhdistelmästä kutsutaan dekoodaukseksi .
Koodipuita käytetään visuaalisesti kuvaamaan koodeja . Jos jokainen taso sisältää solmuja, missä l on tason numero (puun juuri on tasolla nolla), sitä kutsutaan täydelliseksi . Ilmeisesti arvo , jota kutsutaan puun tilavuudeksi , kuvaa enimmäismäärää koodiyhdistelmiä, jotka voidaan rakentaa käyttämällä tätä puuta.
Kääntäjien rakentamisen teoriassa tällainen puu kuvaa joukon kaikkia mahdollisia johtopäätösketjuja muodollisen kieliopin perusteella .
Etuliitekoodi on koodi, jossa ei ole yhtä koodisanaa, joka olisi jonkin muun annetun koodin koodisanan etuliite (alku). Mikä tahansa etuliitekoodi on erotettavissa (eli mikä tahansa koodisanojen sarja voidaan aina jakaa yksiselitteisesti erillisiksi) [2] . Esimerkkejä etuliitekoodeista ovat Shannon- , Shannon-Fano- ja Huffman -koodit .
Yhtenäinen koodaus: m 1 -merkillä varustetuissa aakkosissa käytetään koodisanoja, joiden pituus on , jolloin ylöspäin pyöristetään ylöspäin suurempaan kokonaislukuun. Tässä tapauksessa koodisanat jäävät käyttämättä ja loput määritetään ensisijaisen aakkoston symboleille. Baudot-koodin kiinteä pituus on 5 merkkiä.
Etuliitekoodit: Shannon-Fano-koodi on ensimmäinen epäyhtenäinen koodausalgoritmi. Huffman-koodi on hyvin tunnettu menetelmä optimaalisen epäyhtenäisen koodin (ONC) muodostamiseksi puiden avulla. Aritmeettinen koodaus on Huffman-koodin yleistys.