кодирование встраиваемой графики для изображений с разреженными гистограммами
Классы МПК: | H04N7/26 с использованием уменьшения ширины полосы частот H03M7/42 с использованием обращений к таблице в процессе кодирования или декодирования, например с использованием постоянного ЗУ |
Автор(ы): | ЛЮ Вэй (US), ГАРАВИ-АЛКАНСАРИ Мохаммад (US) |
Патентообладатель(и): | СОНИ КОРПОРЕЙШН (JP) |
Приоритеты: |
подача заявки:
2010-06-08 публикация патента:
27.12.2013 |
Изобретение относится к сжатию данных и, более конкретно, к сжатию данных для изображений с разреженными гистограммами. Техническим результатом является обеспечение частичного восстановления изображения без полного его декодирования. Указанный технический результат достигается тем, что изображение делят на блоки, и для каждого блока выделяется ресурс битов. Пиксели в блоке преобразуют и кодируют в последовательности битовых плоскостей, начиная с самого старшего значащего бита (MSB) и заканчивая младшим значащим битом (LSB). Пиксели блока разбивают на группы. Каждая группа состоит из пикселей, имеющих одинаковое значение. Группы в каждой битовой плоскости обрабатываются от MSB до LSB. При обработке группы кодировщик отправляет значение 0, если все элементы группы имеют одинаковое значение бита в текущей обрабатываемой битовой плоскости, за которым следует значение бита, и в противном случае кодировщик отправляет значение 1, за которым следуют биты детализации для каждого пикселя группы, и кодировщик разделяет группу. 2 н. и 11 з.п. ф-лы, 10 ил.
Формула изобретения
1. Способ обработки изображения, содержащий этапы, на которых: разделяют изображение на блоки;
устанавливают ресурс битов для каждого блока;
преобразуют пиксели каждого блока в двоичное представление;
сканируют и кодируют пиксели от самой старшей значащей битовой плоскости до самой младшей значащей битовой плоскости, при этом
если все значения пикселей в группе имеют одинаковое значение в текущей битовой плоскости, то в поток битов записывают первый бит со значением 0 и в поток битов записывают второй бит со значением, обозначающим значение всех пикселей в текущей группе; и
генерируют файл сжатого изображения с кодированными пикселями и сохраняют файл сжатого изображения в памяти.
2. Способ по п.1, в котором изображение содержит изображение с разреженной гистограммой.
3. Способ по п.1, дополнительно содержащий этапы, на которых:
если не все значения пикселей в группе имеют одинаковое значение в текущей битовой плоскости, записывают в поток битов первый бит со значением 1, за которым следуют по одному биту для каждого пикселя в текущей битовой плоскости, обозначающему битовое значение данного пикселя в текущей битовой плоскости;
генерируют новую группу; и
разбивают исходную группу на две, оставляя пиксели со значением 0 в исходной группе и помещая пиксели со значением 1 в новую группу.
4. Способ по п.3, дополнительно содержащий этап, на котором декодируют файл сжатого изображения для разуплотнения изображения.
5. Способ по п.4, в котором декодирование файла сжатого изображения содержит этапы, на которых сканируют и декодируют пиксели, начиная от самой старшей значащей битовой плоскости и заканчивая самой младшей значащей битовой плоскостью, и для каждой битовой плоскости:
a. получают количество имеющихся групп;
b. устанавливают текущую группу как первую группу;
c. считывают бит из потока битов;
d. если бит имеет значение 0, то считывают второй бит из потока битов и устанавливают его значение в качестве битового значения всех пикселей группы в текущей битовой плоскости;
e. если бит имеет значение 1, то для каждого пикселя в группе считывают один бит из потока битов и его значение устанавливают как значение бита данного пикселя в текущей битовой плоскости, генерируют новую группу и разбивают новую группу на первую группу и вторую группу, так что пиксели со значением 0 попадают в первую группу, а пиксели со значением 1 попадают во вторую группу; и
f. повторяют этапы с-е до достижения конца текущей битовой плоскости.
6. Способ по п.1, в котором битовый ресурс каждого блока совместно используется блоками.
7. Устройство обработки изображения, содержащее:
первый процессор, выполненный с возможностью обработки пикселей изображения; и
программу, используемую в первом процессоре для
разделения изображения на блоки;
установки ресурса битов для каждого блока;
преобразования пикселей каждого блока в двоичное представление;
сканирования и кодирования пикселей от самой старшей значащей битовой плоскости до самой младшей значащей битовой плоскости, при этом если все значения пикселей в группе имеют одинаковое значение в текущей битовой плоскости, то в поток битов осуществляется запись первого бита со значением 0 и
в поток битов осуществляется запись второго бита со значением, обозначающим значение всех пикселей в текущей группе; и
генерирования файла сжатого изображения с кодированными пикселями.
8. Устройство по п.7, дополнительно содержащее память, соединенную с первым процессором, причем файл сжатого изображения хранится в памяти.
9. Устройство по п.7, в котором программа выполнена с возможностью сканирования и кодирования пикселей, причем сканирование и кодирование пикселей дополнительно содержит:
если не все значения пикселей группы в текущей битовой плоскости имеют одинаковое значение, запись в поток битов первого бита со значением 1, за которым следуют по одному биту для каждого пикселя в текущей группе, обозначающему значение бита данного пикселя в текущей битовой плоскости;
генерирование новой группы; и
разбиение исходной группы на две, при этом пиксели со значением 0 остаются в исходной группе, а пиксели со значением 1 помещаются в новую группу.
10. Устройство по п.9, дополнительно содержащее:
вторую программу, выполняемую первым процессором или вторым процессором;
причем вторая программа выполнена с возможностью декодирования файла сжатого изображения в несжатое изображение.
11. Устройство по п.10, в котором декодер дополнительно выполнен с возможностью сканирования и декодирования пикселей от самой старшей значащей битовой плоскости до самой младшей значащей битовой плоскости и с возможностью для каждой битовой плоскости:
a. получения количества имеющихся групп;
b. установки текущей группы как первой группы;
c. считывания бита из потока битов;
d. если бит имеет значение 0, считывания второго бита из потока битов и установки его значения в качестве битового значения всех пикселей группы в текущей битовой плоскости;
e. если бит имеет значение 1, считывания для каждого пикселя в группе одного бита из потока битов и установки его в качестве битового значения данного пикселя в текущей битовой группе, генерирования новой группы и разбиения новой группы на первую группу и вторую группу, так что пиксели со значением 0 попадают в первую группу, а пиксели со значением 1 попадают во вторую группу; и
f. повторение этапов с-е до достижения конца текущей битовой плоскости.
12. Устройство по п.7, в котором ресурс битов каждого блока совместно используется блоками.
13. Устройство по п.7, в котором программа выполнена с возможностью сканирования и кодирования пикселей, при этом сканирование и кодирование пикселей дополнительно содержит:
a. запись в поток битов значения первого бита, обозначающего, что все биты имеют одинаковые значения, если все значения пикселей имеют одинаковое значение; и
b. запись в поток битов значения второго бита, обозначающего значение всех пикселей в текущей группе.
при этом программа выполнена с возможностью сканирования и кодирования пикселей каждой битовой плоскости, содержащих обработку каждой имеющейся группы в битовой плоскости, дополнительно содержащую:
c. если все значения пикселей в группе имеют одинаковое значение в текущей битовой плоскости, запись в поток битов первого бита со значением 0; и
d. запись в поток битов второго бита со значением, обозначающим значение всех пикселей в текущей группе;
e. если не все значения пикселей группы в текущей битовой плоскости имеют одинаковое значение, запись в поток битов первого бита со значением 1, за которым следуют по одному биту для каждого пикселя в текущей битовой плоскости, обозначающему битовое значение данного пикселя в текущей битовой плоскости;
f. генерирование новой группы;
g. разбиение исходной группы на две, так что пиксели со значением 0 остаются в исходной группе, а пиксели со значением 1 помещаются в новую группу;
при этом программа дополнительно содержит:
h. декодер, исполняемый в первом средстве обработки или втором средстве обработки, соединенным с первым средством обработки; причем
i. декодер выполнен с возможностью декодирования файла сжатого изображения для разуплотнения изображения,
при этом декодер выполнен с возможностью декодирования файла сжатого изображения посредством сканирования и декодирования пикселей от самой старшей значащей битовой плоскости до самой младшей значащей битовой плоскости и с возможностью для каждой битовой плоскости:
j. получения количества имеющихся групп;
k. установки текущей группы как первой группы;
l. считывания бита из потока битов;
m. если бит имеет значение 0, считывания второго бита из потока битов и установки его значения в качестве битового значения всех пикселей группы в текущей битовой плоскости;
n. если бит имеет значение 1, считывания для каждого пикселя в группе одного бита из потока битов и установки его в качестве битового значения данного пикселя в текущей битовой группе, генерирования новой группы и разбиения новой группы на первую группу и вторую группу, так что пиксели со значением 0 попадают в первую группу, а пиксели со значением 1 попадают во вторую группу; и
o. повторения этапов 1-n до достижения конца текущей битовой плоскости.
Описание изобретения к патенту
Область техники
Настоящее изобретение, в целом, относится к сжатию данных, и, более конкретно, к сжатию данных для изображений с разреженными гистограммами.
Уровень техники
Большинство схем сжатия изображений разработаны для естественных изображений , то есть, фотографий, полученных цифровой камерой. В случае естественных изображений существует сильная корреляция между соседними пикселями. Поэтому, большинство схем сжатия изображений используют декорреляцию пикселей посредством прогнозирования/преобразования или оба данных метода. В результате получается разреженная гистограмма из остатков после прогнозирования или коэффициентов преобразования. На фиг.1 показана гистограмма 12 изображения 10 после дискретного косинусного преобразования (DCT) 16 8×8. Как показано на фиг.1, гистограмма 12 имеет единственный максимум 14, расположенный близко к 0. Применяется квантование (если необходимо), и выполняется статистическое кодирование (квантованного) остатков после прогнозирования или коэффициентов преобразования. Статистический кодировщик, в целом, рассчитан для распределения, аналогичного показанному на фиг.1. Другими словами, если распределение имеет существенно отличающуюся форму, производительность кодировщика будет низкой.
Однако достаточно большое количество неестественных изображений нуждаются в сжатии. Такие изображения часто содержат графику или текст, которые обычно имеют большой динамический диапазон контраста, резкие углы, текстуры с большим увеличением и разреженную гистограмму. На фиг.2 показан пример такого неестественного изображения.
Такой тип изображений часто не может быть хорошо обработан обычными алгоритмами сжатия изображений. Межпиксельная корреляция является слабой, и прогнозирование или преобразование не обеспечивают разреженное распределение, так, как для естественных изображений.
Одна из попыток сжатия таких изображений называлась упаковкой гистограммы , в ходе которой кодировщик проходил через все изображение, вычислял гистограмму и выполнял нелинейное отображение пиксельных данных перед сжатием изображения. Такое сжатие требует двух проходов, что ведет к увеличению требуемой памяти и большим вычислениям. Поток битов не является масштабируемым, а это означает, что декодеру необходимо все содержание потока битов для декодирования изображения. Частичное восстановление изображения невозможно без полного декодирования.
Раскрытие изобретения
Раскрыты процессы сжатия изображений с разреженными гистограммами. Изображение делят на блоки, и ресурс битов присваивается каждому блоку. Пиксели блока преобразуют и кодируют по битовыми плоскостями, начиная с плоскости самых старших битов (MSB) и заканчивая плоскостью самых младших битов (LSB). Пиксели в блоке расположены группами. Каждая группа содержит пиксели, имеющие одинаковые значения. Группу разбивают на части, если пиксели в группе имеют разные значения в кодируемой битовой плоскости. Обработка производится для каждой битовой плоскости последовательным перемещением от плоскости MSB до плоскости LSB. Кодировщик отправляет значение 0 для группы, если все элементы в группе имеют одинаковое значение битов в текущей обрабатываемой битовой плоскости, за которым следует значение бита. Если элементы группы имеют разные значения, кодировщик разбивает группу и отправляет значение 1 , за которым следуют уточняющие биты для каждого пикселя группы.
Одним объектом настоящего изобретения является способ обработки изображения, содержащий разделение изображения на блоки первым процессором, установку ресурса битов для каждого блока, преобразование пикселей каждого блока в двоичное представление, сканирование и кодирование, начиная с плоскости самых старших битов и заканчивая плоскостью самых младших битов, генерирование файла сжатого изображения с закодированными пикселями и сохранение файла сжатого изображения в памяти, подключенной к первому процессору. Изображение содержит изображение с разреженной гистограммой. Сканирование и кодирование пикселей текущей битовой плоскости содержит обработку всех существующих групп блока, причем для каждой группы, если все пиксели имеют одинаковое значение в текущей битовой плоскости, в поток битов записывают первый бит со значением 0 , а затем записывают значение второго бита, характеризующее значение пикселей в группе, а если значения пикселей не являются одинаковыми, в поток битов записывают значение первого бита, равное 1 , за которым следуют по одному биту для каждого пикселя в текущей группе, характеризующие значение бита для данного пикселя в текущей битовой плоскости, генерируют новую группу и разделяют исходную группу, при этом пиксели со значением 0 оставляют в исходной группе, а пиксели со значением 1 помещают в новую группу. Данный способ дополнительно содержит декодирование сжатого изображения вторым процессором для разуплотнения изображения. Декодирование файла со сжатым изображением содержит обработку каждого блока начиная с MSB и заканчивая LSB, и обработку всех существующих групп для каждой битовой плоскости. Обработка группы текущей битовой плоскости содержит этапы, на которых считывают бит из потока битов, и если бит имеет значение 0, то считывают второй бит из потока битов и устанавливают данное значение в качестве значения бита для всех пикселей в группе текущей битовой плоскости, а если бит имеет значение 1 , то для каждого пикселя группы считывают один бит из потока битов и устанавливают в качестве значения бита для данного пикселя в текущей битовой плоскости, генерируют новую группу и разбивают исходную группу на две, так что пиксели со значением 0 находятся в исходной группе, а пиксели со значением 1 находятся в новой группе. Выделенный ресурс битов для каждого блока совместно используется между блоками. Первый процессор расположен в устройстве, выбранном из группы: персональный компьютер, карманный компьютер, персональный цифровой помощник, портативный персональный компьютер, сотовый/мобильный телефон, интеллектуальное бытовое устройство, игровая консоль, цифровой фотоаппарат, цифровая видеокамера, камерофон, iPod®/iPhone, видеопроигрыватель, устройство воспроизведения/записи DVD, устройство воспроизведения/записи Blu-ray®, телевизор и бытовая аудио-, видео и компьютерная система.
Другим объектом настоящего изобретения является устройство обработки изображения, содержащее первый процессор, выполненный с возможностью обработки пикселей изображения и программный модуль для разбиения изображения на блоки, установки ресурса битов для каждого блока, преобразования пикселей каждого блока в двоичное представление, сканирования и кодирования пикселей, начиная с самой старшей значащей битовой плоскости и заканчивая самой младшей значащей битовой плоскостью, и генерирования файла сжатого изображения с кодированными пикселями. Устройство дополнительно содержит память, соединенную с первым процессором, в которой хранится файл сжатого изображения. Программа выполнена с возможностью последовательного сканирования и кодирования пикселей по битовым плоскостям и для каждой битовой плоскости включает в себя обработку всех существующих групп блока, причем для каждой группы, если все пиксели имеют одинаковое значение в текущей битовой плоскости, в поток битов записывается первый бит со значением 0, а затем записывается значение бита, обозначающее значение всех пикселей в текущей группе, а если значения пикселей не имеют одинаковые значения, в поток битов записывается первый бит со значением 1, за которым следуют биты, по одному для каждого пикселя в текущей группе, обозначающие значение бита для данного пикселя в текущей битовой плоскости, генерирования новой группы и разбиения исходной группы, причем пиксели со значением 0 остаются в исходной группе, а пиксели со значением 1 размещаются в новой группе. Устройство дополнительно содержит второй программный модуль, исполняемый в первом процессоре, или второй процессор и программный модуль, выполненный с возможностью декодирования файла сжатого изображения для разуплотнения изображения. Декодер дополнительно выполнен с возможностью обработки каждого блока, начиная с MSB и заканчивая LSB, и обработки всех имеющихся групп для каждой битовой плоскости. Обработка группы текущей битовой плоскости содержит чтение битов из потока битов, и, если бит имеет значение 0, то считывание второго бита из потока битов и установки данного значения, как значения бита для каждого пикселя группы в текущей битовой плоскости, а если бит имеет значение 1, то считывание для каждого пикселя группы одного бита из потока битов и установки его в качестве значения бита для данного пикселя в текущей битовой плоскости, генерируется новая группа и исходная группа разбивается на две так, что пиксели со значением 0 остаются в исходной группой, а пиксели со значением 1 помещаются в новую группу. Выделенный ресурс битов для каждого блока совместно используется блоками. Данное устройство является одним из группы устройств: персональный компьютер, портативный персональный компьютер, автоматизированное рабочее место, сервер, ЭВМ коллективного пользования, карманный компьютер, персональный цифровой помощник, сотовый/мобильный телефон, игровая приставка, цифровой фотоаппарат, цифровая видеокамера, камерофон, iPod®/iPhone, видеопроигрыватель, устройство воспроизведения/записи DVD, устройство воспроизведения/записи Blu-ray®, телевизор и бытовая аудио-, видео и компьютерная система.
В еще одном объекте настоящего изобретения, устройство обработки изображения с разреженной гистограммой содержит первое средство обработки, выполненное с возможностью обработки пикселей изображения, средство кодирования, исполняемое в первом средстве обработки для разделения изображения на блоки, установки ресурса битов для каждого блока, преобразования пикселей каждого блока в двоичное представление, сканирования и кодирования, начиная с самой старшей значащей битовой плоскости и заканчивая самой младшей битовой плоскостью, и генерации файла сжатого изображения с кодированными пикселями, и средство хранения, соединенное с первым средством обработки, причем файл сжатого изображения хранится в средстве хранения. Средство кодирования выполнено с возможностью сканирования и кодирования пикселей по битовым плоскостям, и для текущей битовой плоскости оно содержит обработку всех существующих групп в блоке, причем для каждой группы, если все пиксели в текущей битовой плоскости имеют одинаковое значение, в поток битов записывается первый бит со значением 0, а затем записывается значение бита, обозначающее значение всех пикселей группы, а если все значения пикселей не имеют одинаковые значения, в поток битов записывается первый бит со значением 1, за которым следуют биты, по одному для каждого пикселя в текущей группе, обозначающие значение бита для данного пикселя в текущей битовой плоскости, генерирование новой группы и разбиение исходной группы, сохранение пикселей со значением 0 в исходной группе и помещение пикселей со значением 1 в новую группу. Устройство дополнительно содержит средство декодирования, выполняемое в первом средстве обработки, или второе средство обработки, соединенное с первым средством обработки, и средство декодирования выполнено с возможностью декодирования файла сжатого изображения для получения несжатого изображения. Средство декодирования содержит декодер, выполненный с возможностью декодирования файла сжатого изображения путем обработки каждого блока, начиная от MSB и заканчивая LSB, и обработки всех существующих групп для каждой битовой плоскости. Обработка группы в текущей битовой плоскости содержит считывание битов из потока битов, если бит имеет значение 0, то считывание второго бита из потока битов и установку данного значения в качестве значения бита для всех пикселей группы в текущей битовой плоскости, если бит имеет значение 1, то для каждого пикселя группы считывание одного бита из потока битов и установки его в качестве значения бита для данного пикселя в текущей битовой плоскости, генерирование новой группы и разбиение исходной группы на две, так что пиксели со значением 0 остаются в исходной группе, а пиксели со значением 1 располагаются в новой группе. Ресурс битов для каждого блока совместно используется блоками. Данное устройство является одним из группы устройств: персональный компьютер, портативный персональный компьютер, автоматизированное рабочее место, сервер, ЭВМ коллективного пользования (суперЭВМ), карманный компьютер, персональный цифровой помощник, сотовый/мобильный телефон, игровая приставка, цифровой фотоаппарат, цифровая видеокамера, камерофон, iPod®/iPhone, видеопроигрыватель, устройство воспроизведения/записи DVD, устройство воспроизведения/записи Blu-ray®, телевизор и бытовая аудио-, видео- и компьютерная система.
В еще одном объекте настоящего изобретения устройство обработки изображения с разреженной гистограммой содержит первый процессор для обработки пикселей изображения, и кодировщик, исполняемый в первом процессоре, для разделения изображения на блоки, установки ресурса битов для каждого блока, преобразования пикселей каждого блока в двоичное представление, сканирования и кодирования пикселей, начиная с самой старшей значащей битовой плоскости и заканчивая самой младшей битовой плоскостью, и генерирования файла сжатого изображения с кодированными пикселями, и запоминающее устройство, соединенное с первым устройством обработки, при этом файл сжатого изображения сохраняется в запоминающем устройстве. Кодировщик выполнен с возможностью сканирования и кодирования пикселей по битовым плоскостям, и для текущей битовой плоскости кодирования содержит обработку всех имеющихся групп в блоке, причем для каждой группы, если все пиксели в текущей битовой плоскости имеют одинаковое значение, в поток битов записывается первый бит со значением 0, а затем записывается значение бита, обозначающего значения всех пикселей группы, а если значения всех пикселей не имеют одинаковые значения, в поток битов записывается первый бит со значением 1, за которым следуют биты, по одному для каждого пикселя в текущей группе, обозначающие значение бита данного пикселя в текущей битовой плоскости, генерирование новой группы и разделение исходной группы на две, сохранение пикселей со значением 0 в исходной группе и помещение пикселей со значением 1 в новую группу. Устройство дополнительно содержит декодер, исполняемый в первом процессоре, или второе средство обработки, соединенное с первым средством обработки, и декодер выполнен с возможностью декодирования файла сжатого изображения для получения несжатого изображения. Декодер выполнен с возможностью декодирования файла сжатого изображения путем обработки каждого блока, начиная с MSB и заканчивая LSB, и обработки всех имеющихся групп для каждой битовой плоскости. Обработка группы в текущей битовой плоскости содержит считывание битов из потока битов, если бит имеет значение 0, считывание второго бита из потока битов и установку данного значения в качестве значения бита для каждого пикселя группы в текущей битовой плоскости, а если бит имеет значение 1, считывание для каждого пикселя группы одного бита из потока битов и установленного в качестве значения бита данного пикселя в текущей битовой плоскости, генерирование новой группы и разбиение исходной группы на две, так что пиксели со значением 0 остаются в исходной группе, а пиксели со значением 1 располагаются в новой группе. Ресурс битов для каждого блока совместно используется блоками. Данное устройство является одним из группы устройств: персональный компьютер, портативный персональный компьютер, автоматизированное рабочее место, сервер, ЭВМ коллективного пользования (суперЭВМ), карманный компьютер, персональный цифровой помощник, сотовый/мобильный телефон, игровая приставка, цифровой фотоаппарат, цифровая видеокамера, камерофон, iPod®/iPhone, видеопроигрыватель, устройство воспроизведения/записи DVD, устройство воспроизведения/записи Blu-ray®, телевизор и бытовая аудио-, видео- и компьютерная система.
Другим объектом настоящего изобретения является сеть устройств, содержащая устройство кодирования изображения, содержащее разделение изображения на блоки, установку ресурса битов для каждого блока, преобразование пикселей каждого блока в двоичное представление, сканирование и кодирование пикселей, начиная с самой старшей значащей битовой плоскости и заканчивая самой младшей значащей битовой плоскостью, и генерирование файла сжатого изображения с кодированными пикселями, и устройство декодирования для декодирования файла сжатого изображения путем обработки от MSB до LSB и обработки всех имеющихся групп для каждой битовой плоскости. Обработка группы текущей битовой плоскости содержит считывание битов из потока битов, и, если бит имеет значение 0, то считывание второго бита из потока битов и установку данного значения в качестве значения бита для каждого пикселя группы в текущей битовой плоскости, а если бит имеет значение 1, то считывание для каждого пикселя группы одного бита из потока битов и установки его в качестве значения бита для данного пикселя в текущей битовой плоскости, генерирование новой группы и разбиение исходной группы на две, так что пиксели со значением 0 остаются в исходной группе, а пиксели со значением 1 помещаются в новой группе. Устройство кодирования выполнено с возможностью сканирования и кодирования пикселей по битовым плоскостям, и кодирование текущей битовой плоскости содержит обработку всех имеющихся групп блока, при этом для каждой группы, если все пиксели в текущей битовой плоскости имеют одинаковое значение, в поток битов записывается первый бит со значением 0, а затем записывается значение бита, обозначающего значения всех пикселей группы, а если значения всех пикселей не имеют одинаковые значения, в поток битов записывается первый бит со значением 1, за которым следуют биты, по одному для каждого пикселя в текущей группе, обозначающие значение бита данного пикселя в текущей битовой плоскости, генерирование новой группы и разделение исходной группы на две, при этом пиксели со значением 0 остаются в исходной группе, а пиксели со значением 1 помещаются в новую группу. Ресурс битов для каждого блока совместно используется блоками.
В некоторых вариантах осуществления множество блоков могут совместно друг с другом использовать ресурс битов, так что большее количество битов может быть выделено для блоков, которые трудно закодировать. Это позволяет улучшить общую эффективность кодирования. В одном из крайних случаев, один ресурс битов может совместно использоваться всеми блоками в изображении. В другом крайнем случае, каждый блок имеет собственный ресурс битов. Возможен любой из вариантов ресурса битов, начиная от одного ресурса битов для всех блоков, и заканчивая вариантом, когда каждый блок имеет свой ресурс битов.
Краткое описание чертежей
Фиг.1 иллюстрирует схематическую диаграмму дискретного косинусного преобразования изображения и соответствующую гистограмму согласно предыдущему уровню техники.
Фиг.2 иллюстрирует типичное графическое изображение.
Фиг.3 иллюстрирует блок-схему способа кодирования изображения в соответствии с некоторыми вариантами осуществления.
Фиг.4 иллюстрирует блок-схему EGC-кодирования для битовой плоскости в блоке в соответствии с некоторыми вариантами осуществления.
Фиг.5 иллюстрирует блок-схему EGC-кодирования для блока в соответствии с некоторыми вариантами осуществления.
Фиг.6 иллюстрирует блок-схему EGC-кодирования для нескольких блоков, совместно использующих ресурс битов, в соответствии с некоторыми вариантами осуществления.
Фиг.7 иллюстрирует блок-схему EGC-декодирования для битовой плоскости в блоке в соответствии с некоторыми вариантами осуществления.
Фиг.8 иллюстрирует блок-схему EGC-декодирования одного блока в соответствии с некоторыми вариантами осуществления.
Фиг.9 иллюстрирует блок-схему EGC-декодирования для нескольких блоков, совместно использующих ресурс битов, в соответствии с некоторыми вариантами осуществления.
Фиг.10 иллюстрирует схематический чертеж системы для кодирования и декодирования графического изображения с использованием EGC в соответствии с некоторыми вариантами осуществления.
Подробное описание предпочтительного варианта осуществления
Что касается чертежей, для иллюстративных целей кодирование встраиваемой графики для изображений с разреженной гистограммой реализовано в устройстве, в общем виде показанного на фигурах, не относящихся к предыдущему уровню техники. Стоит оценить по достоинству, что устройство может быть изменено как в конфигурации, так и особенностях деталей, и что способ может быть изменен в отдельных шагах или их последовательности, без отклонения от раскрытых далее основных идей.
Кодирование встраиваемой графики для изображений с разреженной гистограммой включает в себя алгоритм кодирования, системы и способы для кодирования изображений с разреженной гистограммой, т.е. типичных для (но не ограниченных ими) графических или текстовых изображений.
Алгоритм, системы и способы используют новый процесс обработки, называемый Embedded Graphics Coding (EGC - Кодирование Встраиваемой Графики), который обеспечивает сжатие с потерями или без потерь, когда даже если декодирование остановится в середине потока битов, декодер сможет создать приемлемый декодированный блок на основе принятых битов. Если был отправлен весь поток битов, изображение может быть восстановлено без потерь.
Алгоритм, системы и способы, описанные здесь, просты и имеют высокую производительность кодирования.
На фиг.3 показана блок-схема процесса 30 кодирования изображения с разреженной гистограммой. Сначала на шаге 32 изображение разделяют на блоки. Затем на шаге 34 устанавливают ресурс битов для каждого блока. Ресурс обычно согласовывается между кодировщиком и декодером. Кодировщик и декодер могут быть выполнены с возможностью динамического изменения ресурса битов, если ширина полосы пропускания меняется со временем. Закодированный поток битов является полностью встроенным, так что ресурс битов может быть изменен произвольно.
Для каждого блока на шаге 36 пиксели изображения преобразуются в двоичное представление. Следует отметить, что кодировщику нет необходимости выполнять прогнозирование или трансформацию, поскольку предполагается, что пиксели уже имеют разреженную гистограмму. Отсутствие прогнозирования и трансформации сокращает количество вычислений и требуемую мощность обработки.
Затем, на шаге 38, пиксели каждого блока сканируются и кодируются в последовательности расположения битовых плоскостей. Битовая плоскость в цифровом изображении является набором битов, имеющих одинаковую позицию в соответствующем двоичном числе. Например, в случае 8-битового представления данных существует 8 битовых плоскостей. Первая битовая плоскость содержит набор самого старшего значащего бита, а 8-я битовая плоскость содержит самый младший значащий бит.Сначала сканируется и кодируется самая старшая значащая битовая плоскость (MSB), далее процесс переходит к следующей менее значащей битовой плоскости и т.д., пока не будет отсканирована самая младшая значащая битовая плоскость (LSB). Процесс кодирования каждой битовой плоскости подробно описан далее.
На шаге 40 кодирование останавливается. Кодирование останавливается в одном из двух случаев: 1) ресурс битов для текущего блока исчерпан, или 2) если реконструируемый блок достиг конца LSB. В этом случае, декодер также определяет конец блока.
На фиг.4 показана блок-схема кодирования битовой плоскости в блоке согласно некоторым вариантам осуществления. На шаге 50 получают количество (N) существующих групп. На шаге 52 текущая группа устанавливается как группа 1. На шаге 54 алгоритм вычисляет, имеют ли пиксели текущей группы одинаковое значение бита в текущей битовой плоскости.
Если все пиксели в группе имеют одинаковое значение бита, на шаге 56 в битовый поток записывают 0, за которым следует 0 или 1, обозначающие значение бита для всех пикселей в текущей группе.
Если пиксели группы не имеют одинакового значения, на шаге 58 в битовый поток записывают значение 1, за которым следуют значения битов каждого пикселя в текущей группе. На шаге 60 генерируется новая группа без увеличения N. На шаге 62 группа разбивается на две, и пиксели со значением 0 остаются в той же группе, а пиксели со значением 1 помещаются в новую группу.
На шаге 64 кодировщик вычисляет, является ли текущая группа группой N. Если текущая группа не является группой N, то на шаге 66 процесс переходит к следующей группе и процесс возобновляется с шага 54. Если текущей группой является группа N, то кодирование текущей битовой плоскости завершается.
На фиг.5 показана блок-схема EGC-кодирования для блока согласно некоторым вариантам осуществления. На шаге 68 все пиксели блока помещаются в группу 1. На шаге 70 текущая битовая плоскость устанавливается как MSB. На шаге 72 текущая битовая плоскость кодируется с использованием способа, приведенного на фиг.4. На шаге 74 определяют, является ли текущая битовая плоскость LSB. Если текущая битовая плоскость не является LSB, то на шаге 76 процесс переходит к следующей битовой плоскости и процесс возобновляется с шага 72. Если текущей битовой плоскостью является LSB, то кодирование текущего блока завершается.
На фиг.6 показана блок-схема EGC-кодирования для нескольких блоков, которые совместно используют ресурс битов, согласно некоторым вариантам осуществления. На шаге 78 пиксели каждого блока располагают в одной и той же группе для каждого блока (пиксели разных блоков располагаются в разных группах). На шаге 80 текущая битовая плоскость устанавливается как MSB. На шаге 82 текущий блок устанавливается как первый блок. На шаге 84 текущая битовая плоскость текущего блока кодируется с использованием способа, показанного на фиг.4. На шаге 86 определяют, является ли текущий блок последним блоком. Если текущий блок не является последним блоком, то на шаге 88 процесс переходит к следующему блоку и процесс возобновляется с шага 84. Если текущий блок является последним блоком, то на шаге 90 определяют, является ли текущая битовая плоскость LSB. Если текущая битовая плоскость не является LSB, то на шаге 92 процесс переходит к следующей битовой плоскости и возобновляется с шага 82.
На фиг.7 показана блок-схема EGC-декодирования битовой плоскости в блоке согласно некоторым вариантам осуществления. На шаге 100 получают число (N) существующих битовых плоскостей. На шаге 102 текущая группа устанавливается как группа 1. На шаге 104 бит считывается из потока битов. На 106 определяют, содержит ли бит значение 0. Если его значение равно 0, то на шаге 108 считывают следующий бит из потока битов и устанавливают его значение в качестве значения всех пикселей в группе для текущей битовой плоскости. Например, если второй считанный бит равен 1, то все биты устанавливаются равными 1. Если значение бита не равно 0, то на шаге 110 биты считываются из потока битов для всех пикселей группы, и данное значение бита устанавливается как значение бита данного пикселя в текущей битовой плоскости. На шаге 112 генерируется новая группа без увеличения N. На шаге 114 группа разбивается, и пиксели со значением 0 остаются в той же группе, а пиксели со значением 1 помещаются в новую группу. На шаге 116 определяют, является ли текущая группа группой N. Если текущая группа не является группой N, то на шаге 118 процесс переходит к следующей группе. Если текущая группа является группой N, то декодирование текущей битовой плоскости завершается.
На фиг, 8 показана блок-схема EGC-декодирования одного блока в соответствии с некоторыми вариантами осуществления. На шаге 120 все пиксели блока располагают в группе 1. На шаге 122 текущая битовая плоскость устанавливается как MSB. На шаге 124 текущая битовая плоскость декодируется с использованием способа, показанного на фиг.7. На шаге 126 определяют, является текущая битовая плоскость LSB. Если текущая битовая плоскость не является LSB, то на шаге 128 процесс переходит к следующей битовой плоскости, и процесс возобновляется с шага 124. Если текущая битовая плоскость является LSB, то декодирование текущего блока завершается.
На фиг.9 показана блок-схема EGC-декодирования нескольких блоков, совместно использующих ресурс битов, согласно некоторым вариантам осуществления. На шаге 130 пиксели каждого блока помещаются в одну группу для каждого блока (пиксели разных блоков помещаются в разные группы). На шаге 132 текущая битовая плоскость устанавливается как MSB. На шаге 134 текущий блок устанавливается как первый блок. На шаге 136 текущая битовая плоскость текущего блока декодируется с использованием способа, показанного на фиг.7. На шаге 138 определяют, является ли текущий блок последним блоком. Если текущий блок не является последним блоком, то на шаге 140 процесс переходит к следующему блоку и возобновляется с шага 136. Если текущий блок является последним блоком, то на шаге 142 определяют, является ли текущая битовая плоскость LSB. Если текущая битовая плоскость является LSB, то декодирование завершается. Если текущая битовая плоскость не является LSB, то на шаге 144 процесс переходит к следующей битовой плоскости и процесс возобновляется с шага 134.
В некоторых вариантах осуществления несколько блоков могут совместно друг с другом использовать ресурс битов, так что большее количество битов может быть выделено для блоков, которые трудно закодировать. Это позволяет улучшить общую производительность кодирования. В одном из крайних случаев, один ресурс битов может совместно использоваться всеми блоками в изображении. В другом крайнем случае, каждый блок имеет собственный ресурс битов. Возможен любой из вариантов ресурса битов, начиная от одного ресурса битов для всех блоков, и заканчивая вариантом, когда каждый блок имеет свой ресурс битов.
В некоторых случаях, алгоритм выполняет реконструкцию пикселей частично восстановленного изображения. Если пиксель был декодирован до LSB, то декодер знает истинное значение пикселя. Если декодирование пикселя остановилось где-то посередине, то декодер знает только диапазон значений, в котором находится значение пикселя.
Например, если первые пять битовых плоскости были декодированы как 10110 и другие 3 битовых плоскости остались неизвестными декодеру, то истинное значение пикселя лежит в диапазоне 10110000~10110111 (в двоичном представлении). В этом случае декодер выбирает для реконструкции среднее значение и устанавливает неизвестные биты в значение 100 0. В вышеприведенном примере реконструированным значением будет 10110100.
На фиг.10 показана примерная система 200 для кодирования и декодирования графического изображения с разреженной гистограммой согласно некоторым вариантам осуществления. Необработанное изображение 202 обрабатывается первым устройством 204, содержащим процессор 206 и кодировщик 208 согласно некоторым вариантам осуществления. Устройства 204 и 214 могут быть персональным компьютером, автоматизированным рабочим местом, сервером, ЭВМ коллективного пользования (суперЭВМ), карманным компьютером, персональным цифровым помощников, сотовым/мобильным телефоном, игровой приставкой, цифровым фотоаппаратом, цифровой видеокамерой, камерофоном, iPod®/iPhone, видеопроигрывателем, устройством воспроизведения/записи DVD, устройством воспроизведения/записи Blu-ray®, телевизором, аудио-, видео и компьютерная системой или другим устройством, содержащим процессор 206 и память или другое средство 209 хранения для хранения модуля 208 кодирования. Необработанное изображение может быть впоследствии закодировано с использованием модуля 208 кодирования, содержащего средство программирования/кодирования (т.е. с помощью алгоритмов/процессов, описанных выше) для формирования файла 210 сжатого изображения. Данный файл может быть отправлен через Интернет 212 или подобную сеть на второе устройство 214. Второе устройство 214 содержит процессор 216, память или устройство 219 хранения и модуль 218 декодирования, который содержит средство программирования/декодирования, выполненные с возможностью чтения данных файла 210 сжатого изображения и его декодирования в соответствии со способами, описанными в данном документе (т.е. алгоритмами/процессами, описанными выше) для генерирования несжатого изображения 220. Необходимо понимать, что оба устройства могут включать в себя модуль 208 кодирования и модуль 218 декодирования, и наоборот, и могут выполнять как операции кодирования,так и декодирования.
Пример 1
В случае типичного 8-битового изображения половина пикселей имеет нулевое значение, а другие пиксели имеют значение 255. Расположение пикселей со значением 0 и 255 является случайным. Теоретически, по меньшей мере, 1 бит на пиксель является необходимым для выполнения сжатия без потерь. Обычные алгоритмы кодирования изображений не могут обеспечить сжатие без потерь, близкое к 1 биту на пиксель (за исключением упаковки гистограмм).
В алгоритме кодирования встраиваемой графики (т.е. в алгоритме 38 кодирования), 1 отправляется в MSB для указания того, что исходная группа была разбита на две группы, и по 1 биту на пиксель отправляются как значения битов каждого пикселя в MSB. В противном случае, отправляется 0 для указания того, что все пиксели группы одинаковые.
Для следующих битовых плоскостей посылается 00 для группы со значением 0 и 01 посылается для группы со значением 255.
Общее количество битов для блока при сжатии без потерь равно
1+n+4×7=n+29
где n соответствует количеству пикселей в блоке.
Средняя скорость передачи битов составляет (1+29/n) битов на пиксель, что близко к теоретическому пределу для рационального размера блока (т.е. когда n=8×8=64).
Алгоритм кодирования также может быть выполнен так, что если группа имеет только 1 или 2 элемента, то 1-битовый сигнал разделен-или-нет не отсылается, и биты детализации отсылаются напрямую.
Также, порядок в битовом потоке может быть реорганизован для лучшей встраиваемости. Если группа разбита, отправка ее битов детализации задерживается и алгоритм переходит далее к обработке следующей группы. Существует возможность, что следующая группа не разбита, и, таким образом, один бит может быть использован для представления нескольких битов. Также, если передача потока битов была остановлена на середине битовой плоскости, такой подход обеспечивает лучшее качество реконструкции.
Возможны некоторые видимые паразитные эффекты, если детализация группы остановилась в середине группы. Для избежания данной проблемы декодер может быть выполнен с возможностью отказа от детализации группы, если некоторые из битов детализации текущей группы не были получены.
В качестве альтернативного варианта осуществления, вместо отправки бита разделен-или-нет и обработанных битов как необработанных битов, биты могут также быть закодированы с использованием группового кодирования или двоичного арифметического кодирования для дополнительного улучшения эффективности кодирования.
Способы кодирования встраиваемой графики также пригодны в качестве дополнения к обычному кодированию изображений. Кодирование встраиваемой графики может быть совмещено с любым алгоритмом кодирования изображения на основе блоков. В этом случае, 1 бит в потоке битов поможет указать декодеру, что используется EGC-кодирование.
Варианты осуществления были описаны со ссылками на блок-схемы, иллюстрирующие способы и системы согласно некоторым вариантам осуществления. Данные способы и системы также могут быть реализованы как компьютерные программы. В этом случае, каждый блок или шаг блок-схемы, и комбинации блоков (и/или шагов) блок-схемы могут быть выполнены с помощью различных средств: аппаратных, встроенного ПО и/или ПО, включающего в себя одну или более программных команд, находящихся на доступным для чтения компьютером носителе. Должно быть понятно, что любые такие компьютерные программные команды могут быть загружены в компьютер, который может быть, без ограничений, универсальным компьютером, специализированным компьютером или другим программируемым устройством обработки, и такие программные команды, выполняемые компьютером или другим программируемым устройством, создают средство для реализации функций, приведенных в блоке (блоках) блок-схемы (блок-схем).
Соответственно, блоки в блок-схемах поддерживают комбинацию средств для выполнения конкретных функций, комбинацию шагов для выполнения конкретных функций и компьютерные команды, которые содержаться в компьютерном средстве, для выполнения конкретных функций. Также необходимо понимать, что каждый блок в блок-схемах, и комбинация блоков в блок схемах, могут быть реализованы специализированной аппаратной компьютерной системой, которая выполняет указанные функции или шаги, или комбинацией специальной аппаратуры и компьютерных команд.
Кроме того, данные компьютерные команды, встроенные в компьютерный программный код, могут храниться в компьютерной памяти и управляют компьютером или другим программируемым устройством для его функционирования необходимым образом, так что команды, хранящиеся в компьютерной памяти, образуют продукт, включающий в себя программное средство выполнения инструкций, который реализует функции, определенные в блоке (блоках) блок-схемы (блок-схем). Компьютерные программные команды также могут быть загружены на компьютер или другое программируемое устройство, позволяя компьютеру или другому программируемому устройству выполнять последовательность операционных шагов для выполнения компьютерного процесса так, что данные команды, выполняемые компьютером или другим программируемым устройством, являются шагами для реализации функций, определенных в блоке (блоках) блок-схемы (блок-схем).
Для использования EGC для изображений с разреженной гистограммой, пользователь получает видео/изображение, например, цифровой камерой, и в процессе получения видео или после него, или во время отправки видео на другое устройство, например, компьютер, EGC-способ автоматически кодирует каждое изображение видео, так что видео кодируется надлежащим образом для поддержки высокого качества видео. Способ EGC используется автоматически без вмешательства пользователя. Видео также может быть декодировано с использованием аналогичного способа для своего отображения.
При работе способ EGC используют для кодирования и передачи видеоизображений. Каждый блок изображения обрабатывается от MSB до LSB, поэтому результирующая битовая плоскость по-прежнему встроена. Улучшенный способ кодирования может быть использован в любой реализации, включающей в себя, но этим не ограниченной, беспроводным HDMI (WiHD).
Способ для изображений с разреженной гистограммой, описанный здесь, может быть использован для видео и/или изображений, включающих видео высокой четкости.
Видео высокой четкости может быть в любом формате, включающим в себя, но этим не ограниченным, HDCAM, HDCAM-SR, DVCPRO HD, D5 HD, XDCAM HD, HDV и AVCHD.
Некоторые варианты осуществления кодирования встраиваемой графики для изображений с разреженной гистограммой
1. Способ обработки изображения, содержащий этапы, на которых:
разделяют изображение на блоки при помощи первого процессора;
устанавливают ресурс битов для каждого блока;
преобразуют пиксели каждого блока в двоичное представление;
сканируют и кодируют пиксели от самой старшей значащей битовой плоскости до самой младшей значащей битовой плоскости;
генерируют файл сжатого изображения с кодированными пикселями и сохраняют файл сжатого изображения в памяти, соединенной с первым процессором.
2. Способ по п.1, в котором изображение содержит изображение с разреженной гистограммой.
3. Способ по п.1, в котором сканирование и кодирование пикселей каждой битовой плоскости содержит обработку каждой имеющейся группы в битовой плоскости, дополнительно содержащей этапы, на которых:
если все значения пикселей в группе имеют одинаковое значение в текущей битовой плоскости, то в поток битов записывают первый бит со значением 0; и
в поток битов записывают второй бит со значением, обозначающим значение всех пикселей в текущей группе.
4. Способ по п.3, дополнительно содержащий этапы, на которых:
если не все значения пикселей группы в текущей битовой плоскости имеют одинаковое значение, записывают в поток битов первый бит со значением 1, за которым следуют по одному биту для каждого пикселя в текущей битовой плоскости, обозначающему битовое значение данного пикселя в текущей битовой плоскости;
генерируют новую группу; и
разбивают исходную группу на две, оставляя пиксели со значением 0 в исходной группе и помещая пиксели со значением 1 в новую группу.
5. Способ по п.4, дополнительно содержащий этап, на котором декодируют файл сжатого изображения при помощи второго процессора для разуплотнения изображения.
6. Способ по п.5, в котором декодирование файла сжатого изображения содержит этапы, на которых сканируют и декодируют пиксели, начиная от самой старшей значащей битовой плоскости и заканчивая самой младшей значащей битовой плоскостью, и для каждой битовой плоскости:
а. получают количество имеющихся групп;
b. устанавливают текущую группу как первую группу;
с. считывают бит из потока битов;
d. если бит имеет значение 0, то считывают второй бит из потока битов и устанавливают его значение в качестве битового значения всех пикселей группы в текущей битовой плоскости;
е. если бит имеет значение 1, то для каждого пикселя в группе считывают один бит из потока битов и его значение устанавливают как значение бита данного пикселя в текущей битовой плоскости, генерируют новую группу и разбивают новую группу на первую группу и вторую группу, так что пиксели со значением 0 попадают в первую группу, а пиксели со значением 1 попадают во вторую группу; и
f. повторяют этапы с-е до достижения конца текущей битовой плоскости.
7. Способ по п.1, в котором битовый ресурс каждого блока совместно используется блоками.
8. Способ по п.1, в котором первый процессор расположен в устройстве из следующей группы устройств: персональный компьютер, переносной компьютер, автоматизированное рабочее место, сервер, ЭВМ коллективного пользования, карманный компьютер, персональный цифровой помощник, сотовый/мобильный телефон, смартфон, игровая консоль, цифровая камера, цифровая видеокамера, камерофон, iPod®/iPhone, видеопроигрыватель, устройство записи/воспроизведения DVD, устройство записи/воспроизведения Blu-ray®, телевизор и бытовая развлекательная система.
9. Устройство обработки изображения, содержащее;
первый процессор, выполненный с возможностью обработки пикселей изображения; и
программу, используемую в первом процессоре для
разделения изображения на блоки;
установки ресурса битов для каждого блока;
преобразования пикселей каждого блока в двоичное представление;
сканирования и кодирования пикселей от самой старшей значащей битовой плоскости до самой младшей значащей битовой плоскости; и
генерирования файла сжатого изображения с кодированными пикселями.
10. Устройство по п.9, дополнительно содержащее память, соединенную с первым процессором, причем файл сжатого изображения хранится в памяти.
11. Устройство по п.9, в котором программа выполнена с возможностью сканирования и кодирования пикселей в каждой битовой плоскости, содержащего обработку каждой имеющейся группы в битовой плоскости, дополнительно содержащую:
если все значения пикселей в группе имеют одинаковое значение в текущей битовой плоскости, запись в поток битов первого бита со значением 0; и
запись в поток битов второго бита со значением, обозначающим значение всех пикселей в текущей группе.
12. Устройство по п.11, в котором программа дополнительно выполнена с возможностью сканирования и кодирования пикселей, содержащего:
если не все значения пикселей группы в текущей битовой плоскости имеют одинаковое значение, запись в поток битов первого бита со значением 1, за которым следуют по одному биту для каждого пикселя в текущей группе, обозначающему значение бита данного пикселя в текущей битовой плоскости;
генерирование новой группы; и
разбиение исходной группы на две, при этом пиксели со значением 0 остаются в исходной группе, а пиксели со значением 1 помещаются в новую группу.
13. Устройство по п.12, дополнительно содержащее:
вторую программу, выполняемую первым процессором или вторым процессором;
причем вторая программа выполнена с возможностью декодирования файла сжатого изображения в несжатое изображение.
14. Устройство по п.13, в котором декодер дополнительно выполнен с возможностью сканирования и декодирования пикселей от самой старшей значащей битовой плоскости до самой младшей значащей битовой плоскости и с возможностью для каждой битовой плоскости:
а. получения количества имеющихся групп;
b. установки текущей группы как первой группы;
с. считывания бита из потока битов;
d. если бит имеет значение 0, считывания второго бита из потока битов и установки его значения в качестве битового значения всех пикселей группы в текущей битовой плоскости;
е. если бит имеет значение 1, считывания для каждого пикселя в группе одного бита из потока битов и установки его в качестве битового значения данного пикселя в текущей битовой группе, генерирования новой группы и разбиения новой группы на первую группу и вторую группу, так что пиксели со значением 0 попадают в первую группу, а пиксели со значением 1 попадают во вторую группу; и
f. повторение этапов с-е до достижения конца текущей битовой плоскости.
15. Устройство по п.9, в котором ресурс битов каждого блока совместно используется блоками.
16. Устройство по п.9, в котором первый процессор расположен в устройстве, выбираемом из группы устройств: персональный компьютер, переносной компьютер, автоматизированное рабочее место, сервер, ЭВМ коллективного пользования, карманный компьютер, персональный цифровой помощник, сотовый/мобильный телефон, смартфон, игровая консоль, цифровая камера, цифровая видеокамера, камерофон, iPod®/iPhone, видеопроигрыватель, устройство записи/воспроизведения DVD, устройство записи/воспроизведения Blu-ray®, телевизор и бытовая развлекательная система.
17. Устройство для обработки изображения с разреженной гистограммой, содержащее:
первое обрабатывающее средство для обработки пикселей изображения;
кодирующее средство, исполняемое первым обрабатывающим средством для,
разделения изображения на блоки;
установки ресурса битов для каждого блока;
преобразования пикселей каждого блока в двоичное представление;
сканирования и кодирования пикселей от самой значащей битовой плоскости и до самой младшей битовой плоскости; и
генерирования файла сжатого изображения с закодированными пикселями.
18. Устройство по п.17, в котором кодирующее средство выполнено с возможностью сканирования и кодирования пикселей каждой битовой плоскости, которое содержит обработку каждой существующей группы в битовой плоскости, и которое дополнительно содержит:
если все значения пикселей в группе имеют одинаковое значение в текущей битовой плоскости, то запись в поток битов первого бита со значением 0; и
запись в поток битов второго бита со значением, обозначающим значение всех пикселей в текущей группе.
19. Устройство по п.18, в котором кодирующее средство выполнено возможностью сканирования и кодирования пикселей посредством:
если не все значения пикселей группы для текущей битовой плоскости имеют одинаковое значение, записи в поток битов первого бита со значением 1, за которым следом записывают по одному биту для каждого пикселя в текущей битовой плоскости, обозначающего битовое значение данного пикселя в текущей битовой плоскости;
генерирования новой группы; и
разбиения исходной группы на две, и пиксели со значением 0 остаются в исходной группе, а пиксели со значением 1 помещаются в новой группе.
20. Устройство по п.19, дополнительно содержащее:
средство декодирования, выполняемое первым обрабатывающим средством, или вторым обрабатывающим средством, подключенным к первому обрабатывающему средству; и
средство декодирования выполнено с возможностью декодирования файла сжатого изображения в несжатое изображение.
21. Устройство по п.20, в котором средство декодирования содержит декодер, выполненный с возможностью декодирования файла сжатого изображения сканированием и декодированием пикселей от самой значащей битовой плоскости и заканчивая самой младшей битовой плоскостью, и для каждой битовой плоскости:
а. получают количество существующих групп;
b. устанавливают текущую группу как первую группу;
с. считывают бит из потока битов;
d. если бит имеет значение 0, то считывают второй бит из потока битов и используют его значение для установки значения всех битов группы в текущей битовой плоскости;
е. если бит имеет значение 1, то для каждого пикселя в группе последовательно считывают один бит из потока битов и устанавливают его как значение бита данного пикселя в текущей битовой группе, генерируют новую группу и новую группу разбивают на первую группу и вторую группу, так что пиксели со значением 0 попадают в первую группу, а пиксели со значением 1 попадают во вторую группу; и
f. повторение этапов с-е до достижения конца текущей битовой плоскости.
22. Устройство по п.17, в котором ресурс битов каждого блока совместно используется блоками.
23. Устройство по п.17, в котором первый процессор расположен в устройстве, выбираемом из группы устройств: персональный компьютер, переносной компьютер, автоматизированное рабочее место, сервер, ЭВМ коллективного пользования, карманный компьютер, персональный цифровой помощник, сотовый/мобильный телефон, смартфон, игровая консоль, цифровая камера, цифровая видеокамера, камерофон, IPod®/iPhone, видеопроигрыватель, устройство записи/воспроизведения DVD, устройство записи/воспроизведения Blu-ray®, телевизор и бытовая развлекательная система.
24. Устройство обработки изображения с разреженной гистограммой, содержащее:
первый процессор для обработки пикселей изображения; и
программу, выполняемую первым процессором для,
разделения изображения на блоки;
установки ресурса битов для каждого блока;
преобразования пикселей каждого блока в двоичное представление;
сканирования и кодирования пикселей от самой значащей битовой плоскости и до самой младшей битовой плоскости; и
генерирования файла сжатого изображения с закодированными пикселями.
25. Устройство по п.24, в котором кодировщик выполнен с возможностью сканирования и кодирования пикселей, включающего в себя:
запись в поток битов значения первого бита, обозначающего, что все биты имеют одинаковые значения, если все значения пикселей имеют одинаковое значение; и
запись в поток битов второго бита со значением, обозначающим значение всех пикселей в текущей группе.
26. Устройство по п.25, в котором кодировщик выполнен с возможностью сканирования и кодирования пикселей каждой битовой плоскости, содержащий обработку существующей группы в битовой плоскости, дополнительно содержит:
если значения пикселей в группе все имеют одинаковое значение в текущей битовой плоскости, то в поток битов записывают значение 0;
второй бит, записываемый в поток битов, имеет значение, обозначающее значение всех пикселей в текущей группе;
если не все значения пикселей в группе имеют одинаковое значение в текущей битовой плоскости, то в битовый поток записывают значение 1, за которым следует последовательность битов, состоящая из одного бита для каждого пикселя текущей группы, обозначающая значение бита данного пикселя в текущей битовой плоскости;
генерирование новой группы; и
разбиение исходной группы на две, где пиксели со значением 0 расположены в исходной группе и пиксели со значением 1 расположены в новой группе.
27. Устройство по п.26, дополнительно содержащее:
декодер, исполняемый первым средством обработки или вторым средством обработки, подключенным к первому средству обработки; и
данный декодер выполнен с возможностью декодирования файла сжатого изображения в несжатое изображение.
28. Устройство по п.27, в котором декодер выполнен с возможностью декодирования файла сжатого изображения сканированием и декодированием пикселей от самой значащей битовой плоскости и заканчивая самой младшей битовой плоскостью, и для каждой битовой плоскости:
а. получают количество существующих групп;
b. устанавливают текущую группу как первую группу;
с. считывают бит из потока битов;
d. если бит имеет значение 0, то считывает второй бит из потока битов и используют его значение для установки значения всех битов группы в текущей битовой плоскости;
е. если бит имеет значение 1, то для каждого пикселя в группе считывают один бит из потока битов и устанавливают его как битовое значение данного пикселя в текущей битовой группе, генерируют новую группу и новую группу разбивают на первую группу и вторую группу, так что пиксели со значением 0 попадают в первую группу, а пиксели со значением 1 попадают во вторую группу; и
f. повторение этапов с-е до достижения конца текущей битовой плоскости.
29. Устройство по п.24, в котором ресурс битов каждого блока совместно используется блоками.
30. Устройство по п.24, в котором устройство является одним из следующей группы устройств: персональным компьютером, переносным компьютером, автоматизированным рабочим местом, серверов, ЭВМ коллективного пользования, карманным компьютером, персональным цифровым помощником, сотовым/мобильным телефоном, смартфоном, игровой консолью, цифровой камерой, цифровой видеокамерой, камерофоном, iPod®/iPhone, видеопроигрывателем, устройством записи/воспроизведения DVD, устройством записи/воспроизведения Blu-ray®, телевизором и бытовой развлекательной системой.
31. Сеть устройств, содержащая:
а. устройство кодирования для кодирования изображения, содержащее:
i. разделение изображения на блоки;
ii. установку ресурса битов для каждого блока;
iii. преобразование пикселей каждого блока в двоичное представление;
iv. сканирование и кодирование пикселей от самой значащей битовой плоскости и до самой младшей битовой плоскости; и
v. генерирования файла сжатого изображения с закодированными пикселями; и
b. устройство декодирования для декодирования файла сжатого изображения, содержащее сканирование и декодирование пикселей, начиная с самой значащей битовой плоскости и заканчивая самой младшей битовой плоскостью, и для каждой плоскости выполняются шаги по:
i. получению числа существующих групп;
ii. установки текущей группы как первой группы;
iii. чтения бита из потока битов;
iv. если бит имеет значение 0, то считывают второй бит из потока битов и его значение используют для установки значения всех битов группы в текущей битовой плоскости;
v. если бит имеет значение 1, то для каждого пикселя в группе считывают один бит из потока битов и устанавливает его как значение бита данного пикселя в текущей битовой группе, генерируют новую группу и новую группу разбивают на первую группу и вторую группу, так что пиксели со значением 0 попадают в первую группу, а пиксели со значением 1 попадают во вторую группу; и
vi. повторение шагов iii-v до достижения конца текущей битовой плоскости.
32. Устройство по п.31, в котором устройство кодирования выполнено с возможностью сканирования и кодирования пикселей каждой битовой плоскости, содержащее обработку каждой существующей группы в битовой плоскости, которое дополнительно содержит:
если значения пикселей в группе все имеют одинаковое значение в текущей битовой плоскости, то в битовый поток записывают значение 0;
второй бит, записываемый в битовый поток, имеет значение, обозначающее значение всех пикселей в текущей группе;
33. Устройство по п.32, в котором устройство кодирования, выполненное с возможностью сканирования и кодирования пикселей, содержит:
если значения пикселей в группе не все имеют одинаковое значение в текущей битовой плоскости, то в поток битов записывают значение 1, за которым следует последовательность битов, состоящая из одного бита для каждого пикселя текущей группы, обозначающая значение бита данного пикселя в текущей битовой плоскости;
генерирование новой группы; и
разбиение исходной группы на две, где пиксели со значением 0 расположены в исходной группе и пиксели со значением 1 расположены в новой группе.
34. Устройство по п.33, в котором ресурс битов каждого блока совместно используется блоками.
Настоящее изобретение было описано на основе конкретных вариантов осуществления, включающих подробности для облегчения понимания принципов работы и структуры изобретения. Такая ссылка на приведенные здесь конкретные варианты осуществления не означает ограничение объема приложенной к этому документу формулы изобретения. Специалистам в данной области техники должно быть очевидно, что возможны различные модификации вариантов осуществления, выбранных для иллюстрации, без отклонения от идеи и объема изобретения, определяемого формулой изобретения.
Класс H04N7/26 с использованием уменьшения ширины полосы частот
Класс H03M7/42 с использованием обращений к таблице в процессе кодирования или декодирования, например с использованием постоянного ЗУ