專利名稱:用于視頻幀旋轉的方法和裝置的制作方法
用于視頻幀旋轉的方法和裝置相關申請的交叉引用本申請要求2010年12月23日提交的第61/427,0 號美國臨時申請“Method and Apparatus for Video Frame Rotation”的權益,其整體通過引用并入于此。
背景技術:
在此提供的背景技術描述出于一般性地呈現本公開的上下文的目的。當前指定的發明人的工作,就在本背景技術部分中描述的工作的范圍而言,以及在提交時可能不符合現有技術的描述的方面,既不明示也不暗示地被承認為其本公開的現有技術。一般而言,視頻捕獲裝置根據自然成像方向(native imaging oriention)來捕獲并處理視頻幀。當視頻捕獲裝置位于不同于自然成像方向的方向時,所捕獲的視頻幀需要在顯示之前被旋轉,以避免旋轉顯示屏幕或者避免要求查看者傾斜他或她的頭部。
發明內容
本公開的各個方面提供了一種用于視頻幀旋轉的方法。該方法包括接收形成視頻幀的多個瓦片中的第一瓦片。第一瓦片包括第一多個宏像素,其中每個宏像素交織在第一方向的至少一對相鄰像素。此外,該方法包括將第一多個宏像素解交織成第一像素,將第一像素映射成在第二方向的第一經旋轉的相鄰像素;以及將第一經旋轉的相鄰像素交織成形成第一經旋轉的瓦片的第一經旋轉的宏像素。在一種實施方式中,該方法包括接收形成視頻幀的多個瓦片中的第二瓦片。第二瓦片包括第二多個宏像素,其中每個宏像素交織在第一方向的至少一對相鄰像素。繼而,該方法包括將第二多個宏像素解交織成第二像素,將第二像素映射成在第二方向的第二經旋轉的相鄰像素,以及將第二經旋轉的相鄰像素交織成形成第二經旋轉的瓦片的第二經旋轉的宏像素。注意到,可以串行或者并行地處理第一瓦片和第二瓦片。在一種實施方式中,該方法包括從按照根據將視頻幀從第一方向旋轉到第二方向的旋轉角度的序列存儲視頻幀的存儲裝置中獲取多個瓦片。在另一實施方式中,該方法包括將第一經旋轉的瓦片寫入存儲裝置中,以將經旋轉的視頻幀存儲在根據將視頻幀從第一方向旋轉到第二方向的旋轉角度的地址處。根據本公開的一個方面,該方法包括檢測被配置為根據第一方向生成視頻幀的視頻捕獲裝置位于第二方向。此外,在一個示例中,該方法包括在視頻編碼之前預覽經旋轉的視頻幀。在另一示例中,該方法包括在視頻幀旋轉之后對經旋轉的視頻幀進行視頻編碼。在另一示例中,該方法包括在視頻幀旋轉之前對經編碼的視頻幀進行解碼。在另一示例中,該方法包括在對經解碼的視頻幀進行視頻幀旋轉之后進行顯示。在一種實施方式中,為了將第一像素映射成在第二方向的第一經旋轉的相鄰像素,該方法包括將第一像素映射成在相對于第一方向旋轉了 90度、180度和270度之一的第二方向的、所述第一經旋轉的相鄰像素。本公開的各個方面提供了一種電路。該電路包括輸入緩沖器、第一瓦片旋轉器和輸出緩沖器。輸入緩沖器被配置為緩沖來自形成視頻幀的多個瓦片中的第一瓦片。第一瓦片包括第一多個宏像素,第一多個宏像素中的每個宏像素交織在第一方向的至少一對相鄰像素。第一瓦片旋轉器被配置為將第一多個宏像素解交織成第一像素,將第一像素映射成在第二方向的第一經旋轉的相鄰像素,并且將第一經旋轉的相鄰像素交織成第一經旋轉的宏像素。輸出緩沖器被配置為緩沖第一經旋轉的宏像素以形成第一經旋轉的瓦片。本公開的各個方面提供了一種電子系統。該電子系統包括片上系統(SOC),該片上系統具有在該SOC上實現的所述電路。
將參考以下附圖詳細描述作為示例提出的本公開的各個實施方式,其中相似的數字指代相似的元件,并且其中圖1示出了根據本公開實施方式的系統示例100的框圖;圖2A示出了根據本公開實施方式的視頻幀旋轉器示例220A的框圖;圖2B示出了根據本公開實施方式的另一視頻幀旋轉器示例220B的框圖;圖3示出了根據本公開實施方式的旋轉流水線示例330的框圖;圖4A-圖4D示出了根據本公開實施方式的基于瓦片(tile)的視頻幀旋轉示例的繪圖;圖5A-圖5F示出了根據本公開實施方式的瓦片旋轉示例;以及圖6示出了根據本公開實施方式的、列出視頻幀旋轉的處理示例的流程圖。
具體實施例方式圖1示出了根據本公開實施方式的系統示例100的框圖。系統100包括實現為專用于視頻幀旋轉的集成電路模塊的旋轉模塊120。根據本公開的實施方式,旋轉模塊120被配置為如下專用硬件模塊,該專用硬件模塊與針對更一般用途的處理單元(諸如中央處理單元(CPU)、圖形處理單元(GPU)等)相比具有數量上小得多的晶體管。因而,使用旋轉模塊120用于視頻幀旋轉比使用CPU或GPU用于視頻幀旋轉消耗小得多的功率。此外,CPU 或GPU例如在旋轉模塊120執行視頻幀旋轉時免于進行視頻幀旋轉,并且可以同時執行其他的功能。根據本公開的實施方式,旋轉模塊120與其他適當電路一起集成在集成電路芯片上(諸如片上系統(SOC))。在圖1的示例中,系統100包括具有旋轉模塊120的SOC 110。 此外,在圖1的示例中,SOC 110包括存儲器控制器111、靜態隨機訪問存儲器(SRAM) 112、 CPU 113、顯示控制器114、視頻編碼器/解碼器115、相機控制器116以及系統總線118。在圖1所見的實施方式中,旋轉模塊120被配置為與CPU 113和GPU 117分離的模塊。如圖 1所示,在一種實施方式中,這些部件耦合在一起。存儲器控制器111控制對片上存儲器和片外存儲器(諸如S0C110上的SRAM 112、 SOC 110外的同步動態隨機訪問存儲器(SDRAM) 102以及其他適當的存儲器設備)的讀訪問和寫訪問。在一種實施方式中,CPU 113被配置用于一般用途,并且能夠執行適當的指令代碼,以執行期望的功能,諸如系統100的系統控制、視頻編輯等。在一種實施方式中,SOC110包括被配置用于一般圖形處理(諸如視頻編輯等)的GPU 117等。相機控制器116使得SOC 110能夠與相機傳感器101進行通信。在一種實施方式中,相機控制器116接收與相機傳感器101所捕獲的視頻幀對應的數據流,并經由系統總線 118向SOC 110的其他部分提供該數據流。在示例中,相機傳感器101被配置為具有稱之為自然成像方向的特定方向。在一種實施方式中,相機傳感器101被配置為捕獲視頻幀,并在自然成像方向逐行地發送視頻幀的像素數據。在示例中,注意到,像素數據是處于壓縮格式(諸如YUV(YCbCr)格式)等。在示例中,兩個像素A和B是相鄰(鄰近)像素。像素A具有分量YaUaVa,并且像素B具有分量 YBUBVB。像素A和像素B的分量交織以形成具有分量UabYaVaJb的宏像素AB。Uab是Ua和Ub 的均值,并且Vab是Va和Vb的均值。顯示控制器114使得SOC 110能夠與顯示裝置(未示出)進行通信,以顯示視頻幀。在一種實施方式中,顯示控制器114經由系統總線118,從SOC 110的其他部分接收與用于顯示的視頻幀對應的數據流。在示例中,顯示裝置被配置為具有被稱為用于顯示的顯示方向的特定方向,并且在顯示方向按照逐行的形式顯示視頻幀的數據流。注意到,顯示控制器114可以包括與顯示裝置兼容的任何適合的接口。在示例中, 顯示控制器114包括與高清顯示裝置兼容的高清多媒體接口(HDMI)。在另一示例中,當顯示裝置使用RGB格式時,顯示控制器114包括將YUV格式的數據流轉換成RGB格式的數據流的轉換模塊。視頻編碼器/解碼器115實施各種視頻編碼標準,并執行視頻編碼或解碼操作。根據本公開的一種實施方式,旋轉模塊120被配置為將視頻幀旋轉固定角度(諸如90度、180度和270度)。此外,根據本公開的一個方面,旋轉模塊120被配置成基于瓦片的旋轉模塊,該旋轉模塊以瓦片為單元旋轉視頻幀。在示例中,視頻幀被劃分為多個瓦片。每個瓦片包括像素矩陣。根據本公開的一個方面,針對瓦片中的每個像素,瓦片還可以包括其在第一方向上的相鄰像素,以及在相對于第一方向旋轉諸如90度、180度和270度的角度的第二方向上的相鄰像素。在示例中,每個瓦片包括用來旋轉該瓦片的全部像素信息。因而,在示例中,視頻幀的多個瓦片可以被獨立地旋轉。繼而,適當地布置經旋轉的瓦片以形成經旋轉的視頻幀。基于瓦片的旋轉允許簡單的硬件實施,并且使得能夠并行地旋轉多個瓦片,這顯著地加快了視頻幀的旋轉。在視頻捕獲期間,相機傳感器101能夠被放置在不同于自然成像方向的方向。在示例中,相機傳感器101具有矩形形狀,并且自然成像方向是橫向方向。當相機傳感器101 位于橫向方向時,按照在橫向方向逐行的像素數據的數據流形式向SOC 110發送相機傳感器101所捕獲的視頻幀。注意到,在示例中,可以按照交織了視頻幀的相鄰像素的宏像素的形式發送像素數據。在一種實施方式中,對與視頻幀對應的數據流進行適當地編碼并將其存儲。此外,對與視頻幀對應的、所存儲的經編碼的數據流進行解碼,并將其發送到例如位于橫向方向的矩形形狀的顯示裝置。繼而在橫向方向顯示橫向方向的所捕獲的視頻幀。當相機傳感器101位于縱向方向時,盡管是在縱向方向捕獲的圖像,也按照在橫向方向逐行的像素數據的數據流形式向SOC 110發送相機傳感器101所捕獲的視頻幀。注意到,在示例中,可以按照交織了視頻幀在橫向方向的相鄰像素的宏像素的形式發送像素數據。旋轉模塊120處理數據流,以將視頻幀從橫向方向旋轉到縱向方向,從而經旋轉的視頻幀能夠以縱向方向顯示。注意到,可以在不同的圖像處理流水線中使用旋轉模塊120以旋轉視頻幀。在示例中,在捕獲流水線中使用旋轉模塊120。在捕獲流水線中,在捕獲到視頻幀并將其發送到 SOC 110之后,旋轉模塊120在使用視頻編碼器/解碼器115對視頻幀進行之前旋轉視頻幀。在另一示例中,在回放流水線中使用旋轉模塊120。在回放流水線中,在視頻編碼器/ 解碼器116對視頻幀進行解碼之后,旋轉模塊120旋轉視頻幀。將經旋轉的視頻幀發送到顯示控制器114以用于顯示。在一種實施方式中,當SOC 110接收視頻幀的在橫向方向逐行的像素數據的數據流時,視頻幀被存儲在片上存儲器中或適當的片外存儲器中。當在縱向方向捕獲視頻幀時, SOC 110在捕獲流水線中或在回放流水線中旋轉視頻幀。在示例中,當在縱向方向捕獲視頻幀時,旋轉模塊120將視頻幀旋轉例如90度成縱向方向。對經旋轉的視頻幀進行適當地編碼并將其存儲。此外,經旋轉的視頻幀可以適當地被解碼,并例如被發送到在橫向方向放置的矩形形狀的顯示裝置以顯示縱向方向中的視頻幀。注意到,在示例中,不經旋轉,縱向方向的所捕獲的視頻幀將以橫向方向顯示,并且查看者可能需要傾斜他或她的頭部來查看視頻幀。在另一示例中,當在縱向方向捕獲視頻幀時,對視頻幀進行編碼并將其存儲到片上存儲器或適當的片外存儲器中。為了顯示視頻幀,對經編碼的視頻幀進行適當地解碼。繼而,旋轉模塊120將經解碼的視頻幀旋轉例如90度成縱向方向。繼而,將經旋轉的視頻幀例如發送到在橫向方向放置的矩形形狀的顯示裝置。繼而,在顯示裝置處以縱向方向顯示在縱向方向捕獲的視頻幀。注意到,在示例中,不經旋轉,縱向方向的所捕獲的視頻幀將以橫向方向顯示,并且查看者可能需要傾斜他或她的頭部來查看視頻幀。根據本公開的一種實施方式,旋轉模塊120使用基于瓦片的旋轉技術來旋轉視頻幀。在示例中,每個視頻幀被劃分成多個瓦片,每個瓦片是NXM像素的矩陣(N和M是正偶數)。旋轉模塊120包括根據旋轉角度分別旋轉多個瓦片的瓦片旋轉器。此外,旋轉模塊 120根據旋轉角度將經旋轉的瓦片布置在一起以形成經旋轉的視頻幀。在示例中,旋轉模塊 120將經旋轉的瓦片存儲在基于旋轉角度而確定的存儲器地址處以形成經旋轉的視頻幀。注意到,在一種實施方式中,系統100包括方向傳感器(未示出),該方向傳感器被配置為檢測在捕獲視頻幀時相機傳感器101的方向。基于所檢測的方向,旋轉模塊120適當地旋轉視頻幀或抑制旋轉視頻幀,以與查看設備的方向一致。在圖1的示例中,系統總線118將SOC 110中的各種部件耦合到一起,以允許在各種部件之間的數據傳輸。注意到,SOC 110可以使用其他適當架構來將各種部件耦合到一起。圖2A示出了根據本公開實施方式的旋轉模塊示例220A的框圖。旋轉模塊220A 包括存儲器接口對0、第一存儲器221、第二存儲器222和瓦片旋轉器230。如圖2A所示,在一種實施方式中,這些部件耦合到一起。存儲器接口 240被配置為訪問存儲器(諸如SDRAM 102),以獲取在視頻幀內用于旋轉的瓦片,并且被配置為訪問存儲器以存儲經旋轉的瓦片。在一種實施方式中,存儲器接口 240包括總線接口(未示出),該總線接口被配置為與系統總線(諸如系統總線118)進行通信。此外,在示例中,存儲器接口 240包括直接存儲器訪問(DMA) 245以確定用于訪問的存儲器地址。根據本公開的一個方面,存儲器接口 240被配置為訪問存儲器,以獲取待根據基于旋轉角度的序列進行旋轉的瓦片。根據本公開的另一方面,存儲器接口 240被配置為訪問存儲器,以將已經被旋轉的瓦片寫入到基于旋轉角度的合適地址。根據本公開的另一方面,存儲器接口 240被配置為按照優化存儲器訪問速度的次序訪問存儲器。根據本公開的實施方式,SDRAM吞吐量和系統存儲器訪問延時取決于存儲器事務的隨機性。存儲器接口 240被配置為實施獲取/寫回策略,以按照優化存儲器事務性能的次序訪問存儲器。第一存儲器221和第二存儲器222被配置為緩沖瓦片的像素數據,并且減輕由于系統總線或存儲器的延時、和與瓦片旋轉器230 —道競爭訪問共享系統資源(諸如系統總線和存儲器)的其他部件施加在瓦片旋轉器230上的實時限制。在一種實施方式中,第一存儲器221和第二存儲器222是先進先出緩沖器。在示例中,第一存儲器221和第二存儲器222是在旋轉模塊220A內的本地存儲器。第一存儲器221被配置為緩沖待被旋轉的多個瓦片的像素數據。第二存儲器222被配置為緩沖已經被旋轉的多個瓦片的像素數據。根據本公開的一個方面,瓦片旋轉器230被配置為旋轉瓦片中的像素。在一種實施方式中,瓦片旋轉器230所接收到的視頻幀的像素數據處于壓縮(交織)格式。在示例中,相機傳感器101以YUV(YCbCr)格式發送像素數據。在示例中,瓦片旋轉器230接收到的瓦片包括交織了第一方向的相鄰像素的宏像素。為將處于壓縮格式的像素的瓦片旋轉一旋轉角度到第二方向,瓦片旋轉器230首先將宏像素解交織成分離的像素或者像素分量。繼而,瓦片旋轉器230根據旋轉角度來映射分離的像素,以形成在第二方向的相鄰像素。繼而,瓦片旋轉器230將新形成的相鄰像素交織,以生成第二方向的新的宏像素。圖2B示出了根據本公開實施方式的另一旋轉模塊示例220B的框圖。旋轉模塊 220B利用與在旋轉模塊220A中使用的某些部件相同或等同的特定部件;上文已經提供了對這些部件的描述,并且在此出于清楚的目的對其省略。然而,在該實施方式中,旋轉模塊 220B包括多個瓦片旋轉器231-234。在一種實施方式中,多個瓦片旋轉器231-234中的每一個與瓦片旋轉器230相似地進行配置,并且多個瓦片旋轉器231-234被配置為以同步方式或以異步方式操作,以分別地旋轉形成圖像幀的多個瓦片。因而,旋轉模塊220B比旋轉模塊220A具有更高的吞吐量。圖3示出了根據本公開實施方式的旋轉流水線示例330的框圖。旋轉流水線330 包括五個階段瓦片獲取階段331、瓦片解交織階段333、像素映射階段335、瓦片抽取器/ 旋轉器階段337以及瓦片寫回階段339。這些階段中的每一個可以由旋轉模塊220A和旋轉模塊220B中的適當組件執行。在一種實施方式中,組件被配置為使得五個流水線階段能夠同時對不同瓦片進行操作,并且由此提高旋轉模塊220A和旋轉模塊220B的吞吐量。瓦片獲取階段331被配置為從視頻幀源(諸如片上存儲器、片外存儲器等)中獲取瓦片,并且將所獲取的瓦片存儲在適當的存儲器(諸如本地存儲器、緩沖器等)中。在一種實施方式中,按照根據將瓦片從第一方向旋轉到第二方向的旋轉角度的次序來獲取瓦片。
9
瓦片處于壓縮格式。在示例中,瓦片包括交織了在第一方向的相鄰像素的宏像素。 瓦片解交織階段333將每個宏像素解交織成分離的像素。像素映射階段335根據旋轉角度將像素映射成第二方向的相鄰像素。在示例中,旋轉角度是90度、180度和270度中的一個。瓦片抽取器/旋轉器337交織在第二方向的相鄰像素,以生成針對經旋轉的瓦片的新的宏像素(經交織的像素)。新的宏像素包括在與原始交織方向不同的方向上交織的像素。瓦片寫回邏輯339基于旋轉角度將經旋轉的瓦片寫回到視頻幀目的地,諸如片上存儲器、片外存儲器等。圖4A-圖4D示出了根據本公開實施方式的基于瓦片的視頻幀旋轉示例的繪圖。圖 4A示出了根據本公開的實施方式的視頻幀的繪圖410A。視頻幀處于橫向方向,并被劃分成瓦片420T1-T35的5X7矩陣。在示例中,每個瓦片包括NXM個瓦片(N和M是偶數),諸如 2X2個瓦片、4X4個瓦片等。圖4B示出了具有用于在視頻幀中獲取瓦片T1-T35的獲取序列430的繪圖410B。 在一種實施方式中,根據旋轉角度確定獲取序列430,以允許有效的存儲器訪問,從而減少系統存儲器訪問延時。圖4C示出了經旋轉的視頻幀的繪圖410C。注意到,根據旋轉角度(諸如順時針90 度)旋轉T1-T35中的每個瓦片以生成ΤΓ-Τ35,。還根據旋轉角度(諸如順時針90度) 布置經旋轉的瓦片Tl,-T35,。圖4D示出了根據本公開實施方式的具有存儲器訪問序列440的繪圖410D。在一種實施方式中,每個瓦片包括4X4像素。按照與橫向方向逐行對應的線性次序在存儲器中存儲像素數據。存儲器訪問序列440改進了存儲器訪問次序。例如,存儲器訪問序列440 使得存儲器訪問的相對大部分是順序存儲器訪問,并且因而減少了存儲器事務的隨機性, 并減少了存儲器訪問延時。圖5A-圖5F示出了根據本公開實施方式的瓦片旋轉示例。圖5A示出了視頻幀示例510A。根據本公開的一種實施方式,視頻幀510A具有為橫向方向的自然成像方向。視頻幀510A被劃分成瓦片。每個瓦片包括2X2像素的矩陣。 在圖5A的示例中,瓦片520A位于視頻幀5IOA的左上角。瓦片520A包括像素A-D。此外, 在橫向方向的相鄰像素被交織成宏像素521A和522A。例如,像素A和像素B被交織以形成宏像素AB,并且像素C和像素D被交織以形成宏像素⑶。圖5B示出了與視頻幀510A對應的按照YUV格式的數據流510B。數據流510B包括與宏像素AB對應的部分521B以及與宏像素⑶對應的部分522B。圖5C示出了根據本公開實施方式的解交織示例510C。在圖5A和圖5B中的宏像素AB和宏像素CD被解交織成分離的像素或者像素分量。例如,宏像素CD被解交織成像素 C和像素D,并且宏像素AB被解交織成像素A和像素B。在示例中,可以將解交織實施為寄存器和連接寄存器的導線。例如,寄存器511被配置為存儲宏像素⑶,并且寄存器513被配置為存儲宏像素AB,寄存器512被配置為存儲從宏像素⑶解交織出的兩個像素C和D,并且寄存器514被配置為存儲從宏像素AB解交織出的兩個像素A和B。此外,在圖5C中的每個箭頭實施為從寄存器511和513的輸出到寄存器512和514的輸入的一組導線路徑。在示例中,當YUV分量的每一個包括8個比特時,圖5C中的每個箭頭線代表八條導線路徑。
圖5D示出了根據本公開實施方式的用于在縱向方向交織瓦片的像素的示例電路 510D。在縱向方向彼此鄰近的像素C和像素A被交織以形成新的宏像素CA,并且在縱向方向彼此鄰近的像素D和像素B被交織以形成新的宏像素DB。在圖5D的示例中,使用開關和交織電路550來交織在縱向方向的像素。在示例中,開關和交織電路550包括開關盒(未示出),該開關盒被配置為根據旋轉角度將相鄰像素從橫向方向映射到縱向方向。此外,開關和交織電路550包括加法器A1-A4和除數為2的除法器D1-D4以交織相鄰像素,從而生成新的宏像素。在示例中,使用將二進制表示右移一位的移位器來實施除數為2的除法器 D1-D4。注意到,還在下面的公式中描述電路510D的操作
P U + P UMPCA · YC = PC · YC ,MPcaUca = c. ^ ^ ;MPca · Ya = Pa · Ya ;MPca.Vca = PcVc ^Pa-Va .MPdb · Yd = Pd · Yd -,MPdbUdbMPDB · YB = PB · YB -,MPdbVdb = Ρο·νο+^Β^Β .其中MPCA · Yc表示宏像素CA的第一 Y部,MPCA · Ya表示宏像素CA的第二 Y部, MPca · Uca表示宏像素CA的U部,MPca · Vca表示宏像素CA的V部,MPdb · Yd表示宏像素DB的第一 Y部,MPDB · Yb表示宏像素DB的第二 Y部,MPDB · Udb表示宏像素DB的U部,MPDB · Vdb表示宏像素DB的V部,Pa · YA, Pa · Ua和Pa · Va表示像素A的Y部、U部和V部,I3b ·、,I3b · Ub 和I3b · Vb表示像素B的Y部、U部和V部,Pc · Yc, Pc · Uc和Pc · Vc表示像素C的Y部、U部和V部,Pd · YD, Pd · Ud和Pd · Vd表示像素D的Y部、U部和V部。圖5E示出了與經旋轉的視頻幀對應的按照YUV格式的數據流510E。數據流510E 包括與宏像素CA對應的部分521E以及與宏像素DB對應的部分522E。圖5F示出了經旋轉的視頻幀示例510F。在圖5F的示例中,瓦片520F旋轉自圖 5A中的瓦片520A,并且現在位于經旋轉的視頻幀510F的右上角。在瓦片520F中,像素C 和像素A被交織以形成宏像素Ck,并且像素D和像素B被交織以形成宏像素DB。注意到,在圖5A-圖5F中的示例是2X2的瓦片的90度順時針旋轉的情形。針對其他的旋轉情形(諸如180度順時針、270度順時針、4X4的瓦片、2MX2N的瓦片(M和N是正整數)等)可以適當地調整附圖、公式和描述。圖6示出了根據本公開實施方式的、列出旋轉模塊(諸如旋轉模塊120)旋轉視頻幀中的像素瓦片的處理示例600的流程圖。該處理從S601開始并前進至S610。在S610,旋轉模塊120從形成視頻幀的多個瓦片中獲取瓦片。在示例中,根據基于旋轉角度的次序獲取瓦片。根據本公開的一個方面,瓦片包括處于壓縮格式(諸如YUV格式)的像素數據。例如,將兩個相鄰像素的YUV分量交織成宏像素的YUYV分量。在S620,旋轉模塊120將宏像素解交織成分離的像素。在S630,旋轉模塊120根據旋轉角度映射相鄰的像素。在示例中,旋轉模塊120包括開關盒,該開關盒被配置為根據旋轉角度映射相鄰的像素。在S640,旋轉模塊120將新映射的相鄰像素交織成新的宏像素,以形成在新的旋轉后的方向的經旋轉的瓦片。在S650,旋轉模塊120將經旋轉的瓦片寫回存儲器。在示例中,旋轉模塊120在基于旋轉角度確定的地址處將經旋轉的瓦片寫回存儲器。注意到,可以按照流水線的方式(諸如使用圖3中的旋轉流水線330)執行圖6中的步驟。盡管已經結合作為示例提出的本公開的具體實施方式
描述了本公開的主題,但顯然諸多備選、修改和變化對本領域技術人員將變得明顯。因此,在此陳述的本公開的實施方式旨在為示例性的,而非限制性的。存在不脫離本公開的范圍而可以進行的改變。
權利要求
1.一種用于視頻幀旋轉的方法,包括接收形成視頻幀的多個瓦片中的第一瓦片,所述第一瓦片包括第一多個宏像素,其中每個宏像素交織在第一方向的至少一對相鄰像素; 將所述第一多個宏像素解交織成第一像素; 將所述第一像素映射成在第二方向的第一經旋轉的相鄰像素;以及將所述第一經旋轉的相鄰像素交織成形成第一經旋轉的瓦片的第一經旋轉的宏像素。
2.根據權利要求1所述的方法,進一步包括接收形成所述視頻幀的所述多個瓦片中的第二瓦片,所述第二瓦片包括第二多個宏像素,其中每個宏像素交織在所述第一方向的至少一對相鄰像素; 將所述第二多個宏像素解交織成第二像素;將所述第二像素映射成在所述第二方向的第二經旋轉的相鄰像素;以及將所述第二經旋轉的相鄰像素交織成形成所述第二經旋轉的瓦片的第二經旋轉的宏像素。
3.根據權利要求2所述的方法,其中串行或者并行地處理所述第一瓦片和所述第二瓦片。
4.根據權利要求1所述的方法,進一步包括從按照根據將所述視頻幀從所述第一方向旋轉到所述第二方向的旋轉角度的序列存儲所述視頻幀的存儲裝置中獲取所述多個瓦片以。
5.根據權利要求1所述的方法,進一步包括將所述第一經旋轉的瓦片寫入存儲裝置,以將所述經旋轉的視頻幀存儲在根據將所述視頻幀從所述第一方向旋轉到所述第二方向的旋轉角度的地址處。
6.根據權利要求1所述的方法,進一步包括檢測被配置為根據所述第一方向生成所述視頻幀的視頻捕獲裝置位于所述第二方向。
7.根據權利要求5所述的方法,進一步包括以下中的至少一個 在視頻編碼之前預覽所述經旋轉的視頻幀;在視頻幀旋轉之后對所述經旋轉的視頻幀進行視頻編碼; 在視頻幀旋轉之前對經編碼的視頻幀進行解碼;以及在對所述經解碼的視頻幀進行視頻幀旋轉之后進行顯示。
8.根據權利要求1所述的方法,其中將所述第一像素映射成在所述第二方向的所述第一經旋轉的相鄰像素進一步包括將所述第一像素映射成在相對于所述第一方向旋轉了 90度、180度和270度之一的所述第二方向的、所述第一經旋轉的相鄰像素。
9.根據權利要求1所述的方法,其中接收處于交織格式的所述視頻幀的所述第一瓦片進一步包括接收處于壓縮YCbCr格式的所述視頻幀的所述第一瓦片。
10.一種電路,包括輸入緩沖器,被配置為緩沖來自形成視頻幀的多個瓦片中的第一瓦片,所述第一瓦片包括第一多個宏像素,所述第一多個宏像素中的每個宏像素交織在第一方向的至少一對相鄰像素;第一瓦片旋轉器,被配置為將所述第一多個宏像素解交織成第一像素,將所述第一像素映射成在第二方向的第一經旋轉的相鄰像素,并且將所述第一經旋轉的相鄰像素交織成第一經旋轉的宏像素;以及輸出緩沖器,被配置為緩沖所述第一經旋轉的宏像素以形成第一經旋轉的瓦片。
11.根據權利要求10所述的電路,其中所述第一瓦片旋轉器包括第一解交織電路,被配置為將所述第一多個宏像素解交織成所述第一像素; 第一開關電路,被配置為將所述第一像素映射成在所述第二方向的所述第一經旋轉的相鄰像素;以及第一交織電路,被配置為將所述第一經旋轉的相鄰像素交織成所述第一經旋轉的宏像O
12.根據權利要求10所述的電路,其中所述輸入緩沖器被配置為緩沖來自形成所述視頻幀的所述多個瓦片中的第二瓦片,所述第二瓦片包括第二多個宏像素,所述第二多個宏像素中的每個宏像素交織在所述第一方向的至少一對相鄰像素;第二瓦片旋轉器被配置為將所述第二多個宏像素解交織成第二像素,將所述第二像素映射成在所述第二方向的第二經旋轉的相鄰像素,并且將所述第二經旋轉的相鄰像素交織成第二經旋轉的宏像素;以及所述輸出緩沖器被配置為緩沖所述第二經旋轉的宏像素以形成第二經旋轉的瓦片。
13.根據權利要求12所述的電路,其中所述第一瓦片旋轉器和所述第二瓦片旋轉器被配置為并行操作。
14.根據權利要求10所述的電路,進一步包括存儲器接口,被配置為訪問存儲所述視頻幀的存儲器以獲取在第一地址處的所述第一瓦片,并且訪問所述存儲器以將所述第一經旋轉的瓦片寫回在基于在所述第一方向和所述第二方向之間的旋轉角度的第二地址處。
15.根據權利要求11所述的電路,其中所述第一開關電路被配置為根據90度、180度和270度的旋轉角度之一將所述第一像素映射成所述第一經旋轉的相鄰像素。
16.一種電子系統,包括片上系統(SOC),具有視頻旋轉電路,所述視頻旋轉電路包括 輸入緩沖器,被配置為緩沖來自形成視頻幀的多個瓦片中的第一瓦片,所述第一瓦片包括第一多個宏像素,所述第一多個宏像素中的每個宏像素交織在第一方向的至少一對相鄰像素;第一瓦片旋轉器,被配置為將所述第一多個宏像素解交織成第一像素,將所述第一像素映射成在第二方向的第一經旋轉的相鄰像素,并且將所述第一經旋轉的相鄰像素交織成第一經旋轉的宏像素;以及輸出緩沖器,被配置為緩沖所述第一經旋轉的宏像素以形成第一經旋轉的瓦片。
17.根據權利要求16所述的電子系統,其中所述第一瓦片旋轉器包括 第一解交織電路,被配置為將所述第一多個宏像素解交織成所述第一像素;第一開關電路,被配置為將所述第一像素映射成在所述第二方向的所述第一經旋轉的相鄰像素;以及第一交織電路,被配置為將所述第一經旋轉的相鄰像素交織成所述第一經旋轉的宏像ο
18.根據權利要求16所述的電路,其中所述輸入緩沖器被配置為緩沖來自形成所述視頻幀的所述多個瓦片中的第二瓦片,所述第二瓦片包括第二多個宏像素,所述第二多個宏像素中的每個宏像素交織在所述第一方向的至少一對相鄰像素;第二瓦片旋轉器被配置為將所述第二多個宏像素解交織成第二像素,將所述第二像素映射成在所述第二方向的第二經旋轉的相鄰像素,并且將所述第二經旋轉的相鄰像素交織成第二經旋轉的宏像素;以及所述輸出緩沖器被配置為緩沖所述第二經旋轉的宏像素以形成第二經旋轉的瓦片。
19.根據權利要求16所述的電路,進一步包括相機傳感器,被配置為捕獲所述視頻幀,并且按照交織了在所述第一方向的相鄰像素的宏像素的形式發送所述視頻幀。
20.根據權利要求16所述的電路,其中所述SOC進一步包括以下中的至少一個 視頻編碼器/解碼器,被配置為在視頻幀旋轉之后對所述經旋轉的視頻幀進行編碼,或者在視頻幀旋轉之前對經編碼的視頻幀進行解碼;以及顯示控制器,被配置為接收所述經旋轉的視頻幀,并使得所述經旋轉的視頻幀能夠被顯不。
全文摘要
本發明的各個方面提供了一種用于視頻幀旋轉的方法。該方法包括接收形成視頻幀的多個瓦片中的第一瓦片。第一瓦片包括第一多個宏像素,其中每個宏像素交織在第一方向的至少一對相鄰像素。此外,該方法包括將第一多個宏像素解交織成第一像素,將第一像素映射成在第二方向的第一經旋轉的相鄰像素;以及將第一經旋轉的相鄰像素交織成形成第一經旋轉的瓦片的第一經旋轉的宏像素。
文檔編號H04N7/26GK102572432SQ20111045915
公開日2012年7月11日 申請日期2011年12月23日 優先權日2010年12月23日
發明者O·巴-沙洛姆 申請人:馬維爾國際貿易有限公司