[実施の形態1]
図1は、情報処理装置10の動作の概要を説明する説明図である。本実施の形態の情報処理装置10は、表示部20を備えるタブレット型の電子書籍リーダ、汎用のタブレット、スマートフォン、またはパソコン等の情報機器である。情報処理装置10が、タブレット型の電子書籍リーダである場合を例にして説明する。
図1の中央に、電子書籍の文書ファイル31の模式図を示す。文書ファイル31の内容は、模式図の上側から下側に向けて記載されている。図1の左右に、情報処理装置10の模式図を示す。表示部20は、文書ファイル31の一部分を表示可能である。
図1の表示部20内に示す白丸は、文書ファイル31中の文字が停止またはゆっくりとスクロール表示されている状態を示す。図1の上下方向の中央の2つの表示部20内に示す上向きの矢印は、文書ファイル31が上向きに高速でスクロール表示されている状態を示す。
図1の左側は、ユーザが1回目に文書ファイル31を読む際の操作および表示の例を示す。ユーザは、表示部20の表面に設けられたタッチパネルを操作して、閲覧する文書ファイル31を選択する。なお、情報処理装置10が起動した際に、ユーザが前回閲覧を中断した文書ファイル31が自動的に選択されても良い。
選択された文書を記録した文書ファイル31(図2参照)が、補助記憶装置14(図2参照)から取得される。文書ファイルの一部、たとえば冒頭の部分またはユーザが前回閲覧を中断した部分が、表示部20に表示される。
ユーザは、表示部20の表面に設けられたタッチパネルを操作して、文書ファイル31をスクロールする。ユーザは、文書ファイル31中のハッチングで示す第1領域311をゆっくりと読む。その後ユーザは、白色で示す第2領域312を高速でスクロールして読み飛ばす。ユーザは、文書ファイル31中にハッチングで示す第3領域313をゆっくりと読む。
ゆっくりと読まれた行は、表示部20に長い時間表示される。高速スクロールされた行は、表示部20に短い時間表示される。後述する減速DB33に、文書ファイル31のそれぞれの行が表示部20に表示された時間が記録される。
図1の右側は、ユーザが文書ファイル31を2回目に読む際の表示の例を示す。本実施の形態の情報処理装置10は、ユーザがタッチパネルから手を離してもスクロールを継続する、自動スクロール機能を備える。
ユーザが、高速で自動スクロールするように操作した場合であっても、減速DB33に長い時間表示されていたことが記録されている第1領域311および第3領域313は、ゆっくりとスクロールされる。減速DB33に短い時間表示されていたことが記録されている第2領域312は、自動スクロールの操作で指定された通りに高速でスクロールされる。
自動スクロール中も、ユーザは、タッチパネルを操作することによりスクロールの停止、減速または反転等の操作を行うことができる。ユーザが文書ファイル31を2回目に読む場合も、文書ファイル31のそれぞれの行が表示部20に表示された時間が減速DB33に記録され、その後の減速有無の判定に反映される。
紙の書籍を読む場合には、ユーザが書籍を手に持ってパラパラとめくり、必要なページを開いて読むことが行われる。特にいったん読んだ書籍を再読するユーザは、過去に同じ書籍を読んだ際に無意識に残した、ページの開き癖等の痕跡に基づいて、重要な箇所をすばやく開いて読むことができる。
本実施の形態の情報処理装置10によると、高速でスクロールしている場合であってもユーザが過去に時間を掛けて読んだ箇所では、スクロール速度が遅くなる。そのため、ユーザは過去に重要だと感じてじっくりと時間を掛けて読んだ箇所を容易に発見することが可能である。したがって、紙の書籍をパラパラとめくる場合と同様の感覚でユーザが電子書籍を読むことが可能な情報処理装置10を提供することが可能である。
図2は、情報処理装置10の構成を示す説明図である。情報処理装置10は、CPU(Central Processing Unit)12、主記憶装置13、補助記憶装置14、通信部15、入力部17、表示部20、およびバスを備える。
CPU12は、本実施の形態にかかるプログラムを実行する演算制御装置である。CPU12には、一または複数のCPUまたはマルチコアCPU等が使用される。CPU12は、バスを介して情報処理装置10を構成するハードウェア各部と接続されている。
主記憶装置13は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の記憶装置である。主記憶装置13には、CPU12が行う処理の途中で必要な情報およびCPU12で実行中のプログラムが一時的に保存される。
補助記憶装置14は、SRAM、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置14には、電子書籍等の文書ファイル31、減速DB33、CPU12に実行させるプログラム、およびプログラムの実行に必要な各種情報が保存される。なお、文書ファイル31はたとえば電子メール、SNS(Social Networking Service)のログ、または各種報告書等の、電子書籍以外のファイルでも良い。
文書ファイル31は、たとえばEPUB(Electronic Publication)形式、HTML(Hyper Text Markup Language)形式、PDF(Portable Document Format)形式、プレーンテキスト形式、ワープロのファイル形式等の、任意の形式を使用することが可能である。本実施の形態においては、文字データを取り出してスクロール表示する、いわゆるリフロー型の表示を行うことが可能な文書ファイル31を使用する。
通信部15は、図示しないネットワークとの通信を行うインターフェイスである。
表示部20は、液晶表示パネル、有機EL(Electro Luminescence)表示パネルまたは電子ペーパ等の表示パネルである。入力部17は、表示部20の表面に配置されたタッチセンサである。すなわち、表示部20と入力部17とは、一体になっていわゆるタッチパネルを構成する。
なお、表示部20にゴーグル型または眼鏡型のヘッドマウントディスプレイを使用しても良い。この場合、入力部17にはユーザの手および腕の動きを検知するいわゆるモーションセンサ、音声入力を行うマイク、またはユーザの視線を検知する視線入力装置等を使用することが望ましい。
図3は、減速DB33のレコードレイアウトを示す説明図である。減速DB33は、文書ファイル31の行の番号と、行を文書領域59に表示した時間と、減速フラグとを関連づけて記録するDBである。減速DB33は、情報処理装置10に接続された外部の記憶装置に記憶されていても良い。減速DB33は、本実施の形態の第1記録部の一例である。
減速DB33は、文書ファイルフィールド、行フィールド、表示時間フィールドおよび減速フラグフィールドを有する。文書ファイルフィールドには、文書ファイル31を識別する名称またはID(Identifier)が記録されている。行フィールドには、文書ファイル31に記憶された文書の行番号が記録されている。表示時間フィールドには、行番号フィールドに対応する行が文書領域59に表示された累積時間が記録されている。
減速フラグフィールドには、行番号フィールドに対応する行が表示部20に表示されている場合に、スクロール速度を減速するか否かのフラグが記録されている。減速フラグが「OFF」である場合、CPU12はスクロール速度を減速しない。減速フラグが「ON」である場合、CPU12はスクロール速度を減速する。
減速DB33は、一つの行番号について一つのレコードを有する。なお、減速DB33は、文字単位、段落単位、またはページ単位等、任意の単位で減速フラグを記録しても良い。この場合、減速DB33は減速フラグを記録する単位ごとに一つのレコードを有する。
CPU12は表示時間フィールドに記録された時間が閾値より長いレコードの減速フラグフィールドに「ON」を記録する。具体的には、たとえばCPU12は表示時間フィールドに記録された表示時間の平均値μおよび標準偏差σを算出し、平均値μ+係数A×標準偏差σを閾値に定める。各行を文書領域59に表示した時間が正規分布である場合、係数Aを3に設定することにより、CPU12は、表示部20への表示時間が上位約0.3パーセントの行の減速フラグフィールドに「ON」を記録する。
なお、CPU12は、Aを3以外の任意の数に設定することができる。Aを小さくする場合には閾値が小さくなり、減速フラグフィールドに「ON」が記録される行が増加する。Aを大きくする場合には閾値が大きくなり、減速フラグフィールドに「ON」が記録される行が減少する。
CPU12は、たとえば表示時間フィールドに記録された表示時間が長い方から数えて所定の順番までの行の所要時間を閾値に設定しても良い。CPU12は、ユーザによる閾値の入力を受け付けても良い。その他、CPU12は任意の手法により閾値を定めることができる。
図4は、情報処理装置10の外観を示す説明図である。前述の通り、情報処理装置10は表示部20を備える。CPU12は、表示部20に、文書領域59、加速ボタン53、減速ボタン54、停止ボタン55および方向ボタン56を表示する。CPU12は、文書領域59に文書ファイル31をスクロール表示する。CPU12は、表示部20の表面に配置されたタッチパネルを介して、ユーザによる加速ボタン53、減速ボタン54、停止ボタン55および方向ボタン56の選択を受け付ける。
なお、ボタンの種類および配置は一例であり、情報処理装置10のユーザの好みに応じて変更可能であっても良い。本実施の形態では、CPU12が文書領域59に文書ファイル31を横書き表示する場合を例にして説明するが、CPU12は、文書領域59に文書ファイル31を縦書き表示しても良い。縦書き表示する場合、CPU12は文書ファイル31を左右方向にスクロール表示する。
加速ボタン53の選択を受け付けた場合、CPU12はスクロール速度を速くする。減速ボタン54の選択を受け付けた場合、CPU12はスクロール速度を遅くする。停止ボタン55の選択を受け付けた場合、CPU12はスクロールを停止する。停止ボタン55の選択を再度受け付けた場合、CPU12はスクロールを再開する。方向ボタン56の選択を受け付けた場合、CPU12はスクロールの向きを反転する。
さらに、CPU12は、文書領域59を介してユーザの操作を受け付ける。たとえば、文書領域59の上で指を上または下に払うフリック操作を受け付けた場合、CPU12は払われた向きへのスクロールを開始する。既にスクロール中の向きと同じ向きへのフリック操作を受け付けた場合、CPU12はスクロール速度を速くする。
文書領域59の上に短時間触れるタッチ操作を受け付けた場合、CPU12はスクロールを停止する。文書領域59の上で指をスライドする操作を受け付けた場合、文書領域59に表示された文字が指に追従して動くように表示する。
以上に説明したユーザインターフェイスにより、CPU12はユーザによるスクロール操作を受け付ける。受け付けた操作に基づいてCPU12が定めるスクロール速度を、基準スクロール速度と呼ぶ。
本実施の形態においては、ユーザによる追加の操作を受け付けるまでは、CPU12が基準スクロール速度を一定に保つ情報処理装置10を例にして説明する。CPU12は、ユーザによる操作から所定の時間が経過した場合に、基準スクロール速度を自動的に低くしても良い。
CPU12は、図示しないメニュー画面等を介して、スクロール速度の初期値の設定を受け付けても良い。スクロール速度の初期値は、電子書籍の発行者により設定され、文書ファイル31と共に配布されても良い。
図5は、スクロール速度を説明する説明図である。図5の上側は、スクロール速度の変化を説明するグラフである。横軸は、表示部20の1行目に表示されている行を示す。縦軸は、スクロール速度を示す。
グラフの下側に、減速DB33の減速フラグフィールドに記録された値を、グラフの横軸の行と対応づけて示す。0行目からα1行目までの行、(α2+1)行目からα3行目、および(α4+1)行目以降の行に対応するレコードの減速フラグフィールドには、「OFF」が記録されている。(α1+1)行目からα2行目までの行、および、(α3+1)行目からα4行目までの行に対応するレコードの減速フラグフィールドには、「ON」が記録されている。
すなわち、(α1+1)行目からα2行目までが図1中の第1領域311に、(α2+1)行目からα3行目までが、図1中の第2領域312に、(α3+1)行目からα4行目までが、図1中の第3領域313にそれぞれ対応する。
図5に示すグラフは、基準スクロール速度が一定の値V1である場合に、CPU12が表示部20に文書ファイル31をスクロール表示するスクロール速度を示す。減速フラグが「OFF」である箇所では、CPU12は基準スクロール速度V1でスクロール表示する。減速フラグが「ON」である箇所では、CPU12は文書ファイル31を基準スクロール速度V1より遅い減速スクロール速度V2でスクロール表示する。
減速フラグが「ON」から「OFF」に変化するα2行目およびα4行目において、CPU12はスクロール速度を減速スクロール速度V2から基準スクロール速度V1に戻す。
図6は、プログラムの処理の流れを示すフローチャートである。CPU12は、補助記憶装置14から文書ファイル31を取得する(ステップS501)。CPU12は、情報処理装置10に接続された外付けの大容量記憶装置から文書ファイル31を取得しても良い。CPU12は、通信部15を介して図示しないサーバから文書ファイル31を取得して、補助記憶装置14または主記憶装置13に保存しても良い。CPU12は、ストリーミング方式により、文書ファイル31の一部分を順次取得して、一時記憶しても良い。
CPU12は、文書領域59に文書ファイル31の一部を表示する(ステップS502)。なお、文書ファイル31がたとえばPDF形式等のページ表示を前提とした形式である場合には、CPU12は文書ファイル31から文字を抽出して表示部20に表示する。文書ファイル31から文字を取り出す方法については、従来から行われているので、説明を省略する。
CPU12は、文書ファイル31から、文書領域59に示した部分に続く1行分の文字列を取得する(ステップS503)。CPU12は、ユーザから受け付けた操作に基づいて、基準スクロール速度を取得する(ステップS504)。
CPU12は、減速DB33を参照して文書領域59に文書ファイル31中の減速フラグが「ON」である箇所が表示されているか否かを判定する(ステップS505)。減速フラグが「ON」である箇所が表示されていると判定した場合(ステップS505でYES)、CPU12は減速スクロール速度を算出する(ステップS506)。
減速スクロール速度は、ステップS504で取得した基準スクロール速度に対して1以下の正の数を乗じた速度である。減速スクロール速度は、ステップS504で取得した基準スクロール速度から所定の値を減算した速度であっても良い。基準スクロール速度が所定の速度よりも遅い場合には、減速スクロール速度は基準スクロール速度と同一であっても良い。
減速スクロール速度は、任意の定数であっても良い。CPU12は、あらかじめユーザの好みに応じた減速スクロール速度の算出方法を受け付けて、主記憶装置13または補助記憶装置14に記憶しても良い。
減速フラグフィールドに2段階以上の減速段階を記録されており、CPU12は減速段階に応じて減速スクロール速度を算出しても良い。減速段階は、たとえば表示時間フィールドに記録された時間に基づいて定められていても良い。
CPU12は、ステップS506で算出した減速スクロール速度を用いて、文書領域59を1行スクロールする(ステップS507)。減速フラグが「ON」である箇所が表示されていないと判定した場合(ステップS505でNO)、CPU12はステップS504で取得した基準スクロール速度を用いて、文書領域59を1行スクロールする(ステップS508)。
ステップS507またはステップS508の終了後、CPU12はスクロールアウトした行の表示時間フィールドに、その行が文書領域59に表示されていた時間を加算する(ステップS525)。CPU12は処理を終了するか否かを判定する(ステップS510)。
終了しないと判定した場合(ステップS510でNO)、CPU12はステップS503に戻る。終了すると判定した場合(ステップS510でYES)。CPU12はDB更新−1のサブルーチンを起動する(ステップS527)。DB更新−1のサブルーチンは、図3を使用して説明した減速DB33を更新するサブルーチンである。DB更新−1のサブルーチンの処理の流れは後述する。CPU12は、その後処理を終了する。
図7は、DB更新−1のサブルーチンの処理の流れを示すフローチャートである。CPU12は、図3を使用して説明した減速DB33に基づいて閾値を定める(ステップS531)。
閾値の定め方の一例を説明する。CPU12は、減速DB33の表示時間フィールドに記録された時間の時間の平均値μおよび標準偏差σを算出する。CPU12は、平均値μ+係数A×標準偏差σを算出して、閾値に定める。Aは任意の係数である。CPU12は、ユーザによる入力に基づいてAの値を定めても良い。
閾値の定め方の別の例を説明する。CPU12は、表示時間フィールドに記録された時間が長い方から数えて所定の順番の行を抽出し、その行の表示時間フィールドに記録された時間を閾値に設定する。その他、CPU12は任意の手法により閾値を定めることができる。
CPU12は、カウンタIを初期値1に設定する(ステップS532)。CPU12は、減速DB33からI番目のレコードを取得する(ステップS533)。CPU12は、ステップS533で取得したレコードの表示時間フィールドに記録された時間がステップS531で算出した閾値よりも大きいか否かを判定する(ステップS534)。
閾値よりも大きいと判定した場合(ステップS534でYES)、CPU12はステップS533で取得したレコードの減速フラグフィールドに「ON」を記録する(ステップS535)。閾値以下であると判定した場合(ステップS534でNO)、CPU12はステップS533で取得したレコードの減速フラグフィールドに「OFF」を記録する(ステップS536)。
ステップS535またはステップS536の終了後、CPU12は減速DB33の処理を終了したか否かを判定する(ステップS537)。終了していないと判定した場合(ステップS537でNO)、CPU12はカウンタIに1を加算する(ステップS538)。CPU12は、ステップS533に戻る。終了していると判定した場合(ステップS537でYES)、CPU12は処理を終了する。
本実施の形態によると、減速フラグが「ON」に設定された箇所で自動的にスクロール速度を低下させる情報処理装置10等を提供することが可能である。
本実施の形態によると、過去に同じ文書ファイル31を読んだ際の所要時間の長短に基づいてスクロール速度を変化させる情報処理装置10を提供することができる。
本実施の形態によると、過去に閾値よりも時間を掛けた箇所で自動的にスクロール速度を低下させる情報処理装置10等を提供することが可能である。過去に時間を掛けた箇所は、紙の書籍でいえば何度も開かれて開き癖が付いたページに相当する。本実施の形態によると、ユーザが過去に無意識に行った操作の痕跡に基づいてスクロール速度を変化させることにより、紙の書籍と同様の操作感を得ることが可能な情報処理装置10を提供することが可能である。
なお、CPU12は、減速フラグが「OFF」に設定されている行を、基準スクロール速度V1よりも速くスクロールし、減速フラグが「ON」に設定されている行を、基準スクロール速度V1でスクロールしても良い。
CPU12は文書ファイル31を順方向、すなわち文書の前側から後側に向けてスクロールしている場合だけステップS505の判定を行ない、逆方向にスクロールしている場合には常に通常スクロールを行っても良い。
[実施の形態2]
本実施の形態は、過去に同じ文書ファイル31を読んだ際の表示時間の長短およびマーキング32の有無に基づいてスクロール速度を変化させる情報処理装置10に関する。実施の形態1と共通する部分については、説明を省略する。
図8は、実施の形態2の情報処理装置10の動作の概要を説明する説明図である。図8の中央に、電子書籍の文書ファイル31の模式図および拡大図を示す。文書ファイル31中にハッチングで示す第1領域311および第3領域313は、減速DB33の減速ファイルフィールドに「OFF」が記録された領域である。文書ファイル31中に白色で示す第2領域312は、減速DB33の減速ファイルフィールドに「ON」が記録された領域である。
第2領域312の一部に、拡大図中に黒丸で図示するマーキング32が設定されている場合を例にして説明する。マーキング32は、たとえばユーザが文書ファイル31を読みながら、気になる箇所に設定する下線、色線または栞等である。
マーキング32は、文書ファイル31自体に記録されても良いし、文書ファイル31とは別の独立したファイルに記録されても良い。電子書籍へのマーキング32の設定は従来から種々の操作方法により行われているので、説明を省略する。
図8の左右は、ユーザが、高速で自動スクロールするように操作した場合の情報処理装置10の状態を示す。文書ファイル31の順方向のスクロールに伴って、情報処理装置10の状態はAからGに順番に変化する。
Aは、減速フラグが「ON」であるため、第1領域311中の文字がゆっくりとした速度で減速スクロール表示されている情報処理装置10を示す。Bは、減速フラグが「OFF」であるため、第2領域312中の文字が上向きに高速でスクロール表示されている情報処理装置10を示す。
Cは、マーキング32が表示部20の最下行に表示された情報処理装置10を示す。減速フラグが「OFF」である第2領域312であるが、マーキング32を含む箇所が表示されている文字が減速スクロール表示されている。DおよびEの状態を経て、マーキング32が上側にスクロールアウトするまで、減速スクロールの状態が継続する。
Fは、減速フラグが「OFF」であるため、第2領域312が上向きに高速でスクロール表示されている情報処理装置10を示す。Gは、減速フラグが「ON」であるため、第3領域313中の文字がゆっくりとした速度で減速スクロール表示されている情報処理装置10を示す。
本実施の形態の情報処理装置10によると、CPU12はマーキング32が設定された箇所のスクロール速度を遅くするので、ユーザは必要な箇所を容易に発見することが可能である。情報処理装置10のユーザは、マーキング32を見逃したり、スクロールの停止操作が遅れて行き過ぎたりすること無く、快適に電子書籍を読むことが可能である。
図9は、実施の形態2のプログラムの処理の流れを示すフローチャートである。図9は、プログラムの処理の流れを示すフローチャートである。CPU12は、補助記憶装置14から文書ファイル31を取得する(ステップS501)。CPU12は、文書領域59に文書ファイル31を表示する(ステップS502)。
CPU12は、文書ファイル31から、文書領域59に示した部分に続く1行分の文字列を取得する(ステップS503)。CPU12は、ユーザから受け付けた操作に基づいて、基準スクロール速度を取得する(ステップS504)。
CPU12は、文書領域59に文書ファイル31中のマーキング32が設定されている箇所が表示されているか否かを判定する(ステップS521)。マーキング32が設定されている箇所が表示されていないと判定した場合(ステップS521でNO)、CPU12は、減速DB33を参照して文書領域59に文書ファイル31中の減速フラグが「ON」である箇所が表示されているか否かを判定する(ステップS505)。
マーキング32が設定されている箇所が表示されていると判定した場合(ステップS521でYES)、または、減速フラグが「ON」である箇所が表示されていると判定した場合(ステップS505でYES)、CPU12は減速スクロール速度を算出する(ステップS506)。
CPU12は、ステップS506で算出した減速スクロール速度を用いて、文書領域59を1行スクロールする(ステップS507)。減速フラグが「ON」である箇所が表示されていないと判定した場合(ステップS505でNO)、CPU12はステップS504で取得した基準スクロール速度を用いて、文書領域59を1行スクロールする(ステップS508)。
ステップS507またはステップS508の終了後、CPU12はスクロールアウトした行の表示時間フィールドに、その行が文書領域59に表示されていた時間を加算する(ステップS525)。CPU12は処理を終了するか否かを判定する(ステップS510)。
終了しないと判定した場合(ステップS510でNO)、CPU12はステップS503に戻る。終了すると判定した場合(ステップS510でYES)、CPU12はDB更新−1のサブルーチンを起動する(ステップS527)。DB更新−1のサブルーチンは、図7を使用して説明したサブルーチンと同一のサブルーチンである。CPU12は、その後処理を終了する。
本実施の形態によると、高速にスクロール表示を行う場合に、マーキング32が設定された箇所では自動的にスクロール速度が低下する情報処理装置10等を提供することが可能である。情報処理装置10のユーザは、スクロール操作に煩わされずに、文書ファイル31を流し読みしながら、マーキング32が設定された箇所を見逃さずに目を通すことが可能である。
本実施の形態によると、表示時間およびマーキング32等の、過去に同じ文書ファイル31を読んだ際の痕跡に基づいてスクロール速度を変化させることにより、紙の書籍と同様の操作感を得ることが可能な情報処理装置10を提供することが可能である。
[実施の形態3]
本実施の形態は、過去に同じ文書ファイル31を読んだ際の所要時間と、マーキング32の有無とに基づいて減速フラグを定める情報処理装置10に関する。実施の形態2と共通する部分については、説明を省略する。
図10は、実施の形態3の減速DB33のレコードレイアウトを示す説明図である。本実施の形態の減速DB33は、文書ファイル31の行の番号と、行に設定されたマーキング32の有無と、行を文書領域59に表示した時間と、減速フラグとを関連づけて記録するDBである。
減速DB33は、文書ファイルフィールド、行フィールド、マーキングフィールド、表示時間フィールドおよび減速フラグフィールドを有する。文書ファイルフィールドには、文書ファイル31を識別する名称またはIDが記録されている。行フィールドには、文書ファイル31に記憶された文書の行番号が記録されている。マーキングフィールドには、行番号フィールドに対応する行に、マーキング32が設定されているか否かが記録されている。
表示時間フィールドには、行番号フィールドに対応する行が文書領域59に表示されていた累積時間が記録されている。減速フラグフィールドには、行番号フィールドに対応する行が文書領域59に表示されている場合に、スクロール速度を減速するか否かのフラグが記録されている。減速DB33は、一つの行番号について一つのレコードを有する。
本実施の形態においては、CPU12は表示時間フィールドに記録された時間が閾値より長いレコード、および、マーキング32が設定されているレコードの減速フラグフィールドに「ON」を記録する。
減速DB33の表示時間フィールドは本実施の形態の第1記録部の一例である。減速DB33のマーキングフィールドは、本実施の形態の第2記録部の一例である。
図11は、実施の形態3のプログラムの処理の流れを示すフローチャートである。ステップS507まで、およびステップS508は、図6を使用して説明した実施の形態1のプログラムと同一の処理であるため、説明を省略する。
ステップS507またはステップS508の終了後、CPU12はスクロールアウトした行の表示時間フィールドに、その行が文書領域59に表示されていた時間を加算する(ステップS551)。CPU12は処理を終了するか否かを判定する(ステップS552)。
終了しないと判定した場合(ステップS552でNO)、CPU12はステップS503に戻る。終了すると判定した場合(ステップS552でYES)。CPU12はDB更新−2のサブルーチンを起動する(ステップS553)。DB更新−2のサブルーチンは、図10を使用して説明した減速DB33を更新するサブルーチンである。DB更新−2のサブルーチンの処理の流れは後述する。CPU12は、その後処理を終了する。
図12は、DB更新−2のサブルーチンの処理の流れを示すフローチャートである。CPU12は、図10を使用して説明した減速DB33に基づいて閾値を定める(ステップS571)。閾値の定め方は、図9を使用して説明したDB更新−1のサブルーチンのステップS531と同様であるので、説明を省略する。
CPU12は、カウンタIを初期値1に設定する(ステップS572)。CPU12は、減速DB33からI番目のレコードを取得する(ステップS573)。CPU12は、文書領域59に文書ファイル31中のマーキング32が設定されている箇所が表示されているか否かを判定する(ステップS574)。
マーキング32が設定されている箇所が表示されていないと判定した場合(ステップS574でNO)、CPU12は、ステップS573で取得したレコードの表示時間フィールドに記録された時間がステップS571で算出した閾値よりも大きいか否かを判定する(ステップS575)。
マーキング32が設定されている箇所が表示されていると判定した場合(ステップS574でYES)、または、閾値よりも大きいと判定した場合(ステップS575でYES)、CPU12はステップS573で取得したレコードの減速フラグフィールドに「ON」を記録する(ステップS576)。
閾値以下であると判定した場合(ステップS575でNO)、CPU12はステップS573で取得したレコードの減速フラグフィールドに「OFF」を記録する(ステップS577)。
ステップS576またはステップS577の終了後、CPU12は減速DB33の処理を終了したか否かを判定する(ステップS578)。終了していないと判定した場合(ステップS578でNO)、CPU12はカウンタIに1を加算する(ステップS579)。CPU12は、ステップS573に戻る。終了していると判定した場合(ステップS578でYES)、CPU12は処理を終了する。
本実施の形態によると、過去に同じ文書ファイル31を読んだ際の所要時間の長短およびマーキング32の有無に基づいてスクロール速度を変化させる情報処理装置10を提供することができる。
本実施の形態によると、CPU12は、マーキング32の有無を判定せずにスクロール速度の減速有無を判定して文書領域59に表示する。そのため、比較的処理能力が低いCPU12を使用する場合であっても、スムーズにスクロール表示を行える情報処理装置10を提供することが可能である。
[実施の形態4]
本実施の形態は、文書領域59に表示した時間を月ごとに記録するとともに、マーキング32と時間とを総合して減速フラグを判定する情報処理装置10に関する。実施の形態2と共通する部分については、説明を省略する。
図13は、実施の形態4の減速DB33のレコードレイアウトを示す説明図である。本実施の形態の減速DB33は、文書ファイル31の行の番号と、行に設定されたマーキング点と、月ごとにそれぞれの行を文書領域59に表示した時間と、減速フラグとを関連づけて記録するDBである。
減速DB33は、文書ファイルフィールド、行フィールド、マーキング点フィールド、表示時間フィールド、総合点フィールドおよび減速フラグフィールドを有する。表示時間フィールドは、年月ごとのフィールドおよび時間点フィールドを有する。なお、表示時間フィールドは、年ごと、四半期ごと、週ごと、日付ごと等、任意の時間単位のフィールドを有しても良い。
文書ファイルフィールドには、文書ファイル31を識別する名称またはIDが記録されている。行フィールドには、文書ファイル31に記憶された文書の行番号が記録されている。マーキング点フィールドには、行番号フィールドに対応する行に、設定されたマーキング点が記録されている。マーキング点は、文書ファイル31に設定されたマーキング32に基づいて付与されている。マーキング点は、たとえばマーキング32に使用した色ごとに定める。
年月ごとのフィールドには、行番号フィールドに対応する行が文書領域59に表示されていた累積時間が、年月ごとに記録されている。時間点フィールドには、年月フィールドに記録された時間に基づく時間点が記録されている。
CPU12は、たとえば所定時間内の年月フィールドに記録された時間の平均値に基づいて時間点フィールドに記録する時間点を定める。CPU12は、新しい月のデータほど重み付けして時間点を定めても良い。CPU12は、ユーザによる指定を受け付けた期間の年月フィールドに記録されたデータに基づいて時間点を算出しても良い。
総合点フィールドには、マーキング点フィールドに記録されたマーキング点と、時間点フィールドに記録された時間点とに基づく総合点が記録されている。CPU12は、たとえばマーキング点と時間点とを加算して、総合点を算出する。CPU12は、マーキング点および時間点のそれぞれに重み付けをして加算して、総合点を算出しても良い。
減速フラグフィールドには、行番号フィールドに対応する行が文書領域59に表示されている場合に、スクロール速度を減速するか否かのフラグが記録されている。減速DB33は、一つの行番号について一つのレコードを有する。
図14は、実施の形態4のプログラムの処理の流れを示すフローチャートである。ステップS507およびステップS508までは、図6を使用して説明した実施の形態1のプログラムと同一の処理であるため、説明を省略する。
ステップS507またはステップS508の終了後、CPU12は、減速DB33のスクロールアウトした行に対応する年月フィールドに、その行が文書領域59に表示されていた時間を加算する(ステップS591)。CPU12は処理を終了するか否かを判定する(ステップS592)。
終了しないと判定した場合(ステップS592でNO)、CPU12はステップS503に戻る。終了すると判定した場合(ステップS592でYES)、CPU12はDB更新−3のサブルーチンを起動する(ステップS593)。DB更新−3のサブルーチンは、図13を使用して説明した減速DB33を更新するサブルーチンである。DB更新−3のサブルーチンの処理の流れは後述する。CPU12は、その後処理を終了する。
図15は、DB更新−3のサブルーチンの処理の流れを示すフローチャートである。CPU12は、カウンタIを初期値1に設定する(ステップS601)。CPU12は、図13を使用して説明した減速DB33からI番目のレコードを取得する(ステップS602)。
CPU12は、ステップS602で取得したレコードの所定の年月フィールドに記録されたデータに基づいて時間点を算出し、時間点フィールドに記録する(ステップS603)。たとえば、CPU12は、所定時間内の年月フィールドに記録された時間の平均値に基づいて時間点フィールドに記録する時間点を定める。CPU12は、新しい月のデータほど重み付けして時間点を定めても良い。CPU12は、ユーザによる指定を受け付けた期間の年月フィールドに記録されたデータに基づいて時間点を算出しても良い。
CPU12は、ステップS602で取得したレコードのマーキング点フィールドに記録されたマーキング点と、時間点フィールドに記録された時間点とに基づいて総合点を算出し、総合点フィールドに記録する(ステップS604)。たとえば、CPU12はマーキング点と時間点とを加算して、総合点を算出する。CPU12は、マーキング点および時間点のそれぞれに重み付けをして加算して、総合点を算出しても良い。
CPU12は全レコードの処理を終了したか否かを判定する(ステップS605)。終了していないと判定した場合(ステップS605でNO)、CPU12はカウンタIに1を加算する(ステップS606)。CPU12は、ステップS602に戻る。終了していると判定した場合(ステップS605でYES)、CPU12は減速DB33の総合点フィールドに記録された総合点に基づいて閾値を定める(ステップS611)。閾値の定め方は、図9を使用して説明したDB更新−1のサブルーチンのステップS531と同様であるので、説明を省略する。
CPU12は、カウンタIを初期値1に設定する(ステップS612)。CPU12は、減速DB33からI番目のレコードを取得する(ステップS613)。CPU12は、
ステップS613で取得したレコードの総合点フィールドに記録された総合点がステップS611で算出した閾値よりも大きいか否かを判定する(ステップS614)。
閾値よりも大きいと判定した場合(ステップS614でYES)、CPU12はステップS613で取得したレコードの減速フラグフィールドに「ON」を記録する(ステップS616)。
閾値以下であると判定した場合(ステップS614でNO)、CPU12はステップS573で取得したレコードの減速フラグフィールドに「OFF」を記録する(ステップS617)。
ステップS616またはステップS617の終了後、CPU12は減速DB33の処理を終了したか否かを判定する(ステップS618)。終了していないと判定した場合(ステップS618でNO)、CPU12はカウンタIに1を加算する(ステップS619)。CPU12は、ステップS613に戻る。終了していると判定した場合(ステップS618でYES)、CPU12は処理を終了する。
本実施の形態によると、過去に同じ文書ファイル31を読んだ際の所要時間の長短およびマーキング32の有無に基づいてスクロール速度を変化させる情報処理装置10を提供することができる。
本実施の形態によると、たとえば直近の数ヶ月間に閲覧した時間が長い箇所でスクロール速度を遅くする情報処理装置10を提供することが可能である。
[実施の形態5]
本実施の形態は、所定のキーワードが、表示部20内の所定の減速領域51内に表示されている場合にスクロール速度を変更する情報処理装置10に関する。実施の形態1と共通する部分については、説明を省略する。
図16は、キーワードDBのレコードレイアウトを示す説明図である。キーワードDBは、ユーザからの入力を受け付けたキーワードを記録するDBである。キーワードDBは、補助記憶装置14に記憶されている。キーワードDBは、情報処理装置10に接続された外部の記憶装置に記憶されていても良い。キーワードDBは、本実施の形態の第3記録部の一例である。
キーワードDBは、キーワードフィールドを有する。キーワードフィールドには、文書ファイル31中のキーワードが記録されている。キーワードDBは、一つのキーワードについて一つのレコードを有する。
CPU12は、ユーザからの入力を受け付けたキーワードを、キーワードDBに記録する。キーワードDBは、電子書籍の発行者等から文書ファイル31と共に配布されても良い。
図17は、実施の形態5の情報処理装置10の外観を示す説明図である。CPU12は、表示部20に、文書領域59、加速ボタン53、減速ボタン54、停止ボタン55、方向ボタン56、キーワード領域52およびOKボタン58を表示する。CPU12は、OKボタン58の選択を受け付けた場合に、キーワード領域52を介して入力されたキーワードを、図16を使用して説明したキーワードDBに記録する。
CPU12は、文書領域59に文書ファイル31をスクロール表示する。CPU12は、キーワードDBに記録されたキーワードの周囲に強調指標57を表示する。文書領域59の中央部に、減速領域51が設けられている。CPU12は、減速領域51にキーワードが表示されている場合に、スクロール速度を遅くする。
図18および図19は、実施の形態5の情報処理装置10の動作の概要を説明する説明図である。図18は、電子書籍の文書ファイル31中の表示部20に表示されている部分と、スクロール速度との関係を説明する説明図である。図19は、電子書籍の文書ファイル31の構成を示す模式図である。図18および図19中の白丸および黒丸は、電子書籍の文字を示す。黒丸は、キーワードを示す。
図19に示すように、文書ファイル31は行G、行H、行I、行J、行K、行Lおよび行Mを含む。行Lには、キーワードが含まれている。図19に二点鎖線で示すように、行Iが表示部20の1行目に表示されている場合に、行Lが減速領域51の最下行に表示される。
図18の中央は、スクロール速度の変化を示すグラフである。横軸は、表示部20の1行目に表示されている行を示す。縦軸は、スクロール速度を示す。図18の上側および下側には、行Gから行Lがそれぞれ1行目に表示された情報処理装置10を模式的に示す。
図18の下側の一番左に示す情報処理装置10では、表示部20の1行目に文書ファイル31の行Gが表示されている。一つ右側に示す情報処理装置10では、表示部20の1行目に文書ファイル31の行Iが、減速領域51の最下行に文書ファイル31の行Lが表示されている。
グラフに示すように、黒丸で示すキーワードが減速領域51内に表示されるまでの間、すなわち横軸が行Iになるまでの間、CPU12は文書ファイル31をスクロール速度V1でスクロール表示する。キーワードが減速領域51の最下行に表示されてから、減速領域51の1行目に表示されるまでの間、すなわち横軸が行Iから行Kの間、CPU12はスクロール速度を減速スクロール速度V2に低下させる。キーワードが減速領域51からスクロールアウトされた後、すなわち横軸が行K以降、CPU12はスクロール速度をV1に戻す。
情報処理装置10のユーザは、文書ファイル31を流し読みしながら、キーワードが含まれる箇所を見逃さずに目を通すことが可能である。キーワードが表示部20の中央付近に表示されてからスクロール速度が低下するため、ユーザはスクロール速度が低下した直後からキーワードの前後の文章を確認することが可能である。
図20は、実施の形態5のプログラムの処理の流れを示すフローチャートである。CPU12は、補助記憶装置14から文書ファイル31を取得する(ステップS501)。CPU12は、文書領域59に文書ファイル31を表示する(ステップS502)。
CPU12は、文書ファイル31から、文書領域59に示した部分に続く1行分の文字列を取得する(ステップS503)。CPU12は、ユーザから受け付けた操作に基づいて、基準スクロール速度を取得する(ステップS504)。
CPU12は、キーワードDBを参照して、文書ファイル31中の文書領域59に表示した部分にキーワードが含まれているか否かを判定する(ステップS631)。キーワードが含まれていると判定した場合(ステップS631でYES)、CPU12はキーワードの周囲に強調指標57を表示する(ステップS632)。
CPU12は、キーワードが減速領域51内に表示されているか否かを判定する(ステップS633)。減速領域51内に表示されていると判定した場合(ステップS633でYES)、CPU12は減速スクロール速度を算出する(ステップS634)。CPU12は、ステップS634で算出した減速スクロール速度を用いて、文書領域59を1行スクロールする(ステップS635)。
キーワードが含まれていないと判定した場合(ステップS631でNO)、または、キーワードが減速領域51外であると判定した場合(ステップS633でNO)、CPU12はステップS504で取得した基準スクロール速度を用いて、文書領域59を1行スクロールする(ステップS636)。
ステップS635またはステップS636の終了後、CPU12は処理を終了するか否かを判定する(ステップS637)。
終了しないと判定した場合(ステップS637でNO)、CPU12はステップS503に戻る。終了すると判定した場合(ステップS637でYES)。CPU12は処理を終了する。
本実施の形態によると、所定のキーワードが、表示部20内の所定の減速領域51内に表示されている場合にスクロール速度を遅くする情報処理装置10を提供することが可能である。情報処理装置10のユーザは、文書ファイル31を流し読みしながら、キーワードを見逃さずに目を通すことが可能である。
[実施の形態6]
本実施の形態は、スクロール速度を2段階に分けて減速する情報処理装置10に関する。実施の形態5と共通する部分については、説明を省略する。
図21は、実施の形態6の情報処理装置10の動作の概要を説明する説明図である。本実施の形態でCPU12が表示部20に表示する文書ファイル31は、図19を使用して説明した実施の形態5の文書ファイル31と同一である。
図21のグラフに示すように、黒丸で示すキーワードが表示部20に表示されるまでの間、すなわち横軸が行Hになるまでの間、CPU12は文書ファイル31をスクロール速度V1でスクロール表示する。キーワードが減速領域51の外側に表示されている間、すなわち横軸が行Hから行Iまでの間、CPU12はスクロール速度を中速スクロール速度V3に低下させる。
キーワードが減速領域51の最下行に表示されてから、減速領域51の1行目に表示されるまでの間、すなわち横軸が行Iから行Kの間、CPU12はスクロール速度を減速スクロール速度V2に低下させる。キーワードが減速領域51からスクロールアウトされてから表示部20に表示されている間、すなわち横軸が行Kから行Lの間、CPU12はスクロール速度を中速スクロール速度V3に戻す。キーワードが表示部20からスクロールアウトされた後、CPU12はスクロール速度をV0に戻す。
図22は、実施の形態6のプログラムの処理の流れを示すフローチャートである。ステップS633までの処理は、図20を使用して説明した実施の形態5のフローチャートの処理と同一であるので、説明を省略する。
キーワードが含まれていないと判定した場合(ステップS631でNO)、CPU12はステップS504で取得した基準スクロール速度を用いて、文書領域59を1行スクロールする(ステップS636)。
キーワードが減速領域51内に表示されていると判定した場合(ステップS633でYES)、CPU12は減速スクロール速度を算出する(ステップS634)。CPU12は、ステップS634で算出した減速スクロール速度を用いて、文書領域59を1行スクロールする(ステップS635)。
キーワードが減速領域51内に表示されていないと判定した場合(ステップS633でNO)、CPU12は中速スクロール速度を算出する(ステップS642)。中速スクロール速度は、ステップS504で取得した基準スクロール速度と、ステップS634で算出する減速スクロール速度との間の速度である。たとえば、CPU12は基準スクロール速度と減速スクロール速度の平均値を中速スクロール速度とする。
CPU12は、ステップS642で算出した中速スクロール速度を用いて、文書領域59を1行スクロールする(ステップS643)。
ステップS635、ステップS636またはステップS643の終了後、CPU12は処理を終了するか否かを判定する(ステップS637)。終了しないと判定した場合(ステップS637でNO)、CPU12はステップS503に戻る。終了すると判定した場合(ステップS637でYES)。CPU12は処理を終了する。
本実施の形態によると、所定のキーワードが、表示部20内の所定の減速領域51内に表示されている場合に、スクロール速度を2段階で遅くする情報処理装置10を提供することが可能である。情報処理装置10のユーザは、文書ファイル31の流し読みから、キーワード周辺の詳細な読み込みにスムーズに以降することが可能である。
なお、CPU12は、3段階以上にスクロール速度を変化させても良い。
[実施の形態7]
本実施の形態は、スクロール速度を滑らかに変化させる情報処理装置10に関する。実施の形態2と共通する部分については、説明を省略する。
図23は、点数DBのレコードレイアウトを示す説明図である。点数DBは、文書ファイル31の行の番号と、行を文書領域59に表示した時間と、事件に基づいて定める点数とを関連づけて記録するDBである。点数DBは、補助記憶装置14に記憶されている。点数DBは、情報処理装置10に接続された外部の記憶装置に記憶されていても良い。
点数DBは、文書ファイルフィールド、行フィールド、表示時間フィールドおよび点数フィールドを有する。文書ファイルフィールドには、文書ファイル31を識別する名称またはIDが記録されている。行フィールドには、文書ファイル31に記憶された文書の行番号が記録されている。
表示時間フィールドには、行番号フィールドに対応する行が文書領域59に表示されていた累積時間が記録されている。点数フィールドには、行番号フィールドに記録された時間に基づいて算出した点数が記録されている。点数DBは、一つの行番号について一つのレコードを有する。
CPU12は、たとえば表示時間フィールドに記録された時間を最大値が100点になるように式(1)により規格化して点数を定めることが可能である。
第N行の点数=第N行の表示時間/表示時間の最大値×100 ‥‥‥ (1)
CPU12は、その他任意の手法により、表示時間フィールドに記録された時間が短い方が低い点数に、長い方が高い点数になるようにして、点数を定めることが可能である。
図24は、速度係数DBのレコードレイアウトを示す説明図である。速度係数DBは、点数DBに記録された点数と、スクロール速度の減速の程度を表す速度係数とを関連づけて記録するDBである。ここで、速度係数は基準スクロール速度と積算することにより、減速スクロール速度を算出する係数である。速度係数が1である場合、減速スクロール速度は基準スクロール速度と等しい。
速度係数DBは、補助記憶装置14に記憶されている。速度係数DBは、情報処理装置10に接続された外部の記憶装置に記憶されていても良い。
速度係数DBは、点数フィールドおよび速度係数フィールドを有する。点数フィールドには、点数が記録されている。速度係数フィールドには、スクロール速度の減速の程度を表す速度係数が記録されている。速度係数DBは、一つの点数について一つのレコードを有する。
図25から図27は、速度係数DBの例を説明するグラフである。図25から図27の横軸は点数、縦軸は速度係数を示す。図25から図27は、CPU12は式(1)に基づいて0点から100点までの間で点数を定める場合の例を示す。
図25は、点数と速度係数との関係が一次関数である例を示す。点数が最小値0である場合、速度係数は最大値1である。点数が最大値100である場合、速度係数は最小値kである。
点数と速度係数とが図26に示す関係である場合には、点数が増加するにつれて、CPU12はスクロール速度を減少させる。
図26は、点数がP1以上である場合に、点数と速度係数との関係が一次関数である例を示す。点数が0からP1までである場合、速度係数は最大値1である。点数がP1から100までの間、点数と速度係数との関係は一次関数である。点数が最大値100である場合、速度係数は最小値kである。
点数と速度係数とが図26に示す関係である場合には、0からP1までの点数では、スクロール速度は基準スクロール速度である。点数がP1を越えた場合にCPU12はスクロール速度を(基準スクロール速度×速度係数)に減少させる。
図27は、点数と速度係数との関係が滑らかな単調減少関数である例を示す。点数が0からP2までの間、速度係数は1である。点数がP3から100までの間、速度係数は最小値kである。点数がP2からP3までの間、点数と速度係数との関係は滑らかな曲線である。
点数と速度係数とが図27に示す関係である場合には、0からP2までの点数ではスクロール速度は基準スクロール速度である。点数がP2からP3の間、CPU12はスクロール速度を(基準スクロール速度×速度係数)に減少させる。すなわち、点数が増えるにつれてスクロール速度がゆるやかに減速する。点数がP3を越える場合、速度係数は最小値kである。この場合、スクロール速度は最低速度である。
点数と速度係数との関係は、その他任意の関数を使用することが可能である。たとえば、基準スクロール速度によって、点数と速度係数との関係を変更しても良い。
図28は、実施の形態7のプログラムの処理の流れを示すフローチャートである。CPU12は、補助記憶装置14から文書ファイル31を取得する(ステップS501)。CPU12は、文書領域59に文書ファイル31を表示する(ステップS502)。
CPU12は、文書ファイル31から、文書領域59に示した部分に続く1行分の文字列を取得する(ステップS503)。CPU12は、ユーザから受け付けた操作に基づいて、基準スクロール速度を取得する(ステップS504)。
CPU12は、図23を使用して説明した点数DBを参照して、文書ファイル31中の文書領域59に表示した行の平均点を算出する(ステップS661)。CPU12は、図24を使用して説明した係数DBを参照して、ステップS661で算出した平均点に対応する速度係数を抽出する(ステップS662)。
CPU12は、ステップS504で取得した基準スクロール速度に、ステップS662で抽出した速度係数を乗じて、スクロール速度を算出する(ステップS663)。CPU12は、ステップS663で算出したスクロール速度で1行分スクロールする(ステップS664)。
CPU12はスクロールアウトした行の表示時間フィールドに、その行が文書領域59に表示されていた時間を加算する(ステップS665)。CPU12は処理を終了するか否かを判定する(ステップS666)。
終了しないと判定した場合(ステップS666でNO)、CPU12はステップS503に戻る。終了すると判定した場合(ステップS666でYES)、CPU12はDB更新−4のサブルーチンを起動する(ステップS667)。DB更新−4のサブルーチンは、図23を使用して説明した点数DBを更新するサブルーチンである。DB更新−4のサブルーチンの処理の流れは後述する。CPU12は、その後処理を終了する。
図29は、DB更新−4のサブルーチンの処理の流れを示すフローチャートである。CPU12は、図23を使用して説明した点数DBの表示時間フィールドを検索して、最大値を抽出する(ステップS681)。CPU12は、カウンタIを初期値1に設定する(ステップS682)。
CPU12は、点数DBからI番目のレコードを抽出する(ステップS683)。CPU12は、たとえば式(1)に基づいて点数を算出する(ステップS684)。CPU12は減速DB33の処理を終了したか否かを判定する(ステップS685)。
終了していないと判定した場合(ステップS685でNO)、CPU12はカウンタIに1を加算する(ステップS686)。CPU12は、ステップS683に戻る。終了していると判定した場合(ステップS685でYES)、CPU12は処理を終了する。
本実施の形態によると、過去に同じ文書ファイル31を読んだ際の所要時間に基づいてスクロール速度をゆるやかに変化させる情報処理装置10を提供することができる。
[実施の形態8]
本実施の形態は、減速スクロール速度が所定の速度よりも速くならないように制限する情報処理装置10に関する。実施の形態1と共通する部分については、説明を省略する。
スクロール速度について説明する。画面上を高速でスクロールする文字を読むためには、ユーザはスクロールする文字に連動するように眼球を追従運動させる必要がある。個人差はあるが、ユーザの眼を基点とした電子書籍のスクロール角速度、すなわち視角速度が毎秒10度を超えた場合には、スクロール中の文字をユーザが読むことは困難であるとされている。また視角速度が毎秒15度を超えた場合には、ユーザの眼球がスクロールされている画面に追従運動することはほぼ不可能であり、スクロール中の画面を視認できないとされている。
読書に適した距離は、30センチメートルから45センチメートル程度といわれている。たとえば、情報処理装置10とユーザの眼球との間の距離が30センチメートルである場合、毎秒10度の視角速度は毎秒約5センチメートルに相当し、毎秒15度の視角速度は毎秒約8センチメートルに相当する。ユーザが文字を読むことが可能な上限のスクロール速度、すなわち毎秒5センチメートルのスクロール速度を、可読速度Veとする。CPU12は、ユーザから可読速度Veの指定を受け付けて、主記憶装置13または補助記憶装置14に記憶する。
なお、大きなフォント等、視認しやすい文字を使用する場合、および、絵を主体として文字を殆ど含まない電子書籍等の場合には、眼球が追従運動する限界である毎秒15度、すなわち毎秒8センチメートルに相当するスクロール速度を可読速度Veに使用しても良い。小さなフォントを使用する場合、および、外国語の電子書籍等の場合には、毎秒10度、すなわち毎秒5センチメートルに相当するスクロール速度を可読速度Veに使用しても良い。
図30は、リミッタDBのレコードレイアウトを示す説明図である。リミッタDBは、文書ファイル31の行の番号と、スクロール時の速度制限の有無を示すリミッタフラグとを関連づけて記録するDBである。リミッタDBは、補助記憶装置14に記憶されている。リミッタDBは、情報処理装置10に接続された外部の記憶装置に記憶されていても良い。
リミッタDBは、文書ファイルフィールド、行フィールドおよびリミッタフラグフィールドを有する。文書ファイルフィールドには、文書ファイル31を識別する名称またはIDが記録されている。行フィールドには、文書ファイル31に記憶された文書の行番号が記録されている。
リミッタフラグフィールドには、行番号フィールドに対応する行が文書領域59に表示されている場合に、スクロール速度を制限するか否かのフラグが記録されている。リミッタフラグが「OFF」である場合、CPU12はスクロール速度を制限しない。リミッタフラグが「ON」である場合、CPU12はスクロール速度を可読速度Ve以下に制限する。
リミッタDBは、一つの行番号について一つのレコードを有する。なお、リミッタDBは、文字単位、段落単位、またはページ単位等、任意の単位でリミッタフラグを記録しても良い。この場合、リミッタDBは減速フラグを記録する単位ごとに一つのレコードを有する。
図31から図34は、実施の形態8の情報処理装置10の動作の概要を説明する説明図である。図31から図34の中央部分は、スクロール速度の変化を示すグラフである。横軸は、表示部20の1行目に表示されている行を示す。縦軸は、スクロール速度を示す。
図31は、1回目の読書状態の記録を示す。情報処理装置10のユーザは、行Sが表示部20の1行目に表示されるまで、可読速度Veを超える速度で文書ファイル31を高速にスクロールした。図31の上側の図は、上向きのスクロール速度が速すぎて、ユーザが個々の文字を読めない状況を示す。
行Sが1行目に表示された後、ユーザは適宜スクロール速度を変化させながら文書ファイル31を読む。ユーザは、読書中に行Vにマーキング32を設定する。図31の右下に示すように、行Tが表示部20の1行目に表示されている場合に、行Vが表示部20の最下行に表示される。したがって、グラフの横軸が行Tから行Vまでの間、行Vが表示部20に表示される。CPU12は、減速DB33のマーキング32が設定された行に対応する減速フラグを「ON」に設定する。なお、マーキング32および減速フラグの設定の詳細な手順については、説明を省略する。
図32は、2回目の読書状態の記録を示す。情報処理装置10のユーザは、行Nが表示部20の1行目に表示されるまで、可読速度Ve未満の速度で文書ファイル31を読む。その後、ユーザは行Qが表示部20の1行目に表示されるまで、可読速度Veを超える速度で、文書ファイル31を高速スクロールする。
ユーザは行Qが表示部20の1行目に表示されてから、行Rが表示部20の1行目に表示されるまで、可読速度Ve未満の速度で文書ファイル31を読む。その後、ユーザは、可読速度Veを越える速度で文書ファイル31を高速スクロールする旨の指示を情報処理装置10に入力する。
CPU12は、前回ユーザが可読速度Ve未満の速度で読んだ行S以降については、スクロール速度を可読速度Veまで減速して表示する。ユーザは、特段の操作を行わなくても、前回ゆっくりと読んだ重要な箇所を読むことができる。
図33は、3回目の読書状態の記録を示す。情報処理装置10のユーザは、可読速度Veを越える基準基準スクロール速度で高速スクロールする旨の指示を情報処理装置10に入力する。CPU12は、前回ユーザが可読速度Ve未満の速度で読んだ、行Nまでおよび行Qから行Rまでについて、スクロール速度を可読速度Veまで減速して表示する。
さらにCPU12はマーキング32が設定された行Vが表示部20に表示されている期間も、スクロール速度を可読速度Veまで減速して表示する。
以上に説明したように、CPU12は、前回ユーザが可読速度Veよりも低い速度で表示した箇所、および、マーキング32が設定されている箇所については、自動的にスクロール速度を可読速度Veまで減速して表示する。
図34は、図33と同じ状況で、図33に比べてユーザが入力した基準スクロール速度が低い場合の例を示す。CPU12は、前回ユーザが可読速度Ve未満の速度で読んだ、行Nまでおよび行Qから行Rまでについて、スクロール速度を可読速度Veまで減速して表示する。
さらにCPU12はマーキング32が設定された行Vが表示部20に表示されている期間、たとえば実施の形態1から実施の形態7と同様に、基準スクロール速度に基づいて定めた減速スクロール速度でスクロール表示する。なお、基準スクロール速度に基づいて定めた減速スクロール速度が可読速度Veよりも速い場合には、CPU12は可読速度Veでスクロール表示する。
図35は、実施の形態8のプログラムの処理の流れを示すフローチャートである。CPU12は、補助記憶装置14から文書ファイル31を取得する(ステップS501)。CPU12は、文書領域59に文書ファイル31を表示する(ステップS502)。
CPU12は、文書ファイル31から、文書領域59に示した部分に続く1行分の文字列を取得する(ステップS503)。CPU12は、ユーザから受け付けた操作に基づいて、基準スクロール速度を取得する(ステップS504)。
CPU12は、基準スクロール速度が可読速度Ve未満であるか否かを判定する(ステップS701)。可読速度未満であると判定した場合(ステップS701でYES)、CPU12は、減速DB33を参照して文書領域59に文書ファイル31中の減速フラグが「ON」である箇所が表示されているか否かを判定する(ステップS505)。減速フラグが「ON」である箇所が表示されていると判定した場合(ステップS505でYES)、CPU12は減速スクロール速度を算出する(ステップS506)。
CPU12は、ステップS506で算出した減速スクロール速度を用いて、文書領域59を1行スクロールする(ステップS507)。減速フラグが「ON」である箇所が表示されていないと判定した場合(ステップS505でNO)、CPU12はステップS504で取得した基準スクロール速度を用いて、文書領域59を1行スクロールする(ステップS508)。
ステップS507またはステップS508の終了後、CPU12は、リミットDBのスクロールアウトした行に対応するリミットフラグフィールドに、「ON」を記録する(ステップS703)。
基準スクロール速度が可読速度Ve以上であると判定した場合(ステップS701でNO)、CPU12は速度制限スクロールのサブルーチンを起動する(ステップS705)。速度制限スクロールのサブルーチンは、所定の場合に可読速度Ve以下のスクロール速度でスクロールするサブルーチンである。速度制限スクロールのサブルーチンの処理の流れは後述する。
ステップS703またはステップS705の終了後、CPU12は処理を終了するか否かを判定する(ステップS706)。
終了しないと判定した場合(ステップS706でNO)、CPU12はステップS503に戻る。終了すると判定した場合(ステップS706でYES)、CPU12は処理を終了する。
図36は、速度制限スクロールのサブルーチンの処理の流れを示すフローチャートである。CPU12は、減速DB33を参照して文書領域59に文書ファイル31中の減速フラグが「ON」である箇所が表示されているか否かを判定する(ステップS721)。減速フラグが「ON」である箇所が表示されていると判定した場合(ステップS721でYES)、CPU12は減速スクロール速度を算出する(ステップS722)。
CPU12は、減速スクロール速度が可読速度Ve未満であるか否かを判定する(ステップS723)。可読速度未満であると判定した場合(ステップS723でYES)、CPU12は、ステップS722で算出した減速スクロール速度を用いて、文書領域59を1行スクロールする(ステップS724)。可読速度Ve以上であると判定した場合(ステップS723でNO)、CPU12は可読速度Veで1行スクロールする(ステップS725)。
減速フラグが「ON」である箇所が表示されていないと判定した場合(ステップS721でNO)、CPU12はリミッタDBを参照して表示部20の1行目に表示されている行に対応するリミッタフラグフィールドに「ON」が記録されているか否かを判定する(ステップS726)。
ONが記録されていると判定した場合(ステップS726でYES)、CPU12は可読速度Veで1行スクロールする(ステップS727)。ONが記録されていないと判定した場合(ステップS726でNO)、CPU12は基準スクロール速度で1行スクロールする(ステップS728)。
ステップS724、ステップS725、ステップS727またはステップS728の終了後、CPU12は、リミッタDBのスクロールアウトした行に対応するリミッタフラグフィールドに「OFF」を記録する(ステップS729)。その後、CPU12は処理を終了する。
本実施の形態によると、前回ユーザが可読速度Veよりも低い速度で表示した箇所、および、減速フラグが設定されている箇所については、自動的にスクロール速度を可読速度Veまで減速して表示する情報処理装置10を提供することが可能である。
ユーザが意図的に可読速度Veよりも低い速度で表示した箇所、および、減速フラグが設定されている箇所は、ユーザにとって重要で読む価値が高い箇所である可能性が高い。このような箇所は、スクロール速度を可読速度Ve以下に低下させることにより、読み落としを防ぐようにユーザを支援する情報処理装置10を提供することができる。
一方、可読速度Veでスクロール中に、ユーザがスクロール速度を意図的に低下させる操作を行わなかった箇所は、既にユーザの関心が薄れた箇所である可能性が高い。このような箇所は、以後はスクロール速度を低下させず、基準スクロール速度で表示することにより、ユーザに煩わしさを感じさせにくい情報処理装置10を提供することが可能である。
情報処理装置10は、表示部20とユーザの眼との間の距離を測定する距離センサを備えていても良い。CPU12は、測定した距離に基づいて、可読速度Veを算出することが可能である。
[実施の形態9]
本実施の形態は、スクロール速度を基準スクロール速度よりも減速していることを表示する情報処理装置10に関する。実施の形態1と共通する部分については、説明を省略する。
図37は、実施の形態9の情報処理装置10の外観を示す説明図である。CPU12は、表示部20に、文書領域59、加速ボタン53、減速ボタン54、停止ボタン55、方向ボタン56および減速指標61を表示する。CPU12は、文書領域59に文書ファイル31をスクロール表示する。CPU12は、ユーザによる加速ボタン53、減速ボタン54、停止ボタン55および方向ボタン56の選択を受け付ける。
文書領域59に、たとえば下線および太字体で示すマーキング32が設定された箇所を表示する場合、CPU12は減速スクロールを行う。減速スクロール中、CPU12は表示部20に減速指標61を表示する。基準スクロール速度でスクロールする通常スクロール中は、CPU12は減速指標61を表示しない。
情報処理装置10のユーザは、減速指標61により減速スクロール中であることを知ることができる。そのため、スクロール速度が遅くなった事をユーザが不審に思うことを避ける情報処理装置10を提供することが可能である。
たとえば減速指標61のタップを受け付けた場合に、CPU12は、スクロール速度を基準スクロール速度に変更しても良い。
[実施の形態10]
本実施の形態は、文書ファイル31の種類に基づいて、基準スクロール速度の初期値および可読速度Veを変更する情報処理装置10に関する。実施の形態1と共通する部分については、説明を省略する。
図38は、標準速度DBのレコードレイアウトを示す説明図である。標準速度DBは、文書ファイル31の種類と、基準スクロール速度の初期値と、可読速度とを結びつけるDBである。標準速度DBは、種類フィールド、初期値フィールドおよび可読速度フィールドを有する。
種類フィールドには、文書ファイル31の種類が記録されている。初期値フィールドには、基準スクロール速度の初期値が記録されている。可読速度フィールドには、可読速度が記録されている。標準速度DBは、一つの文書ファイル31の種類について、一つのレコードを有する。
CPU12は、文書ファイル31の種類に基づいて種類フィールドからレコードを抽出する。CPU12は、初期値フィールドに記録されたスクロール速度でスクロールを開始する。その後、CPU12はユーザによる操作を受け付けて、スクロール速度を加速または減速する。
CPU12は、可読速度フィールドに記録された値を、実施の形態9で説明した可読速度Veに使用する。
たとえば、専門用語の多い専門書と、小説とでは、読む速度が異なる。本実施の形態によると、文書ファイル31の種類によって、適したスクロール速度でスクロールする情報処理装置10を提供することが可能である。
標準速度DBは、減速スクロール速度を記録したフィールドを有しても良い。CPU12は、減速スクロールを行う場合には、減速スクロール速度を記録したフィールドに基づいてスクロール速度を定める。
[実施の形態11]
本実施の形態は、たとえば絵巻物等、絵を主体とした文書ファイル31をスクロール表示する情報処理装置10に関する。実施の形態1と共通する部分については、説明を省略する。
図39は、実施の形態11の減速DB33のレコードレイアウトを示す説明図である。本実施の形態の減速DB33は、文書ファイル31の位置と、減速フラグとを関連づけて記録するDBである。
減速DB33は、文書ファイルフィールド、位置フィールドおよび減速フラグフィールドを有する。文書ファイルフィールドには、文書ファイル31を識別する名称またはIDが記録されている。位置フィールドには、文書ファイル31に記憶された文書の始点から測った距離が記録されている。
減速フラグフィールドには、位置フィールドに対応する位置が文書領域59に表示されている場合に、スクロール速度を減速するか否かのフラグが記録されている。
図40は、実施の形態11の情報処理装置10の外観を示す説明図である。CPU12は、表示部20に、文書領域59、加速ボタン53、減速ボタン54、停止ボタン55および方向ボタン56を表示する。CPU12は、文書領域59に文書ファイル31をスクロール表示する。図40においては、文書領域59に横方向にスクロールする絵巻物を表示した例を示す。
CPU12は、位置フィールドに記録された位置に基づいて、減速の要否を判定し、減速フラグが「ON」の位置が表示されている場合に減速スクロールを行う。
本実施の形態によると、「行」の概念の無い絵巻物のスクロール速度を制御する情報処理装置10を提供することが可能である。
[実施の形態12]
図41は、実施の形態12の情報処理装置10の動作を示す機能ブロック図である。本実施の形態の情報処理装置10は、CPU12による制御に基づいて以下のように動作する。
文書取得部81は、文書を取得する。表示部20は、文書取得部81が取得した文書の一部を表示する。スクロール部82は、表示部20に表示した文書を所定の速度でスクロールする。判定部83は、表示部20に文書中の所定の箇所が表示されているか否かを判定する。判定部83が、表示されていると判定した場合に、変速部84はスクロール速度を変更する。
[実施の形態13]
実施の形態13は、汎用のコンピュータ74とプログラム71とを組み合わせて動作させることにより、本実施の形態の情報処理装置10を実現する形態に関する。図42は、実施の形態13の情報処理装置10の構成を示す説明図である。図28を使用して、本実施の形態の構成を説明する。なお、実施の形態1と共通する部分の説明は省略する。
本実施の形態のコンピュータ74は、CPU12、主記憶装置13、補助記憶装置14、通信部15、入力部17、表示部20、読取部18およびバスを備える。本実施の形態のコンピュータ74は、汎用のタブレット、スマートフォン、パソコン等の情報機器である。
プログラム71は、可搬型記録媒体72に記録されている。CPU12は、読取部18を介してプログラム71を読み込み、補助記憶装置14に保存する。またCPU12は、コンピュータ74内に実装されたフラッシュメモリ等の半導体メモリ73に記憶されたプログラム71を読出しても良い。さらに、CPU12は、通信部15およびネットワークを介して接続される図示しない他のサーバコンピュータからプログラム71をダウンロードして補助記憶装置14に保存しても良い。
プログラム71は、コンピュータ74の制御プログラムとしてインストールされ、主記憶装置13にロードして実行される。これにより、コンピュータ74は上述した情報処理装置10として機能する。
各実施例で記載されている技術的特徴(構成要件)はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものでは無いと考えられるべきである。本発明の範囲は、上記した意味では無く、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。