----1.導入
----銀行のデジタル監視および監視システムは、現在、比較的有望な市場とアプリケーションの見通しを持つ開発プロジェクトです。さまざまな MPEG キャプチャ カードおよびハードウェア周辺機器に基づいて開発された監視および監視システムは、国内外で比較的成熟した技術を持っています。リアルタイムの監視、リアルタイムの取得と圧縮、いつでも再生、圧縮データ ストリームの送信などの特定の要件を満たすために、ネットワーク ビデオ/オーディオ マルチポイント送信 (ビデオ ブロードキャスト) 用のビデオ データ取得カードが使用されます。このシステムでは、AVI (MPEGIFrame 圧縮符号化) コレクション、MPG コレクションを提供します。送信側は MPEG ストリームをブロードキャストし、受信側は MPEG ストリームを受け取って表示し、ネットワーク送信には WinSock2ip-Multicast を使用します。このマシンが送信者である場合、ネットワーク上の他の PC が受信者になることができます。異なるポート番号を指定すれば、複数のPCを送信者として同時に使用したり、複数のPCを受信者として使用して、異なる送信者からのビデオデータを受信したり、データを送信しながらローカルにMPEGファイルとして保存したりすることもできます。 。この記事では主に、VB 環境で MPEG カードでキャプチャされたオーディオ/ビデオ データ再生を開発するためのプログラミング テクニックをいくつか紹介します。
----2. MPEG の内容と開発の紹介
----マルチメディア情報には主に「画像」「音声」「テキスト」の3つのカテゴリがあります。その中でも映像や音声などの信号は情報量が非常に多く、その情報の表現や入出力の要件も異なります。これらのデータを効果的に表現し、適切に処理することは非常に重要であり、そのためマルチメディア情報圧縮技術はマルチメディア通信分野の主要技術の 1 つとなっています。 MPEG (Moving Picture Expert Group) は、ISO と IEC が 1988 年に共同で設立したもので、動画とそれに付随するオーディオ コーディングの世界標準化に取り組んでいます。これには、MPEG システム (MPEG ビデオ、MPEG オーディオ) が含まれます。 ISOは、文字情報時代からマルチメディア情報時代への社会の移行を促進するため、MPEG-1、2、4に続いてMPEG-7を立ち上げました。
----MPEG-1 は 1993 年に策定されました (ISO/IEC11172) は、1.5Mbit/s 未満のデータ伝送速度におけるデジタル ストレージ メディアの動画とそれに付随するオーディオ コーディングに関する国際標準です。ビデオ圧縮率は 26:1 です。 MPEG-2 は 1995 年に策定されました (ISO/IEC13818) は、画質 DVB、HDTV、DVD 向けに CCIR601 によって推奨された 3 ~ 10Mbit/s の動画とそれに伴う音声コーディングの国際標準です。 1998年11月に発表された国際規格MPEG-4は、情報理論に基づいた波形符号化理論に基づいて一定のビットレートでの映像・音声の符号化を対象としたそれまでのMPEG規格とは異なり、マルチメディアシステムの双方向性や柔軟性をより重視した規格となっている。 。 AV オブジェクト (Audio/VisualObjects) が導入され、よりインタラクティブな操作が可能になります。 1998 年 10 月、国際標準化機構は MPEG-7 コンセプトを発表しました。このコンセプトは 2001 年初めに完成し、発表される予定です。正式名称は「MultimediaContentDescriptionInterface」です。これは、人々が必要なマルチメディア素材を迅速かつ効果的に検索できるようにするために、記述されるオブジェクトのさまざまな特性の抽出に基づいて、現実のさまざまなマルチメディアコンテンツに適した標準化された記述スキームを提案します。
----3. VB が MPEG -- オーディオ/ビデオ データ ストリーム再生テクノロジを開発
----3.1. VB で MPEG データ ストリームを再生するための MultimediaMCI コントロールと MediaPlayer コントロールの欠点
----VB で一般的に使用されるマルチメディア コントロールは MultimediaMCI コントロールです。これは、メディア コントロール インターフェイス (MCI) デバイスでのマルチメディア ファイルの記録と再生を管理します。サウンド カード、MIDI シーケンサー、CD-ROM ドライブ、ビデオ CD プレーヤー、ビデオ テープ レコーダーおよびプレーヤーなどのデバイスに MCI コマンドを発行するために使用されます。また、Windows (*.avi) ビデオ ファイルの再生もサポートします。 MultimediaMCI コントロールを使用して、収集した MPEG データ ストリームを再生すると、再生速度はリアルタイム モニタリング表示よりも高速になり、MPEG ファイルの長さが 500k ~ 600k に短縮されると、放送画像を再生できなくなることもわかりました。見られる。 VB で MediaPlayer コントロールの使用に切り替えても、上記の欠点は依然として存在します。分析理由は、MPEG ファイルの長さが短すぎるため、再生デバイスの電源を入れるとすぐに閉じられてしまい、これをプログラムで制御することができないためです。さらに、ユーザーが必要とする圧縮データ ストリームに関する情報や、グラフの線サイズ、CopmressionRate、グラフィック ズーム表示、インターフェイスの美しさなど、実装したい機能については、上記のコントロールを使用するとプログラム開発に便利です。担当者が使用する高レベルのインターフェイスは適用できなくなり、これに基づいて最下層で一部の操作を実装するのは当然のことながら困難になります。上記の実際的な問題を解決する際に、ダイナミック リンク ライブラリを Quatrz.dll と呼びました。
----3.2. MPEG ストリームに便利な低レベル操作と高レベル インターフェイスを提供するダイナミック リンク ライブラリ Quatrz.dll
----Windows/システムの下にダイナミック リンク ライブラリ Quatrz.dll があります。これは、VB の「参照」メニューに追加するだけで、動画の再生を制御するために使用される Windows のタイプ ライブラリです。このライブラリは、IBasicAudio、IBasicVideo、IBasicVideo2、IMediaEvent、IMediaEventEx、IMediaPosition およびその他のクラスを定義しており、CommandButton コントロールの Cl に簡単に追加できます。 ick などのイベントでオーディオの関連値を設定および読み取り、ビデオ入出力ソースの関連パラメーターを設定または読み取り、パラメーターのない関数 Run、Pause、Stop などを直接呼び出して再生イベント プロセスを制御するコードを追加します。 IMediaPosition クラスを使用して特定の再生を制御する詳細な操作を行います。 Visual Basic では、圧縮 MPEG データ ストリームの出力表示に特別なコントロールは必要ありません。フォームをコンテナとして選択することも、フォーム上の PictureBox コントロールをコンテナとして選択することもできます。インターフェイスの美しさと、ユーザーが関連情報を取得しやすくするために、再生された MPEG データ ストリームを表示するコンテナとして PictureBox コントロールを使用します。
----3.3. PictureBox コントロールを使用して MPEG データ ストリームを表示する
----VisualBasic の PictureBox コントロールは、ビットマップ、アイコン、メタファイルだけでなく、拡張メタファイル、JPEG、または GIF ファイルからのグラフィックスを表示できます。コード内でグラフィックスのプロパティとメソッドを操作して、アニメーションを作成したりシミュレーションを実行したりすることもできます。 PictureBox コントロール picTV をフォーム上に配置します。 Windows/System でのダイナミック リンク ライブラリ Quatrz.dll の呼び出しに基づいて、グローバル オブジェクト オブジェクト pMC を定義し、pMC が FilgraphManager の新しいインスタンスを指すようにし、再生用に M を開きます。 PEG ファイル; 次に、ローカル オブジェクト pVW を IVideoWindow の新しいインスタンスとして定義し、ビデオを再生するウィンドウを開き、pVW=pMC に値を割り当て、picTV の属性値 hWnd を Owner に割り当てます。 pVW、picTV を表示できるように MPEG データ ストリームを受信します。具体的な操作は以下の通りです。
SetpMC=NewFilgraphManager
pMC.RenderFile"C:/Bank/Montior/Example.MPG"
SetpVW=pMC
pVW.WindowStyle=CLng(&H6000000)
pVW.左=0
pVW.トップ=0
OldWidth=pVW.width
OldHeight=pVW.Height
picTV.width=pVW.width*15
picTV.高さ=pVW.高さ*15
pVW.Owner=picTV.hWnd
----これらのコードを含める別の関数を定義することも、CommandButton コントロールの Click イベントに関数を配置することもできます。
----3.4. MPEGデータストリームの拡大表示
----MPEG画像の拡大・縮小は、さまざまなマルチメディア再生ソフトウェアでよく使われる画像表示処理方法です。 Visual Basic では、Image コントロールを使用して静的ピクチャをスケーリングできます。コントロールのストレッチ プロパティを True に設定すると、読み込まれたピクチャの比率が Image コントロールの範囲に合わせて変更されます。 Image コントロールの Height と Height になります。Width 属性値のサイズが変わります。コントロールの大きさが変わると表示点のピッチを変えることができなくなり、表示点の画素と映像が完全に1対1に対応せず、表示品位が著しく低下します。画像を拡大縮小できるのは Image コントロールのみです。PictureBox コントロールが画像全体を表示するのに十分な大きさではない場合、画像はコントロールのサイズに合わせて切り取られます。 PictureBox コントロールを使用して出力 MPEG イメージをスケーリングする場合は、MPEG データ ストリームの出力比率を変更し、出力 MPEG イメージに適応するように PictureBox コントロールのサイズを調整する必要があります。実際、これは出力 MPEG イメージを表示するために上記のセクション 3 ですでに行われています。読み込んだ MPEG 画像の OldWidth と OldHeight を使用するだけです。MPEG 画像を元の 1/2 のサイズで出力する例を示します。
pVW.width=OldWidth/2
pVW.Height=OldHeight/2
picTV.左=135
picTV.トップ=135
picTV.width=pVW.width*15
picTV.高さ=pVW.高さ*15
pVW.Owner=picTV.hWnd
----MPEG 画像のサイズを拡大または縮小する場合は、出力画像の変形を避けるために、幅と高さの比率を一定に保つように注意してください。
----3.5.マウスをドラッグして MPEG データ ストリームを再生します
----マウスを使用してスクロール バーをドラッグし、MPEG データ ストリームを自由に再生することは、Windows のマルチメディア プレーヤーで VCD を再生するための一般的なテクノロジです。 VB のスライダー コントロールは、スライダーとオプションの目盛りを含むウィンドウです。スライダーをドラッグするか、マウスでスライダーのどちらかの側をクリックするか、キーボードを使用してスライダーを移動できます。スライダー コントロールは、範囲内の離散値または一連の連続値を選択する場合に便利です。スライダーをチェックマークまで移動すると、MPEG データ ストリームを配置して再生できます。フォーム上にスライダー コントロール Slider1 を配置し、カーソル移動の最大ステップ サイズ LargeChange=5、最小ステップ サイズ SmallChange=1、最大移動範囲 Max=50 を設定します。実装手順は次のとおりです。
PRivateSubSlider1_Scroll()
'
DimpMPAsIMメディアポジション
DimvAsDouble
IfNotbOpenThenExitSub
bシーク=真
pMC.一時停止
SetpMP=pMC
v=Slider1.Value-Slider1.Min
v=v/Slider1.Max*pMP.Duration
pMP.CurrentPosition=v
SetpMP=なし
pMC.Run
'
EndSub
----3.6. MPEGデータストリームの取得 取得時間
----VisualBasic には、ファイルの作成または更新の日時を取得するために使用できる関数 FileDateTime が用意されています。ローカル オブジェクト pMP を IMediaPosition の新しいインスタンスとして定義し、pMP=pMC を設定し、オブジェクト参照 pMP に値を割り当てます。次に、2 つの Double 型変数 curpos と length を定義し、pMP.CurrentPosition を curpos に割り当て、現在の相対位置を取得します。 MPEG データ ストリームの位置、長さに pMP.Duration を割り当てると、MPEG データ ストリームの相対的な収集時間を取得できます。 MPEG 取得ファイル作成の特性により、MPEG データ ストリームの取得時刻は 2 つの日付と時刻を加算または減算することで取得できます。
----MPEG 再生プロセス全体で、MPEG データ ストリームの収集時間をリアルタイムで表示する必要があります。収集時間を取得する関数を定義し、Timer コントロールの Timer イベントを使用してそれを駆動できます。 。 Timer イベントをトリガーすると、Timer コントロールは一定の間隔で定期的に関数を実行し、MPEG データ ストリームの収集時間を取得できます。
----4.結論
----成熟した画像圧縮技術をテレビ監視の分野で活用する意義は大きい。例: 銀行の監視システムでは、顧客 (銀行) の身元の特殊性により、他人の預金のなりすまし、銀行の窃盗など、銀行の通常の業務秩序を混乱させる事件の調査および処理中に、強盗などの場合、収集されたデータは圧縮されるため、事件を処理する上で非常に重要な手がかりと証拠となります。このシステムでは、監視映像の鮮明さや収集データの冗長性が求められるだけでなく、MPEGデータストリームの再生技術も非常に重要です。この記事では、Visual Basic 独自の条件と独自のコントロールを使用して、MPEG カードで収集されたオーディオ/ビデオ データを Windows 環境で再生する技術を開発する方法を紹介します。開発した MPEG メディア プレーヤーは、VB の優れた特性を最大限に活用し、VB の既存のさまざまなコントロールと柔軟に組み合わせることで、データ収集中のシーンを鮮明に再現し、「音を聞く」を実現する完全な機能を備えています。 「その人」を認識し、その出来事が起こった時間と瞬間を正確に判断できるようになります。単一フレームのみを記録するオーディオ/ビデオ データ ストリームも同様に再生できます。上記のテクノロジーは監視システムに使用され、良好な結果をもたらしています。 ->