以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせのすべてが発明の解決手段に必須であるとは限らない。
図1は、動画データ150の一例である。動画データ150は複数のフレーム151により構成される。各フレーム151は再生順序を示すシーケンスID(以下、シーケンスIDをSIDと省略する場合がある。)により識別される。動画データ150は、各フレームをSIDに従って順次表示することで、動画を再生することができる。
図2は、階層符号化された動画データ160の一例である。動画データ160は複数のフレーム161により構成され、さらに各フレーム161は2つのレイヤデータ162、163から構成される。レイヤデータ162は基本レイヤと呼ばれ、レイヤデータ163は拡張レイヤと呼ばれる。各レイヤデータは再生順序を示すシーケンスIDとレイヤを表すレイヤID(以下、レイヤIDをLIDと省略する場合がある。)により識別することができる。基本レイヤとは、例えば、低画質であるが再生に最低限必要なレイヤデータである。一方、拡張レイヤとは、基本レイヤに加えることによって画質を向上できるレイヤデータである。従って、階層符号化された動画データにおいては、基本レイヤのレイヤデータのみをSIDに従って順次表示することで低画質の動画を再生することができる。また、基本レイヤと拡張レイヤのレイヤデータの両方を合わせ、SIDに従って順次表示することで高画質の動画データを再生することもできる。本実施形態では、基本レイヤのレイヤIDを1とし、拡張レイヤのレイヤIDを2以上として説明する。
階層符号化された動画データを構成するレイヤデータは、様々な要因で欠落する場合がある。例えば、動画データを、ネットワークを介してストリーミング再生する場合、伝送路においてレイヤデータが欠落することがある。また、光学ディスクや磁気ディスクなどから動画データを読み取る際に、レイヤデータが欠落することがある。
図3は、階層符号化された動画データにおいて、拡張レイヤの一部のレイヤデータが欠落した動画データ170の一例である。動画データ170は複数のフレーム171により構成され、さらに各フレームは2つのレイヤデータ172、173から構成される。動画データ170では、SID=1、2、6、7のフレームは基本レイヤと拡張レイヤの両方のレイヤデータを含んでいるが、SID=3、4、5のフレームは拡張レイヤのレイヤデータが欠落しており、基本レイヤのレイヤデータのみを含んでいる。
動画データ170を再生する場合、SID=1、2の各フレームでは基本レイヤと拡張レイヤの両方のレイヤデータを用いて高画質の動画を再生できる。しかし、SID=3、4、5の各フレームでは基本レイヤのレイヤデータしかないため、低画質に切り替えて動画を再生する。そして、SID=6、7の各フレームでは基本レイヤと拡張レイヤの両方のレイヤデータを用いて、再び高画質に切り替えて再生する。以上に述べた通り、階層符号化された動画データは、拡張レイヤのレイヤデータが欠落しても、画質を切り替えて再生することが可能である。
しかし、視聴時に、高画質の映像と低画質の映像が急激かつ頻繁に切替わると、切替時の画質の変化が人間の目に障るため、視聴者の体感品質を劣化させる場合がある。そこで、階層符号化された動画データを再生する際に、高画質の映像と低画質の映像の切替を円滑に行う再生装置が必要となる。
図4は、階層符号化された動画データを再生することができる動画データ再生装置100の一例を概略的に示す。動画データ再生装置100は、例えば、スケーラブル符号化された動画データを再生する。動画データ再生装置100は、他の符号化方式によって階層符号化された動画データを再生してもよい。
動画データ再生装置100は、バッファ102と再生部108を備える。バッファ102は、再生する動画データを一時的に格納することができる。例えば、通信ネットワークにより伝送された動画データや、光学ディスクや磁気ディスクから読み取った動画データを格納する。従って、バッファ102に格納された動画データにおいては、拡張レイヤの一部が欠落している場合がある。
再生部108は、バッファ102に格納されている動画データを復号化し、動画を再生する。例えば、再生部108は、2つの階層を含むように符号化された動画データの複数のフレームのそれぞれについて、基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータの両方が格納されている場合、基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータの両方、または基本レイヤのレイヤデータのみを用いてフレームを復号化し、基本レイヤのレイヤデータのみが格納されている場合、基本レイヤのレイヤデータのみを用いてフレームを復号化し、動画データ再生装置100は復号化された各フレームをSIDの順に再生する。
また、例えば、再生部108は、3つ以上の階層を含むように符号化された動画データの複数のフレームのそれぞれについて、バッファ102に格納されているすべてのレイヤデータの少なくとも1つのレイヤデータを用いてフレームを復号化する。具体例として、動画データが4つの階層を含むように符号化されている場合、再生部108は、基本レイヤのレイヤデータのみを用いるか、基本レイヤのレイヤデータおよび第1階層の拡張レイヤのレイヤデータを用いるか、基本レイヤのレイヤデータ、第1階層の拡張レイヤのレイヤデータおよび第2階層の拡張レイヤのレイヤデータを用いるか、すべてのレイヤデータを用いて、動画データを復号化し、動画データ再生装置100は復号化された各フレームをSIDの順に再生する。
また、再生部108は、複数の階層を含むように符号化され、それぞれが複数のフレームを含む複数のフレームグループを有する動画データを復号化してよい。例えば、再生部108は、2つの階層を含むように符号化され、それぞれが複数のフレームを含む複数のフレームグループを有する動画データの複数のフレームグループのそれぞれについて、フレームグループに含まれるすべてのフレームについて基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータの両方が格納されている場合、当該フレームグループのすべての基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータを用いて当該フレームグループを復号化し、フレームグループに含まれるすべてのフレームのうち少なくとも1つのフレームについて基本レイヤのレイヤデータのみが格納されている場合、当該フレームグループのすべての基本レイヤのレイヤデータのみを用いて当該フレームグループを復号化し、動画データ再生装置100は復号化された各フレームをSIDの順に再生する。
また、例えば、再生部108は、3つ以上の階層を含むように符号化され、それぞれが複数のフレームを含む複数のフレームグループを有する動画データの複数のフレームグループのそれぞれについて、すべてのフレームについて、すべてのフレームのうち格納されているレイヤデータの数が最も少ないフレームのレイヤデータの数であるグループ最少レイヤデータ数以下のレイヤデータを用いて当該フレームグループを復号化し、動画データ再生装置100は復号化された各フレームをSIDの順に再生する。
動画データ表示部110は、複数の階層を含むように符号化された動画データについて、再生部108によって復号化し再生される動画を表示する。また、動画データ表示部110は、複数の階層を含むように符号化され、それぞれが複数のフレームを含む複数のフレームグループを有する動画データについて、再生部108によって復号化された動画を表示する。
動画データ表示部110は、動画データ再生装置100が備えるディスプレイであってよい。また、動画データ表示部110は、他の装置が備えるディスプレイであってもよい。動画データ表示部110は、例えば、任意のネットワークを介して接続されてもよい。
動画データ再生装置100は、複数の階層を含むように符号化された動画データを外部から受信してもよい。再生部108は、外部から受信した動画データを復号化してよく、動画データ表示部110は、再生部108によって復号化、及び再生される外部から受信した動画データを表示してよい。
図5は、バッファ102が格納している動画データ150の一例を概略的に示す。ここでは、基本レイヤおよび拡張レイヤの2つの階層を含むように符号化された動画データ150を示す。基本レイヤおよび拡張レイヤのそれぞれには、複数のレイヤデータ152が含まれる。欠落したレイヤデータ154は、レイヤデータ152が格納されていないことを示す。例えば、図5に示す動画データ150では、1、2、4、6、8、10〜12、および14〜16番目のフレームについて、基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータが格納されており、3、5、7、9、および13番目のフレームについて、基本レイヤのレイヤデータのみが格納されている。
ここで、基本レイヤのレイヤデータのみが格納されている場合に基本レイヤのレイヤデータのみを用いてフレームを復号化し、基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータの両方が格納されている場合にその両方を用いて復号化した場合、図5に示す動画データ150では、2番目のフレームから9番目のフレームまで、1つのフレーム毎に高画質と低画質とが切り替わることになり、動画を閲覧する閲覧者が体感する動画の品質が低いものとなってしまう場合がある。
これに対して、本実施形態に係る動画データ再生装置100は、閲覧者が体感する動画の品質を向上させる処理を実行する。動画データ再生装置100が備える再生部108は、例えば、基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータの両方が格納されている一のフレームの次のフレームについて、基本レイヤのレイヤデータのみが格納されている場合、当該次のフレーム以降の予め定められた第1の階層維持フレーム数のフレームについて、基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータの両方が格納されている場合であっても、基本レイヤのレイヤデータのみを用いて当該次のフレーム以降の第1の階層維持フレーム数のフレームを復号化する。第1の階層維持フレーム数は、第1の数の一例であってよい。
図6は、再生部108による復号化の一例を概略的に示す。ここでは、第1の階層維持フレーム数が3である場合を例示する。再生部108は、基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータの両方が格納されている2番目のフレームの次の3番目のフレームについて、基本レイヤのレイヤデータのみが格納されていることから、3〜5番目のフレームについて、基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータの両方が格納されている場合であっても、基本レイヤのレイヤデータのみを用いて3〜5番目のフレームを復号化する。
廃棄レイヤデータ156は、再生部108によって廃棄されるレイヤデータを示す。図6に示す例では、4、8、14、および15番目の拡張レイヤのレイヤデータが廃棄レイヤデータ156となっている。このように、本実施形態に係る動画データ再生装置100によれば、高画質と低画質との頻繁な切り替えを抑制することができ、閲覧者が体感する動画の品質を向上させることができる。
図7は、動画データ再生装置100による処理の流れの一例を概略的に示す。図7に示す処理は、動画データ再生装置100が、2つの階層を含むように符号化された動画データの再生指示を受領した状態を開始状態として説明する。図7に示す各処理は、動画データ再生装置100の再生部108の内部で全て実行されてよい。なお、ここでは、1番目のフレームについては、再生可能な最も高いレイヤで再生することを前提として説明する。フレームを再生可能な最も高いレイヤで再生するとは、当該フレームについて格納されているすべてのレイヤデータを用いて当該フレームを復号化して再生することを示す。
ステップ(ステップをSと省略して記載する場合がある。)502では、バッファ102に格納されている1番目のフレームおよび次の2番目のフレームを確認する。
S504では、1番目のフレームに対して、2番目のフレームのレイヤが下がるか否かを判定する。1番目のフレームに対して2番目のフレームのレイヤが下がるとは、1番目のフレームについて格納されているレイヤデータの数よりも、2番目のフレームについて格納されているレイヤデータの数の方が少ないことを示す。レイヤが下がらないと判定した場合、S506に進み、レイヤが下がると判定した場合、S508に進む。
S506では、2番目のフレームを再生可能な最も高いレイヤで再生することを決定する。S508では、次のNフレームを基本レイヤで再生することを決定する。基本レイヤで再生するとは、対象となるフレームについて、複数のレイヤデータが格納されていても、基本レイヤのレイヤデータのみを用いて当該フレームを復号化して再生することを示す。Nは第1の階層維持フレーム数の一例であってよい。Nは予め定められた数であってよく、また、変更可能であってもよい。
S510では、動画データの最終フレームまで処理が完了したか否かを判定する。最終フレームまで処理が完了していないと判定された場合、S502に戻り、さらに次のフレームを確認する。最終フレームまで処理が完了したと判定された場合、処理が終了する。
S506およびS508において復号方針を決定した場合に、逐次復号化を実行して、動画データ表示部110に復号化が完了したフレームを用いて動画を表示させてよい。また、S502〜S512の処理を繰り返して、動画データに含まれる複数のフレームまたは全フレームについて復号方針を決定した後に復号化を実行して、動画データ表示部110に復号化が完了したフレームを用いて動画を表示させてもよい。
図8は、動画データ再生装置100による処理の流れの具体例を概略的に示す。図8に示す処理は、動画データ再生装置100が、2つの階層を含むように符号化された動画データの再生指示を受領した状態を開始状態として説明する。図8に示す各処理は、動画データ再生装置100が備える再生部108の内部で全て実行されてよい。なお、ここでは、1番目のフレームについては、再生可能な最も高いレイヤで再生することを前提として説明する。
図中、Xはフレーム番号を示す。YはXの最大値を示す。Xの初期値は0であり、Yは動画データに含まれるフレームの数である。B[X]は、X番目のフレームについて、バッファ102に格納されているレイヤデータの数を示す。ここでは動画データが2つの階層を含むように符号化された場合を例示するので、B[X]の最小値は1、B[X]の最大値は2である。
S602では、バッファ102に格納されている1番目のフレームおよび次の2番目のフレームを確認する。S604では、B[X+1]がB[X]よりも小さいか否かを判定する。B[X+1]がB[X]よりも小さくないと判定した場合、S606に進み、小さいと判定した場合、S610に進む。
S606では、X+1番目のフレームをB[X+1]に従って再生することを決定する。B[X+1]に従って再生するとは、B[X+1]が示す数のレイヤデータを用いてフレームを復号化して再生することを示してよい。S608では、Xに1を加算する。
S610では、nに1を代入する。S612では、X+n番目のフレームを基本レイヤで再生することを決定する。S614では、nに1を加算する。S616では、n=Nであるか否かを判定する。n=Nであると判定した場合、S612に戻り、n=Nであると判定した場合、S618に進む。S618では、XにNを加算する。
S620では、X=Yであるか否かを判定する。X=Yでないと判定した場合、S602に戻り、X=Yであると判定した場合、処理を終了する。
以上、図5に示す例のように、2つのレイヤを含むように階層符号化された動画データを再生する際に、レイヤデータの欠落による頻繁な画質の切替が発生し、体感品質が劣化することがある。そこで、これを防ぐ方法として、図6に示すように、一度レイヤが下がった後、階層維持フレーム数分のフレームをレイヤを上げずに再生することで、閲覧者が体感する動画の品質を向上させることができる。具体的な実現方法としては、図4に示す動画データ再生装置100において、再生部108で図7及び図8に示す各処理を実行することで実現することができる。
図9は、再生部108による復号化制御の一例を概略的に示す。ここでは、低画質から高画質に切り替わった後にMフレーム連続して高画質が維持できない場合に、拡張レイヤのレイヤデータを廃棄して高画質への切り替えを行わない処理を再生部108が実行する場合について説明する。Mは第1の階層保証フレーム数の一例であってよい。Mは予め定められた数であってよく、また、変更可能であってもよい。ここでは、Mが2である場合を例に挙げて説明する。
図9に示す例では、図6において説明した処理によって4、8、14、および15番目の拡張レイヤのレイヤデータが廃棄されて、3〜5、7〜9、および13〜15番目のフレームについて基本レイヤのレイヤデータのみを用いてフレームが復号化される。ここで、6番目のフレームについては、基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータの両方が格納されている。しかし、7番目のフレームについては基本レイヤのレイヤデータのみが格納されていることから、2フレーム連続して高画質を維持できないので、再生部108は、6番目のフレームおよび7番目のフレームについて、基本レイヤのレイヤデータのみを用いて復号化することを決定する。廃棄レイヤデータ158は、再生部108によって廃棄されるレイヤデータを示す。このように、再生部108は、6番目のフレームのように1つ前のフレームよりも格納されているレイヤデータが多いフレームについて、基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータの両方が格納されており、当該フレーム以降の第1の階層保証フレーム数のフレームのすべてについて基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータの両方が格納されている場合には、当該フレームについて、基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータを用いて復号化し、当該フレーム以降の第1の階層保証フレーム数のフレームの少なくとも1つについて基本レイヤのレイヤデータのみが格納されている場合、当該フレームについて、基本レイヤのレイヤデータのみを用いて復号化してよい。上述したように、本実施形態に係る動画データ再生装置100によれば、高画質と低画質の頻繁な切り替えをさらに抑制することができ、閲覧者が体感する動画の品質を向上させることができる。
図10は、動画データ再生装置100による処理の流れの一例を概略的に示す。図10に示す処理は、動画データ再生装置100が、2つの階層を含むように符号化された動画データの再生指示を受領した状態を開始状態として説明する。図10に示す各処理は、動画データ再生装置100の再生部108の内部で全て実行されてよい。なお、ここでは、1番目のフレームについては、再生可能な最も高いレイヤで再生することを前提として説明する。
S802では、バッファ102に格納されている1番目のフレームおよび次の2番目のフレームを確認する。S804では、1番目のフレームに対して、2番目のフレームのレイヤが上がるか否かを判定する。1番目のフレームに対して2番目のフレームのレイヤが上がるとは、2番目のフレームについて格納されているレイヤデータの数の方が、1番目のフレームについて格納されているレイヤデータの数よりも多いことを示す。
レイヤが上がらないと判定した場合、S806に進み、レイヤが上がると判定した場合、S808に進む。S806では、2番目のフレームを再生可能な最も高いレイヤで再生することを決定する。
S808では、次のMフレーム連続して拡張レイヤで再生可能か否かを判定する。再生部108は、次のMフレームのすべてについて基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータが格納されている場合、Mフレーム連続して拡張レイヤで再生可能と判定し、それ以外の場合に再生不可能と判定してよい。再生可能と判定した場合、S810に進み、再生不可能と判定した場合、S812に進む。
S810では、次のMフレームについて拡張レイヤで再生することを決定する。S812では、次のフレームについて基本レイヤで再生することを決定する。
S814では、動画データの最終フレームまで処理が完了したか否かを判定する。最終フレームまで処理が完了していないと判定された場合、S802に戻り、再生部108がさらに次のフレームを確認する。最終フレームまで処理が完了したと判定された場合、処理が終了する。
図11は、動画データ再生装置100による処理の流れの具体例を概略的に示す。図11に示す処理は、動画データ再生装置100が2つの階層を含むように符号化された動画データの再生指示を受領した状態を開始状態として説明する。図11に示す各処理は、動画データ再生装置100の再生部108の内部で全て実行されてよい。なお、ここでは、1番目のフレームについては、再生可能な最も高いレイヤで再生することを前提として説明する。
図中、Xはフレーム番号を示す。YはXの最大値を示す。Xの初期値は0であり、Yは動画データに含まれるフレームの数を示す。B[X]は、X番目のフレームについて、バッファ102に格納されているレイヤデータの数を示す。ここでは動画データが2つの階層を含むように符号化された場合を例示するので、B[X]の最小値は1、B[X]の最大値は2である。
S902では、バッファ102に格納されている1番目のフレームおよび次の2番目のフレームを確認する。S904では、B[X+1]がB[X]よりも大きいか否かを判定する。B[X+1]がB[X]よりも大きくないと判定した場合、S906に進み、大きいと判定した場合、S910に進む。
S906では、X+1番目のフレームをB[X+1]に従って再生することを決定する。S908では、Xに1を加算する。
S910では、X+1番目のフレームからX+M番目のフレームまでのフレームが拡張レイヤで再生可能か否かを判定する。再生可能と判定した場合、S912に進み、再生不可能と判定した場合、S924に進む。
S912では、nに1を代入する。S914では、X+n番目のフレームを拡張レイヤで再生することを決定する。S916では、nに1を加算する。S918では、n=Mであるか否かを判定する。n=Mであると判定しなかった場合、S914に戻り、n=Mであると判定した場合、S920に進む。S920では、B[X+n]に2を代入する。S922では、XにNを加算する。
S924では、X+1番目のフレームを基本レイヤで再生することを決定する。S926では、B[X+1]に1を代入する。S928では、Xに1を加算する。
S934では、X=Yであるか否かを判定する。X=Yでないと判定した場合、S902に戻り、さらに次のフレームを確認する。X=Yであると判定した場合、処理を終了する。
図12は、バッファ102が格納している動画データ150の一例を概略的に示す。ここでは、基本レイヤおよび拡張レイヤ1〜拡張レイヤ3の4つの階層を含むように符号化された動画データ150を示す。図12に示す例では、3番目のフレームにおける拡張レイヤ2〜3の拡張レイヤのレイヤデータと、6番目のフレームにおける拡張レイヤ3の拡張レイヤのレイヤデータと、8番目のフレームにおける拡張レイヤ3の拡張レイヤのレイヤデータと、11番目のフレームにおける拡張レイヤ1〜3の拡張レイヤのレイヤデータと、13番目のフレームにおける拡張レイヤ2〜3の拡張レイヤのレイヤデータとが、欠落したレイヤデータ154である場合を例示する。
ここで、各フレームについて、格納されているすべてのレイヤデータを用いてフレームを復号化した場合、図12に示す動画データ150では、頻繁に画質が切り替わることになり、閲覧者が体感する動画の品質が低いものとなってしまう場合がある。
これに対して、本実施形態に係る動画データ再生装置100は、閲覧者が体感する動画の品質を向上させる処理を実行する。動画データ再生装置100が備える再生部108は、例えば、1つ前のフレームよりも格納されているレイヤデータが少ない一のフレームについて、当該一のフレーム以降の予め定められた第2の階層維持フレーム数のフレームについて、当該一のフレームよりも多くのレイヤデータが格納されている場合であっても、当該一のフレームについて格納されているレイヤデータの数と同じ数のレイヤデータを用いて当該一のフレーム以降の第2の階層維持フレーム数のフレームを復号化する。
図13は、再生部108による復号化制御の一例を概略的に示す。ここでは、第2の階層維持フレーム数が3である場合を例示する。再生部108は、3番目のフレームについて、1つ前の2番目のフレームよりも格納されているレイヤデータが少ないことから、3〜5番目のフレームについて、2番目のフレームよりも多くのレイヤデータが格納されている場合であっても、2番目のフレームについて格納されているレイヤデータの数である2と同じ数のレイヤデータを用いて、3〜5番目のフレームを復号化する。同様に、再生部108は、7番目のフレームについて、6番目のフレームについて格納されているレイヤデータの数である3と同じ数のレイヤデータを用いて、復号化する。また、同様に、再生部108は、12および13番目のフレームについて、11番目のフレームについて格納されているレイヤデータの数である1と同じ数のレイヤデータを用いて、復号化する。
このように、図13に示す例では、4番目のフレームにおける拡張レイヤ2〜3の拡張レイヤのレイヤデータと、5番目のフレームにおける拡張レイヤ2〜3の拡張レイヤのレイヤデータと、7番目のフレームにおける拡張レイヤ3の拡張レイヤのレイヤデータと、12番目のフレームにおける拡張レイヤ1〜3の拡張レイヤのレイヤデータと、13番目のフレームにおける拡張レイヤ1の拡張レイヤのレイヤデータとが廃棄レイヤデータ156となる。このように、本実施形態に係る動画データ再生装置100によれば、画質の頻繁な切り替えを抑制することができ、閲覧者が体感する動画の品質を向上させることができる。
図14は、動画データ再生装置100による処理の流れの一例を概略的に示す。図14に示す処理は、動画データ再生装置100が動画データの再生指示を受領した状態を開始状態として説明する。図14に示す各処理は、動画データ再生装置100の再生部108の内部で全て実行されてよい。なお、ここでは、1番目のフレームについては、再生可能な最も高いレイヤで再生することを前提として説明する。
S1202では、バッファ102に格納されている1番目のフレームおよび次の2番目のフレームを確認する。S1204では、1番目のフレームに対して、2番目のフレームのレイヤが下がるか否かを判定する。レイヤが下がらないと判定した場合、S1206に進み、レイヤが下がると判定した場合、S1208に進む。
S1206では、2番目のフレームを再生可能な最も高いレイヤで再生することを決定する。S1208では、次のNフレームで連続して再生可能な最も高いレイヤLを特定する。S1210では、次のNフレームをレイヤLで再生することを決定する。ここで、Nは第2の階層維持フレーム数の一例であってよい。Nは予め定められた数であってよく、また、変更可能であってもよい。
S1212では、動画データの最終フレームまで処理が完了したか否かを判定する。最終フレームまで処理が完了していないと判定された場合、S1202に戻り、さらに次のフレームを確認する。最終フレームまで処理が完了したと判定された場合、処理が終了する。
図15は、動画データ再生装置100による処理の流れの具体例を概略的に示す。図15に示す処理は、動画データ再生装置100が動画データの再生指示を受領した状態を開始状態として説明する。図15に示す各処理は、動画データ再生装置100の再生部108の内部で全て実行されてよい。なお、ここでは、1番目のフレームについては、再生可能な最も高いレイヤで再生することを前提として説明する。
図中、Xはフレーム番号を示す。YはXの最大値を示す。Xの初期値は0であり、Yは動画データに含まれるフレームの数を示す。B[X]は、X番目のフレームについて、バッファ102に格納されているレイヤデータの数を示す。Jは、最大レイヤ数、すなわち、動画データの符号化階層数を示す。
S1302では、バッファ102に格納されている1番目のフレームおよび次の2番目のフレームを確認する。S1304では、B[X+1]がB[X]よりも小さいか否かを判定する。B[X+1]がB[X]よりも小さくないと判定した場合、S1306に進み、小さいと判定した場合、S1310に進む。
S1306では、X+1番目のフレームをB[X+1]に従って再生することを決定する。S608では、Xに1を加算する。
S1310では、LにJを代入する。S1312では、X+1番目のフレームからX+N番目のフレームがレイヤLで再生可能か否かを判定する。再生不可能と判定された場合、S1314に進み、再生可能と判定された場合、S1316に進む。S1314では、Lから1を減算して、S1312に戻る。
S1316では、nに1を代入する。S1318では、X+n番目のフレームをレイヤLで再生することを決定する。S1320では、nに1を加算する。S1322では、n=Nであるか否かを判定する。n=Nでないと判定した場合、S1318に戻り、n=Nであると判定した場合、S1324に進む。S1324では、XにNを加算する。
S1326では、X=Yであるか否かを判定する。X=Yでないと判定した場合、S1302に戻り、さらに次のフレームを確認する。X=Yであると判定した場合、処理を終了する。
図16は、動画データ再生装置100による処理の流れの一例を概略的に示す。図16に示す処理は、動画データ再生装置100が動画データの再生指示を受領した状態を開始状態として説明する。図16に示す各処理は、動画データ再生装置100の再生部108の内部で全て実行されてよい。なお、ここでは、1番目のフレームについては、再生可能な最も高いレイヤで再生することを前提として説明する。
S1402では、バッファ102に格納されている1番目のフレームおよび次の2番目のフレームを確認する。S1404では、1番目のフレームに対して、2番目のフレームのレイヤが上がるか否かを判定する。レイヤが上がらないと判定した場合、S1406に進み、レイヤが上がると判定した場合、S1408に進む。
S1406では、2番目のフレームを再生可能な最も高いレイヤで再生することを決定する。S1408では、次のMフレームで連続して再生可能な最も高いレイヤLを特定する。S1410では、S1408で決定されたレイヤLが1つ前のフレームのレイヤより高いか否かが判定される。レイヤLが1つ前のフレームのレイヤより高いと判定されなかった場合、S1412に進み、判定された場合、S1414に進む。S1412では、次のフレームを1つ前のフレームと同じレイヤで再生することを決定する。ここで、Mは第2の階層保証フレーム数の一例であってよい。Mは予め定められた数であってよく、また、変更可能であってもよい。S1414では、次のフレームをレイヤLで再生することを決定する。
S1416では、動画データの最終フレームまで処理が完了したか否かを判定する。最終フレームまで処理が完了していないと判定された場合、S1402に戻り、さらに次のフレームを確認する。最終フレームまで処理が完了したと判定された場合、処理が終了する。
図17は、動画データ再生装置100による処理の流れの具体例を概略的に示す。図17に示す処理は、動画データ再生装置100が動画データの再生指示を受領した状態を開始状態として説明する。図17に示す各処理は、動画データ再生装置100の再生部108の内部で全て実行されてよい。なお、ここでは、1番目のフレームについては、再生可能な最も高いレイヤで再生することを前提として説明する。
図中、Xはフレーム番号を示す。YはXの最大値を示す。Xの初期値は0であり、Yは動画データに含まれるフレームの数を示す。B[X]は、X番目のフレームについて、バッファ102に格納されているレイヤデータの数を示す。Jは、最大レイヤ数、すなわち、動画データの符号化階層数を示す。
S1502では、バッファ102に格納されている1番目のフレームおよび次の2番目のフレームを確認する。S1504では、B[X+1]がB[X]よりも大きいか否かを判定する。B[X+1]がB[X]よりも大きくないと判定した場合、S1506に進み、大きいと判定した場合、S1510に進む。
S1506では、X+1番目のフレームをB[X+1]に従って再生することを決定する。S1508では、Xに1を加算する。
S1510では、X+1番目のフレームからX+M番目のフレームがB[X]より高いレイヤで再生可能か否かを判定する。再生不可能と判定された場合、S1512に進み、再生可能と判定された場合、S1514に進む。S1512では、X+1番目のフレームをB[X]に従って再生することを決定する。
S1514では、Lに0を代入する。S1516では、X+1番目のフレームからX+M番目のフレームがレイヤLで再生可能か否かを判定する。再生可能と判定された場合、S1518に進み、再生不可能と判定された場合、S1526に進む。S1518では、Lに1を加算する。S1520では、L=Jであるか否かを判定する。L=Jでないと判定した場合、S1516に戻り、L=Jであると判定した場合、S1522に進む。
S1522では、X+1番目のフレームをレイヤLで再生することを決定する。S1524では、B[X+1]にLを代入する。S1526では、X+1番目のフレームをレイヤL−1で再生することを決定する。S1528では、B[X+1]にL−1を代入する。S1530では、Xに1を加算する。
S1532では、X=Yであるか否かを判定する。X=Yでないと判定した場合、S1502に戻り、さらに次のフレームを確認する。X=Yであると判定した場合、処理を終了する。
図18は、再生部108による復号化制御の一例を概略的に示す。ここでは、動画データ再生装置100による、複数レイヤを跨ったレイヤの切り替えを抑制する処理について説明する。例えば、4つの階層を含むように符号化された動画データについて、基本レイヤのレイヤデータのみを用いて復号化したフレームの次に、基本レイヤのレイヤデータと拡張レイヤ1〜3のレイヤデータとを用いて復号化したフレームが再生された場合、画質の差が大きく、閲覧者の体感する動画の品質が低いものとなってしまう場合がある。図18は、廃棄レイヤデータ156が廃棄された状態を示しており、例えば、10番目のフレームおよび11番目のフレームのそれぞれについて格納されているレイヤデータの数の差は3である。また、13番目のフレームおよび14番目のフレームのそれぞれについて格納されているレイヤデータの数の差は3である。
これに対して、本実施形態に係る動画データ再生装置100が備える再生部108は、隣接するフレームのそれぞれについて格納されているレイヤデータの数の差が2以上ある場合に、画質が段階的に切り替わるように制御してよい。図18に示す例では、10番目のフレームおよび11番目のフレームのそれぞれについて格納されているレイヤデータの数の差が3であることから、再生部108は、画質が段階的に切り替わるようにすべく、9番目のフレームにおける拡張レイヤ3のレイヤデータと、10番目のフレームにおける拡張レイヤ2、3のレイヤデータとを廃棄レイヤデータ159とする。また、13番目のフレームおよび14番目のフレームのそれぞれについて格納されているレイヤデータの数の差が3であることから、再生部108は、画質が段階的に切り替わるようにすべく、14番目のフレームにおける拡張レイヤ2、3のレイヤデータと、15番目のフレームにおける拡張レイヤ3のレイヤデータとを廃棄レイヤデータ159とする。
また、再生部108は、10番目のフレームおよび11番目のフレームのそれぞれについて格納されているレイヤデータの数の差が3であることから、レイヤデータの数の差が3よりも小さくなるように、10番目のフレームのうちの少なくとも1つのレイヤデータを廃棄してもよい。例えば、再生部108は、10番目のフレームについて格納されている、拡張レイヤ3のレイヤデータ、拡張レイヤ2および拡張レイヤ3のレイヤデータ、または拡張レイヤ1から3のレイヤデータを廃棄する。
このように、再生部108は、動画データが3階層以上の複数の階層を含むように符号化されている場合において、1つ後のフレームよりも格納されているレイヤデータの数が予め定められた低下制限階層数以上多い一のフレームについて、格納されている複数のレイヤデータの一部のみを用いて当該一のフレームを復号化してよい。
また、再生部108は、動画データが3階層以上の複数の階層を含むように符号化されている場合において、1つ前のフレームよりも格納されているレイヤデータの数が予め定められた上昇制限階層数以上多い一のフレームについて、格納されている複数のレイヤデータの一部のみを用いて当該一のフレームを復号化してよい。
図19は、動画データ再生装置100による処理の流れの一例を概略的に示す。図19に示す処理は、動画データ再生装置100が動画データの再生指示を受領した状態を開始状態として説明する。図19に示す各処理は、動画データ再生装置100の再生部108の内部で全て実行されてよい。なお、ここでは、1番目のフレームについては、再生可能な最も高いレイヤで再生することを前提として説明する。
S1702では、バッファ102に格納されている1番目のフレームおよび次の2番目のフレームを確認する。S1704では、1番目のフレームに対して、2番目のフレームのレイヤがKレイヤ以上下がるか否かを判定する。1番目のフレームに対して2番目のフレームのレイヤがKレイヤ以上下がるとは、1番目のフレームについて格納されているレイヤデータの数が、2番目のフレームについて格納されているレイヤデータの数にKを加算した値以上であることを示してよい。Kは低下制限階層数の一例であってよい。Kは予め定められた数であってよく、また、変更可能であってもよい。Kレイヤ以上下がると判定しなかった場合、S1706に進み、Kレイヤ以上下がると判定した場合、S1708に進む。
S1706では、1番目のフレームを、再生可能な最も高いレイヤで再生することを決定する。S1708では、1番目のフレームを、再生可能な最も高いレイヤより1つ低いレイヤで再生することを決定する。
S1710では、動画データの最終フレームまで処理が完了したか否かを判定する。最終フレームまで処理が完了していないと判定された場合、S1702に戻り、さらに次のフレームを確認する。最終フレームまで処理が完了したと判定された場合、処理が終了する。
図20は、動画データ再生装置100による処理の流れの具体例を概略的に示す。図20に示す処理は、動画データ再生装置100が動画データの再生指示を受領した状態を開始状態として説明する。図20に示す各処理は、動画データ再生装置100の再生部108の内部で全て実行されてよい。なお、ここでは、1番目のフレームについては、再生可能な最も高いレイヤで再生することを前提として説明する。
図中、Xはフレーム番号を示す。YはXの最大値を示す。Xの初期値は0であり、Yは動画データに含まれるフレームの数を示す。B[X]は、X番目のフレームについて、バッファ102に格納されているレイヤデータの数を示す。Kは、跨って低下してはいけないレイヤ数を示す。
S1802では、バッファ102に格納されている1番目のフレームおよび次の2番目のフレームを確認する。S1804では、B[X]が(B[X+1]+K)以上であるか否かを判定する。B[X]が(B[X+1]+K)以上であると判定しなかった場合、S1806に進み、判定した場合、S1808に進む。
S1806では、X番目のフレームをB[X]に従って再生することを決定する。S1808では、X番目のフレームをB[X]−1のレイヤで再生することを決定する。
S1810では、X=Yであるか否かを判定する。X=Yでないと判定した場合、S1812に進み、X=Yであると判定した場合、処理を終了する。S1812では、Xに1を加算して、S1802に戻る。S1802では、さらに次のフレームを確認する。
図21は、動画データ再生装置100による処理の流れの一例を概略的に示す。図21に示す処理は、動画データ再生装置100が動画データの再生指示を受領した状態を開始状態として説明する。図21に示す各処理は、動画データ再生装置100の再生部108の内部で全て実行されてよい。なお、ここでは、1番目のフレームについては、再生可能な最も高いレイヤで再生することを前提として説明する。
S1902では、バッファ102に格納されている1番目のフレームおよび次の2番目のフレームを確認する。S1904では、1番目のフレームに対して、2番目のフレームのレイヤがKレイヤ以上上がるか否かを判定する。1番目のフレームに対して2番目のフレームのレイヤがKレイヤ以上上がるとは、2番目のフレームについて格納されているレイヤデータの数が、1番目のフレームについて格納されているレイヤデータの数にKを加算した値以上であることを示してよい。Kは上昇制限階層数の一例であってよ。Kレイヤ以上上がると判定しなかった場合、S1906に進み、Kレイヤ以上上がると判定した場合、S1908に進む。
S1906では、2番目のフレームを、再生可能な最も高いレイヤで再生することを決定する。S1908では、2番目のフレームを、再生可能な最も高いレイヤより1つ低いレイヤで再生することを決定する。
S1910では、動画データの最終フレームまで処理が完了したか否かを判定する。最終フレームまで処理が完了していないと判定された場合、S1902に戻り、さらに次のフレームを確認する。最終フレームまで処理が完了したと判定された場合、処理が終了する。
図22は、動画データ再生装置100による処理の流れの具体例を概略的に示す。図22に示す処理は、動画データ再生装置100が動画データの再生指示を受領した状態を開始状態として説明する。図22に示す各処理は、動画データ再生装置100の再生部108の内部で全て実行されてよい。なお、ここでは、1番目のフレームについては、再生可能な最も高いレイヤで再生することを前提として説明する。
図中、Xはフレーム番号を示す。YはXの最大値を示す。Xの初期値は0であり、Yは動画データに含まれるフレームの数を示す。B[X]は、X番目のフレームについて、バッファ102に格納されているレイヤデータの数を示す。Kは、跨って上昇してはいけないレイヤ数を示す。
S2002では、バッファ102に格納されている1番目のフレームおよび次の2番目のフレームを確認する。S2004では、B[X+1]が(B[X]+K)以上であるか否かを判定する。B[X+1]が(B[X]+K)以上であると判定しなかった場合、S2006に進み、判定した場合、S2008に進む。
S2006では、X+1番目のフレームをB[X+1]に従って再生することを決定する。S2008では、X+1番目のフレームをB[X+1]−1のレイヤで再生することを決定する。
S2010では、X=Yであるか否かを判定する。X=Yでないと判定した場合、S2012に進み、X=Yであると判定した場合、処理を終了する。S2012では、Xに1を加算して、S2002に戻る。S2002では、さらに次のフレームを確認する。
階層符号化方式では、連続した複数のフレームでグループを構成し、同一グループ内のフレーム間の参照関係を利用して符号化する場合がある。参照関係を有する複数のフレームの集合をフレームグループと呼ぶ(なお、ここで述べているフレームグループはGOP(group of picture)と称される場合がある。)。フレームグループを構成する符号化では、フレームグループを構成しない符号化と比較してより高い圧縮効率を実現することができる。
図23は、複数のフレームでフレームグループを構成するように階層符号化された動画データ180の一例である。動画データ180は、複数のフレームグループ182、184で構成される。フレームグループはそれぞれ複数のフレーム186、188から構成され、各フレームはLIDとSIDによって識別可能な複数のレイヤデータを含んでいる。
フレームグループを構成するように階層符号化された動画データを復号化するときは、基本レイヤと拡張レイヤの両方のレイヤデータを用いて復号することで高画質な動画を復号することが可能であり、また、基本レイヤのレイヤデータのみを用いて復号することで低画質な動画を復号することも可能である。図24は、階層符号化方式で符号化されたフレームグループ182を用いて高画質な動画を再生する例である。フレームグループ190において、フレームグループ内の基本レイヤのレイヤデータ192と拡張レイヤのレイヤデータ193の両方を用いて復号化を行う。一方、図25は、階層符号化方式で符号化されたフレームグループ182を用いて低画質な動画を再生する例である。フレームグループ194において、基本レイヤのレイヤデータ196のみを用いて復号化を行う。
図26は、階層符号化方式で符号化されたフレームグループ200を用いて復号化を行う例である。フレームグループ200では、SID2のフレームに含まれる拡張レイヤのレイヤデータ202が欠落しており、その他のレイヤデータはすべて揃っている。この場合、フレームグループ206において、基本レイヤのレイヤデータ204のみを用いて復号化を行う。これは、フレームグループ内の拡張レイヤのレイヤデータ間に参照関係があり、フレームグループ206ではレイヤデータ202の欠落により拡張レイヤの復号化ができないためである。
図23に示したフレームグループを構成するように階層符号化された動画データについても、段落0020で述べた通り、レイヤデータが様々な要因で欠落する場合がある。そこで、フレームグループを構成するように階層符号化された動画データを復号するときも、段落0024〜0117に述べた実施例と同様の処理を適用することで、閲覧者の体感品質を改善することが可能である。以下、その実施例について説明する。
図27は、バッファ102が格納している動画データ150の一例を概略的に示す。ここでは、2つの階層を含むように符号化され、それぞれが4つのフレームを含む複数のフレームグループを有する動画データ150を示す。図27に示す例では、2つ目のフレームグループに属する6および8番目のフレームと、4つ目のフレームグループに属する14番目のフレームとにおける拡張レイヤのレイヤデータが、欠落したレイヤデータ154である場合を例示する。
ここで、動画データ150の複数のフレームグループのそれぞれについて、フレームグループに含まれるすべてのフレームについて基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータが格納されている場合、フレームグループのすべての基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータを用いてフレームグループを復号化し、フレームグループに含まれるすべてのフレームのうち少なくとも1つのフレームについて基本レイヤのレイヤデータのみが格納されている場合、フレームグループのすべての基本レイヤのレイヤデータのみを用いてフレームグループを復号化すると、フレームグループ毎に高画質と低画質とが切り替わることになり、動画を閲覧する閲覧者が体感する動画の品質が低いものとなってしまう場合がある。
これに対して、本実施形態に係る動画データ再生装置100は、閲覧者が体感する動画の品質を向上させる処理を実行する。動画データ再生装置100が備える再生部108は、例えば、すべてのフレームについて基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータの両方が格納されている第1のフレームグループの次の第2のフレームグループについて、すべてのフレームのうち少なくとも1つのフレームについて基本レイヤのレイヤデータのみが格納されている場合、第2のフレームグループ以降の予め定められた第1の階層維持フレームグループ数のフレームグループについて、すべてのフレームについて基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータの両方が格納されている場合であっても、第2のフレームグループのすべての基本レイヤのレイヤデータのみを用いて第2のフレームグループを復号化する。これにより、高画質と低画質との頻繁な切り替えを抑制することができ、閲覧者が体感する動画の品質を向上させることができる。第1の階層維持フレームグループ数は、第1の数の一例であってよい。
また、再生部108は、例えば、第2のフレームグループ以降の第1の階層維持フレームグループ数のフレームグループの次の第3のフレームグループについて、すべてのフレームについて基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータが格納されており、かつ、第3のフレームグループ以降の予め定められた第1の階層保証フレームグループ数のフレームグループのすべてについて、すべてのフレームについて基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータが格納されている場合、第3フレームグループのすべての基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータを用いて第3フレームグループを復号化し、第3のフレームグループ以降の第1の階層保証フレームグループ数のフレームグループの少なくとも1つについて、すべてのフレームのうち少なくとも1つについて基本レイヤのレイヤデータのみが格納されている場合、第3のフレームグループのすべての基本レイヤのレイヤデータのみを用いて第3のフレームグループを復号化する。このように、再生部108は、フレームグループに含まれるフレームのうち少なくとも1つのフレームについて基本レイヤのレイヤデータのみが格納されているフレームグループの次の一のフレームグループについて、すべてのフレームについて基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータが格納されており、かつ、当該一のフレームグループ以降の第1の階層保証フレームグループ数のフレームグループのすべてについて、すべてのフレームについて基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータが格納されている場合、当該一のフレームグループのすべての基本レイヤのレイヤデータおよび拡張レイヤのレイヤデータを用いて当該一のフレームグループを復号化し、当該一ののフレームグループ以降の第1の階層保証フレームグループ数のフレームグループの少なくとも1つについて、すべてのフレームのうち少なくとも1つについて基本レイヤのレイヤデータのみが格納されている場合、当該一のフレームグループのすべての基本レイヤのレイヤデータのみを用いて当該一のフレームグループを復号化してよい。これにより、高画質と低画質との頻繁な切り替えをさらに抑制することができ、閲覧者が体感する動画の品質を向上させることができる。
図28は、バッファ102が格納している動画データ150の一例を概略的に示す。ここでは、4つの階層を含むように符号化され、それぞれが4つのフレームを含む複数のフレームグループを有する動画データ150を示す。図28に示す例では、2つ目のフレームグループに属する6および8番目のフレームと、4つ目のフレームグループに属する15番目のフレームとにおける拡張レイヤのレイヤデータが、欠落したレイヤデータ154である場合を例示する。
ここで、動画データ150の複数のフレームグループのそれぞれについて、すべてのフレームについて、すべてのフレームのうち格納されているレイヤデータの数が最も少ないフレームのレイヤデータの数であるグループ最少レイヤデータ数のレイヤデータを用いてフレームグループを復号化すると、1および3番目のフレームグループについては最高画質、2および4番目のフレームグループについては、基本レイヤのレイヤデータおよび拡張レイヤ1のレイヤデータのみを用いた画質となり、1フレームグループ毎に高画質と低画質とが切り替わることになり、動画を閲覧する閲覧者が体感する動画の品質が低いものとなってしまう場合がある。
これに対して、本実施形態に係る動画データ再生装置100は、閲覧者が体感する動画の品質を向上させる処理を実行する。動画データ再生装置100が備える再生部108は、例えば、1つ前のフレームグループよりも、グループ最少レイヤデータ数が少ない一のフレームグループについて、当該一のフレームグループ以降の予め定められた第2の階層維持フレームグループ数のフレームグループについて、グループ最少レイヤデータ数が当該一のフレームグループのグループ最少レイヤデータ数よりも多い場合であっても、すべてのフレームの当該一のフレームグループのグループ最少レイヤデータ数と同じ数のレイヤデータを用いて、当該一のフレームグループ以降の第2の階層維持フレームグループ数のフレームグループを復号化する、これにより、高画質と低画質との頻繁な切り替えを抑制することができ、閲覧者が体感する動画の品質を向上させることができる。
また、再生部108は、当該一のフレームグループ以降の第2の階層維持フレームグループ数のフレームグループの次のフレームグループについて、当該一のフレームグループよりもグループ最少レイヤデータ数が多く、かつ、当該次のフレームグループ以降の予め定められた第2の階層保証フレームグループ数のフレームグループのすべてについて、グループ最少レイヤデータ数が当該次のフレームグループのグループ最少レイヤデータ数と同じ数以上である場合、すべてのフレームの当該次のフレームグループのグループ最少レイヤデータ数と同じ数のレイヤデータを用いて、当該次のフレームグループを復号化し、当該次のフレームグループ以降の第2の階層保証フレームグループ数のフレームグループの少なくとも1つについて、グループ最少レイヤデータ数が当該次のフレームグループのグループ最少レイヤデータ数より少ない場合、当該次のフレームグループについて、すべてのフレームの当該一のフレームグループのグループ最少レイヤデータ数と同じ数のレイヤデータを用いて、当該次のフレームグループを復号化する。これにより、高画質と低画質との頻繁な切り替えをさらに抑制することができ、閲覧者が体感する動画の品質を向上させることができる。
また、再生部108は、動画データが3階層以上の複数の階層を含むように符号化されている場合において、1つ前のフレームグループよりもグループ最少レイヤデータ数が多い一のフレームグループについて、当該一のフレームグループ以降の第2の階層保証フレームグループ数のフレームグループのすべてについて、グループ最少レイヤデータ数が当該一のフレームグループの1つ前のフレームグループのグループ最少レイヤデータ数より多い場合、当該一のフレームグループと当該一のフレームグループ以降の第2の階層保証フレームグループ数のフレームグループのすべての中で最も少ないグループ最少レイヤデータ数と同じ数のレイヤデータを用いて、当該一のフレームグループを復号化し、当該一のフレームグループ以降の第2の階層保証フレームグループ数のフレームグループの少なくとも1つについて、グループ最少レイヤデータ数が当該一のフレームグループの1つ前のフレームグループのグループ最少レイヤデータ数より少ない場合、当該一のフレームグループについて、当該一のフレームグループの1つ前のフレームグループのグループ最少レイヤデータ数と同じ数のレイヤデータを用いて、当該一のフレームグループを復号化する。
また、再生部108は、動画データが3階層以上の複数の階層を含むように符号化されている場合において、1つ後のフレームグループよりも、グループ最少レイヤデータ数が予め定められた低下制限階層数以上多い一のフレームグループについて、すべてのフレームについて、当該一のフレームグループのグループ最少レイヤデータ数よりも少ない数のレイヤデータのみを用いて、当該一のフレームグループを復号化してよい。低下制限階層数は予め定められた数であってよく、また、変更可能であってもよい。
また、再生部108は、動画データが3階層以上の複数の階層を含むように符号化されている場合において、1つ前のフレームグループよりも、グループ最少レイヤデータ数が予め定められた上昇制限階層数以上多い一のフレームグループについて、すべてのフレームについて、当該一のフレームグループのグループ最少レイヤデータ数よりも少ない数のレイヤデータのみを用いて、当該一のフレームグループを復号化してよい。上昇制限階層数は予め定められた数であってよく、また、変更可能であってもよい。
図29は、外部から動画データを受信可能な動画データ再生装置100の一例を概略的に示す。動画データ再生装置100は、動画サーバ310が配信する複数の階層を含むように符号化された動画データを受信して、受信した動画データを復号化して再生してよい。動画データ再生装置100は、ネットワーク300を介して動画サーバ310から動画データを受信してよい。ネットワーク300は、インターネット、有線LAN(Local Area Network)、無線LAN、有線電話網、および無線電話網の少なくともいずれかを含んでよい。
動画サーバ310は、動画データをストリーミング配信してよい。動画データ再生装置100は、動画サーバ310から動画データのストリーミングを受け付けて、バッファ102に格納しつつ復号化を行って、動画データを再生してよい。また、動画データ再生装置100は、動画サーバ310から動画データのストリーミングを受け付けてバッファ102に格納していき、動画データ全体がバッファ102に格納された後に、動画データを復号化して再生してもよい。
また、動画サーバ310は、ストリーミング配信ではなく、例えば動画ファイル単位で動画データを配信してもよい。動画データ再生装置100は、動画ファイル単位で受信した動画データをバッファ102に格納した後に、動画データを復号化して再生してよい。
動画データ再生装置100は、パケット受信部112を備えてよい。パケット受信部112は、動画サーバ310によってレイヤデータ毎にパケット化されて送信されたパケットを受信してよい。パケットには、SIDが含まれていてよい。パケット受信部112は、パケットに含まれるレイヤデータをバッファ102に格納してよい。
また、動画データ再生装置100は、カメラ130によって撮像された動画データをカメラ130から受信してもよい。カメラ130は、動画を撮像可能なスチルカメラ、ビデオカメラ、および監視カメラなどであってよい。カメラ130は、複数の階層を含むように符号化した動画データを動画データ再生装置100に対して送信してよい。
動画データ再生装置100は、映像信号受信部114を備えてよい。映像信号受信部114は、カメラ130から動画データを受信する。映像信号受信部114は、カメラ130が撮像しながら順次送信する動画データを受信してよい。また、映像信号受信部114は、カメラ130が撮像終了後に送信した動画データを受信してよい。動画データ再生装置100は、ネットワーク300を介してカメラ130から動画データを受信してもよい。なお、動画データ再生装置100は、パケット受信部112および映像信号受信部114の両方を備えてよく、また、いずれか一方のみを備えてもよい。
上記実施形態において、第1の階層維持フレーム数は変更可能であってよいことを説明したが、動画データ再生装置100は、再生する動画データに応じて第1の階層維持フレーム数を変更してよい。例えば、動画データ再生装置100は、動画データの内容の動きの激しさおよび動画データの長さの少なくともいずれかに基づいて、第1の階層維持フレーム数を決定する。具体例として、動画データ再生装置100は、動きが激しいほど第1の階層維持フレーム数を大きくする。これにより、動きが激しい動画データほど、画質が切り替わる頻度を低減させることができる。また、具体例として、動画データ再生装置100は、動画データが長いほど第1の階層維持フレーム数を大きくする。
また、動画データ再生装置100は、動画サーバ310から動画データを受信して再生する場合に、通信環境に応じて第1の階層維持フレーム数を変更してもよい。例えば、動画データ再生装置100は、通信品質が高いほど第1の階層維持フレーム数を大きくする。通信品質が高いほど動画データにおけるフレームの欠落は少なくなるので、通信品質が高いほど第1の階層維持フレーム数を大きくすることによって、本来高画質のフレームとして再生してもよいフレームを、低画質のフレームとして再生してしまう回数を低減することができる。動画データ再生装置100は、第1の階層保証フレーム数、第2の階層維持フレーム数、第2の階層保証フレーム数、第1の階層維持フレームグループ数、第1の階層保証フレームグループ数、第2の階層維持フレームグループ数、第2の階層保証フレームグループ数、低下制限階層数、および上昇制限階層数の少なくともいずれかについても、第1の階層維持フレーム数と同様に動画データおよび動画データを通信する通信環境の少なくともいずれかに応じて変更してよい。なお、第1の階層維持フレーム数、第2の階層維持フレーム数、第1の階層維持フレームグループ数、及び第2の階層維持フレームグループ数は、異なる値であってよく、また、同じ値であってもよい。また、第1の階層保証フレーム数、第2の階層保証フレーム数、第1の階層保証フレームグループ数、及び第2の階層保証フレームグループ数は、異なる値であってよく、また、同じ値であってもよい。
以上の説明において、動画データ再生装置100の各部は、ハードウエアにより実現されてもよく、ソフトウエアにより実現されてもよい。また、ハードウエアとソフトウエアとの組み合わせにより実現されてもよい。また、プログラムが実行されることにより、コンピュータが、動画データ再生装置100として機能してもよい。プログラムは、コンピュータ読み取り可能な媒体またはネットワークに接続された記憶装置から、動画データ再生装置100の少なくとも一部を構成するコンピュータにインストールされてよい。
コンピュータにインストールされ、コンピュータを本実施形態に係る動画データ再生装置100として機能させるプログラムは、CPUなどに働きかけて、コンピュータを、動画データ再生装置100の各部としてそれぞれ機能させる。これらのプログラムに記述された情報処理は、コンピュータに読込まれることにより、ソフトウエアと動画データ再生装置100のハードウエア資源とが協働した具体的手段として機能する。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。