Сучасні методи стиснення відео.

порівнюючи Microsoft WMV9 цей «закритий» кодек з представниками відкритого стандарту MPEG-4, виходить, що «закритість» стандарту забезпечує кращий розвиток, кращу якість і т.д. - хоча б через те, що не потрібно озиратися на обмеження стандарту, завжди можна, розробивши новий підхід, випустити нову версію продукту, яка в той же час буде підтримувати і декодування старих версій.

Відео: Програма для стиснення відео БЕЗ втрати якості

І з іншого боку: візьмемо той же MPEG-4, збільшимо число дискретних значень при квантуванні, покращимо методику визначення руху в кадрі, застосуємо ресемплірування дозволу для незначущих кадрів, а також візьмемо кращий метод компресії без втрат для стиснення глобальних таблиць і результуючих коефіцієнтів для кадрів (самий банальний «зразковий» підхід: замість швидкого, але мало що тиснуть ZIP`а, візьмемо більш повільний, але більш ефективний RAR). Що це дасть? При тому самому бітрейте ми збільшимо «передання» вихідної картинки на 10-35%. це спричинить за собою значне збільшення часу кодування (До 3 разів) - але, мабуть, це сильно нікого не турбує, і досить-таки підніме планку мінімального процесора для декодування: до PIV-2000 / AthlonXP-2000.

VP6 був анонсований ще в минулому році. Однак, коли місяць тому VP6 був відданий в відкрите некомерційне використання, його тестування на декількох відеофрагментів, при тому самому бітрейте цей кодек видавав значно краще качество.Разработчікі реалізували всі ті підходи, про які тільки можна мріяти, за винятком wavelet-методик, плюс дозволили користувачу самому налаштовувати ряд параметрів, чого варто тільки порадіти (на даний момент, тільки xVid дозволяє, як мінімум, настільки детально копатися в настройках кодування).

Опис налаштувань кодека

При інсталяції кодек ставить два профілі - VP60 (simple profile) і VP61 (advanced profile). Різниці в настройках немає. Автори кодека рекомендують використовувати VP60 для звичайних і високих бітрейтів, а VP61 - для низьких і дуже низьких бітрейтов.VP61 вимагає при кодуванні і декодуванні більше ресурсів, але здатний дати трохи кращу якість кодування.

кодек дозволяє працювати з ним через VfW інтерфейс. Для того, щоб виставити бажаний бітрейт доведеться скористатися властивістю цього API, яке дозволяє, не ініціалізувавши вікно налаштувань, форсувати бітрейт і частоту ключового кадру. Щоб зробити це, наприклад, з VirtualDub`а, необхідно у вікні вибору кодека (меню Video / Compression), виставити бажане значення:

форсування бітрейта

Бітрейт виставляє в кілобайтах в секунду замість звичних нам кБит / с, тому, бажаючи виставити, скажімо, 1600 кБит / с, ділите на 8 - тобто в нашому випадку це буде 200.

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

Налаштування VP6. Перша вкладка - General

Меню Mode:

Realtime / Live Encoding Може бути використаний для кодування в режимі реального часу, наприклад при оцифрування. Я противник використання сильно жмущих кодеків при захопленні, тому можу порекомендувати даний режим лише для тестових захоплень і для захоплення «на раз» (наприклад, запис серіалу для дружини :)).

Good Quality Fast Encoding. Середня якість, досить висока швидкість кодування. Не рекомендується до використання.

One Pass - Best Quality. Кращий за якістю однопрохідний режим. Повільне кодування.

Two Pass - First Pass. Перший прохід двопрохідні кодування, використовується для збору статистики про відеопотоці для подальшого використання в другому проході.

Відео: програма для стиснення відео без втрати якості №2

Two Pass - Second Pass. Другий прохід двопрохідні кодування. Має два режими Good Quality і Best Quality, другий, звичайно ж, має більш високу якість, але набагато повільніший, тому якщо швидкість кодування для Вас критична, можна використовувати перший, різниця в якості між двома режимами не сильно помітна.

Вибір End Usage (Використання відео):

Stream From A Server (CBR) - Постояннийбітрейт. Підходить для трансляції відео по мережі.

Local File Playback (VBR) . Переменнийбітрейт. Саме цей режим і слід використовувати для кодування відео потоку з подальшим відтворенням на комп`ютері (або на майбутніх EVD-плеєрах).

Вибір Material (Формат вхідного потоку):

Interlaced Fields - Черезстрочне відео. Забігаючи вперед, скажу, що VP6 - кращий, на мій погляд, кодек, що працює в області низьких бітрейтів, по обробці чересстрочного відео. Результати вражають! Більш того, декодер VP6 має вбудований механізм дєїнтерлейсинга, нехай і не такий потужний, як, наприклад, адаптивний деінтерлейсінг у програмного забезпечення ATI, але досить непоганий.

Progressive. Прогресивне відео.

Noise Reduction (Зменшення шумів) Ви можете обрати від «0» (шумозаглушення відключено) до «6» (максимальне шумозаглушення). Включення опції не рекомендується - за допомогою фільтрів до VirtualDub можна набагато ефективніше знизити гучність відео, втративши значно менше як.

Auto Key Frame - при включеній опції кодек автоматично вибирає розташування ключових кадрів в потоці (з урахуванням опції Max Frames Btw Keys). Обов`язково вкажіть цю опцію.

Max Frames Btw Keys - Найбільша довжина ключового фрагмента (максимальна кількість кадрів між ключовими кадрами). Величина залежить від відеопотоку. Якщо важко самі визначити, виставте 360 - цілком «золота середина».



Налаштування: Advanced

Налаштування VP6. Друга вкладка - Advanced

Вибір DataRate Control (Керування потоками):

Undershoot - У% від значення datarate, вже виставленого Вами, означає бітрейт, який буде спочатку відведений на кодування відео. Залишки підуть насамперед на глобальні та локальні таблиці даних, а також на особливо складні фрагменти відеопотоку. Зазначу, що значення за замовчуванням (90%) цілком слушно. Ще одне важливе зауваження: VP6 не підходить для стиснення невеликих відеороликів через те, що досить великий обсяг у фінальному файлі займають глобальні дані, і чим менше тривалість фільму, тим більше будуть займати ці дані щодо самого відеопотоку. Мінімальна рекомендована мною тривалість фільму для кодування в VP6 становить 10 хвилин, і чим більше, тим краще!

Adjust Quantizer . Дозволяє вручну визначити діапазон коефіцієнтів квантування для процесу кодування. Дуже потужний засіб управління якістю, однак Ви повинні розуміти, що робите, з кількох причин:

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

2. Діапазон дискретних значень коефіцієнтів у VP6 значно більше, ніж в стандарті MPEG-4 (1 - 80), причому алгоритм використання матриці квантування дещо іншою. В сумі це дає більшу якість кодування: «квадратики» у фінальному відео, стислому за допомогою VP6, Ви отримаєте тільки при дуже низькому бітрейті.

3. Слід розуміти механізм використання квантування при кодуванні і вибирати коефіцієнти, виходячи з цього, прагнучи максимально задіяти бітрейт. Так, для нижньої межі значення краще вибирати з ряду: 2, 4, 8, 12, 16, 24, 32, 40 і т.д, а для верхньої - 3, 7, 11, 15, 23, 31, 39 і т . Д. Тобто, наприклад, 4 - мінімальний коефіцієнт, 47 - максимальний. Це зовсім не означає, що «крок вправо, крок вліво - растрел на місці» - зовсім немає. Це оптимальні установки для діапазонів, при яких буде досягатися оптимальне заповнення глобальних даних.

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

Spatial Resampling - трохи більше корисна опція. Дозволяє кодеку зменшити дозвіл кадру, в якому мало інформації. Умови включення даного механізму задаються за допомогою значень Down Watermark і Up Watermark: першим Ви також задаєте рівень браку бітрейта, при якому кодек зменшить дозвіл кадру, другим задаєте умова вибору таких кадрів. За допомогою грамотного підбору значень можна домогтися гарного стиснення малозначущих кадрів фільму, наприклад, титрів. Однак, і ця опція, і попередня не мають поки нормальних засобів управління, очікується, що наступна версії кодека виправить ситуацію.

Вибір Streaming Parameters (Параметри для потокового відео, режим CBR):

Як правило, установки за замовчуванням досить непогано працюють при створенні потоків для трансляції по мережі.

Peak Bitrate - Максимальний бітрейт, дозволений для потоку

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

Optimal Buffer - Оптимальна тривалість буфера, яку кодек повинен підтримувати при програванні

Max Buffer - Максимальна величина для установки буфера завантаження

Вибір Two Pass Section Datarate (Установки для другого проходу двопрохідні режиму:

Variability - умовна величина, яка визначає величину розкиду бітрейта. 0 - означає постійний бітрейт, 100 - дозволяє кодеку розподіляти бітрейт в будь-яких відносинах для будь-яких секцій потоку. Не рекомендую встановлювати нижче 70. Для відносно високих бітрейтів і великої тривалості потоку (більше півгодини) можна сміливо ставити 100.

Min Section - мінімальний% від бітрейта, який кодек виділить для сегмента. 40 - цілком нормальна величина, однак, якщо у фільмі є титри, статика, можна зменшити цю величину. В принципі, встановлюючи значення в 0, Ви віддаєте контроль на відкуп кодеку.

Max Section - максимальний% від бітрейта, який кодек виділить для сегмента. Мінімальна «нормальне» значення - 100%. Максимальне значення, формально, не обмежена, але 400% - розумний стелю для 95% випадків.

Третя вкладка - сервісна. Ви можете завантажити зумовлені авторами настройки і зберегти власні. Думаю, вона не потребує описі.

Налаштування VP6. Друга вкладка - Advanced

Вибір DataRate Control (Керування потоками):

Undershoot - У% від значення datarate, вже виставленого Вами, означає бітрейт, який буде спочатку відведений на кодування відео. Залишки підуть насамперед на глобальні та локальні таблиці даних, а також на особливо складні фрагменти відеопотоку. Зазначу, що значення за замовчуванням (90%) цілком слушно. Ще одне важливе зауваження: VP6 не підходить для стиснення невеликих відеороликів через те, що досить великий обсяг у фінальному файлі займають глобальні дані, і чим менше тривалість фільму, тим більше будуть займати ці дані щодо самого відеопотоку. Мінімальна рекомендована мною тривалість фільму для кодування в VP6 становить 10 хвилин, і чим більше, тим краще!

Adjust Quantizer . Дозволяє вручну визначити діапазон коефіцієнтів квантування для процесу кодування. Дуже потужний засіб управління якістю, однак Ви повинні розуміти, що робите, з кількох причин:

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

2. Діапазон дискретних значень коефіцієнтів у VP6 значно більше, ніж в стандарті MPEG-4 (1 - 80), причому алгоритм використання матриці квантування дещо іншою. В сумі це дає більшу якість кодування: «квадратики» у фінальному відео, стислому за допомогою VP6, Ви отримаєте тільки при дуже низькому бітрейті.

3. Слід розуміти механізм використання квантування при кодуванні і вибирати коефіцієнти, виходячи з цього, прагнучи максимально задіяти бітрейт. Так, для нижньої межі значення краще вибирати з ряду: 2, 4, 8, 12, 16, 24, 32, 40 і т.д, а для верхньої - 3, 7, 11, 15, 23, 31, 39 і т . Д. Тобто, наприклад, 4 - мінімальний коефіцієнт, 47 - максимальний. Це зовсім не означає, що «крок вправо, крок вліво - растрел на місці» - зовсім немає. Це оптимальні установки для діапазонів, при яких буде досягатися оптимальне заповнення глобальних даних.

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

Spatial Resampling - трохи більше корисна опція. Дозволяє кодеку зменшити дозвіл кадру, в якому мало інформації. Умови включення даного механізму задаються за допомогою значень Down Watermark і Up Watermark: першим Ви також задаєте рівень браку бітрейта, при якому кодек зменшить дозвіл кадру, другим задаєте умова вибору таких кадрів. За допомогою грамотного підбору значень можна домогтися гарного стиснення малозначущих кадрів фільму, наприклад, титрів. Однак, і ця опція, і попередня не мають поки нормальних засобів управління, очікується, що наступна версії кодека виправить ситуацію.

Вибір Streaming Parameters (Параметри для потокового відео, режим CBR):

Як правило, установки за замовчуванням досить непогано працюють при створенні потоків для трансляції по мережі.

Peak Bitrate - Максимальний бітрейт, дозволений для потоку

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

Optimal Buffer - Оптимальна тривалість буфера, яку кодек повинен підтримувати при програванні

Max Buffer - Максимальна величина для установки буфера завантаження

Вибір Two Pass Section Datarate (Установки для другого проходу двопрохідні режиму:

Variability - умовна величина, яка визначає величину розкиду бітрейта. 0 - означає постійний бітрейт, 100 - дозволяє кодеку розподіляти бітрейт в будь-яких відносинах для будь-яких секцій потоку. Не рекомендую встановлювати нижче 70. Для відносно високих бітрейтів і великої тривалості потоку (більше півгодини) можна сміливо ставити 100.

Min Section - мінімальний% від бітрейта, який кодек виділить для сегмента. 40 - цілком нормальна величина, однак, якщо у фільмі є титри, статика, можна зменшити цю величину. В принципі, встановлюючи значення в 0, Ви віддаєте контроль на відкуп кодеку.

Max Section - максимальний% від бітрейта, який кодек виділить для сегмента. Мінімальна «нормальне» значення - 100%. Максимальне значення, формально, не обмежена, але 400% - розумний стелю для 95% випадків.

Третя вкладка - сервісна. Ви можете завантажити зумовлені авторами настройки і зберегти власні. Думаю, вона не потребує описі.

два підходу

Відео: Методи реєстрації та подання відео - Пристрій кодека

тепер спробуємо вивести два підходи до кодування з використанням VP6. Отже, Ви застосували всі фільтри, зробили ресайз, якщо це необхідно (я, як завжди, описую роботу з кодеком з VirtualDub`а, але, природно, Ви можете працювати з VP6 з усіх програм, сумісного з VfW API), залишається тільки налаштувати компресію відео.

Для початківців Спробуйте вирішити для початку кодеку зробити все самому, якщо Ви з ним зіткнулися в перший раз, навіть якщо у Вас величезний досвід роботи з відео. Просто так, для різноманітності - таким чином відразу побачите його сильні і слабкі сторони. А якщо сумніваєтеся в собі, то тим більше пробуйте практично всі установки залишити «на автоматі».

Перший прохід. Отже, виставляємо бажаний бітрейт, не забуваючи про те, що він виставляється для VP6 в кілобайтах / с, далі переходимо до налаштувань самого кодека. Вибираємо режим Two Pass - First Pass, виставляємо змінний бітрейт (Local File Playback (VBR)). Залежно від того, який у Вас потік - черезрядковий або прогресивний, виставляєте його в кодеку, шумозаглушення (Noise Reduction), звичайно ж, відключаємо (якщо є необхідність очистити відео, скористайтеся відповідними фільтрами і методиками). Включаємо Auto Key Frame і виставляємо максимальне число кадрів між ключовими в 360. Переходимо на вкладку «Advanced» і там виставляємо Undershoot в 90 і прибираємо всі галочки з активних налаштувань. Тиснемо Ок - налаштування першого проходу закінчені. Ви можете зберегти файл, або занести його в Job List.

Другий прохід. Ми залишаємо той же бітрейт, на першій вкладці вибираємо Two Pass - Second Pass - Good Quality або Best Quality, в залежності від того, яким часом Ви маєте в своєму розпорядженні (врахуйте, що Best Quality може розтягнутися для Вас на добу-дві, в залежності від швидкодії Вашого комп`ютера). Далі, переходимо на другу вкладку, виставляємо Variability в 100, Min Section - в 40, Max Section - в 400. Всі, можна зберігати файл другого проходу, він і буде фінальним файлом.

Сучасний режим. Перш за все, поекспериментуйте з настройками коефіцієнтів квантування. Установка діапазонів залежить, перш за все, від бітрейта. Пам`ятайте, що мінімальний коефіцієнт, встановлений у 2 для середніх дозволів (512х384 і вище) передбачається для бітрейтів 1600 кбіт / с і вище. Тому, якщо Ви хочете використовувати менший бітрейт, керуйтеся мінімальним коефіцієнтом 4, а для дуже низьких бітрейтів - 8 або 12. Для статичного відео краще звузити діапазон коефіцієнтів, для динамічного - розширити. Для максимальних коефіцієнтів варто керуватися правилом, яке я вже привів в описі налаштувань - на попередній сторінці, але пам`ятайте, що це аж ніяк не залізне правило: якщо Ви виставили настройки по-іншому, і Вам подобається - користуйтеся Вашими налаштуваннями!

Temporal Resampling і Spatial Resampling скористайтеся при необхідності використовувати дуже маленькі бітрейти: як показали досліди, VP6 здатний непогано закодувати відео 320х240 (для надолонника) з бітрейтом 300 кбіт / с, і він увійде на не найбільшу карту флеш-пам`яті. Однак, ще раз повторюся, поки немає чіткого механізму управління цими режимами, так що покладайтеся на кодек, якщо буде виходити не дуже добре - вимкніть їх. Не бійтеся експериментувати - виділіть 10-15 хвилинний фрагмент Вашого відео, створіть Job List з декількома варіантами кодування, і поставте на ніч. Потім виберіть вже найкраще, на Ваш погляд, якість і скористаєтеся налаштуваннями вже для кодування фільму в цілому.

також Ви можете поекспериментувати з налаштуваннями другого проходу, виставивши менше значення для Min Section і змінюючи значення Max Section.

Завантажити БЕЗКОШТОВНО VP6 можете за наступним посиланням:

https://letitbit.net/download/27418.278178553f178ff60e4a3b8cc95f44881/vp6_decoder.exe.html

Поділися в соц мережах:
Cхоже

Увага, тільки СЬОГОДНІ!