指針baseAddress即為視頻幀在第二緩存區(qū)中的偏移地址。需要說明的是,baseAddress并不是指向YUV數(shù)據(jù),而是指向一個(gè)CVPIanarPixeIBuf f erInfo_YCbCrBiPlanar結(jié)構(gòu)體??苫谏鲜銎频刂穊aseAddress讀取第二緩存區(qū)中的解碼后的視頻幀數(shù)據(jù),并且,還可從所述視頻幀數(shù)據(jù)中獲取上述時(shí)間信息,例如每一幀的開始的時(shí)間和結(jié)束的時(shí)間,每一秒的視頻幀數(shù)等??赏ㄟ^適配器對(duì)第二緩存區(qū)中的來自多個(gè)pixelbuffer的視頻幀數(shù)據(jù)進(jìn)行合成(轉(zhuǎn)碼)。該合成(轉(zhuǎn)碼)可基于上述時(shí)間信息進(jìn)行的,以保證每秒幀數(shù)與所接收的流媒體視頻數(shù)據(jù)一致??梢詫⒁曨l幀數(shù)據(jù)合成為系統(tǒng)播放器支持的視頻格式寫入硬盤(例如1s系統(tǒng)播放器目前支持的視頻格式,如mp4、mov、m4v等)。
[0035]實(shí)施例2
[0036]圖2示出根據(jù)本發(fā)明一實(shí)施例的一種流媒體視頻數(shù)據(jù)的解碼裝置的框圖。如圖2所示,該裝置主要包括:
[0037]時(shí)間信息獲取部件201,用于獲取流媒體視頻數(shù)據(jù)的視頻幀的時(shí)間信息;
[0038]第一緩存區(qū)建立部件202,用于建立第一緩存區(qū)以緩存流媒體視頻數(shù)據(jù)的視頻幀;
[0039]視頻幀信息獲取部件203,用于獲取所緩存的視頻幀的視頻幀信息;
[0040]解碼部件204,用于基于所獲取的時(shí)間信息和視頻幀信息對(duì)所緩存的視頻幀進(jìn)行解碼,并將解碼后的視頻幀數(shù)據(jù)保存在第二緩存區(qū)中;
[0041]轉(zhuǎn)碼部件205,用于讀取第二緩存區(qū)中的視頻幀數(shù)據(jù)并進(jìn)行轉(zhuǎn)碼;以及
[0042]寫入部件206,用于將轉(zhuǎn)碼后的視頻幀數(shù)據(jù)寫入硬盤以供播放。
[0043]在一個(gè)示例中,基于所獲取的時(shí)間信息和視頻幀信息對(duì)所緩存的視頻幀進(jìn)行解碼可包括:針對(duì)每個(gè)視頻幀,將所獲取的時(shí)間信息和視頻幀信息進(jìn)行合成得到合成后的視頻幀信息,并對(duì)合成后的視頻幀信息進(jìn)行解碼。
[0044]在一個(gè)示例中,時(shí)間信息可包括視頻幀的是每秒中的第幾幀,以及每秒有多少幀。
[0045]在一個(gè)示例中,所述第二緩存區(qū)可保存針對(duì)多個(gè)第一緩存區(qū)的解碼后的視頻幀數(shù)據(jù)。
[0046]在一個(gè)示例中,讀取第二緩存區(qū)中的視頻幀數(shù)據(jù)并進(jìn)行轉(zhuǎn)碼可包括:基于從所述視頻幀數(shù)據(jù)中獲取的所述時(shí)間信息對(duì)所讀取的第二緩存區(qū)中的視頻幀數(shù)據(jù)進(jìn)行轉(zhuǎn)碼。
[0047]實(shí)施例3
[0048](涉及計(jì)算機(jī)程序的發(fā)明,可增加如下的實(shí)施例,以對(duì)應(yīng)美國方面要求產(chǎn)品具有實(shí)體構(gòu)件的實(shí)踐經(jīng)驗(yàn))
[0049]圖3示出了本發(fā)明的另一個(gè)實(shí)施例的一種流媒體視頻數(shù)據(jù)的解碼設(shè)備的結(jié)構(gòu)框圖。所述設(shè)備1100可以是具備計(jì)算能力的主機(jī)服務(wù)器、個(gè)人計(jì)算機(jī)PC、或者可攜帶的便攜式計(jì)算機(jī)或終端等。本發(fā)明具體實(shí)施例并不對(duì)計(jì)算節(jié)點(diǎn)的具體實(shí)現(xiàn)做限定。
[0050]所述設(shè)備1100包括處理器(processor)lllO、通信接口(Communicat1nsInterface)1120、存儲(chǔ)器(memory) 1130和總線1140。其中,處理器1110、通信接口 1120、以及存儲(chǔ)器1130通過總線1140完成相互間的通信。
[0051]通信接口 1120用于與網(wǎng)絡(luò)設(shè)備通信,其中網(wǎng)絡(luò)設(shè)備包括例如虛擬機(jī)管理中心、共享存儲(chǔ)等。
[0052]處理器1110用于執(zhí)行程序。處理器1110可能是一個(gè)中央處理器CPU,或者是專用集成電路ASIC(Applicat1n Specific Integrated Circuit),或者是被配置成實(shí)施本發(fā)明實(shí)施例的一個(gè)或多個(gè)集成電路。
[0053]存儲(chǔ)器1130用于存放文件。存儲(chǔ)器1130可能包含高速RAM存儲(chǔ)器,也可能還包括非易失性存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤存儲(chǔ)器。存儲(chǔ)器1130也可以是存儲(chǔ)器陣列。存儲(chǔ)器1130還可能被分塊,并且所述塊可按一定的規(guī)則組合成虛擬卷。
[0054]在一種可能的實(shí)施方式中,上述程序可為包括計(jì)算機(jī)操作指令的程序代碼。該程序具體可用于執(zhí)行實(shí)施例1中方法的各步驟。
[0055]本領(lǐng)域普通技術(shù)人員可以意識(shí)到,本文所描述的實(shí)施例中的各示例性單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來實(shí)現(xiàn)。這些功能究竟以硬件還是軟件形式來實(shí)現(xiàn),取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以針對(duì)特定的應(yīng)用選擇不同的方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
[0056]如果以計(jì)算機(jī)軟件的形式來實(shí)現(xiàn)所述功能并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),則在一定程度上可認(rèn)為本發(fā)明的技術(shù)方案的全部或部分(例如對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分)是以計(jì)算機(jī)軟件產(chǎn)品的形式體現(xiàn)的。該計(jì)算機(jī)軟件產(chǎn)品通常存儲(chǔ)在計(jì)算機(jī)可讀取的非易失性存儲(chǔ)介質(zhì)中,包括若干指令用以使得計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各實(shí)施例方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read_Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM ,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0057]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種流媒體視頻數(shù)據(jù)的解碼方法,該方法包括: 獲取流媒體視頻數(shù)據(jù)的視頻幀的時(shí)間信息; 建立第一緩存區(qū)以緩存流媒體視頻數(shù)據(jù)的視頻幀; 獲取所緩存的視頻幀的視頻幀ig息; 基于所獲取的時(shí)間信息和視頻幀信息對(duì)所緩存的視頻幀進(jìn)行解碼,并將解碼后的視頻幀數(shù)據(jù)保存在第二緩存區(qū)中; 讀取第二緩存區(qū)中的視頻幀數(shù)據(jù)并進(jìn)行轉(zhuǎn)碼;以及 將轉(zhuǎn)碼后的視頻幀數(shù)據(jù)寫入硬盤以供播放。2.根據(jù)權(quán)利要求1所述的流媒體視頻數(shù)據(jù)的解碼方法,其中,基于所獲取的時(shí)間信息和視頻幀信息對(duì)所緩存的視頻幀進(jìn)行解碼包括: 針對(duì)每個(gè)視頻幀,將所獲取的時(shí)間信息和視頻幀信息進(jìn)行合成得到合成后的視頻幀信息,并對(duì)合成后的視頻幀信息進(jìn)行解碼。3.根據(jù)權(quán)利要求1所述的流媒體視頻數(shù)據(jù)的解碼方法,其中,時(shí)間信息包括視頻幀的是每秒中的第幾幀,以及每秒有多少幀。4.根據(jù)權(quán)利要求1所述的流媒體視頻數(shù)據(jù)的解碼方法,其中,所述第二緩存區(qū)保存針對(duì)多個(gè)第一緩存區(qū)的解碼后的視頻幀數(shù)據(jù)。5.根據(jù)權(quán)利要求1所述的流媒體視頻數(shù)據(jù)的解碼方法,其中,讀取第二緩存區(qū)中的視頻幀數(shù)據(jù)并進(jìn)行轉(zhuǎn)碼包括:基于從所述視頻幀數(shù)據(jù)中獲取的所述時(shí)間信息對(duì)所讀取的第二緩存區(qū)中的視頻幀數(shù)據(jù)進(jìn)行轉(zhuǎn)碼。6.一種流媒體視頻數(shù)據(jù)的解碼裝置,該裝置包括: 用于獲取流媒體視頻數(shù)據(jù)的視頻幀的時(shí)間信息的部件; 用于建立第一緩存區(qū)以緩存流媒體視頻數(shù)據(jù)的視頻幀的部件; 用于獲取所緩存的視頻幀的視頻幀信息的部件; 用于基于所獲取的時(shí)間信息和視頻幀信息對(duì)所緩存的視頻幀進(jìn)行解碼,并將解碼后的視頻幀數(shù)據(jù)保存在第二緩存區(qū)中的部件; 用于讀取第二緩存區(qū)中的視頻幀數(shù)據(jù)并進(jìn)行轉(zhuǎn)碼的部件;以及 用于將轉(zhuǎn)碼后的視頻幀數(shù)據(jù)寫入硬盤以供播放的部件。7.根據(jù)權(quán)利要求6所述的流媒體視頻數(shù)據(jù)的解碼裝置,其中,基于所獲取的時(shí)間信息和視頻幀信息對(duì)所緩存的視頻幀進(jìn)行解碼包括: 針對(duì)每個(gè)視頻幀,將所獲取的時(shí)間信息和視頻幀信息進(jìn)行合成得到合成后的視頻幀信息,并對(duì)合成后的視頻幀信息進(jìn)行解碼。8.根據(jù)權(quán)利要求6所述的流媒體視頻數(shù)據(jù)的解碼裝置,其中,時(shí)間信息包括視頻幀的是每秒中的第幾幀,以及每秒有多少幀。9.根據(jù)權(quán)利要求6所述的流媒體視頻數(shù)據(jù)的解碼裝置,其中,所述第二緩存區(qū)保存針對(duì)多個(gè)第一緩存區(qū)的解碼后的視頻幀數(shù)據(jù)。10.根據(jù)權(quán)利要求6所述的流媒體視頻數(shù)據(jù)的解碼裝置,其中,讀取第二緩存區(qū)中的視頻幀數(shù)據(jù)并進(jìn)行轉(zhuǎn)碼包括:基于從所述視頻幀數(shù)據(jù)中獲取的所述時(shí)間信息對(duì)所讀取的第二緩存區(qū)中的視頻幀數(shù)據(jù)進(jìn)行轉(zhuǎn)碼。
【專利摘要】本發(fā)明涉及流媒體視頻數(shù)據(jù)的解碼方法和裝置。所述方法包括:獲取流媒體視頻數(shù)據(jù)的視頻幀的時(shí)間信息;建立第一緩存區(qū)以緩存流媒體視頻數(shù)據(jù)的視頻幀;獲取所緩存的視頻幀的視頻幀信息;基于所獲取的時(shí)間信息和視頻幀信息對(duì)所緩存的視頻幀進(jìn)行解碼,并將解碼后的視頻幀數(shù)據(jù)保存在第二緩存區(qū)中;讀取第二緩存區(qū)中的視頻幀數(shù)據(jù)并進(jìn)行轉(zhuǎn)碼;以及將轉(zhuǎn)碼后的視頻幀數(shù)據(jù)寫入硬盤以供播放。該方法和裝置其通過硬解碼方式實(shí)現(xiàn)了對(duì)流媒體視頻數(shù)據(jù)的解碼,提高了解碼效率并降低了耗電量。
【IPC分類】H04N21/4402, H04N21/433
【公開號(hào)】CN105681893
【申請(qǐng)?zhí)枴緾N201511027662
【發(fā)明人】盧昱澤, 蔡亮, 王濤, 顧思斌, 潘柏宇, 王冀
【申請(qǐng)人】傳線網(wǎng)絡(luò)科技(上海)有限公司
【公開日】2016年6月15日
【申請(qǐng)日】2015年12月31日