(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024086629
(43)【公開日】2024-06-27
(54)【発明の名称】編集可能な署名付きビデオデータ
(51)【国際特許分類】
H04N 19/467 20140101AFI20240620BHJP
H04N 19/40 20140101ALI20240620BHJP
H04N 19/46 20140101ALI20240620BHJP
【FI】
H04N19/467
H04N19/40
H04N19/46
【審査請求】未請求
【請求項の数】15
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023207480
(22)【出願日】2023-12-08
(31)【優先権主張番号】22213744
(32)【優先日】2022-12-15
(33)【優先権主張国・地域又は機関】EP
(71)【出願人】
【識別番号】502208205
【氏名又は名称】アクシス アーベー
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】ルンドベリ, ステファン
(72)【発明者】
【氏名】ボルカー, ビョルン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159KK43
5C159KK51
5C159MA01
5C159PP04
5C159RC11
5C159UA02
5C159UA05
(57)【要約】 (修正有)
【課題】署名付きビデオビットストリームを検証するための方法およびデバイスを提供する。
【解決手段】ビデオシーケンスの予測符号化によって取得された署名付きビデオビットストリームを編集する方法であって、ビットストリームの領域を置換する要求を受信することと、該領域が含まれるマクロブロックの第1のセットと、第1のセット内のマクロブロックを参照するマクロブロックの第2のセットとを決定することと、マクロブロックの第1のセットおよび第2のセットを表すデータユニットの第1のセットのおよび第2のセットのフィンガープリントを含むアーカイブオブジェクトを追加することと、置換する要求に従ってデータユニットの第1のセットを編集することと、データユニットの第2のセットを再符号化することと、とを含む。
【選択図】
図6
【特許請求の範囲】
【請求項1】
ビデオシーケンスの予測符号化によって取得された署名付きビデオビットストリームを編集する方法であって、
前記署名付きビデオビットストリームが、データユニットおよび関連する署名ユニットを含み、各データユニットが、前記予測符号化されたビデオシーケンスのビデオフレーム内の最大でも1つのマクロブロックを表し、各署名ユニットが、それぞれ正確に1つの関連するデータユニットの複数のフィンガープリントから導出されたビット列のデジタル署名を含み、
前記方法が、
少なくとも1つのビデオフレームの領域を置換する要求を受信することと、
前記領域が含まれるマクロブロックの第1のセットと、前記第1のセット内のマクロブロックを直接または間接的に参照するマクロブロックの第2のセットとを決定することと、
アーカイブオブジェクトを前記署名付きビデオビットストリームに追加することであって、前記アーカイブオブジェクトが、前記決定されたマクロブロックの第1のセットおよび第2のセットをそれぞれ表すデータユニットの第1のセットおよび第2のセットのフィンガープリントを含む、追加することと、
前記少なくとも1つのビデオフレームの前記領域を置換する前記要求に従って前記データユニットの第1のセットを編集することと、
前記データユニットの第2のセットを再符号化することと
を含む、方法。
【請求項2】
前記アーカイブオブジェクトが、前記マクロブロックの第1のセットおよび第2のセットの位置をさらに含む、請求項1に記載の方法。
【請求項3】
前記データユニットの第1のセットの前記編集することが、
前記データユニットを再構築されたマクロブロックへ復号することと、
前記再構築されたマクロブロックに対して前記要求された置換を実施することによって、編集されたマクロブロックを提供することと、
前記編集されたマクロブロックを符号化することによって、編集されたデータユニットを提供することと
を含む、請求項1に記載の方法。
【請求項4】
前記置換後に前記マクロブロックが、独立して復号可能なデータユニットとして符号化される、請求項3に記載の方法。
【請求項5】
前記再符号化を容易にするために、前記再構築されたマクロブロックを使用して前記第2のセット内のデータユニットを復号することをさらに含む、請求項3に記載の方法。
【請求項6】
前記データユニットの第2のセットが、低減されたデータ圧縮を使用して再符号化される、請求項1に記載の方法。
【請求項7】
前記データユニットの第2のセットが、独立して復号可能なデータユニットとして再符号化される、請求項1に記載の方法。
【請求項8】
前記署名付きビデオビットストリームでは、前記編集されたデータユニットの第1のセットおよび前記再符号化されたデータユニットの第2のセットに関連付けられた1つまたは複数の署名ユニットを提供すること
をさらに含む、請求項1に記載の方法。
【請求項9】
前記署名ユニットに関連付けられたそれぞれのデータユニットの複数のフィンガープリントを算出することと、
前記複数のフィンガープリントからビット列を導出することと、
前記ビット列のデジタル署名を取得することであって、前記ビット列が前記複数のフィンガープリントの組み合わせ、または前記組み合わせのフィンガープリントである、取得することと、
によって、前記署名ユニットを最初に提供することをさらに含む、請求項1に記載の方法。
【請求項10】
各フィンガープリントが、
a)前記データユニットから、または
b)前記データユニットから再構築されたマクロブロックから、または
c)前記データユニットから導出された中間再構築データから、
算出される、請求項9に記載の方法。
【請求項11】
前記受信された要求が、複数のビデオフレーム内の領域を置換することである、請求項1に記載の方法。
【請求項12】
ビデオシーケンスの予測符号化によって取得された署名付きビデオビットストリームを検証する方法であって、
前記署名付きビデオビットストリームが、データユニット、関連する署名ユニット、およびアーカイブオブジェクトを含み、各データユニットが、前記予測符号化されたビデオシーケンスのフレーム内の最大でも1つのマクロブロックを表し、各署名ユニットが、ビット列のデジタル署名を含み、前記アーカイブオブジェクトが、データユニットの少なくとも1つのアーカイブされたフィンガープリントを含み、
前記方法が、
前記データユニットのフィンガープリントを算出すること、または
前記アーカイブオブジェクトからアーカイブされたフィンガープリントを取得すること
によって、署名ユニットに関連付けられた各データユニットのフィンガープリントを取得することと、
前記取得されたフィンガープリントからビット列を導出することと、
前記署名ユニット内の前記デジタル署名を使用して、前記署名ユニットに関連付けられた前記データユニットを検証することであって、
前記デジタル署名を使用して前記導出されたビット列を検証すること、または、
前記署名ユニットがビット列を含む場合、前記デジタル署名を使用して前記署名ユニット内の前記ビット列を検証し、前記導出されたビット列と前記検証されたビット列とを比較すること
を含む、前記データユニットを検証することと
を含む、方法。
【請求項13】
前記アーカイブオブジェクトが、前記アーカイブされたフィンガープリントが関係するデータユニットによって表されるマクロブロックの位置をさらに示し、
前記フィンガープリントの取得が、前記アーカイブオブジェクトによって示される前記位置に基づいて、前記データユニットのフィンガープリントを算出するか、または前記アーカイブオブジェクトからフィンガープリントを取得するかを決定することを含む、
請求項12に記載の方法。
【請求項14】
請求項1に記載の方法を実行するように配置された処理回路を備えるデバイス。
【請求項15】
コンピュータによって実行されると、請求項1に記載の方法を前記コンピュータに実行させる命令を含むコンピュータプログラムを含む、非一時的コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、特にデータの記憶および送信に関連して、ビデオデータを不正なアクティビティから保護するためのセキュリティ装置の分野に関する。本開示は、署名付きビデオビットストリームを編集し、そのような編集から生じ得る署名付きビデオビットストリームを検証するための方法およびデバイスを提案する。
【背景技術】
【0002】
デジタル署名は、安全でないチャネルを介して送信されるデジタルメッセージに検証および安全の層を提供するデジタル署名によって、メッセージの真正性または完全性を検証することができ、否認不可を保証することができる。特にビデオ符号化に関しては、先行技術で説明されている、予測符号化されたビデオシーケンスにデジタル署名するための安全で非常に効率的な方法がある。例えば、本発明者らによる以前の特許出願である欧州特許出願公開第212013601号明細書(欧州特許出願公開第4164173号明細書)および欧州特許出願公開第212013627号明細書(欧州特許出願公開第4164230号明細書)を参照されたい。ピクチャ群構造を有する予測符号化ビデオデータに特に適合された暗号ビデオ検証技術を提案する、米国特許出願公開第20140010366号明細書も参照されたい。
【0003】
ビデオシーケンスは、署名された後に編集される必要がある場合がある。視覚的改善に加えて、編集は、視覚的特徴を認識しにくくするトリミング、マスキング、ぼかし、または同様の画像処理によってプライバシー保護を保証することを目的にすることができる。ほとんどの利用可能な方法では、これは編集されたフレーム全体を再符号化および再署名する必要がある。再符号化および再署名は、隣接するフレームが編集の影響を直接受けない場合でも、存在し得る予測符号化の依存関係(フレーム間/フレーム内参照)を乱さないように、いくつかの隣接するフレームにも拡張されることが好ましい。これらのステップは、かなりの計算リソースを消費し、ユーザにとって厄介な遅延をもたらす可能性がある。
【0004】
米国特許第7437007号明細書は、圧縮領域においてビデオストリームの関心領域編集を実行する方法を開示する。圧縮ビデオストリームは、不要部分および関心領域部分を有するビデオストリームフレームを表す圧縮ビデオストリームフレームを含む。本方法によれば、圧縮ビデオストリームフレームは、該ビデオストリームの元の構造を維持しながら、前述の不要部分を修正し、前述の関心領域部分を含む圧縮ビデオストリームフレームを取得するように編集される。これを達成するために、該編集は、予測符号化(P)フレームおよび双方向予測符号化(B)フレームの前述の関心領域部分の上、下、および右に位置するマクロブロックをスキップすることを含む。米国特許第7437007明細書で検討中のビデオストリームは、署名付きビデオストリームではない。
【発明の概要】
【0005】
本開示の1つの目的は、いくつかの利用可能な方法の場合のように、編集によって影響を受ける部分の外側でビットストリームを再署名する必要性を大幅に回避する、ビデオシーケンスの予測符号化によって取得された署名付きビデオビットストリームを編集する方法を利用可能にすることである。特定の目的は、編集されたものを除くすべてのマクロブロックおよびこれらを参照する任意のさらなるマクロブロックの署名を、直接的または間接的にかかわらず保存するようなビデオ編集方法を利用可能にすることである。さらなる目的は、元の署名付きビデオビットストリームのデータセキュリティを著しく損なうことなくビデオ編集を可能にすることである。さらなる目的は、ビデオシーケンスの予測符号化によって取得された署名付きビデオビットストリームを検証する方法を提供することである。これらの目的のためのデバイスおよびコンピュータプログラムを提供することは、なおさらなる目的である。
【0006】
これらの目的の少なくともいくつかは、独立請求項によって規定される本発明によって達成される。従属請求項は、本発明の有利な実施形態に関する。
【0007】
本開示の第1の態様では、ビデオシーケンスの予測符号化によって取得された署名付きビデオビットストリームを編集する方法が提供される。署名付きビデオビットストリームは、データユニットおよび関連する署名ユニットを含むものとする。各データユニットは、予測符号化されたビデオシーケンスのビデオフレーム内の最大でも1つのマクロブロックを表す(すなわち、符号化する)。各署名ユニットは、それぞれ正確に1つの関連するデータユニットの複数のフィンガープリントから導出されたビット列のデジタル署名を含む。署名ユニットは、任意選択的に、デジタル署名が関係するビット列を含むことができる。これらの特性を有する署名付きビデオビットストリームの場合、本方法は、少なくとも1つのビデオフレームの領域を置換する(例えば、1つまたは複数のビデオフレーム内で、領域の画素値に対するプライバシーマスクを置換する)要求を受信するステップと、前述の領域が含まれるマクロブロックの第1のセットと、第1のセット内のマクロブロックを直接または間接的に参照するマクロブロックの第2のセットとを決定するステップと、アーカイブオブジェクトを署名付きビデオビットストリームに追加するステップであって、アーカイブオブジェクトが、決定されたマクロブロックの第1のセットおよび第2のセットをそれぞれ表すデータユニットの第1のセットおよび第2のセットのフィンガープリントを含む、追加するステップと、置換する要求に従ってデータユニットの第1のセットを編集するステップと、データユニットの第2のセットを再符号化するステップと、を含む。署名ユニットは、任意選択的に、デジタル署名が関係する導出されたビット列を含むことができる(「文書アプローチ」)。
【0008】
各データユニットは最大でも1つのマクロブロックを表すので、その結果、データユニットとマクロブロックは一対一の関係にあるか、またはいくつかのマクロブロックは2つ以上のデータユニットによって表され、2つ以上のデータユニットから再構成することができる。データユニットは複数のマクロブロック(または複数のマクロブロックの一部分)を表さず、したがって、いくつかのマクロブロックを編集する直接の効果は、編集されたマクロブロックの1つまたは複数のデータユニット(第1のセット)に限定される。さらに、各フィンガープリントは正確に1つの関連するデータユニットのフィンガープリントであるため、編集後にデータユニットに再署名する必要性が制限される。より正確には、第1の態様による方法は、マクロブロックの対または群を接続する任意の予測符号化依存性を、すなわち、編集されたマクロブロック(複数可)を直接的または間接的に参照するマクロブロックを表すデータユニットのセット(第2のセット)を再符号化することによって、保存する。再符号化がデータユニットのこの第2のセットに制限される場合、本方法は利用可能な計算量を効率的に利用する。これにより、通常の処理装置の良好な性能で本方法を実行することができる。
【0009】
第1の態様による方法は、受信者側にさらなる利点を含む。データユニットの第1のセットおよび第2のセットのフィンガープリントを取得することができるアーカイブオブジェクトのため、受信者は、編集の影響を受けていない署名付きビデオビットストリームのすべてのデータユニットを検証することができる。これにより、既存の署名のかなりの部分を保存することができ、この点において、第1の態様によるビデオ編集方法は、破壊が最小限であるといえる。受信者側での検証は、本開示の第2の態様内で詳細に説明される。
【0010】
いくつかの実施形態では、アーカイブオブジェクトは、マクロブロックの第1のセットおよび第2のセットの位置をさらに含む。位置は、フレーム内の、例えばフレーム座標内のマクロブロックの位置を指すことができる。静的マクロブロック分割が使用される場合、マクロブロックの位置は、マクロブロックシーケンス番号または別の識別子として表すことができる。これは、編集されたビデオビットストリームの受信者が、特定のマクロブロックが変更されたかどうかを判定し、したがって、該マクロブロックを表すデータユニットのフィンガープリントを取得する適切な方法を選択するための支援の1つの方法を提供する。
【0011】
いくつかの実施形態は、データユニットの第1のセットを編集するための有利な手順を提供する。より正確には、このような編集は、データユニットを再構築されたマクロブロックへ復号することと、再構築されたマクロブロックに対して要求された置換を実施することによって編集されたマクロブロックを提供することと、編集されたマクロブロックを符号化することによって編集されたデータユニットを提供することと、を含んでもよい。置換されるべき領域が再構築されたマクロブロック全体を網羅する場合、編集されたデータユニットは、特に、領域のサブセット、例えば、マクロブロックと領域との交差を符号化することによって提供されてもよい。
【0012】
そのような実施形態では、置換後に生じるマクロブロックをイントラ符号化されたマクロブロック(Iブロック)として符号化することは任意選択であり、それによって独立して復号可能なデータユニットが得られる。これは、置換がビデオシーケンスに突然の時間変化を導入する可能性があるという事実を説明する。これは、ビデオシーケンスの時間連続性を低下させる傾向があり、そのため、ほとんどの既知の予測符号化技術はあまり良好に機能しない。
【0013】
さらに、データユニットの第1のセットを編集するため上記の概略手順内で、再構築されたマクロブロックを使用して第2のセット内のデータユニットを復号することが可能である。データユニットの第2のセットは、マクロブロックの第1のセットを直接または間接的に参照するマクロブロックの第2のセットを表すので、復号は予測的である。第2のセット内の前述のデータユニットを復号する出力は、再符号化ステップで使用される。
【0014】
異なる実施形態では、データユニットの第2のセットの再符号化は、編集されたデータユニットの第1のセットを参照して予測符号化によって実施することができるか、または非予測符号化によって実施することができる。これら2つの選択肢のうちの1つの選択は、品質とビットレートとの間の所望のバランスをとることに対応し得る。さらにまた、データユニットの第2のセットは、低減されたデータ圧縮を使用して再符号化されてもよい。非可逆ビデオ符号化フォーマットでは、データ圧縮は、ピクセル値の量子化などによって、ビデオシーケンス内の情報の一部を破棄することによって達成される。量子化の程度は、例えば、量子化画素値の細かさを表す量子化パラメータ(QP)の値に対応することができる。量子化の程度は、スケーリング行列の定義内のエントリにさらに依存し得る。ビデオシーケンスが所定の通常のデータ圧縮レベルで符号化されると仮定すると、マクロブロックの第2のセットを、通常のデータ圧縮に対して低減されたデータ圧縮レベルで符号化することが予測される。低減されたデータ圧縮レベルの使用は、例えば、マクロブロックの画素値を量子化画素値の比較的細かいセットにマッピングすることによって、マクロブロック内のより少ない量の情報が符号化ステップで廃棄されることを意味する。言い換えれば、第2のセット内のマクロブロックは、通常のデータ圧縮レベルが使用された場合よりも比較的高いビットレートで符号化され、より少ない残留誤差で再生することができる。追加のメモリまたは帯域幅コストは許容可能である可能性が高く、編集が通常まれに発生する、および/またはビデオシーケンスの分離された部分で発生するユースケースではなおさらそうである。
【0015】
いくつかの実施形態では、編集された署名付きビデオビットストリームのデータセキュリティは、ビットストリームに、編集されたデータユニットの第1のセットおよび/または再符号化されたデータユニットの第2のセットに関連付けられた1つまたは複数の署名ユニットを提供することによって改善される。これにより、編集されたデータユニットの第1のセットおよび再符号化されたデータユニットの第2のセットの不正な変更のシナリオが回避される。1つまたは複数の署名ユニットは、ビットストリームに追加された新しい署名ユニット、または編集前に署名付きビデオビットストリームに含まれた署名ユニットの編集されたバージョンであってもよい。
【0016】
第1の態様の一般化によれば、データユニットおよび関連する署名ユニットを含む署名付きビデオシーケンスに対して実施されるビデオ編集方法が提供される。各データユニットは、予測符号化されたビデオシーケンスのビデオフレーム内の最大でもN個のマクロブロックを表す。ここで、Nは、1、2、3、4、5、または最大でも10などの小さい整数である。各署名ユニットは、それぞれ正確に1つの関連するデータユニットの複数のフィンガープリントから導出されたビット列のデジタル署名、および任意選択的にビット列を含む。ビデオ編集方法は、少なくとも1つのビデオフレームの領域を置換する要求を受信することと、該領域が含まれるマクロブロックの第1のセットと、第1のセット内のマクロブロックを直接または間接的に参照するマクロブロックの第2のセットとを決定することと、アーカイブオブジェクトであって、アーカイブオブジェクトは、決定されたマクロブロックの第1のセットおよび第2のセットをそれぞれ表すデータユニットの第1のセットおよび第2のセットのフィンガープリントを含む、アーカイブオブジェクトを署名付きビデオビットストリームに追加することと、置換する要求に従ってデータユニットの第1のセットを編集することと、データユニットの第2のセットを再符号化することと、を含む。
【0017】
この一般化によれば、各データユニットは最大でもN個のマクロブロックを表すので、1つのマクロブロックを編集する直接の効果は、編集されたマクロブロックの最大でN個のデータユニットに限定される。さらに、各フィンガープリントは正確に1つの関連するデータユニットのフィンガープリントであるため、編集後にデータユニットに再署名する必要性が制限される。特に、アーカイブオブジェクトは、マクロブロックの第1のセットおよび第2のセットのカーディナリティの最大でもN倍のフィンガープリントを保持し、その結果、ビデオ編集方法は実現可能な複雑さを有する。
【0018】
本開示の第2の態様では、ビデオシーケンスの予測符号化によって取得された署名付きビデオビットストリームを検証する方法が提供される。署名付きビデオビットストリームは、データユニットと、データユニットのいくつかにそれぞれ関連付けられた署名ユニットと、アーカイブオブジェクトとを含むことが理解される。各データユニットは、予測符号化されたビデオシーケンスのフレーム内の最大でも1つのマクロブロックを表す。各署名ユニットは、ビット列および任意選択的にビット列自体のデジタル署名を含む。最後に、アーカイブオブジェクトは、少なくとも1つのアーカイブされたデータユニットのフィンガープリントを含む。署名付きビデオビットストリームを検証する方法は、データユニットのフィンガープリントを算出することによって、またはアーカイブオブジェクトからアーカイブされたフィンガープリントを取得することによって、署名ユニットに関連付けられた各データユニットのフィンガープリントを取得することと、取得されたフィンガープリントからビット列を導出することと、署名ユニット内のデジタル署名を使用して、署名ユニットに関連付けられたデータユニットを検証することと、を含む。最終検証ステップは、デジタル署名を使用して導出されたビット列を検証することを含むことができる。あるいは(「文書アプローチ」)、検証ステップは、デジタル署名を使用して署名ユニット内のビット列を検証すること、および導出されたビット列と検証されたビット列とを比較することを含む。
【0019】
アーカイブオブジェクトは、第1の態様による編集方法を実施することによって追加されていてもよいが、第2の態様による方法は、このような事前処理の信頼できる知識なしに実施することができる。したがって、第2の態様による方法は、署名ユニットで搬送されたデジタル署名(および任意のビット列)が実際に関連するデータユニットのフィンガープリントと一致することを検証するという点で、ビデオシーケンスの真正性の検証を達成する。したがって、データユニットも修正されていない可能性がある。
【0020】
第2の態様による方法は、直接算出またはアーカイブオブジェクトからの取得による、データユニットのフィンガープリントを取得するための2つの選択肢を含む。これは、編集フェーズ(第1の態様)中の既存のフィンガープリントの破壊を最小限に抑える処理をサポートする。各データユニットが最大でも1つのマクロブロックを表すという事実は、所与の置換要求のためにアーカイブされる必要があるフィンガープリントの数を制限する傾向があり、したがって、アーカイブオブジェクトのサイズを制限する。
【0021】
いくつかの実施形態では、アーカイブオブジェクトは、アーカイブされたフィンガープリントが関係するデータユニットによって表されるマクロブロックの位置をさらに示す。言い換えると、アーカイブされたフィンガープリントはデータユニットのフィンガープリントであり、データユニットは、その位置がアーカイブオブジェクト内で示されるマクロブロックを表す(符号化する)。第2の態様による方法の実行中に、データユニットのフィンガープリントを取得するために、アーカイブオブジェクトによって示される位置に基づいて、フィンガープリントを算出するか、またはアーカイブオブジェクトからフィンガープリントを取得するかが判定される。
【0022】
本開示の第3の態様は、第1の態様および/または第2の態様の方法を実行するように構成されたデバイスに関する。これらのデバイスは、異なる主目的(例えば、ビデオ記録、ビデオコンテンツ管理、ビデオ再生)を有するシステムに組み込まれてもよく、またはそれぞれ前述の編集および検証専用であってもよい。本開示の第3の態様内のデバイスは、一般に、第1の態様および第2の態様の効果および利点を共有し、それらは同等の程度の技術的変形を伴って具現化することができる。
【0023】
本発明はさらに、コンピュータに上記方法を実行させるための命令を含むコンピュータプログラムに関する。コンピュータプログラムは、データキャリアに格納または分配することができる。本明細書で使用される場合、「データキャリア」は、変調された電磁波もしくは光波などの一時的データキャリア、または非一時的データキャリアであってもよい。非一時的データキャリアは、磁気、光学、またはソリッドステートタイプの永続的および非永続的記憶媒体などの揮発性および不揮発性メモリを含む。依然として「データキャリア」の範囲内で、そのようなメモリは固定的に取り付けられてもよく、または移動式であってもよい。
【0024】
本開示のさらなる態様では、データユニットおよび関連する署名ユニットを含む署名付きビデオビットストリームが提供される。各データユニットは、予測符号化されたビデオシーケンスのビデオフレーム内の最大でもN個のマクロブロックを表す。ここで、Nは、1、2、3、4、5、または最大でも10などの小さい整数である。各署名ユニットは、それぞれ正確に1つの関連するデータユニットの複数のフィンガープリントから導出されたビット列のデジタル署名、および任意選択でビット列自体を含む。署名付きビデオビットストリームは、1つのマクロブロックを編集する直接効果が編集されたマクロブロックの最大でもN個のデータユニットに制限され、各フィンガープリントが正確に1つの関連するデータユニットのフィンガープリントであるため、編集に適している。これは、編集の伝播を限られた数のデータユニットに制限し、その結果、編集後に再署名される必要があるデータユニットが少なくなる。
【0025】
本開示で使用される、「マクロブロック」は、有利には符号化マクロブロックであり得ることに留意されたい。しかしながら、本発明は、予測符号化されていないビデオにも適用可能であり、より一般化された場合、マクロブロックは、したがって、任意の近接する画素の群とすることができる。ビデオの署名は復号されたフレームに対して行われるため、画素のグループ化は、任意の符号化群の分割に限定される必要はない。
【0026】
一般に、特許請求の範囲で使用されるすべての用語は、本明細書で特に明示的に規定されない限り、技術分野におけるそれらの通常の意味に従って解釈されるべきである。「1つの(a)/1つの(an)/その(the)要素(element)、装置(apparatus)、構成要素(component)、手段(means)、ステップなどへのすべての言及は、特に明記しない限り、要素、装置、構成要素、手段、ステップなどの少なくとも1つの例を指すものとして非限定的に解釈されるべきである。本明細書に開示される任意の方法のステップは、明示的に述べられていない限り、記載された正確な順序で実施される必要はない。
【0027】
以下、添付の図面を参照して、態様および実施形態を例として説明する。
【図面の簡単な説明】
【0028】
【
図1】ビデオフレーム内のマクロブロック内のフレーム内参照の2つの例示的なパターンを示す。
【
図2】フレーム間参照の例示的なパターンを有する1つのピクチャ群(GoP)を表すフレームのシーケンスを示す。
【
図3】データユニットとそれらが表すマクロブロックとの間の4つの例示的な対応パターンを示す。
【
図4】第1のフレーム(第1列)内のいくつかのマクロブロックに直接影響を及ぼし、GoPの終わりまでさらなるフレーム(第2および第3列)における結果的な変化をもたらす編集演算を示す。
【
図5A】編集前の状態のビデオシーケンス(上半分)を、データユニットおよび関連する署名ユニットを含む署名付きビデオビットストリーム(下半分)と共に示す。
【
図5B】編集後の同じビデオシーケンスおよび署名付きビデオビットストリームを示す。
【
図6】本明細書の実施形態による、署名付きビデオビットストリームを編集する方法のフローチャートである。
【
図7】本明細書の実施形態による、署名付きビデオビットストリームを検証する方法のフローチャートである。
【
図8】
図6および
図7に示す方法を実行するのに適したデバイスを示す。
【
図9】ローカルエリアおよび/またはワイドエリアネットワークを介して接続されるいくつかのそのようなデバイスを示す。
【
図10A】(文書アプローチ)。
図7に示す方法内の署名付きビデオビットストリームおよびいくつかの演算を示す。
【
図10B】
図7に示す方法内の署名付きビデオビットストリームおよびいくつかの演算を示す。
【発明を実施するための形態】
【0029】
本発明の態様は、本発明の特定の実施形態が示されている添付の図面を参照して、以下により完全に説明される。しかしながら、これらの態様は、多くの異なる形態で具現化されてもよく、限定するものとして解釈されるべきではなく、むしろ、これらの実施形態は、本開示が徹底的かつ完全であり、本発明のすべての態様の範囲を当業者に完全に伝えるように、例として提供される。説明全体を通して、同様の符号は同様の要素を指す。
【0030】
本開示の用語では、「ビデオビットストリーム」は、ビット値のシーケンスと同様であり得る任意の実質的に線形のデータ構造を含む。ビデオビットストリームは、いくつかのストリーミング使用事例のように、一時的媒体(例えば、変調された電磁波または光波)によって搬送することができ、またはビデオビットストリームは、揮発性または不揮発性メモリなどの非一時的媒体に格納することができる。
【0031】
ビデオビットストリームはビデオシーケンスを表し、これは公称時間間隔で順次再生されるビデオフレームのシーケンスであると理解することができる。各ビデオフレームは、マクロブロックに分割され得る。本開示ではさらに、「マクロブロック」は、ビデオシーケンスのフレーム内の変換ブロックもしくは予測ブロック、またはこれらの両方の用途を有するブロックとすることができる。本明細書における「フレーム」および「マクロブロック」の使用は、H.26xビデオ符号化規格または同様の仕様と一致することを意図している。「マクロブロック」はさらに、符号化ブロックであり得る。上述したように、マクロブロックという用語が使用されるが、画素のグループ化は、符号化に使用される任意の分割に限定される必要はなく、むしろ、マクロブロックは、隣接する画素の任意の群であってもよい。予測ベースの符号化の場合に適用される場合、符号化に使用されるものと同じ分割を使用することが有利であり得る。
【0032】
図1Aおよび
図1Bは、マクロブロック101の4×4の均一な配置へのビデオフレーム100の例示的なパーティションを示す。これは例示目的のための簡略化であることに留意されたい。実際には、ビデオフレーム100は、一般に、はるかに多数のマクロブロックに分割され、例えば、マクロブロックは、8×8画素、16×16画素、または64×64画素とすることができる。本明細書では、予測符号化で使用されるフレーム内参照またはフレーム間参照を示すために、巻き矢印が一貫して使用される。本開示の範囲から逸脱することなく、
図1Aおよび
図1Bに見られるマクロブロックへのパーティションは、非正方形配置および/またはビデオフレーム100と同種ではないマクロブロック101の配置および/または異なるサイズもしくは形状を有する異なるマクロブロック101の混合配置を含むように、大幅に変更することができる。いくつかのビデオ符号化フォーマットは、動的マクロブロック分割をサポートする、すなわち、パーティションは、シーケンス内の異なるビデオフレームに対して異なり得ることが理解される。これは、例えば、H.265に当てはまる。
【0033】
図1Aでは、フレーム内参照のパターンは、マクロブロック101の単一行に制限される。実際、各マクロブロック101は、マクロブロック内の画像データを予測的に表現するデータユニットによって表されるという意味で、(フレーム100内に存在する場合)そのすぐ左のマクロブロックを指し、すなわち、このマクロブロック内の画像データは、左のマクロブロック内の画像データに対して表現される。概念的には、ある程度簡略化されているが、データユニットは、左マクロブロックに対する変化または移動に関してマクロブロック101を表現する。別の可能な理解は、データユニットが、左マクロブロックからマクロブロック101を導出する所定の予測演算の補正を表すことである。本開示の範囲内の代替例では、マクロブロック101は、その右、またはその上または下の別のマクロブロック101を指してもよい。
【0034】
図1Bでは、フレーム内参照のパターンはより密である。ここで、各マクロブロック101は、そのすぐ左のマクロブロック(フレーム100に存在する場合)およびそのすぐ上のマクロブロック(フレーム100に存在する場合)を指す。したがって、マクロブロック101は、左および上のマクロブロック内の画像データに作用する所定の補間演算(またはなんらかの他の所定の組み合わせ)に基づいて、例えば差分に関して、またはこの画像データの予測の補正に関して、マクロブロック内の画像データを予測的に表現するデータユニットによって表される。補間は、平滑化などの後処理操作を含むことができる。本開示の範囲内にあるさらなる代替案は、
図1Bに示されている方向とは反対の方向、すなわち最下行から始まる方向を有するフレーム内参照を使用することである。
【0035】
フレーム内参照の所定のパターンを有する画像/ビデオフォーマットは、マクロブロックを復号するための実行可能なシーケンスを表す指定された走査順序と関連付けることができる。
図1Aでは、マクロブロック走査順序は一意ではない、すなわち、各行を独立して復号することができるためである。
図1Bによるパターンの場合、マクロブロックは、上から行方向に、または左から列方向に復号することができ、この参照パターンを有するビデオフォーマットは、エンコーダ側で任意の再構築エラーが予期され得るように、列ごとまたは行ごとの走査順序を指定することができ、これは符号化効率に利益をもたらす。さらに、任意のマクロブロック順序またはいわゆるスライシングを有するビデオフォーマットが存在する。
【0036】
図2は、フレーム100のシーケンスを含むビデオシーケンスVを示す。ビデオシーケンスVには、一方向予測フレーム(Pフレーム)および双方向予測フレーム(Bフレーム)を含む、独立して復号可能なフレーム(Iフレーム)および予測フレームがある。国際電気通信連合のITU-T勧告H.264(06/2019)「Advanced video coding for generic audiovisual services」は、順方向予測フレームと双方向予測フレームの両方が使用されるビデオ符号化規格を指定している。
図2に見られるように、独立して復号可能なフレームは、いずれの他のフレームも参照しない。
図2の一方向予測フレーム(Pフレーム)は、少なくとも1つの他の先行フレームまたは直前フレームを直接参照するという点で、前方予測される。双方向予測フレーム(Bフレーム)は、ビデオシーケンスV内の後続または直後のフレームをさらに直接参照することができる。ビデオシーケンスが、第1のフレームが直接参照する第3のフレーム(またはフレームのサブシーケンス)を含み、第2のフレームを直接参照する場合、第1のフレームは間接的に第2のフレームを参照する。予測ビデオ符号化では、ピクチャ群(GoP)は、サブシーケンスの外側のいかなるビデオフレームも参照しないビデオフレームのサブシーケンスとして定義され、それは、いずれの他のI、PまたはBフレームも参照することなく復号されることができる。
図2のビデオフレームは、GoPを形成する。
図2のGoPは、さらなるGoPに細分することができないため、最小である。
【0037】
より単純な実装形態では、ビデオシーケンスVは、独立して復号可能なフレーム(I)および一方向予測フレーム(P)のみからなることができる。そのようなビデオシーケンスは、IPPIPPPPIPPPIPPP、各Pフレームが直前のIフレームまたはPフレームを指す、外観を有することができる。この例では、IPP、IPPPP、IPPP、IPPP、などのGoPを識別することができる。
【0038】
フレーム間およびフレーム内予測符号化を調整するためのいくつかの選択肢がある。例えば、静的な(固定された)マクロブロックパーティションがすべてのビデオフレームで使用される場合、例示されたもののようなフレーム間参照は、一度に1つのマクロブロック位置(例えば、
図1Aおよび
図1Bの左上のマクロブロック)のレベルで定義され得る。いくつかのビデオフォーマットは、動的マクロブロックパーティションを可能にし、例えば、マクロブロックは、先行するビデオフレーム内の対応する画素から、または先行するフレーム内の空間的にシフトされた画素から予測することができる。あるいは、フレーム間参照は、ビデオフレーム全体に対して定義される。IフレームはIブロックのみからなり、PフレームはPブロックのみ、またはIブロックとPブロックの混合からなり得る。
【0039】
ここで、
図3を参照すると、検討中のビデオシーケンスを符号化するビデオビットストリームに注意が向けられる。サブ
図3A、3B、3C、および3Dは、それらが表す(符号化する)データユニット102とマクロブロック101との間の異なる対応パターンを示す。本開示の目的のために、データユニットは、任意の適切なフォーマットおよび構造を有することができ、そのデータユニットまたは任意の周囲のデータユニットを復号する必要なしに、例えば処理を可能にするために、データユニットをビデオビットストリームから分離(または抽出)することができること以外は仮定されていない。署名付きビデオビットストリームは、データユニットに加えて、同じまたは同様の方法で署名付きビデオビットストリームから分離可能な署名ユニットをさらに含む。署名ユニットに関する詳細は、
図5Aを参照して以下に提示される。
【0040】
一選択肢の下では、
図3Aに示すように、データユニット102は、マクロブロック101に一対一に対応する(破線)。この対応パターンにより、各マクロブロック101は、常に1つのデータユニット102から再構築される。さらに、マクロブロック101が編集される場合(確かに、署名ユニット、メタデータなどの変更が必要な場合があるが)、対応するデータユニット102以外の他のデータユニット102は修正される必要がない。
【0041】
あるいは、
図3Bに示すように、各マクロブロック101は、複数のデータユニット102によって符号化される。なお、各データユニット102は、最大でも1つのマクロブロック101を表す。したがって、各マクロブロック101が最大でもM個のデータユニット102によって符号化される場合、その結果、最大でM個のデータユニット102から任意のマクロブロック101を再構築することができる。マクロブロック101に対して行われる編集は、最大でもM個のデータユニット102に直接影響を及ぼす。ここで、Mは、1、2、3、4、5、または最大でも10などの小さい整数である。
【0042】
さらなる選択肢では、
図3Cに示すように、各データユニット102は、複数のマクロブロック101を符号化する。これは、マクロブロック101に対して行われる編集の効果がマクロブロック101自体に限定されず、編集されたマクロブロック101がさらなるマクロブロック101と共有するデータユニット102を再符号化および/または再署名することが必要になる場合があることを意味する。不必要に大きなデータセットに対して再署名を実行することは計算上無駄である可能性があるため、この対応パターンは、実装することはかなり可能であるが、本開示における最高性能の実施形態では適用されない。データユニット102が最大でも所定の数Nのマクロブロック101によって共有されることが可能にされる場合、追加される総計算量は制限されたままであり得る。ここでも、Nは、1、2、3、4、5、または最大でも10などの小さい整数であるように指定され得る。
【0043】
図3Bおよび
図3Cに見られるパターンの組み合わせは、本開示の範囲内で可能である。結果として、本明細書で提案される技術は、データユニット102に対するマクロブロック101の比が、2:1、1:1、2:2、3:3、4:2、2:4、または4:4であり得るビデオビットストリームに適用されてもよい。
【0044】
さらに別の選択肢では、
図3Dに示すように、各データユニット102は、ビデオシーケンス内の任意の数のマクロブロック101を表すことができ、各マクロブロック101は、任意の数のデータユニット102によって符号化することができる。この対応パターンは、破線によって示唆されるように、最悪の場合、マクロブロック101に対する限定された編集演算でさえ、ビデオシーケンスの完全な再符号化および再署名を必要とすることを意味する可能性がある。本明細書に開示される技術は、
図3Dに示される構造を有するビデオシーケンス上で実施されるべきではない。
【0045】
【0046】
図5Aは、1つまたは複数のビデオフレームに属する一連のマクロブロック101を含むビデオシーケンスVのセクションを示す。例えば、マクロブロック101は、連続するビデオフレーム内の固定位置(例えば、
図1Aおよび
図1Bの左上のマクロブロック)を占有することができる。マクロブロック101は、巻き矢印で示す参照に従って予測符号化されているものとする。ビデオシーケンスVは、データユニット102および署名ユニット103を含む署名付きビデオビットストリームBとして符号化される。限定ではなく例示の目的のために、
図5Aは、
図3Aおよび
図3Bに示すパターンのハイブリッドとして説明することができ、これらの間の規則的または不規則な交互(例えば、マクロブロックサイズに基づいて、より大きいマクロブロック101は複数のデータユニット102に対応し、より小さいまたはより圧縮されたマクロブロック101は単一のデータユニット102に対応する)を可能にする対応パターンに従ってビデオマクロブロック101を符号化するようなデータユニット102を示す。それにもかかわらず、各データユニット102は、最大でも1つのマクロブロック101を表す。データユニット102は、ITU-T H.264、H.265、またはAV1などの独自のまたは標準化されたビデオ符号化フォーマットに準拠することができる。ビットストリームBは、本開示の範囲から逸脱することなく、追加の種類のユニット(例えば、専用メタデータユニット)をさらに含むことができる。
【0047】
署名ユニット103の各々は、複数のデータユニット102に関連付けることができる。
図5Aでは、2つの連続する署名ユニット103間のデータユニット102は、後の署名ユニット103に関連付けられていることが理解され、これは本発明の本質的な特徴ではなく、本開示の範囲から逸脱することなく他の取り決めが可能である。署名ユニット103は、すべてが1つのGoPに含まれるデータユニット102のセットに関連付けることができるが、
図5Aに見られるような他の関連付けパターンも可能である。さらに、1つの署名ユニット103に対応付けられるデータユニット102のセットは、適用可能なマクロブロック走査順序を考慮して選択されることが好ましい。例えば、署名ユニット103に関連付けられたデータユニット102のセットは、復号中に順次走査されるべきマクロブロックの数を表すことができ、それによって、署名ユニット103が検証に失敗した場合に再参照される必要があるマクロブロックの数が最小化される。
【0048】
署名ユニット103は、少なくとも1つのビット列(例えば、H1)と、そのビット列のデジタル署名(例えば、s(H1))とを含む。破線の使用によって示唆されるように、ビット列の存在は任意である。署名ユニット103が複数のビット列を含む場合、署名ユニット103は、これらのビット列のすべてに対して1つのデジタル署名、または各々が単一のビット列もしくは各々がビット列のサブグループに対して複数のデジタル署名を有することができる。デジタル署名が形成されるビット列は、関連するデータユニット102のフィンガープリントの組み合わせであってもよく、または関連するデータユニット102のフィンガープリントの該組み合わせのフィンガープリントであってもよい。フィンガープリント(または「文献」)の組み合わせは、フィンガープリントの文字列表現のリストまたは他の連結であってもよい。ITU-T H.264およびH.265フォーマットでは、署名ユニットは、ビデオビットストリーム内の補足エンハンスメント情報(Supplemental Enhancement Information(SEI))メッセージとして含まれ得る。AV1規格では、署名はメタデータオープンビットストリームユニット(Metadata Open Bitstream Unit(OBU))に含まれてもよい。
【0049】
フィンガープリントはそれぞれ、ハッシュであってもよいし、ソルト付きハッシュであってもよい。ソルト付きハッシュは、データユニット(またはデータユニットの一部分)と暗号ソルトとの組み合わせのハッシュであってもよく、ソルトの存在は、複数のハッシュにアクセスできる不正な者が、どのハッシュ関数が使用されているのかを推測することを阻止することができる。潜在的に有用な暗号ソルトには、アクティブ内部カウンタの値、乱数、ならびに署名の時間および場所が含まれる。ハッシュは、ハッシュ関数(または一方向関数)hによって生成することができ、これは、署名されるビデオデータの機密性を考慮して、および/またはビデオデータが不正な者によって操作された場合に危険にさらされる値を考慮して適切であると考えられる安全レベルを提供する暗号関数である。3つの例は、SHA-256、SHA3-512およびRSA-1024である。ハッシュ関数は、受信者がフィンガープリントを検証しようとしているときにフィンガープリントを再生成することができるように、事前定義されるものとする(例えば、再生可能であるものとする)。
図5Aの例では、ビット列は以下によって与えられる。
H
1=h([h
1、h
2、h
3、h
4、h
5、h
6])
および
H
2=h([h
7、h
8、h
9、h
10])、
ここで、h
1、h
2、...はデータユニットのハッシュであり、[・]は連結を表す。例示的なソルト付きハッシュは、以下のように定義することができる。
または
式中、σは暗号ソルトである。第1の例では、ハッシュ関数hは、ソルトσが割り当てられた第2の引数に対するパラメトリック依存性を有する。
【0050】
いくつかの実施形態では、フィンガープリントh1、h2、...の各々は、データユニット102から直接、例えば、その中の符号化変換係数または他のビデオデータから算出される。フィンガープリントは、データユニット全体から、または予め合意された規則に従って抽出されたそのサブセットから算出することができる。いくつかの実施形態では、フィンガープリントh1、h2...は、データユニット102を復号することによって取得された再構築されたマクロブロック、例えば、画素値または他の平文データから算出される。さらに他の実施形態では、フィンガープリントh1、h2、...は、平文レベルまたはビットストリームレベルではなく、データユニットから導出された中間再構築データから算出される。より正確には、周波数領域変換(例えば、DCT、DST、DFT、ウェーブレット変換)とそれに続く符号化プロセス(例えば、エントロピー、ハフマン、Lempel-Ziv、ランレングス、バイナリまたは非バイナリ算術符号化、例えば、コンテキスト適応型可変長符号化、CAVLC、コンテキスト適応型バイナリ算術符号化、CABAC)とを含むエンコーダが使用される場合、変換係数は通常、デコーダ側で中間再構築データとして利用可能である。変換係数は、符号化表現から復元することができる。エンコーダが変換のすぐ下流に量子化プロセスをさらに含む場合、量子化された変換係数はデコーダ側で利用可能になる。より複雑なコーデックでは、より多数の連続処理段階で、さらなる種類の中間再構築データが存在する場合があり、これらはフィンガープリント計算に使用され得る。量子化変換係数と同様に、符号化プロセスにおいて同一に現れる中間再構築データの種類を使用することが特に便利である。この段落で検討されたすべての実施形態に共通して、フィンガープリントは、署名ユニット103に関連付けられた正確に1つのデータユニット102に関係する。
【0051】
任意選択的に、データユニットの不正な取り外しまたは挿入を発見するために、フィンガープリントを順次互いにリンクすることができる。すなわち、各フィンガープリントは、次または前のフィンガープリントに依存し、例えば、ハッシュへの入力は、次または前のフィンガープリントのハッシュを含む。リンクは、例えば、h1=h(X102.1)、h2=h([h1、X102.2])、h3=h([h2、X102.3])などのように実現することができ、式中、X102.1、X102.2、X102.3は、データユニット102のうちの第1、第2、および第3のユニットからのデータを示す。
【0052】
さらに
図5Aの署名ユニット103を参照すると、デジタル署名s(H
1)を生成するために、予め格納された秘密鍵を有する暗号要素(図示せず)を利用することができる。署名付きビデオビットストリームの受信者は、同じキーペアに属する公開鍵を保持すると予想でき(
図10も参照)、これにより、受信者は、暗号要素によって生成された署名が真正であるが新しい署名を生成しないことを検証することができる。公開鍵は、署名付きビデオビットストリームにメタデータとして含めることもでき、その場合、受信者側でそれを格納する必要はない。
【0053】
次に、
図6を参照して、ビデオシーケンスVの予測符号化によって取得された署名付きビデオビットストリームBを編集する方法600について説明する。方法600の非任意選択のステップは、ビデオビットストリームの元の署名の後に実施されると仮定する。例えば、署名付きビデオビットストリームが元々記録デバイスで生成される場合、編集方法600はビデオ管理システム(VMS)で実施することができる。別の例示的なユースケースは、署名付きビデオビットストリームがデバイスで生成され、メモリに格納され、次いで同じデバイスを使用して編集のために再参照される場合である。編集は、後の時点、例えば、プライバシーマスキングを実行する必要性が知られた後に行われてもよい。
【0054】
上述したように、編集方法600を実行するデバイスは、特定の目的専用のアプリケーションまたはシステムであってもよいが、
図8に示す基本的な関数構造を有してもよい。図示のように、デバイス800は、処理回路810と、メモリ820と、外部インターフェース830とを含む。メモリ820は、編集方法600を実装する命令を有するコンピュータプログラム821を格納するのに適し得る。外部インターフェース830は、デバイス800が受信者および/またはビデオコンテンツオーサー(例えば、記録デバイス)によって保持される類似のデバイス(図示せず)と通信することを可能にする通信インターフェースであってもよく、または、ビデオビットストリームを格納するのに適した外部メモリ890における読み出しおよび書き込み動作を可能にしてもよい。
【0055】
図9は、ビットストリームが複数のデバイス間で転送される場合を示す。編集方法600を実行するデバイスは、ローカルエリアネットワーク(
図9の下半分の接続線)または広域ネットワーク990を介して受信者デバイスに接続されてもよいことに留意されたい。ビットストリームBに対する攻撃は、いずれの種類のネットワークでも発生する可能性があり、これは署名を正当化する。
【0056】
図6に戻ると、方法600の一実施形態は、ビデオシーケンスV内の少なくとも1つのビデオフレーム100の領域を置換する要求を受信するステップ612から始まる。要求は、ヒューマンマシンインターフェースを介して、または自動化された方法で、例えば、同じデバイス800上でまたは遠隔で実行されている制御アプリケーションからのメッセージで受信されてもよい。置換されるべき領域は、ビデオシーケンスV内の同様に位置する画素を置換するためのプライバシーマスクなどの置換画素値のセットであってもよい。
【0057】
誤解を避けるために、編集されるビデオシーケンスVは、データユニット102および関連する署名ユニット103を含む署名付きビデオビットストリームBとして予測符号化によって符号化され、各データユニットは、予測符号化されたビデオシーケンスVのビデオフレーム100内の最大でも1つのマクロブロック101を表し、各署名ユニットは、それぞれ正確に1つの関連するデータユニットの複数のフィンガープリントから導出されたビット列のデジタル署名を含むことに留意されたい。そのようなビットストリームフォーマットは、
図5Aを参照して例示されている。
【0058】
方法600の次のステップ614では、前述の領域が含まれるマクロブロックの第1のセット、および第1のセット内のマクロブロックを直接または間接的に参照するマクロブロックの第2のセットが決定される。双方向予測フレーム(Bフレーム)がいくつかのビデオ符号化フォーマットにおいて定義され得ることを想起すると、マクロブロックの第2のセットは、マクロブロックの第1のセットの前または後に位置し得るか、またはこれらの位置の両方を占有してもよいことが理解される。第1のセットおよび第2のセットは、互いに素であるように定義されることが理解される。例えば、マクロブロックが第1のセットに属さない場合にのみ、すなわち、置換されるべき領域を含むマクロブロックのセットを形成するためにこのマクロブロックが必要でない場合にのみ、マクロブロックが第2のセットに属することが規定されてもよい。したがって、マクロブロックの第1のセットがGoPの境界まで延在する場合、マクロブロックの第2のセットは通常空である。さらに、マクロブロックの第2のセットは、最初に使用されるビデオエンコーダに応じて、追加のフレームが置換される領域を基準として使用することができるため、2つ以上のPフレームまたは3つ以上のBフレームにマクロブロックを含むことができることが理解される。
【0059】
置換されるべき領域が単一のビデオフレームに限定される場合、マクロブロックの第1のセットは、フレームのマクロブロックパーティションのみを参照して決定することができる。より正確には、第1のセットは、領域が重複するすべてのマクロブロック(すなわち、領域がピクセル空間内に空でない交差部を有するマクロブロック)である。領域が複数のフレームに拡張される場合、この操作はフレームごとに繰り返される。領域がビデオフレームのすべてにおいて同一に繰り返され、さらにマクロブロックパーティションがすべての該フレームにわたって一定である特殊な場合、マクロブロックの第1のセットは、後続のフレームのそれぞれに対する初期フレームについて(オーバーラップ基準によって)決定されたもののコピーである。マクロブロックの第2のセットは、第1のセットと、署名付き予測符号化されたビデオシーケンス内のフレーム内およびフレーム間参照のパターンとに基づいて決定することができる。定義によるそのような参照は、GoP境界を超えて拡張されないので、第2のセットに含まれるべきマクロブロックの探索は、マクロブロックの第1のセットが属するそのGoPまたはそれらのGoPに制限され得る。
【0060】
ステップ614の可能な結果が
図4に示されており、各列はビデオシーケンスVの1つのビデオフレームを表し、各行はフレーム内の特定の位置(例えば、左上のマクロブロック)にある1つのマクロブロックを表す。
図4では、さらに、マクロブロック間の参照は、巻き矢印として示されており、2つの連続するGoP、GoP1およびGoP2の間の境界は、破線の垂直線として示されている。フレーム間参照は、
図4の1つのマクロブロック位置のレベルで定義されることに留意されたい。さらに、斜めにハッシュされたマクロブロックは、領域を置換する要求によって直接影響を受けるマクロブロックであり、それらはすべて第1のフレーム内に位置し、マクロブロックの第1のセット401を形成する。点線の陰を有するマクロブロックは、すべて、第1のセット内のマクロブロックを直接(第2のフレーム)または間接的に(第3のフレーム)参照するマクロブロックであり、これらは、マクロブロックの第2のセット402として識別される。予想に従って、マクロブロックの第2のセットは、GoP境界を超えて延在しない。
【0061】
図4に見られるマクロブロックの第1のセットおよび第2のセットの構成は、フレーム内参照が導入される場合に変更され得るが、必ずしもそうである必要はないことに留意されたい。例えば、第1の行に対応するマクロブロック位置が第2の行に対応するマクロブロック位置を参照する場合、マクロブロック401、402の第1のセットおよび第2のセットは変化しないままである。
【0062】
方法600の次のステップ616は、領域の置換が実行された後のビデオシーケンスVおよび署名付きビデオビットストリームBを示す
図5Bに関して示される。
図5Bでは、マクロブロック101.2、101.3の第1のセットに対角ハッシュが使用され、マクロブロックの第2のセットのマクロブロック101.4、101.5に点線の影が使用される。
【0063】
ステップ616では、アーカイブオブジェクト104が、署名付きビデオビットストリームBに追加される。アーカイブオブジェクト104は、データユニットの第1のセットおよび第2のセット、すなわち、ステップ614において決定されたマクロブロックの第1のセットおよび第2のセットをそれぞれ表すデータユニットのフィンガープリントを含む。フィンガープリントは、厳密には必須ではないが、それぞれ正確に1つのデータユニットに属する個々のフィンガープリントであることが好ましい。フィンガープリントが、上述した選択肢のうちの1つであるデータユニットから再構築されたマクロブロックから算出され、再符号化がこれらのマクロブロックを忠実に保存することが期待される実装形態では、データユニットの第2のセットのフィンガープリントは、アーカイブオブジェクト104に含まれる必要はない。署名付きビデオビットストリームBのレベルでは、アーカイブオブジェクト104が、復号することなくビデオビットストリームから分離され得るという点で、アーカイブオブジェクト104は、データユニット102および署名ユニット103と同様のフォーマットを有することができる。
【0064】
図5Bでは、データユニットの第1のセットは、第3、第4および第5のデータユニット102に対応し、データユニットの第2のセットは、第6および第7のデータユニット102に対応する。したがって、ステップ616で署名付きビデオビットストリームBに追加された(2つの)アーカイブオブジェクト104は、一緒にフィンガープリントh
3、h
4、h
5、h
6、h
7を格納する。任意選択的に、各アーカイブオブジェクト104は、これらのフィンガープリントのデジタル署名、またはこのアーカイブオブジェクト104内のこれらのフィンガープリントの組み合わせのデジタル署名を含むことができ、または該組み合わせのフィンガープリントのデジタル署名を含むことができる。さらに任意選択的に、アーカイブオブジェクト104はまた、その署名がアーカイブされているマクロブロックの第1のセットおよび第2のセットの位置を含んでもよい。位置は、例えばフレーム座標におけるフレーム内のマクロブロックの位置を指すことができ、これはビット列内の位置に対応する。静的マクロブロックパーティションが使用される場合、マクロブロック101の位置は、マクロブロックシーケンス番号または別の識別子として表すことができる。例えば、フレーム内のマクロブロックシーケンスと同じ順序でフィンガープリントを連結することによってビット列を形成してもよい。
【0065】
次に、編集方法600の実行フローはステップ618に進み、そこで領域を置換する要求に従ってデータユニットの第1のセットが編集される。言い換えれば、ステップ618は、いくつかのデータユニットが置換または修正された署名付きビデオビットストリームBを残す。
【0066】
いくつかの実施形態では、ステップ618は、データユニットを再構築されたマクロブロックへ復号すること618.1と、再構築されたマクロブロックに対して要求された置換を実施することによって編集されたマクロブロックを提供すること618.2と、編集されたマクロブロックを符号化することによって編集されたデータユニットを提供すること618.3と、を含んでもよい。
【0067】
任意選択で、置換618.2の後に生じるマクロブロック(例えば、
図5Bのマクロブロック101.2および101.3)は、独立して復号可能なデータユニットとして符号化されてもよい。独立して復号可能なデータユニットは、H.264またはH.265符号化仕様におけるIフレーム、別のマクロブロックを参照しない符号化されたマクロブロック、またはこれらと等価なデータユニットに対応し得る。これは、置換がビデオシーケンスに突然の時間変化を導入し、予測符号化の性能を低下させる可能性があるという認識と一致している。
【0068】
方法600の次のステップ620では、データユニットの第2のセットが再符号化される。一般に望ましい目的は、再符号化されたデータユニットの第2のセットを、(元の)マクロブロックの第2のセットに可能な限り近いマクロブロックに復号することである。デコーダの用途を参照すると、目的は、再符号化されたデータユニットの第2のセットが、ほぼ同一の参照バッファコンテンツおよび/またはほぼ同一のデコーダ状態を生成することである。しかしながら、第2のセット(例えば、
図5Bのマクロブロック101.4および101.5)内のマクロブロックは変化しないものとするが、それらは第1のセット内のマクロブロックへの参照を含み、これは一般に、マクロブロックの第1のセットが変化するときに使用不可能になる。編集によって導入された突然の時間変化のために、マクロブロックの第1のセットは、マクロブロックの第2のセットを予測するための有望な基礎を提供することを中止する。再符号化620は、それに基づいてマクロブロックの第2のセットを再構築することができる、すなわち、データユニットの第2のセットを復号することによって再構築されたマクロブロックを出力する任意選択のサブステップ618.1によって容易にされることができる。
【0069】
マクロブロックの第2のセットは、有利には、低減されたデータ圧縮を使用して再符号化620され得る。これは、ビデオシーケンスVが所定の正規レベルのデータ圧縮で符号化されるという背景に対して理解されるべきである。より正確には、マクロブロックの第2のセットは、通常のデータ圧縮と比較して低減されたデータ圧縮レベルで符号化されることが予想される。
【0070】
ステップ620では、マクロブロックの第2のセットを符号化するために、主な選択肢は、非予測符号化および予測符号化である。非予測符号化が使用される場合、マクロブロックの第2のセットは、Iブロックとも呼ばれるイントラ符号化されたブロックとして、独立して復号可能な形態で符号化される。したがって、符号化されたマクロブロックの第2のセットは、独立して復号可能なデータユニットによって表される。この選択肢の下では、さらに、マクロブロックの第2のセットのために可逆符号化を使用することが可能であり、例えば、マクロブロックの第2のセットは、適切な色空間におけるマクロブロック内の各位置に対する元の値のプレーンリストなど、符号化されていない「生」ブロックによって表され得る。
【0071】
第2の選択肢である予測符号化では、ステップ620は、編集されたデータユニットの第1のセットを参照して予測符号化を使用してデータユニットの第2のセットを再符号化することによって実行され得る。より正確には、データユニットにステップ620を適用することは、該データユニットが直接参照するさらなるデータユニットから再構築されたマクロブロックを取得すること620.1と、再構築されたマクロブロックを使用して該データユニットを復号すること620.2と、マクロブロックの再構築された編集バージョンを取得すること620.3と、マクロブロックの再構築された編集バージョンを参照して予測符号化によって前述のデータユニットを再符号化することによって編集されたデータユニットを提供すること620.4と、を含むことができる。サブステップ620.1は、さらなるデータユニット(ステップ618.1を参照)を復号することを含むことができ、さらなるデータユニットは、データユニットの第1または第2のセットに属することができる。サブステップ620.3では、マクロブロックの再構築された編集バージョンは、上記のサブステップ618.2で、すなわち、再構築されたマクロブロックに対して要求された置換を実行することによって生成された画像データに対応することができる。サブステップ620.4は、(前述のさらなるデータユニットに由来する)マクロブロックの再構築された編集バージョンに対する差または補正に関して、第2のセット(すなわち、処理されているマクロブロック)においてマクロブロックを表すことを含んでもよい。上述したように、この選択肢は、マクロブロックの第1のセットで実施される編集が比較的制限されている場合、または予測符号化が十分に実行されない場合に主に有用である。
【0072】
方法600の任意選択の最後のステップ622では、編集されたデータユニットの第1のセットおよび再符号化されたデータユニットの第2のセットに関連付けられた1つまたは複数の署名ユニット105が、署名付きビデオビットストリームBに提供される。ステップ622で提供される署名ユニット105は、上述した署名ユニット103と同じ構造を有することができる。したがって、署名ユニット105は、1つの編集データユニットのフィンガープリントから導出されたビット列と、そのビット列のデジタル署名を含んでもよく、または署名ユニット105は、デジタル署名のみを含んでもよい。ステップ622で提供される署名ユニット105は、
図5Bで提案されるように、新たに生成された署名ユニットであってもよい。あるいは、署名ユニット105は、既存の署名ユニットを編集することによって、特にそれをさらなるデジタル署名で拡張することによって提供される。
【0073】
既に述べたように、本明細書に開示される任意の方法のステップは、明示的に述べられていない限り、記載された正確な順序で実施される必要はない。これは、特に編集方法600によって示され、所望に応じて、ステップ618と620との部分シーケンスの前、間、または後にステップ616を実施することが明らかに可能である。
【0074】
いくつかの実施形態では、方法600は、少なくとも1つの署名ユニット103を提供する最初のステップ610をさらに含む。主に関心があると考えられるユースケースでは、ステップ610は方法600のステップ612、614、616、618、620、および622とは異なるエンティティによって実施される、および/またはステップ610はより早い時点で実施されることが理解される。いずれの方法でも、ステップ610は、比較的安全でないデータ転送および/または所望のレベルのデータセキュリティを確保するために署名を正当化する保存期間によって後続のステップ612、614、616、618、620、および622から分離される。
【0075】
任意選択のステップ610は、署名ユニットに関連付けられたそれぞれのデータユニットから複数のフィンガープリントを算出するサブステップ610.1と、複数のフィンガープリントからビット列を導出すること610.2と、ビット列のデジタル署名を取得すること610.3であって、ビット列が前述の複数のフィンガープリントの組み合わせ、または該組み合わせのフィンガープリントである、ビット列のデジタル署名を取得すること610.3と、を含むことができる。フィンガープリント計算610.1、ビット列導出610.2、およびデジタル署名610.3の適切な実装形態は、上記で詳細に説明されている。特に、署名ユニット103内のデジタル署名が関係するビット列は、関連するデータユニット102のフィンガープリントの組み合わせであってもよく、または関連するデータユニット102のフィンガープリントの該組み合わせのフィンガープリントであってもよい。組み合わせ(または「文書」)は、フィンガープリントのそれぞれの文字列表現のリストまたは別の連結であってもよい。
【0076】
以上、編集方法600の説明を終えると、次に、受信者側に注目する。より正確には、
図7のフローチャートを参照して、署名付きビデオビットストリームBを検証する方法700を説明する。ここでも、署名付きビデオビットストリームBは、ビデオシーケンスVの予測符号化によって、および任意選択的に後続の編集演算によって取得されたと仮定する。署名付きビデオビットストリームBが編集方法600に従って処理されていることは必須ではない。さらに署名付きビデオビットストリームは、データユニット102と、関連する署名ユニット103と、アーカイブオブジェクト104とを含むと仮定される。ここで、各データユニット102は、予測符号化されたビデオシーケンスVのフレーム100内の最大でも1つのマクロブロック101を表し、各署名ユニット103は、ビット列(例えば、H
1、H
2)のデジタル署名(例えば、s(H
1)、s(H
2))および任意選択的にビット列自体を含み、アーカイブオブジェクト104は、ビットストリームBに現在存在しない、および/または編集を受けたデータユニットのアーカイブされたフィンガープリントであり得る、少なくとも1つのフィンガープリントを含む。検証方法700には無関係であり、通常、受信者側では、特定の署名ユニット103が編集に関連して追加されたかどうか(例えば、編集方法600によって)、または元の編集されていないビットストリームBの一部であったかどうかを判定することはできない。
【0077】
いくつかの実施形態(「文書アプローチ」)においてのみ実行される方法600の任意選択の第1のステップ710では、1つの署名ユニット103内のビット列H
1は、その中に含まれるフィンガープリントがそれ自体既知の方法で真正であることを検証するために、デジタル署名s(H
1)を使用して検証される。
図10Aに示すように、検証は、受信者デバイス800に位置し、公開鍵が預けられている暗号要素1001を使用して実施され得る。これは、非対称署名セットアップとして説明することができ、署名および検証は、秘密鍵/公開鍵に対応する別個の暗号演算である。本開示の範囲から逸脱することなく、対称および/または非対称検証演算の他の組み合わせが可能である。ビット列検証の結果V1が否定(拒否)である場合、方法700の実行は終了する。代わりに、結果V1が肯定(承認)である場合、方法700の実行は第2のステップ712に進む。
【0078】
第2のステップ712では、署名ユニット103に関連付けられた各データユニット102のフィンガープリントh
1、h
2、...が取得される。フィンガープリントをどのように取得するかについての独立した決定712.1を、各データユニットに対して行うことができる。より正確には、データユニットからフィンガープリントが算出される712.2か、またはビットストリーム内のアーカイブオブジェクト104からフィンガープリントが取得される712.3。上述したように、フィンガープリントは、このデータユニット102(のサブセット)から直接、例えば、変換係数またはその中の他のビデオデータから、データユニット102を復号することによって取得された再構築マクロブロックから算出することができる。
図10では、フィンガープリント
はデータユニット102から算出され、残りのフィンガープリントh
3、h
4、h
5、h
6はアーカイブオブジェクト104から取得されることが分かる。したがって、フィンガープリント
のみが、次の第4のステップ716における検証を失敗させる可能性があり、その場合、失敗は、ビットストリームBの不正な操作が行われたことを示唆する。
【0079】
第3のステップ714では、このようにして取得されたフィンガープリントからビット列
が導出される。これは、予め合意された規則に従って、例えば、ステップ610.2内に記載されたものと同様の手順によって行うことができる。ビット列は、取得されたフィンガープリントの組み合わせであってもよく、またはフィンガープリントの該組み合わせのフィンガープリントであってもよいことが想起される。
【0080】
最後に、第4のステップ716では、署名ユニット103に関連付けられたデータユニットは、署名ユニット103内のデジタル署名を使用して検証される。誤解を避けるために、データユニットのステップ716における検証は、データユニット自体に作用するいずれの処理もなしに間接的であることに留意されたい。
【0081】
署名ユニット103がビット列H
1を含まない実施形態では、ステップ716は、デジタル署名s(H
1)を使用して導出されたビット列
を検証することによって実行される。例えば、導出されたビット列
は、デジタル署名s(H
1)を生成するために使用された秘密鍵と同じキーペアに属する公開鍵を使用して検証することができる。
図10Bでは、これは、導出されたビット列
およびデジタル署名s(H
1)を、検証の結果を表すバイナリ結果W1を出力する公開鍵が格納されている暗号エンティティ1001に供給することによって示される。
【0082】
あるいは、署名ユニット103がビット列H
1を含む実施形態では(「文書アプローチ」)、該ビット列H
1は最初にステップ710で検証され、次いでステップ716で検証されたビット列H
1は、導出されたビット列
と比較される。比較は、
図10Aの関数ブロック1002によって示唆されるように、ビットごとの等価チェックであってもよく、真値または偽値の出力V2をもたらす。比較の結果V2が真である場合、この署名ユニット103に関する限り、署名付きビデオビットストリーム100は真正であると結論付けることができる。
【0083】
次いで、方法700の実行は、署名付きビデオビットストリーム100内の任意のさらなる署名ユニット103に対して上述のステップ710、712、714のうちの関連するものを繰り返すことを含んでもよい。結果がすべての署名ユニット103について肯定である場合、署名付きビデオビットストリーム100は有効であると結論付けられ、それはさらに消費または処理されてもよい。逆の場合、署名付きビデオビットストリーム100は、真正ではないと見なされるものとし、さらなる使用または処理から隔離され得る。
【0084】
第1のセット内のデータユニットの検証は、第2のセット内のデータユニットの検証とは異なる信頼関係に基づくことに留意されたい。第1のセット内のデータユニットは、デジタル署名s(H1)を作成したエンティティ、すなわち非対称鍵暗号が使用される場合の秘密鍵の所有者を信頼することによって検証される。第2のセット内のデータユニットは、署名付きビットストリームBを編集し、アーカイブオブジェクトを作成したエンティティを信頼することによって検証される。
【0085】
検証方法700のいくつかの実施形態では、サブステップ712.1の決定は、アーカイブオブジェクト104に示された位置によって案内される。これらの位置は、アーカイブされたフィンガープリントが関係するデータユニット102によって表されるマクロブロック101の位置である。これらのマクロブロック位置にアクセスを有することにより、署名付きビデオビットストリームB内のデータユニット102から再構築することができないビデオフレーム100内の任意のマクロブロック101は、そのフィンガープリントをアーカイブオブジェクト104から必ず取得することができる別のデータユニットによって符号化されるという仮定に基づいて、受信者が信頼できる完全性チェックを実行することが可能になる。アーカイブオブジェクト104がこれらのマクロブロックの位置を示さない場合、受信者は、例えば、欠落したフィンガープリント、すなわち署名付きビデオビットストリームB内のデータユニット102から計算できないフィンガープリントを、試行錯誤の手法によって挿入することができる。試行錯誤の手法は、アーカイブオブジェクト104からアーカイブされたフィンガープリントを挿入する可能な方法のそれぞれに対してステップ714および716を実行すること(そのような挿入の各方法は、欠落するマクロブロックの位置の順列であると推測することができる)、およびこれらの実行のすべてが失敗した場合にのみ、署名付きビデオビットストリームBが不正であると結論付けることを含むことができる。
【0086】
本開示の態様は、いくつかの実施形態を参照して主に上述されている。しかしながら、当業者によって容易に理解されるように、添付の特許請求の範囲によって規定される、上記で開示されたもの以外の他の実施形態も本発明の概念の範囲内で等しく可能である。特に、様々な実施形態の上記の説明は、予測符号化されたビデオに焦点を当てていることに留意されたい。しかしながら、ビデオに署名するエンティティおよびビデオを検証するエンティティがビデオの再構築または復号されたフレームにアクセスできる限り、予測符号化されたビデオだけでなく、任意のビデオに同じ手法を使用することができる。予測ベースの符号化の場合、符号化においてマクロブロックとしても使用される画素の群のフィンガープリントを利用することが実用的に都合がよいことが分かる。しかしながら、一般に、フィンガープリントは、他の方法でグループ化された画素の群から算出されてもよい。フレームが復号されると、符号化のために画素がどのように分割されたかは問わない。例えば、予想される編集の種類に応じて、復号された画像を符号化に使用されたものよりも小さいまたは大きい画素の群に分割することが有用であり得る。例えば、マスキングが常に長方形の形態で行われる場合、符号化に使用されるよりも粗い画素の分割が署名プロセスに十分であってもよい。一方、マスキングすべきオブジェクトの輪郭により密接に追従してマスキングを行うことができると想定される場合、より細かい分割が署名プロセスに有用であり得る。
【外国語明細書】