Відеоко́дек — прилад або програмне забезпечення, що виконує функції кодування та декодування цифрового відео потоку. Кодування, як правило, полягає в стисненні з втратами інформації. Історично, відео інформація зберігалася в аналоговому вигляді на магнітних касетах. Але коли на ринок вийшли компакт диски, з'явилась потреба зберігати та обробляти відео в цифровому вигляді.
Аудіо та відео інформація вимагає спеціалізованих методів стиснення. Інженери та математики спробували застосувати кілька методів для розв'язання цієї проблеми.
Існує складний баланс між якістю отриманого відео, кількістю інформації, необхідної для його відтворення (відома як біт-рейт, англ. bitrate), складністю алгоритмів кодування та декодування, стійкістю до втрат даних та помилок, зручністю для редагування, довільного доступу, якістю алгоритмів, затримкою в каналах зв'язку та іншими факторами.
Принцип роботи найпростішого кодека
Кодування статичного зображення (або, одного кадру) — кожен кадр відеопотоку складається з крапок (пікселів), що утворюють матрицю (растр). Кодек може відстежувати схожі масиви крапок з однаковими атрибутами (наприклад, синій колір фону на зображенні неба) і, замість того, щоб запам'ятовувати інформацію про кожну з таких крапок (яскравість і колір) у наступних кадрах окремо, він записує тільки першу (ключову) крапку і лічильник з кількістю повторень цієї крапки до моменту зміни її кольору. Тобто замість опису, наприклад, 1000 крапок, достатньо (в певних випадках) описати всього 1 крапку + лічильник повторення. Це найпростіший з методів стиснення.
В JPEG для кадру проводиться поблокове дискретне косинусне перетворення з наступним кодуванням з використанням алгоритму Хаффмана або арифметичного кодування.
Для побудови динамічного зображення (відеоряду) використовуються різні типи кадрів — крім I-кадрів (які також називаються ключовими (англ. keyframes) або «опорними») які можуть містити тільки незалежно стислі макроблоки, додані P-кадри («різницеві» кадри) можуть містити як незалежно стислі макроблоки, так і макроблоки з посиланням на інший кадр.
Якістю тут можна управляти, задаючи величину, таку, що якщо відмінність між точками менше, то вони вважаються однаковими.
Більш просунуті формати стиснення враховують, крім вищезгаданої технології, ще й принципи руху масивів точок у зображенні, сегментування картинки на «квадратики» з різною якістю стиснення, застосування послідовності кадрів, кодованих по-різному і показаних у певній послідовності. Найновіші кодеки враховують психофізичні властивості сприйняття відео людським оком і мозком, що дозволяє ще сильніше зменшувати розмір даних без «видимої втрати якості». Також, алгоритми використовує схожість сусідніх кадрів у відеоряді.
Стандарти та кодеки
Кодеки без втрат
- HuffYUV
- CorePNG (OpenSource)
- LCL-Codec
- Lagarith
- FFV1[en]
- MSU Lossless
- AZW
Кодеки з втратами
- MPEG-1 Part 2 (Типове застосування: Video-CD (VCD))
- MPEG-2 Part 2 (Типову застосування: SuperVideo-CD (SVCD), MVCD, KVCD, DVD, DVB, HDTV)
- MPEG-4 Part 2 (Часто використовується разом із AVI-файлами створеними в DivX або XviD)
- MPEG-4 Part 10 та AVC та H.264 (Типове застосування: HD-DVD, DVB-S2, HDTV, iTunes)
- Windows Media Video та VC-1 (Типове застосування: Internet Streaming)
- RealVideo (Типове застосування: Internet Streaming)
- Sorenson (Типове застосування: раніше у відеопотоках Quicktime- та Flash)
- Theora (позиціонується як відкритий конкурент MPEG-4 та аналогів)
- VP6 (Типове застосування: у відеопотоках Flash до Flash версії 8)
Додатки та програми
Відеокодеки використовуються в DVD-програвачах, інтернет-відео, відео на вимогу, цифровому кабельному телебаченні, цифровому наземному телебаченні, відеотелефонії та багатьох інших програмах. Зокрема, вони широко використовуються в програмах, які записують або передають відео, що може бути неможливим із великими обсягами даних і пропускною здатністю нестисненого відео. Наприклад, вони використовуються в операційних для запису хірургічних операцій, в IP-камерах у системах безпеки, а також у дистанційно керованих підводних апаратах і безпілотних літальних апаратах. Будь-який відеопотік або файл можна закодувати за допомогою різноманітних параметрів формату живого відео. Ось деякі з налаштувань кодера H.264, які потрібно встановити під час потокового передавання на відеоплеєр HTML5.[1]
Див. також
Примітки
Джерела
Посилання
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.