JP2006109513A - Encoding device and method, and recording medium - Google Patents
Encoding device and method, and recording medium Download PDFInfo
- Publication number
- JP2006109513A JP2006109513A JP2005344688A JP2005344688A JP2006109513A JP 2006109513 A JP2006109513 A JP 2006109513A JP 2005344688 A JP2005344688 A JP 2005344688A JP 2005344688 A JP2005344688 A JP 2005344688A JP 2006109513 A JP2006109513 A JP 2006109513A
- Authority
- JP
- Japan
- Prior art keywords
- data
- picture
- function
- encoded
- mpeg
- 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
Abstract
Description
本発明は、デジタル信号伝送装置および方法、並びに提供媒体に関し、特に、異なるスタジオ間で画像を送受信し、処理する場合において、送受信する画像信号のシステム全体における遅延量をできるだけ少なくするようにした、デジタル信号伝送装置および方法、並びに提供媒体に関する。 The present invention relates to a digital signal transmission apparatus and method, and a providing medium, and in particular, when an image is transmitted and received between different studios and processed, the amount of delay in the entire system of the image signal to be transmitted and received is minimized. The present invention relates to a digital signal transmission apparatus and method, and a providing medium.
画像信号または音声信号を符号化して伝送する場合、ISO/IEC11172(MPEG-1)もしくはISO/IEC13818(MPEG-2)に示されている符号化方式が用いられることが多い。画像信号を、MPEG(Moving Picture Experts Group)方式で符号化する場合の技術として、コーディングフェーズ(coding phase)と両方向予測があげられる。 When an image signal or an audio signal is encoded and transmitted, an encoding method shown in ISO / IEC11172 (MPEG-1) or ISO / IEC13818 (MPEG-2) is often used. As a technique for encoding an image signal by the MPEG (Moving Picture Experts Group) method, there are a coding phase and bidirectional prediction.
coding phaseとは、図1に示すように、1枚の画像の画素エリア1のうち、符号化が行われる範囲としての有効画素エリア2を規定するためのコードであり、具体的には、全てのラインのうち、有効画素エリア2の最初のライン(図1のV-phase[line]の矢印で示されたライン)、および、全てのサンプル(画素)のうち、有効画素エリア2の最初のラインの最初のサンプル(図1のH-phase[sample]の矢印で示されたサンプル(画素))を示すものである。画素エリア1の最後のラインを、V-Phase[Lmax]とし、画素エリア1のラインの最後のサンプル(画素)を、H-Phase[Smax]とするとき、符号化は、例えば、垂直方向に、V-Phase[line]から、(V-Phase[Lmax] - V-Phase[line]+1)までの範囲で行われ、水平方向に、H-Phase[sample]から、(H-Phase[Smax]-H - Phase[sample]+1)までの範囲で行われる。
As shown in FIG. 1, the coding phase is a code for defining an
また、一般の例えば、NTSC方式のテレビジョン受像機などの画像信号において、図1の画像信号のフレームは、図2に示すように、2枚のフィールド(図2のフィールド1およびフィールド2)から構成されている。フィールド1には、例えば、奇数ラインのデータが表示され、フィールド2には偶数ラインのデータが表示される。2枚のフィールドは、それぞれ、補助データ(ancillary data)と、画像(イメージ)データ(image data)から構成されている。
In addition, in a general image signal of, for example, an NTSC television receiver, the frame of the image signal in FIG. 1 is composed of two fields (
補助データは、耳の不自由な人のための文字放送用のテレテキストデータ、タイムコード、または映画などの字幕のクローズドキャプションデータに利用され、ブランキング区間(例えば、各フィールドの第10ライン乃至第22ライン)(図2においては、いずれのフィールドも、そのフィールド内の上から順番の番号でラインが表されている)のうちの所定のラインに挿入されている。一般に、各フィールドの第23ラインより図中下に位置するラインの部分(実際に、画像として表示される部分)は、画像データとして、MPEG方式などにより符号化される。 The auxiliary data is used for teletext data for teletext for a hearing impaired person, time code, or closed caption data of a caption such as a movie, and is used for a blanking interval (for example, the tenth line of each field to 22nd line) (in FIG. 2, each field is inserted in a predetermined number from the top of the field). In general, a line portion (actually displayed as an image) located below the 23rd line of each field in the drawing is encoded as image data by the MPEG method or the like.
前述したMPEG符号化方式は、画像データにのみ適用され、coding phase、および補助データについては、MPEGの規格には、特に明確に記述(規定)されていない。そのため、coding phaseは、自由度を有し、様々なアプリケーションによって異なっている。 The above-described MPEG encoding method is applied only to image data, and the coding phase and auxiliary data are not clearly described (defined) in the MPEG standard. Therefore, the coding phase has a degree of freedom and varies depending on various applications.
このような画像信号を、符号化または復号するときのシステム構成を、図3を参照して説明する。アプリケーションAの画像データは、アプリケーションA用MPEGエンコーダ11で符号化され、エレメンタリストリーム(ES)として出力され、アプリケーションA用MPEGデコーダ12で復号される。アプリケーションBの画像データは、アプリケーションB用MPEGエンコーダ13で符号化され、エレメンタリストリーム(ES)として出力され、アプリケーションB用MPEGデコーダ14で復号される。
A system configuration when encoding or decoding such an image signal will be described with reference to FIG. The image data of application A is encoded by the
つまり、あるアプリケーションの画像データは、そのアプリケーション専用のエンコーダ(例えば、アプリケーションA用MPEGエンコーダ11)で符号化され、エレメンタリストリーム(ES)として、そのアプリケーションに対応した専用のデコーダ(例えば、アプリケーションA用MPEGデコーダ12)に出力される。専用デコーダに入力されたエレメンタリストリーム(ES)は、そのデコーダが有している、そのアプリケーションのcoding phaseに関する情報に基づき、復号される。
In other words, image data of a certain application is encoded by an encoder dedicated to the application (for example, the
次に、現在主流となっている補助データの伝送方式について、図4を参照して説明する。画像信号は、MPEGエンコーダ21に入力され、分離部21において、画像データと補助データに分離される。MPEGエンコード部23は、画像データをMPEG符号化する。補助データは、可変長符号化部24で、MPEGエンコード部23より出力されたMPEG方式のトランスポートストリーム中のuser dataに挿入される。このトランスポートストリーム中のuser dataは、符号化された画像データ(ピクチャ)単位に挿入(記述)できるため、補助データは、対応する各符号化画像データのフレームのuser dataごとに挿入される。
Next, an auxiliary data transmission method that is currently mainstream will be described with reference to FIG. The image signal is input to the
補助データが挿入されたuser dataを含むトランスポートストリームは、所定の伝送路を介して伝送され、MPEGデコーダ25に入力される。MPEGデコーダ25内の可変長復号部26は、補助データと画像データとを分離する。画像データはMPEGデコード部27で復号され、合成部28で補助データと合成されて、画像信号として、図示せぬ表示装置に出力される。
A transport stream including user data in which auxiliary data is inserted is transmitted via a predetermined transmission path and input to the
次に、MPEG方式の予測について説明する。両方向予測に基づいて生成された符号化画像データのピクチャはBピクチャと称される。Bピクチャは、時間的に前または後に位置する2枚の参照画像データから予測されて生成される。前方予測に基づいて生成された符号化画像データのピクチャはPピクチャと称される。Pピクチャは、時間的に前に位置する1枚の参照画像データから予測されて生成される。予測が行われず、そのまま画像データが符号化(イントラ符号化)された符号化画像データのピクチャはIピクチャと称される。つまり、入力された画像データは、Bピクチャ、Pピクチャ、またはIピクチャのいずれかの符号化画像データに符号化される。 Next, MPEG-based prediction will be described. A picture of encoded image data generated based on bidirectional prediction is called a B picture. The B picture is predicted and generated from two pieces of reference image data positioned before or after in time. A picture of encoded image data generated based on forward prediction is referred to as a P picture. The P picture is predicted and generated from one piece of reference image data positioned in front of time. A picture of encoded image data in which image data is encoded (intra-encoded) without being predicted is called an I picture. That is, the input image data is encoded into encoded image data of any one of B picture, P picture, and I picture.
両方向予測および前方予測について、図5を参照して説明する。図5の例では、1つのGOP(Group of Picture)が、9枚のピクチャから構成されている。図5の上段は、符号化画像データが生成されるときの、予測の方向(依存関係)を示す予測構造を表しており、図5の下段は、実際に画像データが符号化される順序を示す符号化構造を表している。Bピクチャ、またはPピクチャは、時間的に前または後の画像データから予測されて生成されるために、Bピクチャ、またはPピクチャだけでは、符号化を行うことはできない。すなわち、Bピクチャ、またはPピクチャは、参照画像データとの差分をデータとする符号化画像データであるので、Bピクチャ、またはPピクチャだけでは、画像データを復号することもできない。 Bidirectional prediction and forward prediction will be described with reference to FIG. In the example of FIG. 5, one GOP (Group of Picture) is composed of nine pictures. The upper part of FIG. 5 represents a prediction structure indicating the direction (dependency) of prediction when encoded image data is generated, and the lower part of FIG. 5 shows the order in which the image data is actually encoded. The encoding structure shown is shown. Since a B picture or P picture is predicted and generated from temporally previous or subsequent image data, it is not possible to perform coding only with a B picture or P picture. In other words, since the B picture or P picture is encoded image data that uses the difference from the reference image data as the data, the image data cannot be decoded only by the B picture or P picture.
予測の依存関係について詳細に説明すると、例えば、GOP(N-1)において、表示順序が先頭のBピクチャは、先頭から3番目のIピクチャと、図示されていないGOP(N-2)(GOP(N-1)の直前のGOP)の最後のPピクチャから予測されて符号化される。先頭から2番目のBピクチャも同様に、先頭から3番目のIピクチャと、図示されていないGOP(N-2)の最後のPピクチャから予測されて符号化される。先頭から3番目のIピクチャは、そのまま符号化(イントラ符号化)される。先頭から4番目、および5番目のBピクチャは、先頭から3番目のIピクチャと先頭から6番目のPピクチャから予測されて符号化される。先頭から6番目のPピクチャは、先頭から3番目のIピクチャから予測されて符号化される。 The prediction dependency will be described in detail. For example, in GOP (N-1), the first B picture in the display order is the third I picture from the top, and GOP (N-2) (GOP not shown). (GOP immediately before (N-1)) is predicted and encoded from the last P picture. Similarly, the second B picture from the beginning is predicted and encoded from the third I picture from the beginning and the last P picture of GOP (N-2) not shown. The third I picture from the beginning is encoded as it is (intra coding). The fourth and fifth B pictures from the beginning are predicted and encoded from the third I picture from the beginning and the sixth P picture from the beginning. The sixth P picture from the beginning is predicted and encoded from the third I picture from the beginning.
つまり、予測構造において、Bピクチャ(例えば、先頭のBピクチャと先頭から2番目のBピクチャ)が符号化されるには、予測の参照画像データ(例えば、3番目のIピクチャとGOP(N-2)の最後のPピクチャ)が、先に符号化されている必要がある。すなわち、図5の下段に示すような、符号化構造の順番で符号化されなければならない。そのため、MPEGエンコーダは、符号化(エンコード)時、IピクチャとPピクチャの間に存在する、2枚の連続したBピクチャを符号化するために必要な参照画像データ(先頭から3番目のIピクチャ)が入力されるまで、2枚のBピクチャをバッファリングする(Iピクチャが入力されるまで、符号化の開始を遅延させる)必要がある。このバッファリングにより、MPEGエンコーダにおいて、入力された画像信号を符号化するとき、参照画像データに挟まれたBピクチャの枚数(=2)+1枚(合計3枚)の遅延時間が発生する。 That is, in the prediction structure, in order to encode a B picture (for example, the first B picture and the second B picture from the beginning), prediction reference image data (for example, the third I picture and GOP (N− The last P picture in 2) needs to be encoded first. That is, encoding must be performed in the order of the encoding structure as shown in the lower part of FIG. For this reason, the MPEG encoder encodes (encodes) reference image data (third I picture from the beginning) necessary for encoding two consecutive B pictures existing between an I picture and a P picture. ) Is input, it is necessary to buffer two B pictures (delay the start of encoding until an I picture is input). Due to this buffering, when the input image signal is encoded in the MPEG encoder, a delay time of the number of B pictures (= 2) +1 (total 3) sandwiched between reference image data occurs.
このMPEGエンコーダにおいて発生する遅延について、図6を参照して、さらに詳細に説明する。図6の上段はMPEGエンコーダ31における、入力画像(画像データ)の入力順番(表示順序)とその種別を表しており、図6の中段は、入力画像(画像データ)が符号化された符号化画像データの順番を表している。
The delay generated in the MPEG encoder will be described in more detail with reference to FIG. The upper part of FIG. 6 shows the input order (display order) of input images (image data) and their types in the
MPEGエンコーダ31は、時刻t4のPピクチャが入力されるまで(Bピクチャの枚数(=2)+1枚分の時間だけ)、時刻t1に入力されたIピクチャの符号化を遅延させる(前述のバッファリングを行う)。すなわち、MPEGエンコーダ31は、時刻t4で時刻t1に入力されたIピクチャを符号化し、時刻t5で時刻t4に入力されたPピクチャを符号化し、時刻t6で時刻t2に入力されたBピクチャを符号化し、時刻t7で時刻t3に入力されたBピクチャを符号化する。その後、MPEGエンコーダ31は、入力画像を図6の中段の符号化画像データの順番で、順次、符号化する。
The
このように、MPEGエンコーダ31は、入力画像に対して、予測に必要な参照画像データから順次符号化する。つまり、MPEGエンコーダ31において、入力画像(画像データ)は、入力画像の順番から、符号化される画像の順番に並べ変えられ、図6の中段に示すように、入力画像が符号化された順番にビットストリームとして、MPEGデコーダ32に出力される。
As described above, the
このように、入力画像が符号化される順番と表示される順番は一致しないので、MPEGにおいては、符号化順序を表すDTS(Decoding Time Stamp)と、表示順序を表すPTS(Presentation Time Stamp)が、トランスポートストリーム中に挿入されるようになされている。入力画像の符号化順序と表示順序の関係をさらに説明すると、いま、符号化順序をフレーム単位で表すものとすると、図6に示すように、入力画像は符号化される順番で付番され、時刻t4で符号化されたIピクチャの符号化順序の値は”1”となり、時刻t5で符号化されたPピクチャの符号化順序の値は”2”となり、時刻t6で符号化されたBピクチャの符号化順序の値は”3”となる。以下、同様に符号化される順番に符号化順序が付番される。DTSはフレーム単位で符号化順序を表しているわけではないが、ほぼ、この符号化順序に対応する。DTSはまた、ビットストリームを音声信号などと多重化して出力するとき、MPEGデコーダ32において、復号する順番として使用される。
Thus, since the order in which the input images are encoded and the order in which they are displayed do not match, in MPEG, a DTS (Decoding Time Stamp) indicating the encoding order and a PTS (Presentation Time Stamp) indicating the display order are included. And inserted into the transport stream. The relationship between the encoding order of the input images and the display order will be further described. Now, assuming that the encoding order is expressed in units of frames, the input images are numbered in the order of encoding as shown in FIG. The encoding order value of the I picture encoded at time t4 is “1”, the encoding order value of the P picture encoded at time t5 is “2”, and the B picture encoded at time t6 is B. The value of the coding order of pictures is “3”. Hereinafter, the encoding order is assigned in the same encoding order. DTS does not represent the encoding order in units of frames, but almost corresponds to this encoding order. The DTS is also used as a decoding order in the
表示順序は、画像データが復号されて表示される順番(入力画像データの順番と同じ)となる。具体的には、時刻t4で符号化されるIピクチャ(符号化順序=1)の表示順序は、時刻t5でPピクチャ(符号化順序=2)が符号化されるときに表示されなければならないので、そのPピクチャの符号化順序と同じ値”2”となる。時刻t5で符号化されるPピクチャ(符号化順序=2)の表示順序は、時刻t8でPピクチャ(符号化順序=5)が符号化されるとき表示されなければならないので、そのPピクチャの符号化順序と同じ値”5”となる。時刻t6で符号化されるBピクチャ(符号化順序=3)は、符号化されると、直ちに復号されて表示されなければならないので、符号化順序と表示順序は同一となり、表示順序の値は”3”となる。時刻t7で符号化されるBピクチャ(符号化順序=4)も同様に、表示順序=符号化順序=4となる。PTSはフレーム単位で表示順序を表しているわけではないが、ほぼ、この表示順序に対応する。PTSはまた、MPEGデコーダ32において、復号後、出力(表示)する順番として使用される。
The display order is the order in which the image data is decoded and displayed (the same as the order of the input image data). Specifically, the display order of the I picture (encoding order = 1) encoded at time t4 must be displayed when the P picture (encoding order = 2) is encoded at time t5. Therefore, the value is the same as the encoding order of the P picture “2”. The display order of the P picture (encoding order = 2) encoded at time t5 must be displayed when the P picture (encoding order = 5) is encoded at time t8. It becomes the same value “5” as the encoding order. Since the B picture (encoding order = 3) encoded at time t6 must be decoded and displayed immediately after being encoded, the encoding order and the display order are the same, and the value of the display order is “3”. Similarly, the B picture (encoding order = 4) encoded at time t7 is set to display order = encoding order = 4. PTS does not represent the display order in units of frames, but almost corresponds to this display order. The PTS is also used as an output (display) order after decoding in the
MPEGデコーダ32では、符号化順序が連続する2枚のIピクチャもしくはPピクチャのうち、最初の1枚目は、2枚目が復号されるとき、表示される。例えば、MPEGエンコーダ31が出力したビットストリーム中の符号化画像データの1枚目のIピクチャ(符号化順序=1,表示順序=2)と、2枚目のPピクチャ(符号化順序=2,表示順序=5)は、符号化順序が連続しており、2枚目のPピクチャが符号化されるとき(時刻t5のとき)、1枚目のIピクチャが復号されて表示される。
In the
このように、MPEGエンコーダ31は、入力画像(画像データ)の予測構造(参照画像データに挟まれているBピクチャの枚数)を知っているので、画像データに符号化順序(DTS)と表示順序(PTS)を付番することができる。
As described above, since the
放送局などのスタジオ内で、図7に示すシステム構成で、MPEG符号化されたビットストリームを伝送することが考えられている。スタジオ41内のMPEGエンコーダ42、MPEGエンコーダ43、MPEGデコーダ44、およびMPEGデコーダ45は、それぞれ、SDTI-CP(Serial Data Transfer Interface - Content Package)インタフェース46乃至49を介して、SDTI-CPネットワーク(例えば、同軸ケーブルにより構成されるネットワーク)50に接続される。SDTI-CPネットワーク50は、SDI(Serial Data Interface)をベースとした270Mbpsの伝送速度を有し、MPEG方式のエレメンタリストリーム(ES)をそのまま伝送することが可能であり、スタジオ内のような閉じたネットワークに適している。
In a studio such as a broadcasting station, it is considered to transmit an MPEG-encoded bit stream with the system configuration shown in FIG. The
スタジオ41において、例えば、MPEGエンコーダ42は、MPEG符号化されたエレメンタリストリーム(ES)を、SDTI-CPネットワーク50を介して、MPEGデコーダ44、MPEGデコーダ45に伝送することができる。
In the
このSDTI-CPネットワーク50で伝送されるエレメンタリストリーム(ES)は、図8に示す構造となっており、画像信号のフレーム単位で、画像データ(図8において薄い影を付けた部分)と音声データ(図8において濃い影を付けた部分)がパッキングされており、フレームシンク(図8の点線)により区切られたフレーム境界で、簡単に編集を行うことができる。このエレメンタリストリーム(ES)における画像データと音声データは、イントラ(フレーム内符号化)処理されたデータである。
The elementary stream (ES) transmitted in the SDTI-
図7に示すスタジオ41のシステムは、そのMPEGエンコーダ42,43とMPEGデコーダ44,45が、SDTI-CPインタフェース46乃至49を介して、SDTI-CPネットワーク50に接続されており、図3に示したような、アプリケーションごとに専用のエンコーダ(例えば、アプリケーションA用MPEGエンコーダ11)とデコーダ(例えば、アプリケーションA用MPEGデコーダ12)が1対1に対応するシステムとは構成が異なっている。すなわち、デコーダ(例えば、図7のMPEGデコーダ44)は、エンコーダ(例えば、図7のMPEGエンコーダ42またはMPEGエンコーダ43)で、様々なアプリケーションの画像信号が符号化された、エレメンタリストリーム(ES)を受け取ることができる。
In the system of the
図7のシステム構成を、図3のシステム構成に対応させた図9を参照して説明すると、アプリケーションA用MPEGエンコーダ42で符号化されたエレメンタリストリーム(ES)と、アプリケーションB用MPEGエンコーダ43で符号化されたエレメンタリストリーム(ES)は、それぞれSDTI-CPインタフェース46,47に入力される。SDTI-CPインタフェース46,47は、それぞれMPEG符号化されたエレメンタリストリーム(ES)を、SDTIフォーマットのエレメンタリストリーム(ES)に変換して、SDTI-CPネットワーク50を介して伝送する。SDTI-CPインタフェース48は、SDTIフォーマットのエレメンタリストリーム(ES)を、MPEG符号化されたエレメンタリストリーム(ES)に変換し、MPEGデコーダ44に出力する。
The system configuration of FIG. 7 will be described with reference to FIG. 9 corresponding to the system configuration of FIG. 3. The elementary stream (ES) encoded by the MPEG encoder for
MPEGデコーダ44は、それぞれ入力されたアプリケーションA用のエレメンタリストリーム(ES)とアプリケーションB用のエレメンタリストリーム(ES)を復号する。
The
ところで、補助データがトランスポートストリーム中のuser dataに挿入される場合、補助データは、対応する符号化画像のフレーム単位で挿入されるため、その挿入は1フレーム(2フィールド)ごととなる。 By the way, when the auxiliary data is inserted into the user data in the transport stream, the auxiliary data is inserted in units of frames of the corresponding encoded image, so that the insertion is performed every frame (2 fields).
符号化される信号が、3−2プルダウン処理(例えば、24Hzのフレームレートを持つ映画の画像信号を、30Hzのフレームレートを持つNTSC方式の画像信号に変換する処理)された信号である場合、その信号は、図10に示すように、24Hzの各フレームを、交互に、リピートフィールドが作成されていない2フィールドのフレーム、またはリピートフィールドが作成されている3フィールドのフレームとすることで、30Hzの信号とされている。 When the signal to be encoded is a signal that has been subjected to 3-2 pull-down processing (for example, processing for converting a movie image signal having a frame rate of 24 Hz into an NTSC image signal having a frame rate of 30 Hz), As shown in FIG. 10, the signal is 30 Hz by alternately converting each frame of 24 Hz into a two-field frame in which a repeat field is not created or a three-field frame in which a repeat field is created. It is said that.
例えば、図4のMPEGエンコーダ21は、3−2プルダウン処理により30Hzのフレームレートに変換された画像信号が入力されたとき、フィールドの繰り返しを検出して、元の24Hzの符号化フレーム単位で符号化を行い、その処理に対応して、フラグ(Repeat_first_field,Top_field_first)を生成する。
For example, the
Repeat_first_fieldのフラグの”1”は、リピートフィールドが作成されたことを意味し、Repeat_first_fieldのフラグの”0”は、リピートフィールドが作成されていないことを意味する。Top_field_firstのフラグは、フレームを構成するフィールドのうち、最初のフィールドがトップフィールドであるのか、またはボトムフィールドであるのかを表している。Top_field_firstのフラグの”1”は、トップフィールドがボトムフィールドより時間的に早いフレーム構造であることを表しており、Top_field_firstのフラグの”0”は、ボトムフィールドがトップフィールドより時間的に早いフレーム構造であることを表している。 The Repeat_first_field flag “1” means that a repeat field has been created, and the Repeat_first_field flag “0” means that a repeat field has not been created. The Top_field_first flag indicates whether the first field among the fields constituting the frame is a top field or a bottom field. The top_field_first flag “1” indicates that the top field has a frame structure earlier in time than the bottom field, and the Top_field_first flag “0” indicates that the bottom field has a frame structure earlier in time than the top field. It represents that.
図10に示すように、原信号のフレームが3フィールドのフレームである場合、対応する1つの符号化フレームには、同一位相の2枚のフィールド(3−2プルダウン処理によりコピーにより生成されたフィールドとそのコピー元のフィールド)が存在する。しかしながら、この元の1つのフレームを構成する3フィールドが符号化フレーム単位で符号化されるとき、各符号化フレームごとの補助データは、符号化フレーム単位で、1つの補助データとして、user dataに記述されるため、原信号の同一位相のフィールドに異なった補助データが記述されていても、その異なった補助データを区別することができなくなってしまう。 As shown in FIG. 10, when the frame of the original signal is a three-field frame, the corresponding one encoded frame includes two fields having the same phase (a field generated by copying by 3-2 pull-down processing). And the field of the copy source). However, when the three fields constituting one original frame are encoded in units of encoded frames, the auxiliary data for each encoded frame is stored in user data as one auxiliary data in units of encoded frames. Therefore, even if different auxiliary data is described in the same phase field of the original signal, the different auxiliary data cannot be distinguished.
例えば、所定のスタジオで、MPEG方式でエンコードした画像を処理し、他のスタジオにトランスポートストリームとして伝送し、他のスタジオでも処理するような場合、画像データの伝送は、符号化された順序で行う必要があるが、トランスポートストリームとして画像データを伝送する装置は、通常、符号化順序を知らないので、入力された画像データを一旦バッファリングし、符号化順序を知る必要がある。その結果、バッファリングのために画像データの供給を受けてから、それを伝送するまでに時間がかかり、迅速な処理、特に、リアルタイム処理が困難となる課題があった。 For example, when an MPEG-encoded image is processed in a predetermined studio, transmitted to another studio as a transport stream, and processed in another studio, the image data is transmitted in the encoded order. Although it is necessary to perform this, an apparatus that transmits image data as a transport stream normally does not know the encoding order. Therefore, it is necessary to buffer input image data and know the encoding order. As a result, there is a problem that it takes time from receiving image data supplied for buffering to transmitting the image data, making it difficult to perform rapid processing, particularly real-time processing.
本発明はこのような状況に鑑みてなされたものであり、画像データを迅速に処理することができるようにするものである。 The present invention has been made in view of such a situation, and enables image data to be processed quickly.
本発明の一側面のデジタル信号伝送装置は、画像信号の符号化順序と、前記画像信号の表示順序に関する順序情報が、前記画像信号のアクセスユニット単位で挿入されている第1のビットストリームを受信する第1の受信手段と、前記第1の受信手段により受信された前記第1のビットストリームから前記順序情報を抽出し、抽出した前記順序情報に基づいてタイムスタンプを生成し、第2のビットストリームに挿入して出力する第1の出力手段とを含む。 The digital signal transmission device according to one aspect of the present invention receives a first bitstream in which an encoding order of an image signal and order information regarding the display order of the image signal are inserted in units of access units of the image signal. First receiving means for extracting the order information from the first bit stream received by the first receiving means, generating a time stamp based on the extracted order information, and generating a second bit And a first output means for inserting and outputting the stream.
本発明の一側面のデジタル信号伝送方法または提供媒体は、画像信号の符号化順序と、前記画像信号の表示順序に関する順序情報が、前記画像信号のアクセスユニット単位で挿入されている第1のビットストリームを受信する受信ステップと、前記受信ステップの処理で受信された前記第1のビットストリームから前記順序情報を抽出し、抽出した前記順序情報に基づいてタイムスタンプを生成し、第2のビットストリームに挿入して出力する出力ステップとを含む。 The digital signal transmission method or the providing medium according to one aspect of the present invention includes a first bit in which order information relating to an encoding order of image signals and display order of the image signals is inserted in units of access units of the image signals. A receiving step of receiving a stream; and extracting the order information from the first bit stream received in the processing of the receiving step, generating a time stamp based on the extracted order information, and a second bit stream And an output step of inserting and outputting.
本発明の一側面においては、画像信号の符号化順序と、前記画像信号の表示順序に関する順序情報が、前記画像信号のアクセスユニット単位で挿入されている第1のビットストリームが受信され、受信された前記第1のビットストリームから前記順序情報が抽出され、抽出された前記順序情報に基づいてタイムスタンプが生成され、第2のビットストリームに挿入して出力される。 In one aspect of the present invention, the first bitstream in which the encoding order of the image signal and the order information regarding the display order of the image signal are inserted in units of access units of the image signal is received and received. The order information is extracted from the first bit stream, a time stamp is generated based on the extracted order information, inserted into the second bit stream, and output.
本発明の一側面によれば、ビットストリームを出力することができる。また、本発明の一側面によれば、画像データを迅速に処理することができる。 According to one aspect of the present invention, a bit stream can be output. In addition, according to one aspect of the present invention, image data can be processed quickly.
図11は、相互に離れた場所に位置するスタジオ41とスタジオ71の間で、MPEG符号化されたビットストリームを伝送するシステムの例を表しており、図7における場合と対応する部分には、同一の符号を付してある。この例の場合、各スタジオ内のネットワークを、多重化装置(以下、TS MUX/DEMUXと称する)を介して、衛星やATM(Asynchronous Transfer Mode)などの公衆網と接続することで、ビットストリームの伝送を行うことができる。スタジオ71のMPEGエンコーダ72乃至SDTI-CPインタフェース79は、図7のスタジオ41のMPEGエンコーダ42乃至SDTI-CPインタフェース49に対応するものであるので、ここでは、その説明を省略する。
FIG. 11 shows an example of a system that transmits an MPEG-encoded bit stream between
SDTI-CPネットワーク50におけるエレメンタリストリーム(ES)は、図12に示すように、TS MUX/DEMUX61により、188バイト単位のトランスポートストリーム(TS)に変換されて所定の伝送媒体を介して伝送され、伝送されたトランスポートストリーム(TS)は、TS MUX/DEMUX62で、SDTIフォーマットのエレメンタリストリーム(ES)に変換される。なお、図12において、薄い影を付けた部分は画像データのパケットを示しており、濃い影を付けた部分は音声データのパケットを示しており、影をつけていない部分は空きデータのパケットを示している。
As shown in FIG. 12, an elementary stream (ES) in the SDTI-
図11において、スタジオ41内のMPEGエンコーダ42の出力するエレメンタリストリーム(ES)が、TS MUX/DEMUX61でトランスポートストリーム(TS)に変換されるまでを、図13を参照して説明する。MPEGエンコーダ42内のMPEGビデオエンコーダ42Aは、MPEG符号化された画像データのエレメンタリストリーム(ES)を、SDTI-CPインタフェース46に出力し、オーディオエンコーダ42Bは、音声データのエレメンタリストリーム(ES)を、SDTI-CPインタフェース46に出力する。SDTI-CPインタフェース46は、入力されたエレメンタリストリーム(ES)をSDTIベースのフォーマットのエレメンタリストリーム(ES)に変換し、SDTI-CPネットワーク50を介して、SDTI-CPインタフェース51に出力する。SDTI-CPインタフェース51は、SDTIフォーマットのESをMPEG符号化のエレメンタリストリーム(ES)に変換し、TS MUX/DEMUX61に出力する。TS MUX/DEMUX61は、MPEG符号化のエレメンタリストリーム(ES)を188バイト単位のトランスポートストリーム(TS)に変換して伝送媒体に出力する。
In FIG. 11, a process until the elementary stream (ES) output from the
図11において、TS MUX/DEMUX61から伝送されたトランスポートストリーム(TS)は、ATMなどの公衆網を介して、TS MUX/DEMUX62に入力され、MPEG符号化のエレメンタリストリーム(ES)に変換される。SDTI-CPインタフェース81において、MPEG符号化されたエレメンタリストリーム(ES)は、SDTIフォーマットのエレメンタリストリーム(ES)に変換され、スタジオ71のSDTI-CPネットワーク80に出力される。MPEGデコーダ74は、SDTI-CPインタフェース78を介して、スタジオ21から伝送されたエレメンタリストリーム(ES)を受信することができる。
In FIG. 11, a transport stream (TS) transmitted from TS MUX /
図11のシステムにおいて、スタジオ41とスタジオ71の間で、画像信号を伝送する場合、多重化装置(例えば、図11のTS MUX/DEMUX61)には、画像データが符号化されたエレメンタリストリーム(ES)のみが入力されるので、多重化装置は、エンコーダ(例えば、図11のMPEGエンコーダ42)において行われた符号化順序の並べ変えの情報を知らない。このため、多重化装置は、入力されたエレメンタリストリーム(ES)を解釈して、エレメンタリストリーム(ES)をトランスポートストリーム(TS)に変換する処理をしなければならない。
In the system shown in FIG. 11, when an image signal is transmitted between the
このエレメンタリストリームを解釈する処理は、画像信号の符号化構造を把握する処理である。つまり、前述したエンコーダで入力画像をバッファリングして符号化し、ビットストリームに変換するときと同様の処理が、多重化装置でも必要となる。この多重化装置におけるバッファリング処理により、後段での画像データの復号までに遅延が発生し、リアルタイム処理が困難になる。 The process of interpreting this elementary stream is a process of grasping the coding structure of the image signal. That is, the same processing as when the input image is buffered and encoded by the encoder described above and converted into a bit stream is also required in the multiplexing apparatus. Due to the buffering process in the multiplexing apparatus, a delay occurs until the image data is decoded in the subsequent stage, making real-time processing difficult.
この多重化装置で発生する、システム構成上、問題となる遅延について、図14を用いて説明する。多重化装置に、図14に示す符号化順序で、エンコーダで符号化されたビットストリームが入力された場合、多重化装置は、2枚の連続したIピクチャ(時刻t4)とPピクチャ(時刻t5)が入力された後、さらにそれらに挟まれた2枚のBピクチャ(時刻t6と時刻t7)に続いてPピクチャ(時刻t8)が入力されるまで、表示順序を確定することができない。つまり、多重化装置は、図5に示したような符号化構造(IピクチャとPピクチャの間に2枚のBピクチャが挟まれている構造)を知らないので、2枚のBピクチャが入力され、その次のPピクチャ(時刻t8)が入力されたとき(Bピクチャの入力が終了したことを確認したとき)、時刻t4に入力されたIピクチャの表示順序(PTS)を確定することができる。 A delay which is a problem in the system configuration and occurs in the multiplexing apparatus will be described with reference to FIG. When a bit stream encoded by the encoder is input to the multiplexing device in the encoding order shown in FIG. 14, the multiplexing device receives two consecutive I pictures (time t4) and P pictures (time t5). ) Is input, and until the P picture (time t8) is input following the two B pictures (time t6 and time t7) sandwiched between them, the display order cannot be determined. That is, since the multiplexing apparatus does not know the coding structure as shown in FIG. 5 (a structure in which two B pictures are sandwiched between an I picture and a P picture), two B pictures are input. When the next P picture (time t8) is input (when it is confirmed that the input of the B picture has been completed), the display order (PTS) of the I picture input at time t4 can be determined. it can.
すなわち、この多重化装置においては、時刻t8になって初めて、符号化順序=1のIピクチャの表示順序=2を確定することができる。このため、多重化装置では、2枚の連続したIピクチャまたはPピクチャ+2枚のBピクチャの出現周期(=4)の遅延が発生する。この遅延は、エンコーダでの遅延とは別に新たに発生するため、システム全体として、エンコーダの遅延(=3)+多重化装置の遅延(=4)=7の大幅な遅延が生じる。 That is, in this multiplexing apparatus, it is possible to determine the display order = 2 of the I picture with the encoding order = 1 only at time t8. For this reason, in the multiplexing apparatus, a delay of the appearance cycle (= 4) of two consecutive I pictures or P pictures + 2 B pictures occurs. Since this delay is newly generated separately from the delay at the encoder, a large delay of the encoder delay (= 3) + multiplexer delay (= 4) = 7 occurs in the entire system.
そこで本発明においては、符号化順序と表示順序を含む順序情報を、Picture Order Infoとしてエレメンタリストリームに重畳するようにしている。この点のについては、後に詳述する。 Therefore, in the present invention, the order information including the encoding order and the display order is superimposed on the elementary stream as Picture Order Info. This will be described in detail later.
図15は、本発明を適用したMPEGエンコーダ42の構成例を表している。MPEGエンコーダ42の分離部101は、入力された画像信号から、画像データと補助データを分離し、画像データをMPEGエンコード部103に出力し、補助データをエンコードコントローラ102に出力する。MPEGエンコード部103は、入力された画像データをMPEG方式により符号化するとともに、符号化順序を示すDTS_counter、および表示順序を示すPTS_counterを含むPOI(Picture Order Infomation)をエンコードコントローラ102に出力する。また、MPEGエンコード部103は、符号化した範囲の左上の位置(図1の有効画素エリア2の左上の画素の位置)を表すコーディングフェーズ(Coding Phase(V-Phase,H-Phase))をエンコードコントローラ102に供給する。
FIG. 15 shows a configuration example of the
エンコードコントローラ102は、分離部101より供給された補助データに、それが属するフィールドを識別するField IDと、それが挿入されているラインを表すLine_numberを付加し、その補助データと、MPEGエンコード部103より供給されたPOI、およびCoding Phase Information(CPI)を適宜処理し、user dataのフォーマットのデータとして、可変長符号化部104に出力し、多重化させる。
The
可変長符号化部102は、MPEGエンコード部103より供給されたエンコードされた画像データを可変長符号化するとともに、エンコードコントローラ102より供給されたuser dataを画像データのエレメンタリストリームに挿入する。可変長符号化部104より出力されたエレメンタリストリームは、送信バッファ105を介して出力される。
The variable
図16は、本発明を適用したMPEGデコーダ44の構成例を表している。受信バッファ111は、入力されたデータを一旦バッファリングした後、可変長復号部112に出力する。可変長復号部112は、入力されたデータから、画像データとuser dataとを分離し、画像データをMPEGデコード部114に出力し、user dataをデコードコントローラ113に出力する。デコードコントローラ113は、user dataからPOIとCPIを分離し、それらをMPEGデコード部114に出力する。また、デコードコントローラ113は、user dataから分離した補助データを合成部115に出力する。MPEGデコード部114は、可変長復号部112より入力された画像データを、デコードコントローラ113より入力されたPOIとCPIを参照してデコードし、デコードした結果を合成部115に出力している。合成部115は、デコードコントローラ113より供給された補助データをMPEGデコード部114より供給された画像データと合成し、出力する。
FIG. 16 shows a configuration example of the
以下に、MPEGエンコーダ42とMPEGデコーダ44の動作について説明する。
Hereinafter, operations of the
CPIをuser dataに記述して、エレメンタリストリーム(ES)に重畳して出力する動作を、図17を参照して説明すると、アプリケーションA用MPEGエンコーダ42は、アプリケーションAの画像信号を符号化したエレメンタリストリーム(ES)に、CPI(画像信号のフォーマットにおける有効画素エリアを示すデータであるV-PhaseとH-Phase)をuser dataに記述して(図15の可変長符号化部104がエンコードコントローラ102から出力されるCPIのデータをuser dataに記述して)、SDTI-CPインタフェース46に出力する。アプリケーションB用MPEGエンコーダ43も、MPEGエンコーダ42と同様に構成されており、アプリケーションBの画像信号を符号化したエレメンタリストリーム(ES)に、CPIをuser dataとして記述して、SDTI-CPインタフェース47に出力する。
The operation of describing the CPI in the user data and superimposing it on the elementary stream (ES) will be described with reference to FIG. 17. The
SDTI-CPインタフェース46の構成例について、図18を参照して説明する(他のSDTI-CPインタフェースも同様に構成されている)。復号部121は、MPEGエンコーダ42から入力されたMPEG符号化されたエレメンタリストリーム(ES)を、符号化パラメータと画像データに分離し、画像データを復号し、符号化パラメータとともに符号化パラメータ多重化部122に出力する。符号化パラメータ多重化部122は、画像信号と符号化パラメータから、SDTI-CPベースのエレメンタリストリーム(ES)を生成して出力する。
A configuration example of the SDTI-
SDTI-CPインタフェース46に、SDTI-CPベースのエレメンタリストリーム(ES)が入力された場合、符号化パラメータ分離部123は、エレメンタリストリーム(ES)から画像データと符号化パラメータを分離して、それぞれ符号化部124に出力する。符号化部124は、符号化パラメータを用いて、画像データを符号化し、MPEG符号化されたエレメンタリストリーム(ES)として出力するか、またはパケット化部125でMPEG符号化されたトランスポートストリーム(TS)として出力する。
When an SDTI-CP-based elementary stream (ES) is input to the SDTI-
SDTI-CPインタフェース46,47は、MPEG符号化されたエレメンタリストリーム(ES)を、SDTIフォーマットのエレメンタリストリーム(ES)に変換して、SDTI-CPネットワーク50を介して、伝送する。SDTI-CPインタフェース48は、SDTIフォーマットのエレメンタリストリーム(ES)をMPEG符号化されたエレメンタリストリーム(ES)に変換し、MPEGデコーダ44に出力する。
The SDTI-CP interfaces 46 and 47 convert an MPEG-encoded elementary stream (ES) into an SDTI-format elementary stream (ES) and transmit the converted stream via the SDTI-
MPEGデコーダ44は、入力されたアプリケーションAのエレメンタリストリーム(ES)またはアプリケーションBのエレメンタリストリーム(ES)を復号し、それぞれのエレメンタリストリーム(ES)に記述されている(図16のデコードコントローラ113が出力する)CPIに基づいて、画像信号を有効画素エリアに配置するように復号する。
The
MPEGエンコーダ42,43は、それぞれが符号化したアプリケーションの画像信号のCPIをMPEG符号化されたエレメンタリストリーム(ES)中のuser dataに記述することにより、画像データとともに、CPIを伝送することができる。また、MPEGエンコーダ42,43は、CPIを伝送する機能を有することにより、様々なアプリケーションを符号化して伝送することができる。
The MPEG encoders 42 and 43 can transmit the CPI together with the image data by describing the CPI of the image signal of the encoded application in the user data in the MPEG-encoded elementary stream (ES). it can. Further, the
MPEGデコーダ44は、MPEG符号化されたエレメンタリストリーム(ES)に挿入されているCPIを分離、解釈することにより、様々なCoding Phaseを有するアプリケーションの画像を、適切に、有効画素エリアに配置するように復号処理することができる。
The
なお、本発明に実施の形態においては、CPIを、MPEG符号化されたエレメンタリストリームのuser dataに挿入したが、ビットストリームに他の方法で挿入するようにしてもよい。 In the embodiment of the present invention, the CPI is inserted into the user data of the MPEG-encoded elementary stream, but may be inserted into the bit stream by another method.
次に、MPEGエンコーダ42において、各フィールドごとの複数の補助データを識別する動作について、図19を参照して説明する。3−2プルダウン処理が実施されている符号化フレームの原信号(30Hz)の各フィールドに、補助データが挿入されているものとする。この補助データを有する原信号(30Hz)が、元のフレームレートの符号化フレーム(24Hz)に符号化されるとき、各符号化フレームに含まれる2つまたは3つのフィールドに記述されている補助データに、符号化されたフィールドに対応した識別子が、field_ID(0乃至2のカウンタの値)として付加されて(図15のエンコードコントローラ102で補助データにfield_IDが付加されて)、補助データともに伝送される。このfield_IDが補助データに付加されることにより、補助データがどの符号化フレーム内の、どのフィールドに対応したものであるかが識別される。
Next, an operation of identifying a plurality of auxiliary data for each field in the
具体的に説明すると、図19の先頭の符号化フレームのフィールドの枚数は、2枚であるので、補助データは2つ存在する。符号化フレームは2枚のフィールドから生成され、その符号化フレームに対応する2枚のフィールドの、それぞれの補助データに、field_IDとして、”0”または”1”が付加される。 Specifically, since the number of fields of the first encoded frame in FIG. 19 is two, there are two auxiliary data. The encoded frame is generated from two fields, and “0” or “1” is added as field_ID to each auxiliary data of the two fields corresponding to the encoded frame.
先頭から2番目の符号化フレームのフィールドの枚数は、3枚であるので、補助データは3つ存在する。符号化フレームは3枚のフィールドから生成され、その符号化フレームに対応する3枚のフィールドの、それぞれの補助データに、field_IDとして、”0”,”1”または”2”が付加される。 Since the number of fields in the second encoded frame from the top is three, there are three auxiliary data. The encoded frame is generated from three fields, and “0”, “1”, or “2” is added as field_ID to each auxiliary data of the three fields corresponding to the encoded frame.
つまり、1枚の符号化フレームに対して、1つの補助データが生成されるのではなく、符号化フレームに含まれていたフィールドの枚数と同じ数の補助データが生成され、それぞれにfield_IDが付加される。その結果、同一の符号化フレームに含まれる複数の補助データは、付加されたfield_IDにより、符号化フレーム内で識別されるので、それぞれの補助データに異なった情報が含まれていても、識別できなくなることはない。 In other words, one auxiliary data is not generated for one encoded frame, but the same number of auxiliary data as the number of fields included in the encoded frame is generated, and field_ID is added to each. Is done. As a result, a plurality of auxiliary data included in the same encoded frame is identified in the encoded frame by the added field_ID, so that even if different information is included in each auxiliary data, it can be identified. It will not disappear.
MPEGエンコーダ42では、画像データがMPEGエンコード部103でエンコードされ、可変長符号化部104で可変長符号化される。また、エンコードコントローラ102で補助データにfield_IDと、補助データが挿入されていたライン番号(Line_number)が付加され、エレメンタリストリーム中のuser data中に、ancillary dataとして挿入される。これにより、複数の補助データを識別して伝送することができる。
In the
MPEGデコーダ44では、MPEG符号化されたエレメンタリストリーム中のuser dataが可変長復号部112で分離され、デコードコントローラ113に供給される。デコードコントローラ113は、user dataに挿入されているancillary dataのfield_IDとLine_numberに基づいて、複数の補助データを識別、分離し、合成部115に出力する。合成部115は、MPEGデコード部114で復号された画像データと、それに対応する補助データ(テキストデータ)を合成し、出力する。
In the
MPEGエンコーダ42は、システム全体の遅延を少なくするために、図20に示すような符号化順序と表示順序を管理するPOIを生成する。
The
例えば、MPEGエンコーダ42のMPEGエンコード部103に入力された画像データが、3−2プルダウン処理により、24Hzのフレームレートに変換された画像信号である場合、図20(A)に示すようなフラグ(Repeat_first_field,Top_field_first)により、各フレームが管理される。
For example, when the image data input to the
Repeat_first_fieldのフラグの”1”は、リピートフィールドを作成する必要があることを意味し、Repeat_first_fieldのフラグの”0”は、リピートフィールドを作成する必要がないことを意味する。Top_field_firstのフラグは、フレームを構成するフィールドのうち、最初のフィールドがトップフィールドであるのか、またはボトムフィールドであるのかを表している。Top_field_firstフラグの”1”は、トップフィールドがボトムフィールドより時間的に早いフレーム構造であることを表しており、Top_field_firstフラグの”0”は、ボトムフィールドがトップフィールドより時間的に早いフレーム構造であることを表している。 “1” of the flag of Repeat_first_field means that it is necessary to create a repeat field, and “0” of the flag of Repeat_first_field means that it is not necessary to create a repeat field. The Top_field_first flag indicates whether the first field among the fields constituting the frame is a top field or a bottom field. “1” of the Top_field_first flag indicates that the top field has a frame structure earlier in time than the bottom field, and “0” in the Top_field_first flag has a frame structure earlier in time than the top field. Represents that.
図20(A)について、具体的に説明すると、最初にMPEGエンコード部103に入力されるFrame No1の符号化フレームの符号化画像データ種別は、Iピクチャであり、このIピクチャの2フィールド(トップフィールドとボトムフィールド)は、トップフィールドをコピーしてリピートフィールドを作成することで、3フィールドに変換する必要があるので、対応するRepeat_first_fieldのフラグは”1”となり、Top_field_firstのフラグは”1”となる。
Specifically, FIG. 20A will be described. The encoded image data type of an encoded frame of Frame No1 input to the
Frame No2の符号化フレームの符号化画像データ種別は、Bピクチャであり、このBピクチャには、リピートフィールドが生成する必要がないので、Repeat_first_fieldのフラグは”0”とされ、ボトムフィールドがトップフィールドより時間的に早いフレームであるため、Top_field_firstのフラグは”0”とされる。このときのTop_field_firstのフラグの値は、3−2プルダウン処理には関係しない。 The encoded image data type of the encoded frame of Frame No. 2 is a B picture, and since it is not necessary to generate a repeat field in this B picture, the flag of Repeat_first_field is set to “0” and the bottom field is the top field. Since the frame is earlier in time, the Top_field_first flag is set to “0”. The value of the Top_field_first flag at this time is not related to the 3-2 pull-down process.
Frame No3の符号化フレームの符号化画像データ種別は、Bピクチャであり、Frame No3のBピクチャでは、そのボトムフィールドをコピーしてリピートフィールドが作成され、符号化フレームが3フィールドに変換されている。従って、Repeat_first_fieldのフラグは”1”とされ、Top_field_firstのフラグは”0”とされる。 The encoded image data type of the encoded frame of Frame No3 is a B picture, and in the B picture of Frame No3, a repeat field is created by copying the bottom field, and the encoded frame is converted into 3 fields. . Therefore, the flag of Repeat_first_field is “1”, and the flag of Top_field_first is “0”.
Frame No4の符号化フレームの符号化画像データ種別は、Pピクチャであり、このPピクチャに対しては、リピートフィールドが作成されておらず、Repeat_first_fieldのフラグは”0”とされ、Top_field_firstのフラグは1とされる。 The encoded image data type of the encoded frame of Frame No4 is a P picture, no repeat field is created for this P picture, the flag of Repeat_first_field is “0”, and the flag of Top_field_first is It is set to 1.
MPEGエンコード部103は、図20(A)に示すような3−2プルダウン処理が施された画像データが入力されてきたとき、内蔵するカウンタPTS_counterでフィールドの数をカウントし、その値PTS_counterを表示順序としてエンコードコントローラ102に出力する。カウンタPTS_counterは、0から127まで増加した後、再び0に戻るカウント動作を行う。従って、カウンタPTS_counterの値は、図20(B)に示すように変化する。
When image data that has been subjected to 3-2 pull-down processing as shown in FIG. 20A is input, the
具体的に説明すると、最初に入力されるFrame No1のIピクチャのPTS_counterの値は値”0”である。先頭から2番目に入力されるFrame No2のBピクチャのPTS_counterの値は、Frame No1のIピクチャのPTS_counterの値”0”に、Pピクチャのフィールド数3を加算した値”3”(=0+3)となる。 More specifically, the value of PTS_counter of the I picture of Frame No. 1 input first is the value “0”. The PTS_counter value of the B picture of Frame No. 2 input second from the top is a value “3” (= 0 + 3) obtained by adding the number of P picture fields to 3 to the PTS_counter value “0” of the I picture of Frame No. 1 It becomes.
先頭から3番目に入力されるFrame No3のBピクチャのPTS_counterの値は、Frame No2のBピクチャのPTS_counterの値”3”に、Bピクチャのフィールド数2を加算した値”5”(=3+2)となる。先頭から4番目に入力されるFrame No4のPピクチャのPTS_counterの値は、Frame No3のBピクチャのPTS_counterの値”5”に、Bピクチャのフィールド数3を加算した値”8”(=5+3)となる。Frame No5のBピクチャ以降のPTS_counterの値も同様に算出される。
The value of PTS_counter of the B picture of Frame No. 3 input from the beginning is the value “5” (= 3 + 2) obtained by adding the number of fields of
さらに、MPEGエンコード部103は、内蔵するカウンタDTS_counterでエンコードしたフレームを計数し、計数した結果をエンドコントローラ102に出力する。
Further, the
図20(C)を参照して、具体的に説明すると、Frame No1のIピクチャのDTS_counterの値125は、Frame No1のIピクチャが表示される表示順序PTS_counter=0を基準としたとき、1フレーム分の出現周期前に符号化される必要がある(図14に対応させると、先頭のIピクチャの符号化順序の値は”1”であり、表示順序の値は”2”であり、符号化順序の値は表示順序の値より1フレーム分早い必要がある)。つまり、Iピクチャが3つのフィールドを持っているため、DTS_counterの値は、0より3だけ前の値”125”(DTS_counterは27(=128)のモジュロで表されるため、その値は0から127の間の値を循環する)となる。
Specifically, referring to FIG. 20C, the
Frame No1のIピクチャの次に符号化されるFrame No4のPピクチャのDTS_counterの値は、Frame No1のIピクチャのDTS_counterの値125にIピクチャのフィールド数3を加えた値0(=128=125+3)となる。
The DTS_counter value of the P picture of Frame No. 4 encoded next to the I picture of Frame No. 1 is 0 (= 128 = 125 + 3) obtained by adding the number of I picture fields to 3 to the
Frame No4のPピクチャの次に符号化される、Frame No2のBピクチャのDTS_counterの値は、BピクチャのためにPTS_counter=DTS_counterであり、PTS_counterの値と同一とされ、その値は”3”となる。同様に、Frame No2のBピクチャの次に符号化される、Frame No3のBピクチャのDTS_counterの値も、PTS_counterの値と同一とされ、その値は”5”とされる。以下、Frame No7のPピクチャ以降のDTS_counterの値も、同様に算出されるので、ここでは、その説明を省略する。 The DTS_counter value of the B picture of Frame No2 encoded next to the P picture of Frame No4 is PTS_counter = DTS_counter for the B picture, and is the same as the value of PTS_counter, and the value is “3”. Become. Similarly, the value of DTS_counter of the B picture of Frame No. 3 encoded next to the B picture of Frame No. 2 is also set to be the same as the value of PTS_counter, and the value is set to “5”. Hereinafter, the value of the DTS_counter after the P picture of Frame No. 7 is also calculated in the same manner, so that the description thereof is omitted here.
MPEGエンコード部103は、図20に示すようなフラグRepeat_first_field,Top_field_first、並びにカウンタPTS_counter,DTS_counterをPOIとして、エンコードコントローラ102に出力する。
The
ここで、図11に示した、離れた場所にあるスタジオ41のMPEGエンコーダ42から、スタジオ71のMPEGデコーダ74に、SDTI-CPネットワーク50,80、TS MUX/DEMUX61,62、およびATMのネットワークを使用して、画像信号の伝送を行うシステムの、符号化順序と表示順序について、図21を参照して説明する。
Here, the SDTI-
MPEGエンコーダ42内のMPEGビデオエンコーダ42Aは、MPEG符号化された画像データのエレメンタリストリーム(ES)を出力するとともに、POIを、そのエレメンタリストリーム(ES)中のuser dataに挿入する(図15のエンコードコントローラ102がPOIのデータをuser dataに記述し、可変長符号化部104に出力して、多重化させる)。MPEGエンコーダ42内のオーディオエンコーダ42Bは、音声データを符号化してエレメンタリストリーム(ES)として出力する。SDTI-CPインタフェース46は、MPEGビデオエンコーダ42Aからのエレメンタリストリーム(ES)(POIを含んだストリーム)と、オーディオエンコーダ42Bからのエレメンタリストリーム(ES)を、SDTIフォーマットのエレメンタリストリームに変換して、SDTI-CPネットワーク50に出力する。
An
SDTI-CPインタフェース51は、入力されたSDTIフォーマットのエレメンタリストリーム(ES)を、MPEG符号化のエレメンタリストリーム(ES)に変換し(図18を参照してSDTI-CPインタフェース46の動作として説明したように)、TS MUX/DEMUX61に出力する。TS MUX/DEMUX61は、エレメンタリストリーム(ES)に挿入されているPOIを参照して、PTS_counterの値をPTS(Presentation Time Stamp)に、また、DTS_counterの値をDTS(Decoding Time Stamp)に、それぞれ換算し、多重化処理を行い、188バイト単位のパケットから構成されるトランスポートストリーム(TS)を生成して出力する(従って、トランスポートストリーム(TS)には、PTS_counterとDTS_counterではなく、PTSとDTSが含まれる)。
The SDTI-
TS MUX/DEMUX61は、エレメンタリストリーム(ES)に挿入されているPOIを解釈することにより、前述のバッファリング処理を行うことなく、直ちに多重化処理を行うことができ、TS MUX/DEMUX61において、新たに遅延が発生することはない。また、POIはエレメンタリストリーム(ES)中に挿入されているため、TS MUX/DEMUX61は、POIを後段に伝達するために、POIをビットストリームに含ませる処理を行わなくてもよい。
The TS MUX /
図11のTS MUX/DEMUX62は、ATMなどの公衆網を介して入力されたトランスポートストリーム(TS)から画像データと音声データを分離して、MPEG符号化のエレメンタリストリーム(ES)に変換する。TS MUX/DEMUX62はまた、PTS,DTSをPTS_counter,DTS_counterに換算して、エレメンタリストリームのuser dataに挿入し、SDTI-CPインタフェース81に出力する。SDTI-CPインタフェース81は、MPEG符号化されたエレメンタリストリーム(ES)をSDTIフォーマットのエレメンタリストリーム(ES)に変換し、スタジオ71のSDTI-CPネットワーク80に出力する。MPEGデコーダ74(MPEGデコーダ44と同一の構成)は、SDTI-CPインタフェース78を介して、伝送されてきた画像データと音声データのエレメンタリストリーム(ES)を受信し、復号する。
The TS MUX /
MPEGデコーダ74は、TS MUX/DEMUX61と同様に、エレメンタリストリーム(ES)に挿入されているPOIを解釈して、前述のバッファリング処理を行うことなく、直ちに復号する(図16のデコードコントローラ113が出力するPOIに基づき、MPEGデコード部114が画像データを復号する)ことができ、MPEGデコーダ74において、新たに遅延が発生することはない。つまり、MPEGビデオエンコーダ42Aが、MPEG符号化されたエレメンタリストリーム(ES)とともに、POIをエレメンタリストリームに挿入して出力することにより、後段のTS MUX/DEMUX61と、MPEGデコーダ74は、POIを解釈して多重化処理、または復号処理を直ちに行うことができ、システム全体としての遅延を、MPEGエンコーダ42で生ずるBピクチャの枚数(=2)+1枚=3の遅延のみに抑えることができる。すなわち、このような符号化、多重化、および復号を含むシステムにおいて、理論的に最も小さい遅延とすることができる。
Similar to the TS MUX /
また、図21のシステム構成において、図18に示したSDTI-CPインタフェース46を用いることにより、SDTI-CPネットワーク50を使用して画像信号を伝送するとき、スタジオ41の内部では、ビットストリームを、編集が容易で、短距離伝送に適したエレメンタリストリーム(ES)の形態で伝送することが可能となり、離れたスタジオ間でATMなどの公衆網を使用して画像信号を伝送するとき、ビットストリームを、長距離伝送に適したトランスポートストリーム(TS)の形態で伝送することが可能となる。
Further, in the system configuration of FIG. 21, when an image signal is transmitted using the SDTI-
以上においては、POIをエレメンタリストリームに挿入するようにしたが、TS MUX/DEMUX61とMPEGエンコーダ42の距離が近いような場合には、図22に示すように、POIをMPEGエンコーダ42から、TS MUX/DEMUX61に直接供給するようにしてもよい。
In the above, the POI is inserted into the elementary stream. However, when the distance between the TS MUX /
しかしながら、このようにすると、エレメンタリストリームを伝送するSDTI-CPネットワーク50以外の配線処理が必要となる。
However, in this case, wiring processing other than the SDTI-
以上に述べたように、エンコーダの有する情報を、エレメンタリストリーム(ES)中のuser dataに記述して、多重化装置またはデコーダに出力することにより、エンコーダのみが有していた情報(Coding Phase(V-PhaseとH-Phase)、Field_ID、符号化順序DTS_counter、および表示順序PTS_counter)を、エンコーダより後段の多重化装置、デコーダに供給することができる。 As described above, the information possessed only by the encoder (Coding Phase) is described by describing the information possessed by the encoder in the user data in the elementary stream (ES) and outputting it to the multiplexing device or decoder. (V-Phase and H-Phase), Field_ID, encoding order DTS_counter, and display order PTS_counter) can be supplied to the multiplexing device and decoder subsequent to the encoder.
次に、図23乃至図36を参照してビットストリームのシンタックスについて説明する。 Next, the bitstream syntax will be described with reference to FIGS.
図23は、MPEGのビデオストリームのシンタックスを表わした図である。MPEGエンコーダ42は、この図23に示されたシンタックスに従った符号化エレメンタリストリームを生成する。以下に説明するシンタックスにおいて、関数や条件文は細活字で表わされ、データエレメントは、太活字で表されている。データ項目は、その名称、ビット長およびそのタイプ・伝送順序を示すニーモニック(Mnemonic)で記述されている。
FIG. 23 is a diagram illustrating the syntax of an MPEG video stream. The
まず、この図23に示されているシンタックスにおいて使用されている関数について説明する。実際には、この図23に示されているシンタックスは、MPEGデコーダ44側において、伝送されてきた符号化ビットストリームから所定の意味のあるデータエレメントを抽出するために使用されるシンタックスである。MPEGエンコーダ42側において使用されるシンタックスは、図23に示されたシンタックスからif文やwhile文等の条件文を省略したシンタックスである。
First, functions used in the syntax shown in FIG. 23 will be described. In practice, the syntax shown in FIG. 23 is a syntax used on the
video_sequence()において最初に記述されているnext_start_code()関数は、ビットストリーム中に記述されているスタートコードを探すための関数である。この図23に示されたシンタックスに従って生成された符号化ストリームには、まず最初に、sequence_header()関数とsequence_extension()関数によって定義されたデータエレメントが記述されている。このsequence_header()関数は、MPEGビットストリームのシーケンスレイヤのヘッダデータを定義するための関数であって、sequence_extension()関数は、MPEGビットストリームのシーケンスレイヤの拡張データを定義するための関数である。 The next_start_code () function described first in video_sequence () is a function for searching for a start code described in the bitstream. In the encoded stream generated according to the syntax shown in FIG. 23, first, data elements defined by the sequence_header () function and the sequence_extension () function are described. The sequence_header () function is a function for defining header data of the sequence layer of the MPEG bit stream, and the sequence_extension () function is a function for defining extension data of the sequence layer of the MPEG bit stream.
sequence_extension()関数の次に配置されている do{ }while構文は、while文によって定義されている条件が真である間、do文の{ }内の関数に基いて記述されたデータエレメントが符号化データストリーム中に記述されていることを示す構文である。このwhile文に使用されているnextbits()関数は、ビットストリーム中に記述されているビット又はビット列と、参照されるデータエレメントとを比較するための関数である。この図23に示されたシンタックスの例では、nextbits()関数は、ビットストリーム中のビット列とビデオシーケンスの終わりを示すsequence_end_codeとを比較し、ビットストリーム中のビット列とsequence_end_codeとが一致しないときに、このwhile文の条件が真となる。従って、sequence_extension()関数の次に配置されている do{ }while構文は、ビットストリーム中に、ビデオシーケンスの終わりを示すsequence_end_codeが現れない間、do文中の関数によって定義されたデータエレメントが符号化ビットストリーム中に記述されていることを示している。 The do {} while syntax placed next to the sequence_extension () function is a code where data elements described based on the functions in {} of the do statement are encoded while the condition defined by the while statement is true. Is a syntax indicating that it is described in the data stream. The nextbits () function used in the while statement is a function for comparing a bit or a bit string described in a bit stream with a referenced data element. In the syntax example shown in FIG. 23, the nextbits () function compares the bit string in the bit stream with sequence_end_code indicating the end of the video sequence, and the bit string in the bit stream does not match sequence_end_code. The condition of this while statement is true. Therefore, the do {} while syntax placed next to the sequence_extension () function encodes the data element defined by the function in the do statement while the sequence_end_code indicating the end of the video sequence does not appear in the bitstream. Indicates that it is described in the bitstream.
符号化ビットストリームにおいて、sequence_extension()関数によって定義された各データエレメントの次には、extension_and_user_data(0)関数によって定義されたデータエレメントが記述されている。このextension_and_user_data(0)関数は、MPEGビットストリームのシーケンスレイヤにおける拡張データとユーザデータを定義するための関数である。 In the encoded bitstream, data elements defined by the extension_and_user_data (0) function are described after each data element defined by the sequence_extension () function. The extension_and_user_data (0) function is a function for defining extension data and user data in the sequence layer of the MPEG bit stream.
このextension_and_user_data(0)関数の次に配置されている do{ }while構文は、while文によって定義されている条件が真である間、do文の{ }内の関数に基いて記述されたデータエレメントが、ビットストリームに記述されていることを示す関数である。このwhile文において使用されているnextbits()関数は、ビットストリーム中に現れるビット又はビット列と、picture_start_code又はgroup_start_codeとの一致を判断するための関数であるって、ビットストリーム中に現れるビット又はビット列と、picture_start_code又はgroup_start_codeとが一致する場合には、while文によって定義された条件が真となる。よって、このdo{ }while構文は、符号化ビットストリーム中において、picture_start_code又はgroup_start_codeが現れた場合には、そのスタートコードの次に、do文中の関数によって定義されたデータエレメントのコードが記述されていることを示している。 The do {} while syntax placed next to this extension_and_user_data (0) function is a data element described based on the function in {} of the do statement while the condition defined by the while statement is true. Is a function indicating that it is described in the bitstream. The nextbits () function used in the while statement is a function for determining a match between a bit or a bit string appearing in the bit stream and a picture_start_code or group_start_code, and the bit or the bit string appearing in the bit stream. If picture_start_code or group_start_code matches, the condition defined by the while statement is true. Therefore, in this do {} while syntax, when picture_start_code or group_start_code appears in the encoded bitstream, the code of the data element defined by the function in the do statement is described next to the start code. It shows that.
このdo文の最初に記述されているif文は、符号化ビットストリーム中にgroup_start_codeが現れた場合、という条件を示しいる。このif文による条件は真である場合には、符号化ビットストリーム中には、このgroup_start_codeの次にgroup_of_picture_header()関数およびextension_and_user_data(1)関数によって定義されているデータエレメントが順に記述されている。 The if statement described at the beginning of the do statement indicates a condition that group_start_code appears in the encoded bitstream. When the condition by this if statement is true, the data elements defined by the group_of_picture_header () function and the extension_and_user_data (1) function are described in order in the encoded bitstream after this group_start_code.
このgroup_of_picture_header()関数は、MPEG符号化ビットストリームのGOPレイヤのヘッダデータを定義するための関数であって、extension_and_user_data(1)関数は、MPEG符号化ビットストリームのGOPレイヤの拡張データおよびユーザデータを定義するための関数である。 This group_of_picture_header () function is a function for defining the GOP layer header data of the MPEG encoded bit stream, and the extension_and_user_data (1) function is the extension data and user data of the GOP layer of the MPEG encoded bit stream. It is a function for defining.
さらに、この符号化ビットストリームにおいて、group_of_picture_header()関数およびextension_and_user_data(1)関数によって定義されているデータエレメントの次には、picture_header()関数とpicture_coding_extension()関数によって定義されたデータエレメントが記述されている。もちろん、先に説明したif文の条件が真とならない場合には、 group_of_picture_header()関数およびextension_and_user_data(1)関数によって定義されているデータエレメントは記述されていないので、 extension_and_user_data(0)関数によって定義されているデータエレメントの次に、picture_header()関数、picture_coding_extension()関数およびextension_and_user_data(2)関数によって定義されたデータエレメントが記述されている。 Furthermore, in this encoded bitstream, the data elements defined by the picture_header () function and the picture_coding_extension () function are described next to the data elements defined by the group_of_picture_header () function and the extension_and_user_data (1) function. Yes. Of course, if the condition of the if statement described above is not true, the data element defined by the group_of_picture_header () function and the extension_and_user_data (1) function is not described, so it is defined by the extension_and_user_data (0) function. The data elements defined by the picture_header () function, the picture_coding_extension () function, and the extension_and_user_data (2) function are described next to the data element.
このpicture_header()関数は、MPEG符号化ビットストリームのピクチャレイヤのヘッダデータを定義するための関数であって、picture_coding_extension()関数は、MPEG符号化ビットストリームのピクチャレイヤの第1の拡張データを定義するための関数である。extension_and_user_data(2)関数は、MPEG符号化ビットストリームのピクチャレイヤの拡張データおよびユーザデータを定義するための関数である。このextension_and_user_data(2)関数によって定義されるユーザデータは、ピクチャレイヤに記述されているデータであって、各ピクチャ毎に記述することのできるデータである。 The picture_header () function is a function for defining the header data of the picture layer of the MPEG encoded bit stream, and the picture_coding_extension () function is for defining the first extension data of the picture layer of the MPEG encoded bit stream It is a function to do. The extension_and_user_data (2) function is a function for defining extension data and user data of a picture layer of an MPEG encoded bit stream. The user data defined by the extension_and_user_data (2) function is data described in the picture layer and can be described for each picture.
符号化ビットストリームにおいて、ピクチャレイヤのユーザデータの次には、picture_data()関数によって定義されるデータエレメントが記述されている。このpicture_data()関数は、スライスレイヤおよびマクロブロックレイヤに関するデータエレメントを記述するための関数である。 In the encoded bitstream, data elements defined by the picture_data () function are described after the user data of the picture layer. The picture_data () function is a function for describing data elements related to the slice layer and the macroblock layer.
このpicture_data()関数の次に記述されているwhile文は、このwhile文によって定義されている条件が真である間、次のif文の条件判断を行うための関数である。このwhile文において使用されているnextbits()関数は、符号化ビットストリーム中に、picture_start_code又はgroup_start_codeが記述されているか否かを判断するための関数であって、ビットストリーム中にpicture_start_code又はgroup_start_codeが記述されている場合には、このwhile文によって定義された条件が真となる。 The while statement described next to the picture_data () function is a function for determining the condition of the next if statement while the condition defined by the while statement is true. The nextbits () function used in this while statement is a function for determining whether picture_start_code or group_start_code is described in the encoded bitstream, and picture_start_code or group_start_code is described in the bitstream. If so, the condition defined by this while statement is true.
次のif文は、符号化ビットストリーム中にsequence_end_code が記述されているか否かを判断するための条件文であって、sequence_end_code が記述されていないのであれば、sequence_header()関数とsequence_extension()関数とによって定義されたデータエレメントが記述されていることを示している。sequence_end_codeは符号化ビデオストリームのシーケンスの終わりを示すコードであるので、符号化ストリームが終了しない限り、符号化ストリーム中にはsequence_header()関数とsequence_extension()関数とによって定義されたデータエレメントが記述されている。 The next if statement is a conditional statement for determining whether sequence_end_code is described in the encoded bitstream. If sequence_end_code is not described, sequence_header () function and sequence_extension () function Indicates that the data element defined by and is described. Since sequence_end_code is a code indicating the end of the sequence of the encoded video stream, unless the encoded stream ends, the data element defined by the sequence_header () function and the sequence_extension () function is described in the encoded stream. ing.
このsequence_header()関数とsequence_extension()関数によって記述されたデータエレメントは、ビデオストリームのシーケンスの先頭に記述されたsequence_header()関数とsequence_extension()関数によって記述されたデータエレメントと全く同じである。このように同じデータをストリーム中に記述する理由は、ビットストリーム受信装置側でデータストリームの途中(例えばピクチャレイヤに対応するビットストリーム部分)から受信が開始された場合に、シーケンスレイヤのデータを受信できなくなり、ストリームをデコード出来なくなることを防止するためである。 The data elements described by the sequence_header () function and the sequence_extension () function are exactly the same as the data elements described by the sequence_header () function and the sequence_extension () function described at the beginning of the video stream sequence. The reason why the same data is described in the stream in this way is that the reception of the sequence layer is received when the reception starts from the middle of the data stream (for example, the bit stream portion corresponding to the picture layer) on the bit stream receiver side. This is to prevent the stream from being able to be decoded and being unable to decode the stream.
この最後のsequence_header()関数とsequence_extension()関数とによって定義されたデータエレメントの次、つまり、データストリームの最後には、シーケンスの終わりを示す2ビットのsequence_end_codeが記述されている。 Following the data element defined by the last sequence_header () function and sequence_extension () function, that is, at the end of the data stream, 2-bit sequence_end_code indicating the end of the sequence is described.
以下に、sequence_header()関数、sequence_extension()関数、extension_and_user_data(0)関数、group_of_picture_header()関数、picture_header()関数、picture_coding_extension()関数、およびpicture_data()関数について詳細に説明する。 The sequence_header () function, sequence_extension () function, extension_and_user_data (0) function, group_of_picture_header () function, picture_header () function, picture_coding_extension () function, and picture_data () function will be described in detail below.
図24は、sequence_header()関数のシンタックスを説明するための図である。このsequence_header()関数によって定義されたデータエレメントは、sequence_header_code、horizontal_size_value、vertical_size_value、aspect_ratio_information、frame_rate_code、bit_rate_value、marker_bit、vbv_buffer_size_value、constrained_parameter_flag、load_intra_quantizer_matrix、intra_quantizer_matrix[64]、load_non_intra_quantizer_matrix、およびnon_intra_quantizer_matrix等である。 FIG. 24 is a diagram for explaining the syntax of the sequence_header () function. The data elements defined by this sequence_header () function are sequence_header_code, horizontal_size_value, vertical_size_value, aspect_ratio_information, frame_rate_code, bit_rate_value, marker_bit, vbv_buffer_size_value, constrained_parameter_flag, load_intra_quantizer_matrix, non64_intrix_intra_quantizer_
sequence_header_codeは、シーケンスレイヤのスタート同期コードを表すデータである。horizontal_size_valueは、画像の水平方向の画素数の下位12ビットから成るデータである。vertical_size_valueは、画像の縦のライン数の下位12ビットからなるデータである。aspect_ratio_informationは、画素のアスペクト比(縦横比)または表示画面アスペクト比を表すデータである。frame_rate_codeは、画像の表示周期を表すデータである。bit_rate_valueは、発生ビット量に対する制限のためのビット・レートの下位18ビット(400bsp単位で切り上げる)データである。marker_bitは、スタートコードエミュレーションを防止するために挿入されるビットデータである。vbv_buffer_size_valueは、発生符号量制御用の仮想バッファ(ビデオバッファベリファイヤー)の大きさを決める値の下位10ビットデータである。constrained_parameter_flagは、各パラメータが制限以内であることを示すデータである。load_intra_quantizer_matrixは、イントラMB用量子化マトリックス・データの存在を示すデータである。intra_quantizer_matrix[64]は、イントラMB用量子化マトリックスの値を示すデータである。load_non_intra_quantizer_matrixは、非イントラMB用量子化マトリックス・データの存在を示すデータである。non_intra_quantizer_matrixは、非イントラMB用量子化マトリックスの値を表すデータである。 sequence_header_code is data representing the start synchronization code of the sequence layer. horizontal_size_value is data consisting of the lower 12 bits of the number of pixels in the horizontal direction of the image. vertical_size_value is data consisting of the lower 12 bits of the number of vertical lines of the image. Aspect_ratio_information is data representing the pixel aspect ratio (aspect ratio) or display screen aspect ratio. The frame_rate_code is data representing an image display cycle. bit_rate_value is lower 18 bits (rounded up in units of 400 bsp) of the bit rate for limiting the amount of generated bits. The marker_bit is bit data inserted to prevent start code emulation. vbv_buffer_size_value is lower 10-bit data of a value that determines the size of the generated code amount control virtual buffer (video buffer verifier). constrained_parameter_flag is data indicating that each parameter is within the limit. The load_intra_quantizer_matrix is data indicating the presence of intra MB quantization matrix data. intra_quantizer_matrix [64] is data indicating the value of the intra MB quantization matrix. The load_non_intra_quantizer_matrix is data indicating the presence of non-intra MB quantization matrix data. non_intra_quantizer_matrix is data representing the value of the non-intra MB quantization matrix.
図25はsequence_extension()関数のシンタックスを説明するための図である。このsequence_extension()関数によって定義されたデータエレメントとは、extension_start_code、extension_start_code_identifier、profile_and_level_indication、progressive_sequence、chroma_format、horizontal_size_extension、vertical_size_extension、bit_rate_extension、vbv_buffer_size_extension、low_delay、frame_rate_extension_n 、および frame_rate_extension_d等のデータエレメントである。 FIG. 25 is a diagram for explaining the syntax of the sequence_extension () function. The data elements defined by this sequence_extension () function are extension_start_code, extension_start_code_identifier, profile_and_level_indication, progressive_sequence, chroma_format, horizontal_size_extension, vertical_size_extension, bit_rate_extension, vbv_buffer_size_extension, low_delay, frame_rate_ext_, extension_data_ext_
extension_start_codeは、エクステンションデータのスタート同期コードを表すデータである。extension_start_code_identifierは、どの拡張データが送られるかを示すデータである。profile_and_level_indicationは、ビデオデータのプロファイルとレベルを指定するためのデータである。progressive_sequenceは、ビデオデータが順次走査であることを示すデータである。chroma_formatは、ビデオデータの色差フォーマットを指定するためのデータである。horizontal_size_extensionは、シーケンスヘッダのhorizntal_size_valueに加える上位2ビットのデータである。vertical_size_extensionは、シーケンスヘッダのvertical_size_value加える上位2ビットのデータである。bit_rate_extensionは、シーケンスヘッダのbit_rate_valueに加える上位12ビットのデータである。vbv_buffer_size_extensionは、シーケンスヘッダのvbv_buffer_size_valueに加える上位8ビットのデータである。low_delayは、Bピクチャを含まないことを示すデータである。frame_rate_extension_nは、シーケンスヘッダのframe_rate_codeと組み合わせてフレームレートを得るためのデータである。frame_rate_extension_dは、シーケンスヘッダのframe_rate_codeと組み合わせてフレームレートを得るためのデータである。 extension_start_code is data representing a start synchronization code of extension data. extension_start_code_identifier is data indicating which extension data is sent. Profile_and_level_indication is data for designating the profile and level of video data. progressive_sequence is data indicating that the video data is sequentially scanned. chroma_format is data for designating the color difference format of the video data. The horizontal_size_extension is upper 2 bits data added to the horizntal_size_value of the sequence header. vertical_size_extension is upper 2 bits of data added to vertical_size_value of the sequence header. bit_rate_extension is upper 12-bit data added to bit_rate_value of the sequence header. vbv_buffer_size_extension is upper 8-bit data to be added to vbv_buffer_size_value of the sequence header. low_delay is data indicating that a B picture is not included. Frame_rate_extension_n is data for obtaining a frame rate in combination with frame_rate_code of the sequence header. Frame_rate_extension_d is data for obtaining a frame rate in combination with frame_rate_code of the sequence header.
図26は、extension_and_user_data(i)関数のシンタックスを説明するための図である。このextension_and_user_data(i)関数は、「i」が1以外のときは、extension_data()関数によって定義されるデータエレメントは記述せずに、user_data()関数によって定義されるデータエレメントのみを記述する。よって、extension_and_user_data(0)関数は、user_data()関数によって定義されるデータエレメントのみを記述する。 FIG. 26 is a diagram for explaining the syntax of the extension_and_user_data (i) function. The extension_and_user_data (i) function describes only the data element defined by the user_data () function without describing the data element defined by the extension_data () function when “i” is other than 1. Therefore, the extension_and_user_data (0) function describes only the data element defined by the user_data () function.
まず、図26に示されているシンタックスにおいて使用されている関数について説明する。nextbits()関数は、ビットストリーム中に現れるビットまたはビット列と、次に復号されるデータエレメントとを比較するための関数である。 First, functions used in the syntax shown in FIG. 26 will be described. The nextbits () function is a function for comparing a bit or a bit string appearing in a bit stream with a data element to be decoded next.
user_data()関数は、図27に示すように、user_data_start_code,V-phase()関数,H-phase()関数,Time_code()関数,Picture-order()関数,Ancillary_data()関数,history_data()関数,およびuser_dataのデータエレメントを記述するための関数である。 As shown in FIG. 27, the user_data () function includes user_data_start_code, V-phase () function, H-phase () function, Time_code () function, Picture-order () function, Ancillary_data () function, history_data () function. , And a function for describing the data element of user_data.
user_data_start_codeは、MPEG方式のビットストリームのピクチャレイヤのユーザデータエリアの開始を示すためのスタートコードである。このuser_data_start_codeの次に記述されているif文は、user_data(i)関数のiが”0”のとき、次に記述されているwhile構文を実行する。このwhile構文は、ビットストリーム中に、23個の”0”とそれに続く”1”から構成される24ビットのデータが現れない限り真となる。 user_data_start_code is a start code for indicating the start of the user data area of the picture layer of the MPEG bit stream. The if statement described next to the user_data_start_code executes the while syntax described next when i of the user_data (i) function is “0”. This while syntax is true unless 24-bit data composed of 23 “0” s and subsequent “1” appears in the bitstream.
この23個の”0”とそれに続く”1”から構成される24ビットのデータは、すべてのスタートコードの先頭に付与されるデータであって、すべてのスタートコードは、この24ビットの後ろに設けられることによって、nextbits()関数は、ビットストリーム中において、各スタートコードの位置を見つけることができる。 The 24-bit data composed of these 23 “0” s followed by “1” is data added to the head of all the start codes, and all the start codes are after the 24 bits. By being provided, the nextbits () function can find the position of each start code in the bitstream.
while構文が真のとき、その次に記述されているif文のnextbits()関数は、V-Phaseを示すビット列(Data_ID)を検出すると、そのビット列(Data_ID)の次ビットからV-Phase()関数で示されるV-Phaseのデータエレメントが記述されていることを知る。次のElse if文のnextbits()関数は、H-Phaseを示すビット列(Data_ID)を検出すると、そのビット列(Data_ID)の次ビットからH-Phase()関数で示されるH-Phaseのデータエレメントが記述されていることを知る。 When the while syntax is true, if the nextbits () function of the if statement described next detects a bit string (Data_ID) indicating V-Phase, V-Phase () is calculated from the next bit of that bit string (Data_ID). Know that the V-Phase data element indicated by the function is described. When the nextbits () function of the next Else if statement detects a bit string (Data_ID) indicating an H-Phase, the data element of the H-Phase indicated by the H-Phase () function is determined from the next bit of the bit string (Data_ID). Know what is written.
ここで、図28に示すように、V-PhaseのData_IDは、”01”を表すビット列であり、H-PhaseのData_IDは、”02”を表すビット列である。 Here, as shown in FIG. 28, the V-Phase Data_ID is a bit string representing “01”, and the H-Phase Data_ID is a bit string representing “02”.
ビットストリームに記述されるV-Phase()関数のシンタックスについて、図29を参照して説明する。まず、Data_IDは、前述したように、そのData_IDの次のビット列のデータエレメントがV-Phaseであることを表す8ビットのデータであり、図28で示した値”01”である。V-Phaseは、画像信号のフレームにおいて、符号化される最初のラインを示す16ビットのデータである。 The syntax of the V-Phase () function described in the bitstream will be described with reference to FIG. First, as described above, Data_ID is 8-bit data indicating that the data element of the bit string next to Data_ID is V-Phase, and is the value “01” shown in FIG. V-Phase is 16-bit data indicating the first line to be encoded in the frame of the image signal.
ビットストリームに記述されるH-Phase()関数のシンタックスについて、図30を参照して説明する。まず、Data_IDは、前述したように、そのData_IDの次のビット列のデータエレメントがH-Phaseであることを表す8ビットのデータであり、図28で示した値”02”である。H-Phaseは、画像信号フレームにおいて、符号化される最初のサンプルを示す8ビットのデータである。 The syntax of the H-Phase () function described in the bitstream will be described with reference to FIG. First, as described above, Data_ID is 8-bit data indicating that the data element of the bit string next to Data_ID is H-Phase, and is the value “02” shown in FIG. H-Phase is 8-bit data indicating the first sample to be encoded in the image signal frame.
図27に戻って、次のElse if文は、user_data(i)関数のiが2のとき、次に記述されているwhile構文を実行する。while構文の内容は前述した場合と同様であるので、ここではその説明を省略する。 Returning to FIG. 27, the next Else if statement executes the while syntax described next when i of the user_data (i) function is 2. Since the contents of the while syntax are the same as those described above, the description thereof is omitted here.
while構文が真のとき、次のif文において、nextbits()関数は、Time code1を示すビット列を検出するか、または、Time code2を示すビット列を検出すると、そのビット列の次ビットからTime_code()関数で示されるTime codeのデータエレメントが記述されていることを知る。
When the while syntax is true, in the next if statement, the nextbits () function detects a bit string indicating
Time code1のData_IDは、図28に示すように、”03”を表すビット列であり、Time code1のデータは、画像の垂直ブランキング期間に挿入されたタイムコードを示す、VITC(Vertical Interval Time Code)である。Time code2のData_IDは、図28に示すように、”04”を表すビット列であり、Time code2のデータは、記録媒体のタイムコードトラックに記録されたタイムコードを示す、LTC(Longitudinal Time Code)である。
As shown in FIG. 28, Data_ID of Time code1 is a bit string representing “03”, and the data of Time code1 indicates a time code inserted in the vertical blanking period of the image, VITC (Vertical Interval Time Code) It is. As shown in FIG. 28, Data_ID of
次に、Else if文において、nextbits()関数は、Picture Orderを示すビット列を検出すると、そのビット列の次ビットからPicture_Order()関数で示されるPicture Orderのデータエレメントが記述されていることを知る。ここで、Picture_Order()関数のData_IDは、図28に示すように、”05”を表すビット列である。 Next, in the Else if statement, when the nextbits () function detects a bit string indicating Picture Order, it knows that the data element of Picture Order indicated by the Picture_Order () function is described from the next bit of the bit string. Here, Data_ID of the Picture_Order () function is a bit string representing “05” as shown in FIG.
実際に、エンコーダでエレメンタリストリーム(ES)に挿入するPicture_Order()関数のシンタックスを、図31を参照して説明する。まず、Data_IDは前述したように、そのData_ID以降のデータがPOIのデータであることを示す8ビットのデータであり、その値は”05”である。DTS_presenceは、符号化順序DTS_counterの有無を表す1ビットのデータである。例えば、BピクチャのようにDTS_counter=PTS_counterとなる場合、表示順序PTS_counterのみが存在し、DTS_presenceのビットは”0”となる。逆に、PピクチャおよびIピクチャの場合、符号化順序DTS_counterと表示順序PTS_counterは同一ではないので、表示順序PTS_counterと符号化順序DTS_counterの双方が存在し、DTS_presenceのビットは1となる。 The syntax of the Picture_Order () function that is actually inserted into the elementary stream (ES) by the encoder will be described with reference to FIG. First, as described above, Data_ID is 8-bit data indicating that the data after the Data_ID is POI data, and its value is “05”. DTS_presence is 1-bit data indicating the presence / absence of the coding order DTS_counter. For example, when DTS_counter = PTS_counter as in a B picture, only the display order PTS_counter exists, and the bit of DTS_presence is “0”. On the contrary, in the case of P picture and I picture, since the encoding order DTS_counter and the display order PTS_counter are not the same, both the display order PTS_counter and the encoding order DTS_counter exist, and the bit of DTS_presence is 1.
PTS_counterは、エンコーダに符号化フレーム中の1フィールドが入力されるごとにカウントアップを行う、表示順序を表す7ビットのデータである。この7ビットのデータは、0から127までの値をとるモジュロである。if文以降は、DTS_presenceのビットが1のとき、すなわち、PピクチャおよびIピクチャのとき、DTS_counterのカウントアップが実行される。 PTS_counter is 7-bit data representing the display order that is counted up every time one field in the encoded frame is input to the encoder. The 7-bit data is a modulo value ranging from 0 to 127. After the if statement, when the bit of DTS_presence is 1, that is, when it is a P picture and an I picture, DTS_counter is counted up.
Marker_bitsは、user dataの記述されたビット列が、偶然に前述したスタートコードと一致し、画像破錠を引き起こす可能正が高い、スタートコードエミュレーションを防止するために、16ビットごとに挿入されるビットである。 Marker_bits is a bit inserted every 16 bits to prevent start code emulation, in which the bit string described in user data coincides with the start code described above by chance and is likely to cause image lockup. is there.
DTS_counterは、エンコーダで、1フィールド分の符号化画像データが符号化されるごとにカウントアップを行う、符号化順序を表す7ビットのデータである。この7ビットのデータは、0から127までの値をとるモジュロである。 DTS_counter is 7-bit data representing an encoding order that is counted up every time encoded image data for one field is encoded by the encoder. The 7-bit data is a modulo value ranging from 0 to 127.
前述したように、表示順序PTS_counterは、フィールド単位で付番されるために、例えば、符号化画像データを24Hzから30Hzのフレームレートに変換して符号化する場合、3−2プルダウン処理を行った後に、付番する必要がある。 As described above, since the display order PTS_counter is numbered in units of fields, for example, when encoding image data converted from a frame rate of 24 Hz to 30 Hz, 3-2 pull-down processing is performed. It will need to be numbered later.
図27に戻って、その次に記述されているwhile構文も、内容は前述した場合と同様であるので、ここではその説明を省略する。while構文が真のとき、次のif文において、nextbits()関数は、Ancillary dataを示すビット列を検出すると、そのビット列の次ビットからAncillary_data()関数で示されるAncillary dataのデータエレメントが記述されていることを知る。Ancillary_data()関数のData_IDは、図28に示すように、”07”を表すビット列である。 Returning to FIG. 27, the contents of the “while” syntax described next are the same as those in the case described above, and the description thereof is omitted here. When the while syntax is true, in the next if statement, when the nextbits () function detects a bit string indicating Ancillary data, the data element of Ancillary data indicated by the Ancillary_data () function is described from the next bit of the bit string. Know that you are. Data_ID of the Ancillary_data () function is a bit string representing “07” as shown in FIG.
この補助データに識別子を付加するancillary dataのシンタックスを図32を参照して説明する。Ancillary_data()関数はピクチャ層のuser dataとして伝送され、データとしてはField識別子(Field_ID)、ラインの番号(Line_number)および補如データ(ancillary data)が挿入される。 The syntax of ancillary data for adding an identifier to the auxiliary data will be described with reference to FIG. The Ancillary_data () function is transmitted as user data in the picture layer, and a field identifier (Field_ID), a line number (Line_number), and supplementary data (ancillary data) are inserted as data.
Data_IDは、user data領域において、ancillary dataであることを示す8ビットのデータであり、その値は図28に示したように”07”である。 Data_ID is 8-bit data indicating ancillary data in the user data area, and its value is “07” as shown in FIG.
Field_IDは2ビットのデータであり、progressive_sequence flag(図25)の値が”0”のとき、符号化フレーム内のフィールドごとにField_IDが付加される。repeat_first_fieldに”0”が設定されているとき、この符号化フレームにはフィールドが2枚存在し、Field_IDは、図19に示したように、最初のフィールドに”0”、およびその次のフィールドに”1”が設定され、repeat_first_fieldに”1”が設定されているとき、この符号化フレームにはフィールドが3枚存在し、Field_IDとしては、最初のフィールドに”0”が設定され、それ以降のフィールドに”1”,”2”が設定される。 Field_ID is 2-bit data, and when the value of progressive_sequence flag (FIG. 25) is “0”, Field_ID is added for each field in the encoded frame. When repeat_first_field is set to “0”, there are two fields in this encoded frame, and Field_ID is “0” in the first field and the next field as shown in FIG. When “1” is set and repeat_first_field is set to “1”, there are three fields in this encoded frame, and Field_ID is set to “0” in the first field, and thereafter “1” and “2” are set in the field.
Field_IDは、progressive_sequence flagの値が”1”のとき、符号化フレームごとに付加される。Field_IDには、repeat_first_fieldとTop_field_firstにともに”0”が設定されているとき、その符号化フレームは1枚のprogressive frameが存在するので、値”0”が設定され、repeat_first_fieldに値”1”およびTop_field_firstに値”0”が設定されているとき、その符号化フレームは2枚のprogressive frameが存在するので、値”0”,”1”が設定され、repeat_first_fieldとTop_field_firstにともに”1”が設定されているとき、その符号化フレームは3枚のprogressive frameが存在するので、値”0”乃至”2”が設定される。 Field_ID is added for each encoded frame when the value of progressive_sequence flag is “1”. In Field_ID, when repeat_first_field and Top_field_first are both set to “0”, since the encoded frame has one progressive frame, the value “0” is set, and repeat_first_field is set to value “1” and Top_field_first. When the value is set to “0”, since there are two progressive frames in the encoded frame, the values “0” and “1” are set, and both repeat_first_field and Top_field_first are set to “1”. Since there are three progressive frames in the encoded frame, values “0” to “2” are set.
Line_numberは、14ビットのデータであり、各フレームにおける補助データが記述されている、ITU-R BT.656-3,SMPTE274M,SMPTE293M,SMPTE296Mで規定されたライン番号を示す。 Line_number is 14-bit data, and indicates a line number defined in ITU-R BT.656-3, SMPTE274M, SMPTE293M, and SMPTE296M in which auxiliary data in each frame is described.
Ancillary_data_lengthは、16ビットのデータであり、ancillary_data_payloadのデータ長を示す。Ancillary_data_payloadは、22ビットのデータからなる補助データの内容を表しており、Ancillary_data_payloadのAncillary_data_lengthの値がjの値(初期値0)より大きいとき、値j(Ancillary_data_lengthのデータ長)を1だけインクリメントして、そのjの値のビット列目から記述される。 Ancillary_data_length is 16-bit data and indicates the data length of ancillary_data_payload. Ancillary_data_payload represents the content of auxiliary data consisting of 22-bit data. When the value of Ancillary_data_length of Ancillary_data_payload is larger than the value of j (initial value 0), the value j (data length of Ancillary_data_length) is incremented by 1. , And is described from the bit string of the value of j.
次のWhile構文は、bytealigned()関数のためのシンタックスを表しており、次のデータがbytealigned()関数でないとき(While構文が真のとき)、Zero_bit(1ビットのデータ”0”)を記述する。 The following While syntax represents the syntax for the bytealigned () function. When the next data is not a bytealigned () function (when the While syntax is true), Zero_bit (1-bit data “0”) is used. Describe.
図27に戻って、次のElse if文において、nextbits()関数は、History dataを示すビット列を検出すると、そのビット列の次ビットからHistory_data()関数で示されるHistory dataのデータエレメントが記述されていることを知る。History_data()関数のData_IDは、図28に示すように、”08”を表すビット列であり、Data_IDが”08”で示されるデータは、符号化パラメータの履歴情報を含むHistory dataを表している。 Returning to FIG. 27, in the next Else if statement, when the nextbits () function detects a bit string indicating History data, the data element of History data indicated by the History_data () function is described from the next bit of the bit string. Know that you are. As shown in FIG. 28, Data_ID of the History_data () function is a bit string representing “08”, and data represented by Data_ID “08” represents History data including history information of encoding parameters.
最後のif文において、nextbits()関数は、user dataを示すビット列を検出すると、そのビット列の次ビットからuser_data()関数で示されるuser_dataのデータエレメントが記述されていることを知る。 In the last if statement, when the nextbits () function detects a bit string indicating user data, it knows that the data element of user_data indicated by the user_data () function is described from the next bit of the bit string.
図27のnextbits()関数が、それぞれのデータエレメントが記述されていることを知るビット列は、図28に示すData_IDとして記述されている。ただし、Data_IDとして”00”を使用することは禁止されている。Data_IDが”80”で示されるデータは、制御フラグを表しており、Data_IDが”FF”で示されるデータは、user dataを表している。 A bit string that the nextbits () function in FIG. 27 knows that each data element is described is described as Data_ID shown in FIG. However, using “00” as Data_ID is prohibited. Data indicated by Data_ID “80” represents a control flag, and data indicated by Data_ID “FF” represents user data.
図33は、group_of_picture_header()関数のシンタックスを説明するための図である。このgroup_of_picture_header()関数によって定義されたデータエレメントは、group_start_code、time_code、closed_gop、およびbroken_linkから構成される。 FIG. 33 is a diagram for explaining the syntax of the group_of_picture_header () function. The data element defined by the group_of_picture_header () function is composed of group_start_code, time_code, closed_gop, and broken_link.
group_start_codeは、GOPレイヤの開始同期コードを示すデータである。time_codeは、GOPの先頭ピクチャのシーケンスの先頭からの時間を示すタイムコードである。closed_gopは、GOP内の画像が他のGOPから独立再生可能なことを示すフラグデータである。broken_linkは、編集などのためにGOP内の先頭のBピクチャが正確に再生できないことを示すフラグデータである。 group_start_code is data indicating the start synchronization code of the GOP layer. time_code is a time code indicating the time from the beginning of the sequence of the first picture of the GOP. closed_gop is flag data indicating that an image in a GOP can be reproduced independently from other GOPs. Broken_link is flag data indicating that the first B picture in the GOP cannot be accurately reproduced for editing or the like.
extension_and_user_data(1)関数は、 extension_and_user_data(0)関数と同じように、user_data()関数によって定義されるデータエレメントのみを記述するための関数である。 The extension_and_user_data (1) function is a function for describing only the data element defined by the user_data () function, like the extension_and_user_data (0) function.
次に、図34乃至図36を参照して、符号化ストリームのピクチャレイヤに関するデータエレメントを記述するためのpicture_headr()関数、picture_coding_extension()関数、およびpicture_data()について説明する。 Next, a picture_headr () function, a picture_coding_extension () function, and picture_data () for describing data elements related to the picture layer of the encoded stream will be described with reference to FIGS. 34 to 36.
図34はpicture_headr()関数のシンタックスを説明するための図である。このpicture_headr()関数によって定義されたデータエレメントは、picture_start_code、temporal_reference、picture_coding_type、vbv_delay、full_pel_forward_vector、forward_f_code、full_pel_backward_vector、backward_f_code、extra_bit_picture、およびextra_information_pictureである。 FIG. 34 is a diagram for explaining the syntax of the picture_headr () function. The data elements defined by this picture_headr () function are picture_start_code, temporal_reference, picture_coding_type, vbv_delay, full_pel_forward_vector, forward_f_code, full_pel_backward_vector, backward_f_code, extra_bit_picture, and extra_information_picture.
具体的には、picture_start_codeは、ピクチャレイヤの開始同期コードを表すデータである。temporal_referenceは、ピクチャの表示順を示す番号で、GOPの先頭でリセットされるデータである。picture_coding_typeは、ピクチャタイプを示すデータである。 Specifically, picture_start_code is data representing the start synchronization code of the picture layer. temporal_reference is a number indicating the display order of pictures and is data to be reset at the top of the GOP. picture_coding_type is data indicating a picture type.
vbv_delayは、VBVバッファの初期状態を示すデータであって、各ピクチャ毎に設定されている。送信側システムから受信側システムに伝送された符号化エレメンタリストリームのピクチャは、受信側システムに設けられたVBVバッファにバッファリングされ、DTS(Decoding Time Stamp)によって指定された時刻に、このVBVバッファから引き出され(読み出され)、デコーダに供給される。vbv_delayによって定義される時間は、復号化対象のピクチャがVBVバッファにバッファリングされ始めてから、符号化対象のピクチャがVBVバッファから引き出されるまでの時間、つまりDTSによって指定された時刻までの時間を意味する。このピクチャヘッダに格納されたvbv_delayを使用することによって、VBVバッファのデータ占有量が不連続にならないシームレスなスプライシングが実現できる。 vbv_delay is data indicating the initial state of the VBV buffer, and is set for each picture. The picture of the encoded elementary stream transmitted from the transmission side system to the reception side system is buffered in a VBV buffer provided in the reception side system, and this VBV buffer is stored at the time specified by DTS (Decoding Time Stamp). Is extracted (read) and supplied to the decoder. The time defined by vbv_delay means the time from when the decoding target picture starts to be buffered in the VBV buffer until the encoding target picture is pulled out of the VBV buffer, that is, the time specified by the DTS. To do. By using vbv_delay stored in the picture header, seamless splicing can be realized in which the data occupation amount of the VBV buffer is not discontinuous.
full_pel_forward_vectorは、順方向動きベクトルの精度が整数単位か半画素単位かを示すデータである。forward_f_codeは、順方向動きベクトル探索範囲を表すデータである。full_pel_backward_vectorは、逆方向動きベクトルの精度が整数単位か半画素単位かを示すデータである。backward_f_codeは、逆方向動きベクトル探索範囲を表すデータである。extra_bit_pictureは、後続する追加情報の存在を示すフラグである。このextra_bit_pictureが「1」の場合には、次にextra_information_pictureが存在し、extra_bit_pictureが「0」の場合には、これに続くデータが無いことを示している。extra_information_pictureは、規格において予約された情報である。 full_pel_forward_vector is data indicating whether the accuracy of the forward motion vector is an integer unit or a half pixel unit. forward_f_code is data representing the forward motion vector search range. full_pel_backward_vector is data indicating whether the accuracy of the backward motion vector is an integer unit or a half pixel unit. backward_f_code is data representing the backward motion vector search range. extra_bit_picture is a flag indicating the presence of subsequent additional information. When this extra_bit_picture is “1”, there is next extra_information_picture, and when extra_bit_picture is “0”, it indicates that there is no subsequent data. extra_information_picture is information reserved in the standard.
図35は、picture_coding_extension()関数のシンタックスを説明するための図である。このpicture_coding_extension()関数によって定義されたデータエレメントは、extension_start_code、extension_start_code_identifier、f_code[0][0]、f_code[0][1]、f_code[1][0]、f_code[1][1]、intra_dc_precision、picture_structure、top_field_first、frame_predictive_frame_dct、concealment_motion_vectors、q_scale_type、intra_vlc_format、alternate_scan、repeat_first_field、chroma_420_type、progressive_frame、composite_display_flag、v_axis、field_sequence、sub_carrier、burst_amplitude、およびsub_carrier_phaseから構成される。 FIG. 35 is a diagram for explaining the syntax of the picture_coding_extension () function. The data elements defined by this picture_coding_extension () function are extension_start_code, extension_start_code_identifier, f_code [0] [0], f_code [0] [1], f_code [1] [0], f_code [1] [1], intra_dc_precision , Picture_structure, top_field_first, frame_predictive_frame_dct, concealment_motion_vectors, q_scale_type, intra_vlc_format, alternate_scan, repeat_first_field, chroma_420_type, progressive_frame, composite_display_flag, v_axis, field_sequence, sub_carrier, burst_amplitude
extension_start_codeは、ピクチャレイヤのエクステンションデータのスタートを示す開始コードである。extension_start_code_identifierは、どの拡張データが送られるかを示すコードである。f_code[0][0]は、フォアード方向の水平動きベクトル探索範囲を表すデータである。f_code[0][1]は、フォアード方向の垂直動きベクトル探索範囲を表すデータである。f_code[1][0]は、バックワード方向の水平動きベクトル探索範囲を表すデータである。f_code[1][1]は、バックワード方向の垂直動きベクトル探索範囲を表すデータである。intra_dc_precisionは、DC係数の精度を表すデータである。picture_structureは、フレームストラクチャかフィールドストラクチャかを示すデータである。これは、フィールドストラクチャの場合は、上位フィールドか下位フィールドかもあわせて示す。 extension_start_code is a start code indicating the start of extension data of the picture layer. extension_start_code_identifier is a code indicating which extension data is sent. f_code [0] [0] is data representing the horizontal motion vector search range in the forward direction. f_code [0] [1] is data representing a vertical motion vector search range in the forward direction. f_code [1] [0] is data representing the horizontal motion vector search range in the backward direction. f_code [1] [1] is data representing a vertical motion vector search range in the backward direction. intra_dc_precision is data representing the precision of the DC coefficient. Picture_structure is data indicating a frame structure or a field structure. In the case of a field structure, this indicates whether it is an upper field or a lower field.
top_field_firstは、フレームストラクチャの場合、最初のフィールドがトップフィールドであるのか、ボトムフィールドであるのかを示すフラグである。frame_predictive_frame_dctは、フレーム・ストラクチャの場合、フレーム・モードDCTの予測がフレーム・モードだけであることを示すデータである。concealment_motion_vectorsは、イントラマクロブロックに伝送エラーを隠蔽するための動きベクトルがついていることを示すデータである。q_scale_typeは、線形量子化スケールを利用するか、非線形量子化スケールを利用するかを示すデータである。intra_vlc_formatは、イントラマクロブロックに、別の2次元VLC(可変長符号)を使うかどうかを示すデータである。alternate_scanは、ジグザグスキャンを使うか、オルタネート・スキャンを使うかの選択を表すデータである。 In the case of a frame structure, top_field_first is a flag indicating whether the first field is a top field or a bottom field. In the case of a frame structure, frame_predictive_frame_dct is data indicating that the prediction of the frame mode DCT is only the frame mode. concealment_motion_vectors is data indicating that a motion vector for concealing a transmission error is attached to an intra macroblock. q_scale_type is data indicating whether to use a linear quantization scale or a nonlinear quantization scale. The intra_vlc_format is data indicating whether another two-dimensional VLC (variable length code) is used for the intra macroblock. The alternate_scan is data representing a selection between using a zigzag scan or an alternate scan.
repeat_first_fieldは、復号化時にリピートフィールドを生成するか否かを示すフラグであって、復号化時の処理において、repeat_first_field が「1」の場合にはリピートフィールドを生成し、repeat_first_fieldが「0」の場合にはリピートフィールドを生成しないという処理が行われる。 repeat_first_field is a flag indicating whether or not a repeat field is to be generated at the time of decoding. When repeat_first_field is “1” in the process at the time of decoding, a repeat field is generated and when repeat_first_field is “0” Is processed so as not to generate a repeat field.
chroma_420_typeは、信号フォーマットが4:2:0の場合、次のprogressive_frame と同じ値、そうでない場合は0を表すデータである。progressive_frameは、そのピクチャが、順次走査できているかどうかを示すデータである。composite_display_flagは、ソース信号がコンポジット信号であったかどうかを示すデータである。v_axisは、ソース信号が、PALの場合に使われるデータである。field_sequenceは、ソース信号が、PALの場合に使われるデータである。sub_carrierは、ソース信号が、PALの場合に使われるデータである。burst_amplitudeは、ソース信号が、PALの場合に使われるデータである。sub_carrier_phaseは、ソース信号が、PALの場合に使われるデータである。 The chroma_420_type is data representing the same value as the next progressive_frame when the signal format is 4: 2: 0, and 0 otherwise. Progressive_frame is data indicating whether or not the picture can be sequentially scanned. composite_display_flag is data indicating whether the source signal is a composite signal. v_axis is data used when the source signal is PAL. The field_sequence is data used when the source signal is PAL. sub_carrier is data used when the source signal is PAL. burst_amplitude is data used when the source signal is PAL. sub_carrier_phase is data used when the source signal is PAL.
図36は、picture_data()関数のシンタックスを説明するための図である。このpicture_data()関数によって定義されるデータエレメントは、slice()関数によって定義されるデータエレメントである。但し、ビットストリーム中に、slice()関数のスタートコードを示すslice_start_codeが存在しない場合には、このslice()関数によって定義されるデータエレメントはビットストリーム中に記述されていない。 FIG. 36 is a diagram for explaining the syntax of the picture_data () function. The data element defined by the picture_data () function is a data element defined by the slice () function. However, when slice_start_code indicating the start code of the slice () function does not exist in the bitstream, the data element defined by this slice () function is not described in the bitstream.
slice()関数は、スライスレイヤに関するデータエレメントを記述するための関数であって、具体的には、slice_start_code、slice_quantiser_scale_code、intra_slice_flag、intra_slice、reserved_bits、extra_bit_slice、extra_information_slice、およびextra_bit_slice 等のデータエレメントと、macroblock()関数によって定義されるデータエレメントを記述するための関数である。 The slice () function is a function for describing data elements related to a slice layer. ) A function for describing a data element defined by a function.
slice_start_codeは、slice()関数によって定義されるデータエレメントのスタートを示すスタートコードである。slice_quantiser_scale_codeは、このスライスレイヤに存在するマクロブロックに対して設定された量子化ステップサイズを示すデータである。しかし、各マクロブロック毎に、quantiser_scale_codeが設定されている場合には、各マクロブロックに対して設定されたmacroblock_quantiser_scale_codeのデータが優先して使用される。intra_slice_flagは、ビットストリーム中にintra_sliceおよびreserved_bitsが存在するか否かを示すフラグである。intra_sliceは、スライスレイヤ中にノンイントラマクロブロックが存在するか否かを示すデータである。スライスレイヤにおけるマクロブロックのいずれかがノンイントラマクロブロックである場合には、intra_sliceは「0」となり、スライスレイヤにおけるマクロブロックの全てがノンイントラマクロブロックである場合には、intra_sliceは「1」となる。reserved_bitsは、7ビットのデータであって「0」の値を取る。extra_bit_sliceは、符号化ストリームとして追加の情報が存在することを示すフラグであって、次にextra_information_sliceが存在する場合には「1」に設定される。追加の情報が存在しない場合には「0」に設定される。 The slice_start_code is a start code indicating the start of the data element defined by the slice () function. The slice_quantiser_scale_code is data indicating the quantization step size set for the macroblock existing in this slice layer. However, when quantiser_scale_code is set for each macroblock, the macroblock_quantiser_scale_code data set for each macroblock is used preferentially. intra_slice_flag is a flag indicating whether or not intra_slice and reserved_bits exist in the bitstream. intra_slice is data indicating whether or not a non-intra macroblock exists in the slice layer. If any of the macroblocks in the slice layer is a non-intra macroblock, intra_slice is “0”, and if all of the macroblocks in the slice layer are non-intra macroblocks, intra_slice is “1”. Become. reserved_bits is 7-bit data and takes a value of “0”. extra_bit_slice is a flag indicating that additional information exists as an encoded stream, and is set to “1” when extra_information_slice exists next. If there is no additional information, it is set to “0”.
macroblock()関数は、マクロブロックレイヤに関するデータエレメントを記述するための関数であって、具体的には、macroblock_escape、macroblock_address_increment、およびmacroblock_quantiser_scale_code等のデータエレメントと、macroblock_modes()関数、および macroblock_vecters(s)関数によって定義されたデータエレメントを記述するための関数である。 The macroblock () function is a function for describing data elements related to the macroblock layer. Specifically, data elements such as macroblock_escape, macroblock_address_increment, and macroblock_quantiser_scale_code, macroblock_modes () function, and macroblock_vecters (s) function Is a function for describing data elements defined by.
macroblock_escapeは、参照マクロブロックと前のマクロブロックとの水平方向の差が34以上であるか否かを示す固定ビット列である。参照マクロブロックと前のマクロブロックとの水平方向の差が34以上の場合には、macroblock_address_incrementの値に33をプラスする。macroblock_address_incrementは、参照マクロブロックと前のマクロブロックとの水平方向の差を示すデータである。もし、このmacroblock_address_incrementの前にmacroblock_escapeが1つ存在するのであれば、このmacroblock_address_incrementの値に33をプラスした値が、実際の参照マクロブロックと前のマクロブロックとの水平方向の差分を示すデータとなる。macroblock_quantiser_scale_codeは、各マクロブロック毎に設定された量子化ステップサイズである。各スライスレイヤには、スライスレイヤの量子化ステップサイズを示すslice_quantiser_scale_codeが設定されているが、参照マクロブロックに対してmacroblock_quantiser_scale_codeが設定されている場合には、この量子化ステップサイズを選択する。 macroblock_escape is a fixed bit string indicating whether or not the horizontal difference between the reference macroblock and the previous macroblock is 34 or more. If the horizontal difference between the reference macroblock and the previous macroblock is 34 or more, 33 is added to the value of macroblock_address_increment. The macroblock_address_increment is data indicating a horizontal difference between the reference macroblock and the previous macroblock. If there is one macroblock_escape before this macroblock_address_increment, the value obtained by adding 33 to the value of this macroblock_address_increment is the data indicating the horizontal difference between the actual reference macroblock and the previous macroblock. . macroblock_quantiser_scale_code is a quantization step size set for each macroblock. In each slice layer, slice_quantiser_scale_code indicating the quantization step size of the slice layer is set, but when macroblock_quantiser_scale_code is set for the reference macroblock, this quantization step size is selected.
図37は、MPEG符号化ストリームのデータ構造を示す説明図である。この図に示したように、ビデオエレメンタリストリームのデータ構造は、少なくともシーケンスレイヤ、GOPレイヤ、およびピクチャレイヤを含んでいる。 FIG. 37 is an explanatory diagram showing the data structure of an MPEG encoded stream. As shown in this figure, the data structure of the video elementary stream includes at least a sequence layer, a GOP layer, and a picture layer.
シーケンスレイヤは、next_start_code()関数201、sequence_header()関数202、extension_start_code()203、sequence_extension()関数204、extension_and_user_data(0)関数205によって定義されるデータエレメントから構成されている。GOPレイヤは、group_start_code206、group_of_picture_header()関数207、extension_and_user_data(1)関数208によって定義されるデータエレメントから構成されている。ピクチャレイヤは、picture_header()関数209、picture_coding_extension()関数210、extension_and_user_data(2)関数211、picture_data()関数212によって定義されるデータエレメントを含んでいる。ビデオシーケンスの最後には、sequence_end_code213が記述されている。
The sequence layer includes data elements defined by a next_start_code ()
extension_and_user_data(2)関数211は、既に図26において説明したシンタックスからも理解できるように、user_data_start_code214、user_data()関数215、next_start_code216によって定義されるデータエレメントを含んでいる。
The extension_and_user_data (2)
user_data()関数215は、既に図27において説明したシンタックスからも理解できるように、time_code()関数217とuser_data218によって定義されるデータエレメントを含んでいる。
The user_data ()
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものとする。 In the present specification, the term “system” represents the entire apparatus including a plurality of apparatuses.
また、本明細書中において、上記処理を実行するコンピュータプログラムをユーザに提供する提供媒体には、磁気ディスク、CD-ROMなどの情報記録媒体の他、インターネット、デジタル衛星などのネットワークによる伝送媒体も含まれる。 In addition, in the present specification, as a providing medium for providing a user with a computer program for executing the above processing, an information recording medium such as a magnetic disk and a CD-ROM, and a transmission medium via a network such as the Internet and a digital satellite are also included. included.
以上の如く、請求項1に記載のデジタル信号伝送装置、請求項4に記載のデジタル信号伝送方法、および請求項5に記載の提供媒体によれば、第1のビットストリームから順序情報を抽出し、抽出した順序情報に基づいてタイムスタンプを生成し、第2のビットストリームに挿入するようにしたので、所定の場所における画像データの処理を迅速に行うことができるようになるとともに、他の場所においても、画像データを迅速に処理することが可能となる。
As described above, according to the digital signal transmission device according to
42,43 MPEGエンコーダ, 44,45 MPEGデコーダ, 46乃至49 SDTI-CPインタフェース, 50 SDTI-CPネットワーク, 51 SDTI-CPイ
ンタフェース, 61,62 TS MUX/DEMUX, 72,73 MPEGエンコーダ, 74,75 MPEGデコーダ, 76乃至81 SDTI-CPインタフェース, 8
0 SDTI-CPネットワーク
42, 43 MPEG encoder, 44, 45 MPEG decoder, 46 to 49 SDTI-CP interface, 50 SDTI-CP network, 51 SDTI-CP interface, 61, 62 TS MUX / DEMUX, 72, 73 MPEG encoder, 74, 75 MPEG Decoder, 76 to 81 SDTI-CP interface, 8
0 SDTI-CP network
Claims (5)
前記第1の受信手段により受信された前記第1のビットストリームから前記順序情報を抽出し、抽出した前記順序情報に基づいてタイムスタンプを生成し、第2のビットストリームに挿入して出力する第1の出力手段と
を含むことを特徴とするデジタル信号伝送装置。 A first receiving means for receiving a first bitstream in which order information relating to an encoding order of image signals and a display order of the image signals is inserted in units of access units of the image signals;
The sequence information is extracted from the first bit stream received by the first receiving means, a time stamp is generated based on the extracted sequence information, inserted into a second bit stream, and output. And a digital signal transmission device.
前記第2の受信手段により受信された前記第2のビットストリームから、前記タイムスタンプを生成し、前記第1のビットストリームに挿入して出力する第2の出力手段とを
さらに含むことを特徴とする請求項1に記載のデジタル信号伝送装置。 Second receiving means for receiving the second bitstream;
And a second output means for generating the time stamp from the second bit stream received by the second receiving means, inserting the time stamp into the first bit stream, and outputting the generated time stamp. The digital signal transmission device according to claim 1.
ことを特徴とする請求項1に記載のデジタル信号伝送装置。 The digital signal transmission apparatus according to claim 1, wherein the encoding order is based on a display time of a field of the image signal.
前記受信ステップの処理で受信された前記第1のビットストリームから前記順序情報を抽出し、抽出した前記順序情報に基づいてタイムスタンプを生成し、第2のビットストリームに挿入して出力する出力ステップと
を含むことを特徴とするデジタル信号伝送方法。 A reception step of receiving a first bitstream in which the encoding order of the image signals and the order information regarding the display order of the image signals are inserted in units of access units of the image signals;
An output step of extracting the order information from the first bit stream received in the process of the receiving step, generating a time stamp based on the extracted order information, inserting the time stamp into the second bit stream, and outputting the generated time stamp And a digital signal transmission method comprising:
前記受信ステップの処理で受信された前記第1のビットストリームから前記順序情報を抽出し、抽出した前記順序情報に基づいてタイムスタンプを生成し、第2のビットストリームに挿入して出力する出力ステップと
を含む処理をデジタル信号伝送装置に実行させるコンピュータが読み取り可能なプログラムを提供することを特徴とする提供媒体。 A reception step of receiving a first bitstream in which the encoding order of the image signals and the order information regarding the display order of the image signals are inserted in units of access units of the image signals;
An output step of extracting the order information from the first bit stream received in the process of the receiving step, generating a time stamp based on the extracted order information, inserting the time stamp into the second bit stream, and outputting the generated time stamp A computer-readable program for causing a digital signal transmission apparatus to execute a process including: and a computer-readable program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005344688A JP2006109513A (en) | 2005-11-29 | 2005-11-29 | Encoding device and method, and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005344688A JP2006109513A (en) | 2005-11-29 | 2005-11-29 | Encoding device and method, and recording medium |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2937799A Division JP2000228768A (en) | 1999-02-05 | 1999-02-05 | Digital signal transmitter, its method and served medium |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006109513A true JP2006109513A (en) | 2006-04-20 |
Family
ID=36378582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005344688A Pending JP2006109513A (en) | 2005-11-29 | 2005-11-29 | Encoding device and method, and recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006109513A (en) |
-
2005
- 2005-11-29 JP JP2005344688A patent/JP2006109513A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8160134B2 (en) | Encoding system and method, decoding system and method, multiplexing apparatus and method, and display system and method | |
KR100420740B1 (en) | Encoding device, encoding method, decoding device, decoding method, coding system and coding method | |
EP0944249B1 (en) | Encoded stream splicing device and method, and an encoded stream generating device and method | |
KR0167798B1 (en) | Multiplexing/demultiplexing method for superimposing subimage on a main image | |
US9578302B2 (en) | Broadcast transmitter, broadcast receiver and 3D video data processing method thereof | |
JP4668515B2 (en) | Metadata transmission apparatus and method synchronized with multimedia contents | |
US7610605B2 (en) | Method and apparatus for conversion and distribution of data utilizing trick-play requests and meta-data information | |
JP7192910B2 (en) | Transmission method and transmission device | |
JP5789004B2 (en) | Transmitting apparatus, transmitting method, receiving apparatus, receiving method, encoding apparatus, and encoding method | |
JP6795076B2 (en) | Transmission / reception system and transmission / reception method | |
JP4931034B2 (en) | Decoding device, decoding method, program, and program recording medium | |
KR100818148B1 (en) | Sending progressive video sequences suitable for mpeg and other data formats | |
KR101154743B1 (en) | Encoder apparatus, encoding method, decoder apparatus, decoding method, recording medium, and playback apparatus | |
JP3584460B2 (en) | Bitstream conversion apparatus and method, and provided medium | |
JP2000228768A (en) | Digital signal transmitter, its method and served medium | |
JP2006109513A (en) | Encoding device and method, and recording medium | |
JP5947444B2 (en) | Transmitting apparatus, transmitting method, receiving apparatus, and receiving method | |
JP2000228769A (en) | Digital signal transmitter, its method, digital signal receiver, its method and served medium | |
JP7230981B2 (en) | Receiving device and receiving method | |
JP2004328771A (en) | Device and method for encoding and decoding, and recording medium | |
JP2011078068A (en) | System for video transmission | |
Murugan | Multiplexing H. 264 video with AAC audio bit streams, demultiplexing and achieving lip synchronization during playback |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070718 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070918 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080116 |