用于cmos圖像傳感器的實時高速圖像預處理方法
【專利摘要】一種用于CMOS圖像傳感器的實時高速圖像預處理方法,包括由CMOS圖像傳感器的感光部輸出的Bayer數據,所述Bayer數據的單幀陣列的行數為M、列數為N,其創新在于:采用流水線式的分塊、分類型存取數據的工作模式,通過分塊、分類型的方式使數據化整為零,同時采用數量相對較少的寄存器來對分零后的數據進行處理。本發明的有益技術效果是:通過對緩存處理方式進行改變,使用占用硬件資源較少的片上緩存結構,實現了較大緩存數據的高速處理,大幅提高了CMOS圖像傳感器的集成度和片上處理速度。
【專利說明】用于CMOS圖像傳感器的實時高速圖像預處理方法
【技術領域】
[0001] 本發明涉及一種光電傳感器信號處理技術,尤其涉及一種用于CMOS圖像傳感器 的實時高速圖像預處理方法。
【背景技術】
[0002] 隨著工藝水平的提高和信息化的高速發展,CMOS圖像傳感器以其高集成度、高速 度及低功耗、低成本的優勢逐漸取代CCD傳感器,被廣泛應用于數碼相機、攝像機和安防攝 像頭等多個領域。
[0003] 現有技術中,基于現有工藝制作出的CMOS圖像傳感器的成像質量與工藝尺寸存 在相關性,工藝尺寸越小成像質量越差,因此,如何使CMOS圖像傳感器在較小的工藝尺寸 條件下獲得高質量的成像是目前研究的熱點問題。
[0004] CMOS圖像傳感器的感光部輸出的數據形式一般為Bayer格式(下稱Bayer數據), Bayer數據一般不作直接應用,需要對其進行預處理后再由后續圖像處理算法進行處理,在 對Bayer數據進行預處理時,現有技術一般采用存儲器和寄存器串行方式來進行處理,其 原理如圖2所示,針對一幀Μ (行)XN (列)陣列的Bayer數據,如果色彩插值算法需要緩存 Μ行數據來處理,處理時就需要MXN個寄存器和M-1個RAM存儲器,當Bayer數據輸入寄 存器時,在第一個時鐘周期,數據被讀入到第A MBN個寄存器中,下一個時鐘到來時,讀入新 數據的同時,將原來AMB N中上一節拍的數據串行移入AMBN_i中,后續過程中,數據在寄存器 和RAM存儲器內依次傳遞,當第一級寄存器全部讀入了數據后,在下一時鐘周期到來后,將 一級寄存器的數據依次傳遞到第二級寄存器進行算法處理(整個過程中,RAM起到緩存數據 的作用),將MXN個Bayer數據全部移入第二級緩存器至少需要(2M-1) XN+M個時鐘周期。 前述處理方式存在的問題是:如果后續算法要求處理的像素陣列較大,數據較多時,現有的 預處理方法就會需要大量的寄存器和存儲器,數據串行傳輸也會需要更多的時間,這樣就 會增大芯片的面積和功耗,并會降低算法的處理速度,同時由于數據的逐行連續串行輸入, 像素類型的順序維持原始Bayer格式的像素類型順序,這也導致代碼實現上的難度加大。
【發明內容】
[0005] 針對【背景技術】中的問題,本發明提出了一種用于CMOS圖像傳感器的實時高速圖 像預處理方法,包括由CMOS圖像傳感器的感光部輸出的Bayer數據,所述Bayer數據的單 中貞陣列的行數為M、列數為N,其創新在于: 搭建緩存模塊:采用K個靜態存儲器搭建緩存模塊,10 < K < Μ,且K為偶數,單個靜態 存儲器的存儲深度為J (本文所指存儲深度就是存儲容量,其單位為字節);將Κ個靜態存儲 器分為L個處理小組,L=K/2,每個處理小組均對應兩個靜態存儲器; 對Bayer數據進行分類:所述單幀陣列中的單行數據記為數據行,單個數據行中的 多個數據按各個數據所對應的列數序號的奇、偶關系分為兩組:同一數據行中,列數序號 為奇數的多個數據形成數據組一,列數序號為偶數的多個數據形成數據組二;則每一數據 行均對應有一數據組一和一數據組二,且數據組一和數據組二內的數據個數均為N/2個, N/2=J ;對Bayer數據進行分類的方式記為分類規則; 處理時,按如下步驟進行: 1) 按分類規則,對單幀陣列中的第1至L個數據行中的數據進行分類,獲得2L個數據 組; 2) 按單幀陣列中的行順序,將各個數據行中的數據組依次輸入緩存模塊中的靜態存儲 器內,每個靜態存儲器對應一個數據組,同一數據行中的兩個數據組輸入同一處理小組的 兩個靜態存儲器中;單個數據組中的多個數據以串行方式輸入靜態存儲器內;設第1數據 行對應第1處理小組,第2數據行對應第2處理小組,……第L數據行對應第L處理小組; 3) 當第L個數據行的數據輸入完成后,靜態存儲器開始將緩存了的多個數據向外并行 輸出; 靜態存儲器向外并行輸出的同時,將第L+1數據行內的多個數據按分類規則分類后, 串行輸入第1處理小組內對應的靜態存儲器中,用以替換第1數據行內的多個數據;前述的 用新數據替換處理小組內舊數據的處理方式記為更新處理,在后續并行輸出靜態存儲器數 據的過程中,繼續用新的數據行對其余處理小組依次進行更新處理; 4) 當L個處理小組都完成了更新處理后,按步驟3)中方式,用新的數據行對L個處理 小組重新依次進行更新處理,直至緩存模塊對所有數據行都完成了緩存、輸出處理。
[0006] 本發明的原理是:本發明的方案實質上形成了一種流水線式的分塊、分類型存取 數據的工作模式,通過分塊、分類型的方式使數據化整為零,同時采用數量相對較少的寄存 器來對分零后的數據進行處理,不僅大大降低了處理時延,提高了處理速度,并節省了芯片 面積,提高了芯片集成度,具體來說,本發明是這樣實現的:"分塊"即以數據行為單位進行 逐一串行輸入緩存,將一行數據分成兩塊來存儲,輸出處理針對所有分塊中的數據并將其 并行輸出。在完成首次全部存儲器的數據存儲,進行更新數據時,串行輸入和并行輸出就要 同步進行;"分類型"即將每一數據行內的數據按列數奇、偶分成兩個數據組,當然,之所以 能作這樣的分類,是依賴了 Bayer數據的固有特性,Bayer數據中的單個數據行,要么是R 和G交替排列,要么是G和B交替排列(RGB為紅綠藍三基色),并且不同數據行中R、G、B的 奇、偶關系恒定,本發明中充分的利用了 Bayer數據的這種特性,按奇、偶關系將其分類,使 數據行化整為零,以配合本發明方案的實施;"流水線"即對某一數據行內的數據進行了緩 存、輸出處理后,繼續將新的數據行輸入緩存模塊內進行處理;前述三種手段形成的工作模 式所帶來的最直接效果,就是使得預處理過程中所需的寄存器數量大幅減少,從處理的數 據規模來看,現有技術的單次處理中,需要對單幀陣列中的MXN個數據進行同時處理,因 此其需要Μ-l個RAM存儲器和MXN個寄存器,而本發明中,由于對單幀陣列進行了"分塊"、 "分類",從而使單次緩存需要的寄存器數量和單個靜態存儲器的深度大幅縮減,有利于在 有限的芯片面積上進行布局,同時由于數據的并行輸出,降低了設計難度和處理延遲,提高 了處理的效率。
[0007] 本發明中控制數據轉移的手段與現有技術相同,其控制時序采用常用的時鐘CLK 控制,為了使時序控制更為簡單化,本發明還作了如下改進:單個處理小組內的兩個靜態存 儲器與單個數據行內的數據組一和數據組二的對應關系保持恒定。
[0008] 基于前述方案所帶來的對靜態存儲器物理需求的減小,本發明還提出了如下優選 方案來改善器件的尺寸參數:所述靜態存儲器采用片上存儲器實現。片上存儲器由于尺寸 限制,其處理能力不如外設的緩存裝置,但采用本發明的方案后,少量的片上存儲器就能負 擔較大數據量的緩存工作,這對于提高CMOS圖像傳感器的集成度意義非凡。
[0009] 優選地,當Μ取512、N取512時,K取10,則靜態存儲器的存儲深度J為256。 [0010] 本發明的有益技術效果是:通過對緩存處理方式進行改變,使用占用硬件資源較 少的片上緩存結構,實現了較大緩存數據的高速處理,大幅提高了 CMOS圖像傳感器的集成 度和片上處理速度。
【專利附圖】
【附圖說明】
[0011] 圖1、本發明的處理原理示意圖(圖中靜態存儲器的數量為10個); 圖2、現有技術的處理原理示意圖; 圖3、Bayer數據中數據排列方式示意圖; 圖4、CMOS傳感器片上系統結構不意圖。
【具體實施方式】
[0012] 一種用于CMOS圖像傳感器的實時高速圖像預處理方法,包括由CMOS圖像傳感器 的感光部輸出的Bayer數據,所述Bayer數據的單幀陣列的行數為M、列數為N,其創新在 于: 搭建緩存模塊:采用K個靜態存儲器搭建緩存模塊,10 < K < Μ,且K為偶數,單個靜態 存儲器的存儲深度為J ;將Κ個靜態存儲器分為L個處理小組,L=K/2,每個處理小組均對應 兩個靜態存儲器; 對Bayer數據進行分類:所述單幀陣列中的單行數據記為數據行,單個數據行中的多 個數據按各個數據所對應的列數序號的奇、偶關系分為兩組:同一數據行中,列數序號為奇 數的多個數據形成數據組一,列數序號為偶數的多個數據形成數據組二;則每一數據行均 對應有一個數據組一和一個數據組二,且數據組一和數據組二內的數據個數均為N/2個, N/2=J ;對Bayer數據進行分類的方式記為分類規則; 處理時,按如下步驟進行: 1) 按分類規則,對單幀陣列中的第1至L個數據行中的數據進行分類,獲得2L個數據 組; 2) 按單幀陣列中的行順序,將各個數據行中的數據組依次輸入緩存模塊中的靜態存儲 器內,每個靜態存儲器對應一個數據組,同一數據行中的兩個數據組輸入同一處理小組的 兩個靜態存儲器中;單個數據組中的多個數據以串行方式輸入靜態存儲器內;設第1數據 行對應第1處理小組,第2數據行對應第2處理小組,……第L數據行對應第L處理小組; 3) 當第L個數據行的數據輸入完成后,靜態存儲器開始將緩存了的多個數據向外并行 輸出; 靜態存儲器向外并行輸出的同時,將第L+1數據行內的多個數據按分類規則分類后, 串行輸入第1處理小組內對應的靜態存儲器中,用以替換第1數據行內的多個數據;前述的 用新數據替換處理小組內舊數據的處理方式記為更新處理,在后續并行輸出靜態存儲器數 據的過程中,繼續用新的數據行對其余處理小組依次進行更新處理; 4)當L個處理小組都完成了更新處理后,按步驟3)中方式,用新的數據行對L個處理 小組重新依次進行更新處理,直至緩存模塊對所有數據行都完成了緩存、輸出處理。
[0013] 進一步地,單個處理小組內的兩個靜態存儲器與單個數據行內的數據組一和數據 組二的對應關系保持恒定。
[0014] 進一步地,所述靜態存儲器采用片上存儲器實現。
[0015] 進一步地,當Μ取512、N取512時,K取10,則靜態存儲器的存儲深度J為256。
[0016] 以下以一幀512 (行)Χ512 (列)陣列的Bayer數據為例,將本發明的方案和現有 技術進行量化比較: 基于本發明方案,采用10個靜態存儲器來對512X 512陣列數據進行處理時,當緩存5 行數據進行處理時,需要10個深度為256字的靜態存儲器以及10個寄存器進行數據的緩 存運算,單幀數據全部串行讀入和并行讀出需要262144個時鐘周期。
[0017] 根據現有技術可知,現有技術在對512X512個數據進行處理時,當緩存5行數據 進行處理時,需要5個深度為512字的靜態存儲器以及3072個寄存器進行數據的緩存運 算,全部數據的存取所需時鐘周期為524288。
[0018] 本發明和現有技術在芯片面積和布局方面具有較大優勢,利用分塊的思想將5個 深度為512字的靜態存儲器分為10個深度為256字的靜態存儲器,這有利于片上系統的整 體布局以并減少設計難度,而針對同一工藝條件,本發明使用的寄存器數量明顯小于現有 技術的寄存器數量(二者靜態存儲器的容量相同),這可以節省芯片面積和功耗。
【權利要求】
1. 一種用于CMOS圖像傳感器的實時高速圖像預處理方法,包括由CMOS圖像傳感器的 感光部輸出的Bayer數據,所述Bayer數據的單幀陣列的行數為M、列數為N,其特征在于: 搭建緩存模塊:采用K個靜態存儲器搭建緩存模塊,10 < K < Μ,且K為偶數,單個靜態 存儲器的存儲深度為J ;將Κ個靜態存儲器分為L個處理小組,L=K/2,每個處理小組均對應 兩個靜態存儲器; 對Bayer數據進行分類:所述單幀陣列中的單行數據記為數據行,單個數據行中的 多個數據按各個數據所對應的列數序號的奇、偶關系分為兩組:同一數據行中,列數序號 為奇數的多個數據形成數據組一,列數序號為偶數的多個數據形成數據組二;則每一數據 行均對應有一數據組一和一數據組二,且數據組一和數據組二內的數據個數均為N/2個, N/2=J ;對Bayer數據進行分類的方式記為分類規則; 處理時,按如下步驟進行: 1) 按分類規則,對單幀陣列中的第1至L個數據行中的數據進行分類,獲得2L個數據 組; 2) 按單幀陣列中的行順序,將各個數據行中的數據組依次輸入緩存模塊中的靜態存儲 器內,每個靜態存儲器對應一個數據組,同一數據行中的兩個數據組輸入同一處理小組的 兩個靜態存儲器中;單個數據組中的多個數據以串行方式輸入靜態存儲器內;設第1數據 行對應第1處理小組,第2數據行對應第2處理小組,……第L數據行對應第L處理小組; 3) 當第L個數據行的數據輸入完成后,靜態存儲器開始將緩存了的多個數據向外并行 輸出; 靜態存儲器向外并行輸出的同時,將第L+1數據行內的多個數據按分類規則分類后, 串行輸入第1處理小組內對應的靜態存儲器中,用以替換第1數據行內的多個數據;前述的 用新數據替換處理小組內舊數據的處理方式記為更新處理,在后續并行輸出靜態存儲器數 據的過程中,繼續用新的數據行對其余處理小組依次進行更新處理; 4) 當L個處理小組都完成了更新處理后,按步驟3)中方式,用新的數據行對L個處理 小組重新依次進行更新處理,直至緩存模塊對所有數據行都完成了緩存、輸出處理。
2. 根據權利要求1所述的用于CMOS圖像傳感器的實時高速圖像預處理方法,其特征在 于:單個處理小組內的兩個靜態存儲器與單個數據行內的數據組一和數據組二的對應關系 保持恒定。
3. 根據權利要求1所述的用于CMOS圖像傳感器的實時高速圖像預處理方法,其特征在 于:所述靜態存儲器采用片上存儲器實現。
4. 根據權利要求1所述的用于CMOS圖像傳感器的實時高速圖像預處理方法,其特征在 于:當Μ取512、N取512時,K取10,則靜態存儲器的存儲深度J為256。
【文檔編號】H04N5/3745GK104065937SQ201410276634
【公開日】2014年9月24日 申請日期:2014年6月20日 優先權日:2014年6月20日
【發明者】李明, 劉昌舉, 鄧光平, 李毅強, 任思偉, 張靖, 熊平 申請人:中國電子科技集團公司第四十四研究所