Różnica między kodowaniem a dekodowaniem

Kobieta słucha muzyki przez telefon komórkowy

Pliki muzyczne są zwykle kodowane przy użyciu kodeka MP3.

Źródło obrazu: Purestock/Purestock/Getty Images

Kodowanie to proces tłumaczenia danych między dwoma formatami zgodnie z zestawem reguł lub formułą. Na przykład możesz zakodować „abc” na „ABC”, używając reguł pisania od małych do wielkich liter. Dekodowanie to proces odwrotny. Możesz zdekodować „ABC” na „abc”, używając tego samego zestawu reguł. Istnieje wiele różnych zastosowań do kodowania i dekodowania danych. Na przykład szyfrowanie to forma kodowania wykorzystująca klucz. Bez klucza zakodowane dane nie mogą zostać odszyfrowane. Dane wideo są kodowane w celu zmniejszenia ich rozmiaru, dzięki czemu strumienie wideo w wysokiej rozdzielczości można oglądać przez Internet.

Kodowanie jest powszechnie stosowane w celu zmniejszenia rozmiaru danych audio i wideo. Program koder-dekoder, zwany kodekiem, stosuje szereg algorytmów matematycznych, które eliminują zbędne dane. Załóżmy na przykład, że plik zawiera dane „ABCDQABC”. Algorytm kodeka nr 1 może zastąpić „ABC” z „Z”. Wynikowy plik to „ZDQZ”, który jest o 50 procent mniejszy niż oryginał plik. Algorytm kodeka nr 2 może zastąpić „ABC?” z "Y" i "?ABC" z "X", gdzie "?" wskazuje dowolny znak. Wynikowy plik to „YX”, który jest o 75 procent mniejszy niż oryginalny plik.

Wideo dnia

Dekodowanie wykorzystuje ten sam kodek do rekonstrukcji oryginalnego pliku z zakodowanego pliku. Na przykład zastosowanie kodeka nr 1 do „ZDQZ” w odwrotnej kolejności zastępuje „Z” „ABC”, aby utworzyć oryginalny plik „ABCDQABC”. Kodek nr 1, który był o 50% mniejszy, nazywany jest kodekiem bezstratnym, ponieważ dekodowanie zawsze odtwarza oryginał plik. Kodek nr 2 dekoduje „YX” za pomocą „ABC?? ABC”, a następnie próbuje odgadnąć, jakie są brakujące znaki. Kodek może odgadnąć „DE”, co skutkuje „ABCDEABC”. Kodek nr 2, który był o 75 procent mniejszy, jest stratny kodek, ponieważ proces dekodowania może utworzyć plik zbliżony do oryginału, ale nie identyczny.

Adresy URL i zestawy znaków

Nie każde kodowanie daje wynik, który jest mniejszy niż dane niekodowane. Na przykład adres URL „example.com/Secret of Life.html” jest nieprawidłowy, ponieważ zawiera spacje. Programista sieciowy koduje adres URL, który zastępuje wszystkie spacje „%20”, aby utworzyć „example.com/Secret%20of%20Life.html”. Proces dekodowania wykonuje operację odwrotną i zastępuje „%20” spacją. Podobnie program bazy danych może kodować wszystkie dane w Unicode, głównym zestawie znaków w większości języków. Gdy użytkownik pobiera dane, program dekoduje Unicode, aby dopasować język i ustawienia klawiatury użytkownika.

Kodowanie, którego nie można rozszyfrować

Niektóre kodowania nie są przeznaczone do dekodowania. Skrót to długi ciąg losowych znaków używany z algorytmem kodowania w celu uzyskania zaszyfrowanego wyniku, którego nie można zdekodować, nawet jeśli znasz skrót. Na przykład hasło użytkownika może być zaszyfrowane za pomocą skrótu i ​​przechowywane w bazie danych. Jeśli haker znajdzie bazę danych, nie może odszyfrować żadnych haseł. Kiedy użytkownik się loguje, system koduje wprowadzone przez użytkownika hasło z hashem i porównuje wynik z zapisanym w bazie danych. Jeśli użytkownik zapomni swoje hasło, musi je zmienić, ponieważ system nie zna jego oryginalnego hasła, a jedynie jego zaszyfrowaną wartość.