УСТРОЙСТВО ОБРАБОТКИ ИЗОБРАЖЕНИЯ, СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЯ И ПРОГРАММА ОБРАБОТКИ ИЗОБРАЖЕНИЯ
IMAGE PROCESSING DEVICE, AN IMAGE PROCESSING METHOD AND AN IMAGE PROCESSING PROGRAM

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее изобретение относится к устройству обработки изображения, способу обработки изображения и программе обработки изображения и, более конкретно, к устройству обработки изображения, способу обработки изображения и программе обработки изображения, которые выполняют обработку изображения для доставки видео.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
[0002] Устройство обработки изображения согласно патентному документу 1 ограничивает величины кода для интра- (внутри-кадрового) предсказания и интер- (меж-кадрового) предсказания в свою очередь при выполнении кодирования видео. Кроме того, в устройстве обработки изображения согласно патентному документу 1, когда величина кода в расчете на картинку, как ожидается, превышает предопределенный верхний предел, кодированием управляют, чтобы сдерживать величину кода, что позволяет избегать превышения верхнего предела.
СПИСОК ЦИТИРОВАННЫХ ИСТОЧНИКОВ
Патентные документы
[0003] Патентный документ 1: JP 2010-233263 A
КРАТКОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Техническая проблема
[0004] В патентном документе 1, доставка видео основывается на сжатии с потерями и, таким образом, кодирование видео с большим количеством изменений обрабатывается путем увеличения скорости сжатия. С другой стороны, для доставки видео со сжатием без потерь, поскольку не приходится ожидать улучшения в скорости сжатия, существует проблема, состоящая в том, что величина кода увеличивается, когда имеется ввод видео с большим количеством изменений.
[0005] Задача настоящего изобретения заключается в том, чтобы передавать дифференциальные блоки и циклические блоки иные, чем дифференциальные блоки, с соответствующей величиной кода путем деления экрана на множество блоков и выбора блоков, подлежащих кодированию и передаче, при прохождении через множество блоков циклическим образом.
Решение задачи
[0006] Устройство обработки изображения в соответствии с настоящим изобретением включает в себя:
модуль обнаружения различия для сравнения доставляемого изображения, разделенного на множество блоков, со сравниваемым изображением на поблочной основе для обнаружения блоков, имеющих отличия от сравниваемого изображения, в качестве дифференциальных блоков, из множества блоков, причем доставляемое изображение доставляется среди множества изображений, подлежащих последовательной доставке, и сравниваемое изображение сравнивается с доставляемым изображением среди множества изображений;
модуль выбора дифференциальных блоков для выбора одного или более блоков, подлежащих кодированию и передаче, в качестве одного или нескольких блоков запланированной передачи различия, из дифференциальных блоков; и
модуль выбора циклических блоков для выбора одного или нескольких блоков, подлежащих кодированию и передаче, в качестве одного или нескольких блоков запланированной циклической передачи, из циклических блоков, причем циклические блоки представляют собой блоки иные, чем один или несколько блоков запланированной передачи различия, среди множества блоков, причем суммарное значение величин кода, используемого для кодирования соответствующих одного или нескольких блоков запланированной циклической передачи, находится в диапазоне нижнего предельного значения и верхнего предельного значения.
Полезные результаты изобретения
[0007] В соответствии с устройством обработки изображения согласно настоящему изобретению, модуль обнаружения различия сравнивает доставляемое изображение, разделенное на множество блоков, со сравниваемым изображением на поблочной основе для обнаружения блоков, имеющих отличия от сравниваемого изображения, в качестве дифференциальных блоков, из множества блоков, и модуль выбора дифференциальных блоков выбирает один или несколько блоков запланированной передачи, подлежащих кодированию и передаче, из дифференциальных блоков. Кроме того, модуль выбора циклических блоков выбирает один или несколько блоков запланированной циклической передачи, подлежащих кодированию и передаче, из циклических блоков, которые являются блоками иными, чем дифференциальные блоки, среди множества блоков, причем суммарное значение величин кода, используемого для кодирования соответствующих одного или нескольких блоков запланированной циклической передачи, находится в диапазоне нижнего предельного значения и верхнего предельного значения. Таким образом, обеспечивается полезный результат, состоящий в возможности выбирать, в качестве блоков, подлежащих кодированию и передаче, дифференциальные блоки и циклические блоки с подходящей величиной кода.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0008] На фиг. 1 представлена схема конфигурации устройства 100 обработки изображения в соответствии с первым вариантом осуществления.
На фиг. 2 представлена схема, иллюстрирующая переходы состояний каждого блока дифференциальной карты 831 в соответствии с первым вариантом осуществления.
На фиг. 3 представлена схема, иллюстрирующая переходы состояний каждого блока циклической карты 841 в соответствии с первым вариантом осуществления.
На фиг. 4 представлена блок-схема последовательности операций, иллюстрирующая процесс S100 передачи изображения способа 510 обработки изображения и программы 520 обработки изображения для устройства 100 обработки изображения в соответствии с первым вариантом осуществления.
На фиг. 5 представлена блок-схема последовательности операций, иллюстрирующая процесс S105 выбора дифференциальных блоков в соответствии с первым вариантом осуществления.
На фиг. 6 представлена блок-схема последовательности операций, иллюстрирующая процесс S106 выбора циклических блоков в соответствии с первым вариантом осуществления.
На фиг. 7 представлена блок-схема последовательности операций, иллюстрирующая процесс S390 выбора блоков запланированной циклической передачи в соответствии с первым вариантом осуществления.
На фиг. 8 представлена блок-схема последовательности операций, иллюстрирующая процесс S107 передачи блоков в соответствии с первым вариантом осуществления.
На фиг. 9 представлена схема конфигурации устройства 100 обработки изображения в соответствии с вариантом первого варианта осуществления.
На фиг. 10 представлена блок-схема последовательности операций, иллюстрирующая процесс S100a передачи изображения в соответствии со вторым вариантом осуществления.
На фиг. 11 представлена блок-схема последовательности операций, иллюстрирующая процесс S107b передачи блоков в соответствии с третьим вариантом осуществления.
На фиг. 12 представлена схема конфигурации устройства 100c обработки изображения в соответствии с четвертым вариантом осуществления.
На фиг. 13 представлена блок-схема последовательности операций, иллюстрирующая процесс S105c выбора дифференциальных блоков в соответствии с четвертым вариантом осуществления.
На фиг. 14 представлена блок-схема последовательности операций, иллюстрирующая процесс S390c выбора блоков запланированной циклической передачи в соответствии с четвертым вариантом осуществления.
На фиг. 15 представлена схема конфигурации устройства 100d обработки изображения в соответствии с пятым вариантом осуществления.
На фиг. 16 представлена блок-схема последовательности операций, иллюстрирующая процесс S100d передачи изображения в соответствии с пятым вариантом осуществления.
На фиг. 17 представлена блок-схема последовательности операций, иллюстрирующая процесс S100c передачи изображения способа 510 обработки изображения и программы 520 обработки изображения для устройства 100c обработки изображения в соответствии с четвертым вариантом осуществления.
На фиг. 18 представлена блок-схема последовательности операций, иллюстрирующая процесс S100e передачи изображения способа 510 обработки изображения и программы 520 обработки изображения для устройства 100e обработки изображения в соответствии с шестым вариантом осуществления.
На фиг. 19 представлена схема, описывающая конкретные примеры процесса S105 выбора дифференциальных блоков и процесса S106 выбора циклических блоков в соответствии с шестым вариантом осуществления.
На фиг. 20 представлена блок-схема последовательности операций, иллюстрирующая процесс S106f выбора циклических блоков в соответствии с седьмым вариантом осуществления.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0009] Первый вариант осуществления
***Описание конфигураций***
Конфигурация устройства 100 обработки изображения в соответствии с настоящим изобретением будет описана с использованием фиг. 1.
В настоящем варианте осуществления, устройство 100 обработки изображения является компьютером. Устройство 100 обработки изображения включает в себя аппаратные средства, такие как процессор 910, устройство 920 хранения, интерфейс 930 ввода, интерфейс 940 вывода и устройство 950 связи. Устройство 920 хранения включает в себя память 921 и вспомогательное устройство 920 хранения.
[0010] Устройство 100 обработки изображения включает в себя, в качестве функциональных конфигураций, модуль 110 захвата, модуль 120 разделения на блоки, модуль 130 обнаружения различия, модуль 140 выбора дифференциальных блоков, модуль 150 кодирования, модуль 160 выбора циклических блоков, модуль 170 передачи блоков, модуль 183 записи дифференциальной карты, модуль 184 записи циклической карты и модуль 180 хранения.
В нижеследующем описании, функции модуля 110 захвата, модуля 120 разделения на блоки, модуля 130 обнаружения различия, модуля 140 выбора дифференциальных блоков, модуля 150 кодирования, модуля 160 выбора циклических блоков, модуля 170 передачи блоков, модуля 183 записи дифференциальной карты и модуля 184 записи циклической карты в устройстве 100 обработки изображения упоминаются как функции ʺмодулейʺ устройства 100 обработки изображения.
Функции ʺмодулейʺ устройства 100 обработки изображения реализованы программным обеспечением.
[0011] Кроме того, модуль 180 хранения реализуется устройством 920 хранения. Модуль 180 хранения включает в себя модуль 181 хранения изображения, который хранит захваченное изображение 811 и последнее захваченное изображение 812, и модуль 182 хранения блоков, который хранит блочное изображение 821 и последнее блочное изображение 822. Кроме того, модуль 180 хранения включает в себя модуль 185 хранения состояний блоков, который хранит информацию 851 состояний блоков. Информация 851 состояний блоков включает в себя дифференциальную карту 831 и циклическую карту 841.
[0012] Процессор 910 соединен с другими частями аппаратных средств через сигнальные линии и управляет другими частями аппаратных средств.
Процессор 910 является интегральной схемой (IC), которая выполняет обработку. Процессор 910, в частности, является центральным процессором (CPU), графическим процессором (GPU) и т.д.
[0013] Устройство 920 хранения включает в себя память 921 и вспомогательное устройство 922 хранения. Вспомогательное устройство 922 хранения, в частности, является постоянной памятью (ROM), флэш-памятью или накопителем на жестких дисках (HDD). Память 921 является, в частности, памятью с произвольным доступом (RAM). В настоящем варианте осуществления, модуль 180 хранения реализован памятью 921. Отметим, что модуль 180 хранения может быть реализован вспомогательным устройством 922 хранения или может быть реализован памятью 921 и вспомогательным устройством 922 хранения. Способ реализации модуля 180 хранения может быть любым.
[0014] Интерфейс 930 ввода является портом, соединенным с устройством ввода, таким как мышь, клавиатура или сенсорная панель. Интерфейс 930 ввода, в частности, является терминалом USB. Стоит отметить, что интерфейс 930 ввода может быть портом, соединенным с локальной сетью (LAN).
Интерфейс 940 вывода является портом, с которым соединен кабель устройства отображения, такого как дисплейное устройство. Интерфейс 940 вывода, в частности, является терминалом USB или терминалом мультимедийного интерфейса высокой четкости (HDMI (зарегистрированный товарный знак)). Дисплейное устройство, в частности, является жидкокристаллическим дисплеем. Следует отметить, что интерфейс 940 вывода может быть соединен с устройством вывода, таким как принтер.
[0015] Устройство 950 связи включает в себя приемник 951 и передатчик 952. В частности, устройство 950 связи является микросхемой связи или картой сетевого интерфейса (NIC). Устройство 950 связи функционирует в качестве модуля связи, который передает данные. Приемник 951 является устройством приема, которое принимает данные, а передатчик 952 является устройством передачи, которое передает данные.
[0016] Во вспомогательном устройстве 922 хранения сохранена программа, которая реализует функции ʺмодулейʺ. Программа загружается в память 921, считывается в процессор 910 и исполняется процессором 910. Во вспомогательном устройстве 922 хранения также хранится операционная система (OS). По меньшей мере часть OS загружается в память 921, и процессор 910 исполняет программу, которая реализует функции ʺмодулейʺ при исполнении OS.
[0017] Устройство 100 обработки изображения может включать в себя множество процессоров, которые заменяют процессор 910. Множество процессоров распределяют между собой исполнение программы, которая реализуют функции ʺмодулейʺ. Каждый процессор представляет собой, как в случае процессора 910, IC, которая выполняет обработку.
[0018] Информация, данные, сигнальные значения и переменные значения, которые указывают результаты обработки, выполняемой функциями ʺмодулейʺ, сохраняются в памяти 921, вспомогательном устройстве 922 хранения или регистре или кэше в процессоре 910. Следует отметить, что на фиг. 1 стрелка, соединяющая каждый модуль с модулем 180 хранения, указывает, что каждый модуль хранит результат процесса в модуле 180 хранения или что каждый модуль считывает информацию из модуля 180 хранения. Дополнительно стрелка, соединяющая модули, указывает поток управления.
[0019] Программа, которая реализует функции ʺмодулейʺ, может храниться на портативном носителе записи, таком как магнитный диск, гибкий диск, оптический диск, компакт-диск, диск Blu-ray (зарегистрированный товарный знак) или цифровой универсальный диск (DVD).
Следует отметить, что программа, которая реализует функции ʺмодулейʺ, также упоминается как программа 520 обработки изображения. Программа 520 обработки изображения является также программой, которая реализует функции, описанные как ʺмодулиʺ. Дополнительно, то, что упоминается как программные продукты обработки изображения, представляет собой носитель хранения и устройство хранения, на которых записана программа 520 обработки изображения, и программные продукты обработки изображения представляют собой то, куда считываемая компьютером программа загружается независимо от визуальной формы.
[0020] ***Описание функциональных конфигураций***
Модуль 110 захвата получает захваченное изображение 911 путем выполнения захвата и сохраняет захваченное изображение 811 в модуле 180 хранения. Захваченное изображение 811 является примером доставляемого изображения 810, подлежащего доставке среди множества изображений, которые последовательно доставляются.
В частности, модуль 110 захвата копирует, в качестве захваченного изображения 811, экран исполнения для произвольного приложения, сохраненного в модуле 180 хранения, в область модуля 180 хранения. Например, устройство 100 хранения изображения включает в себя модуль исполнения приложения, который исполняет приложение. Устройство 100 обработки изображения принимает пользовательский ввод через интерфейс 930 ввода или приемник 951 и передает пользовательский ввод в приложение, исполняемое модулем исполнения приложения. Модуль исполнения приложения исполняет приложение на основе пользовательского ввода и тем самым создает экран исполнения приложения. Модуль 110 захвата захватывает экран исполнения приложения, созданный модулем исполнения приложения. Модуль 110 захвата получает временную диаграмму, при которой выполняется захват, и цель захвата, например, путем пользовательского ввода или путем считывания файла внешних настроек.
Следует отметить, что модуль 110 захвата может получать захваченное изображение 811 через интерфейс 930 ввода или приемник 951.
Дополнительно, в модуле 181 хранения изображения хранятся захваченное изображение, полученное модулем 110 захвата, и последнее захваченное изображение 812, полученное последний раз модулем 110 захвата. Последнее захваченное изображение 812 является примером сравниваемого изображения 820, подлежащего сравнению с доставляемым изображением 810.
Модуль 110 захвата получает состояние каждого дифференциального блока из модуля 183 записи дифференциальной карты и получает состояние каждого циклического блока из модуля 184 записи циклической карты для определения, следует ли выполнять захватывание.
[0021] Модуль 120 разделения на блоки разделяет захваченное изображение 811 на множество блоков. Способ разделения задается пользователем или файлом настроек, и разделение выполняется один или несколько раз в продольном направлении и один или несколько раз в поперечном направлении. Кроме того, разделение может быть выполнено только в продольном направлении или только в поперечном направлении.
Модуль 120 разделения на блоки хранит, в качестве блочного изображения 821, захваченное изображение 811, разделенное на блоки, в модуле 182 хранения блоков.
Следует отметить, что в модуле 182 хранения блоков хранятся блочное изображение 821, разделенное модулем 120 разделения на блоки, и последнее блочное изображение 822, полученное путем разделения последнего захваченного изображения 812 модулем 120 разделения на блоки. Блочное изображение 821 является примером доставляемого изображения 810, разделенного на множество блоков. Кроме того, последнее блочное изображение 822 является примером сравниваемого изображения 820, разделенного на множество блоков.
В частности, модуль 120 разделения на блоки считывает захваченное изображение 811, сохраненное в модуле 182 хранения блоков, разделяет захваченное изображение 811 на множество блоков с использованием процессора 910 и повторно сохраняет разделенное захваченное изображение 811 в качестве блочного изображения 821 в модуле 182 хранения блоков.
[0022] Модуль 130 обнаружения различия сравнивает блочное изображение 821 с последним блочным изображением 822 на поблочной основе для обнаружения блоков, имеющих отличия от последнего блочного изображения 822, в качестве дифференциальных блоков, из множества блоков. Модуль 130 обнаружения различия выдает инструкцию записать состояние в каждый блок дифференциальной карты 831 на модуль 183 записи дифференциальной карты на основе результатов определения для соответствующих блоков.
В частности, модуль 130 обнаружения различия считывает блочное изображение 821 и последнее блочное изображение 822 из модуля 182 хранения блоков и сравнивает блочное изображение 821 с последним блочным изображением 822 на попиксельной основе с использованием процессора 910.
[0023] Модуль 185 хранения блоков хранит информацию 851 состояний блоков, в которой записано состояние каждого из множества блоков. Модуль 185 хранения состояния блоков включает в себя, в качестве информации 851 состояний блоков, дифференциальную карту 831, в которой записаны состояния дифференциальных блоков, которые будут описаны ниже, и циклическую карту 841, в которой записаны состояния циклических блоков, которые будут описаны ниже.
Модуль 183 записи дифференциальной карты изменяет состояние указанного блока на указанное состояние в дифференциальной карте 831, хранимой в модуле 185 хранения состояний блоков. Модуль 183 записи дифференциальной карты принимает инструкции записать состояние для каждого блока от модуля 130 обнаружения различия, модуля 140 выбора дифференциальных блоков и модуля 170 передачи блоков и изменяет состояние каждого блока дифференциальной карты 831 на основе инструкций.
[0024] Переходы состояний каждого блока дифференциальной карты 831 в соответствии с настоящим вариантом осуществления будут описаны с использованием фиг. 2.
Нормальное состояние 201 указывает, что блок имеет начальное значение.
Состояние 202 обнаружения различия указывает, что блок имеет различие. Когда модуль 202 обнаружения различия сравнивает блочное изображение 821 с последним блочным изображением 822 и при этом обнаруживает различие в данном блоке, состояние 202 обнаружения различия записывается для данного блока. Кроме того, состояние 202 обнаружения различия также записывается для блока в состоянии 203 запланированной передачи различия среди блоков, определенных модулем 130 обнаружения различия как не имеющих различий.
Состояние 203 запланированной передачи различия указывает, что блок запланирован для передачи модулем 170 передачи блока. Переход состояния к состоянию 203 запланированной передачи различия выполняется в соответствии с результатом процесса, выполняемого модулем 140 выбора дифференциальных блоков.
Нормальное состояние 201 может перейти к состоянию 202 обнаружения различия. Состояние 202 обнаружения различия может перейти к состоянию 203 запланированной передачи различия. Состояние 203 запланированной передачи различия может перейти к нормальному состоянию 201. Состояние 203 запланированной передачи различия может перейти к состоянию 202 обнаружения различия. Переход состояния сохраняется, например, с использованием флажка.
[0025] Модуль 140 выбора дифференциальных блоков выбирает один или несколько блоков, подлежащих кодированию и передаче, в качестве одного или нескольких блоков 2031 запланированной передачи различия, из дифференциальных блоков.
В частности, модуль 140 выбора дифференциальных блоков получает блочное изображение 821 и дифференциальную карту 831. Модуль 140 выбора дифференциальных блоков определяет, для каждого блока, находится ли блок в состоянии 203 запланированной передачи различия, на основе блочного изображения 821 и дифференциальной карты 831, во время прохода через блочное изображение 821 циклическим способом, и записывает блоки 2031 запланированной передачи различия, которые были заново установлены в состояние 203 запланированной передачи различия, в дифференциальной карте 831. А именно, блоки 2031 запланированной передачи различия являются блоками, установленными в состояние 203 запланированной передачи различия в дифференциальной карте 831. Модуль 140 выбора дифференциальных блоков выводит целевые блоки обработки на модуль 150 кодирования и принимает закодированные блоки из модуля 150 кодирования. Модуль 140 выбора дифференциальных блоков выбирает блоки 2031 запланированной передачи различия на основе величин кода закодированных блоков. Модуль 140 выбора дифференциальных блоков выводит блочное изображение 821 и закодированные блоки 1401 различия, полученные кодированием блоков 2031 запланированной передачи различия, на модуль 160 выбора циклических блоков. Альтернативно, модуль 140 выбора дифференциальных блоков может выводить закодированные блоки 1401 различия, получаемые путем кодирования блоков 2031 запланированной передачи различия, и блочное изображение 821, за исключением частей закодированных блоков 1401 различия, на модуль 160 выбора циклических блоков.
[0026] Модуль 160 выбора циклических блоков принимает блочное изображение 821 и закодированные блоки 1401 различия из модуля 140 выбора дифференциальных блоков. Модуль 160 выбора циклических блоков определяет, для каждого блока, находится ли блок в состоянии 302 запланированной циклической передачи, при прохождении через блоки блочного изображения 821 циклическим способом, и записывает блоки, которые были заново определены как находящиеся в состоянии 302 запланированной циклической передачи (блоки 3021 запланированной циклической передачи) в циклической карте 841.
Модуль 160 выбора циклических блоков выбирает один или несколько блоков, подлежащих кодированию и передаче, в качестве одного или нескольких блоков 3021 запланированной циклической передачи из циклических блоков, которые являются блоками иными, чем один или несколько блоков 2031 запланированной передачи различия среди множества блоков. В это время, один или несколько блоков 3021 запланированной циклической передачи являются такими, что суммарное значение величин кода, используемого для кодирования соответствующего одного или нескольких блоков 3021 запланированной циклической передачи, находится в диапазоне нижнего предельного значения Y и верхнего предельного значения Z. Модуль 160 выбора циклических блоков выводит целевые блоки обработки на модуль 150 кодирования и принимает закодированные блоки от модуля 150 кодирования. Модуль 160 выбора циклических блоков выбирает блоки 3021 запланированной циклической передачи на основе величин кода закодированных блоков.
[0027] Переходы состояний каждого блока циклической карты 841 в соответствии с настоящим вариантом осуществления будут описаны с использованием фиг. 3.
Циклическая карта 841 записывается на поблочной основе модулем 184 записи циклической карты.
Состояние 301 отсутствия передачи указывает начальное значение блока.
Состояние 302 запланированной циклической передачи указывает, что блок запланирован для передачи модулем 170 передачи блоков. А именно, состояние блока 3021 запланированной циклической передачи является состоянием 302 запланированной циклической передачи. Состояния в циклической карте 841 изменяются в соответствии с результатами обработки, полученными модулем 160 выбора циклического блока. Состояние 303 передачи указывает, что блок подвергнут процессу передачи модулем 170 передачи блоков. Состояние 301 отсутствия передачи может переходить в состояние 302 запланированной циклической передачи. Кроме того, состояние 302 запланированной циклической передачи может переходить в состояние 303 передачи. Состояние 303 передачи может переходить в состояние 301 отсутствия передачи. Переход состояния сохраняется, например, с использованием флажка.
[0028] Кроме того, модуль 184 записи циклической карты изменяет состояние указанного блока на указанное состояние в циклической карте 841, сохраненной в модуле 185 хранения состояний блоков. Модуль 184 записи циклической карты принимает инструкции записать состояние каждого блока в циклическую карту 841 из модуля 160 выбора циклических блоков и модуля 170 передачи блоков и изменяет состояния соответствующих блоков на основе инструкций. Модуль 184 записи циклической карты выводит состояние запрошенного блока на модуль 160 выбора циклических блоков и модуль 170 передачи блоков.
[0029] Модуль 150 кодирования кодирует один или несколько блоков 2031 запланированной передачи различия и один или несколько блоков 3021 запланированной циклической передачи в качестве одного или нескольких закодированных блоков 1401 различий и одного или нескольких циклических закодированных блоков 1601. А именно, модуль 150 кодирования принимает незакодированные блоки из модуля 140 выбора дифференциальных блоков и модуля 160 выбора циклических блоков, выполняет процесс кодирования и возвращает закодированные блоки. Следует отметить, модуль 150 кодирования также упоминается как модуль сжатия. Модуль 150 кодирования принимает несжатые блоки из модуля 140 выбора дифференциальных блоков и модуля 160 выбора циклических блоков, выполняет процесс сжатия и возвращает сжатые блоки. А именно, кодирование включает в себя сжатие.
Алгоритмы кодирования, которые могут быть использованы модулем 150 кодирования, включают в себя, например, кодирование по длинам серий (RLE), zlib-кодирование по длинам серий (ZRLE), алгоритм объединенной экспертной группы по фотографии 2000 (JPEG 2000) и т.д. Следует отметить, что алгоритмы, которые могут использоваться, не ограничены описанными выше.
[0030] Модуль 170 передачи блоков выполняет процесс передачи для передачи одного или нескольких закодированных блоков 1401 различий и одного или нескольких циклических закодированных блоков 1601, которые кодируются модулем 150 кодирования. Модуль 170 передачи блоков считывает закодированные целевые блоки обработки из одного или нескольких закодированных блоков 1401 различий и одного или нескольких циклических закодированных блоков 1601, которые хранятся в модуле 180 хранения, на основе дифференциальной карты 831 и циклической карты 841. Модуль 170 передачи блоков пакетирует считанные, закодированные блоки с использованием процессора 910. Модуль 170 передачи блоков передает пакетированные закодированные блоки в единицах пакетов посредством передатчика 952.
[0031] ***Описание операции***
Далее, процесс S100 передачи изображения способа 510 обработки изображения и программы 520 обработки изображения для устройства 100 обработки изображения в соответствии с настоящим вариантом осуществления будет описан с использованием фиг. 4.
В процессе S100 передачи изображения, процессы, включенные между границами S101 цикла, выполняются повторно.
[0032] На этапе S102, модуль 110 захвата определяет на основе дифференциальной карты 831 и циклической карты 841, имеют ли дифференциальная карта 831 и циклическая карта 841 блок в состоянии 203 запланированной передачи различия или состоянии 302 запланированной циклической передачи. Если имеется блок в состоянии 203 запланированной передачи различия или в состоянии 302 запланированной циклической передачи, модуль 110 захвата выводит инструкцию передать блок в состоянии 203 запланированной передачи различия или в состоянии 302 запланированной циклической передачи на модуль 170 передачи блоков без выполнения захвата.
В частности, чтобы определить, следует ли выполнить захват экрана, модуль 110 захвата запрашивает модуль 183 записи дифференциальной карты и модуль 184 циклической карты о том, имеется ли блок в состоянии запланированной передачи, т.е. блок, у которого включен флажок состояния 203 запланированной передачи различия или у которого включен флажок состояния 302 запланированной циклической передачи. Если не имеется блока в состоянии запланированной передачи, модуль 110 захвата продолжает обработку на этапе S103 и выполняет захват экрана и сохраняет захваченное изображение 811 в модуле 181 хранения изображения. Если имеется блок в состоянии запланированной передачи, модуль 110 захвата продолжает обработку в процессе S107 передачи блока. Следует отметить, что случай, в котором имеется блок в состоянии запланированной передачи, включает в себя, например, случай, в котором блок в состоянии запланированной передачи остается из-за того, что в течение процесса S107 передачи блока, процесс прерывается по некоторой причине и т.д.
[0033] На этапе S104, модуль 120 разделения на блоки разделяет захваченное изображение 811, захваченное модулем 110 захвата, на блоки и сохраняет разделенное захваченное изображение 811 как блочное изображения 821 в модуле 182 хранения блоков. Количество разделений захваченного изображения может быть указано пользователем. Кроме того, разделенным блокам присваиваются номера блоков, соответственно, так что номера блоков не перекрываются. Для способа присвоения номеров блоков, например, существует способ, в котором номера присваиваются так, что при верхнем левом блоке под номером ʺ1ʺ, номер возрастает на один в строке в направлении направо, и когда достигается правый конец, номер возрастает снова на один от самого левого блока в строке непосредственно ниже.
[0034] <Процесс S105 выбора дифференциальных блоков>
Далее обработка продолжается в процессе S105 выбора дифференциальных блоков. В процессе S105 выбора дифференциальных блоков выполняется выбор и кодирование дифференциальных блоков, подлежащих передаче.
[0035] Процесс S105 выбора дифференциальных блоков в соответствии с настоящим вариантом осуществления будет описан с использованием фиг. 5.
Процессы на этапах с S202 до S204, включенные между границами S201 цикла на фиг. 5, выполняются на всех разделенных блоках. Процесс начинается с любого блока, и порядок обработки также является любым. Кроме того, этот процесс выполняется модулем 130 обнаружения различия. Когда модуль 130 обнаружения различия выполнил процессы на этапах c S202 по S204 для всех блоков, модуль 130 обнаружения различия продолжает обработку на этапе S205.
[0036] На этапе S202, модуль 130 обнаружения различия получает блочное изображение 821 и последнее блочное изображение 822 из модуля 182 хранения блоков. Модуль 130 обнаружения различия определяет, для целевого блока обработки, имеется ли различие между блочным изображением 821 и последним блочным изображением 822. Здесь, блок, имеющий отличие от последнего блочного изображения 822, упоминается как дифференциальный блок. Модуль 130 обнаружения различия осуществляет сравнение для целевого блока обработки каждого из блочного изображения 821 и последнего блочного изображения 822, на попиксельной основе, пикселов, включенных в блок. Если, в результате сравнения, даже один пиксел имеет различие, модуль 130 обнаружения различия устанавливает целевой блок обработки в состояние 202 обнаружения различия. Если, в результате сравнения, все пикселы являются одинаковыми, модуль 130 обнаружения различия продолжает обработку на этапе S203.
[0037] На этапе S203, если все пикселы являются одинаковыми на этапе S202, модуль 130 обнаружения различия определяет, для целевого блока обработки, включен ли флажок для состояния 203 запланированной передачи различия. Если целевой блок обработки находится в состоянии 203 запланированной передачи различия, обработка продолжается на этапе S204. Если целевой блок обработки находится в состоянии ином, чем состояние 203 запланированной передачи различия, модуль 130 обнаружения различия заканчивает обработку для целевого блока обработки и переходит к обработке следующего блока.
[0038] Следует отметить, что не существенно, какой из процессов на этапе S202 и S203 выполняется сначала посредством модуля 130 обнаружения различия. В примере на фиг. 5, модуль 130 обнаружения различия выполняет сначала этап S202. Если сначала выполняется этап S203, модуль 130 обнаружения различия продолжает обработку на этапе S202 в случае ветви ʺнетʺ на этапе S203 и продолжает обработку на этапе S204 в случае ветви ʺдаʺ на этапе S203. В этом случае, модуль 130 обнаружения различия переходит к обработке на этапе 204 в случае ʺдаʺ на этапе S202 и переходит к обработке следующего блока в случае ʺнетʺ на этапе S202.
[0039] На этапе S204, модуль 130 обнаружения различия устанавливает флажок для состояния 202 обнаружения различия на включенный для целевого блока обработки и переходит к обработке следующего блока.
[0040] На этапе S205, модуль 140 выбора дифференциальных блоков инициализирует SumDiff, указывающее суммарное значение величин кода, после кодирования, блоков, установленных в состояние 203 запланированной передачи различия, в ʺ0ʺ.
[0041] Затем, модуль 140 выбора дифференциальных блоков выполняет процессы на этапах с S207 по S210, включенных между границами S206 цикла. Модуль 140 выбора дифференциальных блоков выполняет процессы, включенные между границами S206 цикла, на блоках, флажки которых являются состоянием 202 обнаружения различия. Когда процессы (процессы на этапах с S207 по S210) выполняются в первый раз, т.е., когда захваченное изображение 811 является первым кадром, начальным положением обработки является блок, представленный в верхнем самом левом положении и имеющий флажок ʺсостояние 202 обнаружения различияʺ. После этого, когда захваченное изображение 811 является вторым или последующим кадром, начальным положением обработки является блок в состоянии 202 обнаружения различия, который является более поздним, чем последний блок, установленный в состояние 302 запланированной циклической передачи в последний раз, и который имеет номер блока, ближайший к последнему блоку.
[0042] На этапе S207, модуль 140 выбора дифференциальных блоков передает целевой блок обработки в состоянии 202 обнаружения различия (упоминаемый как дифференциальный блок) на модуль 150 кодирования для кодирования дифференциального блока. Модуль 150 кодирования кодирует дифференциальный блок с использованием алгоритма кодирования, который может быть использован, и вычисляет размер Diff величины кода, полученного после кодирования. Модуль 150 кодирования выводит дифференциальный блок, который был закодирован, как закодированный дифференциальный блок и выводит размер Diff закодированного дифференциального блока. А именно, модуль 150 кодирования передает закодированный дифференциальный блок и его размер Diff в модуль 140 выбора дифференциальных блоков.
[0043] На этапе S208, модуль 140 выбора дифференциальных блоков определяет, превышает ли суммарное значение SumDiff и Diff порог X различия. Здесь, порог X различия является верхним предельным значением (также упоминаемым как верхний предельный размер) суммарного значения закодированных дифференциальных блоков, которые могут быть переданы одним захватом. Если суммарное значение SumDiff и Diff превышает порог Х различия, модуль 140 выбора дифференциальных блоков переходит к обработке следующего дифференциального блока. Если суммарное значение SumDiff и Diff меньше или равно порогу X различия, модуль 140 выбора дифференциальных блоков переходит к обработке на этапе S209.
[0044] На этапе S209, модуль 140 выбора дифференциальных блоков устанавливает флажок дифференциального блока в состояние 203 запланированной передачи различия посредством модуля 183 записи дифференциальной карты. Закодированный дифференциальный блок, выводимый из модуля 150 кодирования на этапе S207, служит в качестве закодированного дифференциального блока, запланированного для передачи, т.е., закодированного блока 1401 различия.
[0045] На этапе S210, модуль 140 выбора дифференциальных блоков добавляет значение Diff к текущему значению SumDiff.
[0046] Тем самым, заканчивается процесс S105 выбора дифференциальных блоков. В процессе S105 выбора дифференциальных блоков, разделенное захваченное изображение (т.е., блочное изображение 821), закодированные блоки 1401 различия, установленные в состояние 203 запланированной передачи различия, среди закодированных дифференциальных блоков и значение SumDiff в конечном счете выводятся из модуля 140 выбора дифференциальных блоков на модуль 160 выбора циклических блоков. Альтернативно, могут выводиться блочное изображение 821, за исключением закодированных блоков 1401 различия, закодированные блоки 1401 различия и значение SumDiff.
Как описано выше, модуль 140 выбора дифференциальных блоков выбирает один или несколько блоков 2031 запланированной передачи различия, установленных в состояние 203 запланированной передачи различия, из дифференциальных блоков, обнаруженных модулем 130 обнаружения различия. Модуль 140 выбора дифференциальных блоков выводит дифференциальные блоки на модуль 150 кодирования и получает закодированные дифференциальные блоки, которые являются дифференциальными блоками, которые были закодированы, и размеры данных закодированных дифференциальных блоков из модуля 150 кодирования. Модуль 140 выбора дифференциальных блоков выбирает один или несколько блоков 2031 запланированной передачи различия на основе размеров данных закодированных дифференциальных блоков. Дополнительно, когда модуль 140 выбора дифференциальных блоков выбирает один или несколько блоков 2031 запланированной передачи различия, модуль 140 выбора дифференциальных блоков записывает состояние каждого из одного или нескольких блоков 2031 запланированной передачи различия как состояние 203 запланированной передачи различия в дифференциальной карте 831. Следует отметить, что модуль 140 выбора дифференциальных блоков выбирает, из дифференциальных блоков, один или нескольких блоков 2031 запланированной передачи различия, в которых суммарное значение величин кода, используемого для кодирования соответствующего одного или нескольких блоков 2031 запланированной передачи различия, не превышает порога Х различия. Затем, модуль 140 выбора дифференциальных блоков выводит один или несколько закодированных блоков 1401 различия, полученных кодированием одного или нескольких блоков 2031 запланированной передачи различия.
[0047] <Процесс S106 выбора циклических блоков>
Далее, обработка переходит к процессу S106 выбора циклических блоков согласно фиг. 4. В процессе S106 выбора циклических блоков, выполняются выбор и кодирование циклических блоков, подлежащих передаче.
[0048] Процесс S106 выбора циклических блоков в соответствии с настоящим вариантом осуществления будет описан с использованием фиг. 6.
Сначала, на этапе S301, модуль 160 выбора циклических блоков инициализирует SumRnd в ʺ0ʺ. SumRnd указывает суммарное значение величин кода, после кодирования, блоков, установленных в состояние 302 запланированной циклической передачи.
[0049] Процесс S390 выбора блоков запланированной циклической передачи на этапе S303, который включен между границами S302 цикла на фиг. 6, выполняется на всех блоках.
Модуль 160 выбора циклических блоков принимает разделенное захваченное изображение (т.е. блочное изображение 821), некоторых из закодированных блоков, в которых обнаружены различия (т.е., закодированные блоки 1401 различия), и значение SumDiff из модуля 140 выбора дифференциальных блоков. На этапе S303, включенном между границами S302 цикла, модуль 160 выбора циклических блоков начинает процесс на принятом блочном изображении 821 с блока, расположенного в верхнем самом левом положении. Порядок обработки совпадает с номерами блоков.
[0050] На этапе S303, модуль 160 выбора циклических блоков выполняет процесс S390 выбора блоков запланированной циклической передачи.
Процесс S390 выбора блоков запланированной циклической передачи будет описан подробно с использованием фиг. 7.
[0051] <Процесс S390 выбора блоков запланированной циклической передачи>
На этапе S401, модуль 160 выбора циклических блоков определяет состояние целевого блока обработки путем обращения к дифференциальной карте 831 и циклической карте 841. Модуль 160 выбора циклических блоков получает состояние целевого блока обработки посредством модуля 183 записи дифференциальной карты и модуля 184 записи циклической карты. Если состояние целевого блока обработки является состоянием 203 запланированной передачи различия, состоянием 302 запланированной циклической передачи или состоянием 303 передачи, модуль 160 выбора циклических блоков продолжает обработку следующего блока без выполнения процессов на этапе S402 и после него. Если все соответствуют ʺнетʺ, т.е., если состояние целевого блока обработки не является ни одним из состояния 203 запланированной передачи различия, состояния 302 запланированной циклической передачи и состояния 303 передачи, модуль 160 выбора циклических блоков выполняет процессы на этапе S402 и после него.
Здесь, блоки иные, чем один или несколько блоков 2031 запланированной передачи различия (т.е. блоков, у которых включены флажки для состояния 203 запланированной передачи различия), среди множества блоков, являются циклическими блоками. Циклические блоки включают в себя блоки, которые не находятся в любом из состояния 203 запланированной передачи различия, состояния 3002 запланированной циклической передачи и состояния передачи.
[0052] На этапе S402, модуль 160 выбора циклических блоков передает целевой блок обработки, т.е. циклический блок, на модуль 150 кодирования. Модуль 150 кодирования кодирует циклический блок с использованием алгоритма кодирования, который может быть использован, и вычисляет размер (упоминаемый как Rnd), полученный после кодирования. Модуль 150 кодирования выводит циклический блок, который был закодирован, в качестве закодированного циклического блока, и выводит размер Rnd закодированного циклического блока. А именно, модуль 150 кодирования передает кодированный циклический блок и его размер Rnd на модуль 160 выбора циклических блоков.
[0053] Модуль 160 выбора циклических блоков принимает закодированный циклический блок и размер Rnd закодированного циклического блока и выполняет процессы двух условных ветвей (этап S403 и S404).
На этапе S403, модуль 160 выбора циклических блоков находит суммарное значение SumDiff, SumRnd и Rnd и определяет, является ли суммарное значение меньшим или равным суммарному значению порога Х различия и нижнего предельного значения Y. Здесь, нижнее предельное значение Y является нижним предельным размером закодированных циклических блоков, которые могут быть переданы одним захватом. Если суммарное значение SumDiff, SumRnd и Rnd меньше или равно суммарному значению порога Х различия и нижнего предельного значения Y, обработка продолжается на этапе S404. В противном случае, процесс S390 выбора блоков запланированной циклической передачи заканчивается без выполнения процессов на этапе S404 и после него.
На этапе S404, модуль 160 выбора циклических блоков определяет, является ли сумма SumRnd и Rnd меньшей или равной верхнему предельному значению Z. Здесь, верхнее предельное значение Z является верхним предельным значением закодированных циклических блоков, которые могут быть переданы одним захватом. Если суммарное значение SumRnd и Rnd меньше или равно верхнему предельному значению Z, обработка продолжается на этапе S405. В противном случае, процесс S390 выбора блоков запланированной циклической передачи заканчивается без выполнения процессов на этапе S405 и после него.
[0054] На этапе S405, модуль 160 выбора циклических блоков устанавливает флажок для состояния 302 запланированной циклической передачи целевого циклического блока обработки на включенный посредством модуля 184 записи циклической карты. Здесь, целевой циклический блок обработки, установленный в состояние 302 запланированной циклической передачи, является блоком 3021 запланированной циклической передачи. Кроме того, блок, полученный кодированием блока 3021 запланированной циклической передачи, является циклическим закодированным блоком 1601.
[0055] На этапе S406, модуль 160 выбора циклических блоков добавляет значение Rnd к SumRnd.
[0056] Этим заканчивается процесс S390 выбора блоков запланированной циклической передачи. В процессе на этапе S303, в конечном счете, выбираются блоки, установленные в состояние 302 запланированной циклической передачи, и состояния блоков устанавливаются в состояние 302 запланированной циклической передачи.
[0057] Далее, описание продолжается со ссылкой вновь на фиг. 6.
На этапе S304, модуль 160 выбора циклических блоков сравнивает SumRnd с нижним предельным значением Y. Если, в результате сравнения, SumRnd меньше или равно нижнему предельному значению Y, модуль 160 выбора циклических блоков продолжает обработку на этапе S305. Если SumRnd превышает нижнее предельное значение Y, процесс S106 выбора циклических блоков завершается.
[0058] Процессы на этапе S305 и после него выполняются, когда все блоки циклической карты 841 находятся в состоянии 302 запланированной циклической передачи или в состоянии 303 передачи и когда суммарное значение блоков, установленных в состояние 203 запланированной передачи различия или состояние 302 запланированной циклической передачи в выполненных до сих пор процессах, меньше или равно суммарному значению порога Х различия и нижнего предельного значения Y, которое является допустимым размером передачи.
[0059] Сначала, на этапе S305, модуль 160 выбора циклических блоков устанавливает состояние 303 передачи в состояние 301 отсутствия передачи для всех блоков в состоянии 303 передачи в циклической карте 841, посредством модуля 184 записи циклической карты.
[0060] После этого, модуль 160 выбора циклических блоков выполняет процесс на этапе S307, включенном между границами S306 цикла. Процесс на этапе S307 является процессом S390 выбора блоков запланированной циклической передачи, описанным на фиг. 7. Начальное положение блока в границах S306 цикла является блоком, следующим за блоком с наибольшим номером среди блоков в состоянии 302 запланированной циклической передачи.
На этапе S307, модуль 160 выбора циклических блоков начинает процесс S390 выбора блоков запланированной циклической передачи с блока, следующего за блоком с наибольшим номером среди блоков в состоянии 302 запланированной циклической передачи. Процесс S390 выбора блоков запланированной циклической передачи является тем же самым, что и описанный на фиг. 7.
[0061] Описание процесса S106 выбора циклических блоков согласно фиг. 6 здесь заканчивается. В процессе S106 выбора циклических блоков, в конечном счете, суммарное значение величин кода блоков, установленных в состояние 302 запланированной циклической передачи, меньше или равно предварительно установленному верхнему предельному значению Z или больше или равно предварительно установленному нижнему предельному значению Y, и состояния этих блоков установлены в состояние 302 запланированной циклической передачи.
Как описано выше, модуль выбора циклических блоков выбирает один или нескольких блоков 3021 запланированной циклической передачи, подлежащих кодированию и передаче, из циклических блоков, которые являются блоками иными, чем один или несколько блоков 2031 запланированной передачи различия среди множества блоков. Модуль 160 выбора циклических блоков выводит циклические блоки на модуль 150 кодирования и получает закодированные циклические блоки, которые являются циклическими блоками, которые были закодированы, и размеры данных закодированных циклических блоков из модуля 150 кодирования. Модуль 160 выбора циклических блоков выбирает один или несколько блоков 3021 запланированной циклической передачи на основе размеров данных закодированных циклических блоков. Кроме того, когда модуль 160 выбора циклических блоков выбирает один или несколько блоков 3021 запланированной циклической передачи, модуль 160 выбора циклических блоков записывает состояние каждого из одного или нескольких блоков 3021 запланированной циклической передачи как состояние 302 запланированной циклической передачи в циклической карте 841. Следует отметить, что суммарное значение величин кода, используемого для кодирования соответствующих одного или нескольких блоков 3021 запланированной циклической передачи, находится в диапазоне нижнего предельного значения Y и верхнего предельного значения Z.
[0062] <Процесс S107 передачи блоков>
Далее описание продолжается со ссылкой вновь на фиг. 4.
После процесса S106 выбора циклического блока, обработка переходит к процессу S107 передачи блоков. В процессе S107 передачи блоков, модуль 170 передачи блоков выполняет процесс передачи для передачи одного или нескольких закодированных блоков 1401 различия и одного или нескольких циклических закодированных блоков 1601, которые были закодированы модулем 150 кодирования. Предполагается, что в модуле 170 передачи блоков величина кода, который может быть передан за раз в процессе передачи, составляет один или несколько закодированных блоков различия и один или несколько циклических закодированных блоков вплоть до порога величины кода. А именно, значение, получаемое путем суммирования вместе вышеописанного порога X различия и верхнего предельного значения Z, должно быть меньше или равно порогу величины кода.
[0063] Процесс S107 передачи блоков в соответствии с настоящим вариантом осуществления будет описан с использованием фиг. 8.
Процесс S107 передачи блоков является процессом передачи блоков, установленных в состояние 203 запланированной передачи различия или состояние 302 запланированной циклической передачи. В процессе S107 передачи блоков, выполняются процессы на этапах с S502 по S506, которые включены между границами S501 цикла. Процесс S107 передачи блоков является процессом цикла для каждого блока, с начальным положением, являющимся верхним левым блоком.
[0064] Сначала, на этапе S502, модуль 170 передачи блоков определяет, находится ли целевой блок обработки в состоянии 203 запланированной передачи различия. Если целевой блок обработки находится в состоянии 203 запланированной передачи различия, обработка продолжается на этапе S504. В противном случае, обработка продолжается на этапе S503.
На этапе S503, модуль 170 передачи блоков определяет, находится ли целевой блок обработки в состоянии 302 запланированной циклической передачи. Если целевой блок обработки находится в состоянии 302 запланированной циклической передачи, обработка продолжается на этапе S504. В противном случае, процесс для следующего блока выполняется без выполнения процессов на этапе S503 и после него.
[0065] На этапе S504, модуль 170 передачи блоков пакетирует целевой блок обработки и выполняет процесс передачи. Примеры протоколов, используемых для процесса пакетирования и передачи, включают в себя протокол управления передачей (TCP), протокол пользовательских дейтаграмм (UDP) и т.д.
[0066] На этапе S505, модуль 170 передачи блоков устанавливает состояние дифференциальной карты 831, соответствующей целевому блоку обработки, в нормальное состояние 201 посредством модуля 183 записи дифференциальной карты.
Кроме того, на этапе S506, модуль 170 передачи блоков устанавливает состояние циклической карты 841, соответствующей целевому блоку обработки, в состояние 303 передачи посредством модуля 184 записи циклической карты.
А именно, модуль 170 передачи блоков записывает состояние каждого из одного или нескольких закодированных блоков 1401 различия и одного или нескольких циклических закодированных блоков 1601 как состояние 303 передачи в информации 851 состояний блоков.
[0067] После процесса S107 передачи блоков, на этапе S108, устройство 100 обработки изображения ожидает до наступления следующего времени захвата. Способ для определения, наступило ли время захвата, включает в себя, например, способ, в котором определяется, ожидало ли устройство 100 обработки изображения до тех пор, пока истекшее время от выполнения захвата (выполнения этапа S103) не составит некоторый период времени, и т.д.
Описание процесса S100 передачи изображения в соответствии с настоящим вариантом осуществления здесь заканчивается.
[0068] ***Другие конфигурации***
Хотя в настоящем варианте осуществления функции ʺмодулейʺ устройства 100 обработки изображения реализуются программным обеспечением, как вариант, функции ʺмодулейʺ устройства 100 обработки изображения могут быть реализованы аппаратными средствами.
Конфигурация устройства 100 обработки изображения в соответствии с вариантом настоящего варианта осуществления будет описана с использованием фиг. 9.
Как проиллюстрировано на фиг. 9, устройство 100 обработки изображения включает в себя аппаратные средства, такие как схема 909 обработки, интерфейс 930 ввода, интерфейс 940 вывода и устройство 950 связи.
[0069] Схема 909 обработки является специализированной электронной схемой, которая реализует вышеописанные функции ʺмодулейʺ и модуля 180 хранения. Схема 909 обработки является, в частности, одиночной схемой, комбинированной схемой, программируемым процессором, параллельно программируемым процессором, логической IC, вентильной матрицей (GA), специализированной интегральной схемой (ASIC) или программируемой вентильной матрицей (FPGA).
[0070] Устройство 100 обработки изображения может включать в себя множество схем обработки, которые замещают схему 909 обработки. Функции ʺмодулейʺ реализованы множеством схем обработки в целом. Каждая схема обработки является, как в случае со схемой 909 обработки, специализированной электронной схемой.
[0071] В качестве другого варианта, функции устройства 100 обработки изображения могут быть реализованы комбинацией программного обеспечения и аппаратных средств. А именно, некоторые функции устройства обработки изображения могут быть реализованы специализированными аппаратными средствами, а другие функции могут быть реализованы программным обеспечением.
[0072] Процессор 910, устройство 920 хранения и схема 909 обработки в совокупности упоминаются как ʺсхема обработкиʺ. То есть, независимо от того, какая конфигурация устройства обработки изображения проиллюстрирована на фиг. 1 или 9, функции ʺмодулейʺ и модуля 180 хранения реализованы схемой обработки.
[0073] ʺМодулиʺ могут читаться как ʺэтапыʺ, ʺпроцедурыʺ или ʺпроцессыʺ. Кроме того, функции ʺмодулейʺ могут быть реализованы встроенным программным обеспечением.
[0074] ***Описание полезных результатов настоящего варианта осуществления***
Как описано выше, в устройстве 100 обработки изображения в соответствии с настоящим вариантом осуществления, величина кода в расчете на доставляемый экран (картинку) обеспечена с порогом величины кода, который является верхним пределом. Когда ожидается, что общая величина кода превысит порог величины кода, передаются некоторые блоки одного доставляемого экрана, кодированного в диапазоне, в котором порог величины кода не превышен. Блоки, которые не могли быть переданы, переносятся до следующего процесса передачи изображения для одного доставляемого экрана (одной картинки). Устройство 100 обработки изображения в соответствии с настоящим вариантом осуществления выбирает блоки, подлежащие кодированию в данное время, при допущении того, что блоки циклируются, и таким образом, может надежно передавать блоки для всего экрана.
[0075] Кроме того, в устройстве 100 обработки изображения в соответствии с настоящим вариантом осуществления, данные, подлежащие передаче, разделяются на дифференциальные блоки и циклические блоки и суммарное количество данных дифференциальных блоков и циклических блоков сдерживается до значения меньшего или равного определенному значению для каждой передачи, посредством чего скорость передачи может быть стабилизирована. Кроме того, для дифференциальных блоков, также, поскольку все данные передаются, передача дифференциальных блоков и передача циклических блоков обрабатываются одинаковым образом. Кроме того, когда объем данных дифференциальных блоков становится большим, дифференциальные блоки передаются так, чтобы циклироваться для каждого кадра. Благодаря этому, даже когда объем данных дифференциальных блоков велик, весь экран может быть надежным образом обновлен.
[0076] Второй вариант осуществления
***Описание конфигураций***
В настоящем варианте осуществления, в основном будет описано отличие от первого варианта осуществления.
В настоящем варианте осуществления, те же самые конфигурации, что и описанные в первом варианте осуществления, обозначаются теми же самыми ссылочными позициями, и их описание опущено.
[0077] В первом варианте осуществления, этап S102 процесса S100 передачи изображения на фиг. 4 является процессом, в котором, когда отсутствует блок в состоянии запланированной передачи, т.е. состоянии 203 запланированной передачи различия или состоянии 302 запланированной циклической передачи, выполняется захват экрана. То есть, в первом варианте осуществления, когда имеется блок в состоянии запланированной передачи, процессу S107 передачи блоков дается приоритет и захват не выполняется.
В настоящем варианте осуществления, будет описан процесс S100a передачи изображения, в котором, даже если имеется блок в состоянии запланированной передачи, экран всегда захватывается.
[0078] ***Описание операции**
Фиг. 10 является схемой, иллюстрирующей процесс S100a передачи изображения в соответствии с настоящим вариантом осуществления.
Процесс S100a передачи изображения, проиллюстрированный на фиг. 10 не имеет этапа S102, проиллюстрированного на фиг. 4. В отличие от этого, операции обработки всегда являются такими же, как в процессе S100 передачи изображения для устройства 100 обработки изображения, проиллюстрированного на фиг. 4.
[0079] ***Описание полезных результатов в соответствии с настоящим вариантом осуществления***
Как описано выше, в соответствии с процессом S100a передачи изображения согласно настоящему варианту осуществления, поскольку экран захватывается на каждый кадр, становится возможным обновлять некоторые области экрана на каждый кадр, когда изображение имеет большое количество изменений.
[0080] Третий вариант осуществления
***Описание конфигураций***
В настоящем варианте осуществления, в основном будут описаны отличия от первого варианта осуществления.
В настоящем варианте осуществления, те же самые конфигурации, что и описанные в первом варианте осуществления, обозначены теми же самыми ссылочными позициями, и их описание опущено.
[0081] В первом варианте осуществления, в процессе S107 передачи блоков на фиг. 8, передаются все блоки в состоянии 203 запланированной передачи различия или в состоянии 302 запланированной циклической передачи.
В настоящем варианте осуществления, будет описан процесс S100b передачи изображения, который имеет процесс S107b передачи блоков, в котором то, следует ли продолжать передачу, может быть определено пользовательским вводом, указывающим прерывание передачи, загрузку сети, исполнение загрузки для других приложений (загрузку CPU) и т.д. В процессе S107b передачи блоков согласно настоящему варианту осуществления, определяется, следует ли продолжать процесс передачи, пользовательским вводом, указывающим прерывание передачи, или определением того, превышает ли сетевая загрузка, исполнение загрузки для других приложений (загрузка CPU) и т.д., предопределенное значение.
Кроме того, в настоящем варианте осуществления, в условной ветви, которая определяет, следует ли выполнять захват экрана в S102 на фиг. 4, определение делается путем определения того, превышает ли суммарный объем данных блоков в состоянии 203 запланированной передачи различия или состоянии 302 запланированной циклической передачи X+Y. Если суммарный объем данных превышает X+Y, то выводится инструкция передать блоки в состоянии 203 запланированной передачи различия или состоянии 302 запланированной циклической передачи на модуль 170 передачи блоков без выполнения захвата. Если суммарный объем данных меньше или равен X+Y, то выполняется захват, и обработка переходит к S104. Как описано выше, порог X различия является верхним предельным размером суммарного значения закодированных дифференциальных блоков, которые могут передаваться одним захватом. Кроме того, нижнее предельное значение Y является нижним предельным размером закодированных циклических блоков, которые могут передаваться одним захватом.
[0082] ***Описание операций***
В процессе в S102 на фиг. 4, в частности, для того, чтобы модулю 110 захвата определить, следует ли выполнять захват экрана, модуль 110 захвата запрашивает модуль 183 записи дифференциальной карты и модуль 184 записи циклической карты о том, имеется ли блок в состоянии запланированной передачи, т.е., блок, у которого включен флажок состояния 203 запланированной передачи различия или у которого включен флажок состояния 302 запланированной циклической передачи. Если не имеется блока в состоянии запланированной передачи или блока в состоянии 203 запланированной передачи различия или если, хотя имеются блоки в состоянии запланированной передачи, сумма величин данных этих блоков меньше или равна X+Y, модуль 110 захвата продолжает обработку на этапе S103 и выполняет захват экрана и хранит захваченное изображение 811 в модуле 181 хранения изображения. Если имеются блоки в состоянии запланированной передачи и сумма величин данных этих блоков превышает X+Y, модуль 110 захвата продолжает обработку в процессе S107b передачи блоков.
[0083] Фиг. 11 является схемой, иллюстрирующей процесс S107b передачи блоков в соответствии с настоящим вариантом осуществления.
Процесс S107b передачи блоков, проиллюстрированный на фиг. 11, является таким, что этапы S507 и S508 добавлены к процессу S107 передачи блоков, проиллюстрированному на фиг. 8. В остальном, операции обработки являются теми же самыми, как и в процессе S107 передачи блоков, проиллюстрированном на фиг. 8.
На этапе S507, модуль 170 передачи блоков определяет в течение выполнения процесса передачи, следует ли продолжать процесс передачи. Если модуль 170 передачи блоков определяет не продолжать процесс передачи, модуль 170 передачи блоков прерывает процесс передачи. В частности, модуль 170 передачи блоков определяет, следует ли продолжать передачу, путем пользовательского ввода, указывающего прерывание передачи или путем определения, превышает ли загрузка сети, исполнение загрузки для других приложений (загрузка CPU) и т.д. предопределенное значение. Если определено продолжать передачу, обработка переходит к этапу S502, а если определено не продолжать передачу, обработка переходит к этапу S508.
На этапе S508, если имеется блок в состоянии 302 запланированной циклической передачи, состояние соответствующего блока изменяется на состояние 301 отсутствия передачи. После этого, процесс S107b передачи блоков завершается.
[0084] ***Описание полезных результатов в соответствии с настоящим вариантом осуществления***
Как описано выше, в соответствии с процессом S100b передачи изображения согласно настоящему варианту осуществления, за счет разрешения прерывания процесса передачи, становится возможным корректировать загрузку для процесса передачи на самом этапе S504 или сетевую загрузку.
[0085] Четвертый вариант осуществления
***Описание конфигураций***
В настоящем варианте осуществления, в основном будут описаны отличия от первого варианта осуществления.
В настоящем варианте осуществления, те же самые конфигурации, что и описанные в первом варианте осуществления, обозначены теми же самыми ссылочными позициями, и их описание опущено.
[0086] В первом варианте осуществления, кодирование данных выполняется путем передачи блоков от модуля 140 выбора дифференциальных блоков и модуля 160 выбора циклических блоков на модуль 150 кодирования.
В настоящем варианте осуществления, будет описана схема, в которой выполняется кодирование данных только из модуля 120 разделения блоков.
[0087] Конфигурация устройства 100c обработки изображения в соответствии с настоящим вариантом осуществления будет описана с использованием фиг. 12.
Отличие устройства 100с обработки изображения согласно фиг. 12 от устройства 100 обработки изображения согласно фиг. 1 состоит в том, что данными, сохраняемыми в модуле 192 хранения блоков, являются закодированное блочное изображение 821b и закодированное последнее блочное изображение 822b. Модуль 120 разделения на блоки выводит незакодированный блок на модуль 150 кодирования. Модуль 150 кодирования получает незакодированный блок только от модуля 120 разделения на блоки, выполняет процесс кодирования и выводит закодированные данные и размер данных закодированных данных на модуль 120 разделения на блоки. Способ кодирования является тем же самым, что и в первом варианте осуществления. Закодированное блочное изображение 821b представляет собой закодированные данные и размер данных закодированных данных.
Модуль 120 разделения на блоки сохраняет закодированные данные и размер данных закодированных данных, выведенные из модуля 150 кодирования, в модуле 182 хранения блоков. Модуль 182 хранения блоков может хранить части закодированных данных и размеры данных частей закодированных данных по кадрам. А именно, модуль 182 хранения блоков аккумулирует части закодированных данных и размеры данных частей закодированных данных, которые выводятся из модуля 120 разделения на блоки.
[0088] ***Описания операции***
Фиг. 17 является схемой, иллюстрирующей процесс S100c передачи изображения способа 510 обработки изображения и программы 520 обработки изображения для устройства 100с обработки изображения в соответствии с настоящим вариантом осуществления. Фиг. 13 является схемой, иллюстрирующей процесс S105c выбора дифференциальных блоков в соответствии с настоящим вариантом осуществления. Кроме того, фиг. 14 является схемой, иллюстрирующей процесс S390c выбора блоков запланированной циклической передачи в соответствии с настоящим вариантом осуществления.
На фиг. 17, этап S1001 добавляется к фиг. 4 первого варианта осуществления. Фиг. 13 является той же самой, что и фиг. 5, за исключением того, что добавлен этап S701 и удален этап S207 из фиг. 5 первого варианта осуществления. Дополнительно фиг. 14 является той же самой, что и фиг. 7, за исключением того, что добавлен этап S801 и этап S402 удален из фиг. 7 первого варианта осуществления.
[0089] В способе 510 обработки изображения согласно фиг. 17, кодирование, выполняемое на этапе S207 процесса S105 выбора дифференциальных блоков согласно фиг. 5 выполняется на этапе S1001 модулем 120 разделения на блоки. На этапе S1001, модуль 120 разделения на блоки записывает закодированные данные и размер данных для закодированных данных в модуль 182 хранения блоков.
Хотя на этапе S207 на фиг. 5 выполняется процесс кодирования, на этапе S701 на фиг. 13 модуль 140 выбора дифференциальных блоков считывает закодированные данные и размер данных закодированных данных из модуля 182 хранения блоков. А именно, на этапе S701, модуль 140 выбора дифференциальных блоков получает закодированный дифференциальный блок, полученный кодированием дифференциального блока, и размер данных закодированного дифференциального блока из модуля 182 хранения блоков и выбирает один или несколько блоков 2031 запланированной передачи различия на основе размеров данных закодированных дифференциальных блоков.
[0090] Кроме того, в процессе S390c выбора блоков запланированной циклической передачи согласно фиг. 14, этап S801 выполняется вместо кодирования данных, выполняемого на этапе S402 на фиг.7.
На этапе S801, модуль 160 выбора циклических данных считывает закодированные данные и размер данных закодированных данных из модуля 182 хранения блоков.
[0091] ***Описание полезных результатов настоящего варианта осуществления***
Как описано выше, в соответствии с устройством 100c обработки изображения согласно настоящему варианту осуществления, поскольку модуль 140 выбора дифференциальных блоков и модуль 160 выбора циклических блоков сравнивают закодированные данные, количество данных, подлежащих сравнению, уменьшается относительно случая сравнения данных, полученных перед кодированием, позволяя уменьшить загрузку для процесса сравнения.
[0092] Пятый вариант осуществления
***Описание конфигураций***
В настоящем варианте осуществления, в основном будут описаны отличия от второго варианта осуществления.
В настоящем варианте осуществления, те же самые конфигурации, что и описанные в вариантах осуществления с первого по четвертый, обозначены теми же самыми ссылочными позициями, и их описание опущено.
В настоящем варианте осуществления, будет описана конфигурация, в которой порядок, в котором исполняются модуль 130d обнаружения различия и модуль 120d разделения на блоки, изменен относительно порядка, в котором исполняются модуль 130 обнаружения различия и модуль 120 разделения на блоки в вариантах осуществления с первого по четвертый.
[0093] Конфигурация устройства 100d обработки изображения в соответствии с настоящим вариантом осуществления будет описана с использованием фиг. 15. Отличие устройства 100d обработки изображения в соответствии с настоящим вариантом осуществления от устройства 100 обработки изображения согласно вариантам осуществления состоит в том, что сначала исполняется модуль 130d обнаружения различия, а затем исполняется модуль 120d разделения на блоки.
[0094] Модуль 130d обнаружения различия считывает захваченное изображение 811 и последнее захваченное изображение 812 из модуля 181 хранения изображения. Модуль 130d обнаружения различия осуществляет сравнение на попиксельной основе, чтобы обнаруживать, имеются ли различия между считанным захваченным изображением 811 и последним захваченным изображением 812. Затем, модуль 130d обнаружения различия выводит дифференциальную пиксельную информацию, указывающую, в каких пикселах возникли различия, на модуль 120d разделения на блоки. В это время, модуль 130d обнаружения различия может также выводить захваченное изображение 811 на модуль 120d разделения на блоки.
Модуль 120d разделения на блоки принимает дифференциальную пиксельную информацию, указывающую, в каких пикселах возникли различия, из модуля 130d обнаружения различия и разделяет захваченное изображение 811 на множество блоков. Способ разделения указывается пользователем или файлом настроек, и разделение выполняется один или несколько раз в продольном направлении и один или несколько раз в поперечном направлении. Кроме того, в это время также можно не выполнять разделение либо в продольном, либо в поперечном направлениях. После разделения, модуль 120d разделения на блоки определяет для каждого блока, включает ли блок пиксел, в котором возникло различие. Если имеется различие, модуль 120d разделения на блоки записывает состояние 202 обнаружения различия в дифференциальную карту 831 посредством модуля 183 записи дифференциальной карты. Затем модуль 120d разделения на блоки сохраняет захваченное изображение 811, полученное в это время и разделенное на блоки, как блочное изображение 821, в модуль 182 хранения блоков.
[0095] ***Описание операции***
Процесс S100d передачи изображения в соответствии с настоящим вариантом осуществления будет описан с использованием фиг. 16.
В процессе S100d передачи изображения на фиг. 16, этап S901 добавлен между этапом S103 и S104 процесса S100a передачи изображения, описанного на фиг. 10. Процесс, выполняемый модулем 120d разделения на блоки на этапе S104d, также отличается от такового во втором варианте осуществления. Кроме того, процесс S105d выбора дифференциальных блоков также отличается от такового во втором варианте осуществления, и обнаружение различий на поблочной основе не выполняется. Другие операции являются теми же самыми, что и во втором варианте осуществления.
[0096] На этапе S901, модуль 130d обнаружения различия сравнивает захваченное изображение 811 с последним захваченным изображением 812 на попиксельной основе. Модуль 130d обнаружения различия выводит дифференциальную пиксельную информацию, указывающую пикселы, имеющие отличия от последнего захваченного изображения 812, на модуль 120d разделения на блоки.
На этапе S104d, модуль 120d разделения на блоки разделяет захваченное изображение 811 на множество блоков и обнаруживает, на основе дифференциальной пиксельной информации, блоки, включающие в себя пикселы, имеющие различия, в качестве дифференциальных блоков.
В процессе S105d выбора дифференциальных блоков, модуль 140 выбора дифференциальных блоков выбирает один или несколько блоков 2031 запланированной передачи различия из дифференциальных блоков, обнаруженных модулем 120d разделения на блоки. Процесс выбора одного или нескольких блоков 2031 запланированной передачи различия является тем же самым, что и описанный в первом варианте осуществления.
[0097] ***Описание полезных результатов настоящего варианта осуществления***
Как описано выше, в соответствии с устройством 100d обработки изображения в соответствии с настоящим вариантом осуществления, могут быть получены те же полезные результаты, что и в первом и втором вариантах осуществления.
[0098] Шестой вариант осуществления
***Описание конфигураций***
В этом шестом варианте осуществления, в основном будут описаны отличия от первого варианта осуществления.
В настоящем варианте осуществления, те же самые конфигурации, что и описанные в первом варианте осуществления, обозначены теми же самыми ссылочными позициями, и их описание опущено.
[0099] ***Описание операции***
Фиг. 18 является схемой, иллюстрирующей процесс S100e передачи изображения способа 510 обработки изображения и программы 520 обработки изображения для устройства 100e обработки изображения в соответствии с настоящим вариантом осуществления.
В первом варианте осуществления, на S102 согласно фиг. 4, когда имеется блок в состоянии запланированной передачи, т.е., состоянии 203 запланированной передачи различия или состоянии 302 запланированной циклической передачи, обработка переходит к S107.
В настоящем варианте осуществления, как проиллюстрировано на фиг. 18, когда имеется блок в состоянии запланированной передачи, т.е., состоянии 203 запланированной передачи различия, обработка переходит к S105. Кроме того, хотя в первом варианте осуществления выполняется процесс на S107, в настоящем варианте осуществления выполняется процесс на S107b, проиллюстрированный на фиг. 11.
[0100] Здесь, конкретные примеры процесса S105 выбора дифференциальных блоков и процесса S106 выбора циклических блоков, которые представлены после разделения экрана в настоящем варианте осуществления, будут описаны с использованием фиг. 19.
В качестве предварительных условий для фиг. 19, верхнее предельное значение X блоков, установленных в состояние запланированной передачи различия, равно десяти блокам, нижнее предельное значение Y блоков, установленных в состояние запланированной циклической передачи, равно двум блокам, и верхнее предельное значение Z блоков, установленных в состояние запланированной циклической передачи, равно пяти блокам. Кроме того, для назначения номера блока, номера назначаются так, что верхний левый угловой блок имеет номер 1, номер возрастает на один в строке в направлении направо, и когда достигается правый конец, номер возрастает снова на один от самого левого блока в строке непосредственно ниже. 20 блокам назначены номера от (1) до (20).
[0101] 1001, 1003, 1005, 1007, 1009, 1011, 1013 и 1015 на фиг. 19 представляют данные, получаемые после выполнения этапа S202 на фиг. 5, т.е., непосредственно после обнаружения различий. Блок со всеми четырьмя сторонами, окруженными жирной линией, указывает, что имеется различие. Кроме того, блок с по меньшей мере одной стороной, имеющей тонкую линию, указывает, что не имеется различия.
Например, в 1001, с (1) по (20) являются блоками с четырьмя сторонами, окруженными жирной линией, т.е., блоками, имеющими различия. Кроме того, в 1005, (7), (8), с (12) по (14), (18) и (19) являются блоками с четырьмя сторонами, окруженными жирной линией, т.е., блоками, имеющими различия.
Кроме того, например, в 1001, нет блоков с по меньшей мере одной стороной, имеющей тонкую линию, т.е., нет блоков, не имеющих различий. С другой стороны, в 1005, с (1) по (6), с (9) по (11), с (15) по (17) и (20) являются блоками с по меньшей мере одной стороной, имеющей тонкую линию, т.е., блоками, имеющими различия.
[0102] 1002, 1004, 1006, 1008, 1010, 1012, 1014 и 1016 на фиг. 19 представляют блоки, установленные в состояние запланированной передачи различия, или блоки, установленные в состояние запланированной циклической передачи. Блок со всеми четырьмя сторонами, окруженными жирной линией, указывает, что блок установлен в состояние запланированной передачи различия. Кроме того, блок с по меньшей мере одной стороной, имеющей тонкую линию, указывает блок, установленный в состояние запланированной циклической передачи.
Например, в 1002, с (1) по (10) указывают блоки с четырьмя сторонами, окруженными жирной линией, т.е., блоки, установленные в состояние запланированной передачи различия. Кроме того, в 1006, (7), (8) с (12) по (14), (18) и (19) указывают блоки с четырьмя сторонами, окруженными жирной линией, т.е., блоки, установленные в состояние запланированной передачи различия.
Кроме того, например, в 1002, (11) и (12) указывают блоки с по меньшей мере одной стороной, имеющей тонкую линию, т.е., блоки, установленные в состояние запланированной циклической передачи. Кроме того, в 1006, с (1) по (5) указывают блоки с по меньшей мере одной стороной, имеющей тонкую линию, т.е., блоки, установленные в состояние запланированной циклической передачи.
[0103] 1001 и 1002 на фиг. 19 показывают состояния блоков для начального цикла, т.е., первого цикла. После начального цикла, последнее захваченное изображение 811 не представлено, но в таком случае, процесс продолжается, учитывая все блоки, имеющие различия. Таким образом, в 1001, все блоки имеют различия. В 1002, имеется десять блоков, установленных в состояние запланированной передачи различия, и два блока, установленных в состояние запланированной циклической передачи. В процессе S107 передачи блоков, все блоки в 1002 передаются, и начальный цикл завершается.
[0104] 1003 и 1004 на фиг. 19 показывают состояния блоков для второго цикла. Во втором цикле, поскольку блоки с (13) по (20), которые не имели возможности передачи в первом цикле, остаются, при условном определении на этапе S102 обработка переходит к процессу S107 передачи блоков. В процессе S107 передачи блоков, передаются с (13) по (20).
[0105] 1005 и 1006 на фиг. 19 показывают состояния блоков для третьего цикла. В третьем цикле, различия обнаружены в (7), (8), с (12) по (14), (18) и (19). 1006 указывает, что все из вышеописанных блоков, в которых обнаружены различия, установлены в состояние запланированной передачи различия в результате выполнения процесса S105 выбора дифференциальных блоков. Кроме того, на этапе S305 процесса S106 выбора циклических блоков, состояния передачи циклических блоков очищаются, и с (1) по (5) устанавливаются в состояние запланированной циклической передачи.
[0106] 1007 и 1008 на фиг. 19 показывают состояния блоков для четвертого цикла. В четвертом цикле, в 1007, различия обнаружены в семи блоках (10), (14), (15) и с (17) по (20). Затем, в 1007 семь блоков (10), (14), (15) и с (17) по (20) устанавливаются в состояние запланированной передачи различия, и в 1008 пять блоков с (6) по (11) устанавливаются в состояние запланированной циклической передачи. Выбор блоков в состоянии запланированной циклической передачи начинается с блока, следующего за блоком (5), который установлен в состояние запланированной циклической передачи в третьем цикле.
[0107] 1009 и 1010 на фиг. 19 показывает состояния блоков для пятого цикла. В пятом цикле, в 1009, различия обнаружены только в (1), (7) и (19). В 1010, (1), (7) и (19) устанавливаются в состояние запланированной передачи различия и с (12) по (16) устанавливаются в состояние запланированной циклической передачи.
1011 и 1012 на фиг. 19 показывают состояния блоков для шестого цикла. В шестом цикле, в 1011, различия обнаружены во всех блоках, кроме (1), (4), (5) и (11). В 1012, имеются десять блоков, установленных в состояние запланированной передачи различия, и два блока, установленных в состояние запланированной циклической передачи.
[0108] 1013 и 1014 на фиг. 19 показывают состояния блоков для седьмого цикла. В седьмом цикле, передаются блоки с (17) по (20), которые не имели возможности передачи в шестом цикле.
1015 и 1016 на фиг. 19 показывают состояния блоков для восьмого цикла. В восьмом цикле, в 1015, различия обнаружены в девяти блоках. На этапе S305 процесса S106 выбора циклических блоков, состояния передачи циклических блоков очищаются, и блоки с (1) по (3) устанавливаются в состояние запланированной циклической передачи.
Описание конкретных примеров процесса S105 выбора дифференциальных блоков и процесса S106 выбора циклических блоков согласно настоящему варианту осуществления здесь заканчивается.
[0109] ***Описание полезных результатов настоящего варианта осуществления***
В настоящем варианте осуществления, когда передача прерывается в S107b, становится возможным повторно выбрать дифференциальные блоки и циклические блоки. За счет этого, больше дифференциальных блоков и больше циклических блоков может быть передано по сравнению с первым вариантом осуществления.
[0110] Седьмой вариант осуществления
***Описание конфигураций***
В этом седьмом варианте осуществления, в основном будет описано отличие от первого варианта осуществления.
В настоящем варианте осуществления, те же самые конфигурации, что и описанные в первом варианте осуществления, обозначены теми же самыми ссылочными позициями, и их описание опущено.
[0111] ***Описание операции***
Процесс S106f выбора циклических блоков в соответствии с настоящим вариантом осуществления будет описан с использованием фиг. 20.
В первом варианте осуществления, в процессе S106 выбора циклических блоков согласно фиг. 6, блоки, установленные в состояние запланированной циклической передачи, вновь выбираются на этапе S306 и S307.
В настоящем варианте осуществления, как проиллюстрировано на фиг. 20, процессы на этапе S306 и S307 не выполняются.
[0112] ***Описание полезных результатов настоящего варианта осуществления***
В соответствии с вариантом осуществления, блоки, установленные в состояние запланированной циклической передачи, не выбираются вновь на этапах S306 и S307, посредством чего повторная передача блоков, переданных один раз, выполняется в следующем или последующем цикле. Таким образом, количество блоков в состоянии запланированной циклической передачи, подлежащих передаче, может быть уменьшено, позволяя сохранить ширину полосы сети.
[0113] Описание вариантов осуществления с первого по седьмой здесь заканчивается. Следует отметить, что из этих вариантов осуществления с первого по седьмой, множество вариантов осуществления может быть частично скомбинировано и реализовано. Альтернативно, из этих вариантов осуществления с первого по седьмой, один вариант осуществления может быть частично реализован. Альтернативно, часть каждого из этих вариантов осуществления с первого по седьмой могут быть частично скомбинированы и реализованы. Кроме того, эти варианты осуществления с первого по седьмой могут быть целиком или частично скомбинированы и реализованы любым способом.
[0114] В вышеописанных вариантах осуществления с первого по седьмой, устройство обработки изображения сконфигурировано так, что каждый из ʺмодулейʺ является независимым функциональным блоком. Однако конфигурация не обязательно должна быть такой, как описано выше, и конфигурация устройства обработки изображения может быть любой. Функциональные блоки устройства обработки изображения могут быть любыми, пока функции, описанные в вышеописанных вариантах осуществления с первого по седьмой, могут быть реализованы. Устройство обработки изображения может быть сконфигурировано любой другой комбинацией этих функциональных блоков или любой блочной конфигурацией.
Кроме того, устройство обработки изображения может быть системой, включающей в себя множество устройств, вместо того, чтобы быть одним устройством.
[0115] Кроме того, может быть принят только любой один из описанных как ʺмодулиʺ в описании вариантов осуществления с первого по седьмой, или может быть принята любая комбинация некоторых из них. То есть, функциональная конфигурация устройства обработки изображения может быть любой, пока функции, описанные в вышеизложенных вариантах осуществления с первого по седьмой, могут быть реализованы. Функциональная конфигурация может быть сформирована любой комбинацией или любой функциональной конфигурацией.
[0116] Следует отметить, что вышеописанные с первого по седьмой варианты осуществления являются по существу предпочтительными примерами и не предназначены для ограничения объема настоящего изобретения, объектов, к которым применимо настоящее изобретение, или приложений, и различные изменения могут быть сделаны при необходимости.
Список ссылочных позиций
[0117] 100, 100c, 100d: устройство обработки изображения;
110: модуль захвата;
120, 120d: модуль разделения на блоки;
130, 130d: модуль обнаружения различия;
140: модуль выбора дифференциальных блоков;
150: модуль кодирования;
160: модуль выбора циклических блоков;
170: модуль передачи блоков;
181: модуль хранения изображения;
182: модуль хранения блоков;
183: модуль записи дифференциальной карты;
184: модуль записи циклической карты;
180: модуль хранения;
185: модуль хранения состояний блоков;
201: нормальное состояние;
202: состояние обнаружения различия;
203: состояние запланированной передачи различия;
301: состояние отсутствия передачи;
302: состояния запланированной циклической передачи;
303: состояние передачи;
510: способ обработки изображения;
520: программа обработки изображения;
811: захваченное изображение;
812: последнее захваченное изображение;
821: блочное изображение;
822: последнее блочное изображение;
851: информация состояний блоков;
831: дифференциальная карта;
841: циклическая карта;
810: доставляемое изображение;
820: сравниваемое изображение;
821b: закодированное блочное изображение;
822b: закодированное последнее блочное изображение;
909: схема обработки;
910: процессор;
920: устройство хранения;
930: интерфейс ввода;
940: интерфейс вывода;
950: устройство связи;
951: приемник;
952: передатчик;
921: память;
922: вспомогательное устройство хранения;
1401: закодированный блок различия;
1601: закодированный циклический блок;
2031: блок запланированной передачи различия;
3021: блок запланированной циклической передачи;
S100, S100a, S100c, S100d, S100e: процесс передачи изображения;
S105, S105c, S105d: процесс выбора дифференциальных блоков;
S106, S106f: процесс выбора циклических блоков;
S107, S107b: процесс передачи блоков;
S390, S390c: процесс выбора блоков запланированной циклической передачи,
X: порог различия;
Y: нижнее предельное значение;
Z: верхнее предельное значение.