以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
また、以下では、携帯電話100を「表示装置」の代表例として説明を行う。ただし、表示装置は、パーソナルコンピュータや、カーナビゲーション装置(Satellite navigation system)や、PND(Personal Navigation Device)や、PDA(Personal Data Assistance)、ゲーム機、電子辞書、電子BOOKなどのような、ディスプレイを有する情報機器であってもよい。なお、表示装置は、ネットワークに接続可能であって、他の機器との間でデータの送受信が可能な情報通信機器であることが好ましい。
[実施の形態1]
<ネットワークシステム1の全体構成>
まず、本実施の形態に係るネットワークシステム1の全体構成について説明する。図1は、本実施の形態に係るネットワークシステム1の一例を示す概略図である。図1に示すように、ネットワークシステム1は、携帯電話100A,100B,100Cと、チャットサーバ(第1のサーバ装置)400と、コンテンツサーバ(第2のサーバ装置)600と、放送局(TV放送のアンテナ)650と、インターネット(第1のネットワーク)500と、キャリア網(第2のネットワーク)700とを含む。また、本実施の形態に係るネットワークシステム1は、車両250に搭載されるカーナビゲーション装置200と、パーソナルコンピュータ(PC;Personal Computer)300とを含む。
なお、理解を容易にするために、以下では、本実施の形態に係るネットワークシステム1が、第1の携帯電話100Aと、第2の携帯電話100Bと、第3の携帯電話100Cとを含む場合について説明する。また、携帯電話100A,100B,100Cの各々に共通の構成や機能を説明する際には、それらを携帯電話100とも総称する。そして、携帯電話100A,100B,100C、カーナビゲーション装置200、パーソナルコンピュータ300の各々に共通の構成や機能を説明する際には、それらを表示装置とも総称する。
携帯電話100は、キャリア網700に接続可能に構成されている。カーナビゲーション装置200は、インターネット500に接続可能に構成されている。パーソナルコンピュータ300は、LAN(Local Area Network)350やWAN(Wide Area Network)を介してインターネット500に接続可能に構成されている。チャットサーバ400は、インターネット500に接続可能に構成されている。コンテンツサーバ600は、インターネット500に接続可能に構成されている。
より詳細には、第1の携帯電話100Aと、第2の携帯電話100Bと、第3の携帯電話100Cと、カーナビゲーション装置200と、パーソナルコンピュータ300とは、インターネット500やキャリア網700やメール送信サーバ(図2におけるチャットサーバ400)を介して、互いに接続可能であって、互いにデータを送受信することが可能である。
本実施の形態においては、携帯電話100とカーナビゲーション装置200とパーソナルコンピュータ300には、自端末を特定するための識別情報(たとえば、メールアドレスやIP(Internet Protocol)アドレスなど)が割り当てられる。携帯電話100とカーナビゲーション装置200とパーソナルコンピュータ300は、内部の記録媒体に他の表示装置の識別情報を記憶することができる。携帯電話100とカーナビゲーション装置200とパーソナルコンピュータ300は、当該識別情報に基づいて、キャリア網700やインターネット500などを介して、他の表示装置とデータ送受信を行うことができる。
本実施の形態に係る携帯電話100とカーナビゲーション装置200とパーソナルコンピュータ300とは、他の表示装置に割り当てられるIPアドレスを利用して、サーバ400,600を介さずに当該他の表示装置とデータ送受信を行うことが可能である。すなわち、本実施の形態に係るネットワークシステム1に含まれる携帯電話100、カーナビゲーション装置200、パーソナルコンピュータ300は、いわゆるP2P(Peer to Peer)型のネットワークを構成することが可能である。
ここでは、各表示装置がチャットサーバ400にアクセスする際には、すなわち各表示装置がインターネットにアクセスした際に、チャットサーバ400あるいは他の図示しないサーバ装置などによってIPアドレスが割り当てられるものとする。IPアドレスの割り当て処理の詳細は公知であるので、ここでは説明を繰り返さない。
また、本実施の形態に係る放送局650は、地上デジタル放送を送信する。たとえば、放送局650は、ワンセグ放送を送信する。携帯電話100とカーナビゲーション装置200とパーソナルコンピュータ300とは、ワンセグ放送を受信する。携帯電話100とカーナビゲーション装置200とパーソナルコンピュータ300のユーザは、放送局650から受信したテレビ番組など(動画コンテンツ)を視聴することができる。
携帯電話100とカーナビゲーション装置200とパーソナルコンピュータ300とは、インターネット500を介して、コンテンツサーバ600から、インターネットTVやその他の動画コンテンツを略同時に受信する。携帯電話100とカーナビゲーション装置200とパーソナルコンピュータ300のユーザは、コンテンツサーバ600からの動画コンテンツを視聴することができる。
<ネットワークシステム1の全体的な動作概要>
次に、本実施の形態に係るネットワークシステム1の動作概要について説明する。図2は、本実施の形態に係るネットワークシステム1における動作概要を示すシーケンス図である。図2においては、図1におけるコンテンツサーバ600と放送局650とを総称してコンテンツ発信装置という。
図1および図2に示すように、本実施の形態に係る各表示装置は、P2P型のデータ送受信を行うために、はじめに互いのIPアドレスを交換(取得)する必要がある。そして、各表示装置は、IPアドレスを取得したのちに、P2P型のデータ送受信によってメッセージや添付ファイルなどを他の表示装置に送信する。
以下では、表示装置のそれぞれが、チャットサーバ400に生成されたチャットルームを介して、互いの識別情報(IPアドレスなど)やメッセージや添付ファイルを送受信する場合について説明する。そして、第1の携帯電話100Aが、チャットサーバ400に新たなチャットルームを生成し、当該チャットルームに第2の携帯電話100Bを招待する場合について説明する。
まず、第1の携帯電話100A(図2において端末A)が、チャットサーバ400にIP登録(ログイン)を要求する(ステップS0002)。第1の携帯電話100Aは、同時にIPアドレスを取得してもよいし、予めIPアドレスを取得していてもよい。より詳細には、第1の携帯電話100Aは、キャリア網700、メール送信サーバ(チャットサーバ400)、インターネット500を介して、チャットサーバ400に第1の携帯電話100AのメールアドレスとIPアドレスと第2の携帯電話100Bのメールアドレスと新たなチャットルームの生成を要求するメッセージとを送信する。
チャットサーバ400は、その要求に応じて、第1の携帯電話100AのメールアドレスをそのIPアドレスに対応付けて格納する。そして、チャットサーバ400は、第1の携帯電話100Aのメールアドレスと第2の携帯電話100Bのメールアドレスとに基づいて、ルーム名を生成し、当該ルーム名のチャットルームを生成する。このとき、チャットサーバ400は、チャットルームの生成が完了した旨を第1の携帯電話100Aに通知してもよい。チャットサーバ400は、ルーム名と参加中の表示装置のIPアドレスとを対応付けて格納する。
あるいは、第1の携帯電話100Aは、第1の携帯電話100Aのメールアドレスと第2の携帯電話100Bのメールアドレスとに基づいて、新たなチャットルームのルーム名を生成し、当該ルーム名をチャットサーバ400に送信する。チャットサーバ400は、ルーム名に基づいて、新たなチャットルームを生成する。
第1の携帯電話100Aは、新たなチャットルームを生成したこと、すなわちチャットルームへの招待を示すP2P参加要請メールを第2の携帯電話100Bに送信する(ステップS0004、ステップS0006)。より詳細には、第1の携帯電話100Aは、キャリア網700、メール送信サーバ(チャットサーバ400)、インターネット500を介して、P2P参加要請メールを第2の携帯電話100Bに送信する(ステップS0004、ステップS0006)。ただし、チャットサーバ400が、コンテンツサーバ600の役割を兼ねるものであってもよい。
第2の携帯電話100Bは、P2P参加要請メールを受信すると(ステップS0006)、第1の携帯電話100Aのメールアドレスと第2の携帯電話100Bのメールアドレスとに基づいてルーム名を生成し、チャットサーバ400に第2の携帯電話100BのメールアドレスとIPアドレスとそのルーム名を有するチャットルームへ参加する旨のメッセージとを送信する(ステップS0008)。第2の携帯電話100Bは、同時にIPアドレスを取得してもよいし、先にIPアドレスを取得してからチャットサーバ400にアクセスしてもよい。
チャットサーバ400は、そのメッセージを受け付けて、第2の携帯電話100Bのメールアドレスがルーム名に対応するものであるか否かを判断した上で、第2の携帯電話100BのメールアドレスをIPアドレスに対応付けて格納する。そして、チャットサーバ400は、第1の携帯電話100Aに、第2の携帯電話100Bがチャットルームに参加した旨と第2の携帯電話100BのIPアドレスとを送信する(ステップS0010)。同時に、チャットサーバ400は、第2の携帯電話100Bに、チャットルームへの参加を受け付けた旨と第1の携帯電話100AのIPアドレスとを送信する。
第1の携帯電話100Aと第2の携帯電話100Bは、相手のメールアドレスやIPアドレスを取得して、互いを認証する(ステップS0012)。認証が完了すると、第1の携帯電話100Aと第2の携帯電話100Bとは、P2P通信(チャット通信)を開始する(ステップS0014)。P2P通信中の動作概要については、後述する。
第1の携帯電話100Aが、第2の携帯電話100BにP2P通信を切断する旨のメッセージを送信する(ステップS0016)。第2の携帯電話100Bは、第1の携帯電話100Aに切断する要求を受け付けた旨のメッセージを送信する(ステップS0018)。第1の携帯電話100Aは、チャットサーバ400にチャットルームを削除する要求を送信する(ステップS0020)。チャットサーバ400は、チャットルームを削除する。
以下、図2と図3とを参照して、本実施の形態に係るネットワークシステム1の動作概要をより具体的に説明する。図3は、本実施の形態に係る動作概要に沿った表示装置の表示画面の推移を示したイメージ図である。なお、以下では、第1の携帯電話100Aと第2の携帯電話100Bとが、放送局650またはコンテンツサーバ600から取得したコンテンツを背景として表示しながら、入力された手書き画像を送受信する場合について説明する。
図3(A)に示すように、まず、第1の携帯電話100AがTV番組などのコンテンツを受信して表示している。第1の携帯電話100Aのユーザが、TV番組を視聴しながら第2の携帯電話100Bのユーザとチャットしたい場合、第1の携帯電話100Aは、チャット開始の命令を受け付ける。図3(B)に示すように、第1の携帯電話100Aは、相手ユーザの選択命令を受け付ける。
ここでは、図3(C)に示すように、第1の携帯電話100Aは、TV番組を特定するための情報をメール送信サーバ(チャットサーバ400)を介して第2の携帯電話100Bへと送信する(ステップS0004)。図3(D)に示すように、第2の携帯電話100Bは、第1の携帯電話100Aから情報を受信する(ステップS0006)。第2の携帯電話100Bは、当該情報に基づいてTV番組を受信して表示する。
なお、第1の携帯電話100Aと第2の携帯電話100Bとは共に、P2P通信開始後に、すなわちP2P通信中に、TV番組などの動画コンテンツを放送局650やコンテンツサーバ600から受信してもよい。
図3(E)に示すように、第1の携帯電話100Aは、第2の携帯電話100BとP2P通信することなく、メール送信を繰り返すこともできる。第1の携帯電話100Aは、メール送信が完了すると、チャットサーバ400に自身のIPアドレスを登録し、第1の携帯電話100Aのメールアドレスと第2の携帯電話100Bのメールアドレスとに基づいて新たなチャットルームを生成するように要求する(ステップS0002)。
図3(F)に示すように、第2の携帯電話100Bは、チャットを開始する旨の命令を受け付けて、チャットサーバ400に、ルーム名とチャットルームに参加する旨のメッセージと自身のIPアドレスとを送信する(ステップS0008)。第1の携帯電話100Aは、第2の携帯電話100BのIPアドレスを取得して、第2の携帯電話100Bは第1の携帯電話100AのIPアドレスを取得して(ステップS0010)、互いを認証し合う(ステップS0012)。
これによって、図3(G)および図3(H)に示すように、第1の携帯電話100Aと第2の携帯電話100BとはP2P通信(手描きチャット通信)を行うことができる(ステップS0014)。すなわち、本実施の形態に係る第1の携帯電話100Aと第2の携帯電話100Bとは、動画コンテンツの再生中に、入力された手描き画像を示すデータを送受信するものである。
より詳細には、本実施の形態においては、第1の携帯電話100Aがユーザから手書き画像の入力を受け付けて、動画コンテンツ上に当該手書き画像を表示する。第1の携帯電話100Aは、手描き画像を第2の携帯電話100Bに送信する。第2の携帯電話100Bは、第1の携帯電話100Aからの手描き画像に基づいて、動画コンテンツ上に手書き画像を表示する。
逆に、第2の携帯電話100Bもユーザから手書き画像の入力を受け付けて、動画コンテンツ上に当該手書き画像を表示する。第2の携帯電話100Bは、手描き画像を第1の携帯電話100Aに送信する。第2の携帯電話100Bは、第1の携帯電話100Aからの手描き画像に基づいて、動画コンテンツ上に手書き画像を表示する。
そして、後述するように、本実施の形態に係るネットワークシステム1においては、第1の携帯電話100Aおよび第2の携帯電話100Bのいずれかがユーザから手描き画像のクリア命令を受け付けた際に、第1の携帯電話100Aおよび第2の携帯電話100Bがディスプレイ107に表示されている画像を履歴情報として記憶する。より詳細には、第1の携帯電話100Aおよび第2の携帯電話100Bは、そのいずれかがクリア命令を受け付けた際に、その両者がディスプレイ107に表示されている動画コンテンツのフレーム(静止画像)と手描き画像とを記憶して、表示されている手描き画像をディスプレイ107から消去する。
また、本実施の形態に係るネットワークシステム1においては、第1の携帯電話100Aおよび第2の携帯電話100Bが、動画コンテンツのシーンが切り換わった際に、切り換わる直前のディスプレイ107に表示されている画像を履歴情報として記憶する。より詳細には、第1の携帯電話100Aおよび第2の携帯電話100Bは、シーンが切り換わる直前にディスプレイ107に表示されている動画コンテンツのフレームと手描き画像とを記憶して、表示されている手描き画像をディスプレイ107から消去する。
そして、第1の携帯電話100AがP2P通信を切断した後(ステップS0016、ステップS0018)、図3(I)に示すように、第2の携帯電話100Bは第1の携帯電話100Aなどにメール送信を行うことができる。なお、P2P通信をTCP/IP通信方式で、メールの送受信をHTTP通信方式で行うことも可能である。すなわち、P2P通信中にメール送受信を行うことも可能である。
<ネットワークシステム1における手描き画像の送受信に関する動作概要>
次に、手描き画像の送受信に関する動作概要、すなわちチャット通信中におけるネットワークシステム1の動作概要について詳細に説明する。図4は、手描き画像の送受信に関する動作概要を示すイメージ図である。以下では、第1の携帯電話100Aと第2の携帯電話100Bとがチャット通信を行っている場合について説明する。
図4(A−1)(B−1)を参照して、第1の携帯電話100Aと第2の携帯電話100Bとが、放送局650またはコンテンツサーバ600から同じ動画コンテンツ(たとえば、TV番組)を受信して、当該動画コンテンツを第1の領域102Aに表示している。このとき、チャット通信に参加していない第3の携帯電話100Cも、同じ動画コンテンツを受信して、表示しているかもしれない。
第1の携帯電話100Aのユーザがタッチパネル102の第1の領域102Aに手描き画像を入力すると、タッチパネル102が入力された手描き画像を第1の領域102A表示する。すなわち、第1の携帯電話100Aは、動画コンテンツに重ねて手描き画像を表示する。第1の携帯電話100Aは、手描き画像に関するデータを、順次、第2の携帯電話100Bへと送信する。
第2の携帯電話100Bは、第1の携帯電話100Aからの手描き画像を受信して、タッチパネル102の第1の領域102Aに手描き画像を表示する。すなわち、第1の携帯電話100Aと第2の携帯電話100Bとは、同じ動画を再生しながら、当該動画上に同じ手描き画像を表示する。
図4(A−2)を参照して、第1の携帯電話100Aのユーザが、タッチパネル102を介してクリアボタン(手描き画像のリセットボタン)を押下する。第1の携帯電話100Aは、クリアボタンが押下された旨のメッセージを第2の携帯電話100Bへと送信する。
タッチパネル102は、それまでに入力された手描き画像を非表示にする。より詳細には、タッチパネル102は、第1の領域102Aから手描き画像のみを消去する。第1の携帯電話100Aは、クリアボタンが押下されたときに表示されていた手描き画像と動画のフレームとを履歴情報として記憶する。
本実施の形態においては、第1の携帯電話100Aは、履歴情報に基づいて、タッチパネル102の第2の領域102Bに、クリアボタンが押下されたときに表示されていた手描き画像と動画のフレームとを重ねて表示する。このとき、第1の携帯電話100Aは、タッチパネル102の第1の領域102Aで、動画コンテンツの再生を継続する。
図4(B−2)を参照して、第2の携帯電話100Bは当該メッセージを受信して、それまでに入力された手描き画像を非表示にする。より詳細には、タッチパネル102は、第1の領域102Aから手描き画像のみを消去する。第2の携帯電話100Bは、第1の携帯電話100Aのクリアボタンが押下されたとき(あるいはメッセージを受信したとき)に表示されていた手描き画像と動画のフレームとを履歴情報として記憶する。
第2の携帯電話100Bは、履歴情報に基づいて、タッチパネル102の第2の領域102Bに、クリアボタンが押下されたときに表示されていた手描き画像と動画のフレームとを表示する。このとき、第2の携帯電話100Bは、タッチパネル102の第1の領域102Aで、動画コンテンツの再生を継続する。
図4(B−3)を参照して、第2の携帯電話100Bのユーザが、タッチパネル102の第1の領域102Aに手描き画像を入力すると、タッチパネル102が入力された手描き画像を第1の領域102Aに表示する。第2の携帯電話100Bは、手描き画像に関するデータを、順次、第2の携帯電話100Aへと送信する。図4(A−3)を参照して、第1の携帯電話100Aは、第2の携帯電話100Bからの手描き画像を受信して、タッチパネル102の第1の領域102Aに手描き画像を表示する。
図4(A−4)を参照して、第1の携帯電話100Aのユーザが、タッチパネル102の第1の領域102Aに手描き画像を入力すると、タッチパネル102が入力された手描き画像を第1の領域102Aに表示する。第1の携帯電話100Aは、手描き画像に関するデータを、順次、第2の携帯電話100Bへと送信する。
このようにして、第1の携帯電話100Aと第2の携帯電話100Bとは、共に、第1の領域102A内で同じ動画を再生しながら、第1の領域102A内で同じ手描き画像を表示する。ただし、図4(B−4)では、以下に説明するように、ネットワーク障害が発生した場合のイメージ図を示している。
本実施の形態に係る第1の携帯電話100Aと第2の携帯電話100Bとは、表示している動画コンテンツのシーンが切り換わった否かを常時判断している。たとえば、第1の携帯電話100Aと第2の携帯電話100Bとは、シーン番号が変化したか否かや、画像の変化量が所定値以上であるか否かを判断することによって、シーンが切り換わった否かを判断する。
図4(A−5)(B−5)を参照して、動画コンテンツのシーンが切り換わると、第1の携帯電話100Aと第2の携帯電話100Bのタッチパネル102は、それまでに入力された手描き画像を非表示にする。第1の携帯電話100Aと第2の携帯電話100Bとは、シーンが切り換わる直前に表示されていた手描き画像と動画のフレーム(シーンの最後の静止画像)とを履歴情報として記憶する。
本実施の形態においては、第1の携帯電話100Aと第2の携帯電話100Bとは、履歴情報に基づいて、タッチパネル102の第3の領域102Cに、シーンが切り換わる直前に表示されていた手描き画像と動画のフレームとを重ねて表示する。このとき、第1の携帯電話100Aと第2の携帯電話100Bとは、継続して、タッチパネル102の第1の領域102Aで動画コンテンツを再生する。
同様に、図4(A−6)(B−6)を参照して、動画コンテンツのシーンが更に切り換わると、第1の携帯電話100Aと第2の携帯電話100Bのタッチパネル102は、それまでに入力された手描き画像を非表示にする。ここでは、シーンが切り換わる前に手描き画像が入力されていないため、手描き画像を非表示にする必要がない。すなわち、本実施の形態においては、シーンが切り換わるときに第1の領域102Aに(再生中の動画上に)手描き画像が表示されていない場合、第1の携帯電話100Aと第2の携帯電話100Bとは、手描き画像と動画のフレーム(シーンの最後のフレーム)とを記憶する必要がない。
ただし、他の実施の形態としては、シーンが切り換わるときに第1の領域102Aに(再生中の動画上に)手描き画像が表示されていない場合、第1の携帯電話100Aと第2の携帯電話100Bとが、動画フレームのみを履歴情報として記憶することも可能である。
なお、図4(A−4)(B−4)を参照して、本実施の形態においては、第1の携帯電話100Aと第2の携帯電話100Bとの間のネットワークに障害が生じても、第1の携帯電話100Aと第2の携帯電話100Bが同じ履歴情報を記憶することができる。すなわち、ネットワークに障害が発生しても、第1の携帯電話100Aと第2の携帯電話100Bの両者は、入力された手描き画像と、入力時刻に対応する動画コンテンツのフレームとを対応付けて記憶することが可能である。
後述するように、第1の携帯電話100Aと第2の携帯電話100Bとは入力された手描き画像を、入力のタイミングを示す情報とともに送信する。ここで、入力のタイミングは、手描き画像が入力された時刻や、手描き画像が入力されたときに表示されている動画のシーン番号あるいはフレーム番号などが挙げられる。
これによって、手描き画像の受信側(図4においては第2の携帯電話100B)が、手描き画像を対応する動画コンテンツのフレームに対応付けて履歴情報として記憶したり、履歴情報を上書き保存したりすることができる。その結果、図4(B−5)に示すように、第1の携帯電話100Aの第3の領域102Cと、第2の携帯電話100Bの第3の領域102Cとが、同じ履歴画像を表示することができる。
このように、本実施の形態に係るネットワークシステム1においては、第1の携帯電話100Aと第2の携帯電話100Bとが、手描き画像と、当該手描き画像が入力されたときに表示されている動画のフレーム(静止画像データ)と、を対応付けて履歴情報として記憶する。そのため、第1の携帯電話100Aと第2の携帯電話100Bとは、当該履歴情報を参照することによって、手描き画像を、当該手描き画像が入力されたときに表示されている動画のフレームとともに表示することができる。
特に、本実施の形態に係るネットワークシステム1においては、第1の携帯電話100Aと第2の携帯電話100Bとが、手描き画像と、当該手描き画像を消去する(リセットする)ための命令が入力されたときに表示されている動画のフレームと、を対応付けて履歴情報として記憶する。そのため、第1の携帯電話100Aと第2の携帯電話100Bとは、当該履歴情報を参照することによって、手描き画像を、当該手描き画像を消去する(リセットする)ための命令が入力されたときに表示されている動画のフレームとともに表示することができる。
あるいは、本実施の形態に係るネットワークシステム1においては、手描き画像が表示されているときに動画のシーンが切り換わった場合に、第1の携帯電話100Aと第2の携帯電話100Bとが、当該手描き画像と、シーンが切り換わる直前の動画のフレームと、を対応付けて履歴情報として記憶する。そのため、第1の携帯電話100Aと第2の携帯電話100Bとは、当該履歴情報を参照することによって、手描き画像を、当該シーンが切り換わる直前の動画のフレームとともに表示することができる。
なお、本実施の形態においては、タッチパネル102の第1の領域102Aに再生中の動画と手描き画像とが重ねて表示されるともに、タッチパネル102の第2の領域102B(102C)にフレームと手描き画像とが重ねて表示されるものである。すなわち、再生中の動画と履歴画像とが、タッチパネル102上に、並べて、同時に、表示されるものである。
しかしながら、表示装置は、ユーザからの切替命令に応じて、第1のモードと第2のモードとを切り替えてもよい。すなわち、表示装置は、第1のモードにおいて、タッチパネル102に再生中の動画と手描き画像とを重ねて表示させてもよい。表示装置は、第2のモードにおいて、タッチパネル102にフレームと手描き画像とを重ねて表示させてもよい。
以上のように、本実施の形態に係る表示装置においては、手描き画像を入力した際の画面(第1の領域102A)と、手描き画像を履歴として表示するための画面(第2の領域102B)との差異が小さくなる。その結果、手描き画像を入力したときのユーザの意図が、当該ユーザあるいは通信相手に、より的確に伝わるようになる。
以下、このような機能を実現するためのネットワークシステム1の構成について詳述する。
<携帯電話100のハードウェア構成>
本実施の形態に係る携帯電話100のハードウェア構成について説明する。図5は、本実施の形態に係る携帯電話100の外観を示すイメージ図である。図6は、本実施の形態に係る携帯電話100のハードウェア構成を示すブロック図である。
図5および図6に示すように、本実施の形態に係る携帯電話100は、外部のネットワークとの間でデータを送受信する通信デバイス101と、テレビ放送を受信するTVアンテナ113と、プログラムや各種データベースを記憶するメモリ103と、CPU(Central Processing Unit)106と、ディスプレイ107と、外部音声が入力されるマイク108と、音声を出力するスピーカ109と、各種情報の入力を受け付ける各種ボタン110と、外部からの通信データや通話信号を受信した旨の音声を出力する第1の通知部111と、外部からの通信データや通話信号を受信した旨を表示する第2の通知部112とを含む。
本実施の形態に係るディスプレイ107は、液晶パネルやCRTから構成されるタッチパネル102を実現する。すなわち、本実施の形態に係る携帯電話100は、ディスプレイ107の上側(表側)にペンタブレット104が敷設されている。これによって、ユーザは、スタイラスペン120などを用いることによって、ペンタブレット104を介して、図形情報などをCPU106に手書き入力することができる。
なお、ユーザは、以下の方法によっても、手書き入力を行うことが可能である。すなわち、赤外線や音波を出力する特殊なペンを利用することによって、そのペンから発信される赤外線や音波を受信する受信部によってペンの動きを割り出す。この場合、当該受信部を軌跡を記憶する装置に接続することによって、CPU106が当該装置から出力される軌跡を手書き入力として受信することができる。
あるいは、ユーザは、静電パネルに対して、指、または、静電対応のペンを用いて手書き画像を書くことも可能である。
このようにして、ディスプレイ107(タッチパネル102)は、CPU106が出力したデータに基づいて、画像やテキストを表示する。たとえば、ディスプレイ107は、通信デバイス101やTVアンテナ113を介して受信した動画コンテンツを表示する。ディスプレイ107は、タブレット104を介して受け付けた手描き画像や、通信デバイス101を介して受け付けた手描き画像に基づいて、手書き画像を動画コンテンツに重畳させて表示する。
各種ボタン110は、キー入力操作などによってユーザから情報を受け付ける。たとえば、各種ボタン110は、通話を受け付けたり、通話を発したりするためのTELボタン110Aと、メールを受け付けたり、メールを発したりするためのメールボタン110Bと、P2P通信を受け付けたり、P2P通信を発したりするためのP2Pボタン110Cと、アドレス帳データを呼び出すアドレス帳ボタン110Dと、各種の処理を終了させるための終了ボタン110Eとを含む。すなわち、各種ボタン110は、通信デバイス101を介してP2P参加要請メールを受信したときに、ユーザから、チャットルームへ参加する命令や、メールの内容を表示させる命令などを選択可能に受け付ける。
また、各種ボタン110は、手書き入力を開始するための命令を受け付けるためのボタン、すなわち第1の入力を受け付けるためのボタンを含んでもよい。各種ボタン110は、手書き入力を終了するための命令を受け付けるためのボタン、すなわち第2の入力を受け付けるためのボタンを含んでもよい。
第1の通知部111は、スピーカ109などを介して着信音を出力する。あるいは、第1の通知部111は、バイブレーション機能を有する。第1の通知部111は、着呼した際や、メールを受信した際や、P2P参加要請メールを受信した際に、音声を出力したり、携帯電話100を振動させたりする。
第2の通知部112は、着信したときに点滅するTEL用LED(Light Emitting Diode)112Aと、メールを受信したときに点滅するメール用LED112Bと、P2P通信を受信したときに点滅するP2P用LED112Cを含む。
CPU106は、携帯電話100の各部を制御する。たとえば、CPU106は、タッチパネル102や各種ボタン110を介してユーザから各種命令を受け付けたり、当該命令に対応する処理を実行したり、通信デバイス101やネットワークを介して外部の表示装置とデータの送受信を行ったりする。
通信デバイス101は、CPU106からの通信データを通信信号に変換し、その通信信号を外部へと発信する。通信デバイス101は、外部から受信した通信信号を通信データに変換し、その通信データをCPU106に入力する。
メモリ103は、作業用メモリとして機能するRAM(Random Access Memory)や、制御プログラムなどを格納するROM(Read Only Memory)や、画像データなどを記憶するハードディスクなどによって実現される。図7(a)は、メモリ103を構成する各種のワークメモリ103Aのデータ構造を示すイメージ図である。図7(b)は、メモリ103が記憶するアドレス帳データ103Bを示すイメージ図である。図7(c)は、メモリ103が記憶する自端末データ103Cを示すイメージ図である。図7(d)は、メモリ103が記憶する自端末のIPアドレスデータ103Dと他端末のIPアドレスデータ103Eとを示すイメージ図である。
図7(a)に示すように、メモリ103のワークメモリ103Aは、発信者の電話番号を格納するRCVTELNO領域、受信メールに関する情報を格納するRCVMAIL領域、送信メールに関する情報を格納するSENDMAIL領域、選択されたアドレスのメモリNoを格納するSEL領域、生成されたルーム名を格納するROOMNAME領域などを含む。なお、ワークメモリ103Aは、電話番号を格納しなくてもよい。受信メールに関する情報は、MAIN領域に格納されるメール本文と、RCVMAILのFROM領域に格納されるメール送信元のメールアドレスを含む。送信メールに関する情報は、MAIN領域に格納されるメール本文と、RCVMAILのTO領域に格納されるメール送信先のメールアドレスとを含む。
図7(b)に示すように、アドレス帳データ103Bは、宛先(他の表示装置)毎にメモリNoを対応付けている。そして、アドレス帳データ103Bは、宛先毎に、名前、電話番号、メールアドレスなどを互いに対応付けて格納する。
図7(c)に示すように、自端末データ103Cは、自端末のユーザの名前、自端末の電話番号、自端末のメールアドレスなどを格納する。
図7(d)に示すように、自端末のIPアドレスデータ103Dは、自端末のIPアドレスを格納する。他端末のIPアドレスデータ103Eは、他端末のIPアドレスを格納する。
本実施の形態に係る携帯電話100の各々は、図7に示すデータを利用することによって、前述したような方法で(図1〜図3を参照。)、他の表示装置との間でデータを送受信することができる。
<チャットサーバ400およびコンテンツサーバ600のハードウェア構成>
次に、本実施の形態に係るチャットサーバ400およびコンテンツサーバ600のハードウェア構成について説明する。以下では、まず、チャットサーバ400のハードウェア構成について説明する。
図8は、本実施の形態に係るチャットサーバ400のハードウェア構成を示すブロック図である。図8に示すように、本実施の形態に係るチャットサーバ400は、相互に内部バス408で接続されたCPU405と、メモリ406と、固定ディスク407と、サーバ通信デバイス409とを含む。
メモリ406は、各種の情報を記憶するものであって、たとえば、CPU405でのプログラムの実行に必要なデータを一時的に記憶する。固定ディスク407は、CPU405が実行するプログラムやデータベースを記憶する。CPU405は、チャットサーバ400の各要素を制御するものであって、各種の演算を実施する装置である。
サーバ通信デバイス409は、CPU405が出力したデータを電気信号へと変換して外部へ送信し、外部から受信した電気信号をデータに変換してCPU405に入力する。具体的には、サーバ通信デバイス409は、CPU405からのデータを、インターネット500やキャリア網700などを介して、携帯電話100やカーナビゲーション装置200やパーソナルコンピュータ300やゲーム機や電子辞書や電子BOOKなどのネットワークに接続可能な機器に送信する。そして、サーバ通信デバイス409は、インターネット500やキャリア網700を介して、携帯電話100やカーナビゲーション装置200やパーソナルコンピュータ300やゲーム機や電子辞書や電子BOOKなどのネットワークに接続可能な機器から受信したデータを、CPU405に入力する。
ここで、メモリ406あるいは固定ディスク407に記憶されるデータについて説明する。図9(a)は、チャットサーバ400のメモリ406あるいは固定ディスク407に記憶されるルーム管理テーブル406Aのデータ構造を示す第1のイメージ図であって、図9(b)は、チャットサーバ400のメモリ406あるいは固定ディスク407に記憶されるルーム管理テーブル406Aのデータ構造を示す第2のイメージ図である。
図9(a)および図9(b)に示すように、ルーム管理テーブル406Aは、ルーム名とIPアドレスとを対応付けて格納する。たとえば、ある時点においては、図9(a)に示すように、チャットサーバ400にルーム名Rを有するチャットルーム、ルーム名Sを有するチャットルーム、ルーム名Tを有するチャットルームが生成されている。そして、ルーム名Rを有するチャットルームには、AというIPアドレスを有する表示装置と、CというIPアドレスを有する表示装置が入室している。ルーム名Sを有するチャットルームには、BというIPアドレスを有する表示装置が入室している。ルーム名Tを有するチャットルームには、DというIPアドレスを有する表示装置が入室している。
後述するように、ルーム名Rは、CPU406が、AというIPアドレスを有する表示装置のメールアドレスとBというIPアドレスを有する表示装置のメールアドレスに基づいて決定する。図9(a)に示す状態において、ルーム名Sを有するチャットルームに新たにEというIPアドレスを有する表示装置が入室すると、図9(b)に示すように、ルーム管理テーブル406Aはルーム名SとIPアドレスEとを対応付けて格納する。
具体的には、チャットサーバ400においては、第1の携帯電話100Aが新たなチャットルームの生成を要求してきた際(図2におけるステップS0002)に、CPU405が、第1の携帯電話100Aのメールアドレスと第2の携帯電話100Bのメールアドレスとに基づいてルーム名を生成した上で、ルーム管理テーブル406Aに当該ルーム名と第1の携帯電話100AのIPアドレスとを対応付けて格納する。
そして、第2の携帯電話100Bがチャットサーバ400にチャットルームへの参加を要求してきた際(図2におけるステップS0008)に、CPU405が、ルーム管理テーブル406Aに当該ルーム名と第2の携帯電話100BのIPアドレスとを対応付けて格納する。CPU406は、ルーム管理テーブル406Aから、当該ルーム名に対応する第1の携帯電話100AのIPアドレスを読み出す。CPU406は、第1の携帯電話100AのIPアドレスを第2の各表示装置に送信し、第2の携帯電話100BのIPアドレスを第1の携帯電話100Aに送信する。
次に、コンテンツサーバ600のハードウェア構成について説明する。図8に示すように、本実施の形態に係るコンテンツサーバ600は、相互に内部バス608で接続されたCPU605と、メモリ606と、固定ディスク607と、サーバ通信デバイス609とを含む。
メモリ606は、各種の情報を記憶するものであって、たとえば、CPU605でのプログラムの実行に必要なデータを一時的に記憶する。固定ディスク607は、CPU605が実行するプログラムやデータベースを記憶する。CPU605は、コンテンツサーバ600の各要素を制御するものであって、各種の演算を実施する装置である。
サーバ通信デバイス609は、CPU605が出力したデータを電気信号へと変換して外部へ送信し、外部から受信した電気信号をデータに変換してCPU605に入力する。具体的には、サーバ通信デバイス609は、CPU605からのデータを、インターネット500やキャリア網700などを介して、携帯電話100やカーナビゲーション装置200やパーソナルコンピュータ300やゲーム機や電子辞書や電子BOOKなどのネットワークに接続可能な機器に送信する。そして、サーバ通信デバイス609は、インターネット500やキャリア網700を介して、携帯電話100やカーナビゲーション装置200やパーソナルコンピュータ300やゲーム機や電子辞書や電子BOOKなどのネットワークに接続可能な機器から受信したデータを、CPU605に入力する。
コンテンツサーバ600のメモリ606あるいは固定ディスク615は、動画コンテンツを記憶する。コンテンツサーバ600のCPU605は、サーバ通信デバイス609を介して、第1の携帯電話100Aおよび第2の携帯電話100Bからコンテンツの指定を受信する。コンテンツサーバ600のCPU605は、コンテンツの指定に基づいて、当該指定に対応する動画コンテンツをメモリ606から読み出して、サーバ通信デバイス609を介して当該コンテンツを第1の携帯電話100Aおよび第2の携帯電話100Bへ送信する。動画コンテンツは、ストリーミングデータなどであって、コンテンツサーバ600は、同じコンテンツを、略同時に、第1の携帯電話100Aおよび第2の携帯電話100Bへと配信する。
<ネットワークシステム1における通信処理>
次に、本実施の形態に係るネットワークシステム1におけるP2P通信処理について説明する。図10は、本実施の形態に係るネットワークシステム1におけるP2P通信処理の処理手順を示すフローチャートである。図11は、本実施の形態に係る送信データのデータ構造を示すイメージ図である。
以下では、第1の携帯電話100Aが第2の携帯電話100Bへと手書きデータを送信する場合について説明する。なお、第1の携帯電話100Aと第2の携帯電話100Bとは、チャットルーム開設後、チャットサーバ400を介してデータを送受信してもよいし、チャットサーバ400を介さずにP2P通信によってデータを送受信してもよいものである。
図10を参照して、まず、第1の携帯電話100A(送信側)のCPU106は、通信デバイス101を介して、チャットサーバ400からチャット通信に関するデータを取得する(ステップS002)。同様に、第2の携帯電話100B(受信側)のCPU106も、通信デバイス101を介して、チャットサーバ400からチャット通信に関するデータを取得する(ステップS004)。
第1の携帯電話100AのCPU106は、通信デバイス101を介して、チャットサーバから動画コンテンツを特定するための動画情報(a)を取得する(ステップS006)。図11に示すように、動画情報(a)は、たとえば、TV番組を特定するための放送局コードや放送時間などを含む。あるいは、動画情報(a)は、動画の格納場所を示すURLなどを含む。本実施の形態においては、第1の携帯電話100Aおよび第2の携帯電話100Bの一方のCPU106が、通信デバイス101を介して、チャットサーバ400に、動画情報を送信する。
第1の携帯電話100Aと第2の携帯電話100Bの他方のCPU106が、通信デバイス101を介して、チャットサーバ400から動画情報を受信する(ステップS008)。なお、ここでは、第1の携帯電話100Aと第2の携帯電話100Bとが、チャット通信中に動画情報を取得する例を示したが、これに限られず、第1の携帯電話100Aと第2の携帯電話100Bとが、チャット通信前に、共通の動画情報を取得していてもよい。
第1の携帯電話100AのCPU106は、タッチパネル102に、動画コンテンツを再生するためのウインドウを表示させる(ステップS010)。同様に、第2の携帯電話100BのCPU106は、タッチパネル102に、動画コンテンツを再生するためのウインドウを表示させる(ステップS012)。
第1の携帯電話100AのCPU106は、動画情報に基づいて、通信デバイス101あるいはTVアンテナ113を介して、動画コンテンツ(たとえば、TV番組)を受信する。CPU106は、タッチパネル102を介して、動画コンテンツを再生し始める(ステップS014)。CPU106は、スピーカ109を介して、動画コンテンツの音声を出力してもよい。
第2の携帯電話100BのCPU106は、動画情報に基づいて、通信デバイス101あるいはTVアンテナ113を介して、第1の携帯電話100Aと同じ動画コンテンツを受信する。CPU106は、タッチパネル102を介して、動画コンテンツを再生し始める(ステップS016)。CPU106は、スピーカ109を介して、動画コンテンツの音声を出力してもよい。
第1の携帯電話100Aと第2の携帯電話100Bとは、手描き画像の入力を待ち受ける。まず、第1の携帯電話100AのCPU106が、タッチパネル102を介して、ユーザからの手書き画像の入力を受け付けた場合について説明する。(ステップS018)。より詳細には、CPU106は、所定時間毎にタッチパネル102から接触座標データを順次受け付けることにより、タッチパネル102に対する接触位置の変化(軌跡)を取得する。
図11に示すように、CPU106は、手書きクリア情報(b)と、接触位置の軌跡を示す情報(c)と、線の色を示す情報(d)と、線の幅を示す情報(e)と、入力タイミング情報(f)とを含む、送信データを作成する(ステップS020)。
なお、入力タイミング情報(f)は、たとえば、手書き画像の入力を受け付けたときに対応する、番組開始からの時間(ms)、あるいは番組のシーン番号やフレーム番号などを含む。換言すれば、入力タイミング情報(f)は、第1の携帯電話100Aおよび第2の携帯電話100Bにおいて手書き画像とともに表示すべき動画コンテンツのシーンやフレームなどを特定するための情報を含む。
手書きクリア情報(b)は、それまでに入力された手書きをクリアするための情報(true)または手書き入力を続行するための情報(false)を含む。
図4(A−1)に示すように、CPU106は、送信データに基づいて、ディスプレイ107に、動画コンテンツ上に(動画コンテンツに重畳させて)手書き画像を表示させる。
CPU106は、通信デバイス101を介して、第2の携帯電話100Bに、送信データを送信する(ステップS022)。第2の携帯電話100BのCPU106は、通信デバイス101を介して、第1の携帯電話100Aから送信データを受信する(ステップS024)。
なお、第1の携帯電話100Aは、送信データを、チャットサーバ400を介して、第2の携帯電話100Bへと送信してもよい。そして、チャットサーバ400は、第1の携帯電話100Aや第2の携帯電話100Bが送受信する送信データを蓄積してもよい。
第2の携帯電話100BのCPU106は、送信データを解析する(ステップS026)。図4(B−1)に示すように、CPU106は、送信データに基づいて、ディスプレイ107に動画コンテンツ上に(動画コンテンツに重畳させて)手書き画像を表示させる(ステップS028)。
次に、第2の携帯電話100BのCPU106が、タッチパネル102を介して、ユーザからの手書き画像の入力を受け付けた場合について説明する。(ステップS030)。より詳細には、CPU106は、所定時間毎にタッチパネル102から接触座標データを順次受け付けることにより、タッチパネル102に対する接触位置の変化(軌跡)を取得する。
図11に示すように、CPU106は、手書きクリア情報(b)と、接触位置の軌跡を示す情報(c)と、線の色を示す情報(d)と、線の幅を示す情報(e)とを含む、送信データを作成する(ステップS032)。手書きクリア情報(b)は、それまでに入力された手書きをクリアするための情報(true)または手書き入力を続行するための情報(false)を含む。
図4(B−3)に示すように、CPU106は、送信データに基づいて、ディスプレイ107に、動画コンテンツ上に(動画コンテンツに重畳させて)手書き画像を表示させる。
CPU106は、通信デバイス101を介して、第1の携帯電話100Aに、送信データを送信する(ステップS034)。第1の携帯電話100AのCPU106は、通信デバイス101を介して、第2の携帯電話100Bから送信データを受信する(ステップS036)。
第1の携帯電話100AのCPU106は、送信データを解析する(ステップS038)。図4(A−3)に示すように、CPU106は、送信データに基づいて、ディスプレイ107に動画コンテンツ上に(動画コンテンツに重畳させて)手書き画像を表示させる(ステップS040)。
第1の携帯電話100AのCPU106は、動画情報で特定される動画コンテンツの再生が終了すると、動画コンテンツ用のウインドウを閉じる(ステップS042)。第2の携帯電話100BのCPU106は、動画情報で特定される動画コンテンツの再生が終了すると、動画コンテンツ用のウインドウを閉じる(ステップS044)。
<携帯電話100における入力処理>
次に、本実施の形態に係る携帯電話100における入力処理について説明する。図12は、本実施の形態に係る携帯電話100における入力処理の処理手順を示すフローチャートである。
図12を参照して、CPU106は、まず、携帯電話100への入力が開始された際に、ペン情報の設定処理(ステップS200)を実行する。なお、ペン情報の設定処理(ステップS200)については後述する。
CPU106は、ペン情報の設定処理(ステップS200)が終了すると、データ(b)がtrueであるか否かを判断する(ステップS102)。データ(b)がtrueである場合(ステップS102にてYESである場合)、すなわちユーザが手描き画像をクリアするための命令を入力した場合、CPU106は、データ(b)をメモリ103に格納する(ステップS104)。CPU106は、入力処理を終了する。
データ(b)がtrueでない場合(ステップS102にてNOである場合)、すなわちユーザがクリアするための命令以外の命令を入力した場合、CPU106は、スタイラスペン120がタッチパネル102に接触したか否かを判断する(ステップS106)。すなわち、CPU106は、ペンダウンを検出したか否かを判断する。
ペンダウンを検出しなかった場合(ステップS106にてNOである場合)、CPU106は、スタイラスペン120のタッチパネル102に対する接触位置が変化したか否かを判断する(ステップS108)。すなわち、CPU106は、ペンドラッグを検出したか否かを判断する。CPU106は、ペンドラッグを検出しなかった場合(ステップS108にてNOである場合)、入力処理を終了する。
CPU106は、ペンダウンを検出した場合(ステップS106にてYESである場合)、あるいは、ペンドラッグを検出した場合(ステップS108にてYESである場合)、データ(b)に「false」を設定する(ステップS110)。CPU106は、手書き処理(ステップS300)を実行する。手書き処理(ステップS300)については後述する。
CPU106は、手書き処理(ステップS300)を終了すると、データ(b)、(c)、(d)、(e)、(f)をメモリ103に格納する(ステップS112)。CPU106は、入力処理を終了する。
<携帯電話100におけるペン情報の設定処理>
次に、本実施の形態に係る携帯電話100におけるペン情報の設定処理について説明する。図13は、本実施の形態に係る携帯電話100におけるペン情報の設定処理の処理手順を示すフローチャートである。
図13を参照して、CPU106は、タッチパネル102を介して、ユーザから手書き画像をクリアする(消去する、あるいはリセットする)ための命令を受け付けたか否かを判断する(ステップS202)。CPU106は、ユーザから手書き画像をクリアするための命令を受け付けた場合(ステップS202にてYESである場合)、データ(b)に「true」を設定する(ステップS204)。CPU106は、ステップS208からの処理を実行する。
CPU106は、ユーザから手書き画像をクリアするための命令を受け付けなかった場合(ステップS202にてNOである場合)、データ(b)に「false」を設定する(ステップS206)。ただし、ここでは、CPU106が「false」の設定を行わなくてもよい。
CPU106は、タッチパネル102を介して、ユーザからペンの色を変更するための命令を受け付けたか否かを判断する(ステップS208)。CPU106は、ユーザからペンの色を変更するための命令を受け付けなかった場合(ステップS208にてNOである場合)、ステップS212からの処理を実行する。
CPU106は、ユーザからペンの色を変更するための命令を受け付けた場合(ステップS208にてYESである場合)、データ(d)に変更後のペンの色を設定する(ステップS210)。CPU106は、タッチパネル102を介して、ユーザからペンの幅を変更するための命令を受け付けたか否かを判断する(ステップS212)。CPU106は、ユーザからペンの幅を変更するための命令を受け付けなかった場合(ステップS212にてNOである場合)、ペン情報の設定処理を終了する。
CPU106は、ユーザからペンの幅を変更するための命令を受け付けた場合(ステップS212にてYESである場合)、データ(e)に変更後のペンの幅を設定する(ステップS214)。CPU106は、ペン情報の設定処理を終了する。
<携帯電話100における手書き処理>
次に、本実施の形態に係る携帯電話100における手書き処理について説明する。図14は、本実施の形態に係る携帯電話100における手書き処理の処理手順を示すフローチャートである。
図14を参照して、CPU106は、図示しない時計を参照して、あるいは動画コンテンツを参照して、動画コンテンツが開始されてからの時間を取得する(ステップS302)。CPU106は、データ(f)に当該動画コンテンツが開始されてからの時間を設定する(ステップS304)。
CPU106は、タッチパネル102を介して、スタイラスペン120や指によるタッチパネル102に対する現在の接触座標(X,Y)を取得する(ステップS306)。CPU106は、データ(c)に「X,Y」を設定する(ステップS308)。
CPU106は、前回の座標の取得時(ステップS308)から所定時間が経過しているか否かを判断する(ステップS310)。CPU106は、所定時間が経過していない場合(ステップS310にてNOである場合)、ステップS310からの処理を繰り返す。CPU106は、所定時間が経過していた場合(ステップS310にてYESである場合)、タッチパネル102を介して、ペンドラッグを検出したか否かを判断する(ステップS312)。
CPU106は、ペンドラッグを検出した場合(ステップS312にてYESである場合)、タッチパネル102を介して、スタイラスペン120や指によるタッチパネル102に対する接触位置座標(X,Y)を取得する(ステップS316)。CPU106は、データ(c)に「:X,Y」を追加する(ステップS318)。CPU106は、手書き処理を終了する。
CPU106は、ペンドラッグを検出しなかった場合(ステップS312にてNOである場合)、ペンアップを検出したか否かを判断する(ステップS314)。CPU106は、ペンアップを検出しなかった場合(ステップS314にてNOである場合)、ステップS310からの処理を繰り返す。
CPU106は、ペンアップを検出した場合(ステップS314にてYESである場合)、タッチパネル102を介して、ペンアップ時におけるスタイラスペンのタッチパネル102に対する接触座標(X,Y)を取得する(ステップS316)。CPU106は、データ(c)に「:X,Y」を追加する(ステップS318)。CPU106は、手書き処理を終了する。
ここで、本実施の形態に係る手描き画像を示すデータ(c)について説明する。図15は、本実施の形態に係る手描き画像を示すデータ(c)を示すイメージ図である。
図14および図15を参照して、本実施の形態に係る表示装置は、1つの手描きストロークを示す情報として、複数の連続する所定期間毎のドラッグ開始座標とドラッグ終了座標とを送信する。すなわち、スタイラスペン120のタッチパネル102に対する一回のドラッグ操作(スライド操作)は、所定時間毎のスタイラスペン120のタッチパネル102に対する接触座標のグループとして表わされる。
たとえば、1回のドラッグ操作に関する接触座標が、(Cx1,Cy1)→(Cx2,Cy2)→(Cx3,Cy3)→(Cx4,Cy4)→(Cx5,Cy5)と変化する場合、第1の携帯電話100AのCPU106は以下のように動作する。CPU106は、最初の所定期間が経過した際、すなわち座標(Cx2,Cy2)を取得した際、通信デバイス101を用いて、送信データ(c)として(Cx1,Cy1:Cx2,Cy2)を第2の携帯電話100Bに送信する。さらに、所定期間が経過した際、CPU106は、すなわち座標(Cx3,Cy3)を取得した際、通信デバイス101を用いて、送信データ(c)として(Cx2,Cy2:Cx3,Cy3)を第2の携帯電話100Bに送信する。さらに、所定期間が経過した際、CPU106は、すなわち座標(Cx4,Cy4)を取得した際、通信デバイス101を用いて、送信データ(c)として(Cx3,Cy3:Cx4,Cy4)を第2の携帯電話100Bに送信する。さらに、所定期間が経過した際、CPU106は、すなわち座標(Cx5,Cy5)を取得した際、通信デバイス101を用いて、送信データ(c)として(Cx4,Cy4:Cx5,Cy5)を第2の携帯電話100Bに送信する。
<携帯電話100における表示処理>
次に、本実施の形態に係る携帯電話100における表示処理について説明する。図16は、本実施の形態に係る携帯電話100における表示処理の処理手順を示すフローチャートである。
図16を参照して、CPU106は、動画コンテンツの再生が終了したか否かを判断する(ステップS402)。CPU106は、動画コンテンツの再生が終了した場合(ステップS402にてYESである場合)、表示処理を終了する。
CPU106は、動画コンテンツの再生が終了していない場合(ステップS402にてNOである場合)、クリア情報clear(データ(b))を取得する(ステップS404)。CPU106は、クリア情報clearがtrueであるか否かを判断する(ステップS406)。CPU106は、クリア情報clearがtrueである場合(ステップS406にてYESである場合)、履歴作成処理(ステップS600)を実行する。履歴作成処理(ステップS600)については、後述する。
CPU106は、履歴作成処理(ステップS600)が終了すると、タッチパネル102を用いて、それまでに表示されていた手書き画像を非表示にする(ステップS408)。CPU106は、表示処理を終了する。
CPU106は、クリア情報clearがtrueでない場合(ステップS406にてNOである場合)、ペンの色(データ(d))を取得する(ステップS410)。CPU106は、ペンの色を設定し直す(ステップS412)。CPU106は、ペンの幅(データ(e))を取得する(ステップS414)。CPU106は、ペンの幅を設定し直す(ステップS416)。
CPU106は、手書き画像表示処理(ステップS500)を実行する。手書き画像表示処理(ステップS500)については後述する。CPU106は、手書き画像表示処理(ステップS500)が終了すると、表示処理を終了する。
<携帯電話100における表示処理の応用例>
次に、本実施の形態に係る携帯電話100における表示処理の応用例について説明する。図17は、本実施の形態に係る携帯電話100における表示処理の応用例の処理手順を示すフローチャートである。この応用例においては、携帯電話100は、クリア情報だけでなくシーンが切り換わった際にも、それまでに表示されている手書き画像をクリア(消去あるいはリセット)するものである。
図17を参照して、CPU106は、動画コンテンツの再生が終了したか否かを判断する(ステップS452)。CPU106は、動画コンテンツの再生が終了した場合(ステップS452にてYESである場合)、表示処理を終了する。
CPU106は、動画コンテンツの再生が終了していない場合(ステップS452にてNOである場合)、動画コンテンツのシーンが切り換わったか否かを判断する(ステップS454)。CPU106は、動画コンテンツのシーンが切り換わっていない場合(ステップS454にてNOである場合)、ステップS458からの処理を実行する。
CPU106は、動画コンテンツのシーンが切り換わった場合(ステップS454にてYESである場合)、履歴作成処理(ステップS600)を実行する。CPU106は、タッチパネル102を用いて、それまでに表示されていた手書き画像を非表示にする(ステップS456)。CPU106は、クリア情報clear(データ(b))を取得する(ステップS458)。
CPU106は、クリア情報clearがtrueであるか否かを判断する(ステップS460)。CPU106は、クリア情報clearがtrueである場合(ステップS460にてYESである場合)、履歴作成処理(ステップS600)を実行する。CPU106は、タッチパネル102を用いて、それまでに表示されていた手書き画像を非表示にする(ステップS462)。CPU106は、表示処理を終了する。
CPU106は、クリア情報clearがtrueでない場合(ステップS460にてNOである場合)、ペンの色(データ(d))を取得する(ステップS464)。CPU106は、ペンの色を設定し直す(ステップS466)。CPU106は、ペンの幅(データ(e))を取得する(ステップS468)。CPU106は、ペンの幅を設定し直す(ステップS470)。
CPU106は、手書き画像表示処理(ステップS500)を実行する。手書き画像表示処理(ステップS500)については後述する。CPU106は、表示処理を終了する。
<携帯電話100における手書き画像表示処理>
次に、本実施の形態に係る携帯電話100における手書き画像表示処理について説明する。図18は、本実施の形態に係る携帯電話100における手書き画像表示処理の処理手順を示すフローチャートである。
図18を参照して、CPU106は、動画コンテンツの再生開始からのデータ送信時までの再生時間time(データ(f))を取得する(ステップS502)。CPU106は、所定時間毎に、手書きストロークの頂点の座標(データ(c))、すなわち(Cx1,Cy1)および(Cx2,Cy2)を取得する(ステップS504)。
再生時間timeから現在までの間に動画コンテンツのシーンがチェンジしたか否かを判断する(ステップS506)。動画コンテンツのシーンがチェンジしなかった場合(ステップS506においてNOである場合)、CPU106は、座標(Cx1,Cy1)と座標(Cx2,Cy2)とを線で繋ぐことによって、動画コンテンツの表示領域(第1の領域102A)に手書きストロークを描画する(ステップS508)。CPU106は、手描き画像表示処理を終了する。
動画コンテンツのシーンがチェンジした場合(ステップS506においてYESである場合)、CPU106は、受信した手描きデータに対する再生時間timeよりも後の履歴作成時刻(データ(g))を有する履歴データのうちで、最も古い履歴データを検索する(ステップS510)。CPU106は、座標(Cx1,Cy1)と座標(Cx2,Cy2)とを線で繋ぐことによって、当該履歴作成時刻(データ(g))に対応する履歴データに手書きストロークの情報を追加する(ステップS512)。
CPU106は、タッチパネル102に表示されている当該履歴画像を更新する(ステップS514)。CPU106は、手描き画像表示処理を終了する。
<携帯電話100における第1の履歴作成処理>
次に、本実施の形態に係る携帯電話100における第1の履歴作成処理について説明する。図19は、本実施の形態に係る携帯電話100における第1の履歴作成処理の処理手順を示すフローチャートである。図20は、第1の履歴作成処理に係る履歴データを示すイメージ図である。図21は、第1の履歴作成処理に係る履歴情報のデータ構造を示す図である。
図19を参照して、CPU106は、動画コンテンツの表示領域(第1の領域102A)に、手描き画像が表示されているか否かを判断する(ステップS622)。手描き画像が表示されていない場合(ステップS622においてNOである場合)、CPU106は、第1の履歴作成処理を終了する。
図20(a)に示すように、手描き画像が表示されている場合(ステップS622においてYESである場合)、CPU106は、データ(g)に動画開始からの現時点までの時間を設定する(ステップS624)。図20(b)および(c)に示すように、CPU106は、動画コンテンツを構成するフレームのうち、現時点の直前のフレーム(静止画像)と表示中の手描き画像とを重ね合わせた履歴画像J(ペイントデータj)を作成する(ステップS626)。
CPU106は、作成した画像をメモリ103に格納する(ステップS628)。より詳細には、図21に示すように、CPU106は、履歴データを作成した時刻(データ(g))と、履歴画像J(ペイントデータj)とを対応付けて、履歴情報としてメモリ103に格納する。なお、履歴データを作成した時刻は、履歴画像Jがメモリ103に記憶された時刻を含む。あるいは、履歴データを作成した時刻は、動画コンテンツの最初から、履歴画像となるフレームが表示されるまで、のコンテンツ再生時間(コンテンツのスタート時点を基準とした時間軸上の時刻)を含む。あるいは、履歴データを作成した時刻は、動画コンテンツの最初から手描き画像をクリアするための命令が入力されるまでの時間、あるいは動画コンテンツの最初から今回シーンが切り換わるまでの時間を含む。
CPU106は、メモリ103の画像Jに基づいて、画像Jを縮小する(ステップS630)。
図20(d)に示すように、CPU106は、縮小された画像を、タッチパネル102の履歴領域(第2の領域102B)に表示させる(ステップS632)。CPU106は、第1の履歴作成処理を終了する。
<携帯電話100における第2の履歴作成処理>
次に、本実施の形態に係る携帯電話100における第2の履歴作成処理について説明する。図22は、本実施の形態に係る携帯電話100における第2の履歴作成処理の処理手順を示すフローチャートである。図23は、第2の履歴作成処理に係る履歴データを示すイメージ図である。図24は、第2の履歴作成処理に係る履歴情報のデータ構造を示す図である。
図22を参照して、CPU106は、動画コンテンツの表示領域(第1の領域102A)に、手描き画像が表示されているか否かを判断する(ステップS642)。手描き画像が表示されていない場合(ステップS642においてNOである場合)、CPU106は、第2の履歴作成処理を終了する。
図23(a)に示すように、手描き画像が表示されている場合(ステップS642においてYESである場合)、CPU106は、データ(g)に動画開始からの現時点までの時間を設定する(ステップS644)。図23(b)および(d)に示すように、CPU106は、動画コンテンツを構成するフレームのうちの現時点の直前のフレーム(画像H)を作成する(ステップS646)。図23(b)および(c)に示すように、CPU106は、手描きレイヤに基づいて、たとえば、白を透過色として設定することによって、表示中の手描き画像Iを作成する(ステップS648)。
CPU106は、作成した動画コンテンツの画像Hと手描き画像Iとをメモリ103に格納する(ステップS650)。より詳細には、図24に示すように、CPU106は、履歴データを作成した時刻(データ(g))と、動画コンテンツの画像H(ペイントデータh)と、手描き画像I(ペイントデータi)とを対応付けて、履歴情報としてメモリ103に格納する。なお、履歴データを作成した時刻は、履歴画像Jがメモリ103に記憶された時刻を含む。あるいは、履歴データを作成した時刻は、動画コンテンツの最初から、履歴画像となるフレームが表示されるまで、のコンテンツ再生時間(コンテンツのスタート時点を基準とした時間軸上の時刻)を含む。あるいは、履歴データを作成した時刻は、動画コンテンツの最初から手描き画像をクリアするための命令が入力されるまでの時間、あるいは動画コンテンツの最初から今回シーンが切り換わるまでの時間を含む。
図23(e)に示すように、CPU106は、メモリ103の動画コンテンツの画像Hと画像Iとを合成して、画像Jを作成する(ステップS652)。CPU106は、画像Jを縮小する(ステップS654)。
図23(f)に示すように、CPU106は、縮小された画像を、タッチパネル102の履歴領域(第2の領域)に表示させる(ステップS656)。CPU106は、第2の履歴作成処理を終了する。
<携帯電話100における第3の履歴作成処理>
次に、本実施の形態に係る携帯電話100における第3の履歴作成処理について説明する。図25は、本実施の形態に係る携帯電話100における第3の履歴作成処理の処理手順を示すフローチャートである。図26は、第3の履歴作成処理に係る履歴データを示すイメージ図である。図27は、第3の履歴作成処理に係る履歴情報のデータ構造を示す図である。
図25を参照して、CPU106は、動画コンテンツの表示領域(第1の領域102A)に、手描き画像が表示されているか否かを判断する(ステップS662)。手描き画像が表示されていない場合(ステップS662においてNOである場合)、CPU106は、第3の履歴作成処理を終了する。
図26(a)に示すように、手描き画像が表示されている場合(ステップS662においてYESである場合)、CPU106は、データ(g)に動画開始からの現時点までの時間を設定する(ステップS664)。図26(b)および(c)に示すように、CPU106は、動画コンテンツを構成するフレームのうちの現時点の直前のフレーム(画像H)を作成する(ステップS666)。CPU106は、表示中の手描き画像を表わすドローデータ(データ(c)〜(f)の組み合わせ)を作成する(ステップS668)。
CPU106は、作成した動画コンテンツの画像Hとドローデータとをメモリ103に格納する(ステップS670)。より詳細には、図27に示すように、CPU106は、履歴データを作成した時刻(データ(g))と、動画コンテンツの画像H(ペイントデータh)と、ドローデータ(複数のデータ群(c)〜(f)のセット)とを対応付けて、メモリ103に格納する。なお、履歴データを作成した時刻は、履歴画像Jがメモリ103に記憶された時刻を含む。あるいは、履歴データを作成した時刻は、動画コンテンツの最初から、履歴画像となるフレームが表示されるまで、のコンテンツ再生時間(コンテンツのスタート時点を基準とした時間軸上の時刻)を含む。あるいは、履歴データを作成した時刻は、動画コンテンツの最初から手描き画像をクリアするための命令が入力されるまでの時間、あるいは動画コンテンツの最初から今回シーンが切り換わるまでの時間を含む。
CPU106は、メモリ103の手描き画像を削除する(ステップS672)。図26(d)に示すように、CPU106は、ドローデータ(k)から手描き画像Iを作成し、メモリ103の動画コンテンツの画像Hと手描き画像Iとを合成することによって、画像Jを作成する(ステップS674)。CPU106は、画像Jを縮小する(ステップS676)。
図26(e)に示すように、CPU106は、縮小された画像を、タッチパネル102の履歴領域(第2の領域102B)に表示させる(ステップS678)。CPU106は、第3の履歴作成処理を終了する。
[実施の形態2]
次に、本発明の実施の形態2について説明する。上述の実施の形態1に係るネットワークシステム1では、表示装置の各々が、手描き画像が入力されたときに表示されているシーンあるいは手書き画像を受信したときに表示されているシーンに関する履歴情報のみを記憶するものであった。換言すれば、表示装置は、手描き画像が入力されず、かつ、手描き画像を受信しなかったシーンに関する動画のフレームを、当該シーンが終了するときに削除していた。
これは、手描き画像が入力されていないにもかかわらずシーン毎に全ての動画フレームを記憶すると、多量のメモリが必要になるからである。また、全ての動画フレームを表示することまでは、ユーザから求められていないからである。また、全ての動画フレームを表示したり記憶したりすると、ユーザや表示装置にとって、ユーザが実際に必要とする履歴情報を見つけ出すことが困難になるからである。
しかしながら、動画フレームが表示装置から削除された後に、当該表示装置が他の表示装置から当該動画フレームに対応するシーン中に入力された手書き画像を受信する可能性がある。この場合、表示装置は、もはや、当該手描き画像と当該動画フレームとを重畳させて表示させることができない。このような不具合は、たとえば、表示装置間のネットワークに障害が生じたときや、当該ネットワークが混雑しているときに、発生し易い。
本実施の形態に係るネットワークシステム1では、表示装置の各々が、シーンの表示中に、当該表示装置に手描き画像が入力されなくとも、また当該表示装置が手書き画像を受信しなくとも、それぞれのシーンの最後のフレームを表す画像データを一時的に記憶する。たとえば、表示装置の各々は、10シーン分の最終フレームを表わす画像データを一時情報としてメモリ103に記憶する。そして、表示装置の各々は、各々のシーンの最終フレームを表わす画像データを、当該シーンの10シーン後までに当該シーンに対応する手描き画像を他の表示装置から受信しなかった場合に、削除する。
なお、実施の形態1に係るネットワークシステム1と同様の構成については、説明を繰り返さない。たとえば、図1のネットワークシステム1の全体構成や、図2および3のネットワークシステム1の全体的な動作概要や、図4の手書きデータの送受信に関する動作概要、図5〜7の携帯電話100のハードウェア構成や、図8および9のチャットサーバ400およびコンテンツサーバ600のハードウェア構成、図10のネットワークシステム1におけるP2P通信処理、図11の送信データのデータ構造、図12の携帯電話における入力処理、図13のペン情報の設定処理、図14の手書き処理、図15の手描き画像を示すデータ、図16の表示処理、図17の表示処理の応用例などは、本実施の形態に係るそれらと同様であるため、ここでは説明を繰り返さない。
ただし、図4に関しては、本実施の形態は、以下のような特徴を有する。本実施の形態においては、(B−3)に示すように第2の携帯電話100Bに手描き画像が入力されず、ネットワーク障害が生じている間に(A−4)に示すように第1の携帯電話100Aに手描き画像が入力されたとしても、第2の携帯電話100Bは、(B−5)に示すように、第1の携帯電話100Aに入力された手書き画像を履歴情報として表示することができる。
本実施の形態においては、第2の携帯電話100Bは、(B−3)に示すようにシーン中に第2の携帯電話100Bに手描き画像が入力されなくても、当該シーンの最終フレームを一時情報として記憶している。そのため、(B−5)に示すように次のシーンへと切り換わった後に、第1の携帯電話100Aからの手描き画像を受信したとしても、当該一時情報と当該手書き画像とに基づいて、当該前のシーンの最終フレームと当該手描き画像とを履歴情報として記憶したり、表示したりすることができる。
<携帯電話100における手書き画像表示処理>
次に、本実施の形態に係る携帯電話100における手書き画像表示処理について説明する。図28は、本実施の形態に係る携帯電話100における手書き画像表示処理の処理手順を示すフローチャートである。
図28を参照して、CPU106は、動画コンテンツの再生開始からのデータ送信時までの再生時間time(データ(f))を取得する(ステップS702)。CPU106は、所定時間毎に、手書きストロークの頂点の座標(データ(c))、すなわち(Cx1,Cy1)および(Cx2,Cy2)を取得する(ステップS704)。
再生時間timeから現在までの間に動画コンテンツのシーンがチェンジしたか否かを判断する(ステップS706)。動画コンテンツのシーンがチェンジしなかった場合(ステップS706においてNOである場合)、CPU106は、座標(Cx1,Cy1)と座標(Cx2,Cy2)とを線で繋ぐことによって、動画コンテンツの表示領域(第1の領域102A)に手書きストロークを描画する(ステップS708)。CPU106は、手描き画像表示処理を終了する。
動画コンテンツのシーンがチェンジした場合(ステップS706においてYESである場合)、CPU106は、受信した手描きデータに対する再生時間timeよりも後の履歴作成時刻(データ(g))を有する履歴データのうちで、最も新しい履歴データを検索する(ステップS710)。当該最も新しい履歴データが存在する場合(ステップS712においてYESである場合)、CPU106は、座標(Cx1,Cy1)と座標(Cx2,Cy2)とを線で繋ぐことによって、当該履歴データに手書きストロークの情報を追加する(ステップS724)。
当該最も新しい履歴データが存在しない場合(ステップS712においてNOである場合)、CPU106は、受信した手描きデータに対する再生時間timeよりも後の履歴作成時刻(データ(g))を有するテンポラリ履歴データのうちで、最も新しいテンポラリ履歴データを検索する(ステップS716)。当該テンポラリ履歴データが存在しない場合(ステップS718においてNOである場合)、CPU106は、履歴作成時刻をtimeとした白紙の履歴データを作成する(ステップS720)。CPU106は、ステップS722の処理を実行する。
当該テンポラリ履歴データが存在する場合(ステップS718においてYESである場合)、当該テンポラリ履歴データを新たな履歴データとして、既存の履歴データに追加する(ステップS722)。CPU106は、座標(Cx1,Cy1)と座標(Cx2,Cy2)とを線で繋ぐことによって、当該新たな履歴データに手書きストロークの情報を追加する(ステップS724)。
CPU106は、当該新たな履歴データと先の履歴データとに基づいて、履歴画像をタッチパネル102に表示させる(ステップS726)。CPU106は、手描き画像表示処理を終了する。
<携帯電話100における第1の履歴作成処理>
次に、本実施の形態に係る携帯電話100における第1の履歴作成処理について説明する。図29は、本実施の形態に係る携帯電話100における第1の履歴作成処理の処理手順を示すフローチャートである。
図29と図20(a)とに示すように、CPU106は、データ(g)に動画開始からの現時点までの時間を設定する(ステップS822)。図20(b)および(c)に示すように、CPU106は、動画コンテンツを構成するフレームのうち、現時点の直前のフレーム(静止画像)と表示中の手描き画像とを重ね合わせた履歴画像J(ペイントデータj)を作成する(ステップS824)。
CPU106は、作成した画像を、メモリ103に格納する(ステップS826)。より詳細には、図21に示すように、CPU106は、履歴データを作成した時刻(データ(g))と、履歴画像J(ペイントデータj)とを対応付けて、履歴情報としてメモリ103に格納する。なお、履歴データを作成した時刻は、履歴画像Jがメモリ103に記憶された時刻を含む。あるいは、履歴データを作成した時刻は、動画コンテンツの最初から、履歴画像となるフレームが表示されるまで、のコンテンツ再生時間(コンテンツのスタート時点を基準とした時間軸上の時刻)を含む。あるいは、履歴データを作成した時刻は、動画コンテンツの最初から手描き画像をクリアするための命令が入力されるまでの時間、あるいは動画コンテンツの最初から今回シーンが切り換わるまでの時間を含む。
CPU106は、画像Jに手描き画像が含まれるか否かを判断する(ステップS828)。画像Jに手描き画像が含まれる場合(ステップS828においてYESである場合)、図20(d)に示すように、CPU106は、メモリ103の画像Jに基づいて、画像Jを縮小する(ステップS830)。CPU106は、縮小された画像を、履歴データとして、メモリ103に格納する。
図20(e)に示すように、CPU106は、縮小された画像を、タッチパネル102の履歴領域(第2の領域102B)に表示させる(ステップS832)。CPU106は、第1の履歴作成処理を終了する。
画像Jに手描き画像が含まれない場合(ステップS828においてNOである場合)、CPU106は、テンポラリ履歴データの個数が規定数以上であるか否かを判断する(ステップS834)。CPU106は、テンポラリ履歴データの個数が規定数以上である場合(ステップS834においてYESである場合)、メモリ103から最も古いテンポラリ履歴データを削除して(ステップS836)、作成した画像をテンポラリ履歴データに追加する(ステップS838)。CPU106は、第1の履歴作成処理を終了する。
CPU106は、テンポラリ履歴データの個数が規定数未満である場合(ステップS834においてNOである場合)、作成した画像をテンポラリ履歴データに追加する(ステップS838)。CPU106は、第1の履歴作成処理を終了する。
<携帯電話100における第2の履歴作成処理>
次に、本実施の形態に係る携帯電話100における第2の履歴作成処理について説明する。図30は、本実施の形態に係る携帯電話100における第2の履歴作成処理の処理手順を示すフローチャートである。
図30および図23(a)に示すように、CPU106は、データ(g)に動画開始からの現時点までの時間を設定する(ステップS842)。図23(b)および(d)に示すように、CPU106は、動画コンテンツを構成するフレームのうちの現時点の直前のフレーム(画像H)を作成する(ステップS844)。
CPU106は、作成した動画コンテンツの画像Hを、メモリ103に格納する(ステップS846)。より詳細には、CPU106は、動画コンテンツの画像Hを作成した時刻(データ(g))と、動画コンテンツの画像H(ペイントデータh)とを対応付けて、メモリ103に格納する。
CPU106は、動画上に手描き画像が存在するか否かを判断する(ステップS848)。動画上に手描き画像が存在する場合(ステップS848においてYESである場合)、図23(b)および(c)に示すように、CPU106は、手描きレイヤに基づいて、たとえば、白を透過色として設定することによって、表示中の手描き画像Iを作成する(ステップS850)。
CPU106は、作成した動画コンテンツの画像Hと手描き画像Iとを対応付けてメモリ103に格納する(ステップS852)。より詳細には、図24に示すように、CPU106は、履歴データを作成した時刻(データ(g))と、動画コンテンツの画像H(ペイントデータh)と、手描き画像I(ペイントデータi)とを対応付けて、履歴情報としてメモリ103に格納する。なお、履歴データを作成した時刻は、履歴画像Jがメモリ103に記憶された時刻を含む。あるいは、履歴データを作成した時刻は、動画コンテンツの最初から、履歴画像となるフレームが表示されるまで、のコンテンツ再生時間(コンテンツのスタート時点を基準とした時間軸上の時刻)を含む。あるいは、履歴データを作成した時刻は、動画コンテンツの最初から手描き画像をクリアするための命令が入力されるまでの時間、あるいは動画コンテンツの最初から今回シーンが切り換わるまでの時間を含む。
図23(e)に示すように、CPU106は、メモリ103の動画コンテンツの画像Hと画像Iとを合成して、画像Jを作成する(ステップS854)。CPU106は、画像Jを縮小する(ステップS856)。
図23(f)に示すように、CPU106は、縮小された画像を、タッチパネル102の履歴領域(第2の領域)に表示させる(ステップS858)。CPU106は、第2の履歴作成処理を終了する。
一方、動画上に手描き画像が存在しない場合(ステップS848においてNOである場合)、CPU106は、テンポラリ履歴データの個数が規定数以上であるか否かを判断する(ステップS860)。CPU106は、テンポラリ履歴データの個数が規定数以上である場合(ステップS860においてYESである場合)、メモリ103から最も古いテンポラリ履歴データを削除して(ステップS862)、作成した画像をテンポラリ履歴データに追加する(ステップS864)。CPU106は、第2の履歴作成処理を終了する。
CPU106は、テンポラリ履歴データの個数が規定数未満である場合(ステップS860においてNOである場合)、作成した画像をテンポラリ履歴データに追加する(ステップS864)。CPU106は、第2の履歴作成処理を終了する。
<携帯電話100における第3の履歴作成処理>
次に、本実施の形態に係る携帯電話100における第3の履歴作成処理について説明する。図31は、本実施の形態に係る携帯電話100における第3の履歴作成処理の処理手順を示すフローチャートである。
図31および図26(a)に示すように、CPU106は、データ(g)に動画開始からの現時点までの時間を設定する(ステップS872)。図26(b)および(c)に示すように、CPU106は、動画コンテンツを構成するフレームのうちの現時点の直前のフレーム(画像H)を作成する(ステップS874)。
CPU106は、作成した動画コンテンツの画像Hを、メモリ103に格納する(ステップS876)。より詳細には、CPU106は、動画コンテンツの画像Hを作成した時刻(データ(g))と、動画コンテンツの画像H(ペイントデータh)とを対応付けて、メモリ103に格納する。
CPU106は、動画上に手描き画像が存在するか否かを判断する(ステップS878)。動画上に手描き画像が存在する場合(ステップS878においてYESである場合)、CPU106は、表示中の手描き画像を表わすドローデータ(データ(c)〜(f)の組み合わせ)を作成する(ステップS880)。
CPU106は、作成した動画コンテンツの画像Hとドローデータとをメモリ103に格納する(ステップS882)。より詳細には、図27に示すように、CPU106は、履歴データを作成した時刻(データ(g))と、動画コンテンツの画像H(ペイントデータh)と、ドローデータ(複数のデータ群(c)〜(f)のセット)とを対応付けて、メモリ103に格納する。なお、履歴データを作成した時刻は、履歴画像Jがメモリ103に記憶された時刻を含む。あるいは、履歴データを作成した時刻は、動画コンテンツの最初から、履歴画像となるフレームが表示されるまで、のコンテンツ再生時間(コンテンツのスタート時点を基準とした時間軸上の時刻)を含む。あるいは、履歴データを作成した時刻は、動画コンテンツの最初から手描き画像をクリアするための命令が入力されるまでの時間、あるいは動画コンテンツの最初から今回シーンが切り換わるまでの時間を含む。
CPU106は、メモリ103の手描き画像を削除する(ステップS884)。図26(d)に示すように、CPU106は、ドローデータ(k)から手描き画像Iを作成し、メモリ103の動画コンテンツの画像Hと手描き画像Iとを合成することによって、画像Jを作成する(ステップS886)。CPU106は、画像Jを縮小する(ステップS888)。
図26(e)に示すように、CPU106は、縮小された画像を、タッチパネル102の履歴領域(第2の領域102B)に表示させる(ステップS890)。CPU106は、第3の履歴作成処理を終了する。
一方、動画上に手描き画像が存在しない場合(ステップS878においてNOである場合)、CPU106は、テンポラリ履歴データの個数が規定数以上であるか否かを判断する(ステップS892)。CPU106は、テンポラリ履歴データの個数が規定数以上である場合(ステップS892においてYESである場合)、メモリ103から最も古いテンポラリ履歴データを削除して(ステップS894)、作成した画像をテンポラリ履歴データに追加する(ステップS896)。CPU106は、第3の履歴作成処理を終了する。
CPU106は、テンポラリ履歴データの個数が規定数未満である場合(ステップS892においてNOである場合)、作成した画像をテンポラリ履歴データに追加する(ステップS896)。CPU106は、第3の履歴作成処理を終了する。
<本実施の形態に係るネットワークシステム1のその他の適用例>
本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。そして、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の効果を享受することが可能となる。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード(ICメモリカード)、ROM(マスクROM、フラッシュEEPROMなど)などを用いることができる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。