Вы МОЖЕТЕ сжать, как говорите, но это не будет JPEG. Процесс кодирования довольно сложен в JPEG. Это не совсем кодировка значений Хаффмана. Это кодирование Хаффманом инструкций при нулевых запусках и число дополнительных необработанных битов, которые необходимо прочитать.
1) Необходимо ли выполнять как кодирование длины пробега, так и Хаффмана, или просто Хаффмана для всего изображения (которое является серой шкалой).
Чтобы это был поток JPEG, вам нужно сделать оба.
2) 2) Если я использую кодирование длины серии для каждого блока, то Хаффман также предназначен для каждого блока 8x8, или мне приходится сканировать все изображение целиком.
Некоторые кодировщики делают это для генерации оптимальных таблиц Хаффмана.
3) В книге говорится, что мы могли бы просто использовать Таблицу K.3 и Таблицу K.5 в Приложении K для кодирования коэффициентов постоянного и переменного тока. Могу ли я не использовать эти таблицы и генерировать свои собственные, основываясь на теории в вопросе 2, которую я тоже запутал.
Некоторые кодировщики делают это, чтобы не делать два прохода по данным DCT для генерации таблиц Хаффмана.