以下、本発明の実施の形態に関して、図面を用いて説明する。
(実施の形態1)
図2は、本発明の実施の形態による多重化ストリーム変換装置200の構成を示す。多重化ストリーム変換装置200は、TS多重分離部201と、ビデオTSパケット解析部202と、ビデオES変換部203と、ビデオTSパケット生成部204と、ビデオTSパケットバッファ205と、非ビデオTSパケットバッファ206と、TS多重化部207と、ビデオTSパケット多重化位置記憶部208と、ビデオTSパケット多重化位置決定部209を備える。以下、多重化ストリーム変換装置200について詳細に説明する。
TS多重分離部201は、入力されたTSからTSパケットを分離し、分離したTSパケットがビデオTSパケットの場合は、そのTSパケットをビデオTSパケット解析部202へ送出し、非ビデオTSパケットである場合は、そのTSパケットを非ビデオTSパケットバッファ206へ送出する。このとき、各TSパケットのTS上における多重化位置を、各TSパケットとともに出力する。すなわち、TSパケットがビデオTSパケットの場合は、ビデオTSパケットとともにビデオTSパケット解析部202へ出力し、非ビデオTSパケットの場合は、非ビデオTSパケットとともに非ビデオTSパケットバッファ206へ出力する。ここで、多重化位置とは、多重化ストリームにおける時間軸上の多重化位置、言い換えれば、多重化ストリームを構成するパケットの出現タイミングを意味する。多重化位置は、PCR(プログラムクロックリファレンス)から生成される基準時刻STC(システムタイムクロック)に基づくタイムスタンプとして得ることができる。さらに、TS多重分離部201は、TS多重化部207でビデオTSパケットと非ビデオTSパケットを再多重化する際の同期をとるために、入力されたTSの中で最初にPCRが含まれるTSパケットからPCRを抽出し、TS多重化部207へ出力する。
ビデオTSパケット解析部202は、TS多重分離部201から出力されたビデオTSパケットを復号してビデオPESパケットを抽出し、さらにビデオPESパケットを復号してビデオESを抽出する。ここで、ビデオPESパケットがPTSあるいはDTSを含む場合はPTS/DTSを抽出して現在処理中のPTS/DTSとして設定する。ただし、ビデオPESパケットがPTSのみを含む場合は、PTSとDTSが同じになるので、PTSを現在処理中のPTS/DTSとして設定する。一方、ビデオPESパケットがPTSもDTSも含まない場合は、現在処理中のPTS/DTSを更新しない。ビデオTSパケット解析部202は、ビデオTSパケットから抽出したビデオESと前述のPTS/DTSをビデオES変換部203へ出力するとともに、TS多重分離部201から出力されたビデオTSパケットの多重化位置と前述のPTS/DTSをビデオTSパケット多重化位置記憶部208へ出力する。
ビデオES変換部203は、ビデオTSパケット解析部202から出力された所定期間のビデオESについて所定の変換を行い、変換したビデオESをPTS/DTSとともにビデオTSパケット生成部204へ出力する。ここで、所定の変換とは、ビットレートの変換、符号化方式の変換、あるいはその両方である。また、所定期間とは、例えばピクチャである。図3に、ビデオES変換部203の構成を示す。ビデオES変換部203は、ビデオES復号部203aと、ビデオES符号化部203bと、ビデオ信号バッファ203cを備える。
図3において、ビデオES復号部203aは、ビデオTSパケット解析部202から出力された所定期間のビデオESを復号し、復号したビデオ信号をビデオ信号バッファ203cに書き込む。このとき、ビデオES復号部203aは、ビデオTSパケット解析部202から読み込んだ所定期間のビデオESの符号量を計測し、ビデオTSパケット解析部202から出力されたPTS/DTS、および計測したビデオESの符号量をビデオES符号化部203bへ出力する。
ビデオES符号化部203bは、ビデオ信号バッファ203cから所定期間のビデオ信号を読み込んで再符号化し、再符号化したビデオESをビデオTSパケット生成部204へ出力する。例えば、変換後のビットレートを変換前の1/2にするような場合、あるいは、変換前のビデオESの符号化方式がMPEG2で、変換後のビデオESの符号化方式がMPEG4−AVC(H.264)となるような場合がある。なお、変換においては、ビットレートと符号化方式の両方を変換してもよい。また、再符号化においては、変換後の所定期間のビデオESに対する符号量が、変換前の所定期間のビデオESに対する符号量以下となるようにする。
ビデオ信号バッファ203cは、ビデオES復号部203aで復号されたビデオ信号を格納し、所定期間のビデオ信号が溜まった時点でビデオES符号化部203bへ送出する。ビデオ信号バッファ203cには、ビデオES復号部203aの復号処理およびビデオES符号化部203bの符号化処理において必要となる作業用バッファも含まれている。
ここで、図2に戻って、ビデオTSパケット生成部204は、ビデオES変換部203から出力された所定期間の変換後ビデオESとPTS/DTSからビデオPESパケットを生成し、さらにビデオTSパケットを生成する。ビデオTSパケット生成部204は、生成したビデオTSパケットをPTS/DTSとともにビデオTSパケットバッファ205へ送出する。また、PTS/DTSをビデオTSパケット多重化位置決定部209へ出力する。
ビデオTSパケットバッファ205は、ビデオTSパケット生成部204から送られてきたビデオTSパケットとPTS/DTSを対応付けて格納する。ここで、各ビデオTSパケットに対する多重化位置は、後述するビデオTSパケット多重化位置決定部209によって決定される。ビデオTSパケットバッファ205に格納されたビデオTSパケットは、所定のタイミングでTS多重化部207へ送出される。
ビデオTSパケット多重化位置記憶部208は、ビデオTSパケット解析部202から出力されたPTS/DTSおよびビデオTSパケットの多重化位置を対応付けて記憶する。ビデオTSパケット多重化位置記憶部208に記憶されているこれらの情報は、後段のビデオTSパケット多重化位置決定部209によって参照される。ビデオTSパケット多重化位置記憶部208の動作については後述する。
ビデオTSパケット多重化位置決定部209は、ビデオTSパケット多重化位置記憶部208に記憶されている多重化位置の中から、ビデオTSパケット生成部204から出力されたPTS/DTSに対応する多重化位置のセットを読み込む。そして、読み込んだ多重化位置のセットを基準として、ビデオTSパケットバッファ205に格納されているビデオTSパケットのうち、読み込んだPTS/DTSが割り当てられている各ビデオTSパケットに対して多重化位置を決定する。ビデオTSパケット多重化位置決定部209の動作については後述する。
非ビデオTSパケットバッファ206は、TS多重分離部201から出力された非ビデオTSパケットと多重化位置を対応付けて格納する。非ビデオTSパケットバッファ206に格納された非ビデオTSパケットは、所定のタイミングでTS多重化部207へ送出される。
TS多重化部207は、TS多重分離部201にビデオTSパケットが入力されてからビデオTSパケット多重化位置決定部209において変換後ビデオTSパケットの多重化位置が決定するまでの一連の処理に必要となる時間を遅延させた後に、STCをTS多重分離部201から出力されたPCRで初期化し、ビデオTSパケットバッファ205に登録されている多重化位置と非ビデオTSパケットバッファ206に登録されている多重化位置を監視する。そして、TS多重化部207に供給されるSTCが各多重化位置と一致した時刻に、ビデオTSパケットバッファ205あるいは非ビデオTSパケットバッファ206から対応するTSパケットを読み込んで多重化し、多重化ストリームを生成する。
次に、本実施例の多重化ストリーム変換装置200の動作について図5を参照して説明する。図5(a)は、TS多重分離部201に入力されるTSを構成するTSパケット列を示している。ストリームの構成は図4(a)と同じである。TSパケット列は、ビデオTSパケットVと非ビデオTSパケットXが時分割多重されたものであり、各TSパケットは、図5(a)の上側に記載されている時刻にTS多重分離部201に入力される。TS多重分離部201に入力されたTSパケット列は、TSパケットに分離され、ビデオTSパケットはビデオTSパケット解析部202へ、非ビデオTSパケットは非ビデオTSパケットバッファ206へ送出される。これと同時に、各TSパケットの多重化位置(各TSパケットがTS多重分離部201に入力された時刻)もビデオTSパケット解析部202または非ビデオTSパケットバッファ206へ出力される。なお、図5(a)は、TS多重分離部201での処理時刻“Ta”を基準として時間軸上のタイミングを縦の破線で示している。
ビデオTSパケット解析部202は、入力されたビデオTSパケットを復号してビデオPESパケットを抽出し、さらにビデオPESパケットを復号してビデオESを抽出する。また、ビデオPESパケットがPTSあるいはDTSを含む場合はPTS/DTSを抽出し、現在処理中のPTS/DTSとして設定する。ビデオTSパケット解析部202は、ビデオTSパケットから抽出したビデオESと前述のPTS/DTSをビデオ変換部203へ出力するとともに、TS多重分離部201から出力されたビデオTSパケットの多重化位置と前述のPTS/DTSをビデオTSパケット多重化位置記憶部208へ出力する。
ビデオTSパケット多重化位置記憶部208は、図8に示すように、入力されたPTS/DTSと多重化位置を対応付けて保持する。図5(a)に含まれるビデオTSパケットのうち、PTS=Ta+25T/DTS=Ta+10Tのピクチャに対応するビデオTSパケット(V1〜V6)が多重化位置“Ta+T”、“Ta+5T”、“Ta+6T”、“Ta+7T”、“Ta+8T”、“Ta+9T”にそれぞれ多重化されているという情報が記憶されている。
ビデオES変換部203は、ビデオTSパケット解析部202から所定期間のビデオESを読み込んで所定の変換を行い、変換したビデオESとPTS/DTSをビデオTSパケット生成部204へ出力する。ここで、所定の変換とは、ビットレートの変換、符号化方式の変換、あるいはその両方である。
ビデオTSパケット生成部204は、ビデオES変換部203から出力された所定期間の変換後ビデオESとPTS/DTSからビデオPESパケットを生成し、さらにビデオTSパケットを生成する。ビデオTSパケット生成部204は、生成したビデオTSパケットをPTS/DTSとともにビデオTSパケットバッファ205へ送出する。また、PTS/DTSをビデオTSパケット多重化位置決定部209へ出力する。
ビデオTSパケット多重化位置決定部209は、ビデオTSパケット生成部204からPTS/DTSを受け取り、ビデオTSパケット多重化位置記憶部208に記憶されている多重化位置の中から、受け取ったPTS/DTSに対応する多重化位置のセットを読み込む。具体的には、PTS=Ta+25T/DTS=Ta+10Tのピクチャであれば、多重化位置“Ta+T”、“Ta+5T”、“Ta+6T”、“Ta+7T”、“Ta+8T”、“Ta+9T”を読み込む。そして、これらの多重化位置を基準として、ビデオTSパケットバッファ205に格納されているビデオTSパケットのうち、前述のPTS/DTSが割り当てられている各ビデオTSパケットに対して多重化位置を決定する。図9に例を示す。図9では、PTS=Ta+25T/DTS=Ta+10Tをもつ変換後のビデオTSパケットV1’〜V3’に対して、それぞれ多重化位置“Ta+T”、“Ta+5T”、“Ta+6T”を割り当てている。これは、変換前のビデオTSパケットに対応する6つの多重化位置のうち、時刻の早いものから順に3つの多重化位置を選択したものである。
なお、本実施例では、変換前のビデオTSパケットに対応する多重化位置のうち、時刻の早いものから順に変換後のビデオTSパケット数だけ多重化位置を選択したが、例えば、変換前の多重化位置の情報に従って、変換後のビデオTSパケットがなるべく均等な時間間隔に多重化されるような多重化位置を選択してもよい。図6に例を示す。
また、本実施例では、変換後のビデオTSパケットの多重化位置は、変換前のビデオTSパケットのいずれかの多重化位置と同じになっているが、変換前の多重化位置から定められるビデオTSパケットの転送期間に含まれる多重化位置であれば必ずしも同じ多重化位置でなくてもよい。図7に例を示す。
非ビデオTSパケットバッファ206は、図10に示すように、入力された非ビデオTSパケットと多重化位置を対応付けて保持する。図10では、非ビデオTSパケットX1が多重化位置“Ta”に、非ビデオTSパケットX2が多重化位置“Ta+10T”に、非ビデオTSパケットX3が多重化位置“Ta+11T”にそれぞれ多重化されているという情報が記憶されている。
ビデオTSパケットバッファ205および非ビデオTSパケットバッファ206に格納されたTSパケットは、TS多重化部207で多重化されるまで保持される。
TS多重化部207は、ビデオTSパケットバッファ205に登録されているビデオTSパケットの多重化位置と非ビデオTSパケットバッファ206に登録されている非ビデオTSパケットの多重化位置を監視する。そして、TS多重化部207に供給されるSTCが登録されているいずれかの多重化位置と一致した時刻に、ビデオTSパケットバッファ205あるいは非ビデオTSパケットバッファ206から対応するTSパケットを読み込んで多重化し、多重化ストリームを生成する。図5(b)に生成された多重化ストリームを示す。多重化ストリームを構成するビデオTSパケットV1’〜V3’が前詰めで多重化されている様子が分かる。なお、図5(a)および(b)では、実際に処理される時刻は異なっているが、先頭TSパケットX1が、TS多重分離部201に入力された時刻、およびTS多重化部207で多重化された時刻をそれぞれ基準時刻“Ta”として時間軸上のタイミングを縦の破線で示している。また、図5(c)は、TSを構成するビデオストリームに対するバッファシミュレーションのバッファ推移を示している。図5(c)において、入力されたビデオストリームに対するバッファ推移を実線で、再多重化後のビデオストリームに対するバッファ推移を破線で表している。従来例で述べた図4(c)では、再多重化後のビデオストリームにおいて、ビデオTSパケットV2’が時刻“Ta+4T”に入力された時点でオーバーフローが発生し、転送できない状態となっていたが、図5(c)では、再多重化後のビデオストリームにおいて、オーバーフローは発生していない。
以上、本発明の実施の形態による多重化ストリーム変換装置200の構成と動作について説明したが、多重化ストリーム変換装置200を構成するビデオES変換部203を変更することによって、ビットレートの変換あるいは符号化方式の変換による画質の劣化を抑える、あるいは特殊なビデオES(例えば、23プルダウンされたビデオESや異なるピクチャ構造が混在するビデオES)を含むTSを変換することが可能となる。以下に、これらのビデオES変換部の変更例について説明する。
図12は、多重化ストリーム変換装置200において、ビデオES変換部203に替わるビデオES変換部303の構成を示している。ビデオES変換部303は、ビデオES復号部303aと、ビデオES符号化部303bと、ビデオESバッファ203cを備える。図12において、多重化ストリーム変換装置200およびビデオES変換部203の構成要素と機能が共通するものに対しては同じ参照符号を付し、その説明は省略する。
ビデオES変換部303とビデオES変換部203との大きな違いは、ビデオES復号部303aからビデオES符号化部303bへ“Parameter”を送信する機能が付加されていることである。
まず、ParameterとしてビデオESのヘッダ層に含まれるピクチャタイプを送信する例について説明する。
図12において、ビデオES復号部303aは、ビデオTSパケット解析部202から
出力された1ピクチャ分のビデオESを復号し、復号したビデオ信号をビデオ信号バッファ203cに書き込む。また、ビデオES復号部303aは、ビデオTSパケット解析部202から読み込んだ1ピクチャ分のビデオESの符号量を計測するとともに、ビデオESのヘッダ層に記述されているピクチャタイプを抽出し、ビデオTSパケット解析部202から出力されたPTS/DTS、符号量、およびピクチャタイプをビデオES符号化部303bへ出力する。
ビデオES符号化部303bは、ビデオ信号バッファ203cから1ピクチャ分のビデオ信号を読み込んで再符号化し、再符号化したビデオESをビデオTSパケット生成部204へ出力する。再符号化においては、ビデオES復号部303aから出力されたビデオESのピクチャタイプと符号量に基づいて、変換後のビデオESのピクチャタイプが変換前のビデオESのピクチャタイプと同じとなるようにし、さらに変換後の1ピクチャ分のビデオESに対する符号量が、変換前の1ピクチャ分のビデオESに対する符号量以下となるようにする。
MPEGのビデオ符号化においては、符号化の特性から一般的にIピクチャの符号量が多く、次いでPピクチャ、Bピクチャの順となる。具体的には、Iピクチャは画面内符号化であるため、画面間の相関を利用して符号化するPピクチャやBピクチャに比べ、より多くの符号量を必要とする。従って、変換前のビデオESのピクチャタイプがBピクチャで符号量が少ないような場合に、変換後のビデオESのピクチャタイプをIピクチャとすると、変換後のIピクチャに割り当てられる符号量が十分でないため、Iピクチャの画質が悪くなり、このIピクチャを参照する以降のピクチャについても同様に画質の劣化を引き起こす。図13に例を示す。図13(a)は変換前、(b)は変換後の各ピクチャのピクチャタイプと符号量を示しており、変換前と変換後で全体としてのビットレートは約1/2となっている。図13において、変換後のピクチャタイプは変換前のピクチャタイプを1ピクチャ遅延させた設定となっている。ここで、斜線で示される2番目のピクチャをみると、上述のように、変換後のIピクチャに対して十分な符号量が割り当てられていないことが分かる。
このようなことから、再符号化において、変換前と変換後のピクチャタイプを同じとしておくことにより、再符号化による画質劣化を最小限に抑えることができる。
次に、ParameterとしてビデオESのヘッダ層に含まれるTFF(Top_Field_First)/RFF(Repeat_First_Field)を送信する例について説明する。
図12において、ビデオES復号部303aは、ビデオTSパケット解析部202から
出力された1ピクチャ分のビデオESを復号し、復号したビデオ信号をビデオ信号バッファ203cに書き込む。また、ビデオES復号部303aは、ビデオTSパケット解析部202から読み込んだ1ピクチャ分のビデオESの符号量を計測するとともに、ビデオESのヘッダ層に記述されているTFF/RFFを抽出し、ビデオTSパケット解析部202から出力されたPTS/DTS、符号量、およびTFF/RFFをビデオES符号化部303bへ出力する。ここで、復号されるビデオ信号がインターレースかプログレッシブかによって、TFF/RFFの意味が異なる。図14に、ビデオ信号がインターレースおよびプログレッシブの場合におけるTFF/RFFの意味を示す。図14(a)はビデオ信号がインターレースの場合のパターン(合計4パターン)を示していて、それぞれ(1)TFF=1/RFF=0のとき、第1フィールドのトップフィールド、第2フィールドのボトムフィールドの順で2フィールドが表示される。(2)TFF=1/RFF=1のとき、第1フィールドのトップフィールド、第2フィールドのボトムフィールドに続き、第1フィールドのトップフィールドが再表示され、合計3フィールドが表示される。(3)TFF=0/RFF=0のとき、第1フィールドのボトムフィールド、第2フィールドのトップフィールドの順で2フィールドが表示される。(4)TFF=0/RFF=1のとき、第1フィールドのボトムフィールド、第2フィールドのトップフィールドに続き、第1フィールドのボトムフィールドが再表示され、合計3フィールドが表示される。また、図12(b)はビデオ信号がプログレッシブの場合のパターン(合計3パターン)を示していて、それぞれ(1)TFF=0/RFF=0のとき、プログレッシブフレームが1回だけ表示される。(2)TFF=0/RFF=1のとき、プログレッシブフレームが2回繰り返して表示される。(3)TFF=1/RFF=1のとき、プログレッシブフレームが3回繰り返して表示される。図15にTFF/RFFに応じて復号されたビデオ信号とPTS/DTSの関係を示す。図15(a)は、復号されるビデオ信号がインターレースの場合、図15(b)は、復号されるビデオ信号がプログレッシブの場合を示している。図15(a)および(b)のそれぞれにおいて、上段はビデオESを構成する各ピクチャ(#1〜#6)が持つPTS/DTSおよびTFF/RFFの値を示しており、このとき、各ピクチャは下段のようなビデオ信号に復号される。
ここで、図12に戻って、ビデオES符号化部303bは、ビデオ信号バッファ203cから1ピクチャ分のビデオ信号を読み込んで再符号化し、再符号化したビデオESをビデオTSパケット生成部204へ出力する。再符号化においては、ビデオES復号部303aから出力されたTFF/RFFと符号量に基づいて、変換後のビデオESのTFF/RFFが変換前のビデオESのTFF/RFFと同じになるようにし、さらに変換後の1ピクチャ分のビデオESに対する符号量が、変換前の1ピクチャ分のビデオESに対する符号量以下となるようにする。
TFF/RFFは、映画で使用される24Hzのフィルム撮影された映像や24Hzのプログレッシブカメラで撮影された映像を29.97Hzあるいは59.94Hzのテレビジョン信号として放送するような場合に使用される。従って、このようなTFF/RFFの値が変化するようなビデオストリームを含むTSを変換する際には、PTS/DTSだけでなく、ビデオESに含まれるTFFとRFFに関しても変換前のストリームと変換後のストリームで一致させておく必要がある。
次に、ParameterとしてビデオESのヘッダ層に含まれるピクチャ構造(Picture_Structure)を送信する例について説明する。
図12において、ビデオES復号部303aは、ビデオTSパケット解析部202から
出力された1ピクチャ分のビデオESを復号し、復号したビデオ信号をビデオ信号バッファ203cに書き込む。また、ビデオES復号部303aは、ビデオTSパケット解析部202から読み込んだ1ピクチャ分のビデオESの符号量を計測するとともに、ビデオESのヘッダ層に記述されているピクチャ構造を抽出し、ビデオTSパケット解析部202から出力されたPTS/DTS、符号量、およびピクチャ構造をビデオES符号化部303bへ出力する。ピクチャ構造にはフレーム構造とフィールド構造の2種類があり、フレーム構造は第1フィールドと第2フィールドを合わせた画面を1つのピクチャとして符号化するときに使用し、フィールド構造は第1フィールドと第2フィールドを別々のピクチャとして符号化するときに使用する。
ビデオES符号化部303bは、ビデオ信号バッファ203cから1ピクチャ分のビデオ信号を読み込んで再符号化し、再符号化したビデオESをビデオTSパケット生成部204へ出力する。再符号化においては、ビデオES復号部303aから出力されたピクチャ構造と符号量に基づいて、変換後のビデオESのピクチャ構造が変換前のビデオESのピクチャ構造と同じになるようにし、さらに変換後の1ピクチャ分のビデオESに対する符号量が、変換前の1ピクチャ分のビデオESに対する符号量以下となるようにする。
図16に、変換前のピクチャ構造と変換後のピクチャ構造が異なる場合におけるビデオストリームのバッファシミュレーションの例を示す。図16(a)は、変換前がフレーム構造で変換後がフィールド構造の場合を示し、図16(b)は、変換前がフィールド構造で変換後がフレーム構造の場合をそれぞれ示している。図16(a)において、変換前のバッファ推移を実線で、変換後のバッファ推移を破線で示している。バッファにあるデータが復号されて引き抜かれるタイミングは、フレーム構造とフィールド構造で異なっている。フレーム構造の場合は、時刻“To”、“To+2Tf”のタイミングでそれぞれ1ピクチャ(1フレーム)分の符号量が引き抜かれるのに対し、フィールド構造の場合は、時刻“To”、“To+Tf”、“To+2Tf”のタイミングでそれぞれ1ピクチャ(1フィールド)分の符号量が引き抜かれる。このとき、変換後のバッファ推移が示すようにA点でオーバーフロー、B点でアンダーフローしており、ビデオストリームがバッファシミュレーションを満たすためには、再多重化時にバッファシミュレーションを考慮した符号量制御が必要となる。また、図16(b)において、変換前のバッファ推移を実線で、変換後のバッファ推移を破線で示している。この場合も同様に、バッファにあるデータが復号されて引き抜かれるタイミングは、フレーム構造とフィールド構造で異なっている。このとき、変換後のバッファ推移が示すようにC点でアンダーフローしており、ビデオストリームがバッファシミュレーションを満たすためには、再多重化時にバッファシミュレーションを考慮した符号量制御が必要となる。このようなことから、変換前と変換後のビデオESのピクチャ構造を合わせておくことにより、ピクチャ構造が混在するようなビデオストリームを含むTSを変換する場合でも、再多重化におけるバッファシミュレーションを意識する必要がなくなり簡単な処理で再多重化が実現できる。
なお、実施の形態1においては、ビデオストリームのみを変換する装置の例を示したが、本発明は、オーディオストリームのみを変換する場合や、ビデオとオーディオの両方を変換する場合にも適用することが可能である。また、ビデオストリームやオーディオストリームがそれぞれ複数プログラムあるような場合にも適用することが可能である。
また、実施の形態1における多重化ストリーム変換装置において、変換前のストリームが持つ属性情報(具体的には、解像度、アスペクト比、著作権情報、音声チャンネル、サンプリング周波数、サンプリングビット数等の情報)を変換後のストリームに引き継ぐことによって、変換後と変換後のストリームを同じ扱いとすることができ、特別な処理を考慮する必要がなくなる。ただし、用途によっては、変換後の属性情報を制限する必要がある場合や、制限した方が有利な効果が得られるような場合がある。例えば、ビデオ信号の解像度について言えば、変換後のストリームを記録容量の限られた記録媒体に記録するという用途において、変換後のビデオストリームのビットレートを変換前に比べて大幅に落とす必要がある場合は、変換前と同じ解像度で再符号化を行うと解像度に対する目標ビットレートが低すぎるため顕著な画質の劣化を引き起こす可能性がある。このようなときは、ある程度の解像度までに制限しておくことにより、安定した画質を得ることができるようになる。図17は、上述の変換後の解像度を制限するために、ビデオES変換部203に変更を加えたビデオES変換部403の構成を示している。ビデオES変換部403は、ビデオES復号部403aと、ビデオES符号化部403bと、ビデオESバッファ203cと、解像度変換部403dを備える。図17において、多重化ストリーム変換装置200およびビデオES変換部203の構成要素と機能が共通するものに対しては同じ参照符号を付し、その説明は省略する。
図17において、ビデオES復号部403aは、ビデオTSパケット解析部202から
出力された1ピクチャ分のビデオESを復号し、復号したビデオ信号とそのビデオ信号の解像度を解像度変換部403dへ出力する。また、ビデオES復号部403aは、ビデオTSパケット解析部202から読み込んだ1ピクチャ分のビデオESの符号量を計測し、ビデオTSパケット解析部202から出力されたPTS/DTSおよび計測した符号量をビデオES符号化部403bへ出力する。
解像度変換部403dは、ビデオES復号部403aから出力されたビデオ信号とそのビデオ信号の解像度を受け取り、ビデオ信号の解像度が所定の解像度より大きい場合は、ビデオ信号を所定の解像度へダウンコンバートし、解像度変換後のビデオ信号をビデオ信号バッファ203cへ出力する。一方、ビデオ信号の解像度が所定の解像度と同じまたは小さい場合は、ビデオ信号をそのままビデオ信号バッファ203cへ出力する。解像度変換部403dは、最終的にビデオ信号バッファ203cへ出力されたビデオ信号の解像度をビデオES符号化部403bへ出力する。
ビデオES符号化部403bは、ビデオ信号バッファ203cから1ピクチャ分のビデオ信号を読み込んで再符号化し、再符号化したビデオESをビデオTSパケット生成部204へ出力する。再符号化においては、解像度変換部403dから出力された解像度に従い、変換後の1ピクチャ分のビデオESに対する符号量が、変換前の1ピクチャ分のビデオESに対する符号量以下となるようにする。
以上のように、変換においてビットレートを元のビットレートに対して低く抑えたい場合には、変換後の解像度をある程度までに制限しておくことにより、安定した画質を得ることができるようになる。
(実施の形態2)
図18は、本発明の実施の形態によるレコーダ500の構成を示す。レコーダ500は、多重化ストリーム変換装置520と、残量算出部513と、残量表示部514と、記録部515を備える。レコーダ500は、例えば、デジタルテレビジョン放送の放送波を受信してハードディスクや光ディスクに録画する番組の録画機として実現される。多重化ストリーム変換装置520は、受信したTSのビットレートあるいは符号化方式を変換して新たなTSを生成し、記録部515へ送出する。記録部515は、例えば、ハードディスクや光ディスクに代表される記録媒体であり、多重化ストリーム変換装置520で生成されたTSを記録する。残量算出部513は、外部より指定された所定のビットレートを受け取り、記録部515より通知される記録媒体の残容量に基づいて、残り記録可能時間を算出する。残り記録可能時間は、例えば、残容量を所定のビットレートで除算することによって算出することができる。残量表示部514は、残量算出部513で算出された残り記録時間をディスプレイ装置等に表示させる。
次に、多重化ストリーム変換装置520について説明する。多重化ストリーム変換装置520は、TS多重分離部201と、ビデオTSパケット解析部502と、ビデオES変換部503と、ビデオTSパケット生成部504と、ビデオTSパケットバッファ205と、非ビデオTSパケットバッファ206と、TS多重化部207と、ビデオTSパケット多重化位置管理部208と、ビデオTSパケット多重化位置決定部209と、最大ビットレート決定部510と、目標ビットレート決定部511と、録画状態管理部512を備える。図18において、多重化ストリーム変換装置200の構成要素と機能が共通するものに対しては同じ参照符号を付し、その説明は省略する。
録画状態管理部512は、外部から通知される録画制御コマンド(録画開始コマンドあるいは録画停止コマンド)を受信し、録画制御コマンドの種類に応じて多重化ストリーム変換装置520の録画開始および録画停止処理を行う。録画状態管理部512は、多重化ストリーム変換装置520が録画をしている状態(以下、録画中と記述する)なのか、録画をしていない状態(以下、停止中と記述する)なのかを示すために、装置外部からみた状態(以下、外部状態と記述する)を管理するフラグと、装置内部での動作状態(以下、内部状態と記述する)を管理するフラグを持つ。録画状態管理部512は、外部から受信した録画制御コマンドに応じて外部状態の設定を行う。図19のS1に、外部状態の設定に関する動作のフローチャートを示す。まず、ステップS1−1において、録画制御コマンドを受信したかどうかをチェックし、録画制御コマンドを受信した場合はステップS1−2の処理へ進み、録画制御コマンドを受信しなかった場合は現在の外部状態をそのまま保持して処理を終了する。ステップS1−2では、受信した録画制御コマンドが録画開始コマンドか録画停止コマンドかをチェックし、録画開始コマンドであった場合はステップS1−3に進み、外部状態を「録画中」に設定して処理を終了する。一方、ステップS1−2で、受信した録画制御コマンドが録画停止コマンドであった場合はステップS1−4に進み、外部状態を「停止中」に設定して処理を終了する。以上、図19のS1に示すフローチャートにより、外部状態の管理を行う。次に、録画状態管理部512は、ビデオES変換部503から処理中のパケットに関する情報(GOP先頭かどうかを示すフラグ、Iピクチャ先頭かどうかを示すフラグ、およびPピクチャ先頭かどうかを示すフラグ)を受け取り、内部状態の設定を行う。図19のS2に、内部状態の設定に関する動作のフローチャートを示す。まず、ステップS2−1において、外部状態が「録画中」であるか「停止中」であるかをチェックする。全体状態が「録画中」である場合は、ステップS2−2において内部状態が「録画中」であるか「停止中」であるかをチェックし、「録画中」である場合は「録画中」の内部状態をそのまま保持して処理を終了し、「停止中」である場合はステップS2−3以降の録画開始処理へ進む。一方、ステップS2−1における外部状態が「停止中」である場合は、ステップS2−5において内部状態が「録画中」であるか「停止中」であるかをチェックし、「録画中」である場合はステップS2−6以降の録画停止処理へ進み、「停止中」である場合は「停止中」の内部状態をそのまま保持して処理を終了する。次に、ステップS2−3以降の録画開始処理について説明する。ステップS2−3では、ビデオES変換部503から受け取ったパケット情報をチェックし、「GOP先頭」であれば、ステップS2−4において内部状態を「停止中」から「録画中」へ変更し、それ以外であれば、「停止中」の内部状態をそのまま保持して処理を終了する。次に、ステップS2−6以降の録画停止処理について説明する。ステップS2−6では、ビデオES変換部503から受け取ったパケット情報をチェックし、「Iピクチャ先頭」または「Pピクチャ先頭」のいずれかであれば、ステップS2−7において内部状態を「録画中」から「停止中」へ変更し、それ以外であれば、「録画中」の内部状態をそのまま保持して処理を終了する。以上、図19のS2に示すフローチャートにより、内部状態の管理を行う。また、外部状態の設定S1および内部状態の設定S2を終了した後は、再び外部状態の設定S1に戻り、録画制御コマンドを受信するまでステップS1−1で録画制御コマンド待ちの状態に入る。なお、外部状態および内部状態の初期値はいずれも「停止中」とする。上述の方法により、録画状態管理部512で決定された内部状態は、ビデオTSパケット生成部504に出力される。
ここで、録画開始処理と録画停止処理に関するタイミング制御の必要性について説明する。まず、録画開始処理について言えば、GOP先頭のパケットが含まれないビデオストリームを生成すると、ビデオストリームを再生する際にGOP先頭Iピクチャの復号において一部の画像情報が欠落した状態となり、再生映像が乱れる。このようなことから、正常な再生映像を得るためには、ビデオストリームの先頭をGOP先頭に合わせておくことが必要である。また、録画停止処理について、図20を用いて説明する。図20(a)〜(c)において、上段はビデオストリームに含まれる各ピクチャを復号順で表記したもの、下段は各ピクチャを再生順で表記したものとなっている。ここで、図20(a)に示されるビデオストリームに対して、A点でビデオTSパケットの生成を停止した場合を考える。この場合、図20(b)に示すように、ビデオストリームの再生時に期間Cに相当する部分のビデオ信号が欠落し、再生映像が乱れる。一方、図20(a)に示されるビデオストリームに対して、B点までビデオTSパケットの生成を完了した場合を考える。この場合、図20(c)に示すように、再生順でビデオ信号が欠落することがなく、正常な再生映像が得られる。以上のような理由から、録画開始処理と録画停止処理に関するタイミング制御は、正常な再生映像を得るために必要である。
ここで、図18に戻って、ビデオTSパケット解析部502は、多重化ストリーム変換装置200のビデオTSパケット解析部202の処理に加え、TS多重分離部201から出力されたビデオTSパケットの所定期間ごとの符号量を最大ビットレート決定部510と目標ビットレート決定部511へ出力する。ここで、所定期間とは、例えば、ピクチャやGOP(Group of Picture)といったMPEGの符号化単位、あるいは1秒や2秒といった実時間である。
ビデオES変換部503は、ビデオES変換部203の処理に加え、現在処理対象となっているパケットに関する情報(GOP先頭かどうかを示すフラグ、Iピクチャ先頭かどうかを示すフラグ、およびPピクチャ先頭かどうかを示すフラグ)を生成し、録画状態管理部512へ出力する。また、ビデオES変換部503は、最大ビットレート決定部510で決定された可変ビットレートの最大ビットレートと、目標ビットレート決定部511で決定された再符号化時の目標ビットレートに基づいてビットレート制御を行い、ビデオESを変換する。
ビデオTSパケット生成部504は、ビデオTSパケット生成部204の処理に加え、録画状態管理部512から通知された内部状態に基づいて、ビデオTSパケットの生成および出力を行うかどうかを制御する。具体的には、通知された内部状態が「録画中」である場合には、ビデオTSパケットを生成して出力し、通知された内部状態が「停止中」である場合には、ビデオTSパケットを生成および出力を行わない。なお、録画開始時においては、GOP先頭のビデオTSパケットが現れるまで、ビデオTSパケットバッファ205にビデオTSパケットが供給されないため、非ビデオTSパケットバッファ206に保持されている非ビデオTSパケットのみがTS多重化部207に送出される。
最大ビットレート決定部510は、ビデオTSパケット解析部502から出力された所定期間ごとの符号量を累積して合計時間と総符号量を算出し、総符号量を合計時間で除算することにより、入力されるビデオTSのビットレートを算出する。そして、この入力ビデオTSのビットレートに基づいて最大ビットレートを決定し、ビデオES変換部503へ出力する。例えば、最大ビットレートは、入力ビデオTSのビットレートに0.9といった0<K1<1を満たす係数K1を乗ずることによって算出することができる。
目標ビットレート決定部511は、ビデオTSパケット解析部502から出力された所定期間ごとの符号量を累積して合計時間と総符号量を算出し、総符号量を合計時間で除算することにより、入力されるビデオTSのビットレートを算出する。そして、この入力ビデオTSのビットレートと外部から指定される所定のビットレートに基づいて目標ビットレートを決定し、ビデオES変換部503へ出力する。例えば、目標ビットレートは、入力ビデオTSのビットレートに0.8といった0<K2<1を満たす係数K2を乗じたビットレートと、外部から指定される所定のビットレートのうち、小さい方を選択することによって算出することができる。
以上に示した構成をもつレコーダ500によれば、(1)録画制御コマンドによって録画開始および録画停止ができ、(2)変換後に生成されるストリームのビットレートを所定のビットレートに収めることができ、かつ(3)残り記録可能時間をユーザに提示することができるレコーダを提供することが可能となる。
なお、本実施例では、「Iピクチャ先頭」または「Pピクチャ先頭」の情報に基づいて録画停止処理を制御しているが、さらに処理を簡単にするために、録画開始処理と同様に「GOP先頭」の情報に基づいて録画停止処理を制御してもよい。ただし、この場合は録画停止処理に最大1GOP期間の遅延が発生することになる。
また、最終的に生成されたTSを所定サイズのブロックごとに記録する場合、生成されたTSが所定サイズの倍数になっていないと、最終ブロックの中に不定のデータが含まれることになり、再生映像に影響する可能性がある。このようなことを回避するため、最終的に生成されたTSの後ろに、少なくとも所定サイズの倍数に満たないサイズ以上のNullパケット(データを含まないダミーのパケット)を付加して出力する。具体的には、生成された多重化ストリームをブロックサイズで除算したときの余りのサイズを所定サイズから減算したサイズ以上のNullパケットを多重化ストリームの後ろに付加して出力する。
以上に示した本発明の多重化ストリーム変換装置により生成された多重化ストリームのパケット構成の例を図21に示す。図21(a)は変換前のストリーム、(b)は変換後のストリームである。また、図21(a)のストリームの構成は、図11(a)と同じである。ここで、図21(b)のビデオストリームについてみると、変換によってビットレートが落ちており、かつ、変換前と変換後のビデオストリームの多重化位置が同一となっていることが分かる。
ここで、多重化ストリームの変換処理において、多重化ストリームを構成する複数種類の符号化ストリームを区別するための識別子の扱い方について説明する。デジタルテレビジョン放送で放送されたTSのストリームに対して変換処理を行った後のストリームには、PAT(Program association Table)、PMT(Program Map Table)、SIT(Selection Information Table)、ビデオ、オーディオ等の各種パケットが存在する。これら各種パケットのパケットID(以降、PIDと記述する)をあらかじめ定めた固定値とし、PCR(Program Clock Reference)パケットのPIDは、それらのPIDとは異なる値とすることで、各種パケットのPIDが色々な値を取り得る入力の放送ストリームに対しても矛盾なく対応することができる。しかし、この場合には、変換対象であるビデオパケット以外のパケットのPIDを書き換える必要があり、さらには各種パケットのPID値を規定しているPATやPMT内のテーブルデータの書き換えも必要となり、変換処理の複雑化を招く。
それに対し、全ての種類のパケットのPIDを入力である放送ストリームの値そのものを使う方法だと、変換対象であるビデオパケット以外のパケットのPIDを変更する必要がない。ただし、ビデオパケットのPIDとPCRパケットのPIDとが同一で、かつ1つのパケット内にPCRフィールド(アダプテーションフィールド内)とビデオデータ(ペイロード内)とが混在する場合には、ビデオパケットのペイロードサイズが184バイト固定とはならないので、多重化処理が複雑になってしまう。図22に例を示す。図22(a)の変換前のストリームにおいて、3番目のパケットがPCRフィールドとビデオデータとが混在したパケットとなっており、図22(b)の変換後のストリームにおいても同様にPCRフィールドとビデオデータを混在させた形で多重化が行われている。そこで、ビデオパケットにPCRフィールドとビデオデータとが混在する場合は、ペイロード部分をアダプテーションフィールドのスタッフィングデータとすることでPCR専用パケットとすれば、ビデオパケットのペイロードサイズは184バイト固定とできるため、多重化処理が容易となる。ただし、この場合には、変換後のビデオデータサイズ(PESデータのサイズ)の上限は元のビデオサイズよりPCR専用パケット生成時にスタッフィングにより削除したデータ量だけ小さくしなければならない。図23に例を示す。図23(a)の変換前のストリームにおいて、3番目のパケットがPCRフィールドとビデオデータとが混在したパケットとなっており、図23(b)の変換後のストリームでは、PCR専用パケットに置き換えられている。
また、ビデオの符号化方式を変換した場合には、必要に応じてPMT内に存在するビデオストリームタイプを変更すれば良い。