導航裝置及其軌跡平滑方法
【專利摘要】一種導航裝置,包含用來進行軌跡平滑化的數字濾波器。該數字濾波器用來依序接收輸入數據并輸出標簽和以及計算累積值除以平均數目的商及余數;其中,所述余數用來反饋至所述標簽和以更新所述累積值,所述商用作為輸出數據。
【專利說明】
導航裝置及其軌跡平滑方法
技術領域
[0001] 本發明設及一種導航裝置,更特別地設及一種可進行軌跡平滑化的導航裝置及其 軌跡平滑方法。
【背景技術】
[0002] 傳統上,光學鼠標是用作為與具有顯示屏的計算機系統互動的接口設備之一。光 學鼠標通常具有光源、圖像傳感器及處理單元。所述光源投射光至工作表面。所述圖像傳感 器接收來自所述工作表面的反射光并連續輸出圖像帖。所述處理單元則根據所述多個圖像 帖計算所述光學鼠標相對所述工作表面的位移量,并依據報告率(report rate)將所述位 移量輸出至計算機系統W進行相對應控制。
[0003] 然而,由于所述圖像傳感器所獲取的圖像帖中會存在噪聲,其會反映在所述處理 單元所計算出的所述位移量中。雖然當所述位移量遠大于噪聲所造成的位置偏移時,所述 位置偏移并不會明顯影響所述位移量;然而,當所述位移量非常小而大致相等于或僅略大 于所述位置偏移時,則會導致軌跡出現銀齒狀的情形。尤其是在高分辨率的設定時,軌跡不 平滑會變的明顯而容易被使用者查覺。
【發明內容】
[0004] 有鑒于此,本發明提出一種可進行軌跡平滑化的導航裝置及其軌跡平滑方法。
[0005] 本發明提供一種導航裝置及其軌跡平滑方法,其利用N-tap濾波器對輸入數據進 行平均運算。
[0006] 本發明還提供一種導航裝置及其軌跡平滑方法,其可根據分辨率調整平滑化強 度。
[0007] 本發明提供一種導航裝置,其包含用來進行軌跡平滑化的數字濾波器。所述數字 濾波器包含延遲緩沖器、累積緩沖器、計算單元W及加法器。所述延遲緩沖器用來依序接收 輸入數據并輸出標簽和。所述累積緩沖器用來儲存累積值。所述計算單元用來計算所述累 積值除W平均數目的商及余數。所述加法器用來相加所述標簽和W及所述余數W產生所述 累積值。所述數字濾波器輸出所述商W作為輸出數據。
[000引本發明還提供一種導航裝置的軌跡平滑方法,所述導航裝置包含具有平均數目的 數字濾波器。所述軌跡平滑方法包含下列步驟:計算所述數字濾波器內的各標簽的標簽和; W所述標簽和更新累積值;計算所述累積值除W所述平均數目的商及余數;W及輸出所述 商W作為輸出數據。
[0009] 本發明還提供一種導航裝置,其包含用來進行軌跡平滑化的數字濾波器。所述數 字濾波器用來計算累積值除W平均數目的商及余數、當所述商等于0時將下一筆標簽和加 至所述累積值W更新所述累積值且當所述商大于0時將所述下一筆標簽和加上所述余數W 產生新累積值。
[0010] 本發明的導航裝置及其軌跡平滑方法中,所述數字濾波器例如為N-tap濾波器,其 中,N為延遲數目(delay number)及平均數目(average number)。一實施例中,所述標簽和 為所述數字濾波器內各標簽的數據和。一實施例中,所述數字濾波器可被調整為8-tap濾波 器、16-化P濾波器、32-化P濾波器、64-化P濾波器等,視所需要的平均強度而定。
[0011] 為了讓本發明的上述和其他目的、特征和優點能更明顯,下文將配合所附圖示,詳 細說明如下。此外,在本發明的說明中,相同的構件W相同的符號表示,在此先述明。
【附圖說明】
[0012] 圖1為本發明一實施例的導航裝置的方塊圖;
[0013] 圖2為本發明一實施例的導航裝置的運作示意圖;
[0014] 圖3-4為本發明某些實施例的導航裝置的軌跡平滑方法的流程圖。
[001引附圖標記說明
[0016] 1 導航裝置
[0017] 10 數字濾波器
[0018] 101延遲緩沖器
[0019] 103加法器
[0020] 105累積緩沖器
[0021] 107計算單元
[0022] 109余數緩沖器
[0023] 20 光源
[0024] 30 圖像傳感器
[0025] S 工作表面
[002引 R 余數
[0027] Q 商
[002引Lr 主反射光束
【具體實施方式】
[0029] 請參照圖1所示,其為本發明一實施例的導航裝置的方塊圖。本發明的導航裝置1 例如可被操作于工作表面S上,用來檢測相對所述工作表面S的動作并輸出平滑化位移量。 必須說明的是,雖然圖1中,所述導航裝置1顯示被操作于所述工作表面S上,但本發明并不 W此為限。所述導航裝置1也可適用于手持式導航裝置,例如遙控裝置(remote device)或 指向裝置(pointing device)等,并無特定限制。
[0030] 所述導航裝置1包含光源20、圖像傳感器30W及數字濾波器10;其中,所述數字濾 波器10例如包含在處理器中。某些實施例中,所述光源20、所述圖像傳感器30及所述數字濾 波器10均包含圖像傳感器封裝,例如圖像感測忍片(image sensing chip)中,所述圖像傳 感器封裝則用來輸出平滑化軌跡。其他實施例中,所述光源20及所述圖像傳感器30包含在 圖像傳感器封裝中而所述數字濾波器10位于所述圖像傳感器封裝外部的處理器中,例如中 央處理器(CPU)、微控制器(MCU)等。必須說明的是,當所述導航裝置1適用于手持式導航裝 置時,所述光源20可不予實施。
[0031] 所述光源20例如為同調光源、部分同調光源或非同調光源,例如發光二極管或雷 射二極管,但并不W此為限。所述光源20用來發出可識別光譜的光W照明所述工作表面S。
[0032] 所述圖像傳感器30例如包含電荷禪合元件(CCD)圖像感測元件、互補式金氧半場 效晶體管(CMOS)圖像感測元件或其他可檢測光信號并輸出電信號的光電元件。所述圖像傳 感器30用來接收所述工作表面S的反射光W產生數字化圖像帖(例如其內包含模擬數字轉 換單元進行數字化),并根據數字化圖像帖計算位移量,例如利用圖像帖間的相關性 (correlation)計算。所述圖像傳感器30所輸出的位移量數據并未經過平滑化。本發明中, 所述數字濾波器10接收所述圖像傳感器30輸出的位移量數據并進行平滑化處理,W輸出平 滑化位移量數據。
[0033] 必須說明的是,雖然圖1顯示所述圖像傳感器30與所述光源20相對于所述工作表 面S的法線(normal line)對稱地配置,W感測來自所述工作表面S的主反射光束Lr,其也可 稱為亮場配置(bri曲t field arrangement),但本發明并不W此為限。其他實施例中,所述 圖像傳感器30與所述光源20也可形成暗場配置(dark field arrangement),也即所述圖像 傳感器30與所述光源20并不對稱地在所述工作表面S的法線,此時所述圖像傳感器30感測 來自所述工作表面S的散射光(scattered light)。
[0034] 請同時參照圖1及2所示,圖2為本發明一實施例的導航裝置的運作示意圖。所述數 字濾波器10可包含延遲緩沖器101、加法器103、累積緩沖器105、計算單元107W及余數緩沖 器109;其中,所述數字濾波器10內的各單元例如可利用軟件及/或固件的方式實現而并無 特定限制。所述數字濾波器10用來接收來自所述圖像傳感器30的輸入數據并經平滑化后產 生輸出數據。例如,圖2顯示所述輸入數據的數據序列為[1-1 0 1 1 1 3 2 1 2 0 0 0],其 依序在時間t〇-ti2被輸入至所述數字濾波器10;其中,所述數據序列的每一筆數據例如為位 移量數據而負號例如表示相反方向。必須說明的是,所述導航裝置1在所述工作表面S上的 移動可為兩個維度的位移量,圖2僅顯示其中一個維度的位移量數據(例如X軸)而另一個維 度(例如巧由)的運作方式則與圖2相同,故在此不再寶述。更詳而言之,當所述數字濾波器10 分別計算出(例如根據圖1-2)所述二維位移量的每個維度后,包含所述數字濾波器10的處 理器可再利用向量運算計算其向量和,并根據分辨率設定輸出所述向量和相對應的移動 量。
[0035] 所述延遲緩沖器101具有延遲數目并用來依序接收輸入數據及輸出標簽和。一實 施例中,當輸入的數據數目大于所述延遲數目時,最先輸入的數據則先從所述延遲緩沖器 101中移除,也即形成先進先出(FIFO)的運作方式。所述數字濾波器10用來計算累積值除W 平均數目的商(quotient)W及余數(remainder)。一實施例中,當所述商小于1(例如等于0) 時,所述數字濾波器10將下一筆標簽和加至所述累積值W更新所述累積值;而當所述商大 于0時,所述數字濾波器10將所述下一筆標簽和加上所述余數W作為新累積值。接著,所述 數字濾波器10再將所述更新后累積值或所述新累積值除W所述平均數目,如此反復W進行 輸入數據的平滑化處理。其他實施例中,不論所述商是等于或大于0,所述數字濾波器10均 將所述下一筆標簽和加上所述余數W作為新累積值(舉例說明于后)。較佳地,所述延遲數 目等于所述平均數目。
[0036] 例如,所述數字濾波器10可為N-tap濾波器(例如此處顯示N = 8,但并不W此為 限),也即所述平均數目與所述延遲數目均等于N。
[0037] -實施例中,所述標簽和為所述延遲緩沖器101內各標簽(例如標簽1-標簽8)的數 據和。請參照圖2,例如在時間to時,所述標簽和為標簽1內的單筆數據與標簽2-標簽8內的 數據(因此時尚未有數據,故W符號X表示,而實際上X = 〇)的和;例如在時間ti時,所述標 簽和為標簽1-標簽2內的兩筆數據與標簽3-標簽8內的數據的和;同理,時間t2-ti2的標簽和 的計算方式可依此類推。
[0038] 所述累積緩沖器105用來儲存累積值,所述累積值在每一時鐘時間(例如t日-ti2)進 行更新。所述計算單元107例如可W除法器(divider)實現,其用來計算所述累積值除W所 述平均數目N的商及余數;其中,所述數字濾波器10輸出所述商W作為輸出數據(即平滑后 位移數據),所述余數可被儲存于所述余數緩沖器109。所述加法器103則用來相加所述標簽 和及所述余數,W產生所述累積值。
[0039] 本發明中,所述累積值可利用至少兩種方式求得,舉例說明如下。
[0040] -實施例中,所述累積值可根據所述商來決定其更新方式。例如,當所述商小于1 (例如等于0)時,所述計算單元107設定所述余數為0;且下一筆標簽和被直接加至存于所述 累積緩沖器105內的累積值W更新所述累積值;而當所述商大于0時,所述加法器103將所述 下一筆標簽和加上所述余數W作為新累積值,其接著被儲存在所述累積緩沖器105內。
[0041] 例如參照圖2,在時間to時,由于標簽1的數據為數值1而其他標簽2-8的數據為數 值0,因此所述標簽和為數值1。假設初始累積值為0,所述累積值則為所述標簽和1加上初始 累積值0而為數值1。接著,所述計算單元107可將所述累積值1除W所述平均數目N而得到商 為0及余數為1。此時,由于所述商等于0,所述計算單元107可設定所述余數為0或不將所求 得的所述余數儲存于所述余數緩沖器109。例如,當所述商小于1時,所述數字濾波器10重置 存于所述余數緩沖器109內的余數為0。同時,所述數字濾波器10輸出零位移量。
[0042] 在時間ti時,由于標簽2的數據為數值1且標簽1的數據為數值-1而其他標簽3-8的 數據為數值0,因此所述標簽和為數值0。所述累積值則為下一筆(即時間ti)標簽和0加上存 于所述累積緩沖器105內的所述累積值1而仍為數值1。接著,所述計算單元107進行除法運 算而得到另一商為0及另一余數為1。同理,由于所述商等于0,所述計算單元107設定所述余 數為0且所述數字濾波器10輸出零位移量。
[0043] 某些實施例中,由于所述余數已設為0,所述累積值可為所述下一筆標簽和加上所 述余數后再加上所述累積值,并不會影響計算結果。其他實施例中,所述計算單元107可不 設定所述余數為0,只需在計算所述累積值時忽略所述余數即可,例如禁用(disable)所述 加法器103或不讀取所述余數緩沖器109。
[0044] 同理,時間t2-t6的累積值的計算方式可依此類推。
[0045] 在時間t7時,由于標簽8-標簽1的數據依序為數值[1-1 0 1 1 1 3 2],因此所述 標簽和為數值8( = 1 + (-1)+0+1 + 1 + 1+3+2)。同時,由于所述計算單元107在時間t6計算得到 商為1(大于0)且余數為5,所述累積值則為所述標簽和8加上前一個(即時間t6)余數5而為 數值13。接著,所述計算單元107通過除法運算得到另一商為1及另一余數為5。更詳而言之, 由于時間t6時所述商不為0,故所述余數緩沖器109并未被重置。
[0046] 同理,時間t8-tl2的累積值的計算方式可依此類推。
[0047] 本實施例中,所述數字濾波器10在每一時鐘時間t〇-ti2接收一筆輸入數據,并進行 平均運算(即W所述平均數目除W所述累積值)后得到商及余數。當所述商大于0時,則將所 述余數儲存在所述余數緩沖器109W進行更新。當所述商小于1(例如等于0)時,可將所述余 數儲存在所述余數緩沖器109或重置所述余數緩沖器109的儲存值為0。更詳細而言,本實施 例中,當所述商小于1時,所述數字濾波器10輸出零位移量并重置所述余數緩沖器109內的 數值為0或忽略所述余數(也即所述余數可W或不被儲存至所述余數緩沖器109);而當所述 商大于0時,所述數字濾波器10輸出非零平滑化位移量且將求得的余數儲存至所述余數緩 沖器109。
[0048] 另一實施例中,所述累積值可始終為所述標簽和與所述余數的和,也即所述計算 單元107在每一時鐘周期(例如t〇-ti2)更新所述余數緩沖器109內的余數。
[0049] 參照圖2,例如在時間to時,由于標簽1的數據為數值1而其他標簽2-8的數據為數 值0,因此所述標簽和為數值1。假設初始余數的值為0,所述累積值則為所述標簽和1加上初 始余數0而為數值1。接著,所述計算單元107可將所述累積值除W所述平均數目N而得到商 為0及余數為1。因此,所述數字濾波器10輸出零位移量而所述余數1則被儲存在所述余數緩 沖器109中。
[0050] 在時間ti時,由于標簽2的數據為數值1且標簽1的數據為數值-1而其他標簽3-8的 數據為數值0,因此所述標簽和為數值0。所述累積值可為下一筆(即時間ti)標簽和0加上存 于所述余數緩沖器109內的余數1而仍為數值1。接著,所述計算單元107同樣進行除法運算 而得到另一商為0及另一余數為1。因此,所述數字濾波器10輸出零位移量而所述余數1則被 用來更新所述余數緩沖器109內的余數。
[0051 ]同理,時間t2-tl2的累積值的計算方式可依此類推。
[0052] 本發明中,每一時間t〇-ti2所述數字濾波器10均將所述計算單元107求得的商Q輸 出W作為平滑化位移數據。此外,由圖2可知,所述導航裝置1開始移動的時間(例如to)與所 述數字濾波器10開始輸出非零位移量的時間(例如t6)具有延遲時間,例如圖2顯示為延遲6 個時鐘周期;其中,實際延遲的時間根據所述輸入數據而定,并不限于圖2所掲示的時間。因 此,當導航裝置1相對所述工作表面S停止時,為了使所述數字濾波器10不繼續輸出非零位 移量,例如圖2的時間t9-tl2時商Q并不為0而輸入數據已經連續為0,某些實施例中,當預設 數目的連續輸入數據皆為加寸,所述數字濾波器10可將所述輸出數據直接設為0;其中,所述 預設數目較佳小于所述平均數目N,然而并不W此為限。某些實施例中,當所述導航裝置m 高帖率(frame rate)運作且所述平均數目N不大時,所述延遲時間可能不會影響操作,所述 數字濾波器10則可持續輸出所述計算單元107求得的輸出數據(即商Q)而不另將所述輸出 數據設為0。
[0053] 某些實施例中,所述平均數目N可與所述導航裝置1的分辨率(resolution)呈正相 關。由于分辨率越高時,所述導航裝置1受到噪聲或所述工作表面S的影響越明顯,因此可選 擇較高的平均強度(即N值較高增加軌跡平滑度。例如下表1所示,本發明中所述平均數 目N相對不同的分辨率例如可被調整為8、16、32或64。當所述導航裝置1的分辨率改變時,貝U 相對調整所述平均數目N。某些實施例中,當所述平均數目N較低時(例如N = 8、16),上述延 遲時間較短,所述數字濾波器10可被設定為持續輸出所述計算單元107求得的輸出數據而 不將所述輸出數據設為0。其他實施例中,當所述平均數目N較高時(例如N=32、64),上述延 遲時間較長,所述數字濾波器10可被設定為當預設數目的連續輸入數據皆為0時則將所述 輸出數據設為0。可W 了解的是,當所述平均數目被調整時,所述延遲數目也同時被調整。
[0化4]_
[Ο化5] 表1
[0056] 請參照圖3及4,其為本發明某些實施例的導航裝置的軌跡平滑方法的流程圖。所 述軌跡平滑方法包含下列步驟:計算數字濾波器內的各標簽的標簽和(步驟S31);W所述標 簽和更新累積值(步驟S32);計算所述累積值除W平均數目的商及余數(步驟S33); W及輸 出所述商W作為輸出數據(步驟S34)。
[0057] 步驟S31:如圖2所示,所述延遲緩沖器101用來輸出其內各標簽(例如標簽1-標簽 8)的標簽和,且其標簽數目可根據所需的平滑強度而定。
[0058] 步驟S32:如前所述,所述累積值可利用至少兩種方式求得。一實施例中,當商Q小 于1(例如等于0)時,將所述標簽和直接加至所述累積緩沖器105內的所述累積值(圖4的步 驟S321)W進行更新,且余數R可被設為0或被忽略(如前所述);而當所述商Q大于0時,所述 加法器103將所述余數R加至所述標簽和(圖4的步驟S322)W作為新累積值并儲存至所述累 積緩沖器105。其他實施例中,所述累積值可始終為所述標簽和與所述余數R的和。
[0059] 步驟S33:接著,所述計算單元107將所述累積值除W所述平均數目NW得到所述商 Q及所述余數R。
[0060] 步驟S34:所述導航裝置10則輸出所述商QW作為輸出數據(即平滑化位移數據)。 所述余數R則根據不同實施例可儲存在所述余數緩沖器109中、被忽略或被設為0。
[0061] 本實施例的軌跡平滑方法可參照圖1-2及其說明,故在此不再寶述。此外,本實施 例的軌跡平滑方法可同樣包含步驟:當預設數目的連續輸入數據皆為0時,將所述輸出數據 設為0,藉W增加操作正確性。
[0062] 必須說明的是,上述實施例中的各數值,例如平均數目、延遲數目、分辨率、輸入數 據、輸出數據、標簽和、累積值、余數W及商等僅用來說明,并非用來限定本發明。此外,雖然 圖2中所述多個數值均顯示為整數(integer),但本發明并不W此為限,圖2中的所述多個數 值也可為小數(decimal)。
[0063] 綜上所述,已知光學鼠標的輸出軌跡會因為噪聲及操作條件而出現不平滑的情 形。因此,本發明還提出一種導航裝置(圖1)及其軌跡平滑方法(圖3-4),其可根據多個輸入 數據進行軌跡平滑化,且平滑化強度可根據裝置分辨率而調整,藉W增加其適用性。
[0064] 雖然本發明已通過前述實例披露,但是其并非用來限定本發明,任何本發明所屬 技術領域中具有通常知識的技術人員,在不脫離本發明的精神和范圍內,當可作各種的更 動與修改。因此本發明的保護范圍當視后附的權利要求所界定的范圍為準。
【主權項】
1. 一種導航裝置,該導航裝置包含: 數字濾波器,所述數字濾波器包含: 延遲緩沖器,用來依序接收輸入數據并輸出標簽和; 累積緩沖器,用來儲存累積值; 計算單元,用來計算所述累積值除以平均數目的商及余數;以及 加法器,用來相加所述標簽和以及所述余數以產生所述累積值; 其中,所述數字濾波器輸出所述商以作為輸出數據。2. 根據權利要求1所述的導航裝置,其中當預設數目的連續輸入數據皆為0時,所述輸 出數據被設為0。3. 根據權利要求2所述的導航裝置,其中所述預設數目小于所述平均數目。4. 根據權利要求1所述的導航裝置,其中當所述商等于0時,下一筆標簽和被加至所述 累積值以更新所述累積值。5. 根據權利要求1所述的導航裝置,其中當所述商大于0時,所述加法器用來將下一筆 標簽和加上所述余數以產生新累積值。6. 根據權利要求1所述的導航裝置,其中所述數字濾波器還包含余數緩沖器,且當所述 商大于0時,所述余數才被儲存至所述余數緩沖器。7. 根據權利要求1所述的導航裝置,其中所述平均數目與所述導航裝置的分辨率呈正 相關。8. -種導航裝置的軌跡平滑方法,所述導航裝置包含具有平均數目的數字濾波器,所 述軌跡平滑方法包含: 計算所述數字濾波器內的各標簽的標簽和; 以所述標簽和更新累積值; 計算所述累積值除以所述平均數目的商及余數;以及 輸出所述商以作為輸出數據。9. 根據權利要求8所述的軌跡平滑方法,其中以所述標簽和更新累積值的步驟包含: 當所述商等于〇時,將所述標簽和加至所述累積值;及 當所述商大于〇時,將所述余數加至所述標簽和。10. 根據權利要求9所述的軌跡平滑方法,該軌跡平滑方法還包含: 當所述商等于〇時,將所述余數設為〇。11. 根據權利要求8所述的軌跡平滑方法,該軌跡平滑方法還包含: 當預設數目的連續輸入數據皆為〇時,將所述輸出數據設為〇。12. 根據權利要求11所述的軌跡平滑方法,其中所述預設數目小于所述平均數目。13. 根據權利要求8所述的軌跡平滑方法,該軌跡平滑方法還包含: 當所述導航裝置的分辨率改變時,調整所述平均數目。14. 一種導航裝置,該導航裝置包含: 數字濾波器,用來計算累積值除以平均數目的商及余數、當所述商等于〇時將下一筆標 簽和加至所述累積值以更新所述累積值且當所述商大于0時將所述下一筆標簽和加上所述 余數以產生新累積值。15. 根據權利要求14所述的導航裝置,其中所述數字濾波器輸出所述商以作為輸出數 據。16. 根據權利要求14所述的導航裝置,其中所述數字濾波器還當所述商等于0時,將所 述余數設為0。17. 根據權利要求14所述的導航裝置,其中所述平均數目與所述導航裝置的分辨率呈 正相關。18. 根據權利要求14所述的導航裝置,其中所述下一筆標簽和為所述數字濾波器內各 標簽的數據和。19. 根據權利要求18所述的導航裝置,其中所述數字濾波器還當預設數目的連續輸入 數據皆為0時,將所述輸出數據設為0。20. 根據權利要求19所述的導航裝置,其中所述預設數目小于所述平均數目。
【文檔編號】G06F3/0354GK105824441SQ201510628953
【公開日】2016年8月3日
【申請日】2015年9月28日
【發明人】陳健明, 宋威昱
【申請人】原相科技(檳城)有限公司