Моя бакалаврская работа — сжатие данных
Маленькая предыстория моей работы:
Если Вы читали информацию об авторе блога, то Вы уже в курсе, что я учусь на четвертом курсе. В конце четвертого курса я должен буду защищать бакалаврская работу. Я долго выбирал своего научного руководителя. Нам предлагали на выбор две разные темы: либо проектировать плату, либо сделать программу. Я как неплохой программист (в школе я занимал первое место по программированию и третье по району), конечно, же выбрал писать программу. Так как почти все руководители были уже кем-то заняты, то мне не удалось выбрать своего руководителя. Меня распределили по умолчанию к одному хорошему руководителю. На кафедре этот руководитель сказал об одном месте, где я могу делать свою бакалаврскую работу. Я съездил в это место, поговорил с моим консультантом по бакалаврской работе и остался довольным. Мы определились с темой моей работы. Я не буду писать точнее название моей бакалаворской работы скажу только смысл этой темы — сжатие данных. Мне сказали авторов учебников, которые мне советуют почитать, я сразу же поехал и купил книги. Вот я уже прочитал несколько страниц и пока нахожусь в восторге, так как это оказалось очень интересная тема.
Что я узнал о сжатии данных?
Сжатие данных это очень трудная задача. Можно сказать, что фундаментом для изучения этой темы стал шрифт для слепых, который придумал в 1829 году Луи Брайль. Если быть точным, то скорее он его модифицировал, так как первоисточником этого шрифта был Шарль Барбье. Шрифт, который предложил Брайль является более удобным, чем существовавший до него, потому что его можно было легко читать за одно легкое касание пальцем. Ему это удалось сделать, благодаря уменьшению матрицы точек, которыми кодировался один символ — у Барбье один символ кодировался двенадцатью точками (матрица 2 х 6), а у Брайля всего шестью (матрица 2 х 3).
Но у этого усовершенствования есть и недостаток, который заключается в уменьшение количества символов, которые можно закодировать. Количество символов, которые можно закодировать легко подсчитать — это два в степени шестой у Брайля и два в степени двенадцать у Барбье, т.е. 64 символа у Брайля против 4096 символов у Барбье. Конечно, алфавит из 4096 символов является слишком большим. Поэтому стандартом для книг, которые читают слепые стали использовать шрифт Брайля.
В 1834 Луи Брайль усовершенствовал его. После Брайля стали делать разные усовершенствования этого шрифта. Например, некоторое количество букв, которые очень часто встречаются можно обозначить одним символов. Пример: ing, not, and, for, of, the, with, but и т.д. часто встречаются и поэтому их кодируют одним символом. Количество букв в английском алфавите 26, а количество символов, которые можно закодировать шрифтом Брайля 64, то есть 64 — 26 = 38 свободных кодов, которыми можно закодировать ing, not, and, for, of, the, with, but и т.д. Именно эти сокращения и послужили основой для сжатия данных.
При сжатии данных мы должны учитывать то, что мы можем сжать только не случайные данные или другими словами — не существует такого алгоритма, который позволял бы сжимать любые файлы. На практике со случайными данными мы почти не встречаемся. Следовательно в жизни мы можем много чего сжать. В процессе сжатия данных мы пытаемся избавиться от избыточности. Чем больше нам это удастся, тем лучше будет коэффициент сжатия, который равен отношению размеров выходного и входного файлов. Коэффициент сжатия можно назвать коэффициентом полезного действия. На заметку: обратная величина коэффициенту сжатия называется фактором сжатия.
Я думаю, для введения в сжатие данных этого пока хватит. Когда я изучу лучше алгоритмы сжатия, то возможно я их опубликую в блоге, так как это весьма интересно.