苗繪玲
(杭州士蘭微電子股份有限公司,浙江 杭州 310012)
?
視頻時(shí)序信號(hào)發(fā)生器的實(shí)現(xiàn)方法
苗繪玲
(杭州士蘭微電子股份有限公司,浙江 杭州 310012)
闡述了一種新型視頻時(shí)序信號(hào)發(fā)生器的實(shí)現(xiàn)方法,并提供了詳細(xì)的設(shè)計(jì)結(jié)構(gòu)圖。通過(guò)軟件配置不同的時(shí)序描述指令,該發(fā)生器中的指令解碼器和指令跳轉(zhuǎn)器將時(shí)序描述指令解碼,產(chǎn)生相應(yīng)的連續(xù)時(shí)序信號(hào),包括小尺寸和超大尺寸顯示設(shè)備的時(shí)序信號(hào),以及不規(guī)則分辨率的時(shí)序信號(hào)。視頻時(shí)序信號(hào)發(fā)生器可以輸出多標(biāo)準(zhǔn)的視頻格式,滿足各種視頻顯示格式的要求。
時(shí)序信號(hào)發(fā)生器;數(shù)字時(shí)序信號(hào);視頻格式
電視技術(shù)中,傳遞圖像的基本方法是:根據(jù)人的視覺(jué)特性,利用電子掃描方式將平面圖像分解成像素,采用電信號(hào)來(lái)傳送靜止或活動(dòng)圖像。像素的傳送具有以下兩個(gè)特點(diǎn)[1]:第一,要求傳送速度快,只有傳送時(shí)間小于視覺(jué)暫留時(shí)間,圖像才會(huì)給人以連續(xù)無(wú)跳動(dòng)的感覺(jué);第二,傳送要準(zhǔn)確,每個(gè)像素一定要在需要傳送時(shí)才被轉(zhuǎn)換、傳送,并被接收方接收。且收、發(fā)雙方每個(gè)像素被轉(zhuǎn)換、還原的幾何位置要一一對(duì)應(yīng),即收發(fā)雙方應(yīng)同步[2]。
目前市面上一些可以產(chǎn)生數(shù)字時(shí)序信號(hào)的集成電路,只是針對(duì)某些顯示設(shè)備的應(yīng)用而設(shè)計(jì)的,只能輸出固定的幾組視頻時(shí)序信號(hào),支持的視頻標(biāo)準(zhǔn)單一,缺乏靈活性,往往只能滿足特定視頻系統(tǒng),無(wú)法滿足多種形式視頻時(shí)序信號(hào)輸入的需求。例如,某家公司的一款芯片輸出分辨率最小為480i,最大為1 080p。根據(jù)其所支持的分辨率,該款芯片可以應(yīng)用于TV顯示,但是不能應(yīng)用于小尺寸7 in(1 in=2.54 cm)、8 in或超大尺寸顯示設(shè)備,例如車載電視、廣告墻等,主要就是因該款芯片在支持基本的TV分辨率的同時(shí),無(wú)法輸出小尺寸和超大尺寸顯示設(shè)備所需要的時(shí)序信號(hào)。按照傳統(tǒng)的設(shè)計(jì)方法,要想輸出多種時(shí)序信號(hào),勢(shì)必增加設(shè)計(jì)的選擇條件,這樣會(huì)增加硬件成本,控制靈活度也會(huì)大大降低。
本設(shè)計(jì)在不增加硬件成本的基礎(chǔ)上,可以解決現(xiàn)有技術(shù)所支持的多標(biāo)準(zhǔn)視頻格式有限方面的不足,提供一種視頻時(shí)序信號(hào)發(fā)生器,該視頻時(shí)序信號(hào)發(fā)生器可根據(jù)需要產(chǎn)生任意分辨率的時(shí)序信號(hào),適用不同的視頻格式,例如:采用本設(shè)計(jì)的同款芯片應(yīng)用于TV顯示的同時(shí),也可根據(jù)客戶需求產(chǎn)生應(yīng)用于某款玩具的320×240時(shí)序,應(yīng)用于車載電視的800×480時(shí)序。采用該設(shè)計(jì)的芯片應(yīng)用范圍比較廣,不必局限于常用的一些分辨率,可滿足各種視頻顯示格式的要求,只需根據(jù)用戶需求改變軟件配置,即可產(chǎn)生用戶需要的任意時(shí)序信號(hào)。
視頻時(shí)序信號(hào)發(fā)生器由軟硬件結(jié)合實(shí)現(xiàn)。軟件將需要的視頻時(shí)序信號(hào)用指令描述出來(lái),例如:一幀內(nèi)有多少行,每行的高低電平跳變位置,電平持續(xù)時(shí)間等信息;硬件通過(guò)CPU接收這些描述指令并加以存儲(chǔ),再通過(guò)指令解碼器將這些描述指令解碼,最后輸出需要的視頻時(shí)序信號(hào)。這樣的設(shè)計(jì)只需要控制軟件提供給硬件的描述指令,即可靈活地輸出用戶所需求的任意分辨率的時(shí)序信號(hào)。
視頻時(shí)序信號(hào)發(fā)生器產(chǎn)生信號(hào)的步驟如下:
1)根據(jù)需要自定義指令碼。
2)確定需要的視頻格式,例如[3]:525p,525i,625p,625i,720p,1 080i,1 080p,VGA,SVGA,XGA,SXGA等格式中的一種,也可以是分辨率比較特殊的某一種視頻格式。時(shí)序信號(hào)分為數(shù)字時(shí)序信號(hào)和數(shù)字復(fù)合時(shí)序信號(hào)兩種,用自定義的指令碼對(duì)所需要視頻格式的時(shí)序信號(hào)進(jìn)行描述,只需要描述一幀圖像的時(shí)序信號(hào)。
3)用編譯器將描述指令轉(zhuǎn)為機(jī)器碼。描述指令有數(shù)字和數(shù)字復(fù)合兩種,分別產(chǎn)生數(shù)字時(shí)序機(jī)器碼和數(shù)字復(fù)合時(shí)序機(jī)器碼文件。
4)通過(guò)CPU將數(shù)字時(shí)序的機(jī)器碼和數(shù)字復(fù)合時(shí)序的機(jī)器碼分別送給硬件,硬件將兩份機(jī)器碼分別保存到兩個(gè)存儲(chǔ)器中。
5)視頻時(shí)序發(fā)生器分別從存儲(chǔ)器中讀取機(jī)器碼,產(chǎn)生數(shù)字同步和數(shù)字復(fù)合同步時(shí)序信號(hào)。
硬件從系統(tǒng)復(fù)位開(kāi)始一直處于休眠狀態(tài),直到時(shí)序發(fā)生器被喚醒才開(kāi)始工作。此時(shí)視頻時(shí)序發(fā)生器從休眠狀態(tài)跳到IDLE狀態(tài),然后開(kāi)始運(yùn)行機(jī)器碼。通過(guò)指令解碼器對(duì)指令進(jìn)行解碼,解碼后的指令用來(lái)控制指令跳轉(zhuǎn)器,產(chǎn)生下一個(gè)要讀取的指令地址,也即存儲(chǔ)器的讀地址,并同時(shí)產(chǎn)生相應(yīng)的時(shí)序信號(hào)。存儲(chǔ)器中的指令運(yùn)行完一遍后,產(chǎn)生的時(shí)序信號(hào)剛好為一幀圖像。然后根據(jù)指令再跳轉(zhuǎn)到指令的開(kāi)始,重復(fù)執(zhí)行上述機(jī)器碼,產(chǎn)生下一幀圖像的時(shí)序信號(hào),依次類推,相應(yīng)的視頻時(shí)序信號(hào)就產(chǎn)生了。
視頻時(shí)序發(fā)生器,包括數(shù)字時(shí)序發(fā)生器、數(shù)字復(fù)合時(shí)序發(fā)生器和兩個(gè)存儲(chǔ)器(RAM_ana和RAM_dig),兩個(gè)發(fā)生器均由指令解碼器和指令跳轉(zhuǎn)器組成,如圖1所示。
圖1 時(shí)序發(fā)生器的原理圖
硬件通過(guò)CPU將需要解碼的視頻描述指令存儲(chǔ)到相應(yīng)的存儲(chǔ)中,接收到wakeup信號(hào)后,時(shí)序發(fā)生器通過(guò)指令解碼器和指令跳轉(zhuǎn)器將視頻描述指令解碼,最后輸出需要的視頻時(shí)序信號(hào)。下面所示實(shí)施例中以525i模式的數(shù)字復(fù)合時(shí)序發(fā)生器為例,其他模式的時(shí)序發(fā)生器原理與此相同,其過(guò)程如下:
1)根據(jù)需要自定義視頻時(shí)序信號(hào)發(fā)生器中用到的指令,如表1所示。
除了常見(jiàn)的IDLE,INIT,SLEP,RETN,JUMP,NOP等指令外,根據(jù)需要自定義新的指令,每個(gè)指令都定義了其對(duì)應(yīng)的指令碼。以IDLE為例,表1中IDLE對(duì)應(yīng)的指令碼為16′b1110_TIMER[11:0],如果硬件接收到一條指令16′b1110_0001_0010_0111,則表示硬件需保持空閑狀態(tài)(IDLE)的循環(huán)次數(shù)為12′b0001_0010_0111(TIMER[11:0])。
2)確定需要的視頻格式,例如525i格式。然后用自定義的指令碼對(duì)所需要的視頻格式進(jìn)行描述,只需要描述一幀圖像的時(shí)序信號(hào)。
數(shù)字復(fù)合時(shí)序信號(hào)的時(shí)序描述,首先,要詳細(xì)說(shuō)明一幀圖像中各種脈沖所占行數(shù),例如鋸齒脈沖、后均衡脈沖、數(shù)據(jù)有效行脈沖、前均衡脈沖[3-4]。如果是隔行模式,則要為奇、偶場(chǎng)分別進(jìn)行時(shí)序描述。其次,對(duì)每種脈沖進(jìn)行具體到像素的描述,主要描述各種脈沖的高低電平跳變位置,電平持續(xù)時(shí)間等信息。不管這些信息如何變化,對(duì)一種視頻格式來(lái)說(shuō),每行總的像素個(gè)數(shù)是固定的,例如525i格式一行總的像素為858個(gè)[3]。
表1指令定義
指令指令碼IDLE16'b1110_TIMER[11:0]INIT16'b1111_1111_1100_0000SLEP16'b1111_1111_1111_1111EVTS16'b0000_EVT[11:0]EVTWS16'b0001_EVT[11:0]EVTB16'b0100_RPT[5:0]_BLK[5:0]EVTBX16'b0101_0000_00_BLK[5:0]EVTX16'b1100_0000_0000_EVT[3:0]EVTY16'b1100_0001_0000_EVT[3:0]RPTX16'b1100_0100_BLK[7:0]RPTB16'b1101_RPT[5:0]_BLK[5:0]GOSUB16'b1100_0101_imm8[7:0]RETN16'b1100_0110_0000_0000WRCX16'b1000_imm12[11:0]WRCY16'b1001_imm12[11:0]WRAC16'b1010_imm12[11:0]WRSL16'b1011_imm12[11:0]JUMP16'b1110_1111_imm8[7:0]BRIET16'b1110_1110_imm8[7:0]JPCMD16'b1111_1111_1110_0000WRAGC16'b1010_1111_1111_1111NOP16'b1110_0000_0000_0000
數(shù)字復(fù)合時(shí)序信號(hào)的時(shí)序描述的第一步,是定義總線高電平所對(duì)應(yīng)的值(WRAC 221)。由于數(shù)字復(fù)合時(shí)序信號(hào)是用來(lái)模擬復(fù)合同步的模擬信號(hào),故數(shù)字復(fù)合同步信號(hào)的高低電平不能簡(jiǎn)單用1和0表示,需要用總線來(lái)表述。可根據(jù)視頻標(biāo)準(zhǔn)來(lái)定義數(shù)字復(fù)合同步高低電平所對(duì)應(yīng)的總線值,例如525i的復(fù)合同步高、低電平分別對(duì)應(yīng)221和0。
第二步,描述各種脈沖所占行數(shù)。由于[4]525i是隔行模式,故分奇、偶場(chǎng)進(jìn)行時(shí)序描述,每場(chǎng)的行數(shù)為262.5行(525/2),525i格式的時(shí)序圖如圖2所示。
奇場(chǎng)(圖2中4~266行)包含[4]:6個(gè)鋸齒脈沖(占3行時(shí)間)、6個(gè)后均衡脈沖(占3行時(shí)間)、253個(gè)有效行、1個(gè)半行、6個(gè)前均衡脈沖(占3行時(shí)間),共262.5行。偶場(chǎng)(圖2中266~525和13行)包含:6個(gè)鋸齒脈沖(占3行時(shí)間)、6個(gè)后均衡脈沖(占3行時(shí)間)、1個(gè)半行、253個(gè)有效行、6個(gè)前均衡脈沖(占3行時(shí)間),共262.5行。以鋸齒脈沖為例,程序描述如下:
//Serration Lines (6個(gè)鋸齒脈沖)
EVTB5,1// 循環(huán)執(zhí)行下面兩條指令6次
GOSUB serration// 跳轉(zhuǎn)到子程序serration
WRSL0// WE_SLOPE = 0
圖2 525i格式的時(shí)序圖
第三步,對(duì)每種脈沖進(jìn)行詳細(xì)描述,具體到像素。主要對(duì)各種脈沖的上升沿、下降沿、高低電平的值及高低電平持續(xù)時(shí)間等信息進(jìn)行描述。以鋸齒脈沖的子程序serration為例:
Serration:
GOSUB slope_down// 跳轉(zhuǎn)到子程序slope_down
IDLE714 // 鋸齒脈沖低電平持續(xù)時(shí)間 715T
GOSUB slope_up // 跳轉(zhuǎn)到子程序slope_up
IDLE106 // 鋸齒脈沖高電平持續(xù)時(shí)間 107T
RETN
slope_down:// 產(chǎn)生有10個(gè)階梯的下降沿
WRSL-23// WE_SLOPE -23
WRSL-22// WE_SLOPE -22
IDLE 7 // 執(zhí)行8次(WE_SLOPE - 22)
WRSL0 // WE_SLOPE值不變
RETN
slope_down: // 產(chǎn)生有10個(gè)階梯的上升沿
WRSL22// WE_SLOPE +22
IDLE 7 // 執(zhí)行8次(WE_SLOPE + 22)
WRSL23// WE_SLOPE +23
WRSL0 // WE_SLOPE值不變
RETN
鋸齒脈沖serration子程序首先跳到slope_down子程序,產(chǎn)生鋸齒脈沖的下降沿;然后執(zhí)行下一條命令“IDLE 714”,該命令使總線為0的狀態(tài)保持715個(gè)單位時(shí)間。然后執(zhí)行slope_up子程序,該子程序產(chǎn)生鋸齒脈沖的上升沿,原理與slope_down類似。最后再執(zhí)行命令“IDLE 106”,也即slope_up的最后一個(gè)階梯值221保持107個(gè)單位時(shí)間。所有的serration子程序執(zhí)行完后產(chǎn)生的波形如圖3所示。
圖3 鋸齒脈沖serration
由于描述指令代碼的可編程性,數(shù)字復(fù)合同步信號(hào)的精度可通過(guò)修改描述指令代碼實(shí)現(xiàn),只需改變數(shù)字復(fù)合時(shí)序信號(hào)上升沿和下降沿跳變期間的階梯個(gè)數(shù)。
3)525i的視頻復(fù)合時(shí)序信號(hào)實(shí)際上就是將程序按照表1翻譯為對(duì)應(yīng)的指令碼。例如:由于表1中定義WRAC對(duì)應(yīng)的指令碼為16′b1010_imm12,則指令WRAC 221對(duì)應(yīng)的機(jī)器碼為0xA0DD。
對(duì)于當(dāng)前例子525i的視頻復(fù)合時(shí)序信號(hào),不需要啟動(dòng)數(shù)字時(shí)序信號(hào)發(fā)生器。通過(guò)CPU將機(jī)器碼存儲(chǔ)到數(shù)字復(fù)合時(shí)序信號(hào)發(fā)生器的存儲(chǔ)器中,也即圖1中的RAM_ana。存儲(chǔ)器的深度應(yīng)以所要支持的視頻格式中機(jī)器碼最長(zhǎng)的視頻格式為標(biāo)準(zhǔn)來(lái)定義。
4)數(shù)字視頻時(shí)序發(fā)生器從系統(tǒng)復(fù)位開(kāi)始一直處于休眠狀態(tài),圖1中的wakeup信號(hào)用來(lái)喚醒數(shù)字視頻時(shí)序發(fā)生器,使其處于工作狀態(tài)。wakeup的時(shí)間點(diǎn)可以具體到某一行的某一個(gè)像素點(diǎn),由CPU配置。視頻時(shí)序發(fā)生器被喚醒后從休眠狀態(tài)跳到IDLE狀態(tài),然后開(kāi)始運(yùn)行機(jī)器碼。
視頻時(shí)序發(fā)生器包括指令解碼器和指令跳轉(zhuǎn)器兩部分。指令跳轉(zhuǎn)器產(chǎn)生存儲(chǔ)器的讀地址,存儲(chǔ)器將讀地址中對(duì)應(yīng)的機(jī)器碼傳遞給指令解碼器。指令解碼器對(duì)收到的機(jī)器碼進(jìn)行解碼,解碼的依據(jù)為表1所定義的指令。例如當(dāng)16位指令的高8位是8′hEF時(shí),當(dāng)前指令解碼為JUMP。解碼后的指令送給指令跳轉(zhuǎn)器。
如圖4所示,指令跳轉(zhuǎn)器是一個(gè)狀態(tài)機(jī),主要控制指令的狀態(tài)和存儲(chǔ)器的讀地址跳轉(zhuǎn)。
圖4 指令跳轉(zhuǎn)器
默認(rèn)狀態(tài)下,狀態(tài)機(jī)處于休眠狀態(tài),CPU的初始化也可使?fàn)顟B(tài)機(jī)從任意狀態(tài)跳回到休眠狀態(tài)。通過(guò)CPU配置wakeup有效,狀態(tài)機(jī)開(kāi)始工作,從休眠狀態(tài)跳到IDLE狀態(tài),并在下一個(gè)時(shí)鐘跳到Load_acc狀態(tài)。Load_acc狀態(tài)用來(lái)設(shè)置同步信號(hào)高電平的值,當(dāng)前例子525i模式中將同步信號(hào)的高電平設(shè)為221,同步時(shí)序信號(hào)從該狀態(tài)開(kāi)始輸出。
Load_acc狀態(tài)只有一個(gè)節(jié)拍,下一個(gè)節(jié)拍將根據(jù)時(shí)序信號(hào)的指令描述跳到鋸齒脈沖的子程序部分。硬件將程序中記錄的鋸齒脈沖子程序地址作為存儲(chǔ)器的讀地址,從存儲(chǔ)器中讀取鋸齒脈沖的子程序,并將程序中鋸齒脈沖的個(gè)數(shù)n記錄下來(lái)。根據(jù)子程序中描述的總線狀態(tài),包括總線上升沿、下降沿、高低電平的值等信息產(chǎn)生一行的鋸齒脈沖,然后返回到主程序,判斷n是否為0,不為0則繼續(xù)跳到鋸齒脈沖的子程序中,循環(huán)執(zhí)行該子程序,直到n為0為止。然后程序跳轉(zhuǎn)到主程序的后均衡脈沖程序部分,同樣根據(jù)程序記錄后均衡脈沖的個(gè)數(shù)n和子程序的地址,然后根據(jù)此地址跳轉(zhuǎn)到后均衡脈沖的子程序部分,經(jīng)過(guò)幾個(gè)循環(huán)產(chǎn)生相應(yīng)個(gè)數(shù)的后均衡脈沖,再跳回到主程序中。后面的幾個(gè)脈沖產(chǎn)生的方法與前面描述的鋸齒脈沖方法類似。當(dāng)一幀圖像的時(shí)序信號(hào)完成,程序跳回到主程序的開(kāi)始,重復(fù)執(zhí)行上述機(jī)器碼,產(chǎn)生下一幀的時(shí)序信號(hào),如此循環(huán)下去,連續(xù)的時(shí)序信號(hào)就產(chǎn)生了。
視頻時(shí)序信號(hào)發(fā)生器根據(jù)需要可以產(chǎn)生任意分辨率的時(shí)序信號(hào),可以滿足各種視頻顯示格式的要求。在實(shí)際應(yīng)用中,這樣的視頻標(biāo)準(zhǔn)多樣化,它的運(yùn)用領(lǐng)域廣泛,可應(yīng)用于各種尺寸的顯示設(shè)備,沒(méi)有視頻尺寸方面的限制,例如液晶電視、廣告墻、車載電視等。
本設(shè)計(jì)通過(guò)軟件控制視頻信號(hào)的時(shí)序,即描述指令的可編程性,可方便調(diào)整同步信號(hào)的時(shí)序,例如:同步頭寬度、前肩寬度、后肩寬度、有效數(shù)據(jù)的起始位置等;另外,描述指令的可修改性,使得該設(shè)計(jì)只需根據(jù)不同視頻模式修改輸入給硬件的機(jī)器碼,不需要增加額外的硬件設(shè)計(jì),大大節(jié)約了硬件實(shí)現(xiàn)成本。
本設(shè)計(jì)可以滿足輸出行場(chǎng)信號(hào)的周期性和輸入、輸出行場(chǎng)信號(hào)的同步性。實(shí)現(xiàn)了多標(biāo)準(zhǔn)的視頻格式輸出,可以滿足各種視頻顯示格式的要求。彌補(bǔ)了現(xiàn)有時(shí)序發(fā)生器精度低、缺乏靈活性的不足。
[1]姜秀華,張永輝,章文輝.數(shù)字電視原理與應(yīng)用[M].北京:人民郵電出版社,2003.
[2]李志輝.淺談數(shù)字電視技術(shù)的現(xiàn)狀與發(fā)展[J].數(shù)字技術(shù)與應(yīng)用,2012(10):219-220.
[3]黃子強(qiáng).液晶顯示原理[M].北京:國(guó)防工業(yè)出版社,2006.
[4]KEITH J.視頻技術(shù)手冊(cè)[M].5版.楊征,田尊華,張杰良,等,譯.北京:人民郵電出版社,2009.
Method of video sequence signal generator
MIAO Huiling
(HangzhouSilanMicroelectronicsCo.,Ltd.,Hangzhou310012,China)
A new method of video sequence signal generator is described, and the detailed design structure is provided. By the software configuration of different timing instruction code, the instruction code is decoded by the instruction decoder and jump instruction in generator, then arbitrary continuous timing signals are generated, including small size and large size display equipment timing signal, and irregular resolution timing also can be produced. Multi standard video format can be outputed by video timing signal generator to meet the requirements of a variety of video display format.
sequence signal generator; digital sequence signal; video format
TN911.72
BDOI:10.16280/j.videoe.2016.10.010
核高基(核心電子器件、高端通用芯片及基礎(chǔ)軟件產(chǎn)品)科技重大專項(xiàng)(2012ZX01031-002-002)
2016-08-23
文獻(xiàn)引用格式:苗繪玲.視頻時(shí)序信號(hào)發(fā)生器的實(shí)現(xiàn)方法[J].電視技術(shù),2016,40(10):45-49.
MIAO H L.Method of video sequence signal generator[J].Video engineering,2016,40(10):45-49.
苗繪玲(1978— ),女,本科生,主研視頻信號(hào)處理。
責(zé)任編輯:時(shí)雯