СПОСОБ УПРАВЛЕНИЯ РАЗМЕРОМ ВЫХОДНОГО ФАЙЛА JPEG СЖАТИЯ ИЗОБРАЖЕНИЯ
METHOD OF CONTROLLING OUTPUT FILE SIZE FROM IMAGE JPEG COMPRESSION

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Данное изобретение, в общем, относится к области сжатия цифровых изображений, и, в частности, к управлению скоростью (RC) сжатия изображений согласно стандарту Объединенной экспертной группы по фотографии (JPEG).
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
JPEG является очень популярным стандартом сжатия изображений, но для большинства его широко известных реализаций характерен недостаток функциональных возможностей управления скоростью. Управление скоростью согласно стандарту JPEG является процессом конфигурирования внутренних параметров процесса JPEG сжатия таким образом, чтобы JPEG сжатие входного изображения приводило к созданию сжатого JPEG файла, имеющего определенный пользователем размер. Необходимость для создания сжатого JPEG файла, имеющего определенный пользователем размер, часто возникает во многих областях, например, когда изображение, отснятое камерой, сжимают в JPEG файл для сохранения на карте флэш-памяти с ограниченной емкостью или для передачи через сетевой канал с ограниченной пропускной способностью. Большинство известных реализаций JPEG с возможностью управления скоростью имеют недостатком чрезмерно высокую сложность или низкую точность управления скоростью.
Основной способ управления скоростью, предусмотренный стандартом сжатия изображений JPEG, относится к заданию таблиц квантования (QT), которые используются средством JPEG сжатия (JPEG компрессором) для квантования коэффициентов дискретного косинусного преобразования (DCT), применяемого к цветовым плоскостям входного изображения. Поскольку задачей управления скоростью является конфигурирование внутренних параметров JPEG сжатия таким образом, чтобы результатом процесса сжатия был файл, имеющий размер, в значительной степени близкий к определенному пользователем значению, упомянутую задачу обычно решают посредством генерации и использования набора подходящих QT.
Патент США 6192157 ("Modifications of postscript adaptive data compression (ADC) for 3 plane, 8 bit color images, JPEG lossy compression, and variable Q factors"), Hewlett-Packard, описывает способ JPEG сжатия изображения, приспособленный для создания выходных файлов, размер которых соответствует выходному буферу заранее заданного размера. Этот способ содержит переменный коэффициент Q, который является коэффициентом масштабирования для генерации масштабированной версии стандартной QT JPEG, и JPEG компрессор выполнен с возможностью увеличения коэффициента Q до уровня, достаточного для того, чтобы размер выходного JPEG файла соответствовал выходному буферу. Хотя этот способ обеспечивает достаточно точное управление размером выходного файла, он имеет недостатки, заключающиеся в высокой вычислительной сложности вследствие нескольких повторных сжатий, необходимых для нахождения подходящего коэффициента Q, и отсутствии улучшений качества восстановленного изображения, возможных посредством использования индивидуализированно генерируемых QT.
Патент США 7567722 ("Dynamically scaled file encoding"), Qualcomm Inc., описывает способ JPEG сжатия изображения, содержащий способ управления скоростью на основе двухпроходного процесса определения коэффициента масштабирования стандартных QT, который обеспечивает JPEG сжатие до заранее заданного размера файла. Доля ненулевых квантованных коэффициентов DCT используются для настройки начального коэффициента масштабирования. Хотя этот способ обеспечивает низкую вычислительную сложность и приемлемую точность управления скоростью, он не обеспечивает улучшения качества восстановленного изображения, по сравнению с JPEG сжатием, где используются масштабированные версии стандартных QT JPEG. Кроме того, его вычислительная сложность и точность управления скоростью могут быть дополнительно улучшены посредством использования сжатия прореженного изображения и модели предсказания с двумя параметрами вместо модели предсказания с единственным параметром.
Патент США 7574066 ("Method for image compression, related system and computer product therefor"), STMicroelectronics Ltd., описывает способ JPEG сжатия изображения, содержащий способ управления скоростью на основе итерационной корректировки коэффициента масштабирования стандартных QT JPEG для достижения заранее заданного размера выходного файла. Недостатками этого способа являются высокая вычислительная сложность и недостаточное качество восстановленного изображения.
Патент США 5724453 ("Image compression system and method having optimized quantization tables"), Wisconsin Alumni Research Foundation, описывает способ JPEG сжатия изображения, содержащий способ оптимизации по скорости-искажению (RDO) на основе методики динамического программирования (DP), причем этот способ обеспечивает как точное управление скоростью, так и улучшение качества восстановленного изображения посредством генерации RD-оптимальных QT. Хотя этот способ имеет хорошие рабочие характеристики в плане как вычислительной сложности, так и качества восстановленного изображения, для него характерен недостаток эффективной адаптивности к изображению, поскольку он использует среднюю энтропию квантованных коэффициентов DCT для оценки выходной битовой скорости (битрейта), что не является точным в общем случае.
Патент США 7567722 и патент США 5724453 могут рассматриваться в качестве ближайших аналогов для данной заявки.
Сущность изобретения
Целью настоящего изобретения является создание способа для конфигурирования внутренних параметров (в частности, таблиц квантования) процесса JPEG сжатия, с тем, чтобы JPEG сжатие входного изображения приводило к сжатому JPEG файлу, имеющему определенный пользователем размер.
Согласно первому аспекту настоящего изобретения, предложен способ управления скоростью (RC) в рамках JPEG сжатия цифрового изображения. Согласно способу RC, принимают коэффициенты дискретного косинусного преобразования (DCT), получаемые из применения прямого DCT к цифровому изображению. Затем, генерируют таблицы квантования (QT) с использованием принятых коэффициентов DCT посредством того, что, итерационно, оценивают коэффициент масштабирования для создания масштабированных QT, проверяют, является ли истинным первое условие завершения итераций, причем в первом условии завершения итераций задействованы переменные, связанные с коэффициентом масштабирования, и если упомянутое условие является ложным, то обновляют коэффициент масштабирования и упомянутые переменные.
Способ RC может дополнительно содержать, перед этапом генерации QT, этапы, на которых: собирают гистограммы DCT, причем этап сбора гистограмм DCT содержит, для каждой из цветовых плоскостей: подсчет количества появлений каждого значения коэффициента DCT для каждой субполосы DCT; и инициализацию целевого размера выходного файла для изображения, сжатого согласно JPEG, коэффициента масштабирования, граничных значений диапазона реактивного количества битов (первого количества битов), нижнего и верхнего допусков по реактивному количеству битов, граничных значений диапазона реактивного коэффициента масштабирования (первого диапазона коэффициента масштабирования), соответствующих граничным значениям диапазона реактивного количества битов, и параметра точности коэффициента масштабирования.
Этап оценки коэффициента масштабирования может содержать этапы, на которых: инициализируют граничные значения диапазона предиктивного количества битов (второго количества битов), нижний и верхний допуски по предиктивному количеству битов и граничные значения диапазона предиктивного коэффициента масштабирования (второго диапазона коэффициента масштабирования), соответствующих граничным значениям диапазона предиктивного количества битов; итерационно, масштабируют заранее заданные базовые QT на основе коэффициента масштабирования для получения масштабированных QT, вычисляют полное предиктивное количество битов в виде суммы предиктивных количеств битов, вычисленных по отдельности для каждой из цветовых плоскостей, причем предиктивные количества битов, являющихся результатом применения масштабированных QT к JPEG сжатию, получают посредством использования параметров моделей предсказания, проверяют, является ли истинным второе условие завершения итераций, причем второе условие завершения итераций является истинным, когда полное предиктивное количество битов попадает в пределы диапазона допуска по предиктивному количеству битов или ширина диапазона предиктивного коэффициента масштабирования становится меньше параметра точности коэффициента масштабирования, причем диапазон допуска по предиктивному количеству битов определяют на основе целевого размера выходного файла и нижнего и верхнего допусков по предиктивному количеству битов, и если второе условие завершения итераций является ложным, то обновляют граничные значения диапазона предиктивного количества битов, граничные значения диапазона предиктивного коэффициента масштабирования и коэффициент масштабирования на основе полного предиктивного количества битов с использованием метода ложного положения для нахождения корня.
Заранее заданные базовые QT предпочтительно представляют собой стандартные QT JPEG. Предиктивное количество битов для конкретной цветовой плоскости предпочтительно вычисляют с использованием полиномиальной модели предсказания на основе параметров модели предсказания и параметров предсказания для этой цветовой плоскости, причем параметры предсказания вычисляют с использованием квантованных коэффициентов DCT, полученных посредством квантования коэффициентов DCT с использованием масштабированных QT.
Способ RC может дополнительно содержать, после этапа оценки коэффициента масштабирования, квантование и подсчет битов посредством использования масштабированных QT в стандартных процессах квантования и энтропийного кодирования согласно JPEG, модифицированных таким образом, чтобы только подсчитывались биты, выводимые при энтропийном кодировании, без вывода сжатых данных. Подсчет битов выполняют отдельно для каждой из цветовых плоскостей, и в результате него получают набор фактических количеств битов цветовых плоскостей, причем подсчет битов дополнительно содержит: вычисление полного фактического количества битов посредством суммирования фактических количеств битов цветовых плоскостей для всех цветовых плоскостей. Первое условие завершения итераций является истинным, когда полное фактическое количество битов попадает в пределы диапазона допуска по реактивному количеству битов, или ширина диапазона реактивного коэффициента масштабирования становится меньше параметра точности коэффициента масштабирования, или количество итераций достигает заранее заданного максимального количества. Диапазон допуска по реактивному количеству битов определяют на основе целевого размера выходного файла и нижнего и верхнего допусков по реактивному количеству битов. На этапе обновления коэффициента масштабирования и связанных с ним переменных обновляют граничные значения диапазона реактивного количества битов, граничные значения диапазона реактивного коэффициента масштабирования и коэффициент масштабирования на основе полного фактического количества битов с использованием метода ложного положения для нахождения корня. При этом, способ RC дополнительно содержит, после этапа обновления коэффициента масштабирования и соответствующих переменных, этап, на котором: обновляют набор параметров модели предсказания для каждой цветовой плоскости с использованием набора фактических количеств битов цветовых плоскостей, масштабированных QT и гистограмм DCT; и, если каждый набор параметров модели предсказания обновлен, то масштабируют заранее заданные базовые QT на основе коэффициента масштабирования и возвращаются к этапу квантования и подсчета битов, иначе, возвращаются к этапу оценки коэффициента масштабирования.
Этап обновления параметров модели предсказания предпочтительно содержит этапы, на которых: вычисляют параметр предсказания для каждой из цветовых плоскостей с использованием масштабированных QT и гистограмм DCT; обновляют адаптационные аккумуляторы с использованием параметра предсказания и нормированного фактического количества битов цветовой плоскости для данной цветовой плоскости, причем предварительно адаптационные аккумуляторы инициализируются нулевыми значениями;
если система линейных уравнений, образованная из упомянутых адаптационных аккумуляторов, является совместной, то вычисляют параметры модели предсказания посредством решения упомянутой системы линейных уравнений, иначе, параметры модели предсказания не обновляют.
Способ RC может дополнительно содержать этапы, на которых: выбирают один из режимов функционирования RC, причем режимы функционирования RC содержат: быстрый режим, обеспечивающий наилучшую производительность; сбалансированный режим, обеспечивающий компромисс между производительностью и качеством изображения; и режим качества, обеспечивающий наилучшее качество изображения; вычисляют полное искажение, связанное с масштабированными QT, для каждой из цветовых плоскостей; вычисляют целевые количества битов цветовых плоскостей для каждой из цветовых плоскостей с использованием набора фактических количеств битов цветовых плоскостей.
Если выбран сбалансированный режим, то способ RC дополнительно содержит: выполнение оптимизации по скорости-искажению сбалансированного режима для генерации QT, оптимизированных по скорости-искажению (RDO QT), причем оптимизация по скорости-искажению сбалансированного режима содержит, для каждой из цветовых плоскостей, этапы, на которых: инициализируют записи RDO QT; вычисляют записи таблиц скорости-искажения (RD) с использованием гистограмм DCT и параметров модели предсказания, причем упомянутые записи зависят от переменного квантователя; определяют набор локально оптимальных квантователей с использованием записей RDO QT, записей таблиц RD и целевого количества битов цветовой плоскости, вычисленного для упомянутой цветовой плоскости; осуществляют поиск локально оптимальной субполосы DCT с использованием набора локально оптимальных квантователей для определения индекса i* локально оптимальной субполосы DCT; если локально оптимальная субполоса DCT существует, то выполняют обновление квантователя посредством установки i*-ой записи RDO QT равной i*-ому локально оптимальному квантователю, и возвращаются к этапу определения множества локально оптимальных квантователей.
Если выбран режим качества, то способ RC дополнительно содержит: выполнение оптимизации по скорости-искажению режима качества для генерации RDO QT, причем оптимизация по скорости-искажению режима качества содержит, для каждой из цветовых плоскостей, этапы, на которых: вычисляют записи таблиц RD с использованием гистограмм DCT и параметров модели предсказания, причем упомянутые записи зависят от переменного квантователя; итерационно, вычисляют записи таблиц оптимальных квантователя-скорости-искажения (RDQ) с использованием таблиц RD; инициализируют итерации получения квантователя на основе записей таблиц RDQ и целевого количества битов цветовой плоскости, вычисленного для упомянутой цветовой плоскости; выполняют итерации получения квантователя с использованием записей таблиц RDQ для создания RDO QT.
Способ RC может дополнительно содержать этапы, на которых: вычисляют полное искажение, связанное с RDO QT; выполняют подсчет битов путем использования RDO QT в процессах стандартного квантования и энтропийного кодирования согласно JPEG, модифицированных таким образом, чтобы только подсчитывались биты, выводимые при энтропийном кодировании, без вывода сжатых данных, причем подсчет битов выполняют отдельно для каждой из цветовых плоскостей, и в результате него получают фактические количества битов, причем подсчет битов дополнительно содержит этапы, на которых: вычисляют окончательное фактическое количество битов посредством суммирования фактических количеств битов для всех цветовых плоскостей, если полное искажение, связанное с RDO QT, является меньшим, чем полное искажение, связанное с масштабированными QT, и окончательное полное фактическое количество битов попадает в пределы диапазона допуска по окончательному количеству битов, причем диапазон допуска по окончательному количеству битов определяют на основе целевого размера выходного файла и заранее заданных допусков по окончательному количеству битов, то тогда выводят RDO QT в качестве сгенерированных QT, иначе, выводят масштабированные QT в качестве сгенерированных QT.
Согласно второму аспекту данного изобретения, предложен машиночитаемый носитель информации, на котором сохранены машиноисполняемые команды. Машиноисполняемые команды, хранящиеся на машиночитаемом носителе информации, при их исполнении процессором, предписывают процессору выполнять способ RC согласно первому аспекту данного изобретения.
Согласно третьему аспекту данного изобретения, предложено устройство для выполнения RC в JPEG сжатии цифрового изображения. Это устройство содержит: один или несколько процессоров; и память, в которой сохранены машиноисполняемые команды. Машиноисполняемые команды, хранящиеся в памяти, при их исполнении одним или несколькими процессорами, предписывают одному или нескольким процессорам выполнять способ RC согласно первому аспекту данного изобретения.
Согласно четвертому аспекту данного изобретения, предложен способ JPEG сжатия цифрового изображения. Упомянутый способ содержит этапы, на которых: выполняют преобразование цветового пространства и прямое DCT; выполняют способ согласно первому аспекту данного изобретения; выполняют квантование; выполняют энтропийное кодирование; и выводят сжатый JPEG файл.
В отличие от способов предшествующего уровня техники, настоящее изобретение обеспечивает оптимальную комбинацию низкой вычислительной сложности, хорошей точности управления скоростью и, при использовании режимов улучшения качества, заметного улучшения качества восстановленного изображения.
Краткое описание чертежей
Фиг. 1 - последовательность операций JPEG сжатия с возможностью RC;
Фиг. 2 - последовательность операций процесса управления скоростью;
Фиг. 3 - последовательность операций адаптации предиктора количества битов;
Фиг. 4 - последовательность операций оценки предиктивного коэффициента масштабирования;
Фиг. 5 - последовательность операций вычисления предиктивного количества битов;
Фиг. 6 - последовательность операций обновления модели предсказания;
Фиг. 7 - последовательность операций функционирования RDO сбалансированного режима для одной цветовой плоскости;
Фиг. 8 - последовательность операций функционирования RDO режима качества для одной цветовой плоскости;
Фиг. 9 - блок-схема, иллюстрирующая устройство согласно варианту осуществления данного изобретения.
Подробное описание вариантов осуществления
Способ управления размером выходного файла JPEG сжатия изображения показан на фиг. 1. Входное цифровое изображение, созданное, например, посредством цифровой камеры или устройства сканирования документов, подвергают преобразованию цветового пространства (например, преобразованию RGB-B-YCbCr, при необходимости) и прямому DCT (101). Результирующие коэффициенты DCT обрабатывают посредством процесса (102) управления скоростью, который выводит набор QT (одну QT на цветовую плоскость). Процесс управления скоростью является новым способом, который отвечает существу данного изобретения. Целью процесса управления скоростью является генерация набора QT таким образом, чтобы JPEG сжатие, где этот набор QT должен использоваться, создавало выходной файл, сжатый согласно JPEG, имеющий размер файла, в значительной степени близкий к определенному пользователем значению. Выходной набор QT используют в квантовании (103) для создания квантованных коэффициентов DCT, в отношении которых затем выполняют энтропийное кодирование (104) для создания выходного сжатого JPEG файла для его, например, сохранения на флэш-карте с ограниченной емкостью памяти или передачи через сетевой канал с ограниченной пропускной способностью.
Процесс (102) управления скоростью показан на фиг. 2. Сначала, при адаптации (201) предиктора количества битов выполняют адаптацию предиктора количества битов с использованием коэффициентов DCT и выводят набор масштабированных QT и набор параметров модели предсказания. Затем, выполняют переключение режима функционирования RC: если пользователем выбран быстрый режим функционирования RC, то выводят набор масштабированных QT, созданных на этапе 201. Поскольку набор масштабированных QT генерируется на этапе 201 таким образом, чтобы JPEG сжатие, где используется этот набор QT, создавало выходной сжатый JPEG файл, имеющий размер файла, в значительной степени близкий к определенному пользователем значению, цель управления скоростью достигается посредством вывода упомянутого набора QT. Иначе, если пользователем выбран один из двух режимов RDO функционирования RC, то выполняют вычисление полного искажения, связанного с масштабированными QT (202), и вычисленное полное искажение в дальнейшем сравнивается с полным искажением, связанным с RDO QT. Затем, выполняют распределение квоты битов среди цветовых плоскостей (203) для определения целевого количества битов для каждой из цветовых плоскостей, которое вводится в последующий процесс RDO. После этого, выполняют переключение режима RDO: в зависимости от пользовательского выбора, выполняют либо RDO (204) сбалансированного режима, либо RDO (205) режима качества. Процессы RDO сбалансированного режима и RDO режима качества оба используют набор параметров модели предсказания с этапа 201. Выходом процесса RDO любого режима является набор RDO QT, которые используются в подсчете битов и вычислении полного искажения с использованием RDO QT (206). Полученные на этапе 206 окончательное фактическое количество битов и полное искажение, связанные с RDO QT, сравниваются, соответственно, с диапазоном допуска по окончательному количеству битов и полным искажением, связанным с масштабированными QT (полученными на этапе 202). Если окончательное фактическое количество битов, связанное с RDO QT, попадает в пределы диапазона допуска по окончательному количеству битов и полное искажение, связанное с RDO QT, меньше полного искажения, связанного с масштабированными QT, то тогда выводят набор RDO QT. Иначе, выводят набор масштабированных QT, созданных на этапе 201. Поскольку оба процесса двух режимов RDO разработаны для генерации набора QT таким образом, чтобы JPEG сжатие, где используется этот набор QT, создавало выходной JPEG сжатый файл, имеющий размер файла, в значительной степени близкий к определенному пользователем значению, цель управления скоростью достигается посредством вывода упомянутых QT, в то время как сравнение полных искажений после этапа 20 6 приводит к выводу набора QT, которое обеспечивает наилучшее качество последующего JPEG сжатия.
Подробное описание процесса (102) управления скоростью приведено ниже.
Адаптацию (201) предиктора количества битов используют для обработки коэффициентов DCT и вывода набора масштабированных QT и набора параметров модели предсказания. Адаптация предиктора количества битов является критически важной для достижения сочетания низкой вычислительной сложности и хорошей точности управления скоростью. Масштабированная QT является, предпочтительно, масштабированной версией некоторой базовой QT, например, одной из стандартных QT JPEG, приведенных в Приложении К спецификации JPEG ISO/IEC JTC1 10918-1:
min
max
min
max
где i является индексом субполосы DCT, S является коэффициентом масштабирования, Q=1, Q=255 для базового JPEG сжатия или 65535 для расширенного JPEG сжатия,  является значением квантователя для i-ой субполосы DCT в базовой QT, и clip (х, x, x) определена следующим образом:
Адаптация (201) предиктора количества битов показана на фиг. 3. При сборе (301) гистограмм DCT подсчитывают количество появлений каждого значения коэффициента DCT для каждой субполосы DCT для каждой цветовой плоскости, чтобы выполнить сбор гистограмм DCT :
c
s
max
max
10
где i является индексом субполосы DCT, k является индексом цветовой плоскости, j является индексом блока DCT 8×8,  является значением коэффициента i-ой субполосы DCT j-ого блока DCT 8×8 k-ой цветовой плоскости,  является количеством блоков DCT 8×8 в k-ой цветовой плоскости, N является количеством цветовых плоскостей во входном изображении, q является конфигурируемым параметром точности коэффициента DCT, s является значением коэффициента DCT, дискретизованным с точностью , T является максимальным значением коэффициента DCT, зависящим от формата данных входного изображения (например, T=2 для 8-битных данных элемента изображения входного изображения), и [х] определяется как целое значение, ближайшее к х. Затем, гистограммы DCT используются по всему процессу управления скоростью.
При инициализации (302) реактивного контекста устанавливают начальные значения переменных и констант реактивного контекста:
t
m
- B является полным целевым количеством битов, задаваемым в качестве определенного пользователем требующегося размера JPEG файла в битах, за вычетом количества B маркерных битов JPEG;
RL
RU
min
max
- B и B являются, соответственно, нижней и верхней границей диапазона реактивного количества битов (которые инициализируются, соответственно, минимальным количеством битов B и максимальным количеством битов B);
RL
RU
- ε и ε являются, соответственно, нижним допуском по реактивному количеству битов и верхним допуском по реактивному количеству битов (например, инициализация в 0,01 и 0,01 соответствует точности реактивного количества битов, равной 1%);
- S является текущим коэффициентом масштабирования, используемым для масштабирования базовых QT (который, предпочтительно, инициализируется в 100);
RL
RU
RL
RU
- S и S являются, соответственно, нижней границей и верхней границей диапазона реактивного коэффициента масштабирования, соответствующими B и B;
- ΔS является параметром точности коэффициента масштабирования.
Реактивный контекст далее используется по всей адаптации предиктора количества битов.
При оценке (303) предиктивного коэффициента масштабирования оценивают значение коэффициента масштабирования с использованием способа, показанного на фиг. 4. При инициализация (401) предиктивного контекста устанавливают начальные значения переменных и констант предиктивного контекста:
PL
PU
RL
RU
- B и B являются, соответственно, нижней и верхней границей диапазона предиктивного количества битов (которые инициализируются в B и B);
PL
PU
- ε и ε являются, соответственно, нижним допуском по предиктивному количеству битов и верхним допуском по предиктивному количеству битов (например, их инициализация в 0,01 и 0,01 соответствует точности предиктивного количества битов, равной 1%);
PL
PU
PL
PU
RL
RU
- S и S являются, соответственно, нижней границей и верхней границей диапазона предиктивного коэффициента масштабирования, соответствующим B и B (которые, предпочтительно, инициализируются в S и S, соответственно);
t
- B, S и ΔS совместно используются как реактивным, так и предиктивным контекстами, так что их значения не изменяются.
Предиктивный контекст затем используется по всей оценке предиктивного коэффициента масштабирования.
При масштабировании базовых QT (402) создают набор масштабированных QT согласно уравнению (1) с использованием текущего коэффициента масштабирования S. Вычислением предиктивного количества битов (403) предсказывается количество битов, получаемое при использовании набора масштабированных QT с этапа 402 в JPEG сжатии, где используются текущие параметры моделей предсказания. Процесс предсказания показан на фиг. 5.
(k)
(k)
Вычисление параметров предсказания (501) выдает параметры предсказания для всех цветовых плоскостей. Параметр предсказания для k-ой цветовой плоскости может быть либо 1-ρ, либо усредненной по коэффициентам энтропией . Параметр ρ определяется как доля квантованных коэффициентов DCT с нулевыми значениями и вычисляется для всех цветовых плоскостей с использованием следующей формулы:
где  является значением квантователя i-ой субполосы DCT для k-ой цветовой плоскости.
Усредненная по коэффициентам энтропия  определяется как среднее значение всех энтропий субполосы DCT квантованных коэффициентов DCT и вычисляется для всех цветовых плоскостей с использованием следующей формулы:
где z является значением квантованного коэффициента DCT.
Вычисление выходов моделей предсказания (502) использует параметры предсказания для вычисления предиктивного количества битов  для всех цветовых плоскостей с использованием полиномиальной модели предсказания:
(k)
(k)
m
р
где Р является параметром предсказания для k-ой цветовой плоскости (который является либо 1-ρ, либо,  вычисленным с использованием уравнения (4) или (5), соответственно), m является индексом параметра модели предсказания,  является m-ым параметром модели предсказания для k-ой цветовой плоскости, и N является количеством параметров модели предсказания. Суммирование всех выходов моделей предсказания (503) создает полное предиктивное количество битов В для всех цветовых плоскостей:
t
PL
p
PU
PU
PL
р
PL
PU
PL
PU
Если полное предиктивное количество битов попадает в пределы диапазона допуска по предиктивному количеству битов, а именно, B(1-ε)≤B≤Bt(1+ε), или ширина диапазона предиктивного коэффициента масштабирования становится меньше параметра точности коэффициента масштабирования, а именно, |S-S|<ΔS, то тогда выдают набор масштабированных QT , полученный масштабированием базовых QT с использованием текущего коэффициента масштабирования S. Иначе, при обновлении (404) предиктивного коэффициента масштабирования используют полное предиктивное количество битов В для обновления переменных предиктивного контекста S, S, B, и B и текущего коэффициента масштабирования S с использованием метода ложного положения для нахождения корня посредством следующей формулы:
После этапа 404, процесс повторяют, начиная с этапа 402, пока не будет выполнено приведенное выше условие вывода.
а
После этапа 303 выполняют квантование и подсчет битов (304) с использованием стандартных процессов квантования и энтропийного кодирования JPEG, модифицированных таким образом, чтобы только подсчитанные биты выводились при энтропийном кодировании (без вывода сжатых данных). Подсчет битов выполняют по отдельности для каждой из цветовых плоскостей, и в результате него формируется набор фактических количеств битов цветовых плоскостей ; затем, суммирование всех фактических количеств битов цветовых плоскостей дает полное фактическое количество битов В:
а
RL
а
t
RU
RU
RL
iter
max
а
RL
RU
RL
RU
Если полное фактическое количество битов В с этапа 304 попадает в пределы диапазона допуска по реактивному количеству битов, а именно, Bt(1-ε)≤В≤B(1+ε), или ширина диапазона реактивного коэффициента масштабирования становится меньше параметра точности коэффициента масштабирования, а именно, |S-S|<ΔS, или количество итераций N для квантования и подсчета битов (304) достигает заранее заданного максимального количества итераций N, то тогда выводят набор масштабированных QT , полученный масштабированием базовых QT с использованием текущего коэффициента масштабирования S, и набор параметров модели предсказания . Иначе, при обновлении (305) реактивного коэффициента масштабирования используют полное фактическое количество битов Вдля обновления переменных реактивного контекста S, S, B и Bи текущего коэффициента масштабирования S с использованием метода ложного положения для нахождения корня посредством следующей формулы:
(k)
(k)
При обновлении (306) моделей предсказания используется набор фактических количеств битов цветовых плоскостей, полученных на этапе 304, для обновления параметров модели предсказания для каждой цветовой плоскости с использованием способа, показанного на фиг. 6 для одной цветовой плоскости. При вычислении (601) параметров предсказания используется текущая масштабированная QT  и набор гистограмм DCT  для вычисления параметра предсказания Р (который является либо 1-ρ, либо , вычисленным с использованием уравнения (4) или (5), соответственно).
При обновлении (602) адаптационных аккумуляторов используется параметр предсказания и нормированное фактическое количество битов цветовой плоскости  (где  является количеством пикселей в k-ой цветовой плоскости) для обновления адаптационных аккумуляторов  и  с использованием следующей формулы:
Как видно из вышесказанного, адаптационные аккумуляторы, по сути, представляют собой наборы переменных (см. соотношение (11)), каковые переменные аккумулируют (т.е. содержат сумму) значений других параметров и используются для адаптации.
Все адаптационные аккумуляторы инициализируются нулем в начале этапа 201. Адаптационные аккумуляторы используются для построения адаптационной системы линейных уравнений (SLE):
где m является индексом уравнения, и l является индексом неизвестной переменной . Если адаптационная SLE, определяемая уравнением (12), является несовместной, т.е. определитель матрицы , определяемый как , равен нулю, то тогда этап обновления модели предсказания для k-ой цветовой плоскости завершают без обновления параметров модели предсказания. Иначе, вычисление параметров модели предсказания (603) выполняют посредством решения адаптационной SLE в отношении набора параметров модели предсказания , например, посредством метода на основе разложения Холецкого.
c
После этапа 306, если все модели предсказания изменены, а именно, каждый набор параметров модели предсказания  для k=1, …, N обновлен на этапе 306, то тогда процесс повторяют, начиная с этапа 303. Иначе, масштабированием базовых QT (307) создается набор масштабированных QT согласно уравнению (1) с использованием текущего коэффициента масштабирования S. После этапа 307 процесс повторяют, начиная с этапа 304. В другом варианте осуществления, переход к этапу 303 после этапа 306 выполняют, если по меньшей мере одна из моделей предсказания изменена.
MCU
MCU
В другом варианте осуществления, для улучшения вычислительной производительности адаптации (201) предиктора количества битов, сбор (301) гистограмм DCT и квантование и подсчет битов (304) могут быть выполнены не для всей цветовой плоскости, а для доли ƒ всех минимальных кодированных блоков (MCU), выбираемых случайным образом с использованием равномерного распределения по области цветовой плоскости. В этом случае, значения Bt,  и , используемые по всей адаптации предиктора количества битов (этап 201), умножают на ƒ.
После адаптации (201) предиктора количества битов задают следующие три режима функционирования RC: быстрый режим, сбалансированный режим и режим качества. Пользователь компрессора JPEG с возможностью RC отвечает за выбор подходящего режима функционирования RC.
Быстрый режим функционирования RC обеспечивает набор масштабированных QT, получаемый на этапе 201.
Если выбран либо режим качества, либо сбалансированный режим функционирования RC, то данный способ приступает к следующим этапам.
Вычисление полного искажения, связанного с масштабированными QT (202), выполняют с использованием следующей формулы:
При распределении квоты битов среди цветовых плоскостей (203) используют набор фактических количеств битов цветовой плоскости , получаемых посредством квантования и подсчета битов (304) для последней итерации адаптации (201) предиктора количества битов, чтобы вычислить целевое количество битов цветовой плоскости  для k-ой цветовой плоскости с использованием следующей формулы:
гдеявляется долей количества битов для цветоразностных плоскостей.
После этапа 203, запускают одну из двух операций RDO в зависимости от выбора режима функционирования RC: RDO (204) сбалансированного режима или RDO (205) режима качества.
Если выбран сбалансированный режим функционирования RC, то выполняют RDO (204) сбалансированного режима отдельно для каждой цветовой плоскости. Процесс RDO сбалансированного режима для одной цветовой плоскости показан на фиг. 7.
m
Количество N параметров модели предсказания должно быть установлено равным 2 для сбалансированного режима функционирования RC. Инициализация (701) RDO QT устанавливает начальные значения записей RDO QT  с использованием следующей формулы:
RDO
где S является начальным коэффициентом масштабирования RDO. При заполнении таблиц RD (702) используют гистограммы DCT  и параметры модели предсказания  для вычисления  и  таблиц скорости-искажения (RD) с использованием следующей формулы:
(k)
где q является переменным квантователем,  является параметром предсказания для i-ой субполосы DCT для k-ой цветовой плоскости (который является либо 1-ρ, либо , вычисленным с использованием уравнения (4) или (5), где  заменяется на q),  и  являются минимальным и максимальным значениями квантователя для сбалансированного режима функционирования RC, и max(х, у) определяется как максимальное значение среди х и у.
Поиск локально оптимальных квантователей (703) определяет набор локально оптимальных квантователей  с использованием следующей формулы:
Следует отметить, что набор локально оптимальных квантователей может быть пустым, если не может быть выполнено ограничение  в уравнении (17).
Поиск локально оптимальной субполосы DCT (704) определяет индекс i* локально оптимальной субполосы DCT с использованием выходных данных этапа 703, на основе следующей формулы:
Если не существует локально оптимальной субполосы DCT, то тогда выводят текущие RDO QT . Иначе, выполняют обновление (705) квантователя посредством установки  равным .
После этапа 705 процесс повторяют, начиная с этапа 703, пока не будет выполнено приведенное выше условие вывода.
Если выбран режим качества функционирования RC, то RDO (205) режима качества выполняют по отдельности для каждой цветовой плоскости. Процесс RDO режима качества для одной цветовой плоскости показан на фиг. 8.
m
Количество N параметров модели предсказания должно быть установлено равным 2 для режима качества функционирования RC. Заполнение таблиц RD (801) выполняется таким же образом, как на этапе 702, но с использованием других минимального и максимального значений квантователя  и , вместо  и .
При заполнении таблиц оптимальных RDQ (802) используются таблицы RD для итерационного вычисления записей ,  и  из таблиц оптимального квантователя-скорости-искажения (RDQ), причем в каждой итерации используют следующую формулу:
R
где b является индексом шага дискретизации количества битов, N является количеством шагов дискретизации количества битов, ΔB является шириной шага дискретизации количества битов, определяемой в виде , и  определяется как наибольшее целое значение, меньшее х.
Итерации начинаются с i=0 и переходят к вычислению записей таблиц оптимальных RDQ для индекса i с использованием значений записей для индекса i-1 на основе уравнения (19).
Инициализация получения квантователя (803) инициализирует итерации получения квантователя путем установки индекса i квантователя равным 63 и установки индекса  и накопленного количества битов  с использованием следующей формулы:
Итерацию (804) получения квантователя продолжают с использованием следующего этапа итерации:
Если после этапа 804 RDO QT полностью получена, а именно, индекс квантователя i достигает -1, то тогда выводят полученные RDO QT . Иначе, процесс повторяют, начиная с этапа 804, пока не будет выполнено приведенное выше условие вывода.
После операции RDO (204 или 205) выполняют подсчет битов и вычисление полного искажения с использованием RDO QT (206). Подсчет битов выполняют таким же образом, как на этапе 304, но с использованием RDO QT вместо масштабированных QT. Полное искажение, связанное с RDO QT, вычисляют с использованием следующей формулы:
а
FL
а
FU
RDO
scaled
Если полное (окончательное) фактическое количество битов Виз этапа 206 попадает в пределы диапазона допуска по окончательному количеству битов, а именно, Bt(1-ε)≤В≤Bt(1+ε), и полное искажение, связанное с RDO QT, является меньшим, чем полное искажение, связанное с масштабированными QT, а именно, D<D, то тогда выводят набор RDO QT
FL
FU
. Иначе, выводят набор масштабированных QT . Допуски по окончательному количеству битов ε и ε выбираются согласно пользовательским требованиям для точности способа RC: например, установка их равными 0,1 и 0,1 соответствует точности окончательного количества битов, равной 10%.
c
В варианте осуществления, где необходима улучшенная вычислительная производительность процесса (102) управления скоростью, все операции, включающие в себя обработку цветоразностных цветовых плоскостей (Cb и Cr), могут быть выполнены с использованием комбинированного способа. Это выполняется посредством установки N равным 2 (а не 3) для цветного изображения и обработки данных Cb и Cr совместно при сборе (301) гистограмм DCT и квантовании и подсчете битов (304). Выходными данными операции процесса (102) управления скоростью для комбинированной цветоразностной цветовой плоскости является QT, которая используется для квантования как цветовой плоскости Cb, так и цветовой плоскости Cr во время квантования (103).
Согласно предпочтительному варианту осуществления данного изобретения, задаются следующие значения для вышеупомянутых параметров способа:
- набор базовых QT является набором стандартных QT JPEG, заданным в Приложении К спецификации стандарта JPEG
s
- q=1
max
10
- T=2 для 8-битных данных пиксела входного изображения
m
- B=5000 для JPEG сжатия, где не используется оптимизация с помощью таблицы Хаффмана
m
- B=3000 для JPEG сжатия, где используется оптимизация с помощью таблицы Хаффмана
min
max
- B=0, B=максимальному значению с плавающей точкой, поддерживаемому системой, исполняющей способ
FL
FU
- ε=0,1, ε=0,1 для точности окончательного количества битов, равной 10%
RL
FL
RU
FU
- ε=ε, ε=ε для быстрого режима функционирования RC
RL
RU
- ε=0,01, ε=0,01 для сбалансированного режима функционирования RC и режима качества функционирования RC
RL
RU
- S=2600, S=0
- ΔS=1
PL
PU
- ε=0,01, ε=0,01
(k)
- параметром предсказания является 1-ρ
m
- N=2 (линейная модель предсказания)
- начальные значения параметров модели предсказания:
- для цветовой плоскости Y
- для цветовой плоскости Cb
- для цветовой плоскости Cr
max
- N=4 для быстрого режима функционирования RC
max
- N=8 для сбалансированного режима функционирования RC и режима качества функционирования RC
RDO
- S=2
- =1, =255
- =1, =255
R
- N=1000
MCU
- ƒ=0.5 для быстрого режима функционирования RC
MCU
- ƒ=1 для сбалансированного режима функционирования RC и режима качества функционирования RC
- комбинированный метод для цветоразностных цветовых плоскостей.
Описанный способ может быть реализован в виде компонента любого компрессора JPEG, соответствующего стандарту базового профиля JPEG, для обеспечения как управления скоростью JPEG сжатия, так и улучшения качества восстановленного изображения. Аппаратные платформы, подходящие для реализации описанного способа, включают в себя, но не в ограничительном смысле: персональный компьютер, облачный сервер, мобильный телефон, цифровую камеру, устройство сканирования документов, цифровое копировальное устройство, многофункциональный принтер и т.д.
Вариант осуществления устройства, выполненного с возможностью реализации технологии RC согласно данному изобретению, показан со ссылкой на фиг. 9.
Устройство 900 включает в себя по меньшей мере блок 910 обработки данных и память 920, коммуникационно связанную с блоком 910 обработки данных.
Блок 910 обработки данных может содержать один или несколько известных процессоров (CPU), контроллеров, ASIC и т.д. Память 920 может содержать различные известные энергозависимые машиночитаемые запоминающие устройства и носители (например, различные виды RAM) и энергонезависимые машиночитаемые запоминающие устройства и носители(например, различные виды ROM, оптические среды (CD, DVD), HDD, флэш-накопители и т.д.).
Технология RC, подробно описанная выше, предпочтительно реализуется в виде программного обеспечения, аппаратно-программного обеспечения (firmware), которое записано в виде машиноисполняемых команд в машиночитаемых запоминающих устройствах и носителях, образующих память 920. Это программное обеспечение может быть спроектировано и разработано с использованием любой подходящей технологии и инфраструктуры.
Машиноисполняемые команды, при считывании посредством блока 910 обработки данных из памяти 920 и их исполнении блоком 910 обработки данных, предписывают устройству 900 выполнять способ RC согласно данному изобретению, описанный со ссылкой на фиг. 1-8.
Устройство 900 может содержаться в персональном компьютере, облачном сервере, мобильном телефоне, цифровой камере, устройстве сканирования документов, цифровом копировальном устройстве, многофункциональном принтере и т.д.
В иллюстративном варианте осуществления отвечающего изобретению способа RC в мобильном телефоне, содержащем устройство, описанное выше со ссылкой на фиг. 10, сначала захватывают цифровое изображение с использованием камеры мобильного телефона, затем оно подается в упомянутое устройство вместе с определенным пользователем размером файла и режимом функционирования RC и обрабатывается для генерации набора QT, который затем используется в JPEG сжатии изображения для создания JPEG сжатого файла, имеющего определенный пользователем размер. JPEG сжатый файл может быть, например, загружен позже в социальную сеть, где налагаются жесткие ограничения на размер JPEG файла.
Одним возможным применением является генерация JPEG сжатых изображений, подходящих для выкладывания в социальные сети, такие как Facebook, Google+, MySpace, Twitter и т.д., которые налагают жесткие ограничения на размер файла изображения. Другим возможным применением является генерация видеопотока, сжатого согласно стандарту Motion JPEG, подходящего для передачи по сетевому каналу, имеющему ограниченную пропускную способность.
Следует понимать, что показанные варианты осуществления являются только предпочтительными, но не единственными возможными примерами данного изобретения. Напротив, объем изобретения определяется нижеследующей формулой изобретения и ее эквивалентами.