亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

在混合視頻codec比特流之間進行碼轉(zhuǎn)換的方法和裝置的制作方法

文檔序號:7657589閱讀:215來源:國知局
專利名稱:在混合視頻codec比特流之間進行碼轉(zhuǎn)換的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般地涉及電信技術(shù)。更具體地說,本發(fā)明提供了一種方法和系統(tǒng),用于在混合視頻CODEC(編解碼器)比特流之間進行碼轉(zhuǎn)換(transcoding)。僅僅示例性地說,本發(fā)明已被應(yīng)用到電信網(wǎng)絡(luò)環(huán)境,但可以認識到本發(fā)明具有寬得多的應(yīng)用范圍。
背景技術(shù)
隨著時間的前進,電信技術(shù)也在改進。現(xiàn)在有若干標準來用于編碼通過通信鏈路的音頻和視頻信號。這些標準使得終端可與支持相同標準集的其他終端互操作。對于不支持通用標準的終端,只有在設(shè)備之間插入附加設(shè)備即碼轉(zhuǎn)換器(transcoder)時才能進行互操作。碼轉(zhuǎn)換器將編碼信號從一個標準翻譯為另一個標準。
·I幀被編碼為靜止圖像,并可獨立于其他幀地進行解碼。
·P幀被編碼為與前面的一個或多個I或P幀的差,以利用多幀中的相似性。
一些混合視頻codec標準例如MPEG-4視頻codec還支持“未編碼”幀,其包含幀頭部后的未編碼數(shù)據(jù)。下面更詳細地提供了某些示例性標準的細節(jié)。
某些標準例如H.261、H.263、H.264和MPEG-4視頻codec將源視頻幀分界為16×16圖像元素(象素)的宏塊。H.261、H.263和MPEG-4視頻codec還將每個宏塊進一步細分為6個8×8的象素塊。這些塊中的四個對應(yīng)于宏塊的16×16象素亮度值,其余兩個塊對應(yīng)于宏塊的亞采樣色度分量。H.264視頻codec將每個宏塊細分為24個4×4的象素塊,16個用于亮度,8個用于亞采樣的色度。
混合視頻codec通常都使用類似的技術(shù)將源宏塊轉(zhuǎn)換成編碼宏塊。每個塊的編碼首先采用空間變換,然后對變換系數(shù)進行量化。我們將此稱為變換編碼。H.261、H.263和MPEG-4視頻codec在這一階段使用離散余弦變換(DCT)。H.264視頻codec使用整數(shù)變換。
使用持續(xù)長度(run length)和可變長度(variable length)編碼來進一步編碼非零量化變換系數(shù)。這個第二階段被稱為VLC(可變長度編碼)編碼。逆過程將分別稱為VLC解碼和變換解碼??梢?種方式米編碼宏塊·“內(nèi)編碼”(intra coded)宏塊的象素值是直接從被編碼的源幀拷貝而來的。
·“互編碼”(inter coded)宏塊的象素值是從當(dāng)前源幀中的象素值和參考幀中的象素值之間的差形成的。參考幀的值是通過將前面編碼的幀的編碼數(shù)據(jù)進行解碼而導(dǎo)出的。計算所述差時使用的參考幀的區(qū)域受控于下述一個或多個運動向量,該向量指定了當(dāng)前幀中的宏塊與其在參考幀中的最佳匹配之間的位移。所述(多個)運動向量與互幀(inter frames)的量化系數(shù)一起傳輸。如果象素值的差足夠小,則只需要傳輸所述運動向量。
一般地,所有的混合視頻codec在它們所允許的運動向量的形式上經(jīng)常有所差別,例如每個宏塊的運動向量的數(shù)量、向量的分辨率、向量的范圍以及是否允許向量指向參考幀的外部。估計運動向量的過程稱為“運動估計”。它是混合視頻編碼器中計算最為密集的部分之一。
·“未編碼”宏塊是與前面的幀相比沒有顯著變化的宏塊,并且對于這些宏塊不傳輸運動數(shù)據(jù)或系數(shù)數(shù)據(jù)。
給定幀中包含的宏塊的類型取決于幀類型。對于關(guān)系到這個算法的幀類型,允許有下述宏塊類型·I幀可以只包含內(nèi)編碼宏塊。
·P幀可包含內(nèi)編碼、互編碼和“未編碼”宏塊。
在傳輸宏塊的編碼數(shù)據(jù)前,還使用無損可變長度編碼(VLC編碼)來壓縮所述數(shù)據(jù)。
混合視頻codec相互不同的另一個方面在于它們支持的視頻幀大小。MPEG-4和H.264支持任意的幀大小,限制是寬度和高度是16的倍數(shù),而H.261和基線H.263只支持有限的幀大小集合。根據(jù)混合視頻codec的類型,還可能有其他限制。
一種傳統(tǒng)的碼轉(zhuǎn)換方法稱為前后碼轉(zhuǎn)換(tandem transcoding)。前后碼轉(zhuǎn)換器通常完全解碼進入的編碼信號,以產(chǎn)生具有原始(未壓縮)格式的數(shù)據(jù),然后根據(jù)期望的目標標準對原始數(shù)據(jù)進行重新編碼,以產(chǎn)生壓縮信號。前后視頻碼轉(zhuǎn)換器雖然很簡單,但被認為是一種“強力”方法,消耗了大量計算資源。前后碼轉(zhuǎn)換的另一種可替換方法是使用輸入比特流中的運動向量中的信息來估計輸出比特流的運動向量。這一可替換方法也具有限制,還是被看作為一種強力技術(shù)。
從上可知,需要有改進的方式來以有效且具成本效益的方式,在不同電信格式之間進行轉(zhuǎn)換。

發(fā)明內(nèi)容
根據(jù)本發(fā)明,提供了多種用于電信的技術(shù)。更具體地說,本發(fā)明提供了一種方法和系統(tǒng),用于在混合視頻codec比特流之間進行碼轉(zhuǎn)換。僅僅示例性地說,本發(fā)明已被應(yīng)用于電信網(wǎng)絡(luò)環(huán)境,但可以認識到本發(fā)明具有寬得多的應(yīng)用范圍。
混合codec是一種壓縮方案,其利用了兩種方法來進行數(shù)據(jù)壓縮源編碼和信道編碼。源編碼是數(shù)據(jù)相關(guān)的,并利用了數(shù)據(jù)的特性。對于視頻,源編碼指的是下述多種技術(shù),例如根據(jù)變換規(guī)則來抽取象素的基本分量的變換(例如離散余弦變換或小波變換)。所得到的變換系數(shù)通常會被量化以減少數(shù)據(jù)帶寬(這是有損壓縮部分)。另一方面,信道編碼與源無關(guān),因為它使用了數(shù)據(jù)的統(tǒng)計屬性而不考慮數(shù)據(jù)的含義。信道編碼的示例包括統(tǒng)計編碼方案例如哈夫曼編碼和算術(shù)編碼。視頻編碼通常使用哈夫曼編碼,其基于數(shù)據(jù)的統(tǒng)計發(fā)生,用符號(例如‘0’和‘1’的串)來替換所要發(fā)送的數(shù)據(jù)。更高頻率的數(shù)據(jù)用更短的串來代表,因而減少了用來代表整個比特流的比特數(shù)量。
信道編碼的另一個示例是持續(xù)長度編碼,其利用了流中數(shù)據(jù)元素的重復(fù)性。因此,傳輸?shù)牟皇荖個連續(xù)數(shù)據(jù)元素,而是元素及其重復(fù)計數(shù)。這一概念被利用在視頻編碼中,在將變換矩陣中的DCT系數(shù)量化后以鋸齒形進行掃描。這意味著位于變換矩陣的右下部分的較高頻分量通常是零(量化之后),并且當(dāng)從矩陣的左上到右下進行鋸齒形掃描時,出現(xiàn)了重復(fù)的零的串。持續(xù)長度編碼減少了可變長度編碼為代表這些重復(fù)的0而需要的比特數(shù)量。上述源技術(shù)和信道技術(shù)適用于圖像和視頻編碼。
混合視頻codec中使用的另一種技術(shù)是運動估計和補償。運動估計和補償去除連續(xù)視頻幀中的時間相關(guān)的冗余度。這是通過運動估計和補充中的兩個主要方法實現(xiàn)的。首先,未改變(到定義“改變”的閾值內(nèi))的象素塊被看作是相同的,并使用運動向量來表示這一象素塊在兩個連續(xù)幀之間已如何運動了。其次,在表示兩個塊之間的任何位置改變所需的運動向量之外,還使用預(yù)測式編碼來減少對象素塊進行直接DCT、量化、鋸齒操作、VLC編碼所需的比特數(shù)量,這是通過對所討論的塊和前面的幀中最接近的匹配塊之間的差進行這一操作序列而實現(xiàn)的。這顯著減少了代表所討論的塊所需的比特數(shù)量。這一預(yù)測式編碼方法具有考慮一個或多個預(yù)測幀(以后向和前向方式重復(fù)多次的處理)的許多變體。最后,從預(yù)測式編碼產(chǎn)生的差錯可能會積累,在失真開始變得顯著之前,對塊執(zhí)行內(nèi)編碼(非預(yù)測式模式,僅考慮當(dāng)前幀中的象素)周期來對其編碼,并消除迄今積累的差錯。
根據(jù)本發(fā)明的實施例,提供了多種技術(shù),以使用智能技術(shù)來執(zhí)行兩個混合視頻codec之間的碼轉(zhuǎn)換。碼轉(zhuǎn)換中的智能是因為利用了混合視頻codec所利用的通用編碼原理的類似性以及下述事實,即包含視頻序列編碼的比特流所包含的信息可極大地簡化將所述比特流轉(zhuǎn)為另一種混合視頻編碼標準這一處理。與此相對比,前后視頻碼轉(zhuǎn)換將進入的比特流解碼為作為象素表示(亮度和色度表示)的YUV圖像表示,并將象素重新編碼為目標視頻標準。比特流中所有與源編碼或信道編碼有關(guān)的信息(象素冗余度、時間相關(guān)的冗余度或運動信息)都未被使用。
根據(jù)一個可替換的實施例,本發(fā)明可通過利用可從解碼輸入比特流獲得的參數(shù)以及編碼輸出比特流所需的參數(shù)之間的關(guān)系來降低碼轉(zhuǎn)換器的計算復(fù)雜度??赏ㄟ^減少碼轉(zhuǎn)換比特流所需的計算機周期數(shù)和/或減少碼轉(zhuǎn)換比特流所需的存儲器來降低所述復(fù)雜度。
當(dāng)?shù)酱a轉(zhuǎn)換器的輸出codec支持輸入codec的所有特征(運動向量格式、幀大小以及空間轉(zhuǎn)換類型)時,所述裝置包括用于進入比特流的VLC解碼器、語義映射模塊和用于輸出比特流的VLC編碼器。VLC解碼器解碼比特流語法。語義映射模塊將第一codec的解碼符號轉(zhuǎn)換為適用于以第二codec格式進行編碼的符號。然后對所述語法元素進行VLC編碼以形成輸出比特流。
當(dāng)?shù)酱a轉(zhuǎn)換器的輸出codec不支持輸入codec的所有特征(運動向量格式、幀大小以及空間轉(zhuǎn)換類型)時,所述裝置包括用于輸入codec的解碼模塊、用于將輸入codec符號轉(zhuǎn)換為有效輸出codec值的模塊以及用于生成輸出比特流的編碼模塊。
本發(fā)明提供了用于將輸入幀大小轉(zhuǎn)換為有效輸出codec幀大小的方法。一種方法是使輸出幀大小大于輸入幀大小,并用恒定的色彩來填充輸出幀的多余區(qū)域。另一種方法是是輸出幀大小小于輸入幀大小,并修剪(crop)輸入幀以創(chuàng)建輸出幀。
本發(fā)明提供了用于將輸入運動向量轉(zhuǎn)換為有效輸出運動向量的方法。
如果輸入codec支持每宏塊有多個運動向量,而輸出codec不支持每宏塊相同數(shù)量的運動向量,則轉(zhuǎn)換輸入向量的數(shù)量以匹配可用的輸出配置。如果輸出codec支持的每宏塊的運動向量數(shù)量大于輸入運動向量的數(shù)量,則復(fù)制輸入向量以形成有效的輸出向量,每宏塊兩個運動向量可通過復(fù)制每個輸入向量來轉(zhuǎn)換為每宏塊4個運動向量。相反,如果輸出codec支持的每宏塊的運動向量少于輸入codec,則可組合輸入向量以形成一個或多個輸出向量。
如果輸入codec支持下述P幀,其帶有不是最近解碼的幀的參考幀,而輸出codec不支持,則需要縮放輸入運動向量,然后所述運動向量就可參考最近解碼的幀。
如果輸出codec中的運動向量的分辨率低于輸入codec中的運動向量的分辨率,則輸入運動向量分量被轉(zhuǎn)換為最接近的有效輸出運動向量分量值。例如,如果輸入codec支持四分之一象素運動補償,而輸出codec只支持半象素運動補償,則輸入中的任何四分之一象素運動向量都被轉(zhuǎn)換為最接近的半象素值。
如果輸出codec中的運動向量的可允許范圍小于輸入codec中的運動向量的可允許范圍,則檢查所解碼或計算出的運動向量,并且如果需要的話則進行調(diào)整以落入到允許的范圍中。
所述裝置具有一種優(yōu)化操作模式,用于具有作為有效輸出運動向量的輸入運動向量的宏塊。這一途徑有另外的限制,即輸入和輸出codec必須使用相同的空間變換、相同的參考幀和相同的量化。在此模式中,將量化變換系數(shù)及其逆變換象素值從碼轉(zhuǎn)換器的解碼部分直接路由到編碼部分,不再需要在碼轉(zhuǎn)換器的編碼部分中進行變換、量化、逆量化和逆變換。
本發(fā)明提供了用于將P幀轉(zhuǎn)換為I幀的方法。所使用的方法將輸出幀類型設(shè)置為I幀,并將每個宏塊編碼為內(nèi)宏塊,而不考慮輸入比特流中的宏塊類型。
本發(fā)明提供了用于將“未編碼”幀轉(zhuǎn)換為P幀,或?qū)⑵鋸拇a轉(zhuǎn)換比特流中丟棄的方法。
本發(fā)明的一個實施例是一種方法和裝置,用于在MPEG-4(簡單類)和H.263(基線)視頻codec之間進行碼轉(zhuǎn)換。
在另一個具體實施例中,本發(fā)明提供了一種方法,以在編碼器或碼轉(zhuǎn)換器中減少存儲器的使用,其中提供了運動向量的范圍,限制在正在被編碼的宏塊的預(yù)定鄰域內(nèi)。該方法包括確定參考幀內(nèi)的一個或多個象素以用于運動補償,并且在將運動向量的范圍設(shè)置在正在被編碼的宏塊的預(yù)定鄰域內(nèi)提供的一個或多個象素期間對該宏塊進行編碼。該方法還包括將編碼宏塊存儲到緩沖器中,同時該緩沖器保存了其他編碼宏塊。
本發(fā)明的目的、特征和優(yōu)點就發(fā)明人所知來說具有新穎性,并在所附權(quán)利要求中具體地提出了。本發(fā)明(就其組織和操作方式來說)以及其他目的和優(yōu)點通過參考下面的描述并結(jié)合附圖可得到最佳的理解。


圖1的簡化框圖示出了根據(jù)本發(fā)明的實施例,從第一混合視頻codec到第二混合視頻codec的碼轉(zhuǎn)換器連接,其中第二codec支持第一codec的特征。
圖2的簡化框圖示出了根據(jù)本發(fā)明的實施例,從H.263到MPEG-4的碼轉(zhuǎn)換器連接。
圖3的簡化框圖示出了根據(jù)本發(fā)明的實施例,從一個混合視頻codec到第二混合視頻codec的碼轉(zhuǎn)換器連接。
圖4的簡化框圖示出了根據(jù)本發(fā)明的實施例,從一個混合視頻codec到第二混合視頻codec的碼轉(zhuǎn)換器連接的優(yōu)化模式。
圖5的簡化框圖示出了根據(jù)本發(fā)明的實施例,在H.263編碼期間如何使用參考幀和宏塊緩沖器。
具體實施例方式
根據(jù)本發(fā)明,提供了用于電信的多種技術(shù)。本發(fā)明提供了一種方法和系統(tǒng),用于在混合視頻CODEC比特流之間進行碼轉(zhuǎn)換。僅僅是例如地說,本發(fā)明已被應(yīng)用到電信網(wǎng)絡(luò)環(huán)境,但可以認識到本發(fā)明具有寬得多的應(yīng)用范圍。
下面詳細地討論了本發(fā)明的方法和裝置。在下面的描述中,為了進行說明,提出了大量的具體細節(jié)以透徹地理解本發(fā)明。使用了簡單類MPEG-4和基線H.263的情形來進行說明和例示。這里所描述的方法是通用的,適用于任何混合視頻codec對之間的碼轉(zhuǎn)換。本領(lǐng)域內(nèi)的技術(shù)人員將會認識到,可以使用其他步驟、配置和設(shè)計而不會偏離本發(fā)明的精神和范圍。
圖1是根據(jù)本發(fā)明的實施例,在兩個codec之間進行碼轉(zhuǎn)換的優(yōu)選實施例的框圖,其中第一codec(輸入比特流)支持第二codec(輸出比特流)的特征的一個子集。本圖僅僅是一個示例,不應(yīng)不適當(dāng)?shù)叵拗茩?quán)利要求的范圍。本領(lǐng)域內(nèi)的技術(shù)人員將會認識到許多變體、可替換方案和修正。輸入比特流由可變長度解碼器1解碼。解碼符號在第一視頻codec中的語義以及它們在第二視頻codec中的語義中的任何差別由語義轉(zhuǎn)換模塊2解析。對系數(shù)進行可變長度編碼以形成輸出比特流3。階段1的輸出是一個codec符號列表,例如宏塊類型、運動向量和變換系數(shù)。階段2的輸出是先前的列表,但具有使所述符號符合第二codec所需的任何修正。階段3的輸出是按第二codec標準編碼的比特流。
圖2是根據(jù)本發(fā)明的實施例,將基線H.263比特流碼轉(zhuǎn)換為MPEG-4比特流的優(yōu)選實施例的框圖。本圖僅僅是一個示例,不應(yīng)不適當(dāng)?shù)叵拗茩?quán)利要求的范圍。本領(lǐng)域內(nèi)的技術(shù)人員將會認識到許多變體、可替換方案和修正。輸入比特流由可變長度解碼器4解碼。如果宏塊是內(nèi)編碼宏塊,則對解碼系數(shù)進行逆向內(nèi)預(yù)測6。DC DCT系數(shù)的內(nèi)預(yù)測是強制的。碼轉(zhuǎn)換器可選擇是否使用可選的內(nèi)AC系數(shù)預(yù)測。這一處理是MPEG-4標準中所指定的內(nèi)預(yù)測的逆。對所述系數(shù)進行可變長度編碼以形成輸出比特流8。
當(dāng)將H.263比特流碼轉(zhuǎn)換為MPEG-4比特流時,碼轉(zhuǎn)換器將在輸出比特流中第一個碼轉(zhuǎn)換視頻幀之前插入MPEG-4 VisualObjectSequence(可視化對象序列)、VisualObject(可視化對象)和VideoObjectLayer(視頻對象層)頭部。語義轉(zhuǎn)換模塊2在輸入列表的第一個字符前插入VisualObjectSequence、VisualObject和VideoObjectLayer。
當(dāng)將H.263比特流碼轉(zhuǎn)換為MPEG-4比特流時,H.263比特流中的圖像頭部被轉(zhuǎn)換為碼轉(zhuǎn)換比特流中的VideoObjectPlane(視頻對象平面)頭部。語義轉(zhuǎn)換模塊2在每次出現(xiàn)“圖像頭部”時都替換以“VideoObjectPlane頭部”。
當(dāng)將H.263比特流碼轉(zhuǎn)換為MPEG-4比特流時,如果H.263比特流包含GOB頭部,則將它們轉(zhuǎn)換為輸出比特流中的視頻分組頭部。語義轉(zhuǎn)換模塊2在每次出現(xiàn)“GOB頭部”時都替換以“視頻分組頭部”。
圖3是根據(jù)本發(fā)明的實施例,在兩個混合視頻codec之間進行碼轉(zhuǎn)換的優(yōu)選實施例的框圖,其中到碼轉(zhuǎn)換器的輸出codec不支持輸入codec的特征(運動向量格式、幀大小和空間變換類型)。本圖僅僅是一個示例,不應(yīng)不適當(dāng)?shù)叵拗茩?quán)利要求的范圍。本領(lǐng)域內(nèi)的技術(shù)人員將會認識到許多變體、可替換方案和修正。對進入比特流進行可變長度解碼9,以產(chǎn)生codec列表例如宏塊類型、運動向量和變換系數(shù)。對變換系數(shù)進行逆量化10,然后逆變換11將所述系數(shù)轉(zhuǎn)換到象素域,產(chǎn)生當(dāng)前宏塊的解碼圖像。對于互編碼宏塊,該圖像被添加12到從參考幀14恢復(fù)出的經(jīng)過運動補償?shù)暮陦K圖像。這包括用于輸入混合視頻codec的標準解碼器。
一些輸出視頻codec標準使得解碼器只支持輸入codec所支持的多個幀大小的一個子集。如果輸入幀大小不為輸出codec所支持,則碼轉(zhuǎn)換器輸出完全包含輸入幀的最小的合法輸出幀,并執(zhí)行幀大小轉(zhuǎn)換15。輸出幀以輸入幀為中心。如果輸入幀是I幀,則輸出幀中在輸入幀之外的區(qū)域被編碼為合適的背景色。如果輸入幀是P幀,則輸出幀中在輸入幀之外的區(qū)域被編碼為未編碼宏塊。
另一種可替換的實現(xiàn)幀大小變換的方法是使碼轉(zhuǎn)換器輸出完全適配在輸入幀內(nèi)的最大合法輸出幀大小。輸出幀以輸入幀為中心。在此情形下,幀大小轉(zhuǎn)換模塊15將修剪輸入幀,丟棄落在輸出幀邊界外部的任何輸入宏塊。
運動向量有4種特征可能為輸入codec支持但不為輸入codec所支持。它們是每宏塊的運動向量數(shù)量中的差別、用于運動補償?shù)膮⒖紟械牟顒e、運動向量補償?shù)姆直媛手械牟顒e以及運動向量的運行范圍中的差別。在每種情形下,碼轉(zhuǎn)換器的運動向量轉(zhuǎn)換單元16都必須選擇一個有效的輸出運動向量,其“最佳地近似于”輸入運動信息。這些轉(zhuǎn)換可能會導(dǎo)致圖像質(zhì)量的損失和/或外發(fā)比特流大小的增加。
當(dāng)(多個)輸入運動向量不同于(多個)輸出運動向量時,必須在編碼階段使用編碼器參考幀25來重新計算宏塊差錯系數(shù)。
如果輸入codec支持每宏塊多運動向量,而輸出codec不支持每宏塊具有相同數(shù)量的運動向量,則轉(zhuǎn)換輸入向量的數(shù)量以匹配可用的輸出配置。如果輸出codec支持的每宏塊的運動向量數(shù)量大于輸入運動向量的數(shù)量,則復(fù)制輸入向量以形成有效的輸出向量,例如,每宏塊兩個運動向量可通過復(fù)制每個輸入向量來轉(zhuǎn)換為每宏塊4個運動向量。相反,如果輸出codec支持的每宏塊的運動向量少于輸入codec,則可組合輸入向量以形成一個或多個輸出向量。例如,當(dāng)MPEG-4到H.263碼轉(zhuǎn)換器遇到具有4個運動向量的輸入宏塊時,它必須組合所述4個向量以獲得單個輸出運動向量。
用于組合運動向量的一種方法是使用輸入向量的x和y分量的意義。
另一種方法是取得輸入向量的x和y分量的中位數(shù)(median)。
從多個輸入運動向量到所需數(shù)量的輸出運動向量的轉(zhuǎn)換總是首先被執(zhí)行,所得到的(多個)向量如果需要的話被用作為后續(xù)轉(zhuǎn)換的輸入。
如果輸入codec支持下述P幀,其帶有不是最近解碼的幀的參考幀,而輸出codec不支持,則需要縮放輸入運動向量,然后所述運動向量就可參考最近解碼的幀。通過將輸入向量的每個分量除以被跳過的參考幀的數(shù)量加1,執(zhí)行所述縮放。
如果輸出codec中的運動向量的分辨率低于輸入codec中的運動向量的分辨率,則輸入運動向量分量被轉(zhuǎn)換為最接近的有效輸出運動向量分量值。例如,如果輸入codec支持四分之一象素運動補償,而輸出codec只支持半象素運動補償,則輸入中的任何四分之一象素運動向量都被轉(zhuǎn)換為最接近的半象素值。
當(dāng)碼轉(zhuǎn)換器遇到下述輸入運動向量時,所述運動向量具有位于輸出codec所允許的范圍之外的一個或兩個分量,則它必須將所述向量轉(zhuǎn)換為允許的輸出值。類似的情形在下述場合也會發(fā)生,即當(dāng)輸入運動向量可能指向視頻幀邊界外部的區(qū)域,而輸出運動向量被限制為指向圖像內(nèi)部時。在兩種情形下,所述算法都基于輸入向量選擇有效的輸出向量。
一種轉(zhuǎn)換方法是將輸出運動向量分量箝制到最接近的可允許值。例如,MPEG-4運動向量可能大于H.263的-16到15.5象素的范圍。在此情形下,所計算的H.263向量的x分量μ由下式給出μx=-16vx<-16vx-16≤vx<1615.5vx≥16]]>另一種轉(zhuǎn)換方法是使輸出向量是最大的有效輸出向量,具有與輸入向量相同的方向。
在幀大小和運動向量轉(zhuǎn)換之后,對解碼宏塊象素進行空間變換19,這發(fā)生在對互宏塊減掉17經(jīng)過運動補償?shù)膮⒖贾?5之后。在傳輸之前,對變換系數(shù)進行量化20和可變長度編碼21。對經(jīng)過量化的變換系數(shù)進行逆量化22,并通過逆變換23轉(zhuǎn)換到象素域。對于內(nèi)宏塊,所述象素直接存儲在參考幀存儲庫25中。在存儲在參考幀存儲庫25之前,將互宏塊添加24到經(jīng)過運動補償?shù)膮⒖枷笏厣稀?br> 圖4是下述優(yōu)選實施例的優(yōu)化模式的方框圖,其用于根據(jù)本發(fā)明的實施例,當(dāng)碼轉(zhuǎn)換器的輸出codec不支持輸入codec的特征(運動向量格式、幀大小和空間變換類型)時,所述兩個混合視頻codec之間的碼轉(zhuǎn)換。本圖僅僅是一個示例,不應(yīng)不適當(dāng)?shù)叵拗茩?quán)利要求的范圍。本領(lǐng)域內(nèi)的技術(shù)人員將會認識到許多變體、可替換方案和修正。只有當(dāng)輸入和輸出codec使用相同的空間變換、相同的參考幀和相同的量化時才可使用所述優(yōu)化模式。所述優(yōu)化模式用于下述互宏塊,其具有作為合法輸出運動向量的輸入運動向量。在優(yōu)化模式中,逆量化器10和逆空間變換11的輸出在幀大小轉(zhuǎn)換之后分別直接饋送給可變長度編碼器21和幀存儲庫更新24。這一模式明顯地更加有效的原因在于它不使用編碼方空間變換19、量化器20、逆量化器22和逆變換23等模塊。如果解碼器運動補償12和編碼器運動補償24采用不同的舍入(rounding)方法,則必須周期性地使每個幀都運行通過圖3所示的完整的碼轉(zhuǎn)換路徑,以確保在原始比特流的輸出和碼轉(zhuǎn)換器輸出之間沒有可見的漂移。
H.263標準規(guī)定每個宏塊對于每132個幀則必須至少進行一次內(nèi)編碼。MPEG-4標準沒有類似的要求。在我們的方法中,為了確保每個宏塊都滿足所述H.263內(nèi)編碼約束,碼轉(zhuǎn)換器跟蹤上一個MEPG-4 I幀以來的幀數(shù)量,如果自上一個I幀以來在MPEG-4流中存在多于131個的P幀,則將解碼出的P幀強制編碼為I幀。
如果輸入codec支持“未編碼”幀,而輸出codec不支持,則所述裝置將轉(zhuǎn)換所述幀。一種轉(zhuǎn)換方法是使碼轉(zhuǎn)換器完全從碼轉(zhuǎn)換比特流中丟棄該幀。另一種轉(zhuǎn)換方法是使碼轉(zhuǎn)換器將該幀作為P幀發(fā)送,其中所有宏塊都編碼為“未編碼”宏塊。
在傳統(tǒng)解碼器和編碼器中,參考幀存儲庫14、25通常實現(xiàn)為不同的幀。一個是參考幀(先前編碼的幀),一個是當(dāng)前編碼的幀。當(dāng)codec運動向量只允許取有限的值范圍時,可以降低這些存儲需求。在我們的方法中,通過認識到“只有在編碼宏塊時所使用的參考幀宏塊才是在其最大的允許運動向量值范圍內(nèi)的鄰居”,我們大大降低了所述存儲需求。
圖5示出了宏塊緩沖過程,作為示例使用了QCIF大小的幀26,其底層的9×11宏塊柵格正在進行基線H.263編碼。本圖僅僅是一個示例,不應(yīng)不適當(dāng)?shù)叵拗茩?quán)利要求的范圍。本領(lǐng)域內(nèi)的技術(shù)人員將會認識到許多變體、可替換方案和修正。緊包圍當(dāng)前正在被編碼的宏塊27的宏塊28包含編碼期間可用于運動補償?shù)膮⒖紟械南笏?。正在被編碼的宏塊27前而的宏塊已經(jīng)被編碼29?;€H.263運動向量的最大范圍是-16到15.5個象素。我們沒有存儲當(dāng)前圖像,而是維護宏塊緩沖器30,其可以保存一個圖像行中的宏塊加上1個宏塊那么多數(shù)量的宏塊。每個宏塊都被編碼之后,緩沖器中最舊的宏塊被寫到其在參考圖像中的位置,而當(dāng)前宏塊被寫到緩沖器中。
所述緩沖器還可存儲緩沖器中的每個宏塊是已編碼還是“未編碼”。對于“未編碼”宏塊,我們的方法是忽略將這些宏塊寫到緩沖器這一操作,將它們向外寫回到參考幀,因為所述宏塊象素值與參考幀中的相比沒有變化。
前面對優(yōu)選實施例的描述使得本領(lǐng)域內(nèi)的技術(shù)人員可以制造或使用本發(fā)明。對于本領(lǐng)域內(nèi)的技術(shù)人員來說很清楚可以對這些實施例作出各種修正,并且可以將在此定義的一般原理應(yīng)用到其他實施例而無需付出創(chuàng)造性的勞動。因此,不應(yīng)將本發(fā)明限制于這里所示出的實施例,相反,其應(yīng)具有與這里所公開的原理和新穎特征相一致的最大的范圍。
權(quán)利要求
1.一種用于減少編碼器或碼轉(zhuǎn)換器中存儲器使用的方法,其中運動向量的范圍設(shè)置在正被編碼的宏塊的預(yù)定鄰域內(nèi),所述方法包括確定用于運動補償?shù)膮⒖紟瑑?nèi)的一個或多個象素;在已將所述運動向量的范圍設(shè)置在正被編碼的宏塊的所述預(yù)定鄰域內(nèi)的一個或多個象素內(nèi)期間,編碼所述宏塊;以及將已編碼宏塊存儲到緩沖器中,同時該緩沖器還維護其他已編碼的宏塊。
2.如權(quán)利要求1所述的方法,其中所述緩沖器中沒有任何未編碼的宏塊。
3.如權(quán)利要求1所述的方法,其中所述編碼器或碼轉(zhuǎn)換器用于基線H.263編碼器或碼轉(zhuǎn)換器,所述方法包括對于單個參考幀,將表示一個幀行加上一個宏塊的多個宏塊存儲到緩沖器;將所述緩沖器中最舊的宏塊寫入?yún)⒖紟?;以及將所述緩沖器中所述最舊的宏塊替換為已編碼的宏塊。
全文摘要
一種方法和裝置(圖1),用于在混合視頻codec編碼的比特流之間進行碼轉(zhuǎn)換,與解碼/解壓縮原始比特流(圖2的4)并將之重新編碼/重新壓縮為第二格式(圖2的6、7、8)相比,所述方法和裝置使用的資源更少。根據(jù)特定的實施例,所述方法可以利用標準視頻壓縮算法的類似性,在可能時將進入比特流中的編碼參數(shù)直接轉(zhuǎn)換為構(gòu)成外發(fā)比特流的兼容數(shù)據(jù)的編碼參數(shù)。
文檔編號H04N7/26GK101090499SQ20071012724
公開日2007年12月19日 申請日期2003年7月15日 優(yōu)先權(quán)日2002年7月17日
發(fā)明者斯蒂芬·F·布朗, 馬爾萬·A·賈布里 申請人:達麗星網(wǎng)絡(luò)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1