114. Методы сжатия графической информации. Области применения различных методов.
Все существующие алгоритмы можно разделить на два больших класса:
Алгоритмы сжатия без потерь;
Алгоритмы сжатия с потерями.
Когда мы говорим о сжатии без потерь, мы имеем в виду, что существует алгоритм, обратный алгоритму сжатия, позволяющий точно восстановить исходное изображение. Для алгоритмов сжатия с потерями обратного алгоритма не существует. Существует алгоритм, восстанавливающий изображение, не обязательно точно совпадающее с исходным. Алгоритмы сжатия и восстановления подбираются так, чтобы добиться высокой степени сжатия и при этом сохранить визуальное качество изображения.
Алгоритмы сжатия без потерь
Алгоритм RLE
Все алгоритмы серии RLE основаны на очень простой идее: повторяющиеся группы элементов заменяются на пару (количество повторов, повторяющийся элемент).
Хоть этот алгоритм и очень прост, но эффективность его сравнительно низка. Более того, в некоторых случаях применение этого алгоритма приводит не к уменьшению, а к увеличению длины последовательности.
Этот алгоритм наиболее эффективен для чёрно-белых изображений. Также он часто используется, как один из промежуточных этапов сжатия более сложных алгоритмов.
Словарные алгоритмы
Идея, лежащая в основе словарных алгоритмов, заключается в том, что происходит кодирование цепочек элементов исходной последовательности. При этом кодировании используется специальный словарь, который получается на основе исходной последовательности.
Словарь в этом алгоритме представляет собой таблицу, которая заполняется цепочками кодирования по мере работы алгоритма. При декодировании сжатого кода словарь восстанавливается автоматически, поэтому нет необходимости передавать словарь вместе с сжатым кодом.
Словарь инициализируется всеми одноэлементными цепочками, т.е. первые строки словаря представляют собой алфавит, в котором мы производим кодирование. При сжатии происходит поиск наиболее длинной цепочки уже записанной в словарь. Каждый раз, когда встречается цепочка, ещё не записанная в словарь, она добавляется туда, при этом выводится сжатый код, соответствующий уже записанной в словаре цепочки.
Алгоритмы статистического кодирования
Алгоритмы этой серии ставят наиболее частым элементам последовательностей наиболее короткий сжатый код. Т.е. последовательности одинаковой длины кодируются сжатыми кодами различной длины. Причём, чем чаще встречается последовательность, тем короче, соответствующий ей сжатый код.
Алгоритм Хаффмана
Алгоритм Хаффмана позволяет строить префиксные коды. Можно рассматривать префиксные коды как пути на двоичном дереве: прохождение от узла к его левому сыну соответствует 0 в коде, а к правому сыну – 1. Если мы пометим листья дерева кодируемыми символами, то получим представление префиксного кода в виде двоичного дерева.
Опишем алгоритм построения дерева Хаффмана и получения кодов Хаффмана.
Символы входного алфавита образуют список свободных узлов. Каждый лист имеет вес, который равен частоте появления символа
Выбираются два свободных узла дерева с наименьшими весами
Создается их родитель с весом, равным их суммарному весу
Родитель добавляется в список свободных узлов, а двое его детей удаляются из этого списка
Одной дуге, выходящей из родителя, ставится в соответствие бит 1, другой — бит 0
Шаги, начиная со второго, повторяются до тех пор, пока в списке свободных узлов не останется только один свободный узел. Он и будет считаться корнем дерева.
С помощью этого алгоритма мы можем получить коды Хаффмана для заданного алфавита с учётом частоты появления символов.
Арифметическое кодирование
Алгоритмы арифметического кодирования кодируют цепочки элементов в дробь. При этом учитывается распределение частот элементов. На данный момент алгоритмы арифметического кодирования защищены патентами, поэтому мы рассмотрим только основную идею.
Пусть наш алфавит состоит из N символов a1,…,aN, а частоты их появления p1,…,pN соответственно. Разобьем полуинтервал [0;1) на N непересекающихся полуинтервалов. Каждый полуинтервал соответствует элементам ai, при этом длина полуинтервала пропорциональна частоте pi.
Кодирующая дробь строится следующим образом: строится система вложенных интервалов так, чтобы каждый последующий полуинтервал занимал в предыдущем место, соответствующее положению элемента в исходном разбиении. После того, как все интервалы вложены друг в друга можно взять любое число из получившегося полуинтервала. Запись этого числа в двоичном коде и будет представлять собой сжатый код.
Декодирование – расшифровка дроби по известному распределению вероятностей. Очевидно, что для декодирования необходимо хранить таблицу частот. Арифметическое кодирование чрезвычайно эффективно. Коды, получаемые с его помощью, приближаются к теоретическому пределу. Это позволяет утверждать, что по мере истечения сроков патентов, арифметическое кодирование будет становиться всё более и более популярным.
Алгоритмы сжатия с потерями
Не смотря на множество весьма эффективных алгоритмов сжатия без потерь, становится очевидно, что эти алгоритмы не обеспечивают (и не могут обеспечить) достаточной степени сжатия.
Сжатие с потерями (применительно к изображениям) основывается на особенностях человеческого зрения. Мы рассмотрим основные идеи, лежащие в основе алгоритма сжатия изображений JPEG.
Алгоритм сжатия JPEG
JPEG на данный момент один из самых распространенных способов сжатия изображений с потерями. Опишем основные шаги, лежащие в основе этого алгоритма. Будем считать, что на вход алгоритма сжатия поступает изображение с глубиной цвета 24 бита на пиксел (изображение представлено в цветовой модели RGB).
Перевод в цветовое пространство YCbCr
В цветовой модели YCbCr мы представляем изображение в виде яркостной компоненты (Y) и двух цветоразностных компонент (Cb,Cr). Человеческий глаз более восприимчив к яркости, а не к цвету, поэтому алгоритм JPEG вносит по возможности минимальные изменения в яркостную компоненту (Y), а в цветоразностные компоненты могут вноситься значительные изменения. Перевод осуществляется по следующей формуле:
Выбор Kr и Kb зависит от оборудования. Обычно берётся Kb=0.114;Kr=0.299. В последнее время также используется Kb=0.0722;Kr=0.2126, что лучше отражает характеристики современных устройств отображения.
Субдискретизация компонент цветности
После перевода в цветовое пространство YCbCr выполняется дискретизация. Возможен один из трёх способов дискретизации:
4:4 – отсутствует субдискретизация;
4:2:2 – компоненты цветности меняются через одну по горизонтали;
4:2:0 – компоненты цветности меняются через одну строку по горизонтали, при этом по вертикали они меняются через строку.
При использовании второго или третьего способа мы избавляется от 1/3 или 1/2 информации соответственно. Очевидно, что чем больше информации мы теряем, тем сильнее будут искажения в итоговом изображении.
Дискретное косинусное преобразование
Изображение разбивается на компоненты 8*8 пикселов, к каждой компоненте применятся ДКП. Это приводит к уплотнению энергии в коде. Преобразования применяются к компонентам независимо.
Квантование
Человек практически не способен замечать изменения в высокочастотных составляющих, поэтому коэффициенты, отвечающие за высокие частоты можно хранить с меньшей точностью. Для этого используется покомпонентное умножение (и округление) матриц, полученных в результате ДКП, на матрицу квантования. На данном этапе тоже можно регулировать степень сжатия (чем ближе к нулю компоненты матрицы квантования, тем меньше будет диапазон итоговой матрицы).
Зигзаг-обход матриц
Зигзаг-обход матрицы – это специальное направление обхода. При этом для большинства реальных изображений в начале будут идти ненулевые коэффициенты, а ближе к концу будут идти нули.
RLE- кодировние
Используется особый вид RLE-кодирования: выводятся пары чисел, причём первое число в паре кодирует количество нулей, а второе – значение после последовательности нулей. Т.е. код для последовательности 0 0 15 42 0 0 0 44 будет следующим (2;15)(0;42)(3;44).
Кодирование методом Хаффмана
Используется описанный выше алгоритм Хаффмана. При кодировании используется заранее определённая таблица. Алгоритм декодирования заключается в обращении выполненных преобразований. К достоинствам алгоритма можно отнести высокую степень сжатие (5 и более раз), относительно невысокая сложность (с учётом специальных процессорных инструкций), патентная чистота. Недостаток – артефакты, заметные для человеческого глаза. Фрактальное сжатие
Фрактальное сжатие – это относительно новая область. Фрактал – сложная геометрическая фигура, обладающая свойством самоподобия. Алгоритмы фрактального сжатия сейчас активно развиваются, но идеи, лежащие в их основе можно описать следующей последовательностью действий.
Процесс сжатия:
Разделение изображения на неперекрывающиеся области (домены). Набор доменов должен покрывать всё изображение полностью.
Выбор ранговых областей. Ранговые области могут перекрываться и не покрывать целиком всё изображение.
Фрактальное преобразование: для каждого домена подбирается такая ранговая область, которая после аффинного преобразования наиболее точно аппроксимирует домен.
Сжатие и сохранение параметров аффинного преобразования. В файл записывается информация о расположении доменов и ранговых областей, а также сжатые коэффициенты аффинных преобразований.
Этапы восстановления изображения:
Создание двух изображений одинакового размера A и B. Размер и содержание областей не имеют значения.
Изображение B делится на домены так же, как и на первой стадии процесса сжатия. Для каждого домена области B проводится соответствующее аффинное преобразование ранговых областей изображения A, описанное коэффициентами из сжатого файла. Результат помещается в область B. После преобразования получается совершенно новое изображение.
Преобразование данных из области B в область A. Этот шаг повторяет шаг 3, только изображения A и B поменялись местами.
Шаги 3 и 4 повторяются до тех пор, пока изображения A и B не станут неразличимыми.
Точность полученного изображения зависит от точности аффинного преобразования.
Сложность алгоритмов фрактального сжатия в том, что используется целочисленная арифметика и специальные довольно сложные методы, уменьшающие ошибки округления.
Отличительной особенностью фрактального сжатия является его ярко выраженная ассиметрия. Алгоритмы сжатия и восстановления существенно различаются (сжатие требует гораздо большего количества вычислений).
- 1. Процессы жизненного цикла систем (на основе гост р исо/мэк 15288).
- 2. Структура и функциональное назначение процессов жизненного цикла программных средств (на основе iso/iec 12207).
- 3. Модель качества и критерии качества программных средств (на основе iso/iec 9126 и iso/iec 25010).
- 4. Оценка зрелости процессов создания и сопровождения программных средств на основе методологии смм и cmmi (на основе iso/1ec 15504).
- 5. Система менеджмента информационной безопасности (на основе серии iso/iec 27000).
- 6. Модели жизненного цикла программного обеспечения. Классические и гибкие модели разработки программного обеспечения.
- 7. Требования к системе менеджмента качества (на основе гост р исо 9001-2015).
- 8. Требования к качеству готового к использованию программного продукта и инструкции по тестированию (на основе гост исо/мэк 25051).
- 9. Процесс оценки качества программного продукта (на основе гост р исо/мэк 25040 и гост р исо/мэк 25041).
- 10. Верификация и валидация программного обеспечения. Процессы менеджмента тестирования. Статическое и динамическое тестирование (на основе гост р 56920 и гост р 56921).
- 11. Программный продукт. Жизненный цикл программного продукта. Модели жизненного цикла программного обеспечения.
- V модель (разработка через тестирование)
- 12. Принципы и процессы сертификации программной продукции.
- 13. Классификация систем управления базами данных.
- 14. Основные этапы проектирования реляционных баз данных.
- 15. Поиск научно-технического информации. Цель, методы и формы представления результатов.
- 16. Научные документы. Виды, назначение и области применения.
- 17. Системный анализ. Цели, задачи, методы.
- 18. Системный анализ. Задачи и область применения вычислительного эксперимента в системном анализе.
- 19. Архитектура вычислительной системы. Определение, виды, условия выбора.
- 20. Архитектура «клиент – сервер». Определение, области применения, требования к программным средствам, рассчитанным на функционирование в архитектуре «клиент – сервер».
- 21. Открытая вычислительная система. Определение, области применения, модель взаимодействия открытых систем.
- 22.Стандартизация сетевых технологий. Сетевая модель osi.
- 23.Понятие протокола и стека протоколов. Сетевая модель и стек протоколов tcp/ip.
- 24.Понятие инкапсуляции и декапсуляции. Протокольные блоки данных (pdu).
- 25.Физические среды передачи данных.
- 26.Концепции беспроводных сетей.
- 27.Сетевой коммутатор. Сети на основе коммутаторов.
- 28.Виртуальные локальные сети. Протоколы ieee 802.1q и vtp.
- 30.Преобразование и трансляция сетевых адресов (arp и nat).
- 31. Понятие маршрутизации. Назначение, виды и принципы маршрутизации.
- 32. Статическая и адаптивная маршрутизация. Протоколы маршрутизации.
- 33. Протоколы транспортного уровня (tcp и udp).
- 34. Система доменных имен (dns). Назначение и принцип работы.
- 35. Прикладные службы tcp/ip. Протоколы http и https.
- 36. Понятие защиты информации. Основные характеристики защищаемой информации.
- 37. Понятие угрозы безопасности информации. Основные виды угроз.
- 38. Каналы утечки конфиденциальной информации.
- 39. Сущность системно-концептуального подхода к защите информации в компьютерных системах.
- 40. Сущность организационной защиты информации.
- 41. Правовое обеспечение информационной безопасности.
- 42. Средства информационно-технической защиты информации.
- 43. Программные средства защиты информации. Их достоинства и недостатки.
- 44. Требования к комплексным системам защиты информации.
- 45. Способы несанкционированного доступа к информации в компьютерных системах.
- 46. Способы аутентификации пользователей в компьютерных системах. Их достоинства и недостатки.
- 47. Искусственный интеллект. Определение, назначение, области применения.
- 48. Методы оценки размера программного обеспечения при управлении программными проектами.
- 49. Методы оценки трудозатрат, длительности и стоимости выполнения программного проекта.
- 50. Методы кодирования текстовой, графической и звуковой информации в эвм. Аналоговые, дискретные и цифровые сигналы.
- Разделы цос
- 51. История создания, принципы работы и основные сервисы сети Интернет.
- 52. Представление данных в эвм. Единицы измерения информации. Двоичные приставки по гост 8.417-2002 и iec 80000-13.
- 53. Принципы и архитектура фон Неймана.
- 54. Порядок обработки команд микропроцессором. Прерывания. Типы прерываний.
- 55. Поколения эвм, основные особенности.
- 56. Классификация запоминающих устройств в эвм. Современные реализации запоминающих устройств.
- 57. Алгебра логики. Основные законы алгебры логики. Применение алгебры логики в информатике.
- 58. Понятие алгоритма. Методы оценки алгоритмической сложности.
- 59. Понятие системы. Системный анализ. Применение системного анализа в информатике.
- 60. Теория формальных грамматик. Основные понятия и положения. Применение в информатике.
- 61. Теория вероятностей. Основные понятия и положения. Применение в информатике.
- 62. Математические методы оптимизации и их применение в информатике.
- 63. Понятие компьютерного моделирования. Вычислительный эксперимент.
- 64. Структурное программирование. Понятия и принципы.
- 65. Объектно-ориентированное программирование. Понятия и принципы.
- 66. Декларативные языки программирования и их сфера применения.
- 67. Событийно-ориентированное программирование.
- 68. Многопоточное программирование. Процесс и поток выполнения. Средства синхронизации потоков.
- 69. Основные алгоритмы и структуры данных применяемые в вычислительных системах.
- 70. Приёмы (шаблоны) объектно-ориентированного проектирования.
- 71. Теория графов. Основные понятия. Решаемые задачи.
- 72. Средства моделирования при разработке программного обеспечения.
- 73. Инструментальные средства разработки программного обеспечения.
- 74. Методологии разработки программного обеспечения. Классификация. Особенности применения.
- 75. Программные средства для организации совместной разработки программного обеспечения.
- 76. Программный продукт. Жизненный цикл программного продукта.
- 77. Отличие объектно-ориентированного программирования от процедурного.
- 78. Инкапсуляция как парадигма объектно-ориентированного программирования. Примеры использования.
- 79. Наследование как парадигма объектно-ориентированного программирования. Примеры использования.
- 80. Полиморфизм как парадигма объектно-ориентированного программирования. Примеры использования.
- 81. Принципы и архитектура эвм фон Неймана.
- 82. Архитектура вычислительных систем. Таксономия Флинна.
- 83. Методы повышения производительности микропроцессоров. Конвейеризация и суперскалярность. Hyper-threading.
- 84. Oltp и olap системы. Отличия Data Mining от других методов анализа данных.
- 85. Однородные линейные динамические системы, их решение с помощью характеристического уравнения.
- 86. Однородные линейные динамические системы, их решение с помощью операционным методом.
- 87. Точки покоя линейных динамических систем. Типы точек покоя для линейной динамической системы второго порядка.
- 88. Устойчивость решений линейных динамических систем. Условие устойчивости решений.
- 89. Равномерное распределение случайной величины.
- 90. Показательное распределение случайной величины.
- 91. Нормальное распределение случайной величины.
- 92. Понятие вариации. Необходимое условие существования экстремума функционала.
- 93. Уравнение Эйлера – Лагранжа для исследования функционала на экстремум.
- 94. Постановка задачи линейного программирования и основные методы решения.
- 95. Постановка задачи целочисленного линейного программирования и основные методы решения.
- 96. Бизнес-процесс. Средства анализа и моделирования. Автоматизация бизнес- процессов.
- 97. Архитектура вычислительной системы, разновидности.
- 98. Аппаратное обеспечение вычислительных систем.
- 99. Архитектура вычислительной сети
- 100. Виртуализация вычислительных ресурсов. "Облачные" вычисления
- 101. Способы реализации человеко-машинного взаимодействия.
- 102. Принципы защиты информации в информационных системах и телекоммуникационных сетях.
- 1.Правовые принципы защиты данных
- 2. Организационные принципы защиты данных
- 3. Принципы защиты информации от тср (технические средства разведки)
- 103. Операционная система. Понятие и основные задачи. Классификация операционных систем.
- 1) По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:
- 3) По разделяемому процессорному времени (Только для многозадачных ос).
- 5) По поддержке многонитевости систем:
- 104. Файловая система, принципы построения и основные функции.
- 105. Понятие машинного обучения и искусственного интеллекта. Решаемые задачи.
- 106. Центр обработки данных. Ключевые характеристики цод. Управление цод.
- 110. Виртуализация. Виртуальные ресурсы. Характеристики облачных вычислений.
- 2. Кластеризация компьютеров и распределенные вычисления.
- 3. Разделение ресурсов.
- 4. Инкапсуляция.
- 111. Облачные услуги и модели развертывания. Инфраструктура облачных вычислений.
- 112. Сетевые операционные системы. Сетевые службы и сетевые сервисы. Одноранговые и серверные сетевые ос. Домен.
- 113. Генетические алгоритмы. Основные понятия, принципы и предпосылки генетических алгоритмов. Достоинства и недостатки генетических алгоритмов.
- 114. Методы сжатия графической информации. Области применения различных методов.
- 115. Методы сжатия звуковой информации. Области применения различных методов.
- 116. Понятие виртуальной и дополненной реальности. Средства реализации.
- 117. Компьютерная графика. Различные методы и технологии реализации.
- 118. Системы управления базами данных, разновидности.
- 1) Файл-серверные:
- 2) Клиент-серверные:
- 3) Встраиваемые:
- 119. Принципы построения реляционных баз данных. Нормализация данных.
- 120. Распределенные базы данных. Принципы построения и решаемые задачи.
- 121. Понятие открытой вычислительной системы. Классификация. Принципы построения.
- 122. Методы анализа информационных систем.
- 123. Средства мониторинга сетевого трафика.
- 124. Метод Монте-Карло. Принципы построения моделей для анализа эффективности информационных систем (основа построения, достоинства и недостатки).
- 125. Методы управления сетью: коммутация каналов, коммутация пакетов.
- 126. Методы балансировки трафика
- 127. Локальные вычислительные сети (топология, методы доступа)
- 128. Методы повышения достоверности при передаче информации
- 129. Понятие качества обслуживания в компьютерных сетях. Средства обеспечения качества обслуживания.
- 130. Назначение и принцип работы интернет сети
- 131. Основные протоколы сети Интернет, их назначение.
- 132. Автоматизированные информационные системы.
- 133. «Облачные вычисления». Определение, назначение, особенности, области применения.
- 134. Встроенная (встраиваемая) вычислительная система. Определение, назначение, виды, области применения.
- 135. Техническое задание на программное средство. Назначение, роль в жизненном цикле, общая структура.
- 136. Системы автоматизированного проектирования (сапр).
- 137. Экспертные системы. Задачи и область применения.
- 138. Автоматизированные системы обработки информации и управления. Понятие, сферы применения.
- 139. Теория массового обслуживания. Основные принципы. Применение в информатике (основные модели и критерии оценки эффективности).
- 140. Информационные технологии в науке и образовании.
- 141. Прикладное программное обеспечение сетевых технологий (Сетевые операционные системы. Сетевые пакеты прикладных программ).
- 142. Принципы построения распределенных информационных систем. Промежуточное программное обеспечение для обработки сообщений.
- 143. Сервисно-ориентированная архитектура распределенных приложений. Основные протоколы.
- 144. Корпоративные информационные системы (класс erp). Разновидности. Решаемые задачи.
- 145. Новые информационно коммуникационных технологий как база становления информационного общества.
- 146. Модели жизненного цикла программного обеспечения.
- V модель (разработка через тестирование)
- 147. Основные принципы структурного анализа систем.
- 148. Консалтинг в области информационных технологий.
- 149. Методика проведения обследования объектов автоматизации.
- 150. Методы построения и анализа моделей деятельности предприятия.
- 151. Структурно-функциональные модели (sadt).
- 152. Модели потоков данных (dfd).
- 153. Модели «сущность-связь» (erd).
- 154. Нормализация модели данных.
- 155. Объектно-ориентированный язык визуального моделирования uml.
- 156. Методология rup: назначение и основные характеристики.
- 157. Диаграммы вариантов использования (use-cases diagram).
- 158. Диаграммы классов (class diagram). Основные объекты диаграммы.
- 159. Диаграммы деятельности (activity diagram). Основные объекты диаграммы.
- 160. Диаграммы последовательности (sequence diagram).
- Линия жизни (Life Line)
- Активация, фрагмент выполнения (Activation Bar, Execution Occurances)
- Сообщение, Стимул (Message, Stimulus)