- •Рекомендована література:
- •1 Вступ
- •2.0 Цифрове представлення звуку
- •2.2 Передискретизація (oversampling)
- •2.3 Компоненти звукової карти
- •2.4 Ефект-процесор
- •2.5Деякі аспекти якісного відтворення цифрового звуку
- •2.6 Методи, використовувані для ефективного стискування цифрового звуку
- •2.7 Формати, використовувані для представлення цифрового звуку
- •2.8 Mpeg: Загальна інформація
- •2.9 Що таке mp3 ?
- •Висновок
2.8 Mpeg: Загальна інформація
Стандарт стискування MPEG розроблений Експертною групою кінематографії(Moving Picture Experts Group - MPEG). MPEG це стандарт на стискування звукових і відео файлів в зручніший для завантаження або пересилки, наприклад через інтернет, формат.
Існують різні стандарти MPEG(як їх ще іноді називають фази - phase) : MPEG - 1, MPEG - 2, MPEG - 3, MPEG - 4, MPEG - 7.
MPEG складається з трьох частин: Audio, Video, System(об'єднання і синхронізація двох інших).
MPEG - 1
За стандартом MPEG - 1 потоки відео і звукових даних передаються з коростью 150 кілобайт в секунду -- з такою ж швидкістю, як і одношвидкісний CD - ROM програвач -- і управляються шляхом вибірки ключових відео кадрів і заповненням тільки областей, що змінюються між кадрами. До нещастя, MPEG - 1 забезпечує якість відеозображення нижче, ніж відео, що передається за телевізійним стандартом.
MPEG - 1 був розроблений і оптимізований для роботи з дозволом 352 ppl(point per line -- точок на лінії) * 240(line per frame -- ліній в кадрі) * 30 fps(frame per second -- кадрів в секунду), що відповідає швидкості передачі CD звуку високої якості. Використовується колірна схема - YCbCr(де Y - яскравісна площина, Cb і Cr - колірні площини).
Як MPEG працює:
Залежно від деяких причин кожен frame(кадр) в MPEG може бути наступного виду:
I(Intra) frame - кодується як звичайна картинка.
P(Predicted) frame - при кодуванні використовується інформація від попередніх I або P кадрів.
B(Bidirectional) frame - при кодуванні використовується інформація від одного або двох I або P кадрів(один передуючий даному і що один, що йде за ним, хоча може і не безпосередньо, см Рис.1)
Послідовність кадрів може бути наприклад така: IBBPBBPBBPBBIBBPBBPB...
Послідовність декодування : 0312645...
Треба помітити, що перш ніж декодувати B кадр вимагається декодувати два I або P кадру. Існують різні стандарти на частоту, з якою повинні наслідувати I кадри, приблизно 1-2 в секунду, соответствуюшие стандарти є і для P кадрів(кожен 3 кадр має бути P кадром). Існують різні відносні дозволи Y, Cb, Cr площин(Таблиця 1), зазвичай Cb і Cr кодуються з меншим дозволом чим Y.
Вид Формату |
Стосунки дозволів по горизонталі(Cb/Y) : |
Відношення дозволів по вертикалі(Cb/Y) : |
4:4:4 |
1:1 |
1:1 |
4:2:2 |
1:2 |
1:1 |
4:2:0 |
1:2 |
1:2 |
4:1:1 |
1:4 |
1:1 |
4:1:0 |
1:4 |
1:4 |
Для застосування алгоритмів кодування відбувається розбиття кадрів на макроблоки кожен з яких складається з певної кількості блоків(розмір блоку - 8*8 пікселів). Кількість блоків в макроблоку в різних площинах різне і залежить від використовуваного формату:
Техніка кодування :
Для більшого стискування в B і P кадрах використовується алгоритм пророцтва руху(що дозволяє сильно зменшити розмір P і B кадрів -- Таблиця 2) на виході якого виходить:
Вектор зміщення(вектор руху) блоку який треба передбачити відносно базового блоку.
Різниця між блоками(яка потім і кодується).
Оскільки не будь-який блок можна передбачити на підставі інформації про попередніх, то в P і B кадрах можуть знаходитися I блоки(блоки без пророцтва руху).
Вид кадру |
I |
P |
B |
Середній розмір |
Розмір кадру для стандарту SIF(kilobit) |
150 |
50 |
20 |
38 |
Метод кодування блоків(або різниці, що отримується при методі пророцтво руху) містить в собі:
Discrete Cosine Transforms(DCT - дискретне перетворення косинусів).
Quantization(перетворення даних з безперервної форми в дискретну).
Кодування отриманого блоку в послідовність.
DCT використовує той факт, що пікселі у блоці і самі блоки пов'язані між собою(тобто коррелированны), тому відбувається розбиття на частотні фурье компоненти(у результаті виходить quantization matrix - матриця перетворень даних з безперервної в дискретну форму, числа в якій являються величиной амплітуди відповідної частоти), потім алгоритм Quantization розбиває частотні коефіцієнти на певну кількість значень. Encoder(кодувальник) вибирає quantization matrix яка визначає те, як кожен частотний коефіцієнт у блоці буде розбитий(людина чутливіша до дискретності розбиття для малих частот чим для великих). Оскільки в процесі quantization багато коефіцієнтів виходять нульовими те застосовується алгоритм зигзага для отримання довгих послідовностей нулів.