Лаб.1 Аналіз оцифровки та вихідного кодування повідомлень у сучасному цифровому середовищі
Методичні вказівки до виконання лабораторної роботи №1
з курсу «Теорія інформації та кодування»


Шаблон оформлення звіту можна одержати тут.
Комплект матеріалів до виконання роботи (демо-програми, приклади повідомлень для дослідження) можна скачати звідсіля.

Увага! Позначкою "*" в тексті виділені блоки, які обовязкові тільки при повному варіанті виконання

Мета роботи:
- на практиці ознайомитися зі стандартними формами вихідного кодування основних типів повідомлень: звуку, зображень та тексту;
- закріпити знання теоретичних засад оцифровки безперервних повідомлень.


Короткі теоретичні відомості
При введенні в сучаснe цифровe середовище текстових і звукових даних, а також зображень і відео вони перетворюються до стандартних форматів для зручності подальшого зберігання і обробки. Всі ці формати передбачають побайтово двійкове кодування елементів повідомлень: знаків тексту, пікселів растрових зображень і амплітуд відліків звукового сигналу.

1) Для звуку стандартним уявленням його оцифровки є послідовність кодів амплітуд звукового сигналу, які фіксуються із заданою частотою. Добуток такої частоти на довжину коду характеризує величину звукового потоку і називається бітрейтом (кбіт/с). Вибір довжини коду і частоти фіксації амплітуд спирається на теоретичні положення. Зокрема, частота дискретизації вибирається за правилом Найквіста-Котельникова як подвоєна максимальна частота звуку, яку може сприймати людина. Зазвичай звук дискретизується із частотою 44,1 кГц. Довжина коду повинна враховувати необхідну точність відтворення і ширину динамічного діапазону, який зазвичай визначається в децибелах. Для довільного звуку використовується розрядність кодування 16 біт, яка відповідає діапазону гучності звуку 96 дБ.
Практичні аспекти оцифровки звуку описані в розділі "Кодування звуку" лекції 4. Відповідний теоретичний матеріал викладено в лекції 3.

2) Для зображень універсальним способом їх подання в цифровому середовищі є растр - матриця точок-пікселів. Відтінок пікселя утворюється за рахунок накладення базових кольорів, які утворюють колірну модель. Найбільш широко застосовується колірна модель RGB (червоний-зелений-блакитний), яка використвується для зображень на екранах. Кількість використовуваних відтінків визначає необхідну довжину коду пікселя. Поряд з растровим способом представлення зображень в ряді випадків використовується «векторний» спосіб. Тут елементами зображення є фігури, чия форма задається математично. Такий підхід забезпечує компактність і масштабованість, однак придатний лише для зображень штучного походження.
Детальний опис згаданих моментів наведено в розділі "Кодування зображень" лекції 4.

3) Для тексту при кодуванні знаків застосовуються сучасний уніфікований код (Unicode), а подекуди ще традиційні «кодові сторінки» (CP). Unicode базується на використанні загального списку знаків, де кожний з них має свій стандартний номер. Такі номери кодуються кількома способами. Зокрема так зване кодування UTF-8 створює коди довжиною від 1 до 4 байтів (зазвичай більш поширені знакі кодують коротше). Кодування UTF-16 застосовує двобайтні коди для всіх знаків (для рідких деяких знаків доводится використовувати дві такі пари). Кодування UTF-32 майже не використвується в силу своєї збитковості. Спосіб із «кодовими сторінками» забезпечує максимально компактне всіх знаків лише одним байтом. Але таке досягається за рахунок використання багатьох CP, що може викликати певні незручності для користвувачів. Отже нині він є скоріш рудіментом, однак потребує розуміння.
Детальний пояснення форматів і механізмів кодування для цих способів наведено в розділі "Кодування знаків" лекції 4 по ТІК.

Зміст роботи
Робота включає три розділи, що присвячені аналізу вихідного кодування відповідно звуку, зображень та тексту. Нижче характеризується повний зміст розділів (знаком «*» позначено не обов'язкове для базового рівня).

1) Вивчення кодування звуку включає:
- аналіз параметрів кодування звукових файлів та графічного відображення звукових хвиль. Для цього застосовується демонстраційна програма SoundCode;
- аналіз узагальненої схеми оцифровки і відновлення звукових сигналів, описаної в Лекції 4;
* - аналіз використання спектральних перетворень для економічного кодування звукового потоку із допомогою демо програми SpecViz.

2) Для дослідження вихідного кодування зображень реалізуються:
- аналіз розміру коду растрових зображень в залежності від кодування кольору і форматів графічних файлів. Як інструмент використовується переглядач зображень FastStoneImageViewer;
- аналіз кодування кольорів з використанням колірної моделі RGB за допомогою демонстраційної програми GraphicsDemo. * Додатково знайомимось із використанням різностно-кольорної моделі та спектрального перетворення блоків зображень;
* - ознайомлення з векторним описом зображень на прикладі простого геометричного зображення, описаного мовою SVG, і його растрової інтерпретації браузером.

3) Для вивчення кодування знаків тексту виконуються:
- ознайомлення з принципами відображенням знаків в Unicode на базі сайту http://unicode-table.com/ru/ (зокрема розглядаються типи кодування UTF-8, UTF-16 та UTF-32);
- аналіз структури та використання відображення знаків за допомогою кодової стрінки CP-1251 для Windows із знаками кирилиці;
* - дослідження особливостей кодування знаків різних категорій в поширених типах кодування UTF-8, UTF-16.

Порядок виконання

Підготовка до виконання роботи
Скачати із сайту tik-diit.dp.ua (розділ «До лабораторних робіт») архів із методичними матеріалами: текст методичних вказівок; шаблон звіту; демонстраційні та інструментальні програми; файли з прикладами повідомлень для аналізу. Оскільки архів містить файли .exe, для безперешкодної передачі Інтернетом йому присвоєно умовний пароль «tik2019».

Після скачування архів необхідно розгорнути на робочому комп'ютері. Зокрема, якщо робота виконується безпосередньо в лабораторії університету, рекомендується створити персональну папку для даної лабораторної в стандартному розділі d://student/kurs2/tik. Надалі подібні дії рекомендуються при виконанні всіх наступних робіт.

1) Аналіз кодування звуку
а) Виконати аналіз вихідного кодування звуку за допомогою демо- програма SoundCode:
- запустити демонстраційну програму із файлу SoundCode.exe та відкрити один із файлів mus_1.wav - mus_4.wav із звуковим фрагментом із папки «Приклади» (номер файлу обирається згідно номеру варіанту за модулем 4). На екрані програми відобразиться часова діаграма оцифрованого звуку;
- проаналізувати одержану часову діаграму, змінюючи положення покажчика часу курсором і відстежуючи зміни поточної амплітуди звуку. При необхідності змінювати масштаб діаграми в часі. Зберегти скриншот для звіту — рис.1.1;
- в пункті меню «Додаткова інформація» одержати дані про частоту дискретизації, розрядність кодування та кількість звукових каналів і розмістити їх в табл.1.1 звіту. Виконати розрахунок бітрейту та часу звучання і додати їх в табл. 1.1.

б) Проаналізувати узагальнену схему оцифровки та відновлення звуку (рис.1.2). Зокрема розібратись із призначенням всіх її елементів та порядком роботи.

* в) Виконати аналіз використання спектральних перетворень при кодуванні звуку за допомогою демо-програма SoundCode:
- запустити демонстраційну програму із файлу SpecViz.exe та відкрити музикальний трек (або скачаний із Інтернет, або із архіву з методичними матеріалами). При програванні треку разом із блоками амплітуд часової діаграми відображуються блоки спектру, які програма одержує за рахунок так званого прямого дискретного перетворення Фурьє - ДПФ (зокрема його ефективної модифікації - «швидкого ДПФ»);
- впевнитись, що спектри блоків звукового коду зазвичай локалізовані в досить вузькій смузі частот (це створює умови для економічного кодування звуку). Перед відтворенням звуку блоки часової діаграми відновлюються за даними блоків спектру за рахунок так званого зворотнього ДПФ. Зберегти скриншот для звіту (рис.1.3);
- в режимі «Сонограма» відтворити представлення звукового потоку у вигляді, коли звуковий потік розгортається в часі та за частотами, а амплітуди звуку відображаються кольорами (більші амплітуди — в бік червоної частини спектру). Такий наочний спосіб стає можливим завдяки спектральним перетворенням. Зберегти скриншот для звіту (рис.1.4).

2) Аналіз кодування зображень
а) Дослідити параметри растрового кодування зображення із використанням програми-переглядача FastStone Image Viewer:
- оберіть і збережіть повнокольорове зображення в форматі .jpg (із Інтернет або із папки матеріалів для лабораторної роботи). Запустіть FastStone Image Viewer та відкрийте обране зображення. Включіть його до звіту (рис.1.5). З'ясуйте та запишіть в табл.1.2 вихідні характеристики зображення - розміри растру, обсяг в кБ, глибина кольору (для файлів jpg довжина коду пікселів завжди 24 біти);
- збережіть послідовно файли зображення в форматі .bmp із глибиною кольора 24, 8 та 4 біти. Запишіть в табл. 1.2 відображений обсяг файлів (* додатково розрахуйте такий обсяг, виходячи із розмірів растру. Зверніть увагу на розбіжності розрахункового та відображеного обсягу файлів, які повязані з використанням палітр для 8-бітного та 4-бітного кодування);
- порівняйте результати і зробіть висновки щодо впливу глибини кольору та стандартного стискання зображення на його якість та обсяг коду.

б) Розглянути механізм формування кольору пікселів із базових кольорів:
- запустіть демонстраційну програму Graphics-demo. Перегляньте з її допомогою попереднє зображення. Переміщуючи курсор, аналізуйте формування різних кольорів із базових складових RGB;
* - перегляньте зображення «Межі кольорів» та оберіть покажчиком фрагмент 8х8 пікселів, із межею між кольорами (зафіксуйте його кнопкою «Прийняти»). Проаналізуйте відображення складових RGB та відповідних складових YUV різностно-колірної моделі (пікселі відображуються в порядку від верхнього лівого до нижнього правого кута);
* - в режимі «Пряме перетворення» перегляньте дискретні спектри YUV для обраного фрагменту. Зверніть увагу, що більш дрібним деталям зображення (змінам між сусідніми пікселями) відповідають вищі частоти спектру. Розділення фону та дрібних деталей за частотами створює передумови ефективного стискання зображень.

* в) Ознайомитись із описом зображень в векторної формі:
- відкрийте браузером файл «Кола.svg» та перегляньте одержане растрове зображення різнокольорових кіл. Зверніть увагу, що розмір файлу становить лиш 1 кБ;
- відкрийте файл «Кола.svg» за допомогою текстового редактора (наприклад, WordPad) і проаналізуйте опис зображення на мові розмітки svg (підмножина xml). Виявіть елементи, які задають радіус, положення та кольори трьох кіл;
- внесіть в текстовий опис зображення зміни за власним вибором (наприклад, змініть радіус, положення та колір одного із кіл) та збережіть змінений текст. Упевніться, що браузер відображує внесені зміни;
- збережіть для звіту скриншот із зміненим зображенням (рис.1.6) та відповідну версію його svg-опису.

3) Аналіз кодування знаків
а) Проаналізувати кодування знаків за стандартом Unicode із допомогою матеріалів сайту https://unicode-table.com/ru:
- в розділі стандартного нумерованого списку знаків «Основна латиниця» обрати першу літеру вашого імені та розгорнути повне описання її кодувань в Unicode. Проаналізувати для цієї літери відповідний номер в Unicode, а також 16-кові та двійкові коди в форматах кодування UTF-8, UTF-16 та UTF-32. Зберегти скриншот для звіту (рис.1.8);
* - дослідити в подібний спосіб кодування знаків із різних розділів списку (зокрема: таку саму літеру кирилиці, а також знак валюти та «емодзі» з номерами у відповідних розділах із номерами згідно індивідуального варіанту). Відобразити результати дослідження в таблицях 1.3 та 1.4 звіту.

б) Ознайомитись із структурою та використанням «кодових сторінок» (CP) на прикладі CP-1251 для Windows із знаками кирилиці:
- проаналізувати рис.1.9 в шаблоні звіта. Знайти латинську та кириличну літери із попереднього прикладу та побудувати відповідні 16-кові коди. Відобразити на рис.1.9 у звіті. Звернути увагу, що код латинської літери відповідє кодуванню в UTF-8, а кирилічної — ні.
- ознайомитись із складом знаків, які входять до стандарту ASCII (верхня половини CP). Звернути увагу, що поряд із символами тут присутні службові знаки для управління інформаційним обміном (перші два рядки таблиці);
* - на сайті https://unicode-table.com/ru переглянути вибірково службові знаки стандарту ASCII та ознайомитись із їх призначенням.

* в) Дослідити використання форматів кодування знаків при збереженні тексту.
- створіть за допомогою стандартної програми «Блокнот» короткий текст із своїм ім'ям в латинської та кириличної транскрипціях (на двох різних рядках). Збережить цей текст в різних варіантах згідно меню «Кодування» (зокрема - ASCII, UTF-8, UTF-16BE);
- перегляньте зміст збережених файлів у 16-ковому форматі за допомогою файл-менеджера FAR. При роботі в FAR: попередньо оберіть необхідний диск (9-ConfMn, Left, ChangeDrive); переглядайте файли в 16-ковому форматі (3-View, 4-Hex). Зберігайте скриншоти та розмістіть їх на рис.1.10;
- поясніть особливості кодування в кожному з форматів. Зверніть увагу на використання мітки типу кодування BOM (Byte Order Mark) у випадку UTF-16 (для UTF-8 вона не обов'язкова). Також зверніть увагу, що перехід до наступного рядка тексту кодується двома службовими знаками ASCII – 0D та 0A («до наступного рядка» та “до начала рядка”).

Вимоги до виконання роботи, оформлення та захисту звіту

1) Виконання роботи
Робота може виконуватися як у навчальній лабораторії, так і вдома. Відповідно, вихідні дані можуть бути отримані з папки дисципліни ТІК на лабораторному комп'ютері або з сайту http://tik-diit.dp.ua.
Студент самостійно обирає повний або базовий варіант виконання та захисту роботи. У першому випадку максимальний бал відповідає оцінці «відмінно», а в другому - «добре».

2) Оформлення звіту
Звіт оформляється у відповідності зі зразком, наведеним у Додатку 3 і з урахуванням обраної повноти. Звіт подається до захисту у вигляді паперового документа або в електронному форматі при співбесиді з викладачем. При цьому повинна бути забезпечена можливість для викладача переглянути повні результати виконання роботи в електронному вигляді.

3) Захист звіту
Захист звіту включає:
- проходження тестів по темі роботи в присутності викладача (не обов'язково);
- відповіді на запитання викладача за змістом роботи;
- відповіді на теоретичні питання по темі роботи і виконання завдань.
Рівень питань відповідає заявленій глибині вивчення (повний або базовий варіанти).
Підсумковий бал враховує також якість виконання роботи та оформлення звіту.

Питання для самоконтролю при підготовці до захисту звіту

До розділу 1. Кодування звуку
1) Звідки при відтворенні звуку береться інформація про частоту його дискретизації і розрядності кодування амплітуд.
2) Поясніть свій розрахунок бітрейту та часу відтворення звукового фрагменту.
3) Прокоментуйте дію узагальненої схеми оцифровки та відновлення звуку.
*4) Поясніть розміщення значень амплітуд звукових відліків в потоці байтів для випадків одно- і двухбайтное кодування, а також для моно- і стереозвуку.
*5) Поясніть використання спектральних перетворень Фурьє при цифровій обробці звуку.

До розділу 2. Кодування зображень
1) Наведіть приклад розрахунку обсягу коду для растра заданих розмірів при глибині кодування 24 і 4 розрядів. *Чому відображення значення тут не завжди відповідають із розрахунковими.
2) Поясніть формування кольорів пікселів із базових кольорів кольорної моделі RGB. * Наведіть приклади використання інших кольорних моделей.
3) В чому полягає принцип векторного представлення зображень і які його переваги.
*4) Поясніть використання спектрального представлення блоків зображень.
*5) Прокоментуйте SVG-опис модифікованого векторного зображення і його зв'язок із одержаним растровим зображенням кольорових кіл.

До розділу 3. Кодування знаків
1) Поясніть суть методів кодування знаків з використанням Unicode та кодових сторінок.
2) Прокоментуйте утворення кодів знаків в Uncode на прикладі рис.1.8 із звіту. Які переваги мають кодування UTF-8 та UTF-16.
3) Поясніть структуру кодової сторінки на прикладі CP-1251 спосіб визначення кодів знаків. *Наведіть приклади кодів управління інформаційним обміном в ASCII.
*4) Поясніть детально формування кодів UTF-8 та UTF-16 на прикладах табл.1.3 та 1.4 із звіту.
*5) Прокоментуйте результати дослідження збереження тексту в різних кодуваннях за даними рис.1.10.

О дисциплине ТИК
Почему «Теория информации и кодирования» - одна из самых интересных дисциплин, которые изучают будущие системщики и защитники информации?

В ней сочетаются золотая классика и самая актуальная современность computer-science.

продолжение
О сайте
Здесь вы найдете материалы, которые помогут в изучении дисциплины “Теория информации и кодирования” (ТИК) в том виде, как она преподается на кафедре ЭВМ ДИИТа.

На сайте размещены методические материалы:
  • электронный конспект лекций;
  • методическое обеспечение к лабораторным работам;
  • полезные ссылки.

продолжение
© 2008-2019 • Теория информации и кодирования
UP