5.2. Методи за архивиране
5.2. Методи за архивиране
Необходимо е да се пише по такъв начин, че думите да са претъпкани,
и мислите са просторни.
Въпреки факта, че обемът на външната компютърна памет непрекъснато нараства, необходимостта от архивиране не намалява. Това се обяснява с факта, че архивирането е необходимо не само за спестяване на място в паметта, но и за сигурно съхраняване на копия на ценна информация, както и за бързо прехвърляне на информация по мрежата към други компютри.
Архивиране(архивиране) на информация е трансформация на информация, при която обемът на файла се намалява, но количеството информация, съдържаща се в архива, остава същото.
Процесът на записване на файл в архивен файл се наричаархивиране(опаковане, компресиране), а извличането на файл от архив се наричаразархивиране(разопаковане). Опакованият (компресиран) файл се наричаархив.
Степента на компресиране на информацията зависи от съдържанието на файла и файловия формат, както и от избрания метод за архивиране. Степента (качеството) на компресия на файла се характеризира скоефициент на компресияKc, определен като съотношението на обема на изходния файлVoкъм обема на компресирания файлVc:

Колкото по-голяма е стойносттаKc,, толкова по-висока е степента на компресиране на информацията.
Обърнете внимание, че в някои литературни източници има определение на съотношението на компресия, обратното на горното съотношение.
Всички съществуващи методи за компресиране на информация могат да бъдат разделени на два класа:без загубикомпресия на информация (обратим алгоритъм) изагубакомпресия на информация (необратим алгоритъм). В първия случай оригиналната информация може да бъде точно възстановена от наличната пакетирана информация. Във втория случай разопакованото съобщение ще бъде различно от оригиналното съобщение. Методите за компресия със загуби щеобсъдено в следващия параграф.
В момента са разработени много алгоритми за архивиране без загуби. Въпреки това, всички те използват две прости идеи.
Първата идея, базирана на отчитане на честотите на поява на знаци в текста, е разработена отХъфман(D.A. Huffman) през 1952 г. Тя се основава на факта, че в обикновения текст честотите на поява на различни знаци не са еднакви.
При кодиране на символи в компютър се използват кодови таблици. В този случай всеки знак е кодиран или с един байт (CP-1251, KOI-8), или с два байта (Unicode). Кодовите таблици стандартизират процедурата за кодиране. Въпреки това, за предаване на информация по комуникационен канал (или за дългосрочно съхранение) може да се използва по-сложна процедура за кодиране, която ще намали размера на файла, като същевременно напълно запази оригиналната информация. При архивирането не се използват стандартни кодови таблици, а се създават собствени. В този случай типът на кодовата таблица се променя всеки път и зависи от съдържанието на архивирания документ.
В опаковката на Хъфман често срещаните знаци се кодират (заменят) с кратки поредици от битове, а по-редките знаци с дълги поредици. Всеки компресиран архив е придружен от таблица на съответствие между наличните символи и кодове (числа), които заместват тези символи. Архивите, така да се каже, отменят стандартните кодови таблици.
Да предположим, че азбуката на входното съобщение се състои само от четири знака: a, b, c, d, честотите на които в оригиналния (некомпресиран) документ са съответно 1/2, 1/4, 1/8 и 1/8. Редът на кодиране на Huffman за посочената азбука е илюстриран в таблицата: