JP2014027595A - Acoustic signal processing method and audio signal processing system - Google Patents
Acoustic signal processing method and audio signal processing system Download PDFInfo
- Publication number
- JP2014027595A JP2014027595A JP2012168291A JP2012168291A JP2014027595A JP 2014027595 A JP2014027595 A JP 2014027595A JP 2012168291 A JP2012168291 A JP 2012168291A JP 2012168291 A JP2012168291 A JP 2012168291A JP 2014027595 A JP2014027595 A JP 2014027595A
- Authority
- JP
- Japan
- Prior art keywords
- acoustic signal
- virtual machine
- audio
- signal processing
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Circuit For Audible Band Transducer (AREA)
Abstract
Description
本発明は、音響信号処理の技術に関する。 The present invention relates to a technique for acoustic signal processing.
音響信号処理を行う装置として、例えば、音響信号の調整やミキシング等を行うディジタルオーディオミキサーが知られている(例えば、特許文献1参照)。特許文献1に記載のようなディジタルオーディオミキサーでは、複数のDSP(Digital Signal Processor)で低レイテンシ(処理に伴う待ち時間が予め定められた閾値以下であることを、以下「低レイテンシ」という)が求められる音響信号処理を行い、低レイテンシが求められない音響信号処理やGUI(Graphical User Interface)の表示制御等の他の処理はCPUで行う構成が採用されている。
As an apparatus that performs acoustic signal processing, for example, a digital audio mixer that performs adjustment and mixing of acoustic signals is known (see, for example, Patent Document 1). In a digital audio mixer as described in
また、パーソナルコンピュータ等の汎用装置において実行されるプログラムによりDAW(Digital Audio Workstation)システムを実現する技術が知られている。DAWシステムにおいては、汎用装置にてGUIの表示制御等を含む種々の処理を実行し、音響信号処理は外部に接続したDSP又は汎用装置上で動作するソフトウェアで実行される。 A technique for realizing a DAW (Digital Audio Workstation) system by a program executed in a general-purpose device such as a personal computer is known. In the DAW system, various processes including GUI display control and the like are executed by a general-purpose device, and the acoustic signal processing is executed by a DSP connected to the outside or software operating on the general-purpose device.
ところで、DSPは信号処理に特化したプロセッサであり、ボタン・フェーダ等への操作応答等の割込信号に対応する処理や画面表示処理などはCPUで行う必要がある。そのため、DSPにて音響信号処理を行う場合、レイテンシが保証される反面、ハードウェアコストが大きくなってしまったり、システム構成が複雑化してしまったりするという問題がある。また、上記汎用装置上で動作するソフトウェアで音響信号処理も行う場合、Windows(登録商標)等の汎用OSおよび当該OS上にて動作するソフトウェアを用いることが一般的であるが、汎用OSでは上記の割込処理の影響で信号処理のレイテンシが保証されない場合がある。そのため、汎用装置上で動作するソフトウェアで音響信号処理も行う場合は、リアルタイム性が求められる音響信号処理には適さない。汎用装置にて所謂リアルタイムOSおよび当該OS上で動作するソフトウェアを用いればレイテンシを保証することは可能であるが、Window等の汎用OSにて動作するよう作成された既存のソフトウェア(Cubase(登録商標)等)はそのままでは用いることはできず、ソフトウェアの変更や新規作成を行う必要がある。 Incidentally, the DSP is a processor specialized in signal processing, and processing corresponding to an interrupt signal such as an operation response to a button / fader or the like, screen display processing, and the like must be performed by the CPU. For this reason, when the acoustic signal processing is performed by the DSP, the latency is guaranteed, but there is a problem that the hardware cost is increased and the system configuration is complicated. When performing acoustic signal processing using software that operates on the general-purpose device, it is common to use a general-purpose OS such as Windows (registered trademark) and software that operates on the OS. In some cases, the latency of signal processing is not guaranteed due to the influence of interrupt processing. For this reason, when acoustic signal processing is also performed by software operating on a general-purpose device, it is not suitable for acoustic signal processing that requires real-time properties. Although it is possible to guarantee the latency by using a so-called real-time OS and software operating on the OS in a general-purpose device, existing software (Cubese (registered trademark)) created to operate on a general-purpose OS such as Windows is available. ) Etc.) cannot be used as they are, and it is necessary to change the software or create a new one.
本発明は上述の背景に鑑みてなされたものであり、ハードウェアやソフトウェアのコストの増大を抑えつつ、シンプルな構成で音響信号処理に求められる低レイテンシを保証する技術を提供することを目的とする。 The present invention has been made in view of the above-described background, and an object thereof is to provide a technique for guaranteeing low latency required for acoustic signal processing with a simple configuration while suppressing an increase in hardware and software costs. To do.
上述した課題を解決するために、本発明は、リソースとして少なくともプロセッサおよびメモリを有するコンピュータにて行われる音響信号処理方法であって、前記プロセッサが、前記リソースを用いて第1の仮想機械と第2の仮想機械を構築する仮想機械構築ステップと、前記第1の仮想機械から音響信号を出力する第1のインタフェース、および、前記第2の仮想機械へ音響信号を入力する第2のインタフェースを構築するインタフェース構築ステップと、前記第1の仮想機械において、前記第1のインタフェースに音響信号を出力する出力ステップと、前記第1の仮想機械が前記第1のインタフェースに出力した音響信号を前記メモリに書き込む書込ステップと、前記書き込まれた音響信号を前記メモリから読み出して前記第2のインタフェースへ出力する読出ステップと、前記第2の仮想機械において、前記第2のインタフェースから音響信号を入力する入力ステップとを備える音響信号処理方法を提供する。 In order to solve the above-described problem, the present invention provides an acoustic signal processing method performed by a computer having at least a processor and a memory as resources, wherein the processor uses the resource to execute a first virtual machine and a first virtual machine. A virtual machine construction step for constructing two virtual machines, a first interface for outputting an acoustic signal from the first virtual machine, and a second interface for inputting the acoustic signal to the second virtual machine An interface construction step, an output step of outputting an acoustic signal to the first interface in the first virtual machine, and an acoustic signal output from the first virtual machine to the first interface in the memory. A writing step of writing, and reading out the written acoustic signal from the memory to read the second input signal; A reading step of outputting to the face, in the second virtual machine, to provide an acoustic signal processing method comprising an input step of inputting an acoustic signal from said second interface.
上記の音響信号の処理方法の好ましい態様において、前記リソースは、前記コンピュータに接続された外部装置から音響信号を受信するオーディオインタフェースを含み、前記プロセッサが、前記第1の仮想機械において、前記オーディオインタフェースにて受信された音響信号を入力するステップと、前記第1の仮想機械において、前記入力した音響信号に対する信号処理を実行するステップと、を備え、前記プロセッサは、前記出力ステップにおいて前記信号処理された音響信号を前記第1のインタフェースに出力し、前記入力ステップにおいて前記第2のインタフェースから前記信号処理された音響信号を入力する、という構成が採用されてもよい。 In a preferred aspect of the above-described acoustic signal processing method, the resource includes an audio interface that receives an acoustic signal from an external device connected to the computer, and the processor includes the audio interface in the first virtual machine. And a step of performing signal processing on the input acoustic signal in the first virtual machine, wherein the processor performs the signal processing in the output step. A configuration may be employed in which the received acoustic signal is output to the first interface, and the signal-processed acoustic signal is input from the second interface in the input step.
また、上記の音響信号の処理方法の好ましい態様において、前記プロセッサは複数のプロセッサコアを含み、前記プロセッサは、前記仮想機械構築ステップにおいて、前記第1の仮想機械を前記リソースのうち第1のプロセッサコアと前記オーディオインタフェースとを用いて構築し、前記第2の仮想機械を前記リソースのうち第2のプロセッサコアを用いて構築する、という構成が採用されてもよい。 Further, in a preferred aspect of the above-described acoustic signal processing method, the processor includes a plurality of processor cores, and the processor, in the virtual machine construction step, converts the first virtual machine to the first processor among the resources. A configuration may be employed in which the second virtual machine is constructed using a second processor core among the resources by constructing using a core and the audio interface.
また、本発明は、リソースとして少なくともプロセッサおよびメモリを有するコンピュータの前記リソースを用いて第1の仮想機械と第2の仮想機械を構築する手段と、前記第1の仮想機械から音響信号を出力する第1のインタフェース、および、前記第2の仮想機械へ音響信号を入力する第2のインタフェースを構築する手段と、前記第1の仮想機械において、前記第1のインタフェースに音響信号を出力する手段と、前記第1の仮想機械が前記第1のインタフェースに出力した音響信号を前記メモリに書き込む手段と、前記書き込まれた音響信号を前記メモリから読み出して前記第2のインタフェースへ出力する手段と、前記第2の仮想機械において、前記第2のインタフェースから音響信号を入力する手段とを備えたことを特徴とする音響信号処理システムを提供する。 Further, the present invention provides means for constructing a first virtual machine and a second virtual machine using the resources of a computer having at least a processor and a memory as resources, and outputs an acoustic signal from the first virtual machine. Means for constructing a first interface and a second interface for inputting an acoustic signal to the second virtual machine; and means for outputting an acoustic signal to the first interface in the first virtual machine; Means for writing the acoustic signal output by the first virtual machine to the first interface into the memory; means for reading the written acoustic signal from the memory and outputting it to the second interface; The second virtual machine includes means for inputting an acoustic signal from the second interface. Providing sound signal processing system.
上記の音響信号処理システムの好ましい態様において、前記リソースは、前記コンピュータに接続された外部装置から音響信号を受信するオーディオインタフェースを含み、前記第1の仮想機械において、前記オーディオインタフェースにて受信された音響信号を入力する手段と、前記第1の仮想機械において、前記入力した音響信号に対する信号処理を実行する手段と、を備え、前記出力する手段は前記信号処理された音響信号を前記第1のインタフェースに出力し、前記入力する手段は前記第2のインタフェースから前記信号処理された音響信号を入力する、という構成が採用されてもよい。 In a preferred aspect of the above acoustic signal processing system, the resource includes an audio interface that receives an acoustic signal from an external device connected to the computer, and is received by the audio interface in the first virtual machine. Means for inputting an acoustic signal; and means for executing signal processing on the inputted acoustic signal in the first virtual machine, wherein the means for outputting outputs the acoustic signal subjected to the signal processing to the first virtual machine. A configuration may be employed in which the means for outputting and inputting to the interface inputs the acoustic signal subjected to the signal processing from the second interface.
また、上述の音響信号処理システムの好ましい態様において、前記プロセッサは複数のプロセッサコアを含み、前記仮想機械を構築する手段は、前記第1の仮想機械を前記リソースのうち第1のプロセッサコアと前記オーディオインタフェースとを用いて構築し、前記第2の仮想機械を前記リソースのうち第2のプロセッサコアを用いて構築する、という構成が採用されてもよい。 Moreover, in a preferable aspect of the above-described acoustic signal processing system, the processor includes a plurality of processor cores, and the means for constructing the virtual machine includes the first virtual machine among the resources and the first processor core. An arrangement may be employed in which the second virtual machine is constructed using an audio interface and the second virtual machine is constructed using a second processor core among the resources.
本発明によれば、ハードウェアやソフトウェアのコストの増大を抑えつつ、求められる低レイテンシを保証する音響信号処理が実現される。 According to the present invention, it is possible to realize acoustic signal processing that guarantees the required low latency while suppressing an increase in hardware and software costs.
1.構成
以下、図面を参照しながら本発明の実施の形態を説明する。図1は、本発明の実施形態に係るコンピュータ装置1のハードウェア構成の一例を示すブロック図である。コンピュータ装置1は例えばパーソナルコンピュータ等の汎用的なコンピュータ装置であり、本発明に係る音響信号処理を行う。コンピュータ装置1は、プロセッサ10、メモリ20、オーディオI/F40、その他のデバイス50を有し、これら各部がバス60を介して接続されている。プロセッサ10は、例えばCPUであり、4つのプロセッサコア101,102,103,104からなるマルチコア・プロセッサである。プロセッサ10がメモリ20に記憶されているコンピュータプログラムを読み出して実行することにより、コンピュータ装置1の各部を制御する。メモリ20は、ROM、RAM、フラッシュメモリ、HDD、光学ドライブ等を適宜組み合わせて構成される。
1. Configuration Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing an example of a hardware configuration of a
オーディオI/F40は、デジタル音響信号を入出力するデータ入出力部である。オーディオI/F40は、Ethernet(登録商標)、USB(Universal Serial Bus)、IEEE1394などの伝送路を介して、デジタル音響信号を汎用のオーディオ伝送プロトコル(例えば、CobraNet(登録商標),EtherSound(登録商標),Dante(登録商標)等)に従って入出力する。また、PCIe(PCI Express)などのプロセッサのバスをそのまま延長した形式で入出力を行ってもよい。また、他の形式で音響信号の入出力を行ってもよい。また、オーディオI/F40は、複数チャンネルの音響信号の入出力を行うものであってもよい。オーディオI/F40は、クロック発信源を備え、このクロック発信源から発信されるクロックに同期してデータの入出力を行う。その他のデバイス50は、図示しない各種デバイス(キーボード、マウス、タッチパネル等の操作入力デバイスやディスプレイ等の出力デバイス、あるいは他の装置と通信を行う通信デバイス等)との間でデータの入出力を行うI/Fであり、必要に応じて適宜実装される。
The audio I /
メモリ20には、第1のOS(Operating System)プログラムPRG1と、第2のOSプログラムPRG2と、管理OSプログラムPRG3と、信号処理エンジンプログラムPRG4と、オーディオ編集アプリケーションプログラムPRG5等の、各種のコンピュータプログラムが記憶されている。第1のOSプログラムPRG1は、リアルタイムOSである第1のOSのプログラムである。第2のOSプログラムPRG2は、汎用OSである第2のOSのプログラムである。管理OSプログラムPRG3は、第1のOS及び第2のOSを管理するOS(以下「管理OS」という)のプログラムである。信号処理エンジンプログラムPRG4は、低レイテンシが求められる音響信号処理を行うアプリケーションを実現するためのプログラムである。すなわち、信号処理エンジンプログラムPRG4は、従来のディジタルオーディオミキサー等においてDSP等の専用のプロセッサで実行されていた音響信号処理を行うアプリケーションを実現するためのプログラムである。オーディオ編集アプリケーションプログラムPRG5は、低レイテンシが必ずしも求められない音響信号の編集や記録あるいはミキシング操作等の各種処理を行うアプリケーションを実現するためのプログラムである。なお、メモリ20には、図示した以外にも、第1のOS又は第2のOS上で動作する他のプログラムや各種データが記憶されるが、図1においては、図面が煩雑になるのを防ぐためその図示を省略している。
なお、本明細書では、説明の便宜上、応答遅延に対する管理・制御機能を有し「所定の処理命令に対する応答遅延が所定の時間内に完了することが保証できるOS」を「リアルタイムOS」と呼び、「応答遅延にバラつきが生じるなど応答遅延に対する管理・制御機能が無いか当該管理・制御能力に乏しいOS」を「汎用OS」と呼ぶ。
The
In this specification, for convenience of explanation, an “OS that has a management / control function for response delay and can guarantee that the response delay for a predetermined processing instruction is completed within a predetermined time” is referred to as a “real-time OS”. , “An OS that does not have a management / control function for response delay such as a variation in response delay or lacks management / control capability” is referred to as a “general-purpose OS”.
次に、図2に示すブロック図を参照しながら、コンピュータ装置1の機能的構成の一例について説明する。コンピュータ装置1においては、リソースが仮想化され、2台の仮想機械VM1、VM2が構築される。仮想機械VM1では第1のOS111が稼動し、仮想機械VM2では第2のOS121が稼動する。仮想化は管理OS131と仮想化支援コンポーネント132により提供される。なお、仮想化技術としては公知の技術を適宜採用することが可能であり、本明細書では仮想化技術に関する詳細な説明は省略する。また、図2においては図面が煩雑になるのを防ぐためNIC(Network Interface Card)等の一部のリソースの図示を省略している。
Next, an example of a functional configuration of the
続いて、図2に示される各構成部を説明する。リソース群RS10に含まれるリソースはコンピュータ装置1が実際に備えるリソースである。メモリ34は、コンピュータ装置1が有するメモリ20等の記憶資源のうちコンピュータ装置1が各種処理を実行する上で一時的にデータ等を保持するためのRAM等である。管理OS131は複数のOSを管理するハイパーバイザである。仮想化支援コンポーネント132は、管理OS131の上で動作し、コンピュータ装置1の備えるプロセッサ10、メモリ20、オーディオI/F40等の各種リソースを仮想化し、コンピュータ装置1を、第1のOS111によって制御される第1の仮想機械VM1と、第2のOS121によって制御される第2の仮想機械VM2として機能させるコンポーネントである。
Next, each component shown in FIG. 2 will be described. Resources included in the resource group RS10 are resources that the
本実施形態の仮想化において、仮想化支援コンポーネント132はリソース群RS10に含まれるリソースのうち、プロセッサコア101及び102、メモリ34に含まれる第1のメモリ領域31、オーディオI/F40を、各々、仮想的なリソースであるプロセッサコア10V1及び10V2、メモリ31V、オーディオI/F40Vとして第1の仮想機械VM1にアサインする。以下、互いに対応する物理的なリソースと仮想的なリソースには同じ数字の符号を付すとともに、それらを区別するために仮想的なリソースには「オーディオI/F40V」のように、数字の符号の後に「V」を付加するものとする。また、仮想化支援コンポーネント132は仮想的なオーディオI/Fである仮想オーディオI/F331(後述)を第1の仮想機械VM1にアサインする。第1の仮想機械VM1にアサインされたこれらの仮想的なリソースはリソース群RS11を構成する。
In the virtualization of this embodiment, the
また、仮想化支援コンポーネント132はリソース群RS10に含まれるリソースのうち、プロセッサコア103及び104、メモリ34に含まれる第2のメモリ領域32、その他のデバイス50を、各々、仮想的なリソースであるプロセッサコア10V3及び10V4、メモリ32V、その他のデバイス50Vとして第2の仮想機械VM2にアサインする。また、仮想化支援コンポーネント132は仮想的なオーディオI/Fである仮想オーディオI/F332(後述)を第2の仮想機械VM2にアサインする。第2の仮想機械VM2にアサインされたこれらの仮想的なリソースはリソース群RS12を構成する。
Further, the
第1のOS111は第1のOSプログラムPRG1に従い第1の仮想機械VM1上で実行されるリアルタイムOSであり、例えばUbuntu Studioである。また、第2のOS121は第2のOSプログラムPRG2に従い第2の仮想機械VM2上で実行される汎用OSであり、例えばWindows(登録商標)である。第1のOS111は、第1の仮想機械VM1に対し通常のコンピュータ装置に対するものと同様の処理を指示する。また、第2のOS121は、第2の仮想機械VM2に対し通常のコンピュータ装置に対するものと同様の処理を指示する。仮想化支援コンポーネント132は第1のOS111のリソース群RS11に対する指示および第2のOS121のリソース群RS12に対する指示を必要に応じてフックし、必要に応じてそれらの指示に含まれるアドレス番号やポート番号等のリソースを識別する情報の変換等を行う。例えば、物理的なリソース群RS10に含まれるメモリ34のうちアドレスAm〜Am+n-1(「A」に付された下付文字はアドレス番号を示し、mおよびnは任意の自然数)のメモリ空間を持つ第2のメモリ領域32が、アドレスA0〜An-1のメモリ空間を持つメモリ32Vとして第2の仮想機械VM2にアサインされている場合を想定する。この場合、例えば第2のOS121がメモリ32VのアドレスAx(ただし、xは0≦x≦n−1を満たす任意の自然数)に対するデータの読み書きの指示を行うと、仮想化支援コンポーネント132はその指示をフックし、アドレスAxをアドレスAx+mに変換し、メモリ34のアドレスAx+m(第2のメモリ領域32のアドレス)に対しデータの読み書きを実行する。このような仮想化支援コンポーネント132の役割により、第1のOSプログラムPRG1および第2のOSプログラムPRG2は、通常のコンピュータ装置上で実行されるものに何らの変更を要しない。
また、仮想化支援コンポーネント132は伝送用バッファ(後述)として使用される共有メモリ領域を確保する。なお、管理OS131は仮想機械VM2とリソースを共用しているものとする。
The
Also, the
第1のOS111は上述したようにリアルタイムOSであり、低レイテンシが保証され、所定の処理命令に対する応答遅延が所定の時間内に行われる。この実施形態では、第1のOS111上では、信号処理エンジンプログラムPRG4に従い音響信号処理エンジン112が実行される。音響信号処理エンジン112は、オーディオI/F40V等から入力されたオーディオ信号に信号処理を施し、この信号処理されたオーディオ信号をオーディオI/F40V等に対して出力する。これにより第1の仮想機械VM1では入力される音響信号に対する音響信号処理を低レイテンシにて行うことができる。
As described above, the
一方、第2のOS121は上述したように汎用OSであり、汎用OSで動作する一般的なソフトウェアプログラムがそのまま第2のOS121上で実行される。この実施形態では、第2のOS121上では、オーディオ編集アプリケーションプログラムPRG5に従いオーディオ編集アプリケーション122(例えばCubase(登録商標)等)が実行される。また、この実施形態では、ユーザの操作に応じてマウス、キーボード、タッチパネル等の操作入力デバイスからコンピュータ装置1に入力される割込信号は、その他のデバイス50Vを介して全て第2のOS121に供給される。従って、ユーザの操作に応じた割り込み処理等が、第1のOS111において実行される処理に影響を与えることはない。なお、音響信号処理エンジン112は第1のOS111上で動作するソフトウェアプログラムであれば行う音響処理の種別等は限定されず、同様に、オーディオ編集アプリケーション122は第2のOS121上で動作するソフトウェアプログラムであれば行う音響処理の種別等は限定されない。また、音響信号処理エンジン112およびオーディオ編集アプリケーション122は各種エフェクト等の音響処理機能を追加および削除可能としたプラグイン形式のモジュールに従い音響処理を実行するものであってもよい。
On the other hand, the
本実施形態において、音響信号処理エンジン112に従い動作する第1の仮想機械VM1とオーディオ編集アプリケーション122に従い動作する第2の仮想機械VM2との間の音響信号の伝送は、仮想オーディオI/F331および仮想オーディオI/F332を介して行われる。図3は、第1の仮想機械VM1と第2の仮想機械VM2との間で行われる音響信号の伝送の仕組みを説明するために、コンピュータ装置1が有するリソースと上記各仮想機械上にて実行されるソフトウェアコンポーネントとのうち信号の伝送に関与する部分を示した図である。
In the present embodiment, the transmission of the acoustic signal between the first virtual machine VM1 that operates according to the acoustic
図3において、第1の仮想機械VM1上で実行されるオーディオI/Oドライバ116はオーディオI/F40V(図2参照)による音響信号の入出力を制御するドライバであり、例えばALSA(Advanced Linux(登録商標) Sound Architecture)やASIO(Audio Stream Input Output)等のコンポーネントである。オーディオI/Oドライバ116が制御するオーディオI/F40VはオーディオI/F40が仮想化されたものであり、オーディオI/F40には通信ケーブル等の伝送路2を介して外部のオーディオ機器等が接続される。従って、音響信号処理エンジン112はオーディオI/Oドライバ116を用いて、外部のオーディオ機器等との間で伝送路2を介した通常の音響信号の送受信を行うことができる。
In FIG. 3, an audio I /
第1の仮想機械VM1が備える仮想オーディオI/Oドライバ119は仮想オーディオI/F331による音響信号の入出力を制御するドライバである。同様に、第2の仮想機械VM2が備える仮想オーディオI/Oドライバ129は仮想オーディオI/F332による音響信号の入出力を制御するドライバである。
The virtual audio I /
メモリAPI133およびメモリAPI134は、仮想オーディオI/F331および仮想オーディオI/F332を構成しており、各仮想機械からメモリ34に対してデータの読み書きを行うためのインタフェースである。仮想オーディオI/Oドライバ119は音響信号処理エンジン112から音響信号の入出力の指示を受けると、メモリAPI133を用いて、メモリ34上に確保されている伝送用バッファである共有メモリ領域33に対する音響信号の読み書きを行う。同様に、仮想オーディオI/Oドライバ129はオーディオ編集アプリケーション122から音響信号の入出力の指示を受けると、メモリAPI134を用いて、伝送用バッファである共有メモリ領域33に対する音響信号の読み書きを行う。その結果、第1の仮想機械VM1と第2の仮想機械VM2との間で、共有メモリ領域33を用いた音響信号用の伝送路3が構築される。なお、この実施形態では、オーディオI/F40が音響信号の伝送におけるクロックマスタとなり、オーディオI/F40のクロック発信源が発するクロックに同期して、コンピュータ装置1と外部機器との間の音響信号の伝送、および、伝送路3を介した第1の仮想機械VM1と第2の仮想機械VM2との間の音響信号の伝送がなされる。仮想オーディオI/F331はオーディオI/F40のクロック発信源が発したクロックと同期し、当該クロックは伝送路3を介して仮想オーディオI/F331から仮想オーディオI/F332に伝搬され、仮想オーディオI/F332は当該クロックに同期する。
The
仮想オーディオI/Oドライバ119および129は、データの読み書き先が通常のオーディオI/F40が仮想化されたものではなく、共有メモリ領域に対しデータの読み書きを指示するメモリAPIである点を除き、既存のオーディオI/Oドライバ(例えば、オーディオI/Oドライバ116)と同様に構成することができる。具体的には、第1のOS111およびその上で動作する音響信号処理エンジン112からみると、オーディオI/Oドライバ116を介して外部のオーディオ機器等との通信接続が確立されており、仮想オーディオI/Oドライバ119を介して第2の仮想機械VM2との通信接続が確立されていると認識されるだけである。また、第2のOS121およびその上で動作するオーディオ編集アプリケーション122からみると、仮想オーディオI/Oドライバ129を介して第1の仮想機械VM1との通信接続が確立されていると認識されるだけである。従って、仮想オーディオI/Oドライバ119および129は、ALSAやASIO等の任意の仕様あるいは規格等に準拠して構成することができる。このように、各OSおよびそれらのOS上で動作しているソフトウェアコンポーネントからすれば、通常の通信ケーブル等を用いた伝送路(例えば伝送路2)を介した外部機器との間のデータ伝送と、共有メモリ領域33を用いた伝送路3を介した仮想機械間のデータ伝送とで異なる処理実装を行う必要が無い。
The virtual audio I /
2.動作
2−1.ブート処理
次に、コンピュータ装置1の動作を説明する。図4は、利用者によってコンピュータ装置1の電源がONされた際に実行されるブート処理のフローチャートである。利用者によってコンピュータ装置1の電源がONされると、管理OS131が起動する(ステップS1)。管理OS131は、仮想化支援コンポーネント132を構築し(ステップS2)、ハードウェアの仮想化の準備を行う。次いで、管理OS131はメモリ20から設定ファイル等を読み出す(ステップS3)。この設定ファイルには、構築する仮想機械の数や、確保する共有メモリ領域のサイズ、各仮想機械に割り当てるリソース(プロセッサコア、I/F、メモリ領域等)の定義等が含まれる。管理OS131は、設定ファイルに従って共有メモリ領域33を確保する(ステップS4)とともに、第1の仮想機械VM1、第2の仮想機械VM2を構築する(ステップS5)。具体的には、ステップS5において、プロセッサコア101、102、103、104を各仮想機械にアサインする処理、I/Fを介したデバイス等からの割り込みリクエストを対応する仮想機械のプロセッサコアにアサインする処理、メモリAPI133および134が共有メモリ領域33にアクセスするためのアドレスマップや割り込みリクエストを準備する処理等が行われる。その結果、リソース群RS10に含まれる、コンピュータ装置1が実際に備えるリソースが仮想化され、リソース群RS11およびリソース群RS12に含まれる、仮想的なリソースが提供される。
2. Operation 2-1. Next, the operation of the
次いで、管理OS131は第1のOS111と第2のOS121の起動を指示する(ステップS6)。管理OS131の指示に従い、第1のOS111と第2のOS121はそれぞれの設定に従って起動処理を行う(ステップS7)。その後、管理OS131はこれらのOSの監視を行う。
Next, the
2−2.仮想機械間におけるデータ伝送処理
次に、共有メモリ領域33を用いて構築される伝送路3を介した仮想機械間のデータ伝送に伴う動作について説明する。以下の説明では、第1のOS111および第2のOS121は24bit/96kHzの音響信号を処理するものとする。第1のOS111側においては、リアルタイムにデータ伝送が行われ、第1のOS111側のレイテンシとしては2ms(192サンプル分の時間)が設定されているものとする。一方、第2のOS121側においては割り込み等により各種処理や読み/書きが第1のOS111側と同等の時間内には完了しない場合があるため、第2のOS121側のレイテンシとして、第2のOS121の通常の稼動状況であれば問題なく応答できる時間として、第1のOS111側のレイテンシの8倍である16ms(1536サンプル分の時間)が設定されているものとする。
2-2. Data Transmission Processing Between Virtual Machines Next, an operation associated with data transmission between virtual machines via the
第1のOS111は仮想オーディオI/Oドライバ119のために、レイテンシ2ms分の音響信号を蓄積できるだけのサイズ、すなわち、24×96000×(2/1000)=4608bit/chのバッファをメモリ31V上に確保する。また、第2のOS121は、仮想オーディオI/Oドライバ129のために、その8倍の36864bit/chのバッファをメモリ32V上に確保する。なお、第1のOS111および第2のOS121が確保するこれらのバッファはダブルバッファ構成であってもよい。その場合、それらのバッファに要するメモリ領域のサイズは倍となる。以下の説明では、第1のOS111側及び第2のOS121側の各々における伝送単位を「フレーム」と呼ぶ。従って、第1のOS111側のフレームのデータサイズは192サンプル分のサイズ(4608bit)であり、第2のOS121側のフレームのデータサイズはその8倍の1536サンプル分のデータサイズ(36864bit)である。また、説明の便宜上、共有メモリ領域33を第1のOS111側のフレームのデータサイズに区分した各々を「ブロック」と称する。従って、ブロックのサイズは第1のOS111のフレームのサイズと同一であり、この場合、192サンプル分のサイズ(4608bit)である。
For the virtual audio I /
また、ブート処理において、管理OS131が読み出す設定ファイルには共有メモリ領域33として確保すべきメモリのサイズが定義されており、管理OS131はこれに従って共有メモリ領域33を確保する。ブート処理において確保された共有メモリ領域33には、仮想オーディオI/F331から仮想オーディオI/F332への音響信号の第1の伝送用バッファと、仮想オーディオI/F332から仮想オーディオI/F331への音響信号の第2の伝送用バッファ(以下、第1の伝送用バッファおよび第2の伝送用バッファを区別しない場合これらを総称して「伝送用バッファ」と呼ぶ)とが設けられる。上述したように、伝送用バッファは、第1のOS111側の仮想オーディオI/Oドライバ119と、第2のOS121側の仮想オーディオI/Oドライバ129の両方が、同期してデータの読み書きを行うことによりデータ伝送を行うために用いられる。そのため、双方の伝送が破綻することがないよう、伝送用バッファのサイズは仮想オーディオI/Oドライバ119用に確保されるバッファのサイズと仮想オーディオI/Oドライバ129用に確保されるバッファのサイズの公倍数以上である必要があり、メモリリソースの有効利用の観点から、それらの最小公倍数であることが望ましい。この場合、管理OS131により共有メモリ領域33上に確保される第1の伝送用バッファおよび第2の伝送用バッファのサイズは各々36864bit/chとなる。なお、伝送用バッファはダブルバッファ構成であってもよい。その場合、それらのバッファに要するメモリ領域のサイズは倍となる。
In the boot process, the size of the memory to be secured as the shared
次いで、第1の仮想機械VM1と第2の仮想機械VM2との間のデータ伝送処理が行われる際に伝送用バッファに対しデータの読み書きが行われる様子を説明する。図5はダブルバッファとして構成された1ch分の伝送用バッファに対するデータの読み書き位置の一例を示した図である。図5において、A面およびB面はダブルバッファの各面を示している。A面およびB面は各々、図5において0〜15の番号で示される16個のブロック(以下、「ブロック[0]」のようにいう)と、flgで示される通知用のフラグ領域を含んでいる。ブロック[0]〜[7]は第1の伝送用バッファであり、ブロック[8]〜[15]は第2の伝送用バッファである。なお、図5において、d[i]は時刻t=iのタイミングで第1のOS111側から書き込まれたデータを示し、w[i〜i+7]は時刻t=i〜i+7の期間中の何れかのタイミングで第2のOS121側から書き込まれたデータを示している。ここで時刻tは第1の仮想機械VM1が伝送用バッファに読み書きを行うフレームのサイズ(2ms)を単位時間とした時刻である。
Next, how data is read from and written to the transmission buffer when data transmission processing between the first virtual machine VM1 and the second virtual machine VM2 is performed will be described. FIG. 5 is a diagram showing an example of a data read / write position with respect to a transmission buffer for one channel configured as a double buffer. In FIG. 5, A side and B side show each side of the double buffer. Each of the A side and the B side includes 16 blocks (hereinafter referred to as “block [0]”) indicated by
フラグ領域flgは、A面とB面のいずれに現在データが読み書きされているかを示すフラグを格納する領域である。フラグ領域flgに値「0」が格納されている場合、そのフラグは第1のOS111がB面にデータの読み書きを行っており、第2のOS121がA面にデータを読み書き可能であることを示す。一方、フラグ領域flgに値「1」が格納されている場合、そのフラグは第1のOS111がA面にデータの読み書きを行っており、第2のOS121がB面にデータを読み書き可能であることを示す。第1のOS111側の処理として、フラグ領域flgのフラグは第1のOS111によりA面もしくはB面の最後のブロックへのデータの読み書きが完了した時点で、メモリAPI133を用いてフラグ領域flgのフラグの値を更新する。管理OS131はフラグ領域flgのフラグを監視しており、フラグの更新が行われると第2のOS121に対し、更新後のフラグに応じた面に対するデータの読み書きの開始を通知する。その結果、第1のOS111と第2のOS121との間で同じブロックに対するデータの読み書きが同時期に発生することはない。
The flag area flg is an area for storing a flag indicating whether data is currently being read or written on the A side or the B side. When the value “0” is stored in the flag area flg, the flag indicates that the
図5(a)〜(e)の各々は、時刻tのタイミングにおける伝送用バッファの状態を示し、白抜きの矢印が第1のOS111側によるデータの読み書きの領域を、また斜線の矢印が第2のOS121側によるデータの読み書きの領域を示している。例えば、時刻t=16のタイミング(図5(a))において、フラグ領域flgには「1」が格納されており、第1のOS111はA面のブロック[0]にデータを書き込むとともに、A面のブロック[8]からデータを読み出す。次の時刻t=17のタイミング(図5(b))において、第1のOS111はA面のブロック[1]にデータを書き込むとともに、A面のブロック[9]からデータを読み出す。このように、第1のOS111側ではフレーム単位で読み書き対象のブロック位置を移動させながらA面に対するデータの読み書きが時刻t=23まで繰り返される。
Each of FIGS. 5A to 5E shows the state of the transmission buffer at the timing t, and the white arrow indicates the data read / write area on the
上記のように、第1のOS111によりA面に対するデータの読み書きが行われている時刻t=16〜23の間、第2のOS121側では仮想オーディオI/Oドライバ129から供給されるクロックに同期した第2のOS121側のフレームの期間内(16ms)に、B面に対するデータの読み書きが行われる。第2のOS121のフレームのサイズは第1のOS111のフレームのサイズの8倍であるため、第2のOS121側では8ブロック分のデータがまとめて読み書きされる。
As described above, the
第1のOS111側では、時刻t=23のタイミングにおいてA面のブロック[7]に対するデータの書き込みとA面のブロック[15]からのデータの読み出しが完了すると、メモリAPI133が用いられてフラグ領域flgのフラグの値が「0」に書き換えられる。このフラグの更新に応じて、管理OS131は第2のOS121に対し、データの読み書き対象をB面からA面に変更するように通知する。
On the
その後、時刻t=24のタイミング(図5(c))において、第1のOS111はB面のブロック[0]にデータを書き込むとともに、B面のブロック[8]からデータを読み出す。以降、第1のOS111側ではフレーム毎に読み書き対象のブロック位置を移動しながらB面に対するデータの読み書きが時刻t=31のタイミング(図5(d))まで繰り返される。また、第2のOS121側では、時刻t=24〜31の期間内に、A面に対するデータの読み書きが行われる。
Thereafter, at the timing of time t = 24 (FIG. 5C), the
第1のOS111側では、時刻t=31のタイミングにおいてB面のブロック[7]に対するデータの書き込みとB面のブロック[15]からのデータの読み出しが完了すると、メモリAPI133が用いられてフラグ領域flgのフラグの値が「1」に書き換えられる。このフラグの更新に応じて、管理OS131は第2のOS121に対し、データの読み書き対象をA面からB面に変更するように通知する。その後、図5(e)に示されるように、第1のOS111および第2のOS121によるデータの読み書きの対象面が再び変更され、時刻t=16〜31までと同様の処理が以降繰り返される。
On the
3.構成例
第1の仮想機械VM1と第2の仮想機械VM2とは1つの統合されたシステムとして機能させることができる。この場合、各種処理は要求される低レイテンシの程度に応じて、第1の仮想機械VM1で動作する第1のOS111と第2の仮想機械VM2で動作する第2のOS121との間で適宜分担して行われることが望ましい。例えば、マイクから入力した音響信号の周波数特性を調整してスピーカから出力する等、信号処理の結果を直ちにユーザにフィードバックする必要のある処理(即時性を要する処理)をリアルタイムOSである第1のOS111で実行し、マイクから入力した音響信号をオーディオデータファイルとして保存する等の即時性を要しない処理を汎用OSである第2のOS121で実行されるよう構成することが望ましい。以下にそのようなOS間の処理分担の構成例を示す。
3. Configuration Example The first virtual machine VM1 and the second virtual machine VM2 can function as one integrated system. In this case, various processes are appropriately shared between the
3−1.構成例1
図6は第1のOS111上で音響信号処理エンジン112がミキシング等の処理を施した音響信号を、第2のOS121上でオーディオ編集アプリケーション122が記録するように構成したコンピュータ装置1における音響信号の処理の流れを示した図である。
3-1. Configuration example 1
FIG. 6 shows the acoustic signal of the
図6において、外部機器(マイク等)から複数チャンネルの音響信号が同時にオーディオI/Oドライバ116に入力される(S101)と、オーディオI/Oドライバ116は入力された音響信号を音響信号処理エンジン112に供給する(S102)。
In FIG. 6, when audio signals of a plurality of channels are simultaneously input from an external device (such as a microphone) to the audio I / O driver 116 (S101), the audio I /
音響信号処理エンジン112は、供給された音響信号に対して周波数特性の調整やミキシング等の信号処理を施した後、仮想オーディオI/Oドライバ119に供給する(S103)。仮想オーディオI/Oドライバ119は供給された音響信号を出力する。仮想オーディオI/Oドライバ119から出力された音響信号は共有メモリ領域33を用いて構築された伝送路を介して仮想オーディオI/Oドライバ129に入力される(S104)。仮想オーディオI/Oドライバ129は入力された音響信号をオーディオ編集アプリケーション122に供給する(S105)。オーディオ編集アプリケーション122は供給された音響信号(すなわち第1の仮想機械VM1から伝送されてきた音響信号)をメモリ32Vに記録(すなわち録音)する。
The acoustic
3−2.構成例2
図7は、オーディオ編集アプリケーション122において再生された音響信号を音響信号処理エンジン112においてマイク等の外部機器から入力される音響信号とミキシング等した後、アンプ等の外部機器に出力するように構成したコンピュータ装置1における音響信号の処理の流れを示した図である。
3-2. Configuration example 2
FIG. 7 shows a configuration in which an acoustic signal reproduced by the
図7において、外部機器(マイク等)から音響信号がオーディオI/Oドライバ116に入力される(S201)。オーディオI/Oドライバ116は入力された音響信号を音響信号処理エンジン112に供給する(S202)。同時に、オーディオ編集アプリケーション122は、メモリ32Vに記憶されている音響信号を読み出して再生する。オーディオ編集アプリケーション122によって再生された音響信号は、仮想オーディオI/Oドライバ129に供給され(S301)、共有メモリ領域33を用いて構築された伝送路を介して仮想オーディオI/Oドライバ119に伝送され(S302)、音響信号処理エンジン112に供給される(S303)。
In FIG. 7, an acoustic signal is input from an external device (such as a microphone) to the audio I / O driver 116 (S201). The audio I /
音響信号処理エンジン112は、ステップS202においてオーディオI/Oドライバ116から供給される音響信号とステップS303において仮想オーディオI/Oドライバ119から供給される音響信号とをミキシングし、ミキシングした音響信号をオーディオI/Oドライバ116と仮想オーディオI/Oドライバ119とに供給する(S401)。オーディオI/Oドライバ116に供給された音響信号は外部機器(アンプ等)に出力される(S402)。一方、仮想オーディオI/Oドライバ119に供給された音響信号は、共有メモリ領域33を用いて構築された伝送路を介して仮想オーディオI/Oドライバ129に伝送され(S403)、オーディオ編集アプリケーション122に供給される(S404)。オーディオ編集アプリケーション122は、仮想オーディオI/Oドライバ129から供給される音響信号をメモリ32Vに記録(すなわち録音)する。
The acoustic
以上説明したように本実施形態では、コンピュータ装置上で各々独立して動作する複数のOSのうち少なくとも一方をリアルタイムOSとし、リアルタイムOS上で低レイテンシの保証が求められる音響信号処理が行われ、他のOSにおいて即時性が求められない音響信号処理やGUI処理等が行われる。その結果、DSP等のプロセッサを用いる場合と比較し低コストで低レイテンシが求められる音響信号処理が実現される。その際、OSおよびOS上で動作するアプリケーションは既存のものをそのまま用いることができるため、それらの開発コストも要しない。 As described above, in the present embodiment, at least one of a plurality of OSs that operate independently on a computer device is a real-time OS, and acoustic signal processing that requires guarantee of low latency is performed on the real-time OS. Acoustic signal processing, GUI processing, and the like that do not require immediateness in other OSs are performed. As a result, it is possible to realize acoustic signal processing that requires low latency and low latency compared to the case of using a processor such as a DSP. At that time, the OS and applications running on the OS can be used as they are, so that development costs are not required.
4.変形例
以上の実施形態は本発明の技術的思想の範囲内において様々に変形可能である。以下にそれらの変形の例を示す。尚、以下の変形例は適宜組み合わせられてもよい。
4). Modifications The above embodiment can be variously modified within the scope of the technical idea of the present invention. Examples of these modifications are shown below. The following modifications may be combined as appropriate.
上述の実施形態では、第1のOS111をリアルタイムOSとし、低レイテンシが求められる信号処理をリアルタイムOS上で実行される音響信号処理エンジン112にて行うものとしたが、リアルタイム用途に対応できる程度処理の応答速度が速いなど、音響信号処理に要求されるレイテンシが達成できる場合には、第1のOS111を第2のOS121と同様の汎用OSとしてもよい。
In the above-described embodiment, the
また、上述の実施形態では、第1のOS111と第2のOS121とに各々異なるプロセッサコアをアサインし、第1のOS111と第2のOS121とは、それぞれアサインされた異なるプロセッサコア上で実行される構成が採用されているが、第1のOS111と第2のOS121に対するプロセッサコアのアサインの方法はこれに限られない。例えば、管理OSが時分割等により同じプロセッサコアを第1のOS111と第2のOS121にアサインする構成が採用されてもよい。
Further, in the above-described embodiment, different processor cores are assigned to the
また、上述の実施形態では、管理OS131は第2の仮想機械VM2にアサインされたプロセッサコアやメモリ領域等のリソースを共用するものとしたが、管理OS131は汎用OS上で動作するハイパーバイザに限られず、コンピュータ装置1のハードウェア上で直接動作するハイパーバイザとして構成されてもよい。また、管理OS131が利用するリソースは第2のOS121が利用するリソースに限られず、第1のOS111が利用するリソースを管理OS131が共用する構成や、他のいずれのOSにも利用されていないリソースを管理OS131が専有する構成が採用されてもよい。あるいは、第1のOS111または第2のOS121のいずれかが管理OS131としての機能を具備するホストOSとして構成し、他方のOSをホストOSにより管理されるゲストOSとして構成してもよい。ただし、第1の仮想機械VM1はプロセッサコアの一部を専有する等、第1のOS111にて実行される音響信号処理の応答遅延の発生を防ぐことが望ましい。
In the above-described embodiment, the
また、上述の実施形態では、コンピュータ装置1において2つの仮想機械が実現される構成が採用されているが、実現される仮想機械の数は3以上であってもよい。従って、それらの仮想機械上で実行されるOSの数もまた、3以上であってもよい。この場合、共有メモリ領域を利用した仮想伝送路3を各仮想機械間それぞれに設けることが望ましい。また、ひとつの仮想機械上で複数のOSが動作してもよい。
In the above-described embodiment, a configuration in which two virtual machines are realized in the
また、上述の実施形態では、コンピュータ装置1のプロセッサ10はプロセッサコアを4つ備えるものとしたが、コンピュータ装置1のプロセッサが備えるプロセッサコアの数は限定されず、複数の仮想機械のそれぞれに1又は複数のプロセッサコアが割り当てられるものであればよい。
In the above-described embodiment, the
また、上述の実施形態では、第1の仮想機械VM1および第2の仮想機械VM2は、起動後常時、仮想化支援コンポーネント132の制御下にあることが想定されているが、仮想化処理が完了後は第1の仮想機械VM1および第2の仮想機械VM2の一方もしくは両方が、仮想化支援コンポーネント132を迂回して直接リソースにアクセスする構成が採用されてもよい。この場合、管理OS131の介入が無い分、一般的に処理速度が速くなる。
In the above-described embodiment, it is assumed that the first virtual machine VM1 and the second virtual machine VM2 are always under the control of the
また、上述の実施形態では、共有メモリ領域33上に確保された物理的に同一の伝送用バッファを第1のOS111および第2のOS121が共用する構成が採用されている。共有メモリ領域33を用いた伝送路の構築の方法はそれに限られない。例えば、管理OS131が共有メモリ領域33上に第1のOS111用のバッファと第2のOS121用のバッファを独立して確保し、管理OS131がそれらのバッファ間でデータをコピーすることによりOS間のデータの共有を実現する構成など、他の構成が採用されてもよい。
In the above-described embodiment, a configuration is adopted in which the
また、上述の実施形態では、伝送用バッファに対する第1のOS111および第2のOS121によるデータの読み書きの制御としては、第1のOS111により更新されるフラグを管理OS131が監視し、フラグの更新に応じて第2のOS121に対し通知を行う構成が採用されている。管理OS131による伝送用バッファの制御の方法はこれに限られず、例えば管理OS131が第1のOS111および第2のOS121の伝送用バッファに対するデータの読み書き位置を監視し、一方のOSにより所定の領域に対するデータの読み書きが完了すると、他方のOSに対しその領域に対するデータの読み書きを開始するように通知する方法、あるいは、管理OSを介さず、共有メモリ内に同期用のデータを配置し、第1のOS111および第2のOS121がそれぞれこの同期用のデータをポーリングすることでOS間の同期をとる方法など、他の方法が採用されてもよい。
In the above-described embodiment, as control of data reading / writing by the
また、上述の実施形態では、第1の仮想機械VM1においてはオーディオI/F40Vを発信源とするクロック信号が、また第2の仮想機械VM2においては仮想オーディオI/F332から供給されるクロック信号が処理の同期に利用される構成が採用されているが、各仮想機械がいずれのクロック信号を処理の同期に利用するかは任意に変更可能である。例えば、第1の仮想機械VM1がオーディオI/F40Vを介してデータの送受信を行う外部のオーディオ機器等から受け取るクロック信号を処理の同期に用いる構成が採用されてもよい。
In the above-described embodiment, the first virtual machine VM1 has a clock signal originating from the audio I /
また、上述の実施形態では、第1のOS111および第2のOS121に従い伝送用バッファに読み書きされるデータのサイズは各OSにおいて設定されている音響信号の処理単位であるフレームのサイズであるものとしたが、伝送用バッファに読み書きするデータのサイズはフレームのサイズと異なってもよい。例えば、第2のOS121に従い伝送用バッファに読み書きされるデータのサイズを、第1のOS111に従い伝送用バッファに読み書きされるデータのサイズ(第1のOS111におけるフレームサイズ)と同一にしてもよい。その場合、例えばメモリAPI134が、仮想オーディオI/Oドライバ129のバッファ(36864bit)から2msのクロック周期毎に4608bitずつデータを読み出し、伝送用バッファにそれらのデータを書き込むように構成すればよい。ただし、上述の実施形態のように第2のOS121が汎用OSである場合、ジッタの発生防止の観点からは、伝送用バッファへのデータの読み書きのサイズは大きい方が望ましい。
Further, in the above-described embodiment, the size of data read / written to / from the transmission buffer according to the
また、上述の実施形態では、第1の仮想機械VM1と第2の仮想機械VM2との間で双方向にデータを送受信する場合について説明したが、これに限らず、どちらか一方向のデータ伝送を行う構成であってもよい。例えば、仮想オーディオI/F331および332が、第1の仮想機械VM1から第2の仮想機械VM2へのデータ伝送のみを実現するものであってもよい。
In the above-described embodiment, a case has been described in which data is transmitted and received bidirectionally between the first virtual machine VM1 and the second virtual machine VM2. However, the present invention is not limited to this, and data transmission is performed in either direction. The structure which performs this may be sufficient. For example, the virtual audio I /
なお、本発明は、プログラム以外に、本発明にかかるプログラムに従いコンピュータが行う処理の方法や、本発明にかかるプログラムがコンピュータに読み取り可能に記録された記録媒体も提供する。また、本発明にかかるプログラムは、記録媒体に記録されてユーザに提供される以外に、インターネット等のネットワークを介して端末装置にダウンロードされることでユーザに提供されてもよい。また、本発明は、本発明にかかるプログラムに従って動作する音響信号処理装置も提供する。 In addition to the program, the present invention also provides a method of processing performed by the computer according to the program according to the present invention and a recording medium on which the program according to the present invention is recorded so as to be readable by the computer. In addition to being recorded on a recording medium and provided to the user, the program according to the present invention may be provided to the user by being downloaded to a terminal device via a network such as the Internet. The present invention also provides an acoustic signal processing apparatus that operates according to the program according to the present invention.
本発明にかかるプログラムに従って動作する音響信号処理装置は、第1のOS111、第2のOS121、管理OS131がEPROM等にユーザにより書き換え不可能に記憶され、装置の起動に伴いそれらのOSが起動して音響信号処理装置が構築される組み込みシステムとして構成されてもよい。また、この場合において、第1のOS111や第2のOS121上で実行されるアプリケーションプログラム(音響信号処理エンジン112、オーディオ編集アプリケーション122等)がEPROM等にユーザにより書き換え不可能に記憶されている構成が採用されてもよい。
In the acoustic signal processing device that operates according to the program according to the present invention, the
1…コンピュータ装置、2,3…伝送路、10…プロセッサ、20…メモリ、34…メモリ、40…オーディオI/F、50…その他のデバイス、60…バス、111…第1のOS、112…音響信号処理エンジン、116…オーディオI/Oドライバ、119…仮想オーディオI/Oドライバ、132…仮想化支援コンポーネント、131…管理OS、121…第2のOS、122…オーディオ編集アプリケーション、129…仮想オーディオI/Oドライバ、133…メモリAPI、134…メモリAPI、331…仮想オーディオI/F、332…仮想オーディオI/F。
DESCRIPTION OF
Claims (6)
前記リソースを用いて第1の仮想機械と第2の仮想機械を構築する仮想機械構築ステップと、
前記第1の仮想機械から音響信号を出力する第1のインタフェース、および、前記第2の仮想機械へ音響信号を入力する第2のインタフェースを構築するインタフェース構築ステップと、
前記第1の仮想機械において、前記第1のインタフェースに音響信号を出力する出力ステップと、
前記第1の仮想機械が前記第1のインタフェースに出力した音響信号を前記メモリに書き込む書込ステップと、
前記書き込まれた音響信号を前記メモリから読み出して前記第2のインタフェースへ出力する読出ステップと、
前記第2の仮想機械において、前記第2のインタフェースから音響信号を入力する入力ステップと
を備える音響信号処理方法。 An acoustic signal processing method performed by a computer having at least a processor and a memory as resources, wherein the processor
A virtual machine construction step of constructing a first virtual machine and a second virtual machine using the resource;
An interface construction step of constructing a first interface for outputting an acoustic signal from the first virtual machine, and a second interface for inputting the acoustic signal to the second virtual machine;
An output step of outputting an acoustic signal to the first interface in the first virtual machine;
Writing the acoustic signal output by the first virtual machine to the first interface into the memory;
A reading step of reading the written acoustic signal from the memory and outputting it to the second interface;
An acoustic signal processing method comprising: an input step of inputting an acoustic signal from the second interface in the second virtual machine.
前記プロセッサが、
前記第1の仮想機械において、前記オーディオインタフェースにて受信された音響信号を入力するステップと、
前記第1の仮想機械において、前記入力した音響信号に対する信号処理を実行するステップと、
を備え、
前記プロセッサは、前記出力ステップにおいて前記信号処理された音響信号を前記第1のインタフェースに出力し、前記入力ステップにおいて前記第2のインタフェースから前記信号処理された音響信号を入力する
請求項1に記載の音響信号処理方法。 The resource includes an audio interface for receiving an acoustic signal from an external device connected to the computer,
The processor is
Inputting an acoustic signal received at the audio interface in the first virtual machine;
Executing signal processing on the input acoustic signal in the first virtual machine;
With
2. The processor outputs the signal-processed acoustic signal to the first interface in the output step, and inputs the signal-processed acoustic signal from the second interface in the input step. 3. Acoustic signal processing method.
前記プロセッサは、前記仮想機械構築ステップにおいて、前記第1の仮想機械を前記リソースのうち第1のプロセッサコアと前記オーディオインタフェースとを用いて構築し、前記第2の仮想機械を前記リソースのうち第2のプロセッサコアを用いて構築する
請求項2に記載の音響信号処理方法。 The processor includes a plurality of processor cores;
In the virtual machine construction step, the processor constructs the first virtual machine using the first processor core and the audio interface among the resources, and configures the second virtual machine among the resources. The acoustic signal processing method according to claim 2, wherein the acoustic signal processing method is constructed using two processor cores.
前記第1の仮想機械から音響信号を出力する第1のインタフェース、および、前記第2の仮想機械へ音響信号を入力する第2のインタフェースを構築する手段と、
前記第1の仮想機械において、前記第1のインタフェースに音響信号を出力する手段と、
前記第1の仮想機械が前記第1のインタフェースに出力した音響信号を前記メモリに書き込む手段と、
前記書き込まれた音響信号を前記メモリから読み出して前記第2のインタフェースへ出力する手段と、
前記第2の仮想機械において、前記第2のインタフェースから音響信号を入力する手段と
を備えたことを特徴とする音響信号処理システム。 Means for constructing a first virtual machine and a second virtual machine using the resources of a computer having at least a processor and a memory as resources;
Means for constructing a first interface for outputting an acoustic signal from the first virtual machine, and a second interface for inputting the acoustic signal to the second virtual machine;
Means for outputting an acoustic signal to the first interface in the first virtual machine;
Means for writing to the memory an acoustic signal output by the first virtual machine to the first interface;
Means for reading the written acoustic signal from the memory and outputting it to the second interface;
An acoustic signal processing system, comprising: means for inputting an acoustic signal from the second interface in the second virtual machine.
前記第1の仮想機械において、前記オーディオインタフェースにて受信された音響信号を入力する手段と、
前記第1の仮想機械において、前記入力した音響信号に対する信号処理を実行する手段と、
を備え、
前記出力する手段は前記信号処理された音響信号を前記第1のインタフェースに出力し、前記入力する手段は前記第2のインタフェースから前記信号処理された音響信号を入力する
請求項4に記載の音響信号処理システム。 The resource includes an audio interface for receiving an acoustic signal from an external device connected to the computer,
Means for inputting an acoustic signal received at the audio interface in the first virtual machine;
Means for performing signal processing on the inputted acoustic signal in the first virtual machine;
With
The sound according to claim 4, wherein the output means outputs the signal processed acoustic signal to the first interface, and the input means inputs the signal processed acoustic signal from the second interface. Signal processing system.
前記仮想機械を構築する手段は、前記第1の仮想機械を前記リソースのうち第1のプロセッサコアと前記オーディオインタフェースとを用いて構築し、前記第2の仮想機械を前記リソースのうち第2のプロセッサコアを用いて構築する
請求項5に記載の音響信号処理システム。 The processor includes a plurality of processor cores;
The means for constructing the virtual machine constructs the first virtual machine by using the first processor core and the audio interface among the resources, and constructs the second virtual machine by using a second of the resources. The acoustic signal processing system according to claim 5, wherein the acoustic signal processing system is constructed using a processor core.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012168291A JP2014027595A (en) | 2012-07-30 | 2012-07-30 | Acoustic signal processing method and audio signal processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012168291A JP2014027595A (en) | 2012-07-30 | 2012-07-30 | Acoustic signal processing method and audio signal processing system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014027595A true JP2014027595A (en) | 2014-02-06 |
Family
ID=50200828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012168291A Pending JP2014027595A (en) | 2012-07-30 | 2012-07-30 | Acoustic signal processing method and audio signal processing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014027595A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017130809A (en) * | 2016-01-20 | 2017-07-27 | ティアック株式会社 | Control apparatus |
JP2018535468A (en) * | 2015-09-21 | 2018-11-29 | レインボー ロボティックスRainbow Robotics | GPOS-linked real-time robot control system and real-time device control system using the same |
KR102094707B1 (en) * | 2018-10-10 | 2020-03-30 | 임창수 | audio data processing apparatus by use of virtual channels and virtual drivers |
JP2020162175A (en) * | 2020-06-29 | 2020-10-01 | ティアック株式会社 | Control apparatus |
-
2012
- 2012-07-30 JP JP2012168291A patent/JP2014027595A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018535468A (en) * | 2015-09-21 | 2018-11-29 | レインボー ロボティックスRainbow Robotics | GPOS-linked real-time robot control system and real-time device control system using the same |
JP2017130809A (en) * | 2016-01-20 | 2017-07-27 | ティアック株式会社 | Control apparatus |
KR102094707B1 (en) * | 2018-10-10 | 2020-03-30 | 임창수 | audio data processing apparatus by use of virtual channels and virtual drivers |
JP2020162175A (en) * | 2020-06-29 | 2020-10-01 | ティアック株式会社 | Control apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8972984B2 (en) | Methods and systems for virtualizing audio hardware for one or more virtual machines | |
CN109739618B (en) | Virtual machine migration method and device | |
US9514507B2 (en) | Methods and systems for maintaining state in a virtual machine when disconnected from graphics hardware | |
US8533713B2 (en) | Efficent migration of virtual functions to enable high availability and resource rebalance | |
US10120705B2 (en) | Method for implementing GPU virtualization and related apparatus, and system | |
EP3627319B1 (en) | Display resource scheduling method and device for embedded system | |
US7454756B2 (en) | Method, apparatus and system for seamlessly sharing devices amongst virtual machines | |
US9135079B2 (en) | Dynamically assigning a portion of physical computing resource to logical partitions based on characteristics of executing logical partitions | |
US9063793B2 (en) | Virtual server and virtual machine management method for supporting zero client by providing host interfaces from classified resource pools through emulation or direct connection modes | |
WO2017124842A1 (en) | Method and device for taking screenshots | |
US8954993B2 (en) | Local message queue processing for co-located workers | |
US11561813B2 (en) | Server support for multiple audio/video operating systems | |
US20210224100A1 (en) | Virtual machine migration using multiple, synchronized streams of state data | |
US10659534B1 (en) | Memory sharing for buffered macro-pipelined data plane processing in multicore embedded systems | |
GB2525003A (en) | Data Processing Systems | |
CN109753346B (en) | Virtual machine live migration method and device | |
JP2014027595A (en) | Acoustic signal processing method and audio signal processing system | |
WO2019119315A1 (en) | Input processing method and apparatus based on multiple operating systems, and electronic device | |
WO2018205267A1 (en) | Input device implementation method and implementation apparatus thereof | |
WO2020220790A1 (en) | Data processing method, apparatus, and device | |
WO2023173516A1 (en) | Data exchange method and apparatus, and storage medium and electronic device | |
JP2014195178A (en) | Information processing device, transmission control method, and transmission control program | |
CN112218140A (en) | Video synchronous playing method, device, system and storage medium | |
US10789082B2 (en) | Execution of multiple operating systems without rebooting | |
US10241821B2 (en) | Interrupt generated random number generator states |