專利名稱:視訊編碼系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種視訊編碼系統(tǒng)(Video encoding system)及其方法,特別是涉及一種具有適應(yīng)性一次變動(dòng)比特率控制(Adaptive one-passvariable bit rate control)以及場(chǎng)景變化檢測(cè)(Scene change detection)的視訊編碼系統(tǒng)及其方法。
背景技術(shù):
近年來(lái),數(shù)字壓縮(Digital compression)技術(shù)已廣泛應(yīng)用于壓縮各種視訊文件,以節(jié)省傳輸頻寬(Transmissions bandwidth)或存儲(chǔ)容量(Storage size)。一般來(lái)說(shuō),目前的壓縮技術(shù)均是采用國(guó)際標(biāo)準(zhǔn)化組織(International organization for standardization,ISO)所制定的動(dòng)態(tài)影像壓縮標(biāo)準(zhǔn)(Motion picture experts group standard,MPEG standard),例如MPEG-1、MPEG-2、MPEG-4、、、等。
于文件技術(shù)中,標(biāo)準(zhǔn)MPEG視訊編碼器(MPEG compliant video encoder)是利用一目標(biāo)比特率(Target bit rate),將一輸入的視訊序列加以壓縮。上述的目標(biāo)比特率是根據(jù)一使用者所使用的通訊頻道頻寬而設(shè)定,而壓縮后的視訊序列即是以目標(biāo)比特率為基礎(chǔ)來(lái)傳送,或是存儲(chǔ)于存儲(chǔ)裝置中。然而,經(jīng)由固定的目標(biāo)比特率所壓縮的視訊場(chǎng)景,于譯碼時(shí),根據(jù)場(chǎng)景的復(fù)雜度(Scene complexity),其視訊質(zhì)量將會(huì)有很大的差異。
于實(shí)際應(yīng)用中,可利用變動(dòng)比特率(Variable bit rate)技術(shù)來(lái)將視訊序列壓縮。所謂變動(dòng)比特率便是針對(duì)場(chǎng)景的復(fù)雜度,以適當(dāng)?shù)胤峙浔忍芈蕘?lái)增進(jìn)視訊編碼質(zhì)量?;旧?,用于視訊編碼的比特率控制可分為多次變動(dòng)比特率(Multi-pass variable bit rate)以及單次變動(dòng)比特率(Singlepass variable bit rate)。多次變動(dòng)比特率是利用畫(huà)面于先前傳遞(Preceding passes)的復(fù)雜度信息,來(lái)達(dá)到目標(biāo)比特率的限制。而單次變動(dòng)比特率則是在編碼的過(guò)程中,動(dòng)態(tài)地調(diào)整編碼時(shí)的比特率。多次變動(dòng)比特率雖然可提供較佳地影像質(zhì)量,然而也需要較大的存儲(chǔ)容量以及較復(fù)雜的運(yùn)算,因此多次變動(dòng)比特率的技術(shù)并不符合實(shí)時(shí)的需求。另外,當(dāng)視訊序列中,場(chǎng)景突然發(fā)生變化的時(shí)候,單次變動(dòng)比特率無(wú)法提供前后一致的影像質(zhì)量。
因此本發(fā)明的主要目的在于提供一種具有適應(yīng)性一次變動(dòng)比特率控制以及場(chǎng)景變化檢測(cè)的視訊編碼系統(tǒng)及其方法,以解決上述問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的一目的在于提供一種具有適應(yīng)性一次變動(dòng)比特率控制以及場(chǎng)景變化檢測(cè)的視訊編碼系統(tǒng)及其方法,用以檢測(cè)一視訊序列中的一畫(huà)面是否為一變化場(chǎng)景,并根據(jù)視訊復(fù)雜度信息對(duì)該畫(huà)面加以重新編碼,使得整個(gè)視訊序列的編碼質(zhì)量達(dá)到一致。
本發(fā)明的視訊編碼方法(Video encoding method)用以對(duì)一視訊序列(Video sequence)進(jìn)行編碼,視訊序列包含N個(gè)子序列,N為一自然數(shù),且每一個(gè)子序列均包含多個(gè)畫(huà)面(Frame)。亦即,本發(fā)明的視訊編碼方法用以對(duì)視訊序列中,第i個(gè)子序列中的第j個(gè)畫(huà)面進(jìn)行編碼。在該第i個(gè)子序列中的該第j個(gè)畫(huà)面之前的畫(huà)面均已完成編碼,i為介于1至N范圍中的一整數(shù)指標(biāo),j為介于2至該第i個(gè)子序列的畫(huà)面數(shù)目范圍中的一整數(shù)指標(biāo)。
本發(fā)明的視訊編碼方法包含有以下步驟?;谒鲆淹瓿删幋a的畫(huà)面,產(chǎn)生一初始量化標(biāo)度(Quantization scale)。根據(jù)初始量化標(biāo)度,對(duì)第i個(gè)子序列中的第j個(gè)畫(huà)面以一第一編碼模式進(jìn)行編碼。判斷第i個(gè)子序列中的第j個(gè)畫(huà)面于場(chǎng)景上相較于第i個(gè)子序列中的第(j-1)個(gè)畫(huà)面是否是一變化場(chǎng)景(Scene change)。若上述的結(jié)果為肯定,則基于初始量化標(biāo)度產(chǎn)生一調(diào)整的量化標(biāo)度,并且根據(jù)調(diào)整后的量化標(biāo)度,對(duì)第i個(gè)子序列中的第j個(gè)畫(huà)面以一第二編碼模式重新進(jìn)行編碼。
于本發(fā)明中,當(dāng)視訊序列中的I目前畫(huà)面為一變化場(chǎng)景時(shí),本發(fā)明會(huì)根據(jù)先前已完成編碼畫(huà)面的復(fù)雜度信息,對(duì)該目前畫(huà)面進(jìn)行重新編碼。換言之,本發(fā)明僅會(huì)針對(duì)發(fā)生場(chǎng)景變化的畫(huà)面,進(jìn)行重新編碼的操作。因此,本發(fā)明結(jié)合了多次變動(dòng)比特率以及單次變動(dòng)比特率的技術(shù),使得視訊序列在經(jīng)過(guò)編碼后,可以得到較佳、一致的影像質(zhì)量,且不需要大量的存儲(chǔ)空間來(lái)存儲(chǔ)編碼數(shù)據(jù)。
關(guān)于本發(fā)明的優(yōu)點(diǎn)與精神可以藉由以下結(jié)合附圖對(duì)本發(fā)明的詳述得到進(jìn)一步的了解。
圖1為本發(fā)明的視訊編碼系統(tǒng)的功能方塊圖。
圖2為圖1所示的場(chǎng)景變化檢測(cè)器的方塊圖。
圖3為圖2所示的決定模塊所決定的檢測(cè)區(qū)域示意圖。
圖4為本發(fā)明視訊編碼方法的流程圖。
附圖符號(hào)說(shuō)明10視訊編碼系統(tǒng) 12視訊序列14輸入端 16編碼器17場(chǎng)景變化檢測(cè)器 18比特流緩存器20畫(huà)面比特計(jì)數(shù)器 22視訊復(fù)雜度估測(cè)器24量化標(biāo)度產(chǎn)生器 171決定模塊172判斷模塊具體實(shí)施方式
請(qǐng)參閱圖1,其為本發(fā)明的視訊編碼系統(tǒng)10的功能方塊圖。一視訊序列12包含N個(gè)子序列,N為一自然數(shù),且每一個(gè)子序列均包含多個(gè)畫(huà)面(Frame)。于視訊序列12的每一畫(huà)面中,預(yù)先定義一定數(shù)量的列與行(Predefined number of rows and columns),每一列與每一行均包含多個(gè)宏區(qū)塊(Macroblock,MB)。視訊序列(Video sequence)12經(jīng)由一輸入端(Input end)14輸入至本發(fā)明的視訊編碼系統(tǒng)(Video encoding system)10。視訊編碼系統(tǒng)10用以對(duì)第i個(gè)子序列中的第j個(gè)畫(huà)面進(jìn)行編碼,且在第i個(gè)子序列中的第j個(gè)畫(huà)面之前的畫(huà)面均已完成編碼。i為介于1至N范圍中的一整數(shù)指標(biāo),j為介于2至第i個(gè)子序列的畫(huà)面數(shù)目范圍中的一整數(shù)指標(biāo)。
如圖1所示,本發(fā)明的視訊編碼系統(tǒng)10包含一編碼器(Encoder)16、一場(chǎng)景變化檢測(cè)器(Scene change detector)17、一比特流緩存器(Bitstream buffer)18、一畫(huà)面比特計(jì)數(shù)器(Frame bit counter)20、一視訊復(fù)雜度估測(cè)器(Video complexity estima tor)22以及一量化標(biāo)度產(chǎn)生器(Quantization scale generator)24。編碼器16是與輸入端14相耦合,用以接收并編碼視訊序列12。編碼器16于編碼視訊序列12的一目前畫(huà)面時(shí),需先決定用以編碼該目前畫(huà)面中,每一宏區(qū)塊的編碼模式(Encodingmode)。編碼模式可大致上分為兩種類型內(nèi)部編碼模式(Intra mode)以及中間編碼模式(Inter mode)。當(dāng)一畫(huà)面經(jīng)由內(nèi)部編碼模式編碼后,則稱為內(nèi)部編碼畫(huà)面(Intra frame,I畫(huà)面)。當(dāng)一畫(huà)面經(jīng)由中間編碼模式編碼后,則稱為中間編碼畫(huà)面(Inter frame,P畫(huà)面或B畫(huà)面)。I畫(huà)面不參考任何畫(huà)面,將一畫(huà)面編碼而得。P畫(huà)面則參考前一畫(huà)面,將一畫(huà)面編碼而得。而B(niǎo)畫(huà)面則是參考前一畫(huà)面以及后一畫(huà)面,將一畫(huà)面編碼而得。
場(chǎng)景變化檢測(cè)器17耦合于編碼器16,并且用以判斷第i個(gè)子序列中的第j個(gè)畫(huà)面于場(chǎng)景上,相較于第i個(gè)子序列中的第(j-1)個(gè)畫(huà)面是否是一變化場(chǎng)景(Scene change)。量化標(biāo)度產(chǎn)生器24耦合于編碼器16,且基于所述已完成編碼的畫(huà)面,用以產(chǎn)生一初始量化標(biāo)度(Quantizations cale)。若第i個(gè)子序列中的第j個(gè)畫(huà)面是一變化場(chǎng)景,則量化標(biāo)度產(chǎn)生器24會(huì)基于初始量化標(biāo)度產(chǎn)生一調(diào)整的量化標(biāo)度,并且編碼器16根據(jù)調(diào)整后的量化標(biāo)度,對(duì)第i個(gè)子序列中的第j個(gè)畫(huà)面以一第二編碼模式重新進(jìn)行編碼。第二編碼模式為上述的內(nèi)部編碼模式。反之,若第i個(gè)子序列中的第j個(gè)畫(huà)面不是一變化場(chǎng)景,編碼器16會(huì)根據(jù)初始量化標(biāo)度,對(duì)第i個(gè)子序列中的第j個(gè)畫(huà)面以一第一編碼模式進(jìn)行編碼。第一編碼模式為上述的中間編碼模式。
于本發(fā)明的一實(shí)施例中,一視訊序列12包含3個(gè)子序列,每一個(gè)子序列均包含100個(gè)畫(huà)面。視訊編碼系統(tǒng)10正在對(duì)第2個(gè)子序列中的第33個(gè)畫(huà)面進(jìn)行編碼,且在第2個(gè)子序列中的第33個(gè)畫(huà)面之前的畫(huà)面均已完成編碼(亦即第1個(gè)子序列中的100個(gè)畫(huà)面以及第2個(gè)子序列中的第1到第32個(gè)畫(huà)面均已完成編碼)。需注意的是,每一個(gè)子序列中的第一個(gè)畫(huà)面均是以內(nèi)部編碼模式加以編碼。量化標(biāo)度產(chǎn)生器24會(huì)基于所述已完成編碼的畫(huà)面,以產(chǎn)生一初始量化標(biāo)度。場(chǎng)景變化檢測(cè)器17則判斷第2個(gè)子序列中的第33個(gè)畫(huà)面于場(chǎng)景上,相較于第2個(gè)子序列中的第32個(gè)畫(huà)面是否是一變化場(chǎng)景。若第2個(gè)子序列中的第33個(gè)畫(huà)面不是一變化場(chǎng)景,編碼器16會(huì)根據(jù)初始量化標(biāo)度,對(duì)第2個(gè)子序列中的第33個(gè)畫(huà)面以中間編碼模式進(jìn)行編碼。若第2個(gè)子序列中的第33個(gè)畫(huà)面為一變化場(chǎng)景,則量化標(biāo)度產(chǎn)生器24基于初始量化標(biāo)度產(chǎn)生一調(diào)整的量化標(biāo)度,并且編碼器16根據(jù)調(diào)整后的量化標(biāo)度,對(duì)第2個(gè)子序列中的第33個(gè)畫(huà)面以內(nèi)部編碼模式重新進(jìn)行編碼。換言之,本發(fā)明僅會(huì)針對(duì)發(fā)生場(chǎng)景變化的畫(huà)面,進(jìn)行重新編碼的操作。
比特流緩存器18耦合于編碼器16,用以暫存畫(huà)面經(jīng)編碼后的比特流。畫(huà)面比特計(jì)數(shù)器20耦合于編碼器16,用以持續(xù)追蹤并累加編碼后的視訊序列12的每一畫(huà)面的位長(zhǎng)度,以產(chǎn)生一累加比特流(Accumulatedbitstream)。視訊復(fù)雜度估測(cè)器22耦合于畫(huà)面比特計(jì)數(shù)器20以及量化標(biāo)度產(chǎn)生器24之間,用以接收畫(huà)面比特計(jì)數(shù)器20產(chǎn)生的累加比特流,并產(chǎn)生一第一視訊復(fù)雜度(Video complexity)以及一第二視訊復(fù)雜度。
第一視訊復(fù)雜度XA經(jīng)由下列公式一所決定公式一XA=SA*QA*FNA2]]>公式一中,SA代表一第一位長(zhǎng)度總合(Summation of bit length),第一位長(zhǎng)度總合是關(guān)于第i個(gè)子序列中的第j個(gè)畫(huà)面之前的所有畫(huà)面的位長(zhǎng)度總合;QA代表一第一量化標(biāo)度總合(Summation of quantization scale),第一量化標(biāo)度總合是關(guān)于第i個(gè)子序列中的第j個(gè)畫(huà)面之前的所有畫(huà)面的量化標(biāo)度總合;NA代表一第一畫(huà)面數(shù)量,第一畫(huà)面數(shù)量是關(guān)于第i個(gè)子序列中的第j個(gè)畫(huà)面之前的所有畫(huà)面的畫(huà)面數(shù)量;F代表一預(yù)定畫(huà)面率(Framerate)。如上述的實(shí)施例中,SA、QA以及NA分別是關(guān)于第2個(gè)子序列中的第33個(gè)畫(huà)面之前的所有畫(huà)面的位長(zhǎng)度總合、量化標(biāo)度總合以及畫(huà)面數(shù)量。畫(huà)面率是指每秒所顯示的靜止畫(huà)面格數(shù)。
第二視訊復(fù)雜度XL經(jīng)由下列公式二所決定公式二XL=SL*QL*FNL2]]>公式二中,SL代表一第二位長(zhǎng)度總合,第二位長(zhǎng)度總合是關(guān)于第i個(gè)子序列中,第1至第(j-1)個(gè)畫(huà)面的位長(zhǎng)度總合;QL代表一第二量化標(biāo)度總合,第二量化標(biāo)度總合是關(guān)于第i個(gè)子序列中,第1至第(j-1)個(gè)畫(huà)面的量化標(biāo)度總合;NL代表一第二畫(huà)面數(shù)量,第二畫(huà)面數(shù)量是關(guān)于第i個(gè)子序列中,第1至第(j-1)個(gè)畫(huà)面的畫(huà)面數(shù)量。如上述的實(shí)施例中,SL、QL以及NL分別是關(guān)于第2個(gè)子序列中,第1至第32個(gè)畫(huà)面的位長(zhǎng)度總合、量化標(biāo)度總合以及畫(huà)面數(shù)量。
初始量化標(biāo)度由一預(yù)測(cè)量化標(biāo)度(Predicted quantization scale)以及一差異量化標(biāo)度(Differential quantization scale)所決定。預(yù)測(cè)量化標(biāo)度QP經(jīng)由下列公式三所決定公式三QP=MIP(XA,XL)B+1]]>公式三中,XA代表第一視訊復(fù)雜度,第一視訊復(fù)雜度是關(guān)于第i個(gè)子序列中的第j個(gè)畫(huà)面之前的所有畫(huà)面的視訊復(fù)雜度;XL代表第二視訊復(fù)雜度,第二視訊復(fù)雜度是關(guān)于第i個(gè)子序列中,第1至第(j-1)個(gè)畫(huà)面的視訊復(fù)雜度;B代表一預(yù)定目標(biāo)比特率。如上所述的實(shí)施例,XA是關(guān)于第2個(gè)子序列中的第33個(gè)畫(huà)面之前的所有畫(huà)面的視訊復(fù)雜度;XL是關(guān)于第2個(gè)子序列中,第1至第32個(gè)畫(huà)面的視訊復(fù)雜度。
差異量化標(biāo)度Qd經(jīng)由下列公式四,所決定公式四Qd=K*(Sbufbuf_size-0.5);]]>其中Sbuf=MAX(Sbuf+Sj-BF,0)]]>上述公式中,Sbuf代表比特流緩存器18目前所存儲(chǔ)的位數(shù);Sj代表目前第i個(gè)子序列中的第j個(gè)畫(huà)面所產(chǎn)生的位數(shù);buf_size代表一預(yù)定的緩沖存儲(chǔ)器大小(Buffer size);K代表一第一預(yù)定模型參數(shù)(Modelparameter),用以決定該差異量化標(biāo)度的標(biāo)度。
因此,初始量化標(biāo)度Q可經(jīng)由下列公式五來(lái)決定公式五Q=MAX(QMIN,MIN(QMAX,QP+Qd))。
公式五中,QMAX代表該初始量化標(biāo)度的一預(yù)定最大值,QMIN代表該初始量化標(biāo)度的一預(yù)定最小值。
請(qǐng)參閱圖2以及圖3,圖2為圖1所示的場(chǎng)景變化檢測(cè)器17的方塊圖。圖3為圖2所示的決定模塊171所決定的檢測(cè)區(qū)域示意圖。本發(fā)明的場(chǎng)景變化檢測(cè)器17包含一決定模塊(Determination module)171以及一判斷模塊(Judgment module)172。決定模塊171用以于目前第j個(gè)畫(huà)面中,決定一檢測(cè)區(qū)域(Detection area)。判斷模塊172用以于檢測(cè)區(qū)域一目前列的最后一個(gè)宏區(qū)塊處,判斷檢測(cè)區(qū)域中的目前列及所有先前列的內(nèi)部編碼宏區(qū)塊(Intra macroblock)數(shù)量總合是否大于一臨界值(Threshold)。若檢測(cè)區(qū)域中的目前列及所有先前列的內(nèi)部編碼宏區(qū)塊數(shù)量總合大于臨界值,則判斷模塊172會(huì)判斷目前第j個(gè)畫(huà)面為一變化場(chǎng)景。反之,若檢測(cè)區(qū)域中的目前列及所有先前列的內(nèi)部編碼宏區(qū)塊數(shù)量總合并未大于臨界值,則判斷模塊172會(huì)繼續(xù)對(duì)目前第j個(gè)畫(huà)面進(jìn)行判斷,直到檢測(cè)區(qū)域中的所有列均檢測(cè)完畢。臨界值THR_SC由下列公式六所決定
公式六THR_SC=NmbvDA*Nmbh*SC_RATIO+1]]>公式六中,Nmbv代表目前第j個(gè)畫(huà)面中,每一行所包含宏區(qū)塊的數(shù)量;Nmbh代表目前第j個(gè)畫(huà)面中,每一列所包含宏區(qū)塊的數(shù)量;DA為一自然數(shù),用以決定檢測(cè)區(qū)域,SC_RATIO為一場(chǎng)景變化比例(Scene change ratio)。如上所述的實(shí)施例,于視訊序列12的每一畫(huà)面預(yù)先定義9列與11行,亦即每一列均包含11個(gè)宏區(qū)塊,每一行均包含9個(gè)宏區(qū)塊。用以決定檢測(cè)區(qū)域的DA的大小可視畫(huà)面率(F)的大小做調(diào)整。當(dāng)DA設(shè)為3,且SC_RATIO設(shè)為20%時(shí),臨界值THR_SC即為7.6。
如圖3所示,當(dāng)DA設(shè)為3時(shí),檢測(cè)區(qū)域即為整個(gè)畫(huà)面大小的1/3。于此實(shí)施例中,目前第2個(gè)子序列中的第33個(gè)畫(huà)面的檢測(cè)區(qū)域包含三列r1、r2以及r3。判斷模塊172會(huì)先于列r1的最后一個(gè)宏區(qū)塊處(圖3中的灰色區(qū)塊),判斷列r1的內(nèi)部編碼宏區(qū)塊數(shù)量總合是否大于臨界值,若是,則判斷目前第2個(gè)子序列中的第33個(gè)畫(huà)面為一變化場(chǎng)景,若否,則繼續(xù)判斷列r2與列r1的內(nèi)部編碼宏區(qū)塊數(shù)量總合是否大于臨界值。直到檢測(cè)區(qū)域中的所有列均檢測(cè)完畢,再繼續(xù)下一畫(huà)面的判斷。
當(dāng)場(chǎng)景變化檢測(cè)器17檢測(cè)到第i個(gè)子序列中的第j個(gè)畫(huà)面是一變化場(chǎng)景時(shí),量化標(biāo)度產(chǎn)生器24即會(huì)基于初始量化標(biāo)度產(chǎn)生一調(diào)整的量化標(biāo)度,并且編碼器16會(huì)根據(jù)調(diào)整后的量化標(biāo)度,對(duì)第i個(gè)子序列中的第j個(gè)畫(huà)面以內(nèi)部編碼模式重新進(jìn)行編碼。
調(diào)整后的量化標(biāo)度 由下列公式七所決定公式七Q^=Q*(SintraL*NmbNintra*FB)]]>公式七中,Nmb代表目前第j個(gè)畫(huà)面中,所有宏區(qū)塊的數(shù)量;Nint ra代表目前第j個(gè)畫(huà)面于檢測(cè)區(qū)域中,內(nèi)部編碼宏區(qū)塊的數(shù)量;Sint ra代表目前第j個(gè)畫(huà)面于檢測(cè)區(qū)域中,內(nèi)部編碼宏區(qū)塊的位數(shù);L代表一第二預(yù)定模型參數(shù)。
本發(fā)明還提供一種視訊編碼方法,用以對(duì)一視訊序列進(jìn)行編碼。視訊序列包含N個(gè)子序列,N為一自然數(shù),且每一個(gè)子序列均包含多個(gè)畫(huà)面。亦即,本發(fā)明的視訊編碼方法用以對(duì)視訊序列中,第i個(gè)子序列中的第j個(gè)畫(huà)面進(jìn)行編碼。在該第i個(gè)子序列中的該第j個(gè)畫(huà)面之前的畫(huà)面均已完成編碼,i為介于1至N范圍中的一整數(shù)指標(biāo),j為介于2至該第i個(gè)子序列的畫(huà)面數(shù)目范圍中的一整數(shù)指標(biāo)。需注意的是,每一個(gè)子序列中的第一個(gè)畫(huà)面均是以內(nèi)部編碼模式加以編碼。
請(qǐng)參閱圖4,圖4為本發(fā)明視訊編碼方法的流程圖。本發(fā)明的視訊編碼方法包含下列步驟步驟S100開(kāi)始;步驟S102基于所述已完成編碼的畫(huà)面,產(chǎn)生一初始量化標(biāo)度;步驟S104根據(jù)初始量化標(biāo)度,對(duì)第i個(gè)子序列中的第j個(gè)畫(huà)面以一中間編碼模式進(jìn)行編碼;步驟S106于目前第j個(gè)畫(huà)面中,決定一檢測(cè)區(qū)域;步驟S108于檢測(cè)區(qū)域一目前列的最后一個(gè)宏區(qū)塊處,判斷檢測(cè)區(qū)域中的目前列及所有先前列的內(nèi)部編碼宏區(qū)塊數(shù)量總合是否大于一臨界值;步驟S110若步驟S108中的結(jié)果為肯定,則判斷目前第j個(gè)畫(huà)面為一變化場(chǎng)景,并進(jìn)行步驟S112,若步驟S108中的結(jié)果為否定,則進(jìn)行步驟S114步驟S112基于初始量化標(biāo)度產(chǎn)生一調(diào)整的量化標(biāo)度,并且根據(jù)調(diào)整后的量化標(biāo)度,對(duì)第i個(gè)子序列中的第j個(gè)畫(huà)面以一內(nèi)部編碼模式重新進(jìn)行編碼,接著進(jìn)行步驟S116;步驟S114繼續(xù)對(duì)目前第j個(gè)畫(huà)面進(jìn)行步驟S108的判斷,直到檢測(cè)區(qū)域中的所有列均檢測(cè)完畢,并且進(jìn)行步驟S116;步驟S116重復(fù)進(jìn)行步驟S102,直到視訊序列中每一畫(huà)面均完成編碼為止;步驟S118結(jié)束。
相較于文件技術(shù),于本發(fā)明的視訊編碼系統(tǒng)及其方法中,當(dāng)視訊序列中的一目前畫(huà)面為一變化場(chǎng)景時(shí),本發(fā)明會(huì)根據(jù)先前已完成編碼畫(huà)面的復(fù)雜度信息,對(duì)該目前畫(huà)面進(jìn)行重新編碼。換言之,本發(fā)明僅會(huì)針對(duì)發(fā)生場(chǎng)景變化的畫(huà)面,進(jìn)行重新編碼的操作。因此,本發(fā)明結(jié)合了多次變動(dòng)比特率以及單次變動(dòng)比特率的技術(shù),使得視訊序列在經(jīng)過(guò)編碼后,可以得到較佳、一致的影像質(zhì)量,且不需要大量的存儲(chǔ)空間來(lái)存儲(chǔ)編碼數(shù)據(jù)。
藉由以上較佳具體實(shí)施例的詳述,是希望能更加清楚描述本發(fā)明的特征與精神,而并非以上述所披露的較佳具體實(shí)施例來(lái)對(duì)本發(fā)明的范疇加以限制。相反地,其目的是希望能涵蓋各種改變及具相等性的安排于本發(fā)明所欲申請(qǐng)的專利范圍的范疇內(nèi)。
權(quán)利要求
1.一種視訊編碼方法,一視訊序列包含N個(gè)子序列,每一個(gè)子序列均包含多個(gè)畫(huà)面,該視訊編碼方法用以對(duì)第i個(gè)子序列中的第j個(gè)畫(huà)面進(jìn)行編碼,在該第i個(gè)子序列中的該第j個(gè)畫(huà)面之前的畫(huà)面均已完成編碼,N為一自然數(shù),i為1至N范圍中的一整數(shù)指標(biāo),j為2至該第i個(gè)子序列的畫(huà)面數(shù)目范圍中的一整數(shù)指標(biāo),該方法包含下列步驟(a)基于所述已完成編碼的畫(huà)面,產(chǎn)生一初始量化標(biāo)度;(b)根據(jù)該初始量化標(biāo)度,對(duì)該第i個(gè)子序列中的該第j個(gè)畫(huà)面以一第一編碼模式進(jìn)行編碼;(c)判斷該第i個(gè)子序列中的該第j個(gè)畫(huà)面于場(chǎng)景上相較于該第i個(gè)子序列中的第(j-1)個(gè)畫(huà)面是否是一變化場(chǎng)景;以及(d)若步驟(c)的結(jié)果為肯定,則基于該初始量化標(biāo)度產(chǎn)生一調(diào)整量化標(biāo)度,并且根據(jù)該調(diào)整量化標(biāo)度,對(duì)該第i個(gè)子序列中的該第j個(gè)畫(huà)面以一第二編碼模式重新進(jìn)行編碼。
2.如權(quán)利要求1所述的方法,其中該第一編碼模式為一中間編碼模式。
3.如權(quán)利要求1所述的方法,其中該第二編碼模式為一內(nèi)部編碼模式。
4.如權(quán)利要求1所述的方法,其中該初始量化標(biāo)度是由一預(yù)測(cè)量化標(biāo)度以及一差異量化標(biāo)度所決定。
5.如權(quán)利要求4所述的方法,其中該預(yù)測(cè)量化標(biāo)度QP經(jīng)由下列公式所決定QP=MIN(XA,XL)B+1,]]>XA代表一第一視訊復(fù)雜度,該第一視訊復(fù)雜度是關(guān)于該第i個(gè)子序列中的該第j個(gè)畫(huà)面之前的所有畫(huà)面的視訊復(fù)雜度,XL代表一第二視訊復(fù)雜度,該第二視訊復(fù)雜度是關(guān)于該第i個(gè)子序列中,第1個(gè)至第(j-1)個(gè)畫(huà)面的視訊復(fù)雜度,B代表一預(yù)定目標(biāo)比特率。
6.如權(quán)利要求5所述的方法,其中該第一視訊復(fù)雜度XA經(jīng)由下列公式所決定XA=SA*QA*FNA2,]]>SA代表一第一位長(zhǎng)度總合,該第一位長(zhǎng)度總合是關(guān)于該第i個(gè)子序列中的該第j個(gè)畫(huà)面之前的所有畫(huà)面的位長(zhǎng)度總合,QA代表一第一量化標(biāo)度總合,該第一量化標(biāo)度總合是關(guān)于該第i個(gè)子序列中的該第j個(gè)畫(huà)面之前的所有畫(huà)面的量化標(biāo)度總合,NA代表一第一畫(huà)面數(shù)量,該第一畫(huà)面數(shù)量是關(guān)于該第i個(gè)子序列中的該第j個(gè)畫(huà)面之前的所有畫(huà)面的畫(huà)面數(shù)量;F代表一預(yù)定畫(huà)面率。
7.如權(quán)利要求6所述的方法,其中該第二視訊復(fù)雜度XL經(jīng)由下列公式所決定XL=SL*QL*FNL2,]]>SL代表一第二位長(zhǎng)度總合,該第二位長(zhǎng)度總合是關(guān)于該第i個(gè)子序列中,第1至第(j-1)個(gè)畫(huà)面的位長(zhǎng)度總合,QL代表一第二量化標(biāo)度總合,該第二量化標(biāo)度總合是關(guān)于該第i個(gè)子序列中,第1至第(j-1)個(gè)畫(huà)面的量化標(biāo)度總合,NL代表一第二畫(huà)面數(shù)量,該第二畫(huà)面數(shù)量是關(guān)于該第i個(gè)子序列中,第1至第(j-1)個(gè)畫(huà)面的畫(huà)面數(shù)量。
8.如權(quán)利要求7所述的方法,其中該差異量化標(biāo)度Qd經(jīng)由下列公式所決定Qd=K*(Sbufbuf_size-0.5);]]>其中Sbuf=MAX(Sbuf+Sj-BF,0),]]>Sbuf代表目前所存儲(chǔ)的位數(shù),Sj代表目前該第j個(gè)畫(huà)面所產(chǎn)生的位數(shù),buf_size代表一預(yù)定的緩沖存儲(chǔ)器大小,K代表一第一預(yù)定模型參數(shù),用以決定該差異量化標(biāo)度的標(biāo)度。
9.如權(quán)利要求8所述的方法,其中該初始量化標(biāo)度Q經(jīng)由下列公式所決定Q=MAX(QMIN,MIN(QMAX,QP+Qd)),QMAX代表該初始量化標(biāo)度的一預(yù)定最大值,QMIN代表該初始量化標(biāo)度的一預(yù)定最小值。
10.如權(quán)利要求1所述的方法,其中于每一該多個(gè)畫(huà)面中,預(yù)先定義一定數(shù)量的列與行,每一列包含多個(gè)宏區(qū)塊,步驟(c)進(jìn)一步包含下列步驟(c1)于目前該第j個(gè)畫(huà)面中,決定一檢測(cè)區(qū)域;(c2)于該檢測(cè)區(qū)域一目前列的最后一個(gè)宏區(qū)塊處,判斷該檢測(cè)區(qū)域中的該目前列及所有先前列的內(nèi)部編碼宏區(qū)塊數(shù)量總合是否大于一臨界值;以及(c3)若步驟(c2)的結(jié)果為肯定,則判斷目前該第j個(gè)畫(huà)面為一變化場(chǎng)景,若步驟(c2)中的結(jié)果為否定,則繼續(xù)對(duì)目前該第j個(gè)畫(huà)面進(jìn)行步驟(c2)的判斷,直到檢測(cè)區(qū)域中的所有列均檢測(cè)完畢。
11.如權(quán)利要求10所述的方法,其中該臨界值由下列公式所決定THR_SC=NmbvDA*Nmbh*SC_RATIO+1]]>Nmbv代表目前該第j個(gè)畫(huà)面中,每一行所包含宏區(qū)塊的數(shù)量,Nmbh代表目前該第j個(gè)畫(huà)面中,每一列所包含宏區(qū)塊的數(shù)量,DA為一自然數(shù),用以決定該檢測(cè)區(qū)域,SC_RATIO為一場(chǎng)景變化比例。
12.如權(quán)利要求11所述的方法,其中該調(diào)整量化標(biāo)度 由下列公式所決定Q^=Q*(SintraL*NmbNintra*FB),]]>Nmb代表目前該第j個(gè)畫(huà)面中,所有宏區(qū)塊的數(shù)量,Nint ra代表目前該第j個(gè)畫(huà)面于第一次編碼中,內(nèi)部編碼宏區(qū)塊的數(shù)量,Sint ra代表目前第j個(gè)畫(huà)面于檢測(cè)區(qū)域中,內(nèi)部編碼宏區(qū)塊的位數(shù),L代表一第二預(yù)定模型參數(shù)。
13.一種視訊編碼系統(tǒng),一視訊序列包含N個(gè)子序列,每一個(gè)子序列均包含多個(gè)畫(huà)面,該視訊編碼系統(tǒng)用以對(duì)第i個(gè)子序列中的第j個(gè)畫(huà)面進(jìn)行編碼,在該第i個(gè)子序列中的該第j個(gè)畫(huà)面之前的畫(huà)面均已完成編碼,N為一自然數(shù),i為1至N范圍中的一整數(shù)指標(biāo),j為2至該第i個(gè)子序列的畫(huà)面數(shù)目范圍中的一整數(shù)指針,該系統(tǒng)包含一量化標(biāo)度產(chǎn)生器,該量化標(biāo)度產(chǎn)生器基于所述已完成編碼的畫(huà)面,用以產(chǎn)生一初始量化標(biāo)度;一編碼器,該編碼器耦合于該量化標(biāo)度產(chǎn)生器,并且根據(jù)該初始量化標(biāo)度,用以對(duì)該第i個(gè)子序列中的該第j個(gè)畫(huà)面以一第一編碼模式進(jìn)行編碼;以及一場(chǎng)景變化檢測(cè)器,該場(chǎng)景變化檢測(cè)器耦合于該編碼器,并且用以判斷該第i個(gè)子序列中的該第j個(gè)畫(huà)面于場(chǎng)景上相較于該第i個(gè)子序列中的第(j-1)個(gè)畫(huà)面是否是一變化場(chǎng)景;其中,若該第i個(gè)子序列中的該第j個(gè)畫(huà)面是一變化場(chǎng)景,則該量化標(biāo)度產(chǎn)生器基于該初始量化標(biāo)度產(chǎn)生一調(diào)整量化標(biāo)度,并且該編碼器根據(jù)該調(diào)整量化標(biāo)度,對(duì)該第i個(gè)子序列中的該第j個(gè)畫(huà)面以一第二編碼模式重新進(jìn)行編碼。
14.如權(quán)利要求13所述的系統(tǒng),其中該第一編碼模式為一中間編碼模式。
15.如權(quán)利要求13所述的系統(tǒng),其中該第二編碼模式為一內(nèi)部編碼模式。
16.如權(quán)利要求13所述的系統(tǒng),其中該初始量化標(biāo)度是由一預(yù)測(cè)量化標(biāo)度以及一差異量化標(biāo)度所決定。
17.如權(quán)利要求16所述的系統(tǒng),其中該預(yù)測(cè)量化標(biāo)度QP經(jīng)由下列公式所決定QP=MIN(XA,XL)B+1,]]>XA代表一第一視訊復(fù)雜度,該第一視訊復(fù)雜度是關(guān)于該第i個(gè)子序列中的該第j個(gè)畫(huà)面之前的所有畫(huà)面的視訊復(fù)雜度;XL代表一第二視訊復(fù)雜度,該第二視訊復(fù)雜度是關(guān)于該第i個(gè)子序列中,第1至第(j-1)個(gè)畫(huà)面的視訊復(fù)雜度;B代表一預(yù)定目標(biāo)比特率。
18.如權(quán)利要求17所述的系統(tǒng),其中該第一視訊復(fù)雜度XA經(jīng)由下列公式所決定XA=SA*QA*FNA2,]]>SA代表一第一位長(zhǎng)度總合,該第一位長(zhǎng)度總合是關(guān)于該第i個(gè)子序列中的該第j個(gè)畫(huà)面之前的所有畫(huà)面的位長(zhǎng)度總合;QA代表一第一量化標(biāo)度總合,該第一量化標(biāo)度總合是關(guān)于該第i個(gè)子序列中的該第j個(gè)畫(huà)面之前的所有畫(huà)面的量化標(biāo)度總合;NA代表一第一畫(huà)面數(shù)量,該第一畫(huà)面數(shù)量是關(guān)于該第i個(gè)子序列中的該第j個(gè)畫(huà)面之前的所有畫(huà)面的畫(huà)面數(shù)量;F代表一預(yù)定畫(huà)面率。
19.如權(quán)利要求18所述的系統(tǒng),其中該第二視訊復(fù)雜度XL經(jīng)由下列公式所決定XL=SL*QL*FNL2,]]>SL代表一第二位長(zhǎng)度總合,該第二位長(zhǎng)度總合是關(guān)于該第i個(gè)子序列中,第1至第(j-1)個(gè)畫(huà)面的位長(zhǎng)度總合;QL代表一第二量化標(biāo)度總合,該第二量化標(biāo)度總合是關(guān)于該第i個(gè)子序列中,第1至第(j-1)個(gè)畫(huà)面的量化標(biāo)度總合;NL代表一第二畫(huà)面數(shù)量,該第二畫(huà)面數(shù)量是關(guān)于該第i個(gè)子序列中,第1至第(j-1)個(gè)畫(huà)面的畫(huà)面數(shù)量。
20.如權(quán)利要求19所述的系統(tǒng),其中該差異量化標(biāo)度Qd經(jīng)由下列公式所決定Qd=K*(Sbufbuf_size-0.5);]]>其中Sbuf=MAX(Sbuf+Sj-BF,0),]]>Sbuf代表目前所存儲(chǔ)的位數(shù),Sj代表目前該第j個(gè)畫(huà)面所產(chǎn)生的位數(shù),buf_size代表一預(yù)定的緩沖存儲(chǔ)器大小,K代表一第一預(yù)定模型參數(shù),用以決定該差異量化標(biāo)度的標(biāo)度。
21.如權(quán)利要求20所述的方法,其中該初始量化標(biāo)度Q經(jīng)由下列公式所決定Q=MAX(QMIN,MIN(QMAX,QP+Qd)),QMAX代表該初始量化標(biāo)度的一預(yù)定最大值,QMIN代表該初始量化標(biāo)度的一預(yù)定最小值。
22.如權(quán)利要求13所述的系統(tǒng),其中于每一該多個(gè)畫(huà)面中,預(yù)先定義一定數(shù)量的列與行,每一列包含多個(gè)宏區(qū)塊,該場(chǎng)景變化檢測(cè)器進(jìn)一步包含一決定模塊,該決定模塊用以于目前該第j個(gè)畫(huà)面中,決定一檢測(cè)區(qū)域;以及一判斷模塊,該判斷模塊用以于該檢測(cè)區(qū)域一目前列的最后一個(gè)宏區(qū)塊處,判斷該檢測(cè)區(qū)域中的該目前列及所有先前列的內(nèi)部編碼宏區(qū)塊數(shù)量總合是否大于一臨界值;其中,若該檢測(cè)區(qū)域中的該目前列及所有先前列的內(nèi)部編碼宏區(qū)塊數(shù)量總合大于該臨界值,則該判斷模塊判斷目前該第j個(gè)畫(huà)面為一變化場(chǎng)景,反之,則該判斷模塊繼續(xù)對(duì)目前該第j個(gè)畫(huà)面進(jìn)行判斷,直到檢測(cè)區(qū)域中的所有列均檢測(cè)完畢。
23.如權(quán)利要求22所述的系統(tǒng),其中該臨界值由下列公式所決定THR_SC=NmbvDA*Nmbh*SC_RATIO+1,]]>Nmbv代表目前該第j個(gè)畫(huà)面中,每一行所包含宏區(qū)塊的數(shù)量,Nmbh代表目前該第j個(gè)畫(huà)面中,每一列所包含宏區(qū)塊的數(shù)量,DA為一自然數(shù),用以決定該檢測(cè)區(qū)域,SC_RATIO為一場(chǎng)景變化比例。
24.如權(quán)利要求23所述的系統(tǒng),其中該調(diào)整量化標(biāo)度 由下列公式所決定Q^=Q*(SintraL*NmbNintra*FB),]]>Nmb代表目前該第j個(gè)畫(huà)面中,所有宏區(qū)塊的數(shù)量,Nint ra代表目前該第j個(gè)畫(huà)面于第一次編碼中,內(nèi)部編碼宏區(qū)塊的數(shù)量,Sint ra代表目前第j個(gè)畫(huà)面于檢測(cè)區(qū)域中,內(nèi)部編碼宏區(qū)塊的位數(shù),L代表一第二預(yù)定模型參數(shù)。
全文摘要
本發(fā)明提供一種視訊編碼方法及其系統(tǒng),用以對(duì)一視訊序列進(jìn)行編碼。視訊序列包含N個(gè)子序列,且每一個(gè)子序列均包含多個(gè)畫(huà)面。當(dāng)本發(fā)明對(duì)視訊序列中,第i個(gè)子序列的第j個(gè)畫(huà)面進(jìn)行編碼時(shí),在該第j個(gè)畫(huà)面之前的畫(huà)面均已完成編碼?;谒鲆淹瓿删幋a的畫(huà)面,產(chǎn)生一初始量化標(biāo)度。根據(jù)初始量化標(biāo)度,對(duì)該第j個(gè)畫(huà)面以中間編碼模式進(jìn)行編碼。判斷第j個(gè)畫(huà)面于場(chǎng)景上相較于第(j-1)個(gè)畫(huà)面是否是一變化場(chǎng)景。若上述的結(jié)果為肯定,則基于初始量化標(biāo)度產(chǎn)生一調(diào)整的量化標(biāo)度,并且根據(jù)調(diào)整后的量化標(biāo)度,對(duì)第j個(gè)畫(huà)面以內(nèi)部編碼模式重新進(jìn)行編碼。
文檔編號(hào)H04N7/26GK1801935SQ20051000365
公開(kāi)日2006年7月12日 申請(qǐng)日期2005年1月7日 優(yōu)先權(quán)日2005年1月7日
發(fā)明者張瀚仁, 趙維民 申請(qǐng)人:廣達(dá)電腦股份有限公司