專利名稱:一種視頻流的采集、編碼和壓縮系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻監(jiān)控領(lǐng)域,尤其適合于基于低帶寬無線通信技術(shù)的視頻監(jiān)控領(lǐng)域,具體涉及一種視頻流的釆集、編碼和壓縮系統(tǒng)。
背景技術(shù):
隨著多媒體技術(shù)、無線通信技術(shù)和傳感器技術(shù)的不斷發(fā)展,多媒體無線傳感器網(wǎng)絡(luò)技術(shù)引起了社會(huì)的普遍關(guān)注。以視頻、音頻、圖像、文本為基本元素的多媒體應(yīng)用,在諸如戰(zhàn)場可視化監(jiān)控、環(huán)境監(jiān)測、安全監(jiān)控、交通監(jiān)控、智能家居、醫(yī)療健康等諸多領(lǐng)域中,具有廣闊的應(yīng)用前景。
無線視頻流監(jiān)控是多媒體無線傳感器網(wǎng)絡(luò)應(yīng)用的一個(gè)重要分支。遠(yuǎn)程攝像的視頻流信息通過無線方式傳輸?shù)椒?wù)端,為有效監(jiān)控提供
直觀的視覺信息。無線視頻流監(jiān)控的主要優(yōu)點(diǎn)為 一方面無線通信免去了布線的麻煩;另一方面視頻流不僅帶來了直觀性,并且也可獲得比靜態(tài)圖像更多的動(dòng)態(tài)信息。因此,無線視頻流監(jiān)控系統(tǒng)得到了空前的發(fā)展。目前對(duì)那些服務(wù)端和被監(jiān)控端距離較近的應(yīng)用場合,由于傳輸距離近,單跳的無線傳輸就足以滿足需要。該類無線視頻流監(jiān)控系統(tǒng)占據(jù)了無線視頻流監(jiān)控的主要巿場。
然而,由于國際及國內(nèi)無線電管理委員會(huì)均限制民用無線頻段的發(fā)射功率,因此直接限制了傳輸距離,從而使得遠(yuǎn)程視頻流監(jiān)控系統(tǒng)面臨著巨大的挑戰(zhàn)。釆用簡單的點(diǎn)對(duì)點(diǎn)無線傳輸已經(jīng)不能滿足遠(yuǎn)程監(jiān)控的需要。巿場呼喚性價(jià)比更優(yōu)的遠(yuǎn)程視頻流監(jiān)控解決方案。
近年來,無線傳感器網(wǎng)絡(luò)技術(shù)的發(fā)展使得無線視頻流監(jiān)控系統(tǒng)面臨新的機(jī)遇。通過無線多跳傳輸協(xié)議,遠(yuǎn)程視頻流信息可被逐跳地傳輸至服務(wù)端。不僅如此,無線傳感器網(wǎng)絡(luò)還賦予視頻監(jiān)控更為廣闊的應(yīng)用空間,例如,通過對(duì)多源視頻信息的融合處理,可實(shí)現(xiàn)對(duì)監(jiān)測場景視覺信息的立體重現(xiàn)。
就現(xiàn)有的無線傳感器網(wǎng)絡(luò)技術(shù)水平而言,基于無線傳感器網(wǎng)絡(luò)技術(shù)的無線視頻監(jiān)控在傳輸距離的約束上可能會(huì)取得突破,但其前提是必須解決如下兩個(gè)挑戰(zhàn) 一是視頻流即使經(jīng)過有效壓縮后,仍存在數(shù)據(jù)流量較大的特點(diǎn),二是無線傳輸本身的有效帶寬極其有限。這兩個(gè)問題相互糾纏。 一方面較大的數(shù)據(jù)量不僅加劇了無線傳輸?shù)膲毫Γ翌l繁的傳輸所帶來的流間干擾進(jìn)一步限制了網(wǎng)絡(luò)的有效帶寬。另一方面有限的傳輸帶寬使得大量的視頻數(shù)據(jù)被阻塞,從而對(duì)系統(tǒng)的存儲(chǔ)能力提出了更為嚴(yán)格的要求。這是目前視頻無線傳感器網(wǎng)絡(luò)技術(shù)所面臨的兩個(gè)關(guān)鍵挑戰(zhàn)。
針對(duì)這兩個(gè)關(guān)鍵挑戰(zhàn),可以相應(yīng)地從兩個(gè)不同的途徑對(duì)遠(yuǎn)程無線
視頻流監(jiān)控系統(tǒng)進(jìn)行優(yōu)化,具體包括(l)提高無線傳輸?shù)膸捘芰Α_@可以從無線協(xié)議的物理層、MAC (MediaAccess Control)層、網(wǎng)絡(luò)層以及跨層優(yōu)化的角度來加以解決。但由于這些方法目前仍大多停留于研究的角度,沒有相對(duì)成熟的完整的商用解決方案,因此沒有得到廣泛的釆用。目前工程上普遍釆用傳輸帶寬較大的其他無線方案,如IEEE 802.11、通用分組無線業(yè)務(wù)GPRS等。這些方案通常不能組成復(fù)雜的數(shù)字通訊網(wǎng)絡(luò),且意味著更高的成本與功耗;(2)減小視頻流的數(shù)據(jù)流量,這種途徑是在不提高硬件成本前提下的一種可行方案。
為了減小視頻流的數(shù)據(jù)流量,目前,工程上多釆用MPEG( MovingPicture Experts Group )壓縮標(biāo)準(zhǔn)(軟壓縮或硬壓縮方式)對(duì)視頻數(shù)據(jù)進(jìn)行壓縮。然而,這種壓縮標(biāo)準(zhǔn)并不能實(shí)現(xiàn)對(duì)幀間冗余信息的有效壓縮,圖像的壓縮比只能達(dá)到幾十倍。更為重要的是現(xiàn)有的硬壓縮芯片往往對(duì)系統(tǒng)的幀速率和圖像分辨率有明確的要求(例如25幀/秒PAL、 30幀/秒NTSC格式的數(shù)據(jù)),因而不利于降低視頻流的數(shù)據(jù)量
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種視頻流的釆集、編碼和壓縮系統(tǒng),。為實(shí)現(xiàn)上述目的,本發(fā)明釆用如下技術(shù)方案
一種視頻流的釆集、編碼和壓縮系統(tǒng),包括
采集編碼單元,以圖像尺寸可調(diào)方式釆集視頻圖像,編碼后得到
原始視頻流數(shù)據(jù),將原始視頻流數(shù)據(jù)以設(shè)定幀速率發(fā)送到壓縮單元;
壓縮單元,以幀速率可調(diào)方式接收采集編碼單元發(fā)送的原始視頻流數(shù)據(jù),以MPEG4壓縮標(biāo)準(zhǔn)對(duì)其壓縮后暫存到壓縮單元內(nèi)的寄存器;
微控制器,用于初始化釆集編碼單元的圖像尺寸、編碼格式、設(shè)定幀速率,及初始化壓縮單元的接收幀速率,以硬件布線方式將壓縮單元內(nèi)的寄存器映射為微控制器的片外存儲(chǔ)器,微控制器直接讀取寄存器內(nèi)存儲(chǔ)的壓縮后的視頻流數(shù)據(jù)并發(fā)出。
優(yōu)選地,該系統(tǒng)還包括多模電源,用于為除微控制器外的各部分供電,所述多模電源在微控制器的控制下,在微控制器進(jìn)入睡眠模式前將各部分的供電切斷
優(yōu)選地,該系統(tǒng)還包括外部硬件數(shù)據(jù)緩沖器,所述外部硬件數(shù)據(jù)緩沖器與壓縮單元連接,用于在壓縮單元內(nèi)的寄存器溢出時(shí)存儲(chǔ)壓縮后的視頻流數(shù)據(jù)。
優(yōu)選地,所述釆集編碼單元以YUV4:2:2方式進(jìn)行編碼,所述采集編碼單元以外同步方式與壓縮單元通信,將編碼后的視頻流數(shù)據(jù)發(fā)送到壓縮單元
優(yōu)選地,釆集編碼單元為型號(hào)為OV7660的視頻釆集芯片。優(yōu)選地,所述壓縮單元為型號(hào)為ML86410的視頻流壓縮芯片。優(yōu)選地,所述微控制器釆用型號(hào)為Atmegal28L的單片機(jī)。優(yōu)選地,所述單片機(jī)Atmegal28L的外部數(shù)據(jù)讀寫信號(hào)控制線信號(hào)分別直接連接到視頻流壓縮芯片ML86410的讀寫引腳上。
優(yōu)選地,所述多模電源釆用型號(hào)為NCP 5 51系列三端穩(wěn)壓芯片。優(yōu)選地,所述外部硬件數(shù)據(jù)緩沖器為型號(hào)為MD56V62320的緩沖器,所述微控制器與緩沖器MD56V62320的地址線和數(shù)據(jù)線對(duì)應(yīng)連接。
利用本發(fā)明提供的視頻流的釆集、編碼和壓縮系統(tǒng),具有以下有益效果
1) 能夠?qū)崿F(xiàn)小尺寸、低幀速率和高壓縮率,是一個(gè)對(duì)傳輸帶寬要求很低的視頻集成解決方案;
2) 本發(fā)明也可通過動(dòng)態(tài)調(diào)整參數(shù),來滿足用戶對(duì)更高圖像質(zhì)量的要求,具有很強(qiáng)的可伸縮性與靈活性;
3) 可應(yīng)用于各類低功耗、低成本視頻監(jiān)控領(lǐng)域,如服務(wù)機(jī)器人、智能玩具、智能交通、汽車電子、健康監(jiān)護(hù)、遠(yuǎn)程醫(yī)療、軍事技術(shù)等,尤其適用于低帶寬無線傳輸場合,例如基于ZigBee的應(yīng)用領(lǐng)域。
圖l為本發(fā)明視頻流的釆集、編碼和壓縮系統(tǒng)框圖2A、圖2B為本發(fā)明實(shí)施例中視頻釆集與編碼芯片OV7660與視頻壓縮芯片ML86410之間的接口連接圖3為本發(fā)明實(shí)施例中視頻壓縮芯片ML86410和微控制器Atmegal28L之間的接口連接圖4A、圖4B為本發(fā)明實(shí)施例中視頻壓縮芯片ML86410和外部數(shù)據(jù)緩沖器MD56V62320之間的接口連接具體實(shí)施例方式
本發(fā)明提出的視頻流的釆集、編碼和壓縮系統(tǒng),結(jié)合附圖和實(shí)施例說明如下。
本發(fā)明從減少視頻流數(shù)據(jù)量的角度出發(fā),提出一種適合于低帶寬的視頻流釆集、編碼與壓縮系統(tǒng)。其指導(dǎo)思想為(l)采用視頻流壓縮標(biāo)準(zhǔn)MPEG4,以提高數(shù)據(jù)壓縮率;(2)在滿足圖像質(zhì)量的前提下,調(diào)整釆集編碼后的視頻數(shù)據(jù)到壓縮單元傳輸?shù)膸俾剩?3)在滿足用戶需求的前提下,減少圖像尺寸。它們均可起到降低視頻流數(shù)據(jù)量的
7目的,從而使得本發(fā)明適用于低帶寬無線個(gè)域網(wǎng)的場合。此外,為了進(jìn)一步降低功耗,釆用多模電壓控制方法來進(jìn)一步降低功耗。
如圖1所示,本發(fā)明提出的視頻流的釆集、編碼和壓縮系統(tǒng)包括:
釆集編碼單元,以圖像尺寸可調(diào)方式采集視頻圖像,編碼后得到原始
視頻流數(shù)據(jù),將原始視頻流數(shù)據(jù)以設(shè)定幀速率發(fā)送到壓縮單元;壓縮
單元,以幀速率可調(diào)方式接收釆集編碼單元發(fā)送的原始視頻流數(shù)據(jù),
以MPEG4壓縮標(biāo)準(zhǔn)對(duì)其壓縮后暫存到壓縮單元內(nèi)的寄存器;多模電源,用于為除微控制器外的各部分供電,多模電源在微控制器的控制下,在微控制器進(jìn)入睡眠模式前將各部分的供電切斷;外部硬件數(shù)據(jù)緩沖器,外部硬件數(shù)據(jù)緩沖器與壓縮單元連接,用于在壓縮單元內(nèi)的寄存器溢出時(shí)存儲(chǔ)壓縮后的視頻流數(shù)據(jù);微控制器,用于初始化采集編碼單元的圖像尺寸、編碼格式、設(shè)定幀速率,及初始化壓縮單元的接收幀速率,以硬件布線方式將壓縮單元內(nèi)的寄存器映射為微控制器的片外存儲(chǔ)器,微控制器直接讀取寄存器內(nèi)存儲(chǔ)的壓縮后的視頻流數(shù)據(jù)并通過串口發(fā)出。采集編碼單元以YUV4:2:2方式進(jìn)行編碼,采集編碼單元以外同步方式與壓縮單元通信,將編碼后的視頻流數(shù)據(jù)發(fā)送到壓縮單元。
經(jīng)測試,按照本集成方案所設(shè)計(jì)的視頻流輸出在明亮環(huán)境下數(shù)據(jù)量約為lk字節(jié)左右(QVGA格式、l幀/秒速率),可在10跳的ZigBee網(wǎng)絡(luò)(釆用CC2430芯片、Z-stack協(xié)議棧)上達(dá)到穩(wěn)定傳輸。實(shí)施例
本實(shí)施例中壓縮單元為釆用MPEG4視頻流壓縮標(biāo)準(zhǔn)的視頻硬壓縮芯片ML86410,該芯片支持單一的視頻流壓縮和幀速率動(dòng)態(tài)調(diào)整;釆集編碼單元釆用圖像尺寸可調(diào)的CMOS圖像釆集芯片OV7660;對(duì)視頻硬壓縮芯片ML86410和外部硬件數(shù)據(jù)緩沖器間的高速地址信號(hào)設(shè)計(jì)了源端阻抗匹配電路;采用了多模電壓控制方法對(duì)系統(tǒng)不同部件進(jìn)行供電,進(jìn)一步降低了設(shè)備空閑時(shí)的功耗。本實(shí)施例以MPEG4視頻壓縮芯片ML86410為核心,它一方面和視 頻釆集與編碼CMOS芯片OV7660之間以8位并行總線相連,另一方面 通過硬件地址映射的方式和微控制器Atmegal28L相連(即ML86410 不再是Atmegal28L的外設(shè),而成為其外部數(shù)據(jù)存儲(chǔ)器,從而可用訪 存指令直接訪問)。ML86410以外同步方式接收從OV7660處輸送來的 原始視頻流信息,經(jīng)壓縮后,自動(dòng)地把壓縮后的信息緩存至寄存器(寄 存器溢出時(shí),緩沖至外部硬件數(shù)據(jù)緩沖器,該外部硬件數(shù)據(jù)緩沖器完 全由ML86410硬件管理)中,并及時(shí)修改其狀態(tài)寄存器中的標(biāo)志位。 微控制器通過查詢方式獲知寄存器和外部數(shù)據(jù)存儲(chǔ)器的空滿狀態(tài),讀 取相應(yīng)數(shù)據(jù)后送至串口輸出。微控制器還控制多模態(tài)電壓來管理系統(tǒng) 各個(gè)部件的供電,以便在設(shè)備空閑時(shí),及時(shí)關(guān)閉不必要的供電,并且 自身切換到睡眠狀態(tài),達(dá)到降低整個(gè)系統(tǒng)功耗的目的。
下面給出各部分的具體實(shí)現(xiàn)方式。
1)壓縮單元
設(shè)備選型直接決定了設(shè)計(jì)目標(biāo)的可實(shí)現(xiàn)性。由于要實(shí)現(xiàn)對(duì)視頻流 信息的高效率壓縮和對(duì)小尺寸視頻圖像的支持,因此本方案的核心是 對(duì)視頻流壓縮芯片的選擇。ML86410芯片是日本OKI公司的產(chǎn)品,不 僅可以支持CIF ( 352 x 288 )、 VGA ( 640 x 480 )、 PAL ( 720 x 576 )、 NTSC ( 720 x480)這類通用視頻圖像格式,而且可支持QCIF (176 xl44)、 QVGA (320x240)之類較小尺寸的標(biāo)準(zhǔn)視頻圖像,這對(duì)降 低帶寬量是有利的。此外,它可以設(shè)置跳幀方式,幀速率范圍為0 30 幀/秒,這進(jìn)一步支持了低帶寬的要求。此外,ML86410考慮了輸入 輸出速度之間的差異,因此從硬件上支持一塊外部同步動(dòng)態(tài)存儲(chǔ)器 SDRAM硬件數(shù)據(jù)緩沖器(最大容量為64MB,總線頻率為81MHZ),
外部硬件緩沖器的存在極大地減輕了對(duì)處理器響應(yīng)速度的要求。 ML86410是本方案的理想選擇。 2)釆集編碼單元
9視頻釆集與編碼功能目前大都集成在一個(gè)CMOS ( Complementary Metal Oxide Semiconductor)攝像芯片中,并且品種很多,選擇的范 圍很廣。本實(shí)施例的選擇標(biāo)準(zhǔn)是最大幀速率不高于30幀/秒,當(dāng)然在 考慮成本的前提下,如果能夠直接支持QCIF、 QVGA之類的小尺寸視 頻圖像,自然會(huì)省去不少的軟件編程和調(diào)試的工作量。OV7660是美 國OmniVision公司的產(chǎn)品,它支持YUV4:2:2格式的外同步輸出,能和 ML86410方便地接口 。此外,它也直接支持QCIF和QVGA視頻圖像格 式,采用微小封裝,也有利于減小設(shè)備尺寸,因而是一個(gè)很好的選擇。 雖然OV7660內(nèi)部有上百個(gè)寄存器,但其上電后默認(rèn)配置下即可輸出 QVGA格式的外同步信號(hào),這個(gè)功能對(duì)于排除后期可能的硬軟件故障 是很有裨益的。 3)微控制器
對(duì)于微控制器的選擇, 一方面力求降低成本,另一方面要與外部 所選擇的芯片接口方便,尤其要支持16位地址/8位數(shù)據(jù)的外部數(shù)據(jù)存 儲(chǔ)器的尋址方式。此外,最好能直接支持I2(3 (Inter-Integrated Circuit) 串行接口,以簡化和視頻釆集OV7660之間的軟件開銷。結(jié)合對(duì)成本 的要求,本實(shí)施例最終選擇ATMEL公司的8位單片機(jī)Atmegal28L,實(shí) 際效果發(fā)現(xiàn),還可以選擇成本更低一些的同類型芯片,如Atmega32 等,以進(jìn)一步壓縮成本。
4)多模電源
對(duì)于供電電路的選擇,除考慮系統(tǒng)各部分所需要的所有電壓(微 處理器所需電壓除外),具體為1.5V、 1.8V、 2.5V和3.3V各種不同的 電壓,還要能控制每部分電壓模塊的工作。當(dāng)微控制器在進(jìn)入睡眠模 式前,可以控制多模電源停止工作,從而切斷系統(tǒng)其他部分的電源供 應(yīng),達(dá)到省電的目的。本實(shí)施例釆用了NCP551系列三端穩(wěn)壓器芯片, 這些芯片有一個(gè)使能控制引腳,可以滿足本實(shí)施例的要求。
微控制器發(fā)送數(shù)據(jù)所用的串口部分相對(duì)簡單固定,本實(shí)施例釆用MAX3232作為接口芯片,這部分電路相對(duì)簡單,這里不做贅述。 4)接口部分
圖2為視頻釆集與編碼芯片OV7660與MPEG4視頻壓縮芯片 ML86410之間的接口連接圖。它們之間以8位的YUV4:2:2數(shù)據(jù)格式進(jìn) 行通信,且視頻同步釆用外同步方式。圖中YUVD0 YUVD7為8位的 數(shù)據(jù)連線,HSYNC為水平同步信號(hào),VSYNC為垂直同步信號(hào),用于 提供幀同步和行同步信號(hào)。
視頻釆集與編碼芯片OV7660與微控制器Atmegal28L之間的接 口相對(duì)簡單,它們之間通過fC總線相連,此外,為了控制視頻釆集 與編碼芯片OV7660的睡眠和復(fù)位,還分別設(shè)置了 OVPWD和OVRST 信號(hào)(其中OVPWD信號(hào)用于控制OV7660進(jìn)入睡眠狀態(tài),OVRST 信號(hào)用于控制OV7660復(fù)位),并與微控制器Atmegal28L相連。
圖3為MPEG4視頻壓縮芯片ML86410和微控制器Atmegal28L之 間的接口連接圖。為了降低軟件的負(fù)擔(dān),本方案釆用硬布線方式把 ML86410中的寄存器映射成ATMEGA128的外部數(shù)據(jù)存儲(chǔ)器,從而可 通過單數(shù)據(jù)讀取指令直接獲取壓縮后的視頻流數(shù)據(jù),省去了繁瑣的對(duì) 讀寫信號(hào)的時(shí)序控制。圖中,ML86410的所有寄存器地址被限制在 0x3000 0x3242的范圍內(nèi),這完全通過外部的硬件譯碼電路來完成。 由于使用了16位地址和8位數(shù)據(jù)總線復(fù)用的方式,因此釆用74H573鎖 存器來鎖存低8位地址(鎖存信號(hào)由Atmegal28L的ALE信號(hào)來控制)。 Atmegal28L的外部數(shù)據(jù)讀寫信號(hào)控制線Rd和Wr信號(hào)直接連接到 ML86410的讀寫控制引腳XREN和XWEN上。這樣的連線方式即把 ML86410的內(nèi)部寄存器映射成為微控制器Atmegal28L的外部數(shù)據(jù)存 儲(chǔ)單元。
圖4是MPEG4視頻壓縮芯片ML86410和外部數(shù)據(jù)緩沖器 MD56V62320之間的接口連接圖。該電路是ML86410為了防止內(nèi)部寄 存器的溢出而設(shè)置的外部硬件數(shù)據(jù)緩沖器。ML86410芯片內(nèi)部的硬件隊(duì)列管理單元對(duì)該外部數(shù)據(jù)緩沖器進(jìn)行管理。該電路的連接相對(duì)固 定,只需把地址和數(shù)據(jù)總線對(duì)應(yīng)相連即可。但由于地址信號(hào)的頻率高 達(dá)81MHZ,因此阻抗匹配電路是必不可少的。本方案對(duì)該部分電路 的地址總線部分,釆用了源端阻抗匹配方法。這里,按照常規(guī)約定,
地址線均被設(shè)計(jì)成50歐姆的特征阻抗。
以上為本方案的硬件部分。由于在設(shè)計(jì)硬件時(shí),充分考慮了軟件 可能的開銷,因此軟件部分的設(shè)計(jì)相對(duì)簡單。這里對(duì)其實(shí)施方式做一 簡單介紹。
軟件部分包括初始化模塊和視頻壓縮數(shù)據(jù)讀取模塊兩個(gè)部分。初
始化模塊具體負(fù)責(zé)啟動(dòng)多模電源各部分工作,初始化微控制器自身 的相關(guān)硬件與接口 ,初始化OV7660和ML86410的各項(xiàng)設(shè)置。 ML86410的具體設(shè)置如下
writeML86410(INTMSK,0xfc);〃只允許data ready和data read complete中斷 writeML86410(INTSTS,0X08);〃清除所有中斷標(biāo)志位
writeML86410(BUSIFCNFG,0X0); 〃設(shè)置外部DRAM總線寬度和列地址位數(shù) writeML86410(INIMAGE,0X66); 〃圖像格式QVGA(320*240) wri固L86410(VSTART,OXOO);
writeML86410(HSTART,OxOO);〃設(shè)置圖像的有效區(qū)域 writeML86410(IMGCPTMODE,0X3e); 〃外同步模式,時(shí)鐘上跳沿有效 writeML86410(ENCPROFILE,0X30);
writeML86410(CODINGTYPE,OXO 1); 〃壓縮標(biāo)準(zhǔn)為MPEG4 writeML86410(RATECNTLTYPE,0x02); 〃幀速率設(shè)置 writeML86410(INTRAREFRESHRATE,OxOa); 〃IPPP方式 writeML86410(INTRAQU ANT,0x04);
writeML86410(INTERQUANT,0x04); 〃圖像壓縮質(zhì)量設(shè)置 writeML86410(STRMACCSIZ,MACSIZE); 〃子幀長度設(shè)置
對(duì)于OV7660,只需設(shè)置圖像格式為QVGA即可工作,當(dāng)然也可
12根據(jù)對(duì)圖像質(zhì)量的要求調(diào)整相關(guān)寄存器的設(shè)置。
微控制器的視頻壓縮數(shù)據(jù)讀取模塊首先讀取ML86410寄存器的
數(shù)據(jù)幀到達(dá)指示位,若確有數(shù)據(jù)幀到來,則把一幀數(shù)據(jù)分成多個(gè)子幀
逐步讀入,隨后發(fā)送到串口上。核心程序解釋如下
while (1) {
tempt = readML86410(INTSTS); 〃讀取一幀數(shù)據(jù)是否到達(dá)標(biāo)志 while((tempt&Ox01 )==0)
tempt = readML86410(INTSTS); 〃反復(fù)讀取,直至一幀數(shù)據(jù)到達(dá) writeML86410(INTSTS,OXO 1); 〃清除該標(biāo)志
11 = (uint32—t)readML86410(STRMSIZl); lh = (uint32—t)readML86410(STRMSIZl+0x01); hl = (uint32—t)((readML86410(STRMSIZ2))&0x0f); framesize = (((hl 8)+lh) 8)+ll; 〃讀取并計(jì)算出幀數(shù)據(jù)的長度
readsize = 0;
while(readsize<framesize) {
tempt = readML86410(DMACNTL); while((tempt&Ox01 )==0)
tempt = readML86410(DMACNTL); 〃等待DREQ信號(hào)有效 for(uint8—t i=0; i<macpacketsize; i++,readsize++) { tempt = readML86410(STRMDATA); if(enqueue(tempt》
uartDebug—txQueue(); 〃進(jìn)隊(duì)成功,觸發(fā)串口發(fā)送
else while(!e叫ueue(tempt))
uartDebug—txQueue();〃隊(duì)列滿,則立刻觸發(fā)發(fā)送
writeML86410(DM ACNTL,OX 10); tempt = readML86410(DMACNTL);while(tempt&0x01)
tempt = readML86410(DMACNTL);
writeML86410(DMACNTL,OXOO); 〃讀完子幀,置DACK信號(hào) 一 次下跳沿 } 〃到此讀完一幀內(nèi)所有數(shù)據(jù) tempt = readML86410(INTSTS); while((tempt&0x02) !=0X02)
tempt = readML86410(INTSTS);
writeML86410(INTSTS,0X02); 〃清除one-frame data read complete中斷標(biāo)志
核心軟件部分是對(duì)ML86410中的視頻壓縮數(shù)據(jù)的讀取。這里設(shè)置 了一個(gè)串口隊(duì)列來緩沖串口部件和壓縮部件之間存在的速度不均衡問題。
以上實(shí)施方式僅用于說明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān) 技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下, 還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明 的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。
權(quán)利要求
1、一種視頻流的采集、編碼和壓縮系統(tǒng),其特征在于,包括采集編碼單元,以圖像尺寸可調(diào)方式采集視頻圖像,編碼后得到原始視頻流數(shù)據(jù),將原始視頻流數(shù)據(jù)以設(shè)定幀速率發(fā)送到壓縮單元;壓縮單元,以幀速率可調(diào)方式接收采集編碼單元發(fā)送的原始視頻流數(shù)據(jù),以MPEG4壓縮標(biāo)準(zhǔn)對(duì)其壓縮后暫存到壓縮單元內(nèi)的寄存器;微控制器,用于初始化采集編碼單元的圖像尺寸、編碼格式、設(shè)定幀速率,及初始化壓縮單元的接收幀速率,以硬件布線方式將壓縮單元內(nèi)的寄存器映射為微控制器的片外存儲(chǔ)器,微控制器直接讀取寄存器內(nèi)存儲(chǔ)的壓縮后的視頻流數(shù)據(jù)并發(fā)出。
2、 根據(jù)權(quán)利要求l所述的系統(tǒng),其特征在于,該系統(tǒng)還包括多模 電源,用于為除微控制器外的各部分供電,所述多模電源在微控制器 的控制下,在微控制器進(jìn)入睡眠模式前將各部分的供電切斷。
3、 根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于,該系統(tǒng)還包括 外部硬件數(shù)據(jù)緩沖器,所述外部硬件數(shù)據(jù)緩沖器與壓縮單元連接,用 于在壓縮單元內(nèi)的寄存器溢出時(shí)存儲(chǔ)壓縮后的視頻流數(shù)據(jù)。
4、 根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于,所述釆集編碼 單元以YUV4:2:2方式進(jìn)行編碼,所述釆集編碼單元以外同步方式與 壓縮單元通信,將編碼后的視頻流數(shù)據(jù)發(fā)送到壓縮單元。
5、 根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于,釆集編碼單元 為型號(hào)為OV7660的視頻釆集芯片。
6、 根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于,所述壓縮單元 為型號(hào)為ML86410的視頻流壓縮芯片。
7、 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述微控制器釆 用型號(hào)為Atmegal28L的單片機(jī)。
8、 根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述單片機(jī) Atmegal28L的外部數(shù)據(jù)讀寫信號(hào)控制線信號(hào)分別直接連接到視頻流壓縮芯片ML86410的讀寫引腳上。
9、 根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,所述多模電源釆 用型號(hào)為NCP551系列三端穩(wěn)壓芯片。
10、 根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,所述外部硬件數(shù) 據(jù)緩沖器為型號(hào)為MD56V62320的緩沖器,所述微控制器與緩沖器 MD56V62320的地址線和數(shù)據(jù)線對(duì)應(yīng)連接。
全文摘要
本發(fā)明涉及一種視頻流的采集、編碼和壓縮系統(tǒng),包括采集編碼單元,以圖像尺寸可調(diào)方式采集視頻圖像,編碼后得到原始視頻流數(shù)據(jù),將原始視頻流數(shù)據(jù)以設(shè)定幀速率發(fā)送到壓縮單元;壓縮單元,以幀速率可調(diào)方式接收采集編碼單元發(fā)送的原始視頻流數(shù)據(jù),以MPEG4壓縮標(biāo)準(zhǔn)對(duì)其壓縮后暫存到壓縮單元內(nèi)的寄存器;微控制器,用于初始化采集編碼單元及壓縮單元的各參數(shù),以硬件布線方式將壓縮單元內(nèi)的寄存器映射為微控制器的片外存儲(chǔ)器,微控制器直接讀取寄存器內(nèi)存儲(chǔ)的壓縮后的視頻流數(shù)據(jù)并發(fā)出。本發(fā)明能夠?qū)崿F(xiàn)小尺寸、低幀速率和高壓縮率,也可通過動(dòng)態(tài)調(diào)整參數(shù)來滿足用戶對(duì)更高圖像質(zhì)量的要求,具有很強(qiáng)的可伸縮性與靈活性。
文檔編號(hào)H04N7/26GK101500166SQ20091007857
公開日2009年8月5日 申請(qǐng)日期2009年2月26日 優(yōu)先權(quán)日2009年2月26日
發(fā)明者徐朝農(nóng), 裴忠民, 鄧志東 申請(qǐng)人:清華大學(xué)