專利名稱:實(shí)現(xiàn)視頻逐行到隔行轉(zhuǎn)換的裝置和轉(zhuǎn)換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻處理技術(shù),尤其涉及一種實(shí)現(xiàn)視頻逐行到隔行轉(zhuǎn)換的裝置和轉(zhuǎn)換方法。
背景技術(shù):
傳統(tǒng)的摸擬電視信號(hào)采用的都是一種名為Interlace Scan(隔行掃描)的方法來重現(xiàn)由信號(hào)線所傳遞的畫面信息,因那時(shí)的技術(shù)限制,數(shù)據(jù)處理速度跟不上,且傳統(tǒng)的TV信息傳遞介質(zhì)無法滿足傳遞大量數(shù)據(jù)包的要求,其先提取奇數(shù)行的數(shù)據(jù)形成圖像輪廓,再用偶數(shù)行數(shù)據(jù)補(bǔ)充,以NTSC的60Hz為例,在電視上每秒基本上會(huì)通過60幅的畫面,這60幅中的第一幀畫面都是采用隔行掃描的方式得出的,隔行掃描意味著在顯示端上,只能在同一場畫面中顯示奇數(shù)行的畫面或者偶數(shù)行的畫面,比如電視在還原1秒鐘的1/60畫面時(shí),掃描的是1,3,5,7,9這樣的奇數(shù)行,而到了還原第2/60畫面的時(shí)候就轉(zhuǎn)為掃描還原2,4,6,8,10的偶數(shù)行信息;逐行掃描的工作方式與隔行掃描完全不同,它的掃描次序便是每掃描還原第1行信息,接下來是第2行,第3行以次類推。
隨著電子技術(shù)發(fā)展的日新月異,電視的發(fā)展也逐漸由模擬電視發(fā)展到了數(shù)字電視。傳統(tǒng)的模擬電視系統(tǒng)的處理過程可以概括為從攝像管采樣,編碼,傳輸,解碼再到顯像管顯示。由于技術(shù)所限,這一過程從攝像,傳輸?shù)斤@示都是以場為單位來處理的;而對(duì)于數(shù)字電視系統(tǒng)而言,由于CCD和CMOS圖像傳感器技術(shù)的發(fā)展,視頻采樣過程已經(jīng)有了革命性的變化,基于CCD,CMOS圖像傳感器來獲取的圖像一般都是以幀為單位的,一幀等于兩場,但帶來的問題就是目前大部分的電視都是隔行的,只能顯示以場為單位的視頻信號(hào)。
另外,由于CCD,CMOS圖像傳感器的輸出圖像的速率主要受傳感器曝光時(shí)間的限制,在光照條件不同的情況下,輸出圖像幀率也不同。當(dāng)光照條件較暗的情況下,為了達(dá)到較好的圖像質(zhì)量,需要增加曝光時(shí)間,從而導(dǎo)致輸出幀率的降低。而對(duì)于電視顯示而言,其顯示圖像的速率是固定的,例如常見的PAL制是50場/秒,NTSC制是60場/秒,這樣即使支持逐行到隔行的轉(zhuǎn)換,也會(huì)由于幀率過慢而無法被電視接收。
最后,對(duì)于一般的CCD,CMOS圖像傳感器而言,其輸出圖像尺寸是固定的,而電視制式則有很多種,最常見的有NTSC制和PAL制。不同的電視制式其圖像大小也不一樣,要想既支持NTSC制,也支持PAL制,就需要能夠在不影響顯示質(zhì)量的前提下能夠支持圖像尺寸大小的改變,使得既能輸出PAL制電視信號(hào),也能輸出NTSC制電視信號(hào)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種實(shí)現(xiàn)視頻逐行到隔行轉(zhuǎn)換的裝置,能將一幀圖像數(shù)據(jù)轉(zhuǎn)變?yōu)閮蓤鰯?shù)據(jù),從而支持將CCD,CMOS圖像傳感器獲取的逐行圖像顯示在隔行電視上。
本發(fā)明的又一目的在于提供一種實(shí)現(xiàn)視頻逐行到隔行轉(zhuǎn)換的轉(zhuǎn)換方法,支持將CCD,CMOS圖像傳感器獲取的逐行圖像顯示在隔行電視上,并保證在傳感器輸出圖像幀率變化的情況下顯示圖像的速率是固定的。
本發(fā)明的再一目的在于提供一種實(shí)現(xiàn)視頻逐行到隔行轉(zhuǎn)換的裝置,使得在完成上述轉(zhuǎn)換功能的同時(shí),可以支持不同的電視制式。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實(shí)現(xiàn)的一種實(shí)現(xiàn)視頻逐行到隔行轉(zhuǎn)換的裝置,用于在圖像傳感器和電視編碼器之間進(jìn)行視頻格式轉(zhuǎn)換,其特征在于,包括
第一幀存儲(chǔ)器,第二幀存儲(chǔ)器,和幀存儲(chǔ)控制器,其中幀存儲(chǔ)控制器接收來自圖像傳感器的圖像幀,并將圖像數(shù)據(jù)以幀的形式寫入第一幀存儲(chǔ)器和第二幀存儲(chǔ)器,以場的形式讀出傳送給電視解碼器。
進(jìn)一步地,幀存儲(chǔ)控制器控制第一幀存儲(chǔ)器和第二幀存儲(chǔ)器以乒乓形式工作,輪流接收來自圖像傳感器的圖像幀,在寫第一幀存儲(chǔ)器的時(shí)候讀第二幀存儲(chǔ)器,寫第二幀存儲(chǔ)器的時(shí)候讀第一幀存儲(chǔ)器,當(dāng)需要對(duì)同一個(gè)幀存儲(chǔ)器同時(shí)進(jìn)行讀和寫操作的時(shí)候,控制數(shù)據(jù)寫入和讀出的順序。
進(jìn)一步地,上述裝置還包括一個(gè)圖像大小轉(zhuǎn)換模塊,用于對(duì)所述幀存儲(chǔ)控制器傳出的圖像數(shù)據(jù)進(jìn)行大小轉(zhuǎn)換,并將轉(zhuǎn)換后的數(shù)據(jù)傳給電視編碼器進(jìn)行編碼輸出。
進(jìn)一步地,所述上述裝置圖像幀的寫入速度支持n幀/秒,讀出速度支持m幀/秒,其中2n≤m。
進(jìn)一步地,所述圖像大小轉(zhuǎn)換模塊利用雙線性內(nèi)插的方法改變圖像幀圖像尺寸。
上述雙線性內(nèi)插的基本計(jì)算公式如下p=(1-x)*p(n)+x*p(n+1);其中,p代表需要計(jì)算的像素,p(n)代表需要計(jì)算的像素的前一個(gè)像素,p(n+1)代表需要計(jì)算的像素的后一個(gè)像素,x代表需要計(jì)算的像素到p(n)的距離。
在上述方法中,無須計(jì)算所有的插入像素,只計(jì)算與縮放后實(shí)際像素對(duì)應(yīng)的插入像素。
進(jìn)一步地,所述裝置中所述圖像傳感器是CCD或CMOS圖像傳感器。
為達(dá)到上述目的,本發(fā)明還提供了一種實(shí)現(xiàn)視頻逐行到隔行轉(zhuǎn)換的轉(zhuǎn)換方法,用于上述轉(zhuǎn)換裝置,包括以下步驟寫幀存儲(chǔ)器步驟步驟一,當(dāng)幀存儲(chǔ)控制器接收到圖像傳感器一幀數(shù)據(jù)開始要寫入時(shí),首先檢查兩個(gè)幀存儲(chǔ)器是否空,順序是先檢查第一幀存儲(chǔ)器,再檢查第二幀存儲(chǔ)器;步驟二,只要有一個(gè)幀存儲(chǔ)器為空就將數(shù)據(jù)寫入空的幀存儲(chǔ)器;和,讀幀存儲(chǔ)器步驟步驟一,當(dāng)需要從幀存儲(chǔ)器讀出一幀數(shù)據(jù)時(shí),首先檢查上一幀讀出的數(shù)據(jù)是出自第一幀存儲(chǔ)器還是第二幀存儲(chǔ)器;步驟二,先檢查另一個(gè)幀存儲(chǔ)器數(shù)據(jù)是否已經(jīng)寫完,如果寫完,則讀出該幀存儲(chǔ)器的數(shù)據(jù),如果沒有,則重復(fù)讀上一個(gè)幀存儲(chǔ)器的數(shù)據(jù);其特點(diǎn)在于,寫幀存儲(chǔ)器步驟中,處理步驟一時(shí),如果兩個(gè)幀存儲(chǔ)器都不為空,則檢查當(dāng)前正在讀哪個(gè)幀存儲(chǔ)器,如果第一遍已經(jīng)讀完,則可以寫入正在讀的那個(gè)幀存儲(chǔ)器,如果沒有讀完,則同時(shí)對(duì)該幀存儲(chǔ)器進(jìn)行讀和寫操作,通過幀存儲(chǔ)控制器控制數(shù)據(jù)寫入的順序以避免上一幀數(shù)據(jù)被覆蓋,同時(shí)這一幀在讀出時(shí)也要控制讀出的順序來保證讀出正確的數(shù)據(jù)。
進(jìn)一步地,上述方法還包括以下特點(diǎn)在上述對(duì)幀存儲(chǔ)器同時(shí)進(jìn)行讀和寫操作時(shí),把需要寫入的數(shù)據(jù)按照讀出數(shù)據(jù)的順序?qū)懭?,?shù)據(jù)的讀寫順序如下設(shè)一個(gè)變量delta和j,n為行數(shù)第一幀delta=1,j=0,寫入順序?yàn)閍0,a1,a2,a3,…,a(n-1),an其中,a0=1,a(i+1)=ai+delta第二幀delta=2,j=1,寫入順序?yàn)閍0,a1,a2,a3,…,a(n-1),an
其中,a0=1,a(i+1)=ai+delta,(ai+delta)≤nai+delta-n+1,(ai+delta)>n]]>第三幀delta=4,j=2,寫入順序?yàn)閍0,a1,a2,a3,…,a(n-1),an其中,a0=1,a(i+1)=ai+delta,(ai+delta)≤nai+delta-n+1,(ai+delta)>n]]>…第m幀delta=2j,j=j=j+1,j(m-1)!=n/20,j(m-1)=n/2]]>寫入順序?yàn)閍0,al,a2,a3,…,a(n-1),an其中,a0=1,a(i+1)=ai+delta,(ai+delta)≤nai+delta-n+1,(ai+delta)>n]]>進(jìn)一步地,上述方法中所述圖像傳感器可以是CCD或CMOS。
由上述技術(shù)方案可見,本發(fā)明的通過對(duì)讀取數(shù)據(jù)的控制,使得最終系統(tǒng)能夠支持逐行變隔行的功能,在傳感器圖像輸出幀率變化的情況下也能做到不跳幀,保證圖像的連續(xù)性。
另外,通過對(duì)圖像進(jìn)行大小轉(zhuǎn)換,還可以達(dá)到支持多種電視制式的效果,在插值計(jì)算的過程中,只計(jì)算少量的像素點(diǎn),還可減少計(jì)算量。
圖1為本發(fā)明所述實(shí)現(xiàn)視頻逐行到隔行轉(zhuǎn)換的裝置的結(jié)構(gòu)簡圖;圖2為本發(fā)明所述實(shí)現(xiàn)視頻逐行到隔行轉(zhuǎn)換的裝置的較佳實(shí)施例的結(jié)構(gòu)簡圖;圖3為寫幀存儲(chǔ)器流程圖;圖4為讀幀存儲(chǔ)器流程圖;圖5為本發(fā)明所述雙線性內(nèi)插的基本計(jì)算方式示意圖;圖6為本發(fā)明所述一維雙線性內(nèi)插示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。
如圖1所示,為本發(fā)明所述實(shí)現(xiàn)視頻逐行到隔行轉(zhuǎn)換的裝置的結(jié)構(gòu)簡圖,幀存儲(chǔ)控制器23接收來自圖像傳感器1的圖像幀,并將圖像數(shù)據(jù)以幀的形式寫入第一幀存儲(chǔ)器21和第二幀存儲(chǔ)器22,以場的形式讀出傳送給電視解碼器4。
幀存儲(chǔ)控制器23控制第一幀存儲(chǔ)器21和第二幀存儲(chǔ)器22以乒乓形式工作,輪流接收來自圖像傳感器1的圖像幀,在寫第一幀存儲(chǔ)器21的時(shí)候讀第二幀存儲(chǔ)器22,寫第二幀存儲(chǔ)器22的時(shí)候讀第一幀存儲(chǔ)器21。
如圖2所示,為本發(fā)明所述實(shí)現(xiàn)視頻逐行到隔行轉(zhuǎn)換的裝置的較佳實(shí)施例的結(jié)構(gòu)簡圖,本實(shí)施例中增加了一個(gè)圖像大小轉(zhuǎn)換模塊3。
在兩個(gè)幀存儲(chǔ)器都為空的情況下,數(shù)據(jù)首先存儲(chǔ)在第一幀存儲(chǔ)器21中,第一幀數(shù)據(jù)存儲(chǔ)結(jié)束后,第二幀數(shù)據(jù)將存儲(chǔ)在另一個(gè)幀存儲(chǔ)器即第二幀存儲(chǔ)器22中。同時(shí),第一幀數(shù)據(jù)可以讀出,送到圖像大小轉(zhuǎn)換模塊3,經(jīng)過圖像大小轉(zhuǎn)換后送給電視編碼器4進(jìn)行編碼輸出。然后,電視編碼器4讀取第二幀存儲(chǔ)器22中的第二幀數(shù)據(jù),同時(shí),下一幀圖像被寫入第一幀存儲(chǔ)器21;這兩個(gè)幀存儲(chǔ)器用于輪流接收來自圖像傳感器的圖像幀,并被依次讀取。
每幀數(shù)據(jù)在寫入的時(shí)候以幀為單位寫入,在讀出的時(shí)候以場為單位讀出,每幀需要讀兩場。場與幀的關(guān)系是隔行與逐行的關(guān)系,也就是說,寫入幀存儲(chǔ)器以1,2,3,4,…,479,480(以行為單位)的順序?qū)懭?,而讀出的時(shí)候按照1,3,5,7,…,479(第一場),2,4,6,8,…,478,480(第二場)的順序讀出。
從這里可以看出,由于每一幀需要輸出兩場,而由于圖像大小轉(zhuǎn)換模塊3的需要,實(shí)際上是幀存儲(chǔ)器需要輸出兩幀,也就是說,每幀寫入后需要讀出兩遍來完成兩場數(shù)據(jù)的輸出。
首先,對(duì)于幀存儲(chǔ)器而言,為了簡化設(shè)計(jì),通常分配給讀和寫的帶寬是相等的,而由于讀數(shù)據(jù)的幀率(30幀或25幀)一般都是圖像傳感器輸出的最大幀率,也就是說讀的速度不小于寫的速度。
一般而言,圖像傳感器輸出的最大幀率可達(dá)30幀/秒,但是如果環(huán)境的光照條件較暗,為了保證一定的圖像質(zhì)量,需要加長曝光時(shí)間,則圖像傳感器輸出的幀率就將低于30幀/秒,環(huán)境越暗,幀率越低。
這樣就帶來了一個(gè)問題,由于電視刷新的頻率是固定的,PAL制是50場/秒,NTSC制是60場/秒,這樣從幀存儲(chǔ)器讀出數(shù)據(jù)的速度也必須是固定的,對(duì)于PAL制是50場/秒,對(duì)于NTSC制是60場/秒,從而就造成了幀存儲(chǔ)器的寫入速度與讀出速度有可能不相等,也就是說,當(dāng)一幀數(shù)據(jù)讀完后,有可能下一幀數(shù)據(jù)還沒寫完。
如上所述,讀出速度從平均角度上來說不低于寫入速度,因此如果這時(shí)去讀還沒有寫完的下一幀數(shù)據(jù),由于寫入數(shù)據(jù)的幀率較慢,很有可能讀會(huì)追上寫,造成數(shù)據(jù)的破壞,這是不能接受的。
例如工作在NTSC制時(shí),假設(shè)圖像傳感器的輸出幀率是20幀/秒,由于讀出速度是60場/秒,這樣當(dāng)?shù)谝粠瑪?shù)據(jù)讀完后,第二幀數(shù)據(jù)還沒有寫完,只寫了2/3幀,這時(shí)如果去讀第二個(gè)幀存儲(chǔ)器的話,則讀有可能追上寫,從而造成圖像數(shù)據(jù)的破壞。為了解決這個(gè)問題,本發(fā)明確定一個(gè)規(guī)則只有當(dāng)某一幀數(shù)據(jù)完全寫入幀存儲(chǔ)器中后才允許開始讀。如果前一幀數(shù)據(jù)讀完而當(dāng)前幀數(shù)據(jù)還沒有寫完,就重復(fù)讀出前一幀數(shù)據(jù)。這樣雖然圖像的連續(xù)性受到了影響,但是這是由于此時(shí)的光照條件太差,為了達(dá)到較好的圖像質(zhì)量需要加長曝光時(shí)間,從而導(dǎo)致幀率降低造成的,一般認(rèn)為這種結(jié)果也還是可以接受的。
同樣,由于對(duì)第一幀數(shù)據(jù)進(jìn)行了重復(fù)讀出,就有可能出現(xiàn)第二幀數(shù)據(jù)已經(jīng)寫完,第三幀數(shù)據(jù)開始到來,而第一幀數(shù)據(jù)在重復(fù)讀的情況下還沒有讀完的情況。如前所述,每幀數(shù)據(jù)在寫入的時(shí)候以幀為單位寫入,在讀出的時(shí)候以場為單位讀出,每幀需要讀兩場。場與幀的關(guān)系是隔行與逐行的關(guān)系,也就是說,寫入幀存儲(chǔ)器以1,2,3,4,…,479,480(以行為單位)的順序?qū)懭?,而讀出的時(shí)候按照1,3,5,7,…,479(第一場),2,4,6,8,…,478,480(第二場)的順序讀出。
因此此時(shí)有兩種情況一種是第一幀數(shù)據(jù)已經(jīng)讀完第一場;另一種是第一幀數(shù)據(jù)正在讀第一場。
對(duì)于第一種情況,根據(jù)前面的介紹,由于讀出速度快于寫入速度,而且對(duì)于場來說讀出是按照跳行的順序讀出,即使此時(shí)開始寫入第三幀數(shù)據(jù),也不可能追上讀,造成第一幀數(shù)據(jù)破壞,因此第三幀數(shù)據(jù)可以寫入;對(duì)于第二種情況,由于第一幀數(shù)據(jù)還需要讀出第二場,如果將第三幀數(shù)據(jù)按照正常的順序?qū)懭?,?,2,3,…,479,480的順序,就會(huì)將第一幀數(shù)據(jù)覆蓋,導(dǎo)致在讀第二場數(shù)據(jù)的時(shí)候出現(xiàn)錯(cuò)誤。
通常的情況是將第三幀跳過,即拋棄,等待第四幀的數(shù)據(jù),如圖3所示。這種情況下由于跳幀而導(dǎo)致圖像的不連續(xù),會(huì)影響到圖像的顯示效果。
為了避免跳幀,下面來分析讀寫數(shù)據(jù)的過程。
如前所述,寫數(shù)據(jù)是以幀的順序來寫的,按照1,2,3,4,…,479,480行的順序?qū)懭耄x數(shù)據(jù)是以場的順序來讀的,按照1,3,5,7,…,477,479,2,4,6,…,478,480行的順序讀出。寫和讀的數(shù)據(jù)量是一樣的,但寫和讀的順序不同。
由于讀的速度不小于寫的速度,因此如果適當(dāng)調(diào)整讀和寫的順序,就能夠保證當(dāng)對(duì)一個(gè)幀存儲(chǔ)器同時(shí)進(jìn)行讀寫操作時(shí),原來的數(shù)據(jù)不會(huì)被覆蓋,這樣就可以保證不跳幀。
具體的設(shè)計(jì)過程是這樣的,當(dāng)某一個(gè)幀存儲(chǔ)器還在讀第一場的數(shù)據(jù)時(shí),其讀數(shù)據(jù)的順序?yàn)?,3,5,7,…,477,479行,即一幀的奇數(shù)行,如果這時(shí)另一幀數(shù)據(jù)寫入,寫入的順序?yàn)?,2,3,4,…,479,480行,這樣偶數(shù)行的數(shù)據(jù)就會(huì)被覆蓋,當(dāng)讀第二場時(shí)就會(huì)發(fā)生錯(cuò)誤。如果將第二幀數(shù)據(jù)的1,2,3,4,…,479,480行按照1,3,5,7,…,477,479,2,4,6,8,…,478,480行的順序,由于寫入數(shù)據(jù)的順序與讀出數(shù)據(jù)的順序相同,而讀出數(shù)據(jù)的速度不小于寫入數(shù)據(jù)的速度,因此上一幀的數(shù)據(jù)永遠(yuǎn)不會(huì)被破壞,避免了跳幀。當(dāng)讀出當(dāng)前寫入的一幀時(shí),由于寫入的順序?yàn)?,3,5,7,…,477,479,2,4,6,8,…,478,480行,需要對(duì)讀出數(shù)據(jù)的順序也進(jìn)行相應(yīng)調(diào)整,以1,5,9,…的順序讀出數(shù)據(jù)。依此類推,只要讀出數(shù)據(jù)的速度不小于寫入數(shù)據(jù)的速度,就可以保證永遠(yuǎn)不需要跳幀。
為了簡化起見,先來看對(duì)一幅只有8行的圖像的處理。
第一幀,寫入順序1,2,3,4,5,6,7,8讀出順序1,3,5,7,2,4,6,8當(dāng)發(fā)生第一場未讀完第二幀就到來的情況時(shí),根據(jù)前面的介紹,寫入數(shù)據(jù)的順序變?yōu)榈谝粠淖x出順序,這樣得到第二幀的讀寫順序是第二幀,寫入順序1,3,5,7,2,4,6,8讀出順序1,5,2,6,3,7,4,8當(dāng)?shù)谌龓絹頃r(shí),無論第二幀的第一場是否讀完,都按照第二幀的讀出順序?qū)懭?,這樣第三幀的讀寫順序如下第三幀,寫入順序1,5,2,6,3,7,4,8讀出順序1,2,3,4,5,6,7,8當(dāng)?shù)谒膸絹頃r(shí),按照第三幀的讀出順序?qū)懭?,其讀寫順序如下第四幀,寫入順序1,2,3,4,5,6,7,8讀出順序1,3,5,7,2,4,6,8這樣經(jīng)過四幀以后,又回到了起點(diǎn),依然可以按照前面的處理方法處理后面需要存儲(chǔ)的幀。
從上面可以看出,每一幀的讀出順序等于下一幀的寫入順序,因此對(duì)于8行的圖像,連續(xù)圖像的寫入順序?yàn)?
第一幀1,2,3,4,5,6,7,8第二幀1,3,5,7,2,4,6,8第三幀1,5,2,6,3,7,4,8第四幀1,2,3,4,5,6,7,8第五幀1,3,5,7,2,4,6,8...
設(shè)一個(gè)變量delta和j,將8擴(kuò)展為n,可以得到下面的結(jié)論第一幀delta=1,j=0,寫入順序?yàn)閍0,a1,a2,a3,…,a(n-1),an其中,a0=1,a(i+1)=ai+delta第二幀delta=2,j=1,寫入順序?yàn)閍0,a1,a2,a3,…,a(n-1),an其中,a0=1,a(i+1)=ai+delta,(ai+delta)≤nai+delta-n+1,(ai+delta)>n]]>第三幀delta=4,j=2,寫入順序?yàn)閍0,a1,a2,a3,…,a(n-1),an其中,a0=1,a(i+1)=ai+delta,(ai+delta)≤nai+delta-n+1,(ai+delta)>n]]>…第m幀delta=2j,j=j=j+1,j(m-1)!=n/20,j(m-1)=n/2]]>寫入順序?yàn)閍0,a1,a2,a3,…,a(n-1),an其中,a0=1,a(i+1)=ai+delta,(ai+delta)≤nai+delta-n+1,(ai+delta)>n]]>依此類推。
如圖4所示,為讀幀存儲(chǔ)器流程圖,當(dāng)需要輸出一幀數(shù)據(jù)時(shí),首先檢查上一幀讀出的數(shù)據(jù)是出自第一幀存儲(chǔ)器21還是第二幀存儲(chǔ)器22,然后檢查另一個(gè)幀存儲(chǔ)器數(shù)據(jù)是否已經(jīng)寫完,如果寫完,則讀出另一個(gè)幀存儲(chǔ)器的數(shù)據(jù),如果沒有,則重復(fù)讀上一個(gè)幀存儲(chǔ)器的數(shù)據(jù)。
對(duì)于圖像傳感器1而言,其圖像分辨率一般可以支持1280×960,VGA(640×480),QVGA(320×240),CIF(352×288)等,但對(duì)于1280×960的圖像只能支持15幀/秒的輸出幀率,由于目前的圖像傳感器VGA大小的圖像的輸出幀率最大可支持30幀/秒,而NTSC制的顯示幀率也是30幀/秒,PAL制的顯示幀率是25幀/秒,為了保證最終的圖像質(zhì)量及圖像的連續(xù)性,本發(fā)明實(shí)施例選擇與現(xiàn)有電視分辨率最接近的VGA模式,通過圖像大小轉(zhuǎn)換模塊將其轉(zhuǎn)換為PAL或NTSC所需的圖像分辨率。
由于圖像大小轉(zhuǎn)換模塊3采用雙線性內(nèi)插方法來實(shí)現(xiàn)圖像大小的轉(zhuǎn)換,這種方法在計(jì)算當(dāng)前數(shù)據(jù)的時(shí)候需要相鄰行和相鄰列數(shù)據(jù)。因此,雖然圖像大小轉(zhuǎn)換模塊3輸出的數(shù)據(jù)是隔行的,但是為了完成圖像大小轉(zhuǎn)換,從上述幀存儲(chǔ)器中讀出的數(shù)據(jù)依然是逐行的。
不同電視制式支持的圖像分辨率不同,為了支持不同的電視制式,需要能夠控制圖像大小轉(zhuǎn)換的功能。在控制圖像縮放的各種算法之中,雙線性內(nèi)插方法以其實(shí)現(xiàn)簡單,輸出效果較好等特點(diǎn)而被廣泛采用,在本發(fā)明所述的圖像大小轉(zhuǎn)換模塊3中也使用了雙線性內(nèi)插方法來改變圖像的尺寸。
圖像大小轉(zhuǎn)換模塊3將VGA大小的圖像轉(zhuǎn)換為NTSC制或PAL制所需要的圖像大??;對(duì)于NTSC制而言,其圖像分辨率為720×480,每場為720×240;對(duì)于PAL制而言,其分辨率為720×576,每場為720×288。而輸入圖像為VGA,也就是640×480。因此,本發(fā)明所述圖像大小轉(zhuǎn)換模塊3完成的功能是這樣的,對(duì)于NTSC制,只做水平方向的大小轉(zhuǎn)換,轉(zhuǎn)換比例為640-》720,垂直方向不做大小轉(zhuǎn)換,根據(jù)奇場或偶場的不同,將奇行或偶行輸出;對(duì)于PAL制,水平方向的大小轉(zhuǎn)換與NTSC相同,轉(zhuǎn)換比例為640-》720,垂直方向轉(zhuǎn)換比例為480-》576,根據(jù)奇場或偶場的不同,只輸出奇行或偶行。
本發(fā)明所述雙線性內(nèi)插的基本計(jì)算公式如下
p=(1-x)*p(n)+x*p(n+1);如圖5所示,p代表需要計(jì)算的像素,p(n)代表需要計(jì)算的像素的前一個(gè)像素,p(n+1)代表需要計(jì)算的像素的后一個(gè)像素,x代表需要計(jì)算的像素到p(n)的距離。
根據(jù)上述公式,可以對(duì)給定大小的圖像進(jìn)行一維縮放設(shè)輸入圖像的大小為b,輸出圖像的大小為a,a與b互質(zhì),經(jīng)過圖像大小轉(zhuǎn)換后需要達(dá)到a/b的縮放結(jié)果,則根據(jù)上面描述的雙線性內(nèi)插方法,首先將輸入圖像放大a倍,也就是在相鄰像素之間插入(a-1)個(gè)像素,插入像素的值可以根據(jù)雙線性內(nèi)插的公式計(jì)算得到;然后將放大后的圖像再縮小b倍,方法是每b個(gè)像素抽取一個(gè)像素,這樣就達(dá)到了a/b的縮放效果。
對(duì)于本發(fā)明,根據(jù)前面的介紹,輸入圖像為640×480,輸出圖像為720×480或720×576。因此水平方向需要達(dá)到640/720=8/9的縮放效果,垂直方向需要達(dá)到480/576=5/6的縮放效果。對(duì)于水平方向,根據(jù)前面的介紹,a等于9,b等于8。
內(nèi)插計(jì)算的過程如圖6所示,圖中實(shí)心的像素代表輸入圖像的像素,空心的像素代表輸入圖像相鄰像素之間經(jīng)過雙線性內(nèi)插得到的值,黑色網(wǎng)格的像素代表輸出圖像的像素。可以看到,輸入圖像首先根據(jù)雙線性內(nèi)插公式被放大9倍,然后再被縮小8倍,從而得到與輸入圖像相比,放大9/8倍的圖像。
根據(jù)圖6可以看到,空心像素?zé)o需被全部計(jì)算出來,只需計(jì)算空心像素與黑色網(wǎng)格像素重合的那些像素即可。上面描述了對(duì)于輸入圖像進(jìn)行一維縮放的過程,同理,可以將其推廣到二維的實(shí)現(xiàn)。這樣,對(duì)于給定的輸入圖像,根據(jù)上述描述的算法可以得到經(jīng)過縮放的輸出圖像。
由上述的實(shí)施例可見,除用于普通電視的視頻轉(zhuǎn)換外,本發(fā)明所述裝置和方法完全可被用于諸如帶有攝像頭和普通電視顯示裝置的監(jiān)控系統(tǒng)等中,以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和變化,這些改進(jìn)和變化也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種實(shí)現(xiàn)視頻逐行到隔行轉(zhuǎn)換的裝置,用于在圖像傳感器和電視編碼器之間進(jìn)行視頻格式轉(zhuǎn)換,其特征在于,包括第一幀存儲(chǔ)器,第二幀存儲(chǔ)器,和幀存儲(chǔ)控制器,其中幀存儲(chǔ)控制器接收來自圖像傳感器的圖像幀,并將圖像數(shù)據(jù)以幀的形式寫入第一幀存儲(chǔ)器和第二幀存儲(chǔ)器,以場的形式讀出傳送給電視解碼器。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于,幀存儲(chǔ)控制器控制第一幀存儲(chǔ)器和第二幀存儲(chǔ)器以乒乓形式工作,輪流接收來自圖像傳感器的圖像幀,在寫第一幀存儲(chǔ)器的時(shí)候讀第二幀存儲(chǔ)器,寫第二幀存儲(chǔ)器的時(shí)候讀第一幀存儲(chǔ)器,當(dāng)需要對(duì)同一個(gè)幀存儲(chǔ)器同時(shí)進(jìn)行讀和寫操作的時(shí)候,控制數(shù)據(jù)寫入和讀出的順序。
3.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述裝置還包括一個(gè)圖像大小轉(zhuǎn)換模塊,用于對(duì)所述幀存儲(chǔ)控制器傳出的圖像數(shù)據(jù)進(jìn)行大小轉(zhuǎn)換,并將轉(zhuǎn)換后的數(shù)據(jù)傳給電視編碼器進(jìn)行編碼輸出。
4.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述裝置中所述圖像傳感器是CCD或CMOS圖像傳感器。
5.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述上述裝置圖像幀的寫入速度支持n幀/秒,讀出速度支持m幀/秒,其中2n≤m。
6.根據(jù)權(quán)利要求2所述的裝置,其特征在于,所述圖像大小轉(zhuǎn)換模塊利用雙線性內(nèi)插的方法改變圖像幀圖像尺寸。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,上述雙線性內(nèi)插的基本計(jì)算公式如下p=(1-x)*p(n)+x*p(n+1);其中,p代表需要計(jì)算的像素,p(n)代表需要計(jì)算的像素的前一個(gè)像素,p(n+1)代表需要計(jì)算的像素的后一個(gè)像素,x代表需要計(jì)算的像素到p(n)的距離。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,在上述方法中,無須計(jì)算所有的插入像素,只計(jì)算與縮放后實(shí)際像素對(duì)應(yīng)的插入像素。
9.一種實(shí)現(xiàn)視頻逐行到隔行轉(zhuǎn)換的轉(zhuǎn)換方法,用于上述轉(zhuǎn)換裝置,包括以下步驟寫幀存儲(chǔ)器步驟步驟一,當(dāng)幀存儲(chǔ)控制器接收到圖像傳感器一幀數(shù)據(jù)開始要寫入時(shí),首先檢查兩個(gè)幀存儲(chǔ)器是否空,順序是先檢查第一幀存儲(chǔ)器,再檢查第二幀存儲(chǔ)器;步驟二,只要有一個(gè)幀存儲(chǔ)器為空就將數(shù)據(jù)寫入空的幀存儲(chǔ)器;和,讀幀存儲(chǔ)器步驟步驟一,當(dāng)需要從幀存儲(chǔ)器讀出一幀數(shù)據(jù)時(shí),首先檢查上一幀讀出的數(shù)據(jù)是出自第一幀存儲(chǔ)器還是第二幀存儲(chǔ)器;步驟二,先檢查另一個(gè)幀存儲(chǔ)器數(shù)據(jù)是否已經(jīng)寫完,如果寫完,則讀出該幀存儲(chǔ)器的數(shù)據(jù),如果沒有,則重復(fù)讀上一個(gè)幀存儲(chǔ)器的數(shù)據(jù);其特征在于,寫幀存儲(chǔ)器步驟中,處理步驟一時(shí),如果兩個(gè)幀存儲(chǔ)器都不為空,則檢查當(dāng)前正在讀哪個(gè)幀存儲(chǔ)器,如果第一遍已經(jīng)讀完,則可以寫入正在讀的那個(gè)幀存儲(chǔ)器,如果沒有讀完,則同時(shí)對(duì)該幀存儲(chǔ)器進(jìn)行讀和寫操作,通過幀存儲(chǔ)控制器控制數(shù)據(jù)寫入的順序以避免上一幀數(shù)據(jù)被覆蓋,同時(shí)這一幀在讀出時(shí)也要控制讀出的順序來保證讀出正確的數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,在上述對(duì)幀存儲(chǔ)器同時(shí)進(jìn)行讀和寫操作時(shí),把需要寫入的數(shù)據(jù)按照讀出數(shù)據(jù)的順序?qū)懭?,?shù)據(jù)的讀寫順序如下設(shè)一個(gè)變量delta和j,n為行數(shù)第一幀delta=1,j=0,寫入順序?yàn)閍0,a1,a2,a3,…,a(n-1),an其中,a0=1,a(i+1)=ai+delta第二幀delta=2,j=1,寫入順序?yàn)閍0,a1,a2,a3,…,a(n-1),an其中,a0=1,a(i+1)=ai+delta,(ai+delta)≤nai+delta-n+1,(ai+delta)>n]]>第三幀delta=4,j=2,寫入順序?yàn)閍0,a1,a2,a3,…,a(n-1),an其中,a0=1,a(i+1)=ai+delta,(ai+delta)≤nai+delta-n+1,(ai+delta)>n]]>第m幀delta=2′,j=j=j+1,j(m-1)!=n/20,j(m-1)=n/2]]>寫入順序?yàn)閍0,a1,a2,a3,…,a(n-1),an其中,a0=1,a(i+1)=ai+delta,(ai+delta)≤nai+delta-n+1,(ai+delta)>n.]]>
全文摘要
本發(fā)明公開了一種實(shí)現(xiàn)視頻逐行到隔行轉(zhuǎn)換的裝置,用于在圖像傳感器和電視編碼器之間進(jìn)行視頻格式轉(zhuǎn)換。包括第一幀存儲(chǔ)器,第二幀存儲(chǔ)器,和幀存儲(chǔ)控制器,其中幀存儲(chǔ)控制器接收來自圖像傳感器的圖像幀,并將圖像數(shù)據(jù)以幀的形式寫入第一幀存儲(chǔ)器和第二幀存儲(chǔ)器,以場的形式讀出傳送給電視解碼器。本發(fā)明還公開了一種實(shí)現(xiàn)視頻逐行到隔行轉(zhuǎn)換的轉(zhuǎn)換方法。本發(fā)明的通過對(duì)讀取數(shù)據(jù)的控制,使得最終系統(tǒng)能夠支持逐行變隔行的功能,在傳感器圖像輸出幀率變化的情況下也能做到不跳幀,保證圖像的連續(xù)性。
文檔編號(hào)H04N3/15GK1719889SQ20051008776
公開日2006年1月11日 申請(qǐng)日期2005年8月8日 優(yōu)先權(quán)日2005年8月8日
發(fā)明者劉健, 居曉波, 楊柱, 高曉宇, 趙曉海 申請(qǐng)人:北京中星微電子有限公司