IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アクシス アーベーの特許一覧

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