Декодирование JPEG с пониженным DCT
HotPDF декодирует низкоразрешённые цели DCTDecode без выделения растра полного разрешения
Выбор масштаба
Декодер выбирает наибольший поддерживаемый знаменатель обратного DCT из 8, 4, 2 и 1, при котором результат всё ещё покрывает запрошенную цель
Для изображений, чьи исходные размеры не кратны границам MCU, знаменатель равен 1 — так дополняющие краевые отсчёты не могут попасть в видимую обрезку
Ограниченный resampling
Box-ресемплер на fixed-point принимает по одной декодированной scanline за раз и пишет прямо в целевой bitmap точного размера
Рабочая память ограничена масштабированной шириной, сообщённой декодером, шириной цели и выходным bitmap, а не размерами исходного растра
Отмена проверяется внутри цикла по scanline, и все размеры результата остаются под бюджетом декодирования документа
Интеграция с renderer
DecodeLoadedImageRegionAtResolution и рендеринг страниц в низком разрешении автоматически используют этот путь для совместимых grayscale- и RGB-потоков JPEG
Тот же пониженный запрос и телеметрия проходят через границу codec worker, когда включена изоляция codec
Прямой декодер
THPDFJpegReducedDecoder открывает ограниченный декодер для вызывающего кода, у которого уже есть закодированные байты JPEG
GetLastJPEGReducedDecodeInfo сообщает о самом последнем запросе, выполненном через документ