專利名稱:有效處理視頻的視頻預(yù)處理/后處理方法及其設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種視頻預(yù)處理/后處理設(shè)備,更具體地說,涉及一種能夠利用新的硬件-軟件協(xié)作方法,穩(wěn)定地以少量存儲器高速地操作的視頻預(yù)處理/后處理設(shè)備,并涉及一種該設(shè)備所使用的方法。
背景技術(shù):
總的來說,輸入攝像機的視頻數(shù)據(jù)響應(yīng)編碼該視頻數(shù)據(jù)的捕捉命令,存儲在一存儲器中。由于顯示設(shè)備每秒處理30幀,因此處理一幀最少要花33毫秒(ms)。所以,硬件單元產(chǎn)生垂直同步(Vsync)信號,用于指示每33ms的捕捉概率,而軟件單元在Vsync產(chǎn)生時,向該硬件發(fā)送捕捉命令和存儲器地址。然后,硬件單元響應(yīng)存儲器中的捕捉命令捕捉視頻數(shù)據(jù)。
此外,將由通過軟件操作的解碼器解碼的視頻數(shù)據(jù)存儲在存儲器的一個預(yù)定區(qū)域,并且在諸如液晶顯示器(LCD)這樣的顯示裝置上顯示。當(dāng)更新存儲器時,軟件單元將更新的信息和更新的存儲器的區(qū)域發(fā)送給顯示裝置。在編碼和解碼處理過程中,通常以這種方式使用兩個或多個存儲器存儲該視頻,該存儲被稱為乒乓(ping-pong)存儲器。
此時,為了捕捉和編碼從攝像機輸入的圖像或顯示視頻數(shù)據(jù),可以采用兩種方法中斷方法和輪詢方法。
現(xiàn)在參考圖1介紹輪詢方法。
如圖1所示,用于編碼的軟件單元(b)檢查用于攝像機捕捉(cameracapture)的硬件單元(a)的狀態(tài),并且在編碼幀的數(shù)據(jù)(參見間隔110和120)之后等待垂直同步(Vsync)信號,然后,如果軟件單元(b)從硬件單元(a)接收到Vsync信號,則傳送用于幀1和2的數(shù)據(jù)的捕捉命令。然而,在輪詢方法中,應(yīng)該持續(xù)不斷地檢查硬件單元(a)的狀態(tài),因此,大大地降低了整體數(shù)度。
現(xiàn)在參考圖2介紹中斷方法。如圖2所示,垂直同步信號(a)在軟件單元(b)需要數(shù)據(jù)時立即產(chǎn)生中斷220,暫停軟件單元(b)的程序操作,并且強制地讓軟件單元(b)將捕捉幀1的數(shù)據(jù)所需要的信息傳送到硬件單元。在產(chǎn)生中斷時,軟件單元(b)執(zhí)行中斷服務(wù)程序(ISR)。
假定只使用兩個乒乓(ping-pong)存儲器,如果軟件單元在編碼幀2(參見(c)的間隔210)的同時接收到中斷信號220,則軟件單元暫停編碼操作(參見(c)的間隔210),將捕捉幀1的數(shù)據(jù)所需要的信息傳送到硬件單元,然后重新開始編碼幀2。即使編碼幀2的操作沒有完成,如果接收到另一個中斷信號,軟件單元除非脫出(escape)ISR否則不會發(fā)出關(guān)于幀2的捕捉命令,并且繼續(xù)執(zhí)行幀2的編碼。
同時,從編碼的角度看,如果軟件單元在解碼幀2(參見(c)的間隔212)的同時接收到中斷信號220,則軟件單元暫停解碼操作(參見(c)的間隔212),將讀取幀1的數(shù)據(jù)所需要的信息傳送到硬件單元,然后重新開始解碼幀2。即使解碼幀2的操作沒有完成,如果接收到另一個中斷信號,軟件單元除非逃脫ISR否則不會發(fā)出關(guān)于幀2的讀取命令,并且繼續(xù)執(zhí)行幀2的解碼。
因此,在中斷方法中,如果產(chǎn)生中斷,則立即執(zhí)行編碼和解碼,而不用等待Vsync信號,所以,中斷方法比輪詢方法更快。
然而,如果頻繁地產(chǎn)生中斷,則不能在精簡指令集計算機(RISC)處理其中使用流水線,因此降低了整體速度。特別是,雖然用于一個特殊目的的任何已知類型的中斷不經(jīng)常使用在一個系統(tǒng)中,但各種類型的中斷一起使用在該系統(tǒng)中。各種中斷,例如,用于攝像機的中斷、用于LCD的中斷、用于LAN的中斷和用于通用異步收發(fā)器(UART)端口的中斷,一起使用在該系統(tǒng)中,并且攝像機和LCD每33ms產(chǎn)生一次中斷。因此,利用常規(guī)的中斷方法一起使用各種類型的中斷,降低了該系統(tǒng)的整體速度和穩(wěn)定性。
此外,在常規(guī)的輪詢和中斷方法中,通過軟件解碼的解碼時間是不固定的,因此,不能穩(wěn)定地處理視頻數(shù)據(jù)。即,在使用所有可用存儲器區(qū)域的情況下,即使相鄰幀的解碼時間短到使得不能在顯示裝置上顯示全部圖像數(shù)據(jù),也應(yīng)該丟棄在那以后解碼的視頻數(shù)據(jù)。這使得相鄰視頻數(shù)據(jù)突然移動、或不必要地使用編碼器和解碼器資源。
發(fā)明內(nèi)容
為了解決上述問題,本發(fā)明的第一個目的是提供一種視頻預(yù)處理設(shè)備,它能夠利用新的硬件-軟件協(xié)作方法,用少量的存儲器,穩(wěn)定地高速操作,并且提供由該設(shè)備所使用的方法。
本發(fā)明的第二個目的是提供一種視頻后處理設(shè)備,它能夠利用新的硬件-軟件協(xié)作方法,用少量的存儲器,穩(wěn)定地高速操作,并且提供由該設(shè)備所使用的方法。
相應(yīng)地,為了實現(xiàn)第一個目的,根據(jù)本發(fā)明的一個方面,提供一種有效地捕捉視頻的視頻預(yù)處理方法。該方法包括步驟(a)依次給多個存儲區(qū)域分配號碼,并響應(yīng)幀同步信號循環(huán)地遞增該號碼;(b)響應(yīng)幀同步信號檢查正在存儲的存儲器區(qū)域,并捕捉輸入的視頻數(shù)據(jù);以及(c)以預(yù)定次序在存儲器區(qū)域中存儲所捕捉的視頻數(shù)據(jù)。
為了實現(xiàn)第一個目的,根據(jù)本發(fā)明的另一個方面,提供一種有效地捕捉視頻的視頻預(yù)處理設(shè)備。該設(shè)備包括存儲器單元,它被劃分成多個存儲區(qū)域,每個區(qū)域被分配一個號碼;軟件單元,用于在無論什么時候產(chǎn)生了視頻同步信號時,在檢查到存儲單元中所使用的區(qū)域之后,在將要用于下一次的存儲器區(qū)域中產(chǎn)生捕捉命令;以及硬件單元,用于響應(yīng)幀同步信號循環(huán)地遞增存儲器單元中的區(qū)域的號碼,響應(yīng)從軟件單元接收的捕捉命令捕捉所接收到的視頻信號,并且以預(yù)定次序在存儲器區(qū)域中存儲所該視頻數(shù)據(jù)。
為了實現(xiàn)第二個目的,根據(jù)本發(fā)明的一個方面,提供一種有效地顯示視頻的視頻后處理方法。該方法包括步驟(a)依次給多個存儲區(qū)域分配號碼,并響應(yīng)幀同步信號循環(huán)地遞增該號碼;(b)響應(yīng)幀同步信號顯示存儲器區(qū)域,檢查所顯示的存儲區(qū)域,并以預(yù)定次序在存儲器區(qū)域中存儲視頻數(shù)據(jù);以及(c)順序地顯示存儲在存儲器區(qū)域中的視頻數(shù)據(jù)。
為了實現(xiàn)第二個目的,根據(jù)本發(fā)明的另一個方面,提供一種有效地顯示視頻的視頻后處理設(shè)備。該設(shè)備包括存儲器單元,它被劃分成多個存儲區(qū)域,每個區(qū)域被分配一個號碼;軟件單元,用于將響應(yīng)視頻同步信號顯示的存儲區(qū)域的數(shù)目與已解碼的存儲器區(qū)域的數(shù)目進行比較,并產(chǎn)生視頻數(shù)據(jù)的顯示命令;以及硬件單元,用于響應(yīng)幀同步信號循環(huán)地遞增存儲器單元中的區(qū)域的號碼,并且響應(yīng)在軟件單元中產(chǎn)生的顯示命令以存儲器單元的預(yù)定次序顯示一屏幕。
通過借助附圖詳細描述本發(fā)明的優(yōu)選實施例,本發(fā)明的上述目的和優(yōu)點將會更容易地明白,其中圖1是說明捕捉/顯示視頻的常規(guī)輪詢方法的時序圖;圖2是說明捕捉/顯示視頻的常規(guī)中斷方法的時序圖;圖3是說明根據(jù)本發(fā)明的視頻預(yù)處理設(shè)備的實施例的框圖;圖4說明捕捉視頻數(shù)據(jù)的存儲器的結(jié)構(gòu);圖5是說明根據(jù)本發(fā)明的視頻預(yù)處理方法的時序圖;圖6是說明根據(jù)本發(fā)明的視頻預(yù)處理方法的流程圖;圖7是Y、U和V數(shù)據(jù)的時序圖;圖8是按幀為單位輸入視頻數(shù)據(jù)的時序圖;圖9是說明圖4的存儲器的控制的時序圖;圖10是說明根據(jù)本發(fā)明的視頻后處理設(shè)備的實施例的框圖;圖11說明顯示視頻數(shù)據(jù)的存儲器的結(jié)構(gòu);圖12是說明根據(jù)本發(fā)明的視頻后處理方法的時序圖;圖13是說明根據(jù)本發(fā)明的視頻后處理方法的流程圖;和圖14是說明圖11的存儲器的控制的時序圖。
具體實施例方式
以下將參考附圖詳細介紹本發(fā)明的優(yōu)選實施例。
圖3是說明根據(jù)本發(fā)明的視頻預(yù)處理設(shè)備的實施例的框圖。參考圖3,中央處理器(CPU)310執(zhí)行軟件單元。該軟件單元通過一個寄存器文件控制硬件單元(未圖示)的操作。
系統(tǒng)控制單元320給該硬件單元傳送中央處理器(CPU)310的一個控制命令。如果CPU 310將操作數(shù)據(jù)寫入寄存器文件(未圖示),那么系統(tǒng)控制單元320解釋操作數(shù)據(jù),從而根據(jù)預(yù)定的協(xié)議執(zhí)行該軟件單元的命令。
寄存器文件控制單元330控制響應(yīng)系統(tǒng)控制單元320的控制命令和預(yù)定的協(xié)議從CPU 310接收到的寄存器文件。此外,寄存器文件控制單元330根據(jù)垂直同步(Vsync)信號控制該寄存器文件并解釋該寄存器文件的每一位。
緩沖區(qū)控制單元340在諸如同步動態(tài)隨機存取存儲器(SDRAM)這樣的緩沖區(qū)中緩存在以預(yù)定間隔隔開的各固定時間輸入的數(shù)據(jù)。
攝像機350將視頻數(shù)據(jù)、垂直同步(Vsync)和水平同步(Hsync)信號輸出到預(yù)處理器360。
預(yù)處理器360將輸入的422視頻數(shù)據(jù)轉(zhuǎn)換為420視頻數(shù)據(jù)。即,預(yù)處理器360對該視頻數(shù)據(jù)在垂直方向中進行二次抽樣。第一緩沖區(qū)370、第二緩沖區(qū)380和第三緩沖區(qū)390分別存儲從預(yù)處理器360輸入的信號Y、信號Cb和信號Cr。該緩沖區(qū)大小可以根據(jù)系統(tǒng)的結(jié)構(gòu)變化。
圖4說明捕捉視頻數(shù)據(jù)的存儲器的結(jié)構(gòu)。參考圖4,硬件單元在初始化期間將存儲器劃分為多個存儲頁面,給每個存儲頁面設(shè)置一個地址,并在從軟件單元接收到捕捉命令時,根據(jù)預(yù)定次序在該存儲頁面中自動存儲視頻?;诓蹲酱涡?qū)⒋鎯撁婢幪枮?至2,但存儲頁面可以根據(jù)并行處理或應(yīng)用增加。
圖5是說明根據(jù)本發(fā)明的視頻預(yù)處理方法的時序圖。參考圖5(a),它是由硬件單元產(chǎn)生的V_sync信號或幀同步信號的時序圖,響應(yīng)V_sync信號,存儲頁面(MP)以“0->1->2->0…”的次序增加。MP是一個存儲區(qū)域,在其中存儲關(guān)于從攝像機開始捕捉到完成捕捉的一個V_sync信號的預(yù)定時間量期間捕捉的數(shù)據(jù)。該硬件單元作為軟件單元的從動裝置操作,以便于存儲器的控制,并經(jīng)寄存器檢查是否捕捉了圖像。
(b)是說明在軟件單元中執(zhí)行的控制的時序圖,軟件單元讀取存儲頁面并發(fā)出捕捉命令。軟件計數(shù)值sw_cnt代表要編碼的存儲頁面,該值在響應(yīng)V_sync信號讀取了存儲頁面后,通過(MP+2)模3進行計算,并且以“0->1->2->0…”的次序進行更新。參考(b)的時序圖,讀取當(dāng)前的存儲頁面,并且發(fā)出捕捉命令,如果存儲頁面被檢查為第“1”存儲頁面(sw_cnt=0),則編碼相應(yīng)于(MP+2)模3的第“0”個存儲頁面。讀取下一個存儲頁面,并且發(fā)出捕捉命令,如果存儲頁面被檢查為第“2”存儲頁面(sw_cnt=1),則編碼相應(yīng)于(MP+2)模3的第“1”個存儲頁面。在將第“1”個存儲頁面編碼后讀取了下一個存儲頁面的情況下,如果沒有完成當(dāng)前存儲頁面“2”的捕捉,則重新使用前一捕捉的幀(sw_cnt=1)。然而,重新使用前一捕捉的幀取決于顯影裝置(developer)。
(c)是說明由軟件單元執(zhí)行的編碼的時序圖。軟件單元控制硬件單元將按照軟件計數(shù)器的計算值,對存儲在(MP+2)模3存儲頁面中的數(shù)據(jù)進行編碼。如果正在捕捉軟件單元所讀取的存儲頁面,則重新編碼同一幀(編碼幀1),否則,編碼所捕捉的存儲頁面(編碼幀1和編碼幀2)。
圖6是說明根據(jù)本發(fā)明的視頻預(yù)處理方法的流程圖,現(xiàn)在將參考圖3和4進行介紹。
在步驟610中,初始化系統(tǒng)的硬件單元,然后該硬件單元在步驟620開始編碼。
在步驟630中,軟件單元讀取存儲頁面(MP)。
在步驟640中,軟件單元檢查存儲頁面(MP)并給MP發(fā)出捕捉命令。
在步驟650中,軟件單元通過(MP+2)模3進行計算要編碼的存儲頁面sw_cnt。
在步驟660中,軟件單元編碼所計算出的存儲頁面sw_cnt。
在步驟670中,確定編碼是否結(jié)束,如果編碼結(jié)束,則終止預(yù)處理。否則,軟件單元通過再次讀取存儲頁面來執(zhí)行預(yù)處理。
作為另一個實施例,在編碼的每個步驟都執(zhí)行并行處理的情況下,增加所需的存儲器或區(qū)域的數(shù)目。例如,如果要并行處理的數(shù)目是Np,則所需的存儲頁面(MP)是Np+2。在這種情況下,要并行處理的數(shù)目是ME/MC和DCT兩個,因此需要四個存儲頁面(MP),將要編碼的存儲頁面是(MP+3)模4。
圖7是Y、U和V數(shù)據(jù)的時序圖。參考圖7,CPU 310支持以幀為單位的編碼。因此,輸入攝像機的Y、Cb和Cr支持以幀為單位的捕捉函數(shù)。
以幀為單位在每個垂直同步信號處輸入被輸入的視頻數(shù)據(jù)。作為本發(fā)明的一個實施例,攝像機是CCIR 601格式的,并且對該攝像機使用QCIF(176×144)逐級掃描(progressive scan)。輸入的視頻數(shù)據(jù)是8位Y、U和V數(shù)據(jù),并且給系統(tǒng)輸入13.5MHz的時鐘信號PCLK,和響應(yīng)同步的時鐘信號輸出8位數(shù)據(jù)DATA[70]。
圖8是按幀為單位輸入的視頻數(shù)據(jù)的時序圖。參考圖8,可以以每秒60幀的最大速率輸入被輸入的視頻數(shù)據(jù)DATA。該輸入的視頻數(shù)據(jù)DATA的處理取決于編碼器的能力。因此,硬件單元作為CPU 310的從動裝置操作,并選擇編碼的幀。由于輸入數(shù)據(jù)的各幀由輸入的垂直同步信號VSYNC進行鑒別,所以該硬件響應(yīng)該VSYNC選擇要編碼的數(shù)據(jù)。
圖9是說明圖4的存儲器的控制的時序圖。參考圖9,響應(yīng)垂直同步信號V_sync把視頻數(shù)據(jù)輸入攝像機,并在CPU 310需要時捕捉該視頻數(shù)據(jù)。CPU310通過寄存器文件捕捉該視頻數(shù)據(jù)。利用狀態(tài)寄存器將捕捉命令傳送到寄存器文件。此時,如果狀態(tài)位state[31]被設(shè)置成“1”,則捕捉該視頻數(shù)據(jù)。如圖4中所示,狀態(tài)寄存器中的其他設(shè)置位代表硬件單元中正在使用的三個存儲器的號碼0、1和2。CPU 310讀取存儲器號并將要處理的存儲區(qū)域發(fā)送到軟件單元。
更具體地說,如果狀態(tài)寄存器中的狀態(tài)位state[31]中的預(yù)定位是為要被CPU 310捕捉的幀所設(shè)置的,那么將硬件單元中的內(nèi)部寄存器讀取信號internal reg_rd設(shè)置為“1”。在這種情況下,如果收到垂直同步信號V_sync,則將內(nèi)部寄存器讀取信號internal reg_rd改變?yōu)椤?”。如果內(nèi)部寄存器讀取信號internal reg_rd設(shè)置為“0”,并同時在狀態(tài)寄存器中設(shè)置捕捉位,則捕捉該視頻數(shù)據(jù)。接著,如果在下一個垂直同步信號V_sync時在狀態(tài)寄存器中沒有設(shè)置捕捉位,則啟動捕捉。作為結(jié)果,在每個垂直同步信號V_sync處檢查狀態(tài)寄存器的捕捉位。在硬件單元中捕捉了該數(shù)據(jù)的情況下,在引導(dǎo)裝入之后,在CPU 310中存儲設(shè)置的存儲器的開始地址,并且直到設(shè)置的地址值發(fā)生變化為止,開始地址的值是有效的。CPU 310通過寄存器在V_sync的單元中產(chǎn)生開始地址。如果為每個V_sync捕捉了數(shù)據(jù),則存儲器區(qū)域H/Wcnt的號碼按照“0->1->2->0”的次序順序遞增。
圖10是說明根據(jù)本發(fā)明的視頻后處理設(shè)備的實施例的框圖。參考圖10,在Y緩沖區(qū)1020、Cb緩沖區(qū)1022、Cr緩沖區(qū)1024中,以Y、Cb、Cr的次序存儲在源編碼譯碼器單元(未示出)中解碼的數(shù)據(jù),并響應(yīng)在顯示單元1070中產(chǎn)生的垂直和水平同步信號,將其傳送到后處理器1050。后處理器1050將420數(shù)據(jù)轉(zhuǎn)換成422數(shù)據(jù),把422格式的視頻數(shù)據(jù)轉(zhuǎn)換成444格式的RGB數(shù)據(jù),并將該RGB數(shù)據(jù)傳送到顯示單元1070。此外,后處理器1050利用直接存儲器存取(DMA)控制器(未示出)訪問存儲在OSD緩沖區(qū)1026中的OSD數(shù)據(jù)。
系統(tǒng)控制單元1040將中央處理單元(CPU)1060的控制命令傳送到硬件單元。如果CPU 1060將操作數(shù)據(jù)寫入寄存器文件,并為硬件單元定制(order)一操作,那么系統(tǒng)控制單元1040解釋該操作,從而根據(jù)每個硬件單元和預(yù)定的協(xié)議執(zhí)行該軟件單元的命令。CPU 1060通過寄存器傳送顯示命令,以控制硬件單元。DMA寄存器1030根據(jù)響應(yīng)系統(tǒng)控制單元1040的控制命令和預(yù)定協(xié)議從CPU 1060的寄存器中接收到的數(shù)據(jù)執(zhí)行操作。
圖11說明顯示視頻數(shù)據(jù)的存儲器的結(jié)構(gòu)。參考圖11,硬件單元在初始化期間將存儲器劃分為多個較小的存儲頁面,給每個存儲頁面設(shè)置一個地址,并在從軟件單元接收到顯示命令時,根據(jù)預(yù)定次序在該存儲頁面中自動存儲視頻?;诓蹲酱涡?qū)⒋鎯撁婢幪枮?至2,但存儲頁面可以根據(jù)并行處理或應(yīng)用增加。
圖12是說明根據(jù)本發(fā)明的視頻后處理方法的時序圖。參考圖12,(a)是由硬件單元產(chǎn)生的V_sync信號或幀同步信號的時序圖,響應(yīng)V_sync信號,存儲頁面(MP)以“2->0->1->2->0…”的次序更新。MP是一個存儲區(qū)域,它被顯示從攝像機液晶顯示器(LCD)開始顯示到完成顯示一個V_sync信號的預(yù)定時間量。在這種情況下,該硬件單元作為軟件單元的從動裝置(slave)操作,以便于存儲器的控制,并經(jīng)過寄存器檢查是否顯示了圖像。
(b)是說明在軟件單元中執(zhí)行的控制的時序圖,軟件單元讀取如圖(a)中所示的存儲頁面并發(fā)出顯示命令。軟件計數(shù)值sw_cnt代表要解碼的存儲頁面,在響應(yīng)V_sync信號讀取了所顯示的存儲頁面后以“0->1->2->0…”的次序遞增。如果沒有接收到顯示命令,則維持最后的存儲頁面。參考(b)的時序圖,讀取顯示的第“0”個存儲頁面,然后檢查該存儲頁面不是第“1”存儲頁面,并且解碼第“2”存儲頁面(sw_cnt=2)。接著,讀取顯示的第“1”個存儲頁面,然后檢查該存儲頁面不是第“2”存儲頁面,并且解碼第“0”存儲頁面(sw_cnt=0)。接著,如果軟件單元讀取了所顯示的存儲頁面,但該存儲頁面仍然是第“1”存儲頁面,那么該軟件單元一直等待,直到該頁面為第“2”存儲頁面(sw_cnt=1)為止。接著,該軟件單元讀取顯示的第“2”個存儲頁面,然后檢查該存儲頁面不是第“1”存儲頁面,并且解碼第“1”存儲頁面(sw_cnt=1)。
(c)是說明由軟件單元執(zhí)行的解碼的時序圖。軟件單元控制硬件單元解碼對應(yīng)于軟件單元值sw_cnt的存儲頁面。即,如果軟件單元確定正在顯示的存儲頁面與要解碼的存儲頁面相同,那么該軟件單元就等待而不進行解碼。否則,軟件單元解碼對應(yīng)的存儲頁面(解碼幀0、幀1和幀2)。
圖13是說明根據(jù)本發(fā)明的視頻后處理方法的流程圖,現(xiàn)在將參考圖11和12進行介紹。
在步驟1310中,初始化系統(tǒng)的硬件單元,然后該硬件單元在步驟1320開始解碼。
在步驟1330中,軟件單元從硬件單元讀取所顯示的存儲頁面(MP)。
在步驟1340和1350中,軟件單元將所顯示的存儲頁面(MP)的值與增加了的軟件計數(shù)值sw_cnt+1進行比較。
如果存儲頁面(MP)與增加了的軟件計數(shù)值sw_cnt+1相同,則在步驟1360中該軟件單元等待而不進行解碼,直到正在顯示的存儲頁面(MP)增加為止。
在步驟1372中,如果存儲頁面(MP)與增加了的軟件計數(shù)值sw_cnt+1不相同,則將軟件計數(shù)值sw_cnt增加1,并在步驟1374中決定對應(yīng)于計數(shù)sw_cnt的存儲頁面。
在步驟1376中,當(dāng)應(yīng)該顯示對應(yīng)于軟件計數(shù)值sw_cnt的存儲頁面時,顯示對應(yīng)的存儲頁面。當(dāng)產(chǎn)生至少兩個或多個顯示請求時,將該存儲頁面的數(shù)據(jù)顯示一同步信號的預(yù)定時間量。
在步驟1380中,確定解碼是否結(jié)束,如果解碼已經(jīng)結(jié)束,則終止后處理。否則,軟件單元通過再次讀取存儲頁面來執(zhí)行后處理。
圖14是說明圖11的存儲器的控制的時序圖。從總線中讀取的數(shù)據(jù)存儲在存儲器(N)的一個區(qū)域中,以便于后處理。軟件單元選擇一個存儲解碼的視頻數(shù)據(jù)的存儲區(qū)域。CPU 1060監(jiān)視正在讀取的存儲器的狀態(tài)。在該軟件單元更新正在顯示的存儲區(qū)域中的數(shù)據(jù)的情況下,發(fā)生圖像分塊現(xiàn)象。
響應(yīng)象預(yù)處理一樣的垂直同步信號V_sync執(zhí)行后處理。由于在軟件單元中沒有時序信息,因此當(dāng)解碼完成時,數(shù)據(jù)存儲在該存儲器的情況下,軟件單元選擇存儲區(qū)域(N)。軟件單元讀取狀態(tài)寄存器來確定存儲區(qū)域并經(jīng)由寄存器數(shù)據(jù)傳送要顯示在硬件單元中的存儲區(qū)域的信息。狀態(tài)寄存器中的預(yù)定位被用作寄存器數(shù)據(jù)。這意味著正在顯示的數(shù)據(jù)的區(qū)域以號表達,并且將該號傳送到CPU 1060。如果在引導(dǎo)裝入后設(shè)置了幀號碼(number)(N)的原始開始地址之后,沒有執(zhí)行數(shù)據(jù)的下一次更新,則該號有效。CPU 1060產(chǎn)生以垂直同步信號(V_sync)為單位的開始地址。Y1開始地址、Y2開始地址和Y3開始地址分別映射到圖11的存儲區(qū)域中的0、1和2。
如圖14所示,CPU 1060利用狀態(tài)寄存器的status_reg的兩位,計數(shù)對應(yīng)于軟件計數(shù)值sw_cnt和硬件計數(shù)值hw_cnt的兩個值。如果解碼結(jié)束,軟件單元讀取硬件計數(shù)值hw_cnt。此時,軟件單元將在硬件計數(shù)值hw_cn中沒有使用的號順序地傳送到硬件單元。硬件單元線性地增加該號,并將該號傳送到軟件單元。如果硬件單元不能從軟件單元接收到計數(shù)值,則從前一地址讀取數(shù)據(jù),因而引起圖像滯留現(xiàn)象(holding phenomenon)。如果添加多余的緩沖區(qū),則軟件單元可以在垂直同步信號(V_sync)之間的間隔內(nèi)解碼兩幀。首先,軟件單元計數(shù)值sw_cnt和硬件單元計數(shù)值hw_cnt之間的差保持為2。此時,如果在一個V_sync間隔中解碼兩幀,則將兩個計數(shù)值之間的差減1。
本發(fā)明中一個緩沖器出現(xiàn)存儲頁面號碼(Nb),并且無論什么時候,只要緩沖區(qū)的存儲頁面增加1,就將解碼所需要的時間延遲一幀。但是,在軟件單元等待直到存儲頁面號碼如圖12(b)(sw_cnt=1)中那樣增加的情況下,當(dāng)產(chǎn)生垂直同步信號(V_sync)時產(chǎn)生幀緩沖區(qū),因而降低等待解碼的時間。如果在一個V_sync中請求了超過(1+Nb)存儲頁面的顯示,該軟件單元等待直到產(chǎn)生一個非請求V_sync。例如,如果產(chǎn)生了Nb個多余的緩沖區(qū),則產(chǎn)生總共(Nb+3)個存儲頁面。此時,Nb被約定在解碼器和顯示裝置之間。圖11中包括三個存儲頁面,但存儲頁面的數(shù)目可以根據(jù)緩沖區(qū)的數(shù)目(number)增加。
從解碼器的角度來看,在一個V_sync中可以請求的存儲頁面的顯示最大為(1+Nb)。如果緩沖區(qū)的存儲頁面(MP)的數(shù)目Nb處于滿狀態(tài)(full state),則在V_sync的預(yù)定量的時間期間只能請求一個顯示。如果解碼器不能立即請求驅(qū)動單元顯示存儲頁面,則延遲解碼直到可能進行請求為止。所有顯示驅(qū)動單元的狀態(tài)都由硬件單元的存儲頁面來確定。
如上所述,由于本發(fā)明在不用常規(guī)輪詢和中斷方法的等待或中斷的情況下操作,因此可以快速穩(wěn)定地操作。另外,所捕捉的屏幕總是由視頻解碼器的請求提供,因此對裸眼來說顯得自然。此外,由于唯一的捕捉命令也是在初始化期間設(shè)置關(guān)聯(lián)于捕捉的大量信息之后給出的,因此可以直接執(zhí)行控制。
由于在總是由視頻解碼器的請求提供顯示的屏幕時,會存在很少由于最小存儲器引起的幀丟失,因此對裸眼來說顯得自然。此外,由于唯一的顯示命令也是在初始化期間設(shè)置關(guān)聯(lián)于顯示的大量信息之后給出的,因此可以直接執(zhí)行控制,并且可以以一幀一個緩沖器地每秒顯示最大達到30頁,而不會延遲解碼處理。
雖然本發(fā)明特別是參考其優(yōu)選實施例進行圖示和介紹的,但本領(lǐng)域的普通技術(shù)人員應(yīng)該理解,在不脫離由權(quán)利要求書所限定的本發(fā)明的精神和范圍的前提下,可以在其中進行形式和細節(jié)方面的各種變化。
權(quán)利要求
1.一種有效地捕捉視頻的視頻預(yù)處理方法,該方法包括步驟(a)依次給多個存儲區(qū)域分配號碼,并響應(yīng)幀同步信號循環(huán)地遞增該號碼;(b)響應(yīng)幀同步信號檢查正在存儲的存儲器區(qū)域,并捕捉輸入的視頻數(shù)據(jù);以及(c)以預(yù)定次序在存儲器區(qū)域中存儲所捕捉的視頻數(shù)據(jù)。
2.如權(quán)利要求1所述的視頻預(yù)處理方法,其中在預(yù)定單元捕捉該視頻數(shù)據(jù)。
3.如權(quán)利要求1所述的視頻預(yù)處理方法,其中按以幀的同步為單位或以幾個幀的同步為單位,通過寄存器接收到的捕捉信號捕捉視頻數(shù)據(jù)。
4.如權(quán)利要求1所述的視頻預(yù)處理方法,其中該視頻信號被捕捉、存儲在存儲器的一個預(yù)定區(qū)域中,并且在步驟(c)中傳送該所存儲的存儲器的區(qū)域。
5.如權(quán)利要求1所述的視頻預(yù)處理方法,其中存儲所捕捉的數(shù)據(jù)的存儲器的開始地址為引導(dǎo)裝入后的存儲區(qū)域的地址。
6.如權(quán)利要求5所述的視頻預(yù)處理方法,其中該存儲器的開始地址直到允許下一次地址更新為止都是有效的。
7.如權(quán)利要求5所述的視頻預(yù)處理方法,其中該存儲器的開始地址以幀的同步為單位或幾個幀的同步為單位來使用。
8.如權(quán)利要求1所述的視頻預(yù)處理方法,其中存儲數(shù)據(jù)的存儲區(qū)域劃分成多個區(qū)域,并設(shè)置對應(yīng)于各自的多個區(qū)域的地址。
9.一種有效地顯示視頻的視頻后處理方法,該方法包括步驟(a)給多個存儲區(qū)域依次編號;(b)響應(yīng)幀同步信號循環(huán)地檢查存儲區(qū)域的號碼,在存儲區(qū)域中產(chǎn)生捕捉命令,并計算要編碼的存儲區(qū)域;以及(c)編碼所計算出的存儲區(qū)域的數(shù)據(jù)。
10.如權(quán)利要求9所述的視頻預(yù)處理方法,其中如果在編碼結(jié)束后檢查到的存儲區(qū)域與要編碼的存儲區(qū)域相同,則重新編碼前一幀。
11.如權(quán)利要求9所述的視頻預(yù)處理方法,其中要編碼的存儲區(qū)域通過(MP+k)模N進行計算,這里MP是存儲頁面,k=N-1,N為區(qū)域號碼。
12.如權(quán)利要求9所述的視頻預(yù)處理方法,其中存儲頁面的號碼是(Np+2),根據(jù)該存儲頁面號碼,通過(MP+k)模N計算進行編碼的存儲區(qū)域,這里如果并行捕捉處理所需的存儲器為Np,則k=N-1,N為區(qū)域號碼。
13.一種有效地捕捉視頻的視頻預(yù)處理設(shè)備,該設(shè)備包括存儲器單元,它被劃分成多個存儲區(qū)域,每個區(qū)域被分配一個號碼;軟件單元,用于在無論什么時候產(chǎn)生視頻同步信號時,檢查到存儲單元中所使用的區(qū)域之后,在將要用于下一次的存儲器區(qū)域中產(chǎn)生捕捉命令;以及硬件單元,用于響應(yīng)幀同步信號循環(huán)地遞增存儲器單元中的區(qū)域的號碼,響應(yīng)從軟件單元接收的捕捉命令捕捉所接收到的視頻信號,并且以預(yù)定次序在存儲器區(qū)域中存儲所該視頻數(shù)據(jù)。
14.如權(quán)利要求13所述的視頻預(yù)處理設(shè)備,其中軟件單元是在寄存器文件中設(shè)置捕捉命令的工具。
15.一種有效地顯示視頻的視頻后處理方法。該方法包括步驟(a)依次給多個存儲區(qū)域分配號碼,并響應(yīng)幀同步信號循環(huán)地遞增該號碼;(b)響應(yīng)幀同步信號顯示存儲器區(qū)域,檢查所顯示的存儲區(qū)域,并以預(yù)定次序在存儲器區(qū)域中存儲視頻數(shù)據(jù);以及(c)順序地顯示存儲在存儲器區(qū)域中的視頻數(shù)據(jù)。
16.如權(quán)利要求15所述的視頻后處理方法,其中視頻數(shù)據(jù)顯示在預(yù)定單元中。
17.如權(quán)利要求15所述的視頻后處理方法,其中視頻數(shù)據(jù)通過在幀的同步單元中接收到的顯示命令進行顯示。
18.如權(quán)利要求15所述的視頻后處理方法,還包括步驟在顯示視頻數(shù)據(jù)之后,傳送顯示的存儲區(qū)域的位置。
19.如權(quán)利要求15所述的視頻后處理方法,其中要顯示的存儲器的開始地址由引導(dǎo)裝入后所設(shè)置的存儲區(qū)域的地址進行設(shè)置。
20.如權(quán)利要求19所述的視頻后處理方法,其中所設(shè)置的存儲區(qū)域的地址直到允許下一個地址更新之前是有效的。
21.如權(quán)利要求19所述的視頻后處理方法,其中存儲器的開始地址以幀的同步為單位來使用。
22.如權(quán)利要求15所述的視頻后處理方法,其中存儲數(shù)據(jù)的存儲區(qū)域被劃分成多個區(qū)域,并且設(shè)置對應(yīng)于各自的多個區(qū)域的地址。
23.一種視頻后處理方法,包括步驟(a)給多個存儲區(qū)域依要顯示的次序編號;(b)在響應(yīng)幀同步信號讀取各個正在顯示的存儲區(qū)域的號碼之后,依次增加要解碼的存儲區(qū)域的地址;以及(c)解碼步驟(b)中的存儲區(qū)域并顯示所解碼的存儲區(qū)域。
24.如權(quán)利要求23所述的視頻后處理方法,其中如果所顯示的存儲區(qū)域不同于所解碼的存儲區(qū)域,則顯示下一屏幕。
25.如權(quán)利要求24所述的視頻后處理方法,其中當(dāng)在同步信號的預(yù)定時間量期間產(chǎn)生至少兩個或多個顯示請求時,顯示下一屏幕。
26.如權(quán)利要求25所述的視頻后處理方法,其中如果存儲區(qū)域號碼為N,則在同步信號的預(yù)定時間量期間產(chǎn)生(1+N)個存儲區(qū)域的顯示請求。
27.如權(quán)利要求25或26所述的視頻后處理方法,其中當(dāng)在同步信號的預(yù)定時間量期間產(chǎn)生超過(1+N)個存儲區(qū)域的顯示請求時,直到輸入非同步信號為止,不執(zhí)行顯示。
28.如權(quán)利要求23所述的視頻后處理方法,其中如果顯示的存儲區(qū)域與解碼的存儲區(qū)域相同,則不執(zhí)行解碼。
29.一種有效地顯示視頻的視頻后處理設(shè)備,該設(shè)備包括存儲器單元,它被劃分成多個存儲區(qū)域,每個區(qū)域被分配一個號碼;軟件單元,用于將響應(yīng)視頻同步信號顯示的存儲區(qū)域的數(shù)目與已解碼的存儲器區(qū)域的數(shù)目進行比較,并產(chǎn)生視頻數(shù)據(jù)的顯示命令;以及硬件單元,用于響應(yīng)幀同步信號循環(huán)地遞增存儲器單元中的區(qū)域的號碼,并且響應(yīng)在軟件單元中產(chǎn)生的顯示命令以存儲器單元的預(yù)定次序顯示一屏幕。
30.如權(quán)利要求29所述的視頻后處理設(shè)備,其中該軟件單元是用于設(shè)置寄存器中的顯示命令的工具。
全文摘要
涉及一種能夠利用新的硬件-軟件協(xié)作方法,穩(wěn)定地以少量存儲器高速地操作的視頻預(yù)處理/后處理設(shè)備,并提供該設(shè)備所使用的一種方法。有效地捕捉視頻的視頻預(yù)處理方法包括步驟:依次給多個存儲區(qū)域分配號碼,并響應(yīng)幀同步信號循環(huán)地遞增該號碼;響應(yīng)幀同步信號檢查正在存儲的存儲器區(qū)域,并捕捉輸入的視頻數(shù)據(jù);以及以預(yù)定次序在存儲器區(qū)域中存儲所捕捉的視頻數(shù)據(jù)。有效地顯示視頻的視頻后處理方法包括步驟:依次給多個存儲區(qū)域分配號碼,并響應(yīng)幀同步信號循環(huán)地遞增該號碼;響應(yīng)幀同步信號顯示存儲器區(qū)域,檢查所顯示的存儲區(qū)域,并以預(yù)定次序在存儲器區(qū)域中存儲視頻數(shù)據(jù);以及順序地顯示存儲在存儲器區(qū)域中的視頻數(shù)據(jù)。
文檔編號H04N7/26GK1381990SQ02116130
公開日2002年11月27日 申請日期2002年4月19日 優(yōu)先權(quán)日2001年4月19日
發(fā)明者全鐘求, 金容帝, 姜相旭, 徐廷旭 申請人:三星電子株式會社