JP2007049465A - 動画再生における制御方法 - Google Patents
動画再生における制御方法 Download PDFInfo
- Publication number
- JP2007049465A JP2007049465A JP2005232107A JP2005232107A JP2007049465A JP 2007049465 A JP2007049465 A JP 2007049465A JP 2005232107 A JP2005232107 A JP 2005232107A JP 2005232107 A JP2005232107 A JP 2005232107A JP 2007049465 A JP2007049465 A JP 2007049465A
- Authority
- JP
- Japan
- Prior art keywords
- jpeg
- data
- frame
- processing block
- processing
- 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.)
- Withdrawn
Links
Images
Landscapes
- Television Signal Processing For Recording (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【課題】 復号処理用ハードウエアやプロセスを持つことで復号処理が高速に行える反面、これらにデータを送信する必要があるため、データ送信に要する時間を短くしなければ、動画再生処理全体のスループットを上げることができないという問題があった。
【解決手段】 アプリケーションとは別のHWまたはプロセスに、各フレームのJPEGデータを転送してデコード処理を行うような構成で、モーションJPEG再生処理を実現する場合において、フレーム転送に先立って量子化テーブルのみを送っておく、あるいは、最初の1フレーム目のみJPEGヘッダ込みでフレーム転送して、残りのフレームからはヘッダを除くデータのみを転送するような制御方式とする。
【選択図】 図1
【解決手段】 アプリケーションとは別のHWまたはプロセスに、各フレームのJPEGデータを転送してデコード処理を行うような構成で、モーションJPEG再生処理を実現する場合において、フレーム転送に先立って量子化テーブルのみを送っておく、あるいは、最初の1フレーム目のみJPEGヘッダ込みでフレーム転送して、残りのフレームからはヘッダを除くデータのみを転送するような制御方式とする。
【選択図】 図1
Description
本発明は、動画像再生における制御方法に関するものである。
従来、モーションJPEG方式の動画データは、各フレームがJPEGフォーマットで符号化圧縮された静止画データの集合体としてファイル化されており、このモーションJPEG動画ファイルを再生表示する場合は、ファイルからそれぞれのJPEGフレームデータを静止画データとして切り出し、JPEG復号化処理を連続的に行うことで実現されている。
一方、JPEG複合処理を高速に行うために復号用のハードウエアを専用に持ち、CPUにより静止画フレームとして分離されたJPEGデータを復号器に転送して復号再生を行うような構成も一般化されている。あるいは、CPUの高機能化にともないマルチプロセスOSによる処理の分離が実用化され、切り出したJPEGフレームデータをJPEG復号処理プロセスへ送信するような処理シーケンスも実施されている。
又、従来例としては、例えば特許文献1をあげることが出来る。
特開平09−98430号公報
しかしながら、復号処理用ハードウエアやプロセスを持つことで復号処理が高速に行える反面、これらにデータを送信する必要があるため、データ送信に要する時間を短くしなければ、動画再生処理全体のスループットを上げることができないという問題があった。
本発明は、上記のような問題点を解決するためになされたもので、モーションJPEGデータのうち必要部分のみを復号処理ブロックへ送信するような制御を行うことにより、処理ブロック間のデータ転送量を低減するとともに高速な動画再生を行えるような、モーションJPEG動画復号システムを提供するものである。
モーションJPEG動画では、ひとつの動画ファイルにおいては、各フレームのJPEGデータの符号化条件をすべて同一にすることが可能である。この場合、それぞれのフレームのJPEGヘッダのうち、復号化に必要な情報はすべて共通のデータを使用することができるため、毎回ヘッダデータを送信する必要がない。従って、動画中のそれぞれのフレームからJPEGヘッダを分離して、符号化データ本体のみを送信する手段を設けることにより高速な動画再生が可能となる。
以上説明したように、本発明によれば、モーションJPEGデータのうち必要部分のみを復号処理ブロックへ送信するような制御を行うことにより、処理ブロック間のデータ転送量を低減するとともに高速な動画再生が行えるという効果を生む。
(第1の実施例)
図1は、本発明第1の実施例による、モーションJPEG動画再生装置の概略構成を示すブロック図である。
図1は、本発明第1の実施例による、モーションJPEG動画再生装置の概略構成を示すブロック図である。
図において、101はCPU(中央演算処理装置)であり、モーションJPEG動画データファイルの読み込みや、フレームデータへの切り出し、後述のJPEGデコーダーへのデータ転送処理などの制御、あるいはキーボード106からの入力に応じてアプリケーションの実行などを行う。このCPU101には、ROM102、RAM103、外部メモリコントローラ104、JPEGデコーダー106、キーボード109が接続されている。
102はROM(リードオンリメモリ)であり、アプリケーション処理など本装置の制御を行うためのプログラムコードが格納されている。
103はRAM(ランダムアクセスメモリ)であり、ファイルとして読み込まれたモーションJPEGデータを一時的に格納する領域、ファイルから切り出されたフレームデータやこのフレームデータから切り出された量子化テーブルなどを一時的に格納する領域、さらにプログラム実行に必要なワークエリア、一時退避領域などを含んでいる。
104は外部メモリコントローラであり、外部フラッシュメモリカードなどを装置に挿入して使用するための制御を行うものである。また、105は外部フラッシュメモリカードであり、このカード中に動画データをファイルとして格納することができる。外部フラッシュメモリカードとしてはコンパクトフラッシュ(登録商標)カード、SDカードなどが現在実用化されている。
106はJPEGデコーダーであり、CPU101から転送されたJPEGデータを復号してYUVデジタルデータとして表示コントローラ107へデータ転送する機能を備えている。このJPEGデコーダー106は、JPEG復号処理を行うハードウエアと復号処理などをコントロールするためのマイクロプロセッサおよび制御ファームウエアで構成されている。
107は表示コントローラであり、表示器108の制御を行う。また、アプリケーション実行において表示されるグラフィックデータをRGBデジタルデータとしてCPUから受け取り、表示器108へ出力する機能、また、JPEGデコーダー106において復号されたYUVデジタルデータを受け取り、RGBフォーマットへ変換して表示器108へ出力する機能なども含んでいる。
108は表示器であり、本実施例ではTFT方式の液晶表示器となっている。
109はキーボードであり、オペレータからの操作に応じてアプリケーションの各種処理が実行される。このキーボードには動画再生の開始、停止などの指示ボタンなどが含まれる。
図2に、モーションJPEG動画データおよびJPEG静止画データのデータ構造を示す。
図において、201はモーションJPEG動画データのデータ構造を表す図、204はJPEG静止画データのデータ構造を表す図である。
201において、202はモーションJPEG用のヘッダデータであり、画像サイズやフレーム数、時間などモーションJPEGを再生する際に参照される各種情報が格納されている。203は1フレーム分のJPEG静止画データが格納されている領域であり、以降203と同様のフレームデータが動画のフレーム数だけ格納されている。
次に204において、205はJPEGデータの先頭を示すためのSOIマーカーである。206はJPEGヘッダ情報であり、このヘッダ情報にはフレームヘッダ、スキャンヘッダ、量子化テーブル、ハフマンテーブルなどのデータが含まれている。207は量子化テーブルであり、通常輝度成分用と色差成分用の2種類のテーブルを持っている。また、圧縮率の違いによりそれぞれのテーブルを複数セット持っている場合もある。208は符号化されたJPEG圧縮データ本体である。復号化する場合はこの圧縮データ本体に対して復号処理を行う。209はJPEGデータの末尾を示すためのEOIマーカーである。
以上説明したように、モーションJPEG動画データはJPEG静止画データの集合体であり、またそれぞれのJPEG静止画データにおける画像サイズや圧縮率などの特性のほとんどの項目は、システムで一意に決められたり、モーションJPEGヘッダに記述されていて情報を得ることができる。しかしながら圧縮率を決めるパラメータのひとつである量子化テーブルは、個々のフレームのJPEGヘッダに埋め込まれており、復号化する場合にはこのヘッダ中の量子化テーブルを参照して復号処理を行う必要がある。ただし、ひとつの動画データ内ではこれは共通である場合がほとんどである。
次に、図3に、量子化テーブルの例を示す。
図において、301は輝度成分における量子化テーブル、302は色差成分における量子化テーブルである。このテーブルは8×8画素のブロック単位で周波数分解された8×8マトリクスのデータに対して実行されるための256個のデータ群である。
以下、本発明第1の実施例に示すモーションJPEG動画再生装置における再生処理の詳細を説明する。
図4は、動画再生動作におけるCPU101の処理の詳細を表わすフローチャートである。
図において、キーボード109中の再生ボタンなどにより再生動作が指示された場合には、まずステップS401において、外部フラッシュメモリカード105に格納されているモーションJPEG動画ファイルの読み込みを実行する。読み込まれたファイルはいったんRAM103に一時的に保存される。次にステップS402において、読み込まれたモーションJPEGデータから先頭のフレームデータを切り出し、さらに切り出したフレームデータからJPEGヘッダ部を除いたJPEG圧縮データのみを切り出す。さらにステップS403において、S402で分離されたJPEGヘッダデータより量子化テーブルを切り出す処理を実行する。
ステップS404では、S403で切り出された量子化テーブルをJPEGデコーダー106へ転送する処理を行い、ステップS405において、JPEGデコーダー106からフレームデータの送信要求があるまでウエイトする。ここでデータ転送要求を確認すると、ステップS406において、フレームデータからJPEG圧縮データのみに切り出されたデータをJPEGデコーダー106へ転送する処理を実行する。
ここで、ステップS407において、読み込んだモーションJPEGファイル中の最後のフレームかどうかをチェックし、最後のフレームの場合には、ステップS409においてJPEGデコーダー106に対してフレーム終了通知を行い、処理を終了する。また、ステップS407において最後のフレームでない場合には、ステップS408において、次のフレームデータに対してS402と同様な切り出し処理を行い、ステップS405へ戻る。以下、フレームが終了するまでS405以降の処理を繰り返す。
図5は、動画再生動作において、JPEGデコーダー106中のファームウエアが実行する制御の詳細を表わすフローチャートである。
図において、モーションJPEG再生処理が開始されると、まずステップS501において、CPU101から量子化テーブルデータが送信されてくるまでウエイトする。ここで、量子化テーブルデータを受信した場合は、ステップS502において、受信した量子化テーブルデータをデコードパラメータとしてデコーダーハードウエアにセットする処理を行う。
それから、ステップS503において、CPU101に対して、JPEGフレームデータの要求信号を出し、ステップS504において、フレームデータの受信処理を実行する。ここで受信するフレームデータは、図4ステップS402またはS408で切り出されたデータであり、JPEGヘッダを含まない圧縮データのみのデータである。そして、ステップS505において、受信した圧縮データに対して、ハードウエアデコーダーを使用したJPEG復号化処理が実行される。この復号化処理ではS502でセットされた量子化テーブルが使用される。
復号化されたJPEGデータはいったんデコーダ106内のメモリに一時的に保存され、ステップS506において、フレーム再生時間になるまでウエイトする。フレーム再生時間は、JPEGデコーダー106内の内部タイマーによって計時され、フレームレートに応じた時間間隔で通知される。例えば15fpsでは約67ms間隔、30fpsでは約33ms間隔となる。
ここで、フレーム再生が通知された場合は、ステップS507において、S505でメモリに保存されている復号化データを表示コントローラ107に出力する処理を実行する。この復号化データはYUV4:2:2形式のデータである。表示コントローラ107はYUVデータをRGBデータに変換して表示器108に出力することにより、JPEGデータの表示が行われる。それからステップS508において、CPU101からフレーム終了通知が行われたかどうかをチェックし、行われた場合には処理を終了する。終了通知が行われていない場合には、再びS503のフレーム要求信号の出力処理へ戻り、復号処理を繰り返す。
(第2の実施例)
第1の実施例では、CPU101が先頭のJPEGフレームデータから量子化テーブルを切り出して、JPEGデコーダー106に転送するような実施形態であったが、第2の実施例では、量子化テーブルの切り出し処理をJPEGデコーダー側で行うような実施形態について説明する。
第1の実施例では、CPU101が先頭のJPEGフレームデータから量子化テーブルを切り出して、JPEGデコーダー106に転送するような実施形態であったが、第2の実施例では、量子化テーブルの切り出し処理をJPEGデコーダー側で行うような実施形態について説明する。
図6は、第2の実施例における動画再生動作での、CPU101の処理の詳細を表わすフローチャートである。
図において、キーボード109中の再生ボタンなどにより再生動作が指示された場合には、まずステップS601において、外部フラッシュメモリカード105に格納されているモーションJPEG動画ファイルの読み込みを実行する。読み込まれたファイルはいったんRAM103に一時的に保存される。次にステップS602において、読み込まれたモーションJPEGデータから先頭のフレームデータを切り出す処理を行う。切り出されたフレームデータはJPEGヘッダおよび圧縮データ両方が含まれるフレームデータである。
次にステップS603において、JPEGデコーダー106からフレームデータの送信要求があるまでウエイトする。ここでデータ転送要求を確認すると、ステップS604において、S602で切り出されたヘッダ付きの先頭フレームデータをJPEGデコーダー106へ転送する処理を実行する。ここで、ステップS605において、読み込んだモーションJPEGファイル中の最後のフレームかどうかをチェックし、最後のフレームの場合には、ステップS609においてJPEGデコーダー106に対してフレーム終了通知を行い、処理を終了する。
また、ステップS605において最後のフレームでない場合には、ステップS606において、次のフレームデータに対してS602と同様な切り出し処理を行い、さらに切り出したフレームデータからJPEGヘッダ部を除いたJPEG圧縮データのみを切り出す。それから、ステップS607において、JPEGデコーダー106からフレームデータの送信要求があるまでウエイトする。ここでデータ転送要求を確認すると、ステップS608において、フレームデータからJPEG圧縮データのみに切り出されたデータをJPEGデコーダー106へ転送する処理を実行する。それから、S605のフレームデータ終了判断処理へ戻る。以下、フレームが終了するまでS605以降の処理を繰り返す。
図7は、第2の実施例における動画再生動作での、JPEGデコーダー106中のファームウエアが実行する制御の詳細を表わすフローチャートである。
図において、モーションJPEG再生処理が開始されると、まずステップS701において、CPU101に対して、JPEGフレームデータの要求信号を出し、次にステップS702において、先頭フレームデータの受信処理を実行する。ここで受信するフレームデータは、図6ステップS602で切り出された、JPEGヘッダを含んだデータである。次に、ステップS703において、受信したJPEGデータから、ヘッダに含まれている量子化テーブルデータを切り出す処理を実行する。それから、ステップS704において、切り出した量子化テーブルデータをデコードパラメータとしてデコーダーハードウエアにセットする処理を行う。
次にステップS705において、受信したJPEGデータに対して、ハードウエアデコーダーを使用したJPEG復号化処理が実行される。この復号化処理ではS704でセットされた量子化テーブルが使用される。
復号化されたJPEGデータはいったんデコーダ106内のメモリに一時的に保存され、ステップS706において、フレーム再生時間になるまでウエイトする。フレーム再生時間の検出は、図5ステップS506で説明したのと同様の処理によって行われる。
ここで、フレーム再生が通知された場合は、ステップS707において、S705でメモリに保存されている復号化データを表示コントローラ107に出力する処理を実行する。表示コントローラ107はYUVデータをRGBデータに変換して表示器108に出力することにより、JPEGデータの表示が行われる。それからステップS708において、CPU101からフレーム終了通知が行われたかどうかをチェックし、行われた場合には処理を終了する。
終了通知が行われていない場合には、ステップS709において、フレーム要求信号の出力処理を実行し、ステップS710において、CPU101からのフレームデータの受信処理を実行する。ここで受信するフレームデータは、図6ステップS606で切り出された、JPEGヘッダを含まないデータである。それからS705のJPEG復号化処理へ戻り、以下、復号処理を繰り返す。
(第3の実施例)
第1、第2の実施例では、モーションJPEGファイルの読み込みやフレーム切り出し処理はCPU101によるソフトウエアで、JPEG復号化処理は別の専用ハードウエアで行うような実施形態であったが、本発明はこれに限定されるものではない。第3の実施例では、同一のCPU内の、異なるプロセスでこれらの処理を分担するような実施形態について説明する。
第1、第2の実施例では、モーションJPEGファイルの読み込みやフレーム切り出し処理はCPU101によるソフトウエアで、JPEG復号化処理は別の専用ハードウエアで行うような実施形態であったが、本発明はこれに限定されるものではない。第3の実施例では、同一のCPU内の、異なるプロセスでこれらの処理を分担するような実施形態について説明する。
一般的に、異なるプロセスでは仮想メモリによる異なるメモリ空間で処理が実行されており、メモリ内のデータを共有することができない。従って、プロセス間でデータの受け渡しを行う場合には、決められたプロセス間通信の手段を利用することになる。例えばUNIX(登録商標)オペレーティングシステムでは、通信インターフェースとしてソケットやパイプといった手段がある。当然ながら受け渡しのデータ量が大きい場合にはそれだけ処理の速度の低下を招くことになる。
図8は、第3の実施例におけるプロセス処理の概念図である。
図において、801は「フレーム切り出しプロセス」であり、主にモーションJPEGファイルのハンドリングを行うプロセスであり、802は「JPEG復号プロセス」であり、JPEG復号処理を主に行うプロセスである。また、803は2つのプロセス間でのデータの受け渡しを表わしている。
801では、モーションJPEGファイルの読み出し、および読み出したファイルから各フレームデータを切り出す処理、また、切り出された1フレーム目のデータから量子化テーブルデータを切り出す処理、量子化テーブルデータをプロセス802へ転送する処理、以下の各フレームデータからJPEGヘッダを除いたJPEG圧縮データのみをプロセス802へ転送する処理などを行う。
また802では、プロセス801から転送された量子化テーブルをJPEG復号パラメータとして設定する処理、同じく転送された各フレームのJPEG圧縮データを復号する処理、復号されたフレームデータを表示する処理などが行われる。
101 CPU
102 ROM
103 RAM
104 外部メモリコントローラ
105 外部フラッシュメモリカード
106 JPEGデコーダー
107 表示コントローラ
108 表示器
109 キーボード
102 ROM
103 RAM
104 外部メモリコントローラ
105 外部フラッシュメモリカード
106 JPEGデコーダー
107 表示コントローラ
108 表示器
109 キーボード
Claims (4)
- モーションJPEG形式の動画圧縮ファイルから1フレーム分のJPEGデータを切り出す手段と、切り出されたJPEGフレームデータから量子化テーブルを取り出す手段と、切り出されたJPEGフレームからJPEGヘッダを除く圧縮データ部のみを取り出す手段を持つ第1の処理ブロックと、第1の処理ブロックから転送されたJPEG圧縮データに対してJPEG復号処理を行う第2の処理ブロックにおいて、第1の処理ブロックでは、モーションJPEGファイルの先頭フレームに格納されている量子化テーブルのみを第2の処理ブロックにあらかじめ転送し、以降は、JPEGヘッダを除く圧縮データ部のみを先頭フレームから再帰的に転送するような制御と、第2の処理ブロックでは、第1の処理ブロックから最初に転送された量子化テーブルを使用して、以降受け取ったJPEG圧縮データの復号処理を再帰的に実行するような制御により、モーションJPEG動画データの復号処理を行うことを特徴とする制御方法。
- モーションJPEG形式の動画圧縮ファイルから1フレーム分のJPEGデータを切り出す手段と、切り出されたJPEGフレームからJPEGヘッダを除く圧縮データ部のみを取り出す手段を持つ第1の処理ブロックと、第1の処理ブロックから転送されたJPEGフレームデータから量子化テーブルを取り出す手段と、第1の処理ブロックから転送されたJPEG圧縮データに対してJPEG復号処理を行う手段を持つ第2の処理ブロックにおいて、第1の処理ブロックでは、モーションJPEGファイルから切り出した先頭フレームのJPEGデータを第2の処理ブロックに転送し、以降のフレームは、JPEGヘッダを除く圧縮データ部のみを再帰的に転送するような制御と、第2の処理ブロックでは、第1の処理ブロックから最初に転送された先頭フレームデータから取り出した量子化テーブルを使用して、先頭フレームデータおよび以降受け取ったJPEG圧縮データの復号処理を再帰的に実行するような制御により、モーションJPEG動画データの復号処理を行うことを特徴とする制御方法。
- 第1の処理ブロックおよび第2の処理ブロックはそれぞれ独立したハードウエアブロックであることを特徴とする、請求項1、2記載の制御方法。
- 第1の処理ブロックおよび第2の処理ブロックはそれぞれ、同一CPU内で実行される独立した制御プロセスであることを特徴とする、請求項1、2記載の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005232107A JP2007049465A (ja) | 2005-08-10 | 2005-08-10 | 動画再生における制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005232107A JP2007049465A (ja) | 2005-08-10 | 2005-08-10 | 動画再生における制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007049465A true JP2007049465A (ja) | 2007-02-22 |
Family
ID=37851931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005232107A Withdrawn JP2007049465A (ja) | 2005-08-10 | 2005-08-10 | 動画再生における制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007049465A (ja) |
-
2005
- 2005-08-10 JP JP2005232107A patent/JP2007049465A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210076051A1 (en) | Coding apparatus, coding method, decoding apparatus, and decoding method | |
JP4502392B2 (ja) | 画像処理装置及びその制御方法 | |
JP2000278685A (ja) | 可変長符号化バイナリ・ビットストリームの処理方法 | |
EP2768230A1 (en) | Image processing device | |
JP2004112526A (ja) | 画像処理装置、画像形成装置、プログラム及び記憶媒体 | |
JP2007036339A (ja) | 画像配信システム | |
JP2004282382A (ja) | ネットワーク端末装置 | |
JP2007013697A (ja) | 画像受信装置及び画像受信方法 | |
JP2007049465A (ja) | 動画再生における制御方法 | |
EP1401207A2 (en) | Image processing device, image forming apparatus, program, and a computer storage medium | |
JP2011139361A (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP4525726B2 (ja) | 復号装置、復号プログラム及び画像処理装置 | |
JP4720683B2 (ja) | Jpeg復号器 | |
JP4329429B2 (ja) | 画像転送装置、画像転送方法、画像転送プログラム | |
US10674172B2 (en) | Image processing apparatus, image processing method, and computer-readable recording medium | |
JP2005045797A (ja) | 画像データの伝送に要する帯域幅を縮小するための方法及び装置 | |
JP2016103808A (ja) | 画像処理装置、画像処理方法及びプログラム | |
JPH0488749A (ja) | 画像処理装置 | |
JP2001128194A (ja) | 立体映像処理装置、立体映像処理方法及び記憶媒体 | |
JP2021064979A (ja) | 符号化装置、符号化方法及びプログラム、復号装置、復号方法及びプログラム | |
JPH07195757A (ja) | ページプリンタ | |
JP3096134B2 (ja) | 文書作成編集装置及びその方法 | |
JP2005244773A (ja) | 画像処理装置 | |
JP4076024B2 (ja) | 画像圧縮伸長装置およびデジタル映像システム | |
JPH0325828B2 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20081104 |