TVにおいて、SDコンテンツ、HDコンテンツ、及びSDコンテンツとHDコンテンツとが入り混じったコンテンツのすべて、つまり、SDコンテンツとHDコンテンツとの両方を扱う方法としては、TVに、SDコンテンツを処理するブロックと、HDコンテンツを処理するブロックとの両方を設ける方法が考えられる。
図3は、そのようなTVの構成例を示している。
図3において、外部入力部21には、SDコンテンツ、又はHDコンテンツのMPEGストリームが入力される。外部入力部21は、MPEGストリームが、SDコンテンツのMPEGストリームである場合、そのMPEGストリームを、SD処理部22に供給し、MPEGストリームがHDコンテンツのMPEGストリームである場合、そのMPEGストリームを、HD処理部23に供給する。
SD処理部22は、多重分離部32、メモリ部33、デコーダ部34、及び外部出力部35で構成され、外部入力部21からのSDコンテンツのMPEGストリームを処理する。
すなわち、SD処理部22を構成する多重分離部32、メモリ部33、デコーダ部34、及び外部出力部35は、外部入力部21からのSDコンテンツのMPEGストリームに対して、図1の多重分離部12、メモリ部13、デコーダ部14、及び外部出力部15と同様の処理を施して、その結果得られるSD画像と、そのSD画像に付随する音声(以下、適宜、SD音声という)とを出力する。
ここで、多重分離部32、メモリ部33、デコーダ部34、及び外部出力部35は、図1の多重分離部12、メモリ部13、デコーダ部14、及び外部出力部15とそれぞれ同様に構成されるため、その説明は省略する。
一方、HD処理部23は、多重分離部42、メモリ部43、デコーダ部44、及び外部出力部45で構成され、外部入力部21からのHDコンテンツのMPEGストリームを処理する。
すなわち、HD処理部23を構成する多重分離部42、メモリ部43、デコーダ部44、及び外部出力部45は、外部入力部21からのHDコンテンツのMPEGストリームに対して、図1の多重分離部12、メモリ部13、デコーダ部14、及び外部出力部15と同様の処理を施して、その結果得られるHD画像と、そのHD画像に付随する音声(以下、適宜、HD音声という)とを出力する。
ここで、多重分離部42、メモリ部43、デコーダ部44、及び外部出力部45は、図1の多重分離部12、メモリ部13、デコーダ部14、及び外部出力部15とそれぞれ同様に構成されるため、その説明は省略する。
以上のように、TVに、SDコンテンツのMPEGストリームを処理するブロックとしてのSD処理部22と、HDコンテンツを処理するブロックとしてのHD処理部23とを設ける場合には、TVのコストが大になる。さらに、回路基板の面積が増加し、TVが大型化する。また、SDコンテンツとHDコンテンツとが入り混じったコンテンツのMPEGストリームを適切に処理することができないことがあり得ることが予想される。
TVのコストが大になること等を防止するには、図1に示したように、MPEGストリームを処理するブロック(以下、適宜、MPEG処理ブロックという)としての多重分離部12、メモリ部13、デコーダ部14、及び外部出力部15を、1セットだけ、TVに設けることが望ましい。
但し、TVに、1セットのMPEG処理ブロックとしての多重分離部12、メモリ部13、デコーダ部14、及び外部出力部15を設けて、SDコンテンツとHDコンテンツの両方のMPEGストリームを処理する場合には、SDコンテンツと、HDコンテンツとでは、メモリ部13に必要とされる記憶容量が異なるため、メモリ部13の記憶容量、すなわち、図2の画像バッファ13V及び音声バッファ13Aのバッファサイズを大にする必要がある。
ここで、図4を参照し、画像(SD画像及びHD画像)を例にして、SDコンテンツとHDコンテンツのそれぞれに必要な画像バッファ13Vのバッファサイズについて説明する。
すなわち、図4左から1番目は、1ピクチャのSD画像のデータ量DSと、1ピクチャのHD画像のデータ量DHとを示している。
HD画像のデータ量DHは、SD画像のデータ量DSよりも多い(SD画像のデータ量DSは、HD画像のデータ量DHよりも少ない)ので、HD画像を処理する場合には、SD画像を処理する場合よりも大きなバッファサイズの画像バッファ13Vが必要となる。
図4左から2番目は、SDコンテンツに含まれるSD画像に適切なバッファサイズの画像バッファ13Vを示している。
すなわち、図4左から2番目では、SD画像に適切な画像バッファ13Vのバッファサイズが、必要十分なデータ量のSD画像を記憶することができるサイズVsになっている。
バッファサイズVSの画像バッファ13Vによれば、1ピクチャがデータ量DSのSD画像を、必要十分なデータ量(多すぎることもないし、少なすぎることもないデータ量)だけ記憶することができる。
しかしながら、図4左から2番目では、バッファサイズVSが、1ピクチャのHD画像のデータ量DHより小さくなっており、したがって、バッファサイズVSの画像バッファ13Vでは、必要十分なデータ量のHD画像を記憶することができない。
図4左から3番目(右から1番目)は、HDコンテンツに含まれるHD画像に適切なバッファサイズの画像バッファ13Vを示している。
すなわち、図4左から3番目では、HD画像に適切な画像バッファ13Vのバッファサイズが、必要十分なデータ量のSD画像を記憶することができるサイズVsよりも大きい、必要十分なデータ量のHD画像を記憶することができるサイズVHになっている。
バッファサイズVHの画像バッファ13Vによれば、1ピクチャがデータ量DHのHD画像を、必要十分なデータ量だけ記憶することができる。
また、バッファサイズVHの画像バッファ13Vによれば、1ピクチャがデータ量がHD画像よりも小のSD画像を、必要十分なデータ量を越えるデータ量だけ記憶することができる。
以上のように、画像バッファ13Vのバッファサイズを、SD画像に適切なバッファサイズVSとすると、必要十分なデータ量のHD画像を記憶することができなくなり、最悪の場合には、デコーダ部14の処理が破綻するおそれがあるため、画像バッファ13Vのバッファサイズは、必要十分なデータ量のHD画像を記憶することができる、HD画像に適切なバッファサイズVHとする必要がある。
そして、画像バッファ13Vのバッファサイズを、HD画像に適切なバッファサイズVHとすることで、デコーダ部14では、SD画像及びHD画像の両方を処理することができる。
しかしながら、画像バッファ13Vのバッファサイズを、HD画像に適切なバッファサイズVHとする場合には、画像バッファ13Vにおいて、HD画像よりも小のデータ量DSのSD画像を、必要以上に記憶することができるため、画像バッファ13V、又は音声バッファ13Aのうちの一方としての、例えば、音声バッファ13Aの記憶内容がクリアされるバッファフラッシュ(flush)が行われた場合に、音声が出力されない無音の時間が長時間続き、ユーザに不快感を与えることがあり得る。
ここで、図5ないし図7を参照して、音声バッファ13Aのバッファフラッシュが行われた場合に、無音の時間が長時間続くことについて説明する。
図5は、MPEGストリームの例を模式的に示している。
図5において、MPEGストリームには、1つの画像ストリームと、2種類の音声ストリームとしての第1音声ストリーム及び第2音声ストリームとが含まれている。
ここで、第1音声ストリームは、例えば、日本語の音声データであり、第2音声ストリームは、例えば、英語の音声データである。
以上のように、MPEGストリームに、第1音声ストリーム及び第2音声ストリームの2種類の音声ストリームが含まれる場合において、第1音声ストリーム、又は第2音声ストリームのうちの一方の音声ストリームとしての、例えば、第1音声ストリームが出力されているときに、ユーザが、音声の出力を、いま出力されている第1音声ストリームから、他方の音声ストリームとしての第2音声ストリームに切り換えるように操作を行うと、無音の時間が長時間続くことがある。
すなわち、図6は、SDコンテンツに適切なバッファサイズの画像バッファ13V、及び音声バッファ13Aの記憶内容を示している。
図6左は、SD画像に適切なバッファサイズの画像バッファ13Vの記憶内容を示している。
図6左において、SDコンテンツに適切なバッファサイズは、サイズVSとなっており、バッファサイズVSの画像バッファ13Vは、例えば、2ピクチャ分(ないし3ピクチャ分)のSD画像を記憶することができるようになっている。
いま、図6左の上から1番目に示すように、バッファサイズVSの画像バッファ13Vに、n番目のSD画像#nと、n+1番目のSD画像#n+1が記憶されている場合、画像バッファ13Vに記憶されている最も古いn番目のSD画像#nのデコードのタイミングとなると、n番目のSD画像#nは、画像バッファ13Vから読み出され、後段のデコーダ部14に供給される。
また、図6左の上から2番目に示すように、前段の多重分離部12から、画像バッファ13Vに記憶されている最新の、n+1番目のSD画像#n+1の次の、n+2番目のSD画像#n+2が、画像バッファ13Vに供給されて記憶される。
そして、画像バッファ13Vに記憶されている最も古いn+1番目のSD画像#n+1のデコードのタイミングとなると、n+1番目のSD画像#n+1は、画像バッファ13Vから読み出され、後段のデコーダ部14に供給される。
また、図6左の上から3番目に示すように、前段の多重分離部12から、画像バッファ13Vに記憶されている最新の、n+2番目のSD画像#n+2の次の、n+3番目のSD画像n+3が、画像バッファ13Vに供給されて記憶される。
以下、同様に、画像バッファ13Vに対するSD画像の読み書きが行われる。
一方、図6右は、SD画像に付随するSD音声に適切なバッファサイズの音声バッファ13Aの記憶内容を示している。
図6右において、SD音声に適切なバッファサイズは、サイズVS'となっており、バッファサイズVS'の音声バッファ13Aは、例えば、2ピクチャ分ないし3ピクチャ分)のSD画像に付随するSD音声を記憶することができるようになっている。
すなわち、画像バッファ13Vに記憶される画像と、音声バッファ13Aに記憶される音声とは、ほぼ同一時刻に出力すべき画像と音声(対応する画像と音声)になっており、したがって、画像バッファ13Vにおいて、図6左の上から1番目に示したように、n番目のSD画像#nと、n+1番目のSD画像#n+1が記憶されている場合には、音声バッファ13Aには、図6右の上から1番目に示すように、n番目のSD画像#nに付随するSD音声#nと、n+1番目のSD画像#n+1に付随するSD音声#n+1が記憶される。
ここで、図5に示したように、MPEGストリームに、1つの画像ストリームと、2種類の音声ストリームとしての第1音声ストリーム及び第2音声ストリームとが含まれており、その第1音声ストリームと第2音声ストリームのうちの、例えば、第1音声ストリームを出力することが選択されている場合には、多重分離部12(図1)は、音声ストリームについては、MPEGストリームから、第1音声ストリームを分離して、メモリ部13の音声バッファ13Aに供給する。
したがって、第1音声ストリームに含まれるSD音声を、SD第1音声というとともに、第2音声ストリームに含まれるSD音声を、SD第2音声ということとすると、いまの場合、メモリ部13の音声バッファ13Aには、n番目のSD画像#nに付随するSD第1音声#nと、n+1番目のSD画像#n+1に付随するSD第1音声#n+1が記憶される。
音声バッファ13Aに記憶された音声も、画像バッファ13Vに記憶された画像と同様に、デコードのタイミングとなると、音声バッファ13Aから読み出され、後段のデコーダ部14に供給される。
これにより、画像と音声とは、同期(AV(Audio Visual)同期)をとった状態で出力される。
上述したように、音声バッファ13Aには、画像バッファ13Vに記憶される画像に対応する音声が記憶されるから、図6左で説明したように、SD画像#nが、画像バッファ13Vから読み出され、さらに、前段の多重分離部12から、n+2番目のSD画像#n+2が、画像バッファ13Vに供給されて記憶されるときに(近いタイミングで)、音声バッファ13Aから、SD画像#nに付随するSD第1音声#nが読み出され、また、前段の多重分離部12から、n+2番目のSD画像#n+2に付随するSD第1音声#n+2が、音声バッファ13Aに供給されて記憶される。
しかしながら、音声バッファ13Aから、SD第1音声#nが読み出されるときに、ユーザが、音声の出力を、SD第1音声からSD第2音声に切り換えるように操作を行うと、図6右の上から2番目に示すように、音声バッファ13Aのバッファフラッシュ、すなわち、音声バッファ13Aに記憶されているSD第1音声#n及び#n+1の破棄が実行される(音声バッファ13Aの記憶内容がクリアされる)。そして、その後、多重分離部12(図1)は、MPEGストリームから分離する音声ストリームを、第1音声ストリームから第2音声ストリームに変更して、メモリ部13の音声バッファ13Aに供給する。
なお、多重分離部12は、MPEGストリームから分離した第2音声ストリームのうちの、音声バッファ13Aのバッファフラッシュを行ったときに、音声バッファ13Aに記憶されていた最新のSD第1音声#n+1の次の順番のSD第2音声#n+2から、音声バッファ13Aへの供給を開始する。
したがって、音声バッファ13Aのバッファフラッシュの直後、音声バッファ13Aには、図6右の上から3番目に示すように、SD第2音声#n+2及び#n+3が記憶される。
そして、音声バッファ13Aに記憶されたSD第2音声#n+2は、画像バッファ13Vに記憶されている、SD第2音声#n+2が付随するSD画像#n+2の出力(表示)とAV同期がとれるタイミングで読み出され、後段のデコーダ部14に供給される。
したがって、音声バッファ13Aから、SD第1音声#nが読み出されるときに、ユーザが、音声の出力を、SD第1音声からSD第2音声に切り換えるように操作を行うと、画像バッファ13Vのバッファフラッシュは行われないので、SD画像は、連続して出力されるが、音声バッファ13Aのバッファフラッシュが行われるため、そのバッファフラッシュ時に、画像バッファ13Vに記憶されていたSD画像#n及び#n+1に付随するSD音声(SD第1音声)#n及び#n+1は破棄され、その結果、SD画像#n及び#n+1の出力時には、無音となる。
そして、バッファフラッシュ後に音声バッファ13Aに記憶された最も古いSD第2音声#n+2が付随するSD画像#n+2の出力時から、SD音声(SD第2音声)の出力が再開される。
したがって、画像バッファ13V、及び音声バッファ13Aのバッファサイズが、SDコンテンツに適切なバッファサイズとなっている場合には、SD第1音声、又はSD第2音声のうちの一方から他方に、出力を切り換えるときに、無音の時間が生じるが、その時間は、僅かな時間である。
一方、画像バッファ13V、及び音声バッファ13Aのバッファサイズが、HDコンテンツに適切なバッファサイズとなっており、したがって、画像バッファ13Vに、必要以上のSD画像を記憶することができる場合には、SD第1音声、又はSD第2音声のうちの一方から他方に、出力を切り換えるときに、長時間の無音が生じる。
すなわち、図7は、HDコンテンツに適切なバッファサイズの画像バッファ13V、及び音声バッファ13Aの記憶内容を示している。
図7左は、HD画像に適切なバッファサイズの画像バッファ13Vに記憶されたSD画像の記憶内容を示している。
図7左において、HDコンテンツに適切なバッファサイズは、サイズVHとなっており、バッファサイズVHの画像バッファ13Vは、例えば、10ピクチャ(以上)分のSD画像を記憶することができるようになっている。
いま、図7左の上から1番目に示すように、バッファサイズVHの画像バッファ13Vに、n番目のSD画像#nないしn+9番目のSD画像#n+9が記憶されている場合、画像バッファ13Vに記憶されている最も古いn番目のSD画像#nのデコードのタイミングとなると、n番目のSD画像#nは、画像バッファ13Vから読み出され、後段のデコーダ部14に供給される。
また、図7左の上から2番目に示すように、前段の多重分離部12から、画像バッファ13Vに記憶されている最新の、n+9番目のSD画像#n+9の次の、n+10番目のSD画像#n+10が、画像バッファ13Vに供給されて記憶される。
そして、画像バッファ13Vに記憶されている最も古いn+1番目のSD画像#n+1のデコードのタイミングとなると、n+1番目のSD画像#n+1は、画像バッファ13Vから読み出され、後段のデコーダ部14に供給される。
また、図7左の上から3番目に示すように、前段の多重分離部12から、画像バッファ13Vに記憶されている最新の、n+10番目のSD画像#n+10の次の、n+11番目のSD画像n+11が、画像バッファ13Vに供給されて記憶される。
以下、同様に、画像バッファ13Vに対するSD画像の読み書きが行われる。
一方、図7右は、HD画像に付随するHD音声に適切なバッファサイズの音声バッファ13Aの記憶内容を示している。
図7右において、HD音声に適切なバッファサイズは、サイズVH'となっており、バッファサイズVH'の音声バッファ13Aは、図7左のバッファサイズVHの画像バッファ13Vが記憶することができる10ピクチャ(以上)分のSD画像に対応する、10ピクチャ(以上)分のSD画像に付随するSD音声を記憶することができるようになっている。
したがって、画像バッファ13Vにおいて、図7左の上から1番目に示したように、n番目のSD画像#nないしn+9番目のSD画像#n+9が記憶されている場合には、音声バッファ13Aには、図7右の上から1番目に示すように、そのSD画像#nないし#n+9にそれぞれ付随するSD音声#nないし#n+9が記憶される。
ここで、図5に示したように、MPEGストリームに、1つの画像ストリームと、2種類の音声ストリームとしての第1音声ストリーム及び第2音声ストリームとが含まれており、その第1音声ストリームと第2音声ストリームのうちの、例えば、第1音声ストリームを出力することが選択されている場合には、多重分離部12(図1)は、音声ストリームについては、MPEGストリームから、第1音声ストリームを分離して、メモリ部13の音声バッファ13Aに供給する。
したがって、いまの場合、メモリ部13の音声バッファ13Aには、SD第1音声#nないし#n+9が記憶される。
そして、音声バッファ13Aに記憶された最も古いSD第1音声#nは、AV同期がとれるように、音声バッファ13Aから読み出され、後段のデコーダ部14に供給される。さらに、前段の多重分離部12から、音声バッファ13Aに記憶されている最新のSD第1音声#n+9の次のSD第1音声#n+10が、音声バッファ13Aに供給されて記憶される。
ここで、図6で説明した場合と同様に、音声バッファ13Aから、SD第1音声#nが読み出されるときに、ユーザが、音声の出力を、SD第1音声からSD第2音声に切り換えるように操作を行うと、音声バッファ13Aのバッファフラッシュが行われ、図7右の上から2番目に示すように、音声バッファ13Aに記憶されているSD第1音声#nないし#n+9は破棄される。さらに、多重分離部12(図1)は、MPEGストリームから分離する音声ストリームを、第1音声ストリームから第2音声ストリームに変更して、メモリ部13の音声バッファ13Aに供給する。
図6で説明したように、多重分離部12は、MPEGストリームから分離した第2音声ストリームのうちの、音声バッファ13Aのバッファフラッシュを行ったときに、音声バッファ13Aに記憶されていた最新のSD第1音声の次の順番のSD第2音声から、音声バッファ13Aへの供給を開始する。
したがって、音声バッファ13Aのバッファフラッシュの直後、音声バッファ13Aには、図7右の上から3番目に示すように、バッファフラッシュ時に音声バッファ13Aに記憶されていた最新のSD第1音声#n+9の次のSD第2音声#n+10からの10ピクチャ分のSD第2音声#n+10ないし#n+19が記憶される。
そして、音声バッファ13Aに記憶されたSD第2音声#n+10ないし#n+19のうちの、最も古いSD第2音声#n+10は、画像バッファ13Vに記憶されている、SD第2音声#n+10が付随するSD画像#n+10の出力(表示)とAV同期がとれるタイミングで読み出され、後段のデコーダ部14に供給される。
したがって、音声バッファ13Aから、SD第1音声#nが読み出されるときに、ユーザが、音声の出力を、SD第1音声からSD第2音声に切り換えるように操作を行うと、画像バッファ13Vのバッファフラッシュは行われないので、SD画像は、連続して出力されるが、音声バッファ13Aのバッファフラッシュが行われるため、そのバッファフラッシュ時に、画像バッファ13Vに記憶されていたSD画像#nないし#n+9に付随するSD音声(SD第1音声)#nないし#n+9は破棄され、その結果、SD画像#nないし#n+9の出力時には、無音となる。
そして、その後のSD画像#n+10の出力時から、SD音声(SD第2音声)の出力が再開される。
したがって、SD画像#nないし#n+9が表示されている間、つまり、10ピクチャ分の時間という長時間、無音が続くことになる。
以上のように、画像バッファ13Vのバッファサイズを、HD画像に適切なバッファサイズVHとした場合には、画像バッファ13Vにおいて、HD画像よりも小のデータ量DSのSD画像を、必要以上に記憶することができるため、音声バッファ13Aのバッファフラッシュが行われると、無音の時間が長時間続くことがある。
このような長時間の無音は、画像についても生じ得る。すなわち、例えば、MPEGストリームに、画像ストリームとして、第1の種類の画像ストリームと、第2の種類の画像ストリームとが含まれ、ユーザの操作等に応じて、画像の出力を、第1又は第2の種類の画像ストリームのうちの一方から他方に切り換える場合には、画像バッファ13Vのバッファフラッシュを行う必要があり、この画像バッファ13Vのバッファフラッシュに伴い、画像が表示されない(又は、画像がフリーズ(freeze)する)無画の時間が長時間続くことがある。
なお、例えば、図7において、音声バッファ13Aのバッファフラッシュ後に音声バッファ13Aに記憶されたSD第2音声#n+10ないし#n+19の読み出しを、即座に開始すれば(いわゆる、フリーラン(Free Run)で、音声の出力を開始すれば)、無音の時間が生じることを防止することができるが、この場合、AV同期をとることができず、すなわち、SD画像と、そのSD画像に付随するSD音声とが、ずれて出力され、ユーザに不快感を与えることになる。
そこで、メモリ部13に、SD第1音声を含む第1音声ストリームを記憶するバッファと、SD第2音声を含む第2音声ストリームを記憶するバッファとを設ける方法が考えられる。
すなわち、図8は、図1のメモリ部13の他の構成例を示している。
なお、図中、図2の場合と対応する部分については、同一の符号を付してある。
すなわち、図8のメモリ部13は、1つの音声バッファ13Aに代えて、2つの音声バッファ13A1及び13A2が設けられているとともに、スイッチSWが新たに設けられている他は、図2のメモリ部13と同様に構成されている。
図8では、多重分離部12が、MPEGストリームから、画像ストリーム、第1音声ストリーム、及び第2音声ストリームを分離し、画像ストリームを画像バッファ13Vに、第1音声ストリームを音声バッファ13A1に、第2音声ストリームを、音声バッファ13A2に、それぞれ供給する。
音声バッファ13A1は、多重分離部12から供給される第1音声ストリームを一時記憶し、スイッチSWの2つの端子のうちの一方に供給する。
音声バッファ13A2は、多重分離部12から供給される第2音声ストリームを一時記憶し、スイッチSWの2つの端子のうちの他方に供給する。
スイッチSWは、ユーザの操作等に従い、2つの端子のうちのいずれか一方の端子を選択し、これにより、音声バッファ13A1、又は13A2のうちのいずれか一方から供給される音声ストリームを、音声デコーダ14Aに供給する。
以上のように、メモリ部13を、2つの音声バッファ13A1及び13A2と、スイッチSWとを設けて構成することにより、音声の出力を、第1音声ストリームの音声、又は第2音声ストリームの音声のうちの一方から他方に切り換えるときに、その切り換えに応じて、スイッチSWの選択を変換することで、図7で説明したような長時間の無音が生じることを防止することができる。
しかしながら、この場合、2つの音声バッファ13A1及び13A2と、スイッチSWとが必要となるため、TVのコストが大になる。
また、MPEGストリームに、第1の種類の画像ストリームと、第2の種類の画像ストリームとが含まれ、画像の出力を、第1又は第2の種類の画像ストリームのうちの一方から他方に切り換える場合をも考慮すると、画像バッファ13Vも、第1の種類の画像ストリームを記憶するバッファと、第2の種類の画像ストリームを記憶するバッファとの2つのバッファに変更しなければならず、コストがさらに大になる。
ところで、図1のTVにおいて、図6及び図7で説明したように、音声の出力を、第1音声ストリーム、又は第2音声ストリームのうちの、例えば、第1音声ストリームから第2音声ストリームに切り換える場合において、音声バッファ13Aのバッファフラッシュ後に、多重分離部12が、バッファフラッシュの直前に音声バッファ13Aに記憶されていた最新のSD第1音声の次の順番のSD第2音声から、音声バッファ13Aへの供給を開始するのは、多重分離部12に供給されるMPEGストリームが、地上波ディジタル放送等の放送で送信されてくる、いわばプッシュ(push)型のストリームであることによる。
ここで、プッシュ型のストリームとは、送信側から、受信側の状態に関係なく送信されてくるストリームである。一方、送信側から、受信側の要求等に応じて送信されてくるストリームは、プル(pull)型のストリームと呼ばれる。
メモリ部13が、図2に示したように、1つの音声バッファ13Aしか有せず、MPEGストリームに、第1音声ストリームと第2音声ストリームとの2種類の音声ストリームが含まれる場合には、1つの音声バッファ13Aでは、1種類の音声ストリームしか記憶することができないので、多重分離部12では、MPEGストリームから、第1音声ストリームと第2音声ストリームのうちのいずれか一方の音声ストリームだけを分離して、音声バッファ13Aに供給する必要があり、そのために、他方の音声ストリームは破棄される。
MPEGストリームにおいて、あるSD画像に対応するSD第1音声とSD第2音声とは、近い位置に多重化されており、したがって、あるSD画像に対応するSD第1音声が、MPEGストリームから分離され、音声バッファ13Aに記憶されている場合には、そのSD画像に対応するSD第2音声は、既に破棄されてしまっていることが多い。
このため、音声の出力を、第1音声ストリームから第2音声ストリームに切り換える場合においては、多重分離部12は、音声バッファ13Aのバッファフラッシュ後、バッファフラッシュの直前に音声バッファ13Aに記憶されていた最新のSD第1音声の次のSD第2音声から、MPEGストリームからの分離を開始し、音声バッファ13Aに供給する。
一方、多重分離部12に供給されるMPEGストリームが、プル型のストリームである場合には、多重分離部12で破棄したSD第2音声の再度の供給を要求することにより、無音の時間が生じることを防止する方法が考えられる。
すなわち、外部入力部11(図1)を介して、多重分離部12に供給されるMPEGストリームが、例えば、DVDプレーヤ等の、ディスク状の記録媒体(ディスク状記録媒体)を再生する再生装置から供給されるMPEGストリームである場合には、ディスク状記録媒体の回転数等から、多重分離部12が破棄したSD第2音声を認識し、そのSD第2音声の再度の読み出しを、再生装置に要求して、そのSD第2音声を、再生装置から再度取得することにより、無音の時間が生じることを防止する方法が考えられる。
しかしながら、多重分離部12が破棄したSD第2音声を認識し、そのSD第2音声の再度の読み出しを、再生装置に要求して、そのSD第2音声を、再生装置から取得する処理を行うハードウェア、又はソフトウェアを、別途開発することは、容易なことではない。
また、ディスク状記録媒体に記録されているMPEGストリームが、例えば、ディジタルカメラで撮影された動画等のように、ファイルに格納されている場合に、そのファイルにおける、SD第2音声の位置が分からないときには、再生装置から、多重分離部12が破棄したSD第2音声を再度取得することは難しい。
本発明は、このような状況に鑑みてなされたものであり、装置のコストを削減すること(装置のコストが大になることを防止すること)ができるようにするものである。
本発明の第1の側面のデータ処理装置は、少なくとも、第1の種類の画像データ及び第2の種類の画像データを含む画像データと、音声データとを含んだ、MPEGの規格に準拠したビットストリームを処理するデータ処理装置において、前記画像データを一時記憶し、第1のデコーダに供給する第1のバッファの第1のバッファサイズを、前記ビットストリームに含まれるシーケンスヘッダの情報に基づいて設定するとともに、前記音声データを一時記憶し、第2のデコーダに供給する第2のバッファの第2のバッファサイズを、前記ビットストリームに含まれるコーデックの情報に基づいて設定するバッファサイズ設定手段と、前記第1のバッファのオーバーフローを防止するための閾値を、前記第1のバッファサイズに対応する値に設定することにより、前記第1のバッファのバッファサイズを、前記第1のバッファサイズに制御するとともに、前記第2のバッファのオーバーフローを防止するための閾値を、前記第2のバッファサイズに対応する値に設定することにより、前記第2のバッファのバッファサイズを、前記第2のバッファサイズに制御するバッファ制御手段とを備え、ユーザの操作に応じて、第1の種類の画像データ、又は第2の種類の画像データのうちの一方の画像データから他方の画像データに、出力が切り換えられるときに、前記第1のバッファはクリアされる。
本発明の第1の側面のデータ処理方法又はプログラムは、上述の第1の側面のデータ処理装置に対応するデータ処理方法又はプログラムである。
以上のような第1の側面においては、画像データを一時記憶し、第1のデコーダに供給する第1のバッファの第1のバッファサイズが、ビットストリームに含まれるシーケンスヘッダの情報に基づいて設定されるとともに、音声データを一時記憶し、第2のデコーダに供給する第2のバッファの第2のバッファサイズが、ビットストリームに含まれるコーデックの情報に基づいて設定され、第1のバッファのオーバーフローを防止するための閾値が、第1のバッファサイズに対応する値に設定されることにより、第1のバッファのバッファサイズが、第1のバッファサイズに制御されるとともに、第2のバッファのオーバーフローを防止するための閾値が、第2のバッファサイズに対応する値に設定されることにより、第2のバッファのバッファサイズが、第2のバッファサイズに制御される。そして、ユーザの操作に応じて、第1の種類の画像データ、又は第2の種類の画像データのうちの一方の画像データから他方の画像データに、出力が切り換えられるときに、第1のバッファがクリアされる。
本発明の第2の側面のデータ処理装置は、少なくとも、画像データと、第1の種類の音声データ及び第2の種類の音声データを含む音声データとを含んだ、MPEGの規格に準拠したビットストリームを処理するデータ処理装置において、前記画像データを一時記憶し、第1のデコーダに供給する第1のバッファの第1のバッファサイズを、前記ビットストリームに含まれるシーケンスヘッダの情報に基づいて設定するとともに、前記音声データを一時記憶し、第2のデコーダに供給する第2のバッファの第2のバッファサイズを、前記ビットストリームに含まれるコーデックの情報に基づいて設定するバッファサイズ設定手段と、前記第1のバッファのオーバーフローを防止するための閾値を、前記第1のバッファサイズに対応する値に設定することにより、前記第1のバッファのバッファサイズを、前記第1のバッファサイズに制御するとともに、前記第2のバッファのオーバーフローを防止するための閾値を、前記第2のバッファサイズに対応する値に設定することにより、前記第2のバッファのバッファサイズを、前記第2のバッファサイズに制御するバッファ制御手段とを備え、ユーザの操作に応じて、第1の種類の音声データ、又は第2の種類の音声データのうちの一方の音声データから他方の音声データに、出力が切り換えられるときに、前記第2のバッファはクリアされる。
本発明の第2の側面のデータ処理方法又はプログラムは、上述の第2の側面のデータ処理装置に対応するデータ処理方法又はプログラムである。
以上のような第2の側面においては、画像データを一時記憶し、第1のデコーダに供給する第1のバッファの第1のバッファサイズが、ビットストリームに含まれるシーケンスヘッダの情報に基づいて設定されるとともに、音声データを一時記憶し、第2のデコーダに供給する第2のバッファの第2のバッファサイズが、ビットストリームに含まれるコーデックの情報に基づいて設定され、第1のバッファのオーバーフローを防止するための閾値が、第1のバッファサイズに対応する値に設定されることにより、第1のバッファのバッファサイズが、第1のバッファサイズに制御されるとともに、第2のバッファのオーバーフローを防止するための閾値が、第2のバッファサイズに対応する値に設定されることにより、第2のバッファのバッファサイズが、第2のバッファサイズに制御される。そして、ユーザの操作に応じて、第1の種類の音声データ、又は第2の種類の音声データのうちの一方の音声データから他方の音声データに、出力が切り換えられるときに、第2のバッファがクリアされる。
なお、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して提供することができる。
また、データ処理装置は、独立した装置であっても良いし、独立した装置を構成する内部ブロックであっても良い。
本発明の第1の側面及び第2の側面によれば、装置のコストを削減することができる。
以下、図面を参照して、本発明の実施の形態について説明する。
図9は、本発明を適用したTVの一実施の形態の構成例を示すブロック図である。
まず、図9のTVの概要について説明する。
TVは、画音コンテンツをUSB(Universal Serial Bus)やEthernet(登録商標)等から取り込む外部入力部51と、それら多重化されたデータをAudioやVideoなどの各種データに振り分ける多重分離部52と、各種データを保持するメモリ部53と、メモリ部53のデータを処理(デコード)するデコーダ部54等からなる。
各種高機能な録画機や記録メディアの登場により、外部入力部51からは多種多様なコンテンツが取り込まれる事が期待されている。CPU(Central Processing Unit)の高機能化等により、各種フォーマットを取り扱い可能な多重分離部52やデコーダ部54を備えるChipが多々存在する。
一方、メモリ部53に関しては、なるべく共有等の工夫を行う事でメモリ使用量を少なくする事が求められる。
TVでは、画音コンテンツを再生する際に、メモリ部53内のVideoのESバッファ(後述する図10の画像バッファ53V)で取り込まれるシーケンスヘッダの情報より、プロファイル情報、画サイズ情報、VBVバッファ情報、ビットレート情報を取得し、これらの情報を元にESバッファサイズ(後述する図10の画像バッファ53Vのバッファサイズ)を変更する。
この際、TVでは、画サイズとプロファイル情報の一致を確認した後に、この2つの情報を主たる判断値として利用し、得られた画サイズが包括されるプロファイルで規定されている最大トータルVBVバッファ量をESバッファサイズとして利用する。プロファイル情報と画サイズ情報の不一致や、MPEG1などプロファイル規定がないものについては、TVは、画サイズ情報に優先度を持たせて、プロファイル規定最大VBV値に設定する。この際、TVは、VBVバッファ情報やビットレート情報を元にVerifyや微調整を行い細かい設定を行う。TVは、VBVバッファ情報やビットレート情報は正しくない値や大きく外れた値が入っている可能性を考慮して、変更に対して範囲を持たせて範囲外の値の場合は利用しない。
TVが、シーケンスヘッダが来る毎にダイナミックにESバッファを変更する事で、HD/SDが入り混じるコンテンツ等であっても、バッファflush時に破棄される情報量を最小に抑える事ができ、無音時間や無画時間(Freeze時間)の縮小、及び、AV同期を合わせての再再生が可能となり、ユーザの不快感を減少させる事が可能となる。また、このシステムにより、放送などのpush型と上記のようなpull型を同じメモリ領域で扱うことが可能となり、コスト削減に繋がる。
なお、本来はVBVバッファ情報をもとにバッファサイズを決定する事が理想であるが、この部分の情報が正しくないコンテンツも数多く存在している為、この情報のみでの実現は現実的ではない。もともとVBVは理想条件のもとで動作する事を仮定しての値であり、現実のデコーダの実現方式を規定しているものではない為、必要量よりも小さい値が書かれている場合はバッファの破綻をきたす恐れがあり危険である。また、ビットレートに関しても、規格上の最大ビットレートが書かれている場合が多く、この情報を主としてバッファサイズを決定した場合、ESバッファサイズをダイナミックに変更しない場合と同じ効果しか得られない可能性が高い。従って、TVにおいて、VBVバッファ情報やビットレート情報は判定情報のVerifyや微調整に使用し、最終判断材料としては用いない事により、現実的に存在する数多くのフォーマットファイルに対応することができる。
以下、図9のTVについて、詳細に説明する。
図9において、TVは、外部入力部51、多重分離部52、メモリ部53、デコーダ部54、外部出力部55、及び制御部56等から構成される。
外部入力部51は、例えば、地上ディジタル放送その他の放送を受信し、MPEGストリームを出力するチューナや、USBや、LAN,IEEE(Institute of Electrical and Electronics Engineers)1394の規格に準拠した通信を、図示せぬ外部機器と行うことで、MPEGストリームを受信して出力する通信インタフェース、メモリスティック(登録商標)等のメモリカードその他の記録媒体からMPEGストリームを読み出して出力するドライブ等であり、外部入力部51が出力するMPEGストリームは、多重分離部52に供給される。
多重分離部52は、外部入力部51からのMPEGストリームから、例えば、画像データのESである画像ストリームと、音声データのESである音声ストリームとを分離し、メモリ部53に供給する。
さらに、多重分離部52は、外部入力部51からのMPEGストリームから、そこに含まれる画像データ及び音声データに関する情報としてのシーケンスヘッダその他の各種のヘッダ(の情報)を分離し、制御部56に供給する。
メモリ部53は、多重分離部52から供給される画像ストリームと音声ストリームとを一時記憶し(バッファリングし)、デコーダ部54に供給する。
すなわち、メモリ部53は、後段のデコーダ部54に供給される画像ストリーム及び音声ストリームのデータ量を調整するために、多重分離部52から供給される画像ストリームと音声ストリームとを一時記憶し、デコーダ部54に供給する。
デコーダ部54は、メモリ部53からの画像ストリームを、例えば、MPEGの規格に準拠した方式でデコードし、その結果得られるベースバンドの画像データを、外部出力部55に供給する。また、デコーダ部54は、メモリ部53からの音声ストリームをデコードし、その結果得られるベースバンドの音声データを、外部出力部55に供給する。
外部出力部55は、デコーダ部54からの画像データを、図示せぬLCD(Liquid Crystal Display)や、有機EL(Organic Electroluminescence)ディスプレイ等のディスプレイに供給して、対応する画像を表示させるとともに、デコーダ部54からの音声データを、図示せぬスピーカに供給して、対応する音声(音)を出力させる。
制御部56は、CPU57,RAM(Random Access Memory)58、及びEEPROM(Electrically Erasable Programmable Read Only Memory)59等から構成され、多重分離部52からの情報に基づき、メモリ部53を制御する。
すなわち、CPU57は、EEPROM59に記憶されたプログラムを実行することにより、メモリ部53を制御するバッファ制御処理等を行う。
RAM58は、CPU57の動作上必要なデータ等を一時記憶する。
EEPROM59は、CPU57が実行するプログラム等を記憶する。
なお、CPU57が実行するプログラムは、EEPROM59にあらかじめ記憶させておく他、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に記録し、そのようなリムーバブル記録媒体から、TVのEEPROM59にインストールすることができる。
また、プログラムは、ディジタル放送等の無線の伝送媒体を介して、又は、インターネット等の有線の伝送媒体を介して、TVに送信し、TVでは、そのようにして送信されてくるプログラムを、EEPROM59にインストールすることができる。
以上のようなリムーバブル記録媒体や伝送媒体を利用した、EEPROM59へのプログラムのインストールの手法は、EEPROM59に記憶されているプログラムのバージョンアップにも利用することができる。
次に、図10は、図9のメモリ部53、デコーダ部54、及び制御部56の構成例を示すブロック図である。
メモリ部53は、1つの画像バッファ53V、及び1つの音声バッファ53Aから構成される。
画像バッファ53Vには、多重分離部52から画像ストリームが供給される。画像バッファ53Vは、多重分離部52からの画像ストリームを一時記憶し、デコーダ部54に供給する。なお、画像バッファ53Vは、VBVバッファに相当する。
音声バッファ53Aには、多重分離部52から音声ストリームが供給される。音声バッファ53Aは、多重分離部52からの音声ストリームを一時記憶し、デコーダ部54に供給する。
デコーダ部54は、画像デコーダ54V、及び音声デコーダ54Aから構成される。
画像デコーダ54Vには、画像バッファ53Vから画像ストリームが供給される。画像デコーダ54Vは、画像バッファ53Vからの画像ストリームをデコードし、その結果得られる画像データを出力する。
音声デコーダ54Aには、音声バッファ53Aから音声ストリームが供給される。音声デコーダ54Aは、音声バッファ53Aからの音声ストリームをデコードし、その結果得られる音声データを出力する。
制御部56は、バッファサイズ設定部61、及びバッファ制御部62から構成される。ここで、制御部56では、図9のCPU57が、EEPROM59に記憶されたプログラムを実行することで、バッファサイズ設定部61、及びバッファ制御部62として機能する。
バッファサイズ設定部61には、多重分離部52から、シーケンスヘッダ等のヘッダが供給される。バッファサイズ設定部61は、画像バッファ53Vのバッファサイズと、音声バッファ53Aのバッファサイズとを、多重分離部52からのヘッダ等に基づいて設定し、それらのバッファサイズを表すサイズ情報を、バッファ制御部62に供給する。
バッファ制御部62は、画像バッファ53Vのバッファサイズを、バッファサイズ設定部61からのサイズ情報が表すバッファサイズに制御するとともに、音声バッファ53Aのバッファサイズを、バッファサイズ設定部61からのサイズ情報が表すバッファサイズに制御する。
次に、図11のフローチャートを参照して、図10の制御部56が行うバッファ制御処理について説明する。
制御部56のバッファサイズ設定部61は、多重分離部52からシーケンスヘッダ等のヘッダが供給されると、ステップS11において、そのヘッダ等に基づいて、画像バッファ53Vのバッファサイズと、音声バッファ53Aのバッファサイズとを設定し、それぞれのバッファサイズを表すサイズ情報を、バッファ制御部62に供給して、処理は、ステップS12に進む。
すなわち、バッファサイズ設定部61は、多重分離部52からのヘッダのうちの、例えば、シーケンスヘッダに含まれるプロファイルや、画サイズ、VBVバッファサイズ、ビットレート等の情報に基づき、画像バッファ53Vが、多重分離部52からの画像ストリームを一時記憶するのに適切なバッファサイズを求めるとともに、コーデックの情報に基づき、音声バッファ53Aが、多重分離部52からの音声ストリームを一時記憶するのに適切なバッファサイズを求め、それぞれのバッファサイズを表すサイズ情報を、バッファ制御部62に供給する。
ステップS12では、バッファ制御部62は、画像バッファ53Vのバッファサイズと、音声バッファ53Aのバッファサイズとのそれぞれを、バッファサイズ設定部61からのサイズ情報が表すバッファサイズに制御する。
すなわち、バッファ制御部62は、バッファサイズ設定部61からのサイズ情報に従い、画像バッファ53Vのバッファサイズを、多重分離部52からの画像ストリームを一時記憶するのに適切なバッファサイズに制御するとともに、音声バッファ53Aのバッファサイズを、多重分離部52からの音声ストリームを一時記憶するのに適切なバッファサイズに制御する。
そして、例えば、次のシーケンスヘッダが、多重分離部52からバッファサイズ設定部61に供給されるのを待って、処理は、ステップS12からステップS11に戻り、以下、同様の処理が繰り返される。
以上のように、制御部56では、画像バッファ53Vのバッファサイズが、多重分離部52からの画像ストリームを記憶するのに適切なバッファサイズに制御されるとともに、音声バッファ53Aのバッファサイズが、多重分離部52からの音声ストリームを記憶するのに適切なバッファサイズに制御される。
次に、図12を参照して、制御部56による、画像バッファ53V、及び音声バッファ53Aのバッファサイズの制御について説明する。
図12左は、バッファサイズが最大のバッファサイズVに制御された画像バッファ53Vを示している。
ここで、画像バッファ53Vの最大のバッファサイズVは、例えば、TVで扱う最もデータ量(データレート)の大の画像を、必要十分なデータ量だけ記憶することができるサイズになっており、例えば、画像バッファ53Vを構成するハードウェアであるメモリの記憶容量に等しい。
図12右は、多重分離部52からの画像ストリームを記憶するのに適切なバッファサイズに制御された画像バッファ53Vを示している。
いま、多重分離部52から画像バッファ53Vに供給される画像ストリームとして、SDコンテンツの画像ストリームと、HDコンテンツの画像ストリームとがあり、1ピクチャのSD画像のデータ量が、データ量DSであり、1ピクチャのHD画像のデータ量が、データ量DSより大のデータ量DHであるとする。
制御部56は、多重分離部52から画像バッファ53Vに供給される画像ストリームが、SDコンテンツの画像ストリームである場合、画像バッファ53Vのバッファサイズを、必要十分なデータ量のSD画像を記憶することができるバッファサイズVsに制御する。ここで、図12では、バッファサイズVSは、例えば、2ピクチャ程度分のSD画像を記憶することができるバッファサイズになっている。
また、制御部56は、多重分離部52から画像バッファ53Vに供給される画像ストリームが、HDコンテンツの画像ストリームである場合、画像バッファ53Vのバッファサイズを、必要十分なデータ量のHD画像を記憶することができるバッファサイズVHに制御する。ここで、図12では、バッファサイズVHは、バッファサイズVSより大で、例えば、2ピクチャ程度分のHD画像を記憶することができるバッファサイズになっている。
制御部56は、音声バッファ53Aのバッファサイズも、画像バッファ53Vのバッファサイズと同様に、音声バッファ53Aが多重分離部52から供給される音声ストリームを一時記憶するのに適切なバッファサイズに制御する。
以上のように、制御部56が、画像バッファ53Vと音声バッファ53Aそれぞれのバッファサイズを、多重分離部52から供給されるESを一時記憶するのに適切なバッファサイズに、ダイナミックに制御することにより、画像バッファ53Vと音声バッファ53Aに相当するバッファそれぞれを複数設けずに、すなわち、TVのコストが大になることを防止しつつ、前述の図7で説明した、バッファフラッシュ時に、無音や無画の時間が長時間続くことを防止することができる。
次に、図13及び図14を参照して、制御部56によって適切なバッファサイズに制御された画像バッファ53Vと音声バッファ53Aの動作について説明する。
なお、図13及び図14では、例えば、前述の図5に示した、1つの画像ストリームと、2種類の音声ストリームとしての第1音声ストリーム及び第2音声ストリームとが含まれるMPEGストリームが、外部入力部51から多重分離部52に供給され、多重分離部52では、MPEGストリームから、画像ストリームが分離されて、画像バッファ53Vに供給されるとともに、MPEGストリームから、第1音声ストリーム、又は第2音声ストリームが分離されて、音声バッファ53Aに供給されることとする。
図13は、多重分離部52からメモリ部53に供給される画像ストリーム及び音声ストリームが、例えば、SDコンテンツの画像ストリーム及び音声ストリームである場合の、画像バッファ53V、及び音声バッファ53Aの記憶内容を示している。
すなわち、図13左は、SD画像に適切なバッファサイズに制御された画像バッファ53VのSD画像の記憶内容を示している。
図13左において、SDコンテンツに適切なバッファサイズは、サイズVSとなっており、バッファサイズVSの画像バッファ53Vは、例えば、2ピクチャ(ないし3ピクチャ)分のSD画像を記憶することができるようになっている。
いま、図13左の上から1番目に示すように、バッファサイズVSの画像バッファ53Vに、n番目のSD画像#nと、n+1番目のSD画像#n+1が記憶されている場合、画像バッファ53Vに記憶されている最も古いn番目のSD画像#nのデコードのタイミングとなると、n番目のSD画像#nは、画像バッファ53Vから読み出され、後段のデコーダ部54に供給される。
また、図13左の上から2番目に示すように、前段の多重分離部52から、画像バッファ53Vに記憶されている最新の、n+1番目のSD画像#n+1の次の、n+2番目のSD画像#n+2が、画像バッファ53Vに供給されて記憶される。
そして、図13左の上から2番目では、画像バッファ53Vに記憶されている最も古いn+1番目のSD画像#n+1のデコードのタイミングとなると、n+1番目のSD画像#n+1は、画像バッファ53Vから読み出され、後段のデコーダ部54に供給される。
また、図13左の上から3番目に示すように、前段の多重分離部52から、画像バッファ53Vに記憶されている最新の、n+2番目のSD画像#n+2の次の、n+3番目のSD画像n+3が、画像バッファ53Vに供給されて記憶される。
以下、同様に、画像バッファ53Vに対するSD画像の読み書きが行われる。
一方、図13右は、SD画像に付随するSD音声に適切なバッファサイズに制御された音声バッファ53AのSD音声の記憶内容を示している。
図13右において、SD音声に適切なバッファサイズは、サイズVS'となっており、バッファサイズVS'の音声バッファ53Aは、例えば、2ピクチャ(ないし3ピクチャ)分のSD画像に付随するSD音声を記憶することができるようになっている。
すなわち、前述の図6で説明した場合と同様に、画像バッファ53Vと音声バッファ53Aとには、対応する画像と音声とがそれぞれ記憶されるようになっており、したがって、画像バッファ53Vにおいて、図13左の上から1番目に示したように、n番目のSD画像#nと、n+1番目のSD画像#n+1が記憶されている場合には、音声バッファ53Aには、図13右の上から1番目に示すように、n番目のSD画像#nに付随するSD音声#nと、n+1番目のSD画像#n+1に付随するSD音声#n+1が記憶される。
ここで、外部入力部51から多重分離部52に供給されるMPEGストリームが、例えば、図5に示したように、1つの画像ストリームと、2種類の音声ストリームである第1音声ストリーム及び第2音声ストリームとを含むMPEGストリームであり、第1音声ストリームと第2音声ストリームのうちの、例えば、第1音声ストリームを出力することが選択されている場合には、多重分離部52(図9)は、音声ストリームについては、MPEGストリームから、第1音声ストリームを分離して、メモリ部53の音声バッファ53Aに供給する。
したがって、第1音声ストリームに含まれるSD音声を、SD第1音声というとともに、第2音声ストリームに含まれるSD音声を、SD第2音声ということとすると、いまの場合、メモリ部53の音声バッファ53Aには、n番目のSD画像#nに付随するSD第1音声#nと、n+1番目のSD画像#n+1に付随するSD第1音声#n+1が記憶される。
音声バッファ53Aに記憶されたSD音声は、そのSD音声が付随する、画像バッファ53Vに記憶されたSD画像とAV同期をとることができるタイミングで、音声バッファ53Aから読み出され、後段のデコーダ部54に供給される。
上述したように、音声バッファ53Aには、画像バッファ53Vに記憶される画像に対応する音声が記憶されるから、図13左で説明したように、SD画像#nが、画像バッファ53Vから読み出され、さらに、前段の多重分離部52から、n+2番目のSD画像#n+2が、画像バッファ53Vに供給されて記憶されるときに(近いタイミングで)、音声バッファ53Aから、SD画像#nに付随するSD第1音声#nが読み出され、前段の多重分離部52から、n+2番目のSD画像#n+2に付随するSD第1音声#n+2が、音声バッファ53Aに供給されて記憶される。
しかしながら、音声バッファ53Aから、SD第1音声#nが読み出されるときに、ユーザが、音声の出力を、SD第1音声からSD第2音声に切り換えるように操作を行うと、音声バッファ53Aのバッファフラッシュが行われ、図13右の上から2番目に示すように、音声バッファ53Aに記憶されているSD第1音声#n及び#n+1が破棄される。
そして、多重分離部52(図9)は、MPEGストリームから分離する音声ストリームを、第1音声ストリームから第2音声ストリームに変更して、メモリ部53の音声バッファ53Aに供給する。
すなわち、多重分離部52は、MPEGストリームから分離した第2音声ストリームのうちの、音声バッファ53Aのバッファフラッシュを行ったときに、音声バッファ53Aに記憶されていた最新のSD第1音声#n+1の次の順番のSD第2音声#n+2から、音声バッファ53Aへの供給を開始する。
したがって、音声バッファ53Aのバッファフラッシュの直後、音声バッファ53Aには、図13右の上から3番目に示すように、SD第2音声#n+2及び#n+3が記憶される。
そして、音声バッファ53Aに記憶されたSD第2音声#n+2は、画像バッファ53Vに記憶されている、SD第2音声#n+2が付随するSD画像#n+2の出力(表示)とAV同期がとれるタイミングで読み出され、後段のデコーダ部54に供給される。
したがって、音声バッファ53Aから、SD第1音声#nが読み出されるときに、ユーザが、音声の出力を、SD第1音声からSD第2音声に切り換えるように操作を行うと、画像バッファ53Vのバッファフラッシュは行われないので、SD画像は、連続して出力されるが、音声バッファ53Aのバッファフラッシュが行われるため、そのバッファフラッシュ時に、画像バッファ53Vに記憶されていたSD画像#n及び#n+1に付随するSD音声(SD第1音声)#n及び#n+1は破棄され、その結果、SD画像#n及び#n+1の出力時には、無音となる。すなわち、僅かな時間だけ、無音の時間が生じる。
そして、バッファフラッシュ後に音声バッファ53Aに記憶された最も古いSD第2音声#n+2が付随するSD画像#n+2の出力時から、SD音声(SD第2音声#n+2)の出力が再開される。
次に、図14は、多重分離部52からメモリ部53に供給される画像ストリーム及び音声ストリームが、例えば、HDコンテンツの画像ストリーム及び音声ストリームである場合の、画像バッファ53V、及び音声バッファ53Aの記憶内容を示している。
すなわち、図14左は、HD画像に適切なバッファサイズに制御された画像バッファ53VのHD画像の記憶内容を示している。
図14左において、HDコンテンツに適切なバッファサイズは、サイズVHとなっており、バッファサイズVHの画像バッファ53Vは、例えば、2ピクチャ(ないし3ピクチャ)分のHD画像を記憶することができるようになっている。
いま、図14左の上から1番目に示すように、バッファサイズVHの画像バッファ53Vに、n番目のHD画像#nと、n+1番目のHD画像#n+1が記憶されている場合、画像バッファ53Vに記憶されている最も古いn番目のHD画像#nのデコードのタイミングとなると、n番目のHD画像#nは、画像バッファ53Vから読み出され、後段のデコーダ部54に供給される。
また、図14左の上から2番目に示すように、前段の多重分離部52から、画像バッファ53Vに記憶されている最新の、n+1番目のHD画像#n+1の次の、n+2番目のHD画像#n+2が、画像バッファ53Vに供給されて記憶される。
そして、画像バッファ53Vに記憶されている最も古いn+1番目のHD画像#n+1のデコードのタイミングとなると、n+1番目のHD画像#n+1は、画像バッファ53Vから読み出され、後段のデコーダ部54に供給される。
また、図14左の上から3番目に示すように、前段の多重分離部52から、画像バッファ53Vに記憶されている最新の、n+2番目のHD画像#n+2の次の、n+3番目のHD画像n+3が、画像バッファ53Vに供給されて記憶される。
以下、同様に、画像バッファ53Vに対するHD画像の読み書きが行われる。
一方、図14右は、HD画像に付随するHD音声に適切なバッファサイズに制御された音声バッファ53AのHD音声の記憶内容を示している。
図14右において、HD音声に適切なバッファサイズは、サイズVH'となっており、バッファサイズVH'の音声バッファ53Aは、例えば、2ピクチャ(ないし3ピクチャ)分のHD画像に付随するHD音声を記憶することができるようになっている。
すなわち、画像バッファ53Vと音声バッファ53Aとには、対応する画像と音声とがそれぞれ記憶されるようになっており、したがって、画像バッファ53Vにおいて、図14左の上から1番目に示したように、n番目のHD画像#nと、n+1番目のHD画像#n+1が記憶されている場合には、音声バッファ53Aには、図14右の上から1番目に示すように、n番目のHD画像#nに付随するHD音声#nと、n+1番目のHD画像#n+1に付随するHD音声#n+1が記憶される。
ここで、外部入力部51から多重分離部52に供給されるMPEGストリームが、例えば、図5に示したように、1つの画像ストリームと、2種類の音声ストリームである第1音声ストリーム及び第2音声ストリームとを含むMPEGストリームであり、第1音声ストリームと第2音声ストリームのうちの、例えば、第1音声ストリームを出力することが選択されている場合には、多重分離部52(図9)は、音声ストリームについては、MPEGストリームから、第1音声ストリームを分離して、メモリ部53の音声バッファ53Aに供給する。
したがって、第1音声ストリームに含まれるHD音声を、HD第1音声というとともに、第2音声ストリームに含まれるHD音声を、HD第2音声ということとすると、いまの場合、メモリ部53の音声バッファ53Aには、n番目のHD画像#nに付随するHD第1音声#nと、n+1番目のHD画像#n+1に付随するHD第1音声#n+1が記憶される。
音声バッファ53Aに記憶されたHD音声は、そのHD音声が付随する、画像バッファ53Vに記憶されたHD画像とAV同期をとることができるタイミングで、音声バッファ53Aから読み出され、後段のデコーダ部54に供給される。
上述したように、音声バッファ53Aには、画像バッファ53Vに記憶される画像に対応する音声が記憶されるから、図14左で説明したように、HD画像#nが、画像バッファ53Vから読み出され、さらに、前段の多重分離部52から、n+2番目のHD画像#n+2が、画像バッファ53Vに供給されて記憶されるときに(近いタイミングで)、音声バッファ53Aから、HD画像#nに付随するHD第1音声#nが読み出され、前段の多重分離部52から、n+2番目のHD画像#n+2に付随するHD第2音声#n+2が、音声バッファ53Aに供給されて記憶される。
しかしながら、音声バッファ53Aから、HD第1音声#nが読み出されるときに、ユーザが、音声の出力を、HD第1音声からHD第2音声に切り換えるように操作を行うと、音声バッファ53Aのバッファフラッシュが行われ、図14右の上から2番目に示すように、音声バッファ53Aに記憶されているHD第1音声#n及び#n+1が破棄される。
そして、多重分離部52(図9)は、MPEGストリームから分離する音声ストリームを、第1音声ストリームから第2音声ストリームに変更して、メモリ部53の音声バッファ53Aに供給する。
すなわち、多重分離部52は、MPEGストリームから分離した第2音声ストリームのうちの、音声バッファ53Aのバッファフラッシュを行ったときに、音声バッファ53Aに記憶されていた最新のHD第1音声#n+1の次の順番のHD第2音声#n+2から、音声バッファ53Aへの供給を開始する。
したがって、音声バッファ53Aのバッファフラッシュの直後、音声バッファ53Aには、図14右の上から3番目に示すように、HD第2音声#n+2及び#n+3が記憶される。
そして、音声バッファ53Aに記憶されたHD第2音声#n+2は、画像バッファ53Vに記憶されている、HD第2音声#n+2が付随するHD画像#n+2の出力(表示)とAV同期がとれるタイミングで読み出され、後段のデコーダ部54に供給される。
したがって、音声バッファ53Aから、HD第1音声#nが読み出されるときに、ユーザが、音声の出力を、HD第1音声からHD第2音声に切り換えるように操作を行うと、画像バッファ53Vのバッファフラッシュは行われないので、HD画像は、連続して出力されるが、音声バッファ53Aのバッファフラッシュが行われるため、そのバッファフラッシュ時に、画像バッファ53Vに記憶されていたHD画像#n及び#n+1に付随するHD音声(HD第1音声)#n及び#n+1は破棄され、その結果、HD画像#n及び#n+1の出力時には、無音となる。すなわち、僅かな時間だけ、無音の時間が生じる。
そして、バッファフラッシュ後に音声バッファ53Aに記憶された最も古いHD第2音声#n+2が付随するHD画像#n+2の出力時から、HD音声(HD第2音声#n+2)の出力が再開される。
以上のように、画像バッファ53Vと音声バッファ53Aそれぞれのバッファサイズが、多重分離部52から供給される音声ストリームを一時記憶するのに適切なバッファサイズに、ダイナミックに変更されることにより、画像バッファ53Vと音声バッファ53Aに相当するバッファそれぞれを複数設けずに、すなわち、TVのコストが大になることを防止しつつ、画像バッファ53Vと音声バッファ53Aとのうちの一方の音声バッファ53Aのバッファフラッシュ時に、無音の時間が長時間続くことを防止することができる。
なお、同様に、画像バッファ53Vと音声バッファ53Aとのうちの他方の画像バッファ53Vのバッファフラッシュ時においても、無画の時間が長時間続くことを防止することができる。すなわち、例えば、MPEGストリームに、画像ストリームとして、第1の種類の画像ストリームと、第2の種類の画像ストリームとが含まれ、ユーザの操作等に応じて、画像の出力を、第1又は第2の種類の画像ストリームのうちの一方から他方に切り換える場合には、画像バッファ53Vのバッファフラッシュを行う必要があるが、この画像バッファ53Vのバッファフラッシュ時にも、無画の時間が長時間続くことを防止することができる。
次に、制御部56は、上述したように、画像バッファ53Vと音声バッファ53Aそれぞれのバッファサイズを、多重分離部52から供給されるESを一時記憶するのに適切なバッファサイズに、ダイナミックに制御するが、この、制御部56によるバッファサイズの制御では、例えば、ハードウェアであるメモリの記憶領域から、画像バッファ53Vと音声バッファ53Aとして確保する記憶領域のサイズそれぞれを変更することにより、画像バッファ53Vと音声バッファ53Aのバッファサイズそれぞれを、実際に変更する他、画像バッファ53Vと音声バッファ53Aとして確保するメモリの記憶領域のサイズは変更せずに、画像バッファ53Vと音声バッファ53Aのオーバーフローを防止するための閾値(以下、適宜、オーバーフロー閾値という)それぞれを制御することにより、画像バッファ53Vと音声バッファ53Aのバッファサイズそれぞれを、いわば、実質的に(仮想的に)変更することができる。
すなわち、図15は、オーバーフロー閾値を制御することにより、画像バッファ53Vのバッファサイズが実質的に変更されることを説明する図である。
図15左から1番目は、固定のバッファサイズVの画像バッファ53Vを示している。
いま、バッファサイズVの所定の割合の値Vthを、バッファサイズVの画像バッファ53Vのオーバーフローを防止するための閾値(オーバーフロー閾値)THとして採用することとすると、可能であれば、画像デコーダ54Vは、画像バッファ53Vに記憶されるデータのデータ量(蓄積量)が、オーバーフロー閾値THである値Vthを越えないように、画像バッファ53Vからのデータの読み出しを行う。さらに、可能であれば、多重分離部52は、画像バッファ53Vの蓄積量が、オーバーフロー閾値THである値Vthを越えないように、画像バッファ53Vへのデータの書き込みを行う。
この場合、制御部56(図10)のバッファサイズ設定部61において、例えば、SD画像を記憶するのに適切な画像バッファ53VのバッファサイズVSや、HD画像を記憶するのに適切な画像バッファ53VのバッファサイズVHを設定した後、バッファ制御部62において、画像バッファ53Vのオーバーフロー閾値THを、適切なバッファサイズVSやVHに対応する値としての、例えば、適切なバッファサイズVSやVHの所定の割合の値に設定することにより、画像バッファ53Vのバッファサイズを、実質的に、適切なバッファサイズVSやVHに制御することができる。
すなわち、図15左から2番目は、オーバーフロー閾値THが、HD画像に適切なバッファサイズVHに対応する値VHTに設定された画像バッファ53Vを示している。
この場合、可能であれば、画像デコーダ54Vでは、画像バッファ53Vの蓄積量が、オーバーフロー閾値THである値VHTを越えないように、画像バッファ53Vからのデータの読み出しが行われ、さらに、可能であれば、多重分離部52において、画像バッファ53Vの蓄積量が、オーバーフロー閾値THである値VHTを越えないように、画像バッファ53Vへのデータの書き込みが行われる。その結果、画像バッファ53Vのバッファサイズは、実質的に、HD画像に適切なバッファサイズVHとなる。
図15左から3番目(右から1番目)は、オーバーフロー閾値THが、SD画像に適切なバッファサイズVSに対応する値VSTに設定された画像バッファ53Vを示している。
この場合、可能であれば、画像デコーダ54Vでは、画像バッファ53Vの蓄積量が、オーバーフロー閾値THである値VSTを越えないように、画像バッファ53Vからのデータの読み出しが行われ、さらに、可能であれば、多重分離部52において、画像バッファ53Vの蓄積量が、オーバーフロー閾値THである値VSTを越えないように、画像バッファ53Vへのデータの書き込みが行われる。その結果、画像バッファ53Vのバッファサイズは、実質的に、SD画像に適切なバッファサイズVSとなる。
音声バッファ53Aについても、画像バッファ53Vと同様に、オーバーフロー閾値を設定することで、そのバッファサイズを実質的に制御することができる。
なお、画像バッファ53Vにおいて(音声バッファ53Aについても同様)、蓄積量が、オーバーフロー閾値THを越え、オーバーフロー状態となった場合には、例えば、バッファフラッシュを行って、オーバーフロー状態となっている画像バッファ53Vに記憶されているデータ(画像ストリーム)を破棄してから、多重分離部52から新たに供給される画像ストリームを記憶することができる。
但し、オーバーフロー閾値THが大きい値から小さい値に変更された直後において、画像バッファ53Vがオーバーフロー状態になった場合には、上述したようなオーバーフローを解消するためのデータの破棄は、制限される。
すなわち、図16は、オーバーフロー閾値THが大きい値から小さい値に変更されるときの画像バッファ53Vを示している。
図16左から1番目では、画像バッファ53Vには、n番目のHD画像#nと、n+1番目のHD画像#n+1とが記憶されており、また、画像バッファ53Vの蓄積量は、HD画像についてのオーバーフロー閾値VHT以下になっている。
画像バッファ53Vに記憶されているHD画像#n及び#n+1は、順次読み出され、後段のデコーダ部54に供給される。
いま、n+1番目のHD画像#n+1の次の画像以降がSD画像となっていることとすると、多重分離部52から画像バッファ53Vには、n+2番目の画像として、SD画像#n+2が供給され、n+3番目の画像として、SD画像#n+3が供給される。以下、同様に、多重分離部52から画像バッファ53Vには、SD画像が供給される。
また、多重分離部52から画像バッファ53VにSD画像の供給が開始されると、画像バッファ53Vのオーバーフロー閾値THは、HD画像についてのオーバーフロー閾値VHTから、SD画像についてのオーバーフロー閾値VSTに変更される。
図16左から2番目は、多重分離部52から画像バッファ53VへのSD画像の供給が開始され、n+1番目のHD画像#n+1と、n+2番目のSD画像#n+2、及びn+3番目のSD画像#n+3とが記憶されている状態の画像バッファ53Vを示している。
図16左から2番目では、上述したように、画像バッファ53Vのオーバーフロー閾値THが、大きい値の、HD画像についてのオーバーフロー閾値VHTから、小さい値の、SD画像についてのオーバーフロー閾値VSTに変更されているため、HD画像#n+1、並びに、SD画像#n+2及び#n+3が記憶されている画像バッファ53Vは、蓄積量がオーバーフロー閾値VSTを越えて、オーバーフロー状態になっている。
この場合、オーバーフロー状態の画像バッファ53Vに記憶されているHD画像#n+1、並びに、SD画像#n+2及び#n+3が破棄されてしまうと、画像が途切れることになる。
そこで、オーバーフロー閾値THが大きい値から小さい値に変更された直後において、画像バッファ53Vがオーバーフロー状態になった場合には、オーバーフローを解消するためのデータの破棄は、制限される。
図16左から3番目(右から1番目)は、n+1番目のHD画像#n+1がデコーダ部54に読み出された直後の画像バッファ53Vを示している。
図16左から3番目では、図16左から2番目に示した状態の画像バッファ53Vから、HD画像#n+1が読み出され、SD画像#n+2及び#n+3だけが記憶された状態になっており、その結果、蓄積量が、オーバーフロー閾値VST以下となって、オーバーフロー状態が解消している。
画像バッファ53Vのオーバーフロー閾値THが、大きい値の、HD画像についてのオーバーフロー閾値VHTから、小さい値の、SD画像についてのオーバーフロー閾値VSTに変更され、画像バッファ53Vがオーバーフロー状態になった場合には、上述のように、画像バッファ53Vからの画像の読み出しが行われ、これにより、画像バッファ53Vの蓄積量が、SD画像についてのオーバーフロー閾値VST以下となって、画像バッファ53Vのオーバーフロー状態が解消するまでは、オーバーフローを解消するためのデータの破棄は制限される。
そして、画像バッファ53Vの蓄積量が、SD画像についてのオーバーフロー閾値VST以下となって、画像バッファ53Vのオーバーフロー状態が解消した後は、可能であれば、画像デコーダ54Vでは、画像バッファ53Vの蓄積量が、SD画像についてのオーバーフロー閾値VSTを越えないように、画像バッファ53Vからのデータの読み出しが行われ、さらに、可能であれば、多重分離部52において、画像バッファ53Vの蓄積量が、SD画像についてのオーバーフロー閾値VSTを越えないように、画像バッファ53Vへのデータの書き込みが行われる。
なお、画像バッファ53Vは、例えば、リングバッファで構成することができる。
すなわち、図17は、リングバッファを用いた画像バッファ53Vの構成例を模式的に示している。
図17上において、円周は、リングバッファとしての画像バッファ53Vの記憶領域を表している。
また、図17上において、円周上の四角形(□)で示す読み出しポイントRPは、画像バッファ53Vからのデータの読み出し位置(アドレス)を表し、円周上の三角形(△)で示す書き込みポイントWPは、画像バッファ53Vへのデータの書き込み位置(アドレス)を表す。
いま、読み出しポイントRP、及び書き込みポイントWPが、図17上の円周上を、時計回りに回転し、読み出しポイントRPの位置からデータが読み出され、書き込みポイントWPの位置にデータが書き込まれることとすると、読み出しポイントRPと、書き込みポイントWPとは、互いに、一方が他方を追い越さないように制御される。
さらに、読み出しポイントRPから、時計回りに、書き込みポイントWPまでのデータ量Vcが、画像バッファ53Vの蓄積量であり、この蓄積量が、オーバーフロー閾値THを越えないように、画像バッファ53Vからのデータ読み出しや、画像バッファ53Vへのデータの書き込みが制御される。
なお、画像バッファ53Vに記憶されているデータの破棄(画像バッファ53Vのバッファフラッシュ)は、例えば、図17下に示すように、読み出しポイントRPを、書き込みポイントWPの位置に移動すること等の、書き込みポイントWPと、読み出しポイントRPとの位置を一致させることによって行うことができる。
次に、画像バッファ53V、及び音声バッファ53Aのバッファサイズと、制御部56による、画像バッファ53V、及び音声バッファ53Aのバッファサイズの制御とについて、さらに説明する。
画像バッファ53V及び音声バッファ53Aの最大のバッファサイズは、TVで処理をすることを想定している画像及び音声のうちの、最もデータ量が大の画像及び音声のデータ量に基づいて決定される。
現在行われているディジタル放送の画像及び音声が、最もデータ量が大の画像及び音声であるとすると、本件発明者の経験によれば、画像バッファ53Vのバッファサイズとしては、1.5MB(Mega Byte)を採用し、音声バッファ53Aのバッファサイズとしては、128KB(Kilo Byte)を採用することが望ましい。
なお、0xに続く値が16進数を表し、1KBが1024B(Byte)であり、1MBが1024KBであるとすると、1.5MBは、16進数で、0x180000Bと表すことができ、128KBは、16進数で、0x20000Bと表すことができる。
いま、画像バッファ53V及び音声バッファ53Aのバッファサイズそのものを変更せずに、図15で説明したように、オーバーフロー閾値を制御することにより、画像バッファ53V及び音声バッファ53Aのバッファサイズを、実質的に変更することとすると、制御部56において、オーバーフロー閾値は、シーケンスヘッダ等の情報から計算により求めることもできるし、あらかじめ作成された、シーケンスヘッダ等の情報とオーバーフロー閾値とが対応付けられたテーブルを参照することにより求めることもできる。
制御部56は、シーケンスヘッダ等に基づき、画像バッファ53V及び音声バッファ53Aのオーバーフロー閾値として、以下のような値を設定する。
すなわち、例えば、シーケンスヘッダにおける画サイズ、つまり、シーケンスヘッダ(Sequence_Header)におけるhorizontal_size_valueとvertical_size_valueとから把握される画像の横×縦の画素数が、1920×1080画素以上である場合(画サイズが、いわゆるFull-HDサイズ以上のサイズである場合)、画像バッファ53Vのオーバーフロー閾値は、例えば、約1.2MB(=0x130000B)に設定される。
さらに、例えば、シーケンスヘッダにおける画サイズが、352×240画素以下であり、かつ、計算上64KB以下である場合、画像バッファ53Vのオーバーフロー閾値は、例えば、約64KB(=0x10000B)に設定される。
また、例えば、シーケンスヘッダにおける、音声データのサンプリング周波数が、48kHzであり、ビットレートが、192kbpsであり、コーデック(Codec)がAAC(Advanced Audio Coding)である場合、音声バッファ53Aのオーバーフロー閾値は、例えば、約123KB(=0x1ec00B)に設定される。
次に、制御部56において、再生対象(TVで処理する対象)の画像に適した画像バッファ53Vのバッファサイズは、シーケンスヘッダ、さらには、その他の必要な情報に基づき、例えば、以下のようにして求めることができる。
すなわち、いま、再生対象のMPEGストリームが、例えば、プル型のストリームであり、ファイルに格納されていることとする。
また、再生対象のMPEGストリームが格納されたファイルを選択するときに、サーバやInfoファイル等から取得することができるフォーマット情報を、Aと表す。さらに、MPEGストリームのシーケンスヘッダやピクチャヘッダから取得することができる情報として、画サイズ、ビットレート、VBVバッファサイズ(VBV_Buffer_Size)、プロファイル(Profile)、レベル(Level)、及び画像のコーデックがMPEG1かどうかを表す情報(以下、適宜、MPEG1フラグという)があり、画サイズをBと、ビットレートをCと、VBVバッファサイズをDと、プロファイル及びレベルをEと、MPEG1フラグをFと、それぞれ表す。
ここで、MPEG1フラグFは、full_pel_forward_vector値等の複数の値より、画像のコーデックがMPEG1であるかどうかが判別されて設定される。
また、MPEG2のプロファイルによって決まるVBVバッファの最大のサイズ(最大VBVサイズ)をGと表し、画像バッファ53Vにデータを記憶しておくことができる時間(許容時間)をH[ミリ秒]と表す。
ここで、許容時間Hは、経験則で決定される。
制御部56は、フォーマット情報A、プロファイル及びレベルE、並びに、MPEG1フラグFにより、プロファイルやフォーマットの一致などを確認し、プロファイル毎に割り当てた「テーブル」を選択する。
なお、プロファイルが不一致であった場合に「テーブル」として何を選ぶかは、過去の傾向等より導き出されている。また、MPEG1ではプロファイルは規定されていないが、経験則より、仮想プロファイルを割り当てる。この時選んだプロファイルを、Iと表す。
次に、制御部56は、画サイズBに基づき、テーブル内から画サイズ適正バッファサイズJを選択する。なお、「テーブル」は、MPEG規格、及び、経験則より事前に作成されている。
その後、制御部56は、ビットレートC及び許容時間Hより期待するバッファ量tmp1を、例えば、式tmp1=C×Hにより導く。
そして、制御部56は、得られたビットレートCが正しいとは限らないため、バッファ量tmp1を補正し、新たなバッファ量tmp1'を求める。
すなわち、制御部56は、バッファ量tmp1がプロファイルIで規定されている最大VBVサイズGよりも大きい場合には、新たなバッファ量tmp1'を、最大VBVサイズGとする(tmp1'=G)。また、制御部56は、バッファ量tmp1がプロファイルIで規定されている最大VBVサイズGよりも大きくない場合には、バッファ量tmp1を、そのまま、新たなバッファ量tmp1'とする(tmp1'=tmp1=C×H)。
さらに、制御部56は、得られたビットレートCが正しいとは限らないため、VBVバッファサイズDを補正し、新たなVBVバッファサイズtmp2を求める。
すなわち、制御部56は、VBVバッファサイズDがプロファイルIで規定されている最大VBVサイズGよりも大きい場合には、新たな最大VBVバッファサイズtmp2を、最大VBVサイズGとする(tmp2=G)。また、制御部56は、VBVバッファサイズDがプロファイルIで規定されている最大VBVサイズGよりも大きくない場合には、VBVバッファサイズDを、そのまま、新たなVBVバッファサイズtmp2とする(tmp2=D)。
そして、制御部56は、再生対象の画像に適した画像バッファ53Vのバッファサイズtmpを、例えば、式tmp=(α×J+β×tmp1'+γ×tmp2)/3に従って求める。
ここで、係数α,β、及びγは、経験則によりあらかじめ求められた重み係数である。
なお、バッファサイズtmpが小さすぎる値の場合は、TVが正しく動作しない可能性があるので、制御部56は、バッファサイズtmpが、あらかじめ決められた最小値MINより小さい場合には、バッファサイズtmpを、最小値MINに補正する(tmp=MIN)。
ここで、最小値MINは、MPEG2プロファイルで規定されている値よりなどから決まる。なお、MPEG1ではプロファイルがないので、最小値MINとしては、非常に小さい値が算出される可能性がある。また、最小値MINは、実際には、TVで使用するIC(Integrated Circuit)の制約などを考慮して決められる。
次に、制御部56において、再生対象の音声に適した音声バッファ53Aのバッファサイズは、MPEGストリームに含まれる各種のヘッダ、さらには、その他に必要な情報に基づき、例えば、以下のようにして求めることができる。
すなわち、いま、再生対象のMPEGストリームが、例えば、プル型のストリームであり、ファイルに格納されていることとする。
また、再生対象のMPEGストリームが格納されたファイルを選択するときに、サーバやInfoファイル等から取得することができるコーデックの情報(コーデック情報)を、Aと表す。
さらに、MPEGストリームのヘッダから取得することができる情報として、コーデック情報、ビットレート、及びサンプリング周波数があり、そのコーデック情報をBと、ビットレートをCと、サンプリング周波数をDと、それぞれ表す。
また、音声バッファ53Aにデータを記憶しておくことができる時間(許容時間)をE[ミリ秒]と表す。
ここで、許容時間Eは、経験則で決定される。
制御部56は、コーデック情報A及びBから、コーデックの一致を確認し、コーデック毎に割り当てた基準バッファ量Kを選択する。
なお、制御部56は、基準バッファ量Kについては、内部でテーブル化していて、一致するものを選択する。また、コーデックが不一致であった場合に、基準バッファ量Kとして何を選ぶかも、過去の傾向等より導き出されており、テーブルから選択することができる。
次に、制御部56は、サンプリング周波数Dより割合係数αを求める。
そして、制御部56は、再生対象の音声に適した音声バッファ53Aのバッファサイズtmpを、例えば、式tmp=α×C×Kに従って求める。
なお、MPEGストリームのヘッダから取得することができる情報が間違っている可能性もあるので、制御部56は、バッファサイズtmpが、あらかじめ決められた最小値MINより小さい場合には、バッファサイズtmpを、最小値MINに補正し(tmp=MIN)、バッファサイズtmpが、あらかじめ決められた最大値MAXより大きい場合には、バッファサイズtmpを、最大値MAXに補正する(tmp=MAX)。
ここで、最大値MAXは、例えば、メモリサイズ、及び、コーデック情報より決められる。また、最小値MINは、例えば、コーデック情報より算出可能な、デコードするのに必要な最小サンプルや、TVに使用するICの制約などを考慮して決められる。
なお、例えば、ディジタル放送等で放送されるプッシュ型のMPEGストリームを処理するTV等の装置には、そのプッシュ型のMPEGストリームをデコードするデコーダと、プッシュ型のMPEGストリームを一時記憶するメモリ領域とを用いて、ディジタルスチルカメラや、HDのディジタルビデオカメラ(HD-CAM)等で撮影した動画のMPEGストリーム、その他の、スゴ録(商標)等のレコーダやVaio(商標)等のPC等のDLNA(Digital Living Network Alliance)サーバとして機能する、プル型のMPEGストリームを出力する装置からの、そのプル型のMPEGストリームを処理することが要請されている。
これは、プッシュ型のMPEGストリームを処理するデコーダ及びメモリ領域とは別に、プル型のMPEGストリームを処理するデコーダ及びメモリ領域を設けると、コストや、基板面積、消費電力が増大するからである。
しかしながら、プッシュ型のMPEGストリームを処理するデコーダ及びメモリ領域を用いて、プル型のMPEGストリームを処理する場合において、MPEGストリームに、複数種類の画像(例えば、SD画像とHD画像等)のエレメンタリストリームや、複数種類の音声(例えば、日本語の音声と英語の音声等)のエレメンタリストリーム、複数種類の字幕(例えば、日本語の字幕と英語の字幕等)のエレメンタリストリームが含まれるときに、出力する画像等を、ある種類の画像等から他の種類の画像等に切り換える操作、すなわち、例えば、DVDの再生中に、音声を日本語から英語に切り換える操作等がされると、その切り換えのために、エレメンタリストリームを記憶するメモリ領域としてのES(Elementary Stream)バッファのバッファフラッシュをする必要がある。
そして、ESバッファのバッファフラッシュが行われると、前述の図7で説明したように、ESバッファのバッファサイズによっては、切り換え後の画像等の出力が開始されるまでに長時間を要し、ユーザに不快感を与えることになる。
そこで、プッシュ型のMPEGストリームを処理するデコーダ及びメモリ領域を用いて、プル型のMPEGストリームを処理する場合には、ESバッファ(例えば、図10の画像バッファ53V及び音声バッファ53A)のバッファサイズ(ESバッファのオーバーフロー閾値)を、プッシュ型のMPEGストリームを処理するときと、プル型のMPEGストリームを処理するときとで変更し、これにより、例えば、DVDから再生されたMPEGストリーム等のプル型のMPEGストリームの処理中において、出力する画像等の切り換えのために、バッファフラッシュが行われたときに、切り換え後の画像等の出力が開始されるまでの時間を短くすることができる。
すなわち、プル型のMPEGストリームを処理するときに、プッシュ型のMPEGストリームを処理するときよりも、ESバッファのバッファサイズを小さくすることで、バッファフラッシュ時に破棄される画像等のデータ量が少なくなり、その結果、切り換え後の画像等の出力が開始されるまでの時間を短くすることができる。
なお、図9のTVにおいて、ファイルに格納されたMPEGストリームを再生対象とする場合には、その再生対象とするMPEGストリームが格納されたファイルを選択するときに、各種ファイルの情報を認識することができることが多い(Infoファイルや、サーバより情報を取得することができる)ので、その情報に基づいて、ESバッファとしての画像バッファ53Vや音声バッファ53Aのバッファサイズ(オーバーフロー閾値)を変更することができる。
例えば、ファイルに格納された再生対象のMPEGストリームが、MPEG2-TSであることが認識された場合には、MPEG-TSは、HD-CAMで撮影されたコンテンツのストリームや、ディジタル放送で放送されたコンテンツのストリームである可能性が高いので、HDコンテンツであることが多い。そこで、再生対象のMPEGストリームが、MPEG2-TSである場合には、TVでは、画像バッファ53Vのバッファサイズを、HDコンテンツに適した大きい値の、例えば、約1.2MBに変更することができる。
また、例えば、ファイルに格納された再生対象のMPEGストリームが、MPEG2-PS(Program Stream)であることが認識された場合には、そのMPEGストリームは、DVDに記録されたコンテンツのストリーム等の、SDコンテンツのストリームである可能性が高い。そこで、TVでは、再生対象のMPEGストリームが、MPEG2-PSである場合には、画像バッファ53Vのバッファサイズを、SDコンテンツに適した小さな値の、例えば、約256KBに変更することができる。
さらに、例えば、ファイルに格納された再生対象のMPEGストリームが、MPEG1システムストリームであることが認識された場合には、そのMPEGストリームについては、最大で、SDコンテンツのMPEG2-PSを処理するときと同様のバッファサイズが必要となる可能性がある。そこで、TVでは、再生対象のMPEGストリームが、MPEG1システムストリームである場合には、画像バッファ53Vのバッファサイズを、例えば、上述した、SDコンテンツに適した約256KBに変更することができる。
また、図9のTVでは、多重分離部52から音声バッファ53Aに供給される音声ストリームのコーデックに基づいて、音声バッファ53Aのバッファサイズを変更することができる。
例えば、音声ストリームのコーデックが、AACである場合には、約128KBに、MPEG-Audioである場合には、約32KBに、LPCM(Linear Pulse-Code Modulation)である場合には、約64KBに、AC3(Audio Code number 3)である場合には、約64KBに、それぞれ、音声バッファ53Aのバッファサイズを変更することができる。
なお、再生対象とするMPEGストリームが格納されたファイルを選択するときに認識することができる情報にのみ基づき、画像バッファ53V及び音声バッファ53Aのバッファサイズを制御する場合には、ファイルの途中で、コーデックや、画サイズ、HD/SDが変更されているMPEGストリームに対応することが困難となる。
そこで、再生対象とするMPEGストリームに含まれるシーケンスヘッダ等のヘッダにも基づいて、画像バッファ53V及び音声バッファ53Aのバッファサイズを、ダイナミックに制御することにより、コーデック等が途中で変更されているMPEGストリームに対して、画像バッファ53V及び音声バッファ53Aのバッファサイズを適切なバッファサイズに変更することができる。
以上のように、図9のTVでは、MPEGストリームから、必要なESを分離して一時記憶し、デコードする処理を行っている最中に得られるシーケンスヘッダ等に含まれるプロファイル情報や、画サイズ、VBVバッファサイズ、ビットレート等に基づいて、画像バッファ53Vのバッファサイズを、ダイナミックに制御することにより、画像バッファ53V又は音声バッファ53Aのうちの一方のバッファフラッシュが行われた場合に、無画又は無音の時間を短くして、迅速に、AV同期がとれた画像と音声の出力を行うことができる。
さらに、図9のTVでは、画像ストリームを記憶するESバッファとして、1つの画像バッファ53Vだけが設けられているので、例えば、SD画像の画像ストリームを記憶するESバッファと、HD画像の画像ストリームを記憶するESバッファといったように、画像の種類ごとにESバッファを設ける場合に比較して、コストを削減することができる。
また、図9のTVにおいて、多重分離部52、メモリ部53、デコーダ部54、外部出力部55、及び制御部56を、ストリーム処理部ということとすると、図9のTVでは、例えば、HDコンテンツとSDコンテンツとを、単一のストリーム処理部で処理することができるので、HDコンテンツを処理するストリーム処理部と、SDコンテンツを処理するストリーム処理部とを別に設ける場合に比較して、メモリやCPU等の削減が可能となり、その結果、コストを削減することができる。
さらに、基板面積の縮小が可能となり、装置の小型化を図ることができる。
また、消費電力の削減を図ることができる。
さらに、例えば、HDコンテンツとSDコンテンツとが入り混じるMPEGストリームの再生をスムーズに行うことが可能となり、ユーザに不快感を与えることを防止することができる。
また、MPEGストリームに、音声ストリームとして、第1及び第2の種類の音声ストリームが含まれる場合において、ユーザの操作に応じて、出力する音声を、第1又は第2の種類の音声ストリームのうちの一方の音声ストリームから、他方の音声ストリームに切り換えるときに、音声バッファ53Aのバッファフラッシュによって生じる無音の時間、及び、AV同期があった画像と音声の出力が開始されるまでの時間を短縮することができる。同様に、MPEGストリームに、画像ストリームとして、第1及び第2の種類の画像ストリームが含まれる場合において、ユーザの操作に応じて、出力する画像を、第1又は第2の種類の画像ストリームのうちの一方の画像ストリームから、他方の画像ストリームに切り換えるときに、画像バッファ53Vのバッファフラッシュによって生じる無画の時間、及び、AV同期があった画像と音声の出力が開始されるまでの時間を短縮することができる。
その結果、無音の時間や、無画の時間、AV同期があった画像と音声の出力が開始されるまでの時間が長時間となることによって、ユーザに不快感を与えることを防止することができる。
なお、音声バッファ53Aについては、多重分離部52から音声バッファ53Aに供給される音声ストリームのコーデック(符号化の方法(方式))に基づき、そのコーデックの音声ストリームに適したバッファサイズに、音声バッファ53Aのバッファサイズを制御することができる。
そして、画像バッファ53V及び音声バッファ53Aのバッファサイズの両方を、適切なバッファサイズに制御することにより、画像バッファ53V及び音声バッファ53Aの両方のバッファフラッシュが行われた場合に、AV同期があった画像と音声の出力が開始されるまでの時間を短縮することができ、AV同期があった画像と音声の出力が開始されるまでの時間が長時間となることによって、ユーザに不快感を与えることを防止することができる。
さらに、例えば、ディジタル放送等で放送されてくるMPEGストリーム等の、プッシュ型のMPEGストリームと、ディジタルカメラで撮影された動画のMPEGストリーム等の、プル型のMPEGストリームとを、単一のストリーム処理部で処理することができ、コストを削減することができる。
以上、本発明を、TVに適用した場合について説明したが、本発明は、その他、例えば、コンテンツを再生するプレーヤ等に適用可能である。
また、処理の対象とするビットストリームは、MPEGストリームに限定されるものではない。さらに、メモリ部53には、画像及び音声以外のメディアのES(例えば、字幕のES等)を記憶するESバッファをさらに設け、TVでは、そのESバッファのバッファサイズを、画像バッファ53V及び音声バッファ53Aと同様に、適切なバッファサイズに制御することができる。
ここで、本明細書において、コンピュータ(例えば、図9のCPU57)に各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
51 外部入力部, 52 多重分離部, 53 メモリ部, 53A 音声バッファ, 53V 画像バッファ, 54 デコーダ部, 54A 音声デコーダ, 54V 画像デコーダ, 55 外部出力部, 56 制御部, 57 CPU, 58 RAM, 59 EEPROM, 61 バッファサイズ設定部, 62 バッファ制御部