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

演奏信息的壓縮裝置、解壓縮裝置、壓縮程序制品及解壓縮程序制品的制作方法

文檔序號(hào):2821049閱讀:261來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):演奏信息的壓縮裝置、解壓縮裝置、壓縮程序制品及解壓縮程序制品的制作方法
技術(shù)區(qū)域本發(fā)明涉及例如演奏信息等的壓縮或解壓縮技術(shù),特別是涉及將演奏信息的數(shù)據(jù)量進(jìn)行有效壓縮的演奏信息壓縮裝置、演奏信息解壓縮裝置、演奏信息壓縮程序制品、演奏信息解壓縮程序制品。
背景技術(shù)
歷來(lái),例如作為與用于將來(lái)自樂(lè)器等的演奏信息以數(shù)碼進(jìn)行通信的接口有關(guān)的規(guī)格,一般已知的有MIDI(Musical Instrument DigitalInterface)規(guī)格。而且,作為保存由該MIDI規(guī)格所定義的數(shù)據(jù)的文件,一般所知的例如有標(biāo)準(zhǔn)MIDI文件(以下稱(chēng)SMF),它們已在各種區(qū)域得到廣泛應(yīng)用。
在該SMF中,各演奏信息將數(shù)個(gè)一字節(jié)的字符進(jìn)行組合的MIDI信息來(lái)表現(xiàn)。該MIDI信息是由MIDI規(guī)格定義一字節(jié)的狀態(tài),由此區(qū)別演奏信息。進(jìn)而,在狀態(tài)字節(jié)上接上數(shù)據(jù)字節(jié),各數(shù)據(jù)字節(jié)數(shù)根據(jù)演奏信息的種類(lèi)而不同。
還有,在狀態(tài)字節(jié)中,除上述之外,還包括與狀態(tài)的種類(lèi),通道編號(hào)有關(guān)的信息。
但是,在當(dāng)今,鑒于該SMF的文件大小的變得比較大,例如在將該SMF用于多個(gè)樂(lè)曲數(shù)據(jù)的記錄并進(jìn)行傳遞的系統(tǒng)的情況下,希望能夠?qū)υ揝MF中所包含的各演奏信息的數(shù)據(jù)量進(jìn)行高效率的壓縮,從而推進(jìn)了這種技術(shù)的開(kāi)發(fā)。
這里,作為將壓縮后的信息進(jìn)行解壓縮并將其與原來(lái)的信息完全一致的壓縮法的可逆的壓縮法,一般公知的例如有LZ(Lempel-Zif)壓縮法,Huffman壓縮法,掃描寬度壓縮法,進(jìn)而還有將它們組合的方式(例如LHA及ZIP等),都在廣泛使用。
在這些壓縮方式中,首先,LZ方式由于是利用數(shù)據(jù)模式進(jìn)行重復(fù)而壓縮其重復(fù)部分的方式,所以在輸入的數(shù)據(jù)中在一定范圍內(nèi)出現(xiàn)的相同數(shù)據(jù)模式多的情況下,具有壓縮率低的特征。這里,所謂壓縮率,是指壓縮后的數(shù)據(jù)大小相對(duì)于壓縮前數(shù)據(jù)大小所占的比例。所以,壓縮率低就意味著壓縮效率高(好)。
進(jìn)而,Huffman壓縮方法,不是根據(jù)數(shù)據(jù)模式,而是根據(jù)每一個(gè)字節(jié)的代碼的出現(xiàn)頻率而構(gòu)成加權(quán)的規(guī)定樹(shù)型網(wǎng)絡(luò)樹(shù),從而能夠以少的比特?cái)?shù)記錄權(quán)重大的代碼的壓縮方法,所以對(duì)于每個(gè)字節(jié)代碼的出現(xiàn)頻率有偏差的數(shù)據(jù)有效。
而且,將這些LZ方式與Huffman壓縮方法復(fù)合的LHA壓縮法,兼有上述LZ方式與Huffman壓縮方法的優(yōu)點(diǎn)。
這里,在上述SMF中,各演奏信息由Δ時(shí)間(以下稱(chēng)Δt)與事件所構(gòu)成,進(jìn)而,各事件中又包含音符開(kāi)(Note On)、音符關(guān)(Note Off)的狀態(tài)、和音程、音的強(qiáng)度等信息。
一般地,樂(lè)曲由同樣的樂(lè)句重復(fù)構(gòu)成的情況較多,但樂(lè)曲制作者應(yīng)該避免樂(lè)曲變動(dòng)單調(diào),例如存在使音的強(qiáng)度、音的長(zhǎng)度發(fā)生微妙變化的情況。而且,即使假定在不同通道中存在相同模式的樂(lè)句,但如果SMF的各演奏信息的事件包含通道編號(hào)的信息,則記錄數(shù)據(jù)也會(huì)成為不同的模式。
這樣在SMF中,由于多個(gè)信息包含于作為數(shù)據(jù)記錄的最小單位的事件中而生成上述狀況,所以在通過(guò)通用壓縮方式進(jìn)行壓縮的情況下,有必要進(jìn)一步下功夫使其壓縮效率提高。
鑒于這一點(diǎn),例如在特開(kāi)平9-16168號(hào)公報(bào)中記述了以下技術(shù)。即由一次代碼生成裝置將演奏信息分離成音程信息、與音的強(qiáng)度信息、音的長(zhǎng)度信息、以及其它信息,將各信息配置于分別獨(dú)立的區(qū)域,其后由LZ方式提高壓縮效率為特征的演奏信息壓縮裝置及演奏信息解碼裝置。
但是,在上述特開(kāi)平9-16168號(hào)公報(bào)上述的技術(shù)中,由于與使各演奏信息在一次壓縮時(shí)在時(shí)間上獨(dú)立這一點(diǎn)無(wú)關(guān),而未保存各演奏信息的順序的信息,所以在將壓縮后的演奏信息解壓縮的情況下,可能會(huì)發(fā)生上述各演奏信息順序的交錯(cuò),即發(fā)生解壓縮后的演奏信息不能完全與原來(lái)的演奏信息一致的情況。
本發(fā)明是鑒于上述問(wèn)題而提出的,其目的在于提供即使在解壓縮后也能夠回復(fù)各演奏信息的順序,防止解壓縮后的演奏信息與原來(lái)的演奏信息不一致等事件的發(fā)生,通過(guò)省略一部分演奏信息的記錄等,縮小一次代碼的大小,進(jìn)而能夠通過(guò)與通用壓縮方式的組合來(lái)有效地壓縮或伸長(zhǎng)演奏信息的數(shù)據(jù)量的演奏信息壓縮裝置、演奏信息解壓縮裝置、演奏信息壓縮程序制品、以及演奏信息解壓縮程序制品。

發(fā)明內(nèi)容
為了達(dá)到上述目的,在本發(fā)明的第一方面中,提供具有以下特征的演奏信息壓縮裝置在接受具有包含至少由發(fā)音開(kāi)始音程的信息、音的強(qiáng)度信息、發(fā)音結(jié)束音程的信息、以及其它信息所構(gòu)成的事件,和該事件間相對(duì)時(shí)間的信息,并屬于規(guī)定通道的軌道數(shù)據(jù)的文件的輸入,對(duì)該文件進(jìn)行壓縮的演奏信息壓縮裝置中,具有一次代碼生成裝置與二次代碼生成裝置。其中一次代碼生成裝置將上述文件的軌道數(shù)據(jù)分離為屬于各通道的多個(gè)軌道數(shù)據(jù),在保持表示對(duì)該通道的歸屬的同時(shí),將可歸屬于各通道的軌道數(shù)據(jù)進(jìn)一步按上述每個(gè)信息分離,將該分離后的各信息,按各信息的種類(lèi)歸納而與對(duì)該通道的歸屬無(wú)關(guān),通過(guò)在對(duì)每一個(gè)種類(lèi)獨(dú)立的區(qū)域進(jìn)行配置,生成一次代碼。二次代碼生成裝置以規(guī)定的壓縮方法對(duì)由上述一次代碼生成裝置生成的一次代碼的各區(qū)域內(nèi)所配置的各信息進(jìn)行壓縮。
在第二方面中,提供具有以下特征的演奏信息壓縮裝置在接受具有包含至少由音程信息、音的強(qiáng)度信息、音的長(zhǎng)度信息、以及其它信息所構(gòu)成的事件,和該事件間相對(duì)時(shí)間的信息,并屬于規(guī)定通道的軌道數(shù)據(jù)的文件的輸入,對(duì)該文件進(jìn)行壓縮的演奏信息壓縮裝置中,具有一次代碼生成裝置與二次代碼生成裝置。其中一次代碼生成裝置將上述文件的軌道數(shù)據(jù)分離為屬于各通道的多個(gè)軌道數(shù)據(jù),在保持表示對(duì)該通道的歸屬的信息的同時(shí),將可歸屬于各通道的軌道數(shù)據(jù)進(jìn)一步按上述每個(gè)信息分離,將該分離后的各信息,按各信息的種類(lèi)歸納而與對(duì)該通道的歸屬無(wú)關(guān),通過(guò)在對(duì)每一個(gè)種類(lèi)獨(dú)立的區(qū)域進(jìn)行配置,生成一次代碼。二次代碼生成裝置以規(guī)定的壓縮方法對(duì)由上述一次代碼生成裝置生成的一次代碼的各區(qū)域內(nèi)所配置的各信息進(jìn)行壓縮。
在第三方面中,提供具有以下特征的演奏信息解壓縮裝置在對(duì)具有至少由發(fā)音開(kāi)始音程信息、音的強(qiáng)度信息、發(fā)音結(jié)束音程信息,以及其它信息所構(gòu)成的事件,與該事件間的相對(duì)時(shí)間的信息,并屬于規(guī)定的通道的軌道數(shù)據(jù)的文件所壓縮生成的二次代碼解壓縮為一次代碼,進(jìn)而將該一次代碼解壓縮成文件的演奏信息的解壓縮裝置中,具有二次代碼解壓縮裝置與一次代碼解壓縮裝置,其中二次代碼解壓縮裝置將上述二次代碼解壓縮為一次代碼,一次代碼解壓縮裝置對(duì)上述一次代碼,將獨(dú)立區(qū)域所配置的每一種類(lèi)的各信息按每一種類(lèi)抽出,參考表示對(duì)上述通道的歸屬的信息,同時(shí),將所抽出的各信息構(gòu)成為歸屬于各通道的多個(gè)軌道數(shù)據(jù),進(jìn)而構(gòu)成為文件的軌道數(shù)據(jù),由此解壓縮成文件。
在第四方面中,提供具有以下特征的演奏信息解壓縮裝置在對(duì)具有至少由音程信息、音的強(qiáng)度信息、音的長(zhǎng)度信息,以及其它信息所構(gòu)成的事件,與該事件間的相對(duì)時(shí)間的信息,并屬于規(guī)定的通道的軌道數(shù)據(jù)的文件進(jìn)行壓縮而生成的二次代碼解壓縮為一次代碼,進(jìn)而將該一次代碼解壓縮成文件的演奏信息的解壓縮裝置中,具有二次代碼解壓縮裝置與一次代碼解壓縮裝置,其中二次代碼解壓縮裝置將上述二次代碼解壓縮為一次代碼,一次代碼解壓縮裝置對(duì)上述一次代碼,將獨(dú)立區(qū)域所配置的每一種類(lèi)的各信息抽出到該每一種類(lèi),參考表示對(duì)上述通道的歸屬的信息,同時(shí),將抽出的各信息構(gòu)成為歸屬于各通道的多個(gè)軌道數(shù)據(jù),進(jìn)而構(gòu)成為文件的軌道數(shù)據(jù),由此,解壓縮成文件。
在第五方面中,提供具有以下特征的演奏信息壓縮程序制品在接受具有包含至少由發(fā)音開(kāi)始音程的信息、音的強(qiáng)度信息、發(fā)音結(jié)束音程的信息、以及其它信息所構(gòu)成的事件,和該事件間相對(duì)時(shí)間的信息,并屬于規(guī)定通道的軌道數(shù)據(jù)的文件的輸入,對(duì)該文件進(jìn)行壓縮的演奏信息壓縮程序中,在計(jì)算機(jī)中具有實(shí)施生成一次代碼的步驟,與以規(guī)定的壓縮方法對(duì)由上述步驟生成的一次代碼的各區(qū)域內(nèi)所配置的各信息進(jìn)行壓縮的步驟的演奏信息壓縮程序制品。其中,一次代碼是通過(guò)將上述文件的軌道數(shù)據(jù)分離為屬于各通道的多個(gè)軌道數(shù)據(jù),在保持表示對(duì)該通道的歸屬,同時(shí),將歸屬于各通道的軌道數(shù)據(jù)進(jìn)一步按上述每個(gè)信息分離,將該分離后的各信息,按各信息的種類(lèi)歸納而與對(duì)該通道的歸屬無(wú)關(guān),通過(guò)在對(duì)每一個(gè)種類(lèi)獨(dú)立的區(qū)域進(jìn)行配置,生成一次代碼。
在第六方面中,提供具有以下特征的演奏信息解壓縮程序制品在對(duì)具有至少由發(fā)音開(kāi)始音程信息、音的強(qiáng)度信息、發(fā)音結(jié)束音程信息,以及其它信息所構(gòu)成的事件,與該事件間的相對(duì)時(shí)間的信息,并屬于規(guī)定的通道的軌道數(shù)據(jù)的文件所壓縮生成的二次代碼解壓縮為一次代碼,進(jìn)而將該一次代碼解壓縮成文件的演奏信息的解壓縮程序中,具有將上述二次代碼解壓縮為一次代碼的步驟,和對(duì)上述一次代碼,將獨(dú)立區(qū)域所配置的每一種類(lèi)的各信息按每一種類(lèi)抽出,參考表示對(duì)上述通道的歸屬的信息,同時(shí),將所抽出的各信息構(gòu)成為歸屬于各通道的多個(gè)軌道數(shù)據(jù),進(jìn)而構(gòu)成為文件的軌道數(shù)據(jù),由此解壓縮成文件的演奏信息解壓縮程序制品。
在第七方面中,提供具有以下特征的演奏信息解壓縮程序制品在對(duì)具有至少由音程信息、音的強(qiáng)度信息、音的長(zhǎng)度信息,以及其它信息所構(gòu)成的事件,與該事件間的相對(duì)時(shí)間的信息,并屬于規(guī)定的通道的軌道數(shù)據(jù)的文件進(jìn)行壓縮而生成的二次代碼解壓縮為一次代碼,進(jìn)而將該一次代碼解壓縮成文件的演奏信息的解壓縮程序中,具有將上述二次代碼解壓縮為一次代碼的步驟,和對(duì)上述一次代碼,將獨(dú)立區(qū)域所配置的每一種類(lèi)的各信息抽出到該每一種類(lèi),參考表示對(duì)上述通道的歸屬的信息,同時(shí),將抽出的各信息構(gòu)成為歸屬于各通道的多個(gè)軌道數(shù)據(jù),進(jìn)而構(gòu)成為文件的軌道數(shù)據(jù),由此解壓縮成文件的步驟的演奏信息解壓縮程序制品。


圖1是表示本發(fā)明第一實(shí)施方式中演奏信息壓縮裝置1的結(jié)構(gòu)的方框圖。
圖2是表示本發(fā)明第一實(shí)施方式中演奏信息壓縮裝置1的一次代碼生成部2的詳細(xì)結(jié)構(gòu)的方框圖。
圖3是表示本發(fā)明第一實(shí)施方式中演奏信息壓縮裝置1的一次代碼生成部2內(nèi)的軌道分離部7的詳細(xì)結(jié)構(gòu)的方框圖。
圖4是為了說(shuō)明由軌道分離部7進(jìn)行軌道分離處理的流程圖。
圖5是表示第一實(shí)施方式中演奏信息壓縮裝置1的一次代碼生成部2內(nèi)的通道分離及通道編號(hào)代碼生成部8的詳細(xì)結(jié)構(gòu)的方框圖。
圖6是說(shuō)明由通道分離及通道編號(hào)代碼生成部8進(jìn)行通道分離及通道編號(hào)代碼生成的處理的流程圖。
圖7A是表示軌道x數(shù)據(jù)結(jié)構(gòu)的圖,圖7B是表示由分離軌道x數(shù)據(jù)的單一通道所構(gòu)成的軌道x數(shù)據(jù)的圖,圖7C是用于說(shuō)明基于通道分離及通道編號(hào)代碼生成部8的通道編號(hào)代碼生成中處理效果的圖。
圖8是第一實(shí)施方式中演奏信息壓縮裝置1的通道編號(hào)以外的代碼生成部9的詳細(xì)結(jié)構(gòu)的方框圖。
圖9是為了說(shuō)明由通道編號(hào)以外的代碼生成部9進(jìn)行壓縮處理的流程圖。
圖10是對(duì)圖9的步驟S36中執(zhí)行的軌道[I][J]的壓縮處理進(jìn)行更詳細(xì)說(shuō)明的流程圖。
圖11是對(duì)圖10的步驟S47中執(zhí)行的每一個(gè)事件的壓縮處理的更詳細(xì)說(shuō)明的流程圖。
圖12是表示第一實(shí)施方式中演奏信息壓縮裝置1的一次代碼生成部2內(nèi)代碼配置部10的詳細(xì)結(jié)構(gòu)的方框圖。
圖13是為了說(shuō)明由代碼配置部10進(jìn)行代碼配置處理的流程圖。
圖14是為了對(duì)圖13的步驟S61中執(zhí)行的Δt代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖15是為了對(duì)圖13的步驟S62中執(zhí)行的音符開(kāi)音程代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖16是為了對(duì)圖13的步驟S63中執(zhí)行的音符關(guān)音程代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖17是為了對(duì)圖13的步驟S64中執(zhí)行的速率值代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖18是為了對(duì)圖13的步驟S65中執(zhí)行的差分彎曲(bend)值代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖19是為了對(duì)圖13的步驟S66中執(zhí)行的差分表達(dá)(expression)值代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖20是為了對(duì)圖13的步驟S67中執(zhí)行的事件種類(lèi)識(shí)別代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖21是表示事件種類(lèi)識(shí)別代碼表的一例的圖。
圖22是用于對(duì)圖13的步驟S68中執(zhí)行的通道編號(hào)代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖23是為了對(duì)圖13的步驟S69中執(zhí)行的其它信息代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖24是表示由一次代碼生成部2生成的一次代碼5的基本配置順序的圖。
圖25A是表示由一次代碼生成部2生成的一次代碼5的各代碼的詳細(xì)內(nèi)部配置順序的圖。圖25B是表示通道代碼編號(hào)內(nèi)部配置順序的圖。
圖26是表示本發(fā)明第一實(shí)施方式中演奏信息解壓縮裝置50的結(jié)構(gòu)的方框圖。
圖27是表示第一實(shí)施方式中演奏信息壓縮裝置50中一次代碼解壓縮部51的詳細(xì)結(jié)構(gòu)的方框圖。
圖28是表示第一實(shí)施方式中演奏信息壓縮裝置1的一次代碼解壓縮部51內(nèi)的按通道區(qū)分的代碼抽出部53的詳細(xì)結(jié)構(gòu)的方框圖。
圖29是為了說(shuō)明按通道區(qū)分的抽出部53的代碼抽出處理的流程圖。
圖30是對(duì)圖29的步驟S161中執(zhí)行的Δt代碼抽出的處理進(jìn)行更詳細(xì)說(shuō)明的流程圖。
圖31是對(duì)圖29的步驟S162中執(zhí)行的音符開(kāi)音程代碼抽出的處理進(jìn)行更詳細(xì)說(shuō)明的流程圖。
圖32是對(duì)圖29的步驟S163中執(zhí)行的音符關(guān)音程代碼抽出的處理進(jìn)行更詳細(xì)說(shuō)明的流程圖。
圖33是對(duì)圖29的步驟S164中執(zhí)行的速率值代碼抽出的處理進(jìn)行更詳細(xì)說(shuō)明的流程圖。
圖34是對(duì)圖29的步驟S165中執(zhí)行的差分彎曲值代碼抽出的處理進(jìn)行更詳細(xì)說(shuō)明的流程圖。
圖35是對(duì)圖29的步驟S166中執(zhí)行的差分表達(dá)值代碼抽出的處理進(jìn)行更詳細(xì)說(shuō)明的流程圖。
圖36是對(duì)圖29的步驟S167中執(zhí)行的事件種類(lèi)識(shí)別代碼抽出的處理進(jìn)行更詳細(xì)說(shuō)明的流程圖。
圖37是對(duì)圖29的步驟S168中執(zhí)行的通道編號(hào)代碼抽出的處理進(jìn)行更詳細(xì)說(shuō)明的流程圖。
圖38是對(duì)圖29的步驟S169中執(zhí)行的其它信息代碼抽出的處理進(jìn)行更詳細(xì)說(shuō)明的流程圖。
圖39是表示第一實(shí)施方式中演奏信息壓縮裝置50的一次代碼生成部52內(nèi)的軌道解壓縮部54的詳細(xì)結(jié)構(gòu)的方框圖。
圖40是為了說(shuō)明由軌道解壓縮部54進(jìn)行的解壓縮處理的流程圖。
圖41是圖41的步驟S266中執(zhí)行的軌道[I][J]的解壓縮處理進(jìn)行更詳細(xì)說(shuō)明的流程圖。
圖42A、42B是對(duì)圖41的步驟S273中執(zhí)行的每一個(gè)事件種類(lèi)的壓縮處理的更詳細(xì)說(shuō)明的流程圖。
圖43是表示第一實(shí)施方式中演奏信息壓縮裝置50的一次代碼生成部52內(nèi)的軌道合并及通道編號(hào)代碼解壓縮部55的詳細(xì)結(jié)構(gòu)的方框圖。
圖44是為了說(shuō)明由軌道合并及通道編號(hào)代碼解壓縮部55進(jìn)行軌道合并及通道編號(hào)代碼解壓縮的流程圖。
圖45是對(duì)圖44的步驟S305中執(zhí)行的軌道合并的處理進(jìn)行更詳細(xì)說(shuō)明的流程圖。
圖46是表示第一實(shí)施方式中演奏信息壓縮裝置50的一次代碼生成部52內(nèi)的軌道配置部56的詳細(xì)結(jié)構(gòu)的方框圖。
圖47是為了說(shuō)明由軌道配置部56進(jìn)行的軌道配置的處理的流程圖。
圖48是第二實(shí)施方式中演奏信息壓縮裝置70的通道編號(hào)以外的代碼生成部100的詳細(xì)結(jié)構(gòu)的方框圖。
圖49是對(duì)在第二實(shí)施方式的圖10的步驟S47中執(zhí)行的每一個(gè)事件的壓縮的處理進(jìn)行更詳細(xì)說(shuō)明的流程圖。
圖50是為了說(shuō)明由代碼配置部10進(jìn)行代碼配置處理的流程圖。
圖51是為了對(duì)圖50的步驟S381中執(zhí)行的Δt代碼配置的處理進(jìn)行更詳細(xì)說(shuō)明的流程圖。
圖52是為了對(duì)圖50的步驟S382中執(zhí)行的音程代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖53是為了對(duì)圖50的步驟S383中執(zhí)行的選通時(shí)間音程代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖54是為了對(duì)圖50的步驟S384中執(zhí)行的速率值代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖55是為了對(duì)圖50的步驟S385中執(zhí)行的差分彎曲值代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖56是為了對(duì)圖50的步驟S386中執(zhí)行的差分音量值代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖57是為了對(duì)圖50的步驟S387中執(zhí)行的事件種類(lèi)識(shí)別代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖58是表示事件種類(lèi)識(shí)別代碼表的一例的圖。
圖59是為了對(duì)圖50的步驟S388中執(zhí)行的通道編號(hào)代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖60是為了對(duì)圖50的步驟S389中執(zhí)行的其它信息代碼配置的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖61是表示在第二實(shí)施方式中,由一次代碼生成部2所生成的一次代碼5的基本配置順序的圖。
圖62表示采用第二實(shí)施方式的演奏信息解壓縮裝置80的按通道區(qū)分的代碼抽出部110的詳細(xì)結(jié)構(gòu)的方框圖。
圖63是為了說(shuō)明由按通道區(qū)分的代碼抽出部110的代碼抽出的處理的流程圖。
圖64是為了對(duì)圖63的步驟S481中執(zhí)行的Δt代碼抽出的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖65是為了對(duì)圖63的步驟S482中執(zhí)行的音程代碼抽出的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖66是為了對(duì)圖63的步驟S483中執(zhí)行的選通時(shí)間代碼抽出的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖67是為了對(duì)圖63的步驟S484中執(zhí)行的速率值代碼抽出的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖68是為了對(duì)圖63的步驟S485中執(zhí)行的差分彎曲值代碼抽出的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖69是為了對(duì)圖63的步驟S486中執(zhí)行的差分音量值代碼抽出的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖70是為了對(duì)圖63的步驟S487中執(zhí)行的事件種類(lèi)識(shí)別代碼抽出的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖71是為了對(duì)圖63的步驟S488中執(zhí)行的通道編號(hào)代碼抽出的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖72是為了對(duì)圖63的步驟S489中執(zhí)行的其它信息代碼抽出的處理進(jìn)一步詳細(xì)說(shuō)明的流程圖。
圖73是表示第二實(shí)施方式的演奏信息解壓縮裝置80中軌道解壓縮部120的詳細(xì)結(jié)構(gòu)的方框圖。
圖74A、74B是對(duì)在第二實(shí)施方式中圖41的步驟S273中執(zhí)行的每一個(gè)事件種類(lèi)的解壓縮處理進(jìn)行更詳細(xì)說(shuō)明的流程圖。
圖75是表示第三實(shí)施方式中系統(tǒng)的第一構(gòu)成例的圖。
圖76是表示第三實(shí)施方式中系統(tǒng)的第二構(gòu)成例的圖。
圖77是表示第三實(shí)施方式中系統(tǒng)的第三構(gòu)成例的圖。
圖78是表示第三實(shí)施方式中系統(tǒng)的第四構(gòu)成例的圖。
圖79是表示按演奏信息類(lèi)型分的類(lèi)型對(duì)應(yīng)表的圖。
具體實(shí)施例方式
以下參照附圖對(duì)本發(fā)明的實(shí)施方式加以說(shuō)明。
(第一實(shí)施方式)首先對(duì)第一實(shí)施方式中演奏信息壓縮裝置、演奏信息解壓縮裝置、演奏信息壓縮方法、演奏信息解壓縮方法、演奏信息壓縮程序以及演奏信息解壓縮程序中,作為前提的輸入數(shù)據(jù)(樂(lè)曲文件)的格式進(jìn)行詳細(xì)說(shuō)明。在該第一實(shí)施方式中,將樂(lè)曲文件的格式假定為SMF的格式。該SMF可以分為頭塊與軌道塊兩大類(lèi)。在各頭塊內(nèi),包含與全體MIDI文件有直接關(guān)系的最小信息,例如軌道數(shù)據(jù)的數(shù)等信息。進(jìn)而,在各軌道塊內(nèi),可以包含最大16通道的MIDI數(shù)據(jù)(軌道數(shù)據(jù))。而且,各軌道數(shù)據(jù),由Δt與事件等兩個(gè)要素所構(gòu)成。更詳細(xì)地講,該Δt由可變長(zhǎng)度的表所存儲(chǔ),表示直到后續(xù)的事件的時(shí)間間隔。即,在某些軌道的最初事件與軌道的開(kāi)始同時(shí)發(fā)生的情況下,或兩個(gè)事件在同一時(shí)刻發(fā)生的情況下,Δt為0。進(jìn)而,在事件中包含音符開(kāi)或音符關(guān)的狀態(tài)及音程(音符數(shù))、音的強(qiáng)度(速率)等各種演奏信息。即該事件是MIDI通道信息,詳細(xì)地講,由狀態(tài)字節(jié)與數(shù)據(jù)字節(jié)所構(gòu)成。在先行的事件與狀態(tài)相同的情況下,也可以將該狀態(tài)字節(jié)省略。但是,最初的事件必須指定狀態(tài)。
以上是SMF的格式的概要,在該第一實(shí)施方式的演奏信息壓縮裝置等所采用的格式中,進(jìn)而還具有以下特征在上述演奏信息文件中所記錄的事件組中所包含的事件內(nèi),至少將使用頻率最高的事件的事件種類(lèi)識(shí)別信息,包含在一次代碼的相對(duì)時(shí)間代碼內(nèi)進(jìn)行記錄。更詳細(xì)地講,通過(guò)將一次代碼的Δt變換為可識(shí)別的事件種類(lèi)加以記錄,能夠在使用頻率最高的事件與使用頻率次之的事件壓縮時(shí)省略事件種類(lèi)識(shí)別代碼的壓縮,并減少一次代碼的數(shù)據(jù)量。當(dāng)然,這是第一實(shí)施方式的特征部分之一。
(演奏信息壓縮裝置等)以下參照?qǐng)D1~圖25,對(duì)由樂(lè)曲文件生成一次代碼,進(jìn)而生成二次代碼的第一實(shí)施方式中演奏信息壓縮裝置、演奏信息壓縮方法、演奏信息壓縮程序,詳細(xì)說(shuō)明其結(jié)構(gòu)與作用。
還有,由該演奏信息壓縮裝置的作用,相當(dāng)于第一實(shí)施方式中演奏信息壓縮方法、演奏信息壓縮程序。該演奏信息壓縮程序,可以由通用計(jì)算機(jī)等來(lái)實(shí)施。
首先,在圖1中,表示說(shuō)明本發(fā)明第一實(shí)施方式中演奏信息壓縮裝置的結(jié)構(gòu)。如圖1所示,該演奏信息壓縮裝置1,由一次代碼生成部2與二次代碼生成部3所構(gòu)成。還有,權(quán)利要求中所述的一次代碼生成裝置相當(dāng)于該一次代碼生成部2,權(quán)利要求中所述的二次代碼生成裝置相當(dāng)于該二次代碼生成部3。但也并非僅限于此。
該一次代碼生成部2應(yīng)能提高二次代碼生成部3的壓縮效率,并能替換上述格式的樂(lè)曲文件4中所包含的演奏信息,生成一次代碼5。而且,二次代碼生成部3由通用壓縮方式將上述一次代碼5壓縮,生成二次代碼6。
就是說(shuō),一次代碼生成部2將上述文件的軌道數(shù)據(jù),分離為歸屬于各通道的多個(gè)軌道數(shù)據(jù),在保持表示歸屬該通道的信息的同時(shí),將屬于各通道的軌道數(shù)據(jù)進(jìn)一步分離為上述每一個(gè)信息,對(duì)該分離后的各信息,按每個(gè)信息的種類(lèi)歸納而與對(duì)該通道的歸屬無(wú)關(guān),通過(guò)配置于對(duì)每個(gè)種類(lèi)獨(dú)立的區(qū)域而生成一次代碼5。二次代碼生成部3以規(guī)定的壓縮方法對(duì)該一次代碼5中所配置的各信息進(jìn)行壓縮,生成二次代碼6。
在該第一實(shí)施方式中,作為在二次代碼生成部3中所采用的通用壓縮方式,例如可以為采用例如LZ壓縮法,Huffman壓縮法,掃描寬度壓縮法,進(jìn)而還有將它們組合的方式(例如LHA及ZIP等)。當(dāng)然并非僅限于此。
這里,一次代碼生成部2的詳細(xì)結(jié)構(gòu)如圖2所示。
就是說(shuō),該一次代碼生成部2具有軌道分離部7與通道分離及通道編號(hào)代碼生成部8,通道編號(hào)以外的代碼生成部9,以及代碼配置部10。以下對(duì)這些部分7~10的結(jié)構(gòu)與作用詳細(xì)敘述。
首先,軌道分離部7的詳細(xì)結(jié)構(gòu)如圖3所示。
即該軌道分離部7具有文件分析部7a。
該文件分析部7a,基于樂(lè)曲文件4的頭塊內(nèi)所包含的軌道數(shù)據(jù)的數(shù)的信息,判斷樂(lè)曲文件4的軌道塊內(nèi)是否包含有多個(gè)軌道數(shù)據(jù),而且,在判斷包含有多個(gè)軌道數(shù)據(jù)的情況下,將軌道塊分離為各自的軌道數(shù)據(jù)。在該圖3中,表示的是將樂(lè)曲文件4的軌道塊分離為m+1個(gè)軌道數(shù)據(jù),即軌道0數(shù)據(jù)11-0,軌道1數(shù)據(jù)11-1,...,軌道m(xù)數(shù)據(jù)11-m的例子。
以下參照?qǐng)D4的流程圖,對(duì)該軌道分離部7(包含文件分析部7a)所進(jìn)行的軌道分離處理的流程進(jìn)行更詳細(xì)的說(shuō)明。
就是說(shuō),該軌道分離的處理開(kāi)始后,首先,軌道分離部7讀取輸入的樂(lè)曲文件4的頭塊的信息,將該頭塊的一部分中所記錄的軌道數(shù)(圖3中是m+1個(gè))代入至變量M(步驟S1)。接著,軌道分離部7從輸入的樂(lè)曲文件4的軌道塊順次讀取上述軌道數(shù)的軌道0數(shù)據(jù)11-0,軌道1數(shù)據(jù)11-1,...,軌道m(xù)數(shù)據(jù)11-m,將它們各自順次收存于陣列軌道
,軌道[1],...,軌道[m](步驟S2至S5)。這樣,軌道分離部7對(duì)軌道分離的處理結(jié)束。
接著,通道分離及通道編號(hào)生成部8的詳細(xì)結(jié)構(gòu)如圖5所示,該通道分離及通道編號(hào)代碼生成部8具有軌道分析分離部8a與通道編號(hào)代碼生成部8b。
該軌道分析分離部8a,對(duì)于前面由軌道分離部7所分割的各個(gè)軌道0數(shù)據(jù)11-0,軌道1數(shù)據(jù)11-1,...軌道m(xù)數(shù)據(jù)11-m,分析是否包含多個(gè)通道的軌道數(shù)據(jù),在分析為包含的情況下,將其各自分離為由單一通道所構(gòu)成的軌道數(shù)據(jù)。在該第一實(shí)施方式中,軌道分析分離部8a,將輸入的軌道x數(shù)據(jù)11-x,分離為僅有通道0的軌道x數(shù)據(jù)12-0,僅有通道1的軌道x數(shù)據(jù)12-1,...,僅有通道n的軌道x數(shù)據(jù)12-n。此時(shí),通道編號(hào)代碼生成部8b,生成各數(shù)據(jù)的通道編號(hào)代碼X13。該通道編號(hào)代碼X13相當(dāng)于權(quán)利要求中所述的表示向通道的歸屬的信息。
這里,在SMF的一個(gè)軌道數(shù)據(jù)中最大能夠包含16通道是與前述相同。但在SMF格式中,也能夠記述屬于通道的事件與不屬于通道的事件(對(duì)全體有影響的事件等)。鑒于此,在該第一實(shí)施方式中,對(duì)于不屬于通道的事件,作為通道0進(jìn)行處理。就是說(shuō),對(duì)于不屬于通道的事件,包含僅有通道0的軌道數(shù)據(jù)。但是,并非僅限于此。
而且,在第一實(shí)施方式中,由于如果對(duì)全部事件不存在的通道進(jìn)行壓縮,會(huì)成為龐大的軌道數(shù),所以將事件不存在的通道消除,不記錄于一次代碼。
以下參照?qǐng)D6的流程圖,將該通道分離及通道編號(hào)生成部8(軌道分析分離部8a、通道編號(hào)代碼生成部8b)所進(jìn)行的通道分離及通道編號(hào)代碼生成的處理流程進(jìn)行詳細(xì)說(shuō)明。
就是說(shuō),在該處理開(kāi)始后,首先,通道分離及通道編號(hào)代碼生成部8將0帶入通道編號(hào)的變量I(步驟S11),之后,將該變量I與最大軌道數(shù)M進(jìn)行比較(步驟S12)。在該步驟S12中,在通道分離及通道編號(hào)代碼生成部8判斷I<M的關(guān)系成立的情況下,從該步驟S12向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S13),將該通道編號(hào)的變量J與最大通道數(shù)MAX_CH進(jìn)行比較(步驟S14)。
接著,在步驟S14中,通道分離及通道編號(hào)代碼生成部8在判斷J<MAX_CH的關(guān)系成立的情況下,使Tick[J]為0(步驟S15),之后,使通道編號(hào)的變量J增加1(步驟S16),回到上述步驟S14。這里,上述Tick[J]意味著壓縮中的軌道數(shù)據(jù)J的現(xiàn)在壓縮位置的經(jīng)過(guò)時(shí)間。由于各軌道具有各自獨(dú)立的時(shí)間軸,所以與陣列Tick[J]有關(guān)的處理是必要的。通道分離及通道編號(hào)代碼生成部8對(duì)于從一個(gè)軌道數(shù)據(jù)分離的全部單一通道軌道數(shù)據(jù)執(zhí)行上述步驟S14到S16的處理。
例如,在與圖5的關(guān)系中,在軌道x數(shù)據(jù)11-x中,由于假設(shè)包含了屬于通道0~n的事件組,所以通道分離及通道編號(hào)代碼生成部8通過(guò)重復(fù)上述步驟S14至S16,使Tick
,Tick[1],......,Tick[n]為0。
上述處理之后,從步驟S14進(jìn)入No一側(cè),通道分離及通道編號(hào)代碼生成部8將0代入變量MasterTick,將-1代入變量Bch(步驟S17)。該Bch是表示處理中的事件之前(一個(gè)之前)的事件的通道編號(hào)的變量。而且,帶入Bch的-1,是表示因?yàn)樘幚碇械氖录谇邦^從而之前的事件不存在的值。
接著,判斷軌道[I]中存儲(chǔ)的軌道I數(shù)據(jù)中是否還有事件(步驟S18)。還有,上述MasterTick,意味著存儲(chǔ)有屬于成為分離單元的多個(gè)通道的事件組的軌道數(shù)據(jù)的現(xiàn)在路徑位置的經(jīng)過(guò)時(shí)間的變量。
而且,在上述步驟S18中,在通道分離及通道編號(hào)代碼生成部8判斷在軌道[I]的軌道I數(shù)據(jù)中還有事件的情況下,就從該軌道I數(shù)據(jù)讀出Δt及事件,順次地從變量Delta中存儲(chǔ)Δt,在變量Event中存儲(chǔ)事件(步驟S20)。進(jìn)而,將變量Event中存儲(chǔ)的事件中所包含的通道編號(hào)存儲(chǔ)于變量Ch(步驟S21)。接著,通道分離及通道編號(hào)代碼生成部8判斷變量Delta中存儲(chǔ)的Δt是否為0,即判斷在同一時(shí)刻是否記錄有一個(gè)之前的事件(步驟S22)。而且,在該步驟S22中,通道分離及通道編號(hào)代碼生成部8在判斷Δt為0的情況下,判斷變量Bch是否為-1,即是否存在有一個(gè)之前的事件(步驟S23)。
而且,在步驟S23中,通道分離及通道編號(hào)代碼生成部8在判斷變量Bch為-1,即不存在之前的事件(處理中的事件在前端)的情況下,進(jìn)入步驟S24以后的處理。另一方面,在上述步驟S23中,通道分離及通道編號(hào)代碼生成部8在判斷變量Bch不是-1,即判斷處理的事件不是在前端的情況下,將在通道編號(hào)代碼[I]的末尾的變量Bch中代入的通道編號(hào)進(jìn)行壓縮,進(jìn)入步驟S24以后的處理(步驟S27)。
接著,通道分離及通道編號(hào)代碼生成部8執(zhí)行圖3所示的三個(gè)處理(步驟S24),在軌道[I][Ch]的末尾追加變量Cdelta中存儲(chǔ)的值與變量Event中存儲(chǔ)的事件(步驟S25),進(jìn)而,在處理中的事件之前的事件的通道編號(hào)代碼的變量Bch中,代入在現(xiàn)在處理中的通道編號(hào)的變量Ch中所代入的通道編號(hào)(步驟S26),之后,回到上述步驟S18。
通道分離及通道編號(hào)代碼生成部8,只在軌道[I]的軌道I數(shù)據(jù)中存在有事件的狀態(tài)下,重復(fù)以上的處理(步驟S18至步驟S26),而且,在上述步驟S18中,在判斷軌道[I]中存儲(chǔ)的軌道I數(shù)據(jù)中沒(méi)有其它事件的情況下,使軌道編號(hào)的變量I增加1(步驟S19),之后回到上述步驟S12,對(duì)于下一個(gè)軌道數(shù)據(jù)執(zhí)行與上述同樣的處理。
而且,通道分離及通道編號(hào)代碼生成部8在前面所示的與圖3的關(guān)系中,重復(fù)上述處理直到軌道[m]中所收存的軌道m(xù)數(shù)據(jù)11-m,本處理結(jié)束。通過(guò)這樣一連串的處理,在與圖5的關(guān)系中,通道分離及通道編號(hào)代碼生成部8將輸入的軌道x數(shù)據(jù)11-x,分離為僅有通道0的軌道x數(shù)據(jù)12-0,僅有通道1的軌道x數(shù)據(jù)12-1,......,僅有通道n的軌道x數(shù)據(jù)12-n,同時(shí),生成各數(shù)據(jù)的通道編號(hào)代碼X。
還有,在上述處理中,不是對(duì)處理中的事件的通道編號(hào),而是對(duì)一個(gè)之前的事件的通道編號(hào)進(jìn)行壓縮,由此,使同時(shí)刻的事件組的末尾的通道編號(hào)代碼不被壓縮。
這里,參照?qǐng)D7,對(duì)由上述通道分離及通道編號(hào)代碼生成部8(軌道分析分離部8a、通道編號(hào)代碼生成部8b)進(jìn)行通道分離及通道編號(hào)代碼生成的處理的效果加以說(shuō)明。
現(xiàn)在,某一軌道x的軌道x數(shù)據(jù)是圖7A所示的結(jié)構(gòu)。在該例中所列舉的軌道x數(shù)據(jù)中,由于如圖所示混合存在有通道4、0、2的軌道x數(shù)據(jù),所以由上述處理分離為僅各通道的軌道x數(shù)據(jù),分離后的模樣如圖7B所示。就是說(shuō),圖7B的上段表示由單一的通道0所構(gòu)成軌道x數(shù)據(jù),中段表示由單一的通道2所構(gòu)成軌道x數(shù)據(jù),下段表示由單一的通道4所構(gòu)成軌道x數(shù)據(jù)。
在應(yīng)將它們回復(fù)到原來(lái)信息的解壓縮的情況下,如果僅是圖7B所示的信息,則判斷有不能認(rèn)識(shí)事件A至C是以怎樣的順序而排列。例如,通道編號(hào)按順序排列時(shí),為事件B、C、A的順序,這與軌道分割前不同。
鑒于這一點(diǎn),在第一實(shí)施方式中,為了在解壓縮時(shí)能夠識(shí)別事件A、B、C的順序,采用通道編號(hào)代碼X。該通道編號(hào)代碼X,限于在同時(shí)刻有多個(gè)事件發(fā)生的情況下,由圖7C所示的形式進(jìn)行壓縮。就是說(shuō),按照事件排列的順序,對(duì)與事件A有關(guān)的通道編號(hào),與事件B有關(guān)的通道編號(hào)進(jìn)行壓縮。
例如,在圖7A的例中,由于事件B、事件C的Δt為0,所以雖然判明了這些事件A、B、C為同一時(shí)刻,但可以知道只要確定了三個(gè)事件A、B、C中前端的兩個(gè)的順序,就不需要剩余一個(gè)的順序,所以,在第一實(shí)施方式中,在同一時(shí)刻存在有n個(gè)事件的情況下,對(duì)n-1的通道編號(hào)代碼進(jìn)行壓縮。
就是說(shuō),在該圖7C的例中,事件C的通道編號(hào)不被壓縮,更詳細(xì)地講,上述一次代碼生成部2基于事件間的相對(duì)時(shí)間的信息(Δt的前頭字節(jié)),判斷在上述軌道數(shù)據(jù)中記錄有同時(shí)刻的多個(gè)事件的情況下,對(duì)于上述同時(shí)刻的事件組的末尾所記錄的事件,從保持表示對(duì)通道的歸屬的信息的對(duì)象中除去,由此也能夠?qū)崿F(xiàn)數(shù)據(jù)量的削減。
還有,由于如果對(duì)事件不存在的軌道全部進(jìn)行壓縮,會(huì)成為龐大的軌道數(shù),所以在第一實(shí)施方式中,在一次代碼生成時(shí)刻削減不存在事件的軌道,使其不包含在一次代碼5內(nèi)。
接著,通道編號(hào)以外的代碼生成部9的詳細(xì)結(jié)構(gòu)如圖8所示。就是說(shuō),該通道編號(hào)以外的代碼生成部9,具有如圖所示的事件種類(lèi)分析識(shí)別部21,Δt代碼生成部22,音符開(kāi)音程代碼生成部23,音符關(guān)音符生成部24,速率值代碼生成部25,差分彎曲值代碼生成部26,差分表示值代碼生成部27,事件種類(lèi)識(shí)別代碼生成部28,以及其它信息生成部29。
以下參照?qǐng)D9的流程圖,對(duì)由該通道編號(hào)以外的代碼生成部9(包含21到29各部分)進(jìn)行處理的流程作詳細(xì)說(shuō)明。
該處理開(kāi)始后,首先通道編號(hào)以外的代碼生成部9將軌道編號(hào)的變量I設(shè)為0(步驟S31),將該變量I與最大軌道數(shù)M(在圖3的例中為m+1)進(jìn)行比較(步驟S32)。
而且,通道編號(hào)以外的代碼生成部9在判斷I<M的關(guān)系成立的情況下,將0代入通道編號(hào)的變量J(步驟S33),將該通道編號(hào)的變量J與事先確定的最大通道數(shù)MAX_CH進(jìn)行比較(步驟S34)。在該循環(huán)的第一循環(huán),由于在前面的步驟S334中J=0,所以通道編號(hào)以外的代碼生成部9判斷滿(mǎn)足J<MAX_CH的關(guān)系,對(duì)于軌道
中收存的僅有通道0的軌道0數(shù)據(jù)進(jìn)行壓縮(步驟S36)。
而且,通道編號(hào)以外的代碼生成部9在使通道編號(hào)的變量J增大1,使J=1之后,重復(fù)上述步驟S34到步驟S36的處理(步驟S37)。這里,在該第一實(shí)施方式中,由于最大通道數(shù)MAX_CH定為16,所以通道編號(hào)以外的代碼生成部9對(duì)收存于上述軌道
,軌道
[1],......,軌道
[15]的、僅有通道0的軌道0數(shù)據(jù),僅有通道1的軌道0數(shù)據(jù),.......,僅有通道15的軌道0數(shù)據(jù),順次進(jìn)行壓縮。
而且,通道編號(hào)以外的代碼生成部9在與該軌道0數(shù)據(jù)有關(guān)的處理之后,將軌道編號(hào)的變量I增加1,使I=1(步驟S35),之后,對(duì)收存于軌道[1]
,軌道[1][1],......,軌道[1][15]中的、僅有通道0的軌道1數(shù)據(jù),僅有通道1的軌道1數(shù)據(jù),......,僅有通道15的軌道1數(shù)據(jù),順次進(jìn)行壓縮(步驟S32至步驟S37)。這樣,通道編號(hào)以外的代碼生成部9對(duì)收存于軌道[m]
,軌道[m][1],.......,軌道[m][15]中的、僅有通道0的軌道m(xù)數(shù)據(jù),僅有通道1的軌道m(xù)數(shù)據(jù),......,僅有通道15的軌道m(xù)數(shù)據(jù),通過(guò)與上述同樣的處理,順次進(jìn)行壓縮(步驟S32至步驟S37),該處理結(jié)束。
這里,參照?qǐng)D10的流程圖,對(duì)圖9的上述步驟S36中執(zhí)行的軌道[I][J]的壓縮處理進(jìn)行更詳細(xì)的說(shuō)明。
該軌道[I][J]的壓縮的處理開(kāi)始后,通道編號(hào)以外的代碼生成部9判斷在軌道[I][J]所存儲(chǔ)的僅有通道J的軌道I數(shù)據(jù)中是否存在事件(步驟S40)。在該步驟S40中,通道編號(hào)以外的代碼生成部9在判斷僅J通道的軌道I數(shù)據(jù)中存在事件的情況下,從軌道[I][J]的數(shù)據(jù)讀入Δt與事件,在變量Delta中存儲(chǔ)Δt,在變量Event中存儲(chǔ)事件(步驟S41)。而且,通道編號(hào)以外的代碼生成部9判斷該Event中所存儲(chǔ)的事件的種類(lèi)(步驟S42)。
該事件種類(lèi)的判別,是基于SMF的形式(在后述的第二實(shí)施方式中是SMF的改良形式)對(duì)Event中所包含的數(shù)據(jù)列進(jìn)行判別。就是說(shuō),在上述步驟S42中,通道編號(hào)以外的代碼生成部9在判斷變量Event中所存儲(chǔ)的事件是與圖79中類(lèi)型1相當(dāng)?shù)氖录那闆r下,對(duì)Δt代碼[I][J]的末尾的變量Delta中所存儲(chǔ)的Δt由類(lèi)型1壓縮(步驟S43)。與此相對(duì),在上述步驟S42中,通道編號(hào)以外的代碼生成部9在判斷變量Event中所存儲(chǔ)的事件是與圖79中類(lèi)型2相當(dāng)?shù)氖录那闆r下,對(duì)Δt代碼[I][J]的末尾的變量Delta中所存儲(chǔ)的Δt由類(lèi)型2壓縮(步驟S44)。
另一方面,在上述步驟S42中,通道編號(hào)以外的代碼生成部9在判斷變量Event中所存儲(chǔ)的事件是與圖79中類(lèi)型3相當(dāng)?shù)氖录那闆r下,對(duì)Δt代碼[I][J]的末尾的變量Delta中所存儲(chǔ)的Δt由類(lèi)型3壓縮(步驟S45)。進(jìn)而在事件種類(lèi)識(shí)別代碼[I][J]的末尾將與變量Event的種類(lèi)相對(duì)應(yīng)的代碼進(jìn)行壓縮(步驟S46)。這樣,通過(guò)定義能夠識(shí)別事件種類(lèi)的Δt并進(jìn)行壓縮,由于在判別在步驟S42中是類(lèi)型1與類(lèi)型2的事件的情況下,能夠省略在步驟S46中記錄的事件種類(lèi)識(shí)別代碼,所以能夠削減數(shù)據(jù)量。
這樣,如后面的詳細(xì)敘述,通道編號(hào)以外的代碼生成部9對(duì)每一個(gè)事件種類(lèi)進(jìn)行壓縮(步驟S47),在限于軌道[I][J]中存在有事件的情況下重復(fù)上述處理(步驟S40至步驟S47),對(duì)全部的事件執(zhí)行上述處理(步驟S40),該軌道[I][J]的壓縮的處理結(jié)束,回復(fù)到圖9的上述步驟S36。
這里,上述一次代碼生成部2算出各事件之間的相對(duì)時(shí)間的信息,即Δt的最大公約數(shù),對(duì)該Δt除以上述最大公約數(shù)的數(shù)值進(jìn)行壓縮。即,上述一次代碼生成部2在以Δt為可變長(zhǎng)代碼時(shí),對(duì)Δt除以上述最大公約數(shù)的數(shù)值進(jìn)行壓縮。由此能夠執(zhí)行樂(lè)曲全體的容量的削減。
接著,參照?qǐng)D11的流程圖,對(duì)圖10的上述步驟S47中執(zhí)行的對(duì)每一個(gè)事件種類(lèi)的壓縮處理進(jìn)行更詳細(xì)的說(shuō)明。
那么,在該每個(gè)事件種類(lèi)的壓縮開(kāi)始后,通道編號(hào)以外的代碼生成部9識(shí)別變量Event內(nèi)存儲(chǔ)的事件的種類(lèi)(步驟S50),之后,通道編號(hào)以外的代碼生成部9對(duì)每一個(gè)識(shí)別的事件執(zhí)行不同的壓縮處理(步驟S51~S58)。
就是說(shuō),通道編號(hào)以外的代碼生成部9在判斷事件種類(lèi)為音符開(kāi)的情況下,在音符開(kāi)音程代碼[I][J]的末尾將音程值壓縮(步驟S51),在速率值代碼[I][J]的末尾將速率值壓縮(步驟S52)。另一方面,通道編號(hào)以外的代碼生成部9在判斷事件種類(lèi)為音符關(guān)的情況下,在音符關(guān)音程代碼[I][J]的末尾將音程值壓縮(步驟S53)。通道編號(hào)以外的代碼生成部9在判斷事件種類(lèi)是彎音(pitch bend)的情況下,將從差分彎曲值代碼[I][J]的末尾一個(gè)之前的彎曲值的差分彎曲值壓縮(步驟S54)。
而且,通道編號(hào)以外的代碼生成部9在判斷事件種類(lèi)為表達(dá)的情況下,對(duì)從差分表達(dá)值代碼[I][J]的末尾一個(gè)之前的表達(dá)值的差分表達(dá)值進(jìn)行壓縮(步驟S55)。而且,通道編號(hào)以外的代碼生成部9在判斷事件種類(lèi)為其它的情況下,接著判斷事件種類(lèi)識(shí)別代碼是否在0x08(參照?qǐng)D21)以上(步驟S56)。
而且,在步驟S56中,通道編號(hào)以外的代碼生成部9在判斷該代碼為0x08(參照?qǐng)D21)以上的情況下,將其它信息代碼[I][J]的末尾變量Event內(nèi)存儲(chǔ)的事件的第三字節(jié)以后的信息進(jìn)行壓縮(步驟S57)。另一方面,在上述步驟S56中,通道編號(hào)以外的代碼生成部9在判斷該代碼(16進(jìn)位數(shù))不到0x08(參照?qǐng)D21)的情況下,將其它信息代碼[I][J]的末尾變量Event內(nèi)存儲(chǔ)的事件的第二字節(jié)以后的信息進(jìn)行壓縮(步驟S57)。
這樣,通道編號(hào)以外的代碼生成部9對(duì)每一個(gè)事件種類(lèi)的壓縮結(jié)束。還有,在該第一實(shí)施方式中,在上述每一個(gè)事件種類(lèi)的壓縮處理中,由于一般不使用音符關(guān)的速率,所以音符關(guān)的速率不進(jìn)行壓縮而舍去,能夠達(dá)到數(shù)據(jù)量削減的目的。
如以上的說(shuō)明,通道編號(hào)以外的代碼生成部9(包含各生成部22至29),通過(guò)上述一連串的處理,能夠生成Δt代碼,音符開(kāi)音程代碼,音符關(guān)音程代碼,速率值代碼,差分彎曲值,差分表達(dá)值,事件種類(lèi)識(shí)別代碼,以及其它代碼。而且,如圖12所示,這些代碼全部輸入到代碼配置部10,而且,代碼配置部10,對(duì)于各個(gè)代碼種類(lèi)減小配置,生成一次代碼5。
以下,參照?qǐng)D13~圖23,對(duì)第一實(shí)施方式的演奏信息壓縮裝置1的代碼配置部10進(jìn)行代碼配置處理的流程進(jìn)行更詳細(xì)的說(shuō)明。
那么,本處理開(kāi)始后,代碼配置部10首先配置頭塊的代碼(步驟S60),以后,執(zhí)行各代碼的配置。
首先,代碼配置部10配置Δt代碼(步驟S61)。
就是說(shuō),如圖14的流程圖所詳細(xì)表示,該代碼配置部10首先將0代入軌道編號(hào)的變量I(步驟S70)之后,判斷該I是否小于軌道數(shù)M(步驟S71)。
在1循環(huán)上,由于在上述步驟S70中設(shè)定I=0,所以代碼配置部10從步驟S73向Yes一側(cè)行進(jìn)。而且,代碼配置部10將0代入下一個(gè)通道編號(hào)的變量J(步驟S72)。
接著,代碼配置部10判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S73)。
而且,在1循環(huán)上,由于在上述步驟S72中設(shè)定J=0,所以代碼配置部10從步驟S73向Yes一側(cè)行進(jìn),而且,代碼配置部10在配置Δt代碼
(步驟S74)之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S75)。
在該第一實(shí)施方式中,由于最大通道數(shù)MAX_CH設(shè)定為16,所以代碼配置部10重復(fù)進(jìn)行上述步驟S73至步驟S75的處理,順次配置Δt代碼
[1],Δt代碼
[2],......,Δt代碼
[15]。而且,在配置Δt代碼
[15]之后,代碼配置部10從步驟S73向No一側(cè)行進(jìn),將軌道編號(hào)的變量I加1,使I=1,之后再次重復(fù)步驟S71至步驟S75的處理,接著順次配置Δt代碼[1][1],Δt代碼[1][2],......,Δt代碼[1][15]。然而,在該例中,如前面的圖3所示,假定在軌道數(shù)的M中設(shè)定J為m+1。
這樣,代碼配置部10重復(fù)上述步驟S71至步驟S75的處理,最終順次配置了軌道m(xù)數(shù)據(jù)的Δt[m][1],Δt[m][2],......,Δt[m][15]時(shí),該Delta時(shí)間代碼配置處理結(jié)束,回復(fù)到圖13的步驟S61。
接著,代碼配置部10配置音符開(kāi)音程代碼(步驟S62)。
就是說(shuō),如圖15的流程圖中所詳細(xì)表示,該代碼配置部10將0代入軌道編號(hào)的變量I(步驟S80),之后,判斷該變量I是否小于軌道數(shù)M(步驟S81)。
在1循環(huán)上,由于在上述步驟S80中設(shè)定了I=0,所以代碼配置部10從步驟S81向Yes一側(cè)行進(jìn)。而且,代碼配置部10將0代入通道編號(hào)的變量J(步驟S82)。
接著,代碼配置部10判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S83)。
而且,在1循環(huán)上,由于在上述步驟S82中設(shè)定了J=0,所以代碼配置部10從步驟S83向Yes一側(cè)行進(jìn)。接著,配置音符開(kāi)音程代碼
(步驟S84),之后對(duì)通道編號(hào)的變量J加1,使J=1(步驟S85)。在該第一實(shí)施方式中,由于最大通道數(shù)MAX_CH設(shè)定為16,所以代碼配置部10重復(fù)上述步驟S83至步驟S85的處理,順次配置音符開(kāi)音程代碼
[1],音符開(kāi)音程代碼
[2],......,音符開(kāi)音程代碼
[15]。
接著,代碼配置部10在配置了音符開(kāi)音程代碼
[15]之后,從步驟S83向No一側(cè)行進(jìn),而且,代碼配置部10對(duì)軌道編號(hào)的I加1,使I=1之后,重復(fù)上述步驟S81至步驟S85的處理,接著順次配置音符開(kāi)音程代碼[1][1],音符開(kāi)音程代碼[1][2],......,音符開(kāi)音程代碼[1][15]。
然而,在該例中,如前面的圖3所示,在軌道數(shù)M中設(shè)定了m+1。由此,代碼配置部10重復(fù)上述步驟S71至步驟S75的處理,最終順次配置了軌道m(xù)數(shù)據(jù)的音符開(kāi)音程代碼[m][1],音符開(kāi)音程代碼[m][2],......,音符開(kāi)音程代碼[m][15]時(shí),該音符開(kāi)音程代碼配置處理結(jié)束,返回到圖13的步驟S62。
接著,代碼配置部10,配置音符關(guān)音程代碼(步驟S63)。
就是說(shuō),如圖16的流程圖中所詳細(xì)表示,該代碼配置部10首先將0代入軌道編號(hào)的變量I(步驟S90),判斷該變量I是否小于軌道數(shù)M(步驟S91)。
首先,在1循環(huán)上,由于在上述步驟S90中設(shè)定了I=0,所以代碼配置部10從步驟S91向Yes一側(cè)行進(jìn),代碼配置部10將0代入通道編號(hào)的變量J(步驟S92)。
接著,代碼配置部10判斷該通道編號(hào)J是否小于最大通道數(shù)MAX_CH(步驟S93)。
而且,在1循環(huán)上,由于在上述步驟S92中設(shè)定了J=0,所以代碼配置部10從步驟S93向Yes一側(cè)行進(jìn),配置音符關(guān)音程代碼
(步驟S94),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S95)。這里,在第一實(shí)施方式中,由于預(yù)先將最大通道數(shù)設(shè)定為16,所以以后代碼配置部10重復(fù)步驟S93至步驟S95的處理,順次配置音符關(guān)音程代碼
[1],音符關(guān)音程代碼
[2],......,音符關(guān)音程代碼
[15]。
而且,代碼配置部10在配置音符關(guān)音程代碼
[15]之后,從步驟S93向No一側(cè)分歧,對(duì)軌道編號(hào)的I加1,使I=1之后,再次重復(fù)步驟S91至步驟S95的處理,順次配置音符關(guān)音程代碼[1][1],音符關(guān)音程代碼[1][2],......,音符關(guān)音程代碼[1][15]。然而,在該例中,如前面的圖3所示,假定在軌道數(shù)的M中設(shè)定了m+1。
由此,代碼配置部10重復(fù)上述步驟S91至步驟S95的處理,最終順次配置了軌道m(xù)的數(shù)據(jù)的音符關(guān)音程代碼[m][1],音符關(guān)音程代碼[m][2],......,音符關(guān)音程代碼[m][15]時(shí),該音符關(guān)音程代碼配置處理結(jié)束,返回到圖13的步驟S63。
接著,代碼配置部10配置速率值代碼(步驟S64)。
就是說(shuō),如圖17的流程圖所詳細(xì)表示,該代碼配置部10首先將0代入軌道編號(hào)的變量I(步驟S100),之后,判斷該變數(shù)I是否小于軌道數(shù)M(步驟S101)。
在1循環(huán)上,由于在上述步驟S100中設(shè)定了I=0,所以代碼配置部10從步驟S101向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S102)。接著,代碼配置部10判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S103)。在1循環(huán)上,由于在上述步驟S102中設(shè)定了J=0,所以代碼配置部10由步驟S103向Yes一側(cè)行進(jìn),配置速率值代碼
(步驟S104),之后,對(duì)通道編號(hào)的變量J加1(步驟S105)。在該第一實(shí)施方式中,由于預(yù)先將最大通道數(shù)的MAX_CH設(shè)定為16,所以以后代碼配置部10重復(fù)上述步驟S103至步驟S105的處理,順次配置速率值代碼
[1],速率值代碼
[2],......,速率值代碼
[15]。
而且,代碼配置部10在配置了該速率值
[15]之后,從上述步驟S103向No一側(cè)行進(jìn),對(duì)軌道編號(hào)的I加1,使I=1之后,再次重復(fù)步驟S101至步驟S105的處理,接著順次配置速率值代碼[1][1],速率值代碼[1][2],......,速率值代碼[1][15]。在該例中,如前面的圖3所示,假定在軌道數(shù)的M中設(shè)定了m+1。
由此,代碼配置部10重復(fù)上述步驟S101至步驟S105的處理,最終順次配置了軌道m(xù)的數(shù)據(jù)的速率值代碼[m][1],速率值代碼[m][2],......,速率值代碼[m][15]時(shí),該速率值代碼配置處理結(jié)束,返回到圖13的步驟S64。
接著,代碼配置部10配置差分彎曲值代碼(步驟S65)。
就是說(shuō),如圖18的流程圖所詳細(xì)表示,該代碼配置部10首先將0代入軌道編號(hào)的變量I(步驟S110),之后,判斷該變數(shù)I是否小于軌道數(shù)M(步驟S111)。
在1循環(huán)上,由于在上述步驟S110中設(shè)定了I=0,所以代碼配置部10從步驟S111向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S112)。
接著,代碼配置部10判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S113)。
在1循環(huán)上,由于在上述步驟S112中設(shè)定了J=0,所以代碼配置部10由步驟S113向Yes一側(cè)行進(jìn),配置差分彎曲值代碼
(步驟S114),之后,對(duì)通道編號(hào)的變量J加1,使I=1(步驟S115)。在該第一實(shí)施方式中,由于預(yù)先將最大通道數(shù)的MAX_CH設(shè)定為16,所以以后代碼配置部10重復(fù)上述步驟S113至步驟S115的處理,順次配置差分彎曲值代碼
[1],差分彎曲值代碼
[2],......,差分彎曲值代碼
[15]。
而且,代碼配置部10在配置了該差分彎曲值
[15]之后,從上述步驟S113向No一側(cè)行進(jìn),對(duì)軌道編號(hào)的I加1,使I=1之后,再次重復(fù)步驟S111至步驟S115的處理,接著順次配置差分彎曲值代碼[1][1],差分彎曲值代碼[1][2],......,差分彎曲值代碼[1][15]。在該例中,如前面的圖3所示,假定在軌道數(shù)的M中設(shè)定了m+1。
由此,代碼配置部10重復(fù)上述步驟S111至步驟S115的處理,最終順次配置了軌道m(xù)的數(shù)據(jù)的差分彎曲值代碼[m][1],差分彎曲值代碼[m][2],......,差分彎曲值代碼[m][15]時(shí),該差分彎曲值代碼配置處理結(jié)束,返回到圖13的步驟S65。
接著,代碼配置部10配置差分表示值代碼(步驟S66)。就是說(shuō),如圖19的流程圖所詳細(xì)表示,該代碼配置部10將0代入軌道編號(hào)的變量I(步驟S120),之后,判斷該變數(shù)I是否小于軌道數(shù)M(步驟S121)。
在1循環(huán)上,由于在上述步驟S120中設(shè)定了I=0,所以代碼配置部10從步驟S121向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S122)。接著,代碼配置部10判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S123)。在1循環(huán)上,由于在上述步驟S122中設(shè)定了J=0,所以代碼配置部10由步驟S123向Yes一側(cè)行進(jìn)。
而且,代碼配置部10配置差分表達(dá)值代碼
(步驟S124),之后,對(duì)通道編號(hào)的J加1(步驟S125)。在該第一實(shí)施方式中,由于預(yù)先將最大通道數(shù)的MAX_CH設(shè)定為16,所以以后代碼配置部10重復(fù)上述步驟S123至步驟S125的處理,順次配置差分表達(dá)值代碼
[1],差分表達(dá)值代碼
[2],......,差分表達(dá)值代碼
[15]。而且,代碼配置部10在配置了該差分表達(dá)值
[15]之后,從上述步驟S123向No一側(cè)行進(jìn),對(duì)軌道編號(hào)的I加1,使I=1之后,再次重復(fù)步驟S121至步驟S125的處理,接著順次配置差分表達(dá)值代碼[1][1],差分表達(dá)值代碼[1][2],......,差分表達(dá)值代碼[1][15]。在該例中,如前面的圖3所示,假定在軌道數(shù)的M中設(shè)定了m+1。
由此,代碼配置部10重復(fù)上述步驟S121至步驟S125的處理,最終配置了軌道m(xù)的數(shù)據(jù)的差分表達(dá)值代碼[m][1],差分表達(dá)值代碼[m][2],......,差分表達(dá)值代碼[m][15]時(shí),該差分表達(dá)值代碼配置處理結(jié)束,返回到圖13的步驟S66。
接著,代碼配置部10配置事件種類(lèi)識(shí)別代碼(步驟S67)。就是說(shuō),如圖20的流程圖所詳細(xì)表示,該代碼配置部10首先將0代入軌道編號(hào)的變量I(步驟S130),之后,判斷該變數(shù)I是否小于軌道數(shù)M(步驟S131)。
在1循環(huán)上,由于在上述步驟S130中設(shè)定了I=0,所以代碼配置部10從步驟S131向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S132)。接著,代碼配置部10判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S133)。在1循環(huán)上,由于在上述步驟S132中設(shè)定了J=0,所以代碼配置部10由步驟S133向Yes一側(cè)行進(jìn),配置事件種類(lèi)識(shí)別代碼
(步驟S134),之后,對(duì)通道編號(hào)的變量J加1(步驟S135)。
在該第一實(shí)施方式中,由于預(yù)先將最大通道數(shù)的MAX_CH設(shè)定為16,所以以后代碼配置部10重復(fù)上述步驟S133至步驟S135的處理,順次配置事件種類(lèi)識(shí)別代碼
[1],事件種類(lèi)識(shí)別代碼
[2],......,事件種類(lèi)識(shí)別代碼
[15]。
而且,代碼配置部10在配置了該事件種類(lèi)識(shí)別
[15]之后,從上述步驟S133向No一側(cè)行進(jìn),對(duì)軌道編號(hào)的I加1,使I=1之后,再次重復(fù)步驟S131至步驟S135的處理,接著順次配置事件種類(lèi)識(shí)別代碼[1][1],事件種類(lèi)識(shí)別代碼[1][2],......,事件種類(lèi)識(shí)別代碼[1][15]。在該例中,如前面的圖3所示,假定在軌道數(shù)的M中設(shè)定了m+1。
由此,代碼配置部10重復(fù)上述步驟S131至步驟S135的處理,最終配置了軌道m(xù)數(shù)據(jù)的事件種類(lèi)識(shí)別代碼[m][1],事件種類(lèi)識(shí)別代碼[m][2],......,事件種類(lèi)識(shí)別代碼[m][15]時(shí),該事件種類(lèi)識(shí)別代碼配置處理結(jié)束,返回到圖13的步驟S67。
還有,事件識(shí)別代碼,由圖21所示的事件種類(lèi)識(shí)別壓縮表,與該事件種類(lèi)相對(duì)應(yīng)而適當(dāng)?shù)胤峙洹T谠摾校?0x08以上分配該控制改變事件。
另外,可以在壓縮時(shí)根據(jù)事件種類(lèi)出現(xiàn)頻率動(dòng)態(tài)減小分配。就是說(shuō),在這種情況下,上述一次代碼生成部2將因出現(xiàn)的頻率高低而不同的事件種類(lèi)識(shí)別代碼分配于上述軌道數(shù)據(jù)中所包含的各事件,歸納該事件種類(lèi)識(shí)別代碼,配置于獨(dú)立的區(qū)域。根據(jù)這樣的一次壓縮時(shí)的作法,當(dāng)然也能夠使后續(xù)的二次壓縮時(shí)基于Huffman壓縮的壓縮效率提高。
接著,代碼配置部10配置通道編號(hào)代碼(步驟S68)。
就是說(shuō),如圖22的流程圖所詳細(xì)表示,該代碼配置部10首先將0代入軌道編號(hào)的變量I(步驟S140),之后,判斷該變數(shù)I是否小于軌道數(shù)M(步驟S141)。
首先,在1循環(huán)上,由于在上述步驟S140中設(shè)定了I=0,所以代碼配置部10從步驟S141向Yes一側(cè)行進(jìn),配置通道編號(hào)代碼
(步驟S142)之后,對(duì)軌道編號(hào)的I加1,使I=1(步驟S143)。而且,代碼配置部10再次重復(fù)上述步驟S141至步驟S143的處理,接著,配置通道編號(hào)代碼[1]。然而,在該例中,如前面的圖3所示,假定在軌道數(shù)的M中設(shè)定了m+1。由此,該代碼配置部10重復(fù)上述步驟S141至步驟S143的處理,最終配置了軌道m(xù)數(shù)據(jù)的通道編號(hào)代碼[m]時(shí),該通道編號(hào)代碼配置處理結(jié)束,返回到圖13的步驟S68。
接著,代碼配置部10配置其它信息代碼(步驟S69)。
就是說(shuō),如圖23的流程圖所詳細(xì)表示,該代碼配置部10首先將0代入軌道編號(hào)的變量I(步驟S150),之后,判斷該變數(shù)I是否小于軌道數(shù)M(步驟S151)。
在1循環(huán)上,由于在上述步驟S150中設(shè)定了I=0,所以代碼配置部10從步驟S151向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的J(步驟S152)。接著,代碼配置部10判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S153)。在1循環(huán)上,由于在上述步驟S152中設(shè)定了J=0,所以代碼配置部10由步驟S153向Yes一側(cè)行進(jìn),配置其它信息代碼
(步驟S154),之后,對(duì)通道編號(hào)的變量J加1(步驟S155)。
在該第一實(shí)施方式中,由于預(yù)先將最大通道數(shù)的MAX_CH設(shè)定為16,所以以后代碼配置部10重復(fù)上述步驟S153至步驟S155的處理,順次配置其它信息代碼
[1],其它信息代碼
[2],......,其它信息代碼
[15]。而且,代碼配置部10在配置了該速率值
[15]之后,從上述步驟S153向No一側(cè)行進(jìn),對(duì)軌道編號(hào)的I加1,使I=1之后,再次重復(fù)步驟S151至步驟S155的處理,接著順次配置其它信息代碼[1][1],其它信息代碼[1][2],......,其它信息代碼[1][15]。
然而,在該例中,如前面的圖3所示,假定在軌道數(shù)的M中設(shè)定了m+1。由此,代碼配置部10重復(fù)上述步驟S151至步驟S155的處理,最終配置了軌道m(xù)數(shù)據(jù)的其它信息代碼[m][1],其它信息代碼[m][2],......,其它信息代碼[m][15]時(shí),對(duì)其它信息代碼配置處理結(jié)束。這樣,代碼配置部10對(duì)代碼配置的全部處理結(jié)束。
由以上的處理,在圖24所示的基本配置順序中配置各代碼,生成一次代碼5。就是說(shuō),在圖24的例中,更詳細(xì)地講,一次代碼5的基本數(shù)組順序是按照Δt代碼、音符開(kāi)音程代碼、音符關(guān)音程代碼、速率值音程代碼、差分彎曲值代碼、差分表達(dá)值代碼、事件種類(lèi)識(shí)別代碼,以及其它信息代碼的順序。進(jìn)而,如圖25A所示,各代碼的內(nèi)部數(shù)組為軌道0數(shù)據(jù)(通道編號(hào)順序,以下同),軌道1數(shù)據(jù),......,軌道m(xù)數(shù)據(jù)中代碼的順序。而且,通道編號(hào)代碼內(nèi)部的配置順序如圖25B所示。
該一次代碼5自身能夠通過(guò)上述處理而避免浪費(fèi),而且對(duì)SMF的音樂(lè)特性完全沒(méi)有損失,成為相當(dāng)大壓縮的數(shù)據(jù)量。
而且,這樣配置的一次代碼5,由于與SMF相比同一數(shù)據(jù)模式的出現(xiàn)頻率高,同一數(shù)據(jù)模式鄰接,進(jìn)而在相同種類(lèi)的代碼內(nèi)出現(xiàn)同一數(shù)據(jù)模式的幾率增大,所以如后面要詳細(xì)敘述的那樣,基于二次代碼生成部3的壓縮效率也能夠提高。
該一次代碼5輸入到二次代碼生成部3,二次代碼生成部3由通用的壓縮方式進(jìn)行壓縮,在該例中,作為通用壓縮技術(shù),可以采用LZ代碼法及Huffman代碼法、掃描寬度代碼法,進(jìn)而還有它們的復(fù)合法(例如LHA及ZIP等)。
更詳細(xì)地講,例如在假定采用LZ代碼法的情況下,首先從一次代碼5的前頭開(kāi)始處理,將處理對(duì)象位置的數(shù)據(jù)模式與前面處理的規(guī)定范圍內(nèi)的數(shù)據(jù)模式進(jìn)行比較。而且,在二者一致的情況下,將從處理對(duì)象位置到該數(shù)據(jù)模式的距離以及一致的數(shù)據(jù)模式的長(zhǎng)度等信息作為二次代碼6而輸出。與此相比,在二者不一致的情況下,將一次代碼5原封不動(dòng)地作為二次代碼6輸出。
從一次代碼5的前頭重復(fù)這樣的一連串操作直到最后。
在第一實(shí)施方式中,如上所述,由于是生成將各信息配置于每一個(gè)信息種類(lèi)及每個(gè)通道時(shí)間性獨(dú)立的區(qū)域的一次代碼5,所以適用于利用數(shù)據(jù)模式的重復(fù),壓縮其重復(fù)部分的LZ代碼法。進(jìn)而,例如對(duì)于事件種類(lèi)識(shí)別代碼,由于能夠?qū)?yīng)于事件種類(lèi)的出現(xiàn)頻率而將代碼進(jìn)行動(dòng)態(tài)分配,所以適合于能夠根據(jù)由每一字節(jié)的代碼出現(xiàn)頻率加權(quán)而具有分量的代碼,以少的位數(shù)減小記錄而壓縮的Huffman代碼法,能夠降低壓縮率。而且,其它的速率信息,由于在SMF格式下,值的分布經(jīng)常出現(xiàn)偏差,所以通過(guò)對(duì)速率信息進(jìn)行獨(dú)立歸納記錄,能夠?qū)τ蒆uffman代碼法產(chǎn)生的壓縮的效率產(chǎn)生好的影響。
還有,在第一實(shí)施方式中,假定是采用LZ法與Huffman代碼法的復(fù)合方式(LHA),所以在這種情況下,當(dāng)然能夠具有上述雙方的效果。
(演奏信息解壓縮裝置等)接著,參照?qǐng)D26~圖47,對(duì)解壓縮一次代碼或二次代碼的第一實(shí)施方式的演奏信息解壓縮裝置、演奏信息解壓縮方法、演奏信息解壓縮程序等進(jìn)行詳細(xì)說(shuō)明。還有演奏信息解壓縮裝置的作用,相當(dāng)于第一實(shí)施方式的演奏信息解壓縮方法、演奏信息解壓縮程序。
首先,在圖26中,表示說(shuō)明本發(fā)明的第一實(shí)施方式中演奏信息解壓縮裝置的結(jié)構(gòu)。如該圖26所示,該演奏信息壓縮裝置50,由二次代碼解壓縮部51與一次代碼解壓縮部52所構(gòu)成,還有,權(quán)利要求中所述的一次代碼解壓縮裝置與該一次代碼解壓縮部52相當(dāng),權(quán)利要求中所述的二次代碼解壓縮裝置與該二次代碼解壓縮部51相當(dāng)。但是并非僅限于此。
該二次代碼解壓縮部51將由上述通用壓縮方式而壓縮的上述二次代碼6解壓縮為一次代碼5。就是說(shuō),更詳細(xì)地講,一次代碼解壓縮部52是將由二次代碼解壓縮部51所解壓縮的一次代碼5解壓縮為上述格式的樂(lè)曲文件4。就是說(shuō),在由二次代碼解壓縮部51將二次代碼6解壓縮為一次代碼5時(shí),由一次代碼解壓縮部52在上述一次代碼5中,將配置于獨(dú)立區(qū)域的各種類(lèi)的信息抽出到該種類(lèi),參照表示向上述通道的歸屬的信息的同時(shí),通過(guò)將抽出的各信息構(gòu)成為歸屬于各通道的多個(gè)軌道數(shù)據(jù),進(jìn)而構(gòu)成為文件的軌道數(shù)據(jù),由此解壓縮為樂(lè)曲文件4。
這里,一次代碼解壓縮部51的詳細(xì)結(jié)構(gòu)示于圖27。
就是說(shuō),該一次代碼解壓縮部51具有按通道區(qū)分的代碼抽出部53、軌道解壓縮部54、軌道合并及通道編號(hào)代碼解壓縮部55,以及軌道配置部56。以下對(duì)這些各部53至56的結(jié)構(gòu)與作用加以詳細(xì)敘述。
首先,按通道區(qū)分的代碼抽出部53的詳細(xì)結(jié)構(gòu)示于圖28,按通道區(qū)分的代碼抽出部53是將一次代碼5中所包含的各代碼按通道抽出的抽出部。就是說(shuō),按通道區(qū)分的代碼抽出部53從一次代碼5中按照通道順次抽出軌道0,通道0的代碼組,軌道0,通道1的代碼組,......,軌道m(xù),通道n的代碼組。還有,在各代碼組中,當(dāng)然分別包含有Δt代碼,音符開(kāi)音程代碼,音符關(guān)音程代碼,速率值代碼,差分彎曲值代碼,差分表達(dá)值代碼,事件種類(lèi)識(shí)別代碼,以及其它代碼。
以下參照?qǐng)D29的流程圖,對(duì)由該按通道的代碼抽出部53對(duì)按通道的代碼抽出的處理流程進(jìn)行詳細(xì)說(shuō)明。
那么,進(jìn)入本處理后,首先按通道區(qū)分的代碼抽出部53抽出頭塊代碼(步驟S160),以后抽出各代碼。
首先,按通道區(qū)分的代碼抽出部53抽出Δt代碼(步驟S161)。就是說(shuō),如圖30的流程圖所示,首先按通道區(qū)分的代碼抽出部53將0代入軌道編號(hào)的變量I(步驟S170),之后,判斷該變量I是否小于軌道數(shù)M(步驟S171)。在1循環(huán)上,由于在上述步驟S170中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部53從步驟S171向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S172)。
接著,按通道區(qū)分的代碼抽出部53判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S173)。
在1循環(huán)上,由于在上述步驟S172中設(shè)定了J=0,所以按通道區(qū)分的代碼抽出部53從步驟S173向Yes一側(cè)行進(jìn),抽出Δt代碼
(步驟S174),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S175)。在該第一實(shí)施方式中,由于預(yù)先設(shè)定了最大通道數(shù)的MAX_CH為16,所以以后按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S173至步驟S175的處理,順次抽出Δt代碼
[1],Δt代碼
[2],......,Δt代碼
[15]。
而且,按通道區(qū)分的代碼抽出部53在抽出Δt代碼
[15]之后,從步驟S173向No一側(cè)行進(jìn),在對(duì)軌道編號(hào)的變量I加1之后,重復(fù)上述步驟S171至步驟S175的處理,順次抽出Δt代碼[1][1],Δt代碼[1][2],......,Δt代碼[1][15]。
然而,在該第一實(shí)施方式中,如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。
由此,當(dāng)按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S171至步驟S175的處理,順次抽出軌道m(xù)數(shù)據(jù)的Δt代碼[m][1],Δt代碼[m][2],......,Δt代碼[m][15]時(shí),該Δt代碼抽出處理結(jié)束,返回到圖29的步驟S161。
接著,按通道區(qū)分的代碼抽出部53抽出音符開(kāi)音程代碼(步驟S162)。就是說(shuō),如圖31的流程圖所示,首先按通道區(qū)分的代碼抽出部53將0代入軌道編號(hào)的變量I(步驟S180),之后,判斷該變量I是否小于軌道數(shù)M(步驟S181)。在1循環(huán)上,由于在上述步驟S180中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部53從步驟S181向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S182)。
接著,按通道區(qū)分的代碼抽出部53判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S183)。
在1循環(huán)上,由于在上述步驟S182中設(shè)定了J=0,所以按通道區(qū)分的代碼抽出部53從步驟S183向Yes一側(cè)行進(jìn),抽出音符開(kāi)音程代碼
(步驟S184),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S185)。
在該第一實(shí)施方式中,由于預(yù)先設(shè)定了最大通道數(shù)的MAX_CH為16,所以以后按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S183至步驟S185的處理,順次抽出音符開(kāi)音程代碼
[1],音符開(kāi)音程代碼
[2],......,音符開(kāi)音程代碼
[15]。按通道區(qū)分的代碼抽出部53在抽出音符開(kāi)音程代碼
[15]之后,從步驟S183向No一側(cè)行進(jìn),在對(duì)軌道編號(hào)的變量I加1之后,重復(fù)上述步驟S181至步驟S185的處理,順次抽出音符開(kāi)音程代碼[1][1],音符開(kāi)音程代碼[1][2],......,音符開(kāi)音程代碼[1][15]。
然而,在該第一實(shí)施方式中,如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。由此,當(dāng)按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S181至步驟S185的處理,順次抽出軌道m(xù)數(shù)據(jù)的音符開(kāi)音程代碼[m][1],音符開(kāi)音程代碼[m][2],......,音符開(kāi)音程代碼[m][15]時(shí),該音符開(kāi)音程代碼抽出處理結(jié)束,返回到圖29的步驟S162。
接著,按通道區(qū)分的代碼抽出部53抽出音符關(guān)音程代碼(步驟S163)。就是說(shuō),如圖32的流程圖所示,首先按通道區(qū)分的代碼抽出部53將0代入軌道編號(hào)的變量I(步驟S190),之后,判斷該變量I是否小于軌道數(shù)M(步驟S191)。在1循環(huán)上,由于在上述步驟S190中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部53從步驟S191向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S192)。
接著,按通道區(qū)分的代碼抽出部53判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S193)。
在1循環(huán)上,由于在上述步驟S192中設(shè)定了J=0,所以按通道區(qū)分的代碼抽出部53從步驟S193向Yes一側(cè)行進(jìn),抽出音符關(guān)音程代碼
(步驟S194),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S195)。
在該第一實(shí)施方式中,由于預(yù)先設(shè)定了最大通道數(shù)的MAX_CH為16,所以以后按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S193至步驟S195的處理,順次抽出音符關(guān)音程代碼
[1],音符關(guān)音程代碼
[2],......,音符關(guān)音程代碼
[15]。
而且,按通道區(qū)分的代碼抽出部53在抽出音符關(guān)音程代碼
[15]之后,從步驟S193向No一側(cè)行進(jìn),在對(duì)軌道編號(hào)的變量I加1,使I=1之后,重復(fù)上述步驟S191至步驟S195的處理,順次抽出音符關(guān)音程代碼[1][1],音符關(guān)音程代碼[1][2],......,音符關(guān)音程代碼[1][15]。
然而,在該第一實(shí)施方式中,如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。由此,當(dāng)按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S191至步驟S195的處理,順次抽出軌道m(xù)數(shù)據(jù)的音符關(guān)音程代碼[m][1],音符關(guān)音程代碼[m][2],......,音符關(guān)音程代碼[m][15]時(shí),該音符關(guān)音程代碼抽出處理結(jié)束,返回到圖29的步驟S163。
接著,按通道區(qū)分的代碼抽出部53抽出速率值代碼(步驟S164)。就是說(shuō),如圖33的流程圖所示,首先按通道區(qū)分的代碼抽出部53將0代入軌道編號(hào)的變量I(步驟S200),之后,判斷該變量I是否小于軌道數(shù)M(步驟S201)。首先,在1循環(huán)上,由于在上述步驟S200中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部53從步驟S201向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S202)。
接著,按通道區(qū)分的代碼抽出部53判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S203)。
在1循環(huán)上,由于在上述步驟S202中設(shè)定了J=0,所以按通道區(qū)分的代碼抽出部53從步驟S203向Yes一側(cè)行進(jìn),抽出速率值代碼
(步驟S204),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S205)。
在該第一實(shí)施方式中,由于預(yù)先設(shè)定了最大通道數(shù)的MAX_CH為16,所以以后按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S203至步驟S205的處理,順次抽出速率值代碼
[1],速率值代碼
[2],......,速率值代碼
[15]。
而且,按通道區(qū)分的代碼抽出部53在抽出速率值代碼
[15]之后,從步驟S203向No一側(cè)行進(jìn),在對(duì)軌道編號(hào)的變量I加1,使I=1之后,重復(fù)上述步驟S201至步驟S205的處理,順次抽出速率值代碼[1][1],速率值代碼[1][2],......,速率值代碼[1][15]。
然而,在該第一實(shí)施方式中,如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。由此,當(dāng)按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S201至步驟S205的處理,順次抽出軌道m(xù)數(shù)據(jù)的速率值代碼[m][1],速率值代碼[m][2],......,速率值代碼[m][15]時(shí),該速率值代碼抽出處理結(jié)束,返回到圖29的步驟S164。
而且,接著進(jìn)行差分彎曲值代碼的抽出(步驟S165)。
就是說(shuō),如圖34的流程圖所示,首先按通道區(qū)分的代碼抽出部53將0代入軌道編號(hào)的變量I(步驟S210),之后,判斷該變量I是否小于軌道數(shù)M(步驟S211)。
在1循環(huán)上,由于在上述步驟S210中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部53從步驟S211向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S212)。接著,按通道區(qū)分的代碼抽出部53判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S213)。在1循環(huán)上,由于在上述步驟S212中設(shè)定了J=0,所以按通道區(qū)分的代碼抽出部53從步驟S213向Yes一側(cè)行進(jìn),抽出差分彎曲值代碼
(步驟S214),之后,對(duì)通道編號(hào)的變量J加1,使J加1(步驟S215)。
在該第一實(shí)施方式中,由于預(yù)先設(shè)定了最大通道數(shù)的MAX_CH為16,所以以后按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S213至步驟S215的處理,順次抽出差分彎曲值代碼
[1],差分彎曲值代碼
[2],......,差分彎曲值代碼
[15]。
而且,按通道區(qū)分的代碼抽出部53在抽出差分彎曲值代碼
[15]之后,從步驟S213向No一側(cè)行進(jìn),在對(duì)軌道編號(hào)的變量I加1之后,重復(fù)上述步驟S211至步驟S215的處理,順次抽出差分彎曲值代碼[1][1],差分彎曲值代碼[1][2],......,差分彎曲值代碼[1][15]。
然而,在該第一實(shí)施方式中,如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。由此,當(dāng)按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S211至步驟S215的處理,最終順次抽出軌道m(xù)數(shù)據(jù)的差分彎曲值代碼[m][1],差分彎曲值代碼[m][2],......,差分彎曲值代碼[m][15]時(shí),該差分彎曲值代碼抽出處理結(jié)束,返回到圖29的步驟S165。
接著按通道區(qū)分的代碼抽出部53進(jìn)行差分表達(dá)值代碼的抽出(步驟S166)。就是說(shuō),如圖35的流程圖所示,首先按通道區(qū)分的代碼抽出部53將0代入軌道編號(hào)的變量I(步驟S220),之后,判斷該變量I是否小于軌道數(shù)M(步驟S221)。在1循環(huán)上,由于在上述步驟S220中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部53從步驟S221向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S222)。
接著,按通道區(qū)分的代碼抽出部53判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S223)。
在1循環(huán)上,由于在上述步驟S222中設(shè)定了J=0,所以按通道區(qū)分的代碼抽出部53從步驟S223向Yes一側(cè)行進(jìn),抽出差分表達(dá)值代碼
(步驟S224),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S225)。
在該第一實(shí)施方式中,由于預(yù)先設(shè)定了最大通道數(shù)的MAX_CH為16,所以以后按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S223至步驟S225的處理,順次抽出差分表達(dá)值代碼
[1],差分表達(dá)值代碼
[2],......,差分表達(dá)值代碼
[15]。而且,按通道區(qū)分的代碼抽出部53在抽出差分表達(dá)值代碼
[15]之后,從步驟S123向No一側(cè)行進(jìn),在對(duì)軌道編號(hào)的變量I加1之后,再度重復(fù)上述步驟S221至步驟S225的處理,接著順次抽出差分表達(dá)值代碼[1][1],差分表達(dá)值代碼[1][2],......,差分表達(dá)值代碼[1][15]。在該例中,如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。
由此,當(dāng)按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S221至步驟S225的處理,最終順次抽出軌道m(xù)數(shù)據(jù)的差分表達(dá)值代碼[m][1],差分表達(dá)值代碼[m][2],......,差分表達(dá)值代碼[m][15]時(shí),該差分表達(dá)值代碼抽出處理結(jié)束,返回到圖29的步驟S166。
接著按通道區(qū)分的代碼抽出部53進(jìn)行事件種類(lèi)識(shí)別代碼的抽出(步驟S167)。就是說(shuō),如圖36的流程圖所示,首先按通道區(qū)分的代碼抽出部53將0代入軌道編號(hào)的變量I(步驟S230),之后,判斷該變量I是否小于軌道數(shù)M(步驟S231)。在1循環(huán)上,由于在上述步驟S230中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部53從步驟S231向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S232)。
接著,按通道區(qū)分的代碼抽出部53判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S233)。
在1循環(huán)上,由于在上述步驟S232中設(shè)定了J=0,所以按通道區(qū)分的代碼抽出部53從步驟S233向Yes一側(cè)行進(jìn),抽出事件種類(lèi)識(shí)別代碼
(步驟S224),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S235)。
在該第一實(shí)施方式中,由于預(yù)先設(shè)定了最大通道數(shù)的MAX_CH為16,所以以后按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S233至步驟S235的處理,順次抽出事件種類(lèi)識(shí)別代碼
[1],事件種類(lèi)識(shí)別代碼
[2],......,事件種類(lèi)識(shí)別代碼
[15]。
而且,按通道區(qū)分的代碼抽出部53在抽出事件種類(lèi)識(shí)別代碼
[15]之后,從步驟S233向No一側(cè)行進(jìn),在對(duì)軌道編號(hào)的變量I加1之后,重復(fù)上述步驟S231至步驟S235的處理,再度順次抽出事件種類(lèi)識(shí)別代碼[1][1],事件種類(lèi)識(shí)別代碼[1][2],......,事件種類(lèi)識(shí)別代碼[1][15]。
然而,在該第一實(shí)施方式中,如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。由此,當(dāng)按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S231至步驟S235的處理,順次抽出軌道m(xù)數(shù)據(jù)的事件種類(lèi)識(shí)別代碼[m][1],事件種類(lèi)識(shí)別代碼[m][2],......,事件種類(lèi)識(shí)別代碼[m][15]時(shí),該事件種類(lèi)識(shí)別代碼抽出處理結(jié)束,返回到圖29的步驟S167。
接著按通道區(qū)分的代碼抽出部53進(jìn)行通道編號(hào)代碼的抽出(步驟S168)。就是說(shuō),如圖37的流程圖所示,首先按通道區(qū)分的代碼抽出部53將0代入軌道編號(hào)的變量I(步驟S240),之后,判斷該變量I是否小于軌道數(shù)M(步驟S241)。在1循環(huán)上,由于在上述步驟S240中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部53從步驟S241向Yes一側(cè)分歧,抽出通道編號(hào)
(步驟S242),之后,對(duì)通道編號(hào)的變量I加1,使I=1(步驟S243)。
接著,按通道區(qū)分的代碼抽出部53再次重復(fù)步驟S241至步驟S243的處理,接著抽出通道編號(hào)代碼[1]。
在該例式中,如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。由此,當(dāng)按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S241至S243的處理,最終抽出軌道m(xù)數(shù)據(jù)的通道編號(hào)代碼[m]時(shí),該通道編號(hào)代碼抽出處理結(jié)束,返回到圖29的步驟S168。
接著按通道區(qū)分的代碼抽出部53進(jìn)行其它信息代碼的抽出(步驟S169)。就是說(shuō),如圖38的流程圖所示,首先按通道區(qū)分的代碼抽出部53將0代入軌道編號(hào)的變量I(步驟S250),之后,判斷該變量I是否小于軌道數(shù)M(步驟S251)。在1循環(huán)上,由于在上述步驟S250中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部53從步驟S251向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S252)。
接著,按通道區(qū)分的代碼抽出部53判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S253)。
在1循環(huán)上,由于在上述步驟S252中設(shè)定了J=0,所以按通道區(qū)分的代碼抽出部53從步驟S253向Yes一側(cè)行進(jìn),抽出其它信息代碼
(步驟S254),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S255)。
在該第一實(shí)施方式中,由于預(yù)先設(shè)定了最大通道數(shù)的MAX_CH為16,所以以后按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S253至步驟S255的處理,順次抽出其它信息代碼
[1],其它信息代碼
[2],......,其它信息代碼
[15]。
而且,按通道區(qū)分的代碼抽出部53在抽出其它信息代碼
[15]之后,從步驟S253向No一側(cè)行進(jìn),在對(duì)軌道編號(hào)的變量I加1之后,再度重復(fù)上述步驟S251至步驟S255的處理,順次抽出其它信息代碼[1][1],其它信息代碼[1][2],......,其它信息代碼[1][15]。然而,在該第一實(shí)施方式中,如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。
由此,當(dāng)按通道區(qū)分的代碼抽出部53重復(fù)上述步驟S251至步驟S255的處理,最終順次抽出軌道m(xù)數(shù)據(jù)的其它信息代碼[m][1],其它信息代碼[m][2],......,其它信息代碼[m][15]時(shí),該其它信息代碼抽出處理結(jié)束,這樣,由按通道區(qū)分的代碼抽出部53所進(jìn)行的按通道的代碼抽出的一連串的處理結(jié)束。通過(guò)以上的處理,抽出由單一通道所構(gòu)成的代碼組(各代碼組分別包含Δt代碼、音符開(kāi)音程代碼、音符關(guān)音程代碼、速率值代碼、差分彎曲值代碼、差分表達(dá)值代碼、事件種類(lèi)識(shí)別代碼,以及其它信息代碼)。
接著,軌道解壓縮部54的詳細(xì)結(jié)構(gòu)示于圖39。
該軌道解壓縮部54具有Δt代碼解壓縮部60、音符開(kāi)音程代碼解壓縮部61、音符關(guān)音程代碼解壓縮部62、速率值代碼解壓縮部63、差分彎曲值代碼解壓縮部64、差分表達(dá)值代碼解壓縮部65、事件種類(lèi)識(shí)別代碼解壓縮部66、其它信息代碼解壓縮部67,以及事件寫(xiě)出部68。這些60至67對(duì)各代碼進(jìn)行解壓縮,由事件寫(xiě)出部68對(duì)各代碼執(zhí)行事件的寫(xiě)出,這樣生成由單一通道所構(gòu)成的軌道數(shù)據(jù)69。
以下參照?qǐng)D40的流程圖,對(duì)由該軌道解壓縮部54而進(jìn)行的軌道解壓縮的處理的流程加以詳細(xì)說(shuō)明。
該處理開(kāi)始后,軌道解壓縮部54首先將0代入軌道編號(hào)的變量I(步驟S260),將該軌道編號(hào)的變量I與軌道數(shù)M進(jìn)行比較(步驟S261)。而且,軌道解壓縮部54在判斷I<M的關(guān)系成立時(shí),將0代入軌道編號(hào)的變量J(步驟S262),之后判斷該軌道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S263)。
而且,在1循環(huán)上,由于在步驟S262中設(shè)定了J=0,所以軌道解壓縮部54判斷J<MAX_CH的關(guān)系式滿(mǎn)足,僅對(duì)軌道
中存儲(chǔ)的通道0的軌道0數(shù)據(jù)執(zhí)行解壓縮(步驟S265)。而且,軌道解壓縮部54在對(duì)通道編號(hào)的變量J加1,使J=1之后,重復(fù)上述步驟S263至步驟S266的處理(步驟S266)。
在該第一實(shí)施方式中,由于預(yù)先設(shè)定了MAX_CH=16,所以該軌道解壓縮部54對(duì)收存于軌道
,軌道
[1],......,軌道
[15]的、僅有通道0的軌道0數(shù)據(jù),僅有通道1的軌道0數(shù)據(jù),......,僅有通道15的軌道0數(shù)據(jù)分別進(jìn)行解壓縮。接著,軌道解壓縮部54在對(duì)軌道編號(hào)I加1之后,收存于軌道[1]
,軌道[1][1],......,軌道[1][15],對(duì)僅有通道0的軌道1數(shù)據(jù),僅有通道1的軌道1數(shù)據(jù),......,僅有通道15的軌道1數(shù)據(jù)分別進(jìn)行解壓縮(步驟S261至步驟S266)。
之后,軌道解壓縮部54對(duì)收存于軌道[m]
,軌道[m][1],......,軌道[M][15]的、僅有通道0的軌道m(xù)數(shù)據(jù),僅有通道1的軌道m(xù)數(shù)據(jù),......,僅有通道15的軌道m(xù)數(shù)據(jù)進(jìn)行解壓縮(步驟S261至步驟S266)時(shí),本處理結(jié)束。
這里,參照?qǐng)D41的流程圖,對(duì)圖40的步驟S265中軌道解壓縮部54在軌道[I][J]的解壓縮的處理進(jìn)行更詳細(xì)的說(shuō)明。就是說(shuō),該處理開(kāi)始后,軌道解壓縮部54首先判斷Δt代碼[I][J]中是否存在有代碼(步驟S270)。
在該步驟S270中,軌道解壓縮部54在判斷Δt代碼[I][J]中存在有代碼的情況下,從Δt代碼[I][J]中讀出Δt,存儲(chǔ)于變量Delta(步驟S271),對(duì)變量Event清零(步驟S272),之后執(zhí)行后面詳述的每一事件種類(lèi)的解壓縮(步驟S273)。而且,軌道解壓縮部54在軌道[I][J]的末尾順次添加變量Delta的Δt,變量Event的事件,回到上述步驟S270(步驟S274)。
軌道解壓縮部54只在Delta時(shí)間代碼[I][J]中存在有代碼的情況下重復(fù)以上處理,對(duì)全部的代碼解壓縮后,從步驟S270向No一側(cè)行進(jìn),該處理結(jié)束。
接著,參照?qǐng)D42A、42B的流程圖,對(duì)圖41的步驟S273中軌道解壓縮部54的每個(gè)事件種類(lèi)的解壓縮的處理加以更詳細(xì)的說(shuō)明。就是說(shuō),該處理開(kāi)始后,軌道解壓縮部54由變量Delta中所存儲(chǔ)的Δt來(lái)判斷事件的種類(lèi)(步驟S280)。
如前上述,在第一實(shí)施方式中,能夠由Δt的前面字節(jié)的信息而識(shí)別事件的種類(lèi)。更詳細(xì)地說(shuō),在該例中,將事件類(lèi)型作為三種類(lèi)而識(shí)別,即音符開(kāi)(類(lèi)型1),音符關(guān)(類(lèi)型2),其它(類(lèi)型3)。
在上述步驟S280中,軌道解壓縮部54在判斷事件為類(lèi)型1,即音符開(kāi)的情況下,生成音符開(kāi)狀態(tài)字節(jié)(在該例中是在下位4比特代入J),添加于變量Event的末尾(步驟S281),從音符關(guān)音程代碼[I][J]讀出1字節(jié)的代碼,添加于變量Event的末尾(步驟S282),從速率值代碼[I][J]讀出1字節(jié)的代碼,添加于變量Event的末尾(步驟S283)。
另一方面,在上述步驟S280中,軌道解壓縮部54在判斷事件為類(lèi)型2,即音符關(guān)的情況下,生成音符關(guān)狀態(tài)字節(jié)(在該例中是在下位4比特中代入J),添加于變量Event的末尾(步驟S284),進(jìn)而從音符開(kāi)音程代碼[I][J]讀出1字節(jié)的代碼,添加于變量Event的末尾(步驟S285),將一般的音符關(guān)、速率值的代碼添加于變量Event的末尾(步驟S286)。
另一方面,在上述步驟S280中,軌道解壓縮部54在判斷事件為類(lèi)型3,即為其它種類(lèi)的情況下,從事件種類(lèi)識(shí)別代碼[I][J]順次讀入1代碼(步驟S287),接著,判斷事件是否屬于通道(步驟S288)。
這里,在判斷事件屬于通道的情況下,軌道解壓縮部54對(duì)應(yīng)于事件生成狀態(tài)字節(jié)(在下位4比特中代入J),添加于變量Event的末尾(步驟S289)。
接著,軌道解壓縮部54判斷事件種類(lèi)識(shí)別代碼是否為0x04(參照?qǐng)D21)(步驟S290)。在該步驟S290中,在軌道解壓縮部54判斷該事件種類(lèi)識(shí)別代碼是0x04的情況下,由于由圖21的表能夠判斷事件為彎音(pitch bend)變化,所以從差分彎曲代碼[I][J]讀出2字節(jié)的代碼,將添加于一個(gè)之前的彎曲值附加于變量Event的末尾(步驟S291)。
另一方面,在上述步驟S290中,軌道解壓縮部54在判斷事件種類(lèi)識(shí)別代碼不是0x04的情況下(參照?qǐng)D21),接著判斷是否為0x08以上(參照?qǐng)D21)(步驟S292)。
而且,在該步驟S292中,軌道解壓縮部54在判斷事件種類(lèi)識(shí)別代碼在0x08以上的情況下,由于由圖21的表能夠認(rèn)識(shí)到控制變化編號(hào)是省略的控制變化的事件,所以生成控制變化編號(hào),添加于變量Event的末尾(步驟S293)。
接著,軌道解壓縮部54判斷事件種類(lèi)識(shí)別代碼是否為0x08(參照?qǐng)D21)(步驟S294)。
在該步驟S294中,在判斷是0x08的情況下,由于由圖21的表能夠判斷該事件是表達(dá),所以從差分表達(dá)值代碼[I][J]讀出1字節(jié)的代碼,將添加于之前的表達(dá)值的表達(dá)值添加于變量Event的末尾(步驟S295)。另一方面,在上述步驟S292中判斷事件種類(lèi)識(shí)別代碼為0x08以上的情況,以及在上述步驟S294中判斷不是0x08的情況下,軌道解壓縮部54根據(jù)前述的SMF的格式,順次從其它信息代碼[I][J]中讀出代碼,添加于變量Event的末尾(步驟S297),直至事件完成。
另一方面,在上述步驟S288中,軌道解壓縮部54在判斷事件不屬于通道的情況下,生成與事件相對(duì)應(yīng)的狀態(tài)字節(jié),添加于變量Event的末尾(步驟S296),移到上述步驟S297。這樣,軌道解壓縮部54結(jié)束對(duì)每一個(gè)事件種類(lèi)的一連串的處理。
接著,軌道合并及通道編號(hào)代碼解壓縮部55的詳細(xì)結(jié)構(gòu)如圖43所示。如該圖所示,由軌道合并部55a及通道編號(hào)代碼解壓縮部55b所構(gòu)成。而且,在該結(jié)構(gòu)下,向軌道合并及通道編號(hào)代碼解壓縮部55中輸入僅有通道0的軌道x數(shù)據(jù),僅有通道1的軌道x數(shù)據(jù),......,僅有通道n的軌道x數(shù)據(jù),以及通道編號(hào)代碼X時(shí),通道編號(hào)代碼解壓縮部55b對(duì)通道編號(hào)代碼13解壓縮。而且,軌道合并部55a附加上該通道編號(hào)代碼,對(duì)軌道x數(shù)據(jù)11-x解壓縮。此時(shí),對(duì)于不屬于通道的事件,如壓縮的說(shuō)明那樣,由于是作為屬于規(guī)定通道(SMF是通道0,在后述的第二實(shí)施方式的SMF的改良格式是由事件類(lèi)(eventclass)的通道0~3)的事件而被收存,所以與屬于通常通道的事件同樣解壓縮。
以下,參照?qǐng)D44的流程圖,對(duì)由軌道合并及通道編號(hào)代碼解壓縮部55進(jìn)行的解壓縮處理的流程加以說(shuō)明。
本處理開(kāi)始后,軌道合并及通道編號(hào)代碼解壓縮部55首先將0代入軌道編號(hào)的I(步驟S300),將該軌道編號(hào)的變量I與軌道數(shù)M進(jìn)行比較(步驟S301)。
而且,軌道合并及通道編號(hào)代碼解壓縮部55判斷I<M的關(guān)系成立時(shí),將0代入變量MasterTick通道編號(hào)代碼的變量J(步驟S302)。該變量MasterTick,是意味著復(fù)合化時(shí)的軌道復(fù)元中收存屬于復(fù)元后多個(gè)通道的事件組的軌道的現(xiàn)在復(fù)合化位置的經(jīng)過(guò)時(shí)間(標(biāo)記)的變量。
接著,軌道合并及通道編號(hào)代碼解壓縮部55判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S303)。在1循環(huán)上,由于在步驟S302中設(shè)定了J=0,所以軌道合并及通道編號(hào)代碼解壓縮部55判斷滿(mǎn)足J<MAX_CH的關(guān)系,使Tick
為0,進(jìn)而對(duì)通道編號(hào)的變量J加1,使J=1(步驟S304),之后,回到上述步驟S303。該Tick[x]意味著收存有屬于通道J的事件的軌道的現(xiàn)在的經(jīng)過(guò)位置的時(shí)間。由于各軌道具有各自獨(dú)立的時(shí)間軸,所以這樣的數(shù)組是必要的。
在該例中,由于預(yù)先設(shè)定了MAX_CH為16,所以軌道合并及通道編號(hào)代碼解壓縮部55對(duì)Tick
,Tick[1],......,Tick[15]執(zhí)行上述處理。該處理之后,軌道合并及通道編號(hào)代碼解壓縮部55進(jìn)行后面要詳述的軌道合并處理(步驟S305),對(duì)變量I加1,使I=1(步驟S306),重復(fù)上述步驟S301至步驟S306的處理,這樣,對(duì)軌道1數(shù)據(jù),軌道2數(shù)據(jù),......,軌道x數(shù)據(jù),......,軌道m(xù)數(shù)據(jù)進(jìn)行解壓縮。
這里參照?qǐng)D45的流程圖,對(duì)圖44的步驟S305中由軌道合并及通道編號(hào)代碼解壓縮部55(包含軌道合并部55a及通道編號(hào)代碼解壓縮部55b)的軌道合并的處理進(jìn)行更詳細(xì)的敘述。該處理開(kāi)始后,軌道合并及通道編號(hào)代碼解壓縮部55對(duì)該處理中所使用的各變量NextTick,ExistSameTimeEvent,變量J進(jìn)行初始化(步驟S310),之后,將該變量J與最大通道數(shù)MAX_CH進(jìn)行比較(步驟S311),在1循環(huán),由于在步驟S310的變量J設(shè)定為0,所以該軌道合并及通道編號(hào)代碼解壓縮部55從該步驟S311向Yes一側(cè)行進(jìn),接著,判斷軌道[1]
的讀入是否結(jié)束(步驟S312)。
這里,由于軌道[I]
的讀入尚未結(jié)束,所以軌道合并及通道編號(hào)代碼解壓縮部55從步驟S312向No一側(cè)行進(jìn),不向讀出位置前進(jìn),從軌道[I]
的軌道數(shù)據(jù)讀出Δt,收存于變量Delta(步驟S313)。接著,軌道合并及通道編號(hào)代碼解壓縮部55判斷是否有NextTick=Tick[J]+Delta(步驟S314),在NextTick=Tick[J]+Delta的情況下,設(shè)定ExistSameTimeEvent=1(步驟S315),在不是NextTick=Tick[J]+Delta的情況下,判斷是否有NextTick>Tick[J]+Delta(步驟S316)。
在該關(guān)系成立的情況下,軌道合并及通道編號(hào)代碼解壓縮部55設(shè)定NextTick=Tick[J]+Delta,ExistSameTimeEvent=0,Ch=J(步驟S317),之后,對(duì)變量J加1,使J=1(步驟S318)。而且,軌道合并及通道編號(hào)代碼解壓縮部55對(duì)軌道[I]
,軌道[I][1],......,軌道[I][15]重復(fù)上述步驟S311至步驟S318的處理。
上述步驟S311進(jìn)入No一側(cè)后,軌道合并及通道編號(hào)代碼解壓縮部55判斷是否有NextTick=0xffffffff(步驟S319),在判斷NextTick=0xffffffff的關(guān)系不成立的情況下,判斷是否有ExistSameTimeEvent=1(步驟S320)。
而且,在上述步驟S320中,軌道合并及通道編號(hào)代碼解壓縮部55在判斷ExistSameTimeEvent=1的情況下,從通道編號(hào)代碼[I]讀出1代碼,代入Ch(步驟S321),進(jìn)而從軌道[I][Ch]將Δt讀入Delta,將事件讀入Event(步驟S322)。另一方面,在步驟S320中,軌道合并及通道編號(hào)代碼解壓縮部55在判斷ExistSameTimeEvent=0的情況下,從軌道[I][Ch]將Δt讀入Delta,將事件讀入Event(步驟S323),不進(jìn)入讀出位置,從軌道[I][Ch]將下一個(gè)Δt讀入Mdelta(步驟S324),判斷是否有Mdelta=0(步驟S325)。
而且,這里在Mdelta=0的情況下,軌道合并及通道編號(hào)代碼解壓縮部55從通道編號(hào)代碼[I][J]中空讀出一個(gè)代碼(步驟S326)。接著,軌道合并及通道編號(hào)代碼解壓縮部55更新讀入事件的通道的軌道數(shù)據(jù)的Tick,算出壓縮的Δt,代入Mdelta,進(jìn)而更新MasterTick(步驟S327)。而且,在Tick[I]的末尾附加代入Mdelta的Δt及代入Event的事件(步驟S328),回到上述步驟S310,重復(fù)上述處理。而且,在上述步驟S319中,軌道合并及通道編號(hào)代碼解壓縮部55在判斷NextTick=0xffffffff的關(guān)系成立時(shí),結(jié)束該處理。這樣,生成每一個(gè)軌道的軌道0數(shù)據(jù),軌道1數(shù)據(jù),.......,軌道m(xù)數(shù)據(jù)。
將它們輸入軌道配置部56,在該當(dāng)軌道配置部56中配置軌道,這樣解壓縮成樂(lè)曲文件4。
以下參照?qǐng)D47的流程圖,對(duì)由軌道配置部56配置軌道的處理加以詳細(xì)說(shuō)明。就是說(shuō),該處理開(kāi)始后,軌道配置部56首先配置頭塊(步驟S350),接著軌道編號(hào)的I初始化為0(步驟S351),將該軌道編號(hào)的變量I與軌道數(shù)M進(jìn)行比較(步驟S352)。而且,軌道配置部56在I<M的關(guān)系成立的情況下,配置軌道
中所收存的軌道0數(shù)據(jù)(步驟S353),在對(duì)軌道編號(hào)的I加1,使I=1(步驟S354)之后,重復(fù)上述步驟S352至步驟S354的處理。
在該第一實(shí)施方式中,在與圖46的關(guān)系中,由于M=m+1,所以軌道配置部56對(duì)軌道
,軌道[1],......,軌道[m]中收存的、軌道0數(shù)據(jù),軌道1數(shù)據(jù),......,軌道m(xù)數(shù)據(jù)進(jìn)行配置(步驟S352至步驟S354),這樣,本處理結(jié)束。
通過(guò)以上說(shuō)明的一連串的處理,由二次代碼解壓縮部51將二次代碼6解壓縮一次代碼5,由一次代碼解壓縮部52將該一次代碼5解壓縮為樂(lè)曲文件4。該被解壓縮的樂(lè)曲文件4,與原來(lái)的演奏信息完全一致,不存在各演奏信息的順序的交替。
由以上的說(shuō)明,本發(fā)明的第一實(shí)施方式的演奏信息壓縮裝置、演奏信息壓縮方法、演奏信息壓縮程序、演奏信息解壓縮裝置、演奏信息解壓縮方法,演奏信息解壓縮程序具有以下的效果。
就是說(shuō),通過(guò)由一次代碼生成部2的處理,能夠?qū)崿F(xiàn)生成省去樂(lè)曲文件4(SMF)的不要部分,且不損害樂(lè)曲文件4(SMF)的演奏信息,生成作為被壓縮的數(shù)據(jù)量的一次代碼5。進(jìn)而,通過(guò)將一次代碼5記錄成與SMF相比同一數(shù)據(jù)模式的出現(xiàn)頻率高,同一數(shù)據(jù)模式更近的距離,并通過(guò)在更近的位置歸納同一代碼的字節(jié),提高二次代碼生成部3中通用壓縮方式的壓縮效率。
該效果即使是在演奏信息解壓縮裝置等中,對(duì)于一次代碼解壓縮部52及二次代碼解壓縮部51也同樣起作用。而且,通過(guò)使一次壓縮時(shí)各演奏信息時(shí)間上的獨(dú)立的同時(shí),保持該各演奏信息順序的信息,在對(duì)被壓縮的演奏信息進(jìn)行解壓縮的情況下,也不會(huì)發(fā)生上述各演奏信息的順序的交替。就是說(shuō),解壓縮的演奏信息與原來(lái)的演奏信息完全一致。
(第二實(shí)施方式)首先,對(duì)第二實(shí)施方式的演奏信息壓縮裝置、演奏信息解壓縮裝置、演奏信息壓縮方法、演奏信息解壓縮方法、演奏信息壓縮程序、演奏信息解壓縮程序中,作為前提而輸入的數(shù)據(jù)(樂(lè)曲文件)的格式進(jìn)行詳細(xì)說(shuō)明。在該第二實(shí)施方式中,假定SMF的改良格式作為樂(lè)曲文件的格式。該改良格式可以分為頭塊與軌道塊,在頭塊部中,包含與樂(lè)曲文件全體直接相關(guān)的最小限度的信息,例如軌道數(shù)據(jù)的數(shù)等信息。而且,在各軌道塊中,能夠包含最大4通道的事件數(shù)據(jù)組(軌道數(shù)據(jù))。
進(jìn)而,各軌道數(shù)據(jù),由Δt與事件兩個(gè)要素所構(gòu)成。在Δt中至少包含相鄰兩個(gè)事件間的相對(duì)時(shí)間的信息。而且,在前述的SMF中,包含事件中音符開(kāi)或音符關(guān)的狀態(tài)及音程(音符數(shù))、音的強(qiáng)度(速率)等演奏信息,但在該改良的格式中,在音符關(guān)被省略與相當(dāng)于音符開(kāi)的音符信息中還包含與“音的長(zhǎng)度”有關(guān)的信息這些點(diǎn)上與SMF不同。
還有,在該第二實(shí)施方式中,也能夠根據(jù)Δt的前頭字節(jié)的信息來(lái)識(shí)別事件的種類(lèi),而且,在該格式中,還包含在狀態(tài)的事件類(lèi)(eventclass)的信息。
雖然從這樣的格式的不同會(huì)引起樂(lè)曲文件、一次代碼、二次代碼等與第一實(shí)施方式的不同,但為了以下說(shuō)明的方便,將它們用與第一實(shí)施方式同樣的符號(hào)表示,進(jìn)行說(shuō)明。
(演奏信息壓縮裝置等)以下參照?qǐng)D48~圖61,對(duì)由樂(lè)曲文件生成一次代碼,進(jìn)而生成二次代碼的第二實(shí)施方式的演奏信息壓縮裝置、演奏信息壓縮方法、演奏信息壓縮程序的結(jié)構(gòu)及作用進(jìn)行詳細(xì)說(shuō)明。
還有,該演奏信息壓縮裝置的作用相當(dāng)于第二實(shí)施方式中演奏信息壓縮方法、演奏信息壓縮程序。該演奏信息壓縮程序、演奏信息解壓縮程序,可以由計(jì)算機(jī)執(zhí)行。
而且,這里為了避免說(shuō)明的重復(fù),對(duì)于與第一實(shí)施方式的裝置相同的結(jié)構(gòu),都使用同一圖而進(jìn)行說(shuō)明。
該第二實(shí)施方式的演奏信息壓縮裝置70的結(jié)構(gòu),與前面所示的圖1的結(jié)構(gòu)大體相同,由一次代碼生成部2與二次代碼生成部3所構(gòu)成。
就是說(shuō),一次代碼生成部2是應(yīng)該提高二次代碼生成部3的壓縮效率,重新排列上述格式的樂(lè)曲文件4中所包含的演奏信息,生成一次代碼5的生成部。而且,二次代碼生成部3是采用通用的壓縮方式對(duì)上述一次代碼5進(jìn)行壓縮,生成二次代碼6的生成部。
在該第二實(shí)施方式中,作為二次代碼生成部2中所采用的通用壓縮方式,例如可以假定采用LZ壓縮法,Huffman壓縮法,掃描寬度壓縮法,進(jìn)而還可以是它們的組合(例如LHA及ZIP等),當(dāng)然并非僅限與此。
一次代碼生成部2的詳細(xì)結(jié)構(gòu),與前面所示圖2的結(jié)構(gòu)大體相同,具有軌道分離部7與通道分離及通道編號(hào)代碼生成部8,通道編號(hào)以外的代碼生成部100(在圖48中后述),以及代碼配置部10。
以下對(duì)這些各部分的結(jié)構(gòu)及作用進(jìn)行詳細(xì)說(shuō)明。
首先,軌道分離部7的詳細(xì)結(jié)構(gòu),與前面圖3所示的結(jié)構(gòu)大體相同,具有文件分析部7a。該文件分析部7a基于樂(lè)曲文件4的頭塊中所包含的軌道數(shù)據(jù)的數(shù)的信息,判斷樂(lè)曲文件4的軌道塊中是否包含有多個(gè)軌道數(shù)據(jù)。而且,軌道分離部7在判斷包含多個(gè)軌道數(shù)據(jù)的情況下,分離為各自的軌道數(shù)據(jù)。
在該例中,軌道塊分離為軌道0數(shù)據(jù)11-0,軌道1數(shù)據(jù)11-1,......,軌道m(xù)數(shù)據(jù)11-m。由該軌道分離部7進(jìn)行的軌道分離的處理,由于與前面圖4的流程圖中所示的處理大體相同,所以這里其重復(fù)說(shuō)明予以省略。
還有,如上所述,在該第二實(shí)施方式中,由于假定是與第一實(shí)施方式不同的改良格式的輸入數(shù)據(jù)(樂(lè)曲文件),所以所分離的軌道數(shù)據(jù)也有與上述第一實(shí)施方式若干不同的部分,但這里為了簡(jiǎn)化說(shuō)明,軌道塊仍以與軌道0數(shù)據(jù)11-0,軌道1數(shù)據(jù)11-1,......,軌道m(xù)數(shù)據(jù)11-m同樣的符號(hào)進(jìn)行說(shuō)明。
接著,通道分離及通道編號(hào)生成部8的詳細(xì)結(jié)構(gòu)與前面圖5所示的結(jié)構(gòu)大體相同,具有軌道分析部8a與通道編號(hào)代碼生成部8b。在對(duì)于如上所述由軌道分離部7所分割的各軌道0數(shù)據(jù)11-0,軌道1數(shù)據(jù)11-1,......,軌道m(xù)數(shù)據(jù)11-m,在包含多個(gè)通道的軌道數(shù)據(jù)的情況下,由通道分離及通道編號(hào)代碼生成部8的軌道分析分離部8a將它們分離為由單一通道所構(gòu)成的軌道數(shù)據(jù)。
更詳細(xì)地講,在該第二實(shí)施方式的演奏信息壓縮裝置等中,軌道分析分離部8a例如將軌道x數(shù)據(jù)11-x分離為僅有通道0的軌道x數(shù)據(jù)12-0,僅有通道1的軌道x數(shù)據(jù)12-1,......,僅有通道n的軌道x數(shù)據(jù)12-n。此時(shí),通道編號(hào)代碼生成部8b,生成它們的通道編號(hào)代碼X13。
這里,改良的格式的一個(gè)軌道數(shù)據(jù)中最大包含4通道,雖然與前述相同,但在改良的格式中,能夠記述屬于通道的事件與不屬于通道的事件(對(duì)全體有影響的事件等)。鑒于此,在該第二實(shí)施方式中,對(duì)于不屬于通道的事件,根據(jù)事件類(lèi)而作為屬于通道的事件來(lái)處置。在該例中,根據(jù)事件的類(lèi),如下決定收存的通道。
就是說(shuō),在一般類(lèi)的情況下收存通道定為通道0,類(lèi)A的情況下定為通道1,類(lèi)B的情況下收存通道定為通道2,類(lèi)C的情況下收存通道定為通道2。而且,基于上述事件類(lèi)信息僅包含于各通道的軌道x數(shù)據(jù)。但是并非僅限與此。而且,在第二實(shí)施方式中,由于與第一實(shí)施方式同樣,如果對(duì)不存在事件的軌道全部壓縮,會(huì)成為龐大的軌道數(shù),所以將不存在事件的軌道去除,不記錄于一次代碼。
還有,如上所述,在該第二實(shí)施方式中,由于假定是與第一實(shí)施方式不同的改良格式的輸入數(shù)據(jù)(樂(lè)曲文件),所以被分離的軌道數(shù)據(jù)與第一實(shí)施方式相比,有若干不同的部分,但這里為了使說(shuō)明簡(jiǎn)化,對(duì)軌道x數(shù)據(jù)12-x,僅有通道0的軌道x數(shù)據(jù)12-0,僅有通道1的軌道x數(shù)據(jù)12-1,......,僅有通道n的軌道x數(shù)據(jù)12-n,與軌道1數(shù)據(jù)11-1,...,軌道m(xù)數(shù)據(jù)11-m使用同樣的符號(hào)進(jìn)行說(shuō)明。
由該軌道分析分離部8a,通道編號(hào)代碼生成部8b進(jìn)行的通道分離及通道編號(hào)代碼生成的處理流程,由于除了設(shè)定為MAX_CH為4之外,都與前面圖6的流程圖中所示的大體相同,所以這里其重復(fù)說(shuō)明予以省略。而且,由軌道分析分離部8a,通道編號(hào)代碼生成部8b進(jìn)行的通道分離及通道編號(hào)代碼生成的處理流程處理的效果,也與前面參照?qǐng)D7所說(shuō)明的內(nèi)容相同,其說(shuō)明也予以省略。
接著,通道編號(hào)以外的代碼生成部100的詳細(xì)結(jié)構(gòu)如圖48所示。就是說(shuō),該通道編號(hào)以外的代碼生成部100,由事件種類(lèi)分析識(shí)別部101,Δt代碼生成部102,音程代碼生成部103,選通時(shí)間代碼生成部104,速率值代碼生成部105,差分彎曲值代碼生成部106,差分音量值代碼生成部107,事件種類(lèi)識(shí)別代碼生成部108,以及其它信息代碼生成部109所構(gòu)成。
還有,由該通道編號(hào)以外的代碼生成部9進(jìn)行的處理的流程,由于除了設(shè)定MAX_CH為4之外,其余部分與前面參照?qǐng)D9所說(shuō)明的內(nèi)容大體相同,所以其重復(fù)說(shuō)明予以省略。進(jìn)而,由于在圖9的步驟S36中所執(zhí)行的軌道[I][J]的壓縮處理也與前面參照?qǐng)D10的流程所說(shuō)明的內(nèi)容大體相同,其重復(fù)說(shuō)明也予以省略。
但是,由于圖10的上述步驟S47中由通道編號(hào)以外的代碼生成部9執(zhí)行的對(duì)每種事件的壓縮處理與第一實(shí)施方式不同,所以以下參照?qǐng)D49的流程圖,在認(rèn)識(shí)到與上述第一實(shí)施方式的不同點(diǎn)的同時(shí),進(jìn)行更詳細(xì)的說(shuō)明。
該處理開(kāi)始后,通道編號(hào)以外的代碼生成部9首先判斷變量Event中存儲(chǔ)的事件的種類(lèi)(步驟S360)。
通道編號(hào)以外的代碼生成部9在判斷事件種類(lèi)是音符信息的情況下,對(duì)速率值代碼[I][J]末尾的速率的下位6比特的信息進(jìn)行壓縮(步驟S361),對(duì)選通時(shí)間代碼[I][J]末尾的選通時(shí)間壓縮(步驟S362),對(duì)音程代碼[I][J]末尾的音程值(上位2比特中音調(diào)轉(zhuǎn)換,下位6比特中音調(diào)數(shù))進(jìn)行壓縮(步驟S363),對(duì)其它信息代碼[I][J]末尾的變量Event中存儲(chǔ)的事件的第4字節(jié)以后的信息進(jìn)行壓縮(步驟S370),該處理結(jié)束。
而且,通道編號(hào)以外的代碼生成部9在判斷事件的種類(lèi)是選通時(shí)間表達(dá)的情況下,進(jìn)行上述步驟S362至步驟S370同樣的處理后,處理結(jié)束。進(jìn)而,通道編號(hào)以外的代碼生成部9在判斷事件是通道彎音的情況下,將從差分彎曲值代碼[I][J]的末尾一個(gè)之前的彎音的差分彎音壓縮(步驟S364),處理結(jié)束。而且,通道編號(hào)以外的代碼生成部9在判斷事件是通道音量的情況下,將從差分音量值代碼[I][J]的末尾一個(gè)之前的音量的差分音量壓縮(步驟S364),該處理結(jié)束。
另一方面,通道編號(hào)以外的代碼生成部9在判斷事件是其它種類(lèi)的情況下(步驟S360),首先判斷事件種類(lèi)識(shí)別代碼是否為0x08(參照?qǐng)D58)以上(步驟S366)。
在該步驟S366中,通道編號(hào)以外的代碼生成部9在判斷事件種類(lèi)識(shí)別代碼是0x08(參照?qǐng)D58)以上的情況下,將其它信息代碼[I][J]末尾的變量Event中存儲(chǔ)的事件的第三字節(jié)的信息(此時(shí),通道指數(shù)清零)壓縮(步驟S371),該處理結(jié)束。另一方面,在上述步驟S366中,在判斷事件種類(lèi)識(shí)別代碼不到0x08的情況下,進(jìn)而判斷事件種類(lèi)識(shí)別代碼是否為0x02(參照?qǐng)D58)以下(步驟S367)。
在該步驟S367中,通道編號(hào)以外的代碼生成部9在判斷事件種類(lèi)識(shí)別代碼在0x02(參照?qǐng)D58)以下的情況下,將其它信息代碼[I][J]末尾的變量Event中存儲(chǔ)的事件的第二字節(jié)的信息壓縮,將其它信息代碼[I][J]末尾的變量Event中存儲(chǔ)的事件的第三字節(jié)的信息壓縮(步驟S369),進(jìn)而將其它信息代碼[I][J]末尾的事件的第四字節(jié)以后的信息壓縮(步驟S3691),該處理結(jié)束。
對(duì)于此,在上述步驟S367中,通道編號(hào)以外的代碼生成部9在判斷事件種類(lèi)識(shí)別代碼不在0x02(參照?qǐng)D58)以下的情況下,將其它信息代碼[I][J]末尾的變量Event中存儲(chǔ)的事件的第三字節(jié)的信息壓縮(步驟S369),將其它信息代碼[I][J]的末尾的變量Event中存儲(chǔ)的事件的第四字節(jié)以后的信息壓縮(步驟S369),該處理結(jié)束。
通過(guò)由以上說(shuō)明的各生成部102至109的一連串的處理,生成Δt代碼,音程代碼,選通時(shí)間代碼,速率值代碼,差分彎曲值代碼,差分音量值代碼,事件種類(lèi)識(shí)別代碼,以及其它信息代碼。而且,這些代碼全部都輸入到與前面所示圖12大體相同的代碼配置部10。代碼配置部10對(duì)每一個(gè)代碼種類(lèi)進(jìn)行配置,生成一次代碼5。還有,關(guān)于該代碼配置部10,其結(jié)構(gòu)雖然與上述第一實(shí)施方式有若干不同,但這里為了簡(jiǎn)化說(shuō)明,也使用同樣的符號(hào),以處理上的不同點(diǎn)為中心進(jìn)行詳細(xì)說(shuō)明。
以下參照?qǐng)D50至圖60,對(duì)實(shí)施方式中由演奏信息壓縮裝置70的代碼配置部10的代碼配置的處理流程進(jìn)行更詳細(xì)的說(shuō)明。
那么,進(jìn)入本處理后,代碼配置部10首先配置頭塊代碼(步驟S380),以后,如后述,配置各代碼。
首先,代碼配置部10配置Δt代碼(步驟S380)。
就是說(shuō),如圖51的流程圖中所詳細(xì)表示,代碼配置部10首先將0代入軌道編號(hào)的變量I(步驟S390),判斷該I是否小于軌道數(shù)M(步驟S391)。
由于在1循環(huán)上,在上述步驟S390中設(shè)定了J=0,所以代碼配置部10從步驟S391向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S392)。接著,代碼配置部10判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S393)。而且,在1循環(huán)上,由于在上述步驟S392中設(shè)定了J=0,所以代碼配置部10從步驟S393向Yes一側(cè)行進(jìn)。配置Δt代碼
(步驟S394),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S395)。
在該第二實(shí)施方式中,由于預(yù)先在最大通道數(shù)MAX_CH中設(shè)定了4,所以代碼配置部10重復(fù)步驟S393至步驟S395的處理,順次配置Δt代碼
[1],Δt代碼
[2],Δt代碼
[3],Δt代碼
[4]。代碼配置部10在配置了該Δt代碼
[4]之后,從上述步驟S393向No一側(cè)行進(jìn),對(duì)軌道編號(hào)的變量I加1,使I=1,之后再次重復(fù)步驟S391至步驟S395的處理,接著順次配置Δt代碼[1][1],Δt代碼[1][2],Δt代碼[1][3],Δt代碼[1][4]。
在該例中,也是如前面圖3所示,在軌道數(shù)的M中設(shè)定了m+1。由此,在代碼配置部10重復(fù)上述步驟S391至步驟S395的處理,最終順次配置了軌道m(xù)數(shù)據(jù)的Δt代碼[m][1],Δt代碼[m][2],Δt代碼[m][3],Δt代碼[m][4]時(shí),該Delta時(shí)間代碼配置處理結(jié)束,返回到圖50的步驟S381。
接著,代碼配置部10配置音程代碼(步驟S382)。
就是說(shuō),如圖52的流程圖中所詳細(xì)表示,代碼配置部10首先將0代入軌道編號(hào)的變量I(步驟S400),判斷該I是否小于軌道數(shù)M(步驟S401)。
由于在1循環(huán)上,在上述步驟S400中設(shè)定了J=0,所以代碼配置部10從步驟S401向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S402)。接著,代碼配置部10判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S403)。而且,在1循環(huán)上,由于在上述步驟S402中設(shè)定了J=0,所以代碼配置部10從步驟S403向Yes一側(cè)行進(jìn)。配置音程代碼
(步驟S404),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S405)。
在該第二實(shí)施方式中,由于預(yù)先在最大通道數(shù)MAX_CH中設(shè)定了4,所以代碼配置部10重復(fù)步驟S403至步驟S405的處理,順次配置音程代碼
[1],音程代碼
[2],音程代碼
[3],音程代碼
[4]。代碼配置部10在配置了該音程代碼
[4]之后,從上述步驟S403向No一側(cè)行進(jìn),對(duì)軌道編號(hào)的變量I加1,使I=1,之后再次重復(fù)步驟S401至步驟S405的處理,接著順次配置音程代碼[1][1],音程代碼[1][2],音程代碼[1][3],音程代碼[1][4]。在該例中,也是如前面圖3所示在軌道數(shù)的M中設(shè)定了m+1。
由此,在代碼配置部10重復(fù)上述步驟S401至步驟S405的處理,最終順次配置了軌道m(xù)數(shù)據(jù)的音程代碼[m][1],音程代碼[m][2],音程代碼[m][3],音程代碼[m][4]時(shí),該音程代碼配置處理結(jié)束,返回到圖50的步驟S382。
接著,代碼配置部10配置選通時(shí)間代碼(步驟S383)。
就是說(shuō),如圖53的流程圖中所詳細(xì)表示,代碼配置部10首先將0代入軌道編號(hào)的變量I(步驟S410),判斷該I是否小于軌道數(shù)M(步驟S411)。
由于在1循環(huán)上,在上述步驟S410中設(shè)定了I=0,所以代碼配置部10從步驟S411向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S412)。接著,代碼配置部10判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S413)。而且,在1循環(huán)上,由于在上述步驟S412中設(shè)定了J=0,所以代碼配置部10從步驟S413向Yes一側(cè)行進(jìn)。配置選通時(shí)間代碼
(步驟S414),之后,對(duì)通道編號(hào)的變量J加1(步驟S415)。
在該第二實(shí)施方式中,由于預(yù)先在最大通道數(shù)MAX_CH中設(shè)定了4,所以代碼配置部10以后重復(fù)步驟S413至步驟S415的處理,順次配置選通時(shí)間代碼
[1],選通時(shí)間代碼
[2],選通時(shí)間代碼
[3],選通時(shí)間代碼
[4]。
代碼配置部10在配置了該選通時(shí)間代碼
[4]之后,從上述步驟S413向No一側(cè)行進(jìn),對(duì)軌道編號(hào)的變量I加1,使I=1,之后再次重復(fù)步驟S411至步驟S415的處理,接著順次配置選通時(shí)間代碼[1][1],選通時(shí)間代碼[1][2],選通時(shí)間代碼[1][3],選通時(shí)間代碼[1][4]。在該例中,也是如前面圖3所示在軌道數(shù)的M中設(shè)定了m+1。由此,在代碼配置部10重復(fù)上述步驟S411至步驟S415的處理,最終順次配置了軌道m(xù)數(shù)據(jù)的選通時(shí)間代碼[m][1],選通時(shí)間代碼[m][2],選通時(shí)間代碼[m][3],選通時(shí)間代碼[m][4]時(shí),該選通時(shí)間代碼配置處理結(jié)束,返回到圖50的步驟S383。
接著,代碼配置部10配置速率值代碼(步驟S384)。
就是說(shuō),如圖54的流程圖中所詳細(xì)表示,代碼配置部10首先將0代入軌道編號(hào)的變量I(步驟S420),判斷該I是否小于軌道數(shù)M(步驟S421)。
由于在1循環(huán)上,在上述步驟S420中設(shè)定了I=0,所以代碼配置部10從步驟S421向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S422)。接著,代碼配置部10判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S423)。而且,在1循環(huán)上,由于在上述步驟S422中設(shè)定了J=0,所以代碼配置部10從步驟S423向Yes一側(cè)行進(jìn)。配置速率值代碼
(步驟S424),之后,對(duì)通道編號(hào)的變量J加1(步驟S425)。
在該第二實(shí)施方式中,由于預(yù)先在最大通道數(shù)MAX_CH中設(shè)定了4,所以代碼配置部10重復(fù)步驟S423至步驟S425的處理,順次配置速率值代碼
[1],速率值代碼
[2],速率值代碼
[3],速率值代碼
[4]。
而且,代碼配置部10在配置了該速率值代碼
[4]之后,從上述步驟S423向No一側(cè)行進(jìn),對(duì)軌道編號(hào)的變量I加1,使I=1,之后再次重復(fù)步驟S421至步驟S425的處理,接著順次配置速率值代碼[1][1],速率值代碼[1][2],速率值代碼[1][3],速率值代碼[1][4]。
在該例中,也是如前面圖3所示在軌道數(shù)的M中設(shè)定了m+1。由此,在代碼配置部10重復(fù)上述步驟S421至步驟S425的處理,最終順次配置了軌道m(xù)數(shù)據(jù)的速率值代碼[m][1],速率值代碼[m][2],速率值代碼[m][3],速率值代碼[m][4]時(shí),該速率值代碼配置處理結(jié)束,返回到圖50的步驟S384。
接著,代碼配置部10配置差分彎曲值代碼(步驟S385)。
就是說(shuō),如圖55的流程圖中所詳細(xì)表示,代碼配置部10首先將0代入軌道編號(hào)的變量I(步驟S430),判斷該I是否小于軌道數(shù)M(步驟S431)。
由于在1循環(huán)上,在上述步驟S430中設(shè)定了I=0,所以代碼配置部10從步驟S431向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S432)。接著,代碼配置部10判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S433)。而且,在1循環(huán)上,由于在上述步驟S432中設(shè)定了J=0,所以代碼配置部10從步驟S433向Yes一側(cè)行進(jìn)。配置差分彎曲值代碼
(步驟S434),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S435)。
在該第二實(shí)施方式中,由于預(yù)先在最大通道數(shù)MAX_CH中設(shè)定了4,所以代碼配置部10重復(fù)步驟S433至步驟S435的處理,順次配置差分彎曲值代碼
[1],差分彎曲值代碼
[2],差分彎曲值代碼
[3],差分彎曲值代碼
[4]。
代碼配置部10在配置了該差分彎曲值代碼
[4]之后,從上述步驟S433向No一側(cè)行進(jìn),對(duì)軌道編號(hào)的變量I加1,之后再次重復(fù)步驟S431至步驟S435的處理,接著順次配置差分彎曲值代碼[1][1],差分彎曲值代碼[1][2],差分彎曲值代碼[1][3],差分彎曲值代碼[1][4]。
在該例中,也是如前面圖3所示在軌道數(shù)的M中設(shè)定了m+1。由此,在代碼配置部10重復(fù)上述步驟S431至步驟S435的處理,最終順次配置了軌道m(xù)數(shù)據(jù)的差分彎曲值代碼[m][1],差分彎曲值代碼[m][2],差分彎曲值代碼[m][3],差分彎曲值代碼[m][4]時(shí),該差分彎曲值代碼配置處理結(jié)束,返回到圖50的步驟S385。
接著,代碼配置部10配置差分音量值代碼(步驟S386)。就是說(shuō),如圖56的流程圖中所詳細(xì)表示,代碼配置部10首先將0代入軌道編號(hào)的變量I(步驟S440),判斷該I是否小于軌道數(shù)M(步驟S441)。
由于在1循環(huán)上,在上述步驟S440中設(shè)定了I=0,所以代碼配置部10從步驟S441向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S442)。接著,代碼配置部10判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S443)。而且,在1循環(huán)上,由于在上述步驟S442中設(shè)定了J=0,所以代碼配置部10從步驟S443向Yes一側(cè)行進(jìn)。配置差分音量值代碼
(步驟S444),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S445)。
還有,在該第二實(shí)施方式中,由于預(yù)先在最大通道數(shù)MAX_CH中設(shè)定了4,所以代碼配置部10之后重復(fù)步驟S443至步驟S445的處理,順次配置差分音量值代碼
[1],差分音量值代碼
[2],差分音量值代碼
[3],差分音量值代碼
[4]。
而且,代碼配置部10在配置了該差分音量值代碼
[4]之后,從上述步驟S443向No一側(cè)行進(jìn),對(duì)軌道編號(hào)的變量I加1,之后再次重復(fù)步驟S441至步驟S445的處理,接著順次配置差分音量值代碼[1][1],差分音量值代碼[1][2],差分音量值代碼[1][3],差分音量值代碼[1][4]。在該例中,也是如前面圖3所示在軌道數(shù)的M中設(shè)定了m+1。由此,在代碼配置部10重復(fù)上述步驟S441至步驟S445的處理,最終順次配置了軌道m(xù)數(shù)據(jù)的差分音量值代碼[m][1],差分音量值代碼[m][2],差分音量值代碼[m][3],差分音量值代碼[m][4]時(shí),該差分音量值代碼配置處理結(jié)束,返回到圖50的步驟S386。
接著,代碼配置部10配置事件種類(lèi)識(shí)別代碼(步驟S387)。就是說(shuō),如圖57的流程圖中所詳細(xì)表示,代碼配置部10首先將0代入軌道編號(hào)的變量I(步驟S450),判斷該I是否小于軌道數(shù)M(步驟S451)。
由于在1循環(huán)上,在上述步驟S450中設(shè)定了I=0,所以代碼配置部10從步驟S451向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S452)。接著,代碼配置部10判斷該通道編號(hào)的變量J是否小于最大通道數(shù)MAX_CH(步驟S453)。而且,在1循環(huán)上,由于在上述步驟S452中設(shè)定了J=0,所以代碼配置部10從步驟S453向Yes一側(cè)行進(jìn)。配置事件種類(lèi)識(shí)別代碼
(步驟S454),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S455)。
還有,在該第二實(shí)施方式中,由于預(yù)先在最大通道數(shù)MAX_CH中設(shè)定了4,所以代碼配置部10重復(fù)步驟S453至步驟S455的處理,順次配置事件種類(lèi)識(shí)別代碼
[1],事件種類(lèi)識(shí)別代碼
[2],事件種類(lèi)識(shí)別代碼
[3],事件種類(lèi)識(shí)別代碼
[4]。
而且,代碼配置部10在配置了該事件種類(lèi)識(shí)別代碼
[4]之后,從上述步驟S453向No一側(cè)行進(jìn),對(duì)軌道編號(hào)的變量I加1,之后再次重復(fù)步驟S451至步驟S455的處理,接著順次配置事件種類(lèi)識(shí)別代碼[1][1],事件種類(lèi)識(shí)別代碼[1][2],事件種類(lèi)識(shí)別代碼[1][3],事件種類(lèi)識(shí)別代碼[1][4]。
在該第二實(shí)施方式中,也是如前面圖3所示在軌道數(shù)的M中設(shè)定了m+1。由此,在代碼配置部10重復(fù)上述步驟S451至步驟S455的處理,最終順次配置了軌道m(xù)數(shù)據(jù)的事件種類(lèi)識(shí)別代碼[m][1],事件種類(lèi)識(shí)別代碼[m][2],事件種類(lèi)識(shí)別代碼[m][3],事件種類(lèi)識(shí)別代碼[m][4]時(shí),該事件種類(lèi)識(shí)別代碼配置處理結(jié)束,返回到圖50的步驟S387。
這里,事件種類(lèi)識(shí)別代碼,根據(jù)圖58所示的事件種類(lèi)識(shí)別代碼壓縮表,對(duì)應(yīng)于該事件種類(lèi)而適當(dāng)?shù)胤峙?。還有,還可以根據(jù)壓縮時(shí)事件種類(lèi)出現(xiàn)的頻率而動(dòng)態(tài)分配,這種情況更適合于二次壓縮時(shí)由Huffman壓縮進(jìn)行的壓縮。
接著,代碼配置部10配置通道編號(hào)代碼(步驟S388)。
就是說(shuō),如圖59的流程圖中所詳細(xì)表示,代碼配置部10首先將0代入軌道編號(hào)的變量I(步驟S460),判斷該I是否小于軌道數(shù)M(步驟S461)。
由于在1循環(huán)上,在上述步驟S460中設(shè)定了I=0,所以代碼配置部10從步驟S461向Yes一側(cè)行進(jìn),在配置通道編號(hào)代碼
(步驟S462)之后,對(duì)軌道編號(hào)的變量I加1,使I=1(步驟S463)。而且,在代碼配置部10再次重復(fù)步驟S461至步驟S463的處理,接著配置通道編號(hào)代碼[1]。在該例中,也是如前面圖3所示在軌道數(shù)的M中設(shè)定了m+1。由此,在代碼配置部10重復(fù)上述步驟S461至步驟S463的處理,最終順次配置了軌道m(xù)數(shù)據(jù)的通道編號(hào)代碼[m]時(shí),該配置通道編號(hào)代碼配置處理結(jié)束,返回到圖50的步驟S388。
接著,代碼配置部10配置其它信息代碼(步驟S389)。
就是說(shuō),如圖60的流程圖中所詳細(xì)表示,代碼配置部10首先將0代入軌道編號(hào)的變量I(步驟S470),判斷該I是否小于軌道數(shù)M(步驟S471)。
由于在1循環(huán)上,在上述步驟S470中設(shè)定了I=0,所以代碼配置部10從步驟S471向Yes一側(cè)行進(jìn),接著將0代入其它信息的J(步驟S472)。接著,代碼配置部10判斷該其它信息的變量J是否小于最大通道數(shù)MAX_CH(步驟S473)。而且,在1循環(huán)上,由于在上述步驟S472中設(shè)定了J=0,所以代碼配置部10從步驟S473向Yes一側(cè)行進(jìn)。配置其它信息代碼
(步驟S474),之后,對(duì)其它信息的變量J加1,使J=1(步驟S475)。在該第二實(shí)施方式中,預(yù)先在最大通道數(shù)MAX_CH中設(shè)定了4。
由此,代碼配置部10重復(fù)步驟S473至步驟S475的處理,順次配置其它信息代碼
[1],其它信息代碼
[2],其它信息代碼
[3],其它信息代碼
[4]。
而且,代碼配置部10在配置了該其它信息代碼
[4]之后,從上述步驟S473向No一側(cè)行進(jìn),對(duì)軌道編號(hào)的變量I加1,使I=1,之后再次重復(fù)步驟S471至步驟S475的處理,接著順次配置其它信息代碼[1][1],其它信息代碼[1][2],其它信息代碼[1][3],其它信息代碼[1][4]。
在該例中,也是如前面圖3所示在軌道數(shù)的M中設(shè)定了m+1。由此,在代碼配置部10重復(fù)上述步驟S471至步驟S475的處理,最終順次配置了軌道m(xù)數(shù)據(jù)的其它信息代碼[m][1],其它信息代碼[m][2],其它信息代碼[m][3],其它信息代碼[m][4]時(shí),該其它信息代碼配置處理結(jié)束,這樣,由代碼配置部10的代碼配置的處理結(jié)束。
通過(guò)以上的處理,以圖61所示的基本配置順序中排列各代碼,生成一次代碼5。就是說(shuō),在該圖61的例中,更詳細(xì)的說(shuō),一次代碼5的基本排列順序?yàn)棣代碼,音程代碼,選通時(shí)間代碼,速率值代碼,差分彎曲值代碼,差分音量值代碼,事件種類(lèi)識(shí)別代碼,通道編號(hào)代碼,以及其它信息代碼。進(jìn)而由于各代碼的內(nèi)部排列與前面圖25所示的內(nèi)容同樣,所以其重復(fù)說(shuō)明,這里予以省略。
該一次代碼5輸入二次代碼生成部3,由通用的壓縮方式進(jìn)行壓縮。在該第二實(shí)施方式中,作為通用的壓縮技術(shù),可以采用LZ壓縮法及Huffman壓縮法,掃描寬度壓縮法,進(jìn)而還有它們的組合方式(例如LHA及ZIP等)。
更詳細(xì)的說(shuō),例如假定采用LZ壓縮的情況,首先,從一次代碼5的前頭開(kāi)始處理,將處理對(duì)象位置的數(shù)據(jù)模式與前面處理的規(guī)定范圍的數(shù)據(jù)模式進(jìn)行比較。而且,在二者一致的情況下,將從處理對(duì)象位置到該數(shù)據(jù)模式的距離及一致的數(shù)據(jù)模式的長(zhǎng)度等信息作為二次代碼6輸出。與此相比,在二者不一致的情況下,將一次代碼5原封不動(dòng)的作為二次代碼6輸出。
從一次代碼5的前頭至最后重復(fù)這樣一連串的處理。
在第二實(shí)施方式中,由于如上所述,生成將各信息配置于對(duì)于每一個(gè)信息種類(lèi)且每一個(gè)通道時(shí)間性獨(dú)立的區(qū)域的一次代碼5,所以適合于利用數(shù)據(jù)模式的重復(fù),將重復(fù)部分壓縮的LZ壓縮法,能夠降低壓縮率。進(jìn)而,例如對(duì)于事件種類(lèi)識(shí)別代碼,由于能夠根據(jù)事件種類(lèi)的出現(xiàn)頻率而進(jìn)行動(dòng)態(tài)分配,所以適合于與根據(jù)每一個(gè)字節(jié)代碼出現(xiàn)的頻率加以權(quán)重的權(quán)重的代碼有關(guān),從而能夠由比特?cái)?shù)記錄來(lái)進(jìn)行壓縮的Huffman壓縮法,能夠降低壓縮率。而且,其它的速率信息,由于在SMF的改良格式下,值的分布中多出現(xiàn)偏差,所以通過(guò)對(duì)速率信息獨(dú)立歸納而記錄,能夠?qū)τ蒆uffman壓縮法的壓縮的效率產(chǎn)生好的影響。
還有,在第二實(shí)施方式中,假定采用LZ法及Huffman壓縮的復(fù)合方式(LHA),在這種情況下,當(dāng)然能夠取得上述雙方的效果。
(演奏信息解壓縮裝置等)接著,參照?qǐng)D62至圖74A、74B,對(duì)解壓縮一次代碼或二次代碼的第二實(shí)施方式中演奏信息解壓縮裝置,演奏信息解壓縮方法,演奏信息解壓縮程序進(jìn)行詳細(xì)的說(shuō)明。還有,演奏信息解壓縮裝置的作用,相當(dāng)于第一實(shí)施方式的演奏信息解壓縮方法,演奏信息解壓縮程序。
該第二實(shí)施方式的演奏信息解壓縮裝置80的結(jié)構(gòu),與前面圖26所示的結(jié)構(gòu)大體相同,由二次代碼解壓縮部2與一次代碼解壓縮部52所構(gòu)成。
該二次代碼解壓縮部51,是將由上述通用壓縮方式所壓縮的上述二次代碼6解壓縮為一次代碼5的解壓縮部。
進(jìn)而,一次代碼解壓縮部52,是將由二次代碼解壓縮部51所解壓縮的上述一次代碼5解壓縮為上述格式的樂(lè)曲文件4的解壓縮部。還有,該一次代碼解壓縮部51的詳細(xì)結(jié)構(gòu),與前面所示的圖27的結(jié)構(gòu)大體相同,具有按通道區(qū)分的代碼抽出部110(在圖62中后述),軌道解壓縮部120,軌道合并及通道編號(hào)代碼解壓縮部55,以及軌道配置部56。
以下,對(duì)這些各部的結(jié)構(gòu)及作用加以詳述。
首先按通道區(qū)分的代碼抽出部110如圖62所示,將一次代碼5中含有的各代碼按通道區(qū)分抽出。
即,按通道區(qū)分的代碼抽出部110從一次代碼5按通道順次抽出軌道0,通道0的代碼組,軌道0,通道1的代碼組,...,軌道m(xù),通道n的代碼組。還有,在這些各代碼組中,包含Δt代碼,音程代碼,選通時(shí)間代碼,速率值代碼,差分彎曲值代碼,差分音量值代碼,事件種類(lèi)識(shí)別代碼,以及其它信息代碼。
以下,參照?qǐng)D63的流程圖,對(duì)由該按通道區(qū)分的代碼抽出部110進(jìn)行的按通道區(qū)分的代碼的抽出的處理的流程進(jìn)行詳細(xì)說(shuō)明。
那么,進(jìn)入本處理后,按通道區(qū)分的代碼抽出部110首先抽出頭塊代碼(步驟S480),以后抽出各代碼。
首先,按通道區(qū)分的代碼抽出部110抽出Δt代碼(步驟S481)。就是說(shuō),如圖64的流程圖所詳細(xì)表示,按通道區(qū)分的代碼抽出部110首先將0代入軌道編號(hào)的變量I(步驟S490),之后,判斷該變量I是否小于軌道數(shù)M(步驟S491)。由于在1循環(huán)上,在上述步驟S490中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部110從步驟S491向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S492)。接著,按通道區(qū)分的代碼抽出部110判斷該通道編號(hào)的變量J是否小于最大通道數(shù)的MAX_CH(步驟S493)。
由于在1循環(huán)上,在上述步驟S492中設(shè)定了J=0,所以按通道區(qū)分的代碼抽出部110從步驟S173向Yes一側(cè)行進(jìn),抽出Δt代碼
(步驟S494),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S495)。
在該第二實(shí)施方式中,由于在最大通道數(shù)的MAX_CH中設(shè)定了4,所以按通道區(qū)分的代碼抽出部110在此之后,重復(fù)上述步驟S493至步驟S495的處理,順次抽出Δt代碼
[1],Δt代碼
[2],Δt代碼
[3],Δt代碼
[4]。
按通道區(qū)分的代碼抽出部110在抽出Δt代碼
[4]之后,從步驟S493向No一側(cè)行進(jìn),在對(duì)軌道編號(hào)中變量I加1之后,再次重復(fù)上述步驟S491至步驟S495的處理,順次抽出Δt代碼[1][1],Δt代碼[1][2],Δt代碼[1][3],Δt代碼[1][4]。在該例中,也是如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。由此,在按通道區(qū)分的代碼抽出部110重復(fù)上述步驟S491至步驟S495的處理,最終順次抽出軌道m(xù)數(shù)據(jù)的Δt代碼[m][1],Δt代碼[m][2],Δt代碼[m][3],Δt代碼[m][4]時(shí),該Δt代碼抽出處理結(jié)束,返回到圖63的步驟S481。
接著,按通道區(qū)分的代碼抽出部110抽出音程代碼(步驟S482)。就是說(shuō),如圖65的流程圖所詳細(xì)表示,按通道區(qū)分的代碼抽出部110首先將0代入軌道編號(hào)的變量I(步驟S500),之后,判斷該變量I是否小于軌道數(shù)M(步驟S501)。由于在1循環(huán)上,在上述步驟S500中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部110從步驟S501向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S502)。接著,按通道區(qū)分的代碼抽出部110判斷該通道編號(hào)的變量J是否小于最大通道數(shù)的MAX_CH(步驟S503)。
由于在1循環(huán)上,在上述步驟S502中設(shè)定了J=0,所以按通道區(qū)分的代碼抽出部110從步驟S503向Yes一側(cè)行進(jìn),抽出音程代碼
(步驟S504),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S505)。
在該第二實(shí)施方式中,由于在最大通道數(shù)的MAX_CH中設(shè)定了4,所以按通道區(qū)分的代碼抽出部110在此之后重復(fù)上述步驟S503至步驟S505的處理,順次抽出音程代碼
[1],音程代碼
[2],音程代碼
[3],音程代碼
[4]。按通道區(qū)分的代碼抽出部110在抽出音程代碼
[4]之后,從步驟S503向No一側(cè)行進(jìn),在對(duì)軌道編號(hào)中變量I加1之后,再次重復(fù)上述步驟S501至步驟S505的處理,順次抽出音程代碼[1][1],音程代碼[1][2],音程代碼[1][3],音程代碼[1][4]。在該例中,也是如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。
由此,在按通道區(qū)分的代碼抽出部110重復(fù)上述步驟S501至步驟S505的處理,最終順次抽出軌道m(xù)數(shù)據(jù)的音程代碼[m][1],音程代碼[m][2],音程代碼[m][3],音程代碼[m][4]時(shí),該音程代碼抽出處理結(jié)束,返回到圖63的步驟S482。
接著,按通道區(qū)分的代碼抽出部110抽出選通時(shí)間代碼(步驟S483)。就是說(shuō),如圖66的流程圖所詳細(xì)表示,按通道區(qū)分的代碼抽出部110首先將0代入軌道編號(hào)的變量I(步驟S510),之后,判斷該變量I是否小于軌道數(shù)M(步驟S511)。由于在1循環(huán)上,在上述步驟S510中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部110從步驟S511向Yes一側(cè)行進(jìn),接著在通道編號(hào)的變量J中設(shè)定0(步驟S512)。接著,按通道區(qū)分的代碼抽出部110判斷該通道編號(hào)的變量J是否小于最大通道數(shù)的MAX_CH(步驟S513)。
由于在1循環(huán)上,在上述步驟S512中設(shè)定了J=0,所以按通道區(qū)分的代碼抽出部110從步驟S513向Yes一側(cè)行進(jìn),抽出選通時(shí)間代碼
(步驟S514),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S515)。
在該第二實(shí)施方式中,由于在最大通道數(shù)的MAX_CH中設(shè)定了4,所以按通道區(qū)分的代碼抽出部110在此之后重復(fù)上述步驟S513至步驟S515的處理,順次抽出選通時(shí)間代碼
[1],選通時(shí)間代碼
[2],選通時(shí)間代碼
[3],選通時(shí)間代碼
[4]。
按通道區(qū)分的代碼抽出部110在抽出選通時(shí)間代碼
[4]之后,從步驟S513向No一側(cè)行進(jìn),在對(duì)軌道編號(hào)中變量I加1使I=1之后,再次重復(fù)上述步驟S511至步驟S515的處理,接著順次抽出選通時(shí)間代碼[1][1],選通時(shí)間代碼[1][2],選通時(shí)間代碼[1][3],選通時(shí)間代碼[1][4]。
在該例中,也是如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。由此,在按通道區(qū)分的代碼抽出部110重復(fù)上述步驟S511至步驟S515的處理,最終順次抽出軌道m(xù)數(shù)據(jù)中選通時(shí)間代碼[m][1],選通時(shí)間代碼[m][2],選通時(shí)間代碼[m][3],選通時(shí)間代碼[m][4]時(shí),該音符關(guān)音程代碼抽出處理結(jié)束,返回到圖63的步驟S483。
接著,按通道區(qū)分的代碼抽出部110抽出速率值代碼(步驟S484)。就是說(shuō),如圖67的流程圖所詳細(xì)表示,按通道區(qū)分的代碼抽出部110首先將0代入軌道編號(hào)的變量I(步驟S520),之后,判斷該變量I是否小于軌道數(shù)M(步驟S521)。由于在1循環(huán)上,在上述步驟S520中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部110從步驟S521向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S522)。接著,按通道區(qū)分的代碼抽出部110判斷該通道編號(hào)的變量J是否小于最大通道數(shù)的MAX_CH(步驟S523)。
由于在1循環(huán)上,在上述步驟S522中設(shè)定了J=0,所以按通道區(qū)分的代碼抽出部110從步驟S523向Yes一側(cè)行進(jìn),抽出速率值代碼
(步驟S524),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S525)。
在該第二實(shí)施方式中,由于在最大通道數(shù)的MAX_CH中設(shè)定了4,所以按通道區(qū)分的代碼抽出部110在此之后重復(fù)上述步驟S523至步驟S525的處理,順次抽出速率值代碼
[1],速率值代碼
[2],速率值代碼
[3],速率值代碼
[4]。
而且,按通道區(qū)分的代碼抽出部110在抽出速率值代碼
[4]之后,從步驟S523向No一側(cè)行進(jìn),在對(duì)軌道編號(hào)中變量I加1使I=1之后,再次重復(fù)上述步驟S521至步驟S525的處理,順次抽出速率值代碼[1][1],速率值代碼[1][2],速率值代碼[1][3],速率值代碼[1][4]。
在該例中,也是如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。由此,在按通道區(qū)分的代碼抽出部110重復(fù)上述步驟S521至步驟S525的處理,最終順次抽出軌道m(xù)數(shù)據(jù)中速率值代碼[m][1],速率值代碼[m][2],速率值代碼[m][3],速率值代碼[m][4]時(shí),該速率值代碼抽出處理結(jié)束,返回到圖63的步驟S484。
接著,按通道區(qū)分的代碼抽出部110抽出差分彎曲值代碼(步驟S485)。就是說(shuō),如圖68的流程圖所詳細(xì)表示,按通道區(qū)分的代碼抽出部110首先軌道編號(hào)的變量I設(shè)定0(步驟S530),之后,判斷該變量I是否小于軌道數(shù)M(步驟S531)。由于在1循環(huán)上,在上述步驟S530中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部110從步驟S531向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S532)。接著,按通道區(qū)分的代碼抽出部110判斷該通道編號(hào)的變量J是否小于最大通道數(shù)的MAX_CH(步驟S533)。
由于在1循環(huán)上,在上述步驟S532中設(shè)定了J=0,所以按通道區(qū)分的代碼抽出部110從步驟S533向Yes一側(cè)行進(jìn),抽出差分彎曲值代碼
(步驟S534),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S535)。
在該第二實(shí)施方式中,由于在最大通道數(shù)的MAX_CH中設(shè)定了4,所以按通道區(qū)分的代碼抽出部110在此之后重復(fù)上述步驟S533至步驟S535的處理,順次抽出差分彎曲值代碼
[1],差分彎曲值代碼
[2],差分彎曲值代碼
[3],差分彎曲值代碼
[4]。
按通道區(qū)分的代碼抽出部110在抽出差分彎曲值代碼
[4]之后,從步驟S533向No一側(cè)行進(jìn),在對(duì)軌道編號(hào)中變量I加1之后,再次重復(fù)上述步驟S531至步驟S535的處理,順次抽出差分彎曲值代碼[1][1],差分彎曲值代碼[1][2],差分彎曲值代碼[1][3],差分彎曲值代碼[1][4]。
在該例中,也是如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。由此,在按通道區(qū)分的代碼抽出部110重復(fù)上述步驟S531至步驟S535的處理,最終順次抽出軌道m(xù)數(shù)據(jù)中差分彎曲值代碼[m][1],差分彎曲值代碼[m][2],差分彎曲值代碼[m][3],差分彎曲值代碼[m][4]時(shí),該差分彎曲代碼抽出處理結(jié)束,返回到圖63的步驟S485。
接著,按通道區(qū)分的代碼抽出部110抽出差分音量值代碼(步驟S486)。就是說(shuō),如圖69的流程圖所詳細(xì)表示,按通道區(qū)分的代碼抽出部110首先將0代入軌道編號(hào)的變量I(步驟S540),之后,判斷該變量I是否小于軌道數(shù)M(步驟S541)。由于在1循環(huán)上,在上述步驟S540中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部110從步驟S541向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S542)。接著,按通道區(qū)分的代碼抽出部110判斷該通道編號(hào)的變量J是否小于最大通道數(shù)的MAX_CH(步驟S543)。
由于在1循環(huán)上,在上述步驟S542中設(shè)定了J=0,所以按通道區(qū)分的代碼抽出部110從步驟S543向Yes一側(cè)行進(jìn),抽出差分音量值代碼
(步驟S544),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S545)。還有,在該第二實(shí)施方式中,在最大通道數(shù)的MAX_CH中設(shè)定了4。
由此,按通道區(qū)分的代碼抽出部110在此之后重復(fù)上述步驟S543至步驟S545的處理,順次抽出差分音量值代碼
[1],差分音量值代碼
[2],差分音量值代碼
[3],差分音量值代碼
[4]。按通道區(qū)分的代碼抽出部110在抽出差分音量值代碼
[4]之后,從步驟S543向No一側(cè)行進(jìn),在對(duì)軌道編號(hào)的變量I加1之后,再次重復(fù)上述步驟S541至步驟S545的處理,順次抽出差分音量值代碼[1][1],差分音量值代碼[1][2],差分音量值代碼[1][3],差分音量值代碼[1][4]。
在該例中,也是如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。由此,在按通道區(qū)分的代碼抽出部110重復(fù)上述步驟S541至步驟S545的處理,最終順次抽出軌道m(xù)數(shù)據(jù)中差分音量值代碼[m][1],差分音量值代碼[m][2],差分音量值代碼[m][3],差分音量值代碼[m][4]時(shí),該差分音量代碼抽出處理結(jié)束,返回到圖63的步驟S486。
接著,按通道區(qū)分的代碼抽出部110抽出事件種類(lèi)識(shí)別代碼(步驟S487)。就是說(shuō),如圖70的流程圖所詳細(xì)表示,按通道區(qū)分的代碼抽出部110首先將0代入軌道編號(hào)的變量I(步驟S550),之后,判斷該變量I是否小于軌道數(shù)M(步驟S551)。由于在1循環(huán)上,在上述步驟S550中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部110從步驟S551向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S552)。接著,按通道區(qū)分的代碼抽出部110判斷該通道編號(hào)的變量J是否小于最大通道數(shù)的MAX_CH(步驟S553)。
由于在1循環(huán)上,在上述步驟S552中設(shè)定了J=0,所以按通道區(qū)分的代碼抽出部110從步驟S553向Yes一側(cè)行進(jìn),抽出事件種類(lèi)識(shí)別代碼
(步驟S554),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S555)。
還有,在該第二實(shí)施方式中,由于在最大通道數(shù)的MAX_CH中設(shè)定了4,所以按通道區(qū)分的代碼抽出部110在此之后重復(fù)上述步驟S553至步驟S555的處理,順次抽出事件種類(lèi)識(shí)別代碼
[1],事件種類(lèi)識(shí)別代碼
[2],事件種類(lèi)識(shí)別代碼
[3],事件種類(lèi)識(shí)別代碼
[4]。按通道區(qū)分的代碼抽出部110在抽出事件種類(lèi)識(shí)別代碼
[4]之后,從步驟S553向No一側(cè)行進(jìn),在對(duì)軌道編號(hào)中變量I加1之后,再次重復(fù)上述步驟S551至步驟S555的處理,順次抽出事件種類(lèi)識(shí)別代碼[1][1],事件種類(lèi)識(shí)別代碼[1][2],事件種類(lèi)識(shí)別代碼[1][3],事件種類(lèi)識(shí)別代碼[1][4]。
在該例中,也是如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。由此,在按通道區(qū)分的代碼抽出部110重復(fù)上述步驟S551至步驟S555的處理,最終順次抽出軌道m(xù)數(shù)據(jù)中事件種類(lèi)識(shí)別代碼[m][1],事件種類(lèi)識(shí)別代碼[m][2],事件種類(lèi)識(shí)別代碼[m][3],事件種類(lèi)識(shí)別代碼[m][4]時(shí),該事件種類(lèi)識(shí)別代碼抽出處理結(jié)束,返回到圖63的步驟S487。
接著,按通道區(qū)分的代碼抽出部110抽出通道編號(hào)代碼(步驟S488)。就是說(shuō),如圖71的流程圖所詳細(xì)表示,按通道區(qū)分的代碼抽出部110首先將0代入軌道編號(hào)的變量I(步驟S560),之后,判斷該變量I是否小于軌道數(shù)M(步驟S561)。由于在1循環(huán)上,在上述步驟S560中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部110從步驟S561向Yes一側(cè)行進(jìn),抽出通道編號(hào)代碼
之后(步驟S562),對(duì)軌道編號(hào)的變量I加1,使I=1(步驟S563)。
而且,按通道區(qū)分的代碼抽出部110再次重復(fù)步驟S561至S563的處理,接著抽出通道編號(hào)代碼[1]。
在該例中,由于也是如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。由此,按通道區(qū)分的代碼抽出部110重復(fù)步驟S561至S563的處理,最終抽出軌道m(xù)數(shù)據(jù)的通道編號(hào)代碼[m]時(shí),該通道編號(hào)代碼抽出處理結(jié)束,返回到圖63的步驟S488。
接著,按通道區(qū)分的代碼抽出部110抽出其它信息代碼(步驟S489)。就是說(shuō),如圖72的流程圖所詳細(xì)表示,按通道區(qū)分的代碼抽出部110首先將0代入軌道編號(hào)的變量I(步驟S570),之后,判斷該變量I是否小于軌道數(shù)M(步驟S571)。由于在1循環(huán)上,在上述步驟S570中設(shè)定了I=0,所以按通道區(qū)分的代碼抽出部110從步驟S571向Yes一側(cè)行進(jìn),接著將0代入通道編號(hào)的變量J(步驟S572)。
接著,按通道區(qū)分的代碼抽出部110判斷該通道編號(hào)的變量J是否小于最大通道數(shù)的MAX_CH(步驟S573)。
由于在1循環(huán)上,在上述步驟S572中設(shè)定了J=0,所以按通道區(qū)分的代碼抽出部110從步驟S573向Yes一側(cè)行進(jìn),抽出其它信息代碼
(步驟S574),之后,對(duì)通道編號(hào)的變量J加1,使J=1(步驟S575)。
還有,在該第二實(shí)施方式中,由于在最大通道數(shù)的MAX_CH中設(shè)定了4,所以按通道區(qū)分的代碼抽出部110在此之后重復(fù)上述步驟S573至步驟S575的處理,順次配置其它信息代碼
[1],其它信息代碼
[2],其它信息代碼
[3],其它信息代碼
[4]。
按通道區(qū)分的代碼抽出部110在抽出其它信息代碼
[4]之后,從步驟S573向No一側(cè)行進(jìn),在對(duì)軌道編號(hào)中變量I加1之后,再次重復(fù)上述步驟S571至步驟S575的處理,順次抽出其它信息代碼[1][1],其它信息代碼[1][2],其它信息代碼[1][3],其它信息代碼[1][4]。在該例中,也是如前面的圖3所示,假定在軌道數(shù)M中設(shè)定了m+1。
由此,在按通道區(qū)分的代碼抽出部110重復(fù)上述步驟S251至步驟S255的處理,最終順次抽出軌道m(xù)數(shù)據(jù)中其它信息代碼[m][1],其它信息代碼[m][2],......,其它信息代碼[m][15]時(shí),該其它信息代碼抽出處理結(jié)束,這樣,由按通道區(qū)分的代碼抽出部110的按代碼抽出的一連串的處理結(jié)束。
就是說(shuō),由以上的處理,由單一通道所構(gòu)成的代碼組(各代碼組當(dāng)然分別包含Δt代碼,音程代碼,選通時(shí)間代碼,速率值代碼,差分彎曲值代碼,差分音量值代碼,事件種類(lèi)識(shí)別代碼,以及其它信息代碼)被抽出。
接著,軌道解壓縮部120的詳細(xì)結(jié)構(gòu)如圖73所示,具有Δt代碼解壓縮部121,音程代碼解壓縮部122,選通時(shí)間代碼解壓縮部123,速率值代碼解壓縮部124,差分彎曲值代碼解壓縮部125,差分音量值代碼解壓縮部126,事件種類(lèi)識(shí)別代碼解壓縮部127,其它信息代碼解壓縮部128,以及事件寫(xiě)出部129。
而且,在這樣的結(jié)構(gòu)下,這些各部121至128,對(duì)各代碼解壓縮,事件寫(xiě)出部129對(duì)于該各代碼進(jìn)行事件的寫(xiě)出,這樣生成由單一的通道所構(gòu)成的軌道數(shù)據(jù)。
由該軌道解壓縮部54進(jìn)行的軌道解壓縮中處理的流程,與前面所示的圖40大體相同,關(guān)于圖40的步驟S265中形成的軌道[I][J]的解壓縮的處理也與圖41大體相同。但是,關(guān)于在每個(gè)事件種類(lèi)的解壓縮處理與圖42A、42B不同。
因此,以下參照?qǐng)D74A、74B的流程圖,對(duì)第二實(shí)施方式中對(duì)每個(gè)事件種類(lèi)的解壓縮的處理加以詳細(xì)說(shuō)明。
就是說(shuō),該處理開(kāi)始后,軌道解壓縮部54,由Δt判斷事件的種類(lèi)(步驟S600),在該第二實(shí)施方式中,可以由Δt的前頭字節(jié)的信息而識(shí)別事件的種類(lèi)。
在該例中,能夠?qū)⑹录?lèi)型作為三個(gè)類(lèi)型(類(lèi)型1~類(lèi)型3)而識(shí)別,由此,軌道解壓縮部54根據(jù)該Δt的前頭字節(jié)的信息判斷事件的種類(lèi)。
在上述步驟600中,軌道解壓縮部54在判斷事件是類(lèi)型1的情況下,從音程代碼[I][J]讀出1字節(jié)的信息,在上位2比特中代入J,下位6比特中代入音調(diào)數(shù),附加于Event的末尾(步驟S601)。此時(shí),音調(diào)轉(zhuǎn)換保存。
接著,軌道解壓縮部54從選通時(shí)間代碼[I][J]讀出1字節(jié)的信息,附加于Event的末尾(步驟S602)。進(jìn)而,軌道解壓縮部54從速率值代碼[I][J]讀出1字節(jié)的信息,上位6比特中代入速率,下位2比特中代入音調(diào)轉(zhuǎn)換,附加于Event的末尾(步驟S603),進(jìn)入步驟S620。
在上述步驟S600中,軌道解壓縮部54在判斷事件是類(lèi)型2的情況下,生成狀態(tài)字節(jié)0xff,附加于Event的末尾(步驟S604)。而且,軌道解壓縮部54生成上位6比特中代入0,下位2比特中代入J的命令字節(jié),附加于Event的末尾(步驟S605)。進(jìn)而,軌道解壓縮部54從音程代碼[I][J]讀出1字節(jié)的信息,附加于Event的末尾(步驟S606)。從選通時(shí)間代碼[I][J]讀出1字節(jié)的信息,附加于Event的末尾(步驟S607),進(jìn)入步驟S620。
另一方面,在上述步驟S600中,軌道解壓縮部54在判斷事件是類(lèi)型3的情況下,從事件種類(lèi)識(shí)別代碼[I][J]順次讀入1代碼(步驟S608),判斷該事件種類(lèi)識(shí)別代碼是否在0x08以上(步驟S609)。這里,如果事件種類(lèi)識(shí)別代碼在0x08以上,則軌道解壓縮部54生成狀態(tài)字節(jié)0xff,附加于Event的末尾(步驟S610),生成與事件種類(lèi)識(shí)別代碼相對(duì)應(yīng)的命令字節(jié),附加于Event的末尾(步驟S611),判斷事件種類(lèi)識(shí)別代碼是否為0x0d(步驟S612)。
在該步驟S612中,如果事件種類(lèi)識(shí)別代碼是0x0d,則軌道解壓縮部54從差分彎曲值代碼[I][J],讀出1字節(jié),將加于一個(gè)之前的彎曲值的數(shù)值代入下位6比特,將J代入上位2比特,附加于Event的末尾(步驟S613),進(jìn)入步驟S620。
另一方面,在上述步驟S612中,如果事件種類(lèi)識(shí)別代碼不是0x0d,則軌道解壓縮部54接著判斷事件種類(lèi)識(shí)別代碼是否為0x0b(步驟S614),如果是0x0b,則從差分音量值代碼[I][J]讀出1字節(jié),將添加于一個(gè)之前的音量值的數(shù)值代入下位6比特,將J代入上位2比特,附加于Event的末尾(步驟S615),進(jìn)入步驟S620。對(duì)于此,在上述步驟S614中,如果事件種類(lèi)識(shí)別代碼不是0x0b,則軌道解壓縮部54接著從其它信息代碼[I][J]讀出1字節(jié)的信息,將0代入下位6比特,將J代入上位2比特,附加于Event的末尾(步驟S616),進(jìn)入步驟S620。在上述步驟S609中,如果事件種類(lèi)識(shí)別代碼不到0x08,則軌道解壓縮部54生成與J相對(duì)應(yīng)的狀態(tài)字節(jié),附加于Event的末尾(步驟S617),判斷事件種類(lèi)識(shí)別信息是否在0x03以上(步驟S618)。
這里,J表示通道編號(hào),如前面的說(shuō)明,在SMF的改良格式的壓縮時(shí),與事件類(lèi)相對(duì)應(yīng),如果是普通類(lèi)(Class Normal),則作為屬于通道0的事件,如果是類(lèi)A,則作為屬于通道1的事件,如果是類(lèi)B,則作為屬于通道2的事件,如果是類(lèi)C,則作為屬于通道3的事件而處理,所以在上述步驟S617中能夠復(fù)元生成與事件類(lèi)相對(duì)應(yīng)的狀態(tài)字節(jié)。
在該步驟S618中,如果事件種類(lèi)識(shí)別代碼為0x03以上,則軌道解壓縮部54生成與事件種類(lèi)識(shí)別代碼相對(duì)應(yīng)的命令字節(jié),附加于Event的末尾(步驟S619),進(jìn)入步驟S620。對(duì)于此,在步驟S618中,如果事件種類(lèi)識(shí)別代碼不到0x03,則軌道解壓縮部54原封不動(dòng)地進(jìn)入步驟S620。這樣,在步驟S620中,軌道解壓縮部54根據(jù)上述文件的格式,從其它信息代碼[I][J]讀出代碼,附加于Event的末尾(步驟S620),該處理結(jié)束。
接著,軌道合并及通道編號(hào)代碼解壓縮部55的詳細(xì)結(jié)構(gòu)與前面圖43所示的結(jié)構(gòu)大體相同,由軌道合并部55a與通道編號(hào)代碼解壓縮部55b所構(gòu)成。在該結(jié)構(gòu)中,軌道合并及通道編號(hào)代碼解壓縮部55b對(duì)通道編號(hào)代碼13解壓縮,軌道合并部55a附加上該通道編號(hào)代碼,解壓縮軌道x數(shù)據(jù)11-x。此時(shí),對(duì)于不屬于通道的事件,由于如壓縮的說(shuō)明中所述,作為根據(jù)事件類(lèi)屬于對(duì)應(yīng)通道0~3的事件記錄于通道編號(hào)代碼13,所以與此相對(duì)應(yīng)進(jìn)行解壓縮。由該軌道合并部55進(jìn)行的解壓縮的處理流程,由于與前面圖44、圖45的流程圖中所示的相同,所以其重復(fù)說(shuō)明予以省略。
這樣,生成每一個(gè)軌道的軌道0數(shù)據(jù),軌道1數(shù)據(jù),......,軌道m(xù)數(shù)據(jù)時(shí),將它們輸入到軌道配置部56,通過(guò)該軌道配置部56中排列于樂(lè)曲文件4。
由該軌道配置部56所進(jìn)行的軌道配置中處理的詳細(xì)內(nèi)容,由于與前面圖47的流程圖所示的內(nèi)容相同,所以其重復(fù)說(shuō)明予以省略。
通過(guò)以上說(shuō)明的一連串的處理,由二次代碼解壓縮部51從二次代碼6解壓縮一次代碼5,由一次代碼解壓縮部52從一次代碼5解壓縮樂(lè)曲文件4。
如以上的說(shuō)明,在本發(fā)明的第二實(shí)施方式的演奏信息壓縮裝置,演奏信息壓縮方法,演奏信息壓縮程序,演奏信息解壓縮裝置,演奏信息解壓縮方法,演奏信息解壓縮程序,能夠起到以下的效果。
就是說(shuō),在演奏信息壓縮裝置等中,通過(guò)由一次代碼生成部2的處理,能夠避免樂(lè)曲文件4(SMF的改良)的浪費(fèi),且能夠不損失樂(lè)曲文件4(SMF的改良)的演奏信息,生成成為被壓縮的數(shù)據(jù)量的一次代碼5。進(jìn)而,通過(guò)使該一次代碼5樂(lè)曲文件(SMF的改良)與樂(lè)曲文件4(SMF的改良)相比同一數(shù)據(jù)模式的出現(xiàn)頻度增高,將同一數(shù)據(jù)模式記錄于更近的距離,進(jìn)而在相同種類(lèi)的代碼內(nèi)相同數(shù)據(jù)模式出現(xiàn)的頻率提高,從而使二次代碼生成部3中通用壓縮方式的壓縮效率提高。
該效果,即使是在演奏信息解壓縮裝置等中,對(duì)一次代碼解壓縮部52,二次代碼解壓縮部51也同樣有效。而且,通過(guò)在一次壓縮時(shí)使各演奏信息時(shí)間上獨(dú)立,同時(shí)保存該演奏信息的順序的信息,在對(duì)壓縮的演奏信息進(jìn)行解壓縮的情況下也不會(huì)發(fā)生各演奏信息順序的交替。就是說(shuō),解壓縮的演奏信息與原來(lái)的演奏信息完全一致。
(第三實(shí)施方式)在第三實(shí)施方式中,表示了對(duì)于將上述第一及第二實(shí)施方式的演奏信息壓縮裝置,演奏信息壓縮方法,演奏信息壓縮程序,演奏信息解壓縮裝置,演奏信息解壓縮方法,演奏信息解壓縮程序,使用于攜帶終端裝置中下載鈴聲音調(diào)的系統(tǒng)的例子,進(jìn)行說(shuō)明。
還有,在該第三實(shí)施方式中,作為輸入數(shù)據(jù)的格式,除了SMF及其改良格式之外,還可以使用于MFi、SMAF、Compact MIDI等鈴聲音調(diào)等專(zhuān)用格式。
首先,在圖75中表示第三實(shí)施方式中系統(tǒng)的第一結(jié)構(gòu)例。
SMF 200與歌詞文件201作為演奏信息輸入到變換部202,變換為演奏信息文件203。在該歌詞文件201中,記述有歌詞文字的文本信息,文本的色變更的定時(shí)信息,文本的顯示位置及書(shū)體,以及頁(yè)的切換定時(shí)等。而且,演奏信息文件203,是可以記述音程信息,音的強(qiáng)度信息,音的長(zhǎng)度信息,以及其它信息的專(zhuān)用的文件格式,也可以是鈴聲音調(diào)專(zhuān)用格式,還可以是SMF。該演奏信息文件203,由一次代碼生成部204進(jìn)行一次壓縮,進(jìn)而由二次代碼生成部206進(jìn)行二次壓縮,生成壓縮文件208。
在該二次壓縮時(shí),將再現(xiàn)演奏器(軟件)205一并壓縮,包含于壓縮文件208。作為一次代碼生成部204,可以采用第一及第二實(shí)施方式的一次代碼生成部2,作為二次代碼生成部206,可以采用第一及第二實(shí)施方式的二次代碼生成部3,上述壓縮文件208,向服務(wù)器207上傳。
而且,該壓縮文件208,基于來(lái)自攜帶終端裝置300的請(qǐng)求而下載至該攜帶終端裝置300。下載的壓縮文件208,收存于攜帶終端裝置300的存儲(chǔ)區(qū)域209。
該壓縮文件208送到二次代碼解壓縮部210,在該二次代碼解壓縮部210進(jìn)行解壓縮,分離為再現(xiàn)演奏器212與一次代碼208。該一次代碼208收存于存儲(chǔ)區(qū)域211。
在再現(xiàn)演奏器212中包含一次代碼解壓縮部213與歌詞顯示部214,上述一次代碼208由一次代碼解壓縮部213所解壓縮,得到演奏信息文件203,收存于存儲(chǔ)區(qū)域215。該演奏信息文件203,進(jìn)而分離為SMF 200與歌詞文件201,SMF 200送到聲音再現(xiàn)部216,歌詞文件等201送到歌詞顯示部214。而且,由聲音再現(xiàn)部216進(jìn)行聲音再現(xiàn),由歌詞顯示部214顯示歌詞。還有,在聲音再現(xiàn)部216、歌詞顯示部214中,由于能夠采用共知的方法,所以其詳細(xì)說(shuō)明省略。
接著,在圖76中表示第三實(shí)施方式的系統(tǒng)的第二結(jié)構(gòu)例。
在該第二結(jié)構(gòu)例中,向變換部202輸入SMF200與歌詞文件201,在該變換部202中生成演奏信息文件203。這一點(diǎn)與上述第一結(jié)構(gòu)例相同。但是,在該第二結(jié)構(gòu)例中,演奏信息文件203由第一壓縮部220所壓縮,生成壓縮文件222。作為該第一壓縮部220,可以采用上述第一及第二實(shí)施方式的演奏信息壓縮裝置。另一方面,在用于再現(xiàn)演奏信息文件203的再現(xiàn)演奏器205中,包含用于對(duì)上述演奏信息文件222進(jìn)行解壓縮的第一解壓縮部225。再現(xiàn)演奏器205由第二壓縮部221進(jìn)行壓縮,生成壓縮文件223。這些壓縮文件222、223,向服務(wù)器207上傳。
這些壓縮文件222、223,都下載至攜帶終端裝置301的存儲(chǔ)區(qū)域209。而且,這些下載的壓縮文件222、223中,再現(xiàn)演奏器的壓縮文件223,由第二解壓縮部224解壓縮,得到再現(xiàn)演奏器225。
另一方面,演奏信息文件203的壓縮文件222,通過(guò)第一解壓縮部226被伸長(zhǎng),生成演奏信息文件203。
而且,該演奏信息文件203,展開(kāi)為SMF 200及歌詞文件等201,歌詞文件等201送到歌詞顯示部214,由該歌詞顯示部214進(jìn)行歌詞顯示,SMF200送到聲音再現(xiàn)部216,由該聲音再現(xiàn)部216進(jìn)行音聲的再現(xiàn)。
還有,作為上述第一解壓縮部226,可以采用上述第一及第二實(shí)施方式的演奏信息解壓縮裝置。
接著,圖77中表示第三實(shí)施方式中系統(tǒng)的第三結(jié)構(gòu)例。
這里,以與上述第一及第二結(jié)構(gòu)例的不同點(diǎn)為中心進(jìn)行說(shuō)明。
在該第三結(jié)構(gòu)例中,在攜帶終端裝置的302內(nèi)的再現(xiàn)演奏器228中,內(nèi)藏有第二解壓縮部226,歌詞顯示部214,以及音聲再現(xiàn)部227。
作為該第一解壓縮部226,當(dāng)然可以采用上述第一及第二實(shí)施方式的演奏信息解壓縮裝置。而且,作為第一解壓縮部220,使用未公開(kāi)的運(yùn)算法則的獨(dú)自的壓縮方法,通過(guò)第一壓縮部220及第一解壓縮部226的非公開(kāi),能夠防止由不正當(dāng)?shù)膬?nèi)容而制作的非法服務(wù)器。
接著,圖78表示第三實(shí)施方式中系統(tǒng)的第四結(jié)構(gòu)例。
這里,以與上述第一至第三結(jié)構(gòu)例的不同點(diǎn)為中心進(jìn)行說(shuō)明。
在上述第二及第三結(jié)構(gòu)例中,SMF200與歌詞文件等201是由變換部202變換為演奏信息文件203,與通過(guò)第一壓縮部220而被壓縮相比,在該第四結(jié)構(gòu)例中,歌詞文件201不壓縮,演奏信息文件203合成為由第一壓縮部220所壓縮的壓縮文件222。而且,該合成的歌詞文件201的演奏信息文件222,向服務(wù)器207上傳。
在該演奏信息文件222及再現(xiàn)演奏器205的壓縮文件223,在攜帶終端裝置303的存儲(chǔ)區(qū)域209下載。而且,在使用該壓縮文件222、223的情況下,首先壓縮文件223由第二解壓縮部224所解壓縮,得到再現(xiàn)演奏器228。
另一方面,從歌詞文件102所合成的演奏信息文件222分離出歌詞文件201。而且,分離了該歌詞文件201的壓縮文件229,由第一解壓縮部226所伸長(zhǎng),解壓縮演奏信息文件203,進(jìn)而展開(kāi)為SMF 200,收存于存儲(chǔ)區(qū)域215,由音聲再現(xiàn)部216進(jìn)行聲音的再現(xiàn)。另一方面,分離的歌詞文件201,送到歌詞顯示部214,在此進(jìn)行歌詞的表示。
還有,作為上述第一解壓縮部226,可以使用上述第一及第二實(shí)施方式的演奏信息解壓縮裝置。
在以上說(shuō)明的第一至第四結(jié)構(gòu)例中,由于用于進(jìn)行被壓縮的演奏信息文件208的解壓縮,需要在再現(xiàn)演奏器106中添加的一次代碼解壓縮部213,所以如果使演奏信息文件203與再現(xiàn)演奏器205相關(guān)聯(lián),在演奏信息文件203與再現(xiàn)演奏器205中添加ID及電子印,僅在二者一致的情況下才進(jìn)行再現(xiàn)許可的處理,則由于壓縮的演奏信息文件208即使是單獨(dú)的處置也不能使用,所以具有能夠防止由不同的再現(xiàn)演奏器而進(jìn)行的不正當(dāng)?shù)脑佻F(xiàn)的效果。而且,對(duì)于演奏信息文件203,由于是采用在第一及第二實(shí)施方式中說(shuō)明的演奏信息壓縮裝置的一次代碼生成部2,二次代碼生成部3進(jìn)行一次壓縮及二次壓縮,所以能夠進(jìn)一步削減數(shù)據(jù)量。
進(jìn)而,雖然在上述第一至第四的結(jié)構(gòu)例中,是列舉的攜帶終端裝置301的例,但并不僅限于此,家電制品,車(chē)載用終端,固定電話(huà)終端等,只要是存儲(chǔ)器容量及網(wǎng)絡(luò)的通信容量中有限制的系統(tǒng),都可以適用。而且,在容量有限制的、例如存儲(chǔ)卡那樣的記錄介質(zhì)中將下載的文件原封不動(dòng)加以保存的情況下,能夠節(jié)約存儲(chǔ)卡的存儲(chǔ)容量。
根據(jù)以上說(shuō)明的第三實(shí)施方式,由于能夠削減演奏信息文件的數(shù)據(jù)量,所以能夠縮短攜帶終端裝置中下載文件的時(shí)間,節(jié)約攜帶終端裝置的存儲(chǔ)裝置的容量。
而且,再現(xiàn)演奏器與壓縮后的演奏信息文件同時(shí)傳送,如果演奏信息文件是在其它再現(xiàn)演奏器中不能再現(xiàn)的格式,則能夠防止演奏信息文件的不適當(dāng)使用。而且,例如在將上述100千字節(jié)的SMF的第一及第二實(shí)施方式的裝置等使用于第三實(shí)施方式的系統(tǒng)的情況下,由于能夠壓縮到10千字節(jié)的程度,所以除了鈴聲音調(diào)的對(duì)答之外,在大小上也是合適的。
以上對(duì)本發(fā)明的第一至第三實(shí)施方式進(jìn)行了說(shuō)明。在本發(fā)明的演奏信息壓縮裝置、演奏信息壓縮方法、演奏信息壓縮程序中,將SMF或其改良文件至少按每一個(gè)通道分離為事件間相對(duì)時(shí)間信息,發(fā)音開(kāi)始音程的信息、音的強(qiáng)度的信息,發(fā)音結(jié)束音程的信息,以及其它信息(在改良的文件中還有音的長(zhǎng)度),與上述通道無(wú)關(guān)對(duì)上述每一個(gè)信息歸納,生成配置于使上述歸納的信息分別獨(dú)立的區(qū)域的一次代碼,由通用的壓縮方法對(duì)該一次代碼的各區(qū)域的信息進(jìn)行壓縮。在SMF中,一個(gè)軌道塊包含一個(gè)軌道數(shù)據(jù),該軌道數(shù)據(jù)中可以包含多個(gè)通道的數(shù)據(jù),但如上所述,通過(guò)將每一個(gè)信息與通道無(wú)關(guān)地進(jìn)行歸納,能夠通過(guò)基于通用壓縮法的壓縮生成適當(dāng)?shù)囊淮未a,進(jìn)而能夠由二次代碼進(jìn)行高效率的壓縮。
進(jìn)而,在本發(fā)明的演奏信息壓縮裝置、演奏信息壓縮方法、演奏信息壓縮程序中,在一次代碼生成時(shí)在同一軌道數(shù)據(jù)中記錄同時(shí)刻的多個(gè)事件的情況下,對(duì)由多個(gè)事件組成的事件組的最末尾所記錄的事件以外的通道信息加以記錄。這樣,通過(guò)削除在最末尾記錄的事件的通道信息,能夠削減數(shù)據(jù)量。
而且,在本發(fā)明的演奏信息壓縮裝置、演奏信息壓縮方法、演奏信息壓縮程序中,在一次代碼生成時(shí),根據(jù)各事件中出現(xiàn)頻度的高低而分配不同事件種類(lèi)識(shí)別代碼,在每一個(gè)事件中記錄該事件種類(lèi)識(shí)別代碼。在本發(fā)明的二次代碼時(shí)雖然也采用了LZ法與Huffman代碼法組合的LHA壓縮法,但如果根據(jù)出現(xiàn)頻度的高低而分配事件種類(lèi)識(shí)別代碼,就能夠使動(dòng)態(tài)Huffman法中更適合,其結(jié)果是能夠使壓縮率降低。
而且,在演奏信息壓縮裝置、演奏信息壓縮方法、演奏信息壓縮程序中,基于在一次代碼生成時(shí)事件間的相對(duì)時(shí)間信息,識(shí)別事件的種類(lèi)。由此,例如能夠基于Δt的代碼信息來(lái)識(shí)別事件的種類(lèi),能夠削減數(shù)據(jù)量,使二次代碼時(shí)的壓縮效率進(jìn)一步提高。
進(jìn)而,本發(fā)明的演奏信息壓縮裝置、方法、程序,計(jì)算出在一次代碼時(shí)各事件間的相對(duì)時(shí)間的最大公約數(shù),對(duì)各事件間的相對(duì)時(shí)間除以上述最大公約數(shù)后的數(shù)值進(jìn)行壓縮。Δt是與各事件成對(duì)存在,但即使是通常需要2字節(jié)的場(chǎng)合,通過(guò)1字節(jié)的使用也能夠完成,所以能夠削減全體的容量。還有,在最大公約數(shù)不能計(jì)算的情況下,可以考慮由規(guī)定的值來(lái)代替。
而且,本發(fā)明的演奏信息壓縮裝置、方法、程序,由于是通過(guò)對(duì)由上述演奏信息壓縮裝置等所壓縮的二次代碼進(jìn)行解壓縮而得到一次代碼,進(jìn)而將一次代碼解壓縮得到樂(lè)曲文件,所以具有與上述同樣的效果。
還有,本發(fā)明并非僅限于上述第一至第三實(shí)施方式,在不脫離其要旨的范圍內(nèi)可以進(jìn)行各種改良與變更。
例如,在上述實(shí)施方式中,是列舉的二次壓縮時(shí)采用LZ壓縮法與Huffman壓縮法的解壓縮方式的LHA壓縮法等的例子,但并非僅限于此,可以采用各種壓縮方法。例如,掃描寬度壓縮法,BSTW壓縮法,ZIP壓縮法等。
而且,對(duì)于該LZ壓縮法,除了LZ77壓縮法以外,作為該變換,還有LZR壓縮法,LZSS壓縮法,LZB壓縮法,LZH壓縮法,LZBW壓縮法,LZIT壓縮法等。
進(jìn)而,輸入數(shù)據(jù)(樂(lè)曲文件)的格式,也不限于第一及第二實(shí)施方式的開(kāi)頭時(shí)所各自說(shuō)明的格式,當(dāng)然也可以適用SMAF、MFi及CMX等格式。
而且,各流程圖中最大通道數(shù)MAX_CH的值,當(dāng)然也不限于上述的值。
除了以上之外,由上述優(yōu)選的實(shí)施方式及權(quán)利要求中所示的演奏信息壓縮裝置,演奏信息解壓縮裝置的各動(dòng)作而進(jìn)行的特定的演奏信息壓縮方法、演奏信息解壓縮方法,當(dāng)然也包含于本發(fā)明。
以上敘述了本發(fā)明的概要及優(yōu)選的實(shí)施方式,與本發(fā)明相關(guān)的技術(shù)區(qū)域的工作者能夠認(rèn)識(shí)本發(fā)明教義范圍內(nèi)的裝置、方法、系統(tǒng)、程序產(chǎn)品、存儲(chǔ)程序的存儲(chǔ)介質(zhì)及其它的變形,而且能夠執(zhí)行。
產(chǎn)業(yè)上利用的可能性如以上的詳細(xì)敘述,根據(jù)本發(fā)明,能夠提供即使解壓縮后也能夠按各演奏信息的順序進(jìn)行回復(fù),能夠防止解壓縮后的演奏信息與原來(lái)的演奏信息不一致等事態(tài)的發(fā)生,能夠通過(guò)省略一部分演奏信息的存儲(chǔ)而使一次代碼的大小縮小,進(jìn)而由通用壓縮方式的組合而使演奏信息的數(shù)據(jù)量有效地壓縮、伸長(zhǎng)的演奏信息壓縮裝置、演奏信息壓縮方法、演奏信息壓縮程序、演奏信息解壓縮裝置、演奏信息解壓縮方法、演奏信息解壓縮程序。
權(quán)利要求
1.一種演奏信息壓縮裝置,其接受文件的輸入并對(duì)該文件進(jìn)行壓縮,該文件具有包含至少由發(fā)音開(kāi)始音程的信息、音的強(qiáng)度信息、發(fā)音結(jié)束音程的信息、以及其它信息所構(gòu)成的事件,和該事件間的相對(duì)時(shí)間的信息并屬于規(guī)定通道的軌道數(shù)據(jù),其特征在于具有一次代碼生成裝置,該一次代碼生成裝置將所述文件的軌道數(shù)據(jù)分離為屬于各通道的多個(gè)軌道數(shù)據(jù),在保持表示對(duì)該通道的歸屬的信息的同時(shí),將歸屬于各通道的軌道數(shù)據(jù)進(jìn)一步按所述每個(gè)信息進(jìn)行分離,將該分離的各信息,與對(duì)該通道歸屬無(wú)關(guān)地按各信息的種類(lèi)進(jìn)行歸納,并通過(guò)在對(duì)每一個(gè)種類(lèi)獨(dú)立的區(qū)域進(jìn)行配置,生成一次代碼;和二次代碼生成裝置,該二次代碼生成裝置以規(guī)定的壓縮方法對(duì)配置于由所述一次代碼生成裝置生成的一次代碼的各區(qū)域內(nèi)的各信息進(jìn)行壓縮。
2.一種演奏信息壓縮裝置,其接受文件的輸入并對(duì)該文件進(jìn)行壓縮,該文件具有包含至少由音程信息、音的強(qiáng)度信息、音的長(zhǎng)度信息、以及其它信息所構(gòu)成的事件,和該事件間的相對(duì)時(shí)間的信息并屬于規(guī)定通道的軌道數(shù)據(jù),其特征在于具有一次代碼生成裝置,該一次代碼生成裝置將所述文件的軌道數(shù)據(jù)分離為屬于各通道的多個(gè)軌道數(shù)據(jù),在保持表示對(duì)該通道的歸屬的信息的同時(shí),將歸屬于各通道的軌道數(shù)據(jù)進(jìn)一步按所述每個(gè)信息進(jìn)行分離,將該分離后的各信息,與對(duì)該通道歸屬無(wú)關(guān)地按各信息的種類(lèi)進(jìn)行歸納,并通過(guò)在對(duì)每一個(gè)種類(lèi)獨(dú)立的區(qū)域進(jìn)行配置,生成一次代碼;和二次代碼生成裝置,該二次代碼生成裝置以規(guī)定的壓縮方法對(duì)配置于由所述一次代碼生成裝置生成的一次代碼的各區(qū)域內(nèi)的各信息進(jìn)行壓縮。
3.根據(jù)權(quán)利要求1或2所述的演奏信息壓縮裝置,其特征在于,所述一次代碼生成裝置,將因出現(xiàn)頻率高低而不同的事件種類(lèi)識(shí)別代碼按所述軌道數(shù)據(jù)中所包含的每一個(gè)事件進(jìn)行分配,并歸納該事件種類(lèi)識(shí)別代碼,配置于獨(dú)立的區(qū)域。
4.根據(jù)權(quán)利要求1或2所述的演奏信息壓縮裝置,其特征在于所述一次代碼生成裝置,將演奏信息文件中記錄的事件組中所包含的事件中、至少使用頻率最高的事件的事件種類(lèi)的識(shí)別信息,包含在一次代碼的相對(duì)時(shí)間代碼內(nèi)并進(jìn)行記錄。
5.根據(jù)權(quán)利要求2所述的演奏信息壓縮裝置,其特征在于所述一次代碼生成裝置,在所述事件是規(guī)定的類(lèi)型的情況下,記錄事件類(lèi)信息以取代表示對(duì)通道的歸屬的信息。
6.一種演奏信息的解壓縮裝置,對(duì)壓縮具有包含至少由發(fā)音開(kāi)始音程信息、音的強(qiáng)度信息、發(fā)音結(jié)束音程信息、以及其它信息所構(gòu)成的事件,和該事件間的相對(duì)時(shí)間的信息,并屬于規(guī)定的通道的軌道數(shù)據(jù)的文件而生成的二次代碼解壓縮為一次代碼,進(jìn)而將該一次代碼解壓縮為文件,其特征在于具有將所述二次代碼解壓縮為一次代碼的二次代碼解壓縮裝置;和一次代碼解壓縮裝置,該一次代碼解壓縮裝置通過(guò)對(duì)所述一次代碼,將配置于獨(dú)立區(qū)域的每一種類(lèi)的各信息按每一種類(lèi)抽出,在參考表示對(duì)所述通道的歸屬的信息的同時(shí),將抽出的各信息構(gòu)成為歸屬于各通道的多個(gè)軌道數(shù)據(jù),進(jìn)而構(gòu)成為文件的軌道數(shù)據(jù),由此解壓縮成文件。
7.一種演奏信息的解壓縮裝置,對(duì)壓縮具有包含至少由音程信息、音的強(qiáng)度信息、音的長(zhǎng)度信息,以及其它信息所構(gòu)成的事件,和該事件間的相對(duì)時(shí)間的信息,并屬于規(guī)定的通道的軌道數(shù)據(jù)的文件而生成的二次代碼解壓縮為一次代碼,進(jìn)而將該一次代碼解壓縮為文件,其特征在于具有將所述二次代碼解壓縮為一次代碼的二次代碼解壓縮裝置;和一次代碼解壓縮裝置,該一次代碼解壓縮裝置通過(guò)對(duì)所述一次代碼,將配置于獨(dú)立區(qū)域的每一種類(lèi)的各信息按每一種類(lèi)抽出,在參考表示對(duì)所述通道的歸屬的信息的同時(shí),將抽出的各信息構(gòu)成為歸屬于各通道的多個(gè)軌道數(shù)據(jù),進(jìn)而構(gòu)成為文件的軌道數(shù)據(jù),由此解壓縮成文件。
8.根據(jù)權(quán)利要求6或7所述的演奏信息解壓縮裝置,其特征在于所述一次代碼解壓縮裝置在所述解壓縮時(shí),將配置于獨(dú)立的區(qū)域的各事件的種類(lèi)按每一個(gè)事件進(jìn)行分配,基于出現(xiàn)頻率的高低不同的事件種類(lèi)識(shí)別代碼而加以識(shí)別。
9.根據(jù)權(quán)利要求7所述的演奏信息解壓縮裝置,其特征在于所述一次代碼解壓縮裝置,對(duì)不屬于通道的事件,在參照事件類(lèi)信息以取代表示所述對(duì)通道歸屬的信息的同時(shí),構(gòu)成軌道數(shù)據(jù)。
10.一種演奏信息壓縮程序制品,其接受文件的輸入并對(duì)該文件進(jìn)行壓縮,該文件具有包含至少由發(fā)音開(kāi)始音程的信息、音的強(qiáng)度信息、發(fā)音結(jié)束音程的信息、以及其它信息所構(gòu)成的事件,和該事件間的相對(duì)時(shí)間的信息并屬于規(guī)定通道的軌道數(shù)據(jù),其特征在于在計(jì)算機(jī)中執(zhí)行將所述文件的軌道數(shù)據(jù)分離為屬于各通道的多個(gè)軌道數(shù)據(jù),在保持表示對(duì)該通道的歸屬的信息的同時(shí),將歸屬于各通道的軌道數(shù)據(jù)進(jìn)一步按所述每個(gè)信息進(jìn)行分離,將該分離的各信息,與對(duì)該通道歸屬無(wú)關(guān)地按各信息的種類(lèi)進(jìn)行歸納,并通過(guò)在對(duì)每一個(gè)種類(lèi)獨(dú)立的區(qū)域進(jìn)行配置,生成一次代碼的步驟;和以規(guī)定的壓縮方法,對(duì)由該所生成的一次代碼的各區(qū)域內(nèi)配置的各信息進(jìn)行壓縮的步驟。
11.一種演奏信息壓縮程序制品,其接受文件的輸入并對(duì)該文件進(jìn)行壓縮,該文件具有包含至少由音程信息、音的強(qiáng)度信息、音的長(zhǎng)度信息、以及其它信息所構(gòu)成的事件,和該事件間的相對(duì)時(shí)間的信息并屬于規(guī)定通道的軌道數(shù)據(jù),其特征在于在計(jì)算機(jī)中執(zhí)行將所述文件的軌道數(shù)據(jù)分離為屬于各通道的多個(gè)軌道數(shù)據(jù),在保持表示對(duì)該通道的歸屬的信息的同時(shí),將歸屬于各通道的軌道數(shù)據(jù)進(jìn)一步按所述每個(gè)信息進(jìn)行分離,將該分離的各信息,與對(duì)該通道歸屬無(wú)關(guān)地按各信息的種類(lèi)進(jìn)行歸納,并通過(guò)在對(duì)每一個(gè)種類(lèi)獨(dú)立的區(qū)域進(jìn)行配置,生成一次代碼的步驟;和以規(guī)定的壓縮方法,對(duì)由該所生成的一次代碼的各區(qū)域內(nèi)配置的各信息進(jìn)行壓縮的步驟。
12.根據(jù)權(quán)利要求10或11所述的演奏信息壓縮程序制品,其特征在于在所述計(jì)算機(jī)中,進(jìn)一步執(zhí)行將因出現(xiàn)頻率高低而不同的事件種類(lèi)識(shí)別代碼按所述軌道數(shù)據(jù)中所包含的每一個(gè)事件進(jìn)行分配,并歸納該事件種類(lèi)識(shí)別代碼,配置于獨(dú)立的區(qū)域。
13.根據(jù)權(quán)利要求10或11所述的演奏信息壓縮程序制品,其特征在于在所述計(jì)算機(jī)中,將演奏信息文件中記錄的事件組中所包含的事件中、至少使用頻率最高的事件的事件種類(lèi)的識(shí)別信息,包含在一次代碼的相對(duì)時(shí)間代碼內(nèi)并進(jìn)行記錄。
14.根據(jù)權(quán)利要求11所述的演奏信息壓縮程序制品,其特征在于在所述計(jì)算機(jī)中,進(jìn)一步執(zhí)行在所述事件是規(guī)定的類(lèi)型的情況下,記錄事件類(lèi)信息以取代表示對(duì)通道的歸屬的信息的步驟。
15.一種演奏信息解壓縮程序制品,對(duì)壓縮具有包含至少由發(fā)音開(kāi)始音程信息、音的強(qiáng)度信息、發(fā)音結(jié)束音程信息、以及其它信息所構(gòu)成的事件,和該事件間的相對(duì)時(shí)間的信息,并屬于規(guī)定的通道的軌道數(shù)據(jù)的文件而生成的二次代碼解壓縮為一次代碼,進(jìn)而將該一次代碼解壓縮為文件,其特征在于在計(jì)算機(jī)中執(zhí)行將所述二次代碼解壓縮為一次代碼的步驟;和對(duì)所述一次代碼,將配置于獨(dú)立區(qū)域的每一種類(lèi)的各信息按每一種類(lèi)抽出,在參考表示對(duì)所述通道的歸屬的信息的同時(shí),將抽出的各信息構(gòu)成為歸屬于各通道的多個(gè)軌道數(shù)據(jù),進(jìn)而構(gòu)成為文件的軌道數(shù)據(jù),由此解壓縮成文件的步驟。
16.一種演奏信息解壓縮程序制品,對(duì)壓縮具有包含至少由音程信息、音的強(qiáng)度信息、音的長(zhǎng)度信息,以及其它信息所構(gòu)成的事件,和該事件間的相對(duì)時(shí)間的信息,并屬于規(guī)定的通道的軌道數(shù)據(jù)的文件而生成的二次代碼解壓縮為一次代碼,進(jìn)而將該一次代碼解壓縮為文件,其特征在于在計(jì)算機(jī)中執(zhí)行將所述二次代碼解壓縮為一次代碼的步驟;和對(duì)所述一次代碼,將配置于獨(dú)立區(qū)域的每一種類(lèi)的各信息按每一種類(lèi)抽出,在參考表示對(duì)所述通道的歸屬的信息的同時(shí),將抽出的各信息構(gòu)成為歸屬于各通道的多個(gè)軌道數(shù)據(jù),進(jìn)而構(gòu)成為文件的軌道數(shù)據(jù),由此解壓縮成文件的步驟。
17.根據(jù)權(quán)利要求15或16所述的演奏信息解壓縮程序制品,其特征在于在所述計(jì)算機(jī)中,在所述解壓縮時(shí),將配置于獨(dú)立的區(qū)域的各事件的種類(lèi)按每一個(gè)事件進(jìn)行分配,基于出現(xiàn)頻率的高低不同的事件種類(lèi)識(shí)別代碼而加以識(shí)別。
18.根據(jù)權(quán)利要求16所述的演奏信息解壓縮程序制品,其特征在于在所述計(jì)算機(jī)中,在所述解壓縮時(shí),對(duì)不屬于通道的事件,在參照事件類(lèi)信息以取代表示所述對(duì)通道歸屬的信息的同時(shí),構(gòu)成軌道數(shù)據(jù)。
全文摘要
本發(fā)明的演奏信息壓縮裝置等,具有一次代碼生成部(2)與二次代碼生成部(3)。一次代碼生成部至少對(duì)每一個(gè)通道將SMF等分離為事件間相對(duì)時(shí)間的信息、發(fā)音開(kāi)始音程的信息、音的強(qiáng)度信息、發(fā)音結(jié)束音程信息,以及其它信息,與通道無(wú)關(guān)地對(duì)上述各信息歸納,生成將該歸納的各信息分別配置于獨(dú)立區(qū)域的一次代碼;二次代碼生成部由LZ壓縮法及Huffman壓縮法對(duì)由該一次代碼生成部(2)所生成的一次代碼的各區(qū)域的信息進(jìn)行壓縮。
文檔編號(hào)G10H1/00GK1653514SQ0381130
公開(kāi)日2005年8月10日 申請(qǐng)日期2003年5月15日 優(yōu)先權(quán)日2002年5月17日
發(fā)明者飛河和生, 高橋賢一 申請(qǐng)人:酷鈴聲科技株式會(huì)社
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1