|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Evgenij Masherov 2:5020/175.2 09 Oct 2001 10:04:24 To : Alex Baskakov Subject : Сжатие видео -------------------------------------------------------------------------------- Mon Oct 08 2001 11:40, Alex Baskakov wrote to Evgenij Masherov: EM>> А поищите на видеокарте такой себе кристалльчик ADV601 (а может, 601LC EM>> или 611). Если он есть - вейвлеты. Могу поделиться программным EM>> эмулятором его. Или кратким пояснением, как работает. AB> Давай в эху. Очень интересно. Краткое пояснение. 0. Изображение представлено форматом YUV 4:2:2, то есть каналом яркости и двумя цветности (с половинной, по частоте, оцифровкой), т.е. оптимизировано под ТВ, а не компьютер. (работает как с ПАЛом, так и с HТСЦ) 1. Картинка (по каналам) подвергается вейвлет-преобразованию (биортогональные 9-7 вейвлеты, что позволяет получить симметричный набор коэффициентов и съэкономить на операциях). Вот пример цикла расчетов (горизонтальное направление, прямое преобразование, вертикальное аналогично, с изменениями в коэффициентах). for (i=0; i<len1; i+=2) { *lp = g0 * inp[i] + g1 * (inp[i-1] + inp[i+1]) + g2 * (inp[i-2] + inp[i+2]) + g3 * (inp[i-3] + inp[i+3]) + g4 * (inp[i-4] + inp[i+4]); *hp = h0 * inp[i+1] - H1 * (inp[i ] + inp[i+2]) + H2 * (inp[i-1] + inp[i+3]) - h3 * (inp[i-2] + inp[i+4]); lp++; hp++; } Здесь real g0 = 0.602949f; real g1 = 0.266864f; real g2 = -0.078223f; real g3 = -0.016864f; real g4 = 0.026749f; Коэффициенты для получения HЧ real h0 = 0.557543f; real H1 = 0.295636f; real H2 = -0.028772f; real h3 = -0.045636f Соответственно ВЧ. 2. Делается квантование, исходя из среднеквадратичного отклонения по блоку, вычисляемого сразу после получения болка. (что есть блок - а вот квадратик на вейвлет-преобразованном рисунке и есть; размер блока переменен и получается делением пополам...) СКО передается отдельно, в начале блока. 3. Таблица квантования предопределена (и вроде есть различные, для фотоизображений, для плакатов и общие...). При этом шаг квантования выбирается, исходя из желаемого числа бит на пиксел (от 8 до 0.03 - для truecolor, в первом случае качество идеально, вполне прилично до 1 бит на пиксел, а при 0.03 - явные дефекты - у очаровательной негритянки на тестовом снимке вырастает борода:) 4. В квантованном сигнале образуются цепочки нулей, которые кодируются РЛЕ, причем длина пробега в свою очередь кодируется Хаффманом, с предопределенной таблицей. (Предусмотрено использование двух вариантов таблиц). 5. Hенулевые элементы также кодируются Хаффманом, с другой таблицей. 6. Блоки передаются последовательно, в начале блока - признак его (включая ь таблицы), затем СКО, затем сжатая последовательность коэффициентов. Декодирование: 1. Разбор на блоки, получение СКО для блока и ь таблицы. 2. Декодирование Хаффманом и РЛЕ. 3. Обратный вейвлет. 4. Перевод в РГБ (опционально). До 30% времени 8-О. Т.е. настолько хорошо сделано! Аппаратно позволяет делать до 30 кадров 720*576 (или 486 - HТСЦ). Программно - увы... С уважением Евгений Машеров АКА СанитарЖеня --- ifmail v.2.15 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/3300f0a4da0b.html, оценка из 5, голосов 10
|