專利名稱:用于檢測對重定大小、旋轉和平移具有抵抗力的水印的方法和設備的制作方法
技術領域:
本發明涉及檢測嵌入到內容數據幀中的水印,本發明尤其涉及一種用于檢測對于重定大小、旋轉和/或平移具有抵抗力的水印的方法和系統。
背景技術:
希望內容數據的出版者阻止或制止盜版所述內容數據,諸如音樂、視頻、軟件及其結合。水印的使用變成一種阻止盜版的流行方式。水印是包含隱藏消息的數據集,所述隱藏消息嵌入在所述內容數據中并且與所述內容數據一起存儲在存儲介質上,所述存儲介質諸如數字化視頻光盤(DVD)、光盤(CD)、只讀存儲器(ROM)、隨機存取存儲器(RAM)、磁介質等。“嵌入的水印”的所述隱藏消息典型地是拷貝控制消息,諸如“不許拷貝”或“只許拷貝一次”。
當包括內容數據和嵌入的水印的數據量與基準水印相關時,作出所述嵌入的水印是基本上類似于所述基準水印還是與其相同的確定。如果存在高度相關,那么就可以假定所述嵌入的水印的消息對應于所述基準水印的消息。例如,數據量可以是諸如視頻數據之類的數據幀,其中所述視頻數據幀的像素數據已經與水印(“嵌入的水印”)嵌在一起。假定所述數據幀在某些方面沒有發生變形(distort),當與所述嵌入的水印基本上相同的基準水印與所述視頻數據幀相關時,獲得相對較高的輸出。這是因為在嵌入的水印數據和基準水印數據之間的一對一的對應(對準)將趨向于提高相關計算。反之,如果包含于所述視頻數據幀的嵌入的水印已經以某種方式改變,所述方式降低了在嵌入的水印和基準水印之間的一對一的對應,那么所述相關將產生相對低的結果。
所述相關計算常常包括執行包含于數據幀中的數據和基準水印數據的乘積和。假定所述數據幀和基準水印包括正幅度值和負幅度值,那么當所述嵌入的水印數據與所述基準水印數據一對一對準時,所述乘積和將相對要高。反之,當所述嵌入的水印數據與所述基準水印沒有對準時,所述乘積和相對要低。
諸如標準相關檢測器或匹配過濾器之類的數據檢測器可能被用來檢測在內容數據幀中嵌入的水印的存在,所述內容數據諸如視頻數據、音頻數據等。所述嵌入的水印的原始或基準位置由與所述檢測器相關聯的硬件和/或軟件的設計隱含地確定。這些類型相關檢測器取決于嵌入的水印和基準水印的具體對準(即對齊)。
設法不正當地拷貝包含有嵌入的水印(例如,經由隱藏消息“不許拷貝”禁止盜版的水印)的內容數據的盜版者,能夠通過使在所述嵌入的水印和基準水印之間的對準(或對齊)變形來繞過所述嵌入的水印。舉例來說,包含嵌入的水印的內容數據幀可以被稍微地旋轉、重定大小和/或從預期位置平移到可以阻止在所述嵌入的水印和基準水印之間一對一的對應(全然的對準)的位置。可以使用編輯和復制設備來實現這種變形。
不管盜版的不法行為是什么,對嵌入的水印的無意的變形也可能出現在計算機系統或用戶設備中對內容數據(包含嵌入的水印)的正常處理期間。例如,所述DVD的內容數據(和嵌入的水印)可能當其經歷格式化過程時被無意變形,所述格式化過程例如把內容數據從歐洲PAL電視制式轉換到美國NTSC電視制式,或反之亦然。做為選擇,內容數據和嵌入的水印也可以通過其它類型格式化過程被變形,諸如把該格式從寬銀幕電影格式改變到電視格式。當然,這種處理可能會無意中重定大小、旋轉和/或平移所述內容數據和嵌入的水印,以及通過拉伸所述嵌入的水印,就使得所述嵌入的水印難以檢測。
存在不同類型的水印系統,其聲稱對于重定大小和平移是健壯的(robust)。一個這種水印系統典型地以這種方式嵌入所述水印,所述方式在數學上對重定大小和平移是不可變的,諸如在美國專利NO 6,282,300中公開的系統,在此將其全文引入以供參考。用于這類系統的檢測器不必調節在嵌入的水印的位置和/或大小上的變化。這種系統典型地是基于Fourier-Mellin變換和對數極坐標。這種系統的一個缺點是它要求復雜的數學運算以及特別構造的嵌入的水印的圖案(pattern)和檢測器。這種系統不能與之前現有的水印系統一起使用。
另一現有技術水印系統使用重復性的水印塊,其中所有嵌入的水印塊是相同的。在這類系統中的所述水印塊典型地很大并被設計成用于攜帶全部拷貝控制消息。所述相同塊的重復使通過使所述水印圖像的不同部分相關并在一定位置之間找到空間間隔來估計所述嵌入的水印的任何重定大小成為可能。然后倒轉所述重定大小并且所述標準塊與調整的圖像相關,以便同時找到所述嵌入的水印及其位置。這種系統的一個例子是菲利浦的VIVA/JAWS+水印系統。這種系統的一個缺點是所述嵌入的水印的設計必須在空間上具有周期性,這一點不總是出現在任意的水印系統中。
又一類型的水印系統包括連同在所述內容數據中的嵌入的水印一起的嵌入式模板或助手圖案。所述檢測器被設計成用來識別所述模板的基準位置、大小和形狀。所述檢測器試圖檢測所述模板繼而使用所檢測的模板的位置來估計所述嵌入的水印的實際位置和大小。然后所述系統反向所有幾何修改,以致所述相關檢測器能夠檢測并解釋所述嵌入的水印。然而,由于所述模板傾向于是脆弱的且容易被攻擊,所以這種系統是不適宜的。
因此,在本領域中需要一種用于對數據幀中嵌入的水印進行檢測的新方法和/或系統,所述嵌入的水印同基準水印比較起來是健壯的,而不管是怎樣進行旋轉、重定大小和/或平移的。
發明內容
依照本發明的一個或多個方面,提供了一種對二維數據幀中的水印進行檢測的方法。所述數據幀包括代表嵌入到內容數據幀中的所述水印的多個數據值。所述方法優選地包括從具有對應于水印的至少一些諧波頻率分量的數據幀來計算一個過濾的數據幀,所述諧波頻率分量同對應于所述內容數據的至少一些頻率分量相比被加重了;計算所過濾的數據幀的二維傅立葉變換,以便生成所過濾的數據幀的二維頻譜;從所述二維頻譜的頻率分量中選擇與所述水印相關聯的頻率分量集;和使用所選擇集的一個或多個頻率分量來計算同基準水印相比,與所述水印相關聯的旋轉值、重定大小值和平移值中的至少一個。
所述數據幀可以包括諸如像素數據或音頻數據之類的任何數據類型。
所述選擇與所述水印相關聯的頻率分量集的步驟優選地包括從所述二維頻譜的頻率分量中選擇對應于所述水印的至少一些諧波頻率分量。優選地,所述諧波頻率分量包括第二諧波頻率分量。
所述計算對應于所述水印的旋轉值的步驟可以包括確定在第一軸和基準軸之間的角度,所述第一軸由基準點和對應于所述水印的至少一個所選擇諧波頻率分量定義,并且所述基準軸由所述基準水印定義。優選地,所述基準軸沿著x軸和y軸中的至少一個。對應于所述水印的旋轉值基本上與下式成比例arctangent((Fy1*W)/(Fx1*H)),其中Fy1和Fx1分別是對應于所述水印的一個所選擇諧波頻率分量的y軸和x軸坐標。
所述計算對應于所述水印重定大小值的步驟優選地包括計算x軸重定大小值和y軸重定大小值。所述計算x軸重定大小值的步驟可以包括從所述原點到對應于所述水印的一個所選擇諧波頻率分量計算x軸周期Px;和計算Px與所述基準水印的x軸基準周期Prx的比率,以便獲得所述x軸重定大小值。所述x軸周期Px基本上等于(H*W)/√((Fx1*H)2+(Fy1*W)2),其中Fx1和Fy1分別是對應于所述水印的一個所選擇諧波頻率分量的x軸和y軸坐標。
所述計算y軸重定大小值的步驟優選地包括從所述原點到對應于所述水印的一個所選擇諧波頻率分量計算y軸周期Py;和計算Py與所述基準水印的y軸基準周期Pry的比率,以便獲得所述y軸重定大小值。所述y軸周期Py基本上等于(H*W)/√(Fx2*H)2+(Fy2*W)2),其中Fx2和Fy2分別是對應于所述水印的一個所選擇諧波頻率分量的x軸和y軸坐標。
所述平移值是基于在第一方向上的第一距離和在第二方向上的第二距離的。第一距離與對應于所述水印的一個所選擇諧波頻率分量的相位θ1成比例。第二距離與對應于所述水印的另一所選擇諧波頻率分量的相位θ2成比例。第一距離基本上等于(θ1*H*W)/2π*√((Fx1*H)2+(Fy1*W)2),其中Fx1和Fy1分別是對應于所述水印的一個所選擇諧波頻率分量的x軸和y軸坐標。第二距離基本上等于(θ2*H*W)/2π*√((Fx2*H)2+(Fy2*W)2),其中Fx2和Fy2分別是對應于所述水印的另一個所選擇諧波頻率分量的x軸和y軸坐標。
第一方向基本上與arctangent((Fy1*W)/(Fx1*H))成比例;并且第二方向基本上與arctangent((Fy2*W)/(Fx2*H))成比例。優選地,第一和第二方向基本上相互垂直。
優選地,所述方法還包括依照所述水印的旋轉值、重定大小值和平移值中的至少一個,來確定在對應于所述水印的至少一些數據塊的數據幀內的多個位置。所述方法還可以包括確定一個過濾的消息值陣列,每個過濾的消息值對應于所述水印的至少一些數據塊中的一個,并且等于基準數據塊的數據值和所述水印至少一些數據塊中的一個的各自數據值集的乘積和。
優選地,所述方法還包括確定一個過濾的基準消息值陣列,每個過濾的基準消息值對應于所述基準水印的至少一些數據塊中的一個,并且等于基準數據塊的數據值和所述基準水印的至少一些數據塊中的一個的各自數據值集的乘積和。獲得所過濾的消息值陣列和所過濾的基準消息值陣列的乘積和。當所過濾的基準消息值陣列和所過濾的基準消息值陣列的乘積和滿足或超出閾值時,作出所述水印包含一個對應于基準水印消息的消息的確定。
所述方法還可以包括相對于所過濾的基準消息值陣列按照在水平方向和垂直方向中的至少一個方向上的至少一個消息值位置來平移所過濾的消息值陣列;計算所過濾的消息值陣列和所過濾的基準消息值陣列的乘積和;重復所述平移和計算步驟一次或多次;和當所述乘積和計算中的一個乘積和計算滿足或超出閾值時,確定所述水印包含一個對應于所述基準水印消息的消息。
優選地,所述方法還包括相對于所過濾的基準消息值陣列來按照90°的倍數旋轉所過濾的消息值陣列;計算所過濾的消息值陣列和所過濾的基準消息值陣列的乘積和;重復所述旋轉和計算步驟一次或多次;和當所述乘積和計算中的一個乘積和計算滿足或超出閾值時,確定所述水印包含一個對應于所述基準水印消息的消息。
依照本發明進一步方面,所述方法還包括獲得所過濾的基準消息值陣列的二維傅立葉變換;計算所過濾的消息值陣列的二維傅立葉變換;通過逐點地求取所過濾的基準消息值陣列的二維傅立葉變換和所過濾的消息值陣列的二維傅立葉變換的積來計算一個修改的陣列;計算所修改的陣列的傅立葉逆變換;從所修改的陣列的傅立葉逆變換確定一個最大值;相對于所過濾的消息值陣列的二維傅立葉變換來按照90°的倍數旋轉所過濾的基準消息值陣列的二維傅立葉變換;通過逐點地求取所過濾的基準消息值陣列的二維傅立葉變換和所過濾的消息值陣列的二維傅立葉變換的積來計算后續修改的陣列;計算所述后續修改的陣列的傅立葉逆變換;從所述后續修改的陣列的傅立葉逆變換來確定一個后續的最大值;重復所述旋轉、計算和確定步驟一次或多次;和當一個最大值滿足或超出閾值時,確定所述水印包含一個對應于所述基準水印消息的消息。
依照本發明一個或多個進一步方面,可以用硬件來實現上述方法,例如通過利用一個或多個專用集成電路(ASIC)和/或利用一個或多個處理設備來使用市售數字和/或模擬組件,所述處理設備諸如可編程的數字信號處理設備、微處理器、在一個或多個軟件程序的控制下操作的計算機等。做為選擇,可以由軟件程序來實現這些功能,可以通過諸如計算機之類的適當處理設備來執行所述軟件程序以便實現本發明的一個或多個方面。所述軟件程序可以存儲在諸如軟盤、CD-ROM、存儲器芯片等的適當存儲介質上。
鑒于結合附圖在這里所論述的內容,本發明其它優點、特征和方面對本領域內技術人員來說是顯而易見的。
為了舉例說明本發明的目的,以附圖的形式示出了目前所優選的,然而應當理解,本發明不局限于示出的精確的安排和手段。
圖1是適合用于本發明中基于塊的水印的概念圖形表示;圖2A和2B舉例說明了關于圖1的水印結構的更多細節;圖3是舉例說明把圖1的水印嵌入到數據幀中的過程的概念框圖;圖4是舉例說明怎樣把包含于數據幀的嵌入的水印與基準水印相關的圖形框圖;圖5是示出在嵌入的水印(例如包含于旋轉數據幀中)之間的未對齊怎樣影響與所述基準水印相關的圖形說明;圖6是舉例說明可以依照本發明一個或多個方面執行的一定動作和/或功能的框圖;圖7是舉例說明可以依照本發明一個或多個方面利用的過濾過程的圖形表示;圖8是舉例說明可以依照本發明并且結合圖6的一定動作和/或功能執行的一定動作和/或功能的流程圖;圖9是通過執行圖8的一定動作和/或功能可以獲得的結果的圖形表示;圖10是通過執行圖8的其它動作和/或功能可以獲得的結果的圖形表示;圖11是示出依照本發明一定方面所過濾的數據幀的二維傅立葉變換例子的圖解說明,其中所述嵌入的水印還沒有被旋轉;圖12是舉例說明可以依照本發明并且依照圖6的變形檢測動作和/或功能可以執行的一定動作和/或功能的流程圖;圖13是示出依照本發明一定方面一個過濾的數據幀的二維傅立葉變換例子的圖解說明,其中所述嵌入的水印至少已經被旋轉;圖14是舉例說明可以依照本發明一定方面執行一定動作和/或功能以便檢測在數據幀中的嵌入的水印的流程圖,所述數據幀至少已經被旋轉、重定大小或者平移;圖15是舉例說明除在圖14中所示出的那些之外還可以執行的進一步動作和/或功能的流程圖;圖16是示出了除在圖14中示出的那些之外還可以執行的更進一步的附加動作和/或功能;和圖17是示出可以依照本發明可供選擇方面執行動作和/或功能以便檢測在數據幀中的嵌入的水印的流程圖,所述數據幀至少已經被旋轉、重定大小或者平移;具體實施方式
現在參照附圖,其中同樣的數字表明同樣的元件,在圖1中示出了依照本發明至少一個方面的優選水印100的總體上基于塊的結構。所述水印100的數據可以嵌入到內容數據中,而在這樣情況下這里的所述水印100可以指的是“嵌入的水印”100。做為選擇,所述水印100可以表示嵌入到數據幀中的水印的所希望的配置(例如還沒有旋轉、重定大小、平移等),在這樣情況下這里的水印100可以指的是“基準水印(reference watermark)”100。
水印100被示為具有一定的圖形性質(例如,圖案),并且因此可以推斷出所述水印100將用于圖形情形,諸如通過把它嵌入在一個或多個視頻數據(例如像素數據)幀中和/或通過把它用作為基準水印來檢測嵌入的水印。然而應當理解還可以在諸如音頻數據情形等的其它任何適當的情形中利用水印100。
優選地,所述水印100包括多個數據塊102,每個數據塊102具有數據值(諸如像素值、音頻值等)陣列。優選地每個數據塊102的陣列是N x N陣列,不過在不脫離本發明范圍的情況下還可以使用非方陣。在多個圖案的一個圖案中排列每個數據塊102的數據值。如圖所示,優選地,所述水印100的數據塊102包括在第一圖案或第二圖案中所排列的數據值。例如,數據塊102A可以屬于第一圖案類型,而數據塊102B可以屬于第二圖案類型。
現在參考圖2A,其舉例說明了第一圖案的諸如數據塊102A之類的數據塊102的更多細節。假定笛卡爾(Cartesian)坐標系,可以由數據值的四個象限定義第一圖案,其中第一和第三象限具有相等的數據值并且第二和第四象限具有相等的數據值。舉例來說,第一和第三象限的數據值可以表示負幅度(例如-1)并且如在圖1中黑色區域所示,而第二和第四象限的數據值可以表示正幅度(例如+1)并且如在圖1中白色區域所示。參考圖2B,還可以由數據值的四個象限定義第二圖案(例如數據塊102B),其中第一和第三象限具有相等的數據值并且第二和第四象限具有相等的數據值。然而與第一圖案相反,第二圖案的第一和第三象限的數據值表示正幅度(在圖1中的白色區域),而第二和第四象限的數據值表示負幅度(在圖1中的黑色區域)。
數據值的第一和第二圖案中的一個,例如第一圖案(例如數據塊102A)優選地表示諸如一的邏輯狀態,而例如第二圖案(例如數據塊102B)的另一個圖案表示諸如零的另一邏輯狀態。因此水印100的數據塊102陣列可以表示定義在數據幀中隱藏消息的邏輯狀態圖案(例如1和0)。
特別地,第一圖案的數據值和第二圖案的數據值由兩個相反極性幅度(例如+1和-1)組成,以致具有第一圖案(例如102A)的數據塊102和具有第二圖案(例如102B)的數據塊102的數據值的乘積和是一峰尖(peak)數,正的或負的,不過在這里的例子中,所述幅度的和是負峰尖數(因為數據值的積都是-1)。與上述例子相一致,當數據塊102A、102B之一相對于另一個數據塊旋轉90°時,具有第一圖案(102A)的數據塊102和具有第二圖案(102B)的數據塊102的數據值的乘積和是正峰尖數。這是因為當所述數據塊102A、102B之一旋轉90°時,數據值的積都是+1。
還應當注意水印100的數據塊102A、102B對于一個塊相對于另一個塊進行小的旋轉,尤其接近0°,90°,180°等是健壯的。根據下面論述本領域內技術人員可以看出,所述水印100的這些性質能夠改進檢測在數據幀中的嵌入的水印的準確性,即使當所述嵌入的水印已經采用某種方式-例如旋轉、重定大小、平移等方面作出“幾何地”改變也是如此。
應當注意水印100的基本結構只是以舉例形式給出,并且在不脫離本發明范圍的情況下可以作出許多變化和修改。因為健壯性的原因,所述水印100最好由例如數據塊102之類的數據塊形成,其顯示出一定的性質。例如,每個數據塊102最好包含與沿著從數據塊102中心到其邊界(或周邊)的任何半徑基本上相等的值。例如,圖2A和2B的數據塊102A和102B沿著任何這種半徑都是+1或-1。如這里公開所要表現的,這確保在檢測不管重定大小(例如,提高放大、降低放大,在長寬比上的變化等)的嵌入的水印上的健壯性。
現在參考圖3,其是舉例說明把圖1的水印100嵌入到諸如視頻數據150之類的內容數據幀中的過程的概念框圖。通常,可以使用基本嵌入器160來逐像素地把水印100的數據聚集(例如,添加)到視頻數據幀150的像素數據上,以便獲得包括多個數據值的數據幀170,所述多個數據值包括內容數據和嵌入的水印100。
盡管示出的水印100包含足夠數目的數據塊102以便覆蓋整個視頻數據幀150,然而在不脫離本發明范圍的情況下可以使用任何大小的水印100。例如,所述水印100可以小于視頻數據幀150和/或其可以在多個視頻數據幀150之間分布。例如,當所述視頻數據幀150代表在移動視頻圖像的多個幀間的一個幀時,可以在一個或多個視頻數據幀之間分布所述水印100。在任何情況下,在二維數據幀170中所述嵌入的水印100最好通過人眼是發覺不了的。
參考圖4,示出了舉例說明包含于諸如幀170之類的內容數據幀的嵌入的水印100A怎樣與基準水印100相關的框圖。可以理解的是,為了論述目的在沒有視頻圖像的所附內容數據的情況下,示出了嵌入的水印100A。目的在于所述嵌入的水印100A還沒有從其期待的位置旋轉、重定大小或平移。從而,在嵌入的水印100A和基準水印100之間的對齊(或其對準)是恰好的。因而,最大化所述嵌入的水印100A的數據值對數據幀170的數據值(即像素值)與基準水印100相應的數據值的積的貢獻量(例如示為白色點幀172)。當這種對齊存在時,幀172的乘積和基本上很高。然而參考圖5,即使當所述嵌入的水印100B只被輕微地旋轉、重定大小和/或平移,在變形的嵌入的水印100B和基準水印100之間的未對齊也會產生積陣列174,其可以近似地包含相同數目的+1和-1的積。因此積陣列174的和往往相對很低。
然而依照本發明,嵌入所述水印100和檢測嵌入的水印100的基本原則被擴展達到即使在出現旋轉、重定大小和/或平移的情況下,也能夠有利地檢測到所述嵌入的水印100。
依照本發明的至少一個方面,在二維數據幀中檢測嵌入的水印。所述內容數據可以是任何類型的信息,諸如靜止視頻圖像、移動視頻圖像、音頻數據等。可以以任何方式獲得所述數據幀,所述方式諸如通過讀取來自計算機可讀介質的數據,通過通信信道接收所述數據等。如果所述數據還沒有組織成二維陣列,那么可以使用任何已知的技術來從所述數據獲得一個二維陣列。應當注意在不脫離本發明范圍的情況下,可以把整個水印嵌入到單數據幀中或把部分水印分布在在多個數據幀之間。
現在參考圖6,其是舉例說明依照本發明一個或多個方面執行優選的動作和/或功能的框圖。所述功能包括過濾200、絕對值計算202、傅立葉變換計算204、峰尖檢測/選擇206、變形檢測208(例如旋轉、重定大小和平移)和水印檢測210。例如可以通過利用適當的電路把這些功能作為一種設備來加以實現,和/或可以利用在一個或多個軟件程序的控制下操作的適當處理設備操作來實現這些功能。當然,可以由包含軟件程序的存儲介質包含本發明的一定方面,所述軟件程序能使適當的處理器執行一定的動作,諸如在圖6中舉例說明的那些和/或在下文公開的任何其它動作。應當注意,為了清楚目的,劃分了在圖6中示出的功能塊,可以理解的是,在不脫離本發明范圍的情況下,可以以許多可選擇的方法組合或劃分所述功能塊。
具體地參照過濾功能200,一個過濾的數據幀最好從所述數據幀(即內容數據和嵌入的水印)加以計算,以致獲得所過濾的數據幀的一定的二維頻率特性。例如,希望過濾所述數據幀,以致同對應于所述內容數據幀的一些或所有頻率分量相比,加重對應于嵌入的水印的至少一些諧波頻率分量。
現在參考圖7-10,其舉例說明了關于圖6的過濾過程200的附加細節。圖7是適于本發明使用的所希望的過濾過程200的一定方面的插圖;圖8是舉例說明一定動作/功能的流程圖,其優選地依照過濾過程200執行;并且圖9-10是可以由此獲得的結果的圖形表示。
參考圖7和8,一個基準數據塊250被安置在包括嵌入的水印100的數據幀的每個數據值之上(并且優選地安置在上述每個數據值之上的中心)(動作260)。為了清楚的目的,在圖7中只示出了嵌入的水印100,而沒有示出內容數據。還應當注意以無變形狀態(即沒有旋轉、重定大小、平移等)示出嵌入的水印100,不過可以理解的是,本發明已經考慮到了檢測已經采用某種方式變形的嵌入的水印100A。
優選地,所述基準數據塊250包括在所述基準水印100(并且預期是在所述嵌入的水印100中)找到的圖案之一中所排列的數據值(諸如像素值、音頻值等)的陣列。例如,所述基準數據塊250可以包括在圖2A和2B中示出的第一和第二圖案的一個圖案中所排列的數據值。如圖所示,所述基準數據塊250包括在第一圖案中所排列的數據值(圖2A)。
在動作262,計算所述基準數據塊250的數據值和所述數據幀的各自數據值集(例如,由所述基準數據塊250覆蓋的數據值集)的乘積和。換句話說,為了所述基準數據塊250在包含所述嵌入的水印100的一部分數據幀上的每個對齊位置,作出一對一的乘積和計算。舉例來說,在圖9中圖解示出了在動作中262計算所述乘積和的結果,其中較大幅度結果是非常明亮的(例如白色)或非常深暗的的(例如黑色)。
當基準數據塊250的中心252被定位在位于例如具有第一圖案的數據幀的數據塊102A的中心254的數據值上時,在所述基準數據塊250的值和所述數據幀值各自的集之間的乘積和的結果相對要高并且是正幅度。參考圖9,該結果以圖形地顯示在位置254,為明亮的白色。
當所述基準數據塊250的中心252與第二圖案的數據塊102B的中心256相對齊時,所述乘積和計算的結果是相對大的負數。參考圖9,該結果以圖形地顯示在位置25,為非常暗的顏色,即黑色。應當注意在圖9中示出的圖形陣列表示數值結果,只為了論述的目的示出了黑色、灰色和白色的對比色彩變化。
參考圖8,求取在動作262中計算的每一乘積和的絕對值(動作264)。(應當注意動作264對應于圖6的動作/功能202)。通過移動到下一數據值(動作266)并測試所述數據幀的末尾(動作268),來對所述數據幀的每個數據值執行動作262和264的計算。如圖10所示,求取每一乘積和計算的絕對值產生數目陣列,該陣列表現為例如明亮白色點258之類的峰尖的幾何圖案。不管所述數據塊102是否屬于第一或第二圖案類型,每個峰尖表示所述嵌入的水印100的數據塊102的中心。
再次參照圖6,優選地,傅立葉變換計算204包括在所過濾的數據幀上計算二維傅立葉變換的動作,以便生成所過濾的數據幀的二維頻譜。可以使用任何已知的技術來計算所述二維傅立葉變換,諸如利用公認的快速傅立葉變換(FFT)算法中任一一種。
圖11示出了一個過濾的數據幀的二維頻譜320的例子,所過濾的數據幀諸如在圖10中示出的所過濾的數據幀。所述二維譜320包括許多峰尖322,其在許多低幅度值之間以白圈大致示出,所述低幅度值以灰點大致示出。所述峰尖322表示對應于嵌入的水印100的一些諧波頻率分量的幅度和相位分量。可以理解的是,一個實際二維頻譜往往包括比在圖12中示出的那些峰尖更多的峰尖322,但為了簡單起見省略了它們。如同所述嵌入的水印100本身,所過濾的數據幀的傅立葉變換(在這種情況下是FFT)包括從所述嵌入的水印100導出的一定的幾何性質。特別地,所述譜320的至少一些諧波頻率分量322位于一個在原點324周圍的矩形圖案中。所述原點324表示諸如DC之類的一個或多個低頻分量。假定所述頻譜320被布置在具有相交于原點324的x和y軸的笛卡爾座標系統中,每一諧波頻率分量322可以表示為x,y坐標對。
參考圖6,優選地,峰尖檢測和/或選擇功能206與過濾功能207相關聯。優選地,所述過濾功能207可操作來執行一個或多個過濾算法,以便抑制在所過濾的數據幀的二維頻譜320中不想要的峰尖322。例如參考圖11,有時許多峰尖322A出現在原點324附近。因為這種峰尖322A幾乎不包含關于所述嵌入的水印100是否已經被旋轉、重定大小或平移等信息,所以它們通常價值不大并可以被丟棄或忽略。
依照所述峰尖檢測/選擇功能206(圖6),最好對應于所述嵌入的水印100的至少一些較低的諧波頻率分量322(圖11)是選自在包含于所述二維頻譜320的多個峰尖322之中的。例如依照本發明一些方面,第一諧波頻率分量和/或第二諧波頻率分量往往適于選擇。依照本發明,最好選擇對應于嵌入的水印100的第二諧波的諧波頻率分量322以供使用。舉例來說,在圖11中示出的諧波頻率分量322(圍在原點324周圍的那些除外)表示對應于所述嵌入的水印100的第二諧波頻率分量。為了下面論述更明顯,只需要分析在圖11中示出的一些所選擇諧波頻率分量322,來確定所述嵌入的水印100是否變形并怎樣被變形。
參照圖6和11,優選地,由變形檢測功能208確定與所述嵌入的水印100相關聯的所述旋轉值、重定大小值和平移值中的至少一個。通過計算對應于嵌入的水印100的所選擇諧波頻率分量322的幾何位置的一個或多個偏差,或通過計算在所選擇諧波頻率分量322的相位的一個或多個偏差,來確定這些值。
可以通過利用某些通用的、二維傅立葉變換的性質來確定對應于所述嵌入的水印100A的所選擇諧波頻率分量322的幾何位置或相位的偏差。這些性質包括對數據幀按照一個旋轉值(即角)進行的任何旋轉將產生所述數據幀的傅立葉變換的頻率分量的相應旋轉。這里,對應于所述嵌入的水印100的所述諧波頻率分量的相應的旋轉往往是明顯的。二維傅立葉變換的另一性質是所述數據幀在x軸方向(即沿著所述x軸)上的例如放大或縮小之類的重定大小將產生傅立葉變換的頻率分量的位置的反比例的重定大小。這里,作為重定大小的結果,對應于所述嵌入的水印100的諧波頻率分量322將相對于所述原點324被重新定位。例如,所述數據幀在x軸方向(即沿著所述x軸)上的任何重定大小將產生在嵌入的水印100相對于所述原點324的諧波頻率分量322的位置的x軸方向上反比例的重定大小。類似地,所述數據幀在y軸方向(即沿著所述y軸)上的任何重定大小將產生在嵌入的水印100相對于所述原點324的諧波頻率分量322的位置的y軸方向上反比例的重定大小。更進一步,二維傅立葉變換通常的性質規定所述數據幀的任何平移(即,空間移動)產生在傅立葉變換的頻率分量的相位分量中的相應的變化,而沒有改變其幅度。這里,嵌入的水印100的諧波頻率分量322將顯示出根據這種變換的不規則相位。在下文將更詳細地討論這些性質。
現在參考圖12,其是舉例說明一定動作和/或功能的流程圖,可以依照圖6的變形檢測功能208執行所述動作和/或功能。在動作300,通過確定至少一些所選擇諧波頻率分量322的幾何位置的偏差來計算對應于嵌入的水印100的旋轉值的確定。進一步參考圖11,可以通過計算在第一軸326和基準軸328之間的角度來確定所述旋轉值。第一軸326從諸如所述原點324的基準點延伸到諸如分量322B的至少一個所選擇諧波頻率分量322。所述基準軸328由所述基準水印100定義,并且優選地,沿著所述x和y軸的一個延伸。
優選地,通過計算基本上與下式成比例的數值來確定對應于嵌入的水印100的旋轉值arctangent((Fy1*W)/(Fx1*H)),其中Fy1和Fx1分別是對應于所述嵌入的水印100的所選擇諧波頻率分量322的一個的y軸和x軸坐標,所述諧波頻率分量322諸如是在圖11中的分量322B。最好,通過計算基本上等于下式的數值來確定對應于所述嵌入的水印100的旋轉值(180/π)*arctangent((Fy1*W)/(Fx1*H))。
舉例來說,所述諧波頻率分量322B的y軸坐標-Fy1是零,并且所述x軸坐標Fx1是某個正數。因而,所述反正切功能的參數是零,并且所述合成的旋轉值(角度)是零。所述峰尖322B的x,y位置顯示還沒有旋轉所述嵌入的水印100(圖7)。盡管在該例子中所述合成的旋轉角是零,可以理解的是,該結果表示數據幀(和嵌入的水印100A)以90°為模旋轉。因而,由于旋轉所導致的所述嵌入的水印100的實際變形可以是0+n*90°,其中n=0,1,2,...。當討論檢測在所述嵌入的水印100中的隱藏消息時,下面更詳細地涉及分析這個問題。然而這里應當注意,盜版不可能把數據幀旋轉90°,這是因為它往往舍棄不適合娛樂的內容數據。
圖13是一個過濾的數據幀的二維傅立葉變換320A的例子,其中至少已經旋轉所述嵌入的水印100。這里,所述反正切(arctangent)功能的參數近似是0.2并且所述合成的旋轉值(角度)近似是12°。再次,所述旋轉值表示所述數據幀和所述嵌入的水印100以模90°的旋轉。因而,由于旋轉所導致的所述嵌入的水印100A的實際變形可以是12°+n*90°,其中n=0,1,2,...。
應當注意,計算所述嵌入的水印的旋轉值的動作和/或功能(動作300,圖12)可以包括為兩個或多個所選擇諧波頻率分量322計算旋轉值并且從所計算的那些旋轉值中選擇一個旋轉值。做為選擇,以例如通過對它們求平均之類的某種方式可以聚集一些或所有計算的旋轉值,以便獲得最終的旋轉值.
再次參照圖12,在動作302,通過確定至少一些所選擇諧波頻率分量322的幾何位置的其它偏差來計算對應于所述嵌入的水印100的重定大小值。優選地,這包括比較所述嵌入的水印100的至少一個所選擇諧波頻率分量322的周期P和由所述基準水印100定義的基準周期Pr。
最好把周期P的確定分成x軸周期Px的確定(動作304)和y軸周期Py的確定(動作306)。優選地,所述x軸周期Px根據一個所選擇諧波頻率分量322的幾何位置來計算。優選地,所述y軸周期Py根據另一個所選擇諧波頻率分量322的幾何位置來計算。優選地,用于計算所述x軸周期Px的所選擇諧波頻率分量是一個基本上沿著x軸的諧波頻率分量,或者可以是一個基本上沿著x軸的諧波頻率分量,除了由于旋轉所導致的任何變形之外。
參考圖13并且舉例來說,當經由旋轉已經使所述嵌入的水印100A變形時,優選地,選擇諧波頻率分量322D來確定所述x軸周期Px,這是因為它也會基本上沿著所述x軸的,除了所述旋轉之外。優選地,用于計算所述y軸周期Py的所選擇諧波頻率分量是一個基本上沿著y軸的諧波頻率分量,或者可以是一個基本上沿著y軸的諧波頻率分量,除了由于旋轉所導致的任何變形之外。如圖13所示,優選地,選擇所述諧波頻率分量322E來確定所述y軸周期Py,這是因為它也會基本上沿著所述y軸的,除了所述旋轉之外。
優選地,通過分別從所述x軸周期Px和y軸周期Py計算x軸重定大小值和y軸重定大小值來確定所述重定大小值。這有利地提供關于所述嵌入的水印100A的放大,縮小和/或長寬比變化的信息(例如,放大或縮小所述嵌入的水印100A的x軸和y軸尺寸的一個或另一個)。
優選地,通過計算x軸周期Px和由基準水印100定義的x軸基準周期Prx的比率來確定所述x軸重定大小值。優選地,通過計算如下的數值來確定所述x軸周期Px,所述數值基本上等于(H*W)/√((Fx1*H)2+(Fy1*W)2),其中Fx1和Fy1分別是對應于嵌入的水印100的所選擇諧波頻率分量(例如322D)的x軸和y軸坐標,H是二維傅立葉變換320A的總的y軸尺寸,并且W是所述二維傅立葉變換320A的總的x軸尺寸。優選地,通過檢查基準水印100的數據塊的一定幾何性質來確定所述基準水印100的x軸基準周期Prx。參考圖2A,所述基準水印100包括多個二維數據塊102,每個數據塊102包括在行和列中所排列的多個數據值。在每一行中的數據值的數目等于所述基準水印100的x軸基準周期Prx。
優選地,確定y軸重定大小值包括計算y軸周期Py和由基準水印100定義的y軸基準周期Pry的比率。優選地,通過計算如下數值來確定所述y軸周期Py,所述數值基本上等于(H*W)/√((Fx2*H)2+(Fy2*W)2),其中Fx2和Fy2分別是對應于所述嵌入的水印100的另一所選擇諧波頻率分量(例如322E)的x軸和y軸坐標。參考圖2A,在數據塊102的每一列中值的數目等于所述基準水印100的y軸基準周期Pry。
參考圖12,優選地,通過計算在對應于嵌入的水印100的至少一些所選擇諧波頻率分量322的相位的一個或多個偏差,來確定計算所述嵌入的水印100的平移值的動作和/或功能(動作308)。尤其是,優選地,確定所述嵌入的水印100的平移值包括從至少兩個所選擇諧波頻率分量322獲得相位。
優選地,確定所述嵌入的水印100的平移值包括計算在第一方向上的第一距離(基于一個相位)(動作310)和計算在第二方向上的第二距離(基于另一相位)(動作312)。第一距離表示嵌入的水印100已經被平移(或被移動)的量,并且第一方向是該平移的方向。第二距離表示嵌入的水印100已經被平移的另一量,并且第二方向是該平移的方向。最好第一和第二距離沿著彼此正交的軸。例如優選地,第一和第二方向中的一個沿著與所述x軸或y軸成一定角度的軸,其中所述角度對應于所述旋轉值。優選地,第一和第二方向中的另一個沿著與其垂直的軸。
優選地,通過計算與所選擇諧波頻率分量中的第一個(例如圖13的分量322D)的第一相位θ1成比例的數值,來獲得第一距離。優選地,通過計算與所選擇諧波頻率分量中的第二個(例如圖13的分量322E)的第二相位θ2成比例的數值,來獲得第二距離。
優選地,通過計算基本上等于下式的數值來獲得第一距離(θ1*H*W)/2π*√((Fx1*H)2+(Fy1*W)2),其中Fx1和Fy1分別是所選擇諧波頻率分量中的第一個(例如分量322D)的x軸和y軸坐標。
優選地,通過計算基本上等于下式的數值來獲得第二距離(θ2*H*W)/2π*√((Fx2*H)2+(Fy2*W)2),其中Fx2和Fy2分別是所選擇諧波頻率分量的第二個(例如分量322E)的x軸和y軸坐標。
如上所述,優選地,第一方向沿著由旋轉值定義的軸,所述旋轉值可能已經在圖12的動作300計算出。尤其是,優選地,通過計算基本上與下式成比例的數值來確定第一方向arctangent((Fy1*W)/(Fx1*H))。
類似地,優選地,第二方向沿著由旋轉值定義的軸,所述旋轉值可能已經在圖12的動作300預先確定了。尤其是,優選地,通過計算基本上與下式成比例的數值來獲得第二方向
arctangent((Fy2*W)/(Fx2*H))。
參考圖6,一旦確定在嵌入的水印100中的變形(動作208),就檢測所述嵌入的水印100及其隱藏消息(動作210)。圖14是舉例說明更多細節動作和/或功能的流程圖,依照本發明至少一個方面可以執行所述動作和/或功能,以便依照圖6的動作210來檢測所述嵌入的水印100及其隱藏消息。在動作400,優選地,依照嵌入的水印100的預先確定的旋轉值、重定大小值和平移值中的至少一個,來確定對應于嵌入的水印100的至少一些數據塊102的所述數據幀內的位置。所述位置最好對應于嵌入的水印100的數據塊102的各自的中心。
在動作402,確定一個過濾的消息值陣列,在那里每個過濾的消息值對應于為其確定了位置的嵌入的水印100的一個數據塊102。優選地,每個過濾的消息值基本上等于在所述基準數據塊250的數據值和嵌入的水印100的數據塊102中的一個給定數據塊的各自數據值集之間的相關。優選地,這個給定數據塊102的各自的數據值集是那些由所述基準數據塊250覆蓋的數據值,此時其中心252(圖7)與所述嵌入的水印100的數據塊102的各自的位置(例如中心)相對齊。
應當注意所過濾消息值被包含在上文已經相對于圖6-10所討論的所過濾的數據幀內。當然,所過濾的消息值理論上會對應于所過濾的數據幀包含的每一峰尖254、256等(圖9)。因而,不必實施重算所過濾的消息值;而是從所過濾的數據幀中提取它們。做為選擇,可以以另一方式計算所過濾的消息值,就是在求取在所述基準數據塊250和嵌入的水印100的數據塊的各自的數據值集之間的例如乘積和之類的相關之前,可以按照一個與旋轉值成比例的量來旋轉所述基準數據塊250。又一供選擇的(或附加方面)來確定所過濾的消息值包括在求取乘積和之前按照與所述重定大小值成比例的一個或多個量(例如,x軸值和y軸值)來重定大小所述基準數據塊250。理論上,這些供選擇的技術往往會產生一個更準確的過濾的消息值陣列。
在動作404,優選地,獲得一個過濾的基準消息值陣列,其中每個過濾的基準消息值對應于所述基準水印100的至少一些數據塊102中的一個。特別地,每個過濾的基準消息值基本上等于所述基準數據塊250的數據值和所述基準水印100的數據塊102的數據值的乘積和。優選地,所過濾的基準消息值陣列被預先確定并且可以通過從適當存儲裝置讀取陣列而容易地獲得。
在動作406,優選地,作出關于所述嵌入的水印100是否已經通過旋轉被變形的確定。這可以通過分析所述旋轉值來容易地確定。如果確定所述嵌入的水印100沒有被旋轉,那么該過程流程優選地前進到動作408。在那里,優選地,作出關于所述嵌入的水印100是否通過平移被變形的確定。如果該確定是否定的,那么優選地,該過程流程前進到動作410,在那里計算在所過濾的消息值陣列和所過濾的基準消息值陣列之間的相關。特別地,所述相關計算優選地包括求取所過濾的消息值陣列和所過濾的基準消息值陣列的乘積和。當乘積和滿足或超出閾值時,優選地,作出所述嵌入的水印100包含對應于基準水印100消息的消息的確定(動作412和414)。然后可以采取適當的動作。
應當注意依照本發明可以使用許多不同的基準水印。依照本發明另一方面,所述嵌入的水印100可以與一個基準水印相配,通過以下步驟(i)在動作404確定一個過濾的基準消息值陣列集;(ii)在動作410計算一個獨立的所過濾的消息值陣列和每一所過濾的基準消息值陣列的乘積和;和(iii)在動作412、413和4z4,當所過濾的消息值陣列和與基準水印相關聯的所過濾的基準消息值陣列的一個乘積和滿足或超出閾值時,確定所述嵌入的水印100包含對應于一個基準水印消息的消息。
再次轉向動作408,如果確定所述嵌入的水印100經由平移受到變形,那么優選地,該過程流程分支到動作420(圖15),在那里,和使用動作410的情況一樣,例如通過求取乘積和來獲得在所過濾的消息值陣列和所過濾的基準消息值陣列之間的相關。優選地,存儲所述相關計算的結果。假定還沒有計算出預先確定數目的相關(動作422),那么優選地,該過程流程前進到動作424,在那里水平地和/或垂直地按照一個整數消息值位置來彼此之間相對地平移所過濾的消息值陣列和所過濾的基準消息值陣列。再次計算并存儲在所過濾的消息值陣列和所過濾的基準消息值陣列之間的相關(動作420)。優選地,重復這些步驟直到計算出了預先確定數目的相關(動作422),所述數目例如十次相關。然后,優選地,該過程流程前進到這里,在此優選地,作出關于所述嵌入的水印100A是否包含對應于所述基準水印100消息的消息的確定,所述確定是通過確定一個相關結果是否滿足或超出閾值得出的(動作426、427和428)。
重復上述平移和相關的步驟,這是因為所計算平移值(例如在第一方向上的第一距離和/或在第二方向上的第二距離)與所述實際平移相反,表示平移的模值。如果不參考實際的嵌入的基準消息陣列,只能計算以所述水印嵌入塊的重定大小尺寸為模的平移值。這些模值連同所述重定大小和旋轉值一起,允許變形的嵌入的水印中的塊位置的“方格”被計算。通過計算與在所述嵌入和基準消息陣列之間不同偏移量的一些相關,可以獲得所述平移值更可靠的確定以及所述嵌入的水印100是否與所述基準水印100相匹配。
再次參照動作406(圖14),如果確定所述嵌入的水印100A經由旋轉受到變形,那么優選地,該過程流程分支到動作452(圖16)。在那里,優選地,獲得在所過濾的消息值陣列和所過濾的基準消息值陣列之間的相關(例如乘積和)并存儲該結果。
優選地,在動作454再次把所過濾的消息值陣列和所過濾的基準消息值陣列彼此相對地旋轉90°。在動作456,優選地,作出關于所述陣列是否已經彼此相對地旋轉360°的確定。如果沒有,那么優選地,所述過程流回動作452,在那里計算在所過濾的消息值陣列和所過濾的基準消息值陣列之間的另一相關并存儲該結果。優選地,重復該過程直到在動作456達到旋轉360°。優選地,所述過程流程前進到動作458,在那里優選地,作出關于所述嵌入的水印100是否對應于所述基準水印100的確定。如果對應存在,那么優選地,所述過程流向動作460,如果不存在,那么優選地,所述過程流向動作459(沒有水印被檢測到)。當一個相關結果(例如一個乘積和)滿足或超出閾值時,就假定是對應的。應當注意,如果使用多個基準水印(并且計算出了與所過濾的消息陣列的多個旋轉/相關),那么就假定與所過濾的消息值陣列具有最高相關的所過濾的基準水印陣列對應于其已經足夠高到滿足或超出所述閾值。然后作出所述嵌入的水印100包含一個對應于所選擇基準水印(例如基準水印100)消息的消息的確定(動作460)。然后可以采取適當的動作。
重復旋轉90°并且優選地作出相關,這是因為所述旋轉值表示與所述嵌入的水印100實際旋轉相反的旋轉模值。發生這些是因為如果考慮在傅立葉變換320中的兩個峰尖322(圖11),預先不知道在所述嵌入的水印中哪個表示“水平”方向并且哪個表示“垂直”方向。因此,通過相對于所過濾的基準消息值陣列按照90°旋轉所過濾的消息值陣列,可以高度可靠地確定在所述嵌入的水印100和所述基準水印100之間的匹配。
應當注意,可以容易地修改圖16的過程流程以便適應所述嵌入的水印100已經旋轉和平移的情況。當然,為達到此功能的目的可以在圖16的動作452中插入圖15動作420、422和424的過程流程。
現在參考圖17,其是舉例說明可以依照本發明一個或多個供選擇方面執行的過程步驟的流程圖。特別地,該流程圖示出了用于執行水印檢測210(圖6)的動作和/或功能的流程圖。特別地,在執行動作400、402和404之后(圖14),優選地,所述過程流程前進到動作480,在那里優選地,獲得所過濾的基準消息值陣列的二維傅立葉變換。優選地,可以預先確定該二維傅立葉變換,這是因為可以預先確定所述基準水印100和所過濾的基準消息值陣列。可以使用諸如利用FFT之類的任何已知的用于執行二維傅立葉變換的方法。
接下來,優選地,計算所過濾的消息值陣列的二維傅立葉變換(例如FFT)(動作482)。在動作484,優選地,通過逐點地求取所過濾的基準消息值陣列的二維傅立葉變換和所過濾的消息值陣列的二維傅立葉變換的積,來計算一個修改的陣列。接下來,優選地,計算所修改的陣列的傅立葉逆變換(動作486)。在動作488,確定在所修改的陣列的傅立葉逆變換結果中的最大值。
在動作490,優選地,把所過濾的基準消息值陣列的二維傅立葉變換和所過濾的消息值陣列的二維傅立葉變換彼此相對地旋轉諸如單數個之類的90°的倍數。在動作492,作出關于是否已經達到旋轉360°的確定。如果沒有,優選地,所述過程流程反饋到動作484,在那里優選地,通過逐點地求取所過濾的基準消息值陣列的二維傅立葉變換和所過濾的消息值陣列的二維傅立葉變換(如旋轉的)的積,來計算一個后續修改的陣列。
優選地,重復動作484、486、488和490直到獲得在所過濾的基準消息值陣列的二維傅立葉變換和所過濾的消息值陣列的二維傅立葉變換之間旋轉360°(動作492)。在該點上,優選地,該過程流程前進到動作494,在那里作出關于所述嵌入的水印100是否對應于基準水印100的確定。特別地,當所述修改陣列的傅立葉逆變換的一個最大值超出閾值時,優選地,作出所述嵌入的水印100對應于所述基準水印100的確定。應當注意,如果使用多個基準水印(并且據其計算多個傅立葉逆變換),那么產生在所過濾的消息值陣列的最高傅立葉逆變換結果中的所過濾的基準消息陣列被認為對應于所述嵌入的水印100(假定其足夠高到滿足或超出所述閾值)。如果沒有找到對應,那么優選地,所述過程前進到動作495(未檢測出水印)。如果找到對應,那么在動作496,作出在所述嵌入的水印100A的消息和所述基準水印100的消息之間的匹配并且采取適當的動作。
依照本發明一個或多個進一步方面,可以用硬件來實現在圖6、8、12和14、17(及其它參考的附圖)公開的功能,利用硬件例如通過利用一個或多個專用集成電路(ASIC)和/或利用一個或多個處理設備來使用市售的數字和/或模擬組件,所述處理設備諸如可編程的數字信號處理設備、微處理器、在一個或多個軟件程序的控制下操作的計算機等。做為選擇,可以由軟件程序來實現這些功能,可以通過諸如計算機之類的適當處理設備來執行所述軟件程序以便實現本發明的一個或多個方面。所述軟件程序可以存儲在諸如軟盤、CD-ROM、存儲器芯片等的適當存儲介質上。
盡管這里參考特定的實施例已經描述了本發明,然而應當理解這些實施例僅僅是說明本發明的原理和應用。因此應當理解對此說明性實施例可以作出大量修改,并且在不脫離如所附權利要求定義的本發明的精神和范圍下可以產生其它設置。
權利要求
1.一種對二維數據幀中的水印進行檢測的方法,所述數據幀包括代表嵌入到內容數據幀中的水印的多個數據值,所述方法包括從具有對應于所述水印的至少一些諧波頻率分量的數據幀來計算一個過濾的數據幀,所述諧波頻率分量同對應于所述內容數據的至少一些頻率分量比較起來被加重了;計算所過濾的數據幀的二維傅立葉變換,以便生成所過濾的數據幀的二維頻譜;從所述二維頻譜的頻率分量中選擇與所述水印相關聯的頻率分量集;和使用所選擇集的一個或多個頻率分量來計算同基準水印相比,與所述水印相關聯的旋轉值、重定大小值和平移值中的至少一個。
2.如權利要求1所述的方法,其中所述數據幀是像素數據和音頻數據中的一個。
3.如權利要求1所述的方法,其中所述水印基本上匹配所述基準水印,除了所述旋轉值、重定大小值和平移值中的至少一個之外。所述水印和所述基準水印包括代表一條消息的各自的多個數據塊;和每個數據塊包括在由所述消息定義的第一和第二圖案的至少一個圖案中所排列的數據值陣列。
4.如權利要求3所述的方法,其中可以由在笛卡爾坐標系中數據值的四個象限定義第一和第二圖案;并且第一和第三象限具有相等的數據值而第二和第四象限具有相等的數據值。
5.如權利要求4所述的方法,其中第一和第二圖案的第一和第三象限的數據值與第二和第四象限的數據值由兩種相反極性數目組成。
6.如權利要求5所述的方法,其中第一圖案的第一和第三象限的數據值與第二圖案的第一和第三象限的數據值由兩種相反極性數目組成。
7.如權利要求3所述的方法,其中所過濾的數據幀包括多個過濾的數據值,每個過濾的數據值相應于所述數據幀的一個數據值并且等于基準數據塊的數據值與所述數據幀的各自數據值集的乘積和。
8.如權利要求7所述的方法,其中在所述至少第一和第二圖案的一個圖案中排列所述基準數據塊的數據值,以致當所述數據幀的各自數據值集包括所述水印的數據塊中的一個給定數據塊時,所述過濾值中的一個給定過濾值趨向于峰尖,所述水印的數據塊中的所述一個給定數據塊至少部分地與所述基準數據塊相對準。
9.如權利要求8所述的方法,其中當所述水印的數據塊中的一個給定數據塊和所述基準數據塊都包括在第一或第二圖案中所排列的數據值時,所述給定過濾值趨向于正極性峰尖;并且當所述水印的數據塊中的一個給定數據塊包括在第一和第二圖案的一個圖案中所排列的數據值并且所述基準數據塊包括在第一和第二圖案的另一個圖案中所排列的數據值時,所述過濾值中的一個給定值趨向于負極性峰尖。
10.如權利要求9所述的方法,其中所述基準數據塊包括在所述數據值陣列內的中心;并且當所述基準數據塊的中心與所述數據幀的一個相應的數據值相對齊時,所述數據幀各自的數據值集是那些被所述基準數據塊覆蓋的數據值。
11.如權利要求7所述的方法,其中所述計算所過濾的數據幀的步驟包括為每個過濾值,計算所述基準數據塊的值和所述數據幀的各自值集的乘積和的絕對值。
12.如權利要求1所述的方法,其中所述計算所過濾的數據幀的二維傅立葉變換的步驟包括計算二維快速傅立葉變換(FFT),以便生成所過濾的數據幀的二維頻譜。
13.如權利要求1所述的方法,其中所述選擇與所述水印相關聯的頻率分量集的步驟包括從所述二維頻譜的頻率分量中選擇對應于所述水印的至少一些諧波頻率分量。
14.如權利要求13所述的方法,其中所述至少一些諧波頻率分量包括對應于所述水印的第二諧波頻率分量。
15.如權利要求13所述的方法,其中所述計算與所述水印相關聯的旋轉值、重定大小值和平移值中至少一個的步驟包括確定(i)與由所述基準水印定義的那些分量所預期的幾何位置相比較,在對應于所述水印的至少一個所選擇諧波頻率分量的二維傅立葉變換內的幾何位置的一個或多個偏差;或(ii)與由所述基準水印定義的那些分量所預期的相位相比較,在對應于所述水印的至少一個所選擇諧波頻率分量中的一個或多個相位偏差。
16.如權利要求15所述的方法,其中包含二維頻譜的頻率分量的區域(i)可以按照x軸和y軸在笛卡兒坐標上用圖形表示;(ii)包括平行于所述x軸的寬度(W);(iii)包括平行于所述y軸的高度(H);和(iv)包括基本上在所述x軸和y軸交點的原點。
17.如權利要求16所述的方法,其中所述計算對應于所述水印的旋轉值的步驟包括確定在第一軸和基準軸之間的角度,所述第一軸由基準點和對應于所述水印的至少一個所選擇諧波頻率分量定義,并且所述基準軸由所述基準水印定義。
18.如權利要求17所述的方法,其中所述基準軸沿著所述x軸和y軸中的一個。
19.如權利要求18所述的方法,其中對應于所述水印的旋轉值基本上與下式成比例arctangent((Fy1*W)/(Fx1*H)),其中Fy1和Fx1分別是對應于所述水印的一個所選擇諧波頻率分量的y軸和x軸的坐標。
20.如權利要求19所述的方法,其中對應于所述水印的旋轉值基本上等于(180/π)*arctangent((Fy1*W)/(Fx1*H))度。
21.如權利要求17所述的方法,其中所述計算對應于所述水印旋轉值的步驟包括確定在(i)由所述基準點和對應于所述水印的所選擇諧波頻率分量的各自點定義的各自軸,和(ii)由所述基準水印定義的一個或多個基準軸之間的兩個或多個角度;和從所述兩個或多個角度中確定所述旋轉值。
22.如權利要求16所述的方法,其中所述計算對應于所述水印的重定大小值的步驟包括比較(i)從對應于所述水印的至少一個所選擇諧波頻率分量計算出的周期(P);和(ii)由所述基準水印定義的基準周期(Pr)。
23.如權利要求22所述的方法,其中所述計算對應于所述水印的重定大小值的步驟包括計算x軸的重定大小值和y軸的重定大小值。
24.如權利要求23所述的方法,其中所述計算x軸的重定大小值的步驟包括從對應于所述水印的一個所選擇諧波頻率分量來計算x軸周期Px;計算Px與所述基準水印的x軸基準周期Prx的比率,以便獲得所述x軸的重定大小值。
25.如權利要求24所述的方法,其中所述x軸周期Px基本上等于(H*W)/√((Fx1*H)2+(Fy1*W)2),其中Fx1和Fy1分別是對應于所述水印的一個所選擇諧波頻率分量的x軸和y軸坐標。
26.如權利要求25所述的方法,其中所述基準水印包括多個數據塊,每個數據塊包括在行和列中所排列的多個值,在每一行中值的數目等于所述基準水印的x軸的基準周期Prx。
27.如權利要求26所述的方法,其中對應于所述水印的一個所選擇諧波頻率分量基本上沿著所述x軸,或者基本上會沿著所述x軸,除了所述旋轉值之外。
28.如權利要求23所述的方法,其中所述計算y軸重定大小值的步驟包括從對應于所述水印的一個所選擇諧波頻率分量計算y軸周期Py;和計算Py與所述基準水印的y軸基準周期Pry的比率,以便獲得所述y軸重定大小值。
29.如權利要求28所述的方法,其中所述y軸周期Py基本上等于(H*W)/√((Fx2*H)2+(Fy2*W)2),其中Fx2和Fy2分別是對應于所述水印的一個所選擇諧波頻率分量的x軸和y軸坐標。
30.如權利要求29所述的方法,其中所述基準水印包括多個數據塊,每個數據塊包括在行和列中所排列的多個值,在每一列中值的數目等于所述基準水印的y軸基準周期Pry。
31.如權利要求30所述的方法,其中對應于所述水印的一個所選擇諧波頻率分量基本上沿著所述y軸,或者基本上會沿著所述y軸,除了所述旋轉值之外。
32.如權利要求16所述的方法,其中所述計算對應于所述水印的平移值的步驟包括從對應于所述水印的至少兩個所選擇諧波頻率分量獲得相位。
33.如權利要求32所述的方法,其中所述平移值是基于在第一方向上的第一距離和在第二方向上的第二距離的;第一距離與對應于所述水印的一個所選擇諧波頻率分量的相位θ1成比例;并且第二距離與對應于所述水印的另一個所選擇諧波頻率分量的相位θ2成比例。
34.如權利要求33所述的方法,其中第一距離基本上等于(θ1*H*W)/2π*√((Fx1*H)2+(Fy1*W)2),其中Fx1和Fy1分別是對應于所述水印的一個所選擇諧波頻率分量的x軸和y軸坐標;并且第二距離基本上等于(θ2*H*W)/2π*√((Fx2*H)2+(Fy2*W)2),其中Fx2和Fy2分別是對應于所述水印的另一個所選擇諧波頻率分量的x軸和y軸坐標。
35.如權利要求34所述的方法,其中第一方向基本上與arctangent((Fy1*W)/(Fx1*H))成比例;并且第二方向基本上與arctangent((Fy2*W)/(Fx2*H))成比例。
36.如權利要求33所述的方法,其中第一和第二方向基本上相互垂直。
37.如權利要求3所述的方法,還包括依照所述水印的旋轉值、重定大小值和平移值中的至少一個,確定在對應于所述水印的至少一些數據塊的數據幀內的多個位置。
38.如權利要求37所述的方法,其中所述多個位置對應于所述水印的數據塊的各自中心。
39.如權利要求37所述的方法,還包括確定一個過濾的消息值陣列,每個過濾的消息值相應于所述水印的至少一些數據塊中的一個,并且等于基準數據塊的數據值和所述水印的至少一些數據塊中的一個的各自數據值集的乘積和。
40.如權利要求39所述的方法,其中所述基準數據塊包括在所述數據值陣列內的中心;并且當所述基準數據塊的中心與所述水印的至少一些數據塊中的一個的各自位置相對齊時,所述水印的至少一些數據塊中的一個的各自數據值集是那些被所述基準數據塊覆蓋的數據值。
41.如權利要求40所述的方法,還包括如下步驟中的至少一個步驟(i)在求取乘積和之前,按照一個與所述旋轉值成比例的量來旋轉所述基準數據塊;和(ii)在求取乘積和之前,按照一個或多個與所述重定大小值成比例的量來重定所述基準數據塊的大小。
42.如權利要求39所述的方法,還包括確定一個過濾的基準消息值陣列,每個過濾的基準消息值相應于所述基準水印的至少一些數據塊中的一個,并且等于基準數據塊的數據值和所述基準水印的至少一些數據塊中的一個的數據值的乘積和。
43.如權利要求42所述的方法,其中所述基準數據塊包括在所述數據值陣列內的中心;并且當所述基準數據塊的中心與所述基準水印的至少一些數據塊中的一個的中心相對齊時,所述基準水印的至少一些數據塊中的一個的數據值是那些被所述基準數據塊覆蓋的數據值。
44.如權利要求42所述的方法,其中所述過濾的基準消息值陣列被預先確定。
45.如權利要求44所述的方法,還包括計算所過濾的消息值陣列和所過濾的基準消息值陣列的乘積和。
46.如權利要求45所述的方法,還包括當所過濾的消息值陣列和所過濾的基準消息值陣列的乘積和滿足或超出閾值時,確定所述水印包含一個對應于基準水印消息的消息。
47.如權利要求46所述的方法,還包括確定一個過濾的基準消息值陣列集,每個所過濾的基準消息值陣列與不同的基準水印相關聯;計算所過濾的消息值陣列和每個所過濾的基準消息值陣列的乘積和;和當所過濾的消息值陣列和與一個基準水印相關聯的所過濾的基準消息值陣列的乘積和滿足或超出閾值時,確定所述水印包含一個對應于基準水印消息的消息。
48.如權利要求45所述的方法,還包括相對于所過濾的基準消息值陣列按照在水平方向和垂直方向中的至少一個方向上的至少一個消息值位置來平移所過濾的消息值陣列;計算所過濾的消息值陣列和所過濾的基準消息值陣列的乘積和;重復所述平移和計算步驟一次或多次;和當所述乘積和計算中的一個乘積和計算滿足或超出閾值時,確定所述水印包含一個對應于所述基準水印消息的消息。
49.如權利要求45所述的方法,還包括相對于所過濾的基準消息值陣列來按照90°的倍數旋轉所過濾的消息值陣列;計算所過濾的消息值陣列和所過濾的基準消息值陣列的乘積和;重復所述旋轉和計算步驟一次或多次;和當所述乘積和計算中的一個乘積和計算滿足或超出閾值時,確定所述水印包含一個對應于所述基準水印消息的消息。
50.如權利要求42所述的方法,還包括獲得所過濾的基準消息值陣列的二維傅立葉變換;計算所過濾的消息值陣列的二維傅立葉變換;通過逐點地求取所過濾的基準消息值陣列的二維傅立葉變換和所過濾的消息值陣列的二維傅立葉變換的積來計算一個修改的陣列;計算所修改的陣列的傅立葉逆變換;根據所修改的陣列的傅立葉逆變換確定一個最大值;相對于所過濾的消息值陣列的二維傅立葉變換來按照90°的倍數旋轉所過濾的基準消息值陣列的二維傅立葉變換;通過逐點地求取所過濾的基準消息值陣列的二維傅立葉變換和所過濾的消息值陣列的二維傅立葉變換的積來計算后續修改的陣列;計算所述后續修改的陣列的傅立葉逆變換;根據所述后續修改的陣列的傅立葉逆變換來確定一個后續的最大值;重復所述旋轉、計算和確定步驟一次或多次;和當一個最大值滿足或超出閾值時,確定所述水印包含一個對應于所述基準水印消息的消息。
51.一種在程序控制下操作的處理設備,所述程序使所述處理設備執行對二維數據幀中的水印進行檢測的方法,所述數據幀包括代表嵌入到內容數據幀中的所述水印的多個數據值,所述方法包括從具有對應于所述水印的至少一些諧波頻率分量的數據幀來計算一個過濾的數據幀,所述諧波頻率分量與對應于所述內容數據的至少一些頻率分量相比被加重了;計算所過濾的數據幀的二維傅立葉變換,以便生成所過濾的數據幀的二維頻譜;從所述二維頻譜的頻率分量中選擇與所述水印相關聯的頻率分量集;和使用所選擇集的一個或多個頻率分量來計算同基準水印相比,與所述水印相關聯的旋轉值、重定大小值和平移值中的至少一個。
52.如權利要求51所述的處理設備,其中所述水印基本上匹配所述基準水印,除了所述旋轉值、重定大小值和平移值中的至少一個之外。所述水印和所述基準水印均包括代表一條消息的各自的多個數據塊;和每個數據塊包括在由所述消息定義的第一和第二圖案的至少一個圖案中所排列的數據值陣列。
53.如權利要求52所述的處理設備,其中第一和第二圖案可以由在笛卡爾坐標系中的數據值的四個象限來定義;并且第一和第三象限具有相等的數據值,而第二和第四象限具有相等的數據值;第一和第二圖案的第一和第三象限的數據值與第二和第四象限的數據值由兩種相反極性數目組成;第一圖案的第一和第三象限的數據值與第二圖案的第一和第三象限的數據值由兩種相反極性數目組成。
54.如權利要求52所述的處理設備,其中所過濾的數據幀包括多個過濾的數據值,每個過濾的數據值相應于所述數據幀的一個數據值并且等于基準數據塊的數據值與所述數據幀的各自數據值集的乘積和。
55.如權利要求54所述的處理設備,其中在所述至少第一和第二圖案的一個圖案中排列所述基準數據塊的數據值,以致當所述數據幀的各自數據值集包括所述水印的數據塊中的一個給定數據塊時,所述過濾值中的一個給定過濾值趨向于峰尖,所述水印的數據塊中的所述一個給定數據塊至少部分地與所述基準數據塊相對準。
56.如權利要求55所述的處理設備,其中當所述水印的數據塊中的一個給定數據塊和所述基準數據塊都包括在第一或第二圖案中所排列的數據值時,所述給定過濾值趨向于正極性峰尖;和當所述水印的數據塊中的一個給定數據塊包括在第一和第二圖案的一個圖案中所排列的數據值并且所述基準數據塊包括在第一和第二圖案的另一個圖案中所排列的數據值時,所述給定過濾值趨向于負極性峰尖。
57.如權利要求56所述的處理設備,其中所述基準數據塊包括在所述數據值陣列內的中心;并且當所述基準數據塊的中心與所述數據幀的一個相應的數據值相對齊時,所述數據幀各自的數據值集是那些被所述基準數據塊覆蓋的數據值。
58.如權利要求54所述的處理設備,其中所述計算所過濾的數據幀的步驟包括為每個過濾值,計算所述基準數據塊的值和所述數據幀的各自值集的乘積和的絕對值。
59.如權利要求51所述的處理設備,其中所述計算所過濾的數據幀的二維傅立葉變換的步驟包括計算二維快速傅立葉變換(FFT),以便生成所過濾的數據幀的二維頻譜。
60.如權利要求51所述的處理設備,其中所述選擇與所述水印相關聯的頻率分量集的步驟包括從所述二維頻譜的頻率分量中選擇對應于所述水印的至少一些諧波頻率分量。
61.如權利要求60所述的處理設備,其中所述至少一些諧波頻率分量包括對應于所述水印的第二諧波頻率分量。
62.如權利要求60所述的處理設備,其中所述計算與所述水印相關聯的旋轉值、重定大小值和平移值中至少一個的步驟包括確定(i)與由所述基準水印定義的那些分量所預期的幾何位置相比較,在對應于所述水印的至少一個所選擇諧波頻率分量的二維傅立葉變換內的幾何位置的一個或多個偏差;或(ii)與由所述基準水印定義的那些分量所預期的相位相比較,在對應于所述水印的至少一個所選擇諧波頻率分量中的一個或多個偏差。
63.如權利要求62所述的處理設備,其中包含二維頻譜頻率分量的區域(i)可以按照x軸和y軸在笛卡兒坐標上用圖形表示;(ii)包括平行于所述x軸的寬度(W);(iii)包括平行于所述y軸的高度(H);和(iv)包括基本上在所述x軸和y軸交點的原點。
64.如權利要求63所述的處理設備,其中所述計算對應于所述水印的旋轉值的步驟包括確定在第一軸和基準軸之間的角度,所述第一軸由基準點和對應于所述水印的至少一個所選擇諧波頻率分量定義,并且所述基準軸由所述基準水印定義。
65.如權利要求64所述的處理設備,其中所述基準軸沿著所述x軸和y軸中的一個。
66.如權利要求65所述的處理設備,其中對應于所述水印的旋轉值基本上與下式成比例arctangent((Fy1*W)/(Fx1*H)),其中Fy1和Fx1分別是對應于所述水印的一個所選擇諧波頻率分量的y軸和x軸坐標。
67.如權利要求66所述的處理設備,其中對應于所述水印的旋轉值基本上等于(180/π)*arctangent((Fy1*W)/(Fx1*H))度。
68.如權利要求64所述的處理設備,其中所述計算對應于所述水印的旋轉值的步驟包括確定在(i)由所述基準點和對應于所述水印的所選擇諧波頻率分量的各自點定義的各自軸,和(ii)由所述基準水印定義的一個或多個基準軸之間的兩個或多個角度;和從所述兩個或多個角度中確定所述旋轉值。
69.如權利要求63所述的處理設備,其中所述計算對應于所述水印重定大小值的步驟包括計算x軸的重定大小值和y軸的重定大小值。
70.如權利要求69所述的處理設備,其中所述計算x軸的重定大小值的步驟包括從所述原點到對應于所述水印的一個所選擇諧波頻率分量計算x軸周期Px;和計算Px與所述基準水印的x軸基準周期Prx的比率,以便獲得所述x軸重定大小值。
71.如權利要求70所述的處理設備,其中所述x軸周期Px基本上等于(H*W)/√((Fx1*H)2+(Fy1*W)2),其中Fx1和Fy1分別是對應于所述水印的一個所選擇諧波頻率分量的x軸和y軸坐標。
72.如權利要求71所述的處理設備,其中所述基準水印包括多個數據塊,每個數據塊包括在行和列中所排列的多個值,在每一行中值的數目等于所述基準水印的x軸基準周期Prx。
73.如權利要求72所述的處理設備,其中對應于所述水印的一個所選擇諧波頻率分量基本上沿著所述x軸,或者基本上會沿著所述x軸,除了所述旋轉值之外。
74.如權利要求69所述的處理設備,其中所述計算y軸重定大小值的步驟包括從所述原點到對應于所述水印的一個所選擇諧波頻率分量計算y軸周期Py;和計算Py與所述基準水印的y軸基準周期Pry的比率,以便獲得所述y軸重定大小值。
75.如權利要求74所述的處理設備,其中所述y軸周期Py基本上等于(H*W)/√((Fx2*H)2+(Fy2*W)2),其中Fx2和Fy2分別是對應于所述水印的一個所選擇諧波頻率分量的x軸和y軸坐標。
76.如權利要求75所述的處理設備,其中所述基準水印包括多個數據塊,每個數據塊包括在行和列中所排列的多個值,在每一列中值的數目等于所述基準水印的y軸基準周期Pry。
77.如權利要求76所述的處理設備,其中對應于所述水印的一個所選擇諧波頻率分量基本上沿著所述y軸,或者基本上會沿著所述y軸,除了所述旋轉值之外。
78.如權利要求63所述的處理設備,其中所述平移值是基于在第一方向上的第一距離和在第二方向上的第二距離的;第一距離與對應于所述水印的一個所選擇諧波頻率分量的相位θ1成比例;和第二距離與對應于所述水印的另一所選擇諧波頻率分量的相位θ2成比例。
79.如權利要求78所述的處理設備,其中第一距離基本上等于(θ1*H*W)/2π*√((Fx1*H)2+(Fy1*W)2),其中Fx1和Fy1分別是對應于所述水印的一個所選擇諧波頻率分量的x軸和y軸坐標;并且第二距離基本上等于(θ2*H*W)/2π*√((Fx2*H)2+(Fy2*W)2),其中Fx2和Fy2分別是對應于所述水印的另一個所選擇諧波頻率分量的x軸和y軸坐標。
80.如權利要求79所述的處理設備,其中第一方向基本上與arctangent((Fy1*W)/(Fx1*H))成比例;并且第二方向基本上與arctangent((Fy2*W)/(Fx2*H))成比例。
81.如權利要求70所述的處理設備,其中第一和第二方向基本上相互垂直。
82.如權利要求52所述的處理設備,其中依照所述水印的旋轉值、重定大小值和平移值中的至少一個,確定在對應于所述水印至少一些數據塊的數據幀內的多個位置。
83.如權利要求82所述的處理設備,其中所述多個位置對應于所述水印的數據塊的各自中心。
84.如權利要求82所述的處理設備,其中所述方法還包括確定一個過濾的消息值陣列,每個過濾的消息值相應于所述水印的至少一些數據塊中的一個,并且等于基準數據塊的數據值和所述水印的至少一些數據塊中的一個的各自數據值集的乘積和。
85.如權利要求84所述的處理設備,其中所述基準數據塊包括在所述數據值陣列內的中心;并且當所述基準數據塊的中心與所述水印的至少一些數據塊中的一個的各自位置相對齊時,所述水印的至少一些數據塊中的一個的各自數據值集是那些被所述基準數據塊覆蓋的數據值。
86.如權利要求85所述的處理設備,其中所述方法還包括如下步驟中的至少一個步驟(i)在求取乘積和之前,按照一個與所述旋轉值成比例的量來旋轉所述基準數據塊;和(ii)在求取乘積和之前,按照一個或多個與所述重定大小值成比例的量來重定所述基準數據塊的大小。
87.如權利要求84所述的處理設備,其中所述方法還包括確定一個過濾的基準消息值陣列,每個過濾的消息值相應于所述基準水印的至少一些數據塊中的一個,并且等于所述基準數據塊的數據值和所述水印的至少一些數據塊中的一個的數據值的乘積和。
88.如權利要求87所述的處理設備,其中所述基準數據塊包括在所述數據值陣列內的中心;并且當所述基準數據塊的中心與所述水印的至少一些數據塊中的一個的中心相對齊時,所述基準水印的至少一些數據塊中的一個的數據值是那些被所述基準數據塊覆蓋的數據值。
89.如權利要求87所述的處理設備,其中所述過濾的基準消息值陣列被預先確定。
90.如權利要求89所述的處理設備,其中所述方法還包括計算所過濾的消息值陣列和所過濾的基準消息值陣列的乘積和。
91.如權利要求90所述的處理設備,其中所述方法還包括當所過濾的基準消息值陣列和所過濾的基準消息值陣列的乘積和滿足或超出閾值時,確定所述水印包含一個對應于基準水印消息的消息。
92.如權利要求91所述的處理設備,其中所述方法還包括確定一個過濾的基準消息值陣列集,每個所過濾的基準消息值陣列與不同的基準水印相關聯;計算所過濾的消息值陣列和每個所過濾的基準消息值陣列的乘積和;和當所過濾的消息值陣列和與一個基準水印相關聯的所過濾的基準消息值陣列的乘積和滿足或超出閾值時,確定所述水印包含一個對應于基準水印消息的消息。
93.如權利要求90所述的處理設備,其中所述方法還包括相對于所過濾的基準消息值陣列按照在水平方向和垂直方向中的至少一個方向上的至少一個消息值位置來平移所過濾的消息值陣列;計算所過濾的消息值陣列和所過濾的基準消息值陣列的乘積和;重復所述平移和計算步驟一次或多次;和當所述乘積和計算中的一個乘積和計算滿足或超出閾值時,確定所述水印包含一個對應于所述基準水印消息的消息。
94.如權利要求90所述的處理設備,其中所述方法還包括相對于所過濾的基準消息值陣列來按照90°的倍數旋轉所過濾的消息值陣列;計算所過濾的消息值陣列和所過濾的基準消息值陣列的乘積和;重復所述旋轉和計算步驟一次或多次;和當所述乘積和計算中的一個乘積和計算滿足或超出閾值時,確定所述水印包含一個對應于所述基準水印消息的消息。
95.如權利要求87所述的處理設備,其中所述方法還包括獲得所過濾的基準消息值陣列的二維傅立葉變換;計算所過濾的消息值陣列的二維傅立葉變換;通過逐點地求取所過濾的基準消息值陣列的二維傅立葉變換和所過濾的消息值陣列的二維傅立葉變換的積來計算一個修改的陣列;計算所修改的陣列的傅立葉逆變換;根據所修改的陣列的傅立葉逆變換確定一個最大值;相對于所過濾的消息值陣列的二維傅立葉變換來按照90°的倍數旋轉所過濾的基準消息值陣列的二維傅立葉變換;通過逐點地求取所過濾的基準消息值陣列的二維傅立葉變換和所過濾的消息值陣列的二維傅立葉變換的積來計算后續修改的陣列;計算所述后續修改的陣列的傅立葉逆變換;根據所述后續修改的陣列的傅立葉逆變換來確定一個后續的最大值;重復所述旋轉、計算和確定步驟一次或多次;和當一個最大值滿足或超出閾值時,確定所述水印包含一個對應于所述基準水印消息的消息。
96.一種包含程序的存儲介質,所述程序用于使處理設備執行對二維數據幀中的水印進行檢測的方法,所述數據幀包括代表嵌入到內容數據幀中的所述水印的多個數據值,所述方法包括從具有對應于所述水印的至少一些諧波頻率分量的數據幀來計算一個過濾的數據幀,所述諧波頻率分量與對應于所述內容數據的至少一些頻率分量相比被加重了。計算所過濾的數據幀的二維傅立葉變換,以便生成所過濾的數據幀的二維頻譜;從所述二維頻譜的頻率分量中選擇與所述水印相關聯的頻率分量集;和使用所選擇集的一個或多個頻率分量來計算同基準水印相比,與所述水印相關聯的旋轉值、重定大小值和平移值中的至少一個。
97.如權利要求96所述的存儲介質,其中所述水印基本上匹配所述基準水印,除了所述旋轉值、重定大小值和平移值中的至少一個之外。所述水印和所述基準水印包括代表一條消息的各自的多個數據塊;和每個數據塊包括在由所述消息定義的第一和第二圖案的至少一個圖案中所排列的數據值陣列。
98.如權利要求97所述的存儲介質,其中其中可以由在笛卡爾坐標系中數據值的四個象限定義第一和第二圖案;并且第一和第三象限具有相等的數據值而第二和第四象限具有相等的數據值。第一和第二圖案的第一和第三象限的數據值與第二和第四象限的數據值由兩種相反極性數目組成;和第一圖案的第一和第三象限的數據值與第二圖案的第一和第三象限的數據值由兩種相反極性數目組成。
99.如權利要求97所述的存儲介質,其中所過濾的數據幀包括多個過濾的數據值,每個過濾的數據值相應于所述數據幀的一個數據值并且等于基準數據塊的數據值與所述數據幀的各自數據值集的乘積和。
100.如權利要求99所述的存儲介質,其中在所述至少第一和第二圖案的一個圖案中排列所述基準數據塊的數據值,以致當所述數據幀的各自數據值集包括所述水印的數據塊中的一個給定數據塊時,所述過濾值中的一個給定過濾值趨向于峰尖,所述水印的數據塊中的所述一個給定數據塊至少部分地與所述基準數據塊相對準。
101.如權利要求100所述的存儲介質,其中當所述水印的數據塊中的一個給定數據塊和所述基準數據塊都包括在第一或第二圖案中所排列的數據值時,所述給定過濾值趨向于正極性峰尖;和當所述水印的數據塊中的一個給定數據塊包括在第一和第二圖案的一個圖案中所排列的數據值并且所述基準數據塊包括在第一和第二圖案的另一個圖案中所排列的數據值時,所述過濾值中的一個給定值趨向于負極性峰尖。
102.如權利要求101所述的存儲介質,其中所述基準數據塊包括在所述數據值陣列內的中心;并且當所述基準數據塊的中心與所述數據幀相應的一個數據值相對齊時,所述數據幀各自的數據值集是那些被所述基準數據塊覆蓋的數據值。
103.如權利要求99所述的存儲介質,其中所述計算所過濾的數據幀的步驟包括為每個過濾值,計算所述基準數據塊的值和所述數據幀的各自值集的乘積和的絕對值。
104.如權利要求96所述的存儲介質,其中所述計算所過濾的數據幀的二維傅立葉變換的步驟包括計算二維快速傅立葉變換(FFT)以便生成所過濾的數據幀的二維頻譜。
105.如權利要求96所述的存儲介質,其中所述選擇與所述水印相關聯的頻率分量集的步驟包括從所述二維頻譜的頻率分量中選擇對應于所述水印的至少一些諧波頻率分量。
106.如權利要求105所述的存儲介質,其中所述至少一些諧波頻率分量包括對應于所述水印的第二諧波頻率分量。
107.如權利要求105所述的存儲介質,其中所述計算與所述水印相關聯的旋轉值、重定大小值和平移值中至少一個的步驟包括確定(i)與由所述基準水印定義的那些分量所預期的幾何位置相比較,在對應于所述水印的至少一個所選擇諧波頻率分量的二維傅立葉變換內的幾何位置的一個或多個偏差;或(ii)與由所述基準水印定義的那些分量所預期的相位相比較,在對應于所述水印的至少一個所選擇諧波頻率分量中的一個或多個偏差。
108.如權利要求107所述的存儲介質,其中包含二維頻譜頻率分量的區域(i)可以按照x軸和y軸在笛卡兒坐標上用圖形表示;(ii)包括平行于所述x軸的寬度(W);(iii)包括平行于所述y軸的高度(H);和(iv)包括基本上在所述x軸和y軸交點的原點。
109.如權利要求108所述的存儲介質,其中所述計算對應于所述水印的旋轉值的步驟包括確定在第一軸和基準軸之間的角度,所述第一軸由基準點和對應于所述水印的至少一個所選擇諧波頻率分量定義,并且所述基準軸由所述基準水印定義。
110.如權利要求109所述的存儲介質,其中所述基準軸沿著所述x軸和y軸中的一個。
111.如權利要求110所述的存儲介質,其中對應于所述水印的旋轉值基本上與下式成比例arctangent((Fy1*W)/(Fx1*H)),其中Fy1和Fx1分別是對應于所述水印的一個所選擇諧波頻率分量的y軸和x軸坐標。
112.如權利要求111所述的存儲介質,其中對應于所述水印的旋轉值基本上等于(180/π)*arctangent((Fy1*W)/(Fx1*H))度。
113.如權利要求109所述的存儲介質,其中所述計算對應于所述水印的旋轉值的步驟包括確定在(i)由所述基準點和對應于所述水印的所選擇諧波頻率分量的各自點定義的各自軸,和(ii)由所述基準水印定義的一個或多個基準軸之間的兩個或多個角度;和從所述兩個或多個角度中確定所述旋轉值。
114.如權利要求108所述的存儲介質,其中所述計算對應于所述水印重定大小值的步驟包括計算x軸重定大小值和y軸重定大小值。
115.如權利要求114所述的存儲介質,其中所述計算x軸重定大小值的步驟包括從所述原點到對應于所述水印的一個所選擇諧波頻率分量計算x軸周期Px;和計算Px與所述基準水印的x軸基準周期Prx的比率,以便獲得所述x軸重定大小值。
116.如權利要求115所述的存儲介質,其中所述x軸周期Px基本上等于(H*W)/√((Fx1*H)2+(Fy1*W)2),其中Fx1和Fy1分別是對應于所述水印的一個所選擇諧波頻率分量的x軸和y軸坐標。
117.如權利要求116所述的存儲介質,其中所述基準水印包括多個數據塊,每個數據塊包括在行和列中所排列的多個值,在每一行中值值的數目等于所述基準水印的x軸基準周期Prx。
118.如權利要求117所述的存儲介質,其中對應于所述水印的一個所選擇諧波頻率分量基本上沿著所述x軸或者基本上會沿著所述x軸,除了所述旋轉值之外。
119.如權利要求114所述的存儲介質,其中所述計算y軸重定大小值的步驟包括從所述原點到對應于所述水印的一個所選擇諧波頻率分量計算y軸周期Py;和計算Py與所述基準水印的y軸基準周期Pry的比率,以便獲得所述y軸重定大小值。
120.如權利要求119所述的存儲介質,其中所述y軸周期Py基本上等于(H*W)/√((Fx2*H)2+(Fy2*W)2),其中Fx2和Fy2分別是對應于所述水印的一個所選擇諧波頻率分量的x軸和y軸坐標。
121.如權利要求120所述的存儲介質,其中所述基準水印包括多個數據塊,每個數據塊包括在行和列中所排列的多個值,在每一列中值的數目等于所述基準水印的y軸基準周期Pry。
122.如權利要求121所述的存儲介質,其中對應于所述水印的一個所選擇諧波頻率分量基本上沿著所述y軸,或者基本上會沿著所述y軸,除了所述旋轉值之外。
123.如權利要求108所述的存儲介質,其中所述平移值是基于在第一方向上的第一距離和在第二方向上的第二距離的;第一距離與對應于所述水印的一個所選擇諧波頻率分量的相位θ1成比例;和第二距離與對應于所述水印的另一所選擇諧波頻率分量的相位θ2成比例。
124.如權利要求123所述的存儲介質,其中第一距離基本上等于(θ1*H*W)/2π*√((Fx1*H)2+(Fy1*W)2),其中Fx1和Fy1分別是對應于所述水印的一個所選擇諧波頻率分量的x軸和y軸坐標;并且第二距離基本上等于(θ2*H*W)/2π*√((Fx2*H)2+(Fy2*W)2),其中Fx2和Fy2分別是對應于所述水印的另一個所選擇諧波頻率分量的x軸和y軸坐標。
125.如權利要求124所述的存儲介質,其中第一方向基本上與arctangent((Fy1*W)/(Fx1*H))成比例;并且第二方向基本上與arctangent((Fy2*W)/(Fx2*H))成比例。
126.如權利要求123所述的存儲介質,其中第一和第二方向基本上相互垂直。
127.如權利要求97所述的存儲介質,其中所述方法還包括依照所述水印的旋轉值、重定大小值和平移值中的至少一個,確定在對應于所述水印至少一些數據塊的數據幀內的多個位置。
128.如權利要求127所述的存儲介質,其中多個位置對應于所述水印的數據塊的各自中心。
129.如權利要求127所述的存儲介質,其中所述方法還包括確定一個過濾的消息值陣列,每個過濾的消息值相應于所述水印的至少一些數據塊中的一個,并且等于基準數據塊的數據值和所述水印的至少一些數據塊中的一個的各自數據值集的乘積和。
130.如權利要求129所述的存儲介質,其中所述基準數據塊包括在所述數據值陣列內的中心;并且當所述基準數據塊的中心與所述水印的至少一些數據塊中的一個的各自位置相對齊時,所述水印的至少一些數據塊中的一個的各自數據值集是那些被所述基準數據塊覆蓋的數據值。
131.如權利要求130所述的存儲介質,其中所述方法還包括如下步驟中的至少一個步驟(i)在求取乘積和之前,按照一個與所述旋轉值成比例的量來旋轉所述基準數據塊;和(ii)在求取乘積和之前,按照一個或多個與所述重定大小值成比例的量來重定所述基準數據塊的大小。
132.如權利要求129所述的存儲介質,其中所述方法還包括確定一個過濾的基準消息值陣列,每個過濾的消息值相應于所述基準水印的至少一些數據塊中的一個,并且等于所述基準數據塊的數據值和所述水印至少一些數據塊中的一個的數據值的乘積和。
133.如權利要求132所述的存儲介質,其中所述基準數據塊包括在所述數據值陣列內的中心;并且當所述基準數據塊的中心與所述基準水印的至少一些數據塊中的一個的中心相對齊時,所述基準水印的至少一些數據塊中的一個的數據值是那些被所述基準數據塊覆蓋的數據值。
134.如權利要求132所述的存儲介質,其中所述過濾的基準消息值陣列被預先確定。
135.如權利要求134所述的存儲介質,其中所述方法還包括計算所過濾的消息值陣列和所過濾的基準消息值陣列的乘積和。
136.如權利要求135所述的存儲介質,其中所述方法還包括當所過濾的消息值陣列和所過濾的基準消息值陣列的乘積和滿足或超出閾值時,確定所述水印包含一個對應于基準水印消息的消息。
137.如權利要求136所述的存儲介質,其中所述方法還包括確定一個過濾的基準消息值陣列集,每個所過濾的基準消息值陣列與不同的基準水印相關聯;計算所過濾的消息值陣列和每個所過濾的基準消息值陣列的乘積和;和當所過濾的消息值陣列和與一個基準水印相關聯的所過濾的基準消息值陣列的乘積和滿足或超出閾值時,確定所述水印包含一個對應于基準水印消息的消息。
138.如權利要求135所述的存儲介質,其中所述方法還包括相對于所過濾的基準消息值陣列按照在水平方向和垂直方向中的至少一個方向上的至少一個消息值位置來平移所過濾的消息值陣列;計算所過濾的消息值陣列和所過濾的基準消息值陣列的乘積和;重復所述平移和計算步驟一次或多次;和當所述乘積和計算中的一個乘積和計算滿足或超出閾值時,確定所述水印包含一個對應于所述基準水印消息的消息。
139.如權利要求135所述的存儲介質,其中所述方法還包括相對于所過濾的基準消息值陣列來按照90°的倍數旋轉所過濾的消息值陣列;計算所過濾的消息值陣列和所過濾的基準消息值陣列的乘積和;重復所述旋轉和計算步驟一次或多次;和當所述乘積和計算中的一個乘積和計算滿足或超出閾值時,確定所述水印包含一個對應于所述基準水印消息的消息。
140.如權利要求132所述的存儲介質,其中所述方法還包括獲得所過濾的基準消息值陣列的二維傅立葉變換;計算所過濾的消息值陣列的二維傅立葉變換;通過逐點地求取所過濾的基準消息值陣列的二維傅立葉變換和所過濾的消息值陣列的二維傅立葉變換的積來計算一個修改的陣列;計算所修改的陣列的傅立葉逆變換;根據所修改的陣列的傅立葉逆變換確定一個最大值;相對于所過濾的消息值陣列的二維傅立葉變換來按照90°的倍數旋轉所過濾的基準消息值陣列的二維傅立葉變換;通過逐點地求取所過濾的基準消息值陣列的二維傅立葉變換和所過濾的消息值陣列的二維傅立葉變換的積來計算后續修改的陣列;計算所述后續修改的陣列的傅立葉逆變換;根據所述后續修改的陣列的傅立葉逆變換來確定一個后續的最大值;重復所述旋轉、計算和確定步驟一次或多次;和當一個最大值滿足或超出閾值時,確定所述水印包含一個對應于所述基準水印消息的消息。
全文摘要
一種用于對在二維數據幀(170)中的水印(100)進行檢測的方法和/或設備。所述方法包括步驟從具有對應于所述水印的至少一些諧波頻率分量計算一個過濾的數據幀(200);計算所述過濾幀的二維傅立葉變換(204);選擇(206)所述二維頻譜的頻率分量集;和使用所選擇集的一個或多個頻率分量來計算同基準水印相比,與所述水印相關聯的旋轉值、重定大小值和平移值中的至少一個。
文檔編號H04N1/387GK1659579SQ03812898
公開日2005年8月24日 申請日期2003年6月4日 優先權日2002年6月5日
發明者P·D·溫德特 申請人:索尼電子有限公司