JP5321012B2 - 画像処理装置及びプログラム - Google Patents
画像処理装置及びプログラム Download PDFInfo
- Publication number
- JP5321012B2 JP5321012B2 JP2008299771A JP2008299771A JP5321012B2 JP 5321012 B2 JP5321012 B2 JP 5321012B2 JP 2008299771 A JP2008299771 A JP 2008299771A JP 2008299771 A JP2008299771 A JP 2008299771A JP 5321012 B2 JP5321012 B2 JP 5321012B2
- Authority
- JP
- Japan
- Prior art keywords
- image
- moving
- moving images
- reproduced
- frames
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Closed-Circuit Television Systems (AREA)
- Television Signal Processing For Recording (AREA)
Description
また、特許文献2によれば、複数の方向から撮影したスイング時の動画像について、簡易な操作により解析し得る技術が開示されている。
また、特許文献3によれば、複数の方向から撮影したスイング時の動画像と打撃解析データとを関連付けることにより、スイング時のフォームについてチェックし得る技術が開示されている。
画像処理システム100は動体の軌跡を表示又は解析するためのシステムであり、本実施形態では打撃球技の一例としてゴルフスイングの軌跡を表示又は解析する場合について説明する。
本実施形態では、ハイスピードカメラ1、2は1秒間に300枚の静止画像を撮影することができ、フレームレートは300[fps]である。また、ハイスピードカメラ3は1秒間に1200枚の静止画像を撮影することができ、フレームレートは1200[fps]である。
ハイスピードカメラ1〜3は、LANケーブル7を介し、撮影した動画像を画像処理装置10に出力する。
画像処理装置10は、制御部11、入力部12、表示部13、記憶部14、接続部15等を備えて構成される。また、各部はバス16により接続される。本実施形態において、画像処理装置10は、例えば、パーソナルコンピュータ、デスクトップコンピュータ等の情報処理装置により構成される。
プリンタ5は、画像処理装置10からの印刷指示に従い、印刷媒体(例えば紙等)に対して印刷処理を行う。プリンタ5は、例えばページプリンタ等の印刷装置により構成される。
メディア書込部6は、画像処理装置10の書込指示に従い、デジタルの動画像をDVD等のメディア(可搬記憶媒体)に書き込む機器である。なお、メディア書込部6は、画像処理装置10に内蔵されるものとしてもよい。
前提として、ハイスピードカメラ1〜3によりゴルフスイング時のスイング動作者及びボールが同時期に撮影され、撮影された各方向の動画像が画像処理装置10により記憶されているものとする。
ここで読み込む各方向の動画像は、互いに撮影開始のタイミングを人為的に合わせて同時期に撮影されてはいるが、フレーム単位の正確な同期はとられていない動画像である。制御部11は、各方向の動画像を例えば、「FRONT.mov(正面の動画像)」、「BACK.mov(後方の動画像)」、「BL.mov(ボールの動画像)」等の名前を付けて、記憶部14により記憶している。
本実施形態では、正面の動画像及び後方の動画像のフレームレートが300[fps]であり、ボールの動画像のフレームレートが1200[fps]である動画像をそれぞれ静止画像群に変換する場合について説明する。
制御部11は、静止画像群を記憶する際、静止画像群における各静止画像に対して連番を振って記憶する。例えば、制御部11は正面の静止画像群における各静止画像に「FR0000001.jpg…」、後方の静止画像群における各静止画像に「BK0000001.jpg…」、ボールの静止画像群における各静止画像に「BL0000001.jpg…」と連番を振って記憶する。
画像情報は、具体的にはフレームレートの情報であり、制御部11は静止画像群のフレームレートの情報に名前を付けて記憶する。例えば、制御部11は正面の静止画像群のフレームレートの情報に「FRfps」、後方の静止画像群のフレームレートの情報に「BKfps」、ボールの静止画像群のフレームレートの情報に「BLfps」と名前を付けて記憶する。なお、本実施形態では、FRfpsは300[fps]、BKfpsは300[fps]、BLfpsは1200[fps]である。
終了していない場合(ステップS5;N)、制御部11は、ステップS1に移行して未処理の他の方向の動画像について上述してきた処理を行う。
終了している場合(ステップS5;Y)、制御部11は、記憶されている正面の静止画像群を読み込む(ステップS6)。
図4に、基準位置情報の概念図を示す。
基準位置情報とは、予め定められた4つのタイミングにおける画像番号の情報である。4つのタイミングとは、具体的には(1)「テークバック開始」、(2)「振り下ろし開始」、(3)「インパクト瞬間」、(4)「フォロースルー終了」の各タイミングである。
制御部11は、ステップS7において、各タイミングの画像番号を例えば「0000001」と初期化する。
図5に、表示部13に表示する基準位置抽出パネルP1を示す。
基準位置抽出パネルP1は、4つのフレームF1〜F4及びゲージG1により構成される。フレームF1〜F4の上部には、それぞれ「テークバック開始」、「振り下ろし開始」、「インパクト瞬間」、「フォロースルー終了」の文字が表示される。
フレームF1〜F4内には、ステップS7で初期化された全て同一の静止画像が表示される。以降の処理で各タイミングに相当する静止画像が更新、決定されることとなる。
何れかのフレームが選択されない場合(ステップS9;N)、制御部11は、選択されるまで待機する。
何れかのフレームが選択された場合(ステップS9;Y)、制御部11は、選択されたフレーム内の静止画像を編集可能に設定する(ステップS10)。
編集指示がない場合(ステップS11;N)、制御部11は、指示があるまで待機する。
編集指示があった場合(ステップS11;Y)、制御部11は、ゲージG1の間引き操作があるか否か判断する(ステップS12)。
ゲージG1の間引き操作とは、ゲージG1の「▲」を操作するのではなく、スライダを操作することをいう。なお、ゲージG1の「▲」を操作すると選択されたフレーム内の静止画像が1画像ずつ切り替わって表示され、スライダを操作すると予め定められた間引き量ごとに切り替わって表示される。
ゲージG1の間引き操作があった場合(ステップS12;Y)、制御部11は、予め定められている間引き量の読み込みを行う(ステップS13)。
静止画像の存在する範囲内でない場合(ステップS15:N)、制御部11は、ステップS11に移行する。
静止画像の存在する範囲内である場合(ステップS15;Y)、制御部11は、フレームF1内の静止画像を切り替えて表示する(ステップS16)。
フレームF1が選択されてゲージG1の「▲」が操作され又はスライダが操作されると、静止画像の位置が切り替わる。切り替わった位置の静止画像がフレームF1内に表示される。
制御部11は、他のフレームが選択されたか否か判断する(ステップS18)。
他のフレームとは、フレームF2〜4である。
他のフレームが選択された場合(ステップS18;Y)、制御部11は、ステップS10に移行して、ステップS18までにフレームF1に対して行った処理と同様の処理を行う。つまり、他のタイミングについても静止画像の切り替えを行う。
フレームF1が選択された場合と同様、フレームF2〜F4が選択されてゲージG1の「▲」が操作され又はスライダが操作されると、静止画像の位置が切り替わる。切り替わった位置の静止画像がフレームF2〜F4内に表示される。
図10に示すように、ステップS10〜S19の処理により、正面の静止画像における「テークバック開始」、「振り下ろし開始」、「インパクト瞬間」、「フォロースルー終了」の各タイミングの画像番号が決定される。
更新される後方の静止画像の仮の基準位置情報は、ステップS19で決定した正面の静止画像の基準位置情報と同一の画像番号とする。
ボールの静止画像の仮の基準位置情報は、予め定められた計算式に基づいて計算されて更新される。予め定められた計算式を下記式(1)〜(5)に示す。
[「テークバック開始」の基準位置]=X−(正面の静止画像の「インパクト瞬間」位置−「テークバック開始」位置)×BLfps/FRfps ・・・(2)
[「振り下ろし開始」の基準位置]=X−(正面の静止画像の「インパクト瞬間」位置−「振り下ろし開始」位置)×BLfps/FRfps ・・・(3)
[「インパクト瞬間」の基準位置]=X ・・・(4)
[「フォロースルー終了」の基準位置]=X+(正面の静止画像の「フォロースルー終了」位置−「インパクト瞬間」位置)×BLfps/FRfps ・・・(5)
図11に示すように、後方の静止画像の仮の基準位置情報は、正面の静止画像の基準位置情報と同一である。また、ボールの静止画像の仮の基準位置情報は、上記式(1)〜(5)に基づいて計算されたものである。
制御部11は、基準位置情報に基づいて、「テークバック開始」、「振り下ろし開始」、「インパクト瞬間」、「フォロースルー終了」の各タイミングに相当する正面の静止画像を読み込んで表示部13に表示する(ステップS25)。
表示していない場合(ステップS26;N)、制御部11は、ステップS25に移行する。
表示した場合(ステップS26;Y)、制御部11は、基準位置情報に基づいて、「テークバック開始」、「振り下ろし開始」、「インパクト瞬間」、「フォロースルー終了」の各タイミングに相当する後方の静止画像を読み込んで表示部13に表示する(ステップS27)。
表示していない場合(ステップS28;N)、制御部11は、ステップS27に移行する。
表示した場合(ステップS28;Y)、制御部11は、基準位置情報に基づいて、ボールの静止画像を読み込んで表示部13に表示する(ステップS29)。
図12に、各方向の静止画像及び同期ゲージG2、G3を含む同期パネルP6を示す。
同期パネルP6では、基準位置情報に基づく静止画像がフレームF1〜F14内に表示される。フレームF1〜F4内には正面の静止画像が表示され、フレームF5〜F8内には後方の静止画像が表示され、フレームF9〜F14内にはボールの静止画像が表示される。
後述するが、入力部12を介して同期ゲージG2、G3が操作されることにより、後方の静止画像の「仮」の基準位置情報、及びボールの静止画像の「仮」の基準位置情報が「決定」されることになる。
何れかのフレームが選択されない場合(ステップS31;N)、制御部11は、選択されるまで待機する。
何れかのフレームが選択された場合(ステップS31;Y)、制御部11は、選択されたフレーム内の静止画像を編集可能に設定する(ステップS32)。
以下、フレームF7が選択されたものとして説明する。
編集指示がない場合(ステップS33;N)、制御部11は、指示があるまで待機する。
編集指示があった場合(ステップS33;Y)、制御部11は、ゲージG2の間引き操作があるか否か判断する(ステップS34)。
ゲージG2の間引き操作は、ゲージG1と同様であるためここでの説明は省略する。また、ゲージG2の「▲」の操作及びスライダの操作は、ゲージG1と同様であるためここでの説明は省略する。
ゲージG2の間引き操作があった場合(ステップS34;Y)、制御部11は、予め定められている間引き量の読み込みを行う(ステップS35)。
静止画像の存在する範囲内でない場合(ステップS37:N)、制御部11は、ステップS33に移行する。
静止画像の存在する範囲内である場合(ステップS37;Y)、制御部11は、フレームF7内の後方の静止画像を切り替えて表示する(ステップS38)。
制御部11は、現在操作対象の静止画像が後方の静止画像であるか否か判断する(ステップS40)。つまり、ステップS32で選択されたフレームがフレームF7であって、ゲージG2の操作が行われたか否か判断する。
選択指示があった場合(ステップS43;Y)、制御部11は、ステップS33に移行する。
選択指示がない場合(ステップS43;N)、制御部11は、3方向全ての静止画像の基準位置情報を決定し(ステップS44)、同期処理を終了する。
図13に示すように、ステップS33〜S44の処理により、後方の静止画像の仮の基準位置情報、及びボールの静止画像の仮の基準位置情報が微調整され、3方向全ての静止画像の基準位置情報が決定される。
制御部11は、記憶部14に記憶されている基準位置情報を読み込む(ステップS51)。具体的には、制御部11は各方向の開始画像番号と終了画像番号を読み込む。
また、終了画像番号とは、「フォロースルー終了」に相当する正面の静止画像の画像番号(以下、「正面ED」)である。本実施形態では、正面STは「0001558」、後方STは「0001092」、ボールSTは「0005386」である。また、正面EDは「0002023」である。
3方向の静止画像とは、「テークバック開始」に相当する正面、後方及びボールの静止画像である。
制御部11は、合成した静止画像を記憶部14に記憶する(ステップS56)。
ΔdはBLfps/FRfpsにより定まる。BLfps及びFRfpsは、既述したように、ステップS4で記憶したボールの静止画像群及び正面の静止画像群のフレームレートの情報である。本実施形態では、Δd=BLfps/FRfps=1200/300=「4」となる。
正面ST>正面EDでない場合(ステップS60;N)、制御部11は、ステップS52に移行する。
正面ST>正面EDである場合(ステップS60;Y)、制御部11は、複数の合成した静止画像を動画像に変換して(ステップS61)、動画生成処理を終了する。
ステップS61で変換して生成した動画像は、可搬記憶媒体に書込可能な1画面表示用の動画像である。動画像変換処理の後、制御部11はメディア書込部6により、変換した1画面表示用の動画像をDVD等の可搬記憶媒体に書き込むとしてもよい。
1画面表示用の動画像D1では、正面の動画像、後方の動画像及びボールの動画像が1画面に同時に表示される。また、動画像D1を再生した場合、正面の動画像、後方の動画像及びボールの動画像は互いに同期して再生される。
前述の実施形態における記述は、本発明の一例を示すものであり、これに限定しない。
例えば、本発明で扱う動画はゴルフスイングを撮影したものに限らず、動体の移動軌跡を撮像した動画ならば適用可能であり、ゴルフスイング及びゴルフボールに限定されず、打撃球技におけるスイング動作時のスイング動作者及び打撃対象物を撮影するものに広く適用できる。
例えば、ゴルフ以外の打撃球技としては、野球のバットスイングの移動軌跡とボールの移動軌跡を撮影したり、テニスのラケットスイングの移動軌跡とボールの移動軌跡を撮影したり、卓球のラケットスイングの移動軌跡とボールの移動軌跡を撮影したり、アイスホッケーのラケットスイングの移動軌跡とパッド(ボール)の移動軌跡を撮影したりするものに適用可能である。
10 画像処理装置
11 制御部
12 入力部
13 表示部
14 記憶部
15 接続部
1〜3 ハイスピードカメラ
4 HUB
5 プリンタ
6 メディア書込部
Claims (6)
- 複数の撮影装置で撮影された動画像の再生を制御する画像処理装置であって、
前記各撮影装置により夫々異なるフレームレートで撮影された複数の動画像を同時に再生するに当たって、各動画像の同期基準となる基準フレームを、その各動画像毎に個別に設定する設定手段と、
前記各動画像を同時再生した際に、前記設定手段により設定された各動画像の基準フレームが同一の再生タイミングで再生されるように、前記基準フレームよりも前のフレームの内で同期再生されるべき開始基準フレームを前記各動画像毎に個別に決定する決定手段と、
前記異なるフレームレートで撮影された前記各動画像をその個々に決定された開始基準フレームから同時に再生開始させ、少なくとも前記各動画像の夫々の前記基準フレームが同一再生タイミングで再生されるよう制御する再生制御手段と、
を具備したことを特徴とする画像処理装置。 - 前記再生制御手段は、前記各動画像をその各動画像のフレームレートの比に応じた異なる再生速度で再生するように制御する、
ことを特徴とする請求項1記載の画像処理装置。 - 前記設定手段は、第1動画像に含まれる複数フレームの中から所定の第1基準フレームを表示させた状態で、第2動画像に含まれる複数フレームの中から前記第1基準フレームと同期させたい第2基準フレームを任意に選択することで、前記各動画像の同期基準となる基準フレームを設定する、
ことを特徴とする請求項1又は2に記載の画像処理装置。 - 前記再生制御手段は、前記各動画像を同一表示画面上で同時に再生表示されるように制御する、
ことを特徴とする請求項1〜3の何れかに記載の画像処理装置。 - 前記再生制御手段は、前記各動画像が前記同一表示画面上で同時に再生表示されるようにした新たな動画像を前記各動画像の各フレームを合成することで生成し、その生成された動画像を所定の記録媒体に書込む、
ことを特徴とする請求項4記載の画像処理装置。 - 複数の撮影装置で撮影された動画像の再生を制御する画像処理装置のコンピュータを制御するためのプログラムであって、
前記コンピュータを、
前記各撮影装置により夫々異なるフレームレートで撮影された複数の動画像を同時に再生するに当たって、各動画像の同期基準となる基準フレームを、その各動画像毎に個別に設定する設定手段、
前記各動画像を同時再生した際に、前記設定手段により設定された各動画像の基準フレームが同一の再生タイミングで再生されるように、前記基準フレームよりも前のフレームの内で同期再生されるべき開始基準フレームを前記各動画像毎に個別に決定する決定手段、
前記異なるフレームレートで撮影された前記各動画像をその個々に決定された開始基準フレームから同時に再生開始させ、少なくとも前記各動画像の夫々の前記基準フレームが同一再生タイミングで再生されるよう制御する再生制御手段、
として機能させるようにしたコンピュータ読み取り可能なプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008299771A JP5321012B2 (ja) | 2008-11-25 | 2008-11-25 | 画像処理装置及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008299771A JP5321012B2 (ja) | 2008-11-25 | 2008-11-25 | 画像処理装置及びプログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013143174A Division JP5664714B2 (ja) | 2013-07-09 | 2013-07-09 | 画像処理装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010130086A JP2010130086A (ja) | 2010-06-10 |
JP5321012B2 true JP5321012B2 (ja) | 2013-10-23 |
Family
ID=42330195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008299771A Active JP5321012B2 (ja) | 2008-11-25 | 2008-11-25 | 画像処理装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5321012B2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5821236B2 (ja) * | 2011-03-31 | 2015-11-24 | カシオ計算機株式会社 | 画像処理装置、同期方法及びプログラム |
JPWO2013094115A1 (ja) | 2011-12-19 | 2015-04-27 | 日本電気株式会社 | 時刻同期情報算出装置、時刻同期情報算出方法および時刻同期情報算出プログラム |
JP6004475B2 (ja) * | 2012-10-19 | 2016-10-12 | カシオ計算機株式会社 | 再生制御装置、再生制御方法及びプログラム |
JP5928386B2 (ja) | 2013-03-22 | 2016-06-01 | カシオ計算機株式会社 | 表示制御装置、表示制御方法及びプログラム |
JP5786892B2 (ja) * | 2013-05-16 | 2015-09-30 | カシオ計算機株式会社 | 動画再生装置、動画再生方法及びプログラム |
JP6020665B2 (ja) * | 2015-06-11 | 2016-11-02 | カシオ計算機株式会社 | 再生制御装置、再生制御方法及びプログラム |
JP2016015780A (ja) * | 2015-10-14 | 2016-01-28 | ソニー株式会社 | 情報処理装置、記録媒体および情報処理システム |
JP6571859B1 (ja) * | 2018-12-26 | 2019-09-04 | Amatelus株式会社 | 映像配信装置、映像配信システム、映像配信方法及び映像配信プログラム |
JP7249637B2 (ja) * | 2019-08-08 | 2023-03-31 | Amatelus株式会社 | 映像配信装置、映像配信システム、映像配信方法及び映像配信プログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63144664A (ja) * | 1986-12-09 | 1988-06-16 | Hitachi Ltd | 画像多重再生方法 |
JPH0442680A (ja) * | 1990-06-08 | 1992-02-13 | Canon Inc | 映像記録装置 |
JP2001036867A (ja) * | 1999-07-23 | 2001-02-09 | Gen Tec:Kk | 複数チャネル動画像同期表示装置 |
JP3586176B2 (ja) * | 2000-07-07 | 2004-11-10 | 日本電信電話株式会社 | マルチイメージ作成方法およびそのプログラムを記録した記録媒体 |
JP4186520B2 (ja) * | 2002-06-21 | 2008-11-26 | ソニー株式会社 | 多視点画像記録装置、および多視点画像フレーム同期処理方法、並びにコンピュータ・プログラム |
JP4748075B2 (ja) * | 2007-02-07 | 2011-08-17 | カシオ計算機株式会社 | 画像同期システム及び画像同期方法 |
-
2008
- 2008-11-25 JP JP2008299771A patent/JP5321012B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010130086A (ja) | 2010-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5321012B2 (ja) | 画像処理装置及びプログラム | |
US8020098B2 (en) | Video analysis system of swing motion | |
JP2007313362A (ja) | 体の動かし方を指導するための装置 | |
EP3060317B1 (en) | Information processing device, recording medium, and information processing method | |
JP2002248188A (ja) | マルチメディア分析システム及びその使用方法 | |
CN102984449B (zh) | 能控制再生速度的运动图像再生装置 | |
US20180369678A1 (en) | System and Apparatus for Sports Training | |
JP4646209B2 (ja) | 実技分析システム及びプログラム | |
US20170243613A1 (en) | Image processing apparatus that processes a group consisting of a plurality of images, image processing method, and storage medium | |
CN104168436B (zh) | 运动图像再生装置以及运动图像再生方法 | |
JP2004260765A (ja) | 実技分析システム及びプログラム | |
JP2010130084A (ja) | 画像処理装置及びプログラム | |
KR20100033205A (ko) | 골프연습 보조 시스템 및 그 방법 | |
KR101540771B1 (ko) | Ar 글래스를 이용한 스포츠 경기 판정 시스템 및 방법 | |
JP5664714B2 (ja) | 画像処理装置及びプログラム | |
JP5821236B2 (ja) | 画像処理装置、同期方法及びプログラム | |
JP6679951B2 (ja) | 指導アシストシステム、および指導アシストプログラム | |
JP5790710B2 (ja) | 画像処理装置、制御方法及びプログラム | |
KR20050014041A (ko) | 골퍼의 자세교정 시스템 | |
JP5786271B2 (ja) | 画像印刷装置、画像印刷方法、及びプログラム | |
JP2009181043A (ja) | 映像信号処理装置、画像信号処理方法、プログラム、記録媒体 | |
JP2020135177A (ja) | 動画を解析するためのプログラム、装置、及び方法 | |
JPH0515628A (ja) | ゴルフスイングのための映像装置 | |
WO2022181175A1 (ja) | 情報処理装置、情報処理方法、プログラム、表示システム | |
JP2022173865A (ja) | プレイ分析装置、プレイ分析方法、及び、コンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111020 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20111020 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120831 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120911 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121109 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121204 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130618 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130701 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5321012 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |