(57)【要約】【課題】  エントリーポイントに該当するデータパケットの位置を簡単に決定でき、ハードウェア構成を低廉にできるエントリーポイント決定方法及びその装置を提供する。【解決手段】  （ａ）Ｎビットシフトレジスタに保存されたＮビットデータをｎ（ｎ＜Ｎ）ビット単位でシフトした後、シフトカウンタＣを１ほど増加させ、入力データパケットに含まれたデータを前記ｎビット単位で前記シフトレジスタに入力する段階と、（ｂ）前記シフトレジスタに保存されたＮビットデータが所定のスタートコードであるかの如何を判別する段階と、（ｃ）前記シフトレジスタに保存されたＮビットデータが前記所定のスタートコードと判別されれば、前記シフトカウンタＣ及び／またはあらかじめ貯蔵されたデータパケット情報リストを参照して、前記所定のスタートコードのヘッドが含まれたデータパケットを決定する段階と、（ｄ）前記所定のスタートコードのヘッドが含まれた前記データパケットをエントリーポイントと決定する段階とを含む。【選択図】      図４
2004335089.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）Ｎビットシフトレジスタに保存されたＮビットデータをｎ（ｎ＜Ｎ）ビット単位にシフトした後、シフトカウンタＣを１ほど増加させ、入力データパケットに含まれたデータを前記ｎビット単位に前記シフトレジスタに入力する段階と、
（ｂ）前記シフトレジスタに保存されたＮビットデータが所定のスタートコードであるかの如何を判別する段階と、
（ｃ）前記シフトレジスタに保存されたＮビットデータが前記所定のスタートコードと判別されれば、前記シフトカウンタＣ及び／またはあらかじめ保存されたデータパケット情報リストを参照し、前記所定のスタートコードのヘッドが含まれたデータパケットを決定する段階と、
（ｄ）前記所定のスタートコードのヘッドが含まれた前記データパケットをエントリーポイントとして決定する段階とを含み、
前記データパケット情報リストは以前に入力されたデータパケットそれぞれに含まれたデータの長さ情報を含むことを特徴とするエントリーポイント決定方法。
【請求項２】
前記（ｃ）段階は前記シフトカウンタＣがＮ／ｎであれば、前記入力データパケットを前記所定のスタートコードのヘッドが含まれたデータパケットを決定する段階であることを特徴とする請求項１に記載のエントリーポイント決定方法。
【請求項３】
前記（ｃ）段階は、
（ｃ１）前記シフトカウンタＣがＮ／ｎより小さければ、前記所定のスタートコードが前記入力データパケット及び少なくとも１つの以前データパケットにオーバーラップされたと判断する段階と、
（ｃ２）前記シフトカウンタＣ及び前記データパケット情報リストに含まれた以前データパケットそれぞれに含まれたデータの長さ情報を参照して前記所定のスタートコードのヘッドが含まれたデータパケットを決定する段階とを含むことを特徴とする請求項１に記載のエントリーポイント決定方法。
【請求項４】
（ｅ）エントリーポイントとして決定された前記データパケットの位置情報をエントリーポイントリストに保存する段階をさらに含むことを特徴とする請求項１に記載のエントリーポイント決定方法。
【請求項５】
前記（ａ）段階は、
（ａ１）前記入力データパケットに含まれたデータの長さを判別する段階と、
（ａ２）データの長さが０でなければ、前記入力データパケットに含まれたデータを抽出する段階と、
（ａ３）前記Ｎビットシフトレジスタに保存されたＮビットデータをｎビット単位でシフトした後、シフトカウンタＣを１ほど増加させ、前記入力データパケットから抽出されたデータを前記ｎビット単位で前記シフトレジスタに入力する段階とを含むことを特徴とする請求項１に記載のエントリーポイント決定方法。
【請求項６】
（ｆ）前記入力データパケットに含まれたデータの長さを前記入力データパケットを表すインデックスと共に前記データパケット情報リストに記録し、前記データパケット情報リストを更新する段階をさらに含むことを特徴とする請求項５に記載のエントリーポイント決定方法。
【請求項７】
前記（ｆ）段階は、前記入力データパケットに含まれたデータの長さが０であれば、前記データパケット情報リストを更新しない段階であることを特徴とする請求項６に記載のエントリーポイント決定方法。
【請求項８】
Ｎビットデータを保存するシフトレジスタと、
以前に入力されたデータパケットそれぞれに含まれたデータの長さ情報を含むデータパケット情報リストを保存するデータパケット情報リスト貯蔵部と、
前記シフトレジスタに保存されたＮビットデータをｎ（ｎ＜Ｎ）ビット単位にシフトした後、シフトカウンタＣを１ほど増加させ、入力データパケットに含まれたデータを前記ｎビット単位で前記シフトレジスタに入力させ、前記シフトレジスタに保存されたＮビットデータが所定のスタートコードと判別されれば、前記シフトカウンタＣ及び／または前記データパケット情報リスト貯蔵部に保存されたデータパケット情報リストを参照し、前記所定のスタートコードのヘッドが含まれたデータパケットを決定し、前記データパケットをエントリーポイントとして決定する制御部とを含むことを特徴とするエントリーポイント決定装置。
【請求項９】
前記制御部は前記シフトカウンタＣがＮ／ｎであれば、前記入力データパケットを前記所定のスタートコードのヘッドが含まれたデータパケットを決定することを特徴とする請求項８に記載のエントリーポイント決定装置。
【請求項１０】
前記制御部は前記シフトカウンタＣがＮ／ｎより小さければ、前記所定のスタートコードが前記入力データパケット及び少なくとも１つの以前データパケットにオーバーラップされたと判断し、前記シフトカウンタＣ及び前記データパケット情報リストに含まれた以前データパケットそれぞれに含まれたデータの長さ情報を参照して、前記所定のスタートコードのヘッドが含まれたデータパケットを決定することを特徴とする請求項８に記載のエントリーポイント決定装置。
【請求項１１】
エントリーポイントに該当する多数のデータパケットの位置情報を含むエントリーポイントリストを保存するエントリーポイントリスト貯蔵部をさらに含み、
前記制御部はエントリーポイントとして決定された前記データパケットの位置情報を前記エントリーポイントリストに記録して前記エントリーポイントリストを更新することを特徴とする請求項８に記載のエントリーポイント決定装置。
【請求項１２】
入力データパケットに含まれたデータを抽出するデータ抽出部をさらに含み、
前記制御部は前記入力データパケットに含まれたデータの長さを検出して、データの長さが０でなければ、前記データ抽出部にデータ抽出制御信号を出力し、前記データ抽出部は前記制御信号によって前記入力データパケットに含まれたデータを抽出して前記シフトレジスタに提供することを特徴とする請求項８に記載のエントリーポイント決定装置。
【請求項１３】
前記制御部は前記入力データパケットに含まれたデータの長さを前記入力データパケットを表すインデックスと共に前記データパケット情報リストに記録して、前記データパケット情報リストを更新することを特徴とする請求項１２に記載のエントリーポイント決定装置。
【請求項１４】
前記制御部は前記入力データパケットに含まれたデータの長さが０であれば、前記データパケット情報リストを更新しないことを特徴とする請求項１３に記載のエントリーポイント決定装置。
【請求項１５】
（ａ）Ｎビットシフトレジスタに保存されたＮビットデータをｎ（ｎ＜Ｎ）ビット単位でシフトした後、シフトカウンタＣを１ほど増加させ、入力データパケットに含まれたデータを前記ｎビット単位で前記シフトレジスタに入力する段階と、
（ｂ）前記シフトレジスタに保存されたＮビットデータが所定のスタートコードであるかの如何を判別する段階と、
（ｃ）前記シフトレジスタに保存されたＮビットデータが前記所定のスタートコードと判別されれば、前記シフトカウンタＣ及び／またはあらかじめ保存されたデータパケット情報リストを参照して、前記所定のスタートコードのヘッドが含まれたデータパケットを決定する段階と、
（ｄ）前記所定のスタートコードのヘッドが含まれた前記データパケットをエントリーポイントとして決定する段階とを含み、
前記データパケット情報リストは以前に入力されたデータパケットそれぞれに含まれたデータの長さ情報を含むことを特徴とするエントリーポイント決定方法を実現するためのプログラムを記録したコンピュータで読み出せる記録媒体。
【請求項１６】
入力データパケットから抽出されたデータを保存するシフトレジスタと、
エントリーポイントに対応する前記データパケットの位置を識別するために前記シフトレジスタに以前に保存されたデータに関する情報を保存するデータパケット情報レジスタと、
前記シフトレジスタに保存されたデータをシフトし、前記シフトレジスタのシフトカウンタを参照して所定のスタートコードのヘッドを含むデータを識別し、前記シフトレジスタに保存された前記データが前記所定のスタートコードに対応すれば、前記識別されたデータをエントリーポイントとして決定する制御部とを含むことを特徴とするエントリーポイント決定装置。
【請求項１７】
前記制御部は前記データパケット情報レジスタに保存された前記データ情報を参照して、前記所定のスタートコードの前記ヘッドを含むデータを識別することを特徴とする請求項１６に記載のエントリーポイント決定装置。
【請求項１８】
前記シフトカウンタの値が前記入力データパケットから抽出されたデータの量と同じであれば、前記シフトレジスタに保存された、前記入力データパケットから抽出されたデータを前記所定のスタートコードの前記ヘッドを含むデータとして決定されることを特徴とする請求項１６に記載のエントリーポイント決定装置。
【請求項１９】
前記シフトカウンタの値が前記入力データパケットから抽出されたデータの量より少ない場合、前記制御部は前記所定のスタートコードが前記入力データパケット及び少なくとも１つの以前データパケットにオーバーラップされたと判断し、前記データパケット情報レジスタに保存されたそれぞれの以前データパケットのデータ情報を参照して、前記所定のスタートコードのヘッドが含まれたデータパケットを決定することを特徴とする請求項１７に記載のエントリーポイント決定装置。
【請求項２０】
エントリーポイントに該当する多数のデータパケットのデータ情報を保存するエントリーポイントリスト貯蔵レジスタをさらに含み、
エントリーポイントとして決定された前記データパケットのデータ情報は前記エントリーポイントリストにアップデートされたことを特徴とする請求項１６に記載のエントリーポイント決定装置。
【請求項２１】
前記データ情報はデータの長さを含み、前記データの長さはパケットヘッダー及びパケット化エレメンタリーストリームパケットヘッダーを含まないことを特徴とする請求項１６に記載のエントリーポイント決定装置。
【請求項２２】
前記入力データパケットに含まれたデータを抽出し、前記抽出されたデータを前記シフトレジスタに提供するデータ抽出部をさらに含み、
前記制御部は前記入力データパケットに含まれたデータの長さを検出し、データの長さが０でなければ、前記データ抽出を制御することを特徴とする請求項２１に記載のエントリーポイント決定装置。
【請求項２３】
前記制御部は前記入力データパケットに含まれたデータの長さを前記入力データパケットを表すインデックスと共に前記データパケット情報リストに記録して、前記データパケット情報レジスタを更新することを特徴とする請求項２１に記載のエントリーポイント決定装置。
【請求項２４】
前記制御部は前記入力データパケットに含まれたデータの長さが０であれば、前記データパケット情報リストを更新しないことを特徴とする請求項２２に記載のエントリーポイント決定装置。
【請求項２５】
所定ビット数単位でシフトレジスタに保存されたデータをシフトした後、シフトカウンタを増加させ、入力データパケットから抽出されたデータを前記所定ビット数単位で前記シフトレジスタに入力する段階と、
前記シフトレジスタに保存された前記データが所定のスタートコードであるかの如何を決定する段階と、
前記シフトレジスタに保存された前記データが前記所定のスタートコードに対応すれば、前記シフトカウンタを参照して前記所定のスタートコードのヘッドを含むデータを識別する段階と、
前記識別されたデータをエントリーポイントとして決定する段階とを含むことを特徴とするエントリーポイント決定方法。
【請求項２６】
前記シフトレジスタに以前に保存されたデータに関する情報をデータパケット情報レジスタに保存する段階をさらに含むことを特徴とする請求項２５に記載のエントリーポイント決定方法。
【請求項２７】
前記シフトカウンタの値が前記入力データパケットから抽出されたデータの量と同じであれば、前記シフトレジスタに保存された、前記入力データパケットから抽出されたデータを前記所定のスタートコードの前記ヘッドを含むデータとして決定する段階をさらに含むことを特徴とする請求項２６に記載のエントリーポイント決定方法。
【請求項２８】
前記データパケット情報レジスタに貯蔵データ情報を参照して、前記所定のスタートコードの前記ヘッドを含むデータを識別する段階をさらに含むことを特徴とする請求項２７に記載のエントリーポイント決定方法。
【請求項２９】
前記シフトカウンタの値が前記入力データパケットから抽出されたデータの量より少ない場合、前記所定のスタートコードが前記入力データパケット及び少なくとも１つの以前データパケットにオーバーラップされたと判断する段階と、
前記データパケット情報レジスタに保存されたそれぞれの以前データパケットのデータ情報を参照して前記所定のスタートコードのヘッドが含まれたデータパケットを決定する段階とをさらに含むことを特徴とする請求項２８に記載のエントリーポイント決定方法。
【請求項３０】
エントリーポイントとして決定されたデータパケットの位置をエントリーポイントリストに記録する段階をさらに含むことを特徴とする請求項２９に記載のエントリーポイント決定方法。
【請求項３１】
前記エントリーポイントの決定後、前記データパケット情報レジスタ及び前記エントリーポイントリストをアップデートする段階をさらに含むことを特徴とする請求項３０に記載のエントリーポイント決定方法。
【請求項３２】
前記データパケット情報レジスタのアップデートは前記入力データパケットに含まれたデータの長さ及び前記入力データパケットを表すインデックスを記録することによって行われることを特徴とする請求項３１に記載のエントリーポイント決定方法。
【請求項３３】
前記データの長さは前記入力データパケットに含まれたデータのバイト数であり、前記入力データパケットに含まれたデータにはパケットヘッダー及びパケット化エレメンタリーストリームパケットヘッダーが除外されたことを特徴とする請求項３２に記載のエントリーポイント決定方法。
【請求項３４】
前記入力データパケットに含まれたデータの長さが０でなければ、前記データを前記入力データパケットから抽出する段階と、
前記抽出されたデータを前記シフトレジスタに提供する段階とをさらに含むことを特徴とする請求項２７に記載のエントリーポイント決定方法。
【請求項３５】
前記抽出されたデータは前記シフトレジスタに所定量単位に連続的に提供されることを特徴とする請求項３４に記載のエントリーポイント決定方法。
【請求項３６】
入力データパケットに含まれたデータの類型及び長さを決定するために前記入力データパケットのヘッダーに含まれたパケット識別コードを検出する段階をさらに含むことを特徴とする請求項２７に記載のエントリーポイント決定方法。
【請求項３７】
所定ビット数単位でシフトレジスタに保存されたデータをシフトした後、シフトカウンタを増加させ、入力データパケットから抽出されたデータを前記所定ビット数単位で前記シフトレジスタに入力する段階と、
前記シフトレジスタに保存された前記データが所定のスタートコードであるかの如何を決定する段階と、
前記シフトレジスタに保存された前記データが前記所定のスタートコードに対応すれば、前記シフトカウンタを参照して前記所定のスタートコードのヘッドを含むデータを識別する段階と、
前記識別されたデータをエントリーポイントとして決定する段階とを含むことを特徴とするエントリーポイント決定方法を実現するためのプログラムを記録したコンピュータで読み出せる記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エントリーポイント決定方法及びその装置に係り、より詳細には、エントリーポイントに該当するデータパケットの位置を決定する方法及びその装置に関する。
【背景技術】
【０００２】
デジタル放送が本格化されることによってデジタル放送プログラムを保存し、それを再生するデジタルビデオ録画装置が広く普及されている。
【０００３】
デジタルビデオ録画装置は所定方式、例えばＭＰＥＧ−２（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ  ｐｈａｓｅ  ２）方式で圧縮されたデジタル放送信号を受信して保存し、ユーザーが再生を望めば、保存されたデータをさらに復号してテレビやモニターなどのディスプレー装置を通じて放送映像を再生する。
【０００４】
デジタルビデオ録画装置はデジタル放送が圧縮されたデジタルデータストリームを受信して保存すると同時に、データに対するランダムアクセス、ファーストフォワード再生などのトリック再生及び編集などを容易にするためにデジタルデータストリームから多数のエントリーポイントを検出してインデクシングした後、保存する。
【０００５】
一方、ＭＰＥＧ−２方式で圧縮されたビデオデータはシーケンス単位、ＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ）単位及びピクチャー単位などの階層構造を有する。そして、圧縮されたビデオ及びオーディオデータは伝送のために所定長さのデータパケットに分割された後、多重化される。
【０００６】
ランダムアクセス及びトリック再生などは前述したシーケンス単位、ＧＯＰ単位またはピクチャー単位などのデータ単位で行われる。如何なるデータ単位でランダムアクセス及びトリック再生などの機能を提供するかはデータ圧縮標準またはデジタルビデオ録画装置の製作会社によって決定される。
【０００７】
エントリーポイントとは、ランダムアクセス及びトリック再生の基準として定められたデータ単位のスタートコードのヘッドを含むデータパケットの位置をいう。スタートコードのヘッドはスタートコードの最初のビットを含む部分をいう。
【０００８】
従来に、ＭＰＥＧ−２方式で圧縮されて伝送されたトランスポートストリームからエントリーポイントに該当するトランスポートパケットの位置を検出するためには、まず連続されたトランスポートパケットよりなったトランスポートストリームからビデオまたはオーディオデータが含まれたエレメンタリーストリームを抽出してビデオまたはオーディオデータをバッファリングした後、所定のスタートコード、例えばシーケンスのスタートコードを検出した。スタートコードを検出した後にはさらに検出されたスタートコードのヘッドが含まれたトランスポートパケットの位置を追跡せねばならないので、エントリーポイントの検出動作が複雑で、時間が相当かかり、デジタルビデオ録画装置にエントリーポイントの検出のためのバッファリングメモリが要求されてデジタルビデオ録画装置のハードウェア複雑度及び製作コストが上昇する問題がある。
【特許文献１】韓国特許公開第１９９７−０１９６４９号公報
【特許文献２】日本特許公開第１１−３１３３２１号公報
【特許文献３】韓国特許公開第２００１−１０９２１０号公報
【特許文献４】韓国特許公開第１９９８−００７４８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明が解決しようとする技術的課題は、エントリーポイントに該当するデータパケットの位置をさらに簡単に決定するだけでなく、エントリーポイント決定のためのハードウェア構成をさらに低廉にするエントリーポイント決定方法及びその装置を提供するところにある。
【課題を解決するための手段】
【００１０】
前記課題を解決するために、本発明によるエントリーポイント決定方法は、（ａ）Ｎビットシフトレジスタに保存されたＮビットデータをｎ（ｎ＜Ｎ）ビット単位でシフトした後、シフトカウンタＣを１ほど増加させ、入力データパケットに含まれたデータを前記ｎビット単位で前記シフトレジスタに入力する段階と、（ｂ）前記シフトレジスタに保存されたＮビットデータが所定のスタートコードであるかの如何を判別する段階と、（ｃ）前記シフトレジスタに保存されたＮビットデータが前記所定のスタートコードと判別されれば、前記シフトカウンタＣ及び／またはあらかじめ保存されたデータパケット情報リストを参照して、前記所定のスタートコードのヘッドが含まれたデータパケットを決定する段階と、（ｄ）前記所定のスタートコードのヘッドが含まれた前記データパケットをエントリーポイントと決定する段階と、を含み、前記データパケット情報リストは以前に入力されたデータパケットそれぞれに含まれたデータの長さ情報を含むことを特徴とする。
【００１１】
前記課題を解決するために、本発明によるエントリーポイント決定装置は、Ｎビットデータを保存するシフトレジスタと、以前に入力されたデータパケットそれぞれに含まれたデータの長さ情報を含むデータパケット情報リストを保存するデータパケット情報リスト貯蔵部と、前記シフトレジスタに保存されたＮビットデータをｎ（ｎ＜Ｎ）ビット単位にシフトした後、シフトカウンタＣを１ほど増加させ、入力データパケットに含まれたデータを前記ｎビット単位で前記シフトレジスタに入力させ、前記シフトレジスタに保存されたＮビットデータが所定のスタートコードと判別されれば、前記シフトカウンタＣ及び／または前記データパケット情報リスト貯蔵部に保存されたデータパケット情報リストを参照して、前記所定のスタートコードのヘッドが含まれたデータパケットを決定し、前記データパケットをエントリーポイントと決定する制御部とを含む。
【発明の効果】
【００１２】
本発明によるエントリーポイント決定方法及びその装置は、エントリーポイントに該当するデータパケットの位置をさらに簡単に決定でき、エントリーポイント決定のために従来のようにバッファリングメモリを必要としないので、ハードウェア構成をさらに低廉にできる。
【発明を実施するための最良の形態】
【００１３】
以下、添付された図面を参照して本発明による望ましい実施例を詳細に説明する。
【００１４】
図１Ａは、ＭＰＥＧ−２方式によって生成されたＰＥＳ（Ｐａｃｋｅｔｉｚｅｄ  Ｅｌｅｍｅｎｔａｒｙ  Ｓｔｒｅａｍ）を示す図である。図１Ａを参照すれば、ＰＥＳストリームは多数のＰＥＳパケットよりなる。それぞれのＰＥＳパケットはＰＥＳパケットヘッダーとパケット化されたエレメンタリーストリームよりなる。パケット化されたエレメンタリーストリームはＭＰＥＧ−２方式によって圧縮されたビデオデータ（またはオーディオデータ）ビットの連続であるエレメンタリーストリームを所定長さに分離して生成される。
【００１５】
図１Ｂは、ＭＰＥＧ−２方式によって生成されたトランスポートストリームを示す図である。図１Ｂを参照すれば、トランスポートストリームは多数のトランスポートパケットよりなる。それぞれのトランスポートパケットは１８８バイトの長さを有し、トランスポートパケットヘッダーとトランスポートパケットに含まれたデータに該当するペイロードとよりなる。図１Ａに示されたＰＥＳストリームを所定長さに分離し、分離された各ＰＥＳストリームにトランスポートパケットヘッダーを付けてトランスポートパケットが生成される。
【００１６】
本実施例では前述したようにＭＰＥＧ−２方式で圧縮された後、多重化されて生成されたトランスポートストリームを本発明によるエントリーポイント決定装置が受信する。エントリーポイント決定装置はトランスポートストリームを構成する多数のトランスポートパケットを入力されて、１つのトランスポートパケットまたは２つ以上のトランスポートパケットにわたって含まれた所定のスタートコードを検出した後、スタートコードのヘッドが含まれたトランスポートパケットの位置であるエントリーポイントを決定する。
【００１７】
図２は、本発明によるエントリーポイント決定装置のブロック図である。図２を参照すれば、エントリーポイント決定装置はスタートコード検出部１０、制御部３０、パケット情報リスト貯蔵部５０及びエントリーポイントリスト貯蔵部７０を含む。
【００１８】
スタートコード検出部１０はトランスポートパケット（以下、パケット）の連続であるトランスポートストリームを入力されて制御部３０の制御によって所定のスタートコードを検出する。本実施例でスタートコードはシーケンス映像単位のスタートコードとする。シーケンス映像単位のスタートコードはＭＰＥＧ−２標準によれば、１６進数で“００  ００  ０１  ＸＸ”であり、４バイトコードとなる。
【００１９】
図３は、図２に示されたスタートコード検出部１０の詳細構成を示すブロック図である。図３を参照すれば、スタートコード検出部１０はビデオデータ抽出部１１及びシフトレジスタ１３を含む。
【００２０】
ビデオデータ抽出部１１は入力されたパケットがビデオパケットである場合、制御部３０の制御によってビデオパケットに含まれたビデオデータを抽出する。抽出されたビデオデータは所定ビットずつシフトレジスタ１３に提供される。
【００２１】
シフトレジスタ１３はシーケンス映像単位のスタートコードの長さに該当する４バイト、すなわち３２ビットのデータを保存しうる。シフトレジスタ１３はクロック信号（図示せず）によって保存されたデータビットを１バイト単位でシフトさせた後、ビデオデータ抽出部１１から１バイト単位でビデオデータを入力される。
【００２２】
制御部３０はパケットの連続であるトランスポートストリームを入力されて本発明によるエントリー決定動作を行う。
【００２３】
すなわち、制御部３０はパケットが入力されれば、パケットのヘッダーに含まれたＰＩＤ（Ｐａｃｋｅｔ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）コードを検出して入力パケットの種類、パケットに含まれたデータの長さを検出した後、制御部３０内のレジスタ（図示せず）に保存されたシーケンス映像単位のスタートコードとシフトレジスタ１３に保存された４バイトのデータとを比較してスタートコードを検出する。制御部３０はスタートコードが検出されれば、パケット情報リスト貯蔵部５０に保存されたパケット情報リストを参照してエントリーポイントに該当するパケットの位置を決定した後、パケット情報リスト及びエントリーポイントリストを更新する。
【００２４】
パケット情報リスト貯蔵部５０は以前に入力されたパケットそれぞれに含まれたデータの長さ情報を含むパケット情報リストを保存する。パケット情報リストは制御部３０の制御によって更新される。
【００２５】
エントリーポイントリスト貯蔵部７０はエントリーポイントと決定されたパケットの位置情報を含むエントリーポイントリストを保存する。エントリーポイントリストは制御部３０の制御によって新しいエントリーポイントが決定される度に更新される。
【００２６】
前述したエントリーポイント決定装置の構造によって本発明によるエントリーポイント決定動作をさらに詳細に説明する。
【００２７】
図４は、本発明によるエントリーポイント決定方法のフローチャートである。
【００２８】
まず、エントリーポイント決定動作を行う前にエントリーポイント決定装置を初期化する（第１００段階）。３２ビットシフトレジスタのシフトレジスタ１３のすべてのビット値を“１”に初期化する。パケット情報リストのパケットの位置を表すパケットインデックス変数などの変数を“０”に初期化する。
【００２９】
制御部３０はパケットが入力されれば（第２００段階）、パケットのヘッダーに含まれたＰＩＤコードを検出して、入力されたパケットがビデオパケットであるかの如何を判断する（第３００段階）。本実施例で検出しようとするスタートコードがビデオデータのシーケンス映像単位のスタートコードであるので、もし入力パケットがオーディオパケットであれば、これ以上の動作を行う必要がないためである。
【００３０】
制御部３０は入力されたパケットがビデオパケットであると判別されれば、パケットに含まれたビデオデータの長さを検出する（第４００段階）。ビデオデータは図１Ａに示されたそれぞれのＰＥＳパケットのヘッダーを除外したパケット化されたエレメンタリーストリームに該当する。したがって、ビデオデータの長さはパケットヘッダーとＰＥＳヘッダーとを除外した残りのデータのバイト数をいう。
【００３１】
もし、検出されたビデオデータの長さが“０”であれば、ビデオデータが存在しないので、入力パケットに対してエントリーポイント決定のためのそれ以上の過程を行う必要がなく、第２００段階に戻って新しいパケットが入力されるのを待つ。
【００３２】
検出されたビデオデータの長さが“０”でなければ、すなわちパケットにビデオデータが含まれていれば、スタートコード検出を行う（第６００段階）。
【００３３】
図５は、図４に示された第６００段階の詳細段階を示すフローチャートである。図５に示されたスタートコード検出過程を図７ないし図９（Ａ）（Ｂ）（Ｃ）を参照してより詳細に説明する。
【００３４】
図７は、それぞれのパケットに含まれたビデオデータの一例を示す図である。ビデオパケットであるＴＰ（Ｎ−４）ないしＴＰ（Ｎ）に含まれたビデオデータが１６進数で表現されている。ＴＰ（Ｎ）が現在入力されたビデオパケットであり、ＴＰ（Ｎ−４）ないしＴＰ（Ｎ−１）は以前ビデオパケットである。
【００３５】
図８は、ＴＰ（Ｎ−４）ないしＴＰ（Ｎ−１）を含む以前ビデオパケットに含まれたビデオデータの長さ情報が含まれたパケット情報リストを示す図である。パケット情報リストは検出されたスタートコードが２つ以上のパケットにわったってオーバーラップされて存在する場合、スタートコードのヘッドが含まれたパケットの位置を決定するのに利用される。
【００３６】
図９（Ａ）ないし図９（Ｃ）は、シフトレジスタ１３に保存されたビットデータが１バイト単位でシフトされる過程を示す図である。図９（Ａ）を参照すれば、４バイトシフトレジスタ１３の最後の２バイト位置に、図７に示されたＴＰ（Ｎ−４）に含まれたビデオデータである“００”とＴＰ（Ｎ−３）に含まれたビデオデータである“００”が保存されている。
【００３７】
図９（Ｂ）は、図９（Ａ）に示されたシフトレジスタ１３に保存されたデータが１バイト単位に左側にシフトされ、最後のバイト位置に図７に示されたＴＰ（Ｎ−１）に含まれたビデオデータである“０１”がシフトレジスタ１３に入力されて保存されたものを示す。一方、ＴＰ（Ｎ−２）は何らのビデオデータも含んでいないので、第５００段階によりスタートコード検出過程に利用されない。
【００３８】
シフトレジスタ１３に保存されたデータが図９（Ｃ）のような状態で、制御部３０及びスタートコード検出部１０に現在パケットであるＴＰ（Ｎ）が入力され、図５に示された段階が行われる。
【００３９】
図５に示されたように、制御部３０は内部に保存された変数のうち１つであるｓｈｉｆｔ＿ｃｏｕｎｔｅｒを１ほど増加させる（第６１１段階）。ｓｈｉｆｔ＿ｃｏｕｎｔｅｒは第１００段階で“０”に初期化されるか、以前パケットに含まれたすべてのビデオデータを対象としてスタートコード検出動作が完了すれば、再び“０”にリセットされる。現在入力パケットであるＴＰ（Ｎ）の最初のバイトがシフトレジスタ１３に入力されるので、ｓｈｉｆｔ＿ｃｏｕｎｔｅｒは“０”から“１”に増加される。
【００４０】
図９（Ａ）に示されたようにシフトレジスタ１３に保存されたデータは１バイトずつ左側にシフトされた後、ビデオデータ抽出部１１から１バイトのＴＰ（Ｎ）のビデオデータがシフトレジスタ１４に入力される（第６１３段階）。１バイトのＴＰ（Ｎ）のビデオデータ“Ｂ３”がシフトレジスタ１４に入力されれば、シフトレジスタ１３に保存されたデータは図９（Ｃ）に示された通りになる。
【００４１】
制御部３０は制御部３０内のレジスタ（図示せず）に保存されたシーケンス映像単位のスタートコードである“００  ００  ０１  ＸＸ”とシフトレジスタ１３に保存された４バイトのデータとを比較して、スタートコードであるかの如何を判断する（第６１５段階）。図９（Ｃ）に示されたように、シフトレジスタ１３に保存された４バイトのデータがシーケンス映像単位のスタートコードと同一であるので、制御部３０はシフトレジスタ１３に保存された４バイトのデータをスタートコードと判定し、スタートコードの検出如何を表すフラッグ情報であるｆｏｕｎｄ＿ｓｃ＿ｆｌａｇを“１”として出力する（第６１７段階）。ｆｏｕｎｄ＿ｓｃ＿ｆｌａｇの値“１”はスタートコードを検出したことを表す。
【００４２】
制御部３０はｓｈｉｆｔ＿ｃｏｕｎｔｅｒが所定値ｌより小さいかの如何を判断する（第６１９段階）。所定値ｌは本実施例で４となる。すなわち、ｓｈｉｆｔ＿ｃｏｕｎｔｅｒが４より小さいのは現在入力パケットに全体スタートコードが含まれたものではなく、スタートコードの最後の部分のみが含まれたことを表す。そして、スタートコードの最後の部分はスタートコードの最後のビットを含む部分をいう。
【００４３】
したがって、第６１９段階はスタートコードが２つ以上のパケットにわたってオーバーラップされているかの如何を判断する段階である。
【００４４】
第６１９段階の判断結果、ｓｈｉｆｔ＿ｃｏｕｎｔｅｒが４より小さくなければ、すなわちｓｈｉｆｔ＿ｃｏｕｎｔｅｒが４であれば、検出されたスタートコードが２つ以上のパケットにわたってオーバーラップされているかの如何を表すフラッグ情報であるｏｖｅｒｌａｐｐｅｄ＿ｓｃ＿ｆｌａｇを“０”として出力する（第６２１段階）。ｏｖｅｒｌａｐｐｅｄ＿ｓｃ＿ｆｌａｇの値“０”はスタートコードが２つ以上のパケットにわたってオーバーラップされておらず、現在入力パケットであるＴＰ（Ｎ）に全体スタートコードが含まれていることを表す。
【００４５】
制御部３０はｆｏｕｎｄ＿ｓｃ＿ｆｌａｇの値“１”及びｏｖｅｒｌａｐｐｅｄ＿ｓｃ＿ｆｌａｇの値“０”を出力する（第６２３段階）。
【００４６】
しかし、ｓｈｉｆｔ＿ｃｏｕｎｔｅｒが４より小さければ、ｏｖｅｒｌａｐｐｅｄ＿ｓｃ＿ｆｌａｇを“１”として出力する（第６２５段階）。ｏｖｅｒｌａｐｐｅｄ＿ｓｃ＿ｆｌａｇの値“１”はスタートコードが２つ以上のパケットにわたってオーバーラップされていることを表す。
【００４７】
制御部３０はｓｈｉｆｔ＿ｃｏｕｎｔｅｒの値“１”を変数ｓｃ＿ｔａｉｌ＿ｏｆｆｓｅｔの値とする（第６２７段階）。変数ｓｃ＿ｔａｉｌ＿ｏｆｆｓｅｔの値は以後にエントリーポイントの決定に利用される。
【００４８】
制御部３０はｆｏｕｎｄ＿ｓｃ＿ｆｌａｇの値“１”、ｏｖｅｒｌａｐｐｅｄ＿ｓｃ＿ｆｌａｇの値“１”及びｓｃ＿ｔａｉｌ＿ｏｆｆｓｅｔの値“１”を出力する（第６２９段階）。
【００４９】
もし、第６１５段階で判断結果、シフトレジスタ１３に保存された４バイトのデータがスタートコードではないと判断されれば、ｓｈｉｆｔ＿ｃｏｕｎｔｅｒの値が現在入力パケットであるＴＰ（Ｎ）に含まれたデータの長さと同一であるかを判断する（第６３１段階）。ｓｈｉｆｔ＿ｃｏｕｎｔｅｒの値は現在入力パケットであるＴＰ（Ｎ）に含まれたデータのうちシフトレジスタ１３に入力されたデータのバイト数を表す。
【００５０】
したがって、ｓｈｉｆｔ＿ｃｏｕｎｔｅｒの値が現在入力パケットであるＴＰ（Ｎ）に含まれたデータの長さと同一でなければ、スタートコード検出のためにシフトレジスタ１３に提供されるＴＰ（Ｎ）に含まれたデータがさらに存在すると判断できるので、再び第６１１段階に戻って第６１１段階ないし第６１５段階を繰り返す。
【００５１】
第６００段階を通じてスタートコード検出動作を行った後、制御部３０はスタートコードが検出されたかの如何を判断する（第７００段階）。ｆｏｕｎｄ＿ｓｃ＿ｆｌａｇの値を参考としてスタートコードの検出如何を判断する。
【００５２】
制御部３０はスタートコードが検出されたならば、エントリーポイントに該当するパケットの位置を決定する（第８００段階）。
【００５３】
図６は、図４に示された第８００段階の詳細段階を示すフローチャートである。
【００５４】
制御部３０はｏｖｅｒｌａｐｐｅｄ＿ｓｃ＿ｆｌａｇの値が“１”であるかの如何を判断する（第８１０段階）。すなわち、スタートコードが２つ以上のパケットにわたってオーバーラップされているかの如何を判断する。
【００５５】
ｏｖｅｒｌａｐｐｅｄ＿ｓｃ＿ｆｌａｇの値が“１”であれば、ｓｃ＿ｔａｉｌ＿ｏｆｆｓｅｔの値と図８に示されたようなパケット情報リストに記録された以前パケットのデータ長さ情報とを参照してエントリーポイントを決定する（第８３０段階）。
【００５６】
さらに詳細に説明すれば、現在入力パケットであるＴＰ（Ｎ）に対して第６００段階を行った結果、ｓｃ＿ｔａｉｌ＿ｏｆｆｓｅｔの値は“１”である。ｓｃ＿ｔａｉｌ＿ｏｆｆｓｅｔの値が“１”というのは現在入力パケットであるＴＰ（Ｎ）にスタートコードの最後に該当する１バイトが含まれていることを表す。
【００５７】
本実施例でスタートコードは４バイトの長さを有するので、以前パケットのデータ長さ情報が記録されたパケット情報リストを参照してスタートコードの最初のバイトを含むパケットを決定する。図８に示されたパケット情報リストを参照すれば、ＴＰ（Ｎ−１）とＴＰ（Ｎ−３）とにそれぞれ１バイトのビデオデータが含まれているので、これらビデオデータはそれぞれスタートコードの第３番目バイト及び第２番目バイトに該当する。したがって、ＴＰ（Ｎ−４）にスタートコードのヘッドに該当する最初のバイトが含まれたものであると判断でき、ＴＰ（Ｎ−４）がスタートコードのヘッドが含まれたパケットに該当するエントリーポイントと決定する。
【００５８】
一方、第８１０段階でｏｖｅｒｌａｐｐｅｄ＿ｓｃ＿ｆｌａｇの値を判断した結果、ｏｖｅｒｌａｐｐｅｄ＿ｓｃ＿ｆｌａｇの値が“０”であれば、現在入力パケットであるＴＰ（Ｎ）に全体スタートコードが含まれたものであるので、現在入力パケットをエントリーポイントと決定する（第８３０段階）。
【００５９】
第８００段階によってエントリーポイントが決定されれば、制御部３０はパケット情報リスト貯蔵部５０とエントリーポイントリスト貯蔵部７０とにそれぞれ保存されたパケット情報リストとエントリーポイントリストとを更新する（第９００段階）。
【００６０】
図１０は、更新されたパケット情報リストを示す図である。更新以前のパケット情報リストを示す図８と比較すれば、現在入力パケットであるＴＰ（Ｎ）に含まれたビデオデータの長さ情報がさらに記録されたことが分かる。
【００６１】
図１１は、更新されたエントリーポイントリストを示す図である。前述したように本実施例でエントリーポイントと決定されたパケットＴＰ（Ｎ−４）が記録されたことを表す。
【００６２】
一方、第６００段階によって現在入力パケットであるＴＰ（Ｎ）を対象としてスタートコードを検出した結果、スタートコードが検出されていなければ、第７００段階から第９００段階を行う。ただし、エントリーポイントは決定されていないので、パケット情報リストのみ更新される。
【００６３】
前述した本発明による望ましい実施例はビデオパケットを対象としてスタートコードを検出し、エントリーポイントを決定する方法について説明したが、ビデオパケットに限定されない。すなわち、ビットストリームで所定のスタートコードを検出してスタートコードのヘッドが含まれたパケットをエントリーポイントと決定するためのあらゆる技術分野について適用可能である。
【００６４】
本発明はまたコンピュータで読み出せる記録媒体にコンピュータが読み出せるコードとして具現することが可能である。コンピュータが読み出せる記録媒体はコンピュータシステムによって読まれうるデータが保存されるあらゆる種類の記録装置を含む。コンピュータが読み出せる記録媒体の例としては、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光データ貯蔵装置などがあり、また、キャリアウェーブ（例えば、インターネットを通した伝送）の形態に具現されることも含む。また、コンピュータが読み出せる記録媒体はネットワークに連結されたコンピュータシステムに分散され、分散方式でコンピュータが読み出せるコードに保存、実行できる。
【産業上の利用可能性】
【００６５】
本発明は多数のデータパケットに関わり、例えばデジタルビデオ録画装置を含むビットストリームでエントリーポイントに該当するデータパケットの位置決定に利用できる。
【図面の簡単な説明】
【００６６】
【図１Ａ】ＭＰＥＧ−２方式によって生成されたＰＥＳストリームを示す図である。
【図１Ｂ】ＭＰＥＧ−２方式によって生成されたトランスポートストリームを示す図である。
【図２】本発明によるエントリーポイント決定装置のブロック図である。
【図３】図２に示されたスタートコード検出部の詳細構成を示すブロック図である。
【図４】本発明によるエントリーポイント決定方法のフローチャートである。
【図５】図４に示された第６００段階の詳細段階を示すフローチャートである。
【図６】図４に示された第８００段階の詳細段階を示すフローチャートである。
【図７】多数の入力パケットに含まれたビデオデータの一例を示す図である。
【図８】パケット情報リストの一例を示す図である。
【図９】（Ａ）ないし（Ｃ）は、スタートコード検出のためにシフトレジスタに保存されたデータなどのシフト動作を示す図である。
【図１０】更新されたパケット情報リストを示す図である。
【図１１】更新されたエントリーポイントリストを示す図である。
【符号の説明】
【００６７】
１０  スタートコード検出部
１１  ビデオデータ抽出部
１３  シフトレジスタ
３０  制御部
５０  パケット情報リスト貯蔵部
７０  エントリーポイントリスト貯蔵部
【図１Ａ】
2004335089.tif 000003
【図１Ｂ】
2004335089.tif 000004
【図２】
2004335089.tif 000005
【図３】
2004335089.tif 000006
【図４】
2004335089.tif 000007
【図５】
2004335089.tif 000008
【図６】
2004335089.tif 000009
【図７】
2004335089.tif 000010
【図８】
2004335089.tif 000011
【図９】
2004335089.tif 000012
【図１０】
2004335089.tif 000013
【図１１】
2004335089.tif 000014