RU2579899C1 - Обработка документа с использованием нескольких потоков обработки - Google Patents

Обработка документа с использованием нескольких потоков обработки Download PDF

Info

Publication number
RU2579899C1
RU2579899C1 RU2014139558/08A RU2014139558A RU2579899C1 RU 2579899 C1 RU2579899 C1 RU 2579899C1 RU 2014139558/08 A RU2014139558/08 A RU 2014139558/08A RU 2014139558 A RU2014139558 A RU 2014139558A RU 2579899 C1 RU2579899 C1 RU 2579899C1
Authority
RU
Russia
Prior art keywords
document
processing
workflow
main process
image
Prior art date
Application number
RU2014139558/08A
Other languages
English (en)
Inventor
Виталий Георгиевич Балл
Original Assignee
Общество с ограниченной ответственностью "Аби Девелопмент"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Аби Девелопмент" filed Critical Общество с ограниченной ответственностью "Аби Девелопмент"
Priority to RU2014139558/08A priority Critical patent/RU2579899C1/ru
Priority to US14/570,056 priority patent/US20160092407A1/en
Application granted granted Critical
Publication of RU2579899C1 publication Critical patent/RU2579899C1/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/96Management of image or video recognition tasks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/413Classification of content, e.g. text, photographs or tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/04Digital computers in general; Data processing equipment in general programmed simultaneously with the introduction of data to be processed, e.g. on the same record carrier
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1382Detecting the live character of the finger, i.e. distinguishing from a fake or cadaver finger
    • G06V40/1388Detecting the live character of the finger, i.e. distinguishing from a fake or cadaver finger using image processing

Abstract

Изобретение относится к области обработки электронных документов. Технический результат - обеспечение сокращения времени, необходимого для сборки файла документа, посредством параллельной организации рабочих процессов. Способ для использования параллельной обработки при формировании документа включает: назначение основным процессом множества задач обработки изображений множеству рабочих процессов, причем основной процесс создает рабочие процессы и продолжает обработку документа в то время, когда рабочие процессы выполняют свою соответствующую обработку; определение входных параметров для каждой задачи из множества задач, причем входные параметры содержат часть исходного документа и описание структуры этой части со ссылкой на элемент документа, требующий длительной обработки; и сборка основным процессом множества изображений, создаваемых рабочими процессами на основе элементов, требующих длительной обработки и определяющихся входными параметрами, в результирующий файл, соответствующий исходному документу. 3 н. и 20 з.п. ф-лы, 6 ил.

Description

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее изобретение в целом относится к вычислительным устройствам для обработки электронных документов, а точнее - к обработке документов с использованием параллельной обработки.
УРОВЕНЬ ТЕХНИКИ
[0002] Бумажный документ можно преобразовать в электронный файл путем оцифровки (например, используя сканирование) каждой страницы бумажного документа, получая серию изображений. Затем изображения обрабатываются для создания единого документа, например, в формате PDF (Portable Document Format) или TIFF (Tagged Image File Format). Процесс преобразования серии изображений часто требует большого объема вычислений и значительного времени.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0003] Настоящее изобретение иллюстрируется с помощью примеров, а не методом ограничения, его можно лучше понять при рассмотрении приведенного ниже подробного описания в сочетании с чертежами, на которых:
[0004] На Фиг. 1 представлена блок-схема одного из вариантов реализации вычислительного устройства, работающего в соответствии с одним или несколькими аспектами настоящего изобретения.
[0005] На Фиг. 2 показан пример файла, состоящего из нескольких частей, которые могут обрабатываться в соответствии с одним или несколькими аспектами настоящего изобретения.
[0006] На Фиг. 3 приведен пример файла, состоящего из нескольких частей, обрабатываемого основным процессом и несколькими рабочими процессами в соответствии с одним или несколькими аспектами настоящего изобретения.
[0007] На Фиг. 4 показана блок-схема одного иллюстративного примера способа 400 обработки файла при использовании параллельной обработки в соответствии с одним или несколькими аспектами настоящего изобретения.
[0008] На Фиг. 4А приведена блок-схема, которая расширяет блок 440 на Фиг. 4 в соответствии с одним или несколькими аспектами настоящего изобретения.
[0009] На Фиг. 5 приведена более подробная схема иллюстративного примера вычислительного устройства, в котором реализованы методы настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[00010] Настоящее изобретение относится к способу использования параллельной обработки при формировании документа (например, в формате PDF, DjVu, TIFF, PNG, JPEG, EPS или другого документа, состоящего из сегментов). Этот способ может включать использование нескольких процессов, которые совместно обрабатывают графические и/или текстовые элементы и собирают их в файл. В данном документе термин «процесс» относится к одному потоку, выполняющему последовательность инструкций, который может быть обеспечен, например, процессом Unix или потоком Linux. В одном примере возможен основной процесс и несколько рабочих процессов, которые работают совместно, чтобы собрать один или более документов в один файл в формате PDF.
[00011] Основной процесс может анализировать исходный документ и направлять рабочие процессы на обработку частей исходного документа. Такой анализ может включать выявление частей документа, которые включают один или более элементов, требующих длительной обработки, например графические элементы (такие как фотографии, линейная графика, картинки), аудио и т.п., причем в этой точке основной процесс может использовать рабочий процесс для обработки части документа. Элемент, занимающий длительное время на обработку, является частью документа, обработка которой занимает существенно больше времени, чем обработка других частей документа. Для иллюстрации настоящего изобретения в дальнейшем в качестве элементов, требующих длительной обработки, будут рассматриваться графические элементы. В одном примере реализации каждая часть может представлять собой изображение страницы многостраничного документа. Если несколько частей содержат графику, то основной процесс может использовать отдельный рабочий процесс для каждой части. Основной процесс может выполняться асинхронно по отношению к рабочим процессам и может продолжать обработку других частей документа при выполнении рабочих процессов. После того как основной процесс завершил свою часть обработки, он может ожидать завершения всех рабочих процессов перед продолжением для окончательной сборки файла.
[00012] Основной процесс может создавать рабочие процессы путем порождения дочерних процессов, используя, например, вызов fork() в Unix, вызов pthread_create() в Linux или иной подобный вызов системной функции. Количество рабочих процессов может зависеть от числа задач, определенных основным процессором, но может быть ограничено общим количеством доступных устройств обработки данных (например, ядер). Каждая задача может включать обработку одной части документа (например, страницы). Задача может быть создана, например, для каждой страницы независимо от места нахождения графических элементов или (при альтернативном подходе) только для страниц, содержащих графические элементы. Основной процесс может организовать очередь задач, если число задач больше числа рабочих процессов.
[00013] В одном примере реализации основной процесс может проанализировать внутреннее представление документа и определить, что в нем имеется 40 страниц. Из 40 страниц 10 страниц могут содержать графику. Таким образом, основной процесс может использовать 10 задач, соответствующих каждой из 10 страниц. Если имеется только 8 процессорных ядер, то основной процесс может создать до 7 рабочих процессов, а остальные три задачи могут быть помещены в очередь и обработаны рабочим процессом после завершения его текущей задачи.
[00014] Раскрытая в этом документе технология может обеспечить несколько преимуществ, например сокращение времени, необходимого для сборки файла документа. Такие преимущества становятся доступными за счет того, что обработка графических элементов (например, сжатие, изменение разрешения, формата изображения, цветности, качества, уменьшение шумов изображения) зачастую является значительно более сложной задачей с точки зрения объема вычислений, чем обработка текста (например, изменение шрифта). При параллельной организации рабочих процессов обработки графики можно сократить общее время, необходимое для сборки документа.
[00015] Различные аспекты упомянутых выше способов и систем подробно описаны ниже в этом документе с помощью примеров, а не методом ограничения.
[00016] На Фиг. 1 приведена блок-схема одного иллюстративного примера вычислительного устройства 100, работающего в соответствии с одним или несколькими аспектами настоящего изобретения. В иллюстративных примерах вычислительное устройство 100 может представлять собой разнообразные вычислительные устройства, включая планшетный компьютер, смартфон, ноутбук или настольный компьютер.
[00017] Вычислительное устройство 100 может содержать процессор 110, подключенный к системной шине 120. Другие устройства, подключенные к системной шине 120, могут включать память 130, дисплей 140, клавиатуру 150, оптическое устройство ввода 160 и один или более коммуникационных интерфейсов 170. Термин «подключенный» в этом документе означает электрическое соединение и/или обмен данными через одно или более интерфейсных устройств, адаптеров и т.п.
[00018] В различных иллюстративных примерах процессор 110 может содержать один или более устройств обработки данных. Процессорный блок может быть частью аппаратного обеспечения, которое выполняет поток независимо от других потоков в пределах одного процессора. Устройство обработки данных может представлять собой ядро процессора, включенное в центральный процессор (CPU), цифровой сигнальный процессор (DSP), графический процессор (GPU) или любой другой подобный тип аппаратного процессора. Устройства обработки данных могут располагаться в одном источнике аппаратного обеспечения (например, в сервере) или в группе источников аппаратного обеспечения (например, в кластере, серверной ферме), которая может быть логически объединена и способна функционировать в качестве единого ресурса (например, облака). Память 130 может включать одно или более энергозависимых запоминающих устройств (например, микросхемы ОЗУ), одно или более энергонезависимых запоминающих устройств (например, микросхемы ПЗУ или электрически стираемых программируемых ПЗУ) и/или одно или более запоминающих устройств (например, оптические или магнитные диски). Устройство оптического ввода 160 может представлять собой сканер или фотокамеру, настроенную на сбор света, отраженного от объектов, расположенных в ее поле зрения. Входная информация может представлять собой любой электронный документ, который был подвергнут обработке изображений, анализу документа и этапам оптического распознавания символов (OCR). Пример вычислительного устройства, в котором реализованы аспекты настоящего изобретения, будет рассмотрен более подробно ниже в описании Фиг. 5.
[00019] Память 130 может хранить команды модуля 190 для формирования электронных документов в заранее определенном формате. В определенных реализациях изобретения модуль 190 может выполнять способы сборки документа с графикой в соответствии с одним или несколькими аспектами настоящего изобретения. В качестве иллюстративного примера модуль 190 может быть реализован как функция, вызываемая через пользовательский интерфейс приложения. При альтернативном подходе модуль 190 может быть реализован в виде автономного приложения.
[00020] На Фиг. 2 показан пример состоящего из нескольких частей документа 210, который может быть обработан с помощью модуля 190, работающего в вычислительном устройстве 100 в соответствии с одним или несколькими аспектами настоящего изобретения. Документ 210 может включать части 220А-С (например, страницы), которые могут включать графические элементы 222А-В и текстовые элементы 224А-В. Эти элементы были выбраны исключительно для иллюстративных целей и не устанавливают каких-либо ограничений для объема настоящего описания.
[00021] Документ 210 может включать один или более цифровых элементов, которые могут быть переданы визуально для создания визуального представления электронного документа (например, на дисплее или в виде печатного материала). Документ 210 может представлять собой внутреннее представление, хранимое в модуле 190, имеющее структуру, которая обеспечивает возможность быстрого доступа. Как показано на Фиг. 2, документ 210 может представлять собой отсканированный журнал, который, возможно, был подвергнут этапам обработки изображений, анализа документа и OCR. В одном примере документ 210 может иметь формат, не читаемый ни одним из модулей за исключением модуля 190. В настоящем изобретении приведено описание способа сохранения документа из его внутреннего представления в любой выходной формат, который может быть прочитан автономным модулем или программным приложением.
[00022] Внутреннее представление документа 210 может включать справочную информацию, которая выявляет расположение графических элементов 222А-В и/или текстовых элементов 224А-В. Документ 210 также может включать другие элементы (например, разметку страницы или логическую структуру страниц), которые не показаны на Фиг. 2. В одном примере документ 210 может включать презентацию, таблицу и/или альбом, в этом случае его составные части 220А-С могут представлять собой страницы, слайды, ячейки и картинки соответственно.
[00023] Текстовые элементы 224А-В могут иметь любой цвет, шрифт или компоновку, как, например, блоки, колонки, таблицы или другую подобную компоновку. Графические элементы 222А-В могут включать, например, фотографию, картинку, иллюстрацию, чертеж, схему, график, диаграмму, символ или другую подобную графику.
[00024] На Фиг. 3 в качестве примера показан способ 300, в котором вычислительное устройство 100 может использовать несколько процессов обработки документа 310 и его различных частей (например, изображений 320А-С) для записи результирующего файла 340. Каждое из изображений 320А-С может представлять собой страницу электронного документа и включать графические элементы 322, 326, 328 и текстовые элементы 324А-D. Изображения 320А-С можно создать путем сканирования или иного способа получения изображения или серии изображений бумажного документа с последующей обработкой изображений, анализом документа и OCR. В различных иллюстративных примерах результирующий файл 340 может иметь формат, не зависящий от прикладного программного обеспечения, аппаратного обеспечения и операционных систем, и может содержать полное описание фиксированной разметки плоского документа, включая текст, шрифты, графику и другую информацию, необходимую для его отображения, например, как в файле PDF или DjVu.
[00025] Изображения 320А-С могут быть обработаны основным процессом 302 и/или рабочими процессами 304А-В. Обработка изображения может включать преобразование изображения или части изображения в требуемый формат. Например, преобразование может включать сжатие, изменение разрешения, форматирование, изменение цветности, уменьшение уровня шумов и/или сегментацию изображения. Сжатие может включать применение одной или нескольких технологий сжатия (например, алгоритмов), которые преобразовывают изображения, содержащие компоненты черно-белого текста и нерастеризованные компоненты, например, аналогично технологии Mixed Raster Content (MRC).
[00026] Выбор оптимального алгоритма сжатия может зависеть от типа графического элемента (например, фотография, линейная графика, картинка) или от предполагаемого размера документа. В одном примере может быть выбран алгоритм сжатия без потерь, который может уменьшить размер данных изображения с минимальной потерей качества изображения. Алгоритм сжатия может включать выявление и устранение статистической избыточности, например, как в форматах PNG или GIF. В другом примере алгоритм сжатия может представлять собой сжатие с потерями, которое может уменьшить размер изображения, но при этом может снижаться качество изображения, например, путем определения ненужной информации и удаления ее, как в алгоритме JPEG.
[00027] Как показано на Фиг. 3, документ 310 может быть обработан как основным процессом 302, так и рабочими процессами 304А-В. Способ может начаться с основного процесса 302, который анализирует изображения (например, страницы) части документа для выявления графических элементов 322, 326 и 328 и текстовых элементов 324A-D. Анализ разметки может включать доступ к структуре данных, которая включает информацию о базовом расположении (например, координаты) элементов в разметке. На основании разметки основной процесс 302 может определить, что все изображения (например, 320А-С) содержат текстовые элементы, а некоторые изображения (например, 320А и 320С) также включают графические элементы. Для изображений частей документа, которые включают графический элемент, основной процесс 302 может сформировать рабочий процесс для обработки графического элемента, а остальные части изображений (например, текстовые части) могут быть обработаны основным процессом 302.
[00028] В некоторых вариантах реализации изобретения наличие графических элементов не рассматривается, потому что требуется обработка изображения всей страницы (например, при сохранении в формат файла PDF текст под/над изображением страницы). Затем формируются рабочие процессы для обработки изображения каждой страницы документа.
[00029] Основной процесс 302 может использовать несколько рабочих процессов 304А-В и предоставлять рабочим процессам 304А-В информацию (например, входные параметры) для определения соответствующего расположения изображения и графических элементов. Информация о расположении может предоставляться в виде определения структуры, которая может включать в себя положение (например, координаты) и размеры части изображения, содержащего графический контент.
[00030] Каждый рабочий процесс может обработать изображение путем его сжатия и форматирования, а затем возвратить результаты в основной процесс 302. Как показано на Фиг. 3, основной процесс 302 формирует рабочий процесс 304А для обработки графического элемента 322А изображения 320А и порождает рабочий процесс 304В для обработки графических элементов 326 и 328 изображения 320С. В одном примере реализации рабочий процесс 304А может обработать часть документа (например, страницу) путем обработки графического элемента 322 без обработки остального изображения 320А (например, текстовый элемент 324А), а в другом примере рабочий процесс может обрабатывать все изображение 320А, включая графический элемент и текстовые элементы. Если изображение не имеет графических элементов, как показано в изображении 320В, то основной процесс 302 может обрабатывать изображение без использования дополнительного рабочего процесса.
[00031] Каждый рабочий процесс 304А-В может быть дочерним процессом основного процесса, или он может представлять собой один из потоков основного процесса 302. Таким образом, основной процесс может формировать рабочий процесс, создавая новый дочерний процесс, используя, например, порождение, разветвление или другую подобную функциональность. При альтернативном подходе формирование рабочего процесса может включать в себя создание нового потока с помощью соответствующей функциональной возможности. В другом примере осуществления основной процесс может повторно использовать уже существующий поток или дочерний процесс.
[00032] Основной процесс 302 может быть асинхронным по отношению к рабочим процессам 304А-В, поэтому он может создать рабочий процесс 304А и может продолжать обработку документа в то время, когда рабочие процессы 304А-В выполняют свою соответствующую обработку. Это позволяет модулю 190 обрабатывать нескольких частей документа 310 параллельно (например, параллельная обработка). В одном примере осуществления система может поддерживать двухуровневый параллелизм, при котором основной процесс может порождать один или более дочерних процессов (первый уровень параллелизма), а каждый дочерний процесс может иметь несколько потоков (второй уровень параллелизма). При этом, например, основной процесс может породить дочерний процесс для обработки страницы с несколькими графическими элементами, а дочерний процесс может иметь несколько потоков, каждый из которых обрабатывает один из графических элементов на странице.
[00033] Количество рабочих процессов может зависеть от различных условий, таких как количество задач и/или количество устройств обработки информации. В одном примере задача может быть создана для каждого изображения (например, страницы), включающего по меньшей мере один графический элемент. Поэтому гипотетический документ, содержащий три страницы, из которых две страницы содержат по два графических элемента, может привести к созданию двух задач. В другом примере реализации может быть создана задача для каждого графического элемента, и в этом примере формируются четыре задачи.
[00034] Основной процесс 302 может создавать рабочий процесс для каждой задачи, пока количество рабочих процессов не достигнет порогового количества рабочих процессов. Пороговое количество рабочих процессов может быть основано на системных ресурсах, например, пороговое значение может быть равно количеству устройств обработки информации минус один для основного процесса. Это позволяет использовать общее количество процессов (основного и рабочих), меньшее или равное числу процессорных блоков.
[00035] Как уже обсуждалось выше, устройства обработки информации могут соответствовать доступным ядрам; таким образом, если в машине имеется два процессора с четырьмя ядрами в каждом, то присутствуют восемь устройств обработки, и пороговое количество рабочих процессов может быть равно семи. Если используются виртуальные машины, то устройства обработки могут быть представлены виртуальными или имитационными процессорами, в этом случае количество устройств обработки определяется на основании количества устройств, доступных в гостевой машине для использования приложением 190. В другом примере реализации порог может быть основан на объеме используемой или не используемой (доступной) памяти для основного процесса и/или системы. Если системе не хватает памяти, то она может снизить порог и тем самым закрепить задачи среди меньшего количества рабочих процессов. В одном примере она может изменить порог на основании средней потребляемой памяти всех рабочих процессов или их части.
[00036] Когда количество рабочих процессов достигает порога, основной процесс может сформировать очередь из последующих задач. Очередь задач может включать хранение задач в структуре данных, такой как очередь, список, массив и/или стек, организованной по принципу FIFO. После постановки задачи в очередь основной процесс может распределить находящиеся в очереди задачи по рабочим процессам, завершившим или собирающимся завершить свою текущую задачу. В одном примере главный процесс может распределять задачи рабочему процессу, который уже обрабатывает изображение, и он может обрабатывать задачи последовательно или параллельно. В другом примере основной процесс может распределять задачи на основании порядка очередности, при котором более крупные задачи могут иметь более высокий приоритет. Затем основной процесс может сначала направить рабочий процесс на обработку задачи с более высоким приоритетом или может разбить задачу на несколько задач, которые будут распределены среди более чем одного рабочего процесса.
[00037] Когда рабочий процесс завершает задачу, он может либо прекратиться, либо перейти в режим ожидания. Прекращение может производиться автоматически, если рабочий процесс возвращает обработанное изображение, или может быть инициировано основным процессом. Кроме того, рабочий процесс может завершить задачу и ждать другой задачи. Он может сделать это, переходя в режим ожидания или в спящий режим, пока основной поток не направит его для обработки другой задачи. В этой ситуации рабочий процесс не может прекратиться до тех пор, пока больше не останется задач или не будут обработаны все изображения.
[00038] Одно изображение (например, изображение 320С) может включать множество графических элементов, которые могут быть обработаны с использованием различных алгоритмов кодирования. Рабочие процессы или основной процесс могут определить тип графического элемента путем доступа к справочной информации (например, путем определения структуры), которая включает поле графического типа. На основе графического типа рабочий процесс или основной процесс может выбрать алгоритм кодирования, который будет выполняться рабочими процессами 304А-В или основным процессом 302. Как показано на Фиг. 3, изображение 320С может включать встроенную цветную фотографию 326 и встроенное изображение в градациях серого 328. Для встроенной цветной фотографии 326 рабочий процесс 304В может анализировать тип графики и может выбрать алгоритм сжатия, который поддерживает фотореалистичные изображения (например, JPEG). Для изображения в градациях серого 328 тот же самый рабочий процесс 304В может выбирать алгоритм сжатия, который лучше подходит для графики с градациями серого. В другом примере содержащее несколько графических элементов изображение может быть сжато с использованием различных алгоритмов (например, алгоритма Mixed Raster Content (MRC)), а рабочий процесс, обрабатывающий эту задачу, можно разделить на несколько независимых рабочих процессов. Например, если требуется по-разному сжимать цветную фотографию 326 и изображение в градациях серого 328, то рабочий процесс 304В может быть разделен на два рабочих процесса: один независимый рабочий процесс (304С, не показан), который обрабатывает фотоснимок 326, и другой независимый рабочий процесс (304D, не показан), который обрабатывает изображение 328.
[00039] После обработки всех изображений основной процесс 302 может собрать результирующие изображения в один или более результирующих файлов 340. Сборка может включать, например, совмещение изображений (например, конкатенацию, сшивание, соединение) и другие этапы обработки изображений, не описанные в настоящем документе. В одном примере реализации изображения могут быть обработаны вне порядка, поэтому этап сборки также может изменить организацию обработанных изображений и изменить формат (например, кадрирование, вращение) одного или нескольких элементов, чтобы оптимизировать или улучшить их представление, например, сделать текст и/или графику яснее. В другом примере в результате документ может быть изменен для того, чтобы заменить текст документа с идентичным или по существу аналогичным стандартным шрифтом, который может дополнительно повысить сжатие, а также сократить последующее время декомпрессии.
[00040] Исходный документ 310 и/или результирующий файл 340 могут включать несколько слоев. Несколько слоев могут содержать данные, накладываемые на исходный документ, например текстовые метаданные, комментарии, аннотации или другие подобные данные. Примером многослойного документа является файл PDF с возможностью поиска, который может иметь прозрачный слой текста, наложенный на текстовые элементы документа.
[00041] Основной процесс 302 или рабочие процессы 304А-В могут изменить многослойный документ, чтобы объединить все слои в одну плоскость, например, путем выравнивания изображения или документа. Это может привести к устранению или уменьшению количества слоев.
[00042] На Фиг. 4 приведена блок-схема одного иллюстративного примера способа 400 обработки электронных документов в соответствии с одним или несколькими аспектами настоящего изобретения. Способ 400 и/или каждая из его отдельных функций, стандартных программ, подпрограмм или операций может выполняться с помощью одного или нескольких процессоров компьютерного устройства (например, вычислительного устройства 100 на Фиг. 1), в котором реализован этот способ. В некоторых вариантах реализации способ 400 может быть осуществлен с помощью двух или более потоков обработки, причем каждый поток выполняет одну или более отдельных функций, процедур, подпрограмм или операций способа. В качестве иллюстративного примера рабочие процессы или потоки обработки, реализующие способ 400, могут быть синхронизированы (например, с использованием семафоров, критических секций, и/или других механизмов синхронизации потоков).
[00043] В блоке 410 вычислительное устройство, реализующее этот способ, может получать изображения исходного документа 310. Исходный документ 310 может быть сохранен во временной внутренней структуре данных, которая представляет документ, полученный от другого процесса, осуществляющего распознавание изображений (например, OCR).
[00044] В блоке 420 вычислительное устройство может открыть изображение (например, страницу), а в блоке 430 вычислительное устройство может определить, содержит ли изображение по меньшей мере один графический элемент. Вычислительное устройство может различать типы элементов в изображении, поскольку оно может включать основной процесс 302 и рабочий процесс 304А-В, которые могут быть назначены различным элементам и использовать различные технологии обработки. В одном примере реализации основной процесс 302 может обрабатывать текстовый элемент 324А в пределах документа 310 без обработки каких-либо графических элементов, а рабочий процесс 304А может обрабатывать графический элемент 322 без обработки каких-либо текстовых элементов. В другом примере документ может включать страницы (например, 320С) с несколькими графическими элементами. Первый графический элемент может быть цветной фотографией, а второй графический элемент может быть штриховым черно-белым рисунком. Рабочий процесс может использовать первый алгоритм обработки (например, алгоритм сжатия с потерями) для первого графического элемента и другой алгоритм обработки (например, алгоритм сжатия без потерь) для второго графического элемента.
[00045] Если изображение включает графический элемент, то вычислительное устройство может перейти к блоку 440, чтобы подготовить (обработать) графические элементы, а затем к блоку 450, в противном случае вычислительное устройство может перейти непосредственно к блоку 450. В качестве иллюстративного примера определение наличия графических элементов может быть выполнено путем доступа к справочной информации. Блок 440 и подготовка (обработка) графических элементов будут описаны более подробно ниже со ссылкой на Фиг. 4А.
[00046] В блоке 450 вычислительное устройство может подготовить (обработать) текстовые элементы в изображении. В одном примере основной процесс 302 может обрабатывать текстовые элементы каждой страницы документа 310, при этом каждая страница, которая содержит графику, может обрабатываться отдельным выделенным рабочим процессом, при этом первый рабочий процесс 304А может обрабатывать графику на первой странице, а второй рабочий процесс 304В может обрабатывать графику на второй странице. В другом примере основной процесс 302 может обрабатывать только текст на страницах без графики, а рабочие процессы 304А-В могут обработать текст в дополнение к графике для любых страниц, которые имеют по крайней мере один графический элемент (например, изображения 320А и 320С).
[00047] В блоке 460 вычислительное устройство может проверить, включает ли документ другое изображение, при положительном ответе на этот вопрос происходит переход к блоку 420 и непрерывный перебор всех изображений на основе описанного выше процесса. В противном случае это последняя страница и вычислительное устройство может перейти к блоку 470 и ожидать завершения всех рабочих процессов.
[00048] В блоке 480 вычислительное устройство может создать выходной файл. Выходной файл может быть документом, состоящим из нескольких частей, которые могут иметь гибридный формат файла. Файлом с гибридным форматом может быть файл, в котором разные части файла сжаты с использованием различных алгоритмов сжатия. В одном примере выходной файл может находиться в гибридном формате, например PDF (PDF/A, PDF/E, PDF/UA, PDF/VT, PDF/X), PPT (PPTX) и/или DOC (DOCX). В одном примере вычислительное устройство, используемое для осуществления способа, может собрать несколько изображений в выходной файл, который представляет собой файл документа с жесткой разметкой.
[00049] После завершения операций, описанных выше в этом документе, выполнение этого способа может завершиться.
[00050] На Фиг. 4А приведена блок-схема, которая расширяет подготовку графического элемента, показанную в блоке 440 на Фиг. 4. В блоке 441 вычислительное устройство может создать задачу для обработки графических элементов изображения в отдельном или выделенном процессе (например, в фоновом процессе). На этапе 442 вычислительное устройство может определить, что количество рабочих процессов ниже порогового количества рабочих процессов. Если это количество ниже порогового значения, то вычислительное устройство может сформировать рабочий процесс, как показано в блоке 446. В противном случае вычислительное устройство может поместить задачи в очередь, как показано в блоке 444. В блоке 448 вычислительное устройство может назначить задачу только что созданному рабочему процессу. Затем этот рабочий процесс может обработать задачу в фоновом режиме.
[00051] В некоторых вариантах реализации изобретения эта функциональность также может анализировать разметку исходного документа для получения логической структуры документа. Затем эта функциональность может применить логическую структуру к извлеченной текстовой информации для получения редактируемого электронного файла, соответствующего исходному бумажному документу. Логическая структура документа может содержать множество элементов формы, включая изображения, таблицы, страницы, заголовки, главы, разделы, разделители, абзацы, подзаголовки, оглавления, сноски, ссылки, библиографии, рефераты, чертежи и т.д.
[00052] На Фиг. 5 представлена более подробная схема примера вычислительного устройства 500, внутри которого исполняется набор команд, которые вызывают выполнение вычислительным устройством любого из способов или нескольких способов настоящего изобретения. Вычислительное устройство 500 может включать те же компоненты, что и вычислительное устройство 100 на Фиг. 1, а также некоторые дополнительные или другие компоненты, некоторые из которых могут быть опциональными и необязательными для реализации аспектов настоящего изобретения. Вычислительное устройство может быть подключено к другому вычислительному устройству по локальной сети, корпоративной сети, сети экстранет или сети Интернет. Вычислительное устройство может работать в качестве сервера или клиента в сетевой среде "клиент/сервер" или в качестве однорангового вычислительного устройства в одноранговой (или распределенной) сетевой среде. Вычислительное устройство может быть представлено персональным компьютером (ПК), планшетным ПК, телевизионной приставкой (STB), карманным ПК (PDA), сотовым телефоном или любым вычислительным устройством, способным выполнять набор команд (последовательно или иным образом), определяющих операции, которые должны быть выполнены этим вычислительным устройством. Кроме того, в то время как показано только одно вычислительное устройство, следует принять, что термин «вычислительное устройство» также может включать любую совокупность вычислительных устройств, которые отдельно или совместно выполняют набор (или несколько наборов) команд для выполнения одной или нескольких методик, обсуждаемых в настоящем документе.
[00053] Пример вычислительного устройства 500 включает процессор 502, основную память 504 (например, постоянное запоминающее устройство (ПЗУ) или динамическую оперативную память (DRAM)) и устройство хранения данных 518, которые взаимодействуют друг с другом по шине 530.
[00054] Процессор 502 может быть представлен одним или более универсальными устройствами обработки данных, например микропроцессором, центральным процессором и т.д. В частности, процессор 502 может представлять собой микропроцессор с полным набором команд (CISC), микропроцессор с сокращенным набором команд (RISC), микропроцессор с командными словами сверхбольшой длины (VLIW), процессор, реализующий другой набор команд, или процессоры, реализующие комбинацию наборов команд. Процессор 502 также может представлять собой одно или несколько устройств обработки специального назначения, например интегральную схему специального назначения (ASIC), программируемую пользователем вентильную матрицу (FPGA), процессор цифровых сигналов (DSP), сетевой процессор и т.п. Процессор 502 настроен на выполнение команд 522 для осуществления рассмотренных в настоящем документе операций и функций.
[00055] Вычислительное устройство 500 может дополнительно включать статическую память 506, устройство сетевого интерфейса 508, видеодисплей 510, устройство ввода символов 512 (например, клавиатуру), устройство управления курсором 514 и генератор сигналов 516.
[00056] Запоминающее устройство 518 может содержать машиночитаемый носитель данных 528, в котором хранится один или более наборов команд 522, реализующих один или более из методов или функций настоящего изобретения. Команды 522 также могут находиться полностью или по меньшей мере частично в основной памяти 504 и/или в процессоре 502 во время исполнения их в вычислительном устройстве 500. Основная память 504 и процессор 502 также могут составлять машиночитаемый носитель данных. Команды 522 дополнительно могут передаваться или приниматься по сети 520 через устройство сетевого интерфейса 508.
[00057] В определенных вариантах реализации команды 522 могут включать команды способа 300 и/или 400 для обработки изображений документов; они могут выполняться с помощью модуля 190, изображенного на Фиг. 1. В то время как машиночитаемый носитель 528, показанный на примере на Фиг. 5, является единым носителем, термин «машиночитаемый носитель» должен включать один носитель или несколько носителей (например, централизованную или распределенную базу данных и/или соответствующие кэши и серверы), в которых хранятся один или несколько наборов команд. Термин «машиночитаемый носитель информации» также следует рассматривать как термин, включающий любой носитель, который способен хранить, кодировать или выполнять набор команд для выполнения машиной, который заставляет эту машину выполнять любую одну или более из методик, описанных в настоящем описании изобретения. Термин «машиночитаемый носитель информации» включает помимо прочего твердотельную память, оптические и магнитные носители.
[00058] Описанные в документе способы, компоненты и функции могут быть реализованы дискретными компонентами аппаратного обеспечения, либо они могут быть интегрированы в функции других аппаратных компонентов, таких как ASICS, FPGA, DSP или подобных устройств. Кроме того, способы, компоненты и функции могут быть реализованы с помощью модулей встроенного программного обеспечения или функциональных схем аппаратных устройств. Способы, компоненты и функции могут быть также реализованы с помощью любой комбинации аппаратных устройств и программных компонентов либо исключительно с помощью программного обеспечения.
[00059] В приведенном выше описании изложены многочисленные детали. Однако специалисту в этой области техники благодаря этому описанию очевидно, что настоящее изобретение может быть реализовано на практике без этих конкретных деталей. В некоторых случаях хорошо известные структуры и устройства показаны в виде блок-схемы, а не детально, чтобы не усложнять описание настоящего изобретения.
[00060] Некоторые части описания предпочтительных вариантов осуществления представлены в виде алгоритмов и символического представления операций с битами данных в памяти компьютера. Такие описания и представления алгоритмов представляют собой средства, используемые специалистами в области обработки данных, чтобы наиболее эффективно передавать сущность своей работы другим специалистам в этой области. В настоящем документе и в целом алгоритмом называется самосогласованная последовательность операций, приводящих к требуемому результату. В операциях производятся физические манипуляции с физическими величинами. Обычно, хотя и не обязательно, эти величины принимают форму электрических или магнитных сигналов, которые можно хранить, передавать, комбинировать, сравнивать и подвергать другим манипуляциям. Оказалось, что прежде всего для обычного использования удобно описывать эти сигналы в виде битов, значений, элементов, символов, членов, цифр и т.д.
[00061] Однако следует иметь в виду, что все эти и подобные термины должны быть связаны с соответствующими физическими величинами и что они представляют собой просто удобные метки, применяемые к этим величинам. Из приведенного ниже изложения очевидно, что если особо не указано иное, то следует понимать, что в описании такие термины, как «определение», «вычисление», «расчет», «получение», «выявление», «изменение» и т.п., относятся к действиям и процессам вычислительного устройства или аналогичного электронного вычислительного устройства, которое манипулирует данными и преобразует данные, представленные в виде физических (например, электронных) величин в регистрах вычислительного устройства и памяти, в другие данные, аналогичным образом представленные в виде физических величин в памяти или регистрах вычислительного устройства или других таких устройств хранения, передачи или отображения информации.
[00062] Настоящее изобретение также относится к устройству для выполнения операций, описанных в этом документе. Такое устройство может быть специально сконструировано для требуемых целей, или оно может содержать универсальный компьютер, который избирательно активируется или реконфигурируется с помощью компьютерной программы, хранящейся в компьютере. Такая компьютерная программа может храниться на машиночитаемом носителе данных, например (помимо прочего): диск любого типа, в том числе гибкий диск, оптические диски, CD-ROM и магнитно-оптические диски, постоянные запоминающие устройства (ПЗУ), оперативные запоминающие устройства (ОЗУ), программируемые ПЗУ (EPROM), электрически стираемые ППЗУ (EEPROM), магнитные или оптические карты или любой тип носителя, пригодный для хранения электронных команд.
[00063] Следует иметь в виду, что приведенное выше описание предназначено для иллюстрации и что оно не носит ограничительный характер. Различные другие реализации станут очевидны специалистам в данной области техники после прочтения и понимания приведенного выше описания. Поэтому объем раскрытия должен определяться со ссылкой на прилагаемую формулу изобретения наряду с полным объемом эквивалентов, на которые такие требования предоставляют право.

Claims (23)

1. Способ для использования параллельной обработки при формировании документа, включающий:
назначение основным процессом множества задач обработки изображений множеству рабочих процессов, причем основной процесс создает рабочие процессы и продолжает обработку документа в то время, когда рабочие процессы выполняют свою соответствующую обработку;
определение входных параметров для каждой задачи из множества задач, причем входные параметры содержат часть исходного документа и описание структуры этой части со ссылкой на элемент документа, требующий длительной обработки; и
сборка основным процессом множества изображений, создаваемых рабочими процессами на основе элементов, требующих длительной обработки и определяющихся входными параметрами, в результирующий файл, соответствующий исходному документу.
2. Способ по п. 1, отличающийся тем, что элементы, требующие длительной обработки, представляют собой графические элементы.
3. Способ по п. 1, отличающийся тем, что назначение включает одно из следующего: порождение нового рабочего процесса или назначение задачи существующему рабочему процессу.
4. Способ по п. 1, отличающийся тем, что часть исходного документа представляет собой страницу многостраничного документа.
5. Способ по п. 2, отличающийся тем, что рабочий процесс из множества рабочих процессов настроен на выбор алгоритма сжатия на основе типа графического элемента.
6. Способ по п. 2, отличающийся тем, что каждый рабочий процесс сжимает графический элемент для получения соответствующего изображения, причем соответствующее изображение также включает изменение по меньшей мере одного из следующего: формата изображения, разрешения, цветности, качества или шумов.
7. Способ по п. 1, отличающийся тем, что каждый рабочий процесс дополнительно выводит изображение части исходного документа, которое будет включено в файл, причем этот файл совместим с определенным форматом.
8. Способ по п. 1, дополнительно включающий постановку нового задания в очередь в результате определения того, что количество задач превышает количество устройств обработки данных.
9. Способ по п. 1, отличающийся тем, что ссылка на элемент, требующий длительной обработки, содержит координаты в исходном документе для элемента, которому требуется длительная обработка.
10. Система для использования параллельной обработки при формировании документа, включающая:
память;
процессор, соединенный с памятью, причем этот процессор настроен на:
назначение основным процессом множества задач обработки изображений множеству рабочих процессов, причем основной процесс создает рабочие процессы и продолжает обработку документа в то время, когда рабочие процессы выполняют свою соответствующую обработку;
определение входных параметров для каждой задачи из множества задач, причем входные параметры содержат часть исходного документа и описание структуры этой части со ссылкой на элемент документа, требующий длительной обработки; и
вывод в результирующий файл, соответствующий исходному документу, множества изображений, созданных рабочим процессом на основе элементов, требующих длительной обработки и определенных входными параметрами.
11. Система по п. 10, отличающаяся тем, что требующие длительной обработки элементы представляют собой графические элементы.
12. Система по п. 10, отличающаяся тем, что назначение включает одно из следующего: порождение нового рабочего процесса или назначение задачи существующему рабочему процессу.
13. Система по п. 10, отличающаяся тем, что часть исходного документа представляет собой страницу многостраничного документа.
14. Система по п. 11, отличающаяся тем, что рабочий процесс из множества рабочих процессов имеет возможность выбора алгоритма сжатия на основании типа графического элемента.
15. Система по п. 11, отличающаяся тем, что каждый рабочий процесс сжимает графический элемент для получения соответствующего изображения, причем соответствующее изображение также включает изменение по меньшей мере одного из следующего: формата изображения, разрешения, цветности и качества или снижение уровня шумов.
16. Система по п. 10, отличающаяся тем, что каждый рабочий процесс далее выводит изображение части исходного документа, которое должно быть включено в файл, причем этот файл имеет определенный формат.
17. Система по п. 9, дополнительно включающая постановку нового задания в очередь в результате определения того, что количество задач превышает количество устройств обработки данных.
18. Система по п. 9, отличающаяся тем, что ссылка на элемент, требующий длительной обработки, содержит координаты в исходном документе для элемента, которому требуется длительная обработка.
19. Постоянный машиночитаемый носитель для использования параллельной обработки при формировании документа, содержащий исполняемые команды, которые при выполнении вычислительным устройством заставляют это вычислительное устройство выполнять операции, включающие:
назначение основным процессом множества задач обработки изображений множеству рабочих процессов, причем основной процесс создает рабочие процессы и продолжает обработку документа в то время, когда рабочие процессы выполняют свою соответствующую обработку;
определение входных параметров для каждой задачи из множества задач, причем входные параметры содержат часть исходного документа и описание структуры этой части со ссылкой на элемент документа, требующий длительной обработки; и
сборка основным процессом множества изображений, создаваемых рабочими процессами на основе элементов, требующих длительной обработки и определяющихся входными параметрами, в результирующий файл, соответствующий исходному документу.
20. Носитель данных по п. 19, отличающийся тем, что требующие длительной обработки элементы представляют собой графические элементы.
21. Постоянный машиночитаемый носитель данных по п. 19, отличающийся тем, что назначение включает одно из следующего: порождение нового рабочего процесса или назначение задачи существующему рабочему процессу.
22. Постоянный машиночитаемый носитель данных по п. 19, отличающийся тем, что часть исходного документа представляет собой страницу многостраничного документа.
23. Постоянный машиночитаемый носитель данных по п. 20, отличающийся тем, что рабочий процесс из множества рабочих процессов настроен на выбор алгоритма сжатия на основе типа графического элемента.
RU2014139558/08A 2014-09-30 2014-09-30 Обработка документа с использованием нескольких потоков обработки RU2579899C1 (ru)

Priority Applications (2)

Application Number Priority Date Filing Date Title
RU2014139558/08A RU2579899C1 (ru) 2014-09-30 2014-09-30 Обработка документа с использованием нескольких потоков обработки
US14/570,056 US20160092407A1 (en) 2014-09-30 2014-12-15 Document processing using multiple processing threads

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2014139558/08A RU2579899C1 (ru) 2014-09-30 2014-09-30 Обработка документа с использованием нескольких потоков обработки

Publications (1)

Publication Number Publication Date
RU2579899C1 true RU2579899C1 (ru) 2016-04-10

Family

ID=55584596

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014139558/08A RU2579899C1 (ru) 2014-09-30 2014-09-30 Обработка документа с использованием нескольких потоков обработки

Country Status (2)

Country Link
US (1) US20160092407A1 (ru)
RU (1) RU2579899C1 (ru)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2632125C1 (ru) * 2016-04-29 2017-10-02 Общество С Ограниченной Ответственностью "Яндекс" Способ и система обработки задач в облачном сервисе
RU2640296C1 (ru) * 2016-12-06 2017-12-27 Общество с ограниченной ответственностью "Аби Девелопмент" Способ и устройство для определения пригодности документа для оптического распознавания символов (ocr) на сервере
RU2702963C2 (ru) * 2018-03-05 2019-10-14 Максим Валерьевич Шептунов Способ оптимизации производительности поточных линий для оцифровки музейных предметов и архивно-библиотечных материалов и коллекций

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10698645B2 (en) * 2016-06-15 2020-06-30 Solix Technologies, Inc. Virtual printer
US20180160200A1 (en) * 2016-12-03 2018-06-07 Streamingo Solutions Private Limited Methods and systems for identifying, incorporating, streamlining viewer intent when consuming media
GB201721942D0 (en) * 2017-12-27 2018-02-07 Palantir Technologies Inc Data extracting system and method
US11630738B2 (en) * 2019-04-24 2023-04-18 International Business Machines Corporation Automatic objective-based compression level change for individual clusters
US11079984B2 (en) 2019-09-30 2021-08-03 Ricoh Company, Ltd. Image processing mechanism
US11195008B2 (en) 2019-10-30 2021-12-07 Bill.Com, Llc Electronic document data extraction
US11361759B2 (en) * 2019-11-18 2022-06-14 Streamingo Solutions Private Limited Methods and systems for automatic generation and convergence of keywords and/or keyphrases from a media

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6031939A (en) * 1997-03-17 2000-02-29 Alcatel Method of optimizing the compression of image data, with automatic selection of compression conditions
RU2450339C2 (ru) * 2008-06-26 2012-05-10 Рассел Х. ФИШ III Мультипроцессорная архитектура, оптимизированная для потоков
RU2494459C2 (ru) * 2008-08-28 2013-09-27 Сентр Насьональ Д'Этюд Спатьяль (Снес) Способ и система для получения, сжатия и передачи изображений земной поверхности

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01195568A (ja) * 1988-01-29 1989-08-07 Hitachi Ltd 電子化文書編集制御方式
EP0663090A4 (en) * 1992-10-01 1996-01-17 Quark Inc MANAGEMENT AND COORDINATION OF A PUBLICATION SYSTEM.
US6185587B1 (en) * 1997-06-19 2001-02-06 International Business Machines Corporation System and method for building a web site with automated help
US7672022B1 (en) * 2000-04-07 2010-03-02 Hewlett-Packard Development Company, L.P. Methods and apparatus for analyzing an image
US7600183B2 (en) * 2000-06-16 2009-10-06 Olive Software Inc. System and method for data publication through web pages
US20030002708A1 (en) * 2001-02-23 2003-01-02 Joe Pasqua System and method for watermark detection
US20070055931A1 (en) * 2003-05-14 2007-03-08 Hiroaki Zaima Document data output device capable of appropriately outputting document data containing a text and layout information
US8804028B2 (en) * 2004-01-30 2014-08-12 Hewlett-Packard Development Company, L.P. Digital image production method and apparatus
US20060037021A1 (en) * 2004-08-12 2006-02-16 International Business Machines Corporation System, apparatus and method of adaptively queueing processes for execution scheduling
US7634112B1 (en) * 2004-09-13 2009-12-15 Google Inc. Automatic finger detection in document images
WO2009026193A2 (en) * 2007-08-17 2009-02-26 Accupatent, Inc. System and method for search
US8593666B2 (en) * 2009-02-11 2013-11-26 Hewlett-Packard Development Company, L.P. Method and system for printing a web page
US8588528B2 (en) * 2009-06-23 2013-11-19 K-Nfb Reading Technology, Inc. Systems and methods for displaying scanned images with overlaid text
US8370628B2 (en) * 2009-07-16 2013-02-05 Oracle International Corporation Document collaboration system with alternative views
US8352856B2 (en) * 2009-11-11 2013-01-08 Xerox Corporation Systems and methods to resize document content
JP2014068276A (ja) * 2012-09-26 2014-04-17 Olympus Imaging Corp 画像編集装置、画像編集方法、およびプログラム
US9245318B2 (en) * 2014-05-08 2016-01-26 Xerox Corporation Methods and systems for automated orientation detection and correction

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6031939A (en) * 1997-03-17 2000-02-29 Alcatel Method of optimizing the compression of image data, with automatic selection of compression conditions
RU2450339C2 (ru) * 2008-06-26 2012-05-10 Рассел Х. ФИШ III Мультипроцессорная архитектура, оптимизированная для потоков
RU2494459C2 (ru) * 2008-08-28 2013-09-27 Сентр Насьональ Д'Этюд Спатьяль (Снес) Способ и система для получения, сжатия и передачи изображений земной поверхности

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
А. КРУПИН, "ABBYY FineReader: взгляд изнутри", 3DNews, 9 с.. 14.08.2012, [найдено 08.09.2015]. Найдено в Интернет по адресу: <http://www.3dnews.ru/632560/prin>. *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2632125C1 (ru) * 2016-04-29 2017-10-02 Общество С Ограниченной Ответственностью "Яндекс" Способ и система обработки задач в облачном сервисе
US10324764B2 (en) 2016-04-29 2019-06-18 Yandex Europe Ag Method and system for processing tasks in a cloud service
RU2640296C1 (ru) * 2016-12-06 2017-12-27 Общество с ограниченной ответственностью "Аби Девелопмент" Способ и устройство для определения пригодности документа для оптического распознавания символов (ocr) на сервере
RU2702963C2 (ru) * 2018-03-05 2019-10-14 Максим Валерьевич Шептунов Способ оптимизации производительности поточных линий для оцифровки музейных предметов и архивно-библиотечных материалов и коллекций

Also Published As

Publication number Publication date
US20160092407A1 (en) 2016-03-31

Similar Documents

Publication Publication Date Title
RU2579899C1 (ru) Обработка документа с использованием нескольких потоков обработки
US8718364B2 (en) Apparatus and method for digitizing documents with extracted region data
JP5274305B2 (ja) 画像処理装置、画像処理方法、コンピュータプログラム
MXPA03002793A (es) Archivos de contenido de trama mezclada.
CN109271613B (zh) 一种pdf文件解析方法
US20150071542A1 (en) Automated redaction
JP5249387B2 (ja) 画像処理装置、画像処理方法、及びプログラム
US10235612B2 (en) Information processing apparatus, information processing method, storage medium, and image forming apparatus for converting drawing data of a transparent object that does not overlap another drawing object into drawing data of a drawing object that does not have an alpha channel as color information
WO2020233023A1 (zh) 基于分层技术实现的psd文件编辑方法、电子设备
KR102137039B1 (ko) 문서 파일의 압축 처리를 행하는 화상 처리 장치, 문서 파일의 압축 방법 및 저장 매체
JP6262708B2 (ja) 深い検索性を有するオブジェクト化及びハードコピーからオリジナルの電子ファイルを検出するドキュメント検出方法
CN104111913A (zh) 一种流式文档的处理方法及装置
US9864750B2 (en) Objectification with deep searchability
RU2603495C1 (ru) Классификация изображений документов на основе параметров цветовых слоев
JP4747780B2 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
JP2004363786A (ja) 画像処理装置
RU2648636C2 (ru) Сохранение контента в конвертированных документах
US9798724B2 (en) Document discovery strategy to find original electronic file from hardcopy version
US20170243093A1 (en) Method of enhancing quality of image object included in compound document and apparatus for performing the method
US8566366B2 (en) Format conversion apparatus and file search apparatus capable of searching for a file as based on an attribute provided prior to conversion
US20190005038A1 (en) Method and apparatus for grouping documents based on high-level features clustering
RU2571379C2 (ru) Интеллектуальная обработка электронного документа
CN112416340A (zh) 基于草图的网页生成方法和系统
JP4480109B2 (ja) 画像管理装置および画像管理方法
JP6512763B2 (ja) 情報処理装置、情報処理方法、プログラム

Legal Events

Date Code Title Description
QZ41 Official registration of changes to a registered agreement (patent)

Free format text: LICENCE FORMERLY AGREED ON 20151118

Effective date: 20161213

QZ41 Official registration of changes to a registered agreement (patent)

Free format text: LICENCE FORMERLY AGREED ON 20151118

Effective date: 20170613

QZ41 Official registration of changes to a registered agreement (patent)

Free format text: LICENCE FORMERLY AGREED ON 20151118

Effective date: 20171031

QC41 Official registration of the termination of the licence agreement or other agreements on the disposal of an exclusive right

Free format text: LICENCE FORMERLY AGREED ON 20151118

Effective date: 20180710

PC43 Official registration of the transfer of the exclusive right without contract for inventions

Effective date: 20181121

QB4A Licence on use of patent

Free format text: LICENCE FORMERLY AGREED ON 20201211

Effective date: 20201211

QC41 Official registration of the termination of the licence agreement or other agreements on the disposal of an exclusive right

Free format text: LICENCE FORMERLY AGREED ON 20201211

Effective date: 20220311