,以移動(dòng)健康遠(yuǎn)程應(yīng)用系統(tǒng)中對(duì)睡眠監(jiān)測(cè)為例,當(dāng)傳感器采集到多模態(tài)信號(hào)數(shù)據(jù)(包括ECG信號(hào)數(shù)據(jù)、加速度信號(hào)數(shù)據(jù)和體溫信號(hào)數(shù)據(jù))之后,按照采集的時(shí)間順序依次將采集到的多模態(tài)信號(hào)數(shù)據(jù)打包,按照數(shù)據(jù)包的前后順序通過近距離傳輸技術(shù)(如藍(lán)牙、BLE和Zigbee等)發(fā)送給智能網(wǎng)關(guān)。
[0039]S302、終端設(shè)備解析任一數(shù)據(jù)包,獲取數(shù)據(jù)包中包含的多模態(tài)信號(hào)數(shù)據(jù)的模態(tài)數(shù)。
[0040]本例中,每一數(shù)據(jù)包包含3種模態(tài)信號(hào)數(shù)據(jù),即獲取的模態(tài)數(shù)為3。
[0041]S303、終端設(shè)備比較自身中央處理器核數(shù)與獲取的模態(tài)數(shù),若核數(shù)大于等于模態(tài)數(shù),執(zhí)行步驟S304,若核數(shù)小于模態(tài)數(shù),執(zhí)行步驟S305。
[0042]具體的,本例中,智能網(wǎng)關(guān)比較自身中央處理器核數(shù)(若智能網(wǎng)關(guān)為雙核,則對(duì)應(yīng)的核數(shù)為2,若智能網(wǎng)關(guān)為四核,則對(duì)應(yīng)的核數(shù)為4)與獲取的模態(tài)數(shù);
[0043]S304、終端設(shè)備針對(duì)每一模態(tài)信號(hào)數(shù)據(jù),分別開啟一個(gè)線程,并行處理各模態(tài)信號(hào)數(shù)據(jù)。
[0044]S305、終端設(shè)備按照預(yù)設(shè)算法并行處理多模態(tài)信號(hào)數(shù)據(jù)。
[0045]其中,具體實(shí)施時(shí),數(shù)據(jù)包數(shù)據(jù)中包含的每一數(shù)據(jù)包攜帶有該數(shù)據(jù)包的建立時(shí)間,則步驟S305中可以但不限于按照以下兩種方式來(lái)并行處理每一數(shù)據(jù)包中包含的多模態(tài)信號(hào)數(shù)據(jù):
[0046]方式一、
[0047]終端設(shè)備同時(shí)開啟N個(gè)線程(N為終端設(shè)備中央處理器核數(shù)),并按照接收到的數(shù)據(jù)包序列所包含的數(shù)據(jù)包的建立時(shí)間,依次選擇一個(gè)數(shù)據(jù)包,并針對(duì)每一數(shù)據(jù)包,均執(zhí)行以下操作:從該數(shù)據(jù)包中任意選擇N個(gè)模態(tài)數(shù)據(jù)信號(hào),開啟的每一線程分別處理一個(gè)選擇出的模態(tài)信號(hào)數(shù)據(jù);當(dāng)任一線程的模態(tài)信號(hào)數(shù)據(jù)處理完成后,從未處理的模態(tài)信號(hào)數(shù)據(jù)中選擇任一模態(tài)信號(hào)數(shù)據(jù)進(jìn)行處理,依次類推,直至處理完成該數(shù)據(jù)包中的所有模態(tài)信號(hào)數(shù)據(jù)。
[0048]延續(xù)上例,共包含3種模態(tài)信號(hào)數(shù)據(jù),若智能網(wǎng)關(guān)為雙核的,則同時(shí)開啟兩個(gè)線程,每一線程分別處理一種模態(tài)信號(hào)數(shù)據(jù),即同時(shí)處理兩種模態(tài)信號(hào)數(shù)據(jù),假設(shè)分別為ECG信號(hào)數(shù)據(jù)和加速度信號(hào)數(shù)據(jù),假設(shè)加速度信號(hào)數(shù)據(jù)先處理完成,則處理加速度信號(hào)數(shù)據(jù)的線程接著處理體溫信號(hào)數(shù)據(jù),直至該數(shù)據(jù)包包含的所有模態(tài)的信號(hào)數(shù)據(jù)處理完成。具體實(shí)施時(shí),若還有第四種模態(tài)的信號(hào)數(shù)據(jù)時(shí),則在兩個(gè)線程中的任一線程處理完成當(dāng)前信號(hào)數(shù)據(jù)之后,再接著處理第四種模態(tài)的信號(hào)數(shù)據(jù),依次類推,直至數(shù)據(jù)包包含的所有模態(tài)信號(hào)數(shù)據(jù)全部處理完成。
[0049]方式二、
[0050]方式二中,終端設(shè)備根據(jù)各數(shù)據(jù)包的建立時(shí)間,選取建立時(shí)間最早的數(shù)據(jù)包,采用串行處理方式進(jìn)行處理,即依次處理該數(shù)據(jù)包中包含的每一模態(tài)數(shù)據(jù),在處理的過程中,記錄處理該模態(tài)信號(hào)數(shù)據(jù)所需的處理時(shí)長(zhǎng)。
[0051]具體的,可以采用以下方式確定處理各模態(tài)信號(hào)數(shù)據(jù)所需的處理時(shí)長(zhǎng),針對(duì)每一模態(tài)信號(hào)數(shù)據(jù),獲得該模態(tài)信號(hào)數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)處理窗口大小,例如,上例中,ECG信號(hào)數(shù)據(jù)的處理窗口為32,加速度信號(hào)數(shù)據(jù)處理窗口為64,并根據(jù)該模態(tài)信號(hào)數(shù)據(jù)的大小確定處理該模態(tài)信號(hào)數(shù)據(jù)需要的處理窗口的數(shù)量n,如以一個(gè)數(shù)據(jù)包中包含256個(gè)ECG信號(hào)數(shù)據(jù)、64個(gè)加速度數(shù)據(jù)為例,則處理該數(shù)據(jù)包中包含的ECG信號(hào)數(shù)據(jù)需要8個(gè)處理窗口,處理ECG信號(hào)數(shù)據(jù)需要I個(gè)處理窗口,同時(shí),在處理建立時(shí)間最早的數(shù)據(jù)包的過程中,終端設(shè)備針對(duì)模態(tài)信號(hào)數(shù)據(jù)i記錄處理該模態(tài)信號(hào)數(shù)據(jù)一個(gè)窗口所需要的單位時(shí)長(zhǎng)ti;這樣,便能夠得到處理模態(tài)信號(hào)數(shù)據(jù)i所需的處理時(shí)長(zhǎng)為(叫*\)。
[0052]在建立時(shí)間最早的數(shù)據(jù)包處理完成之后,終端設(shè)備開啟N個(gè)線程(N為終端設(shè)備中央處理器核數(shù))從剩余未處理的各數(shù)據(jù)包中,按照數(shù)據(jù)包的建立時(shí)間順序,依次選擇一個(gè)數(shù)據(jù)包,針對(duì)每一數(shù)據(jù)包均執(zhí)行以下操作:從該數(shù)據(jù)包中按照模態(tài)信號(hào)數(shù)據(jù)處理時(shí)長(zhǎng)降序的順序依次選擇前N個(gè)模態(tài)信號(hào)數(shù)據(jù),開啟的每一線程分別處理一個(gè)選擇出的模態(tài)信號(hào)數(shù)據(jù);當(dāng)任一線程的模態(tài)信號(hào)數(shù)據(jù)處理完成后,從未處理的模態(tài)信號(hào)數(shù)據(jù)中按照處理時(shí)長(zhǎng)降序的順序依次選擇一模態(tài)信號(hào)數(shù)據(jù)進(jìn)行處理,直至處理完成該數(shù)據(jù)包中的所有模態(tài)信號(hào)數(shù)據(jù)。
[0053]為了更好的理解本發(fā)明實(shí)施例,以下以終端設(shè)備為4核且多模態(tài)信號(hào)數(shù)據(jù)的模態(tài)數(shù)為6為例對(duì)方式二的【具體實(shí)施方式】進(jìn)行說明(以處理一個(gè)數(shù)據(jù)包的流程為例)。假設(shè)6種模態(tài)信號(hào)數(shù)據(jù)分別為模態(tài)I信號(hào)數(shù)據(jù)、模態(tài)2信號(hào)數(shù)據(jù)、……模態(tài)6信號(hào)數(shù)據(jù),處理模態(tài)I信號(hào)數(shù)據(jù)所需的處理時(shí)長(zhǎng)為10s,處理模態(tài)2信號(hào)數(shù)據(jù)所需的處理時(shí)長(zhǎng)為15s,處理模態(tài)3信號(hào)數(shù)據(jù)所需的處理時(shí)長(zhǎng)為8s,處理模態(tài)4信號(hào)數(shù)據(jù)所需的處理時(shí)長(zhǎng)為20s,處理模態(tài)5信號(hào)數(shù)據(jù)所需的處理時(shí)長(zhǎng)為18s,處理模態(tài)6信號(hào)數(shù)據(jù)所需的處理時(shí)長(zhǎng)為7s。如圖4所示,為多模態(tài)信號(hào)數(shù)據(jù)處理并行調(diào)度示意圖,按照處理時(shí)長(zhǎng)按照降序的順序選擇4個(gè)信號(hào)數(shù)據(jù),本例中,先開始四個(gè)線程,假設(shè)分別為線程1、線程2、線程3和線程4分別處理模態(tài)4信號(hào)數(shù)據(jù)、模態(tài)5信號(hào)數(shù)據(jù)、模態(tài)2信號(hào)數(shù)據(jù)和模態(tài)I信號(hào)數(shù)據(jù),當(dāng)線程4處理完成模態(tài)I信號(hào)數(shù)據(jù)之后,接著處理模態(tài)3信號(hào)數(shù)據(jù),當(dāng)線程3處理完成模態(tài)2信號(hào)數(shù)據(jù)之后,接著處理模態(tài)6信號(hào)數(shù)據(jù),至此一個(gè)數(shù)據(jù)包中的所有信號(hào)數(shù)據(jù)均處理完成。
[0054]上述方式二中,從第二個(gè)數(shù)據(jù)包開始,采用貪心算法,每次按照處理時(shí)長(zhǎng)降序順序依次選擇N (N為終端設(shè)備中央處理器核數(shù))個(gè)模態(tài)信號(hào)數(shù)據(jù),開啟N個(gè)線程并行處理這N個(gè)模態(tài)信號(hào)數(shù)據(jù),當(dāng)某個(gè)線程上的信號(hào)數(shù)據(jù)處理完成后,就從未處理的信號(hào)數(shù)據(jù)中按順序選擇下一個(gè)信號(hào)數(shù)據(jù)進(jìn)行處理(即剩下的信號(hào)數(shù)據(jù)中需要處理時(shí)長(zhǎng)最長(zhǎng)的信號(hào)數(shù)據(jù)),直至數(shù)據(jù)包中的所有模態(tài)的信號(hào)數(shù)據(jù)都處理完成。通過采用貪心算法,以迭代的方式處理多模態(tài)信號(hào)數(shù)據(jù),使每一步都達(dá)到局部最優(yōu)的效果,因此,一個(gè)完整的數(shù)據(jù)包的處理中能夠達(dá)到局部最優(yōu)的處理效果。
[0055]在本發(fā)明實(shí)施例中,充分利用終端設(shè)備的多核特性,并行處理多模態(tài)信號(hào)數(shù)據(jù),從而提高了多模態(tài)信號(hào)數(shù)據(jù)的處理速度。
[0056]基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例中還提供了一種多模態(tài)信號(hào)數(shù)據(jù)處理裝置及終端設(shè)備,由于上述裝置及設(shè)備解決問題的原理與多模態(tài)信號(hào)數(shù)據(jù)處理方法相似,因此上述裝置及設(shè)備的實(shí)施可以參見方法的實(shí)施,重復(fù)之處不再贅述。
[0057]如圖5所示,為本發(fā)明實(shí)施例提供的多模態(tài)信號(hào)數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖,可以包括:
[0058]接收單元501,用于接收包含多模態(tài)信號(hào)數(shù)據(jù)的數(shù)據(jù)包序列;
[0059]解析單元502,用于解析接收單元501接收到的數(shù)據(jù)包序列中的任一數(shù)據(jù)包,獲取多模態(tài)信號(hào)數(shù)據(jù)的模態(tài)數(shù);
[0060]比較單元503,用于比較中央處理器核數(shù)與所述模態(tài)數(shù);
[0061]執(zhí)行單元504,用于根據(jù)比較單元503的比較結(jié)果,若所述核數(shù)大于等于所述模態(tài)數(shù),則針對(duì)每一模態(tài)信號(hào)數(shù)據(jù),分別開啟一個(gè)線程,并行處理各模態(tài)信號(hào)數(shù)據(jù);若所述核數(shù)小于所述模態(tài)數(shù),則按照預(yù)設(shè)算法并行處理所述多模態(tài)信號(hào)數(shù)據(jù)。
[0062]具體實(shí)施時(shí),數(shù)據(jù)包序列的每一數(shù)據(jù)包攜帶有該數(shù)據(jù)包的建立時(shí)間。較佳的,執(zhí)行單元504可以單不限于按照以下兩種方式中的任一種處理多模態(tài)信號(hào)數(shù)據(jù)。
[0063]方式一、
[0064]執(zhí)行單元504,可以用于若所述核數(shù)小于所述模態(tài)數(shù)時(shí),按照以下方法并行處理所述多模態(tài)信號(hào)數(shù)據(jù):開啟N個(gè)線程,其中,N為中央處理器核數(shù);按照各數(shù)據(jù)包的建立時(shí)間順序,依次選擇一個(gè)數(shù)據(jù)包,針對(duì)每一數(shù)據(jù)包均執(zhí)行以下操作:從該數(shù)據(jù)包中任意選擇N個(gè)模態(tài)信號(hào)數(shù)據(jù),開啟的每一線程分別處理一個(gè)選擇出的模態(tài)信號(hào)數(shù)據(jù);當(dāng)任一線程的模態(tài)信號(hào)數(shù)據(jù)處理完成后,從未處理的模態(tài)信號(hào)數(shù)據(jù)中選擇任一模態(tài)信號(hào)數(shù)據(jù)進(jìn)行處理,直至處理完成該數(shù)據(jù)包中的所有模態(tài)信號(hào)數(shù)據(jù)。
[0065]方式二
[0066]執(zhí)行單元504,可以用于若所述核數(shù)小于所述模態(tài)數(shù)時(shí),按照以下方法并行處理所述多模態(tài)信號(hào)數(shù)據(jù):依次處理建立時(shí)間最早的數(shù)據(jù)包中所包含的每一模態(tài)信號(hào)數(shù)據(jù);并記錄處理該模態(tài)信號(hào)數(shù)據(jù)所需處理時(shí)長(zhǎng);開啟N個(gè)線程,其中,N為中央處理器核數(shù);從剩余的各數(shù)據(jù)包中,按照數(shù)據(jù)包的建立時(shí)間順序,依次選擇一個(gè)數(shù)據(jù)包,針對(duì)每一數(shù)據(jù)包均執(zhí)行以下操作:從該數(shù)據(jù)包中按照模態(tài)信號(hào)數(shù)據(jù)處理時(shí)長(zhǎng)降序的順序依次選擇前N個(gè)模態(tài)信號(hào)數(shù)據(jù),開啟的每一線程分別處理一個(gè)選擇出的模態(tài)信號(hào)數(shù)據(jù);當(dāng)任一線程的模態(tài)信號(hào)數(shù)據(jù)處理完成后,從未處理的模態(tài)信號(hào)數(shù)據(jù)中按照處理時(shí)長(zhǎng)降序的順序依次選擇一模態(tài)信號(hào)數(shù)據(jù)進(jìn)行處理,直至處理完成該數(shù)據(jù)包中的所有模態(tài)信號(hào)數(shù)據(jù)。
[0067]其中,執(zhí)行單元504,可以用于按照以下方法確定每一模態(tài)信號(hào)數(shù)據(jù)所需處理時(shí)長(zhǎng):針對(duì)每一模態(tài)信號(hào)數(shù)據(jù),獲得該模態(tài)信號(hào)數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)處理窗口大??;根據(jù)所述數(shù)據(jù)處理窗口大小和該模態(tài)信號(hào)數(shù)據(jù)大小確定處理該模態(tài)信號(hào)數(shù)據(jù)需要的數(shù)據(jù)處理窗口數(shù)量;在處理建立時(shí)間最早的數(shù)據(jù)包中所包含的該模態(tài)信號(hào)數(shù)據(jù)時(shí)