Преобразование блоков RGB в изображения в JPEG-декодере
Я пытаюсь разработать простой JPEG-декодер в MATLAB. Я беру изображение.jpg и затем декодирую заголовки этого изображения. Затем декодируйте данные сканирования после заголовка SOS и создайте блоки по 64 пикселя.
(Порядок моих данных сканирования декодирования: декодирование Хаффмана, Деквантование, Де-зигзаг, Инверсия DCT, сдвиг уровня, Зажим и Преобразование из Ycbcr в RGB.)
Я уже думаю, что процесс описанного выше декодирования был корректным. Я сделал это для каждого блока с 64 пикселями, а также определил эффект суб-выборки для блока. Теперь у меня есть структура ниже для каналов Y, а также каналов Cb и Cr:(предположим, у меня есть подвыборка с коэффициентом 2 для каналов Cb и Cr)
[16 * 16 пикселей], [16*16 пикселей], [16*16 пикселей], [16*16 пикселей], [16*16 пикселей],... ..., [16*16 пикселей], [16*16 пикселей] .
длина массива вышеуказанных блоков равна imageWidth*imageLength/256 (предположим, что он делится)
теперь мой вопрос заключается в следующем: как я могу восстановить целое изображение из вышеуказанных блоков, другими словами, как я должен отсортировать и упорядочить вышеуказанные блоки, чтобы получить целое декодированное изображение?