保護dsp算法的製作方法
2023-05-16 01:13:56 1
專利名稱:保護dsp算法的製作方法
技術領域:
本發明涉及保護數位訊號處理函數的軟體實現的方法。本發明還涉及用於使處理器執行數位訊號處理函數的電腦程式產品和用於執行所述軟體的處理器。
背景技術:
諸如電視、機頂盒、記錄裝置、MP3播放器等消費電子裝置和計算機裝置的裝置的很多功能都是通過裝載了執行特定信號處理函數的程序的處理器執行的。典型地,所述處理器可以是數位訊號處理器(DSP),但是也可以是ARM處理器等微控制器或者PC等當中採用的通用處理器。所述信號處理函數包括濾波、編碼/解碼、壓縮、解壓等。確定和實現這些函數需要大量的工作和受到高度培訓的人。因此,希望對這些工作予以保護。這些函數的軟體實現的版權保護只能起到有限的作用。在實際系統中,往往只採用信號處理函數庫的某些部分,並將其與特定應用軟體結合。這導致了難以確定某一函數的核心方面是否遭到了拷貝。例如,採用數字籤名對整個軟體模塊打上水印是一種已知的做法。但是,這樣的技術無法針對從所述模塊「拷貝」某項函數(例如濾波器)的人提供保護。當在特定的許可條件下能夠獲得原始碼時,或者通過反向工程獲得了原始碼時,就可能存在這樣的拷貝。
發明內容
本發明的目的在於提供一種保護信號處理函數的軟體實現中包含的技術內容的方法。另一目的在於提供一種受保護的具有信號處理函數的軟體和採用所述軟體的處理器。
為了實現本發明的目的,一種保護具有數位訊號處理函數的軟體實現的方法包括選擇信號處理函數所採用的和/或用於設計信號處理函數的參數的子集;以及在所選的參數內嵌入水印。
本發明人發現能夠對信號處理函數的參數打水印。典型地,以超過足以運行所述算法的最低需求的位數,採用存儲單元存儲信號處理函數的參數。這為採用水印擾動所述參數提供了空間。帶有水印的參數可以是信號處理函數實際採用的參數。帶有水印的參數也可以是信號處理函數的設計參數,例如,影響所述函數的設計的參數。在這種情況下,所述設計參數優選也存在於實際的信號處理函數中(簡化對侵權的檢測)。或者,所述設計參數影響實際信號處理函數中存在的一個或多個其他參數。
給參數打上水印能夠實現對拷貝的檢測,即使沒有盜用整個軟體模塊亦如此。其還能夠探測到對實際代碼的部分進行了重新編程但是拷貝了所述參數的情況。優選選擇代表獨有的技術(即尚未被公眾所知的技術)的參數。
根據從屬權利要求2的措施,所選的參數是信號處理函數所採用的參數,選擇參數子集的步驟包括選擇能夠在基本不影響信號處理函數的質量的情況下對其加以擾動的參數。所述方法還包括在所選的能夠在基本不影響信號處理函數的質量的情況下加以擾動的參數中選擇一些最低有效位;以及將水印嵌入到在所選參數中選擇的最低有效位中。
典型地,以超過足以運行所述算法的最低需求的位數,採用存儲單元存儲信號處理函數的參數。通常可以在不改變所述信號處理函數的可覺察行為的情況下改變這些參數的一些量化位(最低有效位,least significant bits)。之後,選擇所述參數中的一個或多個,並在能夠改變的某些(或全部)位單元內嵌入水印。這使得第三方能夠對這些參數的再次使用進行檢測。所述水印可以是固定的,並且可以通過任何適當的方式與在所選參數中選出的最低有效位組合(通過逐位XOR運算)。通過這種方式嵌入水印是一種能夠在不影響信號處理函數的質量的情況下保護的參數的簡單方法。可以在對所述函數進行充分設計之後,基於所述信號處理函數的編程代碼執行所述嵌入。
根據從屬權利要求3的措施,所述方法包括根據具有嵌入的水印的所選參數設計信號處理函數。在該實施例中,首先嵌入水印,之後針對具有嵌入的水印的參數設計(例如,優化)所述函數。通過這種方式,重新設計的函數能夠補充由水印導致的擾動。這樣可以實現保持更高的函數質量和/或允許將更多的位用於水印,因為通過重新設計(部分)補償了水印的影響。還應當注意,在這種方法中,更加難以去除水印。在根據權利要求2所述的實施例中,可以通過簡單地去除所包含的最低有效位(例如截取參數)而去除水印。在根據權利要求3所述的實施例中,通常能夠將更多的位用於水印,並且要想通過截取充分去除水印就必將影響質量。
所選的參數優選也存在於所述函數自身當中(即所述參數是所述函數採用的參數)。倘若如此,侵權檢測就會變得簡明。如果需要,所述參數可以是決定/影響所述函數採用的其他參數的設計參數。在後一類別的參數內嵌入水印仍然會影響其他參數,因為所述水印可能不會直觀地處於這些參數內。因而證明侵權也更加困難。
根據從屬權利要求4所述的措施,基於所選的參數動態確定水印。應當認識到,可以採用所有的這些位或僅採用從其中選出的位作為生成水印的算法的輸入。可以採用任何適當的水印技術。動態確定的水印更加難以破解,如果破解了,也將只影響恰恰具有相同的所述參數的程序部分。
根據從屬權利要求5所述的措施,在所選的參數上計算數字籤名。所述籤名替換了在所選參數中選擇的位。這是一種簡單、可靠的技術。
根據從屬權利要求6所述的措施,在所述參數的所有位上計算所述籤名。通過這種方式,能夠取得足夠的熵,以獲得可靠的水印。
根據從屬權利要求7所述的措施,嵌入水印包括通過所生成的籤名中的相應的位替換在所選參數中選出的最低有效位。這是一種簡單的嵌入水印的方式。
根據從屬權利要求8所述的措施,使所選參數中未選的位保持不變。通過這種方式,更易於檢測採用水印進行過修改的實際參數。如果第三方明顯改動了非法拷貝的程序的結構並且可能還改變了某些最低有效位(但不是所有的位)以掩蓋其拷貝的事實,那麼這種方式尤為有效。
從屬權利要求9描述了用於添加水印的良好的候選參數。
根據從屬權利要求10所述的措施,改變函數逼近的邊界點。通常通過將整個區間劃分為子區間並採用逐子區間的良好逼近而從數值上逼近所述函數。在將所述區間劃分為子區間的邊界點的選擇方面存在一定的容限。因而其是採用水印加以改變的良好的候選項。
通過下文所述的實施例以及參考其做出的闡釋,本發明的這些和其他方面將變得顯而易見。
在附圖中圖1A和B示出了其中可以採用本發明的系統的方框圖;圖2A和B示出了根據本發明的方法的流程圖;圖3示出了所述方法的另一實施例;圖4示出了形成由確定水印的位構成的塊;以及圖5示出了函數逼近。
具體實施例方式
圖1A和1B示出了其中可以採用本發明的系統的方框圖。所述系統包括處理數位訊號的裝置160。所述信號優選是帶有技術特徵的信號,例如音頻信號(包括語音)、視頻信號(包括圖形)和表示壓強、溫度、電流、電壓等物理量的其他信號。裝置160採用處理器150處理此類信號。處理器150可以是任何適當類型的處理器,例如最適合處理信號流的數位訊號處理器(DSP),但是其也可以是諸如ARM處理器的微控制器或在PC等當中採用的通用處理器。由處理器150執行的信號處理函數可以包括但不限於濾波、編碼/解碼、壓縮/解壓等。裝置160還包括存儲處理器150執行的程序的指令的程序存儲器140。可以採用包括ROM、RAM、閃速存儲器等的任何適當的程序存儲器。程序存儲器140可以與處理器150獨立或嵌入其內。裝置160可以是任何類型的執行信號處理函數的裝置,其包括但不限於處理音頻和/或視頻的消費電子裝置或個人計算機,或者控制化學過程等工業過程的裝置。
所述系統還包括執行根據本發明的方法的裝置100。在下文中將參考圖2A和2B對所述方法予以更為詳細的說明。裝置100能夠(通常以軟體的形式)產生信號處理函數,其中,向信號處理函數的參數內嵌入了水印(watermark)。出於這一目的,裝置100包括用於選擇信號處理函數的參數的子集的機構110和用於向所選的參數內嵌入水印的機構114。可以通過兩種方式採用本發明,其取決於嵌入水印發生在所述函數的設計之前還是之後。圖1A和2A示出了在設計了所述信號處理函數之後添加水印的情況。在本文中,「設計所述函數之後」是指已經完成了對所述函數的充分設計(即,相對於本發明預先確定的),或者,即便不是這樣,對所述函數的任何修改都不會影響所選的參數(即,所述函數相對於所選的參數是預先確定的,但是相對於其他參數仍然是可重新設計/修改的)。
可以以任何適當的方式實現裝置100。優選在諸如工作站或個人計算機的計算機上實現裝置100,其中,處理器在適當程序的控制下執行所描述的函數。因而,裝載了所述程序的處理器可以執行機構110、112和114的任何或全部函數。可以從諸如硬碟的存儲器120內檢索所述參數。例如,可以由設計所述信號處理函數的人單獨存儲所述參數,也可以將所述參數嵌入到所述信號處理函數中。在後一種情況下,機構110和/或112不得不從所述函數中檢索所述參數。所述函數的設計者優選提供了能夠實現檢索的信息(例如,以確認適當參數的尋址信息的形式)。可以以任何適當的方式,例如在存儲介質130上或通過Internet提供帶有嵌入的水印的信號處理函數,從而使之能夠存儲在程序存儲器140中(例如,由裝置160的製造者執行)。
除此之外,用於嵌入水印的適當參數可以是表示下述內容的參數數位訊號濾波器的係數;
閾值;代價函數中的代價;函數逼近的係數;或者數字圖形的逼近的控制點。
本領域技術人員能夠容易地選擇所述數位訊號處理函數中的其他適當的參數。
所述系統還包括用於檢查裝置160是否使用了具有嵌入的水印的信號處理函數的裝置170。可以以任何適當的方式執行所述檢查。例如,可以將使用所述函數的實際裝置的程序存儲器140中的參數與裝置100產生的參數之間直接比較。
在圖1A和2A所示的第一實施例中,所述參數已經以將在信號處理函數的設計過程中得到使用的形式存在了。可能並不是所有的這些參數都適於加水印。出於這一目的,機構110選擇那些能夠在基本不影響信號處理函數的質量的情況下加以擾動的參數。實際上,系統的設計者可以編輯一個能夠修改的參數列表。適當的候選參數是那些具有與函數的運行不相關的至少一個最低有效位的參數。裝置100還包括機構112,其在所述的能夠在基本不影響信號處理函數的質量的情況下加以擾動的所選參數內選擇若干最低有效位。與上文所述類似,設計者可以指出每一參數中不能受到水印影響的最為重要的位的最低數量。之後向機構112提供可以從存儲參數的目標平臺上獲得的所述位數(例如32位或64位),並且機構112能夠基於這一信息選擇所述目標平臺可用的最低有效位的數量。在實踐中,可以採用針對不同參數寬度的DSP/微控制器。某些處理器甚至支持各種不同的格式。對於定點參數而言,典型的格式是16、20、24或32位,對於浮點參數,典型的格式是32、64或80。
裝置100採用機構114在所選參數中選出的最低有效位中嵌入水印。
圖2A示出了根據本發明的保護數位訊號處理函數的軟體實現的方法的第一實施例的細節。所述方法包括選擇步驟210,能夠在基本不影響信號處理函數的質量的情況下對其加以擾動的信號處理函數的參數的子集。如上所述,所述函數的設計者可以已經執行了對適當參數的預先選擇。在這種情況下,所述選擇步驟可以簡單地涉及選用所有預選擇參數或在預選擇參數內做進一步的選擇。所選的參數是那些能夠對其做出一定程度的改變而不影響信號處理函數的可察覺性態的參數(例如,一些落在量化水平之下的最低有效位)。在步驟220中,在所選參數中選擇一些能夠在基本不影響信號處理函數的質量的情況下加以擾動的最低有效位(這也包括可以對效果進行補償的情況)。在將要對n位進行「嵌入水印」的情況下,所選擇的位優選是n個最低有效位。但是,也可以對最低有效位進行選擇,並將所述選擇看作水印的一部分。例如,如果可以在不影響質量的情況下對m位加以改變(m>n),那麼可以在(例如)密鑰的控制下從所述m位中偽隨機地選擇n位。可以以任何適當的方式,例如模擬、理論分析等確定可以加以擾動的位數。
在步驟230中,將水印嵌入到在所選參數中選擇的最低有效位中。所述水印可以是固定的、預定水印。也可以動態創建水印,在下文中將對其予以更為詳細的說明。可以通過任何適當的方式嵌入水印。例如,可以通過逐位XOR運算將水印與在所選參數中選定的最低有效位組合。所述水印還可以簡單地替換這些位(覆蓋)。或者,可以在密鑰的控制下對在所選參數中選出的最低有效位加密,其中,所述水印為密鑰。在實施例中,並不是對所有能夠修改的位都進行實際修改;以未修改的形式保留一個或多個所述位。這使得當所述參數在裝置160中變得混合/混亂,從而使確認軟體的非法使用更加困難的情況下,裝置170能夠更容易地在160中對所述參數定位。如果某些位未被修改,那麼裝置170能夠基於這些位進行搜索。一個額外的優點在於可以將其視作更強有力的司法程序證據。
在圖1B和圖2B所示的第二實施例中,採用機構110選擇用於設計所述信號處理函數並且適於加水印的參數。如前所述,設計者可以編輯備選項列表,從所述列表中做選擇。由於所述參數是在設計函數之前選擇的,因而對可以採用的位數的選擇通常就不是那麼嚴格了。仍然採用附圖標記112表示選擇位的機構。就前述實施例而言,採用機構114在所選的機構內嵌入水印。所述參數可以與前述實施例中描述的相同。但是,也可以採用僅在設計過程中採用的,並且所述函數所採用的參數以其為基礎的參數。例如,如果必須設計一種截止頻率為12kHz的低通數字濾波器(即輸入設計參數為12kHz),那麼可以對這一設計參數加水印(例如,得到值為12.1987654kHz的加過水印的參數,其中0.1987654為水印)。這一設計參數自身並不是實際設計的濾波器中存在的參數(即實際濾波器係數)。但是,有可能採用實際濾波器係數,並由這些係數在數值上計算濾波器的截止頻率。這樣將恢復能夠實現拷貝探測的0.1987654水印的大部分。
具體而言,第二實施例意在用於這樣一種情況,其中,在可能影響信號處理函數的執行的參數(即位於量化水平之上)內嵌入水印,但是能夠對這種影響做出補償(例如,通過另一參數調整所述函數)。在下文中將針對函數逼近更為詳細地描述後一情況的例子。因而,兩個實施例的主要區別在於,對於第一實施例,未針對嵌入的水印優化所述信號處理函數(因而,嵌入能夠發生在所述函數的設計之後),而對於第二實施例,則針對嵌入的水印優化所述信號處理函數(因而,嵌入發生在所述函數的設計之前)。因此,在圖1B中示出了用於設計所述函數的機構116,2B示出了設計所述函數的步驟250。在第二實施例所述的方法中,優選通過設計工具在設計之前或設計過程中添加水印。在這種方式當中,添加水印的過程對所設計(計算)的參數中的很多位(通常為所有的位)造成了影響。因而不易於在保持質量的同時改變所述參數(簡單地截取不會完全去除水印)。
在所述方法的優選實施例中(適用於上述的兩種實施例),在圖3所示的步驟320中,根據與所選參數的相關性動態確定所述水印。可以採用很多類型的相關性。例如,所述水印可以取決於所有選定參數的所有位,所述水印可以只取決於所選參數中的選定位,所述水印可以只取決於所選參數中的未選定位等。每種方法都具有自身的優點。例如,採用所有位提高了熵。採用未選位的優點在於水印僅取決於未受改變的因而高度可見的位。這可能有助於證明添加了水印的那些參數。採用選定的位的優點在於,在通過水印簡單地覆蓋這些位的情況下,這些位實際上是貢獻給水印的。優選在步驟320中採用密碼技術動態計算所述水印。可以採用任何適當的技術。
圖3還示出了另一實施例,其中,首先在步驟310中形成位塊。這一位塊包括每一所選參數的至少一個位。之後,在預定密鑰的控制下,通過計算所形成的塊的數字籤名而完成步驟320中所示的水印的計算。圖4A示出了在示範性參數410、420和430中,採用編號為b0到b7的相應8個最低有效位(LSB)形成24位的塊440。如上所述,塊440同樣可以由其他選定位形成。採用參數的連續位能夠簡明地形成所述塊。但是,也可以根據需要做出其他選擇,例如在密鑰的控制下做偽隨機選擇。圖4B示出了另一實施例,其中,塊440基本包括所選的參數410、420和430的所有位。
接下來,將舉出一個例子,其中,在25個32位浮點參數內嵌入水印。所述參數被示為五組(filt1、filt2 SECTION1、filt2 SECTION2、filt3 SECTION1、filt3 SECTION2),每組具有五個參數(A0、A1、A2、B1、B2)。在這一例子中,所述參數具有的值為static BIQUAD_Coefs filt1[1*5]={8.93973493820715E-0001f,/*A0*/-1.78794698764143E+0000f,/*A1*/8.93973493820715E-0001f,/*A2*/-1.78791066853493E+000f,/*B1*/8.87983306747928E-0001f/*B2*/};static BIQUAD_Coefs filt2[2*5]={/**SECTION 1 for Floating Point 32-bit IIR library″SS″*/3.08440265117571E-0008f,/*A0*/2.16880542388767E-0008f,/*A1*/3.08440266659157E-0008f,/*A2*/-1.85565557939837E+0000f,/*B1*/8.56229364078828E-0001f/*B2*//**SECTION 2 for Floating Point 32-bit IIR library″SS″*/1.00000000000000E+0000f,/*A0*/
2.99999994169253E+0000f,/*A1*/7.99999992604188E-0001f,/*A2*/-1.88105292049614E+0000f,/*B1*/8.81634156692019E-0001f/*B2*/};static BIQUAD_Coefs filt3[2*5]={/**SECTION 1 for Floating Point 32-bit IIR library″SS″*/3.78857742794282E-0005f,/*A0*/4.57715485588563E-0005f,/*A1*/3.78857742794282E-0005f,/*A2*/-1.89193814821509E+0000f,/*B1*/8.92366735223261E-0001f,/*B2*//**SECTION 2 for Floating Point 32-bit IIR library″SS″*/1.00000000000000E+0000f,/*A0*/-4.00000000000000E+0000f,/*A1*/1.00000000000000E+0000f,/*A2*/-2.99581991517854E+0000f,/*B1*/8.95940882922500E-0001f/*B2*/};在十六進位表示法中,所述32位含有下述值(按組示出)0x3f64db72 0xbfe4db72 0x3f64db72 0xbfe4da42 0x3f6352e00x3304795e 0x32ba4c89 0x3304795e 0xbfed861f 0x3f5b31d90x3f800000 0x40400000 0x3f4ccccd 0xbff0c658 0x3f61b2c70x381ee78a 0x383ffad3 0x381ee78a 0xbff22b07 0x3f6472250x3f800000 0xc0800000 0x3f800000 0xc03fbb83 0x3f655c62在這一例子中,原理上可以替換每一參數的8個最低有效位。採用HMAC(加密消息認證碼)對所述25個參數塊執行運算,以生成數字籤名,由此計算出所述水印。對於HMAC而言採用SHA-1散列函數。採用PHILIPSPDSLLEUVENRIS^A^B^C^D^E^F^G^H作為密鑰,其中,^A代表CTRL-A(ASCII碼01),^B代表CTRL-B(ASCII碼02)……這一函數提供了160位的籤名。在這一例子中,在最前面的20個參數的8個最低有效位中插入籤名,或在其上分配所述籤名。後五個參數未受改變。應當指出它們已經參與了籤名的計算。這樣給出了下面經修改的係數0x3f64db3c 0xbfe4dbb5 0x3f64dbf8 0xbfe4daf2 0x3f6352df0x33047965 0x32ba4c1f 0x330479bb 0xbfed868a 0x3f5b319e0x3f80002e 0x4040008a 0x3f4ccc34 0xbff0c61d 0x3f51b2d60x381ee7ce 0x383ffa39 0x381ee73b 0xbff22b43 0x3f6472080x3f800000 0xc0800000 0x3f800000 0xc03fbb83 0x3f655c62在根據本發明的實施例中,按照區間的子區間逼近所述信號處理函數,本實施例考慮的參數是相繼子區間的邊界點。其基於的事實是能夠通過幾種方式在數值上逼近函數。用來提高對函數的區間逼近的性能和質量的技術之一是將所述區間劃分為幾個段(連續子區間),並在這些子區間上尋找對函數的最優逼近。將這樣的方法稱為逐段逼近。「分割點」形成了子區間的邊界點。通常區間的分割方式並不是關鍵性的邊界的變化可能對逼近的質量具有小的影響。得益於這種對變化的容許度,有可能在具有分割點的坐標值的最低有效位中嵌入水印,例如,密碼安全籤名。圖5中示出了本實施例,其採用的例子是在分割點為x=1.1的區間
上對函數y=(x)=1+cos(0.5*x)逐段逼近。圖5示出了通過二階多頂式(即,拋物線)逼近兩段的情況,其給出的對函數y=f(x)的逐段逼近如下y=1.88634-0.573305*x-0.24336*x2其中x∈
y=2.43188-1.57329*x+0.227149*x2其中x∈[1.1..2]且x=1.1為分割點。
這給出了所述逼近與受到逼近的函數之間的絕對誤差的如下最大值maxεleft=0.00956336maxεright=0.00530383將分割點從1.1移動到1.2,同時保持相同的逼近,即採用下述多項式y=1.88634-0.573305*x-0.24336*x2其中x∈
y=2.43188-1.57329*x+0.227149*x2其中x∈[1.2..2]其給出了下述誤差值maxεleft=0.0232218maxεright=0.00497099。
採用同樣的方式將分割點從1.1移到1.0給出了下述誤差值maxεleft=0.00875632maxεright=0.0149952。
從這個例子可以看出,在1.0和1.2之間的任何位置移動邊界將帶來0.024的最大近似誤差增長。如果其基本不影響逼近的質量,那麼在所述參數中進行大的改變就是可能的。針對分割點x坐標採用32位(8位用於指數,24位用於尾數)浮點表示給出了下述十六進位編碼值1.00x3f8000001.10x3f8ccccd1.20x3f99999a這表明能夠通過在基本不改變所述逼近的質量的情況下通過密碼安全籤名替代尾數中的21位。應當認識到,如果對分割點的位置的敏感度低,那麼被認為是「最不重要」的位的數量就大,其中「最不重要」是指可以對其加以改變。
在遵循第二實施例的方法的例子中,要考慮邊界移動的事實,並對其加以補償。優選對函數逼近進行優化,從而通過大區間內分割點的位置改變將這些變化對總體精確度的影響降至最低。將通過下述例子對其加以說明,其中,採用了某人想要在其上移動分割點的區間的附加信息。採用考慮了在
上進行逼近的函數值的多頂式對曲線的左側部分進行逼近,同時在[1.0..2]上對右側部分逼近。這給出了區間[1.0..1.2]上的逼近之間的重疊。
這給出了下述新的逐段逼近y=1.88926-0.593899*x-0.22093*x2其中x∈
y=2.37313-1.49926*x+0.204311*x2其中x∈[1.1..2]其具有下述誤差特性
maxεleft=0.011674maxεright=0.00699143。
將分割點移動到1.2給出了maxεleft=0.0127175maxεright=0.00699143。
將分割點移動到1.1給出了maxεleft=0.011674maxεright=0.00745122。
預先對逼近條件加以設定提供了差錯閾值為0.013而不是0.024的逼近。
本領域技術人員將容易地認識到,就執行周期和存儲要求而言,上述方法不會改變處理模塊的運行時間行為。
應當意識到,本發明還擴展至電腦程式,具體而言,可以擴展至位於適於將本發明投入使用的載體上或載體內的電腦程式。所述程序可以具有原始碼、目標代碼、原始碼和目標代碼之間的經過部分編譯的中間代碼的形式,或者具有適於在根據本發明的方法的實現當中採用的任何其他形式。所述載體可以是任何能夠承載程序的實體或裝置。例如,所述載體可以包括存儲介質,例如,諸如CD ROM或半導體ROM的ROM,或者諸如軟盤或硬碟的磁記錄介質。此外,所述載體可以是電或光信號等可傳輸載體,可以通過電纜、光纜、無線電或其他手段對其傳輸。當該程序實施為這樣的信號時,所述載體可以由此類線纜或者其他裝置或手段構成。或者,所述載體可以是嵌入了程序的集成電路,所述集成電路適於執行相關方法或者適於用在相關方法的執行當中。
應當注意,上述實施例的目的在於舉例說明而不是限制本發明,而且本領域的技術人員將能夠設計出很多替代實施例,而不背離權利要求的範圍。在權利要求中,置於括號之間的任何附圖標記都不應被視作是對權利要求的限制。動詞「包括」及其變形的使用不排除權利要求列舉的元件或步驟以外的其他元件或步驟的存在。元件前的冠詞「一」、「一個」不排除存在多個此類元件。可以通過包括幾種截然不同的元件的硬體以及通過適當編程的計算機實現本發明。在列舉了幾個機構的裝置中,可以通過同一個硬體體現這些機構。在互不相同的從屬權利要求中記載某些措施不表示不能將這些措施有利地結合到一起。
權利要求
1.一種保護數位訊號處理函數的軟體實現的方法;所述方法包括選擇所述信號處理函數採用的和/或用於設計所述信號處理函數的參數的子集(210);以及在所選的參數內嵌入水印(230)。
2.根據權利要求1所述的方法,其中,所述的所選參數是所述信號處理函數採用的參數,且所述的選擇參數子集的步驟包括選擇能夠在基本不影響所述信號處理函數的質量的情況下對其加以擾動的參數(210);所述方法還包括從所選的能夠在基本不影響所述信號處理函數的質量的情況下對其加以擾動的所述參數當中選擇若干最低有效位(220);以及在所述的從所選參數中選出的最低有效位中嵌入所述水印(230)。
3.根據權利要求1所述的方法,其中,所述方法包括根據帶有嵌入的水印的所選參數設計所述信號處理函數。
4.根據權利要求1所述的方法,其包括根據所述的所選參數確定所述水印。
5.根據權利要求4所述的方法,其包括形成位塊,所述位塊包括每一所選參數的至少一個位;通過在預定密鑰的控制下計算所形成的塊的數字籤名而生成所述水印。
6.根據權利要求5所述的方法,其中,所述塊基本包括所選參數的所有位。
7.根據權利要求2所述的方法,其中,嵌入所述水印包括由所生成的籤名的相應位替換所述的從所選參數中選出的最低有效位。
8.根據權利要求2所述的方法,其中,以未修改的形式保持所述的所選參數的未選擇的位。
9.根據權利要求1所述的方法,其中,所述的所選參數表示下述選項之一數位訊號濾波器的係數;閾值;代價函數中的代價;函數逼近的係數;或數字圖形的逼近的控制點。
10.根據權利要求8所述的方法,其中,按照區間的子區間逼近所述函數,所述函數逼近的所述係數表示相繼子區間的邊界點。
11.一種包括存儲程序的存儲器(140)的處理器(150),所述程序用於使所述處理器執行數位訊號處理函數,其中,所述數位訊號處理函數的至少一個參數嵌入了水印。
12.一種用於使處理器執行數位訊號處理函數的電腦程式產品,其中,所述信號處理函數的至少一個參數嵌入了水印。
全文摘要
通過選擇信號處理函數的參數的子集(210)並向所選參數內嵌入水印(230)而保護數位訊號處理函數的軟體實現。
文檔編號G06F21/16GK101057245SQ200580038146
公開日2007年10月17日 申請日期2005年11月4日 優先權日2004年11月9日
發明者馬克·沃克萊爾 申請人:皇家飛利浦電子股份有限公司