JP2008205681A - ビットストリーム解析装置及びビットストリーム解析方法 - Google Patents
ビットストリーム解析装置及びビットストリーム解析方法 Download PDFInfo
- Publication number
- JP2008205681A JP2008205681A JP2007037570A JP2007037570A JP2008205681A JP 2008205681 A JP2008205681 A JP 2008205681A JP 2007037570 A JP2007037570 A JP 2007037570A JP 2007037570 A JP2007037570 A JP 2007037570A JP 2008205681 A JP2008205681 A JP 2008205681A
- Authority
- JP
- Japan
- Prior art keywords
- start code
- bitstream
- bit stream
- analysis
- analyzing
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Time-Division Multiplex Systems (AREA)
Abstract
【課題】従来のビットストリームの解析方法では、正常なビットストリームや、ピクチャスタートコードやアクセスユニットデリミッターがPESヘッダの直後に存在するようなビットストリームに対しては無駄な処理時間が発生し、解析効率が落ちていた。
【解決手段】スタートコードプリフィックス検索開始前に検索開始位置の直後にスタートコードが存在するか確認する手段を有し、スタートコードが存在する場合にはスタートコードプリフィックスの検索を行わずにスタートコードの種類を判断する。スタートコードプリフィックス検索開始位置の直後にスタートコードが存在しない場合にはスタートコードプリフィックスを検索することによってスタートコードを検出することにより無駄な処理を省き、解析効率を向上させる。
【選択図】図16
【解決手段】スタートコードプリフィックス検索開始前に検索開始位置の直後にスタートコードが存在するか確認する手段を有し、スタートコードが存在する場合にはスタートコードプリフィックスの検索を行わずにスタートコードの種類を判断する。スタートコードプリフィックス検索開始位置の直後にスタートコードが存在しない場合にはスタートコードプリフィックスを検索することによってスタートコードを検出することにより無駄な処理を省き、解析効率を向上させる。
【選択図】図16
Description
本発明は、あるデータのまとまりの先頭をスタートコードにより判断できる構造のビットストリームにおいて、ビットストリーム中のスタートコードを検出してビットストリームの解析を行い、データ転送を行うビットストリーム解析装置、方法、プログラムおよび集積回路に関する。
近年、テレビ、DVDに見られるように、ディジタル符号化と多重化したメディアが急速に普及してきている。
前記ディジタルメディアでは、映像信号についてはMPEG(Moving Picture Experts Group)規格で規定された符号化方式が一般的には採用されており、例えば映像にはMPEG−2 VideoやMPEG−4 AVC/H.264の規格が採用されている。音声についてはMPEG規格以外の符号化方式が採用されることもある。映像、音声の符号化データの多重化はMPEG−2 System規格が採用されている。
MPEG規格のビットストリームは、階層構造によってデータのまとまりを構成している。また、1つの階層において複数種類のデータが含まれる場合もある。符号化と多重化されたビットストリームの各階層またはデータの先頭には、その先頭を判断できるようにするためにスタートコードと呼ばれる特定のビットパターンが挿入されている。
スタートコードにはデータ中にユニークにしか存在しないビットパターンが採用されている。ビットストリーム中には、スタートコード以外にこのスタートコードと同じビットパターンとなる部分はなく、階層またはデータの種類を明確に判断できるようになっている。
MPEG−2 Video規格のスタートコードを図1に、MPEG−4 AVC/H.264規格のスタートコードを図2に、MPEG−2 System規格のスタートコードを図3に示す。
MPEG規格では、先頭から23ビットが0、次の1ビットが1であるスタートコードプリフィックスというパターン(101、201、301)とその後に続くスタートコードの種類の情報(102、202、302)でビットストリームの階層またはデータの種類を判断できる。
MPEG規格で符号化された映像は1画面単位で復号化される。そのため、ビットストリームにおいて1画面の先頭がわからなければ映像の再生ができない。この1画面の映像データの先頭は、MPEG−2 Video規格ではピクチャスタートコード(103)で、MPEG−4 AVC/H.264規格ではアクセスユニットデリミッターを示すスタートコード(203)で判断される。
また、MPEG規格の映像は3種類ある。映像の特殊再生においてはこれらの映像の種類を判断して表示することが要求される。この映像種別は、MPEG−2 Video規格では図4に示すようにピクチャスタートコード(401)の後に続く映像種別の情報(402)で、MPEG−4 AVC/H.264規格では図5に示すようにアクセスユニットデリミッターのスタートコード(501)の後に続く映像種別の情報(502)で判断できる。
MPEG−2 System、MPEG−2 Video及びMPEG−4 AVC/H.264規格において、ビットストリーム上の1画面の映像の先頭位置の規定は無い。ピクチャスタートコードやアクセスユニットデリミッターを示すスタートコードを検出するには、ビットストリームの先頭からスタートコードプリフィックスのパターンを検索し、スタートコードプリフィックスを検出すると、その後に続くデータ情報がピクチャスタートコードやアクセスユニットデリミッターを示すスタートコードを指す値であるか判断するのが一般的である。
MPEG−2 System規格による多重化では、映像、音声の符号化データであるエレメンタリーストリームに再生時刻情報等を付加して多重化するためにPES(Packetized Elementary Stream)パケット化を行う。そしてPESパケット化されたエレメンタリーストリームは、複数のPESパケットを多重化し伝送するためにTS(Transport Stream)パケット化される。なお、PESパケットは可変長、TSパケットは固定長である。
MPEG−2 System規格によるエレメンタリーストリームの多重化を図6に示す。
MPEG−2 System規格により多重化されたビットストリームに対して分離化するためには、PESヘッダの先頭を検出する必要がある。PESヘッダ(601)の先頭はMPEG−2 System規格のスタートコードで判断できる(602)。
図7はTSパケットの構成図である。TSヘッダ(701)において、ペイロードユニットスタートインジゲータ(702)が“1”であればTSパケット(703)のペイロード(704)の先頭がPESヘッダであると定められている。また、アダプテーションフィールドコントロール(705)によって、付加情報やスタッフィングバイトを含むアダプテーションフィールド(706)の有無を判断することができる。また、TSヘッダ(701)は4byteの固定長である。
TSヘッダ(701)は固定長であり、またアダプテーションフィールド(706)の長さはアダプテーションフィールドレングス(707)に示されているため、TSパケット(703)のペイロード(704)の先頭位置はTSパケット(703)の先頭からのバイト数で容易に算出することができる。すなわち、PESヘッダの先頭位置はペイロードユニットスタートインジゲータ(702)の判断と、アダプテーションフィールドコントロール(705)及びアダプテーションフィールドレングス(707)から算出可能である。
しかし、ビットストリームのエラー、例えば、ペイロードユニットスタートインジゲータの値が“0”であるにもかかわらずそのTSパケットにPESヘッダが含まれていた場合や、図8に示すようにPESヘッダ(801)がTSパケット(802)のペイロード(803)の先頭から始まらない場合にも、映像を復号化するために適切に多重分離化することが望まれている。
この場合、PESヘッダの先頭位置はペイロードユニットスタートインジゲータ(702)の判断と、アダプテーションフィールドコントロール(705)及びアダプテーションフィールドレングス(707)から算出するのではなく、スタートコードプリフィックスを検索することによってPESヘッダを検出しなければならない。
PESパケットにおけるピクチャスタートコードの位置関係を図9に示す。
MPEG−2 System、MPEG−2 Video及びMPEG−4 AVC/H.264規格において、ビットストリーム上のピクチャスタートコード及びアクセスユニットデリミッターの位置の規定は無いため、どこに存在するかは検索してみないとわからない(901)。
しかし、エレメンタリーストリームがPESパケット化される際に、エレメンタリーストリームのスタートコードがPESヘッダにより分断される場合があるため、単純にスタートコードプリフィックスを検索することによってピクチャスタートコードやアクセスユニットデリミッターを示すスタートコード検出する方法は、これらのスタートコードを検出するためには不十分である。ピクチャスタートコードがPESヘッダにより分断された場合の例を図10に示す。
1001はピクチャスタートコードがスタートコードプリフィックス(1002)とスタートコードの種類の値(1005)がPESヘッダにより分断された例である。この場合、最初のスタートコードプリフィックス(1002)を検出後、次のバイト(1003)をスタートコードの種類の値として確認すると“0x00”であるので、この時点でピクチャスタートコードの検出であると誤るため、そこに続く1003以降のデータを符号化データとして扱い、PESヘッダのスタートコードプリフィックス(1004)を検出できない。
また1006、1007はピクチャスタートコードのスタートコードプリフィックスがPESヘッダにより分断された例である。この場合、PESヘッダの前にあるピクチャスタートコードのスタートコードプリフィックスの一部(1008、1009)は、PESヘッダのスタートコードプリフィックスを検出時に符号化データとして処理されるため、PESヘッダの処理の後にビットストリームの解析を行っても1010、1011以降のデータを符号化データとして扱い、スタートコードプリフィックスを検出できない。
このような場合でも適切に多重分離化することが望まれている。
以下にビットストリームの解析装置と方法について説明する。
図11は従来(特許第3237641号公報)のビットストリーム解析装置のブロック図である。図11において1101は入力バッファであり、入力されたビットストリームをバッファリングする。1102はスタートコードプリフィックス検出手段、1103はスタートコード判断手段、1104はビットストリーム解析手段である。
スタートコードプリフィックス検出手段(1102)は入力バッファ(1101)内のビットストリームにおいてスタートコードプリフィックスを検索する。スタートコードプリフィックス検出手段(1102)によりビットストリームからスタートコードプリフィックスが検出されると、スタートコード判断手段(1103)はスタートコードプリフィックスの後に続くスタートコードの種類を示す値を確認し、解析を必要とするスタートコードであるか判断する。解析が必要であればスタートコードを検出したことをビットストリーム解析手段(1104)に通知し、解析が不要であればスタートコードを検出したことをビットストリーム解析手段(1104)に通知せず、ビットストリーム転送手段(1105)により出力手段へのビットストリームの転送を行い、スタートコードプリフィックスの検索を再開する。
ビットストリーム解析手段(1104)が解析を終了すればビットストリーム転送手段(1105)により必要とするビットストリームの出力を行なう。
従来のビットストリーム解析処理のフローチャートを図12に示す。以下、図12を参照してビットストリームがエラーではなく、ピクチャスタートコードがPESヘッダの直後に存在するようなストリームに対して、ピクチャスタートコードの検索処理とPESヘッダの検索処理を説明する。
検索開始位置を仮にTSヘッダの直後としておく(1201)。アダプテーションフィールドコントロールの値の確認を行い(1202)、アダプテーションフィールドが無い場合には、仮に算出した位置を検索開始位置とし、アダプテーションフィールドが有る場合には、仮に算出した位置にアダプテーションフィールドレングスを加算した値を検索開始位置とする(1203)。
スタートコードプリフィックスを検索するためにスタートコードプリフィックス検出手段を起動する(1204)。スタートコードプリフィックス検出手段が入力バッファのビットストリームに対してスタートコードプリフィックスを検出して、またはスタートコードプリフィックスを検出せずに検索を終了することを待つ(1205)。スタートコードプリフィックス検出手段の処理終了要因の確認を行い(1206)、スタートコードプリフィックスを検出せずに検索を終了した場合にはビットストリーム解析処理を終了する。
スタートコードプリフィックスを検出した場合は、PESパケットのスタートコードの検出であるかの確認を行い(1207)、PESパケットのスタートコードを検出した場合には、1008、1009のようにエレメンタリーストリームのスタートコードプリフィックスの一部を検出している可能性があるので、PESヘッダ解析処理後にリカバリーできるようにスタートコードプリフィックスの前の符号化データを記憶し(1212)、PESヘッダの先頭を検出したためPESヘッダの解析を行う(1213)。PESパケットのスタートコードではなかった場合は、ピクチャスタートコードの検出であるかの確認を行う(1208)。PESパケットのスタートコードの確認(1207)とピクチャスタートコードの確認(1208)は順番が逆であってもよい。ピクチャスタートコードを検出した場合にはスタートコードの解析(1209)を行った後、1001のようにスタートコードがPESヘッダにより分断されていないかの確認を行い(1210)、分断されていなかった場合にはピクチャスタートコードを検出したためエレメンタリーストリームの解析を行い(1211)、その後再度スタートコードプリフィックスを検索するためにスタートコードプリフィックス検出手段を起動する(1204)。分断されていた場合には、PESヘッダ解析処理後にリカバリーできるようにスタートコードプリフィックスの検出状態を記憶し(1212)、PESヘッダの解析を行う(1213)。PESヘッダ解析後は、PESヘッダ直前のスタートコードプリフィックス検出状態をリカバリー(1214)してから、再度スタートコードプリフィックスを検索するためにスタートコードプリフィックス検出手段を起動する(1204)。
PESパケットのスタートコードでもピクチャスタートコードでもなかった場合には再度スタートコードプリフィックスの検索を行う。以上の処理を繰り返すことにより、ビットストリーム解析処理を行う。
なお、MPEG−4 AVC/H.264規格に対しては、ピクチャスタートコードをアクセスユニットデリミッターのスタートコードに置き換えれば、図12のフローチャートで同様に解析することができる。
図12のフローチャートによりスタートコードプリフィックス検索処理をハードウェアによって行った場合のプロセッサ状態を図13に示す。以下、図13を参照してスタートコードプリフィックス検索処理をハードウェアによって行った場合のプロセッサ状態を説明する。
プロセッサにおいてビットストリーム解析処理のタスクが動作し、T1のタイミングでスタートコードプリフィックス検索処理を行うハードウェアを起動する。ビットストリーム解析処理のタスクはここからハードウェアがスタートコードプリフィックスを検出するのを待つため、他のタスクへのタスク切り替え処理を行う(1301)。検索開始位置直後にスタートコードプリフィックスが存在していた場合、ハードウェアはT2のタイミングのように、動作を開始してもすぐに停止する。
一方プロセッサはタスク切り替え後、ビットストリーム解析処理以外のタスクが動作している(1302)。そのため、少なくとも次のタスク切り替え後のT3のタイミングまでは、ビットストリーム解析処理のタスクは動作することができない。
したがって、ビットストリームがエラーではなく、ピクチャスタートコードやアクセスユニットデリミッターがPESヘッダの直後に存在するようなストリームに対しては、ハードウェアの起動後のタスク切り替え処理(1301)と、ビットストリーム解析処理以外のタスクが動作し次のタスクが動作する時のタスク切り替え処理(1303)の、少なくとも2回のタスク切り替え処理を行うこと、及びタスク切り替えによりビットストリーム解析処理以外のタスクを動作させる(1302)ことはビットストリーム解析処理にとっては非効率的である。
PESヘッダとピクチャスタートコードを含み、前記ビットストリームの条件を満たすTSパケットに対しての従来のビットストリーム解析処理のフローのパスを図14に太線で示す。
図14に示すように、従来の技術では前記TSパケットに対して、スタートコードプリフィックス検出手段の起動(1401)、スタートコードプリフィックス検索終了待ち(1402)、スタートコードプリフィックス検出手段の処理終了要因確認(1403)を複数回行うことになる。
特許第3237641号公報
上記の従来技術では、PESヘッダの先頭位置やピクチャスタートコードやアクセスユニットデリミッターの位置がどこにどのように存在しても確実に検出することが可能である。しかし、ビットストリームがエラーであることは少なく、また、ピクチャスタートコードやアクセスユニットデリミッターはPESヘッダの直後に存在するようにPESパケット化されることが多い。そのようなストリームに対してスタートコードプリフィックスの検索処理をハードウェアによって行うと、無駄な処理時間が発生し、かつ発生頻度も多く、解析効率が落ちると言う問題点があった。
本発明は上記従来例の問題点を解決し、正常なビットストリームや、ピクチャスタートコードやアクセスユニットデリミッターがPESヘッダの直後に存在するようなビットストリームに対しては無駄な処理時間を発生させず、解析効率を向上させ、かつ、エラーストリームや、ピクチャスタートコードやアクセスユニットデリミッターがPESヘッダの直後にないような場合においても確実にPESヘッダ、ピクチャスタートコード及びアクセスユニットデリミッターを検出できるようにすることを目的とする。
上記の目的を達成するために本発明のビットストリーム解析装置においては、スタートコードプリフィックス検索開始前に検索開始位置の直後にスタートコードが存在するか確認する手段を有し、スタートコードが存在する場合にはスタートコードプリフィックスの検索を行わずにスタートコードの種類を判断する。スタートコードプリフィックス検索開始位置の直後にスタートコードが存在しない場合にはスタートコードプリフィックスを検索することによってスタートコードを検出することを特徴とする。
以上のように本発明を用いることにより、正常なビットストリームや、ピクチャスタートコードやアクセスユニットデリミッターがPESヘッダの直後に存在するようなビットストリームに対しては無駄な処理時間を発生させず、解析効率を向上させ、かつ、エラーストリームや、ピクチャスタートコードやアクセスユニットデリミッターがPESヘッダの直後にないような場合においても確実にPESヘッダ、ピクチャスタートコード及びアクセスユニットデリミッターの検出が可能である。
また、正常なビットストリームや、ピクチャスタートコードやアクセスユニットデリミッターがPESヘッダの直後に存在するようなビットストリームに対する処理は内蔵メモリへ配置し、エラーストリームや、ピクチャスタートコードやアクセスユニットデリミッターがPESヘッダの直後にないようなビットストリームに対する処理は外部メモリへ配置することによって、回路規模の増大を抑えることが可能である。
(実施の形態1)
図15はディジタル符号化と多重化されたビットストリームの分離化、復号化を行う装置の一実施の形態を示すブロック図である。
図15はディジタル符号化と多重化されたビットストリームの分離化、復号化を行う装置の一実施の形態を示すブロック図である。
図15において1501はビットストリーム解析装置であり、入力されたビットストリームを多重分離化し、映像データを映像データバッファメモリ(1502)へ、音声データを音声データバッファメモリ(1503)へ出力する。映像データバッファメモリ(1502)の映像データは、映像データ復号化装置(1504)により復号化され映像の出力が行われる。同様に、音声データバッファメモリ(1503)の音声データは、音声データ復号化装置(1505)により復号化され音声の出力が行われる。
図16は本発明のビットストリーム解析装置の一実施の形態を示すブロック図である。
図16において1601は入力バッファであり、入力されたビットストリームをバッファリングする。1602はスタートコード検出手段であり、従来技術のスタートコードプリフィックス検出手段(1102)とスタートコード判断手段(1103)の機能を有する。1605はスタートコード確認手段、1603はビットストリーム解析手段である。
スタートコード検出手段(1602)はビットストリーム解析手段(1603)よりスタートコードの検索要求があると入力バッファ(1601)内のビットストリームにおいて解析が必要なスタートコードを検索する。解析が必要であるスタートコードを検出した場合にはスタートコードを検出したことをビットストリーム解析手段(1603)に通知し、解析が不要であるスタートコードを検出した場合にはスタートコードを検出したことをビットストリーム解析手段(1603)に通知せず、ビットストリーム転送手段(1604)により出力手段へのビットストリームの転送を行い、スタートコードの検索を再開する。
スタートコード確認手段(1605)はビットストリーム解析手段(1603)よりスタートコードの確認要求があると入力バッファ(1601)内においてスタートコードを検索しようとしている位置から後ろに続くデータがビットストリーム解析手段(1603)より確認要求されたスタートコードであるかの確認を行う。スタートコードを検索しようとしている位置から後ろに、ビットストリーム解析手段(1603)より確認要求されたスタートコードを検出した場合は、ビットストリーム解析手段(1603)に確認要求があったスタートコードを検出したことを通知する。また、スタートコードを検索しようとしている位置から後ろに続くデータがビットストリーム解析手段(1603)より確認要求されたスタートコードでなかった場合は、ビットストリーム解析手段(1603)にスタートコードを検出しなかったことを通知する。
ビットストリーム解析手段(1603)は、スタートコード検出手段(1602)よりスタートコードの検出通知を受け取った場合と、スタートコード確認手段(1605)より確認要求したスタートコードの検出通知を受け取った場合は、ビットストリームの解析を行う。スタートコード確認手段(1605)より確認要求したスタートコードを検出しなかった通知を受け取った場合は、スタートコード検出手段(1602)にスタートコードの検索の要求をする。なおビットストリーム解析手段(1603)は、ビットストリームを解析して得られる情報や、ビットストリームの解析状態によって、スタートコード検出手段(1602)とスタートコード確認手段(1605)のどちらに要求を出すか判断する。ビットストリーム解析手段(1603)が処理を終了すればビットストリーム転送手段(1604)により必要とする多重分離化されたストリームの出力を行なう。
なお、スタートコード確認手段(1605)からビットストリーム解析手段(1603)への、確認要求したスタートコードを検出しなかった通知は、確認要求したスタートコードを検出した通知が一定の時間内にないことをもって検出していないとしてもよい。
本発明のビットストリーム解析処理のフローチャートを図17に示す。以下、図17を参照してピクチャスタートコードの検索処理とPESヘッダの検索処理を説明する。
検索開始位置を仮にTSヘッダの直後としておく(1701)。アダプテーションフィールドコントロールの値の確認を行い(1702)、アダプテーションフィールドが無い場合には、仮に算出した位置を検索開始位置とし、アダプテーションフィールドが有る場合には、仮に算出した位置にアダプテーションフィールドレングスを加算した値を検索開始位置とする(1703)。次にTSヘッダ中のペイロードユニットスタートインジゲータの値を確認する(1704)。ペイロードユニットスタートインジゲータの値が“0”であった場合には、そのTSパケットにはPESヘッダは含まれていないためスタートコードを検索するためにスタートコード検出手段を起動してスタートコードを検索する(1712)。
ペイロードユニットスタートインジゲータの値が“1”であった場合には、そのTSパケットにはPESヘッダが含まれているはずなので、スタートコード確認手段により検索開始位置からの後続データを読出し(1705)、PESパケットのスタートコードであるかを確認する(1706)。PESパケットのスタートコードでなかった場合には、スタートコードを検索するためにスタートコード検出手段を起動してスタートコードを検索し(1712)、PESパケットのスタートコードであった場合はPESヘッダを解析する(1707)。
PESヘッダ解析後は、PESヘッダ直前のスタートコードプリフィックス検出状態をリカバリー(1706)してから、スタートコード確認手段によりPESヘッダの後続データを読出し(1709)、ピクチャスタートコードが存在しているかを確認する(1710)。ピクチャスタートコードが存在していなかった場合には、スタートコードを検索するためにスタートコード検出手段を起動してスタートコードを検索し(1712)、ピクチャスタートコードが存在していた場合はエレメンタリーストリームを解析する(1711)。
エレメンタリーストリーム解析後はスタートコードを検索するためにスタートコード検出手段を起動し(1712)、スタートコードを検出せずに検索を終了した場合にはビットストリーム解析処理を終了する。
スタートコード検出手段によりスタートコードを検出した場合は、PESパケットのスタートコードであるかを確認する(1713)。PESパケットのスタートコードを検出した場合には、エレメンタリーストリームのスタートコードの一部を検出している可能性があるので、PESヘッダ解析処理後にリカバリーできるようにスタートコードプリフィックスの前の符号化データを記憶し(1717)、PESヘッダを検出したためPESヘッダの解析を行う(1707)。PESパケットのスタートコードではなかった場合には、ピクチャスタートコードであるかを確認する(1714)。PESパケットのスタートコードの確認(1713)とピクチャスタートコードの確認(1714)は順番が逆であってもよい。ピクチャスタートコードを検出した場合にはスタートコードの解析(1715)を行った後、スタートコードがPESヘッダにより分断されていないかの確認を行い(1716)、分断されていなかった場合にはピクチャスタートコードを検出したためエレメンタリーストリームの解析を行う(1711)。分断されていた場合には、PESヘッダ解析処理後にリカバリーできるようにスタートコードプリフィックスの検出状態を記憶し(1717)、PESヘッダの解析を行う(1707)。
PESパケットのスタートコードでもピクチャスタートコードでもなかった場合には再度スタートコードの検索を行う。以上の処理を繰り返すことにより、ビットストリーム解析処理を行う。
なお、MPEG−4 AVC/H.264規格に対しては、ピクチャスタートコードをアクセスユニットデリミッターのスタートコードに置き換えれば、図17のフローチャートで同様に解析することができる。
従来のビットストリーム解析処理のようにスタートコード検索手段によりスタートコード検索処理を行った場合のプロセッサの状態と、本発明のビットストリーム解析処理のようにスタートコード確認手段によりスタートコード確認処理を行った場合のプロセッサ状態の比較図を図18に示す。以下、図18を参照してスタートコード検索処理を行った場合とスタートコード確認処理を行った場合のプロセッサ状態の比較を行う。
ビットストリームがエラーではなく、また、ピクチャスタートコードやアクセスユニットデリミッターがPESヘッダの直後に存在するようなビットストリームに対してスタートコード検索処理を行った場合、T1はプロセッサにおいてビットストリーム解析処理のタスクがスタートコード検索処理を行うハードウェアを起動するタイミング、T2はハードウェアがスタートコードを検出するタイミングであり、そしてT3はビットストリーム解析処理へ再びタスクが切り替えられるタイミングである。この場合、ハードウェアの起動後のタスク切り替え処理(1801)と、ビットストリーム解析処理以外のタスクが動作し次のタスクが動作する時のタスク切り替え処理(1803)の、少なくとも2回のタスク切り替え処理時間、及びタスク切り替えによりビットストリーム解析処理以外のタスクが動作する時間(1802)の非効率的な時間(1804)が発生する。
一方、前記ビットストリームに対してスタートコード確認処理を行った場合においては、T1でスタートコードの確認と検出を行うことができるため、非効率的な時間(1804)が発生しない。
PESヘッダとピクチャスタートコードを含み、前記ビットストリームの条件を満たすTSパケットに対しての本発明のビットストリーム解析処理のフローのパスを図19に太線で示す。
図19に示すように、本発明では前記TSパケットに対して、スタートコード検出手段の起動(1901)、スタートコード検索終了待ち(1902)、スタートコード検出手段の処理終了要因確認(1903)の実行回数は、従来の技術(図14)に比べて少なくなる。
なお、図11、図15、図16に示したブロック図の各機能ブロックは典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されたり、一部または全てを含むように1チップ化されても良いし、複数チップ化されても良い。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ブイLSI、ウルトラLSIと呼称されることもある。
集積回路の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)やLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適応等が可能性としてありえる。
なお、図11、図15、図16等に示したブロック図の各機能ブロックおよび図12、図14、図17、図19に示したフローチャートにおいて、中心的な部分はプロセッサおよびプログラムによっても実現される。
前記プロセッサおよびプログラムの処理を実現するLSIの一構成例を図20に示す。
図20において2001はLSIで、2002はLSIに接続されたLSIの外部にあるメモリである。外部メモリ(2002)には解析前のビットストリームのデータ、解析後のビットストリームのデータが格納される。LSIと外部メモリのデータの転送制御は外部メモリ制御部(2003)によって行われる。2004はプロセッサ、2005はプログラムの命令及びデータを格納する内蔵メモリである。内蔵メモリ(2005)にはビットストリームを解析するためのプログラムの命令及びデータが格納される。2006のハードウェアエンジンは、プロセッサの処理を補助するための手段をもつ回路である。外部メモリ制御部(2003)、プロセッサ(2004)、ハードウェアエンジン(2006)はバス(2007)により繋がっている。
図20のような内蔵メモリを搭載するLSIでは、プログラムが大規模化すると内蔵メモリの容量を大きくする必要があり、回路規模の増大に繋がる。
したがって、図21のようにLSIにキャッシュメモリ(2103)を搭載し、実行頻度が低い命令は低速だが安価な外部メモリ(2101)へ配置しておき、必要に応じてキャッシュメモリ(2103)へ配置する。また実行頻度が高い命令は高速で高価な内蔵メモリ(2102)へ配置する。このようなメモリの使用方法が主流である。
ビットストリーム解析処理においては、図12のような従来の処理構成はエラーや頻度の低いビットストリームパターンが入力されてくることを常に想定しているため、全ての命令を内蔵メモリへ配置しなければならない。したがって、従来の処理構成では図21のようにキャッシュメモリ(2103)を搭載しても無意味であり、内蔵メモリが大きくなる。すなわち回路規模が増大する。
しかし、図17の本発明の処理構成では、実行頻度の高い処理(1718)と実行頻度の低い処理(1719)を切り分けることが可能で、実行頻度の高い処理(1718)を内蔵メモリ(2102)へ配置し、実行頻度の低い処理(1719)を外部メモリ(2101)へ配置することによってキャッシュメモリ(2103)を有効活用し、内蔵メモリ(2102)が小さくなる。すなわち回路規模が縮小する。
本発明にかかるビットストリーム解析装置、方法、プログラムおよび集積回路は、あるデータのまとまりの先頭をスタートコードにより判断できる構造のビットストリームにおいて、確実にヘッダ、スタートコード及びデリミッターの検出が可能となるという効果を有し、ディジタル符号化及び多重化されたビットストリームの解析等に有用である。
1601 入力バッファ
1602 スタートコード検出手段
1603 ビットストリーム解析手段
1604 ビットストリーム転送手段
1605 スタートコード確認手段
1602 スタートコード検出手段
1603 ビットストリーム解析手段
1604 ビットストリーム転送手段
1605 スタートコード確認手段
Claims (10)
- ディジタル符号化と多重化されたビットストリームを解析するビットストリーム解析装置において、
前記ビットストリームを入力しバッファリングする入力バッファと、
前記入力バッファ内の前記ビットストリームからスタートコードを検出するスタートコード検出手段と、
前記入力バッファ内の前記ビットストリームに対しスタートコードの検索を開始する位置から後続のデータがスタートコードであるかの確認を行うスタートコード確認手段と、
前記ビットストリームを解析して得られる情報や、前記ビットストリームの解析状態によって、前記スタートコード検出手段と前記スタートコード確認手段のどちらに要求を出すかを判断し、前記スタートコード検出手段または前記スタートコード確認手段から通知を受け取り、前記ビットストリームの解析を行うビットストリーム解析手段と、
前記ビットストリーム解析手段の解析結果に従い出力手段への前記ビットストリームの転送を行うビットストリーム転送手段を有し、
前記スタートコード検出手段は、解析が必要なスタートコードを検出した場合はスタートコードを検出したことを前記ビットストリーム解析手段に通知し、
前記スタートコード確認手段は、前記ビットストリーム解析手段より確認要求されたスタートコードを検出した場合は、前記ビットストリーム解析手段に確認要求があったスタートコードを検出したことを通知し、
前記ビットストリーム解析手段は、確認要求したスタートコードを前記スタートコード確認手段が検出した場合に、スタートコードの検索を開始せずに前記ビットストリームの解析を行うことを特徴とするビットストリーム解析装置。 - 請求項1記載のビットストリーム解析装置において、
前記スタートコード検出手段は、解析が不要なスタートコードを検出した場合はスタートコードを検出したことを前記ビットストリーム解析手段に通知せず、前記ビットストリーム転送手段により出力手段へのビットストリームの転送を行い、スタートコードの検索を再開することを特徴とするビットストリーム解析装置。 - 請求項1記載のビットストリーム解析装置において、
前記スタートコード確認手段は、前記入力バッファ内の前記ビットストリームに対しスタートコードの検索を開始する位置から確認した後続のデータに対して前記ビットストリーム解析手段より確認要求されたスタートコードを検出しなかった場合は、前記ビットストリーム解析手段に確認要求があったスタートコードを検出しなかったことを通知することを特徴とするビットストリーム解析装置。 - 請求項3記載のビットストリーム解析装置において、
前記ビットストリーム解析手段は、前記スタートコード確認手段により前記入力バッファ内の前記ビットストリームに対しスタートコードの検索を開始する位置から確認した後続のデータが前記ビットストリーム解析手段より確認要求されたスタートコードでない場合には、前記ビットストリームからスタートコードを検索することによってスタートコードを検出することを特徴とするビットストリーム解析装置。 - 請求項1記載のビットストリーム解析装置において、
前記ビットストリームからスタートコードを検索することによってPESヘッダを検出することを特徴とするビットストリーム解析装置。 - ディジタル符号化と多重化されたビットストリームを解析するビットストリーム解析方法において、
前記ビットストリームを入力しバッファリングする入力バッファと、
前記入力バッファ内の前記ビットストリームからスタートコードを検出するスタートコード検出ステップと、
前記入力バッファ内の前記ビットストリームに対しスタートコードの検索を開始する位置から後続のデータがスタートコードであるかの確認を行うスタートコード確認ステップと、
前記ビットストリームを解析して得られる情報や、前記ビットストリームの解析状態によって、前記スタートコード検出ステップと前記スタートコード確認ステップのどちらに要求を出すかを判断し、前記スタートコード検出ステップまたは前記スタートコード確認ステップから通知を受け取り、前記ビットストリームの解析を行うビットストリーム解析ステップと、
前記ビットストリーム解析ステップの解析結果に従い出力ステップへの前記ビットストリームの転送を行うビットストリーム転送ステップを有し、
前記スタートコード検出手段は、解析が必要なスタートコードを検出した場合はスタートコードを検出したことを前記ビットストリーム解析ステップに通知し、
前記スタートコード確認ステップは、前記ビットストリーム解析ステップより確認要求されたスタートコードを検出した場合は、前記ビットストリーム解析ステップに確認要求があったスタートコードを検出したことを通知し、
前記ビットストリーム解析ステップは、確認要求したスタートコードを前記スタートコード確認ステップが検出した場合に、スタートコードの検索を開始せずに前記ビットストリームの解析を行うことを特徴とするビットストリーム解析方法。 - コンピュータを、
ディジタル符号化と多重化されたビットストリームを入力しバッファリングする入力バッファと、
前記入力バッファ内の前記ビットストリームからスタートコードを検出するスタートコード検出手段と、
前記入力バッファ内の前記ビットストリームに対しスタートコードの検索を開始する位置から後続のデータがスタートコードであるかの確認を行うスタートコード確認手段と、
前記ビットストリームを解析して得られる情報や、前記ビットストリームの解析状態によって、前記スタートコード検出手段と前記スタートコード確認手段のどちらに要求を出すかを判断し、前記スタートコード検出手段または前記スタートコード確認手段から通知を受け取り、前記ビットストリームの解析を行うビットストリーム解析手段と、
前記ビットストリーム解析手段の解析結果に従い出力手段への前記ビットストリームの転送を行うビットストリーム転送手段を有し、
前記スタートコード検出手段は、解析が必要なスタートコードを検出した場合はスタートコードを検出したことを前記ビットストリーム解析手段に通知し、
前記スタートコード確認手段は、前記ビットストリーム解析手段より確認要求されたスタートコードを検出した場合は、前記ビットストリーム解析手段に確認要求があったスタートコードを検出したことを通知し、
前記ビットストリーム解析手段は、確認要求したスタートコードを前記スタートコード確認手段が検出した場合に、スタートコードの検索を開始せずに前記ビットストリームの解析を行うことを特徴として機能させるためのビットストリーム解析プログラム。 - 請求項7記載のビットストリーム解析プログラムにおいて、
前記スタートコード確認手段が、前記入力バッファ内の前記ビットストリームに対しスタートコードの検索を開始する位置から確認した後続のデータに対して前記ビットストリーム解析手段に確認要求があったスタートコードを検出したことを通知した場合に、ビットストリーム解析プログラムのタスクからビットストリーム解析プログラム以外のタスクへタスク切り替えを行わないことを特徴とするビットストリーム解析プログラム。 - 請求項7記載のビットストリーム解析プログラムにおいて、
請求項7記載のプログラムを実行頻度が高い処理とし、
前記スタートコード確認手段により前記入力バッファ内の前記ビットストリームに対しスタートコードの検索を開始する位置から確認した後続のデータが前記ビットストリーム解析手段より確認要求されたスタートコードでない場合には、前記ビットストリームからスタートコードを検索することによってスタートコードを検出するプログラムを実行頻度の低い処理として、
実行頻度が高い処理のプログラムを集積回路の内蔵メモリに配置し、
実行頻度の低い処理のプログラムを集積回路の外部メモリに配置する構成を特徴とするビットストリーム解析プログラム。 - ディジタル符号化と多重化されたビットストリームを解析するビットストリーム解析装置の集積回路において、
前記ビットストリームを入力しバッファリングする入力バッファと、
前記入力バッファ内の前記ビットストリームからスタートコードを検出するスタートコード検出手段と、
前記入力バッファ内の前記ビットストリームに対しスタートコードの検索を開始する位置から後続のデータがスタートコードであるかの確認を行うスタートコード確認手段と、
前記ビットストリームを解析して得られる情報や、前記ビットストリームの解析状態によって、前記スタートコード検出手段と前記スタートコード確認手段のどちらに要求を出すかを判断し、前記スタートコード検出手段または前記スタートコード確認手段から通知を受け取り、前記ビットストリームの解析を行うビットストリーム解析手段と、
前記ビットストリーム解析手段の解析結果に従い出力手段への前記ビットストリームの転送を行うビットストリーム転送手段を有し、
前記スタートコード検出手段は、解析が必要なスタートコードを検出した場合はスタートコードを検出したことを前記ビットストリーム解析手段に通知し、
前記スタートコード確認手段は、前記ビットストリーム解析手段より確認要求されたスタートコードを検出した場合は、前記ビットストリーム解析手段に確認要求があったスタートコードを検出したことを通知し、
前記ビットストリーム解析手段は、確認要求したスタートコードを前記スタートコード確認手段が検出した場合に、スタートコードの検索を開始せずに前記ビットストリームの解析を行うことを特徴とする集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007037570A JP2008205681A (ja) | 2007-02-19 | 2007-02-19 | ビットストリーム解析装置及びビットストリーム解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007037570A JP2008205681A (ja) | 2007-02-19 | 2007-02-19 | ビットストリーム解析装置及びビットストリーム解析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008205681A true JP2008205681A (ja) | 2008-09-04 |
Family
ID=39782727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007037570A Pending JP2008205681A (ja) | 2007-02-19 | 2007-02-19 | ビットストリーム解析装置及びビットストリーム解析方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008205681A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800892A (zh) * | 2010-03-04 | 2010-08-11 | 青岛海信信芯科技有限公司 | 多媒体码流识别的方法和装置 |
WO2019239931A1 (ja) * | 2018-06-14 | 2019-12-19 | ソニー株式会社 | 画像処理装置および方法 |
-
2007
- 2007-02-19 JP JP2007037570A patent/JP2008205681A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800892A (zh) * | 2010-03-04 | 2010-08-11 | 青岛海信信芯科技有限公司 | 多媒体码流识别的方法和装置 |
CN101800892B (zh) * | 2010-03-04 | 2013-03-06 | 青岛海信信芯科技有限公司 | 多媒体码流识别的方法和装置 |
WO2019239931A1 (ja) * | 2018-06-14 | 2019-12-19 | ソニー株式会社 | 画像処理装置および方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9967579B2 (en) | Fast switching hybrid video decoder | |
EP2329654B1 (en) | Devices of digital video reception and output having error detection and concealment circuitry and techniques | |
US20060013123A1 (en) | Method and apparatus for processing transmission error in DMB system | |
KR19980073528A (ko) | 엠펙시스템 복호기장치 | |
US20080320375A1 (en) | Data transmitting apparatus and data receiving apparatus | |
KR100831186B1 (ko) | 스트림 데이터 프로세서 | |
US8769255B2 (en) | Information processing system and method of executing firmware | |
US8867900B2 (en) | Emulation prevention byte removers for video decoder | |
KR20050079418A (ko) | 에러의 전파를 방지하고 병렬 처리가 가능한 디코딩 방법및 그 디코딩 장치 | |
JP2005073253A (ja) | 高信頼復号化装置及び方法 | |
US7697537B2 (en) | System and method for using generic comparators with firmware interface to assist video/audio decoders in achieving frame sync | |
JP2008205681A (ja) | ビットストリーム解析装置及びビットストリーム解析方法 | |
JP2007267371A (ja) | データ解析装置、及びデータ解析方法 | |
JP4731343B2 (ja) | 復号装置 | |
US9578139B2 (en) | Method and system for architecture of a fast programmable transport demultiplexer using a double buffered approach | |
JP2009260643A (ja) | データストリーム解析装置、復号装置及びデータストリーム解析方法 | |
US8855130B2 (en) | Method and apparatus for demultiplexing, merging, and duplicating packetized elementary stream/program stream/elementary stream data | |
JP2005217486A (ja) | ストリーム復号装置 | |
JP2008022330A (ja) | 情報再生装置及び電子機器 | |
JP2008135133A (ja) | ビットストリーム再生装置 | |
US8098657B2 (en) | System and method for providing data commonality in a programmable transport demultiplexer engine | |
JP2011109365A (ja) | ビットストリーム処理装置 | |
US20070248318A1 (en) | System and method for flexible mapping of AV vs record channels in a programmable transport demultiplexer/PVR engine | |
JP2005348347A (ja) | 映像音声復号方法、映像音声復号装置、映像音声復号プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2008022053A (ja) | デコード装置、情報再生装置及び電子機器 |