Лекція 03. Вихідне кодування повідомлень в сучасному цифровому середовищі
Курс “Теорія інформації та кодування”

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

Кодування звукових повідомлень
Кодування зображень
Кодування тексту

3.1 Кодування звукових повідомлень

Параметри кодування звуку

Знайомство з принципами оцифровки звуку в попередній лекції дозволить нам просто визначити його типові параметри, які на практиці фіксуються в заголовку звукового файлу. Зокрема вихідний код оцифрованого звуку розміщується в файлах типу WAV (рис.3.1).

Рисунок 3.1 Приклад відображення параметрів кодування звукового файлу

Частота дискретизації та розрядність кодування в даному випадку є стандартними. Як ми уже знаємо вони визначаються властивостями слуху людини. Зокрема частота дискретизації обрана виходячи із межі частотного діапазону слуху (20 кГц), а розрядність — з урахуванням достатнього діапазону гучності (біля 100 дБ). При цьому конкретне значення 44100 обумовлене наслідуванням попередніх технологій на момент створення стандарту кодування звуку на CD. Звернемо також увагу на параметр “розмір блоку”, який враховує кількість звукових каналів (якщо б у прикладі розглядалось кодування двох стереоканалів, такий розмір складав би 4 байти).

Сумарний потік, або швидкість кодування визначається як добуток частоти дискретизації та розміру блоку коду. В заголовку звукового файлу цей параметр задається в розмірності байт/с. Водночас широко використовується аналогічний за призначенням параметр, який має назву “бітрейт”, що визначається в розмірності кбіт/с. Для даного прикдаду значення бітрейту буде 88200х8/1000 = 705,6 кбіт/с (для двохканального кодування відповідно 1411,2 кбіт/c). Як ми знаємо з практики, при зберіганні звукових даних в форматі mp3 широко використовується значення бітрейта 256 та 320 кбіт/c, для якого якість звуку вважається досить високою. Отже вихідне кодування звуку, що потребує в 4-5 разів вищого бітрейту, вочевидь має суттєву збитковість.

В цифровій телефонії кодування звуку виконується з метою максимальної економічності за умовою розбірливості мовлення. Отже тут використовується частота fd=8 кГце при 8-бітному кодуванні амплітуд, що забезпечує бітрейт 8х8=64 кбіт/с — на порядок менше, ніж при стандартному кодуванні звуку.

Представлення даних оцифровки звуку

Представлення оцифрованого звуку в комп'ютерній пам'яті (зокрема, в файлах) характеризується наступним (рис.3.2):
Рисунок 3.2 Порядок слідування байтів при кодуванні звуку

- код є ланцюжком байтів, значення яких інтерпретуються в залежності від заданих параметрів оцифровки, що присутні в заголовку файлу. Приклад на рис.3.2 відповідає поширениму формату вихідного уявлення звуку .wav;

- код амплітуди вибирається з одного або двох байт (в залежності від заданої розрядності кодування). При цьому старший розряд зокрема кодує знак. У разі стереозвуку пара амплітуд для різних каналів зберігається в четвірці суміжних байтів;

- частота, з якою амплітуди читаються для відновлення звуку, також задається в заголовку звукового файлу. Крім уже згаданих значень (8 кГц для мови і 44,1 кГц для довільного звуку), використовуються і інші значення - наприклад, 22 кГц при невисоких вимогах до якості звуку, або 48 кГц і навіть 96 кГц при високих вимогах.



Схема оцифровки та відновлення звуку
Щоб узагальнити уяву про практичну реалізацію оцифровки та відновлення звуку (а також будь-яких неперервних залежностей сигналів від часу), розглянемо схему рис.3.3:

Рисунок 3.3 Схема оцифровки та відновлення звуку

- неперервний сигнал u(t) — наприклад, сигнал з виходу мікрофону - спочатку надходить на вхід блоку фіксації та утримання, де амплітуда u (i) фіксується на час Δt для подачі на вхід аналого-цифрового перетворювача АЦП;

- за час Δt АЦП встигає сформувати двійковий код K(i), який відповідає дискретному рівню сигналу u*(i). Сучасні АЦП є стандартні мікросхемами, чиї розрядності зазвичай належать ряду 8, 10, 12 і 16 розрядів;

- після передачі цифрових даних (в часі або просторі) вони можуть бути використані для відтворення звуку. При цьому спочатку цифро-аналоговий перетворювач (ЦАП), який зазвичай теж є стандартною мікросхемою;

- на виході ЦАП має вигляд супінчатостої залежності від часу u*(i), чия відмінність від дискретизованої послідовності u(i) на вході АЦП визначається лише похибками квантування (шумом дискретизації). При належному виборі розрядності такі похибки є несуттєвими;

- на останньому етапі фільтр ЗФ згладжує ступінчасту функцію u*(i), відновлюючи безперервну залежність u*(t) для її видачі на звуковідтворювальну апаратуру. За сучасних умов згладжуючі фільтри можуть реалізовуватись програмно і реалізують досить складні математичні алгоритми.

Як ми уже знаємо, при вірному виборі частоти дискретизації (за правилом Найквіста) та відповідному вибору розрядності квантування відновлена залежність u*(t) буде достатньо близькою до вихідної залежності u(t).

Спектральне представлення оцифрованого звуку

Основною формою представлення оцифрованого звуку є послідовність кодів амплітуд в часі (приклад на рис.3.1). Однак разом з нею використовується також спектральна форма, яка дозволяє кодувати звукові дані значно компактніше. Приклад відображений на рис.3.4.

Рисунок 3.4 Використання спектрального преставлення оцифрованого звуку

Як ми уже знаємо, неперевні повідомлення і зокрема звук можуть бути представлені в часовій та спектральній формі. Взаємний перехід між цими формами може виконуватись завдяки математичним перетворенням Фурьє (зокрема пряме перетворення дозволяє перейти від часової форми до спектральної, а зворотнє — від спектральної до часової). Різновиди перетворень Фурьє існують і для дискретної форми повідомлень (їх називають дискретними перетвореннями Фурьє — ДПФ). Відповідні формули показані на рис.3.4.

Оскільки частотний склад звукових повідомлень змінюється в часі, на практиці спектральні перетворення звуку виконуються для блоків звукового потоку, довжина яких складає порядку 1000 відліків амплітуди (в прикладі на рис.3.4 це 500 відліків). При дискретизації з частотою 44 кГц блоку із 1000 семплів відповідає інтервал часу 1/44 секунди (вочевидь за цей час не відбуваються суттєві зміни в сприйнятті звукового потоку).

Як можна бачити на рис.3.4, на відміну від часової форми, спектр звуку може бути локалізован на досить вузькій ділянці відповідної діаграми (в прикладі це інтервал частот не вище 5 кГц, тобто менше четвертої частини всьог частотного діапазону). Це створює умови для компактного кодування такого фрагменту звуку. Надалі ми детально розглянемо, як саме такі умови реалізуються сучасними методами стискання, зокрема mp3.

Контрольні запитання
1. Перелічьте основні параметри кодування звуку і назвіть їх стандартні значення при кодуванні довільного звуку і кодуванні мовлення в цифровій телефонії.
2. Поясніть, яким чином з послідовності байтів в тілі звукового файлу вибудовується послідовність звукових амплітуд. Розгляньте зокрема випадки одноканального та двохканального 16-бітного кодування.
3. Спираючись на рис.3.3, поясніть роботу схеми оцифровки та відновлення звуку.
4. Яким чином і з якою метою використвуються спектральні перетворення для оцифрованого звуку.


3.2 Кодування зображень

Параметри растрового кодування зображень

Як ми уже знаємо, основним способом оцифровки зображень є растровий. Зокрема растрові зображення зберігаються в файлах форматів bmp, tiff, png, pcx та деяких інших. Основні параметри кодування растрового зображення відображені на рис.3.5.

Рисунок 3.5 Приклад парамерів оцифрованого зображення

Нагадаємо, що габарити растру (кількість стовпчиків та рядків) визначають загальну кількість пікселів Np (зазвичай відображується в мільйонах пікселів — MP). Термін «глибина кольору» означає розрядність кодування кольору пікселя Kc. При цьому кількість кольорів Nc визначається такою розрядністю у співвідношенні Nc = 2хKc. Зазвичай використвуються варіанти із 1, 4, 8, 16 та 24 розрядами (відповідно 2, 16, 256, 65 тис. та 16 млн. кольорів).

Розмір файлу із зображенням в кілобайтах визначається за формулою Q = Np * Kc/ 1024 (тут кількість пікселів задається в одиницях, а коефіцієнт 1024 відповідає кількості байтів в кілобайті 210=1024). Якщо використовувати розмірність мегабайт, то необхідно ще раз ділити на 1024. Зрозуміло, що довжина файлу враховує заголовок (на практиці це несуттєво). Зазвичай така довжина відображується в кілобайтах або мегабайтах із округленням. Слід також зазначити, що більшість растрових форматів файлів передбачають можливість стискання коду зображень без втрат інформації. Отже, аналізуючи розмір коду слід це враховувати.

Параметри зображення зазвичай включають такі, що використвуються при його печаті. Ключовим тут є щільність розташування пікселів, яка традиційно відображується в одиницях dpi (dot per inch – точок на дюйм. Один дюйм відповідає 2,54 см). Фізичні розміри зображення визначаються фактичними габаритами растру і заданими значеннями dpi (останні можна регулювати при збереженні файлу).

Використання колірних моделей

Відтінки пікселів, як правило, створюються за рахунок накладення кількох базових кольорів. При цьому можуть використовуватися різні набори базових кольорів - колірні моделі. Таким чином, відображення кольору задається не тільки кодом, а й колірною моделлю, що використовується (рис.3.6). При цьому:

Рисунок 3.6 Колірні моделі та RGB та CMY

- модель RGB (червоний, зелений, блакитний) пристосована для створення цифрових зображень, оскільки передбачає накладення колірних складових на чорний фон. Відповідно, таку модель називають адитивною (від addition - додавання). Найчастіше кожна зі складових кодується одним байтом (підсумкова 24-бітна глибина кольору). При цьому рівні або близькі значення кодів RGB дають градації сірого кольору;

- модель CMY (блакитний, пурпурний, жовтий) використовується в основному при друку, де фоновим кольором є білий. Кольори CMY одержуються вилученням складових RGB із білого кольору, тому цю модель називають субстрактівною (від substaction - віднімання). Щоб полегшити отримання важливого для поліграфії чорного кольору, його вводять в модель в якості четвертого (CMYK);

- на практиці крім RGB і CMY/CMYK застосовуються також інші колірні моделі. Зокрема виділимо так звану кольоро-різністну модель YUV (YCrCb), яка знадобиться нам при вивченні стискання зображень. Вона включає разом із двома базовими кольорами (так званим хроматичним червоним і хроматичним синім) також сумарну яскравість пікселя. Оскільки така яскравість може бути визначена підсумовуванням кодів базових кольорів (зрозуміло, з урахуванням обмежень розрядності коду), нескладно побудувати процедури взаємних переходів між моделями RGB та YUV (YсrCb) (ми ознайомимось з ними надалі).

Представлення даних кольорових зображень

Результати кодування кольорів оцифрованих зображень можуть представлятись в комп'ютерній пам'яті двома різними способами (рис.3.7).

Рисунок 3.7 Способи кодування кольорів

Безпосереднє кодування передбачає завдання інтенсивності трьох базових кольорів відповідними ділянками коду (на рис.3.7 як приклад відображене використання колірної моделі RGB. Для інших трьохколірних моделей спосіб кодування аналогічний). Нині найбільш поширеним є уже знайоме нам кодування кожного базового кольору одним байтом. Відповідно підсумкова довжина коду складає 24 розряди, а кількість відтінків — біля 16 млн. Також застосовується кодування одним та двома байтами (кількість кольорів відповідно 256 та біля 65 тис.). В обох таких випадках розрядність для базових кольорів може різнитись (рис.3.6): більшу розрядність використвують для колорів, які є більш важливими для зору.

Застосування палітр кольорів дозволяє суттєво зменшити обсяг пам'яті, що використовується для зображень. Це досягається за рахунок механізма непрямого кодування, коли колір пікселя задається не його повним кодом (наприклад, трьохбайтним), а відносно коротким покажчиком на такий код в обмеженій таблиці актуальних кольорів (палітрі). Наприклад, в певній ділянці зображення використвується лише до 256 кольорів із всієї множини в 16 млн. відтінків. Тоді для їх кодування достатньо використовувати однобайтний покажчик. При переході до іншої ділянки зображення, де будуть застосовуватись інші відтінки, можна перейти до іншої палітри. Зрозуміло, що такий спосіб ускладнює обробку зображення за рахунок економії потрібного обсягу пам'яті.

Поняття про векторний спосіб представлення зображення

Разом з растровим кодуванням в практиці також використвується так званий векторний спосіб представлення зображень (рис.3.8). Коротко охарактерізуємо його особливості:

Рисунок 3.8 Принцип побудування векторних зображень

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

- більш складні зображення будуються за допомогою кривих, форма яких також задається з використанням набору числових коефіцієнтів (зокрема так званих кривих Безьє). При цьому всі зображення розділяється на області, які обмежені кривими заданої форми і залиті однорідним кольором;

- разом із компактністю такий спосіб забезпечує масштабованість зображення без погіршення якості (зокрема — уникнути так званої расеризації). Завдяки цьому векторне подання отримало широке застосування в поліграфії;

- векторний спосіб є зручним в першу чергу для опису штучних зображень (ділової графіки, художніх стилізацій, шрифтів і т.д.). Він мало придатний для відображення складних зображень з великою кількістю деталей (наприклад, фотографій природи). Тобто, на відміну від растрового способу векторний не є універсальним.

Приклад опису векторного зображення

Наочним прикладом компактного опису векторного зображення може служити рис.3.9.

Рисунок 3.9 Приклад опису векторного зображення мовою SVG

Тут показаний текст опису простого зображення на мові розмічання тексту SVG (підмножина XML). SVG-текст інтерпретується сучасними браузерами в растрову картинку. При цьому сам він представляється знаками ASCII, які займають по 1 байту.

Зокрема на рис.3.9 показаний приклад опису трьох різнокольорових прозорих кіл, які вписані в квадрат. Так, рядок задає опис червоного кола радіусом 104 пікселя, центр якого розміщується на 52 пікселя вище центру фонового квадрата зі сторонами 400х400 пікселів. Ви легко самостійно визначте сенс інших параметрів опису цього зображення. Важливо, що даний опис у багато разів компактніше, ніж файл з відповідною растрової картинкою.

Контрольні запитання
1. Перелічьте основні параметри оцифрованих растрових зображень. Наведіть приклад розрахунку розміру файлу з растровим зображенням.
2. Охарактеризуйте найбльш поширені колірні моделі. Яким саме чином такі моделі використвуються при відтворенні кольорів пікселів.
3. Розкажіть про принцип векторного представлення зображень. Назвіть основні переваги та обмеження векторного способу відносно растрового.
4. Проаналізуйте приклад опису векторного зображення на рис.3.9 і запропонуйте конкретні зміни в цьому описі для зміни кольору одного з його елементів.


3.3 Кодування тексту

Сучасні способи кодування тексту

Нині використовуються два способи кодування тексту — сучасний спосіб універсального кодування (Unicode) та традиційний спосіб так званих «кодових сторінок» (CP) — рис.3.10.

Рисунок 3.10 Способи кодування тексту

Спосіб кодових сторінок (CP) є рішенням, що забезпечує максимальну компактність кодування (лише 1 байт для будь-якого знаку). Свого часу це було важливою перевагою. Компактність досягається використанням невеличких таблиць кодування (власно кодових сторінок), кожна з яких має габарит 16х16 комірок і отже може містити коди лише 256 знаків. При цьому кодування всієї необхідної сукупності знаків (зокрема символів різних національних алфавітів) забезпечується використанням великої кількості таких таблиць. Отже, той самий код на різних таблицях відповідає різним символам, що на практиці може приводити до викоривлень тексту (знані «кракозябри»). Зокрема це стається, коли на локальному пристрої відсутня потрібна кодова сторінка, що є очевидною незручністю.

Спосіб універсального кодування (Unicode) передбачає виділення кожному знаку унікального коду, що виключає плутанину із відображенням. Стандарт Unicode передбачає виділення знаку його власного номеру (такий нумерований список має назву Universal character set — UCS). Надалі номери знаків трансформуються в двійкові формати з довжиною коду, що кратна байту. Зокрема, використовуються три схеми такого переведення (Unicode Transformation Format - UTF), які різняться мінімальною розрядністю кодування: UTF-8 використовує коди довжини від 1 до 4 байтів (при цьому широко вживані знаки кодуються найбільш компактно), UTF-16 застосовує стандартну довжину кодів 2 знаків байти, а UTF-32 передбачає використання 4 байтів на знак. На практиці схеми кодування UTF-8 та UTF-16 використовуються в дещо різних сферах, а UTF-32 внаслідок значної збитковості не знайшла розповсюдження.

Надалі ми розглянемо розповсюджені способи кодування знаків тексту більш детально.

Кодові сторінки

Кодові сторінки являють собою таблиці відповідності знаків та їх двійкових однобайтових кодів (рис.3.11):

Рисунок 3.11 Структура кодових сторінок (CP)

- кожна кодова сторінка (CP) має форму квадратної таблиці з 16 рядками і 16 стовпцями. Номери рядків і стовпців відповідають першому і другому напівбайтам (4 двійкових розряди) коду знака. Ці номери зручно позначати 16-річної цифрами. Так наприклад, 16-ковий код 62h відповідає осередку таблиці з номером рядка 0110 (6h) і номером стовпця 0010 (2h). При цьому іноді використують і десяткової нумерацією осередків (зокрема 62h відповідає десяткове 98d);

- верхня половина CP (рядки із номерами 0-7) має стандартне наповнення. Тут розміщені найбільш вживані знаки, що використовуються в текстах, а також спеціальні знаки, що застосовуються для управління стандартними пристроями і передачею даних. Всі вони охоплюються стандартом ASCII (American Standard Code for Information Interchange). Зокрема, тут розташовані латинські букви, цифри, знаки роздільників і математичних операцій (в таблиці їх 95). Інтерпретація їх кодів завжди однакова: наприклад, для будь-якої CP код 62h відповідатиме латинській літері b. У таблиці представлені також 33 спеціальних знаки. Прикладами тут можуть служити знаки LF і CR (переходи «назад до початку рядка» і «на наступний рядок») із кодами відповідно 0Ah і 0Dh. При цьому такі коди можуть відображатися на екрані як символи (наприклад, 0Ah відповідає символ "нота");

- нижня половина CP (рядки із номерами 8-F) призначена для відображення знаків національних алфавітів і може відрізнятися для різних комп'ютерних платформ і операційних систем. При цьому один і той же код буде відображатися різними кодовими сторінками по-різному. Зокрема, знаки кириличного алфавіту в Windows відображаються сторінкою CP-1251. Аналогічні сторінки будуть відрізнятися не тільки для комп'ютерів Apple або мейнфреймів IBM, а й для інших ОС на платформі Intel. Так в Microsoft-DOS знаки кирилиці розміщуються на сторінці CP866. При цьому якщо для Windows CP-1251 коду E1h буде відповідати буква "б", то для CP866 MS-DOS- кирилична літера "з".

Кодування UTF-16 в Unicode

Представлення символів в Unicode зазвичай має форму U+XXXX, де XXXX – 16-ковий унікальний номер знаку в загальному стандартизованому списку UCS. В форматі UTF-16 всі коди знаків мають стандартну довжину 2 байти, що дає певні переваги при їх обробці. Отже цей спосіб широко застосовується наприклад у Windows. Приклади кодування знаків наведені на рис.3.12.

Рисунок 3.12 Приклади кодування в UTF-16

Пояснемо додатково особливості кодування в UTF-16, спираючись на рис.3.12:
- зазвичай структура коду знака безпосердньо відповідає його номеру в Unicode. Наприклад, кирилична строчна буква «б» має за стандартом номер U+0431, якому в UTF-16 відповідає 16-ковий код 04 31 та двійковий код 00000100 00110001 (нагадаємо, що кожній 16-ковій цифрі відповідає четвірка 2-кових цифр. Для наочності старші полубайти підкреслені);

- спосіб кодування, що відображений на рис.3.6, здається природнім, але на практиці поряд з ним може застосовуватись зворотній порядок слідування байтів, коли «молодший» байт в номері іде першим в коді (саме такий порядок відображення чисел прийнятий зокрема в процесорах Intel). Відповідно ці два способи кодування обозначають як UTF-16BE та UTF-16LE (такий суфікс розшифровується як Big Endian або Little Endian - «порядок від більшого» або «порядок від меньшого»). Інформація про використаний варіант кодування зазвичай розміщується на початку блоку даних у вигляді «мітки порядку байтів» (Byte order mark — BOM). Зокрема значення BOM U+FEFF відповідає BE, а U+FFFE - способу LE;

- проблема стандартного кодування знаків із великими номерами, що перевищують формат 16 розрядів, вирішується за рахунок використання двох пар байтів (так звані «сурогатні пари») — рис.3.6. Для реалізації такого способу в загальному просторі 16-кових номерів від 0000h-FFFFh виділений спеціальний діапазон D800h-DFFFh, що використовується для адресації чотирьохбайтних кодів (подібних до прикладу на рис.3.12). Його розмір дає змогу адресувати коди до 220 знаків (біля мільйону). Цей спосіб надалі детально пояснюється додатково *.

* Кодування UTF-16 – спосіб утворення чьотирьохбайтніх кодів знаків
Принцип розширення кількості знаків, які кодуються в UTF-16 пояснює рис.3.13.

Рисунок 3.13 Спосіб утворення 4-байтних кодів («сурогатних пар») в UTF-16

Діапазон двохбайтних кодів D800h-DFFFh розділляється на рівні частини (зокрема, D800h- D8FFh та DС00h- DFFFh), кожна з яких містить по 1024 значення. Ці два піддіапазони можна розглядати відповідно як номери рядків та стовпчиків таблиці, в комірках якої містяться номери відповідних знаків в Unicode (рис.3.13). Отже кожен такий знак може кодуватись парою двохбайтних значень, які визначаються як номери відповідного ряка та стовпчика. І навпаки, якщо маємо пару кодів, що відповідають рядку та стовпчику в таблиці, то можемо визнати номер знаку в Unicode.

Практична процедура кодування виглядає таким чином:
- від коду символу віднімається 10000h. В результаті вийде значення від нуля до FFFFFh, яке поміщається в розрядну сітку 20 біт (це дає можливість кодування додатково біля мільйона символів);

- cтарші 10 біт (число в діапазоні 0000h..03FFh) підсумовуються з D800h, і результат йде в провідне (перше) слово, яке входить в діапазон D800h..DBFFh;

- молодші 10 біт (теж число в діапазоні 0000h..03FFh) підсумовуються з DC00h, і результат йде в наступне (друге) слово, яке входить в діапазон DC00h..DFFFh.

Кодування UTF-8 в Unicode
Використання стандартної довжини коду знаків 16 біт в кодуванні UTF-16 має певні недоліки. Зокрема, для часто вживаних символів стандарту ASCII (зокрема таких, як букви латиниці, цифри, знаки математичних операцій тощо) двохбайтне кодування є вочевидь збитковим. Тому в сферах, де використання таких знаків переважає (наприклад в Інтернет), широко застосовується більш економічний формат UTF-8, який використовує коди зінної довижини. Особливості кодування за цим форматом пояснює рис.3.14.

Рисунок 3.14 Особливості кодування в UTF-8

Кодування в UTF-8 має наступні важливі особливості:

- довжина коду знаків може становити від 1 до 4 байтів в залежності від їх номера в Unicode. Природньо для знаків з меншими номерами використовуються коротші формати (верхня таблиця на рис.3.14). Водночас саме ці знаки зазвичай частіше вживаються, отже на практиці таке кодування виявляється більш економічним порівняно із UTF-16. Зокрема відзначимо, що однобайтне кодування знаків стандарту ASCII тут повністю збігається із їх представленням за допомогою кодових сторінок CP;

- для побудування кодів знаків, що включають ланцюжки із 2, 3 або 4 байтів, додатково використовуються службові розряди, які дозволяють визначити кількість байтів в ланцюжку і позицію конкретного байту. Відповідні шаблони кодування відображені у верхній таблиці на рис.3.14. Тут також означена кількість інформаційних бітів в ланцюжках різної довжини;

- при побудуванні кода UTF-8 спочатку згідно його номеру в Unicode обирається необхідна кількість байтів, а потім двійкові код цього номеру послідовно розташовується у відповідних позиціях, починаючи із молодших розрядів. Наприклад, 16-ковий номер 431 кириличної букви «б» вочевидь може бути розташований в двох байтах (він менше за 7FF). При цьому 6 молодших двійкових розрядів опиняються в молодшому байті, а ще 6 — в старшому. Завдяки використанню службових розрядів підсумковий вид коду D0 B1 ніяк не збігається із номером символу 431. Але це такий номер легко відновлюється при декодуванні.

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

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

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

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

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