|

本プロジェクトでは,動画閲覧方法を動的に組み合わせることを可能とするシステム,Movie Experience Elements
Composerを構築した.以下に,システム全容,各コンポーネント詳細,操作時の機能について説明する.
1. システム全容
図1に開発したmeecシステムの概観を示す.
システムを利用した一連の閲覧プロセスは下記のとおりである
1.
あらかじめ動画像の時間・空間属性を変更するエレメント(meec-Element)を用意し,meec-ElementRepositoryに保管して
おく
2. XMLファイルで,各エレメントをKeyboardの各キーにマッピングする
3. ユーザはmeec-MovieBrowserに表示される映像を見ながら,キー押下により閲覧方法を変化させる
4.
meec-ElementComposerでは,ユーザにより押下されたキーに対応するエレメントを組み合わせ,meec-MovieBrowser上に
表現される映像を随時変更する
5. meec-ElementComposerにて組み合わされた閲覧方法を,ユーザは必要に応じて記録し,動的にXML
ファイルを更新することで,新たなキーにマッピングすることができ
る.これらはキーボード操作のみで実現される
なお,幅広いユーザ層に普及させることを狙い,javaで実装を行った.動作にはJREおよびQuickTime for Javaが必要となる.
2. コンポーネント詳細
図1に記された各コンポーネントについて詳細を以下に述べる.
2.1. meec-Element & meec-ElementRepository
meec-Elementは,動画の時間属性や空間属性を変更するクラスファイルである.ユーザ自身がファイルを作成したり,既存の画像処理アルゴリズ
ムなどを利用したりすることを想定しており,javaインタフェースとしての実装となる.
meec-Elementで扱うデータ属性は,すべてのピクセルにおけるRGB値,変更を施す元領域,施した後の表示領域(図2.),及び,
QuickTime for Javaで提供される関数を利用した動画の速度や表示時点である.
図2. 変更元領域と結果表示領域
本開発においても,画面をモノクロにする,再生
速度を変化する,空間の一部分を指定する,映像を拡大する,など,プリミティブな機能を備えたmeec-Elementのプログラム例を30編程度作成し
た.以下にmeec-Elementの例を列挙する.
・空間属性変更エレメント(RGB)
- GrayFilter.class: モノクロ映像に変更
- RedFilter: 赤成分を強調
- GreenFilter: 緑成分を強調
- BlueFilter: 青成分を強調
・空間属性変更エレメント(領域)
- ShiftRight.class: 変更元領域と結果表示領域を右にずらす
- ShiftLeft.class: 変更元領域と結果表示領域を左にずらす
- ShiftUp.class: 変更元領域と結果表示領域を上にずらす
- ShiftDown.class: 変更元領域と結果表示領域を下にずらす
- Expander.class: 変更元領域と結果表示領域を広げる
- Shrinker.class: 変更元領域と結果表示領域を狭める
- ZoomIn.class: ズームインする
- ZoomIn.class: ズームアウトする
・時間属性変更エレメント
- ShiftForward100: 100フレーム先の時点にずらす
- ShiftBackward100: 100フレーム前の時点にずらす
- RateDecrementer: 速度を徐々に遅くする
- RateIncrementer: 速度を徐々に遅くする
- Pause: 一時停止
- Moderate: オリジナルの速度に変更(1倍速)
- F_Largo: 速度を変更する(0.2倍速)
- F_Adagio: 速度を変更する(0.5倍速)
- F_Andante: 速度を変更する(0.8倍速)
- F_Allegretto: 速度を変更する(2倍速)
- F_Allegro: 速度を変更する(4倍速)
- F_Presto: 速度を変更する(10倍速)
- B_Largo: 速度を変更する(-0.2倍速)
- B_Adagio: 速度を変更する(-0.5倍速)
- B_Andante: 速度を変更する(-0.8倍速)
- B_Allegretto: 速度を変更する(-2倍速)
- B_Allegro: 速度を変更する(-4倍速)
- B_Presto: 速度を変更する(-10倍速)
2.2. XML File
本開発では,各エレメントとユーザが操作するキーボードの各キーとのマッピングをXMLファイルにより行った.簡潔な表現を用いることで,ユーザが必要
に応じてマッピング内容を確認したり,直接書き換えたりすることが可能である.またXMLファイルは,後述するレコーディングプロセスにおいてリアルタイ
ムで書き換えられる.
下記に本開発で利用するXMLファイルの例を示し, 各タグについて説明する.
・<?xml version="1.0" encoding="UTF-8"?>:
xmlファイルであることを宣言し,バージョンとエンコーディング方法を指定.
例ではバージョン1.0,UTF-8でのエンコーディングを行う.
・<meec>:
本システムで利用するファイルであることを明示.
・<keycode id=”VK_Q” ></keycode>:
エレメントを割り当てるキーを設定.例では「Q」に割り当てる.
・<mee file="GrayFilter"/>:
親ノードで示されるキーに,割り当てるエレメントのファイル名を指定.ひとつのキーに対して複数のエレメントを指定可能.例では
「GrayFilter」を設定.子ノードに<startTime>および<endTime>が存在しない場合,エレメントは対
象となるキーが押されている間継続して適用される
・<startTime>380</startTime>:
親ノードで示されるエレメントが,キーを押されてから何msec後に適用されるかを指定.例では0.38秒後を設定.
・<endTime>4200</endTime>:
親ノードで示されるエレメントが,キーを押されてから何msec後に適用を終えるかを指定.例では4.2秒後を設定.startTimeより小さな
値が指定された場合,あるいは0が指定された場合は,対象となるエレメントは,キーが押されている間継続して適用される
なお,適用時間の記述がないエレメントをperpetual element,適用時間の指定を伴うエレメントをtransitive
elementと呼ぶ.
図3. キーマッピング用XMLファイル例
2.3. Keyboard
本開発では,キーボードタイプのデバイスをインタフェースとして利用する.ユーザは動画閲覧時において,複数のキーボード押下を行うことで,様々なエレ
メントを組み合わせた閲覧が可能となる.
利用したキーボードデバイスは,GIGA-TMS社製のKB20AUであり,以下のような特徴がある.
・6キーロールオーバーであり,6個までのキーの同時押下を検出可能
・キートップの表示を任意に変更可能
・20キーとコンパクトであり,テレビリモコンに似た感覚での操作が可能
図4に使用例を示す.
KB20AUはプログラマブルキーボードであり,図5に示すように,実際にはフルサイズキーボードの一部分を割り当てている.そのため,本システムの操
作は,一般的なキーボードやノートPCのキーボードでも操作することができる.ただし,広く流通しているキーボードやノートPCのキーボードは,その多く
が2〜3キーロールオーバーの仕様となっている.このようなキーボードでは,複数同時にキーが押された場合に検出できる数が少なく,組み合わせによっては
押下されていないキーを誤って検出する場合があるので注意が必要である.完全nキーロールオーバー対応のキーボードであれば問題なく動作する.
なお,3節で述べる閲覧方法記録用のレコーディングキーと,表示を元に戻すリセットキーは,あらかじめマッピングが固定され,図5に示す「0」キーと
「9」キーにそれぞれ割り当てられている.また,キーをダブルクリックすることで,キー押下を保持した状態とみなす機能がある.
  
図4. キーボードデバイス使用例
図5.
KB20AUと一般的なキーボードとの対比
2.4.
meec-ElementComposer
meec-ElementComposerでは,ユーザが押下したキーに対応するエレメントの種類と適用期間をXMLファイルより読み取り,meec-
ElementRepositoryに保管されているエレメントを組み合わせる.組み合わせた際の適用方法に関しては,キー押下の順番を遵守し,すべての
エレメントを順に評価する.
同時に複数のエレメントを適用する場合,エレメントが特定の属性値を相対的に変更する場合は,すべてを順に適用した結果が得られる.例えば,RGBのR
成分を10ずつ追加するエレメントと,R成分を3ずつ減少させるエレメントが適用された場合,キー押下の間,R成分は7ずつ追加される.一方で,エレメン
トが特定の属性値を絶対的に変更する場合は,最後に押下されたキーのエレメントによる変更がそれまでの変更を上書きする.例えば,R成分を100に設定す
るエレメントに対応するキーが押され,その後R成分を80に設定するエレメントに対応するキーが押された場合,両者が押されたままでもR成分は後に押され
たキーが示す80に設定される.
また,meec-ElementComposerで組み合わせられた閲覧方法は,それらを記録し,ひとつのキーに割り当てることができる.記録方法とし
て,エレメントの持つ機能をコピーするfunctional recordingと,エレメントが適用された時間情報を保持するprocedural
recordingを採用した.詳細は3節に述べる.
2.5. meec-MovieBrowser
meec-MovieBrowserは,meec-ElementComposerで組み合わせられたエレメント群を,実際の動画に適用し,結果をディ
スプレイ上に表示する.ブラウザのウィンドウがアクティブになっている状態では常にキー入力を受けつけ,リアルタイムで画像表示に反映させる.実装上は,
2枚の動画像を重ねて表示し,一方をベースとなるオリジナル映像,もう一方を各エレメントによる属性変更が適用される映像として扱っている.
また,インフォーマルなユーザ観察から得られた結果として操作状況が分かりづらいという意見が得られたため,ブラウザのウィンドウのタイトルスペースに
現在の操作状況をリアルタイムで表示し,ユーザへのフィードバックとした.フィードバックを映像処理でなく,テキストとして表現することで,ユーザの閲覧
プロセスを極力妨げないよう配慮した(図6).
図6.
タイトルバーにおける操作状況フィードバック
3. システム動作詳細
本システムを利用した操作は,動画の閲覧行動と閲覧方法の記録行動とから構成される.両者は分離したフェーズではなく,両者ともユーザによる画面直視と
キーボード操作のみによって実現される.
本節では,閲覧方法を記録することで,それを新たな閲覧方法組み合わせのための素材として再利用する過程に関して詳述する.2.4.2.4節に述べたと
おり,記録方式として下記の2種類を採用した.
・functional recording:適用されているエレメントの機能をコピーする記録法
・procedural recording:エレメントの適用時間情報を更新する記録法
これら2種類の記録方式に沿ったシステム動作を,perpetual elementのみの組み合わせを記録する場合と,transitive
elementも含めて記録する場合とに分けて,図7〜10を用いて説明する.これらの図はすべて右方向へ操作時の時間軸をとり,左端に表示したキーボー
ドのキーが押されていた時間を帯グラフとして表している.なお,キーボード右上のキーはレコーディング操作用の固定キー(以下RECキーと呼ぶ)である.
キーボード上のキーの色分けについては,1色に塗られたキーにperpetual elementが,複数の色が塗られたキーにtransitive
elementが割り当てられていることを示している.帯グラフの色も同様に,それぞれの色が適用されたエレメントを表しており,ある時刻において複数の
色が混在する場合は,複数のエレメントが同時に適用されていたことを示す.それら同時刻に存在するエレメントについては,帯グラフ領域内の下部にあるもの
ほど後に適用されたことを意味する.
3.1. functional recording(perpetual elementのみ)
図7に複数のperpetual elementの機能を組み合わせて記録する操作例を示す.
図7. functional
recording(perpetual elementのみ)操作例
図の例では,まず「1」「2」「3」の
perpetual
elementを用いた閲覧方法を順に適用している.これらは押下されている間中,それぞれの閲覧方法が適用されている状態となる.それら3つが同時に適
用されている時刻において「4」のRECキーをタイプ(押した直後に離す)している.タイプした際,RECキー以外のキーがひとつ以上押下状態にあれば
functional
recordingが行われ,ここでは「1」「2」「3」の機能がコピーされた状態となる.その後に押されたキーにその機能がマッピングされ「5」,それ
以降,該当キーが押さている間,「1」「2」「3」のキーを同時に押し続けるのと同様の効果が得られる「6」.
なお,「6」では3種類の閲覧方法が同時に適用されるが,内部的には,「1」「2」「3」の順に評価され,記録時と全く等しい閲覧状態を再現する.
3.2. procedural recording(perpetual elementのみ)
図8に複数のperpetual elementの適用時間情報を保持しながら記録する操作例を示す.
図8. procedural
recording(perpetual elementのみ)操作例
図では最初にRECキーをタイプしている.
RECキーがタイプされた際「1」,他のどのキーも押下状態に無ければprocedural
recordingが開始される.「5」で再びRECキーがタイプされるまでに押下されたキーに対応するエレメントが,キーの押下時刻の情報とともに記録
される.図に示す例では,「2」「3」「4」が帯びグラフで表された時間情報とともに記録される.なお,記録開始「1」から「2」を押し始めるまでのブラ
ンク,および「4」を押し終わってから「5」で記録を終了するまでのブランクは破棄される.一方で,「2」を押し終えてから「3」が押し始めるまでのブラ
ンクは記録される.
RECキーが離された後「5」,最初に押されたキーに閲覧方法の記録が割り当てられ「6」,以降そのキーが押されている間中,「2」「3」「4」に対応
するエレメントが,時間情報に基づき再現される「7」.なお,「7」を長時間押し続けても,「4」が終了する時間を過ぎると,どの閲覧方法も適用されない
状態となる.「7」を短時間で離した場合は,「2」「3」「4」に対応するエレメントが途中までしか適用されていなくても,エレメントの適用をすべて中止
する.
3.3. functional recording(transitive elementを含む)
図9にperpetual elementとtransitive elementを機能的に記録する操作例を示す.
図9. functional
recording(transitive elementを含む)操作例
図の例では,「1」でperpetual
elementが,「2」で10.進捗概要の2において記録されたtransitive
elementが適用されている.「3」でRECキーがタイプされた際,「1」「2」のエレメントが適用されていたことから,両者が機能的にコピーされ
る.機能的にコピーされるとは,キーを押し続ける間エレメントを適用する「1」と,3種類のエレメントを順に適用する「2」が,各エレメントが元来,保持
している時間情報を書き換えないで記録されることを意味する.
具体的には,「3」がタイプされた瞬間には,「1」のエレメントと,「2」の2番目のエレメントの2種類のみが適用された状態であるが,その瞬間の適用
状態を記録するのではなく,「1」「2」ともにオリジナルの時間情報のまま記録される.同様に,「2」のキーはすべてのエレメント適用を終える前に離され
ており,閲覧方法の適用が途中で中止されているが,その中止時点の時間情報や,中止されたという情報は記録されない.つまり,「4」では,「1」で押され
たキーと「2」で押されたキーとを,同時に押し始めるという組み合わせが記録される.
「5」では,割り当てられた「1」と「2」のエレメントが同時に適用され,「2」のエレメント適用時間が過ぎてもキーの押下状態が続いているため,それ
以降はperpetual elementである「1」のエレメントのみが適用され続けている.
3.4. procedural recording(transitive elementを含む)
図10にperpetual elementとtransitive elementとを適用時間情報を更新して記録する操作例を示す.
図10. procedural
recording(transitive elementを含む)操作例
図では,「1」と「4」にはさまれる時間におけ
る閲覧方法の適用プロセスを記録している.「2」でperpetual
elementが,「3」で10.進捗概要の2において記録されたtransitive
elementが途中まで適用されている.procedural
recordingにおいては,各エレメントが実際に適用された時間情報を記録するため,「5」に割り当てられるエレメントの遷移は,まず,「2」が単独
で適用され,その後「3」と混在して適用され,「2」の適用が先に終了し,「3」の適用が終わる,という流れになる.なお,「3」は,10.進捗概要の2
において記録されたtransitive elementを途中までしか適用していないため,「6」においても途中までの適用となる.
|