Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемВладислав Якшин
1 Компрессия видеоданных с фиксированным средним коэффициентом сжатия Ковалёв Д.С. Новосибирский Государственный Университет Совместная лаборатория НГУ, МФТИ, SWsoft Академгородок, 2005 Научный руководитель: к.ф.-м.н. Кренделев С.Ф.
2 План Возникновение проекта Возможности кодека Принцип работы Реализация Что дальше? Вопросы
3 Возникновение проекта (1) В процессе работы над одним из проектов лаборатории потребовалось сохранять большие объемы видеоданных К кодеку предъявлялись следующие требования: Высокая скорость работы Малые искажения при сжатии с потерями Высокий коэффициент сжатия
4 Возникновение проекта (2) Существующие решения не подходили по следующим причинам: Кодеки MPEG4 (например, DivX, XviD) Вносят сильные искажения Медленно работают Lossless кодеки (например, HuffYUV, CorePNG, MSU Lossless codeс): Недостаточно гибкое управление сжатием с потерями Медленно работают (кроме HuffYUV) Кодеки, которые стоят денег
5 Возможности кодека Сжатие как с потерями (lossy), так и без (lossless) Поддержка фиксированного коэффициента сжатия Гибкое регулирование качества при сжатии с потерями Высокая скорость работы
6 Принцип работы Каждый кадр обрабатывается отдельно от других Каждый кадр обрабатывается по одной и той же схеме Преобразование из RGB в YUV Моделирование Квантование Энтропийное кодирование
7 Преобразование из RGB в YUV В общем виде преобразование выглядит так: Без потерь (lossless) – (R,G,B) можно точно восстановить по (Y,U,V) С потерями (lossy) – точно восстановить невозможно
8 Моделирование (1) Моделирование – некоторое преобразование входных данных для уменьшения их энтропии Поддерживается несколько простых и эффективных схем моделирования на основе метода предсказания- коррекции Моделирование осуществляется построчно
9 Моделирование (2) Значение пикселя «?» предсказывается как: predicted = b predicted = (a+b)/2 predicted = (a+c)/2 Кодируется только ошибка предсказания: error = ? - predicted
10 Квантование Квантование - процесс перевода чисел из диапазона [a, b] в [c, d]. Например, [0, 10] преобразуется в [0, 5] путём (целочисленного) деления на 2. Поддерживается несколько схем квантования: Деление на фиксированную константу Деление на псевдослучайное число из заданного диапазона
11 Энтропийное кодирование Энтропийное кодирование – сжатие данных согласно их энтропии. Block Каждый блок кодируется отдельно
12 Фиксированный коэффициент сжатия Коэффициент сжатия поддерживается примерно одинаковым с помощью адаптивного изменения схемы квантования от кадра к кадру RandomQuantizer.SetUp( RequriedRatio ) while( Movie.HasFrames() ) { Frame = Movie.GetNextFrame(); RealRatio = compress( Frame, RandomQuantizer ); if ( RealRatio < RequriedRatio ) RandomQuantizer.Increase(); else if ( RealRatio > RequriedRatio ) RandomQuantizer.Decrease(); }
13 Реализация(1) Статическая библиотека c набором.h-файлов. Написана на С++ с использованием ассемблерных вставок Используются только стандартные библиотеки (STL) Core API VFW Codec DirectShow Codec Test Studio
14 Реализация (2)
15 Что дальше? Реализация и тестирование кодеков: Video For Windows (VFW) DirectShow Ускорение кодека: Реализация критических участков на ассемблере (MMX, SSE, SSE2) Оптимизация некоторых алгоритмов Добавление процедуры префильтрации кадров Повышение качества изображения Повышение коэффициента сжатия Возможно, обработка межкадровой корреляции
16 Вопросы
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.