JP2019029020A - プロセッサの複数のコアを効率的に使用してフォント処理を実行するデータ処理方法、データ処理装置及びプログラム - Google Patents
プロセッサの複数のコアを効率的に使用してフォント処理を実行するデータ処理方法、データ処理装置及びプログラム Download PDFInfo
- Publication number
- JP2019029020A JP2019029020A JP2018141565A JP2018141565A JP2019029020A JP 2019029020 A JP2019029020 A JP 2019029020A JP 2018141565 A JP2018141565 A JP 2018141565A JP 2018141565 A JP2018141565 A JP 2018141565A JP 2019029020 A JP2019029020 A JP 2019029020A
- Authority
- JP
- Japan
- Prior art keywords
- data
- character
- characters
- font
- cores
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/1802—Receiving generic data, e.g. fonts, colour palettes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/181—Receiving print data characterized by its formatting, e.g. particular page description languages
- G06K15/1811—Receiving print data characterized by its formatting, e.g. particular page description languages including high level document description only
- G06K15/1813—Page description language recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/1822—Analysing the received data before processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1827—Accessing generic data, e.g. fonts
- G06K15/1831—Accessing generic data, e.g. fonts characterized by the format of the data
- G06K15/1834—Outline coded data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1835—Transforming generic data
- G06K15/1836—Rasterization
- G06K15/1838—Rasterization from outline-coded data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1894—Outputting the image data to the printing elements
- G06K15/1898—Outputting the image data to the printing elements while adapting the order of the data to the printing elements' arrangement, e.g. row-to-column conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/0005—Accepting output data; Preparing data for the controlling system
- G06K2215/0011—Accepting output data; Preparing data for the controlling system characterised by a particular command or data flow, e.g. Page Description Language, configuration commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/004—Generic data transformation
- G06K2215/0042—Rasterisation
- G06K2215/0045—Converting outline to bitmap
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Record Information Processing For Printing (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
【課題】フォントラスタライズ処理において複数のコアを効果的に使用する。
【解決手段】データ処理装置は、N個のコアを有するCPU、メモリと、制御プログラムを格納する記憶部とを有する。制御プログラムは、データ処理装置に、印刷データに含まれている文字データによって特定される複数の文字のうちメモリにラスターデータが格納されていない文字である新規文字を検索し、検索された新規文字の数をカウントする検索工程と、N個のコアのうちカウントされた新規文字の数に基づいて決定された数であるM個のスレッドを生成するスレッド生成工程と、M個のスレッドのそれぞれにN個のコアのいずれか1つを使用し、複数の文字をM個のスレッドに分散して割り当てて、新規文字のラスターデータを生成するラスターデータ生成工程と、文字データに対応するラスターデータを使用して、複数の文字を描画する描画処理工程とを含む工程を実施させる。
【選択図】図1
【解決手段】データ処理装置は、N個のコアを有するCPU、メモリと、制御プログラムを格納する記憶部とを有する。制御プログラムは、データ処理装置に、印刷データに含まれている文字データによって特定される複数の文字のうちメモリにラスターデータが格納されていない文字である新規文字を検索し、検索された新規文字の数をカウントする検索工程と、N個のコアのうちカウントされた新規文字の数に基づいて決定された数であるM個のスレッドを生成するスレッド生成工程と、M個のスレッドのそれぞれにN個のコアのいずれか1つを使用し、複数の文字をM個のスレッドに分散して割り当てて、新規文字のラスターデータを生成するラスターデータ生成工程と、文字データに対応するラスターデータを使用して、複数の文字を描画する描画処理工程とを含む工程を実施させる。
【選択図】図1
Description
本発明は、データ処理方法、データ処理装置及びプログラムに関し、特にフォント処理に関する。
画像形成装置(たとえばプリンター、多機能プリンター、又は複合機(Multifunction Peripheral))は、ページ記述言語(Page Description Language)で記述された印刷ジョブに基づいて印刷処理を行うことができる。印刷処理には、印刷ジョブに含まれるフォントデータ(たとえばアウトラインフォントのデータ)に基づいてラスタライズしてラスターデータを生成するフォントラスタライズ処理が含まれることがある。フォントラスタライズ処理は、処理コストの大きな処理なので、ラスターデータは、一般にフォントキャッシュに格納されて再利用される。一方、プロセッサ(Central Processing Unit)には、複数のコアを有することによって処理能力が向上しつつあるものがある。
このような状況において、本願発明者は、フォントラスタライズ処理において複数のコアを効果的に使用する方法に着目した。
本発明は、このような状況に鑑みてなされたものであり、フォントラスタライズ処理において複数のコアを効果的に使用する技術を提供することを目的とする。
本発明のデータ処理装置は、N個(Nは2以上の整数)のコアを有するプロセッサと、メモリと、コンピュータ読み取り可能なプログラム命令を格納するデータ格納部であって、前記プログラム命令が、前記プロセッサによる実行の際に、前記データ処理装置に、印刷データに含まれている文字データによって特定される複数の文字のうち前記メモリにラスターデータが格納されていない文字である新規文字を検索し、前記検索された新規文字の数をカウントする検索工程と、前記N個のコアのうち前記カウントされた新規文字の数に基づいて決定された数であるM個(MはN以下の整数)のスレッドを生成するスレッド生成工程と、前記M個のスレッドのそれぞれに前記N個のコアのいずれか1つを使用し、前記複数の文字を前記M個のスレッドに分散して割り当てて、前記新規文字のラスターデータを生成するラスターデータ生成工程と、前記文字データに対応するラスターデータを使用して、前記複数の文字を描画する描画処理工程とを含む工程を実施させるプログラム命令を格納するデータ格納部と備える。
本発明のデータ処理方法は、N個(Nは2以上の整数)のコアを有するプロセッサとメモリとを使用してデータを処理する。前記データ処理方法は、印刷データに含まれている文字データによって特定される複数の文字のうち前記メモリにラスターデータが格納されていない文字である新規文字を検索し、前記検索された新規文字の数をカウントする検索工程と、前記N個のコアのうち前記カウントされた新規文字の数に基づいて決定された数であるM個(MはN以下の整数)のスレッドを生成するスレッド生成工程と、前記M個のスレッドのそれぞれに前記N個のコアのいずれか1つを使用し、前記複数の文字を前記M個のスレッドに分散して割り当てて、前記新規文字のラスターデータを生成するラスターデータ生成工程と、前記文字データに対応するラスターデータを使用して、前記複数の文字を描画する描画処理工程と備える。
本発明のプログラムは、N個(Nは2以上の整数)のコアを有するプロセッサとメモリとを有するデータ処理装置を制御する。前記プログラムは、印刷データに含まれている文字データによって特定される複数の文字のうち前記メモリにラスターデータが格納されていない文字である新規文字を検索し、前記検索された新規文字の数をカウントする検索工程と、前記N個のコアのうち前記カウントされた新規文字の数に基づいて決定された数であるM個(MはN以下の整数)のスレッドを生成するスレッド生成工程と、前記M個のスレッドのそれぞれに前記N個のコアのいずれか1つを使用し、前記複数の文字を前記M個のスレッドに分散して割り当てて、前記新規文字のラスターデータを生成するラスターデータ生成工程と、前記文字データに対応するラスターデータを使用して、前記複数の文字を描画する描画処理工程とを含む工程を前記データ処理装置に実行させる。
本発明によれば、フォントラスタライズ処理において複数のコアを効果的に使用する技術を提供することができる。
他の態様、有利な点及び代替案と同様、これらのことは、必要に応じて添付図面を参照して以下の詳細な説明を読むことによって当業者にとって明白になるであろう。さらに、本明細書における当該概要及び他のセクションで提供されている説明は、請求されている主題を限定のためでなく例として示すことを意図していることを理解されたい。
A.実施形態:
以下、本発明を実施するための形態(以下、「実施形態」という)を、図面を参照して説明する。
以下、本発明を実施するための形態(以下、「実施形態」という)を、図面を参照して説明する。
図1は、本発明の一実施形態に係る画像形成装置10の機能構成を示すブロックダイアグラムである。画像形成装置10は、制御部100と、画像形成部200と、操作表示部300と、記憶部400と、通信インターフェース部500とを備えている。操作表示部300は、タッチパネルとして機能し、様々なメニューを入力画面として表示してユーザーの操作入力を受け付ける。通信インターフェース部500は、たとえばTCP/IP(Transmission Control Protocol/Internet Protocol)プロトコル群を使用して通信を行う。
画像形成装置10は、通信インターフェース部500を介してページ記述言語(Page Description Language)で記述されたPDLデータを含む印刷ジョブを受信することができる。ページ記述言語には、たとえばPCL XL、PostScript、PCL、RPCS、PDF(Portable Document Format)及びXPSがある。PDLデータは、印刷データとも呼ばれる。
制御部100は、PDL処理部111と、描画処理部112と、フォント処理制御部113と、フォントラスタライザ114とを備えている。PDL処理部111は、PDLデータを解析してPDLデータに含まれるテキスト(文字)やイメージ、ベクターグラフィックスといったオブジェクトを抽出する。描画処理部112は、各オブジェクトを使用し、PDLデータに含まれる描画情報に基づいて画像データを生成する。なお、記憶部400については後述する。
図2は、一実施形態に係る画像形成装置10の制御部100のハードウェア構成を示す説明図である。制御部100は、CPU(Central Processing Unit)120と、RAM130と、ROM140と、NVRAM150とを備えている。また、制御部100は、各種I/O、USB(ユニバーサル・シリアル・バス)、バス、その他ハードウェア等のインターフェースに関連するコントローラ機能を備え、それぞれ画像形成装置10の全体を制御する。
CPU120は、第1コア121と、第2コア122と、第3コア123と、第4コア124の4つのコアを含むマルチコアプロセッサである。RAM130は、ソフトウエアが動作するためのワークメモリとして利用される。NVRAM150は、画像形成装置10に設定された印刷条件などを保存しておく不揮発性メモリである。RAM130は、文字のビットマップデータやラスターデータを格納するためのフォントキャッシュ格納領域131を有している。
記憶部400は、非一時的な記録媒体であるハードディスクドライブやフラッシュメモリー等からなる記憶装置である。記憶部400は、制御部100が実行する処理の制御プログラム410やフォントキャッシュ420、フォントデータ430といった各種データを記憶している。制御プログラム410は、画像形成装置10の起動時にRAM130にロードされる。制御部100は、制御プログラム410を実行することによって画像形成装置10の全体を制御する。フォントキャッシュ420は、画像形成装置10の起動時にフォントキャッシュ格納領域131にロードされる。
フォントデータ430は、画像形成部200で形成対象となる文字の描画において文字の形状を特定するためのデータである。フォントは、ある書体でデザインされた字形の集合である。フォントデータ430は、ビットマップフォントとアウトラインフォントのいずれかのフォントデータを含んでいる。ビットマップフォントは、2値のビットの集合が形成するパターンとしてグリフ(文字の字形)の形状を表現するフォントデータ形式である。ビットマップフォントは、2値のビットの集合であるビットマップデータを含んでいる。
アウトラインフォントでは、フォントデータは、文字コード、グリフインデックス及びアウトラインによるフォントの形状データの組合せである。形状データは、任意の座標点間を直線又は曲線で結び、輪郭線を構成することでグリフ(文字の字形)の形状を表現する。アウトラインフォントは、タイプスタイルや文字サイズといったフォントフェースに基づいてフォントラスタライザ114でラスターデータに変換された後に使用される。タイプスタイルは、ある書体のファミリを成す字形様式であり、たとえば欧文書体のイタリックやボールドが含まれる。文字サイズは、文字の大きさであり、ディジタルフォントでは仮想ボディの行送り方向の高さと等しい。
アウトラインフォントは、ラスターデータに変換され、フォントキャッシュ格納領域131に格納されて印刷処理に利用される。これにより、画像形成部200は、アウトラインフォントからラスタライズされたラスターデータをフォントキャッシュ格納領域131から読み出して再利用することで高速かつ少ない処理コストで文字を描画することができる。このように、ラスタライズされたラスターデータを含むデータは、単にフォントキャッシュとも呼ばれる。ラスターデータは、たとえばアンチエイリアス処理がなされない場合には、2値のビットの集合となる。ラスターデータは、ページの解像度にスケール変換されており、スキャンラインでもよい。
図3は、一実施形態に係る画像データ生成処理の内容を示すフローチャートである。ステップS100では、制御部100のフォント処理制御部113は、たとえば第2コア122を使用してスレッド生成処理を実行する。スレッド生成処理では、フォント処理制御部113は、フォントのキャッシュ(後述する。)を生成するためのキャッシュ生成用スレッドを生成する。キャッシュ生成用スレッドは、CPU120の複数のコア121乃至124を効率的に使ってフォントのキャッシュを生成することができる。
キャッシュ生成用スレッドの数は、最大でCPU120のコア数(この例では4個)である。本実施形態では、フォントキャッシュの作成中に並行して描画処理が実行されるので、フォント処理制御部113は、3つのキャッシュ生成用スレッドを生成する。3つのキャッシュ生成用スレッドには、それぞれ0番乃至2番の番号が付される。
ステップS200では、制御部100のPDL処理部111は、第1コア121を使用し、PDLデータを解析して処理内容がテキスト処理であるか否かを判断する。PDL処理部111は、処理内容がテキスト処理である場合には、処理をステップS300に進め、処理内容がテキスト処理でない場合には、処理をステップS600に進める。ステップS600では、描画処理部112は、イメージやベクターグラフィックスといったオブジェクトを使用して画像データを生成する。
ステップS300では、PDL処理部111は、第1コア121を使用して処理内容がフォントデータのロード処理であるか否かを判断する。具体的には、PDL処理部111は、PDLデータを解析して描画対象の文字のフォントデータである文字データがRAM130のフォントキャッシュ格納領域131に格納されているか否かを判断する。文字データは、PDL処理部111によって抽出された文字コード、タイプスタイル、文字サイズ及び書体の組合せである。
PDL処理部111は、文字データが格納されていないと判断された場合には処理内容がロード処理となるので、処理をステップS400に進め、文字データが格納されていると判断された場合には処理内容がロード処理ではないので、処理をステップS500に進める。
図4は、一実施形態に係るフォントデータロード処理の内容を示すフローチャートである。ステップS400では、フォント処理制御部113は、第2コア122を使用してロード処理を実行する。ロード処理では、フォント処理制御部113は、フォントキャッシュ格納領域131に格納されているフォントキャッシュでは描画することができない文字について、その文字を描画するためのフォントデータを記憶部400のフォントデータ430から読み出してフォントキャッシュ格納領域131に格納する。
この例では、たとえばα、β及びγの文字のうちαの文字のフォントキャッシュがフォントキャッシュ格納領域131に格納され、β及びγの文字のフォントキャッシュがフォントキャッシュ格納領域131に格納されていない文字であるとする。フォント処理制御部113は、β及びγの文字に対応するフォントデータをフォントデータ430から読み出すことになる。β及びγの文字は、新規文字とも呼ばれる。
この例では、βの文字は、文字コードがフォントキャッシュ格納領域131に格納されていないものとする。一方、γの文字は、文字コードがフォントキャッシュ格納領域131に格納されているが、タイプスタイルが相違するラスターデータが格納されているものとする。
ステップS410では、フォント処理制御部113は、第2コア122を使用してβ及びγの文字に対応するフォントデータがビットマップフォントであるか否かを判断する。フォント処理制御部113は、ビットマップフォントである場合には、処理をステップS420に進め、ビットマップフォントでない場合には、処理をステップS450に進める。
ステップS420では、フォント処理制御部113は、第2コア122を使用してロードされたビットマップフォントの文字コードが新規でない場合には、処理をステップS430に進め、新規である場合には、処理をステップS440に進める。
ステップS430では、フォント処理制御部113は、第2コア122を使用してフォントキャッシュ格納領域131に格納されているフォントキャッシュを削除する。フォントキャッシュは、文字データとラスターデータの組合せである。具体的には、たとえばフォント処理制御部113は、フォントキャッシュ格納領域131に格納されている文字データにおいてタイプスタイルが標準である場合において、描画対象の文字のタイプスタイルとしてイタリックのフォントフェースが設定されている場合には、標準の文字データをラスターデータとともに削除する。
ステップS440では、フォント処理制御部113は、第2コア122を使用してフォントキャッシュ格納領域131に文字データを追加する。フォントキャッシュ格納領域131は、文字データが格納されているが、ラスターデータが格納されていない状態である。
ステップS450では、フォント処理制御部113は、第2コア122を使用してグリフインデックスの変換テーブルを更新する。グリフインデックスとは、16ビットの一意の番号であり、グリフ(字形)を管理している。フォント処理制御部113は、変換テーブルを更新して新規文字であるβ及びγの文字を管理可能とする。
ステップS460では、フォント処理制御部113は、第2コア122を使用してロードされたアウトラインフォントの文字コードが新規でない場合には、処理をステップS470に進め、新規である場合には、処理をステップS480に進める。
ステップS470では、フォント処理制御部113は、第2コア122を使用してフォントキャッシュ格納領域131に格納されているフォントキャッシュ(文字データ及びラスターデータの組合せ)を削除する。ステップS480では、フォント処理制御部113は、フォントキャッシュ格納領域131に文字データ(文字コード、タイプスタイル、文字サイズ及び書体の組合せ)を追加する。
ステップS500(図3参照)では、描画処理部112は、第1コア121を使用して文字描画処理を実行する。文字描画処理では、描画処理部112は、テキスト(文字)のオブジェクトを使用し、PDLデータに含まれる描画情報に基づいて画像データを生成する。
図5は、一実施形態に係る文字描画処理の内容を示すフローチャートである。ステップS510では、描画処理部112は、第1コア121を使用して文字列検索処理を実行する。文字列検索処理では、フォント処理制御部113は、フォントキャッシュが生成されていない文字を検索し、フォントキャッシュが未生成である新規文字の数をカウントする。新規文字の数は、たとえば文字コードが同一であってもタイプスタイルが2種類ある場合には、2個とカウントされる。これにより、画像形成装置10は、フォントキャッシュの生成の早期開始を可能として描画処理を迅速に完了させることができる。
具体的には、たとえば文字列であるαβγβαがフォント処理制御部113によって検索された場合には、αの文字のフォントキャッシュがフォントキャッシュ格納領域131に格納され、β及びγの文字のフォントキャッシュがフォントキャッシュ格納領域131に格納されていない文字なので、β及びγの2つの文字がフォントキャッシュの生成対象となる。
ステップS520では、描画処理部112は、第1コア121を使用してキャッシュ作成依頼処理を実行する。キャッシュ作成依頼処理では、描画処理部112は、フォント処理制御部113に対してキャッシュの作成を依頼するとともに、処理をステップS530に進める。
これにより、描画処理部112は、第1コア121を使用して文字描画処理を実行し、フォントラスタライザ114は、他のコアを使用し、文字描画処理と並行してキャッシュ生成処理を実行することができる。他のコアは、第2コア122乃至第4コア124のうちの少なくとも1つである。
図6は、一実施形態に係るキャッシュ生成処理の内容を示すフローチャートである。キャッシュ生成処理では、フォントラスタライザ114は、マルチコアプロセッサであるCPU120の複数のコアを効率的に使用してフォントキャッシュを生成する。複数のコアは、0番乃至2番の番号が付された3つのキャッシュ生成用スレッドを使用してラスターデータを生成することができる。
フォント処理制御部113は、描画処理部112からキャッシュ作成依頼を待って待機している状態にある(ステップS521)。フォント処理制御部113は、キャッシュ作成依頼の受信に応じて処理をステップS522に進める。
ステップS522では、フォント処理制御部113は、たとえば第2コア122を使用してロードされたフォントデータがアウトラインフォントであるか否かを判断する。フォント処理制御部113は、アウトラインフォントである場合には、処理をステップS523に進め、アウトラインフォントでない場合には、処理をステップS524に進める。
ステップS523では、フォント処理制御部113は、第2コア122を使用してフォントフェースの更新処理を実行する。フォントフェースの更新処理は、たとえばPDLデータで指定されているタイプスタイルがイタリックである場合に、フォントキャッシュ格納領域131に格納されている文字のタイプスタイルが標準であるときに、フォントフェースのタイプスタイルを標準からイタリックに更新する。
ステップS524では、フォント処理制御部113は、第2コア122を使用してフォント割当処理を実行する。この例では、フォント割当処理では、フォントラスタライザ114は、βの文字のキャッシュ生成処理を0番のスレッドである0番スレッドに割り当て、γの文字のキャッシュ生成処理を1番のスレッドである1番スレッドに割り当てる。
フォント割当処理は、この例では、利用可能な最大スレッド数が3個なので以下のように実行することができる。具体的には、フォント処理制御部113は、ABCDEFGHIJの10文字のキャッシュを生成する場合には、たとえば以下のように分散して割り当てることができる。
(1)0番スレッド:A、D、G、J
(2)1番スレッド:B、E、H
(3)2番スレッド:C、F、I
この例では、フォント処理制御部113は、N番目の文字を0番スレッドに割り当て、(N+1)番目の文字を1番スレッドに割り当て、(N+2)番目の文字を2番スレッドに割り当てている。ここで、Nは、自然数である。
(1)0番スレッド:A、D、G、J
(2)1番スレッド:B、E、H
(3)2番スレッド:C、F、I
この例では、フォント処理制御部113は、N番目の文字を0番スレッドに割り当て、(N+1)番目の文字を1番スレッドに割り当て、(N+2)番目の文字を2番スレッドに割り当てている。ここで、Nは、自然数である。
ステップS525では、フォントラスタライザ114は、この例では、第2コア122を使用してβの文字のラスターデータを生成し、第3コア123を使用してγの文字のラスターデータを生成する。βの文字のラスターデータは、βの文字データに含まれているタイプスタイル、文字サイズ及びアウトラインデータの組合せに基づいて0番スレッドの処理を実行することによって生成される。γの文字のラスターデータは、γの文字データに含まれているタイプスタイル、文字サイズ及びアウトラインデータの組合せに基づいて1番スレッドの処理を実行することによって生成される。アウトラインデータは、アウトラインによるフォントの形状データである。
第2コア122は、0番スレッドを使用してβの文字データとβの文字のラスターデータとを組み合わせてβの文字のフォントキャッシュを生成する。第3コア123は、1番スレッドを使用してγの文字データとγの文字のラスターデータとを組み合わせてγの文字のフォントキャッシュを生成する。βの文字のフォントキャッシュの生成は、γの文字のフォントキャッシュの生成と並行して行われる。
なお、フォントラスタライザ114は、ビットマップフォントについては、文字サイズに基づいて必要に応じてビットマップデータを拡大又は縮小することによって調整し、文字データと組み合わせてフォントキャッシュを生成することができる。生成されたフォントキャッシュは、フォントキャッシュ420とフォントキャッシュ格納領域131に格納される。
ステップS526では、フォント処理制御部113は、第4コア124を使用して完了通知処理を実行する。完了通知処理では、フォント処理制御部113は、βの文字のキャッシュ生成完了に応じて、βの文字のキャッシュ生成完了の旨を描画処理部112に通知し、γの文字のキャッシュ生成完了に応じて、γの文字のキャッシュ生成完了の旨を描画処理部112に通知する。
ステップS530では、描画処理部112は、PDLデータに基づいて描画順序が変更可能であるか否かを判断する。描画処理部112は、描画順序が変更可能である場合には、処理をステップS550に進め、描画順序が変更可能でない場合には、処理をステップS540に進める。描画順序が変更可能でない場合とは、たとえば描画対象の文字列を構成する複数の文字の描画処理の順序が複数の文字の順序に依存する場合である。
ステップS540では、描画処理部112は、文字描画処理を実行する。文字描画処理では、描画処理部112は、描画対象となる文字の描画順序を変更することなく描画処理(レンダリング)を実行する。
具体的には、描画処理部112は、フォントキャッシュ格納領域131にキャッシュが格納されている文字を使用して文字描画処理を実行し、描画対象となる文字のキャッシュがフォントキャッシュ格納領域131に格納されていない場合には、その文字のキャッシュ生成完了の旨を受信するまで描画処理を停止して待機する。描画処理部112は、キャッシュ生成完了の旨の受信に応じて描画処理を再開することができる。
ステップS550では、描画処理部112は、フォント処理制御部113から完了通知を受信しているか否かを判断する。描画処理部112は、完了通知を受信している場合には、処理をステップS560に進め、完了通知を受信していない場合には、処理をステップS570に進める。
ステップS560では、描画処理部112は、利用可能文字リストを更新する。利用可能文字リストは、フォントキャッシュ格納領域131にキャッシュが格納されて描画に利用可能な文字のリストである。描画処理部112は、たとえばβの文字のキャッシュ生成完了の旨の受信に応じて、利用可能文字リストにβの文字を追加登録する。
ステップS570では、描画処理部112は、文字描画処理とキャッシュ生成処理の並行処理を実行する。具体的には、描画処理部112は、フォントラスタライザ114によるキャッシュの生成完了を待つことなく、利用可能文字リストに登録されていない文字の描画処理をスキップし、利用可能文字リストに登録されている文字のみを使用して文字描画処理を実行する。
この例では、描画処理部112は、利用可能文字リストにβ及びγの文字が登録されていない場合には、β及びγの文字の文字描画処理をスキップし、他の文字の文字描画処理を実行する。ただし、描画処理部112は、利用可能文字リストの更新に応じて、新規に利用可能となった文字の描画を実行する。
具体的には、たとえばページ記述言語がPCL XLである場合には、文字描画オペレータのデータ中に文字列のデータとともに文字の位置送りデータが含まれている。描画処理部112は、フォントのキャッシュ作成済みの文字を描画して文字の位置送りデータによって描画位置を移動し、フォントのキャッシュ作成中の文字をスキップして、文字の位置送りデータによって描画位置を移動させる。描画処理部112は、フォントのキャッシュ作成完了通知に応じて、その描画位置に文字を描画することができる。
描画処理部112は、ステップS510乃至ステップS570の処理を最終文字描画データまで繰り返して描画処理を完了させる(ステップS580)。描画処理部112は、さらに、ステップS100乃至S600の処理を最終描画データまで繰り返して描画処理を完了させる(ステップS700)。
このように、一実施形態に係る画像形成装置10によれば、フォントラスタライズ処理を含む印刷処理において複数のコアを効率的に利用して高速で描画処理を実行することができる。さらに、画像形成装置10は、フォントキャッシュの生成の早期開始を可能とするので、描画処理との並行処理によって描画処理を迅速に完了させることもできる。
B.変形例:
本発明は、上記各実施形態だけでなく、以下のような変形例でも実施することができる。
本発明は、上記各実施形態だけでなく、以下のような変形例でも実施することができる。
変形例1:上記実施形態では、フォントキャッシュの生成以外の処理に1個のコアを使用し、フォントキャッシュの生成に残りのコアを使用している。しかしながら、複数のコアの配分は、処理負担に応じて、たとえばフォントキャッシュの生成以外の処理に2個以上のコアを使用し、フォントキャッシュの生成に残りのコアを使用するようにしてもよいし、処理量に応じて自動的に割り当てを変更するようにしてもよい。
変形例2:上記実施形態では、印刷処理においてコアの1つを描画処理に割り当てているが、たとえば描画順序が変更可能でないと判断された場合には、全てのコア(実施形態では4個)を全てキャッシュの生成処理に割り当てるようにしてもよい。こうすれば、描画順序が変更可能でないと判断された場合において、描画処理をより高速とすることができる。
変形例3:上記実施形態では、本発明は画像形成装置における文字描画処理としてのデータ処理に適用されているが、ディスプレイその他の画像表示装置における文字描画処理としてのデータ処理にも本発明は適用可能である。
10 画像形成装置
100 制御部
111 PDL処理部
112 描画処理部
113 フォント処理制御部
114 フォントラスタライザ
120 CPU
121 第1コア
122 第2コア
123 第3コア
124 第4コア
131 フォントキャッシュ格納領域
200 画像形成部
300 操作表示部
400 記憶部
410 制御プログラム
420 フォントキャッシュ
430 フォントデータ
500 通信インターフェース部
100 制御部
111 PDL処理部
112 描画処理部
113 フォント処理制御部
114 フォントラスタライザ
120 CPU
121 第1コア
122 第2コア
123 第3コア
124 第4コア
131 フォントキャッシュ格納領域
200 画像形成部
300 操作表示部
400 記憶部
410 制御プログラム
420 フォントキャッシュ
430 フォントデータ
500 通信インターフェース部
Claims (6)
- データ処理装置であって、
N個(Nは2以上の整数)のコアを有するプロセッサと、
メモリと、
コンピュータ読み取り可能なプログラム命令を格納するデータ格納部であって、前記プログラム命令が、前記プロセッサによる実行の際に、前記データ処理装置に、
印刷データに含まれている文字データによって特定される複数の文字のうち前記メモリにラスターデータが格納されていない文字である新規文字を検索し、前記検索された新規文字の数をカウントする検索工程と、
前記N個のコアのうち前記カウントされた新規文字の数に基づいて決定された数であるM個(MはN以下の整数)のスレッドを生成するスレッド生成工程と、
前記M個のスレッドのそれぞれに前記N個のコアのいずれか1つを使用し、前記複数の文字を前記M個のスレッドに分散して割り当てて、前記新規文字のラスターデータを生成するラスターデータ生成工程と、
前記文字データに対応するラスターデータを使用して、前記複数の文字を描画する描画処理工程と、
を含む工程を実施させるプログラム命令を格納するデータ格納部と、
備えるデータ処理装置。 - 請求項1記載のデータ処理装置であって、
前記描画処理工程は、前記N個のコアのうち前記M個のスレッドの処理に使用されるコアとは相違するコアを使用して前記複数の文字を描画するデータ処理装置。 - 請求項2記載のデータ処理装置であって、
前記印刷データは、ページ記述言語によって記述されており、
前記描画処理工程は、前記印刷データを解析して前記複数の文字の描画処理の順序が変更可能であるか否かを判断する工程を含み、
前記ラスターデータ生成工程は、前記変更可能でないと判断した場合には、前記描画処理工程に使用されているコアを前記新規文字のラスターデータの生成に割り当てる工程を含むデータ処理装置。 - 請求項1乃至3のいずれか1項に記載のデータ処理装置であって、
前記印刷データは、ページ記述言語によって記述されており、
前記描画処理工程は、前記印刷データを解析して前記複数の文字の描画処理の順序が変更可能であるか否かを判断する工程を含み、
前記描画処理工程は、前記変更可能であると判断された場合には、前記ラスターデータが生成中の文字の描画をスキップする工程と、前記ラスターデータの生成完了に応じて前記スキップされた文字の描画を実行する工程とを含むデータ処理装置。 - N個(Nは2以上の整数)のコアを有するプロセッサとメモリとを使用してデータを処理する方法であって、
印刷データに含まれている文字データによって特定される複数の文字のうち前記メモリにラスターデータが格納されていない文字である新規文字を検索し、前記検索された新規文字の数をカウントする検索工程と、
前記N個のコアのうち前記カウントされた新規文字の数に基づいて決定された数であるM個(MはN以下の整数)のスレッドを生成するスレッド生成工程と、
前記M個のスレッドのそれぞれに前記N個のコアのいずれか1つを使用し、前記複数の文字を前記M個のスレッドに分散して割り当てて、前記新規文字のラスターデータを生成するラスターデータ生成工程と、
前記文字データに対応するラスターデータを使用して、前記複数の文字を描画する描画処理工程と、
備えるデータ処理方法。 - N個(Nは2以上の整数)のコアを有するプロセッサとメモリとを有するデータ処理装置を制御するためのプログラムであって、
印刷データに含まれている文字データによって特定される複数の文字のうち前記メモリにラスターデータが格納されていない文字である新規文字を検索し、前記検索された新規文字の数をカウントする検索工程と、
前記N個のコアのうち前記カウントされた新規文字の数に基づいて決定された数であるM個(MはN以下の整数)のスレッドを生成するスレッド生成工程と、
前記M個のスレッドのそれぞれに前記N個のコアのいずれか1つを使用し、前記複数の文字を前記M個のスレッドに分散して割り当てて、前記新規文字のラスターデータを生成するラスターデータ生成工程と、
前記文字データに対応するラスターデータを使用して、前記複数の文字を描画する描画処理工程と、
を含む工程を前記データ処理装置に実行させるプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/665,324 US10373029B2 (en) | 2017-07-31 | 2017-07-31 | Data processing method, data processing device that execute font processing efficiently using a plurality of cores of processor, and recording medium therefor |
US15/665,324 | 2017-07-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019029020A true JP2019029020A (ja) | 2019-02-21 |
Family
ID=65038656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018141565A Pending JP2019029020A (ja) | 2017-07-31 | 2018-07-27 | プロセッサの複数のコアを効率的に使用してフォント処理を実行するデータ処理方法、データ処理装置及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US10373029B2 (ja) |
JP (1) | JP2019029020A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021104650A (ja) * | 2019-12-27 | 2021-07-26 | ブラザー工業株式会社 | 印刷装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114885202A (zh) * | 2019-08-28 | 2022-08-09 | 腾讯数码(天津)有限公司 | 字符串显示处理方法、装置、终端及存储介质 |
JP2022052028A (ja) * | 2020-09-23 | 2022-04-04 | ブラザー工業株式会社 | 印刷装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7719540B2 (en) * | 2004-03-31 | 2010-05-18 | Intel Corporation | Render-cache controller for multithreading, multi-core graphics processor |
EP2299717A1 (en) | 2009-09-10 | 2011-03-23 | Thomson Licensing | Method and apparatus for image encoding using Hold-MBs, and method and apparatus for image decoding using Hold-MBs |
JP5663941B2 (ja) * | 2010-04-30 | 2015-02-04 | 富士ゼロックス株式会社 | 印刷文書変換装置およびプログラム |
JP2012071544A (ja) | 2010-09-29 | 2012-04-12 | Ricoh Co Ltd | 画像形成装置、画像処理方法 |
JP5747489B2 (ja) * | 2010-11-30 | 2015-07-15 | 富士ゼロックス株式会社 | 印刷文書処理システム、キャッシュ装置及びプログラム |
JP5691448B2 (ja) * | 2010-11-30 | 2015-04-01 | 富士ゼロックス株式会社 | 印刷文書処理システム、キャッシュ装置、データ処理装置及びプログラム |
JP2015022685A (ja) | 2013-07-23 | 2015-02-02 | キヤノン株式会社 | 画像形成装置 |
-
2017
- 2017-07-31 US US15/665,324 patent/US10373029B2/en not_active Expired - Fee Related
-
2018
- 2018-07-27 JP JP2018141565A patent/JP2019029020A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021104650A (ja) * | 2019-12-27 | 2021-07-26 | ブラザー工業株式会社 | 印刷装置 |
JP7363473B2 (ja) | 2019-12-27 | 2023-10-18 | ブラザー工業株式会社 | 印刷装置 |
Also Published As
Publication number | Publication date |
---|---|
US10373029B2 (en) | 2019-08-06 |
US20190034768A1 (en) | 2019-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9304897B2 (en) | Image data producing apparatus, image forming apparatus and computer readable medium | |
JP2019029020A (ja) | プロセッサの複数のコアを効率的に使用してフォント処理を実行するデータ処理方法、データ処理装置及びプログラム | |
US11720769B2 (en) | Methods and systems for enhancing raster image processing using artificial intelligence | |
US8334989B2 (en) | Printing device and method for parallel processing of data | |
JP2012148429A (ja) | 印刷データ処理装置、キャッシュ処理方法及びプログラム | |
JP5268427B2 (ja) | 画像形成装置及び画像形成システム | |
JP2003051019A (ja) | 画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体 | |
US20030218766A1 (en) | Computer readable recording medium bearing a printer driver program and print data processing apparatus | |
JP6000900B2 (ja) | 画像形成システム | |
JP5936363B2 (ja) | 画像処理装置及び画像処理方法 | |
JP2004038527A (ja) | プリンタドライバおよび印刷制御方法およびコンピュータが読み取り可能な記憶媒体およびプログラム | |
US9760814B2 (en) | Image forming apparatus for processing drawing data described in page description language | |
JP6539022B2 (ja) | 印刷装置、処理方法及びプログラム | |
JP4145714B2 (ja) | 印刷処理装置 | |
EP2293180B1 (en) | PDL data processing device and PDL data creating device | |
JP5409559B2 (ja) | 画像形成装置および画像形成プログラム | |
JP2019093559A (ja) | 画像形成装置及びその制御方法、並びにプログラム | |
JP4325339B2 (ja) | 印刷システム、ホストコンピュータ及びプリンタドライバ | |
JP2021053840A (ja) | 画像処理装置、画像処理方法及び画像処理プログラム | |
JP2006218819A (ja) | 画像形成装置、画像処理装置、プログラムおよび画像処理方法 | |
JP2006155307A (ja) | 負荷分散処理を行う画像処理システム | |
JP2000255116A (ja) | 印刷処理装置および印刷処理方法 | |
JP2012081711A (ja) | 画像形成装置、画像処理方法 | |
JP5252116B2 (ja) | 画像データ生成装置 | |
JP5252136B2 (ja) | 画像データ生成装置 |