專利名稱:次畫面解碼時(shí)的中斷信號(hào)產(chǎn)生方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于控制DVD中記錄的次畫面數(shù)據(jù)的解碼的中斷信號(hào)產(chǎn)生方法。
背景技術(shù):
一般,影像和語(yǔ)音數(shù)據(jù)壓縮的國(guó)際標(biāo)準(zhǔn)MPEG1(Moving PictureExperts Group)和MPEG2被廣泛地應(yīng)用到很多領(lǐng)域中,作為記錄壓縮的活動(dòng)圖像數(shù)據(jù)和語(yǔ)音數(shù)據(jù)的媒體,現(xiàn)在被稱為DVD(Digital Video Disc和Digital Versatile Disc)的存儲(chǔ)媒體,在由10個(gè)公司組成的共同體參與開發(fā)后,DVD播放機(jī)在世界范圍內(nèi)迅速普及開來(lái),最終取代了音頻CD,視頻錄像帶,CD-ROM,激光視盤(LD),視頻游戲盒式磁帶,盒式錄影帶,印刷物(圖書)等。
并且,DVD不僅支持模擬電視和數(shù)字電視,同時(shí)也支持交錯(cuò)視頻和進(jìn)步視頻,還支持標(biāo)準(zhǔn)電視和寬屏幕電視。所以說(shuō),這樣的DVD具有既支持舊技術(shù)又支持新技術(shù)的雙重作用。
最近的DVD機(jī)除了具有普通DVD字幕以外的功能,同時(shí)還具有CD-R,CD-RW,CDDA的播放功能,一些裝置還具有支持DVD-Audio,SACD,VCD,SVCD,DVD-R,DVD±RW,HDCD,MP3功能。
這樣的DVD視頻除了具有普通的播放功能以外,還支持音頻流調(diào)整,攝影機(jī)角度調(diào)整,次畫面流調(diào)整,快進(jìn)(fast forward),快退(fast reverse)慢進(jìn)(slow forward),慢退(slow reverse),開啟暫停(pauseon),關(guān)閉暫停(pause off),關(guān)閉靜止畫面(still off)和任意選取的特殊播放。而且還具有能夠翻過(guò)下一張和翻向前一張的跳過(guò)功能。同時(shí),還具有各種按鈕和相關(guān)的用戶操作(user operation)功能。在用戶操作功能中,還包括能夠選擇字幕(title),主菜單(root),次畫面(sub_picture),音頻,焦距(angle)等菜單的菜單功能(menu call)。而且,還具有對(duì)諸如parental management information等不適合孩子觀賞的場(chǎng)面的控制播放功能。
并且,能夠存儲(chǔ)最多8個(gè)的音頻流,支持Linear PCM,Dolby AC-3,MPEG音頻,通過(guò)選項(xiàng),支持DTS(Digital Theater System)。
還有,DVD視頻數(shù)據(jù)流是由大的視頻,音頻,次畫面構(gòu)成。次畫面具有最多32個(gè)數(shù)據(jù)流。次畫面包括次畫面(字幕),菜單,字幕,卡拉OK,簡(jiǎn)單的動(dòng)畫片等內(nèi)容,在一般字幕中常使用的是次畫面和菜單。
圖1作為顯示這樣的DVD機(jī)的一般結(jié)構(gòu)的概略圖,由以下幾部分構(gòu)成前端部110;DVD數(shù)據(jù)處理部120;系統(tǒng)解碼器130;緩沖存儲(chǔ)器140;次畫面解碼器150;OSD存儲(chǔ)器160;OSD處理部170;音頻/視頻解碼器180;混頻器190及導(dǎo)航管理器200。
圖1中,前端部110作為普通DVD機(jī)的光學(xué)儀器,控制光拾取器112物理接近和記錄儲(chǔ)存數(shù)據(jù)的光盤111。即,光拾取器112在伺服控制部115的控制下,接物透鏡(未圖示)將聚焦的光束射到光盤111的信號(hào)磁道上,將從信號(hào)記錄面反射回來(lái)的光,經(jīng)再次通過(guò)接物透鏡集光后,轉(zhuǎn)換成電信號(hào),向RF模塊113和伺服控制部115輸出。RF模塊113從所輸入的電信號(hào)中生成用于數(shù)據(jù)再生的RF信號(hào),并向前置放大器114輸出。前置放大器114將RF信號(hào)數(shù)字化,增幅以后,向DVD數(shù)據(jù)處理部120輸出。
上述伺服控制部115從輸入的電信號(hào)檢測(cè)出調(diào)焦錯(cuò)誤信號(hào),跟蹤錯(cuò)誤信號(hào)后,為使光拾取器112能夠正確地讀出光盤111記錄的數(shù)據(jù),從調(diào)焦錯(cuò)誤信號(hào)生成調(diào)焦驅(qū)動(dòng)信號(hào),控制光拾取器112內(nèi)的調(diào)焦傳動(dòng)裝置;從跟蹤錯(cuò)誤信號(hào)生成跟蹤驅(qū)動(dòng)信號(hào),控制光拾取器112內(nèi)的跟蹤傳動(dòng)裝置。
上述DVD數(shù)據(jù)處理部120將在前端部111物理讀取的數(shù)字化的RF狀態(tài)DVD數(shù)據(jù)進(jìn)行檢波(demodulation),錯(cuò)誤糾正(ECC)及解碼(descramble)后,向系統(tǒng)解碼器(130)輸出。
此時(shí),上述光盤111里記錄了表達(dá)數(shù)據(jù)(Presentation Data)和導(dǎo)航數(shù)據(jù)。表達(dá)數(shù)據(jù)包括播放對(duì)像的音頻及視頻數(shù)據(jù)和字幕影像等的次畫面數(shù)據(jù)。這里,在DVD中,用具有2048字節(jié)記錄大小的PS包(Pack)單位將表達(dá)數(shù)據(jù)記錄及讀出,PS包由14字節(jié)的包報(bào)頭和2034字節(jié)的數(shù)據(jù)包構(gòu)成。數(shù)據(jù)包由再次記錄數(shù)據(jù)包報(bào)頭和音頻/視頻/次畫面/導(dǎo)航數(shù)據(jù)的數(shù)據(jù)包構(gòu)成。
即,正如圖2的DVD視頻包的結(jié)構(gòu)所示,上述包報(bào)頭由4字節(jié)的包開始碼和6字節(jié)的SCR(System Clock Reference),3字節(jié)的程序mux_late,1字節(jié)的stuffing_length組成。
比如說(shuō),次畫面包的構(gòu)成如圖2所示,由14字節(jié)的包報(bào)頭和代表PES的2034字節(jié)的次畫面數(shù)據(jù)包組成。
從圖3中,我們能夠詳細(xì)看到次畫面包中次畫面數(shù)據(jù)包的結(jié)構(gòu)。這里,次畫面數(shù)據(jù)包(SP_PKT)是由*I字節(jié)的數(shù)據(jù)包報(bào)頭和1字節(jié)的對(duì)白流標(biāo)識(shí),及1字節(jié)以上或2024字節(jié)以下(1byte or more,and 2024bytes or less)的次畫面數(shù)據(jù)構(gòu)成。在此處,次畫面數(shù)據(jù)部分顯示出ES(Elementary Stream)。而且,圖3的*I顯示數(shù)據(jù)包報(bào)頭的大小,能夠具有從9字節(jié)到24字節(jié)的值。數(shù)據(jù)包報(bào)頭的大小如圖4所示,根據(jù)P-STD_buffer_scale和P-STD_buffer_size,PTS(Presentation time-stamp),Stuffing具有可變值。
此時(shí),如果次畫面包的長(zhǎng)度為2048字節(jié),如包的長(zhǎng)度小于2048字節(jié),通過(guò)在數(shù)據(jù)包報(bào)頭中插入填塞字節(jié)(stuffing byte)或者將填料數(shù)據(jù)包(padding packet)粘貼到數(shù)據(jù)包的尾端,使包的長(zhǎng)度一直保持為2048字節(jié)。
而且,次畫面單元(SPU)由多個(gè)2048字節(jié)的次畫面包構(gòu)成。即,將多個(gè)由2048字節(jié)構(gòu)成的包組合,構(gòu)成了組成一張字幕的一個(gè)次畫面單元(SPU)。
這時(shí),一個(gè)包能夠構(gòu)成一個(gè)次畫面單元,兩個(gè)以上的包一起也可以構(gòu)成一個(gè)次畫面單元。實(shí)際上,次畫面單元是由除了次畫面包的包報(bào)頭和數(shù)據(jù)包報(bào)頭,對(duì)白流標(biāo)識(shí)(sub_stream_id)以外的純粹次畫面數(shù)據(jù)ES構(gòu)成。
因此,系統(tǒng)解碼器130將DVD數(shù)據(jù)處理部120輸出的DVD數(shù)據(jù)進(jìn)行多路信號(hào)分離,分離成表達(dá)流數(shù)據(jù)和導(dǎo)航流數(shù)據(jù)。上述述表達(dá)流數(shù)據(jù)再次分離成音頻/視頻/次畫面流數(shù)據(jù)后,將分離的音頻/視頻流數(shù)據(jù)向音頻/視頻解碼器180輸出,而次畫面流數(shù)據(jù)通過(guò)緩沖存儲(chǔ)器140向次畫面解碼器150輸出。這時(shí),導(dǎo)航流數(shù)據(jù)輸出到導(dǎo)航管理器200,而導(dǎo)航管理器200與伺服控制部115連動(dòng),控制DVD播放的全部流程。上述音頻/視頻解碼器180對(duì)于輸入的音頻/視頻流數(shù)據(jù),使用相關(guān)的解碼算法,分別完成符號(hào)化后,向混頻器190輸出。
即,輸入至上述系統(tǒng)解碼器130的DVD數(shù)據(jù)是程序流(PS),上述系統(tǒng)解碼器130對(duì)程序流的視頻,音頻,次畫面數(shù)據(jù)進(jìn)行多路信號(hào)分離后,分別以PES(Packetized Elementary Stream)狀態(tài)或ES(Elementary Stream)狀態(tài)向音頻/視頻/次畫面解碼器(180,150)輸出。此時(shí),系統(tǒng)解碼器130向音頻/視頻/次畫面解碼器180,150,用PES等級(jí)和ES等級(jí)中的哪種方式進(jìn)行傳送,要根據(jù)設(shè)計(jì)DVD硬件的設(shè)計(jì)者的意圖而有所差異。
如果我們假定系統(tǒng)解碼器130分離的次畫面數(shù)據(jù)按照PES等級(jí)進(jìn)行輸出,這樣的PES等級(jí)的次畫面數(shù)據(jù)通過(guò)緩沖存儲(chǔ)器140,向次畫面解碼器150輸出。這里,上述緩沖存儲(chǔ)器140可以是SDRAM上分配給次畫面數(shù)據(jù)的領(lǐng)域,也可以是暫時(shí)存儲(chǔ)次畫面數(shù)據(jù)的緩沖存儲(chǔ)器。
如果,上述上述次畫面解碼器150是軟件次畫面解碼器,上述次畫面解碼器150在系統(tǒng)解碼器130產(chǎn)生中斷信號(hào)時(shí),從緩沖存儲(chǔ)器140讀取次畫面數(shù)據(jù)并進(jìn)行解碼。為此,上述系統(tǒng)解碼器130按照PES等級(jí)將次畫面數(shù)據(jù)存儲(chǔ)到緩沖存儲(chǔ)器140里時(shí),以既定方式產(chǎn)生中斷信號(hào),向次畫面解碼器150輸出。
系統(tǒng)解碼器130的中斷信號(hào)產(chǎn)生方式包括兩種一種是almost full方式,另一種是用一個(gè)包單位的方式產(chǎn)生中斷信號(hào)的方式。
Almost full方式如圖5所示,是緩沖存儲(chǔ)器140幾乎充滿almostfull)時(shí),產(chǎn)生中斷信號(hào)的方式,是可以任意地調(diào)整緩沖存儲(chǔ)器140的空等級(jí)(empty level)的方式。
比如說(shuō),將緩沖存儲(chǔ)器140的大小設(shè)定為3千字節(jié),如果緩沖存儲(chǔ)器140的empty level為1千字節(jié),如果緩沖存儲(chǔ)器140剩余的空間為1千字節(jié)以下,即,如果緩沖存儲(chǔ)器140已記錄的數(shù)據(jù)為2千字節(jié)以上,處于almost full狀態(tài),系統(tǒng)解碼器130將產(chǎn)生中斷信號(hào)。
此時(shí),上述系統(tǒng)解碼器130將緩沖存儲(chǔ)器140使用次畫面數(shù)據(jù)的單位為定為PES單位,圖6顯示的是為了能夠有效地使用存儲(chǔ)器,即,緩沖存儲(chǔ)器140,不含填料數(shù)據(jù)包時(shí)的almost full方式的實(shí)例。
如圖6所示,產(chǎn)生中斷信號(hào)的地點(diǎn)假設(shè)為第2個(gè)PES的ES數(shù)據(jù)中間,第一個(gè)PES描繪出一個(gè)SPU,第2個(gè)PES構(gòu)成了另一個(gè)SPU。此時(shí),實(shí)際上,由于上述次畫面解碼器150需要在產(chǎn)生中斷信號(hào)的地點(diǎn),從緩沖存儲(chǔ)器140讀取數(shù)據(jù),將直到產(chǎn)生中斷信號(hào)的地方為止的數(shù)據(jù),即第一個(gè)SPU和第2個(gè)SPU從緩沖存儲(chǔ)器140取出后,對(duì)第1個(gè)SPU進(jìn)行解碼。而且,由于第2個(gè)SPU并不是完全的,所以要等到產(chǎn)生下一個(gè)中斷信號(hào)以后,才能進(jìn)行解碼。此時(shí),不是按照數(shù)據(jù)的先后順序進(jìn)行解碼,而是緩沖存儲(chǔ)器140將一個(gè)SPU完全記錄以后,才進(jìn)行解碼,其理由如圖7所示,是因?yàn)樵跇?gòu)成SPU的數(shù)據(jù)的后端,存在著控制該SPU的次畫面顯示裝置的一覽表(SP_DCSQT)。即,如果沒有SP_DCSQT一覽表,就不能夠顯示SPU。所以,只有將SP_DCSQT一覽表存儲(chǔ)到緩沖存儲(chǔ)器140后,才能夠?qū)ο嚓P(guān)SPU進(jìn)行解碼。
可是,Almost full方式存在問(wèn)題。SPU正如前面所談到的那樣,一般在DVD視頻中代表1張字幕,在圖6的場(chǎng)合,由于在第2個(gè)SPU的中間產(chǎn)生了中斷信號(hào),對(duì)第2個(gè)SPU的數(shù)據(jù)只記錄一部分,當(dāng)進(jìn)行解碼時(shí),就出現(xiàn)不能夠準(zhǔn)確地對(duì)準(zhǔn)第1個(gè)SPU的PTS(Presentation TimeStamp)的問(wèn)題。并且,在流的最后的部分,由于緩沖存儲(chǔ)器140積累的數(shù)據(jù)量還不能夠達(dá)到almost full狀態(tài),不能產(chǎn)生中斷信號(hào),所以,很難實(shí)現(xiàn)向最后一張產(chǎn)生Pack單位的中斷信號(hào)并進(jìn)行解碼。
另外,向一個(gè)包單位產(chǎn)生中斷信號(hào)的方式如圖8所示,是一種跟緩沖存儲(chǔ)器140的狀態(tài)無(wú)關(guān),只要次畫面1個(gè)包被緩沖存儲(chǔ)器140使用(實(shí)際上是不包括填料的1個(gè)數(shù)據(jù)包),就能夠無(wú)條件產(chǎn)生中斷信號(hào)的方式。如果產(chǎn)生這樣的中斷信號(hào),次畫面解碼器150決定是否從緩沖存儲(chǔ)器140讀取數(shù)據(jù)進(jìn)行解碼。
即,從緩沖存儲(chǔ)器140取出一個(gè)包如果是一個(gè)次畫面單元,則進(jìn)行解碼,如不是就在下一個(gè)中斷信號(hào)時(shí),再取出一個(gè)包。這時(shí),也同樣,以前的包和現(xiàn)在的包如能構(gòu)成一個(gè)次畫面單元,則進(jìn)行解碼,否則等待下一個(gè)中斷信號(hào)。
同樣,在緩沖存儲(chǔ)器140全部記錄一個(gè)SPU后,才進(jìn)行解碼的理由是,如前所述,在構(gòu)成SPU的數(shù)據(jù)的后端,存在著控制次畫面顯示的次畫面顯示裝置控制序列一覽表(SP_DCSQT)。
發(fā)明內(nèi)容
將這樣的方式(向一個(gè)包單位產(chǎn)生中斷信號(hào)的方式)應(yīng)用到普通DVD字幕中時(shí),不會(huì)出現(xiàn)大的問(wèn)題,而諸如卡拉OK,DVD等場(chǎng)合,上述方式為效率較低的產(chǎn)生中斷信號(hào)方法。
即,NTSC DVD的情況,720×480大小大部分為歌詞的卡拉OK DVD中,最多幾十個(gè)數(shù)據(jù)包組合構(gòu)成1張的次畫面單元。在這種情況下,為了解碼一個(gè)SPU,需要產(chǎn)生幾十次中斷信號(hào),效率很低,會(huì)給CPU帶來(lái)很大的負(fù)擔(dān)。
本發(fā)明為了解決上述問(wèn)題,其目的是為使用者提供一種在用軟件解碼DVD視頻的次畫面時(shí),在系統(tǒng)解碼器中以SPU單位產(chǎn)生中斷信號(hào)的方法。
為實(shí)現(xiàn)上述目的,本發(fā)明之次畫面解碼時(shí)的中斷信號(hào)產(chǎn)生方法由以下幾個(gè)階段構(gòu)成(a)讀取DVD中記載的DVD視頻數(shù)據(jù),并分離成表達(dá)數(shù)據(jù)和導(dǎo)航數(shù)據(jù)后,將上述表達(dá)數(shù)據(jù)再次分離成音頻/視頻/次畫面數(shù)據(jù)的階段;(b)將上述分離的次畫面數(shù)據(jù)暫時(shí)存儲(chǔ)到緩沖存儲(chǔ)器的階段;(c)向次畫面單元(SPU)單位產(chǎn)生中斷信號(hào)的階段;及(d)在上述的(c)階段中,如果產(chǎn)生中斷信號(hào),從上述緩沖存儲(chǔ)器中讀取有關(guān)次畫面單元并進(jìn)行解碼的階段。
上述次畫面單元至少由1個(gè)以上的次畫面包構(gòu)成。
在上述(c)階段中,其特征是,對(duì)次畫面單元的大小和次畫面包的ES部分的大小進(jìn)行比較,以次畫面單元為單位,產(chǎn)生中斷信號(hào)。
上述(c)階段特征是,使用次畫面包內(nèi)的PTS_DTS_flags,以次畫面單元為單位產(chǎn)生中斷信號(hào)。
綜上所述,本發(fā)明是在對(duì)次畫面解碼時(shí)的中斷信號(hào)產(chǎn)生方法。對(duì)DVD視頻的次畫面進(jìn)行軟件解碼時(shí),在系統(tǒng)解碼器中,以次畫面單元為單位產(chǎn)生中斷信號(hào),次畫面解碼器從緩沖存儲(chǔ)器讀取次畫面數(shù)據(jù)并進(jìn)行有效地解碼,能夠提高軟件次畫面解碼器的性能。而且,本發(fā)明以SPU單位產(chǎn)生中斷信號(hào),能夠解決在almost full方式中,產(chǎn)生的PTS不一致問(wèn)題及能夠有效地對(duì)由幾個(gè)包構(gòu)成一個(gè)SPU的卡拉OK DVD等進(jìn)行次畫面解碼。
圖1是普通DVD機(jī)的概略結(jié)構(gòu)的方框圖。
圖2是普通DVD視頻包結(jié)構(gòu)的示意3是普通次畫面包結(jié)構(gòu)的示意4是圖3的次畫面數(shù)據(jù)包的報(bào)頭大小的一覽表。
圖5是圖1中的系統(tǒng)解碼器按照當(dāng)前的almost full方式產(chǎn)生中斷信號(hào)的一個(gè)實(shí)施例示意圖。
圖6是圖1中的系統(tǒng)解碼器按照當(dāng)前的almost full方式產(chǎn)生中斷信號(hào)的另一個(gè)實(shí)施例示意圖。
圖7是普通次畫面單元的結(jié)構(gòu)附圖。
圖8是圖1中的系統(tǒng)解碼器按照當(dāng)前的以包為單位產(chǎn)生中斷信號(hào)的一個(gè)實(shí)施例示意圖。
圖9是圖1中的系統(tǒng)解碼器以次畫面單元為單位產(chǎn)生中斷信號(hào)的,本發(fā)明的一個(gè)實(shí)施例示意圖。
圖10是根據(jù)本發(fā)明的第1實(shí)施例,使用PTS_DTS_flags,以次畫面單元為單位產(chǎn)生中斷信號(hào)的一個(gè)實(shí)施例示意圖。
圖11是根據(jù)本發(fā)明的第1實(shí)施例,使用PTS_DTS_flags,以次畫面單元為單位產(chǎn)生中斷信號(hào)的一個(gè)例子的動(dòng)作流程圖。
圖12是根據(jù)本發(fā)明的第2實(shí)施例,使用次畫面大小,以次畫面單元為單位產(chǎn)生中斷信號(hào)的一個(gè)例子的示意圖*附圖主要部分符號(hào)說(shuō)明*110前端部 111DVD112光拾取器113RF及伺服錯(cuò)誤生成部114前置放大器 115伺服控制部120DVD數(shù)據(jù)處理部 130系統(tǒng)解碼器140緩沖存儲(chǔ)器 150次畫面解碼器160OSD存儲(chǔ)器 170OSD處理部180音頻/視頻解碼器 190混頻器具體實(shí)施方式
本發(fā)明的其他目的,特征即優(yōu)點(diǎn)將通過(guò)附圖對(duì)實(shí)施例的詳細(xì)說(shuō)明可以充分理解。
以下,將參照附圖對(duì)本發(fā)明的實(shí)例的結(jié)構(gòu)和作用加以說(shuō)明,依據(jù)
的本發(fā)明的構(gòu)造和作用僅僅作為一個(gè)實(shí)施例進(jìn)行說(shuō)明,而本發(fā)明的上述技術(shù)思想和核心構(gòu)成及作用并不局限于此。
本發(fā)明為了減少硬件的負(fù)擔(dān),對(duì)DVD視頻的次畫面通過(guò)使用CPU進(jìn)行軟件解碼時(shí),系統(tǒng)解碼器如圖9,以次畫面單元(SPU)為單位產(chǎn)生中斷信號(hào),次畫面解碼器能夠容易從緩沖存儲(chǔ)器讀取次畫面數(shù)據(jù),進(jìn)行解碼。即提供,只要緩沖存儲(chǔ)器使用一個(gè)次畫面單元,本發(fā)明就能夠無(wú)條件產(chǎn)生中斷信號(hào)的,SPU單位的中斷信號(hào)產(chǎn)生方式。
本發(fā)明提供2種方式的SPU單位的中斷信號(hào)產(chǎn)生方法,將通過(guò)第1,第2實(shí)施例來(lái)分別加以說(shuō)明。
即,第1實(shí)施例是利用PTS_DTS_flag,以SPU單位產(chǎn)生中斷信號(hào)的方法,第2實(shí)施例是利用SPU_SZ(sub_picture unit size),以SPU單位產(chǎn)生中斷信號(hào)的方法。
第1實(shí)施例圖10是利用本發(fā)明的第1實(shí)施例PTS_DTS_flag,產(chǎn)生中斷信號(hào)的示意圖。
一般次畫面數(shù)據(jù)包是由下表1的構(gòu)造組成。
表1
*****解碼次畫面流號(hào)碼即,在上述表1中,次畫面數(shù)據(jù)包由以下各部分構(gòu)成3字節(jié)的packet_start_code_prefix;1字節(jié)的stream_id;2字節(jié)的PES_packet_length;2比特的標(biāo)記(marker)比特;2比特的PES_scrambling_control;1比特的PES_priority;1比特的data_alignment_indicator;1比特的copyright;1比特的original_or_copy;2比特的PTS_DTS_flags;1比特的ESCR_flag;1比特的ES_rate_flag;1比特的DSM_trick_mode_flag;1比特的additional_copy_info_flag,1比特的PES_CRC_flag;1比特的PES_extension_flag;1字節(jié)的PES_header_data_length,4比特的標(biāo)記比特;3比特的PTS[32..30];1比特的標(biāo)記比特;15比特的PTS[29..15];1比特的標(biāo)記比特;15比特的PTS[14..0];1比特的標(biāo)記比特;1比特的PES_private_data_flag;比特的pack_header_field_flag;1比特的program_packet_sequence_counter_flag;1比特的P-STD_buffer_flag;3比特的reserved比特;1比特的PES_extension_flag_2,2比特的標(biāo)記比特,1比特的P-STD_buffer_scale,13比特的P-STD_buffer_size;0里面7字節(jié)的stuffing_byte;1字節(jié)的sub_stream_id和次畫面數(shù)據(jù)。
在如上述表1的次畫面數(shù)據(jù)包結(jié)構(gòu)中,2字節(jié)的PES_packet_length顯示出除了packet_start_code_prefix和stream_id,PES_packet_length以外的數(shù)據(jù)包的長(zhǎng)度。
在次畫面中,PTS_DTS_flags能夠具有2和0值,如果PTS_DTS_flags的值為2,表示它是構(gòu)成次畫面單元的第1個(gè)包,實(shí)際上,也能夠從中得到PTS值。即,如果PTS_DTS_flag是2,這個(gè)包就是構(gòu)成SPU的第1個(gè)包。比如說(shuō),假設(shè)一個(gè)次畫面單元由3個(gè)包構(gòu)成,第1個(gè)包的PTS_DTS_flags是2,那么第2個(gè)和第3個(gè)包的PTS_DTS_flags就是0。
因此,本發(fā)明的系統(tǒng)解碼器如圖10所示,第1個(gè)包的PTS_DTS_flag=2時(shí),如果第2個(gè)包的PTS_DTS_flag是2,就會(huì)產(chǎn)生中斷信號(hào),在緩沖存儲(chǔ)器140中存儲(chǔ)直到第1個(gè)包結(jié)束時(shí)的值,然后向次畫面解碼器150輸出。實(shí)際上,將直到不包括包報(bào)頭和填料的純粹的數(shù)據(jù)包結(jié)束時(shí)的值全部存儲(chǔ)在緩沖存儲(chǔ)器140中,次畫面解碼器150讀取系統(tǒng)解碼器130發(fā)出的中斷信號(hào),取出緩沖存儲(chǔ)器140所記錄的數(shù)據(jù)。
另一方面,當(dāng)?shù)?個(gè)包的PTS_DTS_flag=2時(shí),如果第2個(gè)包的PTS_DTS_flag是0,調(diào)查第三個(gè)包,如果第三個(gè)包的PTS_DTS_flag是2,就會(huì)產(chǎn)生中斷信號(hào),將到第2個(gè)包結(jié)束時(shí)的數(shù)據(jù)存儲(chǔ)到緩沖存儲(chǔ)器140中。如果第三個(gè)包的PTS_DTS_flag是0,調(diào)查第四個(gè)包,反復(fù)進(jìn)行這樣的過(guò)程,可達(dá)到每當(dāng)一個(gè)SPU結(jié)束時(shí),產(chǎn)生中斷信號(hào)的效果。
圖11是根據(jù)本發(fā)明的第1實(shí)施例,次畫面解碼時(shí),中斷信號(hào)產(chǎn)生方法的動(dòng)作流程圖,實(shí)施例中使用與圖1同樣的硬件。
即,系統(tǒng)解碼器130將輸入的PS分離成表達(dá)數(shù)據(jù)和導(dǎo)航數(shù)據(jù),將表達(dá)數(shù)據(jù)再次分離成音頻/視頻/次畫面數(shù)據(jù)后(階段201),將分離的次畫面數(shù)據(jù)按照PES等級(jí)存儲(chǔ)到緩沖存儲(chǔ)器140中(階段202)。同時(shí),系統(tǒng)解碼器130核實(shí)在緩沖存儲(chǔ)器140存儲(chǔ)的次畫面包的PTS_DTS_flag是否為2(階段203)。在上述階段203中,如果對(duì)白包的PTS_DTS_flag是2,就核實(shí)下一個(gè)次畫面包的PTS_DTS_flag是否為2(階段204)。在階段204中,如果判定PTS_DTS_flag是2,就產(chǎn)生中斷信號(hào),將此前核實(shí)的包(即,包括在階段203中,經(jīng)核實(shí)的PTS_DTS_flag值為2的包)存儲(chǔ)到緩沖存儲(chǔ)器140中(階段205)。在上述階段204中,如果判定PTS_DTS_flag不是2,要再次核實(shí)下一個(gè)包的PTS_DTS_flag是否為2。這樣的過(guò)程一直重復(fù)到包的PTS_DTS_flag被核實(shí)為2時(shí)。反復(fù)這樣的過(guò)程,如果檢測(cè)出PTS_DTS_flag被判定為2的包,就會(huì)產(chǎn)生中斷信號(hào),將直到此包前核實(shí)的包結(jié)束時(shí)的次畫面數(shù)據(jù)存儲(chǔ)到緩沖存儲(chǔ)器140中。
經(jīng)過(guò)上述的過(guò)程,如果在系統(tǒng)解碼器130中產(chǎn)生中斷信號(hào),次畫面解碼器150從上述緩沖存儲(chǔ)器140中讀取次畫面數(shù)據(jù)并進(jìn)行解碼(階段206),然后,為了顯示,存儲(chǔ)到OSD存儲(chǔ)器160中(階段207)。
根據(jù)上述的第1實(shí)施例,為了判斷SPU,需要對(duì)下一個(gè)包的PTS_DTS_flag進(jìn)行確認(rèn),這樣自然產(chǎn)生1張包的延遲。
第2實(shí)施例圖12是根據(jù)本發(fā)明的第2實(shí)施例,利用SPU大小的中斷信號(hào)產(chǎn)生方法的動(dòng)作流程圖,使用與圖1同樣的硬件。
即,系統(tǒng)解碼器130將輸入的PS分離成表達(dá)數(shù)據(jù)和導(dǎo)航數(shù)據(jù),將表達(dá)數(shù)據(jù)再次分離成音頻/視頻/次畫面數(shù)據(jù)后(階段301),將分離的次畫面數(shù)據(jù)存儲(chǔ)到緩沖存儲(chǔ)器140中(階段302)。同時(shí),系統(tǒng)解碼器130對(duì)在緩沖存儲(chǔ)器140中存儲(chǔ)的SPU的第1個(gè)包的ES大小,按照下面的公式1進(jìn)行計(jì)算(階段303)。
公式1ES大?。?PES_packet_length)-3-(PES_header_data_length)-(sub_stream_id)在上述的公式1中,數(shù)字3作為3字節(jié),是由以下各部分構(gòu)成2比特的標(biāo)記(marker)比特;2比特的PES_scrambling_control;1比特的PES_priority;1比特的data_alignment_indicator;1比特的copyright;1比特的original_or_copy;2比特的PTS_DTS_flags;1比特的ESCR_flag;1比特的ES_rate_flag;1比特的DSM_trick_mode_flag;1比特的additional_copy_info_flag;1比特的PES_CRC_flag;1比特的PES_extension_flag;1字節(jié)的PES_header_data_length。這一結(jié)構(gòu)顯示在表1中。
即,如圖3的次畫面包結(jié)構(gòu)中,ES大小指的是除去包報(bào)頭和數(shù)據(jù)包報(bào)頭,對(duì)白流ID,以及填料數(shù)據(jù)包在外的純粹的數(shù)據(jù)包數(shù)據(jù)的大小。這時(shí),如果讀出SPU的第1個(gè)包的ES的第一個(gè)2字節(jié),就能知道SPU的大小(SPU_SZ)。即,在SPU的第1個(gè)包的ES的第1個(gè)2字節(jié)中,記錄著SPU的大小(SPU_SZ)。
因此,比較在上述的階段303中計(jì)算出的SPU的第1個(gè)包的ES大小與在上述階段304中抽出的SPU_SZ是否一樣(階段305),如果判定為一樣,當(dāng)?shù)?個(gè)包結(jié)束時(shí),就產(chǎn)生中斷信號(hào)(階段309)。這是SPU由1個(gè)包構(gòu)成的例子。
另一方面,在上述階段305中,如果判定ES大小和SPU_SZ不一樣,而SPU最少由2個(gè)以上的包構(gòu)成,計(jì)算出下一個(gè)包的ES大小(階段306)。而且,在上述階段306里計(jì)算出的ES大小與現(xiàn)在SPU累計(jì)的ES大小相加,從而得到全部ES大小(階段307)。
然后,比較全部ES大小與SPU_SZ是否一樣(階段308)。如果判定為一樣,在上述階段305中,在上述階段305中用于ES大小計(jì)算的包結(jié)束時(shí),例如,在第2個(gè)包結(jié)束時(shí)產(chǎn)生中斷信號(hào)(階段309);如果判定為不一樣,返回到階段306,以下一個(gè)包為例,計(jì)算出第3個(gè)包的ES大小后,累計(jì)到以前的ES大小中,然后再次重復(fù)與SPU_SZ比較的過(guò)程。比如說(shuō),如果判定SPU由4個(gè)包構(gòu)成,反復(fù)運(yùn)行三次從階段306到308,然后產(chǎn)生中斷信號(hào)。
經(jīng)過(guò)上述的過(guò)程,如果在系統(tǒng)解碼器130中產(chǎn)生中斷信號(hào),次畫面解碼器150從緩沖存儲(chǔ)器140中讀取直到中斷信號(hào)產(chǎn)生的包的次畫面數(shù)據(jù),并對(duì)次畫面數(shù)據(jù)進(jìn)行解碼(階段310)。然后,為了顯示存儲(chǔ)到OSD存儲(chǔ)器160中(階段311)。
本發(fā)明的第2實(shí)施例SPU的包能夠及時(shí)對(duì)次畫面進(jìn)行解碼,向每個(gè)次畫面單元只產(chǎn)生一次中斷信號(hào),可實(shí)現(xiàn)軟件結(jié)構(gòu)的簡(jiǎn)單化和解碼的效率化。
通過(guò)上述的說(shuō)明內(nèi)容,相關(guān)工作人員完全可以在不偏離本項(xiàng)發(fā)明技術(shù)思想的范圍內(nèi),進(jìn)行多樣的變更以及修改。
因此,本項(xiàng)發(fā)明的技術(shù)性范圍并不局限于說(shuō)明書上的內(nèi)容,必須要根據(jù)權(quán)利范圍來(lái)確定其技術(shù)性范圍。
權(quán)利要求
1.一種次畫面解碼時(shí)的中斷信號(hào)產(chǎn)生方法,包括以下階段(a)讀取DVD中記載的DVD視頻數(shù)據(jù),并將其分離成表達(dá)數(shù)據(jù)和導(dǎo)航數(shù)據(jù)后,將表達(dá)數(shù)據(jù)再次分離成音頻/視頻/次畫面數(shù)據(jù)的階段;(b)將在上述階段分離的次畫面數(shù)據(jù)暫時(shí)儲(chǔ)存到緩沖存儲(chǔ)器的階段;(c)以次畫面單元(SPU)為單位產(chǎn)生中斷信號(hào)的階段;(d)在上述(c)階段中,當(dāng)產(chǎn)生中斷信號(hào)時(shí),從緩沖存儲(chǔ)器中讀取并解碼相關(guān)次畫面單元的階段。2、如權(quán)利要求1所述的次畫面解碼時(shí)的中斷信號(hào)產(chǎn)生方法,其特征為,上述次畫面單元至少由1個(gè)以上的次畫面包構(gòu)成。
3.如權(quán)利要求1所述的次畫面解碼時(shí)的中斷信號(hào)產(chǎn)生方法,其特征為,在上述(c)階段中,對(duì)次畫面單元的大小和次畫面包的ES部分的大小進(jìn)行比較,以次畫面單元為單位產(chǎn)生中斷信號(hào)。
4.如權(quán)利要求1所述的次畫面解碼時(shí)的中斷信號(hào)產(chǎn)生方法,其特征為,上述(c)階段還包括(c1)計(jì)算出緩沖存儲(chǔ)器里儲(chǔ)存的次畫面單元的第1個(gè)次畫面包的ES大小的階段;(c2)從上述次畫面單元的第1個(gè)次畫面包的ES部分檢測(cè)出已經(jīng)記錄的相關(guān)次畫面單元大小的階段;(c3)比較上述階段所得出的ES大小與次畫面大小是否一致的階段;(c4)在(c3)階段中,如果判定為相同,就在第1個(gè)次畫面包結(jié)束時(shí),產(chǎn)生中斷信號(hào)的階段;(c5)在(c3)階段中,如果判定為不同,就計(jì)算出下一個(gè)次畫面包的ES大小后,累計(jì)到相關(guān)次畫面單元的以前ES大小中,從而計(jì)算出全部ES大小的階段;(c6)在上述的(c5)階段中求得的全部ES大小與次畫面單元的大小進(jìn)行比較的階段;(c7)在上述(c6)階段中,如果判定為相同,當(dāng)(c5)階段求得ES大小的次畫面包結(jié)束時(shí),產(chǎn)生中斷信號(hào)的階段;(c8)如果在(c6)階段中,判定為不同,重新返回到上述(c5)階段,求得下一個(gè)次畫面包的ES大小,再次計(jì)算出全部ES大小,與次畫面單元大小進(jìn)行比較,這樣的過(guò)程一直持續(xù)進(jìn)行到全部ES大小和對(duì)白單元大小相同為止,當(dāng)檢測(cè)出全部ES大小與對(duì)白單元大小相同的次畫面包,在其次畫面包結(jié)束時(shí),就產(chǎn)生中斷信號(hào)的階段。
5.如權(quán)利要求3所述的次畫面解碼時(shí)的中斷信號(hào)產(chǎn)生方法,其特征為,上述次畫面包的ES部分大小是除了相關(guān)次畫面包的包報(bào)頭,數(shù)據(jù)包報(bào)頭,對(duì)白流ID,填料數(shù)據(jù)包以外的,純粹的數(shù)據(jù)包數(shù)據(jù)的大小。
6.如權(quán)利要求1所述的次畫面解碼時(shí)的中斷信號(hào)產(chǎn)生方法,其特征為,上述(c)階段中利用次畫面包內(nèi)的PTS_DTS_flags,以次畫面單元為單位產(chǎn)生中斷信號(hào)。
7.如權(quán)利要求6所述的次畫面解碼時(shí)的中斷信號(hào)產(chǎn)生方法,其特征為,上述(c)階段包括(c1)確認(rèn)上述緩沖存儲(chǔ)器里存儲(chǔ)的次畫面單元的第1個(gè)次畫面包的PTS_DTS_flag是否為2的階段;(c2)在上述(c1)階段中,第1個(gè)次畫面包的PTS_DTS_flag如果被判定為2,就判定第2個(gè)次畫面包的PTS_DTS_flag是否為2的階段;(c 3)在上述(c2)階段中,如果第2個(gè)次畫面包的PTS_DTS_flag被判定為2,就產(chǎn)生中斷信號(hào),將直到上述第1個(gè)次畫面包結(jié)束時(shí)的次畫面數(shù)據(jù)儲(chǔ)存到緩沖存儲(chǔ)器的階段;(c4)在上述(c2)階段中,如果第2個(gè)次畫面包的PTS_DTS_flag被判定為不是2,就判定下一個(gè)次畫面包的PTS_DTS_flag是否為2的階段;(c5)在上述(c4)階段中,如果判定下一個(gè)次畫面包的PTS_DTS_flag為2,就產(chǎn)生中斷信號(hào),將直到此前次畫面包結(jié)束時(shí)的次畫面數(shù)據(jù)儲(chǔ)存到上述緩沖存儲(chǔ)器的階段;(c6)在上述(c4)階段中,如果下一個(gè)次畫面包的PTS_DTS_flag被判定為不是2,判定下一個(gè)次畫面包的PTS_DTS_flag是否為2一直到次畫面包的PTS_DTS_flag被判定為2為止,反復(fù)運(yùn)行后,如果檢測(cè)出判定PTS_DTS_flag為2的次畫面包,就產(chǎn)生中斷信號(hào),將直到畫面包結(jié)束時(shí)的次畫面數(shù)據(jù)儲(chǔ)存到上述緩沖存儲(chǔ)器的階段。
全文摘要
一種控制DVD中記錄的次畫面數(shù)據(jù)解碼的中斷信號(hào)產(chǎn)生方法,用軟件解碼DVD視頻的次畫面時(shí),通過(guò)以下兩種方法產(chǎn)生中斷信號(hào)系統(tǒng)解碼器通過(guò)比較次畫面單元的大小和次畫面包的ES部分的大小,以畫面單位產(chǎn)生中斷信號(hào);通過(guò)使用次畫面包內(nèi)的PTS_DTS_flags,以次畫面單元為單位產(chǎn)生中斷信號(hào)。次畫面解碼器能夠容易地從緩沖存儲(chǔ)器中讀取到次畫面數(shù)據(jù),并且有效地進(jìn)行解碼,能夠提高軟件次畫面解碼器的性能。
文檔編號(hào)H04N5/93GK1728261SQ200410053148
公開日2006年2月1日 申請(qǐng)日期2004年7月26日 優(yōu)先權(quán)日2004年7月26日
發(fā)明者李承埈 申請(qǐng)人:上海樂金廣電電子有限公司