本申請涉及視頻編輯技術(shù)領(lǐng)域,尤其涉及一種視頻文件中添加標簽的方法和裝置。
背景技術(shù):
通常情況下,為了在采用h264編碼的視頻文件中添加標簽,需要首先對視頻文件進行解碼得到每一幀數(shù)據(jù)(argb像素數(shù)據(jù)或者yuv像素),再通過中央處理器(centralprocessingunit,cpu)或者圖形處理器(graphicsprocessingunit,gpu)運算得到標簽的每一幀數(shù)據(jù),將視頻文件的每一幀數(shù)據(jù)和標簽的每一幀數(shù)據(jù)進行合并得到新的幀數(shù)據(jù),最后對得到的所有新的幀數(shù)據(jù)進行編碼得到新的視頻文件。
其中,相關(guān)技術(shù)中,在編碼時會存在幀內(nèi)/幀間宏塊信息搜索的過程,而這一過程的計算量較大,耗費時間較長,因此,相關(guān)技術(shù)會存在處理時間較長的問題,影響用戶體驗。
技術(shù)實現(xiàn)要素:
本申請旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。
為此,本申請的一個目的在于提出一種視頻文件中添加標簽的方法,該方 法可以提升處理速度,進而提升用戶體驗。
本申請的另一個目的在于提出一種視頻文件中添加標簽的裝置。
為達到上述目的,本申請第一方面實施例提出的視頻文件中添加標簽的方法,包括:解碼添加標簽前的視頻文件,得到視頻數(shù)據(jù);存儲視頻數(shù)據(jù)中的宏塊信息;獲取標簽數(shù)據(jù),并合并視頻數(shù)據(jù)和標簽數(shù)據(jù),得到新的視頻數(shù)據(jù);對所述新的視頻數(shù)據(jù)進行編碼,得到添加標簽后的視頻文件,其中,所述編碼包括預測編碼,所述預測編碼包括:當標簽在被添加到的視頻幀內(nèi)的占用比例小于預設(shè)值或者當前編碼的宏塊是標簽未占用的宏塊時,采用存儲的宏塊信息進行預測編碼。
本申請第一方面實施例提出的視頻文件中添加標簽的方法,通過在解碼視頻文件時存儲宏塊信息,并在一些情況下的預測編碼時,采用存儲的宏塊信息進行預測編碼,由于宏塊信息的搜索過程的計算量較大,會耗費很長時間,本實施例中不進行宏塊信息搜索而直接采用存儲的宏塊信息,可以顯著降低處理時間,從而提升用戶體驗。
為達到上述目的,本申請第二方面實施例提出的視頻文件中添加標簽的裝置,包括:解碼模塊,用于解碼添加標簽前的視頻文件,得到視頻數(shù)據(jù);存儲模塊,用于存儲視頻數(shù)據(jù)中的宏塊信息;合并模塊,用于獲取標簽數(shù)據(jù),并合并視頻數(shù)據(jù)和標簽數(shù)據(jù),得到新的視頻數(shù)據(jù);編碼模塊,用于對所述新的視頻數(shù)據(jù)進行編碼,得到添加標簽后的視頻文件,其中,所述編碼包括預測編碼,所述預測編碼包括:當標簽在被添加到的視頻幀內(nèi)的占用比例小于預設(shè)值或者當前編碼的宏塊是標簽未占用的宏塊時,采用存儲的宏塊信息進行預測編碼。
本申請第二方面實施例提出的視頻文件中添加標簽的裝置,通過在解碼 視頻文件時存儲宏塊信息,并在一些情況下的預測編碼時,采用存儲的宏塊信息進行預測編碼,由于宏塊信息的搜索過程的計算量較大,會耗費很長時間,本實施例中不進行宏塊信息搜索而直接采用存儲的宏塊信息,可以顯著降低處理時間,從而提升用戶體驗。
本申請附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本申請的實踐了解到。
附圖說明
本申請上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1是本申請一實施例提出的視頻文件中添加標簽的方法的流程示意圖;
圖2是本申請另一實施例提出的視頻文件中添加標簽的方法的流程示意圖;
圖3是h264編解碼的流程示意圖;
圖4是h264編碼后得到的nal單元的示意圖;
圖5是標簽在視頻幀內(nèi)占用區(qū)域的示意圖;
圖6是本申請另一實施例提出的視頻文件中添加標簽的裝置的結(jié)構(gòu)示意圖;
圖7是本申請另一實施例提出的視頻文件中添加標簽的裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面詳細描述本申請的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的模塊或具有相同或類似功能的模塊。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本申請,而不能理解為對本申請的限制。相反,本申請的實施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
圖1是本申請一實施例提出的視頻文件中添加標簽的方法的流程示意圖。
參見圖1,該方法包括:
s11:解碼添加標簽前的視頻文件,得到視頻數(shù)據(jù)。
本申請實施例中,以h264編解碼為例,因此,添加標簽前的視頻文件可以具體是指采用h264編碼的視頻文件,需要在該視頻文件中添加標簽。
對視頻文件進行解碼后,可以得到視頻文件的每一幀數(shù)據(jù),為了與后續(xù)的標簽的每一幀數(shù)據(jù)區(qū)分,對視頻文件進行解碼后得到的每一幀數(shù)據(jù)可以稱為視頻數(shù)據(jù)。
s12:存儲視頻數(shù)據(jù)中的宏塊信息。
每一幀數(shù)據(jù)可以包括多個宏塊信息,在存儲時,可以根據(jù)不同場景存儲相應(yīng)的宏塊信息。例如,可以存儲所有的宏塊信息,或者,可以僅存儲未被標簽占用的宏塊信息。具體內(nèi)容可以參見后續(xù)實施例。
s13:獲取標簽數(shù)據(jù),并合并視頻數(shù)據(jù)和標簽數(shù)據(jù),得到新的視頻數(shù)據(jù)。
其中,可以由用戶設(shè)置需要添加到視頻文件中的標簽內(nèi)容,再通過cpu或gpu運算得到標簽的每一幀數(shù)據(jù),該標簽的每一幀數(shù)據(jù)可以稱為標簽數(shù)據(jù)。
在得到視頻數(shù)據(jù)和標簽數(shù)據(jù)后,可以合并視頻數(shù)據(jù)和標簽數(shù)據(jù),以對 應(yīng)每一幀,合并視頻文件的每一幀數(shù)據(jù)和標簽的每一幀數(shù)據(jù),得到新的幀數(shù)據(jù),該新的幀數(shù)據(jù)可以稱為新的視頻數(shù)據(jù)。
s14:對所述新的視頻數(shù)據(jù)進行編碼,得到添加標簽后的視頻文件,其中,所述編碼包括預測編碼,所述預測編碼包括:當標簽在被添加到的視頻幀內(nèi)的占用比例小于預設(shè)值或者當前編碼的宏塊是標簽未占用的宏塊時,采用存儲的宏塊信息進行預測編碼。
在得到新的視頻數(shù)據(jù)后可以對其進行編碼,從而得到新的視頻文件,該新的視頻文件就是添加標簽后的視頻文件。
在編碼時通常會包括:預測編碼、變換編碼、量化和熵編碼等。
相關(guān)技術(shù)中,在預測編碼時通常采用幀內(nèi)/幀間宏塊信息搜索的過程,以根據(jù)搜索得到的幀內(nèi)預測信息或幀間預測信息進行預測編碼。
而本實施例中,在一些情況下,直接采用存儲的宏塊信息進行預測編碼,不需要再進行宏塊信息的搜索。其中,一些情況包括:標簽在被添加到的視頻幀內(nèi)的占用比例小于預設(shè)值時,或者,當前編碼的宏塊是標簽未占用的宏塊。其中,所述預測編碼可以包括對不同宏塊依次進行編碼的宏塊循環(huán)編碼,以判斷當前編碼的宏塊是否是標簽未占用的宏塊。
本實施例中,通過在解碼視頻文件時存儲宏塊信息,并在一些情況下的預測編碼時,采用存儲的宏塊信息進行預測編碼,由于宏塊信息的搜索過程的計算量較大,會耗費很長時間,本實施例中不進行宏塊信息搜索而直接采用存儲的宏塊信息,可以顯著降低處理時間,從而提升用戶體驗。
圖2是本申請另一實施例提出的視頻文件中添加標簽的方法的流程示意圖。
為了更好的理解本申請,先對h264編解碼相關(guān)內(nèi)容進行描述。
h264的編解碼流程如圖3所示。對于編碼過程,首先進行預測編碼,而預測編碼分為幀內(nèi)預測和幀間預測,對于幀內(nèi)編碼,需要在多種預測模式中搜尋最優(yōu)的預測模式,然后比較預測值和真實像素之間的差值傳給后續(xù)環(huán)節(jié);對于幀間編碼,基于參考幀進行當前幀與參考幀之間的運動估計求得運動向量,利用運動估計和運動補償?shù)玫较鄬τ趨⒖紟\動向量,比較預測值和真實像素之間的差值傳遞給后續(xù)環(huán)節(jié);然后會進行變換編碼,去除預測差值中的高頻信號,然后通過量化進一步減小差值信號的能量;最后進行重排序和熵編碼得到最終的網(wǎng)絡(luò)抽象層(networkabstractionlayer,nal)單元,存儲到視頻文件中。
對于解碼過程,則是編碼的逆過程。
參見圖4,每個nal單元(nalunit)包含一個或多個片(slice),每個片包含片頭和片內(nèi)數(shù)據(jù)。片內(nèi)數(shù)據(jù)由一系列連續(xù)的編碼宏塊(mb)構(gòu)成,根據(jù)宏塊類型的不同,分為幀內(nèi)預測宏塊及幀間預測宏塊或者不進行預測的宏塊(skipmb),從圖中可以看出,幀內(nèi)預測宏塊和幀間預測宏塊具有不同類型的預測信息,幀內(nèi)預測信息為預測模式(intramodes),而幀間預測信息為參考幀(referenceframes)和運動向量(motionvectors)。
一般場景下,被添加到視頻文件中的標簽并不會占用幀圖像所有空間,更多的情況是,標簽只在視頻文件的幀中占用較小的區(qū)域,類似圖5所示。將視頻幀分割為4x4個區(qū)域,其中為填充部分表示標簽沒有占用的區(qū)域,填充部分表示標簽占用的區(qū)域。此時,被標簽占用的區(qū)域為整個視頻幀的3/16?;谶@種特點,本申請實施例在新的幀數(shù)據(jù)編碼的過程中,有效利用解碼得到的信息,減少編碼過程中某些操作。
參見圖2,該方法包括:
s201:根據(jù)標簽的坐標信息確定標簽在視頻幀中的占用比例。
其中,標簽可以由用戶設(shè)置,因此,可以從設(shè)置信息中獲取標簽的坐標信息。
占用比例是指標簽占用的宏塊個數(shù)與視頻幀的總的宏塊個數(shù)的比值。
宏塊大小通常是16x16個像素點,根據(jù)標簽的坐標信息和每個宏塊大小可以計算出標簽占用的宏塊個數(shù),再根據(jù)每個視頻幀的總的宏塊個數(shù),可以確定標簽在視頻幀中的占用比例。
s202:判斷該占用比例是否大于預設(shè)值,若是,執(zhí)行s203-s211,否則,執(zhí)行s212-s218。
預設(shè)值例如是25%。
在獲取到占用比例和預設(shè)值后,可以比較這兩個值,以得到判斷結(jié)果。
s203:解碼添加標簽前的視頻文件,得到視頻數(shù)據(jù),并存儲視頻數(shù)據(jù)中未被標簽占用的宏塊信息。
其中,可以根據(jù)標簽的坐標信息確定標簽占用的宏塊,進而獲取到未被標簽占用的宏塊信息。
宏塊信息可以包括:幀內(nèi)預測信息和幀間預測信息。
幀內(nèi)預測信息具體是預測模式(intramodes)。
幀間預測信息具體包括:參考幀(referenceframes)和運動向量(motionvectors)。
s204:獲取標簽數(shù)據(jù),并合并視頻數(shù)據(jù)和標簽數(shù)據(jù),得到新的視頻數(shù)據(jù)。
其中,可以由用戶設(shè)置需要添加到視頻文件中的標簽內(nèi)容,再通過cpu或gpu運算得到標簽的每一幀數(shù)據(jù),該標簽的每一幀數(shù)據(jù)可以稱為標簽數(shù) 據(jù)。
在得到視頻數(shù)據(jù)和標簽數(shù)據(jù)后,可以合并視頻數(shù)據(jù)和標簽數(shù)據(jù),以對應(yīng)每一幀,合并視頻文件的每一幀數(shù)據(jù)和標簽的每一幀數(shù)據(jù),得到新的幀數(shù)據(jù),該新的幀數(shù)據(jù)可以稱為新的視頻數(shù)據(jù)。
得到新的視頻數(shù)據(jù)后可以進行后續(xù)的編碼等流程。
s205:在宏塊循環(huán)編碼開始后,確定當前編碼的宏塊。
例如,采用遍歷的方式,依次將每個宏塊作為當前編碼的宏塊。
s206:判斷當前編碼的宏塊是否被標簽占用,若是,執(zhí)行s207,否則,執(zhí)行s208。
s207:通過幀內(nèi)和幀間搜索過程計算新的宏塊信息,并采用新的宏塊信息,對新的視頻數(shù)據(jù)進行預測編碼。之后執(zhí)行s209。
當宏塊被標簽占用后,可以重新進行宏塊信息的搜索,以提高準確度。
例如,通過幀內(nèi)宏塊信息的搜索,可以得到新的預測模式,并采用新的預測模式進行幀內(nèi)預測編碼,通過幀間宏塊信息的搜索,可以得到新的參考幀和運動向量,采用新的參考幀和運行向量進行幀間預測編碼。
s208:采用存儲的宏塊信息,對新的視頻數(shù)據(jù)進行預測編碼。
例如,存儲的宏塊信息包括:幀內(nèi)預測信息(預測模式)和幀間預測信息(參考幀和運動向量),則可以分別根據(jù)幀內(nèi)預測信息進行幀內(nèi)預測編碼,根據(jù)幀間預測信息進行幀間預測編碼。
s209:對預測編碼后的數(shù)據(jù)進行變換編碼、量化以及熵編碼等。
s210:判斷是否結(jié)束宏塊循環(huán)編碼,若是,執(zhí)行s211,否則,重復執(zhí)行s205及其后續(xù)步驟。
例如,當所有宏塊都編碼完成后,確定結(jié)束宏塊循環(huán)編碼,否則繼續(xù) 宏塊循環(huán)編碼。
s211:宏塊循環(huán)編碼結(jié)束。
s212:解碼添加標簽前的視頻文件,得到視頻數(shù)據(jù),并存儲視頻數(shù)據(jù)中所有宏塊信息。
其中,可以根據(jù)標簽的坐標信息確定標簽占用的宏塊,進而獲取到未被標簽占用的宏塊信息。
宏塊信息可以包括:幀內(nèi)預測信息和幀間預測信息。
幀內(nèi)預測信息具體是預測模式(intramodes)。
幀間預測信息具體包括:參考幀(referenceframes)和運動向量(motionvectors)。
s213:獲取標簽數(shù)據(jù),并合并視頻數(shù)據(jù)和標簽數(shù)據(jù),得到新的視頻數(shù)據(jù)。
其中,可以由用戶設(shè)置需要添加到視頻文件中的標簽內(nèi)容,再通過cpu或gpu運算得到標簽的每一幀數(shù)據(jù),該標簽的每一幀數(shù)據(jù)可以稱為標簽數(shù)據(jù)。
在得到視頻數(shù)據(jù)和標簽數(shù)據(jù)后,可以合并視頻數(shù)據(jù)和標簽數(shù)據(jù),以對應(yīng)每一幀,合并視頻文件的每一幀數(shù)據(jù)和標簽的每一幀數(shù)據(jù),得到新的幀數(shù)據(jù),該新的幀數(shù)據(jù)可以稱為新的視頻數(shù)據(jù)。
得到新的視頻數(shù)據(jù)后可以進行后續(xù)的編碼等流程。
s214:在宏塊循環(huán)編碼開始后,確定當前編碼的宏塊。
例如,采用遍歷的方式,依次將每個宏塊作為當前編碼的宏塊。
s215:采用存儲的宏塊信息,對新的視頻數(shù)據(jù)進行預測編碼。
例如,存儲的宏塊信息包括:幀內(nèi)預測信息(預測模式)和幀間預測 信息(參考幀和運動向量),則可以分別根據(jù)幀內(nèi)預測信息進行幀內(nèi)預測編碼,根據(jù)幀間預測信息進行幀間預測編碼。
s216:對預測編碼后的數(shù)據(jù)進行變換編碼、量化以及熵編碼等。
s217:判斷是否結(jié)束宏塊循環(huán)編碼,若是,執(zhí)行s218,否則,重復執(zhí)行s214及其后續(xù)步驟。
例如,當所有宏塊都編碼完成后,確定結(jié)束宏塊循環(huán)編碼,否則繼續(xù)宏塊循環(huán)編碼。
s218:宏塊循環(huán)編碼結(jié)束。
上述的s208或s215中,通過省去幀內(nèi)/幀間宏塊信息搜索的過程,可以顯著減少編碼的時間。實驗表明,視頻的編碼時間大約為解碼時間2倍以上,而在編碼過程中,預測編碼的時間占據(jù)了整個編碼時間的70%左右,預測編碼的時間主要集中在宏塊信息的搜索。對于標簽占據(jù)宏塊比例小于預設(shè)值的情況,所有的宏塊信息搜索過程被省略,粗略估計可以給整個標簽添加過程帶來50%左右的性能提升。當然,此時忽略標簽信息給宏塊信息帶來的影響,會增加預測編碼的殘差,給最終編碼生成的碼流帶來一定的增加,然而在預設(shè)值范圍內(nèi),增加的范圍將會有限,相對于最終帶來的性能提升而言這種增加是值得的。對于標簽占用宏塊比例大于預設(shè)值的情況,根據(jù)宏塊占用的情況分別進行預測編碼,對于未被標簽占用的宏塊,利用解碼存儲的宏塊信息,可以有效降低編碼時間,對于被標簽占用的宏塊,重新搜索宏塊信息能保證最終預測編碼的殘差最優(yōu),相對于常規(guī)的編碼流程而言不帶來編碼信息的增加。
本實施例中,通過在解碼視頻文件時存儲宏塊信息,并在一些情況下的預測編碼時,采用存儲的宏塊信息進行預測編碼,由于宏塊信息的搜索 過程的計算量較大,會耗費很長時間,本實施例中不進行宏塊信息搜索而直接采用存儲的宏塊信息,可以顯著降低處理時間。進一步的,分情況采用存儲的宏塊信息進行預測編碼或重新搜索計算新的宏塊信息,可以兼顧運算量和準確度,滿足不同場景的需要。
圖6是本申請另一實施例提出的視頻文件中添加標簽的裝置的結(jié)構(gòu)示意圖。參見圖6,該裝置60包括:解碼模塊61、存儲模塊62、合并模塊63和編碼模塊64。
解碼模塊61,用于解碼添加標簽前的視頻文件,得到視頻數(shù)據(jù)。
本申請實施例中,以h264編解碼為例,因此,添加標簽前的視頻文件可以具體是指采用h264編碼的視頻文件,需要在該視頻文件中添加標簽。
對視頻文件進行解碼后,可以得到視頻文件的每一幀數(shù)據(jù),為了與后續(xù)的標簽的每一幀數(shù)據(jù)區(qū)分,對視頻文件進行解碼后得到的每一幀數(shù)據(jù)可以稱為視頻數(shù)據(jù)。
存儲模塊62,用于存儲視頻數(shù)據(jù)中的宏塊信息。
每一幀數(shù)據(jù)可以包括多個宏塊信息,在存儲時,可以根據(jù)不同場景存儲相應(yīng)的宏塊信息。例如,可以存儲所有的宏塊信息,或者,可以僅存儲未被標簽占用的宏塊信息。
合并模塊63,用于獲取標簽數(shù)據(jù),并合并視頻數(shù)據(jù)和標簽數(shù)據(jù),得到新的視頻數(shù)據(jù)。
其中,可以由用戶設(shè)置需要添加到視頻文件中的標簽內(nèi)容,再通過cpu或gpu運算得到標簽的每一幀數(shù)據(jù),該標簽的每一幀數(shù)據(jù)可以稱為標簽數(shù)據(jù)。
在得到視頻數(shù)據(jù)和標簽數(shù)據(jù)后,可以合并視頻數(shù)據(jù)和標簽數(shù)據(jù),以對 應(yīng)每一幀,合并視頻文件的每一幀數(shù)據(jù)和標簽的每一幀數(shù)據(jù),得到新的幀數(shù)據(jù),該新的幀數(shù)據(jù)可以稱為新的視頻數(shù)據(jù)。
編碼模塊64,用于對所述新的視頻數(shù)據(jù)進行編碼,得到添加標簽后的視頻文件,其中,所述編碼包括預測編碼,所述預測編碼包括:當標簽在被添加到的視頻幀內(nèi)的占用比例小于預設(shè)值時,采用存儲的宏塊信息進行預測編碼;或者,所述預測編碼包括對不同宏塊依次進行編碼的宏塊循環(huán)編碼,在當前編碼的宏塊是標簽未占用的宏塊時,采用存儲的宏塊信息進行預測編碼。
在得到新的視頻數(shù)據(jù)后可以對其進行編碼,從而得到新的視頻文件,該新的視頻文件就是添加標簽后的視頻文件。
在編碼時通常會包括:預測編碼、變換編碼、量化和熵編碼等。
相關(guān)技術(shù)中,在預測編碼時通常采用幀內(nèi)/幀間宏塊信息搜索的過程,以根據(jù)搜索得到的幀內(nèi)預測信息或幀間預測信息進行預測編碼。
而本實施例中,在一些情況下,直接采用存儲的宏塊信息進行預測編碼,不需要再進行宏塊信息的搜索。其中,一些情況包括:標簽在被添加到的視頻幀內(nèi)的占用比例小于預設(shè)值時,或者,當前編碼的宏塊是標簽未占用的宏塊。其中,所述預測編碼可以包括對不同宏塊依次進行編碼的宏塊循環(huán)編碼,以判斷當前編碼的宏塊是否是標簽未占用的宏塊。
一些實施例中,參見圖7,該裝置60還包括:
確定模塊65,用于根據(jù)標簽的坐標信息確定標簽在視頻幀中的占用比例。
其中,標簽可以由用戶設(shè)置,因此,可以從設(shè)置信息中獲取標簽的坐標信息。
占用比例是指標簽占用的宏塊個數(shù)與視頻幀的總的宏塊個數(shù)的比值。
宏塊大小通常是16x16,根據(jù)標簽的坐標信息和每個宏塊大小可以計算出標簽占用的宏塊個數(shù),再根據(jù)每個視頻幀的總的宏塊個數(shù),可以確定標簽在視頻幀中的占用比例。
相應(yīng)的,所述存儲模塊62具體用于:
如果所述占用比例大于預設(shè)值,則存儲視頻數(shù)據(jù)中未被標簽占用的宏塊信息;
如果所述占用比例小于或等于預設(shè)值,則存儲視頻數(shù)據(jù)中所有宏塊信息。
預設(shè)值例如是25%。
在獲取到占用比例和預設(shè)值后,可以比較這兩個值,以得到判斷結(jié)果。
在得到判斷結(jié)果后,根據(jù)判斷結(jié)果存儲未被占用的宏塊信息或者存儲所有宏塊信息。
一些實施例中,所述編碼模塊64執(zhí)行的預測編碼包括:
如果所述占用比例大于預設(shè)值,在宏塊循環(huán)編碼開始后,判斷當前編碼的宏塊是否被標簽占用;如果當前編碼的宏塊未被標簽占用,采用存儲的宏塊信息,對新的視頻數(shù)據(jù)進行預測編碼。
另一方面,如果當前編碼的宏塊被標簽占用,通過幀內(nèi)和幀間搜索過程計算新的宏塊信息,并采用新的宏塊信息,對新的視頻數(shù)據(jù)進行預測編碼。
一些實施例中,所述編碼模塊64執(zhí)行的預測編碼包括:
如果所述占用比例小于或等于預設(shè)值,在宏塊循環(huán)編碼開始后,采用存儲的宏塊信息,對新的視頻數(shù)據(jù)進行預測編碼。
本實施例中各模塊的具體內(nèi)容可以參見上述實施例中的相關(guān)描述,在此不 再詳細描述。
本實施例中,通過在解碼視頻文件時存儲宏塊信息,并在一些情況下的預測編碼時,采用存儲的宏塊信息進行預測編碼,由于宏塊信息的搜索過程的計算量較大,會耗費很長時間,本實施例中不進行宏塊信息搜索而直接采用存儲的宏塊信息,可以顯著降低處理時間,從而提升用戶體驗。
需要說明的是,在本申請的描述中,術(shù)語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性。此外,在本申請的描述中,除非另有說明,“多個”的含義是指至少兩個。
流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本申請的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本申請的實施例所屬技術(shù)領(lǐng)域的技術(shù)人員所理解。
應(yīng)當理解,本申請的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(pga),現(xiàn)場可編程門陣列(fpga)等。
本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種 計算機可讀存儲介質(zhì)中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。
此外,在本申請各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中。
上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本申請的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
盡管上面已經(jīng)示出和描述了本申請的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本申請的限制,本領(lǐng)域的普通技術(shù)人員在本申請的范圍內(nèi)可以對上述實施例進行變化、修改、替換和變型。