Вано 0 9 февраля, 2007 Опубликовано 9 февраля, 2007 (изменено) · Жалоба Путем изучения алгоритмов сжатия без потерь(Хаффмана и Арифметического) и проектов, где они рельно применяются. Я пришел к выводу что RGB поток данных сначала подвергаеется DCT ( Discrete Cosine Transform) и квантизации , а потом уже кодируется кодеками Хаффманом или Арифметическим. Правильно ли я думаю, что это связано с трудностью быстрого построения частотных таблиц, а так же ограничивает входной алфавит для кодирования Хаффманом. Т.е DCT делается перед применением кодера, т.к. упорядочивает поток данных? Если же просто кодировать поток данных , например, который поступает в буфер на 256 мест, затем надо строить таблицу частот, тогда вопрос как быстро отсортировать этот буфер, чтобы построить бинарное дерево? Ведь потребуется как минимум 128 циклов пересылок? Изменено 9 февраля, 2007 пользователем Вано Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 22 9 февраля, 2007 Опубликовано 9 февраля, 2007 (изменено) · Жалоба Путем изучения алгоритмов сжатия без потерь(Хаффмана и Арифметического) и проектов, где они рельно применяются. Я пришел к выводу что RGB поток данных сначала подвергаеется DCT ( Discrete Cosine Transform) и квантизации , а потом уже кодируется кодеками Хаффманом или Арифметическим. Плохо изучали.. В алгоритме сжатия без потерь JPEG преобразование DCT не применяется. См. ISO/IEC10918-1 стр.15 пп 4.4 и рис. 7. Правильно ли я думаю, что это связано с трудностью быстрого построения частотных таблиц для кодирования Хаффманом. Т.е DCT делается перед применением кодера, т.к. упорядочивает поток данных? Не правильно.. DCT позволяет сгруппировать энергию блока пикселов вблизи пространственных частот, близких к нулю, после чего линейное квантование позволяет достичь высокой компрессии при относительно небольших искажениях картинки в целом. Изменено 9 февраля, 2007 пользователем blackfin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться