JPWO2012023248A1 - 3d符号化装置 - Google Patents

3d符号化装置 Download PDF

Info

Publication number
JPWO2012023248A1
JPWO2012023248A1 JP2011543946A JP2011543946A JPWO2012023248A1 JP WO2012023248 A1 JPWO2012023248 A1 JP WO2012023248A1 JP 2011543946 A JP2011543946 A JP 2011543946A JP 2011543946 A JP2011543946 A JP 2011543946A JP WO2012023248 A1 JPWO2012023248 A1 JP WO2012023248A1
Authority
JP
Japan
Prior art keywords
delay value
cpb
unit
stream
encoding
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.)
Granted
Application number
JP2011543946A
Other languages
English (en)
Other versions
JP4889836B1 (ja
Inventor
荒川 博
博 荒川
西 孝啓
孝啓 西
安倍 清史
清史 安倍
秀之 大古瀬
秀之 大古瀬
耕治 有村
耕治 有村
悠樹 丸山
悠樹 丸山
克紀 浦野
克紀 浦野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2011543946A priority Critical patent/JP4889836B1/ja
Application granted granted Critical
Publication of JP4889836B1 publication Critical patent/JP4889836B1/ja
Publication of JPWO2012023248A1 publication Critical patent/JPWO2012023248A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Abstract

3D符号化装置は、入力画像を符号化し、複数の画像群を含む基本ストリームおよび拡張ストリームを含む3次元ストリームを生成して出力する。3D符号化装置は、基本ストリームのDelay値である第1Delay値および3次元ストリームのDelay値である第2Delay値に基づいて、1画像群毎に特定のDelay値を設定する設定部を備える。設定部は、特定のDelay値として、第1Delay値と第2Delay値とのうち小さい方のDelay値以下の値を設定する。第1仮想バッファ部および第2仮想バッファ部は、基本ストリームおよび3次元ストリームにおけるn番目の画像群について設定部が設定した特定のDelay値に基づく情報を基に、n+1番目の画像群についてのバッファシミュレーションを行う。

Description

本発明は、3D映像信号を符号化する3D符号化装置に関する。
特許文献1には、符号化された複数のピクチャをランダムアクセス可能なアクセス単位ごとに含んで構成される1つ又は複数の符号化ストリームを生成する生成装置が記載されている。具体的には、その生成装置は、連続的に復号を行う何れか2つのアクセス単位において、復号順で先頭のピクチャが復号されてから表示順で先頭のピクチャが表示されるまでの遅延量が同一となるように、その遅延量を決定する第1の決定手段と、第1の決定手段において決定された遅延量となるように、前記2つのアクセス単位に含まれる複数のピクチャを符号化し、符号化ストリームを生成する生成手段と、を備える。この生成装置は、遅延量を予め定めた値以下に制限する。
この構成によれば、特殊再生の対象となる2つのアクセス単位(例えば、クリップ)の遅延量(フレーム遅延)が等しくなるように符号化ストリームが生成される。そのため、これらのアクセス単位が連続的に復号される際には、それらのアクセス単位の接続点でピクチャ間にギャップが生ずることなく、フレームレートが一定になる。つまり、特殊再生時においてこれらのアクセス単位がシームレス接続される。その結果、それらのアクセス単位に基づく動画像を見るユーザに対してギャップ等により生じる不快感をなくすことができる。
特開2008−301532号公報
ところで、入力画像を基本ストリームおよび拡張ストリームを含む3次元ストリームに符号化する規格として、H.264/MVC符号化規格がある。例えば、基本ストリームは、3D映像における左目用画像及び右目用画像のいずれか一方の画像を符号化したストリームであり、拡張ストリームは、3D映像における他方の画像について前記一方の画像との差分を考慮して符号化したストリームである。入力される入力画像を、基本ストリームおよび拡張ストリームを含む3次元ストリームに符号化する際、BD規格(System Description Blu-ray Disc Read-Only Format part 3 Audio Visual Basic Specifications)に記載される内容を満たす必要がある。具体的には、所定のGOP(Group Of pictures)に付加される基本ストリームのDelay値と、このGOPに付加される3次元ストリームのDelay値は同一としなければならない。また、所定のGOPに付加される基本ストリームのDelay値と、このGOPに付加される3次元ストリームのDelay値と、このGOPに付加される拡張ストリームのDelay値は同一でなければならない。
ここで、Delay値とは、デコーダのバッファに最初のデータが到着してから、デコーダでの復号処理のため先頭ピクチャの符号をバッファから引き抜くまでの時間である。Delay値は、基本ストリームおよび拡張ストリームの符号量に依存する。そこで、基本ストリームおよび拡張ストリームのDelay値を同一とするために、入力画像の符号化時における量子化値を制御することが考えられる。
しかし、量子化値を制御する方法では、適切な画質を得ることが困難となる。また、基本ストリームと拡張ストリームの符号量を完全に同一にするよう量子化値を制御するためには、3D符号化装置の構成が複雑となる。
本発明は、上記の課題を考慮してなされたものであり、簡易な構成で、基本ストリームのDelay値と、3次元ストリームのDelay値を同一とすることができる3次元符号化装置を提供することを目的とする。また、簡易な構成で、基本ストリームと、3次元ストリームのDelay値と、拡張ストリームのDelay値を同一とすることができる3次元符号化装置を提供することを目的とする。
本発明の3D符号化装置は、入力画像を符号化し、複数の画像群を含む基本ストリームおよび拡張ストリームを含む3次元ストリームを生成して出力する符号化部と、符号化部から出力される基本ストリームを復号化する際のバッファシミュレーションを行う第1仮想バッファ部と、符号化部から出力される3次元ストリームを復号化する際のバッファシミュレーションを行う第2仮想バッファ部と、第1仮想バッファ部で行われたバッファシミュレーションの結果に基づいて、1画像群毎に基本ストリームのDelay値である第1Delay値を算出する第1算出部と、第2仮想バッファ部で行われたバッファシミュレーションの結果に基づいて、1画像群毎に3次元ストリームのDelay値である第2Delay値を算出する第2算出部と、算出された第1Delay値および第2Delay値に基づいて、1画像群毎に特定のDelay値を設定する設定部と、を備える。設定部は、特定のDelay値として、第1Delay値と第2Delay値とのうち小さい方のDelay値以下の値を設定する。第1仮想バッファ部および第2仮想バッファ部は、基本ストリームおよび3次元ストリームにおけるn番目の画像群について設定部が設定した特定のDelay値に基づく情報を基に、n+1番目の画像群についてのバッファシミュレーションを行う。
上記構成の3D符号化装置によれば、第1のDelay値と、第2のDelay値と、から特定のDelay値を設定することが出来る。そして、3D符号化装置は、設定した特定のDelay値を、基本ストリームを生成する際のバッファシミュレーション(以下、「第1BS」と称す。)と、3次元ストリームを生成する際のバッファシミュレーション(以下、「第2BS」と称す。)にフィードバックすることが出来る。よって、3D符号化装置は、同一のDelay値に基づく情報を基に、次の画像群についての第1BSおよび第2BSを行うことが出来る。また、簡単な構成で、第1のDelay値と、第2のDelay値とを同一とすることができる。
また、特定のDelay値は、第1のDelay値と第2のDelay値とのうち小さい方のDelay値以下の値であるので、第1BSおよび第2BSのDelay値を同一のDelay値に置き換えてバッファシミュレーションを行う場合でも、常に第1BSおよび第2BSを破綻させることなく、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
また好ましくは、第1仮想バッファ部および第2仮想バッファ部は、入力画像を符号化する際の時刻に関する情報をバッファシミュレーションの結果として第1算出部および第2算出部にそれぞれ出力する。
このようにすれば、3D符号化装置は、符号化する際の時刻に関する情報を基にDelay値を算出することができる。これにより、正確なDelay値を算出しバッファシミュレーションを行うことが出来るため、映像劣化を抑制しながらBD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
また好ましくは、第1仮想バッファ部は、当該第1仮想バッファ部におけるバッファ滞留量をバッファシミュレーションの結果として第1算出部に出力し、第2仮想バッファ部は、当該第2仮想バッファ部におけるバッファ滞留量をバッファシミュレーションの結果として第2算出部に出力する。
このようにすれば、3D符号化装置がバッファ滞留量を用いてバッファシミュレーションを行う場合であっても、基本ストリームに付加するDelay値と3次元ストリームに付加するDelay値とを同一の値にすることができる。これにより、簡易な構成でバッファシミュレーションをした場合であっても、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
また好ましくは、第1仮想バッファ部は、設定部が出力する特定のDelay値が入力された場合、当該特定のDelay値に基づく情報をもとに入力時点における当該第1仮想バッファ部のバッファ滞留量を補正し、n+1番目の画像群についてのバッファシミュレーションを行い、第2仮想バッファ部は、設定部が出力する特定のDelay値が入力された場合、当該特定のDelay値に基づく情報をもとに入力時点における当該第2仮想バッファ部のバッファ滞留量を補正し、n+1番目の画像群についてのバッファシミュレーションを行う。
このようにすれば、特定のDelay値を設定するのに伴い、第1仮想バッファ部および第2仮想バッファ部におけるバッファ滞留量を補正することができる。これにより、3D符号化装置は、第1Delay値および第2Delay値を特定のDelay値に変更した場合でも、バッファ滞留量を用いたバッファシミュレーションを破綻させることなく、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
また好ましくは、3D符号化装置は、符号化部から出力される拡張ストリームを復号化処理する際のバッファシミュレーションを行う第3仮想バッファ部と、第3仮想バッファ部で行われたバッファシミュレーションの結果に基づいて、1画像群毎に拡張ストリームのDelay値である第3Delay値を算出する第3算出部と、をさらに備える。設定部は、第1Delay値、第2Delay値および第3Delay値に基づいて、1画像群毎に特定のDelay値を設定し、設定部は、特定のDelay値として、第1Delay値、第2Delay値および第3Delay値のうち最も小さいDelay値以下の値を設定する。第1仮想バッファ部、第2仮想バッファ部および第3仮想バッファ部は、基本ストリーム、3次元ストリームおよび拡張ストリームにおけるn+1番目の画像群について、設定部が設定した特定のDelay値に基づく情報を基にバッファシミュレーションを行う。
このようにすれば、3D符号化装置は、第1Delay値、第2Delay値および第3Delay値から特定のDelay値を設定することが出来る。そして、3D符号化装置は、設定した特定のDelay値を、第1BSと、第2BSと、拡張ストリームを生成する際のバッファシミュレーション(以下、「第3BS」と称す)にフィードバックすることが出来る。よって、3D符号化装置は、同一のDelay値を基に、n+1番目の画像群についての第1BS、第2BSおよび第3BSを行うことが出来る。また、簡単な構成で、第1Delay値、第2Delay値、および第3Delay値とを同一とすることができる。
また、特定Delay値は、第1Delay値、第2Delay値および第3Delay値のうち最も小さいDelay値以下の値であるので、第1BS、第2BSおよび第3BSのDelay値を同一のDelay値に置き換えてバッファシミュレーションする場合でも、常に第1BS、第2BSおよび第3BSを破綻させることなく、BD規格を満たす基本ストリーム、3次元ストリームおよび拡張ストリームを生成することが可能となる。
また好ましくは、第1仮想バッファ部、第2仮想バッファ部および第3仮想バッファ部は、入力画像を符号化する際の時刻に関する情報をバッファシミュレーションの結果として第1算出部、第2算出部および第3算出部にそれぞれ出力する。
このようにすれば、3D符号化装置は、符号化する際の時刻に関する情報を基にDelay値を算出することができる。これにより、正確なDelay値を算出しバッファシミュレーションを行うことが出来るため、映像劣化を抑制しながらBD規格を満たす基本ストリーム、3次元ストリームおよび拡張ストリームを生成することが可能となる。
また好ましくは、第1仮想バッファ部は、当該第1仮想バッファ部におけるバッファ滞留量をバッファシミュレーションの結果として第1算出部に出力し、第2仮想バッファ部は、当該第2仮想バッファ部におけるバッファ滞留量をバッファシミュレーションの結果として第2算出部に出力し、第3仮想バッファ部は、当該第3仮想バッファ部におけるバッファ滞留量をバッファシミュレーションの結果として第3算出部に出力する。
このようにすれば、3D符号化装置がバッファ滞留量を用いてバッファシミュレーションを行う場合であっても、基本ストリームに付加するDelay値と、3次元ストリームに付加するDelay値と、拡張ストリームに付加するDelay値を同一の値にすることができる。これにより、簡易な構成でバッファシミュレーションを行った場合であっても、BD規格を満たす基本ストリーム、3次元ストリームおよび拡張ストリームを生成することが可能となる。
また好ましくは、第1仮想バッファ部は、設定部が出力する特定のDelay値が入力された場合、当該特定のDelay値に基づく情報をもとに入力時点における当該第1仮想バッファ部のバッファ滞留量を補正し、n+1番目の画像群についてのバッファシミュレーションを行い、第2仮想バッファ部は、設定部が出力する特定のDelay値が入力された場合、当該特定のDelay値に基づく情報をもとに入力時点における当該第2仮想バッファ部のバッファ滞留量を補正し、n+1番目の画像群についてのバッファシミュレーションを行い、第3仮想バッファ部は、設定部が出力する特定のDelay値が入力された場合、当該特定のDelay値に基づく情報をもとに入力時点における当該第3仮想バッファ部のバッファ滞留量を補正し、n+1番目の画像群についてのバッファシミュレーションを行う。
このようにすれば、3D符号化装置において特定のDelay値を設定するのに伴い、第1仮想バッファ部、第2仮想バッファ部および第3仮想バッファ部におけるバッファ滞留量を補正することができる。これにより、3D符号化装置は、第1Delay値、第2Delay値および第3Delay値を特定のDelay値に変更した場合でも、バッファ滞留量を用いたバッファシミュレーションを破綻させることなく、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
また好ましくは、基本ストリームは、3D映像における左目用画像及び右目用画像のいずれか一方の画像を符号化したストリームであり、拡張ストリームは、3D映像における他方の画像について一方の画像との差分を考慮して符号化したストリームである。
本発明の3D符号化装置によれば、簡易な構成で、基本ストリームのDelay値と、3次元ストリームのDelay値を同一とすることができる3次元符号化装置を提供することができる。また、簡易な構成で、基本ストリームと、3次元ストリームのDelay値と、拡張ストリームのDelay値を同一とすることができる3次元符号化装置を提供することができる。
実施形態1に係る3D符号化装置の構成を示す図 実施形態1に係る3D符号化装置の動作の一例を示すフローチャート バッファアンダーフローの状況を説明する図 実施形態2における3D符号化装置の構成を示す図 実施形態2における第1簡易CPB301における仮想バッファ制御を示す図 実施形態2における第2簡易CPB303の仮想バッファ制御の動作を説明するための図 実施形態2に係る3D動画像符号化方法の動作の一例を示すフローチャート 実施形態3における3D符号化装置の構成を示す図 実施形態3に係る3D符号化装置の動作の一例を示すフローチャート 実施形態4における3D符号化装置の構成を示す図 実施形態4に係る3D符号化装置の動作の一例を示すフローチャート
以下、本発明に係る3D符号化装置および3D符号化方法の実施の形態に関して、図面を用いて詳細に説明する。
(実施形態1)
1.概要
実施形態1に係る3D符号化装置は、3D映像信号を符号化する装置である。実施形態1に係る3D符号化装置は、入力画像を符号化し、立体視する際に用いる基本ストリームと、基本映像とは異なる拡張ストリームを生成する符号化装置である。さらに、基本ストリームのみを用いた仮想バッファ制御と、基本ストリームと拡張ストリームを合わせた3次元ストリームを用いた仮想バッファ制御とを行う。
この3D符号化装置の特徴は、これら2つの仮想バッファ制御にて求まる2つのDelay値を基に、特定のDelay値(以下、「特定Delay値」という)を求めることにある。そして、求めた特定Delay値を、このDelay値を求めた後に入力される入力画像を符号化し基本ストリームおよび拡張ストリームを生成する際の仮想バッファ制御に用いることにある。
以下では、特定Delay値は、一例として2つの仮想バッファ制御で求めたDelay値のうち、小さいほうのDelay値とする。なお、特定Delay値は、この値に限定されるものではなく、2つのDelay値よりも小さい値を用いることも出来る。
また、符号化方式としては、H.264/AVCを用いる構成を説明する。なお、用いる符号化方式は、H.264/AVCに限定されるものではなく、他の動画像符号化方式でもよい。つまり、入力画像から基本ストリームと3次元ストリームを符号化する符号化形式であればどのようなものでも構わない。
2.構成
以下、本実施形態1における3D符号化装置に関して、図面を参照しながら説明する。
図1は、本実施形態1に係る3D符号化装置の構成を示す図である。
図1に示すように、3D符号化装置は、第1符号化部101、第1CPB102、第1Delay値算出部103、第2符号化部104、第2CPB105、第2Delay値算出部106、特定Delay値決定部107および多重化部108を備える。ここで、CPBとは、Coded Picture Bufferの略称である。
第1符号化部101は、入力される入力画像を、H.264/AVCを用いて符号化して、基本ストリームを生成する。第1符号化部101は、生成した基本ストリームを多重化部108に出力する。さらに、第1符号化部101は、入力画像を符号化した際に生成される符号化パラメータを第1CPB102および第2CPB105に出力する。また、第1符号化部101は入力画像を基本ストリームに符号化した際の符号量を第1CPB102および第2CPB105に出力する。なお、入力画像を基本ストリームに符号化する際、MVC(multi view coding)を適用するのが好ましい。
第1CPB102は、第1符号化部101から出力される符号化パラメータおよび符号量に基づいて、仮想バッファ制御を行う仮想バッファである。ここで、符号化パラメータとはシンタックス情報を含む符号化に関する情報を示す。第1CPB102は、次の6つの数式に基づき、基本ストリームに関する時間情報tai(n)、taf(n)、tr,n(n)を算出する。第1CPB102は、算出した時間情報を第1Delay値算出部103に出力する。なお、上記時間情報tai(n)、taf(n)、tr,n(n)、および下記6つの数式は、H.264/AVC符号化規格で規定されている。tai(n)は、initial arrival time、つまり、復号器に1ピクチャを構成する最初のデータが到着した時間に関する情報である。taf(n)は、final arrival time、つまり復号器に1ピクチャを構成する最後のデータが到着した時間に関する情報である。tr,n(n)とは、nominal removal time、つまり復号器のバッファから1ピクチャを構成するデータを引き抜く時間に関する情報である。
(数1) taf(n)=tai(n)+b(n)÷BitRate[SchedSelIdx]
(数2) tai(n)=Max(taf(n−1)、tai,earliest(n))
(数3) tai,earliest(n)=tr,n(n)−(initial_cpb_removal_delay[SchedSelIdx]+initial_cpb_removal_delay_offset[SchedSelIdx])÷90000
(数4) tai,earliest(n)=tr,n(n)−(initial_cpb_removal_delay[SchedSelIdx]÷90000)
(数5) tr,n(0)=initial_cpb_removal_delay[SchedSelIdx]÷90000
(数6) tr,n(n)=tr,n(nb)+tc*cpb_removal_delay(n)
ここで、b(n)は、基本ストリームの、第n番目における入力画像の発生符号量である。上記6つの数式における各符号化パラメータは、第1符号化部101の符号化過程において取得できる。
さらに、第1CPB102は、特定Delay値決定部107から入力される特定Delay値を用いて仮想バッファ制御を行う。具体的には、第1CPB102は、(数4)におけるinitial_cpb_removal_delayに、特定Delay値決定部107から受け取った特定Delay値を代入する。そして、第1CPB102は、tai,earliest(n)を算出し、以後の仮想バッファ制御を行う。
第1Delay値算出部103は、第1CPB102が算出した時間情報に基づき、GOP毎にDelay値Δtg、90(n)を以下の式で算出する。
(数7) Δtg、90(n)=90000*(tr,n(n)−taf(n−1))
なお、上記の数式は、H.264/AVC符号化規格で規定される数式である。
第1Delay値算出部103は、算出したDelay値を特定Delay値決定部107に出力する。
第2符号化部104は、入力される入力画像を、H.264/AVC規格に基づいて符号化し、拡張ストリームを生成し、生成した拡張ストリームを多重化部108に出力する。さらに、第2符号化部104は、入力画像を符号化した際に生成される符号化パラメータを第2CPB105に出力する。また、第2符号化部104は入力画像を拡張ストリームに符号化した際の符号量を第2CPB105に出力する。なお、入力画像を拡張ストリームに符号化する際、MVC(multi view coding)を適用するのが好ましい。
第2CPB105は、第1符号化部101および第2符号化部104から出力される符号化パラメータおよび符号量に基づいて、仮想バッファ制御を行う仮想バッファである。第2CPB105は、上記数式1から数式6に基づき、3次元ストリームに関する時間情報tai(n)、taf(n)、tr,n(n)を算出する。第2CPB105は、数式1から数式6に対して、3次元ストリームに関する符号化パラメータを代入する。b(n)は、拡張ストリームの第n番目における入力画像の発生符号量と、基本ストリームの第n番目における入力画像の発生符号量との和である。
さらに、第2CPB105は、特定Delay値決定部107から入力される特定Delay値を用いて仮想バッファ制御を行う。第2CPB105は、(数4)におけるinitial_cpb_removal_delayに、特定Delay値決定部107から受け取った特定Delay値を代入する。そして、第2CPB105は、tai,earliest(n)を算出し、以後の仮想バッファ制御を行う。
第2Delay値算出部106は、第2CPB105が算出した時間情報に基づき、GOP毎にDelay値Δtg、90(n)を(数式7)で算出する。第2Delay値算出部106は、算出したDelay値Δtg、90(n)を特定Delay値決定部107に出力する。
特定Delay値決定部107は、第1Delay値算出部103および第2Delay値算出部106が出力する各Delay値から、特定Delay値を決定(算出)する。例えば、第1Delay値算出部103が求めたDelay値と、第2Delay値算出部106が求めたDelay値とのうち小さい方のDelay値を特定Delay値として決定する。なお、特定Delay値決定部107は、第1Delay値算出部103が出力する第1Delay値、および第2Delay値算出部106が出力する第2Delay値より小さい値を算出して特定Delay値として決定してもよい。特定Delay値決定部107は、決定した特定Delay値を、多重化部108へ出力する。さらに、特定Delay値決定部107は、決定した特定Delay値を、第1CPB102および第2CPB105へ出力する。
多重化部108は、基本ストリームと拡張ストリームを連結して、3次元ストリームを生成する。その際、多重化部108は、3次元ストリーム中に特定Delay値決定部107が出力する特定Delay値を書込む。つまり、多重化部108は基本ストリームのDelay値として特定Delay値決定部107が決定した特定Delay値を書込む。さらに、多重化部108は3次元ストリームのDelay値として特定Delay値決定部107が決定した特定Delay値を書込む。その結果、基本ストリームのDelay値と、3次元ストリームのDelay値を同一とすることができる。なお、H.264/AVCにおいて、基本ストリームのDelay値は、「Buffering period SEI」に書き込まれる。さらに、3次元ストリームのDelay値は、「scalable nesting SEI」中の「Buffering period SEI」に書き込まれる。なお、上記の「Buffering period SEI」、「scalable nesting SEI」および「Buffering period SEI」は、H.264/AVC規格に規定されるシンタックス情報である。
3.動作
次に、本実施形態1に係る3D符号化装置の動作の一例を、図2に示すフローチャートを用いて説明する。
(ステップS201)まず、入力画像が入力されると、第1符号化部101は、当該入力画像を符号化し、基本ストリームを生成する。第1符号化部101は、生成した基本ストリームを多重化部108に出力する。さらに、第1符号化部101は生成した基本ストリームの符号量および符号化パラメータを第1CPB102および第2CPB105に出力する。
(ステップS202)次に、第1CPB102は、第1符号化部101が生成した基本ストリームの符号化パラメータおよび符号量を基に、仮想バッファ制御を行う。第1CPB102は、仮想バッファ制御の過程で生成される時間情報を第1Delay値算出部103に出力する。
(ステップS203)一方、入力画像が入力されると、第2符号化部104は、当該入力画像を符号化し、拡張ストリームを生成する。第2符号化部104は、生成した拡張ストリームを多重化部108に出力する。さらに、第2符号化部104は生成した拡張ストリームの符号量および符号化パラメータを第2CPB105に出力する。
(ステップS204)次に、第2CPB105は、第1符号化部101が生成した基本ストリームの符号量および符号化パラメータと、第2符号化部104が生成した拡張ストリームの符号量および符号化パラメータと、を基に仮想バッファ制御を行う。第2CPB105は、仮想バッファ制御の過程で生成される時間情報を第2Delay値算出部106に出力する。
(ステップS205)ここで、第1符号化部101および第2符号化部104は、符号化対象の入力画像がGOPの終端に位置する入力画像(以下、「終端画像」と称す)か否かを判定する。終端画像でないと判定した場合、ステップS201に移行し、第1符号化部101および第2符号化部104は、GOP内の残りの入力画像を符号化する。終端画像と判定した場合、ステップS206に移行する。
(ステップS206)第1Delay値算出部103は、第1CPB102から出力される時間情報を基に、基本ストリームのDelay値Δtg、90(n)(以下、適宜「第1Delay値」と称す)を算出する。この第1Delay値は、実際に基本ストリームに付加する特定Delay値ではない。特定Delay値は、特定Delay値決定部107で算出される。第1Delay値算出部103は、算出した第1Delay値を特定Delay値決定部107に出力する。
(ステップS207)また、第2Delay値算出部106は、第2CPB105から出力される時間情報を基に、3次元ストリームに適用するDelay値Δtg、90(n)(以下、適宜「第2Delay値」と称す)を算出する。この第2Delay値は、特定Delay値ではない。特定Delay値は、特定Delay値決定部107で算出される。第2Delay値算出部106は、算出した第2Delay値を特定Delay値決定部107に出力する。
(ステップS208)そして、特定Delay値決定部107は、第1Delay値算出部103および第2Delay値算出部106から出力される第1Delay値および第2Delay値のうち小さいほうのDelay値を特定Delay値として決定し、第1CPB102および第2CPB105に出力する。
(ステップS209)最後に、第1CPB102および第2CPB105は、特定Delay値決定部107から出力される特定Delay値に基づいて、特定Delay値が求められたGOPの次のGOPについての仮想バッファ制御を行う。
なお、上記の動作フローは一例であり、各ステップに関しては相互に入れ替えることが出来る。また、S208において生成する特定Delay値は上記の値に限定されるものではなく、例えば第1Delay値算出部103および第2Delay値算出部106から出力されるDelay値よりも小さいDelay値を特定Delay値とする構成にしても構わない。
4.本発明と、本実施形態との対応
本実施形態における「仮想バッファ制御」は、本発明における「バッファシミュレーション」の一例である。本実施形態における「第1符合化部101」および「第2符合化部104」は、本発明における「符号化部」の一例である。本実施形態における「第1CPB102」は、本発明における「第1仮想バッファ部」の一例である。本実施形態における「第2CPB105」は、本発明における「第2仮想バッファ部」の一例である。本実施形態における「第1Delay値算出部103」は、本発明における「第1算出部」の一例である。本実施形態における「第2Delay値算出部106」は、本発明における「第2算出部」の一例である。本実施形態における「特定Delay値決定部107」は、本発明における「設定部」の一例である。
5.まとめ
上記のように、本実施形態の3D符号化装置は、入力画像を符号化し、基本ストリームと拡張ストリームとを生成して出力する第1符号化部101および第2符号化部104と、第1符号化部101から出力される基本ストリームを復号化する際のバッファシミュレーションを行う第1CPB102と、第1符号化部101から出力される基本ストリームと第2符号化部104から出力される拡張ストリームとから得られる3次元ストリームを復号化する際のバッファシミュレーションを行う第2CPB105と、第1CPB102で行われたバッファシミュレーションの結果に基づいて、1GOP毎に基本ストリームのDelay値である第1Delay値を算出する第1Delay値算出部103と、第2CPB105で行われたバッファシミュレーションの結果に基づいて、1GOP毎に3次元ストリームのDelay値である第2Delay値を算出する第2Delay値算出部106と、算出された第1Delay値および第2Delay値に基づいて、1GOP毎に特定Delay値を設定する特定Delay値決定部107とを備える。特定Delay値決定部107は、特定Delay値として、基本ストリームのDelay値と3次元ストリームのDelay値とのうち小さい方のDelay値以下の値を設定する。第1CPB102および第2CPB105は、基本ストリームおよび3次元ストリームにおける、n番目のGOPについて特定Delay値決定部107が設定した特定Delay値を基に、n+1番目のGOPについてのバッファシミュレーションを行う。
このようにすれば、3D符号化装置は、第1のDelay値と第2のDelay値とから特定Delay値を設定することが出来る。そして、3D符号化装置は、設定した特定Delay値を、基本ストリームを生成する際のバッファシミュレーション(以下、第1BSと称す。)と、3次元ストリームを生成する際のバッファシミュレーションにフィードバック(以下、第2BSと称す。)することが出来る。よって、3D符号化装置は、同一のDelay値を基に、次のGOP(n+1番目のGOP)についての第1BSおよび第2BSを行うことが出来る。また、簡単な構成で、第1のDelay値と第2のDelay値とを同一の値に設定することが出来る。
また、特定Delay値は、第1Delay値と第2Delay値とのうち小さい方のDelay値以下の値であるので、第1BSおよび第2BSのDelay値を同一のDelay値に置き換えてバッファシミュレーションする場合でも、常に第1BSおよび第2BSを破綻させることなく、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
また、第1CPB102および第2CPB105は、入力画像を符号化する際の時刻に関する情報をバッファシミュレーションの結果として第1Delay値算出部103および第2Delay値算出部106にそれぞれ出力する。
このようにすれば、3D符号化装置は、符号化する際の時刻に関する情報を基にDelay値を算出することができる。これにより、正確なDelay値を算出しバッファシミュレーションを行うことが出来るため、映像劣化を抑制しながらBD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
(実施形態2)
1.概要
実施形態1は、第1CPB102および第2CPB105から出力される時間情報を基に、第1Delay値算出部103および第2Delay値算出部106においてDelay値を算出した。さらに、第1Delay値算出部103および第2Delay値算出部106から出力される第1Delay値および第2Delay値を同一の値に置き換えたとしても仮想バッファ制御を調整することにより、H.264/AVC規格の制約を破綻させることなく、BD規格を満たす基本ストリームおよび3次元ストリームを生成する。このように実施形態1では、時間情報を用いて仮想バッファ制御を行っていた。
第1CPB102および第2CPB105が実行する仮想バッファ制御は、H.264/AVC規格において規定されるバッファアンダーフローが生じないことを保証するためにも用いられる。
図3は、バッファアンダーフローの状況を説明する図である。バッファアンダーフローとは、仮想バッファ制御におけるバッファ滞留量(以下、「cpb値」と称す)が負値となることを意味する。第1符号化部101および第2符号化部104において、入力画像の符号化開始時点でのcpb値を超える符号量が発生すると、換言すれば、復号器の入力バッファを模した仮想バッファにおいて、入力画像の符号化開始時点でのcpb値を超える引き抜き量が発生すると(入力画像の符号化開始時点での引き抜き可能量以上の符号量が発生すると)、バッファアンダーフローが発生する。そのため、第1符号化部101および第2符号化部104は、入力画像の符号化開始時点でのcpb値よりも小さい符号量を入力画像の最大符号量として設定する。そして、第1符号化部101および第2符号化部104は、実際の符号化時にこの最大符号量を超えることがないように、符号化パラメータを調整する。
上記の点を考慮すると、時間情報を用いた仮想バッファ制御ではなく、cpb値を用いるほうが制御しやすい。また、H.264/AVC規格でCABAC(context adaptive binary arithmetic coding)処理を行う場合、入力画像毎の発生符号量の確定まで、遅延が生じる。そのため、適切なタイミングでcpb値を得ることができない。この理由でも、Delay値による時間表現での仮想バッファ制御ではなく、cpb値に基づく簡易な仮想バッファ制御が必要になる。以上の理由により、仮想バッファ制御として、cpb値による仮想バッファ制御を用いる場合がある。この実装でのcpb値についても、BD規格制限を守るためcpb値を修正する必要が生じる。
実施形態2の目的は、仮想バッファ制御としてcpb値を用いた場合であっても、基本ストリームのDelay値と3次元ストリームのDelay値を同一にすることができる3D符号化装置を提供することを目的とする。
実施形態2では、基本ストリームおよび3次元ストリームの符号化レートおよびcpb値を基に、基本ストリームにおけるDelay値および3次元ストリームにおけるDelay値を算出する。そして、算出した2つのDelay値から特定のDelay値を設定する。
2.構成
以下、実施形態2における3D符号化装置の構成について図面を参照しながら説明する。
図4は、実施形態2における3D符号化装置の構成を示す図である。なお、実施形態1と同様の構成については、同じ番号を付し、その詳細な説明を省略する。
第1簡易CPB301は、第1符号化部101から出力される符号化パラメータおよび符号量に基づいて、cpb値を用いた仮想バッファ制御を行う仮想バッファである。ここで、符号化パラメータとはシンタックス情報を含む符号化に関する情報を示す。なお、符号量は第1符号化部101が入力画像を実際に符号化して得られる符号量または予測値としての符号量である。第1簡易CPB301は基本ストリームにおけるcpb値(以下、「cpb1」と称す)を算出する。第1簡易CPB301は第n番目の入力画像におけるcpb1(n)を次式より算出する。
(数8)cpb1(n)=cpb1(n−1)+(BR1*T)−b1(n)
ここで、BR1は基本ストリームの最大ビットレートを示し、例えば12Mbps等となる。また、Tはピクチャレートの逆数である。要するにTは、基本ストリームに含まれる第(n−1)番目の入力画像から第n番目の入力画像までの時間を示す値である。さらに、b1(n)は基本ストリームにおける第n番目の入力画像の符号量である。なお、基本ストリームの最大ビットレートおよびピクチャレートは3D符号化装置全体を制御する制御部400から与えられる。なお、基本ストリームの最大ビットレートはGOP毎に変化する値としても構わない。また、入力画像に対して固定の最大ビットレートが与えられる構成でも構わない。
また、第1簡易CPB301はcpb1(n)を第1Delay値算出部302に出力する。なお、第1簡易CPB301は例えばGOP終端においてcpb1(n)を第1Delay値算出部302に出力する。
さらに、第1簡易CPB301はCPB値逆換算部306が出力するcpb値を、特定Delay値の算出に用いた第1Delay値および第2Delay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についての仮想バッファ制御に使用する。つまり、現在処理中のGOPの次のGOPについての仮想バッファ制御においては現状のcpb値に置き換えてCPB値逆換算部306が出力するcpb値を用いる。第1簡易CPB301が上記の動作をすることにより、現状のcpb値を置き換えたとしても仮想バッファ制御を破綻させることなく、基本ストリームのDelay値と3次元ストリームのDelay値を同一にすることが可能となる。
第1Delay値算出部302は、第1簡易CPB301から出力されるcpb1および3D符号化装置全体を制御する制御部400から与えられる基本ストリームの最大ビットレートを基に、基本ストリームに対するDelay値を算出する。
図5は、第1簡易CPB301における仮想バッファ制御を示す図である。
図5に示すグラフにおいて、破線で示す傾きは最大ビットレートである。この場合、cpb値とDelay値との関係は図5に示すようになる。例えば、cpb値として1500ビットが与えられ、最大ビットレートが12Mbpsと与えられるとする。この場合、第1Delay値算出部302は、次式よりDelay値を0.125msと算出する。
(数10) (Delay値)=(cpb値)/(最大ビットレート)
第1Delay値算出部302は算出したDelay値を特定Delay値決定部305に出力する。
第2簡易CPB303は、第1符号化部101および第2符号化部104から出力される符号化パラメータおよび符号量に基づいて、cpb値を用いた仮想バッファ制御を行う仮想バッファである。ここで、符号化パラメータとはシンタックス情報を含む符号化に関する情報を示す。なお、符号量は第1符号化部101および第2符号化部104が入力画像を実際に符号化して得られる符号量または予測値としての符号量である。第2簡易CPB303は3次元ストリームにおけるcpb値(以下、cpb2と称す)を算出する。第2簡易CPB303は第n番目における入力画像のcpb2(n)を次式より算出する。
(数11)cpb2(n)=cpb2(n−1)+(BR2*T)−b2(n)
ここで、BR2は3次元ストリームの最大ビットレートを示し、例えば24Mbps等となる。また、Tはピクチャレートの逆数である。要するにTは、3次元ストリームに含まれる第(n−1)番目の入力画像から第n番目の入力画像までの時間を示す値である。さらに、b2(n)は3次元ストリームの第n番目における入力画像の符号量である。つまり、b2(n)は、第1符号化部101から出力される基本ストリームにおける第n番目における入力画像の符号量と、第2符号化部104から出力される拡張ストリームにおける第n番目の入力画像の符号量との和である。なお、3次元ストリームの最大ビットレートおよびピクチャレートは3D符号化装置全体を制御する制御部400から与えられる。なお、3次元ストリームの最大ビットレートはGOP毎に変化する値としても構わない。また、入力画像に対して固定の最大ビットレートが与えられる構成でも構わない。
また、第2簡易CPB303はcpb2(n)を第2Delay値算出部304に出力する。なお第2簡易CPB303は例えばGOP終端においてcpb2を第2Delay値算出部304に出力する。
さらに、第2簡易CPB303はCPB値逆換算部306が出力するcpb値を次のGOPについての仮想バッファ制御に使用する。つまり、特定Delay値の算出に用いた第1Delay値および第2Delay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についての仮想バッファ制御においては、現状のcpb値に置き換えてCPB値逆換算部306が出力するcpb値を用いる。第2簡易CPB303が上記の動作をすることにより、現状のcpb値を置き換えたとしても仮想バッファ制御を破綻させることなく、基本ストリームのDelay値と3次元ストリームのDelay値を同一にすることが可能となる。
第2Delay値算出部304は、第2簡易CPB303から出力されるcpb2および3D符号化装置全体を制御する制御部400から与えられる3次元ストリームの最大ビットレートを基に、3次元ストリームに対するDelay値を算出する。
第2Delay値算出部304は、(数式10)の関係を基に、3次元ストリームのDelay値を算出する。例えば、cpb2として3200ビットが与えられ、最大ビットレートが24Mbpsと与えられるとする。この場合、第2Delay値算出部304は次式よりDelay値を0.133msと算出する。
第2Delay値算出部304は算出したDelay値を特定Delay値決定部305に出力する。
特定Delay値決定部305は、第1Delay値算出部302および第2Delay値算出部304が出力するDelay値から、特定Delay値を決定(算出)する。例えば、第1Delay値算出部302が求めたDelay値と、第2Delay値算出部304が求めたDelay値とのうち小さい方のDelay値に決定して出力する。なお、特定Delay値決定部305は、求めたDelay値より小さい値を算出して出力するようにしてもよい。特定Delay値決定部305は、決定(算出)したDelay値を、CPB値逆換算部306へ出力する。さらに、特定Delay値決定部305は、決定(算出)した特定Delay値を、多重化部108へ出力する。
CPB値逆換算部306は、特定Delay値決定部305から出力される特定Delay値ならびに、3D符号化装置全体を制御する制御部400から与えられる基本ストリームの最大ビットレートおよび3次元ストリームの最大ビットレートを基に、第1簡易CPB301において適用するcpb値および第2Delay値算出部304において適用するcpb値を算出する。CPB値逆換算部306は、算出したcpb値をそれぞれ第1簡易CPB301および第2簡易CPB303に出力する。
例えば、CPB値逆換算部306は特定Delay値決定部305から特定Delay値として0.125msを取得するとする。また、基本ストリームの最大ビットレートを12Mbpsとし、3次元ストリームの最大ビットレートを24Mbpsとする。このとき、CPB値逆換算部306は、第1簡易CPB301および第2簡易CPB303において適用するcpb値を次式から算出する。
(数12) (cpb値)=(Delay値)*(最大ビットレート)
つまり、CPB値逆換算部306は第1簡易CPB301において適用するcpb値を、1500ビットと算出する。さらに、CPB値逆換算部306は第2簡易CPB303において適用するcpb値を、3000ビットと算出する。この場合、特定Delay値決定部305が出力する特定Delay値は第1Delay値算出部302が算出したDelay値であるため、CPB値逆換算部306が第1簡易CPB301に出力するcpb値は元々第1簡易CPB301が出力したcpb値と変わりない。しかし、CPB値逆換算部306が第2簡易CPB303に出力するcpb値は第1Delay値算出部302で算出したDelay値を基に算出されることになる。
3.動作
3−1.第2簡易CPB303の動作
まず、全体動作の説明の前に図面を参照しながら第2簡易CPB303の動作について説明する。
図6は、第2簡易CPB303の仮想バッファ制御の動作を説明するための図である。
図6に示すcpb601は、GOP終端におけるcpb値を示す。第2簡易CPB303はこのcpb値を第2Delay値算出部304に出力する。第2簡易CPB303は、このcpb値を第2Delay値算出部304に出力すると、第2Delay値算出部304、特定Delay値決定部305およびCPB値逆換算部306を介して、補正後のcpb値が入力される。補正後のcpb値は、例えば図6に示すcpb602となる。第2簡易CPB303は、特定Delay値が決定されたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)における仮想バッファ制御においてcpb602を用いることになる。要するに、特定Delay値決定部305におけるDelay値の変更に伴って、第2簡易CPB303のcpb値の補正を行う。
このようにすれば、容易に基本ストリームと3次元ストリームのDelay値を同一に設定することができる。さらに、仮想バッファ制御から得られるDelay値を変更しても、その後の仮想バッファ制御を破綻させることなく入力画像を符号化することができる。また、バッファアンダーフロー回避のために用いられるcpb値についても、BD規格上必要となるDelay値変更の影響を反映することができる。これにより、バッファアンダーフローを抑制するとともに、BD規格を満たす符号化動作を実現することが出来る。
3−2.3D符号化装置の動作
次に、本実施形態2に係る3D動画像符号化方法の動作の一例を、図7に示すフローチャートを用いて説明する。
(ステップS701)まず、入力画像が入力されると、第1符号化部101は、当該入力画像を符号化し、基本ストリームを生成する。第1符号化部101は生成した基本ストリームを多重化部108に出力する。さらに、第1符号化部101は、生成した基本ストリームの符号量および符号化パラメータを第1簡易CPB301および第2簡易CPB303に出力する。
(ステップS702)次に、第1簡易CPB301は、第1符号化部101が生成した基本ストリームの符号化パラメータおよび符号量を基に、cpb値による仮想バッファ制御を行う。
(ステップS703)一方、入力画像が入力されると、第2符号化部104は、当該入力画像を符号化し、拡張ストリームを生成する。第2符号化部104は、生成した拡張ストリームを多重化部108に出力する。さらに、第2符号化部104は生成した拡張ストリームの符号量および符号化パラメータを第2簡易CPB303に出力する。
(ステップS704)次に、第2簡易CPB303は、第1符号化部101が生成した基本ストリームの符号量および符号化パラメータと、第2符号化部104が生成した拡張ストリームの符号量および符号化パラメータと、を基にcpb値による仮想バッファ制御を行う。
(ステップS705)ここで、第1符号化部101および第2符号化部104は、符号化対象に係る入力画像がGOPの終端に位置する入力画像(以下、「終端画像」と称す)か否かを判定する。終端画像でないと判定した場合、S701に移行し、第1符号化部101および第2符号化部104は、GOP内の残りの入力画像を符号化する。終端画像と判定した場合、第1簡易CPB301は、GOPの終端の時刻におけるcpb値を第1Delay値算出部302に出力する。さらに、第2簡易CPB303は、GOPの終端の時刻におけるcpb値を第2Delay値算出部304に出力する。そして、S706に移行する。
(ステップS706)次に、第1Delay値算出部302は、第1簡易CPB301から出力されるcpb値を基に、基本ストリームのDelay値(以下、「第1Delay値」と称す)を算出する。この第1Delay値は、実際に基本ストリームに付加する特定Delay値ではない。実際に付加する特定Delay値は、特定Delay値決定部305で算出される。第1Delay値算出部302は、算出した第1Delay値を特定Delay値決定部305に出力する。
(ステップS707)また、第2Delay値算出部304は、第2簡易CPB303から出力されるcpb値を基に、3次元ストリームに適用するDelay値(以下、「第2Delay値」と称す)を算出する。この第2Delay値は、特定Delay値ではない。実際に付加する特定Delay値は、特定Delay値決定部305で算出される。第2Delay値算出部304は、算出した第2Delay値を特定Delay値決定部305に出力する。
(ステップS708)そして、特定Delay値決定部305は、第1Delay値算出部302および第2Delay値算出部304から出力される第1Delay値および第2Delay値のうち小さいほうのDelay値を特定Delay値とし、CPB値逆換算部306に出力する。
(ステップS709)そしてCPB値逆換算部306は、特定Delay値決定部305が出力する特定Delay値を基に、第1簡易CPB301および第2簡易CPB303で利用するcpb値をそれぞれ算出する。CPB値逆換算部306は、算出したcpb値をそれぞれ第1簡易CPB301および第2簡易CPB303に出力する。
(ステップS710)最後に、第1簡易CPB301および第2簡易CPB303は、CPB値逆換算部306から出力されるcpb値に基づいて、特定Delay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についての仮想バッファ制御を行う。
なお、上記の動作フローは一例であり、各ステップに関しては相互に入れ替えることが出来る。また、S708において生成する特定Delay値は上記の値に限定されるものではなく、例えば第1Delay値算出部302および第2Delay値算出部304から出力される第1Delay値および第2Delay値よりも小さいDelay値を特定Delay値とする構成にしても構わない。
4.まとめ
上記のように、本実施形態における3D符号化装置は、入力画像を符号化し、基本ストリームと拡張ストリームとを生成して出力する第1符号化部101および第2符号化部104と、第1符号化部101から出力される基本ストリームを復号化する際のバッファシミュレーションを行う第1簡易CPB301と、第1符号化部101から出力される基本ストリームと第2符号化部104から出力される拡張ストリームとから得られる3次元ストリームを復号化する際のバッファシミュレーションを行う第2簡易CPB303と、第1簡易CPB301で行われたバッファシミュレーションの結果に基づいて、1GOP毎に基本ストリームのDelay値である第1Delay値を算出する第1Delay値算出部302と、第2簡易CPB303で行われたバッファシミュレーションの結果に基づいて、1GOP毎に3次元ストリームのDelay値である第2Delay値を算出する第2Delay値算出部304と、算出された第1Delay値および第2Delay値に基づいて、1GOP毎に特定のDelay値を設定する特定Delay値決定部305と、を備える。特定Delay値決定部305は、特定Delay値として、基本ストリームのDelay値と3次元ストリームのDelay値とのうち小さい方のDelay値以下の値を設定する。第1簡易CPB301および第2簡易CPB303は、基本ストリームおよび3次元ストリームにおけるn番目のGOPについて特定Delay値決定部305が設定した特定Delay値を基に、n+1番目のGOPについてのバッファシミュレーションを行う。ここで、第1簡易CPB301は、特定Delay値決定部305が出力する特定Delay値が入力された場合、当該特定Delay値をもとに入力時点における当該第1簡易CPB301のバッファ滞留量を補正し、特定のDelay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についてのバッファシミュレーションを行い、第2簡易CPB303は、特定Delay値決定部305が出力する特定Delay値が入力された場合、当該特定Delay値をもとに入力時点における当該第2簡易CPB303のバッファ滞留量を補正し、特定Delay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についてのバッファシミュレーションを行う。
このようにすれば、3D符号化装置がバッファ滞留量を用いてバッファシミュレーションを行う場合であっても、基本ストリームに付加するDelay値と3次元ストリームに付加するDelay値とを簡単な構成で同一の値にすることができる。これにより、簡易な構成でバッファシミュレーションを行った場合であっても、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
また、特定Delay値は、第1Delay値と第2Delay値とのうち小さい方のDelay値以下の値であるので、第1BSおよび第2BSのDelay値を同一のDelay値に置き換えてバッファシミュレーションする場合でも、常に第1BSおよび第2BSを破綻させることなく、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
また、第1簡易CPB301は、特定Delay値決定部305が出力する特定Delay値が入力された場合、当該特定Delay値をもとに入力時点における当該第1簡易CPB301のバッファ滞留量を補正し、特定のDelay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についてのバッファシミュレーションを行い、第2簡易CPB303は、特定Delay値決定部305が出力する特定Delay値が入力された場合、当該特定Delay値をもとに入力時点における当該第2簡易CPB303のバッファ滞留量を補正し、特定のDelay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についてのバッファシミュレーションを行う。
このようにすれば、特定Delay値を設定するのに伴い、第1簡易CPB301および第2簡易CPB303におけるバッファ滞留量を補正することができる。これにより、3D符号化装置は、第1Delay値および第2Delay値を特定Delay値に変更した場合でも、バッファ滞留量を用いたバッファシミュレーションを破綻させることなく、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
(第3実施形態)
1.概要
実施形態1においては、時間情報を基に算出される基本ストリームのDelay値と、3次元ストリームのDelay値が同一となるように、特定Delay値を算出する構成について説明した。
実施形態3では、時間情報を基に算出される基本ストリームのDelay値と、拡張ストリームのDelay値と、3次元ストリームのDelay値と、が同一となるように、特定Delay値を算出する。
2.構成
以下、実施形態3の3D符号化装置の構成について図面を参照しながら説明する。
図8は、実施形態3における3D符号化装置の構成を示す図である。なお、本実施形態1と同様のものについては同じ番号を付し、その詳細な説明を省略する。
第1Delay値算出部109は、実施形態1の第1Delay値算出部103と基本的に同様の動作を行う。ただし、第1Delay値算出部109は、算出したDelay値を特定Delay値決定部113に出力する点で第1Delay値算出部103と異なる。
第2Delay値算出部110は、実施形態1の第2Delay値算出部106と基本的に同様の動作を行う。ただし、第2Delay値算出部110は、算出したDelay値を特定Delay値決定部113に出力する点で第2Delay値算出部106と異なる。
第3CPB111は、第2符号化部104から出力される符号化パラメータおよび符号量に基づいて、仮想バッファ制御を行う仮想バッファである。第3CPB111は、数式1から数式6に基づき、拡張ストリームに関する時間情報tai(n)、taf(n)、tr,n(n)を算出する。なお、上記時間情報tai(n)、taf(n)、tr,n(n)、および数式1から数式6は、実施形態1で説明した通り、H.264/AVC規格で規定されている。なお、第3CPB111は数式1から数式6に対して、第2符号化部104から出力される拡張ストリームに関する符号化パラメータを代入する。なお、b(n)は、拡張ストリームの第n番目における入力画像の発生符号量である。
さらに、第3CPB111は、特定Delay値決定部113から入力される特定Delay値を用いて仮想バッファ制御を行う。第3CPB111は、(数4)におけるinitial_cpb_removal_delayに、特定Delay値決定部113から受け取った特定Delay値を代入する。そして、第3CPB111は、tai,earliest(n)を算出し、以降の仮想バッファ制御を行う。
第3Delay値算出部112は、第3CPB111が算出した時間情報に基づき、GOP毎にDelay値Δtg、90(n)を(数式7)で算出する。第3Delay値算出部112は、算出したDelay値を特定Delay値決定部113に出力する。
特定Delay値決定部113は、第1Delay値算出部109、第2Delay値算出部110および第3Delay値算出部112が出力するDelay値から、特定Delay値を算出する。例えば、第1Delay値算出部109が求めたDelay値と、第2Delay値算出部110が求めたDelay値と、第3Delay値算出部112が求めたDelay値のうち小さい方のDelay値を特定Delay値として出力する。なお、特定Delay値決定部113は、求めたDelay値より小さい値を出力するようにしてもよい。特定Delay値決定部113は、算出した特定Delay値を、多重化部114へ出力する。さらに、特定Delay値決定部113は、算出した特定Delay値を、第1CPB102、第2CPB105および第3CPB111へ出力する。
多重化部114は、実施形態1の多重化部108と基本的に同じ動作を行う。ただし、多重化部114は、拡張ストリームのDelay値として特定Delay値決定部113が算出した特定Delay値を書込む点で実施形態1の多重化部108と異なる。多重化部114は上記の動作をすることにより、基本ストリームのDelay値と、拡張ストリームのDelay値と、3次元ストリームのDelay値を同一とすることができる。なお、H.264/AVC規格において、拡張ストリームのDelay値は、「Buffering period SEI」等、H.264/AVCに規定されるシンタックスのうち適当な場所に書き込まれる。つまり、再生側において拡張ストリームのDelay値を読み取れる格納場所であれば、どのような場所でも構わない。
3.動作
次に、本実施形態3に係る3D符号化装置の動作の一例を、図9に示すフローチャートを用いて説明する。
(ステップS901)まず、入力画像が入力されると、第1符号化部101は、当該入力画像を符号化し、基本ストリームを生成する。第1符号化部101は、生成した基本ストリームを多重化部114に出力する。さらに、第1符号化部101は生成した基本ストリームの符号量および符号化パラメータを第1CPB102および第2CPB105に出力する。
(ステップS902)次に、第1CPB102は、第1符号化部101が生成した基本ストリームの符号化パラメータおよび符号量を基に、仮想バッファ制御を行う。第1CPB102は、仮想バッファ制御の過程で生成される時間情報を第1Delay値算出部109に出力する。
(ステップS903)一方、入力画像が入力されると、第2符号化部104は、当該入力画像を符号化し、拡張ストリームを生成する。第2符号化部104は、生成した拡張ストリームを多重化部114に出力する。さらに、第2符号化部104は生成した拡張ストリームの符号量および符号化パラメータを第2CPB105および第3CPB111に出力する。
(ステップS904)次に、第2CPB105は、第1符号化部101が生成した基本ストリームの符号量および符号化パラメータと、第2符号化部104が生成した拡張ストリームの符号量および符号化パラメータと、を基に仮想バッファ制御を行う。第2CPB105は、仮想バッファ制御の過程で生成される時間情報を第2Delay値算出部110に出力する。
(ステップS905)次に、第3CPB111は、第2符号化部104が生成した拡張ストリームの符号量および符号化パラメータを基に仮想バッファ制御を行う。第3CPB111は、仮想バッファ制御の過程で生成される時間情報を第3Delay値算出部112に出力する。
(ステップS906)ここで、第1符号化部101および第2符号化部104は、符号化対象に係る入力画像がGOPの終端に位置する入力画像(以下、「終端画像」と称す)か否かを判定する。終端画像でないと判定した場合、S901に移行し、第1符号化部101および第2符号化部104は、GOP内の残りの入力画像を符号化する。終端画像と判定した場合、S907に移行する。
(ステップS907)次に、第1Delay値算出部109は、第1CPB102から出力される時間情報を基に、基本ストリームのDelay値(以下、「第1Delay値」と称す)を算出する。この第1Delay値は、実際に基本ストリームに付加する特定Delay値ではない。特定Delay値は、特定Delay値決定部113で算出される。第1Delay値算出部109は、算出した第1Delay値を特定Delay値決定部113に出力する。
(ステップS908)また、第2Delay値算出部110は、第2CPB105から出力される時間情報を基に、3次元ストリームに適用するDelay値(以下、「第2Delay値」と称す)を算出する。この第2Delay値は、特定Delay値ではない。特定Delay値は、特定Delay値決定部113で算出される。第2Delay値算出部110は、算出した第2Delay値を特定Delay値決定部113に出力する。
(ステップS909)また、第3Delay値算出部112は、第3CPB111から出力される時間情報を基に、拡張ストリームに適用するDelay値(以下、「第3Delay値」と称す)を算出する。この第3Delay値は、特定Delay値ではない。特定Delay値は、特定Delay値決定部113で算出される。第3Delay値算出部112は、算出した第3Delay値を特定Delay値決定部113に出力する。
(ステップS910)そして、特定Delay値決定部113は、第1Delay値算出部109、第2Delay値算出部110および第3Delay値算出部112から出力される第1Delay値、第2Delay値および第3Delay値のうち、最も小さいDelay値を特定Delay値として決定し第1CPB102、第2CPB105および第3CPB111に出力する。
(ステップS911)最後に、第1CPB102、第2CPB105および第3CPB111は、特定Delay値決定部113から出力される特定Delay値に基づいて、特定Delay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についての仮想バッファ制御を行う。
なお、上記の動作フローは一例であり、各ステップに関しては相互に入れ替えることが出来る。また、特定Delay値決定部113が生成する特定Delay値は上記の値に限定されるものではなく、例えば第1Delay値算出部109、第2Delay値算出部110および第3Delay値算出部112から出力されるDelay値のうち最も小さいDelay値よりも小さいDelay値を特定Delay値とする構成にしても構わない。
4.まとめ
上記のように、本実施形態3における3D符号化装置は、入力画像を符号化し、基本ストリームと拡張ストリームとを生成して出力する第1符号化部101および第2符号化部104と、第1符号化部101から出力される基本ストリームを復号化する際のバッファシミュレーションを行う第1CPB102と、第1符号化部101から出力される基本ストリームと第2符号化部104から出力される拡張ストリームとから得られる3次元ストリームを復号化する際のバッファシミュレーションを行う第2CPB105と、拡張ストリームを復号化する際のバッファシミュレーションを行う第3CPB111と、第1CPB102で行われたバッファシミュレーションの結果に基づいて、1GOP毎に基本ストリームのDelay値である第1Delay値を算出する第1Delay値算出部109と、第2CPB105で行われたバッファシミュレーションの結果に基づいて、1GOP毎に3次元ストリームのDelay値である第2Delay値を算出する第2Delay値算出部110と、第3CPB111で行われたバッファシミュレーションの結果に基づいて、1GOP毎に拡張ストリームのDelay値である第3Delay値を算出する第3Delay値算出部112と、第1Delay値、第2Delay値および第3Delay値に基づいて、特定のDelay値を設定する特定Delay値決定部113と、を備える。特定Delay値決定部113は、第1Delay値、第2Delay値および第3Delay値のうち最も小さいDelay値以下の値を決定する。第1CPB102、第2CPB105および第3CPB111は、基本ストリーム、3次元ストリームおよび拡張ストリームにおけるn番目のGOPについて特定Delay値決定部113が設定した特定Delay値を基に、n+1番目のGOPについてのバッファシミュレーションを行う。
このような実施形態3における3D符号化装置によれば、第1Delay値、第2Delay値および第3Delay値から特定Delay値を設定することが出来る。そして、3D符号化装置は、設定した特定Delay値を、第1BSと、第2BSと、拡張ストリームを生成する際のバッファシミュレーション(以下、第3BSと称す)にフィードバックすることが出来る。よって、3D符号化装置は、同一のDelay値を基に、次のGOPについての第1BSと、第2BSと、第3BSとを行うことが出来る。また、簡単な構成で、第1のDelay値と、第2のDelay値と、第3のDelay値とを同一の値に設定することが出来る。
また、特定Delay値は、第1Delay値、第2Delay値および第3Delay値のうち最も小さいDelay値以下の値であるので、第1BS、第2BSおよび第3BSのDelay値を同一のDelay値に置き換えてバッファシミュレーションする場合でも、常に第1BS、第2BSおよび第3BSを破綻させることなく、BD規格を満たす基本ストリーム、3次元ストリームおよび拡張ストリームを生成することが可能となる。
また好ましくは、第1CPB102、第2CPB105および第3CPB111は、入力画像を符号化する際の時刻に関する情報をバッファシミュレーションの結果として第1Delay値算出部109、第2Delay値算出部110および第3Delay値算出部112にそれぞれ出力する。
このようにすれば、3D符号化装置は、符号化する際の時刻に関する情報を基にDelay値を算出することができる。これにより、正確なDelay値を算出しバッファシミュレーションを行うことが出来るため、映像劣化を抑制しながらBD規格を満たす基本ストリーム、3次元ストリームおよび拡張ストリームを生成することが可能となる。
(第4実施形態)
1.概要
実施形態2においては、cpb値を基に算出される基本ストリームのDelay値と、3次元ストリームのDelay値が同一となるように、特定Delay値を算出する構成について説明した。
実施形態4では、cpb値を基に算出される基本ストリームのDelay値と、拡張ストリームのDelay値と、3次元ストリームのDelay値と、が同一となるように、特定Delay値を算出する。
2.構成
以下、実施形態4における3D符号化装置について図面を参照しながら説明する。
図10は、実施形態4における3D符号化装置の構成を示す図である。なお、実施形態2と同様の構成については同じ番号を付し、その詳細な説明を省略する。
第1簡易CPB301および第2簡易CPB303は、CPB値逆換算部306が出力するcpb値の代わりに、CPB値逆換算部312が出力する特定のcpb値を用いて仮想バッファ制御を行う。
第1Delay値算出部307は、実施形態2の第1Delay値算出部302と基本的に同様の動作を行う。ただし、第1Delay値算出部307は、算出したDelay値を特定Delay値決定部311に出力する点で実施形態2の第1Delay値算出部302と異なる。
第2Delay値算出部308は、実施形態2の第2Delay値算出部304と基本的に同様の動作を行う。ただし、第2Delay値算出部308は、算出したDelay値を特定Delay値決定部311に出力する点で実施形態2の第2Delay値算出部304と異なる。
第3簡易CPB309は、第2符号化部104から出力される符号化パラメータおよび符号量に基づいて、cpb値を用いた仮想バッファ制御を行う仮想バッファである。ここで、符号化パラメータとはシンタックス情報を含む符号化に関する情報を示す。なお、符号量は第2符号化部104が入力画像を実際に符号化して得られる符号量または予測値としての符号量である。第3簡易CPB309は拡張ストリームにおけるcpb値(以下、「cpb3」と称す)を算出する。第3簡易CPB309は第n番目における入力画像のcpb3(n)を次式より算出する。
(数12)cpb3(n)=cpb3(n−1)+(BR3*T)−b3(n)
ここで、BR3は拡張ストリームの最大ビットレートを示し、例えば12Mbps等となる。また、Tはピクチャレートの逆数である。要するにTは、拡張ストリームに含まれる第(n−1)番目の入力画像から第n番目の入力画像までの時間を示す値である。さらに、b3(n)は拡張ストリームにおける第n番目の入力画像の符号量である。つまり、b3(n)は、第2符号化部104から出力される拡張ストリームにおける第n番目における入力画像の符号量となる。なお、拡張ストリームの最大ビットレートおよびピクチャレートは3D符号化装置全体を制御する制御部(図示せず)から与えられる。なお、拡張ストリームの最大ビットレートはGOP毎に変化する値としても構わない。また、入力画像に対して固定の最大ビットレートが与えられる構成でも構わない。
また、第3簡易CPB309はcpb3(n)を第3Delay値算出部310に出力する。なお、第3簡易CPB309は例えばGOP終端においてcpb3(n)を第3Delay値算出部310に出力する。
さらに、第3簡易CPB309はCPB値逆換算部312が出力するcpb値を次のGOPについての仮想バッファ制御に使用する。つまり、次のGOPについての仮想バッファ制御においては、現状のcpb値に置き換えてCPB値逆換算部306が出力するcpb値を用いる。第3簡易CPB309が上記の動作をすることにより、現状のcpb値を置き換えたとしても仮想バッファ制御を破綻させることなく、基本ストリームのDelay値と3次元ストリームのDelay値と拡張ストリームのDelay値を同一にすることが可能となる。
第3Delay値算出部310は、第3簡易CPB309から出力されるcpb3および3D符号化装置全体を制御する制御部400から与えられる拡張ストリームの最大ビットレートを基に、拡張ストリームに対するDelay値を算出する。
第3Delay値算出部310は、(数式10)の関係を基に、拡張ストリームのDelay値を算出する。例えば、cpb3として3200ビットが与えられ、最大ビットレートが12Mbpsと与えられるとする。この場合、第3Delay値算出部310は(数式10)よりDelay値を0.266msと算出する。
第3Delay値算出部310は算出したDelay値を特定Delay値決定部311に出力する。
特定Delay値決定部311は、第1Delay値算出部307、第2Delay値算出部308および第3Delay値算出部310が出力するDelay値から、特定Delay値を算出する。例えば、第1Delay値算出部307が求めたDelay値と、第2Delay値算出部308が求めたDelay値と、第3Delay値算出部310が求めたDelay値のうち最も小さいDelay値をCPB値逆換算部312に出力する。なお、特定Delay値決定部311は、第1Delay値算出部307が求めたDelay値と、第2Delay値算出部308が求めたDelay値と、第3Delay値算出部310が求めたDelay値のうち最も小さいDelay値より小さい値を出力するようにしてもよい。特定Delay値決定部311は、算出したDelay値を、CPB値逆換算部312へ出力する。さらに、特定Delay値決定部311は、算出した特定Delay値を、多重化部114へ出力する。
CPB値逆換算部312は、特定Delay値決定部311から出力される特定Delay値ならびに、3D符号化装置全体を制御する制御部から与えられる基本ストリームの最大ビットレート、3次元ストリームの最大ビットレートおよび拡張ストリームの最大ビットレートを基に、第1簡易CPB301、第2簡易CPB303および第3簡易CPB309において適用するcpb値をそれぞれ算出する。CPB値逆換算部312は、算出したcpb値を第1簡易CPB301、第2簡易CPB303および第3簡易CPB309にそれぞれ出力する。
例えば、CPB値逆換算部312は特定Delay値決定部311から特定Delay値として0.125msを取得するとする。また、基本ストリームの最大ビットレートを12Mbpsとし、3次元ストリームの最大ビットレートを24Mbpsとし、拡張ストリームの最大ビットレートを12Mbpsとする。このとき、CPB値逆換算部312は第1簡易CPB301、第2簡易CPB303および第3簡易CPB309において適用するcpb値を(数式12)から算出する。
つまり、CPB値逆換算部312は第1簡易CPB301において適用するcpb値を、1500ビットと算出する。さらに、CPB値逆換算部312は第2簡易CPB303において適用するcpb値を、3000ビットと算出する。また、CPB値逆換算部312は第3簡易CPB309において適用するcpb値を、1500ビットと算出する。
3.動作
次に、本実施形態4に係る3D符号化装置の動作の一例を、図11に示すフローチャートを用いて説明する。
(ステップS1101)まず、入力画像が入力されると、第1符号化部101は、当該入力画像を符号化し、基本ストリームを生成する。第1符号化部101は生成した基本ストリームを多重化部114に出力する。さらに、第1符号化部101は、生成した基本ストリームの符号量および符号化パラメータを第1簡易CPB301および第2簡易CPB303に出力する。
(ステップS1102)次に、第1簡易CPB301は、第1符号化部101が生成した基本ストリームの符号化パラメータおよび符号量を基に、cpb値による仮想バッファ制御を行う。
(ステップS1103)一方、入力画像が入力されると、第2符号化部104は、当該入力画像を符号化し、拡張ストリームを生成する。第2符号化部104は、生成した拡張ストリームを多重化部114に出力する。さらに、第2符号化部104は生成した拡張ストリームの符号量および符号化パラメータを第2簡易CPB303および第3簡易CPB309に出力する。
(ステップS1104)次に、第2簡易CPB303は、第1符号化部101が生成した基本ストリームの符号量および符号化パラメータと、第2符号化部104が生成した拡張ストリームの符号量および符号化パラメータと、を基にcpb値による仮想バッファ制御を行う。
(ステップS1105)さらに、第3簡易CPB309は、第2符号化部104が生成した拡張ストリームの符号量および符号化パラメータを基にcpb値による仮想バッファ制御を行う。
(ステップS1106)ここで、第1符号化部101および第2符号化部104は、符号化対象に係る入力画像がGOPの終端に位置する入力画像(以下、「終端画像」と称す)か否かを判定する。終端画像でないと判定した場合、S1101に移行し、第1符号化部101および第2符号化部104は、GOP内の残りの入力画像を符号化する。終端画像と判定した場合、第1簡易CPB301はGOPの終端の時刻におけるcpb値を第1Delay値算出部307に出力する。さらに、第2簡易CPB303はGOPの終端の時刻におけるcpb値を第2Delay値算出部308に出力する。さらに、第3簡易CPB309はGOPの終端の時刻におけるcpb値を第3Delay値算出部310に出力する。そして、第2Delay値算出部1107に移行する。
(ステップS1107)次に、第1Delay値算出部307は、第1簡易CPB301から出力されるcpb値を基に、基本ストリームのDelay値(以下、「第1Delay値」と称す)を算出する。この第1Delay値は、実際に基本ストリームに付加する特定Delay値ではない。実際に付加する特定Delay値は、特定Delay値決定部311で算出される。第1Delay値算出部307は、算出した第1Delay値を特定Delay値決定部311に出力する。
(ステップS1108)また、第2Delay値算出部308は、第2簡易CPB303から出力されるcpb値を基に、3次元ストリームに適用するDelay値(以下、「第2Delay値」と称す)を算出する。この第2Delay値は、特定Delay値ではない。実際に付加する特定Delay値は、特定Delay値決定部311で算出される。第2Delay値算出部308は、算出した第2Delay値を特定Delay値決定部311に出力する。
(ステップS1109)さらに、第3Delay値算出部310は、第3簡易CPB309から出力されるcpb値を基に、拡張ストリームに適用するDelay値(以下、「第3Delay値」と称す)を算出する。この第3Delay値は、特定Delay値ではない。実際に付加する特定Delay値は、特定Delay値決定部311で算出される。第3Delay値算出部310は、算出した第3Delay値を特定Delay値決定部311に出力する。
(ステップS1110)そして、特定Delay値決定部311は、第1Delay値算出部307、第2Delay値算出部308および第3Delay値算出部310から出力される第1Delay値、第2Delay値および第3Delay値のうち最も小さいDelay値を特定Delay値と決定し、CPB値逆換算部312に出力する。
(ステップS1111)そしてCPB値逆換算部312は、特定Delay値決定部311が出力する特定Delay値を基に、第1簡易CPB301、第2簡易CPB303および第3簡易CPB309で利用するcpb値をそれぞれ算出する。CPB値逆換算部312は、算出したcpb値をそれぞれ第1簡易CPB301、第2簡易CPB303および第3簡易CPB309に出力する。
(ステップS1112)最後に、第1簡易CPB301、第2簡易CPB303および第3簡易CPB309は、CPB値逆換算部312から出力されるcpb値に基づいて、特定Delay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についての仮想バッファ制御を行う。
なお、上記の動作フローは一例であり、各ステップに関しては相互に入れ替えることが出来る。また、S1110において生成する特定Delay値は上記の値に限定されるものではなく、例えば第1Delay値算出部307、第2Delay値算出部308および第3Delay値算出部310から出力される第1Delay値、第2Delay値および第3Delay値よりも小さいDelay値を特定Delay値とする構成にしても構わない。
4.まとめ
上記のように、本実施形態における3D符号化装置は、入力画像を符号化し、基本ストリームと拡張ストリームとを生成して出力する第1符号化部101および第2符号化部104と、基本ストリームを復号化する際のバッファシミュレーションを行う第1簡易CPB301と、第1符号化部101から出力される基本ストリームと第2符号化部104から出力される拡張ストリームとから得られる3次元ストリームを復号化処理する際のバッファシミュレーションを行う第2簡易CPB303と、拡張ストリームを復号化する際のバッファシミュレーションを行う第3簡易CPB309と、第1簡易CPB301で行われたバッファシミュレーションの結果に基づいて、1GOP毎に基本ストリームのDelay値である第1Delay値を算出する第1Delay値算出部307と、第2簡易CPB303で行われたバッファシミュレーションの結果に基づいて、1GOP毎に3次元ストリームのDelay値である第2Delay値を算出する第2Delay値算出部308と、第3簡易CPB309で行われたバッファシミュレーションの結果に基づいて、1GOP毎に、拡張ストリームのDelay値である第3Delay値を算出する第3Delay値算出部310と、第1Delay値、第2Delay値および第3Delay値に基づいて、1GOP毎に特定のDelay値を設定する特定Delay値決定部311と、を備える。特定Delay値決定部113は、第1Delay値、第2Delay値および第3Delay値のうち最も小さいDelay値以下の値を決定する。第1簡易CPB301、第2簡易CPB303および第3簡易CPB309は、基本ストリーム、3次元ストリームおよび拡張ストリームにおけるn番目のGOPについて特定Delay値決定部311が設定した特定Delay値を基に、n+1番目のGOPについてのバッファシミュレーションを行う。ここで、第1簡易CPB301は、当該第1簡易CPB301におけるバッファ滞留量をバッファシミュレーションの結果として第1Delay値算出部307に出力し、第2簡易CPB303は、当該第2簡易CPB303におけるバッファ滞留量をバッファシミュレーションの結果として第2Delay値算出部308に出力し、第3簡易CPB309は、当該第3簡易CPB309におけるバッファ滞留量をバッファシミュレーションの結果として第3Delay値算出部310に出力する。
このようにすれば、本実施形態4における3D符号化装置がバッファ滞留量を用いてバッファシミュレーションを行う場合であっても、基本ストリームに付加するDelay値と、3次元ストリームに付加するDelay値と拡張ストリームに付加するDelay値を簡単な構成で同一の値にすることができる。これにより、簡易な構成でバッファシミュレーションを行った場合であっても、BD規格を満たす基本ストリーム、3次元ストリームおよび拡張ストリームを生成することが可能となる。
また、特定Delay値は、第1Delay値、第2Delay値および第3Delay値のうち最も小さいDelay値以下の値であるので、第1BS、第2BSおよび第3BSのDelay値を同一のDelay値に置き換えてバッファシミュレーションする場合でも、常に第1BS、第2BSおよび第3BSを破綻させることなく、BD規格を満たす基本ストリーム、3次元ストリームおよび拡張ストリームを生成することが可能となる。
また好ましくは、第1簡易CPB301は、特定Delay値決定部311が出力する特定Delay値が入力された場合、当該特定Delay値をもとに入力時点における当該第1簡易CPB301のバッファ滞留量を補正し、特定のDelay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についてのバッファシミュレーションを行い、第2簡易CPB303は、特定Delay値決定部311が出力する特定Delay値が入力された場合、当該特定Delay値をもとに入力時点における当該第2簡易CPB303のバッファ滞留量を補正し、特定のDelay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についてのバッファシミュレーションを行い、第3簡易CPB309は、特定Delay値決定部311が出力する特定Delay値が入力された場合、当該特定Delay値をもとに入力時点における当該第3簡易CPB309のバッファ滞留量を補正し、特定のDelay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についてのバッファシミュレーションを行う。
このようにすれば、3D符号化装置において特定Delay値を設定するのに伴い、第1簡易CPB301、第2簡易CPB303および第3簡易CPB309におけるバッファ滞留量を補正することができる。これにより、3D符号化装置は、第1Delay値、第2Delay値および第3Delay値を特定Delay値に変更した場合でも、バッファ滞留量を用いたバッファシミュレーションを破綻させることなく、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
本発明に係る3D符号化装置は、映像信号を符号化するデジタルテレビ、ビデオプレイヤー、パーソナルコンピュータ、携帯電話機等に適用できる。
101 第1符号化部
102 第1CPB
103、109、302、307 第1Delay値算出部
104 第2符号化部
105 第2CPB
106、110、304、308 第2Delay値算出部
107、305、311 特定Delay値決定部
108、114 多重化部
111 第3CPB
112 第3Delay値算出部
301 第1簡易CPB
303 第2簡易CPB
306、312 CPB値逆変換部
309 第3簡易CPB
310 第3Delay値算出部
400 制御部
601、602 cpb
本発明は、3D映像信号を符号化する3D符号化装置に関する。
特許文献1には、符号化された複数のピクチャをランダムアクセス可能なアクセス単位ごとに含んで構成される1つ又は複数の符号化ストリームを生成する生成装置が記載されている。具体的には、その生成装置は、連続的に復号を行う何れか2つのアクセス単位において、復号順で先頭のピクチャが復号されてから表示順で先頭のピクチャが表示されるまでの遅延量が同一となるように、その遅延量を決定する第1の決定手段と、第1の決定手段において決定された遅延量となるように、前記2つのアクセス単位に含まれる複数のピクチャを符号化し、符号化ストリームを生成する生成手段と、を備える。この生成装置は、遅延量を予め定めた値以下に制限する。
この構成によれば、特殊再生の対象となる2つのアクセス単位(例えば、クリップ)の遅延量(フレーム遅延)が等しくなるように符号化ストリームが生成される。そのため、これらのアクセス単位が連続的に復号される際には、それらのアクセス単位の接続点でピクチャ間にギャップが生ずることなく、フレームレートが一定になる。つまり、特殊再生時においてこれらのアクセス単位がシームレス接続される。その結果、それらのアクセス単位に基づく動画像を見るユーザに対してギャップ等により生じる不快感をなくすことができる。
特開2008−301532号公報
ところで、入力画像を基本ストリームおよび拡張ストリームを含む3次元ストリームに符号化する規格として、H.264/MVC符号化規格がある。例えば、基本ストリームは、3D映像における左目用画像及び右目用画像のいずれか一方の画像を符号化したストリームであり、拡張ストリームは、3D映像における他方の画像について前記一方の画像との差分を考慮して符号化したストリームである。入力される入力画像を、基本ストリームおよび拡張ストリームを含む3次元ストリームに符号化する際、BD規格(System Description Blu-ray Disc Read-Only Format part 3 Audio Visual Basic Specifications)に記載される内容を満たす必要がある。具体的には、所定のGOP(Group Of pictures)に付加される基本ストリームのDelay値と、このGOPに付加される3次元ストリームのDelay値は同一としなければならない。また、所定のGOPに付加される基本ストリームのDelay値と、このGOPに付加される3次元ストリームのDelay値と、このGOPに付加される拡張ストリームのDelay値は同一でなければならない。
ここで、Delay値とは、デコーダのバッファに最初のデータが到着してから、デコーダでの復号処理のため先頭ピクチャの符号をバッファから引き抜くまでの時間である。Delay値は、基本ストリームおよび拡張ストリームの符号量に依存する。そこで、基本ストリームおよび拡張ストリームのDelay値を同一とするために、入力画像の符号化時における量子化値を制御することが考えられる。
しかし、量子化値を制御する方法では、適切な画質を得ることが困難となる。また、基本ストリームと拡張ストリームの符号量を完全に同一にするよう量子化値を制御するためには、3D符号化装置の構成が複雑となる。
本発明は、上記の課題を考慮してなされたものであり、簡易な構成で、基本ストリームのDelay値と、3次元ストリームのDelay値を同一とすることができる3次元符号化装置を提供することを目的とする。また、簡易な構成で、基本ストリームと、3次元ストリームのDelay値と、拡張ストリームのDelay値を同一とすることができる3次元符号化装置を提供することを目的とする。
本発明の3D符号化装置は、入力画像を符号化し、複数の画像群を含む基本ストリームおよび拡張ストリームを含む3次元ストリームを生成して出力する符号化部と、符号化部から出力される基本ストリームを復号化する際のバッファシミュレーションを行う第1仮想バッファ部と、符号化部から出力される3次元ストリームを復号化する際のバッファシミュレーションを行う第2仮想バッファ部と、第1仮想バッファ部で行われたバッファシミュレーションの結果に基づいて、1画像群毎に基本ストリームのDelay値である第1Delay値を算出する第1算出部と、第2仮想バッファ部で行われたバッファシミュレーションの結果に基づいて、1画像群毎に3次元ストリームのDelay値である第2Delay値を算出する第2算出部と、算出された第1Delay値および第2Delay値に基づいて、1画像群毎に特定のDelay値を設定する設定部と、を備える。設定部は、特定のDelay値として、第1Delay値と第2Delay値とのうち小さい方のDelay値以下の値を設定する。第1仮想バッファ部および第2仮想バッファ部は、基本ストリームおよび3次元ストリームにおけるn番目の画像群について設定部が設定した特定のDelay値に基づく情報を基に、n+1番目の画像群についてのバッファシミュレーションを行う。
上記構成の3D符号化装置によれば、第1のDelay値と、第2のDelay値と、から特定のDelay値を設定することが出来る。そして、3D符号化装置は、設定した特定のDelay値を、基本ストリームを生成する際のバッファシミュレーション(以下、「第1BS」と称す。)と、3次元ストリームを生成する際のバッファシミュレーション(以下、「第2BS」と称す。)にフィードバックすることが出来る。よって、3D符号化装置は、同一のDelay値に基づく情報を基に、次の画像群についての第1BSおよび第2BSを行うことが出来る。また、簡単な構成で、第1のDelay値と、第2のDelay値とを同一とすることができる。
また、特定のDelay値は、第1のDelay値と第2のDelay値とのうち小さい方のDelay値以下の値であるので、第1BSおよび第2BSのDelay値を同一のDelay値に置き換えてバッファシミュレーションを行う場合でも、常に第1BSおよび第2BSを破綻させることなく、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
また好ましくは、第1仮想バッファ部および第2仮想バッファ部は、入力画像を符号化する際の時刻に関する情報をバッファシミュレーションの結果として第1算出部および第2算出部にそれぞれ出力する。
このようにすれば、3D符号化装置は、符号化する際の時刻に関する情報を基にDelay値を算出することができる。これにより、正確なDelay値を算出しバッファシミュレーションを行うことが出来るため、映像劣化を抑制しながらBD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
また好ましくは、第1仮想バッファ部は、当該第1仮想バッファ部におけるバッファ滞留量をバッファシミュレーションの結果として第1算出部に出力し、第2仮想バッファ部は、当該第2仮想バッファ部におけるバッファ滞留量をバッファシミュレーションの結果として第2算出部に出力する。
このようにすれば、3D符号化装置がバッファ滞留量を用いてバッファシミュレーションを行う場合であっても、基本ストリームに付加するDelay値と3次元ストリームに付加するDelay値とを同一の値にすることができる。これにより、簡易な構成でバッファシミュレーションをした場合であっても、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
また好ましくは、第1仮想バッファ部は、設定部が出力する特定のDelay値が入力された場合、当該特定のDelay値に基づく情報をもとに入力時点における当該第1仮想バッファ部のバッファ滞留量を補正し、n+1番目の画像群についてのバッファシミュレーションを行い、第2仮想バッファ部は、設定部が出力する特定のDelay値が入力された場合、当該特定のDelay値に基づく情報をもとに入力時点における当該第2仮想バッファ部のバッファ滞留量を補正し、n+1番目の画像群についてのバッファシミュレーションを行う。
このようにすれば、特定のDelay値を設定するのに伴い、第1仮想バッファ部および第2仮想バッファ部におけるバッファ滞留量を補正することができる。これにより、3D符号化装置は、第1Delay値および第2Delay値を特定のDelay値に変更した場合でも、バッファ滞留量を用いたバッファシミュレーションを破綻させることなく、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
また好ましくは、3D符号化装置は、符号化部から出力される拡張ストリームを復号化処理する際のバッファシミュレーションを行う第3仮想バッファ部と、第3仮想バッファ部で行われたバッファシミュレーションの結果に基づいて、1画像群毎に拡張ストリームのDelay値である第3Delay値を算出する第3算出部と、をさらに備える。設定部は、第1Delay値、第2Delay値および第3Delay値に基づいて、1画像群毎に特定のDelay値を設定し、設定部は、特定のDelay値として、第1Delay値、第2Delay値および第3Delay値のうち最も小さいDelay値以下の値を設定する。第1仮想バッファ部、第2仮想バッファ部および第3仮想バッファ部は、基本ストリーム、3次元ストリームおよび拡張ストリームにおけるn+1番目の画像群について、設定部が設定した特定のDelay値に基づく情報を基にバッファシミュレーションを行う。
このようにすれば、3D符号化装置は、第1Delay値、第2Delay値および第3Delay値から特定のDelay値を設定することが出来る。そして、3D符号化装置は、設定した特定のDelay値を、第1BSと、第2BSと、拡張ストリームを生成する際のバッファシミュレーション(以下、「第3BS」と称す)にフィードバックすることが出来る。よって、3D符号化装置は、同一のDelay値を基に、n+1番目の画像群についての第1BS、第2BSおよび第3BSを行うことが出来る。また、簡単な構成で、第1Delay値、第2Delay値、および第3Delay値とを同一とすることができる。
また、特定Delay値は、第1Delay値、第2Delay値および第3Delay値のうち最も小さいDelay値以下の値であるので、第1BS、第2BSおよび第3BSのDelay値を同一のDelay値に置き換えてバッファシミュレーションする場合でも、常に第1BS、第2BSおよび第3BSを破綻させることなく、BD規格を満たす基本ストリーム、3次元ストリームおよび拡張ストリームを生成することが可能となる。
また好ましくは、第1仮想バッファ部、第2仮想バッファ部および第3仮想バッファ部は、入力画像を符号化する際の時刻に関する情報をバッファシミュレーションの結果として第1算出部、第2算出部および第3算出部にそれぞれ出力する。
このようにすれば、3D符号化装置は、符号化する際の時刻に関する情報を基にDelay値を算出することができる。これにより、正確なDelay値を算出しバッファシミュレーションを行うことが出来るため、映像劣化を抑制しながらBD規格を満たす基本ストリーム、3次元ストリームおよび拡張ストリームを生成することが可能となる。
また好ましくは、第1仮想バッファ部は、当該第1仮想バッファ部におけるバッファ滞留量をバッファシミュレーションの結果として第1算出部に出力し、第2仮想バッファ部は、当該第2仮想バッファ部におけるバッファ滞留量をバッファシミュレーションの結果として第2算出部に出力し、第3仮想バッファ部は、当該第3仮想バッファ部におけるバッファ滞留量をバッファシミュレーションの結果として第3算出部に出力する。
このようにすれば、3D符号化装置がバッファ滞留量を用いてバッファシミュレーションを行う場合であっても、基本ストリームに付加するDelay値と、3次元ストリームに付加するDelay値と、拡張ストリームに付加するDelay値を同一の値にすることができる。これにより、簡易な構成でバッファシミュレーションを行った場合であっても、BD規格を満たす基本ストリーム、3次元ストリームおよび拡張ストリームを生成することが可能となる。
また好ましくは、第1仮想バッファ部は、設定部が出力する特定のDelay値が入力された場合、当該特定のDelay値に基づく情報をもとに入力時点における当該第1仮想バッファ部のバッファ滞留量を補正し、n+1番目の画像群についてのバッファシミュレーションを行い、第2仮想バッファ部は、設定部が出力する特定のDelay値が入力された場合、当該特定のDelay値に基づく情報をもとに入力時点における当該第2仮想バッファ部のバッファ滞留量を補正し、n+1番目の画像群についてのバッファシミュレーションを行い、第3仮想バッファ部は、設定部が出力する特定のDelay値が入力された場合、当該特定のDelay値に基づく情報をもとに入力時点における当該第3仮想バッファ部のバッファ滞留量を補正し、n+1番目の画像群についてのバッファシミュレーションを行う。
このようにすれば、3D符号化装置において特定のDelay値を設定するのに伴い、第1仮想バッファ部、第2仮想バッファ部および第3仮想バッファ部におけるバッファ滞留量を補正することができる。これにより、3D符号化装置は、第1Delay値、第2Delay値および第3Delay値を特定のDelay値に変更した場合でも、バッファ滞留量を用いたバッファシミュレーションを破綻させることなく、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
また好ましくは、基本ストリームは、3D映像における左目用画像及び右目用画像のいずれか一方の画像を符号化したストリームであり、拡張ストリームは、3D映像における他方の画像について一方の画像との差分を考慮して符号化したストリームである。
本発明の3D符号化装置によれば、簡易な構成で、基本ストリームのDelay値と、3次元ストリームのDelay値を同一とすることができる3次元符号化装置を提供することができる。また、簡易な構成で、基本ストリームと、3次元ストリームのDelay値と、拡張ストリームのDelay値を同一とすることができる3次元符号化装置を提供することができる。
実施形態1に係る3D符号化装置の構成を示す図 実施形態1に係る3D符号化装置の動作の一例を示すフローチャート バッファアンダーフローの状況を説明する図 実施形態2における3D符号化装置の構成を示す図 実施形態2における第1簡易CPB301における仮想バッファ制御を示す図 実施形態2における第2簡易CPB303の仮想バッファ制御の動作を説明するための図 実施形態2に係る3D動画像符号化方法の動作の一例を示すフローチャート 実施形態3における3D符号化装置の構成を示す図 実施形態3に係る3D符号化装置の動作の一例を示すフローチャート 実施形態4における3D符号化装置の構成を示す図 実施形態4に係る3D符号化装置の動作の一例を示すフローチャート
以下、本発明に係る3D符号化装置および3D符号化方法の実施の形態に関して、図面を用いて詳細に説明する。
(実施形態1)
1.概要
実施形態1に係る3D符号化装置は、3D映像信号を符号化する装置である。実施形態1に係る3D符号化装置は、入力画像を符号化し、立体視する際に用いる基本ストリームと、基本映像とは異なる拡張ストリームを生成する符号化装置である。さらに、基本ストリームのみを用いた仮想バッファ制御と、基本ストリームと拡張ストリームを合わせた3次元ストリームを用いた仮想バッファ制御とを行う。
この3D符号化装置の特徴は、これら2つの仮想バッファ制御にて求まる2つのDelay値を基に、特定のDelay値(以下、「特定Delay値」という)を求めることにある。そして、求めた特定Delay値を、このDelay値を求めた後に入力される入力画像を符号化し基本ストリームおよび拡張ストリームを生成する際の仮想バッファ制御に用いることにある。
以下では、特定Delay値は、一例として2つの仮想バッファ制御で求めたDelay値のうち、小さいほうのDelay値とする。なお、特定Delay値は、この値に限定されるものではなく、2つのDelay値よりも小さい値を用いることも出来る。
また、符号化方式としては、H.264/AVCを用いる構成を説明する。なお、用いる符号化方式は、H.264/AVCに限定されるものではなく、他の動画像符号化方式でもよい。つまり、入力画像から基本ストリームと3次元ストリームを符号化する符号化形式であればどのようなものでも構わない。
2.構成
以下、本実施形態1における3D符号化装置に関して、図面を参照しながら説明する。
図1は、本実施形態1に係る3D符号化装置の構成を示す図である。
図1に示すように、3D符号化装置は、第1符号化部101、第1CPB102、第1Delay値算出部103、第2符号化部104、第2CPB105、第2Delay値算出部106、特定Delay値決定部107および多重化部108を備える。ここで、CPBとは、Coded Picture Bufferの略称である。
第1符号化部101は、入力される入力画像を、H.264/AVCを用いて符号化して、基本ストリームを生成する。第1符号化部101は、生成した基本ストリームを多重化部108に出力する。さらに、第1符号化部101は、入力画像を符号化した際に生成される符号化パラメータを第1CPB102および第2CPB105に出力する。また、第1符号化部101は入力画像を基本ストリームに符号化した際の符号量を第1CPB102および第2CPB105に出力する。なお、入力画像を基本ストリームに符号化する際、MVC(multi view coding)を適用するのが好ましい。
第1CPB102は、第1符号化部101から出力される符号化パラメータおよび符号量に基づいて、仮想バッファ制御を行う仮想バッファである。ここで、符号化パラメータとはシンタックス情報を含む符号化に関する情報を示す。第1CPB102は、次の6つの数式に基づき、基本ストリームに関する時間情報tai(n)、taf(n)、tr,n(n)を算出する。第1CPB102は、算出した時間情報を第1Delay値算出部103に出力する。なお、上記時間情報tai(n)、taf(n)、tr,n(n)、および下記6つの数式は、H.264/AVC符号化規格で規定されている。tai(n)は、initial arrival time、つまり、復号器に1ピクチャを構成する最初のデータが到着した時間に関する情報である。taf(n)は、final arrival time、つまり復号器に1ピクチャを構成する最後のデータが到着した時間に関する情報である。tr,n(n)とは、nominal removal time、つまり復号器のバッファから1ピクチャを構成するデータを引き抜く時間に関する情報である。
(数1) taf(n)=tai(n)+b(n)÷BitRate[SchedSelIdx]
(数2) tai(n)=Max(taf(n−1)、tai,earliest(n))
(数3) tai,earliest(n)=tr,n(n)−(initial_cpb_removal_delay[SchedSelIdx]+initial_cpb_removal_delay_offset[SchedSelIdx])÷90000
(数4) tai,earliest(n)=tr,n(n)−(initial_cpb_removal_delay[SchedSelIdx]÷90000)
(数5) tr,n(0)=initial_cpb_removal_delay[SchedSelIdx]÷90000
(数6) tr,n(n)=tr,n(nb)+tc*cpb_removal_delay(n)
ここで、b(n)は、基本ストリームの、第n番目における入力画像の発生符号量である。上記6つの数式における各符号化パラメータは、第1符号化部101の符号化過程において取得できる。
さらに、第1CPB102は、特定Delay値決定部107から入力される特定Delay値を用いて仮想バッファ制御を行う。具体的には、第1CPB102は、(数4)におけるinitial_cpb_removal_delayに、特定Delay値決定部107から受け取った特定Delay値を代入する。そして、第1CPB102は、tai,earliest(n)を算出し、以後の仮想バッファ制御を行う。
第1Delay値算出部103は、第1CPB102が算出した時間情報に基づき、GOP毎にDelay値Δtg、90(n)を以下の式で算出する。
(数7) Δtg、90(n)=90000*(tr,n(n)−taf(n−1))
なお、上記の数式は、H.264/AVC符号化規格で規定される数式である。
第1Delay値算出部103は、算出したDelay値を特定Delay値決定部107に出力する。
第2符号化部104は、入力される入力画像を、H.264/AVC規格に基づいて符号化し、拡張ストリームを生成し、生成した拡張ストリームを多重化部108に出力する。さらに、第2符号化部104は、入力画像を符号化した際に生成される符号化パラメータを第2CPB105に出力する。また、第2符号化部104は入力画像を拡張ストリームに符号化した際の符号量を第2CPB105に出力する。なお、入力画像を拡張ストリームに符号化する際、MVC(multi view coding)を適用するのが好ましい。
第2CPB105は、第1符号化部101および第2符号化部104から出力される符号化パラメータおよび符号量に基づいて、仮想バッファ制御を行う仮想バッファである。第2CPB105は、上記数式1から数式6に基づき、3次元ストリームに関する時間情報tai(n)、taf(n)、tr,n(n)を算出する。第2CPB105は、数式1から数式6に対して、3次元ストリームに関する符号化パラメータを代入する。b(n)は、拡張ストリームの第n番目における入力画像の発生符号量と、基本ストリームの第n番目における入力画像の発生符号量との和である。
さらに、第2CPB105は、特定Delay値決定部107から入力される特定Delay値を用いて仮想バッファ制御を行う。第2CPB105は、(数4)におけるinitial_cpb_removal_delayに、特定Delay値決定部107から受け取った特定Delay値を代入する。そして、第2CPB105は、tai,earliest(n)を算出し、以後の仮想バッファ制御を行う。
第2Delay値算出部106は、第2CPB105が算出した時間情報に基づき、GOP毎にDelay値Δtg、90(n)を(数式7)で算出する。第2Delay値算出部106は、算出したDelay値Δtg、90(n)を特定Delay値決定部107に出力する。
特定Delay値決定部107は、第1Delay値算出部103および第2Delay値算出部106が出力する各Delay値から、特定Delay値を決定(算出)する。例えば、第1Delay値算出部103が求めたDelay値と、第2Delay値算出部106が求めたDelay値とのうち小さい方のDelay値を特定Delay値として決定する。なお、特定Delay値決定部107は、第1Delay値算出部103が出力する第1Delay値、および第2Delay値算出部106が出力する第2Delay値より小さい値を算出して特定Delay値として決定してもよい。特定Delay値決定部107は、決定した特定Delay値を、多重化部108へ出力する。さらに、特定Delay値決定部107は、決定した特定Delay値を、第1CPB102および第2CPB105へ出力する。
多重化部108は、基本ストリームと拡張ストリームを連結して、3次元ストリームを生成する。その際、多重化部108は、3次元ストリーム中に特定Delay値決定部107が出力する特定Delay値を書込む。つまり、多重化部108は基本ストリームのDelay値として特定Delay値決定部107が決定した特定Delay値を書込む。さらに、多重化部108は3次元ストリームのDelay値として特定Delay値決定部107が決定した特定Delay値を書込む。その結果、基本ストリームのDelay値と、3次元ストリームのDelay値を同一とすることができる。なお、H.264/AVCにおいて、基本ストリームのDelay値は、「Buffering period SEI」に書き込まれる。さらに、3次元ストリームのDelay値は、「scalable nesting SEI」中の「Buffering period SEI」に書き込まれる。なお、上記の「Buffering period SEI」、「scalable nesting SEI」および「Buffering period SEI」は、H.264/AVC規格に規定されるシンタックス情報である。
3.動作
次に、本実施形態1に係る3D符号化装置の動作の一例を、図2に示すフローチャートを用いて説明する。
(ステップS201)まず、入力画像が入力されると、第1符号化部101は、当該入力画像を符号化し、基本ストリームを生成する。第1符号化部101は、生成した基本ストリームを多重化部108に出力する。さらに、第1符号化部101は生成した基本ストリームの符号量および符号化パラメータを第1CPB102および第2CPB105に出力する。
(ステップS202)次に、第1CPB102は、第1符号化部101が生成した基本ストリームの符号化パラメータおよび符号量を基に、仮想バッファ制御を行う。第1CPB102は、仮想バッファ制御の過程で生成される時間情報を第1Delay値算出部103に出力する。
(ステップS203)一方、入力画像が入力されると、第2符号化部104は、当該入力画像を符号化し、拡張ストリームを生成する。第2符号化部104は、生成した拡張ストリームを多重化部108に出力する。さらに、第2符号化部104は生成した拡張ストリームの符号量および符号化パラメータを第2CPB105に出力する。
(ステップS204)次に、第2CPB105は、第1符号化部101が生成した基本ストリームの符号量および符号化パラメータと、第2符号化部104が生成した拡張ストリームの符号量および符号化パラメータと、を基に仮想バッファ制御を行う。第2CPB105は、仮想バッファ制御の過程で生成される時間情報を第2Delay値算出部106に出力する。
(ステップS205)ここで、第1符号化部101および第2符号化部104は、符号化対象の入力画像がGOPの終端に位置する入力画像(以下、「終端画像」と称す)か否かを判定する。終端画像でないと判定した場合、ステップS201に移行し、第1符号化部101および第2符号化部104は、GOP内の残りの入力画像を符号化する。終端画像と判定した場合、ステップS206に移行する。
(ステップS206)第1Delay値算出部103は、第1CPB102から出力される時間情報を基に、基本ストリームのDelay値Δtg、90(n)(以下、適宜「第1Delay値」と称す)を算出する。この第1Delay値は、実際に基本ストリームに付加する特定Delay値ではない。特定Delay値は、特定Delay値決定部107で算出される。第1Delay値算出部103は、算出した第1Delay値を特定Delay値決定部107に出力する。
(ステップS207)また、第2Delay値算出部106は、第2CPB105から出力される時間情報を基に、3次元ストリームに適用するDelay値Δtg、90(n)(以下、適宜「第2Delay値」と称す)を算出する。この第2Delay値は、特定Delay値ではない。特定Delay値は、特定Delay値決定部107で算出される。第2Delay値算出部106は、算出した第2Delay値を特定Delay値決定部107に出力する。
(ステップS208)そして、特定Delay値決定部107は、第1Delay値算出部103および第2Delay値算出部106から出力される第1Delay値および第2Delay値のうち小さいほうのDelay値を特定Delay値として決定し、第1CPB102および第2CPB105に出力する。
(ステップS209)最後に、第1CPB102および第2CPB105は、特定Delay値決定部107から出力される特定Delay値に基づいて、特定Delay値が求められたGOPの次のGOPについての仮想バッファ制御を行う。
なお、上記の動作フローは一例であり、各ステップに関しては相互に入れ替えることが出来る。また、S208において生成する特定Delay値は上記の値に限定されるものではなく、例えば第1Delay値算出部103および第2Delay値算出部106から出力されるDelay値よりも小さいDelay値を特定Delay値とする構成にしても構わない。
4.本発明と、本実施形態との対応
本実施形態における「仮想バッファ制御」は、本発明における「バッファシミュレーション」の一例である。本実施形態における「第1符号化部101」および「第2符号化部104」は、本発明における「符号化部」の一例である。本実施形態における「第1CPB102」は、本発明における「第1仮想バッファ部」の一例である。本実施形態における「第2CPB105」は、本発明における「第2仮想バッファ部」の一例である。本実施形態における「第1Delay値算出部103」は、本発明における「第1算出部」の一例である。本実施形態における「第2Delay値算出部106」は、本発明における「第2算出部」の一例である。本実施形態における「特定Delay値決定部107」は、本発明における「設定部」の一例である。
5.まとめ
上記のように、本実施形態の3D符号化装置は、入力画像を符号化し、基本ストリームと拡張ストリームとを生成して出力する第1符号化部101および第2符号化部104と、第1符号化部101から出力される基本ストリームを復号化する際のバッファシミュレーションを行う第1CPB102と、第1符号化部101から出力される基本ストリームと第2符号化部104から出力される拡張ストリームとから得られる3次元ストリームを復号化する際のバッファシミュレーションを行う第2CPB105と、第1CPB102で行われたバッファシミュレーションの結果に基づいて、1GOP毎に基本ストリームのDelay値である第1Delay値を算出する第1Delay値算出部103と、第2CPB105で行われたバッファシミュレーションの結果に基づいて、1GOP毎に3次元ストリームのDelay値である第2Delay値を算出する第2Delay値算出部106と、算出された第1Delay値および第2Delay値に基づいて、1GOP毎に特定Delay値を設定する特定Delay値決定部107とを備える。特定Delay値決定部107は、特定Delay値として、基本ストリームのDelay値と3次元ストリームのDelay値とのうち小さい方のDelay値以下の値を設定する。第1CPB102および第2CPB105は、基本ストリームおよび3次元ストリームにおける、n番目のGOPについて特定Delay値決定部107が設定した特定Delay値を基に、n+1番目のGOPについてのバッファシミュレーションを行う。
このようにすれば、3D符号化装置は、第1のDelay値と第2のDelay値とから特定Delay値を設定することが出来る。そして、3D符号化装置は、設定した特定Delay値を、基本ストリームを生成する際のバッファシミュレーション(以下、第1BSと称す。)と、3次元ストリームを生成する際のバッファシミュレーションにフィードバック(以下、第2BSと称す。)することが出来る。よって、3D符号化装置は、同一のDelay値を基に、次のGOP(n+1番目のGOP)についての第1BSおよび第2BSを行うことが出来る。また、簡単な構成で、第1のDelay値と第2のDelay値とを同一の値に設定することが出来る。
また、特定Delay値は、第1Delay値と第2Delay値とのうち小さい方のDelay値以下の値であるので、第1BSおよび第2BSのDelay値を同一のDelay値に置き換えてバッファシミュレーションする場合でも、常に第1BSおよび第2BSを破綻させることなく、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
また、第1CPB102および第2CPB105は、入力画像を符号化する際の時刻に関する情報をバッファシミュレーションの結果として第1Delay値算出部103および第2Delay値算出部106にそれぞれ出力する。
このようにすれば、3D符号化装置は、符号化する際の時刻に関する情報を基にDelay値を算出することができる。これにより、正確なDelay値を算出しバッファシミュレーションを行うことが出来るため、映像劣化を抑制しながらBD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
(実施形態2)
1.概要
実施形態1は、第1CPB102および第2CPB105から出力される時間情報を基に、第1Delay値算出部103および第2Delay値算出部106においてDelay値を算出した。さらに、第1Delay値算出部103および第2Delay値算出部106から出力される第1Delay値および第2Delay値を同一の値に置き換えたとしても仮想バッファ制御を調整することにより、H.264/AVC規格の制約を破綻させることなく、BD規格を満たす基本ストリームおよび3次元ストリームを生成する。このように実施形態1では、時間情報を用いて仮想バッファ制御を行っていた。
第1CPB102および第2CPB105が実行する仮想バッファ制御は、H.264/AVC規格において規定されるバッファアンダーフローが生じないことを保証するためにも用いられる。
図3は、バッファアンダーフローの状況を説明する図である。バッファアンダーフローとは、仮想バッファ制御におけるバッファ滞留量(以下、「cpb値」と称す)が負値となることを意味する。第1符号化部101および第2符号化部104において、入力画像の符号化開始時点でのcpb値を超える符号量が発生すると、換言すれば、復号器の入力バッファを模した仮想バッファにおいて、入力画像の符号化開始時点でのcpb値を超える引き抜き量が発生すると(入力画像の符号化開始時点での引き抜き可能量以上の符号量が発生すると)、バッファアンダーフローが発生する。そのため、第1符号化部101および第2符号化部104は、入力画像の符号化開始時点でのcpb値よりも小さい符号量を入力画像の最大符号量として設定する。そして、第1符号化部101および第2符号化部104は、実際の符号化時にこの最大符号量を超えることがないように、符号化パラメータを調整する。
上記の点を考慮すると、時間情報を用いた仮想バッファ制御ではなく、cpb値を用いるほうが制御しやすい。また、H.264/AVC規格でCABAC(context adaptive binary arithmetic coding)処理を行う場合、入力画像毎の発生符号量の確定まで、遅延が生じる。そのため、適切なタイミングでcpb値を得ることができない。この理由でも、Delay値による時間表現での仮想バッファ制御ではなく、cpb値に基づく簡易な仮想バッファ制御が必要になる。以上の理由により、仮想バッファ制御として、cpb値による仮想バッファ制御を用いる場合がある。この実装でのcpb値についても、BD規格制限を守るためcpb値を修正する必要が生じる。
実施形態2の目的は、仮想バッファ制御としてcpb値を用いた場合であっても、基本ストリームのDelay値と3次元ストリームのDelay値を同一にすることができる3D符号化装置を提供することを目的とする。
実施形態2では、基本ストリームおよび3次元ストリームの符号化レートおよびcpb値を基に、基本ストリームにおけるDelay値および3次元ストリームにおけるDelay値を算出する。そして、算出した2つのDelay値から特定のDelay値を設定する。
2.構成
以下、実施形態2における3D符号化装置の構成について図面を参照しながら説明する。
図4は、実施形態2における3D符号化装置の構成を示す図である。なお、実施形態1と同様の構成については、同じ番号を付し、その詳細な説明を省略する。
第1簡易CPB301は、第1符号化部101から出力される符号化パラメータおよび符号量に基づいて、cpb値を用いた仮想バッファ制御を行う仮想バッファである。ここで、符号化パラメータとはシンタックス情報を含む符号化に関する情報を示す。なお、符号量は第1符号化部101が入力画像を実際に符号化して得られる符号量または予測値としての符号量である。第1簡易CPB301は基本ストリームにおけるcpb値(以下、「cpb1」と称す)を算出する。第1簡易CPB301は第n番目の入力画像におけるcpb1(n)を次式より算出する。
(数8)cpb1(n)=cpb1(n−1)+(BR1*T)−b1(n)
ここで、BR1は基本ストリームの最大ビットレートを示し、例えば12Mbps等となる。また、Tはピクチャレートの逆数である。要するにTは、基本ストリームに含まれる第(n−1)番目の入力画像から第n番目の入力画像までの時間を示す値である。さらに、b1(n)は基本ストリームにおける第n番目の入力画像の符号量である。なお、基本ストリームの最大ビットレートおよびピクチャレートは3D符号化装置全体を制御する制御部400から与えられる。なお、基本ストリームの最大ビットレートはGOP毎に変化する値としても構わない。また、入力画像に対して固定の最大ビットレートが与えられる構成でも構わない。
また、第1簡易CPB301はcpb1(n)を第1Delay値算出部302に出力する。なお、第1簡易CPB301は例えばGOP終端においてcpb1(n)を第1Delay値算出部302に出力する。
さらに、第1簡易CPB301はCPB値逆換算部306が出力するcpb値を、特定Delay値の算出に用いた第1Delay値および第2Delay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についての仮想バッファ制御に使用する。つまり、現在処理中のGOPの次のGOPについての仮想バッファ制御においては現状のcpb値に置き換えてCPB値逆換算部306が出力するcpb値を用いる。第1簡易CPB301が上記の動作をすることにより、現状のcpb値を置き換えたとしても仮想バッファ制御を破綻させることなく、基本ストリームのDelay値と3次元ストリームのDelay値を同一にすることが可能となる。
第1Delay値算出部302は、第1簡易CPB301から出力されるcpb1および3D符号化装置全体を制御する制御部400から与えられる基本ストリームの最大ビットレートを基に、基本ストリームに対するDelay値を算出する。
図5は、第1簡易CPB301における仮想バッファ制御を示す図である。
図5に示すグラフにおいて、破線で示す傾きは最大ビットレートである。この場合、cpb値とDelay値との関係は図5に示すようになる。例えば、cpb値として1500ビットが与えられ、最大ビットレートが12Mbpsと与えられるとする。この場合、第1Delay値算出部302は、次式よりDelay値を0.125msと算出する。
(数10) (Delay値)=(cpb値)/(最大ビットレート)
第1Delay値算出部302は算出したDelay値を特定Delay値決定部305に出力する。
第2簡易CPB303は、第1符号化部101および第2符号化部104から出力される符号化パラメータおよび符号量に基づいて、cpb値を用いた仮想バッファ制御を行う仮想バッファである。ここで、符号化パラメータとはシンタックス情報を含む符号化に関する情報を示す。なお、符号量は第1符号化部101および第2符号化部104が入力画像を実際に符号化して得られる符号量または予測値としての符号量である。第2簡易CPB303は3次元ストリームにおけるcpb値(以下、cpb2と称す)を算出する。第2簡易CPB303は第n番目における入力画像のcpb2(n)を次式より算出する。
(数11)cpb2(n)=cpb2(n−1)+(BR2*T)−b2(n)
ここで、BR2は3次元ストリームの最大ビットレートを示し、例えば24Mbps等となる。また、Tはピクチャレートの逆数である。要するにTは、3次元ストリームに含まれる第(n−1)番目の入力画像から第n番目の入力画像までの時間を示す値である。さらに、b2(n)は3次元ストリームの第n番目における入力画像の符号量である。つまり、b2(n)は、第1符号化部101から出力される基本ストリームにおける第n番目における入力画像の符号量と、第2符号化部104から出力される拡張ストリームにおける第n番目の入力画像の符号量との和である。なお、3次元ストリームの最大ビットレートおよびピクチャレートは3D符号化装置全体を制御する制御部400から与えられる。なお、3次元ストリームの最大ビットレートはGOP毎に変化する値としても構わない。また、入力画像に対して固定の最大ビットレートが与えられる構成でも構わない。
また、第2簡易CPB303はcpb2(n)を第2Delay値算出部304に出力する。なお第2簡易CPB303は例えばGOP終端においてcpb2を第2Delay値算出部304に出力する。
さらに、第2簡易CPB303はCPB値逆換算部306が出力するcpb値を次のGOPについての仮想バッファ制御に使用する。つまり、特定Delay値の算出に用いた第1Delay値および第2Delay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についての仮想バッファ制御においては、現状のcpb値に置き換えてCPB値逆換算部306が出力するcpb値を用いる。第2簡易CPB303が上記の動作をすることにより、現状のcpb値を置き換えたとしても仮想バッファ制御を破綻させることなく、基本ストリームのDelay値と3次元ストリームのDelay値を同一にすることが可能となる。
第2Delay値算出部304は、第2簡易CPB303から出力されるcpb2および3D符号化装置全体を制御する制御部400から与えられる3次元ストリームの最大ビットレートを基に、3次元ストリームに対するDelay値を算出する。
第2Delay値算出部304は、(数式10)の関係を基に、3次元ストリームのDelay値を算出する。例えば、cpb2として3200ビットが与えられ、最大ビットレートが24Mbpsと与えられるとする。この場合、第2Delay値算出部304は次式よりDelay値を0.133msと算出する。
第2Delay値算出部304は算出したDelay値を特定Delay値決定部305に出力する。
特定Delay値決定部305は、第1Delay値算出部302および第2Delay値算出部304が出力するDelay値から、特定Delay値を決定(算出)する。例えば、第1Delay値算出部302が求めたDelay値と、第2Delay値算出部304が求めたDelay値とのうち小さい方のDelay値に決定して出力する。なお、特定Delay値決定部305は、求めたDelay値より小さい値を算出して出力するようにしてもよい。特定Delay値決定部305は、決定(算出)したDelay値を、CPB値逆換算部306へ出力する。さらに、特定Delay値決定部305は、決定(算出)した特定Delay値を、多重化部108へ出力する。
CPB値逆換算部306は、特定Delay値決定部305から出力される特定Delay値ならびに、3D符号化装置全体を制御する制御部400から与えられる基本ストリームの最大ビットレートおよび3次元ストリームの最大ビットレートを基に、第1簡易CPB301において適用するcpb値および第2Delay値算出部304において適用するcpb値を算出する。CPB値逆換算部306は、算出したcpb値をそれぞれ第1簡易CPB301および第2簡易CPB303に出力する。
例えば、CPB値逆換算部306は特定Delay値決定部305から特定Delay値として0.125msを取得するとする。また、基本ストリームの最大ビットレートを12Mbpsとし、3次元ストリームの最大ビットレートを24Mbpsとする。このとき、CPB値逆換算部306は、第1簡易CPB301および第2簡易CPB303において適用するcpb値を次式から算出する。
(数12) (cpb値)=(Delay値)*(最大ビットレート)
つまり、CPB値逆換算部306は第1簡易CPB301において適用するcpb値を、1500ビットと算出する。さらに、CPB値逆換算部306は第2簡易CPB303において適用するcpb値を、3000ビットと算出する。この場合、特定Delay値決定部305が出力する特定Delay値は第1Delay値算出部302が算出したDelay値であるため、CPB値逆換算部306が第1簡易CPB301に出力するcpb値は元々第1簡易CPB301が出力したcpb値と変わりない。しかし、CPB値逆換算部306が第2簡易CPB303に出力するcpb値は第1Delay値算出部302で算出したDelay値を基に算出されることになる。
3.動作
3−1.第2簡易CPB303の動作
まず、全体動作の説明の前に図面を参照しながら第2簡易CPB303の動作について説明する。
図6は、第2簡易CPB303の仮想バッファ制御の動作を説明するための図である。
図6に示すcpb601は、GOP終端におけるcpb値を示す。第2簡易CPB303はこのcpb値を第2Delay値算出部304に出力する。第2簡易CPB303は、このcpb値を第2Delay値算出部304に出力すると、第2Delay値算出部304、特定Delay値決定部305およびCPB値逆換算部306を介して、補正後のcpb値が入力される。補正後のcpb値は、例えば図6に示すcpb602となる。第2簡易CPB303は、特定Delay値が決定されたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)における仮想バッファ制御においてcpb602を用いることになる。要するに、特定Delay値決定部305におけるDelay値の変更に伴って、第2簡易CPB303のcpb値の補正を行う。
このようにすれば、容易に基本ストリームと3次元ストリームのDelay値を同一に設定することができる。さらに、仮想バッファ制御から得られるDelay値を変更しても、その後の仮想バッファ制御を破綻させることなく入力画像を符号化することができる。また、バッファアンダーフロー回避のために用いられるcpb値についても、BD規格上必要となるDelay値変更の影響を反映することができる。これにより、バッファアンダーフローを抑制するとともに、BD規格を満たす符号化動作を実現することが出来る。
3−2.3D符号化装置の動作
次に、本実施形態2に係る3D動画像符号化方法の動作の一例を、図7に示すフローチャートを用いて説明する。
(ステップS701)まず、入力画像が入力されると、第1符号化部101は、当該入力画像を符号化し、基本ストリームを生成する。第1符号化部101は生成した基本ストリームを多重化部108に出力する。さらに、第1符号化部101は、生成した基本ストリームの符号量および符号化パラメータを第1簡易CPB301および第2簡易CPB303に出力する。
(ステップS702)次に、第1簡易CPB301は、第1符号化部101が生成した基本ストリームの符号化パラメータおよび符号量を基に、cpb値による仮想バッファ制御を行う。
(ステップS703)一方、入力画像が入力されると、第2符号化部104は、当該入力画像を符号化し、拡張ストリームを生成する。第2符号化部104は、生成した拡張ストリームを多重化部108に出力する。さらに、第2符号化部104は生成した拡張ストリームの符号量および符号化パラメータを第2簡易CPB303に出力する。
(ステップS704)次に、第2簡易CPB303は、第1符号化部101が生成した基本ストリームの符号量および符号化パラメータと、第2符号化部104が生成した拡張ストリームの符号量および符号化パラメータと、を基にcpb値による仮想バッファ制御を行う。
(ステップS705)ここで、第1符号化部101および第2符号化部104は、符号化対象に係る入力画像がGOPの終端に位置する入力画像(以下、「終端画像」と称す)か否かを判定する。終端画像でないと判定した場合、S701に移行し、第1符号化部101および第2符号化部104は、GOP内の残りの入力画像を符号化する。終端画像と判定した場合、第1簡易CPB301は、GOPの終端の時刻におけるcpb値を第1Delay値算出部302に出力する。さらに、第2簡易CPB303は、GOPの終端の時刻におけるcpb値を第2Delay値算出部304に出力する。そして、S706に移行する。
(ステップS706)次に、第1Delay値算出部302は、第1簡易CPB301から出力されるcpb値を基に、基本ストリームのDelay値(以下、「第1Delay値」と称す)を算出する。この第1Delay値は、実際に基本ストリームに付加する特定Delay値ではない。実際に付加する特定Delay値は、特定Delay値決定部305で算出される。第1Delay値算出部302は、算出した第1Delay値を特定Delay値決定部305に出力する。
(ステップS707)また、第2Delay値算出部304は、第2簡易CPB303から出力されるcpb値を基に、3次元ストリームに適用するDelay値(以下、「第2Delay値」と称す)を算出する。この第2Delay値は、特定Delay値ではない。実際に付加する特定Delay値は、特定Delay値決定部305で算出される。第2Delay値算出部304は、算出した第2Delay値を特定Delay値決定部305に出力する。
(ステップS708)そして、特定Delay値決定部305は、第1Delay値算出部302および第2Delay値算出部304から出力される第1Delay値および第2Delay値のうち小さいほうのDelay値を特定Delay値とし、CPB値逆換算部306に出力する。
(ステップS709)そしてCPB値逆換算部306は、特定Delay値決定部305が出力する特定Delay値を基に、第1簡易CPB301および第2簡易CPB303で利用するcpb値をそれぞれ算出する。CPB値逆換算部306は、算出したcpb値をそれぞれ第1簡易CPB301および第2簡易CPB303に出力する。
(ステップS710)最後に、第1簡易CPB301および第2簡易CPB303は、CPB値逆換算部306から出力されるcpb値に基づいて、特定Delay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についての仮想バッファ制御を行う。
なお、上記の動作フローは一例であり、各ステップに関しては相互に入れ替えることが出来る。また、S708において生成する特定Delay値は上記の値に限定されるものではなく、例えば第1Delay値算出部302および第2Delay値算出部304から出力される第1Delay値および第2Delay値よりも小さいDelay値を特定Delay値とする構成にしても構わない。
4.まとめ
上記のように、本実施形態における3D符号化装置は、入力画像を符号化し、基本ストリームと拡張ストリームとを生成して出力する第1符号化部101および第2符号化部104と、第1符号化部101から出力される基本ストリームを復号化する際のバッファシミュレーションを行う第1簡易CPB301と、第1符号化部101から出力される基本ストリームと第2符号化部104から出力される拡張ストリームとから得られる3次元ストリームを復号化する際のバッファシミュレーションを行う第2簡易CPB303と、第1簡易CPB301で行われたバッファシミュレーションの結果に基づいて、1GOP毎に基本ストリームのDelay値である第1Delay値を算出する第1Delay値算出部302と、第2簡易CPB303で行われたバッファシミュレーションの結果に基づいて、1GOP毎に3次元ストリームのDelay値である第2Delay値を算出する第2Delay値算出部304と、算出された第1Delay値および第2Delay値に基づいて、1GOP毎に特定のDelay値を設定する特定Delay値決定部305と、を備える。特定Delay値決定部305は、特定Delay値として、基本ストリームのDelay値と3次元ストリームのDelay値とのうち小さい方のDelay値以下の値を設定する。第1簡易CPB301および第2簡易CPB303は、基本ストリームおよび3次元ストリームにおけるn番目のGOPについて特定Delay値決定部305が設定した特定Delay値を基に、n+1番目のGOPについてのバッファシミュレーションを行う。ここで、第1簡易CPB301は、特定Delay値決定部305が出力する特定Delay値が入力された場合、当該特定Delay値をもとに入力時点における当該第1簡易CPB301のバッファ滞留量を補正し、特定のDelay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についてのバッファシミュレーションを行い、第2簡易CPB303は、特定Delay値決定部305が出力する特定Delay値が入力された場合、当該特定Delay値をもとに入力時点における当該第2簡易CPB303のバッファ滞留量を補正し、特定Delay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についてのバッファシミュレーションを行う。
このようにすれば、3D符号化装置がバッファ滞留量を用いてバッファシミュレーションを行う場合であっても、基本ストリームに付加するDelay値と3次元ストリームに付加するDelay値とを簡単な構成で同一の値にすることができる。これにより、簡易な構成でバッファシミュレーションを行った場合であっても、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
また、特定Delay値は、第1Delay値と第2Delay値とのうち小さい方のDelay値以下の値であるので、第1BSおよび第2BSのDelay値を同一のDelay値に置き換えてバッファシミュレーションする場合でも、常に第1BSおよび第2BSを破綻させることなく、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
また、第1簡易CPB301は、特定Delay値決定部305が出力する特定Delay値が入力された場合、当該特定Delay値をもとに入力時点における当該第1簡易CPB301のバッファ滞留量を補正し、特定のDelay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についてのバッファシミュレーションを行い、第2簡易CPB303は、特定Delay値決定部305が出力する特定Delay値が入力された場合、当該特定Delay値をもとに入力時点における当該第2簡易CPB303のバッファ滞留量を補正し、特定のDelay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についてのバッファシミュレーションを行う。
このようにすれば、特定Delay値を設定するのに伴い、第1簡易CPB301および第2簡易CPB303におけるバッファ滞留量を補正することができる。これにより、3D符号化装置は、第1Delay値および第2Delay値を特定Delay値に変更した場合でも、バッファ滞留量を用いたバッファシミュレーションを破綻させることなく、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
(第3実施形態)
1.概要
実施形態1においては、時間情報を基に算出される基本ストリームのDelay値と、3次元ストリームのDelay値が同一となるように、特定Delay値を算出する構成について説明した。
実施形態3では、時間情報を基に算出される基本ストリームのDelay値と、拡張ストリームのDelay値と、3次元ストリームのDelay値と、が同一となるように、特定Delay値を算出する。
2.構成
以下、実施形態3の3D符号化装置の構成について図面を参照しながら説明する。
図8は、実施形態3における3D符号化装置の構成を示す図である。なお、本実施形態1と同様のものについては同じ番号を付し、その詳細な説明を省略する。
第1Delay値算出部109は、実施形態1の第1Delay値算出部103と基本的に同様の動作を行う。ただし、第1Delay値算出部109は、算出したDelay値を特定Delay値決定部113に出力する点で第1Delay値算出部103と異なる。
第2Delay値算出部110は、実施形態1の第2Delay値算出部106と基本的に同様の動作を行う。ただし、第2Delay値算出部110は、算出したDelay値を特定Delay値決定部113に出力する点で第2Delay値算出部106と異なる。
第3CPB111は、第2符号化部104から出力される符号化パラメータおよび符号量に基づいて、仮想バッファ制御を行う仮想バッファである。第3CPB111は、数式1から数式6に基づき、拡張ストリームに関する時間情報tai(n)、taf(n)、tr,n(n)を算出する。なお、上記時間情報tai(n)、taf(n)、tr,n(n)、および数式1から数式6は、実施形態1で説明した通り、H.264/AVC規格で規定されている。なお、第3CPB111は数式1から数式6に対して、第2符号化部104から出力される拡張ストリームに関する符号化パラメータを代入する。なお、b(n)は、拡張ストリームの第n番目における入力画像の発生符号量である。
さらに、第3CPB111は、特定Delay値決定部113から入力される特定Delay値を用いて仮想バッファ制御を行う。第3CPB111は、(数4)におけるinitial_cpb_removal_delayに、特定Delay値決定部113から受け取った特定Delay値を代入する。そして、第3CPB111は、tai,earliest(n)を算出し、以降の仮想バッファ制御を行う。
第3Delay値算出部112は、第3CPB111が算出した時間情報に基づき、GOP毎にDelay値Δtg、90(n)を(数式7)で算出する。第3Delay値算出部112は、算出したDelay値を特定Delay値決定部113に出力する。
特定Delay値決定部113は、第1Delay値算出部109、第2Delay値算出部110および第3Delay値算出部112が出力するDelay値から、特定Delay値を算出する。例えば、第1Delay値算出部109が求めたDelay値と、第2Delay値算出部110が求めたDelay値と、第3Delay値算出部112が求めたDelay値のうち小さい方のDelay値を特定Delay値として出力する。なお、特定Delay値決定部113は、求めたDelay値より小さい値を出力するようにしてもよい。特定Delay値決定部113は、算出した特定Delay値を、多重化部114へ出力する。さらに、特定Delay値決定部113は、算出した特定Delay値を、第1CPB102、第2CPB105および第3CPB111へ出力する。
多重化部114は、実施形態1の多重化部108と基本的に同じ動作を行う。ただし、多重化部114は、拡張ストリームのDelay値として特定Delay値決定部113が算出した特定Delay値を書込む点で実施形態1の多重化部108と異なる。多重化部114は上記の動作をすることにより、基本ストリームのDelay値と、拡張ストリームのDelay値と、3次元ストリームのDelay値を同一とすることができる。なお、H.264/AVC規格において、拡張ストリームのDelay値は、「Buffering period SEI」等、H.264/AVCに規定されるシンタックスのうち適当な場所に書き込まれる。つまり、再生側において拡張ストリームのDelay値を読み取れる格納場所であれば、どのような場所でも構わない。
3.動作
次に、本実施形態3に係る3D符号化装置の動作の一例を、図9に示すフローチャートを用いて説明する。
(ステップS901)まず、入力画像が入力されると、第1符号化部101は、当該入力画像を符号化し、基本ストリームを生成する。第1符号化部101は、生成した基本ストリームを多重化部114に出力する。さらに、第1符号化部101は生成した基本ストリームの符号量および符号化パラメータを第1CPB102および第2CPB105に出力する。
(ステップS902)次に、第1CPB102は、第1符号化部101が生成した基本ストリームの符号化パラメータおよび符号量を基に、仮想バッファ制御を行う。第1CPB102は、仮想バッファ制御の過程で生成される時間情報を第1Delay値算出部109に出力する。
(ステップS903)一方、入力画像が入力されると、第2符号化部104は、当該入力画像を符号化し、拡張ストリームを生成する。第2符号化部104は、生成した拡張ストリームを多重化部114に出力する。さらに、第2符号化部104は生成した拡張ストリームの符号量および符号化パラメータを第2CPB105および第3CPB111に出力する。
(ステップS904)次に、第2CPB105は、第1符号化部101が生成した基本ストリームの符号量および符号化パラメータと、第2符号化部104が生成した拡張ストリームの符号量および符号化パラメータと、を基に仮想バッファ制御を行う。第2CPB105は、仮想バッファ制御の過程で生成される時間情報を第2Delay値算出部110に出力する。
(ステップS905)次に、第3CPB111は、第2符号化部104が生成した拡張ストリームの符号量および符号化パラメータを基に仮想バッファ制御を行う。第3CPB111は、仮想バッファ制御の過程で生成される時間情報を第3Delay値算出部112に出力する。
(ステップS906)ここで、第1符号化部101および第2符号化部104は、符号化対象に係る入力画像がGOPの終端に位置する入力画像(以下、「終端画像」と称す)か否かを判定する。終端画像でないと判定した場合、S901に移行し、第1符号化部101および第2符号化部104は、GOP内の残りの入力画像を符号化する。終端画像と判定した場合、S907に移行する。
(ステップS907)次に、第1Delay値算出部109は、第1CPB102から出力される時間情報を基に、基本ストリームのDelay値(以下、「第1Delay値」と称す)を算出する。この第1Delay値は、実際に基本ストリームに付加する特定Delay値ではない。特定Delay値は、特定Delay値決定部113で算出される。第1Delay値算出部109は、算出した第1Delay値を特定Delay値決定部113に出力する。
(ステップS908)また、第2Delay値算出部110は、第2CPB105から出力される時間情報を基に、3次元ストリームに適用するDelay値(以下、「第2Delay値」と称す)を算出する。この第2Delay値は、特定Delay値ではない。特定Delay値は、特定Delay値決定部113で算出される。第2Delay値算出部110は、算出した第2Delay値を特定Delay値決定部113に出力する。
(ステップS909)また、第3Delay値算出部112は、第3CPB111から出力される時間情報を基に、拡張ストリームに適用するDelay値(以下、「第3Delay値」と称す)を算出する。この第3Delay値は、特定Delay値ではない。特定Delay値は、特定Delay値決定部113で算出される。第3Delay値算出部112は、算出した第3Delay値を特定Delay値決定部113に出力する。
(ステップS910)そして、特定Delay値決定部113は、第1Delay値算出部109、第2Delay値算出部110および第3Delay値算出部112から出力される第1Delay値、第2Delay値および第3Delay値のうち、最も小さいDelay値を特定Delay値として決定し第1CPB102、第2CPB105および第3CPB111に出力する。
(ステップS911)最後に、第1CPB102、第2CPB105および第3CPB111は、特定Delay値決定部113から出力される特定Delay値に基づいて、特定Delay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についての仮想バッファ制御を行う。
なお、上記の動作フローは一例であり、各ステップに関しては相互に入れ替えることが出来る。また、特定Delay値決定部113が生成する特定Delay値は上記の値に限定されるものではなく、例えば第1Delay値算出部109、第2Delay値算出部110および第3Delay値算出部112から出力されるDelay値のうち最も小さいDelay値よりも小さいDelay値を特定Delay値とする構成にしても構わない。
4.まとめ
上記のように、本実施形態3における3D符号化装置は、入力画像を符号化し、基本ストリームと拡張ストリームとを生成して出力する第1符号化部101および第2符号化部104と、第1符号化部101から出力される基本ストリームを復号化する際のバッファシミュレーションを行う第1CPB102と、第1符号化部101から出力される基本ストリームと第2符号化部104から出力される拡張ストリームとから得られる3次元ストリームを復号化する際のバッファシミュレーションを行う第2CPB105と、拡張ストリームを復号化する際のバッファシミュレーションを行う第3CPB111と、第1CPB102で行われたバッファシミュレーションの結果に基づいて、1GOP毎に基本ストリームのDelay値である第1Delay値を算出する第1Delay値算出部109と、第2CPB105で行われたバッファシミュレーションの結果に基づいて、1GOP毎に3次元ストリームのDelay値である第2Delay値を算出する第2Delay値算出部110と、第3CPB111で行われたバッファシミュレーションの結果に基づいて、1GOP毎に拡張ストリームのDelay値である第3Delay値を算出する第3Delay値算出部112と、第1Delay値、第2Delay値および第3Delay値に基づいて、特定のDelay値を設定する特定Delay値決定部113と、を備える。特定Delay値決定部113は、第1Delay値、第2Delay値および第3Delay値のうち最も小さいDelay値以下の値を決定する。第1CPB102、第2CPB105および第3CPB111は、基本ストリーム、3次元ストリームおよび拡張ストリームにおけるn番目のGOPについて特定Delay値決定部113が設定した特定Delay値を基に、n+1番目のGOPについてのバッファシミュレーションを行う。
このような実施形態3における3D符号化装置によれば、第1Delay値、第2Delay値および第3Delay値から特定Delay値を設定することが出来る。そして、3D符号化装置は、設定した特定Delay値を、第1BSと、第2BSと、拡張ストリームを生成する際のバッファシミュレーション(以下、第3BSと称す)にフィードバックすることが出来る。よって、3D符号化装置は、同一のDelay値を基に、次のGOPについての第1BSと、第2BSと、第3BSとを行うことが出来る。また、簡単な構成で、第1のDelay値と、第2のDelay値と、第3のDelay値とを同一の値に設定することが出来る。
また、特定Delay値は、第1Delay値、第2Delay値および第3Delay値のうち最も小さいDelay値以下の値であるので、第1BS、第2BSおよび第3BSのDelay値を同一のDelay値に置き換えてバッファシミュレーションする場合でも、常に第1BS、第2BSおよび第3BSを破綻させることなく、BD規格を満たす基本ストリーム、3次元ストリームおよび拡張ストリームを生成することが可能となる。
また好ましくは、第1CPB102、第2CPB105および第3CPB111は、入力画像を符号化する際の時刻に関する情報をバッファシミュレーションの結果として第1Delay値算出部109、第2Delay値算出部110および第3Delay値算出部112にそれぞれ出力する。
このようにすれば、3D符号化装置は、符号化する際の時刻に関する情報を基にDelay値を算出することができる。これにより、正確なDelay値を算出しバッファシミュレーションを行うことが出来るため、映像劣化を抑制しながらBD規格を満たす基本ストリーム、3次元ストリームおよび拡張ストリームを生成することが可能となる。
(第4実施形態)
1.概要
実施形態2においては、cpb値を基に算出される基本ストリームのDelay値と、3次元ストリームのDelay値が同一となるように、特定Delay値を算出する構成について説明した。
実施形態4では、cpb値を基に算出される基本ストリームのDelay値と、拡張ストリームのDelay値と、3次元ストリームのDelay値と、が同一となるように、特定Delay値を算出する。
2.構成
以下、実施形態4における3D符号化装置について図面を参照しながら説明する。
図10は、実施形態4における3D符号化装置の構成を示す図である。なお、実施形態2と同様の構成については同じ番号を付し、その詳細な説明を省略する。
第1簡易CPB301および第2簡易CPB303は、CPB値逆換算部306が出力するcpb値の代わりに、CPB値逆換算部312が出力する特定のcpb値を用いて仮想バッファ制御を行う。
第1Delay値算出部307は、実施形態2の第1Delay値算出部302と基本的に同様の動作を行う。ただし、第1Delay値算出部307は、算出したDelay値を特定Delay値決定部311に出力する点で実施形態2の第1Delay値算出部302と異なる。
第2Delay値算出部308は、実施形態2の第2Delay値算出部304と基本的に同様の動作を行う。ただし、第2Delay値算出部308は、算出したDelay値を特定Delay値決定部311に出力する点で実施形態2の第2Delay値算出部304と異なる。
第3簡易CPB309は、第2符号化部104から出力される符号化パラメータおよび符号量に基づいて、cpb値を用いた仮想バッファ制御を行う仮想バッファである。ここで、符号化パラメータとはシンタックス情報を含む符号化に関する情報を示す。なお、符号量は第2符号化部104が入力画像を実際に符号化して得られる符号量または予測値としての符号量である。第3簡易CPB309は拡張ストリームにおけるcpb値(以下、「cpb3」と称す)を算出する。第3簡易CPB309は第n番目における入力画像のcpb3(n)を次式より算出する。
(数12)cpb3(n)=cpb3(n−1)+(BR3*T)−b3(n)
ここで、BR3は拡張ストリームの最大ビットレートを示し、例えば12Mbps等となる。また、Tはピクチャレートの逆数である。要するにTは、拡張ストリームに含まれる第(n−1)番目の入力画像から第n番目の入力画像までの時間を示す値である。さらに、b3(n)は拡張ストリームにおける第n番目の入力画像の符号量である。つまり、b3(n)は、第2符号化部104から出力される拡張ストリームにおける第n番目における入力画像の符号量となる。なお、拡張ストリームの最大ビットレートおよびピクチャレートは3D符号化装置全体を制御する制御部(図示せず)から与えられる。なお、拡張ストリームの最大ビットレートはGOP毎に変化する値としても構わない。また、入力画像に対して固定の最大ビットレートが与えられる構成でも構わない。
また、第3簡易CPB309はcpb3(n)を第3Delay値算出部310に出力する。なお、第3簡易CPB309は例えばGOP終端においてcpb3(n)を第3Delay値算出部310に出力する。
さらに、第3簡易CPB309はCPB値逆換算部312が出力するcpb値を次のGOPについての仮想バッファ制御に使用する。つまり、次のGOPについての仮想バッファ制御においては、現状のcpb値に置き換えてCPB値逆換算部306が出力するcpb値を用いる。第3簡易CPB309が上記の動作をすることにより、現状のcpb値を置き換えたとしても仮想バッファ制御を破綻させることなく、基本ストリームのDelay値と3次元ストリームのDelay値と拡張ストリームのDelay値を同一にすることが可能となる。
第3Delay値算出部310は、第3簡易CPB309から出力されるcpb3および3D符号化装置全体を制御する制御部400から与えられる拡張ストリームの最大ビットレートを基に、拡張ストリームに対するDelay値を算出する。
第3Delay値算出部310は、(数式10)の関係を基に、拡張ストリームのDelay値を算出する。例えば、cpb3として3200ビットが与えられ、最大ビットレートが12Mbpsと与えられるとする。この場合、第3Delay値算出部310は(数式10)よりDelay値を0.266msと算出する。
第3Delay値算出部310は算出したDelay値を特定Delay値決定部311に出力する。
特定Delay値決定部311は、第1Delay値算出部307、第2Delay値算出部308および第3Delay値算出部310が出力するDelay値から、特定Delay値を算出する。例えば、第1Delay値算出部307が求めたDelay値と、第2Delay値算出部308が求めたDelay値と、第3Delay値算出部310が求めたDelay値のうち最も小さいDelay値をCPB値逆換算部312に出力する。なお、特定Delay値決定部311は、第1Delay値算出部307が求めたDelay値と、第2Delay値算出部308が求めたDelay値と、第3Delay値算出部310が求めたDelay値のうち最も小さいDelay値より小さい値を出力するようにしてもよい。特定Delay値決定部311は、算出したDelay値を、CPB値逆換算部312へ出力する。さらに、特定Delay値決定部311は、算出した特定Delay値を、多重化部114へ出力する。
CPB値逆換算部312は、特定Delay値決定部311から出力される特定Delay値ならびに、3D符号化装置全体を制御する制御部から与えられる基本ストリームの最大ビットレート、3次元ストリームの最大ビットレートおよび拡張ストリームの最大ビットレートを基に、第1簡易CPB301、第2簡易CPB303および第3簡易CPB309において適用するcpb値をそれぞれ算出する。CPB値逆換算部312は、算出したcpb値を第1簡易CPB301、第2簡易CPB303および第3簡易CPB309にそれぞれ出力する。
例えば、CPB値逆換算部312は特定Delay値決定部311から特定Delay値として0.125msを取得するとする。また、基本ストリームの最大ビットレートを12Mbpsとし、3次元ストリームの最大ビットレートを24Mbpsとし、拡張ストリームの最大ビットレートを12Mbpsとする。このとき、CPB値逆換算部312は第1簡易CPB301、第2簡易CPB303および第3簡易CPB309において適用するcpb値を(数式12)から算出する。
つまり、CPB値逆換算部312は第1簡易CPB301において適用するcpb値を、1500ビットと算出する。さらに、CPB値逆換算部312は第2簡易CPB303において適用するcpb値を、3000ビットと算出する。また、CPB値逆換算部312は第3簡易CPB309において適用するcpb値を、1500ビットと算出する。
3.動作
次に、本実施形態4に係る3D符号化装置の動作の一例を、図11に示すフローチャートを用いて説明する。
(ステップS1101)まず、入力画像が入力されると、第1符号化部101は、当該入力画像を符号化し、基本ストリームを生成する。第1符号化部101は生成した基本ストリームを多重化部114に出力する。さらに、第1符号化部101は、生成した基本ストリームの符号量および符号化パラメータを第1簡易CPB301および第2簡易CPB303に出力する。
(ステップS1102)次に、第1簡易CPB301は、第1符号化部101が生成した基本ストリームの符号化パラメータおよび符号量を基に、cpb値による仮想バッファ制御を行う。
(ステップS1103)一方、入力画像が入力されると、第2符号化部104は、当該入力画像を符号化し、拡張ストリームを生成する。第2符号化部104は、生成した拡張ストリームを多重化部114に出力する。さらに、第2符号化部104は生成した拡張ストリームの符号量および符号化パラメータを第2簡易CPB303および第3簡易CPB309に出力する。
(ステップS1104)次に、第2簡易CPB303は、第1符号化部101が生成した基本ストリームの符号量および符号化パラメータと、第2符号化部104が生成した拡張ストリームの符号量および符号化パラメータと、を基にcpb値による仮想バッファ制御を行う。
(ステップS1105)さらに、第3簡易CPB309は、第2符号化部104が生成した拡張ストリームの符号量および符号化パラメータを基にcpb値による仮想バッファ制御を行う。
(ステップS1106)ここで、第1符号化部101および第2符号化部104は、符号化対象に係る入力画像がGOPの終端に位置する入力画像(以下、「終端画像」と称す)か否かを判定する。終端画像でないと判定した場合、S1101に移行し、第1符号化部101および第2符号化部104は、GOP内の残りの入力画像を符号化する。終端画像と判定した場合、第1簡易CPB301はGOPの終端の時刻におけるcpb値を第1Delay値算出部307に出力する。さらに、第2簡易CPB303はGOPの終端の時刻におけるcpb値を第2Delay値算出部308に出力する。さらに、第3簡易CPB309はGOPの終端の時刻におけるcpb値を第3Delay値算出部310に出力する。そして、第2Delay値算出部1107に移行する。
(ステップS1107)次に、第1Delay値算出部307は、第1簡易CPB301から出力されるcpb値を基に、基本ストリームのDelay値(以下、「第1Delay値」と称す)を算出する。この第1Delay値は、実際に基本ストリームに付加する特定Delay値ではない。実際に付加する特定Delay値は、特定Delay値決定部311で算出される。第1Delay値算出部307は、算出した第1Delay値を特定Delay値決定部311に出力する。
(ステップS1108)また、第2Delay値算出部308は、第2簡易CPB303から出力されるcpb値を基に、3次元ストリームに適用するDelay値(以下、「第2Delay値」と称す)を算出する。この第2Delay値は、特定Delay値ではない。実際に付加する特定Delay値は、特定Delay値決定部311で算出される。第2Delay値算出部308は、算出した第2Delay値を特定Delay値決定部311に出力する。
(ステップS1109)さらに、第3Delay値算出部310は、第3簡易CPB309から出力されるcpb値を基に、拡張ストリームに適用するDelay値(以下、「第3Delay値」と称す)を算出する。この第3Delay値は、特定Delay値ではない。実際に付加する特定Delay値は、特定Delay値決定部311で算出される。第3Delay値算出部310は、算出した第3Delay値を特定Delay値決定部311に出力する。
(ステップS1110)そして、特定Delay値決定部311は、第1Delay値算出部307、第2Delay値算出部308および第3Delay値算出部310から出力される第1Delay値、第2Delay値および第3Delay値のうち最も小さいDelay値を特定Delay値と決定し、CPB値逆換算部312に出力する。
(ステップS1111)そしてCPB値逆換算部312は、特定Delay値決定部311が出力する特定Delay値を基に、第1簡易CPB301、第2簡易CPB303および第3簡易CPB309で利用するcpb値をそれぞれ算出する。CPB値逆換算部312は、算出したcpb値をそれぞれ第1簡易CPB301、第2簡易CPB303および第3簡易CPB309に出力する。
(ステップS1112)最後に、第1簡易CPB301、第2簡易CPB303および第3簡易CPB309は、CPB値逆換算部312から出力されるcpb値に基づいて、特定Delay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についての仮想バッファ制御を行う。
なお、上記の動作フローは一例であり、各ステップに関しては相互に入れ替えることが出来る。また、S1110において生成する特定Delay値は上記の値に限定されるものではなく、例えば第1Delay値算出部307、第2Delay値算出部308および第3Delay値算出部310から出力される第1Delay値、第2Delay値および第3Delay値よりも小さいDelay値を特定Delay値とする構成にしても構わない。
4.まとめ
上記のように、本実施形態における3D符号化装置は、入力画像を符号化し、基本ストリームと拡張ストリームとを生成して出力する第1符号化部101および第2符号化部104と、基本ストリームを復号化する際のバッファシミュレーションを行う第1簡易CPB301と、第1符号化部101から出力される基本ストリームと第2符号化部104から出力される拡張ストリームとから得られる3次元ストリームを復号化処理する際のバッファシミュレーションを行う第2簡易CPB303と、拡張ストリームを復号化する際のバッファシミュレーションを行う第3簡易CPB309と、第1簡易CPB301で行われたバッファシミュレーションの結果に基づいて、1GOP毎に基本ストリームのDelay値である第1Delay値を算出する第1Delay値算出部307と、第2簡易CPB303で行われたバッファシミュレーションの結果に基づいて、1GOP毎に3次元ストリームのDelay値である第2Delay値を算出する第2Delay値算出部308と、第3簡易CPB309で行われたバッファシミュレーションの結果に基づいて、1GOP毎に、拡張ストリームのDelay値である第3Delay値を算出する第3Delay値算出部310と、第1Delay値、第2Delay値および第3Delay値に基づいて、1GOP毎に特定のDelay値を設定する特定Delay値決定部311と、を備える。特定Delay値決定部113は、第1Delay値、第2Delay値および第3Delay値のうち最も小さいDelay値以下の値を決定する。第1簡易CPB301、第2簡易CPB303および第3簡易CPB309は、基本ストリーム、3次元ストリームおよび拡張ストリームにおけるn番目のGOPについて特定Delay値決定部311が設定した特定Delay値を基に、n+1番目のGOPについてのバッファシミュレーションを行う。ここで、第1簡易CPB301は、当該第1簡易CPB301におけるバッファ滞留量をバッファシミュレーションの結果として第1Delay値算出部307に出力し、第2簡易CPB303は、当該第2簡易CPB303におけるバッファ滞留量をバッファシミュレーションの結果として第2Delay値算出部308に出力し、第3簡易CPB309は、当該第3簡易CPB309におけるバッファ滞留量をバッファシミュレーションの結果として第3Delay値算出部310に出力する。
このようにすれば、本実施形態4における3D符号化装置がバッファ滞留量を用いてバッファシミュレーションを行う場合であっても、基本ストリームに付加するDelay値と、3次元ストリームに付加するDelay値と拡張ストリームに付加するDelay値を簡単な構成で同一の値にすることができる。これにより、簡易な構成でバッファシミュレーションを行った場合であっても、BD規格を満たす基本ストリーム、3次元ストリームおよび拡張ストリームを生成することが可能となる。
また、特定Delay値は、第1Delay値、第2Delay値および第3Delay値のうち最も小さいDelay値以下の値であるので、第1BS、第2BSおよび第3BSのDelay値を同一のDelay値に置き換えてバッファシミュレーションする場合でも、常に第1BS、第2BSおよび第3BSを破綻させることなく、BD規格を満たす基本ストリーム、3次元ストリームおよび拡張ストリームを生成することが可能となる。
また好ましくは、第1簡易CPB301は、特定Delay値決定部311が出力する特定Delay値が入力された場合、当該特定Delay値をもとに入力時点における当該第1簡易CPB301のバッファ滞留量を補正し、特定のDelay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についてのバッファシミュレーションを行い、第2簡易CPB303は、特定Delay値決定部311が出力する特定Delay値が入力された場合、当該特定Delay値をもとに入力時点における当該第2簡易CPB303のバッファ滞留量を補正し、特定のDelay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についてのバッファシミュレーションを行い、第3簡易CPB309は、特定Delay値決定部311が出力する特定Delay値が入力された場合、当該特定Delay値をもとに入力時点における当該第3簡易CPB309のバッファ滞留量を補正し、特定のDelay値が求められたGOP(n番目のGOP)の次のGOP(n+1番目のGOP)についてのバッファシミュレーションを行う。
このようにすれば、3D符号化装置において特定Delay値を設定するのに伴い、第1簡易CPB301、第2簡易CPB303および第3簡易CPB309におけるバッファ滞留量を補正することができる。これにより、3D符号化装置は、第1Delay値、第2Delay値および第3Delay値を特定Delay値に変更した場合でも、バッファ滞留量を用いたバッファシミュレーションを破綻させることなく、BD規格を満たす基本ストリームおよび3次元ストリームを生成することが可能となる。
本発明に係る3D符号化装置は、映像信号を符号化するデジタルテレビ、ビデオプレイヤー、パーソナルコンピュータ、携帯電話機等に適用できる。
101 第1符号化部
102 第1CPB
103、109、302、307 第1Delay値算出部
104 第2符号化部
105 第2CPB
106、110、304、308 第2Delay値算出部
107、305、311 特定Delay値決定部
108、114 多重化部
111 第3CPB
112 第3Delay値算出部
301 第1簡易CPB
303 第2簡易CPB
306、312 CPB値逆変換部
309 第3簡易CPB
310 第3Delay値算出部
400 制御部
601、602 cpb

Claims (9)

  1. 入力画像を符号化し、複数の画像群を含む基本ストリームおよび拡張ストリームを含む3次元ストリームを生成して出力する符号化部と、
    前記符号化部から出力される前記基本ストリームを復号化する際のバッファシミュレーションを行う第1仮想バッファ部と、
    前記符号化部から出力される前記3次元ストリームを復号化する際のバッファシミュレーションを行う第2仮想バッファ部と、
    前記第1仮想バッファ部で行われたバッファシミュレーションの結果に基づいて、1画像群毎に前記基本ストリームのDelay値である第1Delay値を算出する第1算出部と、
    前記第2仮想バッファ部で行われたバッファシミュレーションの結果に基づいて、1画像群毎に前記3次元ストリームのDelay値である第2Delay値を算出する第2算出部と、
    前記算出された第1Delay値および第2Delay値に基づいて、1画像群毎に特定のDelay値を設定する設定部と、を備え、
    前記設定部は、特定のDelay値として、前記第1Delay値と前記第2Delay値とのうち小さい方のDelay値以下の値を設定し、
    前記第1仮想バッファ部および前記第2仮想バッファ部は、基本ストリームおよび3次元ストリームにおけるn番目の画像群について前記設定部が設定した特定のDelay値に基づく情報を基に、n+1番目の画像群についてのバッファシミュレーションを行う、
    3D符号化装置。
  2. 前記第1仮想バッファ部および前記第2仮想バッファ部は、前記入力画像を符号化する際の時刻に関する情報をバッファシミュレーションの結果として前記第1算出部および前記第2算出部にそれぞれ出力する請求項1に記載の3D符号化装置。
  3. 前記第1仮想バッファ部は、当該第1仮想バッファ部におけるバッファ滞留量をバッファシミュレーションの結果として前記第1算出部に出力し、
    前記第2仮想バッファ部は、当該第2仮想バッファ部におけるバッファ滞留量をバッファシミュレーションの結果として前記第2算出部に出力する請求項1に記載の3D符号化装置。
  4. 前記第1仮想バッファ部は、前記設定部が出力する特定のDelay値が入力された場合、当該特定のDelay値に基づく情報をもとに入力時点における当該第1仮想バッファ部のバッファ滞留量を補正し、前記n+1番目の画像群についてのバッファシミュレーションを行い、
    前記第2仮想バッファ部は、前記設定部が出力する特定のDelay値が入力された場合、当該特定のDelay値に基づく情報をもとに入力時点における当該第2仮想バッファ部のバッファ滞留量を補正し、前記n+1番目の画像群についてのバッファシミュレーションを行う請求項3に記載の3D符号化装置。
  5. 前記3D符号化装置は、
    前記符号化部から出力される拡張ストリームを復号化処理する際のバッファシミュレーションを行う第3仮想バッファ部と、
    前記第3仮想バッファ部で行われたバッファシミュレーションの結果に基づいて、1画像群毎に前記拡張ストリームのDelay値である第3Delay値を算出する第3算出部と、をさらに備え、
    前記設定部は、前記第1Delay値、前記第2Delay値および前記第3Delay値に基づいて、1画像群毎に特定のDelay値を設定し、
    前記設定部は、特定のDelay値として、前記第1Delay値、前記第2Delay値および前記第3Delay値のうち最も小さいDelay値以下の同一の値を設定し、
    前記第1仮想バッファ部、前記第2仮想バッファ部および前記第3仮想バッファ部は、基本ストリーム、3次元ストリームおよび拡張ストリームにおける前記n+1番目の画像群について、前記設定部が設定した特定のDelay値に基づく情報を基にバッファシミュレーションを行う、
    請求項1に記載の3D符号化装置。
  6. 前記第1仮想バッファ部、前記第2仮想バッファ部および前記第3仮想バッファ部は、前記入力画像を符号化する際の時刻に関する情報をバッファシミュレーションの結果として前記第1算出部、前記第2算出部および前記第3算出部にそれぞれ出力する請求項5に記載の3D符号化装置。
  7. 前記第1仮想バッファ部は、当該第1仮想バッファ部におけるバッファ滞留量をバッファシミュレーションの結果として前記第1算出部に出力し、
    前記第2仮想バッファ部は、当該第2仮想バッファ部におけるバッファ滞留量をバッファシミュレーションの結果として前記第2算出部に出力し、
    前記第3仮想バッファ部は、当該第3仮想バッファ部におけるバッファ滞留量をバッファシミュレーションの結果として前記第3算出部に出力する請求項5に記載の3D符号化装置。
  8. 前記第1仮想バッファ部は、前記設定部が出力する特定のDelay値が入力された場合、当該特定のDelay値に基づく情報をもとに入力時点における当該第1仮想バッファ部のバッファ滞留量を補正し、前記n+1番目の画像群についてのバッファシミュレーションを行い、
    前記第2仮想バッファ部は、前記設定部が出力する特定のDelay値が入力された場合、当該特定のDelay値に基づく情報をもとに入力時点における当該第2仮想バッファ部のバッファ滞留量を補正し、前記n+1番目の画像群についてのバッファシミュレーションを行い、
    前記第3仮想バッファ部は、前記設定部が出力する特定のDelay値が入力された場合、当該特定のDelay値に基づく情報をもとに入力時点における当該第3仮想バッファ部のバッファ滞留量を補正し、前記n+1番目の画像群についてのバッファシミュレーションを行う請求項7に記載の3D符号化装置。
  9. 前記基本ストリームは、3D映像における左目用画像及び右目用画像のいずれか一方の画像を符号化したストリームであり、
    前記拡張ストリームは、3D映像における他方の画像について前記一方の画像との差分を考慮して符号化したストリームである請求項1に記載の3D符号化装置。
JP2011543946A 2010-08-18 2011-08-01 3d符号化装置 Active JP4889836B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011543946A JP4889836B1 (ja) 2010-08-18 2011-08-01 3d符号化装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010182690 2010-08-18
JP2010182690 2010-08-18
PCT/JP2011/004358 WO2012023248A1 (ja) 2010-08-18 2011-08-01 3d符号化装置
JP2011543946A JP4889836B1 (ja) 2010-08-18 2011-08-01 3d符号化装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011269756A Division JP2012095320A (ja) 2010-08-18 2011-12-09 3d符号化装置

Publications (2)

Publication Number Publication Date
JP4889836B1 JP4889836B1 (ja) 2012-03-07
JPWO2012023248A1 true JPWO2012023248A1 (ja) 2013-10-28

Family

ID=45604919

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011543946A Active JP4889836B1 (ja) 2010-08-18 2011-08-01 3d符号化装置
JP2011269756A Withdrawn JP2012095320A (ja) 2010-08-18 2011-12-09 3d符号化装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011269756A Withdrawn JP2012095320A (ja) 2010-08-18 2011-12-09 3d符号化装置

Country Status (5)

Country Link
US (1) US9124868B2 (ja)
EP (1) EP2608538B1 (ja)
JP (2) JP4889836B1 (ja)
CN (1) CN103081465B (ja)
WO (1) WO2012023248A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3065410B1 (en) 2013-11-01 2019-02-06 Sony Corporation Transmission apparatus, transmission method, reception apparatus, and reception method
US11418851B1 (en) * 2021-06-28 2022-08-16 Synamedia Limited Virtual set top

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001069530A (ja) * 2000-07-28 2001-03-16 Fujitsu Ltd 立体映像高能率符号化装置
US7411611B2 (en) * 2003-08-25 2008-08-12 Barco N. V. Device and method for performing multiple view imaging by means of a plurality of video processing devices
TW200845724A (en) 2004-06-02 2008-11-16 Matsushita Electric Ind Co Ltd Multiplexing apparatus and demultiplexing apparatus
JP4311570B2 (ja) 2005-07-01 2009-08-12 株式会社ソニー・コンピュータエンタテインメント 再生装置、ビデオ復号装置および同期再生方法
JP4793366B2 (ja) * 2006-10-13 2011-10-12 日本ビクター株式会社 多視点画像符号化装置、多視点画像符号化方法、多視点画像符号化プログラム、多視点画像復号装置、多視点画像復号方法、及び多視点画像復号プログラム
JP2009272706A (ja) * 2008-04-30 2009-11-19 Toshiba Corp 動画像トランスコード装置およびその方法
JP5568465B2 (ja) * 2008-09-18 2014-08-06 パナソニック株式会社 画像復号装置、画像符号化装置、画像復号方法、画像符号化方法およびプログラム

Also Published As

Publication number Publication date
EP2608538A4 (en) 2016-01-13
EP2608538A1 (en) 2013-06-26
JP2012095320A (ja) 2012-05-17
US20130162770A1 (en) 2013-06-27
WO2012023248A1 (ja) 2012-02-23
JP4889836B1 (ja) 2012-03-07
CN103081465B (zh) 2016-05-18
CN103081465A (zh) 2013-05-01
EP2608538B1 (en) 2020-07-08
US9124868B2 (en) 2015-09-01

Similar Documents

Publication Publication Date Title
CN102036066B (zh) 图像处理装置以及图像处理方法
JP5775083B2 (ja) モード情報を符号化、復号化する方法及びその装置
JP6233984B2 (ja) マルチビュー・ビデオ符号化のための仮想参照デコーダ
US20190089976A1 (en) Method for motion vector storage in video coding and apparatus thereof
JP6225446B2 (ja) 動画像データ配信装置、方法、プログラム、及びシステム
KR102140388B1 (ko) 복호 장치, 복호 방법, 및 기록 매체
JP4917148B2 (ja) ビットストリーム変換方法、ビットストリーム変換装置、ビットストリーム結合装置、ビットストリーム分割プログラム、ビットストリーム変換プログラム及びビットストリーム結合プログラム
TW201625008A (zh) 用於減少視訊編碼及解碼中之延遲的方法、系統及電腦可讀取媒體
JP5871628B2 (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
WO2017131233A1 (ja) 符号化装置、復号装置及びプログラム
JP2009188996A (ja) 動画像コーデック装置及びその方法
US20110242291A1 (en) Information processing apparatus, information processing method, reproduction apparatus, reproduction method, and program
JP4889836B1 (ja) 3d符号化装置
JP2019505110A (ja) 複合型の適応的解像度及び内部ビット深度増加コーディングのための方法及び機器
CN103716638A (zh) 表示视频图像显示顺序的方法
JP2009273132A (ja) 動きベクトル変換を用いた飛越し走査映像符号化/復号化方法および装置
JP2015159519A (ja) 符号化装置、符号化方法および符号化プログラム
JP3071579B2 (ja) 二画面多重化動画像の符号化装置及び復号化装置
JP2016519519A (ja) ビデオ信号処理方法及び装置
JP2016149770A (ja) ストリーミングレイテンシの最小化システム及びそれを使用する方法
JP2019114868A (ja) 画像符号化装置、画像処理装置、画像符号化方法
JP2011135330A (ja) 符号化装置、復号化装置、符号化方法、及び、復号化方法
WO2013039333A1 (ko) 3d 비디오 부호화/복호화 방법 및 그 장치
WO2018207253A1 (ja) 映像記録再生装置、映像伝送装置、及び映像伝送方法
CN116016981A (zh) 视角增强视频的传输方法、装置以及介质

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111115

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111213

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250