1.6. дані і їх кодування
Дані - діалектична складова частина інформації. Вони являють собою зареєстровані сигнали. При цьому фізичний метод реєстрації може бути будь-яким: механічне переміщення фізичних тіл, зміна їх форми або параметрів якості поверхні, зміна електричних, магнітних, оптичних характеристик, хімічного складу і (або) характеру хімічних зв'язків, зміна стану електронної системи і багато іншого.
Відповідно до методу реєстрації дані можуть зберігатися і транспортуватися на носіях різних видів. Найпоширенішим носієм даних, хоча і не самим економічним, мабуть, є папір. На папері дані реєструються шляхом зміни оптичних характеристик її поверхні. Зміна оптичних властивостей (зміна коефіцієнта відбиття поверхні в певному діапазоні довжин хвиль) використовується також в пристроях, які здійснюють запис лазерним променем на пластмасових носіях з відбиваючим покриттям (CD-ROM). В якості носіїв, що використовують зміна магнітних властивостей, можна назвати магнітні стрічки і диски. Реєстрація даних шляхом зміни хімічного складу поверхневих речовин носія широко використовується у фотографії. На біохімічному рівні відбувається накопичення та передача даних в живій природі.
Завдання перетворення даних з метою зміни носія відноситься до однієї з найважливіших завдань інформатики. У структурі вартості обчислювальних систем пристрої для введення і виведення даних, що працюють з носіями інформації, складають до половини вартості апаратних засобів.
Операції з даними
В ході інформаційного процесу дані перетворюються з одного виду в інший за допомогою методів. Обробка даних включає в себе безліч різних операцій. У міру розвитку науково-технічного прогресу і загального ускладнення зв'язків у людському суспільстві трудовитрати на обробку даних неухильно зростають. Перш за все, це пов'язано з постійним ускладненням умов управління виробництвом і суспільством. Другий фактор, що також викликає загальне збільшення обсягів оброблюваних даних, теж пов'язаний з науково-технічним прогресом, а саме з швидкими темпами появи і впровадження нових носіїв інформації, засобів зберігання і доставки даних.
У структурі можливих операцій з даними можна виділити наступні основні:
• збір даних - накопичення даних з метою забезпечення достатньої повноти інформації для прийняття рішень;
• формалізація даних - приведення даних, що надходять з різних джерел, до однакової форми, щоб зробити їх порівнянними між собою, тобто підвищити їх рівень доступності;
• фільтрація даних - відсіювання «зайвих» даних, в яких немає необхідності для прийняття рішень; при цьому повинен зменшуватися рівень «шуму», а достовірність та адекватність даних повинні зростати;
• сортування даних - впорядкування даних за заданою ознакою з метою зручності використання; підвищує доступність інформації;
• угруповання даних - об'єднання даних за заданим ознакою з метою підвищення зручності використання; підвищує доступність інформації;
• архівація даних - організація збереження даних в зручній та доступній формі; служить для зниження економічних витрат на зберігання даних і підвищує загальну надійність інформаційного процесу в цілому;
• захист даних-комплекс заходів, спрямованих на запобігання втрати, відтворення та модифікації даних;
• транспортування даних - прийом та передача (доставка і постачання) даних між віддаленими учасниками інформаційного процесу; при цьому джерело даних в інформатиці прийнято називати сервером, а споживача - клієнтом;
Кодування даних двійковим кодом
Та ж проблема універсального засобу кодування досить успішно реалізується в окремих галузях техніки, науки і культури. Як приклади можна привести систему запису математичних виразів, телеграфну абетку, морську прапорцевим абетку, систему Брайля для сліпих і багато іншого.
C O M P U T E R
Мал. 1,8. Приклади різних систем кодування
Своя система існує і в обчислювальній техніці - вона називається двійковим кодуванням і заснована на представленні даних послідовністю усього двох знаків: 0 та 1. Ці знаки називаються двійковими цифрами, по-англійськи - binary digit, або, скорочено, bit (біт).
Одним бітом можуть бути виражені два поняття: 0 або 1 (так чи ні, чорне або біле, істина або брехня і т. П.). Якщо кількість бітів збільшити до двох, то вже можна висловити чотири різних поняття:
Трьома бітами можна закодувати вісім різних значень:
000 001 010 011 100 101 110 111
Збільшуючи на одиницю кількість розрядів в системі двійкового кодування, ми збільшуємо в два рази кількість значень, яке може бути виражено в даній системі.
Кодування цілих і дійсних чисел
Для кодування цілих чисел від 0 до 255 достатньо мати 8 розрядів двійкового коду (8 біт).
Шістнадцять біт дозволяють закодувати цілі числа від 0 до 65535, а 24 біта - вже понад 16,5 мільйона різних значень.
Для кодування дійсних чисел використовують 80-розрядне кодування. При цьому число попередньо перетвориться в нормалізовану форму.
123 456 789 = 0,123456789 · 109
Перша частина числа називається мантиси, а друга - характеристикою. Більшу частину з 80 біт відводять для зберігання мантиси (разом зі знаком) і якийсь фіксована кількість розрядів відводять для зберігання характеристики (теж зі знаком).
Кодування текстових даних
Якщо кожному символу алфавіту зіставити певне ціле число (наприклад порядковий номер), то за допомогою двійкового коду можна кодувати і текстову інформацію. Восьми двійкових розрядів достатньо для кодування 256 різних символів. Цього вистачить, щоб висловити різними комбінаціями восьми бітів все символи англійської та російської алфавітів, як малі, так і великі, а також знаки пунктуації, символи основних арифметичних дій і деякі загальноприйняті спеціальні символи, наприклад символ «§».
Технічно це виглядає дуже просто, проте завжди існували досить вагомі організаційні складності. У перші роки розвитку обчислювальної техніки вони були пов'язані з відсутністю необхідних стандартів, а в даний час викликані, навпаки, достатком одночасно діючих і суперечливих стандартів. Для того щоб весь світ однаково кодували текстові дані, потрібні єдині таблиці кодування, а це поки неможливо через суперечності між символами національних алфавітів, а також протиріч корпоративного характеру.
Для англійської мови, який захопив де-факто нішу міжнародного засобу спілкування, протиріччя вже зняті. Інститут стандартизації США (ANSI - American National Standard Institute) ввів в дію систему кодування ASCII (American Standard Code for Information Interchange - стандартний код інформаційного обміну США). В системі ASCII закріплені дві таблиці кодування: базова і розширена. Базова таблиця закріплює значення кодів від 0 до 127, а розширена відноситься до символів з номерами від 128 до 255.
Перші 32 коду базової таблиці, починаючи з нульового, віддані виробникам апаратних засобів (в першу чергу виробникам комп'ютерів і друкуючих пристроїв). У цій області розміщуються так звані керуючі коди, яким не відповідають ніякі символи мов, і, відповідно, не отримали ці коди виводяться ні на екран, ні на пристрої друку, але ними можна керувати тим, як проводиться висновок інших даних.
Починаючи з коду 32 по код 127 розміщені коди символів англійського алфавіту, розділових знаків, цифр, арифметичних дій і деяких допоміжних символів. Базова таблиця кодування ASCII приведена в таблиці 1.1.
Аналогічні системи кодування текстових даних були розроблені і в інших країнах. Так, наприклад, в СРСР в цій області діяла система кодування КОИ-7 (код обміну інформацією, семизначний). Однак підтримка виробників обладнання та програм вивела американський код ASCII на рівень міжнародного стандарту, і національним системам кодування довелося «відступити» в другу, розширену частину системи кодування, що визначає значення кодів з 128 по 255. Відсутність єдиного стандарту в цій галузі призвело до множинності одночасно діючих кодувань. Тільки в Росії можна вказати три діючих стандарту кодування і ще два застарілих.
Так, наприклад, кодування символів російської мови, відома як кодування Windows-1251, була введена «ззовні» - компанією Microsoft, але, з огляду на широке поширення операційних систем і інших продуктів цієї компанії в Росії, вона глибоко закріпилася і знайшла широке поширення (таблиця 1.2 ). Ця кодування використовується на більшості локальних комп'ютерів, що працюють на платформі Windows. Де-факто вона стала стандартною в російському секторі World Wide Web.
Інша поширена кодування носить назву КОИ-8 (код обміну інформацією, восьмизначний) - її походження відноситься до часів дії Ради Економічної Взаємодопомоги держав Східної Європи (таблиця 1.3). На базі цієї кодування нині діють кодування КОІ8-Р (російська) і КОІ8-У (українська). Сьогодні кодування КОІ8-Р має широке поширення в комп'ютерних мережах на території Росії і в деяких службах російського сектора Інтернету. Зокрема, в Росії вона де-факто є стандартною в повідомленнях електронної пошти та телеконференцій.
Міжнародний стандарт, в якому передбачена кодування символів російського алфавіту, носить назву кодування ISO (International Standard Organization) Міжнародний інститут стандартизації). На практиці дана кодування використовується рідко (таблиця 1.4).
На комп'ютерах, що працюють в операційних системах MS-DOS, можуть діяти ще два кодування (кодування ГОСТ і кодування ГОСТ-альтернативна). Перша з них вважалася застарілою навіть в перші роки появи персональної обчислювальної техніки, але друга використовується і до цього дня (див. Таблицю 1.5).
У зв'язку з великою кількістю систем кодування текстових даних, що діють в Росії, виникає задача межсистемного перетворення даних - це одна з поширених завдань інформатики.
Універсальна система кодування текстових даних
Якщо проаналізувати організаційні труднощі, пов'язані зі створенням єдиної системи кодування текстових даних, то можна прийти до висновку, що вони викликані обмеженим набором кодів (256). У той же час очевидно, що якщо, наприклад, кодувати символи НЕ восьмирозрядних двійковими числами, а числами з великою кількістю розрядів, то і діапазон можливих значень кодів стане набагато більше. Така система, заснована на 16-розрядному кодуванні символів, отримала назву універсальної - UNICODE. Шістнадцять розрядів дозволяють забезпечити унікальні коди для 65536 різних символів - цього поля досить для розміщення в одній таблиці символів більшості мов планети.
Незважаючи на тривіальну очевидність такого підходу, простий механічний перехід на дану систему тривалий час стримувався через недостатні ресурсів засобів обчислювальної техніки (під час передачі сигналу UNICODE всі текстові документи автоматично стають вдвічі довше). У другій половині 90-х років технічні засоби досягли необхідного рівня забезпеченості ресурсами, і сьогодні ми спостерігаємо поступове переведення документів і програмних засобів на універсальну систему кодування. Для індивідуальних користувачів це ще більше додало турбот за погодженням документів, виконаних в різних системах кодування, з програмними засобами, але це треба розуміти як труднощі перехідного періоду.
Кодування графічних даних
Якщо розглянути за допомогою збільшувального скла чорно-біле графічне зображення, надруковане в газеті чи книзі, то можна побачити, що воно складається з найдрібніших точок, що утворюють характерний візерунок, званий растром (рис. 1.9).
Мал. 1.9. Растр - це метод кодування графічної інформації,
здавна прийнятий в поліграфії
Оскільки лінійні координати й індивідуальні властивості кожної точки (яскравість) можна виразити за допомогою цілих чисел, то можна сказати, що растрове кодування дозволяє використовувати двійковий код для представлення графічних даних. Загальноприйнятим на сьогоднішній день вважається уявлення чорно-білих ілюстрацій у вигляді комбінації точок з 256 градаціями сірого кольору, і, таким чином, для кодування яскравості будь-якої точки зазвичай досить восьмирозрядного двійкового числа.
Для кодування кольорових графічних зображень застосовується принцип декомпозиції довільного кольору на основні складові. В якості таких складових використовують три основні кольори: червоний (Red, R), зелений (Green, G) і синій (Blue, В). На практиці вважається (хоча теоретично це не зовсім так), що будь-який колір, видимий людським оком, можна отримати шляхом механічного змішування цих трьох основних кольорів. Така система кодування називається системою RGB за першими літерами назв основних кольорів.
Якщо для кодування яскравості кожної з основних складових використовувати по 256 значень (вісім двійкових розрядів), як це прийнято для напівтонових чорно-білих зображень, то на кодування кольору однієї точки треба затратити 24 розряду. При цьому система кодування забезпечує однозначне визначення 16,5 млн різних квітів, що насправді близько до чутливості людського ока. Режим подання кольорової графіки з використанням 24 двійкових розрядів називається повнокольоровим (True Color).
Кожному з основних кольорів можна поставити у відповідність додатковий колір, тобто колір, що доповнює основний колір до білого. Неважко помітити, що для будь-якого з основних кольорів додатковим буде колір, утворений сумою пари інших основних кольорів. Відповідно, додатковими кольорами є: блакитний (Cyan, З), пурпурний (Magenta, M) і жовтий (Yellow, Y). Принцип декомпозиції довільного кольору на складові компоненти можна застосовувати не тільки для основних кольорів, а й для додаткових, тобто будь-який колір можна представити у вигляді суми блакитної, пурпурової і жовтої складової. Такий метод кодування кольору прийнятий в поліграфії, але в поліграфії використовується ще і четверта фарба - чорна (Black, К). Тому дана система кодування позначається чотирма літерами CMYK (чорний колір позначається літерою К, тому що буква В уже зайнята синім кольором), і для подання кольорової графіки в цій системі треба мати 32 двійкових розряди. Такий режим теж називається повнокольоровим (True Color).
Якщо зменшити кількість двійкових розрядів, використовуваних для кодування кольору кожної точки, то можна скоротити обсяг даних, але при цьому діапазон кодованих квітів помітно скорочується. Кодування кольорової графіки 16-розрядних двійковими числами називається режимом High Color.
При кодуванні інформації про колір за допомогою восьми біт даних можна передати лише 256 колірних відтінків. Такий метод кодування кольору називається індексним. Сенс назви у тому, що, оскільки 256 значень зовсім недостатньо, щоб передати весь діапазон квітів, доступний людському оку, код кожної точки растра виражає не колір сам по собі, а тільки його номер (індекс) в якійсь довідковій таблиці, званої палітрою. Зрозуміло, ця палітра повинна прикладатися до графічним даними - без неї не можна скористатися методами відтворення інформації на екрані або папері (тобто, скористатися, звичайно, можна, але через неповноту даних отримана інформація не буде адекватною: листя на деревах може виявитися червоною, а небо - зеленим).
Кодування звукової інформації
Прийоми і методи роботи із звуковою інформацією прийшли в обчислювальну техніку найбільш пізно. До того ж, на відміну від числових, текстових і графічних даних, у звукозаписів не було настільки ж тривалої і перевіреної історії кодування. У підсумку методи кодування звукової інформації двійковим кодом далекі від стандартизації. Безліч окремих компаній розробили свої корпоративні стандарти.