紅外遙控碼流的實時壓縮方法和裝置的制造方法
【專利說明】
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及紅外遙控碼流處理領(lǐng)域,特別涉及一種紅外遙控碼流的實時壓縮方法和裝置。
【【背景技術(shù)】】
[0002]目前,對于市場上的智能設(shè)備上的紅外遙控器的學(xué)習(xí)方案大都采用具有大容量RAM(隨機存儲存儲器)的MCU(微中央處理器)來進行數(shù)據(jù)緩存,然后再把緩存的數(shù)據(jù)發(fā)送給智能設(shè)備,從而完成整個紅外信號的學(xué)習(xí)過程。而內(nèi)置大容量的RAM的MCU勢必提高了整個方案的成本。
[0003]圖1是一幀完整的紅外遙控碼流的波形,其包括有多個種類型的碼脈沖,比如TA、TB、TC、TD,每個碼脈沖包括有高電平和低電平,不同類型的碼脈沖的高電平持續(xù)時間和低電平持續(xù)時間不同,同類型的碼脈沖的高電平持續(xù)時間和低電平持續(xù)時間相同,而高電平則是由若干個固定頻率的載波脈沖組成的,利用固定頻率的載波脈沖來替代高電平是為了降低整個MCU的發(fā)射功耗,而低電平中不含固定載波頻率脈沖。圖1所示的整個碼流波形是由TA,TB,TC,TD這些碼脈沖組成。在其他的一幀紅外遙控碼流中,其也可能包括這些碼脈沖的不同組合,也可以包括其他類型的碼脈沖?,F(xiàn)有技術(shù)中的已經(jīng)定義好了各類碼脈沖,各種碼脈沖組合可以形成一幀紅外遙控碼流。
[0004]要實現(xiàn)一幀紅外遙控碼流的實時存儲,最直接的方法就是采用大的RAM進行直接緩存。在一個例子中,對于由500個碼脈沖(比如TA和TB)形成的紅外遙控碼流,按照每個碼脈沖占用4個字節(jié)計算,高電平持續(xù)時間占用2個字節(jié),低電平持續(xù)時間占用2個字節(jié),要對其實現(xiàn)實時存儲,就需要2000byte的RAM單元,這樣的存儲方式會造成巨大的RAM資源浪費。
[0005]因此,期待提出一種改進的紅外遙控碼流的實時壓縮方法和裝置,其能夠盡可能的節(jié)省RAM資源。
【
【發(fā)明內(nèi)容】
】
[0006]本發(fā)明的目的之一在于提供一種紅外遙控碼流的實時壓縮方法和裝置,其可以對紅外遙控碼流進行實時壓縮,從而可以節(jié)省RAM資源。
[0007]為了解決上述問題,根據(jù)本發(fā)明的一個方面,本發(fā)明提供一種紅外遙控碼流的實時壓縮方法,其包括:接收紅外遙控碼流,所述紅外遙控碼流具有連續(xù)的多個碼脈沖,所述碼脈沖至少包括兩種不同類型,每個碼脈沖包括高電平和低電平,其中高電平為預(yù)定頻率的載波脈沖,不同類型的碼脈沖的高電平持續(xù)時間和低電平的持續(xù)時間不同;依次獲得并記錄所述紅外遙控碼流的各個碼脈沖,其中記錄的每個碼脈沖包括其高電平持續(xù)時間和低電平持續(xù)時間;將記錄的每個碼脈沖與包括第一比較樣本和第二比較樣本的一組比較樣本匹配以得到樣本索引號序列、各組比較樣本的索引總數(shù)和碼脈沖存儲樣本集,其中將最近記錄的兩個不同的碼脈沖分別作為第一比較樣本和第二比較樣本。
[0008]根據(jù)本發(fā)明的另一個方面,本發(fā)明提供一種紅外遙控碼流的實時壓縮裝置,其包括:接收單元,用于接收紅外遙控碼流,所述紅外遙控碼流具有連續(xù)的多個碼脈沖,所述碼脈沖至少包括兩種不同類型,每個碼脈沖包括高電平和低電平,其中高電平為預(yù)定頻率的載波脈沖,不同類型的碼脈沖的高電平持續(xù)時間和低電平的持續(xù)時間不同;獲取單元,用于依次獲得并記錄所述紅外遙控碼流的各個碼脈沖,其中記錄的每個碼脈沖包括其高電平持續(xù)時間和低電平持續(xù)時間;編碼單元,將記錄的每個碼脈沖與包括第一比較樣本和第二比較樣本的一組比較樣本匹配以得到樣本索引號序列、各組比較樣本的索引總數(shù)和碼脈沖存儲樣本集,其中將最近記錄的兩個不同的碼脈沖分別作為第一比較樣本和第二比較樣本。
[0009]與現(xiàn)有技術(shù)相比,本發(fā)明中提供了一種簡單、易行的紅外遙控碼流的實時壓縮方案,其可以對紅外遙控碼流進行實時壓縮,從而可以節(jié)省RAM資源。
【【附圖說明】】
[0010]為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其它的附圖。其中:
[0011]圖1示出了一幀完整的紅外遙控碼流的波形;
[0012]圖2示出了本發(fā)明中的紅外遙控碼流的實時壓縮方案的示例;
[0013]圖3示出了本發(fā)明中的紅外遙控碼流的實時壓縮方法在一個實施例中的流程示意圖;和
[0014]圖4示出了本發(fā)明中的紅外遙控碼流的實時壓縮裝置在一個實施例中的結(jié)構(gòu)示意圖。
【【具體實施方式】】
[0015]為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和【具體實施方式】對本發(fā)明作進一步詳細的說明。
[0016]此處所稱的“一個實施例”或“實施例”是指可包含于本發(fā)明至少一個實現(xiàn)方式中的特定特征、結(jié)構(gòu)或特性。在本說明書中不同地方出現(xiàn)的“在一個實施例中”并非均指同一個實施例,也不是單獨的或選擇性的與其他實施例互相排斥的實施例。
[0017]圖3示出了本發(fā)明中的紅外遙控碼流的實時壓縮方法300在一個實施例中的流程示意圖。如圖3所示的,所述實時壓縮方法300包括如下步驟。
[0018]步驟310,接收紅外遙控碼流。
[0019]所述紅外遙控碼流具有連續(xù)的多個碼脈沖,所述碼脈沖至少包括兩不同類型,每個碼脈沖包括高電平和低電平,其中高電平為預(yù)定頻率的載波脈沖,不同類型的碼脈沖的高電平持續(xù)時間和低電平的持續(xù)時間不同。預(yù)定頻率的載波范圍可以為O?80KHZ。一幀紅外遙控碼流的最大長度可達到Is以上,碼脈沖個數(shù)最大可達500個。
[0020]圖2中的(a)示意出了紅外遙控碼流的波形的一個示例,其中其具有的多個碼脈沖,這些碼脈沖分為TA、TB、TC和TD四種不同類型,碼脈沖TA與碼脈沖TB的高電平持續(xù)時間和低電平持續(xù)時間是不同的,而兩個碼脈沖TB的高電平持續(xù)時間和低電平持續(xù)時間是相同的。
[0021]這些紅外遙控碼流來自另一個紅外遙控碼流發(fā)射設(shè)備,比如電視機的紅外遙控器,空調(diào)的紅外遙控器。
[0022]步驟320,依次獲得并記錄所述紅外遙控碼流的各個碼脈沖,其中記錄的每個碼脈沖包括其高電平持續(xù)時間和低電平持續(xù)時間。
[0023]在一個實施例中,計算所述紅外遙控碼流的第一個碼脈沖的高電平中的預(yù)定頻率的載波脈沖的單個周期值,記錄當前碼脈沖的高電平中的載波脈沖的個數(shù),該載波脈沖的個數(shù)將被作為該當前碼脈沖的高電平持續(xù)時間,后續(xù)可以基于載波脈沖的個數(shù)和載波脈沖的單個周期值計算可以計算出該當前碼脈沖的高電平持續(xù)時間。利用定時器來計算出該當前碼脈沖的低電平持續(xù)時間。這樣就完成了一個碼脈沖的記錄。重復(fù)同樣的方法,可以得到并記錄后續(xù)的各個碼脈沖的高電平持續(xù)時間和低電平持續(xù)時間。所述碼脈沖的高電平持續(xù)時間和低電平持續(xù)時間均由N字節(jié)的二進制序列表示,其中N為大于等于I的整數(shù),比如N為2。
[0024]圖2中的(b)示意出了獲得的各個碼脈沖的示例。每個碼脈沖包括兩部分數(shù)據(jù),高電平持續(xù)時間數(shù)據(jù)和低電平時序時間數(shù)據(jù),該時間范圍為幾十微秒到幾百毫秒,比如TAH為碼脈沖TA的高電平持續(xù)時間的數(shù)據(jù),TAL為碼脈沖TA的低電平持續(xù)時間的數(shù)據(jù),TBH為碼脈沖TB的高電平持續(xù)時間的數(shù)據(jù),TBL為碼脈沖TB的低電平持續(xù)時間的數(shù)據(jù)等。需要了解的是,這些碼脈沖不是同時被緩存下來的,而是被分時被緩存下來的,即得到TAH和TAL,之后就可以開始對TAH和TAL進行壓縮,而不是將所有的碼脈沖緩存下來之后,才開始進行后續(xù)的壓縮。在本發(fā)明中,每個碼脈沖的高電平持續(xù)時間數(shù)據(jù)占用2字節(jié),低電平時序時間數(shù)據(jù)占用2字節(jié),即記錄每個碼脈沖需要4個字節(jié)的數(shù)據(jù)。
[0025]步驟330,將記錄的每個碼脈沖與包括第一比較樣本和第二比較樣本的一組比較樣本匹配以得到樣本索引號序列、各組比較樣本的索引總數(shù)和碼脈沖存儲樣本集,其中將最近記錄的兩個不同的碼脈沖分別作為第一比較樣本和第二比較樣本。
[0026]在一個實施例中,將記錄的當前碼脈沖與當前組比較樣本中的第一比較樣本和第二比較樣本進行匹配。具體的,將當前碼脈沖的高電平持續(xù)時間和低電平持續(xù)時間分別與當前組比較樣本中的第一比較樣本和第二比較樣本的高電平持續(xù)時間和低電平持續(xù)時間進行比較,如果當前碼脈沖的高電平持續(xù)時間與一個比較樣本的高電平持續(xù)時間一致,且當前碼脈沖的低電平持續(xù)時間與該比較樣本的低電平持續(xù)時間一致,則認為當前碼脈沖與該比較樣本相匹配,否則,則認為當前碼脈沖與該比較樣本不匹配。
[0027]如果當前碼脈沖與第一比較樣本匹配,則將所述樣本索引號序列中的對應(yīng)位標記為第一值,如果當前碼脈沖與第二比較樣本匹配,則將所述樣本索引號序列中的對應(yīng)位標記為第二值,同時將當前組比較樣本的索引總數(shù)累加I,每個碼脈沖對應(yīng)樣本索引號序列中的一位。
[0028]