專利名稱:適應性視頻捕捉解碼系統的制作方法
技術領域:
本公開一般涉及數字設備,并且尤其涉及具有成像子系統的數字設備。
背景技術:
具有成像子系統的數字設備,比如智能手機、平板電腦、以及其他形式的移動計算機,可用于捕捉圖像幀流,該圖像幀流具有一個或多個可解碼特征,比如字符、詞、句子、以 及條形碼。數字設備可以具有顯示屏,進來的圖像信號在該顯示屏被呈現給用戶,同時該設備嘗試解碼該圖像中的可解碼特征。具有增加數量的像素的高密度圖像傳感器陣列的可用性,雖然提供了一定的優勢,但是也能帶來挑戰。利用具有增加數量的像素數量的圖像傳感器陣列,用這種終端捕捉的圖像數據幀具有增加數量的像素值。雖然更大數量的像素值通常允許捕捉具有更高分辨率的幀,但更高的分辨率可導致增加的處理延遲。圖像傳感器陣列可用于單色和彩色變化;相對于單色,彩色圖像傳感器陣列還提供了增加的數據。平滑地渲染圖像以及處理圖像以對圖像中的可解碼特征執行嘗試解碼都可同時對設備可用的處理能力造成實質的處理負擔。上述討論僅提供總體的背景信息而不旨在用于協助確定所要求保護的主題的范圍。
發明內容
公開了用于適應性視頻捕捉解碼系統的設備、方法和軟件,該系統在設備顯示屏和對圖像幀中的可解碼特征執行解碼嘗試的處理器之間有效地管理圖像幀流。在一個說明性實施例中,一種設備,包括成像子系統、一個或多個存儲器組件、顯示子系統、解碼子系統、以及流解析器。該成像子系統能夠提供表示所述成像子系統上的入射光的圖像數據幀。該一個或多個存儲器組件操作為暫時地存儲圖像數據幀。該顯示子系統包括顯示屏并操作為接收圖像數據幀并在該顯示屏上渲染該圖像數據幀。該解碼子系統包括一個或多個處理器,該一個或多個處理器操作為接收圖像數據幀并對在至少一個該圖像數據幀中表示的可解碼特征執行嘗試解碼。該流解析器通信連接該一個或多個存儲器組件、顯示子系統、以及解碼子系統。該流解析器操作為將第一組圖像數據幀分配給顯示子系統,并將第二組圖像數據幀分配給解碼子系統。沒有數據幀既被分配給顯示子系統又被分配給解碼子系統。在另一個說明性實施例中,一種計算機可讀存儲介質,包括可執行指令,該可執行指令操作為使一個或多個計算元件(包括一個或多個處理器)能夠將來自圖像數據幀流中的圖像數據幀分配給顯示子系統或解碼子系統。該顯示子系統操作為在顯示屏上渲染圖像數據幀。該解碼子系統操作為接收圖像數據幀并對在至少一個該圖像數據幀中表示的可解碼特征執行嘗試解碼。沒有數據幀既被分配給顯示子系統又被分配給解碼子系統。提供該發明內容以簡化形式介紹將在以下具體實施方式
中進行描述的概念的選擇。該發明內容不旨在識別所要求保護的主題的關鍵特征或必要特征,也不旨在用來輔助確定所要求保護的主題的范圍。所要求保護的主題不限于解決背景技術中所記錄的任何或全部缺點的實現方式。
參考下面描述的附圖可以更好地理解此處描述的特征。這些附圖是不必按比例的,而是一般將重點放在說明本發明的原理上。在附圖中,相同的數字用于指示遍及各種視圖的相同部分。圖I描繪了根據一個說明性實施例的具有成像子系統和顯示子系統的數字設備的透視圖。
圖2描繪了根據一個說明性實施例的在數字設備中包括流解析器的處理元件的可執行指令的流程圖。圖3描繪了根據一個說明性實施例的具有成像子系統、流解析器、解碼子系統、以及顯示子系統的數字設備的示意框圖。圖4描繪了根據一個說明性實施例的用于成像應用圖形用戶接口的用戶指導圖標。圖5描繪具有顯示子系統的數字設備的頂視圖,該顯示子系統的顯示屏上具有成像應用圖形用戶接口,顯示來自圖像數據流的圖像數據幀、用戶指導圖標、以及來自被成功解碼的可解碼特征的信息,該成功解碼的可解碼特征來自圖像數據流中的不同圖像數據幀。這些附圖不必按比例或者具有一致的縱橫比,而是一般將重點放在說明各種實施例的原理。在附圖中,相同的數字用于指示遍及各種視圖的相同部分。
具體實施例方式圖I描繪了根據一個說明性實施例的具有成像子系統和包括顯示屏1222的顯示子系統的設備1000的透視圖。設備1000在圖I中被描繪為智能手機,而在各種實施例中可采用以下形式移動電話、手持移動計算機、平板電腦、上網本電腦、膝上型計算機、電子書閱讀器、標記掃描終端、或者各種實施例中的具有成像子系統和顯示屏的各種各樣其他類型的任何數字設備。在圖I的說明性實施例中,設備1000包括用戶接口元件,該用戶接口兀件包括置于外殼1014的共同側的顯不屏1222和指不器機構1224。在一個實施例中,顯示屏1222可以并入觸摸板以用于導航和虛擬致動器的選擇,使得顯示屏1222既作為設備1000的用戶輸入設備又作為設備1000的用戶輸出設備。在一個實施例中,顯示屏1222和指示器機構1224作為設備1000的用戶接口元件或用戶輸入/輸出組件來執行。設備1000的各種實施例還可以包括例如其他按鍵、滑動或固定鍵盤、觸發器、和/或其他用戶輸入/輸出組件。圖I描繪了正用于成像具有可解碼特征120的目標110的設備1000的成像子系統400。設備1000正捕捉成像子系統400的視場1240的圖像幀流,并處理該圖像幀以便在顯示屏1222上顯示,包括目標圖像210的渲染、目標110的圖像,其上具有可解碼特征圖像220的渲染、可解碼特征120的圖像。在這個說明性實施例中,成像子系統400包括投射照明場1260以圍繞視場1240的照明源。在這個例子中,可解碼特征120是以字母字符書寫的英語短語。其他的可解碼特征可以包括以任何類型字符的以任何語言書寫的任何類型的書寫;數字、等式、任何格式或標準的一維或二維條形碼、或任何其他種類的代表性符號。設備1000不只操作為捕捉及顯示目標和可解碼特征,還操作為執行對可解碼特征的解碼并獲取它們表示的信息。例如,設備1000可以具有解碼子系統,該解碼子系統識別可解碼特征120的代表性格式,也就是英語語言中表示詞的字母符號,以及應用一個或多個光學字符識別(OCR)處理以獲得文本中表示的詞。其他解碼處理可以被應用于其他形式的可解碼特征,舉例來說,比如針對二維條形碼圖像的條形碼解碼算法、或者用于掃描和保存文檔的文檔捕獲程序。如圖5中所示,設備1000可以在顯 示輸出文本320的顯示屏1222上渲染一個文本框311,該輸出文本320表示來自可解碼特征120的解碼信息。也可以以任何其他格式的輸出來提供由成功解碼可解碼特征所產生的解碼信息,舉例來說,其他格式的輸出比如是翻譯成另一種語言的文本或者文本轉換為語音的音頻輸出。圖2和圖3描繪了關于設備1000的操作和元件的更多內容。圖3描繪了根據一個說明性實施例的數字設備1000的示意框圖,數字設備1000具有成像子系統400、流解析器1070、解碼子系統1062、以及包括顯示屏1222的顯示子系統1022。在介紹關于圖I和圖2所選擇的元件后,下文進一步提供了圖3上的進一步細節。圖2描繪了根據一個說明性實施例的數字設備1000中包括流解析器1070的處理元件的可執行指令的流程圖200。在顯示屏1222上渲染圖像數據幀并且以其它方式由顯示子系統1022處理圖像數據幀,以及由解碼子系統1062對圖像數據幀中的可解碼特征執行嘗試解碼,均可以要求處理任務,該處理任務對用于這些任務的處理元件造成實質的處理負擔。流程圖200示出了設備1000實現和體現的用于對為顯示子系統1022和解碼子系統1062分發圖像數據幀進行管理的系統的綜述。該系統可以用下載到設備1000的軟件實現,并且可以通過不同的格式或構造,由各種各樣的任何計算設備和其他數字設備來實現。如圖2中所示并參考圖I和圖3中所示的元件,該用于管理圖像數據幀分發的系統包括成像子系統400,其獲取圖像數據幀,如在方框501 ;流解析器1070,其將由成像子系統400獲取的每個進來的圖像數據幀分配到顯示子系統1022或者解碼子系統1062,如在方框503 ;解碼子系統1062,其對圖像數據幀中的可解碼特征執行嘗試解碼,如在方框511 ;以及顯示子系統1022,其在顯示屏1022上渲染圖像數據幀,如在方框521。通過流解析器1070將每個進來的圖像數據幀分配到顯示子系統1022或者解碼子系統1062,而不是將任何個別的數據幀分配給二者,使得沒有數據幀既分配給顯示子系統1022又分配給解碼子系統1062,為處理速度和效率取得實質的優勢。將數據分配到一個或另外一個,相對于將各個圖像數據幀穿梭通過顯示子系統和解碼子系統兩者的替換方式,提供了有利的處理。在各種說明性實施例中,相對于顯示子系統1022可以有效地渲染和分析圖像數據幀并且解碼子系統1062可以有效地處理嘗試解碼的速率,設備1000獲取圖像數據幀的速率是足夠高的,這在兩者任一的功能中幾乎沒有或沒有顯著的或是明顯的性能損失。
在不同的實施例中,對于流解析器1070將圖像數據幀分配到顯示子系統1022或解碼子系統1062,可以涉及流解析器1070本身將圖像數據幀發送到顯示子系統1022或解碼子系統1062,或者可以涉及流解析器1070命令一個或多個其他處理元件或接口將每個圖像數據幀發送到顯示子系統1022或解碼子系統1062。在各種實施例中,流解析器1070可以包括各種任何的硬件和/或軟件元素,并且可以根據各種各樣的任何標準或協議解析進來的圖像數據幀流。例如,在一個說明性實施例中,流解析器1070可以是簡單的硬件繼電器,該硬件繼電器交替地將每隔一個的圖像數據幀發送到顯示子系統1022,以及將每隔一個的交替圖像數據幀發送到解碼子系統1062,或者例如,將進來的圖像數據幀流劃分為3幀一組,并將每一組的第一幀發送到解碼子系統1062而將接下來的兩幀發送到顯示子系統1022。在其他說明性例子中,舉例說明,流解析器1070可以將進來的圖像數據幀流劃分為5幀一組,并將每一組的第一幀發送到解碼子系統1062并將接下來的4幀發送到顯示子系統1022,或劃分為13幀一組,并將每一組的前3幀發送到解碼子系統1062并將接下來的10幀發送到顯示子系統1022。一般在某些實施例中,對于解碼子系統1062的處理負擔要更重些,使得在這些特定的說明性實施例中,更有利的是將大多數圖像數據幀發送到顯示子系統1022。 例如,在一個說明性實施例中,例如成像子系統400可以以大約每秒60到70幀的速率獲取圖像數據幀,但是這將取決于照明及其他因素;例如解碼子系統1062能夠同時處理最多3個幀,并且例如大約每秒20或24幀,以便針對可解碼特征分析圖像數據幀并且對這些可解碼特征執行嘗試解碼;以及在一個說明性實施例中,例如,顯示子系統1022可以操作為顯示每秒25幀的最大幀速率,而在顯示器中的更高的幀速率會超出如論用什么方法注意任何區別的人類視覺能力。在許多實施例中,通過結合更復雜的流解析處理可以獲得更大的優勢,更復雜的流解析處理可以通過軟件和/或硬件實現,用于將圖像數據幀分配給顯示子系統1022和/或解碼子系統1062。在各種實施例中,通過使用從顯示子系統1022和/或解碼子系統1062提供返回給流解析器1070的反饋,可以有利地改進這些流解析處理。這同樣在圖2中的流程圖200的一個說明性實施例中示出,如在方框513中,其示出了在該說明性實施例中,解碼子系統1062可以為流解析器1070提供與如下有關的信息,例如用于執行嘗試解碼的可用處理能力、或可解碼特征的成功解碼。此外,如方框523所示,顯示子系統1022可以為流解析器1070提供與如下有關的信息,例如用于顯示屏1222的幀速率,以及圖像質量特性(比如曝光、模糊、抖動)、相對于圖像分辨率的可解碼特征的大小、或者相對于視場邊緣的可解碼特征的位置。在這個說明性實施例中,流解析器1070可以使用諸如這些說明性例子中的來自顯示子系統1022和/或解碼子系統1062的反饋來確定如何解析在顯示子系統1022和解碼子系統1062之間的正在進行的圖像數據幀流。更詳細地查看在說明性的設備1000中的這些各種組件之間是如何相關的,圖3中示出了設備1000的各種組件作為示例性的硬件平臺,用于支持此處描述的操作。設備1000可以包括透鏡組裝件250,其可以適于將位于視場1240內的目標110的圖像聚焦到圖像傳感器陣列1033上。設備1000的視場1240和圖像傳感器陣列1033可由與圖像傳感器陣列1033組合的透鏡組裝件250來限定。圖像傳感器1032可以包括具有按像素行和像素列排列的像素的多像素圖像傳感器陣列1033,像素行和像素列與列電路1034和行電路1035相關聯。與圖像傳感器1032相關聯是放大電路1036 (放大器)和模擬到數字轉換器1037,該模擬到數字轉換器1037將從圖像傳感器陣列1033讀出的模擬信號形式的圖像信息轉換成數字信號形式的圖像信息。圖像傳感器1032還可以具有關聯的定時和控制電路1038,用于控制例如,圖像傳感器1032的曝光周期、施加到放大器1036的增益。在這個說明性實施例中,注解的電路組件1032、1036、1037、和1038可以封裝到共同的圖像傳感器集成電路1040中。在各種實施例中,圖像傳感器集成電路1040可結合少于注解的組件數量。在一個說明性的例子中,圖像傳感器集成電路1040可以例如,由可從MICRONTECHNOLOGY公司得到的MT9V022 (752 X 480像素陣列)或MT9V023 (752 X 480像素陣列)圖像傳感器集成電路所提供。在一個說明性的例子中,圖像傳感器集成電路1040可以由可從ARECONT VISION得到的AV21052百萬像素色彩(1600 X 1200像素陣列)所提供。在一個說明性的例子中,圖像傳感器集成電路1040可以由可從MICRON TECHNOLOGY公司得到的 MTD001C12STC 2百萬像素色彩(1600*1200像素陣列)所提供。在一個說明性的例子中,圖像傳感器集成電路1040可以并入拜耳(Bayer)模式濾波器,以便在圖像傳感器陣列處限定在紅色像素位置處的紅色像素、在綠色像素位置處的綠色像素、以及在藍色像素位置處的藍色像素。利用這種并入拜耳模式的圖像傳感器陣列所提供的幀可以包括在紅色像素位置處的紅色像素值、在綠色像素位置處的綠色像素值、以及在藍色像素位置處的藍色像素值。在并入了拜耳模式圖像傳感器陣列的一個說明性的實施例中,在使幀受到進一步處理之前,處理器1060可以使用綠色像素值在綠色像素位置中間的幀像素位置處插入像素值以用于圖像數據單色幀的顯像。在其他說明性的實施例中,在使幀受到進一步處理之前,處理器1060可以利用紅色像素值在紅色像素位置的中間插入像素值以用于圖像數據單色幀的顯像。在另一個說明性的實施例中,在使幀受到進一步處理之前,處理器1060可以利用藍色像素值在藍色像素位置的中間插入像素值。在設備1000操作過程中,圖像信號可以從圖像傳感器1032讀出、被轉換、并被存儲到比如RAM 1080的系統存儲器中。在各種實施例中,移動裝置1000可以包括一個或多個存儲器組件1085,該一個或多個存儲器組件1085可以說明性地包括RAM 1080、比如EPROM1082的非易失性存儲器、記憶存儲設備1084、以及各種任何其他類型存儲器組件。在說明性的實施例中,記憶存儲設備1084可以說明性地是或包括閃速存儲器,硬盤驅動器,RAM、EPROM、EEPR0M、DVD-ROM、CD-ROM中的任何類型,或者其他類型的ROM、光盤、磁盤、磁帶盒、磁帶,或者任何其他類型的易失性或非易失性或可移除或非可移除存儲器或數據存儲組件。在各種說明性實施例中,設備1000可以包括處理器1060,處理器1060可適于讀出存儲在存儲器1080中的圖像數據并使這樣的圖像數據經受各種圖像處理算法。例如,在各種實施例中,一個或多個諸如處理器1060的處理器可以說明性地是或者包括中央處理單元(CPU)、復雜可編程邏輯器件(CPLD)、專用集成電路(ASIC)、現場可編程門陣列(FPGA)、圖形處理單元(GPU)、或能夠處理邏輯操作的任何類型的電路。在各種說明性實施例中,設備1000還包括提供總線仲裁的系統總線1500,系統總線1500可以包括各種任何總線結構,諸如使用各種任何體系結構的存儲器總線或存儲器控制器、外圍總線、或本地總線。例如,在各種實施例中,這可以包括外圍組件互連(PCI)或Mezzanine總線、工業標準體系結構(ISA)總線、增強的工業標準體系結構(EISA)總線、微通道體系結構(MCA)總線、視頻電子標準協會(VESA)總線,或其他總線體系結構。在該說明性的實施例中,設備1000還包括流解析器1070。例如,流解析器1070可以包括直接存儲器訪問單元(DMA)或其他類型的處理元件。在各種實施例中,流解析器1070可以將從圖像傳感器1032中讀出的已經受到轉換的圖像信息路由到RAM 1080。用于在圖像傳感器1032和RAM 1080之間提供有效數據傳輸的系統總線體系結構和/或直接存儲器訪問組件的其他實施例,可以被包含在各種實施例中。在其他實施例中,例如,流解析器可包括或涉及處理器1060、其他處理器、單獨的直接存儲器訪問單元、和/或由任何這些硬件元件所執行的功能。在不同的實施例中,流解析器的不同實現可以包括或涉及任何一個或多個硬件元件和/或軟件元件。在各種實施例中,設備1000可以包括照明子系統800,用于照明比如目標110的目標區域和投射照明圖案1260。在各種實施例中,其他相關設備也可以沒有照明子系統800。例如,在圖I和圖3中所示的實施例中,照明圖案1260可以被投射為近以但大于視場1240所限定的區域,但是也可以被投射到比視場1240所限定義區域小的區域中。在各種實施例中,照明子系統800還可以包括照明透鏡組裝件803,如圖3的實施例中所示。除了照明透鏡組裝件803之外或是替代照明透鏡組裝件803,照明子系統800可以包括替代的光整型光學器件,比如,一個或多個擴散器、反射鏡、以及棱鏡。使用中,可以由操作者以照明圖案1260被投射到可解碼特征120這樣的方式將設備1000相對于目標區域定向,該目標區域包含帶有可解碼特征120的目標110使得。可解碼特征120可以包括任何類型的字符、符號、或其他可易于被解碼的視覺上可檢測的特征。如說明性的例子,這可以包括可被任何各種光學字符識別(OCR)技術所解碼的字符和/或數字、或者一維或二維條形碼。參考設備1000的進一步多個方面,可以使用電源輸入單元1202控制透鏡組裝件250。在一個實施例中,電源輸入單元1202可以操作為受控電壓源,以及在另一個實施例中,操作為受控電流源。可以使用光源控制電路1206來控制照明圖案光源組裝件801。光源控制電路1206可以向照明圖案光源組裝件801發送信號,例如,用于改變由照明圖案光源組裝件801輸出的照明級別。設備1000的特定元件,例如,圖像傳感器集成電路1040(以及圖像傳感器陣列1033)、成像透鏡240、以及照明子系統800可以被封裝到成像模塊400中,該成像模塊400可以被并入手持外殼1014中。在其他實施例中,設備可以不具有照明子系統。在該說明性的實施例中,設備1000可以包括多個外圍設備,說明性地包括觸發器1220 (圖3中以框圖形式所描繪的),該觸發器1220可以用來使觸發信號活動,以便激活幀讀出和/或特定解碼處理。移動設備1000可以被適配以使得激活觸發器1220來激活觸發信號和啟動解碼嘗試。具體地,可操作設備1000以便響應觸發信號的激活,借助于從來自圖像傳感器陣列1033(通常以模擬信號的形式)讀出圖像信息來捕捉一連串的幀,并接著在將轉換后的圖像信息存儲在存儲器1080中(其可以在給定的時間緩沖一連串幀中的一個或多個)。在各種說明性實施例中,輸入機構1224、外殼1014上的另外一個鍵、或顯示 屏1222上的虛擬按鈕或小配件可被指派為起觸發器的作用,以便用戶來啟動該觸發信號。處理器1060,以及例如運行在處理器1060上并作為解碼子系統1062的處理元件或軟件模塊,可以操作為使一連串幀圖像數據幀中的一個或多個受到對圖像數據幀中的一個或多個可解碼特征的嘗試解碼。在圖3的說明性 實施例中,解碼子系統1062可為處理器1060的一部分被包括。解碼子系統1062可以涉及一個或多個固件元件,和/或運行在處理器1060上的軟件模塊,和/或可涉及在處理器1060上的一個或多個專用硬件元件。在其他說明性元件中,解碼子系統1062可以包括一個或多個單獨的處理器或者其他硬件和/或軟件元件。在一個說明性的實施例中,為了嘗試解碼可解碼特征,比如一組書寫字符、或者一維或二維條碼、或其他一個或多個符號,設備1000的解碼子系統1062可處理與一組像素位置對應的幀的圖像數據(例如,像素位置的行、列、對角線集合、平面等等)以確定暗單元和亮單元的空間圖案并且可以將所確定的每個亮單元和暗單元圖案轉換為字符或字符串,t匕如通過使用光學字符識別OCR)、其他模式識別或機器學習方法、查找表、或其他手段。例如,在可解碼標記表示是2D條形碼符號體系的情況下,解碼嘗試可包括步驟使用特征檢測算法來定位取景器圖案(finder pattern),根據與取景器圖案的預定關系來定位與取景器圖案相交的矩陣行,沿該矩陣行來確定暗單元和亮單元的圖案,以及將每個光圖案轉換為字符或字符串。設備1000可以包括用于將各種外圍設備耦合到系統地址/數據總線(系統總線)1500的各種接口電路,用于與同樣耦合到系統總線1500的處理器1060和解碼子系統1062通信。設備1000可以包括用于將圖像傳感器定時和控制電路1038耦合到系統總線1500的接口電路1028、用于將電源輸入單元1202耦合到系統總線1500的接口電路1102、用于將照明光源組控制電路1206耦合到系統總線1500的接口電路1106、以及用于將觸發器1220耦合到系統總線1500的接口電路1120。設備1000還包括顯示子系統1022,顯示子系統1022包括顯示接口 1122,以及經由顯示接口 1122耦合到系統總線1500的顯示屏1222并且由此與處理器1060和解碼子系統1062通信。輸入機構1224也經由連接到系統總線1500的輸入機構接口 1124與處理器1060通信。輸入機構1224可以是光學跟蹤板、觸摸板、軌跡球、功能按鈕、或任何其他類型的輸入機構。移動設備1000還可以包括耦合到系統總線1500的鍵盤1226。鍵盤1226可以經由連接到系統總線1500的鍵盤接口 1126與處理器1060通信。鍵盤1226可以是滑出式鍵盤、或在顯示屏1222上渲染的虛擬鍵盤。其他實施例可以具有在其前表面上的物理鍵盤或小鍵盤(在圖I中未描繪)。設備1000還可以包括經由接口 1108耦合到系統總線1500的范圍檢測單元1208。各種實施例可以包括瞄準器、光級別傳感器、加速計、羅盤、GPS傳感器、和/或其他輸入組件中的任意。設備1000可以在被稱為幀速率的速率下捕捉圖像數據幀。在一個說明性的實現方式中,該幀速率可以是60幀每秒(FPS),其轉換為幀時間(幀周期)為16. 6毫秒。在另一個說明性的實現方式中,該幀速率可以是30幀每秒(FPS),其轉換為幀時間(幀周期)為每幀33. 3毫秒。可以通過減小幀圖片尺寸來提高設備1000的幀速率(以及減少幀時間)。一個說明性的實施例可以使用AV2105圖像傳感器集成電路,其中可選擇最大分辨率圖像尺寸(1600X1200),這可產生24FPS的幀速率。選擇HDTV窗口化圖片尺寸(1280X1024)可以產生32FPS的幀速率。使用MT9D001C12STC圖像傳感器集成電路,可選擇最大分辨率圖片尺寸(1600X1200),這可產生20FPS的幀速率。選擇SXGA窗口化圖片尺寸可以產生28FPS的幀速率。例如,用于捕捉圖像數據幀的幀速率同樣可以是動態的,并且可以基于照明或環境光級別和曝光時間而變化。例如,可以分析進來的預覽幀速率,并且如果幀速率下降低于特定的閾值,則可包括一個或多個LED燈的相機的照明子系統800能被自動供能。在各種實施例中,圖像信號處理驅動或應用可以被并入移動設備1000中。在流解析器1070將圖像數據幀分配到解碼子系統1062或者顯示子系統1022之前,該圖像信號處理驅動可以對將圖像數據幀從圖像傳感器陣列1033加載到緩沖存儲器組件的處理進行指令,該緩沖存儲器組件例如是對流解析器1070可用的RAM 1080。在一個說明性的實施例中,移動設備1000可以并入雷德蒙、華盛頓的微軟公司的DirectShow媒體管理軟件的版本,其可以涉及對將圖像數據幀從圖像傳感器陣列1033加載到如RAM 1080的緩沖器中的處理進行指令。在各種其他實施例中,移動設備1000可以結并入其他視頻驅動或其他圖像信號驅動。例如,一旦成功地執行了將可解碼特征解碼為解碼的消息,其將被呈現給用戶,并 且用戶可以采取進一步的步驟,比如通過任何各種手段以及任何各種格式,將該消息保存或傳送到本地或遠程數據存儲元件或其他目的地。這可由用戶向顯示屏1222、輸入機構1224、或其他輸入元件進行輸入來完成。例如,該消息可被存儲到設備1000的儲存存儲器1084,例如,該儲存存儲器1084可以包括閃速存儲器或者硬盤驅動器。在各種說明性實施例中,可以操作設備1000使得顯示屏1222渲染流視頻輸出或其他圖像幀系列,示出了正由相機或成像子系統400成像的由流解析器1070分配到顯示子系統1022的圖像幀的部分的實時部分。該視頻輸出可以在促進對用成像子系統400成像的可解碼特征的成功解碼中為多種有用的目的服務。例如,一個說明性的實現方式可以允許用戶觀看流視頻回放,該流視頻回放流示出了設備1000正如何成像目標110,以及示出了目標文件110何時是相對平的、光線充足的、以及被包含在成像子系統400的視場1240之內。分配到在顯示屏1222上渲染的預覽視頻流的圖像數據幀、和/或分配到解碼子系統的圖像數據幀,與其所基于的高分辨率幀相比可以使它們的分辨率減少以及使每個幀中的數據量相應減少。在不同的實施例中,這使得能夠降低處理負擔并降低對顯示屏1222上幀的渲染進行處理和/或為嘗試解碼圖對像數據幀進行處理的持續時間。在給定的實施例中這是否是有利的取決于可用的處理能力及其他硬件以及軟件的約束。圖4描繪了根據一個說明性的實施例的用于成像應用圖形用戶接口的用戶指導圖標301、302、303,例如,該用戶指導圖標可以被渲染在設備1000的顯示屏1222上。用戶指導圖標301指示用戶朝目標可解碼特征更接近地移動設備1000。例如,如果設備1000檢測到可解碼特征的存在,但是檢測到它們在視場中相對較小,并且成像分辨率是約束嘗試解碼的限制因素,則可提供此用戶指導圖標301。用戶指導圖標302指示用戶更加遠離目標可解碼特征來移動設備1000。例如,如果設備1000檢測到可解碼特征的存在,但是檢測到可解碼特征延伸到視場1240之外,并且被視野1240的邊緣所切斷,則可提供此用戶指導圖標302。用戶指導圖標303指示用戶設備1000的過度運動干擾了成像,并且應該使設備1000保持靜止。如果設備1000檢測到抖動或者可解碼特征中缺乏清晰度,或者圖像數據的一個幀與下一幀的過度差異,則可提供此用戶指導圖標303。在各種說明性實施例中,并入設備1000中的加速計(未描繪出)也可以檢測抖動并將抖動提供給比如顯示子系統1028、流解析器1070、和/或解碼子系統1062的其他處理元件。顯示子系統1022對過度運動分析圖像數據幀可例如涉及,從當前預覽圖像到先前的一個而比較像素塊組,并且例如,對像素組的任何紅、綠或藍的總值做出的改變已經改變了多于規定的量。例如,該運動檢查從當前預覽圖像到先前的一個而比較像素組。在這個說明性實施例中,如果任何像素組的紅、綠或藍的總值已經改變了多于規定的量,則指導圖標303會在顯示屏1222上示出。除了可在各種實施例中使用的其它潛在用戶指導圖標之外,設備1000的顯示子系統1028可以操作為描繪圖4中示出的任何用戶指導圖標。作為其他例子,附加的用戶指導圖標可以包括用直的或彎曲的箭頭提示用戶在各種指示的直的或者旋轉方向的任意之一上移動設備1000,以及在不同的實施例中有用的各種附加用戶圖標,用于指導用戶改進由成像子系統400所獲取的圖像數據幀中的各種圖像質量特征的狀況。可以使用各種用戶指導圖標來指導用戶采取許多類型的動作以改進對文檔捕捉的成像質量。在各種實施例中,用戶指導圖標或提示可以采用或者伴隨任何用戶可察覺的方式,說明性地包括聲音或 音頻輸出、觸覺輸出、或任何類型的圖形或其他視覺輸出,并且可以包括任何輸出的組合。質量成像標準中的失敗可以在指定的時間周期上被聚集使得操作者不被呈現有快速改變的指令。顯示子系統1022可以是設備1000的組件,該組件為各種圖像質量特性而評估圖像數據幀,并且特別地只是由流解析器1070分配給顯示子系統1022的圖像數據幀。在各種圖像質量特性中的差分辨率、被視場邊緣切斷、以及抖動或缺乏清晰度,是可以被用戶改正的并且可以通過提供用戶指導圖標來指示用戶如何操作設備1000以改進成像質量并增加成功解碼的可能性來被改進。顯示子系統1022可執行以下兩者評估這些圖像質量特性并然后在顯示屏1222上顯示任何各種用戶指導圖標,和/或將信息傳送回流解析器1070或解碼子系統1062,該信息例如關于可被設備1000自動改進的有問題的圖像質量特性。例如,顯示子系統1022可以評估比如曝光和焦距的圖像質量特性。如果圖像曝光不足或者過度曝光,顯示子系統1022可以提供反饋以改變幀的曝光時間和/或開始使用或停止使用或改變來自照明子系統800的照明級別。如果聚焦不好,顯示子系統1022可以提供反饋以將成像子系統自動聚焦在成像目標上。例如,可根據從終端1000到成像目標的估計距離來設置透鏡焦距,其可由范圍檢測單元1208來協助,或者可以改為使用自動聚焦模式。例如,顯示子系統1022的這些各種功能可以通過顯示接口 1122來執行,其可以執行重要的獨立的處理功能。在各種實現方式中,例如,顯示接口 1122可以包括圖形處理單元(GPU)或者其他專用形式的顯示處理元件。如果檢測到差的圖像質量特性,并且由顯示子系統1022中繼回流解析器1070,則該流解析器1070還可以決定將接下來的若干圖像數據幀全部發送到顯示子系統1022,潛在地直到顯示子系統1022報告返回該圖形質量特性已經改善,因為具有差的圖像質量特性的這些圖像數據幀不大可能導致成功解碼其中的任何可解碼特征。在一個說明性的實施例中,流解析器1070還可以接收來自解碼子系統1062的反饋,該解碼子系統正以其在嘗試解碼一個或若干個圖像數據幀的完全處理能力下工作,并且流解析器1070可以然后將所有進來的圖像數據幀分配給顯示子系統1062,直到解碼子系統1062對流解析器1070報告返回解碼子系統再次具有可用處理能力以對新的圖像數據幀運行嘗試解碼。解碼子系統1062也可以在其完成可解碼特征的成功解碼時報告返回給流解析器1070,其中流解析器1070可以用一些其他步驟來響應,比如將所有隨后進來的圖像數據幀分配給顯示子系統1062,例如,直到接收到開始對新的可解碼特征進行成像的后繼信號。在另一個操作模式中,流解析器1070可以被設置為繼續將圖像數據幀分配給解碼子系統1062以便對在長期運行的圖像數據幀序列中的多個可解碼特征進行連續解碼嘗試,直到收到肯定結束該解碼嘗試的某些外部指令。在一個說明性的實施例中,例如,如果成像子系統400生成圖像數據幀快于由解碼子系統1062解碼處理圖像數據幀或者由顯示子系統1022有效顯示及分析圖像數據幀,則流解析器1070也可以決定不將某些圖像數據幀分配給解碼子系統1062或者顯示子系統1022,而僅讓它們被后繼的圖像數據幀所改寫。在這種情況下,在這個說明性的實施例中,流解析器1070也可以報告返回給成像子系統400以降低圖像獲取的速率,在這個說明性的實施例中,其可以使設備100的操作更能量有效,而沒有解碼子系統1062或者顯示子系統1022的操作的任何性能損失。在一個說明性的實施例中,可操作設備1000可以操作使得可經由菜單選擇以及也可由基于XML的配置文件來針對流解析器如何分配圖像數據幀的不同協議,而將設備1000配置為用于任何若干可選流解析模式。在各種說明性實施例中,可以使用合適的軟件開發包的編輯器來編輯XML文件,該軟件開發包可隨移動設備1000銷售、在網站下載提供,或以其它方式可得到。配置文件可以包含若干部分,每個部分都可以包含密鑰,該密鑰定義了用于成像和對可解碼特征執行嘗試解碼的操作參數。可操作設備1000使得不同配置選項顯示在顯示屏1222上的菜單上。移動設備1000的用戶接口也可通過配置設備1000來被提供,配置設備1000以操作為通過解碼編程條形碼符號來被重新編程,該編程條形碼符號可以被設備1000掃描和解碼,其中解碼的信息作為設備1000的編程指令被接收。圖5描繪了具有顯示子系統的設備1000的頂部視圖,該顯示子系統具有在顯示屏1222上的成像應用圖形用戶接口,顯示了來自用成像子系統獲取的圖像數據流中的圖像數據幀,其中圖像數據示出了目標110的渲染210以及在目標110上的可解碼特征120的渲染220。圖5還描繪了顯示屏1222,顯示屏1222示出了指示保持該設備靜止的說明性的用戶指導圖標303。顯示屏1222還示出了來自成功解碼可解碼特征120的信息,以輸出文本320的形式在顯示屏1222上的文本框311中顯示,其中輸出文本320表示來自可解碼特征120的解碼信息。輸出文本320的信息來自分配給解碼子系統1062的不同的圖像數據幀,而不是分配給發送到顯示子系統1022的用于形成在顯示屏1222上的目標110的渲染210的圖像數據幀。輸出文本320與顯示在顯示屏1222上的圖像渲染220非常不同,其中輸出文本320是以基于成功解碼可解碼特征120所生成的信息而由設備1000所提供的文本形式,以及其中該信息可以被存儲、傳送、或用作文本本身,而不是作為未解碼圖像。在本文所闡述的裝置和方法中,在此闡述
Al. —種設備,包括
成像子系統,能夠提供表示所述成像子系統上的入射光的圖像數據幀;
一個或多個存儲器組件,操作為暫時地存儲圖像數據幀;
顯示子系統,包括顯示屏,并且操作為接收圖像數據幀,并且在顯示屏上渲染圖像數據幀;
解碼子系統,包括一個或多個處理器,操作為接收圖像數據幀,并且對在至少一個圖像數據幀中表示的可解碼特征執行嘗試解碼;以及
流解析器,通信連接一個或多個存儲器組件、顯示子系統、以及解碼子系統,并且操作為將第一組圖像數據幀分配給顯示子系統,以及將第二組圖像數據幀分配給解碼子系統,其中沒有數據幀既分配給顯示子系統又分配給解碼子系統。
A2.A1的設備,其中將大多數圖像數據幀分配給顯示子系統。
A3. Al的設備,其中流解析器將圖像數據幀的預先選擇的部分分配給顯示子系統或解碼子系統。
A4.A1的設備,其中該流解析器包括硬件組件,該硬件組件被配置為將圖像數據幀的預先設置部分分配給顯示子系統并將其余圖像數據幀分配給解碼子系統。
A5. Al的設備,其中流解析器接收有關幀速率的信息,在該幀速率下顯示子系統能夠渲染圖像數據幀,并至少部分地基于制止將圖像數據幀分配給顯示子系統的速率快于顯示子系統能夠渲染該圖像數據幀的幀速率,將該圖像數據幀分配給顯示子系統或解碼子系統。
A6.A1的設備,其中該流解析器接收來自解碼子系統的反饋,并至少部分地基于來自解碼子系統的反饋,將新的圖像數據幀分配給顯示子系統或解碼子系統。
A7.A6的設備,其中來自解碼子系統的反饋包括有關解碼子系統當前是否具有可用來對另一圖像數據幀執行嘗試解碼的空余處理能力的信息,并且如果當前圖像數據幀本要被分配給解碼子系統,但是該解碼子系統當前并沒有可用來對另一圖像數據幀執行嘗試解碼的空余處理能力,則將該當前圖像數據幀分配給顯示子系統。
AS、A6的設備,其中來自解碼子系統的反饋包括有關該解碼子系統已經對其當前處理的一個或多個數據幀執行嘗試解碼多久的信息。
A9、A1的設備,還操作為分析一個或多個圖像質量特性,包括分配給顯示子系統的圖像數據幀的抖動、曝光、以及聚焦中的至少一個,并基于至少一個該圖像質量特性,為顯示子系統或解碼子系統中的至少一個提供輸出。
A10、A9的設備,還操作為評估至少一個該圖像質量特性是否在選擇的圖像質量閾值之夕卜,并且如果分配給顯示子系統的第一圖像數據幀中的至少一個圖像質量特性在所選擇的圖像質量閾值之外并且緊接該第一幀之后的第二圖像數據幀本要分配給解碼子系統,則將該第二圖像數據幀分配給顯示子系統。
AlUAlO的設備,還操作為向用戶指導圖標提供該第二圖像數據幀,其中該用戶指導圖標包括對改進第一圖像數據幀中的在所選擇的圖像質量閾值之外的至少一個圖像質量特性有用的信息。
A12、All的設備,其中該用戶指導圖標包括疊加在顯示屏上的圖像數據幀的渲染上的裁剪標記。
A13、A12的設備,其中該裁剪標記從以下裁剪標記中選擇指示該設備應當被保持靜止的裁剪標記;指示該設備應當移動得更接近目標的裁剪標記;指示該設備應當移動得更遠離目標的裁剪標記;以及指示該設備應當在相對于目標的側向方向上移動的裁剪標記。
A14、A1的設備,其中該解碼子系統包括對最大數量的圖像數據幀執行同步嘗試解碼的處理能力,以及該流解析器操作為首先將圖像數據幀分配給解碼子系統,直到已經分配了最大數量的幀,對于該最大數量的幀,該解碼子系統具有執行同步嘗試解碼的處理能力,并接著將所有的后繼圖像數據幀分配給顯示子系統,直到該解碼子系統具有對另一個圖像數據幀執行嘗試解碼的空余處理能力,或者該解碼子系統成功地解碼可解碼特征。
A15、一種計算機可讀存儲介質,包括可執行指令,操作為使一個或多個處理元件能夠用于
將來自圖像數據流中的圖像數據幀分配給顯示子系統或解碼子系統;
其中該顯示子系統操作為在顯示屏上渲染圖像數據幀;
其中該解碼子系統操作為接收圖像數據幀并對在至少一個圖像數據幀中表示的可解碼特征執行嘗試解碼;
其中沒有圖像數據幀既被分配給顯示子系統又被分配給解碼子系統。
A16、A15的計算機可讀存儲介質,其中將大多數圖像數據幀分配給顯示子系統。
A17、A15的計算機可讀存儲介質,還包括接收有關幀速率的信息,在該幀速率下顯示子系統能夠渲染圖像數據幀,并至少部分地基于制止將圖像數據幀分配給顯示子系統的速率快于顯示子系統能夠渲染該圖像數據幀的幀速率,將該圖像數據幀分配給顯示子系統或解碼子系統。
A18、A15的計算機可讀存儲介質,還包括接收來自解碼子系統的關于該解碼子系統當前是否具有可用來對另一圖像數據幀執行嘗試解碼的空余處理能力的反饋,并且如果當前圖像幀本要被分配給解碼子系統,但是該解碼子系統當前沒有可用來對另一圖像幀執行嘗試解碼的空余處理能力,則將該當前圖像數據幀分配給顯示子系統。
A19、A15的計算機可讀存儲介質,還包括評估從分配給顯示子系統的第一圖像數據幀中的抖動、曝光、以及聚焦中選擇的至少一個圖像質量特性是否在選擇的圖像質量閾值之夕卜,并且如果是,則將緊接的后繼圖像數據幀系列連同用戶指導圖標分配給顯示子系統,該用戶指導圖標包括對改進第一圖像數據幀中的在所選擇的圖像質量閾值之外的至少一個圖像質量特性有用的信息。
A20、A15的計算機可讀存儲介質,還包括首先將圖像數據幀分配給解碼子系統,直到已經分配了最大數量的幀,對于該最大數量的幀,該解碼子系統具有執行同步嘗試解碼的處理能力,并接著將所有的后繼圖像數據幀分配給顯示子系統,直到該解碼子系統具有對另一圖像數據幀執行嘗試解碼的空余處理能力,或者該解碼子系統成功地解碼可解碼特征。雖然已經參考多個特定實施例描述了本發明,將理解的是,本發明的真實精神和范圍應當只相對于可被本說明書支持的權利要求來限定。此外,雖然在此處的許多情況下,其中系統和裝置和方法被描述為具有特定數量的元件,但將理解的是,這樣的系統、裝置和方法可以被實現為具有少于或多于提到的特定數量的元件。例如,雖然公開了的流解析器、解碼子系統、以及顯示子系統的各種說明性實施例,相關領域的技術人員將很好的理解的是,這些元件中的每個的部分或全部處理功能可以通過單個處理元件、或任意數量的處理元件運行可以包括在單個軟件包中或是分布在多個軟件模塊、程序、庫、應用、協議、或其他單元之間的軟件而被執行。同樣,雖然已經描述了多個特定實施例,將理解的是,參考每個特定實施例所已經描述的多個特征和方面,可用于每個其余的特定描述的實施例。
權利要求
1.一種設備,包括 成像子系統,能夠提供表示所述成像子系統上的入射光的圖像數據幀; 一個或多個存儲器組件,操作為暫時地存儲圖像數據幀; 顯示子系統,包括顯示屏,并且操作為接收圖像數據幀,并且在顯示屏上渲染圖像數據幀; 解碼子系統,包括一個或多個處理器,操作為接收圖像數據幀,并且對在至少一個圖像數據幀中表示的可解碼特征執行嘗試解碼;以及 流解析器,通信連接一個或多個存儲器組件、顯示子系統、以及解碼子系統,并且操作為將第一組圖像數據幀分配給顯示子系統,以及將第二組圖像數據幀分配給解碼子系統。
2.權利要求I的設備,其中將大多數圖像數據幀分配給顯示子系統。
3.權利要求I的設備,其中流解析器將圖像數據幀的預先選擇的部分分配給顯示子系統或解碼子系統。
4.權利要求I的設備,其中該流解析器包括硬件組件,該硬件組件被配置為將圖像數據幀的預先設置部分分配給顯示子系統并將其余圖像數據幀分配給解碼子系統。
5.權利要求I的設備,其中流解析器接收有關幀速率的信息,在該幀速率下顯示子系統能夠渲染圖像數據幀,并至少部分地基于制止將圖像數據幀分配給顯示子系統的速率快于顯示子系統能夠渲染該圖像數據幀的幀速率,將該圖像數據幀分配給顯示子系統或解碼子系統。
6.權利要求I的設備,其中該流解析器接收來自解碼子系統的反饋,并至少部分地基于來自解碼子系統的反饋,將新的圖像數據幀分配給顯示子系統或解碼子系統。
7.如權利要求6的設備,其中來自解碼子系統的反饋包括有關解碼子系統當前是否具有可用來對另一圖像數據幀執行嘗試解碼的空余處理能力的信息,并且如果當前圖像數據幀本要被分配給解碼子系統,但是該解碼子系統當前沒有可用來對另一圖像數據幀執行嘗試解碼的空余處理能力,則將該當前圖像數據幀分配給顯示子系統。
8.權利要求6的設備,其中來自解碼子系統的反饋包括有關該解碼子系統已經對其當前處理的一個或多個數據幀執行嘗試解碼多久的信息。
9.權利要求I的設備,還操作為分析一個或多個圖像質量特性,包括分配給顯示子系統的圖像數據幀中的抖動、曝光、以及聚焦中的至少一個,并基于至少一個該圖像質量特性,為顯示子系統或解碼子系統中的至少一個提供輸出。
10.權利要求9的設備,還操作為評估至少一個該圖像質量特性是否在選擇的圖像質量閾值之外,并且如果分配給顯示子系統的第一圖像數據幀中的至少一個圖像質量特性在所選擇的圖像質量閾值之外并且緊接該第一幀之后的第二圖像數據幀本要分配給解碼子系統,則將該第二圖像數據幀分配給顯示子系統。
11.權利要求10的設備,還操作為向用戶指導圖標提供該第二圖像數據幀,其中該用戶指導圖標包括對改進第一圖像數據幀中的在所選擇的圖像質量閾值之外的至少一個圖像質量特性有用的信息。
12.權利要求11的設備,其中該用戶指導圖標包括疊加在顯示屏上的圖像數據幀的渲染上的裁剪標記,其中該裁剪標記從以下裁剪標記中選擇指示該設備應當被保持靜止的裁剪標記;指示該設備應當移動得更接近目標的裁剪標記;指示該設備應當移動得更遠離目標的裁剪標記;以及指示該設備應當在相對于目標的側向方向上移動的裁剪標記。
13.權利要求I的設備,其中該解碼子系統包括對最大數量的圖像數據幀執行同步嘗試解碼的處理能力,以及該流解析器操作為首先將圖像數據幀分配給解碼子系統,直到已經分配了最大數量的幀,對于該最大數量的幀,該解碼子系統具有執行同步嘗試解碼的處理能力,并接著將所有的后繼圖像數據幀分配給顯示子系統,直到該解碼子系統具有對另一圖像數據幀執行嘗試解碼的空余處理能力,或者該解碼子系統成功地解碼可解碼特征。
14.權利要求I和13任一個的設備,其中第一組幀和第二組幀中沒有幀既被分配給顯示子系統又被分配給解碼子系統。
15.一種計算機可讀存儲介質,包括可執行指令,操作為使一個或多個處理元件能夠用于 將來自圖像數據流中的圖像數據幀分配給顯示子系統或解碼子系統; 其中該顯示子系統操作為在顯示屏上渲染圖像數據幀; 其中該解碼子系統操作為接收圖像數據幀并對在至少一個圖像數據幀中表示的可解碼特征執行嘗試解碼。
全文摘要
公開了用于適應性視頻捕捉解碼系統的設備、方法和軟件,該系統在設備顯示屏和對圖像幀中的可解碼特征執行解碼嘗試的處理器之間有效地管理圖像幀流。在一個說明性實施例中,一種設備將來自圖像數據幀流的圖像數據幀分配給顯示子系統或解碼子系統。該顯示子系統操作為在顯示屏上渲染圖像數據幀。該解碼子系統操作為接收圖像數據幀并對在至少一個該圖像數據幀中表示的可解碼標記執行嘗試解碼。沒有數據幀既被分配給顯示子系統又被分配給解碼子系統。
文檔編號H04N7/26GK102685466SQ20121007656
公開日2012年9月19日 申請日期2012年1月31日 優先權日2011年1月31日
發明者J·T·小索爾魏因 申請人:手持產品公司