FMUSER бездротовий передавати відео та аудіо простіше!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> африкаанс
sq.fmuser.org -> албанська
ar.fmuser.org -> арабська
hy.fmuser.org -> Вірменська
az.fmuser.org -> азербайджанська
eu.fmuser.org -> баскська
be.fmuser.org -> білоруська
bg.fmuser.org -> болгарська
ca.fmuser.org -> Каталонська
zh-CN.fmuser.org -> китайська (спрощена)
zh-TW.fmuser.org -> китайська (традиційна)
hr.fmuser.org -> хорватська
cs.fmuser.org -> чеська
da.fmuser.org -> данська
nl.fmuser.org -> Голландська
et.fmuser.org -> естонська
tl.fmuser.org -> філіппінська
fi.fmuser.org -> фінська
fr.fmuser.org -> французька
gl.fmuser.org -> галицький
ka.fmuser.org -> грузинський
de.fmuser.org -> німецька
el.fmuser.org -> грецька
ht.fmuser.org -> гаїтянський креольський
iw.fmuser.org -> іврит
hi.fmuser.org -> хінді
hu.fmuser.org -> Угорська
is.fmuser.org -> ісландська
id.fmuser.org -> індонезійська
ga.fmuser.org -> ірландський
it.fmuser.org -> італійська
ja.fmuser.org -> японська
ko.fmuser.org -> корейська
lv.fmuser.org -> латиська
lt.fmuser.org -> литовська
mk.fmuser.org -> македонська
ms.fmuser.org -> малайська
mt.fmuser.org -> мальтійська
no.fmuser.org -> Норвезька
fa.fmuser.org -> Перська
pl.fmuser.org -> польська
pt.fmuser.org -> португальська
ro.fmuser.org -> румунська
ru.fmuser.org -> російська
sr.fmuser.org -> сербська
sk.fmuser.org -> словацька
sl.fmuser.org -> словенська
es.fmuser.org -> іспанська
sw.fmuser.org -> суахілі
sv.fmuser.org -> шведська
th.fmuser.org -> Тайська
tr.fmuser.org -> турецька
uk.fmuser.org -> український
ur.fmuser.org -> урду
vi.fmuser.org -> в'єтнамська
cy.fmuser.org -> валлійська
yi.fmuser.org -> Ідиш
Передмова
Алгоритм стиснення відео H264 зараз, безперечно, є найбільш широко використовуваним і найпопулярнішим із усіх методів стиснення відео. Завдяки впровадженню бібліотек з відкритим кодом, таких як x264 / openh264 та ffmpeg, більшості користувачів більше не потрібно проводити занадто багато досліджень щодо деталей H264, що значно зменшує витрати людей, які використовують H264.
Але для того, щоб ефективно використовувати H264, нам все одно потрібно з'ясувати основні принципи H264. Сьогодні ми розглянемо основні принципи H264.
Огляд H264
Технологія стиснення H264 в основному використовує такі методи для стиснення відеоданих. включати:
Внутрішньокадрове стиснення передбачає вирішення проблеми надмірності просторових даних.
Стиснення міжкадрового передбачення (оцінка руху та компенсація) вирішує проблему надмірності даних у часовій області.
Ціле дискретне косинусне перетворення (DCT), яке перетворює просторову кореляцію на нерелевантні дані в частотній області, а потім квантує їх.
Стиснення CABAC.
Стислий кадр поділяється на: I кадр, P кадр і B кадр:
I frame: ключовий кадр, використовуючи технологію внутрішньокадрового стиснення.
P-кадр: прямий опорний кадр при стисненні посилається лише на попередньо оброблений кадр. Використовуйте технологію стиснення звуку кадру.
B-кадр: двонаправлений опорний кадр. Під час стиснення воно відноситься до попереднього та наступного кадру. Використання технології міжкадрового стиснення.
На додаток до I / P / B кадрів, існують також послідовності зображень GOP.
GOP: Між двома I кадрами є послідовність зображень, а в послідовності зображень є лише один I кадр. Як показано нижче:
Тепер ми докладно опишемо технологію стиснення H264.
Технологія стиснення H264
Основний принцип H264 насправді дуже простий, давайте коротко опишемо процес стиснення даних H264. Відеокадри, захоплені камерою (з розрахунком 30 кадрів в секунду), надсилаються в буфер кодера H264. Кодер спочатку повинен розділити макроблоки для кожного зображення.
Візьміть наступний малюнок як приклад:
Макроблок розділу
H264 використовує область 16X16 як макроблок за замовчуванням, і її також можна розділити на розмір 8X8.
Після поділу блоку макросів обчисліть значення пікселя блоку макросів.
За аналогією розраховується значення пікселів кожного макроблока на зображенні, і всі макроблоки обробляються наступним чином.
Підблок
H264 використовує макроблоки 16X16 для відносно плоских зображень. Однак, щоб досягти вищої швидкості стиснення, менші підблоки також можна розділити на макроблоки 16X16. Розмір підблоку може становити 8X16, 16X8, 8X8, 4X8, 8X4, 4X4, що є дуже гнучким.
На зображенні вище, більшість макроблоків 16X16 у червоній рамці мають синій фон, і на цьому макроблоці намальовано частину зображення трьох орлів. Для кращої обробки часткових зображень трьох орлів H264 Кілька підблоків розділено на макроблоки 16X16.
Таким чином, після внутрішньокадрового стиснення можна отримати більш ефективні дані. Малюнок нижче є результатом стиснення вищезазначених макроблоків за допомогою mpeg-2 та H264 відповідно. Ліва половина є результатом стиснення після поділу підблоку MPEG-2, а права половина - результатом стиснення підблоку H264. Видно, що метод поділу H264 має більше переваг.
Після поділу блоку макросів усі зображення в буфері кодера H264 можна згрупувати.
Групування кадрів
Для відеоданих існує в основному два типи надмірності даних, один - надмірність даних у часі, а інший - надмірність даних у просторі. Серед них надмірність даних за часом є найбільшою. Спершу поговоримо про проблему надмірності часу відеоданих.
Чому надмірність часу найбільша? Якщо припустити, що камера фіксує 30 кадрів в секунду, дані цих 30 кадрів здебільшого пов’язані. Також можливо, що більше 30 кадрів даних, десятки кадрів або сотні кадрів даних особливо тісно пов'язані.
Для цих дуже тісно пов'язаних кадрів насправді нам потрібно зберегти лише один кадр даних, а інші кадри можна передбачити з цього кадру за певними правилами, тому відеодані мають найбільшу надлишковість часу.
Для того, щоб досягти, щоб відповідні кадри стискали дані за допомогою методу передбачення, необхідно згрупувати відеокадри. То як визначити, що певні кадри тісно пов’язані та можуть бути згруповані? Давайте розглянемо приклад. Нижче - захоплений відеокадр групи більярдних куль, що рухаються. Більярдні кульки котяться з правого верхнього кута в лівий нижній.
Кодер H264 кожного разу виймає два сусідні кадри для порівняння макроблоків, щоб обчислити подібність двох кадрів. Як показано нижче:
Шляхом сканування блоків макросів та пошуку блоків макросів можна виявити, що кореляція між двома кадрами дуже висока. Крім того, встановлено, що ступінь кореляції цієї групи кадрів дуже високий. Тому вищезазначені кадри можна розділити на одну групу. Алгоритм такий: на сусідніх зображеннях пікселі, які зазвичай відрізняються, складають лише 10%, різниця яскравості не перевищує 2%, а різниця кольоровості змінюється лише в межах 1%. Ми вважаємо, що це графіки можна згрупувати.
У такій групі кадрів після кодування ми зберігаємо лише повні дані першого повідомлення, а інші кадри обчислюються, посилаючись на попередній кадр. Перший кадр ми називаємо IDR / I, а інші кадри P / B, тому кодовану групу кадрів даних ми називаємо GOP.
Оцінка руху та компенсація
Після того, як кадри згруповані в кодері H264, необхідно розрахувати вектори руху об'єктів у групі кадрів. Беручи як приклад вищезазначений рухомий більярдний відеокадр, давайте подивимось, як він обчислює вектор руху.
Кодер H264 спочатку виймає два кадри відеоданих із заголовка буфера послідовно, а потім виконує сканування макроблоку. Коли на одній із зображень знайдено об’єкт, пошук виконується поблизу іншого зображення (у вікні пошуку). Якщо об’єкт в цей час виявляється на іншому зображенні, тоді можна обчислити вектор руху об’єкта. На наступному малюнку показано положення більярдної кулі після пошуку.
Через різницю між положеннями більярдних куль на наведеному малюнку можна розрахувати напрямок і відстань столової картинки. H264 фіксує по черзі відстань і напрямок руху кулі в кожному кадрі, і це стає наступним.
Після обчислення вектора руху ця сама частина (тобто зелена частина) віднімається для отримання даних про компенсацію. Врешті-решт, нам потрібно лише стиснути та зберегти дані компенсації, і тоді вихідне зображення можна буде відновити під час декодування. Стислим даним потрібно записати лише невелику кількість даних. Наступне:
Ми називаємо вектор руху та компенсацію технологією стиснення між кадрами, яка вирішує надмірність даних відеокадрів у часі. На додаток до міжкадрового стиснення, стиснення даних також повинно виконуватися всередині кадру. Внутрішньокадрове стиснення даних вирішує надмірність просторових даних. Зараз ми представимо технологію внутрішньокадрового стиснення.
Внутрішнє передбачення
Людське око має ступінь розпізнавання зображення, воно дуже чутливе до яскравості низьких частот і не дуже чутливе до яскравості високих частот. Тому, на основі деяких досліджень, дані, не чутливі до людських очей, можуть бути видалені із зображення. Таким чином пропонується технологія внутрішнього прогнозування.
Внутрішньокадрове стиснення H264 дуже схоже на JPEG. Після поділу зображення на макроблоки кожен макроблок можна передбачити в 9 режимах. Знайдіть режим передбачення, який є найближчим до вихідного зображення.
Наступне зображення - це процес передбачення кожного блоку макросів у цілому зображенні.
Порівняння між зображенням після внутрішнього передбачення та вихідним зображенням є таким:
Потім вихідне зображення та внутрішньо передбачене зображення віднімаються для отримання залишкової величини.
Потім збережіть інформацію про режим передбачення, яку ми отримали раніше, щоб ми могли відновити вихідне зображення під час декодування. Ефект такий:
Після внутрішньокадрового та міжкадрового стиснення, хоча дані значно зменшуються, все ще є місце для оптимізації.
Зробіть DCT на залишкових даних
Залишкові дані можуть бути піддані цілочисельному дискретному косинусному перетворенню, щоб видалити кореляцію даних і додатково стиснути дані. Як показано на малюнку нижче, ліва сторона - це макроблок вихідних даних, а права - це макроблок обчислених залишкових даних.
Макроблок залишкових даних оцифровується, як показано на малюнку нижче:
Перетворення DCT виконується на макроблоку залишкових даних.
Після видалення пов’язаних даних ми бачимо, що дані додатково стискаються.
Після закінчення DCT цього недостатньо, а CABAC необхідний для стиснення без втрат.
КАБАК
Вищевказане внутрішньокадрове стиснення є методом стиснення з втратами. Іншими словами, після стиснення зображення його неможливо повністю відновити. CABAC - це технологія стиснення без втрат.
Технологія стиснення без втрат може бути найбільш знайомою кожному - кодування Хаффмана, короткий код для високочастотних слів, довгий код для низькочастотних слів для досягнення мети стиснення даних. VLC, що використовується в MPEG-2, є таким видом алгоритму, ми беремо AZ як приклад, A належить до високочастотних даних, а Z належить до низькочастотних даних. Подивіться, як це робиться.
CABAC - це також короткий код для високочастотних даних і довгий код для низькочастотних даних. У той же час він стискатиметься на основі контексту, що набагато ефективніше, ніж VLC. Ефект такий:
Тепер замініть AZ на відеокадр, і це буде виглядати наступним чином.
З наведеної картини очевидно, що схема стиснення без втрат з використанням CACBA набагато ефективніша, ніж VLC.
резюме
На цьому ми закінчили принцип кодування H264. У цій статті в основному йдеться про такі моменти:
1. Цзяньінь ввів деякі основні поняття в H264. Такі як I / P / B кадр, GOP.
2. Детально пояснив основні принципи кодування H264, включаючи:
Поділ на макроблоки
Групування зображень
Принцип технології внутрішньокадрового стиснення
Принцип технології міжкадрового стиснення.
DCT
Принцип стиснення CABAC.
|
Введіть електронну адресу, щоб отримати сюрприз
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> африкаанс
sq.fmuser.org -> албанська
ar.fmuser.org -> арабська
hy.fmuser.org -> Вірменська
az.fmuser.org -> азербайджанська
eu.fmuser.org -> баскська
be.fmuser.org -> білоруська
bg.fmuser.org -> болгарська
ca.fmuser.org -> Каталонська
zh-CN.fmuser.org -> китайська (спрощена)
zh-TW.fmuser.org -> китайська (традиційна)
hr.fmuser.org -> хорватська
cs.fmuser.org -> чеська
da.fmuser.org -> данська
nl.fmuser.org -> Голландська
et.fmuser.org -> естонська
tl.fmuser.org -> філіппінська
fi.fmuser.org -> фінська
fr.fmuser.org -> французька
gl.fmuser.org -> галицький
ka.fmuser.org -> грузинський
de.fmuser.org -> німецька
el.fmuser.org -> грецька
ht.fmuser.org -> гаїтянський креольський
iw.fmuser.org -> іврит
hi.fmuser.org -> хінді
hu.fmuser.org -> Угорська
is.fmuser.org -> ісландська
id.fmuser.org -> індонезійська
ga.fmuser.org -> ірландський
it.fmuser.org -> італійська
ja.fmuser.org -> японська
ko.fmuser.org -> корейська
lv.fmuser.org -> латиська
lt.fmuser.org -> литовська
mk.fmuser.org -> македонська
ms.fmuser.org -> малайська
mt.fmuser.org -> мальтійська
no.fmuser.org -> Норвезька
fa.fmuser.org -> Перська
pl.fmuser.org -> польська
pt.fmuser.org -> португальська
ro.fmuser.org -> румунська
ru.fmuser.org -> російська
sr.fmuser.org -> сербська
sk.fmuser.org -> словацька
sl.fmuser.org -> словенська
es.fmuser.org -> іспанська
sw.fmuser.org -> суахілі
sv.fmuser.org -> шведська
th.fmuser.org -> Тайська
tr.fmuser.org -> турецька
uk.fmuser.org -> український
ur.fmuser.org -> урду
vi.fmuser.org -> в'єтнамська
cy.fmuser.org -> валлійська
yi.fmuser.org -> Ідиш
FMUSER бездротовий передавати відео та аудіо простіше!
Контакти
Адреса:
No.305 Кімната HuiLan Будівля No273 Huanpu Road Гуанчжоу Китай 510620
Категорії
Інформаційний бюлетень