国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種數(shù)據(jù)傳輸?shù)姆椒把b置與流程

      文檔序號(hào):11207330閱讀:608來(lái)源:國(guó)知局
      一種數(shù)據(jù)傳輸?shù)姆椒把b置與流程

      本發(fā)明涉及數(shù)據(jù)傳輸技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)傳輸?shù)姆椒把b置。



      背景技術(shù):

      隨著無(wú)線通信技術(shù)的發(fā)展,以智能手機(jī)為代表的便攜式移動(dòng)終端的高度普及,為構(gòu)建面向移動(dòng)環(huán)境的視頻傳輸提供了便利條件,現(xiàn)有的視頻數(shù)據(jù)傳輸時(shí),首先將待傳輸?shù)囊曨l數(shù)據(jù)按照實(shí)時(shí)流傳輸協(xié)議(realtimestreamingprotocol,rtsp)或?qū)崟r(shí)傳輸協(xié)議(real-timetransportprotocol,rtp)格式進(jìn)行分包,然后將分包用傳輸控制協(xié)議(transmissioncontrolprotocol,tcp)或用戶數(shù)據(jù)報(bào)協(xié)議(userdatagramprotocol,udp)發(fā)送出去。

      現(xiàn)有的待傳輸?shù)囊曨l數(shù)據(jù)的分包過(guò)程如圖1所示,針對(duì)待傳輸?shù)囊曨l數(shù)據(jù),進(jìn)行rtsp打包,此時(shí)需要對(duì)待傳輸?shù)囊曨l數(shù)據(jù)進(jìn)行第1次拷貝,即將待傳輸?shù)囊曨l數(shù)據(jù)拷貝到用戶態(tài)的內(nèi)存中,并在內(nèi)存中加上rtsp頭;將待傳輸?shù)囊曨l數(shù)據(jù)從用戶態(tài)傳輸?shù)絻?nèi)核態(tài)時(shí),對(duì)待傳輸?shù)囊曨l數(shù)據(jù)進(jìn)行第2次拷貝,即將待傳輸?shù)囊曨l數(shù)據(jù)拷貝到內(nèi)核態(tài)的內(nèi)存中;通過(guò)tcp和因特網(wǎng)互聯(lián)協(xié)議(internetprotocol,ip)協(xié)議棧對(duì)待傳輸?shù)囊曨l數(shù)據(jù)進(jìn)行打包,加上tcp頭和ip頭;將待傳輸?shù)囊曨l數(shù)據(jù)寫入以太網(wǎng)(ethernet)直接內(nèi)存存取(directmemoryaccess,dma)發(fā)送隊(duì)列;所述rtsp頭、tcp頭和ip頭和待傳輸?shù)囊曨l數(shù)據(jù)都保存在內(nèi)核態(tài)的內(nèi)存中,將rtsp頭地址、tcp頭和ip頭地址和待傳輸?shù)囊曨l數(shù)據(jù)地址寫入網(wǎng)絡(luò)描述符;網(wǎng)卡根據(jù)網(wǎng)絡(luò)描述符中的地址獲取rtsp頭、tcp頭和ip頭,以及待傳輸?shù)囊曨l數(shù)據(jù),并發(fā)送待傳輸?shù)囊曨l數(shù)據(jù)。

      現(xiàn)有技術(shù)中將待傳輸?shù)囊曨l數(shù)據(jù)拷貝到用戶態(tài)的內(nèi)存中,加上rtsp頭;再拷貝到內(nèi)核態(tài)的內(nèi)存中,加上tcp頭和ip頭;這樣使得rtsp頭、tcp頭和ip頭和視頻數(shù)據(jù)都保存在內(nèi)核態(tài)的內(nèi)存中。但是,網(wǎng)卡在發(fā)送數(shù)據(jù)時(shí),只要根據(jù)網(wǎng)絡(luò)掃描符中的地址,能夠獲取rtsp頭、tcp頭和ip頭,以及待傳輸?shù)囊曨l數(shù)據(jù)即可,rtsp頭、tcp頭和ip頭和視頻數(shù)據(jù)并不一定保存在同一個(gè)內(nèi)存中。因此現(xiàn)有的視頻數(shù)據(jù)的分包過(guò)程中,額外增加了一次待傳輸?shù)囊曨l數(shù)據(jù)的拷貝過(guò)程,即上述第1次拷貝,將待傳輸?shù)囊曨l數(shù)據(jù)拷貝到用戶態(tài)的內(nèi)存中,增加了數(shù)據(jù)傳輸過(guò)程中的帶寬消耗。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸?shù)姆椒把b置,用以解決數(shù)據(jù)傳輸過(guò)程中帶寬消耗大的問(wèn)題。

      本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸?shù)姆椒?,該方法包括?/p>

      將待傳輸?shù)囊曨l數(shù)據(jù)劃分為多個(gè)第一子視頻數(shù)據(jù),針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的實(shí)時(shí)流傳輸協(xié)議rtsp頭或?qū)崟r(shí)傳輸協(xié)議rtp頭,將所述rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存;

      將所述每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存;

      針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的第一傳輸控制協(xié)議tcp頭和第一因特網(wǎng)互聯(lián)協(xié)議ip頭,將所述第一tcp頭和第一ip頭寫入內(nèi)核態(tài)中的第一內(nèi)存;

      針對(duì)每個(gè)第一子視頻數(shù)據(jù),將該第一子視頻數(shù)據(jù)在所述第二內(nèi)存中的地址以及該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭在所述第一內(nèi)存中的地址寫入該第一子視頻數(shù)據(jù)對(duì)應(yīng)的網(wǎng)絡(luò)描述符,以使網(wǎng)卡根據(jù)網(wǎng)絡(luò)描述符中的地址,獲取對(duì)應(yīng)的rtsp頭或rtp頭、第一tcp頭和第一ip頭以及第一子視頻數(shù)據(jù)并發(fā)送。

      進(jìn)一步地,所述將所述rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存包括:

      判斷第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭的第一數(shù)據(jù)量及所述已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的第一子視頻數(shù)據(jù)的第二數(shù)據(jù)量的和是否達(dá)到通用分段卸載gso驅(qū)動(dòng)的最大支持發(fā)送量;

      如果否,將所述rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存。

      進(jìn)一步地,如果所述第一數(shù)據(jù)量和第二數(shù)據(jù)量的和達(dá)到通用分段卸載gso驅(qū)動(dòng)的最大支持發(fā)送量,所述將所述每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存包括:

      將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      進(jìn)一步地,所述將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存包括:

      根據(jù)所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù),確定待封裝的第二子視頻數(shù)據(jù)的第二tcp頭和第二ip頭;

      將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù),及確定的第二tcp頭和第二ip頭封裝為第二子視頻數(shù)據(jù),將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      進(jìn)一步地,所述確定待封裝的第二子視頻數(shù)據(jù)的第二tcp頭和第二ip頭之后,將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù),及確定的第二tcp頭和第二ip頭封裝為第二子視頻數(shù)據(jù)之前,所述方法還包括:

      判斷是否對(duì)所述待封裝的第二子視頻數(shù)據(jù)進(jìn)行加速處理;

      如果是,將確定的所述第二ip頭中的服務(wù)類型tos字段作為原始tos字段拷貝到所述第一內(nèi)存,將確定的所述第二ip頭中的tos字段中的對(duì)應(yīng)預(yù)留位設(shè)置為1;

      所述將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存包括:

      判斷確定的所述第二ip頭中的tos字段中的對(duì)應(yīng)預(yù)留位是否為1;

      如果是,將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      進(jìn)一步地,所述針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的第一傳輸控制協(xié)議tcp頭和第一因特網(wǎng)互聯(lián)協(xié)議ip頭包括:

      確定所述第二子視頻數(shù)據(jù)包含的每個(gè)第一子視頻數(shù)據(jù),針對(duì)每個(gè)第一子視頻數(shù)據(jù),根據(jù)該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭中包含的數(shù)據(jù)量,對(duì)所述第二tcp和第二ip頭中包含的數(shù)據(jù)量進(jìn)行更新,并根據(jù)所述原始tos字段,對(duì)所述更新后的第二ip頭中的對(duì)應(yīng)tos字段進(jìn)行更新,將經(jīng)過(guò)更新后的第二tcp頭和第二ip頭作為該第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭。

      另一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸?shù)难b置,所述裝置包括:

      第一寫入模塊,用于將待傳輸?shù)囊曨l數(shù)據(jù)劃分為多個(gè)第一子視頻數(shù)據(jù),針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的實(shí)時(shí)流傳輸協(xié)議rtsp頭或?qū)崟r(shí)傳輸協(xié)議rtp頭,將所述rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存;

      拷貝模塊,用于將所述每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存;

      第二寫入模塊,用于針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的第一傳輸控制協(xié)議tcp頭和第一因特網(wǎng)互聯(lián)協(xié)議ip頭,將所述第一tcp頭和第一ip頭寫入內(nèi)核態(tài)中的第一內(nèi)存;

      第三寫入模塊,用于針對(duì)每個(gè)第一子視頻數(shù)據(jù),將該第一子視頻數(shù)據(jù)在所述第二內(nèi)存中的地址以及該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭在所述第一內(nèi)存中的地址寫入該第一子視頻數(shù)據(jù)對(duì)應(yīng)的網(wǎng)絡(luò)描述符,以使網(wǎng)卡根據(jù)網(wǎng)絡(luò)描述符中的地址,獲取對(duì)應(yīng)的rtsp頭或rtp頭、第一tcp頭和第一ip頭以及第一子視頻數(shù)據(jù)并發(fā)送。

      進(jìn)一步地,所述第一寫入模塊,具體用于判斷第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭的第一數(shù)據(jù)量及所述已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的第一子視頻數(shù)據(jù)的第二數(shù)據(jù)量的和是否達(dá)到通用分段卸載gso驅(qū)動(dòng)的最大支持發(fā)送量;如果否,將所述rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存。

      進(jìn)一步地,所述拷貝模塊,具體用于如果所述第一數(shù)據(jù)量和第二數(shù)據(jù)量的和達(dá)到通用分段卸載gso驅(qū)動(dòng)的最大支持發(fā)送量,將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      進(jìn)一步地,所述拷貝模塊,具體用于根據(jù)所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù),確定待封裝的第二子視頻數(shù)據(jù)的第二tcp頭和第二ip頭;將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù),及確定的第二tcp頭和第二ip頭封裝為第二子視頻數(shù)據(jù),將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      進(jìn)一步地,所述裝置還包括:

      判斷設(shè)置模塊,用于判斷是否對(duì)所述待封裝的第二子視頻數(shù)據(jù)進(jìn)行加速處理;如果是,將確定的所述第二ip頭中的服務(wù)類型tos字段作為原始tos字段拷貝到所述第一內(nèi)存,將確定的所述第二ip頭中的tos字段中的對(duì)應(yīng)預(yù)留位設(shè)置為1;

      所述拷貝模塊,具體用于判斷確定的所述第二ip頭中的tos字段中的對(duì)應(yīng)預(yù)留位是否為1;如果是,將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      進(jìn)一步地,所述第二寫入模塊,具體用于確定所述第二子視頻數(shù)據(jù)包含的每個(gè)第一子視頻數(shù)據(jù),針對(duì)每個(gè)第一子視頻數(shù)據(jù),根據(jù)該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭中包含的數(shù)據(jù)量,對(duì)所述第二tcp和第二ip頭中包含的數(shù)據(jù)量進(jìn)行更新,并根據(jù)所述原始tos字段,對(duì)所述更新后的第二ip頭中的對(duì)應(yīng)tos字段進(jìn)行更新,將經(jīng)過(guò)更新后的第二tcp頭和第二ip頭作為該第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭。

      本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸?shù)姆椒把b置,所述方法包括:將待傳輸?shù)囊曨l數(shù)據(jù)劃分為多個(gè)第一子視頻數(shù)據(jù),針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的實(shí)時(shí)流傳輸協(xié)議rtsp頭或?qū)崟r(shí)傳輸協(xié)議rtp頭,將所述rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存;將所述每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存;針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的第一傳輸控制協(xié)議tcp頭和第一因特網(wǎng)互聯(lián)協(xié)議ip頭,將所述第一tcp頭和第一ip頭寫入內(nèi)核態(tài)中的第一內(nèi)存;針對(duì)每個(gè)第一子視頻數(shù)據(jù),將該第一子視頻數(shù)據(jù)在所述第二內(nèi)存中的地址以及該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭在所述第一內(nèi)存中的地址寫入該第一子視頻數(shù)據(jù)對(duì)應(yīng)的網(wǎng)絡(luò)描述符,以使網(wǎng)卡根據(jù)網(wǎng)絡(luò)描述符中的地址,獲取對(duì)應(yīng)的rtsp頭或rtp頭、第一tcp頭和第一ip頭以及第一子視頻數(shù)據(jù)并發(fā)送。由于在本發(fā)明實(shí)施例中,直接將每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存,第一子視頻數(shù)據(jù)的rtsp頭或rtp頭,以及第一tcp頭和第一ip頭寫入內(nèi)核態(tài)的第一內(nèi)存中,雖然第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭與該第一子視頻數(shù)據(jù)保存在內(nèi)存的不同地址中,但是網(wǎng)卡根據(jù)網(wǎng)絡(luò)掃描符中的地址,仍然可以獲取所述第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭,以及該第一子視頻數(shù)據(jù)并發(fā)送,因此減少了每個(gè)第一子視頻數(shù)據(jù)拷貝到用戶態(tài)的內(nèi)存的過(guò)程,降低了數(shù)據(jù)傳輸過(guò)程中帶寬的消耗。

      附圖說(shuō)明

      為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)要介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

      圖1為現(xiàn)有技術(shù)提供的一種數(shù)據(jù)傳輸?shù)倪^(guò)程示意圖;

      圖2為本發(fā)明實(shí)施例1提供的一種數(shù)據(jù)傳輸?shù)倪^(guò)程示意圖;

      圖3為本發(fā)明實(shí)施例2提供的一種數(shù)據(jù)傳輸?shù)倪^(guò)程示意圖;

      圖4本發(fā)明實(shí)施例提供的一種數(shù)據(jù)傳輸?shù)难b置結(jié)構(gòu)示意圖。

      具體實(shí)施方式

      下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部份實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

      實(shí)施例1:

      圖2為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)傳輸?shù)倪^(guò)程示意圖,該過(guò)程包括以下步驟:

      s201:將待傳輸?shù)囊曨l數(shù)據(jù)劃分為多個(gè)第一子視頻數(shù)據(jù),針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭,將所述rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存。

      本發(fā)明實(shí)施例提供的數(shù)據(jù)傳輸?shù)姆椒☉?yīng)用于電子設(shè)備,所述電子設(shè)備可以是pc、智能電視及手機(jī)等設(shè)備。

      電子設(shè)備在進(jìn)行數(shù)據(jù)傳輸時(shí),最終由網(wǎng)卡發(fā)送數(shù)據(jù),而網(wǎng)卡每次發(fā)送的數(shù)據(jù)大小是有一定限制的,因此在進(jìn)行數(shù)據(jù)傳輸時(shí),需要將待傳輸?shù)囊曨l數(shù)據(jù)進(jìn)行劃分。在本發(fā)明實(shí)施例中,針對(duì)待傳輸?shù)囊曨l數(shù)據(jù),所述電子設(shè)備可以將待傳輸?shù)囊曨l數(shù)據(jù)劃分為多個(gè)第一子視頻數(shù)據(jù),在進(jìn)行劃分時(shí),可以將待傳輸?shù)囊曨l數(shù)據(jù)任意劃分,只要保證劃分后的每個(gè)第一子視頻數(shù)據(jù)的數(shù)據(jù)大小能夠滿足網(wǎng)卡每次發(fā)送數(shù)據(jù)的數(shù)據(jù)大小要求即可。當(dāng)然,為了更方便的將待傳輸?shù)囊曨l數(shù)據(jù)劃分為多個(gè)第一子視頻數(shù)據(jù),也可以將待傳輸?shù)囊曨l數(shù)據(jù)平均劃分為多個(gè)第一子視頻數(shù)據(jù),使每個(gè)第一子視頻數(shù)據(jù)的數(shù)據(jù)大小相同。

      較佳的,為了提高數(shù)據(jù)傳輸?shù)男?,在將待傳輸?shù)囊曨l數(shù)據(jù)平均劃分為多個(gè)第一子視頻數(shù)據(jù)時(shí),可以根據(jù)網(wǎng)卡每次發(fā)送的數(shù)據(jù)中視頻數(shù)據(jù)的大小,對(duì)待傳輸?shù)囊曨l數(shù)據(jù)進(jìn)行劃分。

      例如,網(wǎng)卡每次發(fā)送的數(shù)據(jù)中視頻數(shù)據(jù)最大為1.4k,在將待傳輸?shù)囊曨l數(shù)據(jù)劃分為多個(gè)第一子視頻數(shù)據(jù)時(shí),可以將待傳輸?shù)囊曨l數(shù)據(jù)任意劃分,只要?jiǎng)澐趾蟮拿總€(gè)第一子視頻數(shù)據(jù)的數(shù)據(jù)大小不大于1.4k即可;當(dāng)然,可以將待傳輸?shù)囊曨l數(shù)據(jù)平均劃分為多個(gè)第一子視頻數(shù)據(jù),只要?jiǎng)澐趾蟮拿總€(gè)第一子視頻數(shù)據(jù)的數(shù)據(jù)大小不大于1.4k即可,比如每個(gè)子視頻數(shù)據(jù)的數(shù)據(jù)大小可以為0.8k、1.0k、1.3k等等。較佳的,可以將待傳輸?shù)囊曨l數(shù)據(jù)平均劃分為多個(gè)第一子視頻數(shù)據(jù),使每個(gè)第一子視頻數(shù)據(jù)的大小為1.4k。

      電子設(shè)備在進(jìn)行數(shù)據(jù)傳輸時(shí),需要根據(jù)數(shù)據(jù)的rtsp頭或rtp頭實(shí)現(xiàn)數(shù)據(jù)傳輸,因此,在將待傳輸?shù)囊曨l數(shù)據(jù)劃分為多個(gè)第一子視頻數(shù)據(jù)后,針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭。其中,針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭的過(guò)程屬于現(xiàn)有技術(shù),在本發(fā)明實(shí)施例中不對(duì)此過(guò)程進(jìn)行贅述。

      電子設(shè)備在進(jìn)行數(shù)據(jù)傳輸之前,通過(guò)初始化,確定內(nèi)核態(tài)中的第一內(nèi)存,將所述針對(duì)每個(gè)第一子視頻數(shù)據(jù)確定的rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存。

      s202:將所述每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      電子設(shè)備預(yù)先在內(nèi)核態(tài)中確定有能夠存儲(chǔ)視頻數(shù)據(jù)的第二內(nèi)存,針對(duì)待傳輸?shù)囊曨l數(shù)據(jù)劃分后得到的每個(gè)第一子視頻數(shù)據(jù),將所述每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      s203:針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭,將所述第一tcp頭和第一ip頭寫入內(nèi)核態(tài)中的第一內(nèi)存。

      電子設(shè)備在進(jìn)行數(shù)據(jù)傳輸時(shí),需要根據(jù)數(shù)據(jù)的第一tcp頭和第一ip頭實(shí)現(xiàn)數(shù)據(jù)傳輸。因此,在將待傳輸?shù)囊曨l數(shù)據(jù)劃分為多個(gè)第一子視頻數(shù)據(jù)后,針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭。一般電子設(shè)備可以根據(jù)tcp和ip協(xié)議棧,確定所述第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭。其中,針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭的過(guò)程屬于現(xiàn)有技術(shù),在本發(fā)明實(shí)施例中不對(duì)此過(guò)程進(jìn)行贅述。

      電子設(shè)備在確定每個(gè)第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭后,將所述第一tcp頭和第一ip頭寫入所述通過(guò)初始化,確定的內(nèi)核態(tài)中的第一內(nèi)存。其中,所述第一tcp頭和第一ip頭,rtsp頭或rtp頭都保存在內(nèi)核態(tài)中的第一內(nèi)存,但是所述第一tcp頭和第一ip頭,rtsp頭或rtp頭在第一內(nèi)存中的地址不同。

      s204:針對(duì)每個(gè)第一子視頻數(shù)據(jù),將該第一子視頻數(shù)據(jù)在所述第二內(nèi)存中的地址以及該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭在所述第一內(nèi)存中的地址寫入該第一子視頻數(shù)據(jù)對(duì)應(yīng)的網(wǎng)絡(luò)描述符,以使網(wǎng)卡根據(jù)網(wǎng)絡(luò)描述符中的地址,獲取對(duì)應(yīng)的rtsp頭或rtp頭、第一tcp頭和第一ip頭以及第一子視頻數(shù)據(jù)并發(fā)送。

      在數(shù)據(jù)傳輸?shù)倪^(guò)程中,每個(gè)第一子視頻數(shù)據(jù)對(duì)應(yīng)一個(gè)網(wǎng)絡(luò)描述符,網(wǎng)絡(luò)描述符中記錄有該第一子視頻數(shù)據(jù)的地址,以及該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、對(duì)應(yīng)的第一tcp頭和第一ip頭的地址,網(wǎng)卡根據(jù)網(wǎng)絡(luò)描述符中的地址,獲取對(duì)應(yīng)的rtsp頭或rtp頭、對(duì)應(yīng)的第一tcp頭和第一ip頭以及第一子視頻數(shù)據(jù)并發(fā)送。

      由于在本發(fā)明實(shí)施例中,直接將每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存,第一子視頻數(shù)據(jù)的rtsp頭或rtp頭,以及第一tcp頭和第一ip頭寫入內(nèi)核態(tài)的第一內(nèi)存中,雖然第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭與該第一子視頻數(shù)據(jù)保存在內(nèi)存的不同地址中,但是網(wǎng)卡根據(jù)網(wǎng)絡(luò)掃描符中的地址,仍然可以獲取所述第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭,以及該第一子視頻數(shù)據(jù)并發(fā)送,因此減少了每個(gè)第一子視頻數(shù)據(jù)拷貝到用戶態(tài)的內(nèi)存的過(guò)程,降低了數(shù)據(jù)傳輸過(guò)程中帶寬的消耗。

      實(shí)施例2:

      為了提高數(shù)據(jù)傳輸?shù)男?,在上述?shí)施例的基礎(chǔ)上,在本發(fā)明實(shí)施例中,所述將所述rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存包括:

      判斷第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭的第一數(shù)據(jù)量及所述已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的第一子視頻數(shù)據(jù)的第二數(shù)據(jù)量的和是否達(dá)到通用分段卸載(genericsegmentationoffload,gso)驅(qū)動(dòng)的最大支持發(fā)送量;

      如果否,將所述rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存。

      電子設(shè)備在進(jìn)行數(shù)據(jù)傳輸時(shí),可以每次發(fā)送一個(gè)第一子視頻數(shù)據(jù),即針對(duì)待發(fā)送的第一子視頻數(shù)據(jù),將該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭寫入內(nèi)核態(tài)中的第一內(nèi)存,將該第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存,進(jìn)而將該第一子視頻數(shù)據(jù)在所述第二內(nèi)存中的地址以及該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭在所述第一內(nèi)存中的地址寫入該第一子視頻數(shù)據(jù)對(duì)應(yīng)的網(wǎng)絡(luò)描述符,以使網(wǎng)卡根據(jù)網(wǎng)絡(luò)描述符中的地址,獲取對(duì)應(yīng)的rtsp頭或rtp頭、第一tcp頭和第一ip頭以及第一子視頻數(shù)據(jù)并發(fā)送。

      為了提高數(shù)據(jù)傳輸?shù)男剩诒景l(fā)明實(shí)施例中,也可以一次發(fā)送幾個(gè)第一子視頻數(shù)據(jù)。具體的該過(guò)程包括:確定第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭的第一數(shù)據(jù)量及已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的第一子視頻數(shù)據(jù)的第二數(shù)據(jù)量的和,如果該第一數(shù)據(jù)量和第二數(shù)據(jù)量的和未達(dá)到gso驅(qū)動(dòng)的最大支持發(fā)送量時(shí),將確定該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存。

      在將所述rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存時(shí),只要保證第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭的第一數(shù)據(jù)量及已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的第一子視頻數(shù)據(jù)的第二數(shù)據(jù)量的和不超過(guò)gso驅(qū)動(dòng)的最大支持發(fā)送量即可。

      例如,gso驅(qū)動(dòng)的最大支持發(fā)送量為64k,每個(gè)第一子視頻數(shù)據(jù)的數(shù)據(jù)大小為1.4k,可以將10個(gè)第一子視頻數(shù)據(jù)的rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存,也可以20個(gè)、30個(gè)等等第一子視頻數(shù)據(jù)的rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存,只要保證第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭的第一數(shù)據(jù)量及已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的第一子視頻數(shù)據(jù)的第二數(shù)據(jù)量的和不超過(guò)gso驅(qū)動(dòng)的最大支持發(fā)送量即可。

      在將每個(gè)第一子視頻數(shù)據(jù)的rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存時(shí),首先需要判斷第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭的第一數(shù)據(jù)量及所述已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的第一子視頻數(shù)據(jù)的第二數(shù)據(jù)量的和是否達(dá)到gso驅(qū)動(dòng)的最大支持發(fā)送量,如果否,將所述rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存。例如,將第40個(gè)第一子視頻數(shù)據(jù)的rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存時(shí),判斷所述第一內(nèi)存中已經(jīng)寫入的39個(gè)第一子視頻數(shù)據(jù)的rtsp頭或rtp頭的第一數(shù)據(jù)量及所述39個(gè)rtsp頭或rtp頭對(duì)應(yīng)的第一子視頻數(shù)據(jù)的第二數(shù)據(jù)量的和是否達(dá)到gso驅(qū)動(dòng)的最大支持發(fā)送量,如果否,則將第40個(gè)第一子視頻數(shù)據(jù)的rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存。

      在本發(fā)明實(shí)施例中,如果所述第一數(shù)據(jù)量和第二數(shù)據(jù)量的和達(dá)到gso驅(qū)動(dòng)的最大支持發(fā)送量,所述將所述每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存包括:

      將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      電子設(shè)備在進(jìn)行數(shù)據(jù)傳輸時(shí),可以每次發(fā)送一個(gè)第一子視頻數(shù)據(jù),即針對(duì)待發(fā)送的第一子視頻數(shù)據(jù),將該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭寫入內(nèi)核態(tài)中的第一內(nèi)存,將該第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存,進(jìn)而將該第一子視頻數(shù)據(jù)在所述第二內(nèi)存中的地址以及該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭在所述第一內(nèi)存中的地址寫入該第一子視頻數(shù)據(jù)對(duì)應(yīng)的網(wǎng)絡(luò)描述符,以使網(wǎng)卡根據(jù)網(wǎng)絡(luò)描述符中的地址,獲取對(duì)應(yīng)的rtsp頭或rtp頭、第一tcp頭和第一ip頭以及第一子視頻數(shù)據(jù)并發(fā)送。

      在本發(fā)明實(shí)施例中,當(dāng)?shù)谝粌?nèi)存中已經(jīng)寫入的rtsp頭或rtp頭的第一數(shù)據(jù)量及已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的第一子視頻數(shù)據(jù)的第二數(shù)據(jù)量的和達(dá)到gso驅(qū)動(dòng)的最大支持發(fā)送量時(shí),可以將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存,這樣可以實(shí)現(xiàn)將多個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存,從而提高數(shù)據(jù)傳輸?shù)男省?/p>

      在將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存后,針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭,將所述第一tcp頭和第一ip頭寫入內(nèi)核態(tài)中的第一內(nèi)存,針對(duì)每個(gè)第一子視頻數(shù)據(jù),將該第一子視頻數(shù)據(jù)在所述第二內(nèi)存中的地址以及該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭在所述第一內(nèi)存中的地址寫入該第一子視頻數(shù)據(jù)對(duì)應(yīng)的網(wǎng)絡(luò)描述符,以使網(wǎng)卡根據(jù)網(wǎng)絡(luò)描述符中的地址,獲取對(duì)應(yīng)的rtsp頭或rtp頭、第一tcp頭和第一ip頭以及第一子視頻數(shù)據(jù)并發(fā)送。

      例如,根據(jù)gso驅(qū)動(dòng)的最大支持發(fā)送量,將40個(gè)第一子視頻數(shù)據(jù)的rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存時(shí),達(dá)到所述gso驅(qū)動(dòng)的最大支持發(fā)送量,則將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的所述40個(gè)第一子視頻數(shù)據(jù)依次拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      另外,由于電子設(shè)備將待傳輸?shù)囊曨l數(shù)據(jù)劃分為多個(gè)第一子視頻數(shù)據(jù),針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭,如果所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭的第一數(shù)據(jù)量及所述已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的第一子視頻數(shù)據(jù)的第二數(shù)據(jù)量的和達(dá)到gso驅(qū)動(dòng)的最大支持發(fā)送量,將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。但是當(dāng)寫入所述第一內(nèi)存中的rtsp頭或rtp頭為最后一個(gè)第一子視頻數(shù)據(jù)的rtsp頭或rtp頭時(shí),有可能此時(shí)第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭的第一數(shù)據(jù)量及所述已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的第一子視頻數(shù)據(jù)的第二數(shù)據(jù)量的和未達(dá)到gso驅(qū)動(dòng)的最大支持發(fā)送量,此時(shí)也將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      在將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存之后,將第二內(nèi)存中寫入的第一子視頻數(shù)據(jù)發(fā)送出去,并且判斷是否還存在未被發(fā)送的第一子視頻數(shù)據(jù),如果是,則將所述第一內(nèi)存進(jìn)行初始化,依次確定未被發(fā)送每個(gè)第一子視頻數(shù)據(jù)的rtsp頭或rtp頭,在將每個(gè)第一子視頻數(shù)據(jù)的rtsp頭或rtp頭寫入第一內(nèi)存時(shí),判斷第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭的第一數(shù)據(jù)量及所述已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的第一子視頻數(shù)據(jù)的第二數(shù)據(jù)量的和是否達(dá)到gso驅(qū)動(dòng)的最大支持發(fā)送量;如果否,將該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭寫入第一內(nèi)存,如果是,將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存,并針對(duì)第二內(nèi)存中寫入的每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭,將所述第一tcp頭和第一ip頭寫入內(nèi)核態(tài)中的第一內(nèi)存。

      圖3為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)傳輸?shù)倪^(guò)程示意圖,該過(guò)程包括以下步驟:

      s301:確定當(dāng)前該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭,其中將待傳輸?shù)囊曨l數(shù)據(jù)劃分為多個(gè)第一子視頻數(shù)據(jù),當(dāng)前該第一子視頻數(shù)據(jù)可以為其中的任意一個(gè)第一子視頻數(shù)據(jù)。

      s302:判斷第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭的第一數(shù)據(jù)量及所述已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的第一子視頻數(shù)據(jù)的第二數(shù)據(jù)量的和是否達(dá)到gso驅(qū)動(dòng)的最大支持發(fā)送量,如果否,進(jìn)行s303,如果是,進(jìn)行s305。

      s303:將該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存。

      s304:判斷該第一子視頻數(shù)據(jù)是否為最后一個(gè)第一子視頻數(shù)據(jù),如果是,進(jìn)行s305,如果否,讀取下一個(gè)第一子視頻數(shù)據(jù),將該下一個(gè)第一子視頻數(shù)據(jù)作為當(dāng)前該第一子視頻數(shù)據(jù)并返回s301。

      s305:將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      s306:針對(duì)所述內(nèi)核態(tài)中的第二內(nèi)存中的每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭,將所述第一tcp頭和第一ip頭寫入內(nèi)核態(tài)中的第一內(nèi)存。

      s307:針對(duì)所述內(nèi)核態(tài)中的第二內(nèi)存中的每個(gè)第一子視頻數(shù)據(jù),將該第一子視頻數(shù)據(jù)在所述第二內(nèi)存中的地址以及該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭在所述第一內(nèi)存中的地址寫入該第一子視頻數(shù)據(jù)對(duì)應(yīng)的網(wǎng)絡(luò)描述符,以使網(wǎng)卡根據(jù)網(wǎng)絡(luò)描述符中的地址,獲取對(duì)應(yīng)的rtsp頭或rtp頭、第一tcp頭和第一ip頭以及第一子視頻數(shù)據(jù)并發(fā)送。

      在將所述內(nèi)核態(tài)中的第二內(nèi)存中的每個(gè)第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭寫入內(nèi)核態(tài)中的第一內(nèi)存之后,在通過(guò)網(wǎng)卡發(fā)送所述內(nèi)核態(tài)中的第二內(nèi)存中的每個(gè)第一子視頻數(shù)據(jù)時(shí),針對(duì)所述內(nèi)核態(tài)中的第二內(nèi)存中的每個(gè)第一子視頻數(shù)據(jù),需要將該第一子視頻數(shù)據(jù)在所述第二內(nèi)存中的地址以及該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭在所述第一內(nèi)存中的地址寫入該第一子視頻數(shù)據(jù)對(duì)應(yīng)的網(wǎng)絡(luò)描述符,進(jìn)而網(wǎng)卡根據(jù)網(wǎng)絡(luò)描述符中的地址,獲取對(duì)應(yīng)的rtsp頭或rtp頭、第一tcp頭和第一ip頭以及內(nèi)核態(tài)中的第二內(nèi)存中的第一子視頻數(shù)據(jù)并發(fā)送。

      s308:將所述第一內(nèi)存進(jìn)行初始化,進(jìn)行步驟s303。

      由于在本發(fā)明實(shí)施例中,當(dāng)?shù)谝粌?nèi)存中已經(jīng)寫入的rtsp頭或rtp頭的第一數(shù)據(jù)量及已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的第一子視頻數(shù)據(jù)的第二數(shù)據(jù)量的和達(dá)到gso驅(qū)動(dòng)的最大支持發(fā)送量時(shí),將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存,這樣可以實(shí)現(xiàn)將多個(gè)第一子視頻數(shù)據(jù)寫入內(nèi)核態(tài)中的第二內(nèi)存,從而提高了數(shù)據(jù)傳輸?shù)男省?/p>

      實(shí)施例3:

      為了進(jìn)一步提高數(shù)據(jù)的傳輸效率,在上述各實(shí)施例的基礎(chǔ)上,在本發(fā)明實(shí)施例中,所述將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存包括:

      根據(jù)所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù),確定待封裝的第二子視頻數(shù)據(jù)的第二tcp頭和第二ip頭;

      將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù),及確定的第二tcp頭和第二ip頭封裝為第二子視頻數(shù)據(jù),將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      在將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存時(shí),可以將所述每個(gè)第一子視頻數(shù)據(jù)依次拷貝到內(nèi)核態(tài)中的第二內(nèi)存,為了進(jìn)一步提高數(shù)據(jù)傳輸?shù)男?,可以根?jù)所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù),確定待封裝的第二子視頻數(shù)據(jù)的第二tcp頭和第二ip頭,一般電子設(shè)備可以根據(jù)tcp和ip協(xié)議棧,可以確定所述待封裝的第二子視頻數(shù)據(jù)的第二tcp頭和第二ip頭。將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù),及確定的第二tcp頭和第二ip頭進(jìn)行封裝,得到第二子視頻數(shù)據(jù),進(jìn)而將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。其中,根據(jù)tcp和ip協(xié)議棧確定所述待封裝的第二子視頻數(shù)據(jù)的第二tcp和第二ip頭的過(guò)程屬于現(xiàn)有技術(shù),在本發(fā)明實(shí)施例中不對(duì)此過(guò)程進(jìn)行贅述。在后續(xù)通過(guò)網(wǎng)卡發(fā)送每個(gè)第一子視頻數(shù)據(jù)時(shí),可以根據(jù)每個(gè)rtsp頭或rtp頭,確定所述第二子視頻數(shù)據(jù)中的每個(gè)第一子視頻數(shù)據(jù)。

      由于將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù),及確定的第二tcp頭和第二ip頭封裝為第二子視頻數(shù)據(jù),將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存,從而進(jìn)一步提高了數(shù)據(jù)傳輸?shù)男省?/p>

      為了使gso驅(qū)動(dòng)能夠識(shí)別需要加速處理的視頻數(shù)據(jù),從而保證對(duì)進(jìn)行加速處理的視頻數(shù)據(jù)傳輸時(shí),利用gso驅(qū)動(dòng)實(shí)現(xiàn)將第二子視頻數(shù)據(jù)寫入內(nèi)核態(tài)中的第二內(nèi)存,從而提高數(shù)據(jù)傳輸?shù)男?,在本發(fā)明實(shí)施例中,所述確定待封裝的第二子視頻數(shù)據(jù)的第二tcp頭和第二ip頭之后,將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù),及確定的第二tcp頭和第二ip頭封裝為第二子視頻數(shù)據(jù)之前,所述方法還包括:

      判斷是否對(duì)所述待封裝的第二子視頻數(shù)據(jù)進(jìn)行加速處理;

      如果是,將確定的所述第二ip頭中的服務(wù)類型tos字段作為原始tos字段拷貝到所述第一內(nèi)存,將確定的所述第二ip頭中的tos字段中的對(duì)應(yīng)預(yù)留位設(shè)置為1;

      所述將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存包括:

      判斷確定的所述第二ip頭中的tos字段中的對(duì)應(yīng)預(yù)留位是否為1;

      如果是,將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      電子設(shè)備在確定待封裝的第二子視頻數(shù)據(jù)的第二tcp頭和第二ip頭之后,判斷是否對(duì)所述待封裝的第二子視頻數(shù)據(jù)進(jìn)行加速處理,如果確定對(duì)所述待封裝的第二子視頻數(shù)據(jù)進(jìn)行加速處理,則需要將所述待封裝的第二子視頻數(shù)據(jù)進(jìn)行標(biāo)記,從而使gso驅(qū)動(dòng)能夠根據(jù)所述待封裝的第二子視頻數(shù)據(jù)的標(biāo)記識(shí)別所述待封裝的第二子視頻數(shù)據(jù)為需要加速處理的視頻數(shù)據(jù)。

      在本發(fā)明實(shí)施例中,通過(guò)第二ip頭中的tos字段對(duì)所述第二子視頻數(shù)據(jù)進(jìn)行標(biāo)記。在此利用的是tos字段的預(yù)留位對(duì)所述第二子視頻數(shù)據(jù)進(jìn)行標(biāo)記,這樣既能夠使gso驅(qū)動(dòng)能夠識(shí)別所述待封裝的第二子視頻數(shù)據(jù)為需要加速處理的視頻數(shù)據(jù),也不會(huì)影響后續(xù)對(duì)所述待封裝的第二子視頻數(shù)據(jù)的發(fā)送。

      在確定所述待封裝的第二子視頻數(shù)據(jù)的第二ip頭之后,為了保證后續(xù)數(shù)據(jù)傳輸時(shí)協(xié)議的正確性和完整性,需要將確定的所述第二ip頭中的tos字段作為原始tos字段拷貝到所述第一內(nèi)存,并將確定的所述第二ip頭中的tos字段中的對(duì)應(yīng)預(yù)留位設(shè)置為1,所述第二ip頭中的tos字段中的對(duì)應(yīng)預(yù)留位為1即為使gso驅(qū)動(dòng)能夠識(shí)別所述待封裝的第二子視頻數(shù)據(jù)為需要進(jìn)行加速處理的標(biāo)記。

      在將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存時(shí),首先判斷確定的所述第二ip頭中的tos字段中的對(duì)應(yīng)預(yù)留位是否為1,如果為1,則說(shuō)明所述第二子視頻數(shù)據(jù)為需要進(jìn)行加速處理的視頻數(shù)據(jù),則將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存,如果所述第二ip頭中的tos字段中的對(duì)應(yīng)預(yù)留位不為1,則不能利用gso驅(qū)動(dòng)對(duì)所述第二子視頻數(shù)據(jù)進(jìn)行加速處理,此時(shí)只能通過(guò)標(biāo)準(zhǔn)tcp和ip協(xié)議進(jìn)行數(shù)據(jù)的傳輸。

      tos字段中包括兩個(gè)預(yù)留位,在本發(fā)明實(shí)施例中可以采用該tos字段中某一預(yù)留位進(jìn)行標(biāo)識(shí),也可以采用兩個(gè)預(yù)留位進(jìn)行標(biāo)識(shí)。但預(yù)先采用幾個(gè)以及采用哪幾個(gè)電子設(shè)備已知,因此在進(jìn)行加速處理時(shí),可以根據(jù)預(yù)先設(shè)定的對(duì)應(yīng)預(yù)留位進(jìn)行相應(yīng)設(shè)置,并根據(jù)相應(yīng)的預(yù)留位判斷是否進(jìn)行第二子視頻數(shù)據(jù)的拷貝。

      可以預(yù)先設(shè)定tos字段中的任意一位預(yù)留位進(jìn)行標(biāo)識(shí)。比如預(yù)先設(shè)定采用tos字段中的預(yù)留位第6位進(jìn)行標(biāo)識(shí),則在判斷對(duì)所述待封裝的第二子視頻數(shù)據(jù)進(jìn)行加速處理時(shí),將tos字段的第6位設(shè)置為1;在將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存時(shí),判斷確定的所述第二ip頭中的tos字段中的第6位是否為1,如果是,將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存;或者預(yù)先設(shè)定采用tos字段中的預(yù)留位第7位進(jìn)行標(biāo)識(shí),則在判斷對(duì)所述待封裝的第二子視頻數(shù)據(jù)進(jìn)行加速處理后,將tos字段的第7位設(shè)置為1,在將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存時(shí),判斷確定的所述第二ip頭中的tos字段中的第7位是否為1,如果是,將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      較佳的,為了保證gso驅(qū)動(dòng)能夠準(zhǔn)確識(shí)別需要加速處理的視頻數(shù)據(jù),預(yù)先設(shè)定采用tos字段中的預(yù)留位第6位和第7位進(jìn)行標(biāo)識(shí),則在判斷對(duì)所述待封裝的第二子視頻數(shù)據(jù)進(jìn)行加速處理后,將tos字段的第6位和第7位設(shè)置為1,在將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存時(shí),判斷確定的所述第二ip頭中的tos字段中的第6位和第7位是否都為1時(shí),如果是將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      由于在本發(fā)明實(shí)施例中,當(dāng)確定對(duì)所述待傳輸?shù)囊曨l數(shù)據(jù)進(jìn)行加速處理時(shí),通過(guò)將確定的所述第二ip頭中的tos字段中的對(duì)應(yīng)預(yù)留位設(shè)置為1,使gso驅(qū)動(dòng)能夠識(shí)別需要加速處理的視頻數(shù)據(jù),將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。因此可以保證對(duì)進(jìn)行加速處理的視頻數(shù)據(jù)傳輸時(shí),利用gso驅(qū)動(dòng)實(shí)現(xiàn)將第二子視頻數(shù)據(jù)寫入內(nèi)核態(tài)中的第二內(nèi)存,從而提高數(shù)據(jù)傳輸?shù)男省?/p>

      為了保證在通過(guò)網(wǎng)卡獲取對(duì)應(yīng)的rtsp頭或rtp頭、第一tcp頭和第一ip頭以及第一子視頻數(shù)據(jù)并發(fā)送時(shí)tcp和ip協(xié)議的正確性和完整性,在本發(fā)明實(shí)施例中,所述針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭包括:

      確定所述第二子視頻數(shù)據(jù)包含的每個(gè)第一子視頻數(shù)據(jù),針對(duì)每個(gè)第一子視頻數(shù)據(jù),根據(jù)該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭中包含的數(shù)據(jù)量,對(duì)所述第二tcp和第二ip頭中包含的數(shù)據(jù)量進(jìn)行更新,并根據(jù)所述原始tos字段,對(duì)所述更新后的第二ip頭中的對(duì)應(yīng)tos字段進(jìn)行更新,將經(jīng)過(guò)更新后的第二tcp頭和第二ip頭作為該第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭。

      網(wǎng)卡根據(jù)網(wǎng)絡(luò)描述符中的地址,獲取對(duì)應(yīng)的rtsp頭或rtp頭、第一tcp頭和第一ip頭以及第一子視頻數(shù)據(jù)并發(fā)送,因此,需要確定每個(gè)第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭。針對(duì)第二子視頻數(shù)據(jù),確定了第二子視頻數(shù)據(jù)的第二tcp頭和第二ip頭,在針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭時(shí),由于將待傳輸?shù)囊曨l數(shù)據(jù)劃分為多個(gè)第一子視頻數(shù)據(jù)后,針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的rtsp或rtp頭,因此,可以根據(jù)第一內(nèi)存中已經(jīng)寫入的每個(gè)rtsp或rtp頭,確定所述第二子視頻數(shù)據(jù)包含的每個(gè)第一子視頻數(shù)據(jù)。每個(gè)第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭中的數(shù)據(jù)量信息與所述確定的第二子視頻數(shù)據(jù)的第二tcp頭和第二ip頭中的數(shù)據(jù)量信息不同,因此,在確定所述第二子視頻數(shù)據(jù)包含的每個(gè)第一子視頻數(shù)據(jù)之后,針對(duì)每個(gè)第一子視頻數(shù)據(jù),根據(jù)該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭中包含的數(shù)據(jù)量,對(duì)所述第二tcp和第二ip頭中包含的數(shù)據(jù)量進(jìn)行更新。為了保證在通過(guò)網(wǎng)卡獲取對(duì)應(yīng)的rtsp或rtp頭、第一tcp和第一ip頭以及第一子視頻數(shù)據(jù)并發(fā)送時(shí)tcp和ip協(xié)議的正確性和完整性,根據(jù)所述原始tos字段,對(duì)所述更新后的第二ip頭中的對(duì)應(yīng)tos字段進(jìn)行更新,將經(jīng)過(guò)更新后的第二tcp頭和第二ip頭作為該第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭。

      由于在本發(fā)明實(shí)施例中,針對(duì)所述第二子視頻數(shù)據(jù)包含的每個(gè)第一子視頻數(shù)據(jù),根據(jù)該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭中包含的數(shù)據(jù)量,對(duì)所述第二tcp和第二ip頭中包含的數(shù)據(jù)量進(jìn)行更新,并根據(jù)所述原始tos字段,對(duì)所述更新后的第二ip頭中的對(duì)應(yīng)tos字段進(jìn)行更新,將經(jīng)過(guò)更新后的第二tcp頭和第二ip頭作為該第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭。從而保證在通過(guò)網(wǎng)卡獲取對(duì)應(yīng)的rtsp或rtp頭、第一tcp和第一ip頭以及第一子視頻數(shù)據(jù)并發(fā)送時(shí)tcp和ip協(xié)議的正確性和完整性。

      圖4本發(fā)明實(shí)施例提供的一種數(shù)據(jù)傳輸?shù)难b置結(jié)構(gòu)示意圖,所述裝置包括:

      第一寫入模塊41,用于將待傳輸?shù)囊曨l數(shù)據(jù)劃分為多個(gè)第一子視頻數(shù)據(jù),針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的實(shí)時(shí)流傳輸協(xié)議rtsp頭或?qū)崟r(shí)傳輸協(xié)議rtp頭,將所述rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存;

      拷貝模塊42,用于將所述每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存;

      第二寫入模塊43,用于針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的第一傳輸控制協(xié)議tcp頭和第一因特網(wǎng)互聯(lián)協(xié)議ip頭,將所述第一tcp頭和第一ip頭寫入內(nèi)核態(tài)中的第一內(nèi)存;

      第三寫入模塊44,用于針對(duì)每個(gè)第一子視頻數(shù)據(jù),將該第一子視頻數(shù)據(jù)在所述第二內(nèi)存中的地址以及該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭在所述第一內(nèi)存中的地址寫入該第一子視頻數(shù)據(jù)對(duì)應(yīng)的網(wǎng)絡(luò)描述符,以使網(wǎng)卡根據(jù)網(wǎng)絡(luò)描述符中的地址,獲取對(duì)應(yīng)的rtsp頭或rtp頭、第一tcp頭和第一ip頭以及第一子視頻數(shù)據(jù)并發(fā)送。

      所述第一寫入模塊41,具體用于判斷第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭的第一數(shù)據(jù)量及所述已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的第一子視頻數(shù)據(jù)的第二數(shù)據(jù)量的和是否達(dá)到通用分段卸載gso驅(qū)動(dòng)的最大支持發(fā)送量;如果否,將所述rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存。

      所述拷貝模塊42,具體用于如果所述第一數(shù)據(jù)量和第二數(shù)據(jù)量的和達(dá)到通用分段卸載gso驅(qū)動(dòng)的最大支持發(fā)送量,將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      所述拷貝模塊42,具體用于根據(jù)所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù),確定待封裝的第二子視頻數(shù)據(jù)的第二tcp頭和第二ip頭;將所述第一內(nèi)存中已經(jīng)寫入的rtsp頭或rtp頭對(duì)應(yīng)的每個(gè)第一子視頻數(shù)據(jù),及確定的第二tcp頭和第二ip頭封裝為第二子視頻數(shù)據(jù),將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      所述裝置還包括:

      判斷設(shè)置模塊45,用于判斷是否對(duì)所述待封裝的第二子視頻數(shù)據(jù)進(jìn)行加速處理;如果是,將確定的所述第二ip頭中的服務(wù)類型tos字段作為原始tos字段拷貝到所述第一內(nèi)存,將確定的所述第二ip頭中的tos字段中的對(duì)應(yīng)預(yù)留位設(shè)置為1;

      所述拷貝模塊42,具體用于判斷確定的所述第二ip頭中的tos字段中的對(duì)應(yīng)預(yù)留位是否為1;如果是,將所述第二子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存。

      所述第二寫入模塊43,具體用于確定所述第二子視頻數(shù)據(jù)包含的每個(gè)第一子視頻數(shù)據(jù),針對(duì)每個(gè)第一子視頻數(shù)據(jù),根據(jù)該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭中包含的數(shù)據(jù)量,對(duì)所述第二tcp和第二ip頭中包含的數(shù)據(jù)量進(jìn)行更新,并根據(jù)所述原始tos字段,對(duì)所述更新后的第二ip頭中的對(duì)應(yīng)tos字段進(jìn)行更新,將經(jīng)過(guò)更新后的第二tcp頭和第二ip頭作為該第一子視頻數(shù)據(jù)的第一tcp頭和第一ip頭。

      本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸?shù)姆椒把b置,所述方法包括:將待傳輸?shù)囊曨l數(shù)據(jù)劃分為多個(gè)第一子視頻數(shù)據(jù),針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的實(shí)時(shí)流傳輸協(xié)議rtsp頭或?qū)崟r(shí)傳輸協(xié)議rtp頭,將所述rtsp頭或rtp頭寫入內(nèi)核態(tài)中的第一內(nèi)存;將所述每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存;針對(duì)每個(gè)第一子視頻數(shù)據(jù),確定該第一子視頻數(shù)據(jù)的第一傳輸控制協(xié)議tcp頭和第一因特網(wǎng)互聯(lián)協(xié)議ip頭,將所述第一tcp頭和第一ip頭寫入內(nèi)核態(tài)中的第一內(nèi)存;針對(duì)每個(gè)第一子視頻數(shù)據(jù),將該第一子視頻數(shù)據(jù)在所述第二內(nèi)存中的地址以及該第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭在所述第一內(nèi)存中的地址寫入該第一子視頻數(shù)據(jù)對(duì)應(yīng)的網(wǎng)絡(luò)描述符,以使網(wǎng)卡根據(jù)網(wǎng)絡(luò)描述符中的地址,獲取對(duì)應(yīng)的rtsp頭或rtp頭、第一tcp頭和第一ip頭以及第一子視頻數(shù)據(jù)并發(fā)送。由于在本發(fā)明實(shí)施例中,直接將每個(gè)第一子視頻數(shù)據(jù)拷貝到內(nèi)核態(tài)中的第二內(nèi)存,第一子視頻數(shù)據(jù)的rtsp頭或rtp頭,以及第一tcp頭和第一ip頭寫入內(nèi)核態(tài)的第一內(nèi)存中,雖然第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭與該第一子視頻數(shù)據(jù)保存在內(nèi)存的不同地址中,但是網(wǎng)卡根據(jù)網(wǎng)絡(luò)掃描符中的地址,仍然可以獲取所述第一子視頻數(shù)據(jù)的rtsp頭或rtp頭、第一tcp頭和第一ip頭,以及該第一子視頻數(shù)據(jù)并發(fā)送,因此減少了每個(gè)第一子視頻數(shù)據(jù)拷貝到用戶態(tài)的內(nèi)存的過(guò)程,降低了數(shù)據(jù)傳輸過(guò)程中帶寬的消耗。

      本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。

      這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。

      這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。

      盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。

      顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。

      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1