專利名稱:圖像編碼設(shè)備、畫面編碼方法和圖像編輯設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種能夠編輯、解碼和再編碼從非壓縮視頻數(shù)據(jù)編碼的碼流的圖像編碼設(shè)備、圖像編碼方法和圖像編輯設(shè)備。
背景技術(shù):
隨著數(shù)字技術(shù)近來的發(fā)展,數(shù)字聲音/圖像記錄和回放裝置比如HDD(硬盤驅(qū)動(dòng)器)、DVD(數(shù)字通用光盤)和DVD播放器已經(jīng)投入到實(shí)際應(yīng)用。這些數(shù)字系統(tǒng)用MPEG(運(yùn)動(dòng)圖像專家組)標(biāo)準(zhǔn)將圖像數(shù)據(jù)壓縮為流(stream)。
在MPEG-2(ISO/IEC13818-2)標(biāo)準(zhǔn)中,碼流(coded stream)由三種畫面的組合形成內(nèi)編碼畫面(I-畫面);預(yù)測(cè)編碼畫面(P-畫面),這是從參考幀使用單向預(yù)測(cè)來編碼的畫面;以及雙向預(yù)測(cè)編碼畫面(B-畫面),這是從參考幀使用雙向預(yù)測(cè)來編碼的畫面。
MPEG-2標(biāo)準(zhǔn)的視頻流以GOP(畫面組)為單位來編碼。一個(gè)GOP由一系列畫面組成,通常是15個(gè),典型地從I-畫面開始,其后跟隨P-畫面和B-畫面序列。
I-畫面通過畫面內(nèi)編碼(intra-picture encoding)來編碼而不使用根據(jù)前一畫面的預(yù)測(cè)。I-畫面是不參考另一畫面的畫面內(nèi)編碼所產(chǎn)生的結(jié)果,并且包含解碼必需的所有信息。P-畫面通過參考過去的I-畫面或P-畫面的畫面間預(yù)測(cè)來編碼。因此它們需要在流序列中相關(guān)P-畫面之前的先前解碼的I-畫面或P-畫面的信息。B-畫面通過同時(shí)參考過去和將來的I-畫面或P-畫面的雙向畫面間預(yù)測(cè)來編碼。因此B-畫面的解碼需要在流序列中相關(guān)B-畫面之前的先前解碼的兩個(gè)I-或P-畫面的信息。
如果存在B-畫面,編碼畫面序列和顯示畫面序列并不對(duì)應(yīng)。因?yàn)锽-畫面通過參考在回放序列中比相關(guān)畫面更晚顯示的畫面來解碼,參考I-或P-畫面在該編碼序列中被置于該B-畫面之前。當(dāng)編輯通過MPEG-2編碼產(chǎn)生的視頻流時(shí),因?yàn)榫幋a成P-畫面和B-畫面的畫面的參考畫面被編輯所改變,所以不能提取所需畫面的數(shù)據(jù)并且簡(jiǎn)單地連接它們。
通過MPEG標(biāo)準(zhǔn)編碼的運(yùn)動(dòng)畫面可簡(jiǎn)單地被編輯進(jìn)GOP單元。然而,在GOP的某個(gè)部分存在場(chǎng)景改變時(shí),就不能在該點(diǎn)進(jìn)行編輯。一種用于“粘合”GOP某個(gè)部分中的一個(gè)編輯點(diǎn)和GOP的其它部分中的一個(gè)編輯點(diǎn)的方法在公開號(hào)為No.2002-300525的日本未審專利申請(qǐng)中公開。
在由Ichikawa等人教導(dǎo)的編輯方法中,分別通過幀間預(yù)測(cè)來編碼的第一視頻流的部分或全部以及第二視頻流的部分或全部,被“粘合”來產(chǎn)生可被連續(xù)回放的視頻流。在這個(gè)過程中,從第一視頻流中提取由一直到在前面緊挨著通過幀內(nèi)預(yù)測(cè)或單向幀間預(yù)測(cè)來編碼的畫面的畫面所組成的第一部分視頻流。此外,從第二視頻流中提取由通過幀內(nèi)預(yù)測(cè)或單向幀間預(yù)測(cè)來編碼的畫面之后的畫面組成的第二部分視頻流。然后,判定在前面緊挨著從第二視頻流中提取的第二部分流的被顯示的畫面是否是I-畫面。如果相關(guān)畫面是I-畫面,那么將其確定為第一I-畫面。如果相關(guān)畫面不是I-畫面,那么通過單向幀間預(yù)測(cè)編碼的畫面從前面緊挨著該相關(guān)畫面的I-畫面開始一直到該相關(guān)畫面被依次解碼,從而獲得相關(guān)畫面的解碼圖像。在此之后,解碼的相關(guān)畫面通過幀內(nèi)編碼過程被再編碼,使得再編碼的I-畫面被插入到從第一視頻流提取的第一部分流和從第二視頻流提取的第二部分流之間,因此,盡管在GOP的某個(gè)部分存在編輯點(diǎn)也可進(jìn)行編輯。
然而,在這種包括編碼畫面的流的編輯當(dāng)中,雖然可能通過除去部分流來減少整個(gè)的代碼長(zhǎng)度,但是也有可能改變編碼的比特率,這樣造成在編輯之后很難調(diào)整代碼長(zhǎng)度。
例如,當(dāng)非壓縮數(shù)字視頻數(shù)據(jù)通過MPEG標(biāo)準(zhǔn)等被壓縮-編碼到GOP單元,其每個(gè)都由I-畫面、B-畫面和P-畫面組成,并且記錄在記錄媒體比如磁-光盤(MO盤)上時(shí),就必須使壓縮編碼之后的壓縮視頻數(shù)據(jù)的數(shù)據(jù)總量(比特總量)低于記錄媒體的記錄容量或通信線路的傳輸容量,從而保持?jǐn)U展解碼視頻的高質(zhì)量。
為了達(dá)到這個(gè)目的,可采用對(duì)運(yùn)動(dòng)畫面使用預(yù)分析的編碼方法。該使用預(yù)分析的編碼方法在第一遍(pass)中首先在非壓縮視頻數(shù)據(jù)上執(zhí)行初步壓縮-編碼并且估計(jì)壓縮-編碼后的數(shù)據(jù)的總量。在第二遍中,該方法基于所估計(jì)的數(shù)據(jù)總量調(diào)整數(shù)據(jù)壓縮率并且執(zhí)行壓縮-編碼使得壓縮-編碼后的數(shù)據(jù)的總量低于記錄媒體的記錄容量。這種壓縮-編碼方法在此被稱為兩遍編碼(2-pass encoding)。
在兩遍編碼中,必須考慮由于代碼長(zhǎng)度的分配而發(fā)生的在緩沖區(qū)占有率上的改變;否則,緩沖區(qū)會(huì)因?yàn)樵趯?shí)際編碼過程中的上溢、下溢等而崩潰。即使在實(shí)際編碼過程中執(zhí)行用于防止緩沖區(qū)崩潰的程序,當(dāng)編碼圖像時(shí)產(chǎn)生的代碼長(zhǎng)度超出目標(biāo)代碼長(zhǎng)度的范圍之外,這也阻礙了對(duì)實(shí)際代碼長(zhǎng)度的精確控制。在這種情況下,不同于待分配的假定代碼長(zhǎng)度的代碼長(zhǎng)度實(shí)際上被分配給圖像,因此在編碼中造成了圖像質(zhì)量的惡化。
為了克服這個(gè)缺陷,使用預(yù)分析來改善編碼圖像的質(zhì)量的運(yùn)動(dòng)圖像編碼設(shè)備在公開號(hào)為No.2002-232882(Yokoyama)的日本未審專利申請(qǐng)中公開。由Yokoyama教導(dǎo)的運(yùn)動(dòng)圖像編碼設(shè)備在編碼輸入圖像之前在圖像上執(zhí)行分析來計(jì)算每個(gè)圖像的復(fù)雜度。然后其根據(jù)計(jì)算的復(fù)雜度在指定間隔中對(duì)圖像每次分配一個(gè)代碼長(zhǎng)度并且估計(jì)代碼長(zhǎng)度在緩沖區(qū)中的占有率變化。這基于給定比特率和緩沖區(qū)大小防止了緩沖區(qū)崩潰來實(shí)現(xiàn)適當(dāng)?shù)拇a分配,從而改善編碼圖像的質(zhì)量。
然而,在Yokoyama描述的兩遍編碼中,如果在第一遍編碼的流以畫面為單位來編輯,在解碼編輯的流并且對(duì)其再編碼之后,編輯點(diǎn)之后的畫面位相(picture phase)不能對(duì)應(yīng)于第一遍中碼流的畫面位相。在這種情況下,原來被編碼為B-畫面的畫面會(huì)被再編碼為I-畫面,這造成了編輯之后的圖像惡化。此外,因?yàn)榫庉嬃鞯漠嬅嫖幌嗖粚?duì)應(yīng)于在第一遍中被預(yù)分析的碼流的畫面位相,所以不能參考該編輯點(diǎn)之后的畫面復(fù)雜度并且因此不能在編輯流上執(zhí)行兩遍編碼。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個(gè)方面,提供了一種圖像編碼設(shè)備,包括編輯器,用于建立編輯指令以使得按一個(gè)或多個(gè)編輯點(diǎn)來編輯從非壓縮視頻數(shù)據(jù)編碼的碼流;解碼處理器,用于根據(jù)所述編輯指令來解碼所述碼流來建立編輯流;以及編碼處理器,用于再編碼經(jīng)編輯的流來建立編輯碼流。編碼處理器通過對(duì)齊畫面位相使得在碼流和編輯碼流之間在同一幀中畫面類型相同來建立編輯碼流。
當(dāng)編輯從非壓縮視頻數(shù)據(jù)編碼的碼流并且對(duì)其再編碼時(shí),本發(fā)明使得可進(jìn)行畫面位相的對(duì)齊,通過這種方式使得在原始碼流中的同一幀被編碼到同一個(gè)畫面中,從而在例如不將原始B-畫面編碼成I-畫面的情況下防止了圖像質(zhì)量的惡化。
根據(jù)本發(fā)明的另一方面,提供了一種圖像編輯設(shè)備,包括圖像編碼處理器,用于編輯從非壓縮視頻數(shù)據(jù)編碼的碼流;以及兩個(gè)或多個(gè)存儲(chǔ)裝置,用于存儲(chǔ)碼流。該圖像編碼處理器包括編輯器,用于建立編輯指令以使得按一個(gè)或多個(gè)編輯點(diǎn)來編輯存儲(chǔ)在一個(gè)存儲(chǔ)裝置中的碼流;解碼處理器,用于根據(jù)編輯指令解碼碼流來建立編輯流;以及編碼處理器,用于再編碼編輯流來建立編輯碼流。編碼處理器通過對(duì)齊畫面位相使得在碼流和編輯碼流之間同一幀的畫面類型相同來建立編輯碼流,并且另一個(gè)存儲(chǔ)裝置存儲(chǔ)該編輯碼流。
本發(fā)明對(duì)齊畫面位相,使得畫面與在原始碼流中相應(yīng)的幀相同,因此對(duì)存儲(chǔ)在一個(gè)存儲(chǔ)裝置中的原始碼流經(jīng)編輯的數(shù)據(jù)進(jìn)行再編碼,從而在圖像質(zhì)量不惡化的情況下將數(shù)據(jù)轉(zhuǎn)錄(dub)到另一個(gè)存儲(chǔ)裝置中。此外,因?yàn)榻?jīng)編輯的流通過對(duì)齊畫面位相來編碼,使得相同幀被編碼成與該碼流中的相同畫面類型,如果在建立原始碼流時(shí)分析每一幀的復(fù)雜度,就有可能在編輯流上完成兩遍編碼。
根據(jù)本發(fā)明,即使在碼流中的選擇的畫面位置進(jìn)行編輯,也有可能對(duì)齊通過編輯之后編碼流以及編輯之前編碼流獲得的碼流中的畫面位相,從而在編輯之前抑制了再編碼圖像質(zhì)量的惡化。此外根據(jù)本發(fā)明,有可能甚至在編輯碼流之后,產(chǎn)生與在編輯之前的碼流中相同的畫面位相的流;因此,如果在碼流上進(jìn)行預(yù)分析,那么甚至在編輯之后也能執(zhí)行兩遍編碼。
本發(fā)明的以上目的、優(yōu)點(diǎn)和特征將在結(jié)合附圖的以下描述中變得更加清楚。
圖1是示出根據(jù)本發(fā)明實(shí)施例的圖像編碼設(shè)備的框圖;圖2是示出根據(jù)本發(fā)明實(shí)施例的圖像編碼設(shè)備的編碼處理器的細(xì)節(jié)的框圖;圖3是示出根據(jù)本發(fā)明實(shí)施例的圖像編碼設(shè)備的解碼處理器的細(xì)節(jié)的框圖;圖4A是示出原始流的視圖;圖4B是示出從原始流中提取出來的包含編輯點(diǎn)的GOP的視圖;圖4C是示出編輯之后的播放列表一部分的視圖;圖5是描述根據(jù)本發(fā)明實(shí)施例在圖像編碼設(shè)備中建立編輯流的方法的視圖,其中包含在再編碼畫面組中的畫面總數(shù)量(n+(N-m+1))<N;圖6是描述建立編輯流的方法的類似視圖,其中(n+(N-m+1))>N;圖7是描述建立編輯流的方法的類似視圖,其中(n+(N-m+1))=2N;圖8是描述建立編輯流的方法的類似視圖,其中(n+(N-m+1))=N;圖9是描述建立編輯流的方法的類似視圖,其中編輯點(diǎn)B存在于開頭GOP中;圖10是描述建立編輯流的方法的類似視圖,其中編輯點(diǎn)A存在于結(jié)尾GOP中;圖11A是示出在根據(jù)本發(fā)明實(shí)施例的圖像編碼設(shè)備中第二遍的編碼過程的流程圖;圖11B也是示出在根據(jù)本發(fā)明實(shí)施例的圖像編碼設(shè)備中第二遍的編碼過程的流程圖;圖12A是示出在編輯流中使用復(fù)雜度對(duì)目標(biāo)代碼長(zhǎng)度的計(jì)算過程的流程圖;圖12B也是示出在編輯流中使用復(fù)雜度對(duì)目標(biāo)代碼長(zhǎng)度的計(jì)算過程的流程圖;圖13是示出對(duì)插入到編輯流中用于對(duì)齊畫面位相的幀的復(fù)雜度的計(jì)算過程的流程圖。
具體實(shí)施例方式
本發(fā)明將參考示意性的實(shí)施例進(jìn)行描述。本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到使用本發(fā)明的教導(dǎo)可完成很多可替換的實(shí)施例,并且本發(fā)明不限于僅用作說明目的的實(shí)施例。
本發(fā)明的具體實(shí)施例在此參考附圖進(jìn)行描述。在下述的實(shí)施例中,本發(fā)明適用于具有使用兩遍編碼的編輯功能的運(yùn)動(dòng)圖像編碼設(shè)備。
根據(jù)本實(shí)施例的圖像編碼設(shè)備提供兩遍編碼。兩遍編碼過程首先在第一遍中通過初步壓縮-編碼非壓縮音頻/視頻數(shù)據(jù)進(jìn)行壓縮-編碼之后估計(jì)數(shù)據(jù)量。然后,在第二遍中,該過程根據(jù)所估計(jì)的數(shù)據(jù)量調(diào)整數(shù)據(jù)壓縮比并且實(shí)現(xiàn)壓縮-編碼使得在壓縮-編碼之后的數(shù)據(jù)量不超過記錄媒體的記錄容量。因此,在第一遍中,當(dāng)在MPEG-編碼標(biāo)題之后記錄非壓縮視頻數(shù)據(jù)的該標(biāo)題等時(shí),例如分析每一幀來獲得復(fù)雜度(預(yù)分析),并且復(fù)雜度同MPEG-編碼標(biāo)題一起被記錄。在第二遍中,利用根據(jù)復(fù)雜度分配的代碼長(zhǎng)度來實(shí)現(xiàn)編碼以使得比特率是預(yù)定值。使用復(fù)雜度來分配代碼長(zhǎng)度使得可利用限定的比特率來得到圖像質(zhì)量的改善,因此防止了在緩沖區(qū)中發(fā)生上溢和下溢。
該實(shí)施例的圖像編碼設(shè)備能夠在建立通過以畫面為單位來編輯記錄的MPEG-編碼標(biāo)題(節(jié)目)產(chǎn)生的播放列表或編輯標(biāo)題的過程中執(zhí)行上述兩遍編碼。
通常對(duì)于預(yù)分析的碼流來說,要對(duì)每一幀計(jì)算復(fù)雜度。每一幀被編碼到預(yù)定畫面類型,具有對(duì)應(yīng)于每種畫面類型的復(fù)雜度。因此,如果碼流在GOP的某個(gè)點(diǎn)被編輯并且解碼,當(dāng)再編碼編輯標(biāo)題時(shí),在編輯之前對(duì)應(yīng)于該碼流的幀沒有被編碼成相同的畫面類型。例如,原來編碼為B-畫面的幀會(huì)被不希望地編碼成I-畫面,這造成了在編輯碼流中地畫面質(zhì)量的惡化。
此外,如果在編輯之后的碼流中,相應(yīng)的幀或者與在編輯之前的預(yù)分析碼流中相同的圖像被編碼成不同類型的畫面,那么通過使用預(yù)分析的結(jié)果設(shè)置優(yōu)化目標(biāo)編碼長(zhǎng)度來編碼數(shù)據(jù)的兩遍編碼將不能完成。另一方面,在該實(shí)施例的圖像編碼設(shè)備中,預(yù)定畫面(在此稱為插入圖像)被插入到編輯碼流中來對(duì)齊畫面位相(picture phase)以使得相應(yīng)的幀被編碼成與編輯之前的預(yù)分析碼流中相同類型的畫面。特別,對(duì)齊畫面位相是指,在解碼形成碼流的組成畫面(componentpicture)并且對(duì)其再編碼的過程中,再編碼提供與該組成畫面相同的畫面類型。如果畫面位相被對(duì)齊,有可能在GOP的某部分中提供編輯點(diǎn),在再編碼編輯之后的預(yù)分析碼流的過程中,參考編輯之前的碼流的預(yù)分析結(jié)果,從而實(shí)現(xiàn)兩遍編碼。
在下面,首先給出根據(jù)該實(shí)施例的圖像編碼設(shè)備的結(jié)構(gòu),然后給出編輯之后的MPEG流(在此稱為編輯碼流ST1)的畫面位相與編輯之前的MPEG流(在此稱為原始流ST0)的畫面位相對(duì)齊的方法,并且最后給出使用原始流上的預(yù)分析結(jié)果在編輯流上完成兩遍編碼的方法。
圖1是示出根據(jù)該實(shí)施例的圖像編碼設(shè)備的框圖。圖像編碼設(shè)備1包括編碼處理器2,編輯器3,解碼處理器4,顯示器5,以及存儲(chǔ)接口(I/F)6和7。顯示器5可以是與圖像編碼設(shè)備1分離的單元。盡管在圖1中示意了兩個(gè)存儲(chǔ)I/F,存儲(chǔ)I/F的數(shù)量可以多于兩個(gè)。存儲(chǔ)I/F6可連接到存儲(chǔ)裝置30比如HDD,并且存儲(chǔ)I/F 7可連接到存儲(chǔ)裝置40比如DVD記錄器。存儲(chǔ)裝置30和40可包括在圖像編碼設(shè)備1中。
在該實(shí)施例的圖像編碼設(shè)備1中,編碼處理器按照MPEG標(biāo)準(zhǔn)編碼輸入的非壓縮視頻數(shù)據(jù)并且將MPEG編碼數(shù)據(jù)存儲(chǔ)到存儲(chǔ)裝置30、40,并且編輯器3編輯存儲(chǔ)在存儲(chǔ)裝置30、40上的碼流。然后,解碼處理器4解碼碼流,并且顯示器5顯示(回放)結(jié)果。如上所述,圖像編碼設(shè)備1能夠編輯通過在編碼處理器2中編碼視頻數(shù)據(jù)而建立的碼流(在此稱為原始流),從而通過這種對(duì)齊原始流ST0和編輯碼流ST1的畫面位相的方式建立編輯碼流ST1。例如,在原始流ST0中被編碼成I-畫面的幀可在編輯流中被再次再編碼成I畫面。
因此,如果當(dāng)建立原始流ST0時(shí)分析復(fù)雜度并且與原始流ST0一起存儲(chǔ),那么有可能當(dāng)建立編輯流ST1時(shí)參考該復(fù)雜度。這使得可以根據(jù)復(fù)雜度來分配優(yōu)化代碼長(zhǎng)度,并且因此使得可以實(shí)現(xiàn)利用建立編輯碼流ST1時(shí)的用可控代碼長(zhǎng)度來進(jìn)行編碼的兩遍編碼。這甚至當(dāng)比特率比當(dāng)編碼原始流時(shí)使用的比率更小時(shí)還能抑制圖像質(zhì)量的惡化,從而允許在具有有限存儲(chǔ)容量的媒體比如DVD上記錄。
以下將詳細(xì)描述每個(gè)模塊。圖2是示出編碼處理器2的細(xì)節(jié)的框圖。如圖2所示,編碼處理器2包括編碼器21,編碼緩沖區(qū)22,分析器23,代碼長(zhǎng)度分配器24,代碼長(zhǎng)度控制器25,以及暫停/恢復(fù)控制器26。編碼器21接收從外部提供的非壓縮視頻數(shù)據(jù)或從解碼處理器4提供的解碼數(shù)據(jù)并且按MPEG編碼該數(shù)據(jù)。編碼緩沖區(qū)22臨時(shí)存儲(chǔ)編碼數(shù)據(jù)。分析器23分析信息用于編碼和計(jì)算復(fù)雜度。代碼長(zhǎng)度分配器24基于復(fù)雜度為每個(gè)畫面分配目標(biāo)代碼長(zhǎng)度,因而實(shí)現(xiàn)兩遍編碼。代碼長(zhǎng)度控制器25控制編碼器21來利用由控制器(未示出)指示的代碼長(zhǎng)度或由代碼長(zhǎng)度分配器24分配的代碼長(zhǎng)度執(zhí)行編碼。暫停/恢復(fù)控制器26控制在兩遍編碼的過程中編碼程序暫停和恢復(fù)的計(jì)時(shí),使得在編輯之前和之后的畫面位相彼此對(duì)應(yīng)。
當(dāng)記錄標(biāo)題時(shí),編碼處理器2典型地例如用相對(duì)較高的比特率來MPEG編碼輸入的非壓縮視頻數(shù)據(jù),并且將碼流(原始流)通過存儲(chǔ)I/F 6存儲(chǔ)到具有大存儲(chǔ)容量的存儲(chǔ)裝置30比如HDD。在這個(gè)過程中,分析器23根據(jù)當(dāng)將視頻數(shù)據(jù)的每一幀編碼成預(yù)定畫面時(shí)產(chǎn)生的代碼長(zhǎng)度和量化比例來分析復(fù)雜度X。復(fù)雜度X指示當(dāng)將每一幀編碼成預(yù)定畫面類型的畫面中時(shí)的復(fù)雜度,其與每一幀相關(guān)聯(lián)。復(fù)雜度X與原始流一起存儲(chǔ)在存儲(chǔ)裝置30中。復(fù)雜度X可存儲(chǔ)在位于該設(shè)備中的存儲(chǔ)器(未示出)中而不是存儲(chǔ)裝置30中。
分析器23包括特征量觀察器51和復(fù)雜度計(jì)算器52。特征量觀察器51觀察產(chǎn)生的代碼長(zhǎng)度和圖像的平均量化比例,其都是特征量。例如,特征量觀察器51觀察當(dāng)編碼器21基于給定比特率R在代碼長(zhǎng)度控制器25的控制下編碼組成非壓縮視頻數(shù)據(jù)的標(biāo)題時(shí)發(fā)生的每一幀f產(chǎn)生的代碼長(zhǎng)度S[f]和平均量化比例Q[f]。
復(fù)雜度計(jì)算器52根據(jù)由特征量觀察器51觀察到的產(chǎn)生的代碼長(zhǎng)度和平均量化比例來計(jì)算復(fù)雜度。例如,其中產(chǎn)生的代碼長(zhǎng)度是S[f],平均量化比例是Q[f],以及復(fù)雜度是X[f],則復(fù)雜度X[f]可如下計(jì)算X[f]=S[f]*Q[f]一種特定的用于獲得兩遍編碼的目標(biāo)代碼長(zhǎng)度的復(fù)雜度X的計(jì)算方法例如在Yokoyama中有描述。通常,代碼長(zhǎng)度計(jì)算器24根據(jù)以上計(jì)算的復(fù)雜度來計(jì)算目標(biāo)代碼長(zhǎng)度,這在兩遍編碼期間被用作目標(biāo)值。
如以下所述,插入圖像根據(jù)需要被插入到編輯流中的編輯點(diǎn)之前和/或之后的位置,從而根據(jù)原始流的畫面位相對(duì)齊編輯流的畫面位相。當(dāng)編碼該編輯流來建立編輯碼流ST1時(shí),該實(shí)施例中的復(fù)雜度計(jì)算器52參考在建立原始流ST0時(shí)被分析的復(fù)雜度并且將對(duì)應(yīng)于原始流的幀的復(fù)雜度提供給代碼長(zhǎng)度分配器24。復(fù)雜度計(jì)算器52還根據(jù)原始流的復(fù)雜度計(jì)算復(fù)雜度用于編碼插入圖像來建立畫面(在此被稱為插入畫面)并且將計(jì)算的復(fù)雜度提供給代碼長(zhǎng)度分配器24。
當(dāng)根據(jù)復(fù)雜度計(jì)算器52所提供的復(fù)雜度來編碼幀以建立畫面時(shí),代碼長(zhǎng)度分配器24分配目標(biāo)代碼長(zhǎng)度。目標(biāo)代碼長(zhǎng)度可以是這樣,根據(jù)每一幀的復(fù)雜度分配可以被使用在對(duì)應(yīng)于預(yù)定GOP長(zhǎng)度的代碼長(zhǎng)度的分配間隔中的總代碼長(zhǎng)度。如果代碼長(zhǎng)度的分配間隔是L幀并且可被分配到從第f幀到第(f+L-1)幀中的幀的總的代碼長(zhǎng)度是Ra(f),那么按照與復(fù)雜度X[f]成比例分配Ra(f)的每一幀的目標(biāo)長(zhǎng)度T[f]可通過如下計(jì)算T[f]=(X[f]/Xsum)*Ra[f]其中在分配間隔中的復(fù)雜度X[f]的總和是Xsum。
在第一遍編碼中,代碼長(zhǎng)度控制器25控制編碼處理器2使用預(yù)定的或從外界指示的比特率來執(zhí)行編碼。在第二遍編碼中,代碼長(zhǎng)度控制器25根據(jù)來自代碼長(zhǎng)度分配器24的信息計(jì)算量化比例并且用計(jì)算的量化比例控制執(zhí)行編碼。同時(shí),測(cè)量實(shí)際的代碼長(zhǎng)度,并且在實(shí)際代碼長(zhǎng)度和分配代碼長(zhǎng)度之間有差異時(shí)就執(zhí)行反饋控制來將代碼長(zhǎng)度控制為近似預(yù)定比特率,從而用目標(biāo)代碼長(zhǎng)度執(zhí)行編碼。在簡(jiǎn)單的過程中,如果實(shí)際代碼長(zhǎng)度超過了目標(biāo)代碼長(zhǎng)度,量化比例被增大來抑制代碼的產(chǎn)生;如果實(shí)際代碼長(zhǎng)度低于目標(biāo)代碼長(zhǎng)度,量化比例被減小來增加代碼的產(chǎn)生。
此外,代碼長(zhǎng)度控制器25監(jiān)視編碼緩沖區(qū)22的占有率并且實(shí)現(xiàn)控制,比如在需要時(shí)調(diào)整量化比例和填充,從而作為編碼結(jié)果而產(chǎn)生的實(shí)際代碼長(zhǎng)度不會(huì)在編碼緩沖區(qū)22中造成上溢或下溢。例如,為了防止編碼緩沖區(qū)22上溢,代碼數(shù)量控制器25增大量化比例來抑制代碼的產(chǎn)生或不將那些希望被編碼來抑制實(shí)際代碼長(zhǎng)度增加的信息進(jìn)行編碼。另一方面,為了防止代碼緩沖區(qū)22下溢,代碼數(shù)量控制器25減小量化比例來增加代碼的產(chǎn)生或執(zhí)行填充來增加實(shí)際代碼長(zhǎng)度。
編碼器21根據(jù)給定參數(shù)對(duì)從外界提供的非壓縮視頻數(shù)據(jù)或從解碼處理器4發(fā)送的解碼數(shù)據(jù)進(jìn)行編碼從而產(chǎn)生壓縮數(shù)據(jù)。編碼器21還測(cè)量產(chǎn)生的代碼長(zhǎng)度并且將其通知給代碼長(zhǎng)度控制器25。另外,在第一遍編碼中,編碼器21將產(chǎn)生的代碼長(zhǎng)度和平均量化比例通知給特征量觀察器51。
編碼緩沖區(qū)22可積累由編碼器21編碼的數(shù)據(jù)并且以固定的比特率輸出數(shù)據(jù)。編碼緩沖區(qū)22可吸收每個(gè)圖像的產(chǎn)生代碼長(zhǎng)度的變化。
再次參考圖1,解碼處理器4解碼存儲(chǔ)在存儲(chǔ)裝置30、40中的MPEG流從而將其顯示在顯示器5上,并且還將碼流提供給編碼處理器2從而將其再編碼。圖3是示出解碼處理器4的細(xì)節(jié)的框圖。
解碼處理器4包括解碼器61,解碼緩沖區(qū)62,以及暫停/恢復(fù)控制器63。解碼器61解碼由編碼處理器2編碼的碼流或者存儲(chǔ)在存儲(chǔ)裝置30、40中的碼流。解碼緩沖區(qū)62臨時(shí)存儲(chǔ)解碼音頻/視頻數(shù)據(jù)。暫停/恢復(fù)控制器63控制解碼器61執(zhí)行解碼的定時(shí)。
當(dāng)執(zhí)行上述兩遍編碼時(shí),解碼處理器4解碼在第一遍中編碼的原始流ST0。如果編碼處理器2建立編輯碼流ST1,那么編輯器3根據(jù)編輯指令(播放列表)順序提供GOP到解碼處理器4,該編輯指令是由編輯器3建立的虛擬標(biāo)題,并且解碼處理器4解碼它們。這時(shí),如果編輯點(diǎn)在GOP的某個(gè)部分,那么暫停/恢復(fù)控制器63將進(jìn)行控制以重復(fù)地輸出緊挨著前面的解碼圖像,僅輸出用于編輯碼流所必需的解碼圖像,下面將祥述。通過這種方式被解碼處理器4解碼并輸出的編碼數(shù)據(jù)(編輯流)然后被編碼處理器2編碼成編輯碼流ST1。
再次參考圖1,編輯器3建立作為虛擬標(biāo)題的播放列表從而可在期望的點(diǎn)編輯存儲(chǔ)在存儲(chǔ)裝置30中的原始流。該實(shí)施例的編輯器3可控制編碼處理器2和解碼處理器4,從而兩遍編碼根據(jù)播放列表編輯的視頻。用于控制解碼處理器4和編碼處理器2的控制器可被分開設(shè)置??刂七^程的細(xì)節(jié)將在以下描述。
當(dāng)建立編輯碼流ST1時(shí),編輯器3從用戶接收關(guān)于在期望的編輯點(diǎn)之間剪切一部分的指令,關(guān)于用于建立編輯碼流ST1的比特率的指令等。編輯器3根據(jù)關(guān)于編輯點(diǎn)的指令建立播放列表,從而編輯原始流ST0。編輯器3還將原始流ST0的GOP根據(jù)建立的播放列表提供到解碼處理器4,從而顯示器5可回放編輯流。當(dāng)在編輯流上執(zhí)行兩遍編碼時(shí),編輯器3控制解碼處理器4輸出編輯流以及控制編碼處理器在其上執(zhí)行兩遍編碼。特別地,指示一個(gè)合適的比特率,從而在編碼之后的編輯碼流ST1具有期望的數(shù)據(jù)大小,分配依據(jù)復(fù)雜度X的目標(biāo)代碼長(zhǎng)度,并且編輯流用目標(biāo)代碼長(zhǎng)度進(jìn)行編碼從而建立編輯碼流ST1。
一種通過兩遍編碼的方式建立編輯碼流ST1的方法在以下詳細(xì)描述。以下描述針對(duì)如下實(shí)施例,其中圖像編碼設(shè)備1通過指定例如選擇的兩個(gè)畫面來編輯已存儲(chǔ)標(biāo)題(原始流)并且進(jìn)行編輯標(biāo)題的轉(zhuǎn)錄。
圖4A到4C是描述編輯原始流ST0的方法的視圖。圖4A示出了原始流,圖4B示出了從原始流中提取的包括編輯點(diǎn)的GOP,以及圖4C示出了編輯播放列表的一部分。
如圖4A所示,原始流ST0由多個(gè)GOP#1,#2,…,#j,…,#k,…組成。為了描述的簡(jiǎn)化,在該實(shí)施例中,每個(gè)GOP包括N個(gè)畫面,其中N是整數(shù),按相同的順序(與相同的編碼規(guī)則)布置,比如I,P,B,B,P,…。如果在原始流ST0和編輯碼流ST1之間相同的幀被編碼成相同畫面,則可適用本發(fā)明。特別的,GOP長(zhǎng)度、編碼規(guī)則等沒有必要在所有GOP之間保持相同,只要畫面位相在原始流ST0和編輯碼流ST1之間對(duì)齊即可。
假定當(dāng)原始流ST0從視頻數(shù)據(jù)建立時(shí)由分析器23分析構(gòu)成該原始流ST0的畫面的復(fù)雜度,并且在存儲(chǔ)裝置30中存儲(chǔ)為復(fù)雜度X。
以下描述針對(duì)使用圖4A所示的編輯點(diǎn)A和B建立編輯碼流ST1的情況。在這種示例的情況下,原始流ST0具有s(1≤s≤S)個(gè)GOP,并且每個(gè)GOP#s具有t(1≤t≤N)個(gè)畫面。編輯點(diǎn)A表示GOP#j(1≤j≤S)的畫面#n(1≤n≤N)和#n+1之間的點(diǎn)。如果畫面#n=#N,那么編輯點(diǎn)A表示GOP的邊界。編輯點(diǎn)A隨后的畫面被切除。編輯點(diǎn)B表示GOP#k(1≤k≤S)的畫面#m-1和#m(1≤m≤N)之間的點(diǎn)。如果畫面#m=#1,那么編輯點(diǎn)B表示GOP邊界。編輯點(diǎn)B之前的畫面被切除。
例如,以GOP為單位,在GOP#j中從開頭畫面#1到緊挨著編輯點(diǎn)A前面的畫面#n的流以及在GOP#k中從緊挨著編輯點(diǎn)B后面的畫面#m到最后畫面#N的流被提取,并且編輯這兩個(gè)流從而使得編輯點(diǎn)A和B如圖4C所示相繼布置。
編輯器3可通過在原始流中指定選擇的兩個(gè)編輯點(diǎn)A和B來編輯原始流(標(biāo)題)。特別,有可能建立在編輯點(diǎn)A結(jié)束的編輯流,在編輯點(diǎn)B開始的編輯流,其中編輯點(diǎn)A和B相繼回放的編輯流等。在編輯過程中,無(wú)論是否對(duì)原始流作了改變都建立作為虛擬標(biāo)題的播放列表。當(dāng)建立播放列表時(shí)原始流可被編輯。例如,編輯器3通過參照所建立的播放列表以GOP為單位將流提供到解碼處理器4,該解碼處理器是MPEG AV解碼器,從而允許編輯點(diǎn)A和B的連續(xù)回放。
從解碼處理器4輸出的音頻和視頻信號(hào)被輸入到顯示器5,從而回放編輯流。同時(shí),由解碼處理器4解碼的編輯流輸入到編碼處理器2,使得可在編碼過程中參考原始流的復(fù)雜度,從而完成兩遍編碼。然后結(jié)果被提供到存儲(chǔ)裝置40,從而實(shí)現(xiàn)了利用兩遍編碼的根據(jù)原始流編輯的編輯原始流的記錄(轉(zhuǎn)錄)。
如果在第二遍編碼中存在的每一幀的畫面類型(畫面位相)與在第一遍編碼中的相同,則可以實(shí)現(xiàn)兩遍編碼。因?yàn)榇a長(zhǎng)度根據(jù)在第一遍中的分析所獲得的復(fù)雜度來分配,如果畫面位相不同則不能分配合適的代碼長(zhǎng)度。
因此,通過編碼處理器2建立的編輯碼流ST1的每個(gè)GOP中的畫面構(gòu)成的規(guī)則和GOP長(zhǎng)度(每個(gè)GOP畫面總數(shù)),在這里被稱為畫面構(gòu)成,應(yīng)當(dāng)與在第一遍編碼中的相同。換句話說,必須把原始流ST0的畫面位相與編輯碼流ST1的畫面位相對(duì)齊。
圖5到10是描述建立編輯流的方法的圖示。編輯器3在圖5到10所示的六個(gè)模式中控制解碼處理器4和編碼處理器2的操作。圖5到8示出其中兩個(gè)編輯點(diǎn)被粘合在一起的情況。如圖5和6所示,如果組成包含GOP#j的畫面#1到#n以及GOP#k的畫面#m到#N的畫面組(在此稱為編輯畫面組)的畫面的總數(shù)(n+(M-m+1))不是N的整數(shù)倍,一個(gè)或多個(gè)預(yù)定的圖像(插入圖像)被插入到編輯點(diǎn)A和B之間,從而使組成通過編碼具有插入圖像的編輯畫面組的畫面組(再編碼畫面組)的畫面的總數(shù)量達(dá)到N的整數(shù)倍。
圖7和8示出了組成編輯畫面組的畫面的總數(shù)量是N或2N的情況。在這種情況下,編輯點(diǎn)B對(duì)應(yīng)于編輯碼流ST1中的GOP邊界,并且因此不需要插入任何插入畫面。圖9和10示出了其中具有單個(gè)編輯點(diǎn)并且當(dāng)編輯點(diǎn)B在編輯流的開頭以及當(dāng)編輯流用編輯點(diǎn)A結(jié)束時(shí)的情況。這六個(gè)編輯模式的方法可被單獨(dú)使用或結(jié)合使用來建立編輯流。
首先,描述組成編輯畫面組的畫面的總數(shù)量沒有達(dá)到N的整數(shù)倍的情況。
(1)n+(N-m+1)<N(參見圖5)參考圖5,組成編輯畫面組的畫面的總數(shù)量n+(N-m+1)<N意味著,由從GOP#j中開頭畫面#1到緊挨著編輯點(diǎn)A前面的畫面#n的畫面組成的、構(gòu)成GOP#j部分102的畫面數(shù)量n,與由從GOP#k中的緊挨著編輯點(diǎn)B后面的畫面#m到最后的畫面#N之間的畫面組成的、構(gòu)成GOP#k部分103的畫面數(shù)量(N-m+1)的總和n+(N-m+1),小于N。
在這種情況下,編輯器3控制編碼處理器2插入(m-n-1)個(gè)根據(jù)在GOP#j中編輯點(diǎn)A和B之間的GOP#j中的畫面#n解碼得到的第一解碼圖像J,并且建立再編碼畫面組101。通過在編輯畫面組的編輯點(diǎn)A和B之間插入(m-n-1)個(gè)解碼圖像J,再編碼畫面組的畫面數(shù)量達(dá)到N。這使得再編碼畫面組101與其它GOP具有相同的數(shù)量。
插入(m-n-1)個(gè)解碼圖像J使得GOP#j部分102和GOP#k部分103分別具有與GOP#j和GOP#k相同的畫面位相。因此有可能對(duì)分別具有相同的畫面位相GOP#j部分102和GOP#k部分103去參考GOP#j和GOP#k的復(fù)雜度X。
根據(jù)編碼解碼圖像J所獲得的插入畫面(第一插入畫面)在原始流ST0中不存在,因此還沒有分析第一插入畫面的復(fù)雜度。然而,解碼圖像J是通過解碼GOP#j的畫面#n獲得的,并且當(dāng)由圖像J建立GOP#j的畫面#n時(shí)該復(fù)雜度已經(jīng)通過預(yù)分析獲得。因此,在該實(shí)施例中,從解碼圖像J中建立的插入畫面的復(fù)雜度根據(jù)當(dāng)建立GOP#j的畫面#n時(shí)預(yù)分析得到的復(fù)雜度來計(jì)算。從而在建立編輯流的每個(gè)畫面時(shí)的復(fù)雜度可通過參考或計(jì)算獲得,這使得當(dāng)建立編輯流時(shí)可分配優(yōu)化代碼長(zhǎng)度,因此實(shí)現(xiàn)了合適的兩遍編碼。從解碼圖像J建立的插入畫面的復(fù)雜度的一種計(jì)算方法以及使用復(fù)雜度的編碼過程將在以下詳細(xì)描述。
(2)n+(N-m+1)>N(參見圖6)參考圖6,組成編輯畫面組的畫面的總數(shù)量n+(N-m+1)>N意味著,由從GOP#j中開頭畫面#1到緊挨著編輯點(diǎn)A前面的畫面#n的畫面組成的、構(gòu)成GOP#j部分102的畫面數(shù)量n,以及由從GOP#k中的緊挨著編輯點(diǎn)B后面的畫面#m到最后的畫面#N之間的畫面組成的、構(gòu)成GOP#k部分103的畫面數(shù)量(N-m+1)的總和n+(N-m+1),大于N。
在這種情況下,編輯器3控制編碼處理器2插入((N-m)+(m-1))個(gè)由GOP#j中在編輯點(diǎn)A和B之間的GOP#j中的畫面#n解碼得到的第一解碼圖像J,并且建立再編碼畫面組111。作為在編輯畫面組的編輯點(diǎn)A和B之間插入((N-m)+(m-1))個(gè)解碼圖像J的結(jié)果,再編碼畫面組的畫面數(shù)量達(dá)到2N。
插入((N-m)+(m-1))個(gè)解碼圖像J使得GOP#j部分102和GOP#k部分103分別具有與GOP#j和GOP#k相同的畫面位相。因此使得分別具有相同的畫面位相GOP#j部分102和GOP#k部分103有可能參考GOP#j和GOP#k的復(fù)雜度。如上所述,插入畫面的復(fù)雜度可根據(jù)GOP#j中的畫面#n的復(fù)雜度來計(jì)算。
盡管以上描述了插入根據(jù)GOP#j中的畫面#n解碼的解碼圖像J的情況,有可能不僅使用解碼圖像J,而且使用從GOP#k的畫面#m解碼的解碼圖像K。特別地,插入圖像J作為第一插入圖像插入到GOP#j部分102中,從而幀的數(shù)量變成N。然后,插入圖像K作為第二插入圖像插入,從而幀的數(shù)量變成N,包括插入圖像K和GOP#k部分103。從而再編碼畫面組的畫面的總數(shù)量達(dá)到2N。在這種情況下,通過解碼編輯點(diǎn)A和B之間的畫面獲得的視頻仍然是解碼圖像J和K的圖像,其相對(duì)于單獨(dú)使用解碼圖像J的情況能夠產(chǎn)生更加自然的編輯效果。
(3)n+(N-m+1)=2N(參見圖7)參考圖7,組成編輯畫面組的畫面的總數(shù)量n+(N-m+1)=2N意味著,由從GOP#j中開頭畫面#1到緊挨在編輯點(diǎn)A之前的畫面#n的畫面組成的、構(gòu)成GOP#j部分102的畫面數(shù)量n,以及由從GOP#k中的緊挨在編輯點(diǎn)B之后的畫面#m到最后的畫面#N之間的畫面組成的、構(gòu)成GOP#k部分103的畫面的數(shù)量(N-m+1)的總和n+(N-m+1),等于2N。
這就發(fā)生了這樣的情況,GOP#j中的畫面#n=畫面#N,GOP#k中的畫面#m=畫面#1,GOP#j部分102對(duì)應(yīng)于GOP#j的全部,GOP#k部分103對(duì)應(yīng)于GOP#k的全部,并且在編輯以粘合編輯點(diǎn)A和B之后的再編碼畫面組(=編輯畫面組)121具有與在第一遍中的該GOP相同位相。在這種情況下,不像以上的情況(1)和(2),第二遍編碼可不用插入任何插入畫面而使用復(fù)雜度來執(zhí)行。GOP#k部分103=GOP#k可以是封閉的GOP。
(4)n+(N-m+1)=N(參見圖8)
參考圖8,組成編輯畫面組的畫面的總數(shù)量n+(N-m+1)=N意味著,由從GOP#j中開頭畫面#1到緊挨在編輯點(diǎn)A之前的畫面#n的畫面組成的、構(gòu)成GOP#j部分102的畫面數(shù)量n,以及由從GOP#k中的緊挨在編輯點(diǎn)B之后的畫面#m到最后的畫面#N之間的畫面組成的、構(gòu)成GOP#k部分103的畫面的數(shù)量(N-m+1),的總和n+(N-m+1),等于N。
同樣在這種情況下,在編輯以粘合編輯點(diǎn)A和B之后的再編碼畫面組(=編輯畫面組)131具有與該GOP相同的位相。因此,兩遍編碼可如情況(3)那樣不插入任何插入圖像來執(zhí)行。
(5)GOP#k存在于開頭(參見圖9)參考圖9,這是編輯流的范圍從圖4A所示的編輯點(diǎn)B到原始流的最后畫面的情況,例如其中GOP#k=GOP#1。
在這種情況下,編輯畫面組包括GOP#k部分103,該部分包含在GOP#k中的緊挨在編輯點(diǎn)B之后的畫面#m到最后畫面#N之間的畫面。然而,如果編輯畫面組按這樣被用作開頭GOP,那么GOP#k的畫面#m被編碼成I-畫面,這造成了在第二遍編碼中畫面位相未對(duì)齊,使得它不能使用原始流的復(fù)雜度作為參考。為了避免這樣,(m-1)個(gè)插入圖像被插入到GOP#k之前的位置中來建立再編碼畫面組141使得畫面的數(shù)量達(dá)到N。為了位相對(duì)齊而被插入的插入圖像(第三插入圖像)可以是預(yù)定黑白圖像M1到M(m-1)。還有可能例如使用從GOP#k的畫面#m解碼得到的解碼圖像K作為插入圖像。插入黑白圖像用于位相對(duì)齊實(shí)現(xiàn)了對(duì)代碼長(zhǎng)度增加的抑制,并且可使用用于黑白圖像的預(yù)定復(fù)雜度。
通過編碼插入圖像獲得的插入畫面也不存在于原始流中,并且不分析其復(fù)雜度。然而,當(dāng)黑白圖像被編碼為插入畫面時(shí),必需的代碼長(zhǎng)度很小,并且復(fù)雜度的值可被適當(dāng)?shù)卦O(shè)置。如果解碼圖像K被用作插入圖像,那么如上所述,復(fù)雜度可根據(jù)建立GOP#k中的畫面#m時(shí)的復(fù)雜度來計(jì)算。
(6)GOP#j存在于結(jié)尾(參見圖10)參考圖10,這是編輯流的范圍從圖4A所示的原始流的開頭畫面到編輯點(diǎn)A的情況,例如其中GOP#k=GOP#S。
在這種情況下,編輯畫面組包括GOP#j部分102,該部分包含在GOP#j中的開頭畫面#1到緊挨在編輯點(diǎn)A之前的畫面#n之間的畫面。畫面的數(shù)量是n。從GOP#j的畫面#解碼得到的(N-n)個(gè)圖像J作為第四插入圖像被插入到GOP#j部分102之前的位置來建立再編碼畫面組151,使得畫面的總數(shù)量達(dá)到N并且GOP長(zhǎng)度被對(duì)齊。
然而,如果GOP#j是最后的GOP,那么有可能不用插入(N-m)個(gè)插入圖像并且在第二遍編碼中參考第一遍的復(fù)雜度來對(duì)齊畫面位相。特別地,如果畫面#n是畫面#1和I-畫面,就可不用插入任何插入圖像來參考原始流ST0的復(fù)雜度用于一直到編輯點(diǎn)A的復(fù)雜度,從而實(shí)現(xiàn)兩遍編碼。如果畫面#n是P-畫面或B-畫面,那么需要插入最新數(shù)量的解碼畫面#n的插入圖像來實(shí)現(xiàn)兩遍編碼。在這種情況下,能夠參考原始流ST0的復(fù)雜度用于一直到編輯點(diǎn)A的復(fù)雜度并且從GOP#j中的畫面#n的復(fù)雜度中計(jì)算插入畫面的復(fù)雜度。
如上所述,即使在構(gòu)成原始流的GOP的某部分上進(jìn)行編輯、在該編輯之后解碼并且再編碼來建立碼流之后,通過對(duì)齊的畫面位相,與在原始流中相同的幀具有相同的畫面類型。因此編輯流被編輯為與原始流相同的畫面類型,并且不會(huì)發(fā)生圖像質(zhì)量的惡化。此外,如果當(dāng)建立原始流時(shí)分析復(fù)雜度,那么所分析的復(fù)雜度在建立編輯碼流時(shí)可用作參考,從而根據(jù)復(fù)雜度可實(shí)現(xiàn)具有優(yōu)化代碼長(zhǎng)度的兩遍編碼。
在以上描述中,組成再編碼畫面組101,131,141或151的畫面的總數(shù)量在以上四種情況(1)、(4)、(5)和(6)中是N,并且組成再編碼畫面組111或121的畫面的總數(shù)量在以上情況(2)和(3)中是2N。然而,組成再編碼畫面組的總數(shù)量不限于這些。只要組成再編碼畫面組的總數(shù)量是N的整數(shù)倍,關(guān)于編輯碼流ST1中的編輯點(diǎn)A,畫面組可通過設(shè)置在編輯碼流ST1中的該編輯點(diǎn)之前或之后的幀來對(duì)齊,使得與原始流ST0中的具有相同的畫面類型。
根據(jù)該實(shí)施例的兩遍編碼方法如下詳細(xì)描述。圖11A和11B是在第二遍的編碼過程的流程圖。假定連接到圖像編碼設(shè)備1的存儲(chǔ)裝置30存儲(chǔ)其復(fù)雜度已經(jīng)被分析的原始流。用戶通過編輯標(biāo)題來建立播放列表,然后將其使用兩遍編碼存儲(chǔ)在存儲(chǔ)裝置40中。
盡管以下描述針對(duì)在顯示器5上回放編輯標(biāo)題以及再編碼編輯標(biāo)題然后將其存儲(chǔ)在存儲(chǔ)裝置40中的情況,但是也有可能不在顯示器5上回放而存儲(chǔ)編輯標(biāo)題。該描述假定是其中存儲(chǔ)在存儲(chǔ)裝置30中的原始流ST0是在第一遍的原始碼流,并且將被存儲(chǔ)在存儲(chǔ)裝置40中的編輯碼流ST1是通過兩遍編碼來編碼的編輯MPEG-碼流的情況。
如圖11A所示,圖像編碼設(shè)備1首先從編輯列表獲得有關(guān)畫面的總數(shù)、包括編輯點(diǎn)的GOP的回放時(shí)間以及每個(gè)編輯點(diǎn)的回放時(shí)間的信息(步驟S1)。在獲得這些信息之后,顯示器5顯示編輯原始流(標(biāo)題)(步驟S2)。然后,編輯器3確定將編輯點(diǎn)應(yīng)用到(1)到(6)的哪種情況,并且根據(jù)判定結(jié)果控制解碼處理器4和編碼處理器2的操作來完成兩遍編碼。首先,確定在播放列表的開頭GOP中是否存在編輯點(diǎn)(步驟S3)。如果在開頭GOP中不存在編輯點(diǎn),該過程進(jìn)行到如圖11B所示的下面將描述的處理。
另一方面,如果在開頭GOP中存在編輯點(diǎn),編輯器3執(zhí)行以下過程。在該例子中,該描述假定是圖9所示的情況(5),其中在開頭GOP中存在編輯點(diǎn)B。在這種情況下,解碼處理器4在編輯器3的控制下,從開頭GOP開始解碼過程并且直到達(dá)到編輯點(diǎn)B的回放時(shí)間時(shí)才輸出GOP。在這期間,顯示器5代替圖像回放(插入圖像)輸出而顯示插入圖像比如預(yù)定黑白圖像(視頻消音控制),并且代替音頻回放而執(zhí)行消音(音頻消音控制)(步驟S4)。編碼處理器2通過根據(jù)復(fù)雜度控制代碼長(zhǎng)度在插入圖像、比如從解碼處理器4輸出的黑白圖像上完成兩遍編碼。
直到達(dá)到被處理的編輯點(diǎn)B,從解碼處理器4輸出的插入圖像被編碼成預(yù)定類型的畫面。最為優(yōu)選的,可以執(zhí)行編碼以使得畫面構(gòu)成與原始流中的GOP構(gòu)成相同。然而,因?yàn)樵诰庉孅c(diǎn)B之后的畫面位相可以通過插入(N-m)個(gè)插入圖像來對(duì)齊,所以從插入圖像編碼的畫面類型可以和在原始流中的GOP的畫面構(gòu)成不同。因?yàn)椴迦雸D像不存在于原始流ST0中,插入圖像的復(fù)雜度還不能獲得。
在該實(shí)施例中,復(fù)雜度計(jì)算器52在需要時(shí)計(jì)算插入圖像的復(fù)雜度。例如,插入圖像的復(fù)雜度可根據(jù)在原始流中的開頭GOP的相應(yīng)的復(fù)雜度來計(jì)算。如果插入圖像是黑白圖像,需要的代碼長(zhǎng)度很小并且可使用預(yù)定的復(fù)雜度等。因?yàn)榕渲迷陂_頭的插入圖像被解碼為I-畫面,插入圖像的復(fù)雜等可等于或是原始流的開頭GOP的開頭畫面的復(fù)雜度的幾分之一。代碼長(zhǎng)度分配器24重新得到復(fù)雜度并且根據(jù)復(fù)雜度確定目標(biāo)代碼長(zhǎng)度。從而編碼處理器2順序編碼插入圖像使得與GOP具有相同的畫面位相(步驟S5)。
在達(dá)到編輯點(diǎn)B的回放時(shí)間時(shí)(步驟S6中的是),解碼處理器4輸出在GOP#k中的畫面#m和隨后畫面的解碼結(jié)果(解碼圖像輸出(視頻未消音)/音頻未消音控制)(步驟S7)。從而編碼處理器2接收原始流的解碼數(shù)據(jù)并且在達(dá)到編輯點(diǎn)B之后將它們編碼。因?yàn)榫庉孅c(diǎn)B之后的畫面與在原始流中的相應(yīng)畫面具有相同的畫面位相,復(fù)雜度計(jì)算器52讀出存儲(chǔ)在存儲(chǔ)裝置30中的原始流的復(fù)雜度,并且代碼長(zhǎng)度分配器24根據(jù)該復(fù)雜度來確定目標(biāo)代碼長(zhǎng)度,使得編碼器21用目標(biāo)代碼長(zhǎng)度來MPEG編碼解碼的數(shù)據(jù)。然后該過程進(jìn)行到后面描述的步驟10。
如果在步驟S3中確定在開頭GOP中沒有編輯點(diǎn),該過程進(jìn)行到圖11B所示的步驟S8。如果在播放列表的開頭GOP中不存在編輯點(diǎn),解碼處理器4開始從開頭GOP進(jìn)行解碼。然后,在編碼處理器2中,復(fù)雜度計(jì)算器52讀出在原始流中相應(yīng)GOP的每個(gè)畫面的復(fù)雜度,代碼長(zhǎng)度分配器24計(jì)算并且分配目標(biāo)代碼長(zhǎng)度,并且編碼器21用目標(biāo)代碼長(zhǎng)度來MPEG編碼從解碼處理器4輸出的解碼數(shù)據(jù)(步驟S9)。
通過這種方式,編碼處理器2完成了兩遍編碼,其用根據(jù)復(fù)雜度控制的合適的代碼長(zhǎng)度編碼由解碼處理器4解碼的圖像直到達(dá)到編輯點(diǎn)A的回放時(shí)間。在編輯點(diǎn)A的回放時(shí)間時(shí)(步驟S10中的是),解碼處理器4通過重復(fù)解碼剛剛在前面解碼的GOP#j的畫面#n的解碼圖像J等的方式暫停輸出(解碼暫??刂?。在此期間,音頻被消音(音頻消音控制)(步驟S11)。
然后,如果構(gòu)成包括編輯點(diǎn)A和粘合到編輯點(diǎn)A的編輯點(diǎn)B的編輯畫面組的畫面的總數(shù)量(n+(N-m+1))小于N,(步驟S12中的是),如圖5所示的情況(1),那么編碼(m-n-1)個(gè)解碼圖像J。在編碼處理器2中,復(fù)雜度計(jì)算器52按后面所述計(jì)算復(fù)雜度Xpr和Xbr,代碼長(zhǎng)度分配器24從復(fù)雜度Xpr和Xbr計(jì)算目標(biāo)代碼長(zhǎng)度,并且編碼器21完成編碼從而達(dá)到目標(biāo)代碼長(zhǎng)度(步驟S13)。
在編碼器21編碼(m-n-1)個(gè)解碼圖像J之后,即插入從圖像J編碼的(m-n-1)個(gè)插入畫面之后(步驟14中的是),編輯器3控制編碼器21暫停編碼過程(編碼暫??刂?(步驟S15)。編輯器3將從GOP#j的畫面#n解碼的圖像J編碼的(m-n-1)個(gè)插入圖像插入在編輯點(diǎn)A和B之間從而構(gòu)成再編碼畫面組的畫面的總數(shù)量達(dá)到N。從而在再編碼畫面組中的編輯點(diǎn)A之前畫面和編輯點(diǎn)A之后的畫面的位相可以用在原始流中的畫面的位相來對(duì)齊。
在此之后,編輯器3在解碼處理器4中解除解碼暫??刂坪鸵纛l消音控制使得在編輯點(diǎn)A之后的GOP#j的剩余部分被解碼(步驟S16)。在解碼處理器4完成GOP#j的解碼之后,編輯器3向解碼處理器4提供包括布置成與編輯點(diǎn)A相繼的編輯點(diǎn)B的GOP#k。然后解碼處理器4解碼包括編輯點(diǎn)B的GOP#k(步驟S17)。在達(dá)到編輯點(diǎn)B的回放時(shí)間時(shí)(步驟S18中的是),編輯器3控制編碼處理器2解除編碼暫停控制(編碼恢復(fù)控制)。從而編碼器21在編輯點(diǎn)B的之后部分開始編碼解碼圖像數(shù)據(jù)(步驟S19)。
如果構(gòu)成編輯畫面組的畫面的總數(shù)量(n+(N-m+1))大于N,(步驟S12中的否和步驟S20中的是),如圖6所示的情況(2),那么編碼處理器2中的復(fù)雜度計(jì)算器52按后面所述計(jì)算復(fù)雜度Xir、Xpr和Xbr,代碼長(zhǎng)度分配器24從復(fù)雜度Xir、Xpr和Xbr計(jì)算目標(biāo)代碼長(zhǎng)度,并且編碼處理器2完成編碼從而達(dá)到目標(biāo)代碼長(zhǎng)度(步驟S21)。
在編碼處理器2編碼(N-n+m-1)個(gè)解碼圖像J之后,即插入從圖像J編碼的(N-n+m-1)個(gè)插入畫面之后(步驟S22中的是),執(zhí)行從上述步驟S15開始的過程。特別地,編輯器3進(jìn)行編碼處理器2的編碼暫??刂?,使得解碼處理器4解碼GOP#j的剩余部分并且進(jìn)一步從GOP#k的開頭開始解碼,并且在編輯點(diǎn)B的回放時(shí)間執(zhí)行編碼處理器2的編碼恢復(fù)控制(步驟S15到S19)。如前所述的,插入從解碼圖像J編碼的(N-n)個(gè)圖像并且插入從解碼圖像K編碼的(m-1)個(gè)畫面也是可行的。
如果構(gòu)成編輯畫面組的畫面的總數(shù)量(n+(N-m+1))是2N,(步驟S20中的否和步驟S23中的是),如圖7所示的情況(3),或者如果構(gòu)成編輯畫面組的畫面的總數(shù)量(n+(N-m+1))是N,(步驟S23中的否),如圖8所示的情況(4),那么該過程進(jìn)到步驟S25。如果畫面的總數(shù)量(n+(N-m+1))是2N(步驟S23中的是),編輯器3可指示編碼處理器2使得包括編輯點(diǎn)B的GOP#k變成封閉的GOP。
如上所述,編輯器3根據(jù)構(gòu)成待兩遍編碼的編輯畫面組的畫面的總數(shù)量(n+(N-m+1))適當(dāng)?shù)乜刂平獯a處理器4和編碼處理器2的操作。如果沒有編輯點(diǎn),解碼處理器4解碼由編輯器所提供的播放列表指示的GOP,并且編碼處理器2順序MPEG編碼該解碼圖像。在解碼處理器4解碼播放列表中最后的GOP并且編碼處理器2對(duì)其編碼之后(步驟S25中的是),編輯器3在編碼處理器2中結(jié)束編碼(步驟S26)。
該實(shí)施例插入從黑白圖像解碼的畫面或插入從緊挨在編輯點(diǎn)之前或之后的畫面解碼的解碼圖像,從而使得在編輯點(diǎn)A之前和/或編輯點(diǎn)B之后的畫面位相與原始流中的畫面位相對(duì)齊。這實(shí)現(xiàn)了通過參考當(dāng)編碼原始流時(shí)分析的復(fù)雜度的兩遍編碼并且設(shè)置了合適的目標(biāo)代碼長(zhǎng)度。
為了實(shí)現(xiàn)兩遍編碼,例如圖5所示,該過程暫停-控制解碼處理器4并且插入一個(gè)或多個(gè)解碼圖像J,以對(duì)齊畫面位相。因?yàn)閺牟迦雸D像編碼的畫面(解碼圖像J,K,黑白圖像等)在原始流中不存在,所以不能從其參考復(fù)雜度。因此該實(shí)施例從原始碼流的復(fù)雜度來估計(jì)插入圖像的復(fù)雜度。
下面描述在編碼處理器2的代碼長(zhǎng)度分配器24中計(jì)算目標(biāo)代碼長(zhǎng)度的一種方法和當(dāng)編碼原始流中不存在的插入圖像的復(fù)雜度的一種方法。圖12A和12B是示出使用復(fù)雜度計(jì)算目標(biāo)代碼長(zhǎng)度的過程的流程圖,以及圖13是示出計(jì)算插入畫面的復(fù)雜度的過程的流程圖。
可以通過幀的編碼來分析的輸入的解碼圖像的幀號(hào)f是La。如圖12A所示,復(fù)雜度計(jì)算器52首先從播放列表中獲得編輯點(diǎn)的總數(shù)、包含編輯點(diǎn)的GOP位置以及編輯點(diǎn)的畫面位置(步驟S31)。代碼長(zhǎng)度分配器24把輸入的解碼圖像的幀號(hào)f初始化為-La+1(步驟S32)。
然后,復(fù)雜度計(jì)算器52沿著播放列表順序讀出GOP的復(fù)雜度X[s,t](步驟S33)。例如,原始流ST0的復(fù)雜度例如被事先分析并且與原始流ST0一起存儲(chǔ)。復(fù)雜度X[s,t]表示在原始流ST0的GOP#s(1≤s≤S)的畫面#t(1≤t≤N)的復(fù)雜度。
在讀出緊挨在編輯點(diǎn)A之前的畫面的復(fù)雜度X[s,t]=X[#j,#n]完成之后(步驟S34中的是),該實(shí)施例為了對(duì)齊位相按需要把插入圖像插入到隨后的位置。因此,因此計(jì)算被插入在編輯點(diǎn)之間的插入圖像的復(fù)雜度(步驟S35)。這個(gè)步驟的細(xì)節(jié)將參考圖13詳細(xì)描述。
然后復(fù)雜度計(jì)算器52確定輸入幀f是否滿足幀數(shù)La(步驟S36)。如果輸入圖像的幀的數(shù)量小于幀數(shù)La,這是當(dāng)被初始化為-La+1的圖像的幀號(hào)f是f<0,那么復(fù)雜度計(jì)算器52遞增f的值(步驟S38)并且讀出下一個(gè)圖像的復(fù)雜度。
如果不然,輸入圖像的幀的數(shù)量等于幀數(shù)La(j=0),那么復(fù)雜度計(jì)算器52確定幀f是否是用于編碼的單位間隔C的倍數(shù)(步驟S37)。
如果幀號(hào)f不是用于編碼的單位間隔C的倍數(shù),復(fù)雜度計(jì)算器52遞增f的值(步驟S38)并且讀出下一個(gè)圖像的復(fù)雜度。
另一方面,如果幀號(hào)f是用于編碼的單位間隔C的整數(shù)倍,代碼長(zhǎng)度分配器24分配代碼長(zhǎng)度給代碼長(zhǎng)度分配間隔C。
首先,在分配間隔中的總的代碼長(zhǎng)度Ra根據(jù)兩遍編碼的比特率來計(jì)算??偟拇a長(zhǎng)度可考慮緩沖區(qū)占有率BOC[f]來考慮(步驟S39)。
然后,代碼長(zhǎng)度分配器24計(jì)算每一幀的目標(biāo)代碼長(zhǎng)度。每一幀的目標(biāo)代碼長(zhǎng)度T[f]可通過分配Ra[f]來計(jì)算,該Ra[f]可以按與復(fù)雜度X[s,t]成比例分配給代碼長(zhǎng)度分配間隔,T[f]可如下表示T[f]=(X[s,t]/Xsum)*Ra[f]其中Xsum是在分配間隔中的總的復(fù)雜度X[s,t]。目標(biāo)代碼長(zhǎng)度T[f]從幀f到幀f+L-1中的每一幀計(jì)算(步驟S41)。
在此之后,代碼長(zhǎng)度分配器24在編碼緩沖區(qū)22中計(jì)算分配的目標(biāo)代碼長(zhǎng)度的緩沖區(qū)占有率(步驟S41)。例如,緩沖區(qū)占有率BOC[f]可如下計(jì)算BOC[f]=BOC[f-1]+T[f]-Rframe其中Rframe是從使用在該實(shí)施例的編碼中的比特率R中計(jì)算的每一幀的代碼長(zhǎng)度。緩沖區(qū)占有率的初始值是BOC
=0。
然后代碼長(zhǎng)度分配器24基于計(jì)算的緩沖區(qū)占有率BOC[f]確定在編碼緩沖區(qū)22中是否發(fā)生上溢或下溢。例如如果編碼緩沖區(qū)22的上限是B,就確定緩沖區(qū)占有率BOC[j]是否小于B-Rframe。
如果在編碼緩沖區(qū)22中發(fā)生下溢(步驟S42中的是),那么代碼長(zhǎng)度分配器24調(diào)整代碼長(zhǎng)度來防止編碼緩沖區(qū)22中發(fā)生下溢(步驟S43)。例如,其檢測(cè)在編碼緩沖區(qū)22中的代碼長(zhǎng)度的占有率最低時(shí)的幀fu,并且增加分配給幀f到fu的代碼長(zhǎng)度使得在編碼緩沖區(qū)22中對(duì)幀fu不發(fā)生下溢。然后,分配給幀fu+1到f+L-1的代碼長(zhǎng)度被減小對(duì)應(yīng)于代碼長(zhǎng)度的增加的數(shù)量。
如果另一方面,在編碼緩沖區(qū)22中發(fā)生上溢(步驟S44中的是),代碼長(zhǎng)度分配器24調(diào)整代碼長(zhǎng)度來防止在編碼緩沖區(qū)22中發(fā)生上溢。例如,其檢測(cè)在編碼緩沖區(qū)22中的代碼長(zhǎng)度的占有率最高時(shí)的幀fo,并且減小分配給幀f到fo的代碼長(zhǎng)度使得在編碼緩沖區(qū)22中對(duì)幀fo不發(fā)生上溢。然后,對(duì)應(yīng)于減量的代碼長(zhǎng)度被分配給幀fo+1到f+L-1(步驟S45)。
如果提供了在編碼緩沖區(qū)22中不會(huì)發(fā)生上溢或下溢的合適的分配(步驟S42中的是,步驟S44中的否),編碼器21在分配間隔C上執(zhí)行編碼(步驟S46)。然后過程進(jìn)行到S38來遞增幀f的值(步驟S38),并且復(fù)雜度計(jì)算器52讀出下一幀的復(fù)雜度并且重復(fù)以上過程。
在此描述計(jì)算插入圖像J的復(fù)雜度的過程。參考圖13,其首先判定構(gòu)成再編碼畫面組的畫面的總數(shù)n+(N-m+1)是否小于N(步驟S51)。如果該總數(shù)小于N,則設(shè)置s=j(luò)以及t=n+1(步驟S52)并且,直到達(dá)到t=m-1(步驟S53),復(fù)雜度X[s,t]被依次計(jì)算(步驟S54)。
當(dāng)t是t=n或m-1,執(zhí)行用于編碼相同解碼圖像J的過程。在這種情況下,如上所述解碼圖像J在編輯點(diǎn)A被暫停顯示,并且在第一遍編碼中不存在于原始流的新圖像被插入用于編碼該解碼圖像J。這個(gè)插入圖像的復(fù)雜度在第一遍編碼過程沒有獲得。因此,每個(gè)畫面的目標(biāo)代碼長(zhǎng)度不能被如此計(jì)算。
插入圖像是t=n的解碼圖像。在該實(shí)施例中,根據(jù)解碼圖像J被編碼成的畫面類型,使用解碼圖像J的復(fù)雜度X[#j,#n]來執(zhí)行計(jì)算。如果解碼圖像J被編碼成P-畫面,那么用于計(jì)算的復(fù)雜度是復(fù)雜度Xpr=X[#j,#n]/Dp如果解碼圖像J被編碼成B-畫面,那么用于計(jì)算的復(fù)雜度是復(fù)雜度Xbr=X[#j,#n]/DbDp和Db的值具有關(guān)系0<Dp<Db,并且它們可被例如這樣設(shè)置Xpr=X[#j,#n]/3以及Xbr=X[#j,#n]/10。如果在第一遍編碼中有相同畫面的重復(fù),那么Dp和Db可參考復(fù)雜度來確定。(m-n-1)個(gè)插入畫面被插入從而對(duì)齊編輯點(diǎn)B之后的畫面位相,并且(m-n-1)個(gè)畫面沒有必要與在原始流中的畫面t=n+1到m-1具有相同的畫面類型。如果必須增加分配給編輯點(diǎn)A之前或編輯點(diǎn)B之后的部分的代碼長(zhǎng)度,相對(duì)于原始流有可能增加B-畫面的數(shù)量從而減小插入畫面的復(fù)雜度。
盡管插入圖像被描述為t=n的解碼圖像J,但是插入圖像可以是s=k和t=m的解碼圖像。因此有可能通過根據(jù)從GOP#k的畫面#m解碼的解碼圖像K的復(fù)雜度X[#k,#m]與以上相同的方式來計(jì)算插入圖像的復(fù)雜度。
還有可能根據(jù)在原始流中的解碼圖像J和K的畫面類型來調(diào)整Dp和Db的值。例如,如果解碼圖像J或K在原始流ST0中是I-畫面,那么Dp和Db可被設(shè)置為較大,并且如果解碼圖像J或K在原始流ST0中是B-畫面,那么Dp和Db可被設(shè)置為相對(duì)較小。特別地,盡管在以上例子中Dp=3且Db=10,但是也可根據(jù)解碼圖像J或K的畫面類型等將其設(shè)置為Dp=1/3且Db=1,使得復(fù)雜度等于或大于編碼解碼圖像J或K時(shí)的復(fù)雜度。
然后,t的值依次遞增(步驟S55),并且達(dá)到t=m時(shí),幀號(hào)f被增加了插入畫面的總數(shù)量即插入畫面的幀數(shù)量(m-n-1),使得幀f=f+(m-n-1)(步驟S56)。然后過程進(jìn)到圖12A中的步驟S36。
如果組成再編碼畫面組的畫面的總數(shù)量n+(N-m-1)大于N并且小于2N(步驟S57),這樣來設(shè)置這些值s=j(luò)且t=n+1(步驟S58),并且直到達(dá)到t=N(步驟S59),復(fù)雜度Xpr和Xbr與如上所述步驟S54相同的方式隨著t值的增加來計(jì)算(步驟S60和S61)。
當(dāng)超過t=N,這些值被如此設(shè)置s=k且t=1(步驟S62),并且直到達(dá)到t=m(步驟S63),復(fù)雜度X[s,t]隨著t值的增加來計(jì)算(步驟S64和S65)。因?yàn)椴贾迷趕=k和t=1的畫面是GOP的開頭畫面,因此它是I-畫面。盡管I-畫面仍然是解碼圖像J的圖像,因?yàn)槠涫荌-畫面,所以相對(duì)于P-或B-畫面有必要分配較大的代碼長(zhǎng)度。因此,是I-畫面的s=k,t=1的圖像復(fù)雜度X[#k,#1]可參考原始流ST0中它的復(fù)雜度X[#k,#1]。t=1之后的P-畫面和B-畫面可以同樣的方式根據(jù)復(fù)雜度Xpr=x[#j,#n]/Dp和Xbr=x[#j,#n]/Dp來計(jì)算。直到達(dá)到t=m,幀數(shù)量被增加了插入畫面的總數(shù)量即插入畫面的幀的數(shù)量(N-m)+m-1,使得幀數(shù)f=f+(N-n)+m-1(步驟S66)。然后該過程進(jìn)到圖12A中的步驟S36。
可以確定圖12A,12B和13中過程的定時(shí),使得在如圖11A和11B所示的編碼處理器2中執(zhí)行兩遍編碼的過程中編碼每一幀(解碼圖像)之前計(jì)算目標(biāo)代碼長(zhǎng)度。
該實(shí)施例使得在編輯點(diǎn)之前和之后的畫面位相可與在編輯標(biāo)題(播放列表)中的原始流ST0的畫面位相對(duì)齊,所述編輯標(biāo)題從原始流中以幀(畫面)為單位來編輯。從而其可能甚至在具有較低比特率的再編碼之后最小化圖像質(zhì)量的惡化。此外,如果當(dāng)編輯原始流時(shí)分析并且計(jì)算了復(fù)雜度,那么有可能參考復(fù)雜度并且基于復(fù)雜度來計(jì)算目標(biāo)代碼長(zhǎng)度,從而通過兩遍編碼建立編輯碼流ST1。這實(shí)現(xiàn)了例如從記錄在HDD等具有大的存儲(chǔ)容量中的以畫面為單位編輯的具有高比特率的原始流中,建立用于記錄(轉(zhuǎn)錄)到DVD等具有小的存儲(chǔ)容量中的編輯碼流ST1,通過完成兩遍編碼而具有最小圖像質(zhì)量的惡化。
因此,通過編碼緊挨在編輯點(diǎn)之前的解碼圖像并且在編輯點(diǎn)之間插入期望幀(插入圖像),有可能越GOP邊界在編輯點(diǎn)保持圖像位相。此外,因?yàn)椴迦霂蔷o挨在編輯點(diǎn)之前的解碼圖像,在該處畫面被暫停顯示,用于編碼解碼圖像的復(fù)雜度X可作為從原始流中獲得的Dp或Db的因子而確定。以上過程允許獲得每個(gè)畫面的復(fù)雜度來建立編輯碼流ST1,從而實(shí)現(xiàn)兩遍編碼。
本發(fā)明不限于以上實(shí)施例,并且在不脫離本發(fā)明范圍的情況下可作出各種改型。例如,在圖1到3示出的每個(gè)模塊中優(yōu)化的處理可通過在CPU(中央處理單元)上執(zhí)行計(jì)算機(jī)程序來完成。在這種情況下,計(jì)算機(jī)程序可存儲(chǔ)在記錄媒體或通過通信媒體比如因特網(wǎng)來傳輸。
很明顯本發(fā)明不限于以上實(shí)施例,其可在不脫離本發(fā)明的范圍和精神的情況下被修改和改變。
權(quán)利要求
1.一種圖像編碼設(shè)備,包括編輯器,用于建立編輯指令,從而按一個(gè)或多個(gè)編輯點(diǎn)來編輯從非壓縮視頻數(shù)據(jù)編碼的碼流;解碼處理器,用于根據(jù)所述編輯指令解碼所述碼流以建立編輯流;以及編碼處理器,用于再編碼所述編輯流以建立編輯碼流,其中,所述編碼處理器對(duì)齊畫面位相以使得在所述碼流和所述編輯碼流之間相同幀中的畫面類型相同,由此來建立編輯碼流。
2.如權(quán)利要求1所述的圖像編碼設(shè)備,其中編碼處理器把由預(yù)定圖像組成的插入圖像插入在編輯流中的編輯點(diǎn)之前和/或之后的位置,按照在所述碼流和所述編輯碼流之間在編輯點(diǎn)之前和/或之后的畫面位相相同的方式來建立所述編輯碼流。
3.如權(quán)利要求1所述的圖像編碼設(shè)備,其中用于編碼和建立所述碼流中的每個(gè)畫面的復(fù)雜度通過預(yù)分析來計(jì)算,并且所述編碼處理器根據(jù)該復(fù)雜度來編碼該解碼后的編輯流從而達(dá)到目標(biāo)代碼長(zhǎng)度。
4.如權(quán)利要求2所述的圖像編碼設(shè)備,其中所述插入圖像是從包含在所述碼流中的畫面解碼的圖像,并且所述編碼處理器根據(jù)用于編碼所述畫面的復(fù)雜度來確定用于編碼所述插入圖像的目標(biāo)代碼長(zhǎng)度。
5.如權(quán)利要求2所述的圖像編碼設(shè)備,其中所述編碼處理器包括分析器,用于分析用來編碼構(gòu)成所述碼流的每個(gè)畫面的復(fù)雜度;以及代碼長(zhǎng)度分配器,用于根據(jù)所分析的復(fù)雜度來給每一幀分配目標(biāo)代碼長(zhǎng)度,其中,所述分析器根據(jù)從包含在所述碼流中的畫面解碼的解碼圖像的復(fù)雜度以及該解碼圖像在編碼成該插入圖像時(shí)的畫面類型來確定所述插入圖像的復(fù)雜度。
6.如權(quán)利要求2所述的圖像編碼設(shè)備,其中所述碼流由多個(gè)包含N個(gè)畫面的GOP(畫面組)組成,其中N是整數(shù),所述編輯器建立編輯指令使得在所述碼流中的包含在第一GOP中的第一編輯點(diǎn)和包含在第二GOP中的第二編輯點(diǎn)被相繼回放,解碼處理器解碼所述第一GOP并且解碼所述第二GOP,所述編碼處理器在所述第一編輯點(diǎn)和所述第二編輯點(diǎn)之間插入一個(gè)或多個(gè)插入圖像,并且將構(gòu)成了包含從所述第一GOP的開頭畫面至所述第一編輯點(diǎn)的畫面、從所述一個(gè)或多個(gè)插入圖像編碼的插入畫面以及從所述第二編輯點(diǎn)到第二GOP的結(jié)尾畫面的再編碼畫面組的畫面的總數(shù)設(shè)置成N的整數(shù)倍。
7.如權(quán)利要求6所述的圖像編碼設(shè)備,其中如果所述的構(gòu)成再編碼畫面組的畫面的總數(shù)小于N,則插入所述一個(gè)或多個(gè)插入圖像,使得所述構(gòu)成再編碼畫面組的畫面的總數(shù)達(dá)到N。
8.如權(quán)利要求6所述的圖像編碼設(shè)備,其中如果所述的構(gòu)成再編碼畫面組的畫面的總數(shù)大于N,則插入所述一個(gè)或多個(gè)插入畫面,使得所述的構(gòu)成再編碼畫面組的畫面的總數(shù)達(dá)到2N。
9.如權(quán)利要求6所述的圖像編碼設(shè)備,其中所述插入圖像是從第一畫面中解碼的第一解碼圖像,該第一畫面是緊挨在所述第一編輯點(diǎn)之前的畫面。
10.如權(quán)利要求6所述的圖像編碼設(shè)備,其中所述插入圖像是從第一畫面中解碼的第一解碼圖像,該第一畫面是緊挨在所述第一編輯點(diǎn)之前的畫面,并且所述編碼處理器根據(jù)當(dāng)編碼第一插入圖像為P-畫面的復(fù)雜度X/Dp和當(dāng)編碼第一插入圖像為B-畫面的復(fù)雜度X/Db來確定該第一插入圖像的目標(biāo)代碼長(zhǎng)度,由此來建立該插入畫面,其中所述第一畫面的復(fù)雜度為X,并且1<Dp<Db。
11.如權(quán)利要求10所述的圖像編碼設(shè)備,其中所述編碼處理器根據(jù)當(dāng)編碼所述第一插入圖像為I-畫面時(shí)包含在所述第二GOP中的I-畫面的復(fù)雜度來確定所述插入圖像的目標(biāo)代碼長(zhǎng)度,由此建立所述插入畫面。
12.如權(quán)利要求8所述的圖像編碼設(shè)備,其中從作為緊挨在所述第一編輯點(diǎn)之前的畫面的第一畫面解碼的圖像是第一解碼圖像,從作為緊挨在第二編輯點(diǎn)之后的畫面的第二畫面解碼的圖像是第二解碼圖像,所述編碼處理器緊挨在所述第一編輯點(diǎn)之后插入一個(gè)或多個(gè)第一解碼圖像,建立具有畫面總數(shù)為N的GOP,其包含從所述第一GOP的開頭畫面到所述第一編輯點(diǎn)的畫面和從所述一個(gè)或多個(gè)第一解碼圖像編碼的第一插入畫面,緊挨在所述第二編輯點(diǎn)之前插入一個(gè)或多個(gè)第二解碼圖像,并且建立畫面總數(shù)為N的GOP,其包含從所述一個(gè)或多個(gè)第二解碼圖像編碼的第二插入畫面和從所述第二編輯點(diǎn)到所述第二GOP結(jié)尾畫面的畫面。
13.如權(quán)利要求2所述的圖像編碼設(shè)備,其中所述碼流包含具有第二編輯點(diǎn)的第二GOP,其中從所述第二GOP的開頭畫面到所述第二編輯點(diǎn)的畫面被切除,所述編輯器編輯所述碼流使得所述第二GOP在所述編輯流的開頭,所述解碼處理器緊挨在所述第二編輯點(diǎn)之前插入一個(gè)或多個(gè)作為預(yù)定圖像的第三插入圖像,并且建立具有畫面總數(shù)為N的GOP,其包含從所述一個(gè)或多個(gè)第三插入圖像編碼的第三插入畫面和從所述第二編輯點(diǎn)到所述第二GOP結(jié)尾畫面的畫面。
14.如權(quán)利要求13所述的圖像編碼設(shè)備,其中所述第三插入圖像是黑白圖像。
15.如權(quán)利要求13所述的圖像編碼設(shè)備,其中所述第三插入圖像通過根據(jù)復(fù)雜度確定所述第三插入圖像的目標(biāo)代碼長(zhǎng)度來建立,其中該復(fù)雜度是當(dāng)編碼所述第三插入圖像為I-畫面時(shí)包含在所述第二GOP中的I-畫面的復(fù)雜度
16.如權(quán)利要求13所述的圖像編碼設(shè)備,其中所述第三插入畫面通過根據(jù)復(fù)雜度確定所述第三插入圖像的目標(biāo)代碼長(zhǎng)度來建立,其中該復(fù)雜度是當(dāng)編碼所述第三插入圖像為P-畫面或B-畫面時(shí)的預(yù)定復(fù)雜度。
17.如權(quán)利要求2所述的圖像編碼設(shè)備,其中所述碼流包含具有第一編輯點(diǎn)的第一GOP,其中從所述第一編輯點(diǎn)到該第一GOP結(jié)尾畫面的畫面被切除,所述編輯器編輯所述碼流使得所述第一GOP的緊挨在所述第一編輯點(diǎn)之前的畫面在該編輯流的開頭,并且所述解碼處理器緊挨在所述第一編輯點(diǎn)之后插入一個(gè)或多個(gè)作為預(yù)定圖像的第四插入圖像并建立畫面總數(shù)為N的GOP,其包含從所述第一GOP開頭畫面到所述第一編輯點(diǎn)的畫面以及從所述一個(gè)或多個(gè)第四插入圖像編碼的第四插入畫面。
18.如權(quán)利要求17所述的畫面編碼設(shè)備,其中所述第四插入圖像是從緊挨在所述第一編輯點(diǎn)之前的第一畫面解碼的第一解碼圖像。
19.一種用于編輯從非壓縮視頻數(shù)據(jù)編碼的碼流的圖像編碼方法,包括解碼從非壓縮視頻數(shù)據(jù)編碼的碼流從而按一個(gè)或多個(gè)編輯點(diǎn)編輯該碼流來建立編輯流;以及通過對(duì)齊畫面位相使得在所述碼流和所述編輯流之間相同幀中的畫面類型相同來編碼所述編輯流。
20.一種圖像編輯設(shè)備,包括圖像編碼處理器,用于編輯從非壓縮視頻數(shù)據(jù)編碼的碼流;以及兩個(gè)或多個(gè)存儲(chǔ)裝置,用于存儲(chǔ)碼流;所述圖像編碼處理器包括編輯器,用于建立編輯指令以按一個(gè)或多個(gè)編輯點(diǎn)編輯存儲(chǔ)在一個(gè)存儲(chǔ)裝置中的所述碼流;解碼處理器,用于根據(jù)所述編輯指令解碼所述碼流來建立編輯流;以及編碼處理器,用于再編碼所述編輯流來建立編輯碼流,其中,所述編碼處理器通過對(duì)齊畫面位相使得在所述碼流和所述編輯碼流之間相同幀中的畫面類型相同來建立所述編輯碼流,以及另外的存儲(chǔ)裝置存儲(chǔ)所述編輯碼流。
全文摘要
一種圖像編碼設(shè)備,包括編輯器,用于編輯從非壓縮視頻數(shù)據(jù)編碼的碼流,使得兩個(gè)編輯點(diǎn)(A和B)相繼布置,解碼處理器用于解碼編輯流,以及編碼處理器用于編碼編輯碼流。編碼處理器接收經(jīng)編輯的解碼數(shù)據(jù),并且在點(diǎn)A和B之間插入從緊挨在點(diǎn)A之前的解碼圖像J編碼的插入畫面,從而按照在原始碼流和編輯碼流之間相同幀的畫面類型相同的方式對(duì)齊畫面位相來建立編輯碼流。
文檔編號(hào)H04N7/26GK1946183SQ20061014207
公開日2007年4月11日 申請(qǐng)日期2006年10月8日 優(yōu)先權(quán)日2005年10月3日
發(fā)明者奧山智之 申請(qǐng)人:恩益禧電子股份有限公司