СИСТЕМА И СПОСОБ СЖАТИЯ ИЗОБРАЖЕНИЯ
IMAGE COMPRESSION SYSTEM AND METHOD

Область техники, к которой относится изобретение
Настоящее изобретение относится к системам и способам сжатия изображения, в частности к уменьшению объема данных, используемых для представления изображений.
Уровень техники
Формирование цифровых изображений может создавать цифровые изображения, как правило, с физического объекта. Цифровое изображение может быть создано непосредственно с физической сцены посредством камеры или подобных устройств. Альтернативно, цифровое изображение может быть получено из другого изображения на аналоговом носителе, таком как фотографии, фотографическая пленка или печатный документ, и может быть преобразовано в форму цифрового носителя посредством сканера или подобного устройства. Многие технические изображения, такие как полученные при помощи такого топографического оборудования, как устройства для сканирования компьютерной томографии (CT), радиолокационная станция бокового обзора или радиотелескопы, получаются посредством сложной обработки не относящихся к изображению данных. Наконец, цифровое изображение также может быть вычислено при помощи геометрической модели или математической формулы.
Цифровое изображение может включать в себя пикселы. Пиксел может являться наименьшей информационной составляющей в изображении. Обычно пикселы располагаются в двухмерной решетке с регулярной структурой и зачастую представляются с использованием точек, квадратов или прямоугольников. Каждый пиксел может иметь значение, которое представляет свойство образца исходного изображения. Как правило, увеличение плотности пикселов или образцов обеспечивает более высокое разрешение или более точное представление исходного изображения. Интенсивность каждого пиксела может быть переменной. В системах цветного телевидения каждый пиксел может иметь три или четыре цветовых компонента, таких как красный, зеленый и синий или голубой, малиновый, желтый и черный.
Разрешение изображения может оценивать качество изображения. Разрешение изображения может быть описано посредством размеров пиксела в цифровом изображении. Изображение, которое имеет размеры в целое число N пикселов в высоту на целое число М пикселов в ширину, может иметь любое разрешение, меньшее или равное NxM пикселов (охватывающее N линий в высоту изображения или линий N ТВ). Другое общепринятое правило описывает разрешение, как общее число пикселов в изображении, как правило, заданное в виде некоторого числа мегапикселов, которое может быть вычислено посредством умножения столбцов пикселов на ряды пикселов (NxM) и деления на один миллион. Другие правила описывают разрешение как количество пикселов на единицу длины или количество пикселов на единицу площади, такие как пикселы на дюйм или на квадратный дюйм. Эти вычисленные разрешения пикселов, в целом, являются неточными (истинные разрешения могут быть меньше расчетных разрешений) и могут служить в качестве приближенных или верхних граничных значений истинного разрешения изображения. В целом, чем выше разрешение, тем больше деталей представляется на изображении.
Пикселы могут храниться в запоминающем устройстве компьютера в виде растрового изображения или растровой текстуры или битового массива: двухмерного множества малых целых значений. Зачастую эти значения передаются или хранятся в сжатой форме. Каждый пиксел растрового изображения, как правило, ассоциируется с определенной "позицией" в двухмерной (2D) области изображения и с значениями одного или нескольких элементов изображения в этой позиции. Цифровые изображения могут быть классифицированы в соответствии с числом и свойствами этих образцов пикселов.
Сжатие изображения может уменьшить избыточность данных изображения для уменьшения объема информации изображения, который будет сохраняться или передаваться. Сжатие изображения может быть "с потерями" (если восстановленные после сжатия данные отличаются от исходных вследствие потери данных) или "без потерь" (если восстановленные после сжатия данные точно совпадают с исходными данными). Данные с потерями могут быть использованы, если потерянные данные достаточно малы или если выгода от уменьшения данных перевешивает ущерб вследствие потери данных. Сжатие данных без потерь позволяет восстанавливать точные исходные данные из сжатых данных. Сжатие без потерь может быть использовано, если является важной идентичность исходных и восстановленных после сжатия данных или если важность точного копирования или допустимого отклонения от них не известна. Обычные типы данных, сжимаемые посредством сжатия данных без потерь, являются выполнимыми программами и исходным кодом. Для некоторых форматов файлов изображения, таких как переносимая сетевая графика (PNG) или формат обмена графическими данными (GIF), как правило, используется исключительно сжатие без потерь, в то время как для других, таких как формат растровой графики (TIFF) и сетевая графика с несколькими изображениями (MNG), может использоваться как сжатие с потерями, так и без потерь.
Механизмы сжатия могут требовать различной производительности для кодирования и декодирования. Качество способа сжатия зачастую измеряется посредством пикового отношения сигнал-шум. Пиковое отношение сигнал-шум может измерять количество ошибок или помех, введенных в процессе сжатия изображения с потерями. Однако субъективное суждение зрителя также расценивается как важная и, возможно, наиболее важная оценка точности сжатия.
Раскрытие изобретения
Существует неудовлетворенная потребность в системе и способе сжатия изображения, которые в большей степени соответствуют информационному содержанию изображения как таковому и при этом также обеспечивают большое сжатие данных изображения, и их наличие было бы весьма полезным.
Варианты осуществления изобретения могут преодолевать недостатки предшествующего уровня техники посредством деления изображения на множество подобластей и представления каждой подобласти изображения посредством одной или нескольких подобных шаблонных форм из числа каталога или базы данных уже существующих шаблонных форм изображения.
Краткое описание чертежей
Предмет изобретения, рассматривающийся в качестве изобретения, конкретно характеризуется и определенно заявляется в заключительной части спецификации. Однако изобретение как по организации, так и способу работы, вместе с его целями, признаками и преимуществами, может быть лучше всего понято посредством ссылки на подробное описание при рассмотрении его с сопроводительными чертежами. Конкретные варианты осуществления настоящего изобретения будут описаны со ссылкой на нижеследующие чертежи, на которых:
Фиг.1 является схематичной иллюстрацией системы для сжатия изображений в соответствии с вариантом осуществления настоящего изобретения;
Фиг.2 является схематичной иллюстрацией структур данных для сжатия изображений в соответствии с вариантом осуществления настоящего изобретения;
Фиг.3 является блок-схемой способа сжатия данных изображения для одного или более кадров изображения в соответствии с вариантом осуществления настоящего изобретения; и
Фиг.4 является блок-схемой способа восстановления после сжатия данных изображения для восстановления одного или более исходных кадров изображения в соответствии с вариантом осуществления настоящего изобретения.
Будет понятно, что, для простоты и ясности изображения, элементы, изображенные на чертежах, не обязательно показаны в масштабе. Например, размеры некоторых из элементов могут быть увеличены относительно других элементов для ясности. Кроме того, в случае, если это является целесообразным, ссылочные позиции могут повторяться в чертежах для указания соответствующих или аналогичных элементов.
Осуществление изобретения
Настоящее изобретение состоит из системы и способа уменьшения размера изображений при помощи сжатия.
Варианты осуществления изобретения могут разделять изображение на множество подобластей и представлять каждую подобласть изображения на одну или несколько подобных шаблонных форм, выбираемых из каталога или базы данных уже существующих шаблонных форм изображения. Например, если часть изображения содержит прежде всего зеленые оттенки, такие как в сцене с лесом, содержащим траву и деревья, то для представления части изображения может быть использован зеленый шаблон. В некоторых случаях, все изображение может быть отмечено общей (например, средней) шаблонной формой, несмотря на то, что отдельные пикселы изображения представляются посредством данных, относящихся к этой шаблонной форме (или, в некоторых случаях, множеству шаблонных форм). В таких вариантах осуществления, вместо представления каждого пиксела в виде абсолютного критерия (например, красный, синий или зеленый) каждое значение пиксела может оценивать свойство (например, уровень "красноты," "синевы" и/или "зелености") относительно (например, красной, синей и/или зеленой) шаблонных форм. Поскольку шаблонные формы приблизительно равны исходному изображению, много пикселов могут настолько точно совпадать с шаблонной формой, чтобы никакие данные изображения не могли быть использованы для представления этих пикселов. В соответствии с такими вариантами осуществления, для представления изображения может быть использован меньший объем данных по сравнению с исходными данными изображения, и в силу этого их передача и сохранение могут быть более эффективны.
Такие варианты осуществления могут одинаково применяться для полного изображения или части изображения, где множество групп пикселов описывается посредством постоянного или определяющего атрибута функции, такого как, например, шаблонная форма с цветом. Изображение может быть разделено на подобласти рядом способов. Например, матрица изображения может быть линейно разделена для представления меньшей группы пикселов в пределах изображения, например, где каждая подматрица изображения размером 3 на 3 может представлять подобласть. Известные алгоритмы для деления изображений, например, в числе прочего, "k-means (k-средних)" или другие алгоритмы для выбора областей или подобластей пикселов, в некоторых случаях, могут быть использованы для идентификации подобластей в пределах изображения.
Изображение может быть разделено на множество подобластей, причем каждая подобласть формирует подматрицу матрицы изображения и, следовательно, представляет подобласть пикселов. Например, каждая подматрица может представлять квадрат, прямоугольник или другой многоугольник, состоящий из множества пикселов. В качестве неограничивающего примера, каждый квадрат может, в некоторых случаях, включать в себя значения для подобласти размерами 10x10 пикселов.
Как только изображение разделяется на множество подобластей, для этой подобласти может быть проверен цвет или другие элементы изображения. Проверенным элементом изображения может являться самый доминирующий элемент в подобласти. Например, если элемент изображения связан с формой с конкретным цветом, то может быть проверен самый доминирующий цвет в этой подобласти. Может быть выполнено сравнение доминирующего цвета (или другого элемента изображения) с множеством таких цветов (или других элементов изображения), сохраненных в каталоге или в базе данных элементов изображения. Блок обработки данных может автоматически определять, какой из цветов в каталоге (или других элементов изображения) наиболее близко совпадает с цветами (или элементами) для каждой подобласти. Альтернативно, для каждой подобласти может быть проверено множество цветов, если упомянутый процесс может быть выполнен в отношении множества цветов и их относительного(ых) местоположения(й).
Затем из каталога может быть выбрана шаблонная форма с представлением элемента изображения, который наиболее близко совпадает с представлением для каждой подобласти. Тогда все пикселы в этой подобласти могут быть заменены на соответствующие значения пикселов этой шаблонной формы. Шаблонная форма может быть представлена посредством числа в каталоге (например, кода, адреса или другого ссылочного маркера, уникально идентифицирующего шаблонную форму или функцию в каталоге). В некоторых вариантах осуществления, для представления или кодирования множества пикселов в каждой подобласти может быть отправлено, сохранено или использовано иным способом только одно число в каталоге, тем самым приводя к существенному уменьшению объема данных, необходимых для представления пикселов в каждой подобласти изображения.
В некоторых случаях, может быть использована любая форма или число пикселов для каждой подобласти; однако, чем меньше размер каждой подобласти, тем большее число подобластей используется в изображении. Такое увеличение общего числа подобластей и уменьшение размера каждой подобласти может увеличивать разрешающую способность в пикселах и обеспечивать большую правильность относительно исходного изображения, но также может увеличивать объем данных, необходимых для представления исходного изображения. Параметры, определяющие размер, форму и/или плотность подобластей изображения, могут быть настроены пользователем или, альтернативно, могут быть автоматически настроены или установлены посредством процессора компьютера (например, для поддержки предварительно определенных максимально разрешенных данных для представления изображения и/или предварительно определенной минимальной правильности или точности, допустимой для представления исходного изображения).
В соответствии с некоторыми вариантами осуществления настоящего изобретения, каждая шаблонная форма может включать в себя значения для множества элементов, свойств и переменных изображения. Элементы или переменные изображения могут включать в себя, помимо прочего, цвет, цветовой градиент, направление градиента или эталонный пиксел.
В некоторых вариантах осуществления, сжатые данные, представляющие пикселы, могут являться просто ссылкой на одну или несколько подобных шаблонных форм или функций значений истинности из каталога. Сжатые данные могут быть "с потерями", если шаблонные формы не совпадают с исходными изображениями в точности. В другом варианте осуществления, для формирования сжатия "без потерь" каждому пикселу может быть присвоено дополнительное значение разности (или "ошибки"), определяющее разность между шаблонной формой(ами) и исходным изображением. Тем самым исходное изображение может быть точно восстановлено (декодировано) посредством использования форм и затем добавления значений ошибок для каждого пиксела.
Обратное действие для декодирования сжатых данных, в которых изображение восстанавливается из шаблонной формы, может быть выполнено посредством процессора или декодера. Декодер может извлекать шаблонную форму или самое близкое представление атрибута функции изображения из каталога или базы данных (например, идентифицированных посредством кода в каталоге). Декодер может использовать форму(ы) (и, в некоторых случаях, данные ошибок) для восстановления исходного изображения. Если используется сжатие с потерями, то любая разность между шаблонной формой и исходным изображением является данными, потерянными посредством сжатия. Если используется сжатие без потерь, то разность или значения ошибок могут быть записаны для каждого пиксела и отправлены на декодер, например, вместе с данными шаблона или отдельно от них для восстановления исходного изображения без потери данных относительно разности между шаблонной формой и исходным изображением.
При использовании сжатия с потерями чем ближе совпадают шаблонная форма и исходное изображение, тем меньше данных потеряно. Если используется сжатие без потерь, то чем ближе совпадают шаблонная форма и исходное изображение, тем меньше данных ошибок хранится и передается со сжатыми данными изображения (идеальное совпадение приводит к отсутствию данных ошибок). Соответственно, для улучшения точности сжатия с потерями или уменьшения объема данных ошибок, используемых при сжатии без потерь, для лучшего совпадения с исходным изображением во время процесса сжатия каталог может корректироваться. В одном варианте осуществления, может быть обеспечено множество измененных каталогов с дополнительной или измененной шаблонной формой(ами). Например, для передачи изображения каталог или только его измененные части могут периодически отправляться, по меньшей мере, более одного раза по мере сжатия и отправления изображения.
Например, предположим, что начальное изображение представлено посредством матрицы, размеры которой составляют 9x9 пикселов, дающих общее изображение из 81 пиксела. Это изображение может быть разделено, например, на группу из девяти подобластей или подматриц из 3x3 пикселов. Каждая подобласть может характеризоваться соответствующей формой, включающей в себя один или несколько упомянутых элементов или переменных изображения. Наиболее близкая шаблонная форма может быть выбрана из каталога посредством сравнения со множеством таких шаблонных форм. Альтернативно, если никакая форма в каталоге не показывает существенной выгоды по сравнению с другой, то может быть использована шаблонная форма по умолчанию, например, имеющая наименьший объем данных, такая как монохромный шаблон со средним числовым значением цвета. В другом варианте осуществления, если в каталоге не присутствует достаточно близкой шаблонной формы, то в каталог может быть добавлена новая шаблонная форма. Новая шаблонная форма может заменять ранее существующую форму в каталоге или может быть добавлена в качестве дополнительной формы. Для замены уже существующей формы уже существующая форма, которая должна быть заменена, может быть выбрана в соответствии с одним или несколькими критериями, которые могут включать в себя, по меньшей мере, те, которые ранее не использовались (или использовались наименее часто) для представления подобласти изображения. Дополнительно или альтернативно, форма, которая должна быть заменена, может являться формой, которая является наиболее близкой к новой форме или к форме, которая наиболее отличается от других уже существующих форм в каталоге, например, для обеспечения более широкого диапазона вариантов шаблона.
В некоторых вариантах осуществления, процессор может автоматически определять, какая из шаблонных форм в каталоге является "наиболее близкой" к исходному изображению или подобласти изображения. "Близость" шаблонных форм к исходному изображению или подобласти изображения может быть определена в соответствии с любым типом известной в уровне техники формы или функции сравнения изображений. В некоторых вариантах осуществления, большее выделение может быть установлено на основании близости одних элементов (например, цвета отдельных пикселов) в отличие от других элементов (например, общего градиента цвета и/или интенсивности, или наоборот). Например, процессор может классифицировать или оценивать каждый шаблон с использованием весовой функции сравнения, в которой для сравнения различных элементов могут быть заданы различные веса или приоритеты.
Как только характерная шаблонная форма(ы) выбрана для представления каждой подобласти изображения, подобласть может быть представлена посредством числа, кода или адреса в каталоге, соответствующего этому шаблону(ам). В некоторых случаях, сжатые данные могут включать в себя размер или размеры подобласти изображения; однако, если изображение разделено на равные по размерам подобласти, то требуется включение в их состав этого описателя размеров или может включаться в их состав однократно с данными, или каждый раз, когда изменяются размеры подобластей. Кроме того, сжатые данные могут включать в себя относительное местоположение каждой подобласти в пределах исходного изображения; однако, если подобласти изображения сжаты, в соответствии с предварительно определенной или ожидаемой очередностью, то в их состав не должно быть включено местоположение каждой конкретной подобласти.
Если сжатые данные описывают множество элементов изображения, то каждый элемент может быть представлен в виде координаты в векторе. Вектор может включать в себя не только число (индекс) цвета, но также и другую информацию, такую, например, как стартовый цвет, градиент цвета, направление градиента цвета и эталонная метка пиксела. Следовательно, начальное изображение из 81 пиксела, разделенное на девять подобластей из 3x3 пикселов, может быть описано посредством 9 "векторов пикселов", причем каждый вектор определяет значения изображения для множества выбранных элементов для каждой подобласти. Объединение различных значений элементов в векторы может сокращать общий размер емкости запоминающего устройства и вычислительной нагрузки на блоки обработки данных, например, уменьшая число обрабатываемых переменных примерно на 45%, от 81 (9 на 9) до 36 (9 на 4). Размер данных может быть дополнительно уменьшен, если обрабатываются последовательные изображения, например, через короткий промежуток времени. Каждое последующее изображение может являться функцией от исходных переменных базисных векторов; следовательно, с течением времени, поскольку каждое изображение уменьшает число обрабатываемых переменных примерно на 45%, это уменьшение может быть увеличено для каждого обрабатываемого изображения. Для дополнительного уменьшения размера данных изображения каждая подобласть изображения может быть представлена посредством простой бинарной формы исключительно из двух цветов (например, вместо трех или четырех цветов).
В соответствии с некоторыми вариантами осуществления изобретения, вместо определения упомянутого набора из одной или нескольких переменных для каждой подобласти по отдельности процесс также может обеспечивать множество форм, а затем выбирать форму, которая является подходящей для каждой подобласти или группы подобластей. Формы, предоставленные в каталоге, могут быть предварительно определены или зафиксированы и/или сформированы или, по меньшей мере, скорректированы во время сжатия изображения.
Число шаблонных форм, доступных для сжатия изображения, может быть пропорциональным, одного порядка или относительно высоким по сравнению с числом отдельных пикселов, числом рядов пикселов или любых размеров пикселов в изображении. В одном примере, число шаблонных форм может быть приблизительно равным квадратному корню из числа пикселов в подобласти (например, для подобласти 256x256 пикселов может иметься 256 доступных форм). Могут быть предоставлены другие или иные количества форм. Хотя увеличение количества форм образцов, как правило, увеличивает размеры каталога, причем увеличение числа форм также может увеличивать точность изображений, сжатых с использованием форм.
Каждая форма может включать в себя информацию изображений, такую как градиенты цвета и/или другие элементы изображения, эталонный пиксел, направление градиента и т.д. Для каждой подобласти из каталога форм может быть выбрана форма. Для каждой подобласти также может быть выбран эталонный цвет, который, например, может быть средним цветом пикселов в подобласти. Формы могут быть построены перед обработкой или сжатием изображений для обеспечения предварительно описанного каталога, который, например, может быть, по меньшей мере, частично определен эвристически. Если в каталоге не обнаруживается формы, в достаточной степени подобной данным изображения для подобласти, то может быть применена стандартная технология "субдискретизации" для уменьшения размеров данных подобласти. В другом варианте осуществления, если не обнаружено никакой в достаточной степени подобной формы, то данные для подобласти могут остаться несжатыми.
Альтернативно или дополнительно, может быть сформирована новая форма для того, чтобы в достаточной степени совпадать с подобластью изображения, и она может быть добавлена в каталог форм. Например, новая форма может являться точной или модифицированной копией подобласти. Блок обработки данных может устанавливать пороговое значение для определения того, какие формы являются "в достаточной степени подобными", например, в соответствии со сравнением параметров для формы. Чем выше порог подобия, тем более точным может быть сжатие изображения. В некоторых вариантах осуществления, зритель может описывать или детализировать стандарт точности сжатия изображения посредством сравнения восстановленных изображений из сжатий с различными порогами подобия с исходным изображением и выбором, например, посредством визуального наблюдения, какие из восстановленных изображений и, следовательно, какие пороги подобия являются приемлемыми.
Локальный блок обработки данных может подразделять и сжимать изображения описанным в настоящем документе способом и затем может передавать и/или сохранять сжатые данных изображения. Затем локальный блок обработки данных может восстанавливать изображения для получения полных изображений для отображения.
Фиг.1 схематично иллюстрирует систему 100 для сжатия изображений в соответствии с вариантом осуществления настоящего изобретения.
Система 100 может включать в себя одно или несколько устройств 150, из которых могут извлекаться и/или отправляться изображения, базу 110 данных для сохранения каталога шаблонных форм и/или сжатых изображений, модуль 120 разбиения на подобласти для разбиения каждого изображения на множество подобластей, модуль 130 сжатия для сжатия данных каждой подобласти и модуль 140 восстановления после сжатия для восстановления изображения из сжатых данных подобласти.
Устройство 150 может являться вычислительным устройством, сервером, устройством для захвата или воспроизведения видео или изображений, сотовым устройством или любым другим цифровым устройством, таким как сотовый телефон, карманный персональный компьютер (PDA), консоль для видеоигр и т.д. Устройство 150 может включать в себя любое устройство, способное выполнять серии команд для выполнения записи, сохранения, хранения, обработки, редактирования, отображения, проецирования, приема, передачи или использования или управления иным способом данными изображения или видео. Устройство 150 может включать в себя устройство 155 вывода (например, монитор, проектор, экран, принтер или устройство отображения) для отображения данных видео или изображения в пользовательском интерфейсе. Устройство 150 может включать в себя процессор 157. Процессор 157 может включать в себя центральный процессор (CPU), цифровой сигнальный процессор (DSP), микропроцессор, контроллер, чип, микрочип, программируемую пользователем вентильную матрицу (FPGA), специализированную интегральную микросхему (микросхему ASIC) или любую другую интегральную схему (IC), или любой другой подходящий многоцелевой или специализированный процессор или контроллер.
Следует понимать, что каждая база 110 данных, модуль 120 разбиения, модуль 130 сжатия и/или модуль 140 восстановления после сжатия может являться неотъемлемой частью устройства 150 (например, частью одного и того же отдельного компьютера) или являться отдельной от устройства 150 частью (присоединенной при помощи проводной или беспроводной сети).
Модуль 120 разбиения на подобласти может разбивать изображение на множество подобластей, где каждая подобласть может быть описана посредством одного или нескольких определяющих элементов, таких как цвет, и, в некоторых случаях, одним или несколькими соответствующими переменными значениями для подобласти. Модуль 120 разбиения на подобласти может разделять изображение множеством способов. Например, матрица изображения, представляющая собой значения пикселов изображения, может быть линейно разделена на меньшие группы пикселов в пределах изображения, например, на множество подматриц, каждая из которых представляет собой подобласть изображения. Могут быть использованы известные механизмы для деления изображений, например, в числе прочего, "k-means (k-средних)" или другие способы для кластеризации пикселов, для идентификации подобластей в пределах изображения.
Как только подобласти изображения описаны, модуль 130 сжатия может выбрать характерную форму для каждой подобласти, например, из каталога шаблонных форм, сохраненного в базе 110 данных. Затем модуль 130 сжатия может выполнить сжатие подобласти. Каждая шаблонная форма может включать в себя информацию об изображении, такую как градиент цвета, эталонный пиксел, направление градиента и т.д. Для каждой подобласти может быть выбран эталонный цвет, который может являться, например, усредненным, средним или умеренным цветом пикселов в подобласти.
Сжатые данные изображения могут быть сохранены в базе данных 110. Если устройство 150 запрашивает восстановленное изображение, то модуль 140 восстановления после сжатия может восстановить сжатые данные изображения из базы 110 данных и может восстановить после сжатия данные до точного или приблизительного копирования исходного изображения.
Модуль 120 разбиения на подобласти может разделять изображения, модуль сжатия 130 может сжимать изображения, а модуль 140 восстановления после сжатия может восстанавливать изображения с использованием локального блока обработки данных, например процессора 157. Затем локальный блок обработки данных может передавать восстановленное изображение на контроллер вывода для отображения его на устройстве 155 вывода.
На Фиг.2 схематично иллюстрируются формы данных для сжимаемого изображения в соответствии с вариантом осуществления настоящего изобретения. Формы данных могут включать в себя каталог 202 подобластей с множеством шаблонных форм 208 для представления множества подобластей 210 в исходном изображении 200. Шаблонные формы 208 могут быть предварительно определены и сформированы, например, эвристически перед сжатием изображения. Альтернативно и/или дополнительно, шаблонные формы 208 могут быть сформированы динамически, например, в режиме реального времени, для каждого изображения или множества изображений с использованием текущего изображения и/или одного или нескольких предшествующих изображений. Модуль сжатия (например, модуль 130 сжатия из Фиг.1) может использовать функцию 204 классификации и сжатия для выбора шаблонной формы 208 из каталога 202 для сжатия каждой подобласти исходного изображения 200. Модуль сжатия может использовать модуль 204 классификации и сжатия для выбора одной или нескольких шаблонных форм 208 из каталога 202, которые наиболее близко совпадают с элементами изображения, включающими в себя цвет или другие характерные атрибуты функции, из одного или нескольких из множества подобластей 210 исходного изображения 200. Модуль сжатия может представлять каждую подобласть 210 посредством выбора шаблонной формы (форм) 208 для формирования сжатого изображения 206. Сжатое изображение 206 может представлять каждый пиксел (или множество пикселов) в подобласти 210 исходного изображения 200 посредством ссылки на форму в каталоге 202 и/или описание цвета, такое как значение или код цвета.
Компьютер или сервер (например, устройство 150 по Фиг.1) может формировать шаблонные формы 208 в каталоге 202, который обеспечивает диапазон и детали вариантов шаблона, описываемые, например, в соответствии с любым из множества параметров, включающих в себя, в числе прочего, предварительно определенное или выбранное количественное значение желательной точности сжатия, максимальный размер данных для каждого сжатого изображения 206, подобласть, квадрат пикселов, прямоугольник или другие формы пикселов и/или любые другие критерии. В некоторых вариантах осуществления компьютер может формировать шаблонные формы 208 в каталоге 202 динамическим способом, например, с использованием форм изображения из фактических сжимаемых изображений. Для потока видеоданных или последовательности подобных изображений шаблонные формы 208 в каталоге 202 могут корректироваться для сжатия текущего исходного изображения 200, в соответствии с элементами изображения из предыдущих кадров изображения в потоке. Компьютер может формировать шаблонные формы 208 в каталоге 202, в соответствии как с динамическими (например, корректируемыми во время обработки), так и эвристическими (например, предварительно определенными) характеристиками.
Если каталог 202 изменяется, то весь каталог 202 или только его измененные части могут периодически или многократно передаваться на модуль сжатия, например, из базы данных (например, базы 110 данных из Фиг.1), где сохраняется каталог 202, или непосредственно из компьютера, формирующего изменения. Если измененные части каталога 202 периодически передаются, то весь каталог 202 может быть передан только однократно, например, для каждого модуля сжатия, проекта, сессии или набора изображений, тем самым уменьшая объем данных, которые должны быть переданы.
В целом, качество процесса сжатия изображения (например, степень, до которой сжатие выполняется с потерями) может быть описано посредством каталога 202, из которого извлекается информация о сжатии. Например, если модуль сжатия обнаруживает в каталоге 202 шаблонную форму 208, которая точно совпадает с конкретным атрибутом функции для каждой подобласти 210, то сжатие может быть выполнено без потерь, в то время как если не обнаруживается никакого точного совпадения, сжатие может выполняться с потерями. Степень, до которой сжатие выполняется с потерями (например, количество потерянных данных или ошибка при сжатии изображения), может зависеть от того, насколько близко шаблонные формы 208 совпадают с исходными подобластями изображения 210, и, следовательно, от детальности и числа шаблонных форм 208, доступного в каталоге 202. Хотя степень, в которой сжатие выполняется с потерями или без потерь, не является непосредственно связанной с размером каталога 202, по мере того как число или детальность шаблонных форм 208 в каталоге 202 увеличивается, размер каталога 202 увеличивается, и, более вероятно, что может быть обнаружено точное или более близкое совпадение.
На Фиг.3 показана блок-схема способа сжатия данных изображения для одного или нескольких кадров изображения в соответствии с вариантом осуществления изобретения.
В операции 301 база данных (например, база данных 110 из Фиг.1) может предоставить модуль сжатия (например, модуль 130 сжатия из Фиг.1) с начальным каталогом, имеющим множество шаблонных форм. Начальный каталог может быть принят, например, даже до выполнения анализа первого изображения или подобласти изображения. Компьютер или сервер (например, устройство 150 из Фиг.1) могут формировать шаблонные формы, например, в соответствии с одним или несколькими эвристическими правилами и/или предварительно определенными параметрами.
В операции 302 модуль разбиения (например, модуль 120 разбиения из Фиг.1) может принимать первое изображение и может разделять изображение на множество подобластей. Подобласти могут быть определены геометрически (например, первое изображение разделено таким образом, чтобы формировать предварительно определенное количество подобластей предварительно определенных размеров) или на основе содержимого изображения (например, первое изображение разделено вдоль границ, идентифицированных посредством существенных изменений элементов изображения, таких как цвет).
В операции 303 модуль сжатия может принимать первое изображение и может выполнять анализ элементов изображения всего изображения вместе или отдельно каждой подобласти. Модуль сжатия может использовать функцию классификации и сжатия (например, функцию 204 классификации и сжатия по Фиг.2) для определения и/или выбора шаблонной формы из начального каталога с наиболее подобными элементами изображения. Если доступна наиболее подобная шаблонная форма и/или достаточно близкая к первому изображению или подобласти, то для сжатия изображения или подобласти может быть выбрана шаблонная форма. В противном случае, компьютер или сервер может сформировать новую шаблонную форму, которая в достаточной степени совпадает с изображением или подобластью. Новая шаблонная форма может быть добавлена к начальному каталогу в виде дополнительного изображения или может заменять один или несколько шаблонов в пределах начального каталога для формирования второго каталога.
В операции 304, как только выбрана шаблонная форма, модуль сжатия может сжимать первое изображение с использованием шаблонной формы, например, посредством представления изображения или каждой подобласти посредством идентификатора выбранной формы в каталоге. Для формирования точной копии исходного изображения или подобласти изображения (то есть сжатия "без потерь") может быть передано значение разности или "ошибки", определяющее разность между шаблонной формой(ами) и пикселами исходного изображения или подобласти изображения, наряду с идентификатором выбранной шаблонной формы. Это значение разности или "ошибки" может принимать множество возможных форм, включающих в себя, например, двухмерную матрицу, в которой значение каждого элемента представляет разность между значениями соответствующих пикселов в исходном изображении или подобласти и выбранной формой шаблона, представленную в виде двухмерного множества пикселов. В этом случае, сумма двухмерной матрицы различий и двухмерного множества пикселов шаблона может являться двухмерной матрицей, которая представляет множество пикселов исходного изображения или исходной подобласти изображения.
В операции 305 модуль сжатия может передавать идентификатор для выбора шаблонной формы в каталоге, а также, в соответствующих случаях, значение разности или "ошибки" на модуль восстановления после сжатия (например, модуль 140 восстановления после сжатия по Фиг.1) для восстановления после сжатия первого кадра изображения, как более подробно описывается ниже со ссылкой на Фиг.4.
Операции 302-305 могут повторяться для каждого дополнительного кадра изображения. Кроме того, если каталог обновляется новой шаблонной формой, то новая шаблонная форма и/или весь обновленный каталог могут быть переданы в конце упомянутого процесса, после того как все изображения или их подобласти совпали с шаблонными формами, или, альтернативно, более одного раза, во время обработки, например, для размещения одного или нескольких обновлений каталога, которые могут произойти во время обработки. В некоторых вариантах осуществления, если выполняется анализ всего изображения в целом, то процесс может пропускать операцию 302.
На Фиг.4 показана блок-схема способа восстановления после сжатия данных изображения для восстановления одного или нескольких исходных кадров изображения в соответствии с вариантом осуществления изобретения. Способ может восстанавливать после сжатия данные, которые были сжаты, например, в соответствии с вариантами осуществления, описанными со ссылкой на Фиг.3.
В операции 401 модуль восстановления после сжатия (например, модуль 140 восстановления после сжатия по Фиг.1) может извлекать сжатые данные для кадра изображения. Изображение может быть разделено на множество подобластей (например, как описано в операции 302 со ссылкой на Фиг.3). Модуль восстановления после сжатия может выполнять операции 402 и 403 для каждой подобласти кадра изображения следующим образом.
В операции 402 модуль восстановления после сжатия может извлекать из сжатых данных идентификатор шаблонной формы, а также, в соответствующих случаях, значения разностей или "ошибок" для текущей подобласти. Идентификатор шаблонной формы может включать в себя адрес, ссылку или код для каталога или местоположения в базе данных, хранящей уникальную шаблонную форму.
В операции 403 модуль восстановления после сжатия может использовать идентификатор для получения доступа к каталогу и извлечения значений пикселов шаблонной формы для каждого пиксела (или группы пикселов) в текущей подобласти. Модуль восстановления после сжатия может использовать значения пикселов шаблонной формы для восстановления подобласти в соответствии с этими значениями.
Для формирования точной копии исходной подобласти изображения (то есть сжатия "без потерь") модуль восстановления после сжатия также может использовать значения разности или "ошибок", определяющие разности между шаблонной формой(ами) и пикселами исходного изображения или подобласти изображения, как обсуждалось выше.
В операции 404 модуль восстановления после сжатия может последовательно объединять все восстановленные после сжатия подобласти для формирования приближения (с использованием только шаблонной формы) или точной копии (с использованием как шаблонной формы, так и значений разности) исходного изображения. Модуль восстановления после сжатия может передавать сформированное изображение на компьютер или сервер (например, устройство 150 из Фиг.1).
В операции 405 устройство вывода (например, устройство 155 вывода из Фиг.1) компьютера или сервера может отображать сформированное изображение.
Если существует несколько изображений, таких как несколько кадров в потоке видеоданных, то операции 403-405 могут повторяться для каждого изображения. Операции 403-405 могут управляться последовательно или параллельно для нескольких кадров изображения.
Варианты осуществления изобретения могут включать в себя изделие, такое как считываемый компьютером или процессором носитель или носитель данных компьютера или процессора, такой как, например, запоминающее устройство, дисковод или USB (универсальная последовательная шина) флэш-память, для хранения команд, которые, при их выполнении посредством процессора или контроллера (например, процессора 157 по Фиг.1), выполняют способы, раскрытые в настоящем документе.
Хотя изобретение было описано касательно ограниченного количества вариантов осуществления, понятно, что может быть выполнено множество изменений, модификаций и других применений изобретения.