(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024118633
(43)【公開日】2024-09-02
(54)【発明の名称】画像処理装置、画像処理プログラム、及び、画像処理方法
(51)【国際特許分類】
G06T 15/04 20110101AFI20240826BHJP
H04N 5/278 20060101ALI20240826BHJP
G10K 15/04 20060101ALN20240826BHJP
【FI】
G06T15/04
H04N5/278
G10K15/04 302D
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023025019
(22)【出願日】2023-02-21
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】100157118
【弁理士】
【氏名又は名称】南 義明
(72)【発明者】
【氏名】牛山 建太郎
【テーマコード(参考)】
5B080
5C023
5D208
【Fターム(参考)】
5B080AA13
5B080BA02
5B080BA04
5B080CA01
5B080CA03
5B080FA05
5B080FA08
5B080GA22
5C023AA18
5C023CA01
5C023CA05
5D208CE02
(57)【要約】
【課題】GPU(Graphics Processing Unit)を使用したテロップ再生を実現する。
【解決手段】
CPU(Central Processing Unit)と、GPU(Graphics Processing Unit)と、GPUがアクセスする記憶部を備え、テロップデータを再生する画像処理装置であって、テロップデータは、テロップの各断片の表示位置を示す頂点データと、テロップの各断片に貼り付けられるテクスチャデータと、を含み、テロップ形成プログラムを記憶部に送信する第1送信処理と、テロップデータを記憶部に送信する第2送信処理と、コンテンツデータを再生するコンテンツ再生処理と、をCPUに実行させ、テロップ形成プログラムに基づき、コンテンツデータの再生に同期して、テロップデータに基づく表示を行うテロップ再生処理をGPUに実行させる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
CPU(Central Processing Unit)と、GPU(Graphics Processing Unit)と、GPUがアクセスする記憶部を備え、テロップデータを再生する画像処理装置であって、
テロップデータは、
テロップの各断片の表示位置を示す頂点データと、
テロップの各断片に貼り付けられるテクスチャデータと、を含み、
テロップ形成プログラムを記憶部に送信する第1送信処理と、テロップデータを記憶部に送信する第2送信処理と、コンテンツデータを再生するコンテンツ再生処理と、をCPUに実行させ、
テロップ形成プログラムに基づき、コンテンツデータの再生に同期して、テロップデータに基づく表示を行うテロップ再生処理をGPUに実行させる
画像処理装置。
【請求項2】
テロップ形成プログラムは、頂点シェーダープログラムとピクセルシェーダープログラムを含む
請求項1に記載の画像処理装置。
【請求項3】
第1送信処理は、異なるテロップ形成プログラムを送信可能とする
請求項1に記載の画像処理装置。
【請求項4】
第1送信処理は、コンテンツ再生処理で再生するコンテンツデータに対応したテロップ形成プログラムを送信する
請求項1に記載の画像処理装置。
【請求項5】
第1送信処理は、ユーザにより選択されたテロップ形成プログラムを送信する
請求項1に記載の画像処理装置。
【請求項6】
テロップデータは、GPUで取り扱われるデータ次元配列で構成され、少なくとも各断片のタイミングを規定した参照データを含む
請求項1に記載の画像処理装置。
【請求項7】
CPUは、コンテンツデータの再生位置をGPUに送信する第3送信処理を実行し、
GPUは、CPUから送信される再生位置と、参照データで規定される各断片のタイミングに基づいて、テロップ再生処理を実行する
請求項6に記載の画像処理装置。
【請求項8】
参照データで規定されるタイミングは、各断片の開始時間と終了時間とを含む
請求項7に記載の画像処理装置。
【請求項9】
CPU(Central Processing Unit)と、GPU(Graphics Processing Unit)と、GPUがアクセスする記憶部を備えた情報処理装置で実行される画像処理プログラムであって、
テロップデータは、
テロップの各断片の表示位置を示す頂点データと、
テロップの各断片に貼り付けられるテクスチャデータと、を含み、
テロップ形成プログラムを記憶部に送信する第1送信処理と、テロップデータを記憶部に送信する第2送信処理と、コンテンツデータを再生するコンテンツ再生処理と、をCPUに実行させ、
テロップ形成プログラムに基づき、コンテンツデータの再生に同期して、テロップデータに基づく表示を行うテロップ再生処理をGPUに実行させる
画像処理プログラム
【請求項10】
CPU(Central Processing Unit)と、GPU(Graphics Processing Unit)と、GPUがアクセスする記憶部を備えた情報処理装置で実行される画像処理方法であって、
テロップデータは、
テロップの各断片の表示位置を示す頂点データと、
テロップの各断片に貼り付けられるテクスチャデータと、を含み、
テロップ形成プログラムを記憶部に送信する第1送信処理と、テロップデータを記憶部に送信する第2送信処理と、コンテンツデータを再生するコンテンツ再生処理と、をCPUに実行させ、
テロップ形成プログラムに基づき、コンテンツデータの再生に同期して、テロップデータに基づく表示を行うテロップ再生処理をGPUに実行させる
画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理プログラム、及び、画像処理方法に関する。
【背景技術】
【0002】
近年、各種情報処理装置の画像形成にGPU(Graphics Processing Unit)を積極的に使う開発手法が一般的となっている。GPUは、リアルタイム画像処理に特化した演算装置、あるいはプロセッサのことであり、並列的な演算処理を得意とし、CPU(Central Processing Unit)の数倍~100倍以上の演算速度を実現することができる。
【0003】
特許文献1には、一つの画面を映像表示領域(TVなどの映像)と、情報表示領域(病院でよく使われる待ち時間や呼び出し番号)と、テロップ表示領域(広告)とに分割する。テロップ表示領域は、テキスト広告のような静的な情報を表示する領域である。ラスタ形式に変換した画像を表示することで、GPUによる処理が容易にできるため、テロップがギクシャクすることなくスムーズに表示できることが記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載の発明では、テロップは、テロップ表示領域に表示することしかできず、自由なレイアウト、自由な表現でテロップを表示することはできない。
【0006】
また、各種情報処理装置では、機能の追加、向上に伴い、CPUにおける処理負荷が大きくなっている。カラオケ装置等、テロップを扱う処理装置において、テロップに関する処理をCPUで行わせた場合、CPUでの処理資源が削減されることが考えられる。
【0007】
本発明は、このような状況を鑑みたものであり、テロップに関する画像処理をGPUで実行させることで、GPU処理を使用した多様なテロップ表現を可能とすることを1つの目的とするものである。また、テロップに関する画像処理を効率的に行い、CPUでの処理削減を図ることを1つの目的とするものである。
【課題を解決するための手段】
【0008】
そのため、本発明に係る画像処理装置は以下の構成を採用するものである。
CPU(Central Processing Unit)と、GPU(Graphics Processing Unit)と、GPUがアクセスする記憶部を備え、テロップデータを再生する画像処理装置であって、
テロップデータは、
テロップの各断片の表示位置を示す頂点データと、
テロップの各断片に貼り付けられるテクスチャデータと、を含み、
テロップ形成プログラムを記憶部に送信する第1送信処理と、テロップデータを記憶部に送信する第2送信処理と、コンテンツデータを再生するコンテンツ再生処理と、をCPUに実行させ、
テロップ形成プログラムに基づき、コンテンツデータの再生に同期して、テロップデータに基づく表示を行うテロップ再生処理をGPUに実行させる。
【0009】
さらに本発明に係る画像処理装置において、
テロップ形成プログラムは、頂点シェーダープログラムとピクセルシェーダープログラムを含む。
【0010】
さらに本発明に係る画像処理装置において、
第1送信処理は、異なるテロップ形成プログラムを送信可能とする。
【0011】
さらに本発明に係る画像処理装置において、
第1送信処理は、コンテンツ再生処理で再生するコンテンツデータに対応したテロップ形成プログラムを送信する。
【0012】
さらに本発明に係る画像処理装置において、
第1送信処理は、ユーザにより選択されたテロップ形成プログラムを送信する。
【0013】
さらに本発明に係る画像処理装置において、
テロップデータは、GPUで取り扱われるデータ次元配列で構成され、少なくとも各断片のタイミングを規定した参照データを含む。
【0014】
さらに本発明に係る画像処理装置において、
CPUは、コンテンツデータの再生位置をGPUに送信する第3送信処理を実行し、
GPUは、CPUから送信される再生位置と、参照データで規定される各断片のタイミングに基づいて、テロップ再生処理を実行する。
【0015】
さらに本発明に係る画像処理装置において、
参照データで規定されるタイミングは、各断片の開始時間と終了時間とを含む。
【0016】
また本発明に係る画像処理プログラムは、
CPU(Central Processing Unit)と、GPU(Graphics Processing Unit)と、GPUがアクセスする記憶部を備えた情報処理装置で実行される画像処理プログラムであって、
テロップデータは、
テロップの各断片の表示位置を示す頂点データと、
テロップの各断片に貼り付けられるテクスチャデータと、を含み、
テロップ形成プログラムを記憶部に送信する第1送信処理と、テロップデータを記憶部に送信する第2送信処理と、コンテンツデータを再生するコンテンツ再生処理と、をCPUに実行させ、
テロップ形成プログラムに基づき、コンテンツデータの再生に同期して、テロップデータに基づく表示を行うテロップ再生処理をGPUに実行させる。
【0017】
また本発明に係る画像処理方法は、
CPU(Central Processing Unit)と、GPU(Graphics Processing Unit)と、GPUがアクセスする記憶部を備えた情報処理装置で実行される画像処理方法であって、
テロップデータは、
テロップの各断片の表示位置を示す頂点データと、
テロップの各断片に貼り付けられるテクスチャデータと、を含み、
テロップ形成プログラムを記憶部に送信する第1送信処理と、テロップデータを記憶部に送信する第2送信処理と、コンテンツデータを再生するコンテンツ再生処理と、をCPUに実行させ、
テロップ形成プログラムに基づき、コンテンツデータの再生に同期して、テロップデータに基づく表示を行うテロップ再生処理をGPUに実行させる。
【0018】
また本発明は、以下に記載する他の形態を採用することも可能である。
他の形態に係る画像形成装置は、
CPU(Central Processing Unit)と、GPU(Graphics Processing Unit)と、GPUがアクセスする記憶部を備え、テロップデータを再生する画像処理装置であって、
テロップデータは、
テロップの各断片の表示位置を示す頂点データと、
テロップの各断片に貼り付けられるテクスチャデータと、
GPUで取り扱われるデータ次元配列で構成され、少なくとも各断片のタイミングを規定した参照データを含み、
CPUは、
テロップデータを記憶部に送信する送信処理と、
コンテンツデータを再生するコンテンツ再生処理と、を実行し、
GPUは、
テロップデータに基づきテロップを再生するテロップ再生処理を実行し、
テロップ再生処理は、参照データで規定されるタイミング、コンテンツ再生処理に同期して行われる。
【0019】
さらに他の形態に係る画像処理装置において、
CPUは、コンテンツデータに対応するテロップ元データから、テクスチャデータ中の頂点データ、テクスチャデータ、参照データの少なくとも1つを生成する。
【0020】
さらに他の形態に係る画像処理装置において、
参照データで規定される各断片のタイミングは、各断片の開始時間と終了時間とを含む。
【0021】
さらに他の形態に係る画像処理装置において、
参照データで規定される各断片のタイミングは、さらに、前の断片の終了時間と、次の断片の開始時間を含む。
【0022】
さらに他の形態に係る画像処理装置において、
参照データは、複数の断片を含んで構成された断片集合体のタイミングを規定する。
【0023】
さらに他の形態に係る画像処理装置において、
参照データで規定される断片集合体のタイミングは、断片集合体の開始時間と終了時間とを含む。
【0024】
さらに他の形態に係る画像処理装置において、
参照データは、各断片の位置情報を含み、
テロップ再生処理は、参照データで規定される位置情報に基づいて、テロップを再生する。
【0025】
さらに他の形態に係る画像処理装置において、
参照データで規定される各断片の位置情報は、各断片の平面上の範囲を示す矩形情報を含む。
【0026】
さらに他の形態に係る画像処理装置において、
参照データは、複数の断片を含んで構成された断片集合体の位置情報を規定する。
【0027】
さらに他の形態に係る画像処理装置において、
参照データで規定される断片集合体の位置情報は、断片集合体の平面上の範囲を示す矩形情報を含む。
【0028】
また他の形態に係る画像処理プログラムは、
CPU(Central Processing Unit)と、GPU(Graphics Processing Unit)と、GPUがアクセスする記憶部を備えた情報処理装置で実行される画像処理プログラムであって、
テロップデータは、
テロップの各断片の表示位置を示す頂点データと、
テロップの各断片に貼り付けられるテクスチャデータと、
GPUで取り扱われるデータ次元配列で構成され、少なくとも各断片のタイミングを規定した参照データを含み、
テロップデータを記憶部に送信する送信処理と、コンテンツデータを再生するコンテンツ再生処理と、CPUに実行させ、
テロップデータに基づきテロップを再生するテロップ再生処理をGPUに実行させ、
テロップ再生処理は、参照データで規定されるタイミングに基づいて、コンテンツ再生処理に同期して行われる。
【0029】
また他の形態に係る画像処理方法は、
CPU(Central Processing Unit)と、GPU(Graphics Processing Unit)と、GPUがアクセスする記憶部を備えた情報処理装置で実行される画像処理方法であって、
テロップデータは、
テロップの各断片の表示位置を示す頂点データと、
テロップの各断片に貼り付けられるテクスチャデータと、
GPUで取り扱われるデータ次元配列で構成され、少なくとも各断片のタイミングを規定した参照データを含み、
テロップデータを記憶部に送信する送信処理と、コンテンツデータを再生するコンテンツ再生処理と、CPUに実行させ、
テロップデータに基づきテロップを再生するテロップ再生処理をGPUに実行させ、
テロップ再生処理は参照データで規定されるタイミング、コンテンツ再生処理に同期して行われる。
【発明の効果】
【0030】
本発明によれば、GPU処理を使用した多様なテロップ表現を容易に行うことが可能となる。また、テロップに関する画像処理をGPUで行わせることが可能となり、CPUでの処理削減を図ることが可能となる。
【図面の簡単な説明】
【0031】
【
図1】本実施形態のカラオケシステムの構成を示す図
【
図3】本実施形態のテクスチャデータの形成を説明するための図
【
図5】本実施形態のインデックスデータの概念を説明するための図
【
図7】本実施形態の画面上でのテロップ形成例を示す図
【発明を実施するための形態】
【0032】
図1は、本実施形態のカラオケシステムの構成を示す図である。本実施形態におけるカラオケシステムは、カラオケ装置2(コマンダと呼ぶこともある)と、リモコン装置1とを含んで構成されている。本実施形態では、カラオケ装置2、リモコン装置1は、有線あるいは無線にてLAN100に通信接続され、ネットワークを形成している。
【0033】
カラオケボックス等の店舗に設置されるカラオケ装置2は、楽曲(伴奏)を再生する音響制御部25を備えている。本実施形態の音響制御部25は、各マイクロホン43a、43bから入力される音声信号に対し、エコー等の効果を付与すると共に、楽曲情報に基づく再生信号を加算して、スピーカー42に出力する。なお、
図1では、スピーカー42は、便宜上、1個で記載しているが、複数のスピーカー42とし、ステレオ出力あるいはサラウンド出力とする等、各種形態を採用することが可能である。
【0034】
本実施形態のカラオケ装置2は、インターフェイス22a~22dを介して各種デバイスを接続することで構成されている。なお、
図1では、4つのインターフェイス22a~22dを使用しているが、インターフェイス22a~22dの形態は、例えば、1つにする、デバイス毎に設ける等、各種形態を採用することが可能である。
【0035】
カラオケ装置2は、ユーザからの各種入力を受け付ける操作部21を備える。また、カラオケ装置2は、各種情報を記憶する記憶部としてのハードディスク32を備える。カラオケ装置2は、LAN100に接続してネットワークに加入する通信手段としてのLAN通信部24aを備えている。また、本実施形態のカラオケ装置2は、無線LAN通信部24bも備えており、LAN通信部24aを使用した有線によるネットワーク接続に代え、無線LAN通信部24bを使用した無線によるネットワーク接続を行うことも可能である。
【0036】
また、カラオケ装置2は、モニタ41に対して歌詞映像、及び背景映像等を表示させる映像再生部を備える。映像再生部は、各種情報に基づいて映像を形成するGPU29(Graphics Processing Unit)と、映像形成のために必要な情報を蓄積するRAM28(本発明に係る「GPUがアクセスする記憶部」に相当)と、再生された映像をモニタ41、タッチパネルモニタ33に出力する映像出力部31を備えて構成される。これら映像再生部は、1つのデバイスとして構成されたビデオカードとして提供されるものであってもよい。なお、GPU33とRAM28の間には、データを一時的に蓄積するキャッシュを設けることとしてもよい。このキャッシュも、本発明に係る「GPUがアクセスする記憶部」に相当するものである。
【0037】
さらに、このカラオケ装置2では、外部に接続されるモニタ41以外に、タッチパネルモニタ33に対して各種情報を表示することを可能としている。タッチパネルモニタ33は、映像出力部31から入力された映像を表示する表示部35と、タッチ入力された位置をインターフェイス22bに出力するタッチパネル34とで構成されている。本実施形態のタッチパネルモニタ33は、カラオケ装置2の筐体前面等に配置され、ユーザからの各種操作を受け付ける入力部として機能する。ユーザは、タッチパネルモニタ33にて楽曲を選択することで、直接カラオケ装置2に楽曲を予約する等、カラオケ装置2に対する各種操作を行うことが可能である。
【0038】
さらに、カラオケ装置2は、各構成を統括して制御するためのCPU30(Central Processing Unit)と、各種プログラムを実行するにあたって必要となる情報を一時記憶するためのメモリ27とを含んだ制御部を備えて構成されている。
【0039】
このような構成にてカラオケ装置2は、各種処理を実行することとなるが、カラオケ装置2の主な機能として、楽曲予約処理、及び再生処理等を実行可能としている。楽曲予約処理は、ユーザからの指定に基づいて楽曲を指定して予約するための処理であって、リモコン装置1と連携して実行される。リモコン装置1の選曲処理で形成された予約情報は、カラオケ装置2に送信される。カラオケ装置2は、受信した予約情報をメモリ27中の予約テーブルに登録する。再生処理は、予約された楽曲を再生させる処理であって、演奏処理、歌詞表示処理、及び動画再生処理が同期して実行される処理である。
【0040】
演奏処理は、楽曲データに含まれる演奏データに基づき、音響制御部25に演奏を実行させる処理である。音響制御部25で演奏された楽曲は、マイクロホン43a、43bから入力される音声信号とミキシングされスピーカー42から放音される。歌詞表示処理は、楽曲データに含まれる歌詞データに基づく歌詞映像(テロップ)を、モニタ41に表示させることで歌唱補助を行う処理である。この歌詞表示処理で表示される歌詞映像に、背景映像を重畳させて表示させる背景映像表示処理を実行することとしてもよい。
【0041】
一方、リモコン装置1は、ユーザからの指示に基づいて楽曲を検索し、再生指示のあった楽曲について予約情報をカラオケ装置2に送信する選曲処理を実行可能としている。また、リモコン装置1は、カラオケ装置2あるいはインターネット上に接続されたサーバー装置5から各種情報を受信し、各種処理を実行することが可能である。本実施形態では、ユーザから各種指示を受け付けるユーザインターフェイスとして、操作部17と、タッチパネルモニタ11とを備えている。タッチパネルモニタ11は、表示部11aとタッチパネル11bとを有して構成され、表示部11aに各種情報を表示するとともに、ユーザからのタッチ入力を受付可能としている。
【0042】
さらにリモコン装置1は、選曲処理に必要とされるデータベース、各種プログラム、並びに、プログラム実行に伴って発生する各種情報を記憶する記憶部として、メモリ14、そして、これら構成を統括して制御するためのリモコン側制御部を備えて構成される。リモコン側制御部には、CPU15、タッチパネルモニタ11に対して表示する映像を形成する映像制御部13、表示する映像の映像データを一時的に蓄えるビデオRAM12、及びタッチパネルモニタ11あるいは操作部17からの入力を解釈してCPU15に伝える操作処理部18が含まれている。
【0043】
リモコン装置1は、無線LAN通信部16によって、アクセスポイント130と無線接続されることで、LAN100によって構成されるネットワークに接続される。なお、各リモコン装置1は、特定のカラオケ装置2に対して事前に対応付けされている。リモコン装置1から出力される各種命令は、対応付けされたカラオケ装置2にて受信されることとなる。
【0044】
このようなリモコン装置1の構成により、ユーザからの各種入力をタッチパネルモニタ11、あるいは、操作部17から受付けるとともに、タッチパネルモニタ11の表示により各種情報を提供することで、カラオケ装置2に対して出力する予約情報を送信する選曲処理等、各種処理を行うことが可能となっている。
【0045】
図2は、本実施形態に係る再生処理を示すフロー図である。再生処理は、CPU30によって実行される。リモコン装置1、あるいは、カラオケ装置2の操作部21を使用して楽曲が予約された場合、予約された楽曲を示す楽曲IDは、メモリ27で管理する予約テーブルに登録される。再生処理では、この予約テーブルをチェック(S101)し、次に再生する楽曲の有無を確認する。
【0046】
次に再生する楽曲がある場合、当該楽曲に対応する楽曲データが読み出される(S103)。楽曲データは、カラオケ装置2に予め記憶されたものであってもよいし、サーバー装置5等から配信されることで取得されてもよい。本実施形態の楽曲データは、演奏データと歌詞データ(本発明に係る「テロップ元データ」に相当)を含んで構成されている。演奏データは、音響制御部25において再生(演奏)されるデータである。また、歌詞データは、歌唱の補助を行うため、演奏に同期してモニタ41に表示するためのデータである。
【0047】
本実施形態では、演奏データに基づく演奏を実行する前に、歌詞データに基づき、テロップデータが作成される(S104)。テロップデータは、GPU29を使用してテロップ表示を行うためのデータである。なお、本実施形態では、歌詞データからテロップデータを作成しているが、このような形態に代え、予め、楽曲データにはテロップデータを含めておくこととしてもよい。
【0048】
本実施形態の歌詞データは、テキストデータで構成されており、空白、改行、空行を含んで構成されている。また、各文字等の適宜単位で、表示開始時間、消去時間、歌唱位置を示すタイミングデータが規定されている。従来、カラオケ装置2に搭載されるCPU30は、このような歌詞データを使用することで、モニタ41に歌詞表示を行っていた。
【0049】
しかしながら、カラオケ装置2では、機能の増加等に伴い、CPU30における処理負荷も大きくなっている。このような状況において、歌詞データの表示に関する処理は、CPU30の処理負荷の一因となっている。また、新たな歌詞の表現をCPU30で行わせることは、CPU30での大幅な処理負荷となることが考えられる。
【0050】
そのため、本実施形態では、従来、歌詞表示に使用していた歌詞データを、GPU29で取り扱うことが容易なテロップデータに変換し、GPU29を使用して歌詞表示を行うこととしている。CPU30は、歌詞データに基づき、テロップデータを形成する。
【0051】
ここで、本実施形態のテロップデータは、(1)テクスチャデータ、(2)頂点データ、(3)参照データを含んで構成されている。以下にこれらデータについて説明する。
【0052】
なお、実施形態では、文字を最小単位としているが、最小単位は、複数文字、あるいは、文字の一部分とする等、各種形態を採用することが可能である。本発明においては、前述の実施形態で使用した「文字」のような最小単位を「断片」と称し、「フレーズ」、「ライン」、「チャプター」のような「断片」の集合を「断片集合体」と称することとしている。
【0053】
(1)テクスチャデータ
図3は、テクスチャデータの形成を説明するための図である。この例は、
図4に示される童謡「ぞうさん」の歌詞を例に取ったものである。まず、歌詞情報を形成するテキストデータから文字の重複が排除される。次に、フォントデータ等を用い、重複が排除された文字がラスタライズ化(ビットマップ化)され、1枚の画像データが形成される。
【0054】
(2)頂点データ
頂点データは、3次元モデル上の各頂点に関するデータの配列である。言い換えると、複数のポリゴンを形成する各頂点に関するデータの配列である。実施形態では、文字1つに対してポリゴンを1つ割り当てる。なお、文字の一部分や、複数文字に対してポリゴンを1つ割り当てても良い。頂点に関するデータはそれぞれ、3次元座標、テクスチャ座標、インデックスデータを含む。
【0055】
(2-1)3次元座標
3次元座標は、3次元空間に配置されるポリゴンの位置を規定したデータである。
図4は、童謡「ぞうさん」の歌詞を3次元空間に配置した例を示したものである。3次元座標は、歌詞を3次元空間に配置した際、歌詞を構成する各文字に対応する各ポリゴンの頂点それぞれについて、その位置、即ち座標を示したものである。なお、図中、ポリゴン内に示される文字は、理解を行いやすくするために付したものであり、実際には、ポリゴンにテクスチャデータから切り出された画像データが貼られることで、文字が可視化される。
【0056】
(2-2)テクスチャ座標
テクスチャ座標は、テクスチャデータ中の、各ポリゴンに貼り付ける部分の位置を規定したデータである。言い換えると、テクスチャ座標は、テクスチャデータ中の、各ポリゴンの頂点それぞれに対応する位置、即ち座標を示したものである。テクスチャ座標を参照することで、テクスチャデータから必要な文字の画像データを取り出すことが可能となる。即ち、各ポリゴンに対して、テクスチャデータから必要な文字の画像データを取り出して貼り付けることができる。
【0057】
(2-3)インデックスデータ
インデックスデータは、ポリゴンを形成する各頂点に対して割り当てられる情報である。
図5(A)は、インデックスデータを説明するための図である。本実施形態では、歌詞は、1文字単位の「文字」、1文字以上で形成された「フレーズ」、1フレーズ以上で形成された「ライン」、1行以上のラインで形成された「チャプター」の情報が割り当てられている。
【0058】
本実施形態の歌詞データは、前述したように、空白、改行、空行を含んだテキストデータで構成されている。歌詞データからインデックスデータを作成する場合、例えば、空白までの1まとまりを「フレーズ」、改行までの1まとまりを「ライン」、空行までの1まとまりを「チャプター」として判断される。このような形態のみならず、歌詞データに「フレーズ」、「ライン」、「チャプター」をタグ付けしておく等、各種形態を採用することが可能である。
【0059】
図5(B)は、ポリゴンの各頂点に割当れられたインデックスデータを説明するための図である。
図5(B)は、
図5(A)中の最初の2フレーズ「ぞうさん ぞうさん」を例に取って説明したものである。本実施形態では、文字、フレーズ、ライン、チャプターについて、「0」を初期値としている。
【0060】
最初の文字(0文字目)にあたる「ぞ」については、左上、左下の各頂点に対して、インデックスデータ(0,0,0,0)が割り当てられている。このインデックスデータ、0文字目、0フレーズ目,0ライン目,0チャプター目であることを示している。また、最初の文字(0文字目)「ぞ」の右上、右下の各頂点には、インデックスデータ(0.99,0,0,0,0)が割り当てられる。文字について「0.99」という値を割り当てたのは、次の文字(1文字目)に1を割り当てるため、それより小さい値を使用したものである。
【0061】
次の文字(1文字目)にあたる「う」については、左上、左下の各頂点に対して、インデックスデータ(1,0,0,0)が割り当てられている。そして、「う」の右上、右下の各頂点には、インデックスデータ(1.99,0,0,0,0)が割り当てられている。2文字目の「さ」、3文字目の「ん」についても同様の規則で、各頂点に対してインデックスデータが割り当てられる。
【0062】
次のフレーズ(1フレーズ目)について、4文字目の「ぞ」については、左上、左下の各頂点に対して、インデックスデータ(4,1,0,0)が割り当てられている。このインデックスデータ、4文字目、1フレーズ目,0ライン目,0チャプター目であることを示している。また、そして「う」の右上、右下の各頂点には、インデックスデータ(4.99,1,0,0,0)が割り当てられている。5文字目の「う」、6文字目の「さ」、7文字目の「ん」についても同様の規則で、各頂点に対してインデックスデータが割り当てられる。
【0063】
このようにポリゴンの各頂点にインデックスデータを割り当てることで、文字、フレーズ、ライン、チャプター単位でのテロップ制御を容易に行うことが可能となっている。また、インデックスデータは、GPUで取り扱われるデータと同様、4次元配列のデータ構成(文字、フレーズ、ライン、チャプター)となっているため、GPUの並列処理において、効率的に処理を行うことが可能となっている。
【0064】
(3)参照データ
参照データは、歌詞を形成する文字、フレーズ、ライン、チャプターについて、各種情報を規定したデータである。
図6は、本実施形態の参照データを説明する図である。
図6に示されるように、参照データは、文字T、フレーズP、ラインL、チャプターC毎に情報を有する。
【0065】
0番目の文字(
図5(A)の歌詞の例では「ぞ」の文字)については、インデックスデータ、文字の位置・大きさを示す矩形情報(「位置情報」に相当)、文字の時間範囲が含まれている。インデックスデータは、
図5(B)で説明した情報であって、この0番目の文字については、(0,0,0,0)となる。
【0066】
文字の位置・大きさを示す矩形情報は、
図4で説明した頂点データと同様の情報であって、0番目の文字の場合、「ぞ」を構成するポリゴンの位置・大きさを示す情報である。GPUでは、各頂点データのそれぞれに対する処理が行われる際に、他の頂点データの情報を参照することができない。そのため、参照データに文字の位置・大きさを示す矩形情報を含めることで、各頂点データのそれぞれに対する処理が行われる際に、参照データを参照することで、当該頂点データが属する文字や他の文字の制御位置を参照することが可能となっている。
【0067】
文字の時間範囲は、タイミングを示す情報である。本実施形態では、文字の時間範囲として(Sn-1_end,Sn_start,Sn_end,Sn+1_start)を割り当てている。Sn-1_endは、前の文字Sn-1の終了タイミング、Sn_startは、当該文字Snの開始タイミング、Sn_endは当該文字Snの終了タイミング,Sn+1_startは後の文字Sn+1の開始タイミングを示している。
【0068】
ここで、当該文字Snを表示する際、文字Snの開始タイミングSn_start,当該文字Snの終了タイミングSn_endの2つの情報で足りることになるが、本実施形態では、GPUで取り扱われる他のデータと同様、4次元配列のデータ構成を使用し、Sn-1_end,Sn+1_startを含めている。これらを含めることで、前の文字、後ろの文字のタイミングを使用した処理を行うことが可能となっている。比較例として、Sn-1_end,Sn+1_startを含めない場合、前の文字、後ろの文字のタイミングを使用した処理を行う場合には、当該文字Snの参照データと、文字Sn-1の参照データと、Sn+1の参照データとを参照する必要があり、参照回数が多く処理負荷が高い。一方、本実施形態では、比較例よりも参照回数を減らすことが可能となり処理負荷を低減できる。
【0069】
なお、Sn-1_end,Sn+1_startについては、時間範囲に含めない形態としてもよい。その場合、時間範囲は、2次元配列のデータ構成となるため、2つの空データを含めることで、4次元配列のデータ構成とし、GPUでの取り扱いを容易にすることとしてもよい。この点については、後で説明するフレーズ、ライン、チャプターの時間範囲についても同様である。
【0070】
0番目と同様にして、参照データには、1番目~mX番目(最後の文字)の情報が規定される。
【0071】
0番目のフレーズ(
図5(A)の歌詞の例では「ぞうさん」の文字)については、フレーズ先頭文字のインデックスデータ、フレーズの位置・大きさを示す矩形情報、フレーズの時間範囲が含まれている。フレーズ先頭文字のインデックスデータは、0番目の文字のインデックスデータ、(0,0,0,0)が格納される。
【0072】
フレーズの位置・大きさを示す矩形情報は、0番目のフレーズの場合、「ぞうさん」を囲う領域の位置・大きさを示す情報である。GPUは、各頂点データのそれぞれに対する処理が行われる際に、他の頂点データの情報を参照することができない。そのため、参照データにフレーズの位置・大きさを示す矩形情報を含めることで、参照データ参照時、フレーズの制御位置を参照することが可能となっている。
【0073】
フレーズの時間範囲は、タイミングを示す情報である。本実施形態では、フレーズの時間範囲として(Tn-1_end,Tn_start,Tn_end,Tn+1_start)を割り当てている。Tn-1_endは、前のフレーズTn-1の終了タイミング、Tn_startは、当該フレーズTnの開始タイミング、Tn_endは当該フレーズTnの終了タイミング,Tn+1_startは後のフレーズTn+1の開始タイミングを示している。
【0074】
文字の場合と同様、当該フレーズTnを表示する際、当該フレーズTnの開始タイミングTn_start,当該フレーズTnの終了タイミングTn_endの2つの情報で足りることになるが、本実施形態では、Sn-1_end,Sn+1_startを含めることで、前のフレーズ、後ろのフレーズのタイミングを使用した処理を行うことが可能となっている。
【0075】
0番目と同様にして、参照データには、1番目~mY番目(最後のフレーズ)の情報が規定される。
【0076】
ライン(あるいは、チャプター)についても、フレーズの場合と同様、ライン(あるいは、チャプター)先頭文字のインデックスデータ、ライン(あるいは、チャプター)の位置・大きさを示す矩形情報、ライン(あるいは、チャプター)の時間範囲が含まれている。
【0077】
このように、本実施形態の参照データでは、文字、フレーズ、ライン、チャプターについて、インデックスデータ、位置・大きさを示す矩形情報、時間範囲(タイミング)を規定したことで、文字、フレーズ、ライン、チャプターの表示タイミングの制御を容易に行うことが可能となっている。なお、参照データには、文字、フレーズ、ライン、チャプターについて、時間範囲(タイミング)を示す情報が含まれることで足りるものである。
【0078】
本実施形態では、上述するテロップデータ(テクスチャデータ、頂点データ、参照データ)を使用して、GPU29によるテロップをモニタ41に表示させることとしている。その際、GPU29に対して、テロップを形成するためのシェーダープログラムを変更することで、多彩なテロップ表現を行うことが可能となっている。本実施形態では、CPU30は、再生処理毎に楽曲に対応するシェーダープログラムをRAM28に送信する(S106)。例えば、楽曲に対応したシェーダープログラムを使用することで、楽曲に対応したテロップ表現を実現することが可能である。
【0079】
本実施形態のシェーダープログラム(本発明に係る「テロップ形成プログラム」に相当)は、画面にどのようにテロップを表示させるかを規定するプログラムであり、文字、チャプター、ライン、フレーズについて、それを表示させる位置、表示させる色合い等を制御することが可能である。また、本実施形態のシェーダープログラムは、頂点シェーダープログラムとピクセルシェーダープログラムで構成されている。
【0080】
頂点シェーダープログラムは、表示させる位置を規定するプログラムであって、例えば、一文字単位、フレーズ単位、ライン単位、チャプター単位での表示制御を行うことが可能である。表示制御は、右寄せ、左寄せ、階段状、改行などのレイアウトや、スクロールやポップアップなどのアニメーションを含む。表示制御は例示したレイアウトやアニメーションに限らずさまざまなレイアウトやアニメーションを含む。また、頂点シェーダープログラムは、テロップを3次元空間内で、所定のカメラ視点から撮影した立体画像とする等の表現を行うことが可能である。
【0081】
一方、ピクセルシェーダープログラムは、テロップを形成するピクセル毎に色情報を制御することが可能であって、表示するテロップについて、単色とする、グラデーションとする等、各種の色表現を制御することが可能である。
【0082】
本実施形態では、頂点シェーダープログラムと、ピクセルシェーダープログラムの組み合わせでシェーダープログラム(本発明に係る「テロップ形成プログラム」に相当)を形成している。複数の頂点シェーダープログラム、複数のピクセルシェーダープログラムを予め用意しておくことで、その組み合わせを変更することで、多様なテロップ表現のシェーダープログラムを形成することが可能である。
【0083】
テロップデータ、シェーダープログラムをRAM28に送信することで、GPU29によるテロップ表示が可能となった後、CPU30は、演奏データを音響制御部25に再生開始させる(S107)。その際、演奏データの再生に同期して、現在の演奏位置(再生位置)をGPU29に送信する。現在の演奏位置は、定期的(例えば、描画するフレーム毎)にGPU29に送信される。GPU29は、RAM28に記憶しているテロップデータ、シェーダープログラム、そして、CPU30から受信した現在の演奏位置に基づき、モニタ41に歌詞表示(テロップ表示)を行う。
【0084】
GPU29で実行される頂点シェーダープログラムは、参照データ中、時間範囲(タイミング)を参照し、表示対象となる文字(もしくは、フレーズ、ライン、チャプター)を決定し、頂点データに基づき表示位置を決定する。その際、頂点シェーダープログラムによっては、座標変換が行われる。また、ピクセルシェーダープログラムは、表示対象となる文字画像の色を制御することが可能であり、テクスチャデータから取り出した画像に基づいてポリゴン上に文字を表示させることができる。また、ピクセルシェーダープログラムは、例えば、現在の演奏位置に基づき、文字の色変えを行う、あるいは、表示する文字を多様な色表現とすることが可能となる。
【0085】
図7は、本実施形態の画面上でのテロップ形成例を示したものである。
図7(A)は、従来のカラオケ装置と同様、画面の下半分の領域に横書きのテロップ表示とした表示形態である。頂点プログラムは、
図4で説明した頂点データを座標変換し、所定ライン分(
図7の例では2ライン分)の複数のポリゴンを画面配置する。次に、ピクセルシェーダープログラムは、各ポリゴン上にテクスチャデータから取り出した画像に基づいて文字を表示させる。また、ピクセルシェーダープログラムは、CPUから送信された現在位置に基づき、現在の歌唱位置を判定し、現在の歌唱位置前後で色変えを行って表示出力することでテロップ表示が行われる。
【0086】
図7(B)は、画面の全領域にテロップ表示とした形態である。
図7(B)は、フレーズ単位で改行を行い、さらに、画面に表示される複数のフレーズを階段状に表示させる表示形態である。この場合、頂点シェーダープログラムは、
図4で説明した頂点データを座標変換し、所定フレーズ分(
図7の例では4フレーズ分)を階段状になるように複数のポリゴンを画面配置する。次に、ピクセルシェーダープログラムは、各ポリゴン上にテクスチャデータから取り出した画像に基づいて文字を表示させる。また、ピクセルシェーダープログラムは、CPUから送信された現在位置に基づき、現在の歌唱位置を判定し、現在の歌唱位置前後で色変えを行って表示出力することでテロップ表示が行われる。
【0087】
図7(A)、
図7(B)では、2次元的な表示について説明したが、このような形態のみならず、シェーダープログラムを変更することで、例えば、3次元空間において、ある視点から眺めたテロップとする等、自由なレイアウト表現を行うことが可能である。
【0088】
このように本実施形態では、テロップ再生に関する処理は、GPU29にて実現することが可能であり、CPU30は、現在の演奏位置をGPU29に送信するだけでよく、CPU30による処理負荷を低減させることが可能となっている。また、シェーダープログラムを変更することで、多様なテロップ表現を実現することも可能である。
【0089】
CPU30による現在の演奏位置の送信(S108)は、演奏データの再生が終了するまで継続して実行される。演奏データの再生が終了した場合(S109:Yes)、次の楽曲の再生のため、予約テーブルのチェックが実行される(S101)。
【0090】
以上、本実施形態では、カラオケシステムを例に取り歌詞(テロップ)の表示について説明したが、本実施形態では、シェーダープログラム、並びに、GPU29に適化されたテロップデータ、及び、シェーダープログラムを使用することで、GPU29を使用したテロップ表示を行うことが可能となっている。したがって、多彩な表現でのテロップ表示を行うことが可能となるとともに、CPU30の処理負荷を低減させることが可能となっている。
【0091】
[第1変形例]
次に、本発明に係る画像処理装置の変形例について説明する。前述の実施形態では、テロップ表示に関する説明として、カラオケ装置2を使用した歌詞表示を例に取り説明した。テロップ表示は、歌詞表示に限られるものではなく、映画、動画像の字幕等に使用することとしてもよい。その際、テロップを再生する情報処理装置が、画像処理装置に相当することになる。
【0092】
[第2変形例]
前述の実施形態では、再生処理毎にシェーダープログラム(本発明に係る「テロップ形成プログラム」に相当)をRAM28に送信している。このような形態のみならず、シェーダープログラムの変更は、各種形態を採用することが可能である。例えば、ユーザの操作により、シェーダープログラムを変更することとしてもよい。その際、シェーダープログラムは、予め用意されたものであってもよいし、あるいは、ユーザ自身が作成したシェーダープログラムに変更可能としてもよい。
【0093】
また、前述の実施形態において、楽曲とシェーダープログラムの対応関係については詳しく言及していないが、例えば、楽曲毎、楽曲のジャンル毎、歌手毎、作曲家毎、作詞家毎の少なくとも何れかに対応させたシェーダープログラムを対応させることとしてもよい。あるいは、シェーダープログラムは、季節、曜日、時刻等の計時情報に対応させることとしてもよい。あるいは、シェーダープログラムは、ランダムに選択されるものであってもよい。
【0094】
以上、カラオケ装置2を例として、各種実施形態について説明したが、本発明に係る画像処理装置は、カラオケ装置2のみならず、パーソナルコンピュータ、ゲーム装置、スマートフォン等、各種の情報処理装置として使用することが可能である。また、各種情報処理装置において実行される画像処理プログラム、あるいは、画像処理方法についても、発明の範疇に属するものである。
【符号の説明】
【0095】
1:リモコン装置 24a:LAN通信部
2:カラオケ装置 24b:無線LAN通信部
5:サーバー装置 25:音響制御部
11:タッチパネルモニタ 27:メモリ
11a:表示部 28:RAM
11b:タッチパネル 30:CPU
12:ビデオRAM 31:映像出力部
13:映像制御部 32:ハードディスク
14:メモリ 33:タッチパネルモニタ
15:CPU 34:タッチパネル
16:無線LAN通信部 35:表示部
17:操作部 41:モニタ
18:操作処理部 42:スピーカー
21:操作部 43a、43b:マイクロホン
22a~22d:インターフェイス 130:アクセスポイント