JP2009116881A - Data processing device and its method - Google Patents

Data processing device and its method Download PDF

Info

Publication number
JP2009116881A
JP2009116881A JP2008286048A JP2008286048A JP2009116881A JP 2009116881 A JP2009116881 A JP 2009116881A JP 2008286048 A JP2008286048 A JP 2008286048A JP 2008286048 A JP2008286048 A JP 2008286048A JP 2009116881 A JP2009116881 A JP 2009116881A
Authority
JP
Japan
Prior art keywords
data
processing
module
input
unit
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
Application number
JP2008286048A
Other languages
Japanese (ja)
Inventor
Moal Damien Le
ダミエン レモアル
Mika Mizutani
美加 水谷
Yoshiaki Morimoto
義章 森本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008286048A priority Critical patent/JP2009116881A/en
Publication of JP2009116881A publication Critical patent/JP2009116881A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a method for constructing and executing stream data processing to a series of processing points to improve portability. <P>SOLUTION: This method comprises connecting processing points called peer modules in data processing by link modules to set a stream data path, and scheduling in a single execution context to attain processing of high performance, and attaining these in layer configuration to achieve high portability and easiness in development. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、特定のオペレーティングシステム(OS)に依存せず、データを処理する方
法に関する。
The present invention relates to a method for processing data independent of a specific operating system (OS).

近年、コンピュータで取り扱われるマルチメディアデータとして、動画、及び音声等が
様々な用途で利用されている。例えば、テレビ放送等の動画をリアルタイムに動画コーデ
ックで変換してハードディスクに録画するハードディスクレコーダと呼ばれる機器や、D
VD等の光ディスクにデジタルデータとして記録されている動画コンテンツデータをビデ
オディスプレイ装置に表示するプレイヤーなどが広く普及している。一般にこれらのコン
テンツ処理では、コンテンツデータを指定されたビットレートで、一定時間内に処理を行
わなければならない。また、様々な装置でこれらのマルチメディアコンテンツを利用でき
るようにするためには、これらの複雑なストリーム処理を実行するプログラムモジュール
を容易に開発できることが重要となる。このため、高性能を実現しやすいOSのカーネル
の中でコンテンツ処理を行うプログラムを実行する方式が存在する。ストリームとは、予
め定められた順序で一方向に処理されることが必要なデータ列である。例えば、音声デー
タのデータ列や動画データのデータ列などがある。ストリーム処理はこれらのストリーム
に含まれるデータを処理することを指す。
In recent years, as multimedia data handled by computers, moving images, sounds, and the like have been used for various purposes. For example, a device called a hard disk recorder that converts a video such as a TV broadcast in real time using a video codec and records it on a hard disk,
Players that display moving image content data recorded as digital data on an optical disc such as a VD on a video display device are widely used. In general, in these contents processing, contents data must be processed within a predetermined time at a specified bit rate. Also, in order to be able to use these multimedia contents in various apparatuses, it is important that program modules that execute these complicated stream processes can be easily developed. For this reason, there is a method of executing a program for performing content processing in an OS kernel that easily realizes high performance. A stream is a data string that needs to be processed in one direction in a predetermined order. For example, there are a data string of audio data and a data string of moving image data. Stream processing refers to processing data included in these streams.

一般的なOSには、アプリケーションを実行するための空間であるユーザ空間と、OS
の機能を実行するための空間であるカーネル空間の2つが存在する。カーネル空間で処理
を行う場合は、高速な実行が可能となるが、カーネル空間で実行されるプログラムは、基
本的にそのカーネルが実装されているOSの仕様に大きく依存する。これは例えば、機能
を利用する際に利用するインタフェースがOS毎に異なることや、OSによって機能の利
用手順が異なることによる。これはデバイスを利用するためのデバイスドライバがプラッ
トホームに特有となり、流用できないということでも知られている。また、カーネル空間
での処理を実行する方法として、フィルタと呼ばれるデータを処理するデバイスドライバ
を複数連結することでコンテンツ処理を行う方法がある(例えば、特許文献1)。
A general OS includes a user space, which is a space for executing applications, and an OS.
There are two kernel spaces, which are spaces for executing the above functions. When processing is performed in the kernel space, high-speed execution is possible, but a program executed in the kernel space basically depends largely on the specification of the OS in which the kernel is mounted. This is because, for example, the interface used when the function is used is different for each OS, and the function use procedure is different depending on the OS. It is also known that the device driver for using the device is specific to the platform and cannot be used. As a method for executing processing in the kernel space, there is a method for performing content processing by connecting a plurality of device drivers that process data called filters (for example, Patent Document 1).

これは、ユーザ空間で実行されるアプリケーションプログラムからカーネル空間内にフ
ィルタと呼ばれるソフトウェアモジュールを生成し、複数のフィルタの入出力を接続して
コンテンツデータの流路を構築した後、アプリケーションプログラムから処理開始、停止
などを要求することで、コンテンツの処理を実行する方法である。ここで、フィルタやデ
バイスドライバはデバイスやデータ形式に特化されたモジュールで、それぞれが入出力や
制御のためのインタフェースを持っており、それぞれのフィルタが処理したデータを他の
フィルタに渡すことでデータを処理するものである。この方式は、全てのフィルタがOS
のカーネル部で動作するため高性能を実現できる。しかしながら、該方式では、複数のコ
ンテンツ処理を行った場合の優先処理が考慮されていない。例えば、複数のコンテンツを
処理において、録画と再生を同時に行う場合に、録画の優先度を高くしたいという要求が
発生することが考えられるが、これに対応することは困難である。
This is because a software module called a filter is generated in the kernel space from an application program executed in the user space, the input and output of multiple filters are connected to build a flow path for content data, and processing starts from the application program This is a method for executing content processing by requesting a stop or the like. Here, filters and device drivers are modules specialized for devices and data formats, and each has an interface for input / output and control, and the data processed by each filter is passed to other filters. Process data. In this method, all filters are OS
High performance can be realized because it operates in the kernel part of. However, in this method, priority processing when a plurality of content processes are performed is not considered. For example, when processing and playing back a plurality of contents at the same time, there may be a request for increasing the priority of recording, but it is difficult to cope with this.

特開平10−283195号公報JP-A-10-283195

先に述べたように、従来の方法ではストリームを取り扱うための実装を、性能を保証し
やすいドライバとしてOSのカーネル空間で実装するものがあった。これはOSやハード
ウェア構成(以下、本組み合わせをプラットホームと呼ぶ)への依存性が高く、プログラ
ムは異なったプラットホームに対応することができず、各プラットホームは、それぞれ固
有のコンテンツデータ処理方法を有することとなるため、コンテンツ処理をするプログラ
ムの開発はプラットホーム毎に行う必要が生じ、開発工程の増大を招くという第1の問題
があった。
As described above, in the conventional method, there has been an implementation for handling a stream in the OS kernel space as a driver whose performance is easily guaranteed. This is highly dependent on the OS and hardware configuration (hereinafter, this combination is referred to as a platform), the program cannot support different platforms, and each platform has its own content data processing method. Therefore, the development of a program for processing content has to be performed for each platform, and there has been a first problem that the development process is increased.

また特許文献1では、コンテンツ処理において管理機能が存在しないので、例えば複数
のコンテンツを同時に処理する場合、それぞれの処理の優先度を指定することが不可能で
あった。例えば、あるデバイスからデータを取得してストレージに記録する処理と、ある
デバイスからデータを取得してディスプレイに表示する処理の2つの処理を同時に行う場
合、例えば前者の処理を優先的に行いたい場合でも、これらの処理を統括して管理する機
能が存在しないので、双方の処理の優先順位を適切に変更することが困難という第2の問
題があった。
Further, in Patent Document 1, since there is no management function in content processing, for example, when processing a plurality of contents at the same time, it is impossible to specify the priority of each processing. For example, when performing two processes at the same time, acquiring data from a certain device and recording it in storage, and acquiring data from a certain device and displaying it on the display, for example, when you want to preferentially perform the former process However, since there is no function for managing and managing these processes, there is a second problem that it is difficult to appropriately change the priority of both processes.

さらに、上記の場合、複数のコンテンツ処理が独自の実装に基づいて処理を進めた場合
に、ハードウェア資源の適切な管理や割り振りがなされていないため、処理に必要なCP
Uリソースの不足が発生するという第3の問題点もあった。
Furthermore, in the above case, when multiple content processes proceed based on their own implementation, the hardware resources are not properly managed or allocated, so the CP required for the process
There was also a third problem that a shortage of U resources occurred.

本発明は、上記課題のうち少なくともひとつの課題を解決するものである。   The present invention solves at least one of the above problems.

上記第1の課題を解決すべく、本発明では、様々なプラットホームに対応可能なマルチ
メディアコンテンツ処理手段を提供する。
In order to solve the first problem, the present invention provides a multimedia content processing means capable of supporting various platforms.

本発明ではマルチメディアコンテンツの処理を、プラットホーム毎の差異を吸収して汎
用化したインタフェースを上位に提供するレイヤを備えることで、上位のソフトウェアモ
ジュールをプラットホームに依存しない構成を実現する。
In the present invention, by providing a layer for providing a generalized interface for processing multimedia contents by absorbing a difference for each platform, a configuration in which the upper software module does not depend on the platform is realized.

上記第2乃至第3の課題を解決すべく、本発明では、複数のストリーム処理を1つの実
行コンテキスト、例えば、プロセスやスレッドを用いて実行し、コンテンツ処理それぞれ
の処理に対してどれだけのリソースを割り当てるかを一元的に管理することで、処理の優
先処理やリソースの管理を実現する。
In order to solve the second to third problems, in the present invention, a plurality of stream processes are executed using one execution context, for example, a process or a thread, and how many resources are used for each process of the content process. By centrally managing whether to allocate resources, processing priority processing and resource management are realized.

本発明によれば、コンテンツデータを利用するプログラムを、異なったプラットホーム
で利用することが可能となる。また、複数のコンテンツ処理の実行を管理することが可能
となり、使用リソース量の低減を可能とする。
According to the present invention, a program that uses content data can be used on different platforms. In addition, the execution of a plurality of content processes can be managed, and the amount of used resources can be reduced.

以下に本発明の実施の形態について説明する。   Embodiments of the present invention will be described below.

図1を用いて、本発明における処理フローの概要を説明する。これは、動画コンテンツ
として、ディスク(101)から動画データを取得して、これをディスプレイ(171)
及びスピーカ(181)で再生する処理を示したものである。これらの処理はデバイス(
101)からデータを取得する処理ポイント(100)、音声データと映像データを分離
する処理ポイント(120)、映像を映像デコーダ(170)に出力する処理ポイント(
150)、及び音声を音声デコーダ(180)出力する処理ポイント(160)からなる
。処理ポイントとは、処理フローを実現するプログラム中において所定の処理を実行する
ために必要な部分である。この処理ポイントにおいて処理を実行するソフトウェアモジュ
ールを、ピアモジュールと呼ぶ。ピアモジュールの詳細な構成については図16を用いて
後述する。さらに、リンクモジュールは、これらピアモジュールを相互に接続し、例えば
、リンクモジュール(110)はピアモジュール(100)とピアモジュール(120)
を接続する。リンクモジュールは接続されたピアモジュールの一方から、もう一方へデー
タを送出する機能を持つ。これにより、ピアモジュール(100)が取得したデータがリ
ンクモジュール、や他のピアモジュールを通じて、映像デコーダ(170)と、音声デコ
ーダ(180)に送られることで、映像がディスプレイ(171)に表示され、音声がス
ピーカ(180)から再生される。
The outline of the processing flow in the present invention will be described with reference to FIG. This obtains moving image data from the disc (101) as moving image content, and displays it on the display (171).
And a process of reproducing by the speaker (181). These processes are handled by the device (
101), a processing point (100) for obtaining data, a processing point (120) for separating audio data and video data, and a processing point for outputting video to the video decoder (170) (
150) and a processing point (160) for outputting the audio to the audio decoder (180). A processing point is a part necessary for executing a predetermined process in a program for realizing a processing flow. A software module that executes processing at this processing point is called a peer module. A detailed configuration of the peer module will be described later with reference to FIG. Further, the link module connects these peer modules to each other, for example, the link module (110) is a peer module (100) and a peer module (120).
Connect. The link module has a function of transmitting data from one connected peer module to the other. As a result, the data acquired by the peer module (100) is sent to the video decoder (170) and the audio decoder (180) through the link module and other peer modules, so that the video is displayed on the display (171). Sound is reproduced from the speaker (180).

図2は、本実施例におけるソフトウェア構成を示した図である。本構成(210)では
、ピアモジュールを相互に連結させたストリーム処理の制御をするストリームマネジャ(
230)、データの変換等を行うデータ処理モジュール(241)を管理するデータ処理
モジュールマネジャ(230)を備える。ストリームマネジャは、ピアモジュールを管理
、操作するピアモジュールマネジャ(231)と、実行スケジュールに従ってピアモジュ
ールの処理を実行するために用いるピアモジュールスケジューラ(233)、および、ピ
アモジュールを相互に接続するためのリンクモジュールを記録管理するリンクモジュール
マネージャ(232)から構成される。
FIG. 2 is a diagram showing a software configuration in the present embodiment. In this configuration (210), a stream manager (for controlling stream processing in which peer modules are connected to each other)
230), and a data processing module manager (230) for managing the data processing module (241) for performing data conversion and the like. The stream manager manages the peer module and manages the peer module (231), the peer module scheduler (233) used to execute the processing of the peer module according to the execution schedule, and the peer module It is composed of a link module manager (232) for recording and managing link modules.

さらに、OSが持つ機能を利用するためにOSが提供するシステムインタフェース(2
80)を介してメモリ管理、スレッド管理、及び時間操作などのリソース管理機能を利用
するための汎用システムインタフェース(260)、デバイスへのアクセスを行いデータ
の取得やデバイスの制御を行うデータアクセスモジュール(271)を管理するデータア
クセスモジュールマネジャ(270)を備えている。
Further, a system interface (2) provided by the OS to use the functions of the OS.
80), a general-purpose system interface (260) for using resource management functions such as memory management, thread management, and time operation, and a data access module (access to the device to acquire data and control the device) 271), a data access module manager (270) is provided.

アプリケーション(200)は、制御インタフェース(240)を用いてストリームマ
ネジャおよびデータ処理モジュールマネジャを制御し、所望のストリーム処理を指示可能
である。指示可能な制御については図5を用いて後述する。
The application (200) can control the stream manager and the data processing module manager using the control interface (240), and can instruct a desired stream processing. Control that can be instructed will be described later with reference to FIG.

上記汎用システムインタフェース(260)およびデータアクセスモジュールマネジャ
(270)を含むレイヤによってインタフェースレイヤ(250)が形成される。このイ
ンタフェースレイヤはOSが提供するシステムインタフェース(280)で提供される機
能を、汎用化されたインタフェースで上位のレイヤに提供する。この汎用化されたインタ
フェースは、プラットフォームの差異から生じるプロトコルや命令方式の差異を共通化し
て上位レイヤに提供するものであり、例えば、ネットワーク通信を行う際に利用するソケ
ットインターフェイスが存在する。このインタフェースによって実行される機能はプラッ
トフォームが異なっても同じであるが、これを利用するための手順がプラットホーム毎に
異なる。例えば、Linuxを含む一般的なUnix(登録商標)ではTCPで通信するソケットを作
成する際には、socket関数、bind関数、listen関数、そしてaccept関数を順番に実行すれ
ばよい。一方Windows(登録商標)では、別の仕様に準じた、Linuxとは違った手順が必要
である。これらを、従来のようにアプリケーションプログラム側の処理で対応すると、使
用するプラットホーム毎にプラットホームで手順の異なる処理を全て変更する必要が生じ
する。そこで、汎用インタフェースでは、例えばサーバソケットを指定したポートで作成
するという処理を行うための汎用関数としてmakeServerTCPsockのような汎用化されたイ
ンタフェースを提供する。例えば、Linux用の汎用システムインタフェースでは、このmak
eServerTCPsock関数では前述したLinuxでの手順で処理を実行するようにする。一方Windo
ws版の汎用システムインタフェースでは、Windowsでの手順で処理を実行するようにする
。次に、本願のソフトウェアモジュールをLinuxで利用する場合はLinux用の汎用システム
インタフェースを使い、Windowsで利用する場合はWindows用の汎用システムインタフェー
スを使用する。次に、アプリケーションプログラムでは、ソケットを作成する場合には、
makeServerTCPSockを呼び出せば、該汎用システムインタフェースが、そのプラットホー
ムに応じた手続を実行するので、アプリケーションをプラットホーム毎に変更する必要が
無くなる。このような方法により、プラットホームが提供する機能やデバイスへのアクセ
ス方法を汎用化することが可能になる。このように、異なるプラットホームに図2のソフ
トウェアモジュールを移行した場合、レイヤ(250)に含まれるソフトウェアモジュー
ルのうち、プラットホームによって異なる機能や、利用手順などを利用する部分は前述し
たように処理方法の変更が必要だが、これより上位のレイヤ、つまり制御インタフェース
(220)、データ処理モジュールマネージャ(240)、ストリームマネージャ(23
0)及びアプリケーション(200)はプログラムの処理を変更すること無く他のOS上
に移行することが可能となる。
図16、図17、および図18を用いて、図1で説明した処理を、図2の構成でどのよう
にして実現するかを説明する。
An interface layer (250) is formed by the layer including the general-purpose system interface (260) and the data access module manager (270). This interface layer provides functions provided by the system interface (280) provided by the OS to a higher layer using a generalized interface. This generalized interface is used to share a difference in protocol and instruction method resulting from a difference in platform and provide it to an upper layer. For example, there is a socket interface used for network communication. The functions executed by this interface are the same regardless of the platform, but the procedure for using this is different for each platform. For example, when a general Unix (registered trademark) including Linux is used to create a socket communicating with TCP, a socket function, a bind function, a listen function, and an accept function may be executed in order. On the other hand, Windows (registered trademark) requires different procedures according to different specifications. If these are handled by processing on the application program side as in the prior art, it is necessary to change all the processing with different procedures on the platform for each platform to be used. Therefore, in the general-purpose interface, for example, a generalized interface such as makeServerTCPsock is provided as a general-purpose function for performing processing for creating a server socket at a specified port. For example, in the general-purpose system interface for Linux, this mak
In the eServerTCPsock function, the process is executed according to the Linux procedure described above. Meanwhile Windo
In the ws version of the general-purpose system interface, the process is executed in the Windows procedure. Next, the general-purpose system interface for Linux is used when the software module of the present application is used in Linux, and the general-purpose system interface for Windows is used when used in Windows. Next, in the application program, when creating a socket,
When makeServerTCPSock is called, the general-purpose system interface executes a procedure corresponding to the platform, so that it is not necessary to change the application for each platform. Such a method makes it possible to generalize functions provided by the platform and access methods to devices. As described above, when the software module of FIG. 2 is migrated to a different platform, a part of the software module included in the layer (250) that uses a function or a usage procedure that differs depending on the platform is as described above. Changes are required, but higher layers, ie, control interface (220), data processing module manager (240), stream manager (23
0) and the application (200) can be migrated to another OS without changing the processing of the program.
16, FIG. 17, and FIG. 18 will be used to explain how the processing described in FIG. 1 is realized with the configuration in FIG.

図18は、ストリーム処理の構成を記録するテーブル(2000)を示したもので、ス
トリームマネージャによって管理される。該テーブルの1つの行が1つのストリーム処理
に該当する。ストリーム処理は、ストリーム処理ID(2001)、これを構成するピア
モジュールのピアモジュールID(2002)、これを構成するリンクモジュールのリン
クモジュールID(2003)、および、ストリーム処理の状態(2004)からなる。
FIG. 18 shows a table (2000) for recording the stream processing configuration, which is managed by the stream manager. One row of the table corresponds to one stream process. The stream process includes a stream process ID (2001), a peer module ID (2002) of a peer module constituting the stream process, a link module ID (2003) of a link module constituting the stream process, and a state (2004) of the stream process. .

図16は、ピアモジュールの構成を記録するテーブル(1800)を示したもので、ピ
アモジュールマネージャによって管理される。該テーブルの1つの行が1つのピアモジュ
ールに該当する。一つのピアモジュールは、ピアモジュールID(1801)、ストリー
ム処理ID(1802)、データ処理モジュールID(1803)、データアクセスモジ
ュールID(1804)、入力リンクモジュールID(1805)、出力リンクモジュー
ルID(1806)、実行待ちデータオブジェクト行列(1807)、及び、後処理待ち
データオブジェクト行列(1808)からなる。実行待ちデータオブジェクト行列(18
07)および、後処理待ちデータオブジェクト行列(1808)はデータを、入出力可能
な行列であり、配列、キュー、ハッシュテーブルあるいはリスト等で実装される。図には
行列がそのテーブル内に存在するか否かを示す例について記載したが、ピアモジュールマ
ネージャ内に行列が存在する場合、その存在するアドレスを列(1807)、(1808
)で記録してもよい。リンクモジュールIDの−1という値は、ピアモジュール(100
)にリンクモジュールが接続されていないことを示す。
FIG. 16 shows a table (1800) for recording the configuration of the peer module, which is managed by the peer module manager. One row of the table corresponds to one peer module. One peer module includes a peer module ID (1801), a stream processing ID (1802), a data processing module ID (1803), a data access module ID (1804), an input link module ID (1805), and an output link module ID (1806). ), An execution waiting data object matrix (1807), and a post-processing waiting data object matrix (1808). Execution pending data object matrix (18
07) and a post-processing waiting data object matrix (1808) are matrices in which data can be input and output, and are implemented as arrays, queues, hash tables, lists, or the like. Although the figure shows an example showing whether or not a matrix exists in the table, when a matrix exists in the peer module manager, the existing addresses are indicated in columns (1807) and (1808).
) May be recorded. A value of −1 in the link module ID indicates the peer module (100
) Indicates that the link module is not connected.

図17は、リンクモジュールの構成を記録するテーブル(1900)を示したもので、
リンクモジュールマネージャによって管理される。該テーブルの1つの行が1つのリンク
モジュールに該当する。1つのリンクモジュールは、リンクモジュールID(1901)
、ストリーム処理ID(1902)、始点ピアモジュールID(1903)、終点ピアモ
ジュールID(1904)及びバッファ行列(1905)からなる。バッファ行列(19
05)はデータを、入出力可能な行列であり、配列、キュー、ハッシュテーブルあるいは
リスト等で実装される。図には行列がそのテーブル内に存在するか否かを示す例について
記載したが、リンクモジュールマネージャ内に行列が存在する場合、その存在するアドレ
スを列(1905)に記録してもよい。
FIG. 17 shows a table (1900) for recording the configuration of the link module.
Managed by the link module manager. One row of the table corresponds to one link module. One link module has a link module ID (1901).
, Stream processing ID (1902), start point peer module ID (1903), end point peer module ID (1904), and buffer matrix (1905). Buffer matrix (19
05) is a matrix that can input and output data, and is implemented as an array, a queue, a hash table, or a list. Although an example showing whether or not a matrix exists in the table is shown in the figure, when a matrix exists in the link module manager, the existing address may be recorded in a column (1905).

図3には、本実施例を実施するために用いられるハードウェア構成が示されている。C
PU(300)、RAM(310)あるいはROM(320)等のメモリ、クロック(3
30)、HDD等のディスク装置(350)、コンテンツデータの放送を受信するためのチ
ューナ(360)、マルチメディアデータを符号化/復号化するためのマルチメディアコ
ーデックプロセッサ(370)、およびスピーカ内蔵のテレビ受信機等のディスプレイ(
380)がシステムバス(340)により接続されている。なお、図2におけるソフトウ
ェアモジュールは、メモリにロードされCPUで実行される。また、本ハードウェア構成
は、例えば、HDDレコーダ、DVDレコーダ、PC、あるいは監視カメラ等で用いられ
る。
FIG. 3 shows a hardware configuration used to implement this embodiment. C
Memory such as PU (300), RAM (310) or ROM (320), clock (3
30), a disk device (350) such as an HDD, a tuner (360) for receiving a broadcast of content data, a multimedia codec processor (370) for encoding / decoding multimedia data, and a built-in speaker TV receiver display (
380) are connected by a system bus (340). 2 is loaded into the memory and executed by the CPU. Further, this hardware configuration is used in, for example, an HDD recorder, a DVD recorder, a PC, or a surveillance camera.

図5に、本実施例のアプリケーションがストリームマネージャ(230)へ指示を出す
ために、制御インタフェースに発行する命令の例を示した。図5にはストリームマネージ
ャ(230)への命令種別(501)とそのパラメタ(502)と戻り値(503)が定
義されている。これらの制御インタフェースは、例えば本実施例がCやC++等のプログ
ラミング言語で開発された場合は関数やモジュールとして実現されるものである。
FIG. 5 shows an example of commands issued to the control interface in order for the application of this embodiment to issue an instruction to the stream manager (230). FIG. 5 defines an instruction type (501) to the stream manager (230), its parameters (502), and a return value (503). These control interfaces are realized as functions or modules when the present embodiment is developed in a programming language such as C or C ++.

なお、上記データアクセスモジュールID、データ処理モジュールID、図5で規定し
命令を用いてデータ処理フローを生成し、処理を開始することが可能である。詳細につい
ては、図7を用いて後述する。
Note that it is possible to generate a data processing flow using the data access module ID, the data processing module ID, and the instructions specified in FIG. 5 and start the processing. Details will be described later with reference to FIG.

図5を用い、データの処理フローを作成、制御する命令について説明する。例えば、ス
トリーム処理生成命令(500)を実行するとストリーム処理が生成する。具体的には、
一意なストリーム処理IDが割り当てられて、図18(2000)の使用されていない1
つの行に、ストリーム処理IDが記録され、ストリーム処理が生成する。その値が戻り値
として返される。ここでは1が、アプリケーションに返されたとする。
Instructions for creating and controlling a data processing flow will be described with reference to FIG. For example, when a stream process generation command (500) is executed, a stream process is generated. In particular,
A unique stream processing ID is assigned and unused 1 in FIG. 18 (2000).
The stream processing ID is recorded in one row, and the stream processing generates. That value is returned as the return value. Here, it is assumed that 1 is returned to the application.

次に、アプリケーションは、このストリーム処理IDを用いて、ピアモジュール生成命
令(520)を実行すると、ピアモジュールを生成する。具体的には、新たに一意なピア
モジュールIDを生成し、図16(1800)の使用されていない1つの行に、ピアモジ
ュールIDが記録され、パラメタとして渡されたストリーム処理IDを記録し、テーブル
(2000)にパラメタとして指定されたストリーム処理IDに該当するストリーム処理
のピアモジュールID(2002)の欄にピアモジュールIDを記録することでピアモジ
ュールを生成する。割り当てられたピアモジュールIDは戻り値としてアプリケーション
に返される。ここでは100が返されたとする。
Next, when the application executes the peer module generation instruction (520) using the stream processing ID, the application generates a peer module. Specifically, a new unique peer module ID is generated, the peer module ID is recorded in one unused line in FIG. 16 (1800), and the stream processing ID passed as a parameter is recorded. A peer module is generated by recording the peer module ID in the field of the peer module ID (2002) of the stream process corresponding to the stream process ID specified as a parameter in the table (2000). The assigned peer module ID is returned to the application as a return value. Here, it is assumed that 100 is returned.

次いで、同様にして(図16の1820で示される)別のピアモジュール(120)を
生成する。該ピアモジュールのモジュールIDは120とする。次に、リンクモジュール
生成命令(540)を用いることで、これらのピアモジュールをリンクモジュールで結合
する。具体的には、新たに一意なリンクモジュールIDが割り当てられて、図17(19
00)の使用していない1つの行にリンクモジュールIDを記録し、始点ピアモジュール
ID、および終点ピアモジュールIDとしては、パラメタとして渡された値がそれぞれ記
録される。例ではそれぞれ、100と120である。次に、表(1800)のピアモジュ
ールIDが100である行(1810)の出力リンクモジュールIDに110を、次にピ
アモジュールIDが120である行(1820)の入力リンクモジュールIDに110を
記録する。次に、表(2000)のストリーム処理IDが1である行(2010)のリン
クモジュールID(2003)にリンクモジュールIDを登録する。これらの処理により
、ピアモジュール間を結合するためのリンクモジュールの生成と設定が終了する。
Then, another peer module (120) (shown at 1820 in FIG. 16) is created in a similar manner. The module ID of the peer module is 120. Next, by using a link module generation instruction (540), these peer modules are coupled by the link module. Specifically, a new unique link module ID is assigned, and FIG.
00) is recorded in one unused line, and the values passed as parameters are recorded as the start point peer module ID and the end point peer module ID, respectively. In the example, they are 100 and 120, respectively. Next, in the table (1800), 110 is recorded in the output link module ID of the row (1810) where the peer module ID is 100, and then 110 is recorded in the input link module ID of the row (1820) where the peer module ID is 120. To do. Next, the link module ID is registered in the link module ID (2003) in the row (2010) where the stream processing ID is 1 in the table (2000). With these processes, generation and setting of the link module for coupling the peer modules are completed.

次に、ピアモジュールでどのような処理を行うかを、データ処理モジュール制御命令(
560)と、データアクセス制御命令(570)を用いて設定する。データ処理モジュー
ル制御命令(560)のパラメタ中のデータ処理モジュールIDの詳細については図14
を用いて、データアクセスモジュール制御命令のパラメタ中のデータアクセスモジュール
IDについては図13を用いて後述する。例えば、ピアモジュールIDが100のピアモ
ジュールに対して、データアクセスモジュールIDが1の処理を割り当てる場合は、デー
タアクセスモジュール制御命令(570)を用いる。これにより、表(1800)のピア
モジュールIDが100の行のデータアクセスモジュールID(1804)にデータアク
セスモジュールIDの1が記録される。データ処理モジュールに関しても同様に、データ
処理モジュール制御命令(560)を利用して設定する。データ処理モジュールと、デー
タアクセスモジュールの詳細については図4で後述する。
Next, the data processing module control instruction (
560) and a data access control instruction (570). For details of the data processing module ID in the parameter of the data processing module control instruction (560), refer to FIG.
The data access module ID in the parameter of the data access module control instruction will be described later with reference to FIG. For example, when a process with a data access module ID of 1 is assigned to a peer module with a peer module ID of 100, a data access module control instruction (570) is used. As a result, the data access module ID 1 is recorded in the data access module ID (1804) in the row where the peer module ID is 100 in the table (1800). Similarly, the data processing module is set using the data processing module control instruction (560). Details of the data processing module and the data access module will be described later with reference to FIG.

さらに、580のデータ処理制御コマンド命令を用いた場合、パラメタ中の「コマンド
」を使用してデータ処理モジュールの制御や設定を行うことが可能である。例えば、ネッ
トワークの処理を行うデータ処理モジュールの場合、「パケットサイズ設定コマンド」を
使って、データ処理モジュールにおけるパケットサイズを変更処理の設定可能である。ま
た、データアクセスモジュール制御命令(570)は、例えばファイルからデータを読み
出す場合はそのファイル名を指定したり、ネットワークからデータを入出力する場合はポ
ート番号を指定する際にも使用できる。
Further, when 580 data processing control command instructions are used, it is possible to control and set the data processing module using the “command” in the parameter. For example, in the case of a data processing module that performs network processing, the packet size in the data processing module can be set for changing processing using a “packet size setting command”. The data access module control command (570) can also be used to specify a file name when reading data from a file, for example, and to specify a port number when inputting and outputting data from a network.

データ処理の実行は、開始コマンドや停止コマンドを発行するデータ処理コマンド命令
(580)を用いて制御され、ストリーム処理に関係づけられた各ピアモジュールのスケ
ジューリングを制御することができる。これは、ストリーム処理がテーブル(2000)
にストリーム処理に関係する、リンクモジュールとピアモジュールが登録されているので
、ストリーム処理IDを指定すれば、関係するリンクモジュールとピアモジュールの全て
の設定や動作を変更することが可能である。
The execution of data processing is controlled using a data processing command instruction (580) that issues a start command and a stop command, and can control the scheduling of each peer module related to the stream processing. This is because the stream processing table (2000)
Since the link module and the peer module related to the stream processing are registered, if the stream processing ID is designated, it is possible to change all the settings and operations of the related link module and the peer module.

アプリケーションはイベント管理命令(590)を介してデータ処理モジュール(40
1)と通信することができ、エラーなどのイベントを渡したり、データ処理を終了させた
りすることができる。データ処理は、ストリーム処理破棄命令(510)によって破棄、
終了したり、ピアモジュール破棄命令もしくはリンクモジュール破棄命令(530、55
0)をそれぞれ使って選択的に破棄することもできる。この場合の破棄とは登録されてい
るテーブルの内容を消去が該当する。
The application receives the data processing module (40) via the event management command (590).
1), an event such as an error can be passed, and data processing can be terminated. Data processing is discarded by a stream processing discard instruction (510).
Or a peer module discard instruction or a link module discard instruction (530, 55).
0) can be selectively discarded. Deletion in this case corresponds to deletion of the contents of the registered table.

図13にデータアクセスモジュールIDとそのデータアクセスモジュールの対応を管理
するテーブル(1300)を示した。該テーブルはデータアクセスモジュールマネージャ
(270)内に存在する。該テーブル(1300)にはデータアクセスモジュールID(
1301)と、これに対応する入出力実行処理部へのアドレス(1302)と、入出力完
了処理部へのアドレス(1303)、及びその機能概要の記述(1304、1305)が
記録されている。図に示した例では、データアクセスモジュールIDが1の場合は(13
10)、0xF98000000番地に存在する「ハードディスクへのデータ読込要求発
行」する機能を有する入出力実行処理部と、0xF9808000番地に存在する「ハー
ドディスクからのデータの取得」する機能を有する入出力完了処理部が記録されている。
FIG. 13 shows a table (1300) for managing the correspondence between the data access module ID and the data access module. The table exists in the data access module manager (270). The table (1300) has a data access module ID (
1301), the corresponding address (1302) to the input / output execution processing unit, the address (1303) to the input / output completion processing unit, and the description of the function outline (1304, 1305). In the example shown in the figure, when the data access module ID is 1, (13
10), an I / O execution processing unit having a function of “data read request issuance to hard disk” existing at address 0xF98000000, and an I / O completion processing unit having a function of “acquiring data from hard disk” existing at address 0xF9808000 Is recorded.

データアクセスモジュールIDとそのモジュールが実際に行う処理の対応については、
例えば、マニュアル等に記載されており、使用者は必要な機能を実現するデータアクセス
モジュールIDを得る。あるいは、機能の欄(1304、1305)に記述されている内
容から必要なものを選択する。
About correspondence of data access module ID and processing that module actually performs,
For example, it is described in a manual or the like, and the user obtains a data access module ID that realizes a necessary function. Alternatively, a necessary item is selected from the contents described in the function column (1304, 1305).

図14にはデータ処理モジュールIDとそのデータ処理モジュールの対応を管理するテ
ーブルを示した。該テーブルはデータ処理モジュールマネージャ(240)内に存在する
。該テーブル(1500)にはデータ処理モジュールID(1501)と、これに対応す
る前処理部へのアドレス(1502)と、後処理部へのアドレス(1503)、及びそれ
ら機能の記述が記録されている。図に示した例では、データ処理モジュールIDが100
の場合は(1510)、0xFA8000000番地に存在する「指定されたファイルの
読込を指示。次のスケジューリング時間を指定」する機能を有する前処理部と、0xFA
808000番地に存在する「取得したデータを出力リンクに出力」する機能を有する後
処理部が記録されている。データ処理モジュールIDとそのモジュールが実際に行う処理
の対応については、例えばマニュアルに記載されており、使用者は必要な機能を実現する
データ処理モジュールIDを得る。あるいは、機能の欄(1504、1505)に記述さ
れている内容から必要なものを選択する。
FIG. 14 shows a table for managing the correspondence between the data processing module ID and the data processing module. The table exists in the data processing module manager (240). In this table (1500), a data processing module ID (1501), a corresponding address (1502) to the pre-processing unit, an address (1503) to the post-processing unit, and a description of these functions are recorded. Yes. In the example shown in the figure, the data processing module ID is 100.
In the case of (1510), a pre-processing unit having a function of “instructing reading of a specified file. Specify next scheduling time” existing at address 0xFA8000000, and 0xFA
A post-processing unit having a function of “outputting acquired data to an output link” existing at address 808000 is recorded. The correspondence between the data processing module ID and the processing actually performed by the module is described in a manual, for example, and the user obtains a data processing module ID that realizes a necessary function. Alternatively, a necessary item is selected from the contents described in the function column (1504, 1505).

図15に、図1で示したデータ処理を行うために、アプリケーションが図5で示した命
令を利用して、ピアモジュールとリンクモジュールを結合しデータ処理プログラムを構築
する手順を示した。
FIG. 15 shows a procedure in which the application uses the instructions shown in FIG. 5 to combine the peer module and the link module to construct a data processing program in order to perform the data processing shown in FIG.

最初に、アプリケーションはストリーム処理生成命令(500)を利用してデータ処理
フローを生成し(ステップ1500)、ストリーム処理IDを得る。
First, the application generates a data processing flow using the stream processing generation instruction (500) (step 1500), and obtains a stream processing ID.

次に、該ストリーム処理IDを使用して、ファイル読出しピアモジュールを、ピアモジ
ュール生成命令(520)を利用して生成し、ピアモジュールIDを得る。次にファイル
読み出しピアモジュールにデータ処理モジュールをデータ処理モジュール制御命令(56
0)にデータ処理モジュールIDを用いて割り当て(ステップ1511)、データアクセ
スモジュールをデータアクセスモジュール制御命令(570)にデータアクセスモジュー
ルIDを用いて割り当てる(ステップ1512)。同様に、マルチプレクサピアモジュー
ルを作成し(ステップ1520)、データ処理モジュールを割り当てる(ステップ152
1)。以下、同様にして、映像ピアモジュールを作成し(ステップ1530)、データ処
理モジュールと、データアクセスモジュールの割当を行い(ステップ1531,1532
)、音声ピアモジュールを作成し(ステップ1540)、データ処理モジュールと、デー
タアクセスモジュールを割り当てる(ステップ1541,1542)。次に、ファイル読
み出しピアモジュールからマルチプレクサピアモジュールを接続するリンクモジュールを
リンクモジュール生成命令(540)を使用して作成し(ステップ1550)リンクモジ
ュールIDを得、同様にマルチプレクサピアモジュールから映像ピアモジュールを接続す
るリンクモジュール、音声ピアを接続するリンクモジュールを作成する(ステップ156
0,1570)。このようにアプリケーションから処理することで、使用するピアモジュ
ールが相互に関係づけられ、処理に使用するデータ処理モジュールとデータアクセスモジ
ュールが割り当てられる。
Next, using the stream processing ID, a file read peer module is generated using a peer module generation instruction (520) to obtain a peer module ID. Next, the data processing module control instruction (56
0) using the data processing module ID (step 1511), and assigning the data access module to the data access module control command (570) using the data access module ID (step 1512). Similarly, a multiplexer peer module is created (step 1520) and a data processing module is assigned (step 152).
1). Thereafter, similarly, a video peer module is created (step 1530), and a data processing module and a data access module are allocated (steps 1531 and 1532).
The voice peer module is created (step 1540), and the data processing module and the data access module are allocated (steps 1541 and 1542). Next, a link module connecting the multiplexer peer module from the file read peer module is created using the link module generation instruction (540) (step 1550) to obtain the link module ID, and the video peer module is similarly obtained from the multiplexer peer module. A link module to be connected and a link module to connect a voice peer are created (step 156).
0, 1570). By processing from the application in this way, peer modules to be used are related to each other, and a data processing module and a data access module to be used for processing are assigned.

このように、ピアモジュール、リンクモジュール等の生成、設定は、アプリケーション
が制御命令を経由して行う。アプリケーションから実行される命令に基づき、必要なピア
モジュールを生成し、リンクモジュールを用いてこれらのピアモジュールを接続してデー
タ処理フローを作成した上で、ビットレートなどの処理に必要な情報、処理に必要なデー
タアクセスモジュール及びデータ処理モジュールをピアモジュールに設定し、データ処理
の開始を指示することで、所定の処理を実行することが可能となる。
As described above, the generation and setting of the peer module, the link module, and the like are performed by the application via the control command. Generate necessary peer modules based on instructions executed from the application, connect these peer modules using a link module and create a data processing flow, then information and processing necessary for processing such as bit rate By setting the data access module and data processing module necessary for the peer module and instructing the start of data processing, it is possible to execute predetermined processing.

このような機能が提供されることで、ストリーム処理を行うアプリケーションの記述は
大幅に削減される。なぜなら、ストリーム処理は定められたビットレートでデータを処理
することが重要なリアルタイム性が高い処理であるため、そのような処理を実現するプロ
グラムの開発はプラットホームが提供する機能例えば時間管理等を使い、CPU時間を一
部の処理が占有し処理の流れが滞らないようにする等の高度なスケジューリング技術が必
要となるが、本実施例の手法を用いれば、スケジューリングはストリームマネージャが行
うため、ストリームマネージャを利用するアプリケーションは、ピアモジュールの生成と
、リンクモジュールを関係づけ、必要なデータアクセスモジュールとデータ処理モジュー
ルを作成し、これをピアモジュールに関係づければよく、上記のスケジューリング機能に
ついては実装する必要が無いからである。
By providing such a function, the description of an application that performs stream processing is greatly reduced. Because stream processing is highly real-time processing where it is important to process data at a specified bit rate, development of programs that realize such processing uses functions provided by the platform, such as time management. However, advanced scheduling technology is required such that a part of the CPU time is occupied and the flow of processing is not delayed. However, if the method of this embodiment is used, scheduling is performed by the stream manager. An application that uses a manager can create a peer module and link the link module, create the necessary data access module and data processing module, and link this to the peer module. The above scheduling function is implemented. Because there is no need to do.

またこれらのモジュールはストリームマネージャが提供するプラットホームに非依存の
インタフェースを利用するだけで良いのでアプリケーションは、どのようなプラットホー
ムでも変更せずに利用することが可能となる。
In addition, since these modules only need to use an interface independent of the platform provided by the stream manager, the application can be used without changing on any platform.

図4は図16を用いて説明したピアモジュールの論理的な構成を示した図である。ピア
モジュール(400)は、データフォーマットに依存したデータ処理を実行するデータ処
理モジュール(401)と、OSのシステムインタフェース(280)を介し、特定のハ
ードウェア装置を用いデータ処理を実行するデータアクセスモジュール(405)を備え
る。ピアモジュールは、ストリームマネージャ内でピアモジュール固有の識別子(ピアモ
ジュールID)で識別される。
FIG. 4 is a diagram showing a logical configuration of the peer module described with reference to FIG. The peer module (400) includes a data processing module (401) that executes data processing depending on the data format, and a data access module that executes data processing using a specific hardware device via the OS system interface (280). (405). The peer module is identified in the stream manager by a unique identifier (peer module ID) of the peer module.

データ処理モジュール(401)は固有の識別子(データ処理モジュールID)で識別
され、さらに前処理部(402)と後処理部(403)を備える。どのピアモジュールに
どのデータ処理モジュールが関係づけられているかはテーブル(1800)の列(180
3)に記録されている。データアクセスモジュール(405)も、固有の識別子(データ
アクセスモジュールID)で識別され、入出力実行処理部(406)と入出力完了処理部
(407)を備える。どのピアモジュールにどのデータアクセスモジュールが関係づけら
れているかはテーブル(1800)の列(1804)に記録されている。
The data processing module (401) is identified by a unique identifier (data processing module ID), and further includes a pre-processing unit (402) and a post-processing unit (403). Which peer module is associated with which data processing module is a column (180) in the table (1800).
3). The data access module (405) is also identified by a unique identifier (data access module ID), and includes an input / output execution processing unit (406) and an input / output completion processing unit (407). Which data access module is associated with which peer module is recorded in the column (1804) of the table (1800).

ピアモジュールは、リンクモジュール(410、420)で、他のピアモジュールと連
結される。リンクモジュールは、バッファ行列(411)を備える。リンクモジュール(
410)がデータ処理モジュールの入力側に接続される場合は、該リンクモジュール内の
バッファに格納されるデータは、データ処理モジュールの前処理部へ出力可能である。デ
ータ処理モジュールの出力側に接続される出力リンクモジュール(420)の場合には、
該リンクモジュール内のバッファに格納されるデータは、データ処理モジュールの後処理
部から入力可能である。
The peer module is connected to other peer modules by link modules (410, 420). The link module comprises a buffer matrix (411). Link module (
When 410) is connected to the input side of the data processing module, the data stored in the buffer in the link module can be output to the preprocessing unit of the data processing module. In the case of the output link module (420) connected to the output side of the data processing module,
Data stored in the buffer in the link module can be input from the post-processing unit of the data processing module.

例えば、他のピアモジュールで処理されたデータがバッファに書き込まれて入力リンク
モジュール(410)に入力される。このデータは前処理部(402)が受け取り、該前
処理部によって、データオブジェクト(408)に変換されて、実行待ちデータオブジェ
クト行列(412)に入れられる。これをデータアクセスモジュール(405)が取得し
、処理する。データオブジェクト(408)の詳細については図12を用いて後述する。
For example, data processed by another peer module is written into a buffer and input to the input link module (410). This data is received by the preprocessing unit (402), converted into a data object (408) by the preprocessing unit, and placed in the data object matrix (412) waiting for execution. This is acquired and processed by the data access module (405). Details of the data object (408) will be described later with reference to FIG.

データアクセスモジュールは、OS内のシステムインタフェース(280)を介してデ
バイスドライバ(430)にアクセスし、ハードウェアデバイス(440)とデータの入
出力を行う。データアクセスモジュールの入出力実行処理部(406)は、データの入出
力要求、あるいは前処理部から渡されたデータに対する処理を行う。処理としては、例え
ば、ハードウェアデバイス(440)に格納されたファイルの読込などの指示や、データ
オブジェクト中のデータ(408)の暗号処理用ハードウェアにおける暗号化処理の指示
等のデータ変換処理等が考えられる。処理結果は、入出力完了処理部(407)が取得し
、データオブジェクト(409)として、後処理待ち処理オブジェクト行列(413)に
入力する。後処理部は後処理待ち処理オブジェクト行列(413)から取り出したデータ
オブジェクト中のデータを出力リンクモジュール(402)に出力して、ピアモジュール
のデータ処理を終える。
The data access module accesses the device driver (430) via the system interface (280) in the OS, and inputs / outputs data to / from the hardware device (440). The input / output execution processing unit (406) of the data access module performs processing on the data input / output request or the data passed from the preprocessing unit. Examples of the processing include data conversion processing such as an instruction for reading a file stored in the hardware device (440), an instruction for encryption processing in the hardware for encryption processing of data (408) in the data object, and the like. Can be considered. The processing result is acquired by the input / output completion processing unit (407), and input as a data object (409) to the post-processing waiting processing object matrix (413). The post-processing unit outputs the data in the data object extracted from the post-processing waiting process object matrix (413) to the output link module (402), and finishes the data processing of the peer module.

これらの動作は、ピアモジュールスケジューラ(233)が、テーブル(1800)と
テーブル(1900)を参照しながら実行する。実行のタイミングは図11のスケジュー
リングテーブル(1100)に記された情報に従って実行する。図11の詳細は後述する
These operations are executed by the peer module scheduler (233) with reference to the table (1800) and the table (1900). The execution timing is executed according to the information described in the scheduling table (1100) of FIG. Details of FIG. 11 will be described later.

また、ピアモジュールは一つ以上の入力リンクモジュールならびに一つ以上の出力リン
クモジュールに連結され、該リンクモジュールを介して2つ以上のピアモジュールが連結
されることで一連のデータ処理フローを実現することができる。これにより、複数のピア
モジュールからのデータを単一のピアモジュールに集めて複数のデータを多重化したり、
単一のデータフローを複数の異なるピアモジュールへ送出することも可能である。これは
、例えば、図1で示したような多重化されたデータの分離、あるいは複数のデータの多重
化などに利用できる。
The peer module is connected to one or more input link modules and one or more output link modules, and two or more peer modules are connected via the link module to realize a series of data processing flows. be able to. This allows data from multiple peer modules to be collected in a single peer module to multiplex multiple data,
It is also possible to send a single data flow to several different peer modules. This can be used, for example, for separation of multiplexed data as shown in FIG. 1 or multiplexing of a plurality of data.

データアクセスモジュールの入出力処理実行部(406)、及び入出力完了処理部(4
07)はプラットホームに備えられたハードウェアデバイスが異なるとその実現方式が変
わり得る。該データアクセスモジュールを修正することで、データアクセスモジュールよ
りも上位レイヤのモジュールは、システムインタフェースに依存せずに、処理を実行する
ことが可能となる。
Input / output processing execution unit (406) and input / output completion processing unit (4) of the data access module
In 07), when the hardware devices provided in the platform are different, the implementation method can be changed. By modifying the data access module, a module in a higher layer than the data access module can execute processing without depending on the system interface.

図12にデータオブジェクトの構成を示した。データオブジェクト(1200)は、デ
ータリスト(1210)、コマンドコード(1212)及びコマンド引数(1213)か
らなる。データリストはさらに、データへのアドレス(1221)とデータのサイズ(1
222)がリストとして格納されている。データオブジェクトは、処理すべきデータをデ
ータリスト(1210)で保持し、さらにそのデータに対するコマンド(1211)とパ
ラメタ(1213)が記録されたものである。必ずしもコマンドとデータが対になって記
録されている必要は無く、データは空で、コマンドだけが格納されていても良いし、逆に
データだけが格納されていても良い。
FIG. 12 shows the structure of the data object. The data object (1200) includes a data list (1210), a command code (1212), and a command argument (1213). The data list further includes an address (1221) to the data and a size (1
222) are stored as a list. The data object holds data to be processed in a data list (1210), and further records a command (1211) and a parameter (1213) for the data. The command and data need not necessarily be recorded in pairs. The data may be empty and only the command may be stored, or conversely, only the data may be stored.

図11にピアモジュールスケジューラ内のスケジュールテーブルの構成を示した。スケ
ジュールテーブル(1100)はピアモジュールスケジューラがどのピアモジュールをい
つ実行するかを管理する。該テーブルには、スケジュール時刻(1101)とピアモジュ
ールID(1102)を項目として有している。ここで、テーブル(1100)中のスケ
ジュール時刻とは、あるピアモジュールに関連付けられたデータアクセスモジュールとデ
ータ処理モジュールの処理を、次に実行する予約時刻のことである。また、スケジュール
とは複数の処理を行わなければならない場合、どのような順番でどの処理をいつ行うかを
決定し、記録することである。またスケジュール実行、あるいはスケジューリングとは、
予め定められたスケジュールに従って処理を実行することを指す。
FIG. 11 shows the configuration of the schedule table in the peer module scheduler. The schedule table (1100) manages when which peer module the peer module scheduler executes. The table includes schedule time (1101) and peer module ID (1102) as items. Here, the schedule time in the table (1100) is a reserved time when the processing of the data access module and the data processing module associated with a certain peer module is executed next. In addition, when a plurality of processes must be performed, the schedule is to determine and record which process is to be performed in what order. Also, schedule execution or scheduling is
This refers to executing processing according to a predetermined schedule.

図11の例では、例えば時刻250ミリ秒においてピアモジュールIDが10および1
3のピアモジュールが実行されることが行1110、1120に示されている。つまり、
同一の時刻に実行されるべきピアモジュールが複数存在しても良い。ただし、スケジュー
ル時間は同一時間であっても、実際の処理は、一方の処理が完了した直後にもう一方の処
理が行われてもよい。
In the example of FIG. 11, for example, the peer module IDs are 10 and 1 at a time of 250 milliseconds.
It is shown in lines 1110, 1120 that three peer modules are executed. That means
There may be a plurality of peer modules to be executed at the same time. However, even if the schedule time is the same time, the actual process may be performed immediately after the completion of one process.

本実施例では、該スケジュールテーブルに記録された内容に準じて処理を実行するのは
、ピアモジュールスケジューラである。つまり、上述した処理は前述のタイミングで、ピ
アモジュールスケジューラがテーブル(1800)、テーブル(1900)、およびテー
ブル(2000)を参照しながら必要な処理を順次行う。つまり、各ピアモジュールのデ
ータ処理モジュールとデータアクセスモジュールの処理はピアモジュールスケジューラが
実行する。これは言い換えれば、スレッドのような一つの実行コンテキストで、ピアモジ
ュールピアモジュールスケジューラの処理、前処理部、後処理部、入出力実行処理部、及
び入出力完了処理部の処理を行うということである。
In the present embodiment, it is the peer module scheduler that executes processing according to the contents recorded in the schedule table. That is, in the above-described processing, the peer module scheduler sequentially performs necessary processing while referring to the table (1800), the table (1900), and the table (2000) at the above-described timing. That is, the processing of the data processing module and the data access module of each peer module is executed by the peer module scheduler. In other words, the processing of the peer module peer module scheduler, the pre-processing unit, the post-processing unit, the input / output execution processing unit, and the input / output completion processing unit are performed in one execution context such as a thread. is there.

ピアモジュールスケジューラは、例えば、定期的に起動され、該テーブルを参照し、現
在の時刻と比較してそれよりも以前のスケジュール時刻が設定されたピアモジュールがあ
れば、このピアモジュールの処理を行い、必要があればテーブル(1100)を更新し、
次の起動を待つ。
The peer module scheduler, for example, periodically starts, refers to the table, and if there is a peer module with a schedule time earlier than the current time, performs processing of this peer module. Update the table (1100) if necessary,
Wait for the next startup.

ピアモジュールの実行手順について、図6を用いて説明する。   The execution procedure of the peer module will be described with reference to FIG.

まず、ピアモジュールスケジューラは、既に処理が開始されているストリーム処理が存
在するかどうかをストリームテーブル(2000)の列(2004)を参照して確認する
(ステップ600)。開始されているストリーム処理が存在しない場合、新たにストリー
ム処理が実行されるまで待つ(ステップ601)。開始されたストリーム処理が存在する
場合は、スケジュールテーブル(1110)を参照し、現在時刻を起点にして最も早く実
行されるスケジュール時刻まで待つ(ステップ603)。時刻を待つ方式は、時計を周期
的に見て判断しても良いし、指定時間だけ実行を停止する機能を使用しても良いし、時間
割込の利用できるプラットホームであればこれを利用しても良い。ストリーム処理が開始
された直後は、まだピアモジュールによって処理開始時刻がスケジュールマネージャに予
約されていないので、そのストリーム処理を構成するピアモジュールのスケジュール時刻
として現在の時刻を、ストリームマネージャが登録することで最初の実行が行われるよう
にする。待機動作が完了すると、スケジュールテーブル(1100)のピアモジュールI
D(1102)に記載されたピアモジュールのデータ処理モジュールの前処理部をピアモ
ジュールスケジューラが実行する(ステップ604)。この実行処理において、前処理部
は、入力リンクモジュールにデータが存在しているかを確認し、存在すればこれをデータ
オブジェクトに変換し、実行待ちデータオブジェクト行列(412)に入力する。あるい
は図1のデータをハードディスクから読み出すピアモジュールのような、ストリーム処理
の始点となるピアモジュールでは、データの読み出し要求をデータオブジェクトとして該
行列に入力する。
First, the peer module scheduler refers to the column (2004) of the stream table (2000) to check whether there is a stream process that has already been started (step 600). If there is no stream process that has been started, the process waits until a new stream process is executed (step 601). If there is a stream process that has been started, the schedule table (1110) is referred to, and the process waits for the schedule time that is the earliest to be executed from the current time (step 603). The method of waiting for the time may be determined by periodically looking at the clock, may use a function that stops execution for a specified time, or if this is a platform that can use time interruption, use this. Also good. Immediately after the stream processing is started, the processing start time is not yet reserved in the schedule manager by the peer module, so the stream manager registers the current time as the scheduling time of the peer module that constitutes the stream processing. Make the first run happen. When the standby operation is completed, the peer module I of the schedule table (1100)
The peer module scheduler executes the preprocessing unit of the data processing module of the peer module described in D (1102) (step 604). In this execution process, the pre-processing unit checks whether data exists in the input link module, and if it exists, converts it into a data object and inputs it to the data object matrix (412) waiting for execution. Alternatively, in a peer module that is the starting point of stream processing, such as a peer module that reads data from FIG. 1 from a hard disk, a data read request is input to the matrix as a data object.

次に、自モジュールが次にスケジュールされるべき時刻を算出し、ピアモジュールスケ
ジューラに該時刻を登録する(ステップ605)。次のスケジュール時間を前処理部(4
02)が定める理由は、リンクモジュール(410)から得られたデータ(411)のサ
イズ等、処理に必要な時間を算出できるのが前処理部だからである。例えば図1のピアモ
ジュール(100)のようなファイルを読み出すピアモジュールに、例えばビットレート
が1秒当たり1024キロバイトで、一度に読み込むデータブロックのサイズが256キ
ロバイトに設定されていたとする。この指定はデータ処理コマンド命令(580)を使用
してアプリケーションから指定される。このような場合、ファイルの読込のピアはであっ
たとすると、(一度に読み込むデータブロックサイズ)/(ビットレート)で定められる
値で読込の時間間隔が決定できる。例えば、毎秒1024キロバイトでブロックサイズが
256キロバイトであるなら、読込は0.25秒毎で行えば指定されたビットレートが実
現できることが判る。つまり、256キロバイトのデータ要求を前処理部が入出力処理部
に行った後は、次の処理は0.25秒後に行えば良いことになるので、次回のスケジュー
リング時間は250ミリ秒後と定まる。
Next, the time when the own module should be scheduled next is calculated, and the time is registered in the peer module scheduler (step 605). Set the next schedule time to the pre-processing unit (4
02) is determined because the time required for processing such as the size of the data (411) obtained from the link module (410) can be calculated. For example, assume that a peer module that reads a file such as the peer module (100) in FIG. 1 has a bit rate of 1024 kilobytes per second and a data block size to be read at 256 kilobytes at a time. This designation is designated by the application using the data processing command command (580). In such a case, if the file reading peer is, the reading time interval can be determined by a value defined by (data block size read at one time) / (bit rate). For example, if the block size is 1024 kilobytes per second and the block size is 256 kilobytes, it can be understood that the specified bit rate can be realized if reading is performed every 0.25 seconds. That is, after the pre-processing unit makes a data request of 256 kilobytes to the input / output processing unit, the next processing should be performed after 0.25 seconds, so the next scheduling time is determined to be 250 milliseconds later. .

それよりも下流にあるピアモジュール、図10におけるデマルチプレクサピアモジュー
ルや映像ピアモジュールにおいては、これらのスケジューリング時間は、同様な方法で設
定されたビットレートとリンクモジュール経由で得られたデータのサイズから決めても良
いが、比較的短い時間をスケジューリング時間に設定しで、頻繁に実行された方が良い。
なぜならば、データのビットレートは最上流のファイル読み出しピアが前述の方法で制御
しているので、それより下位のピアモジュールでは、特にビットレートを制御せずに、デ
ータが入力リンクオブジェクトに入力されたら、これをすぐに取り出して処理を行い、出
力リンクモジュールに出力すれば、定められたビットレートが実現できるからである。こ
の場合、下流のピアオブジェクトでは、処理の遅延が起ってビットレートが低下しないよ
うにするために、頻繁にリンクオブジェクトにデータが入力されたかを確認する方が良い
。このためには、スケジューリング時間は小さな値を予約するべきである。
In the downstream peer module, the demultiplexer peer module and the video peer module in FIG. 10, these scheduling times are calculated from the bit rate set in the same manner and the size of the data obtained via the link module. It may be decided, but it is better to set the scheduling time to a relatively short time and execute it frequently.
This is because the uppermost file reading peer controls the bit rate of the data in the above-described manner, and in the lower peer module, the data is input to the input link object without particularly controlling the bit rate. If this is taken out and processed immediately, and output to the output link module, a predetermined bit rate can be realized. In this case, in the downstream peer object, it is better to check whether data is frequently input to the link object in order to prevent a processing delay from occurring and a bit rate from decreasing. For this purpose, a low scheduling time should be reserved.

前処理部からデータアクセスモジュールにデータオブジェクトが出力された場合(ステ
ップ606)、ピアモジュールスケジューラが、該データオブジェクトに指示された処理
を開始するためにデータアクセスモジュールの入出力実行処理部を実行する(ステップ6
07)これは例えば、データの加工や取得をハードウェアデバイスに要求する作業が該当
する。
When the data object is output from the preprocessing unit to the data access module (step 606), the peer module scheduler executes the input / output execution processing unit of the data access module to start the processing instructed by the data object. (Step 6
07) This corresponds to, for example, an operation for requesting a hardware device to process or acquire data.

実行待ちデータオブジェクト行列にデータアクセスモジュールが無く、かつデータアク
セスモジュールからデータオブジェクトが新たに後処理待ちデータ処理行列に出力されて
いない場合、ピアモジュールスケジューラはステップ611に進む(ステップ608)。
If there is no data access module in the pending data object queue and no new data object has been output from the data access module to the post-processing pending data processing queue, the peer module scheduler proceeds to step 611 (step 608).

以前に実行された入出力実行処理部の処理が終了して、処理結果としてのデータが存在
する場合、これは、例えば、ハードウェアデバイスに要求していたデータ加工や取得処理
が終了して、その結果としてのデータが存在する場合は、データアクセスモジュールの入
出力完了処理部をピアモジュールスケジューラが実行し(ステップ609)、該データを
データオブジェクトとして後処理待ちデータオブジェクト行列(413)に入力する(ス
テップ610)。データオブジェクトが後処理待ちデータオブジェクト行列(413)に
有る場合、ピアモジュールスケジューラが後処理部を実行し、出力リンクモジュールにデ
ータオブジェクト中のデータリストのみを渡す。後処理部の処理が完了した場合、ピアモ
ジュールスケジューラは次のピアモジュールのスケジュールのために開始状態に戻る。
When the processing of the input / output execution processing unit that has been executed previously is completed and there is data as a processing result, for example, this is because the data processing or acquisition processing requested for the hardware device is completed, If the resulting data exists, the peer module scheduler executes the input / output completion processing unit of the data access module (step 609) and inputs the data as a data object to the post-processing waiting data object matrix (413). (Step 610). If the data object is in the post-processing data object queue (413), the peer module scheduler executes the post-processing unit and passes only the data list in the data object to the output link module. When the processing of the post-processing unit is completed, the peer module scheduler returns to the start state for the schedule of the next peer module.

本実行方式では、例えば複数のストリーム処理実行する場合も、各ストリーム処理に存
在するピアモジュールの処理は、ピアモジュールスケジューラの一つの実行コンテキスト
で行うことが可能である。ここで、実行コンテキストとはプログラムを実行する場合に必
要となる情報を持った実行単位のことで、スレッドなどがこれに相当する。なぜならば、
前述した方法を用いることで、例え複数のストリーム処理であっても、各ピアモジュール
の処理をスケジューリングする時刻がそれぞれのピアモジュールから指定されているので
、その時間にピアモジュールスケジューラが実行すれば良いからである。このように1つ
の実行コンテキストで処理すると、複数の実行コンテキストで複数のストリーム処理を処
理したときに生じる同期化処理を行う必要がない。このデバイスへのアクセスを排他的に
行うための同期化処理は負荷が高いため、この処理を省くことでストリーム処理の性能低
下を防止できる。
In this execution method, for example, even when a plurality of stream processes are executed, the process of the peer module existing in each stream process can be performed in one execution context of the peer module scheduler. Here, the execution context is an execution unit having information necessary for executing a program, and a thread or the like corresponds to this. because,
By using the above-described method, the time for scheduling the processing of each peer module is specified by each peer module even in the case of a plurality of stream processing, so the peer module scheduler only needs to execute at that time. Because. When processing is performed in one execution context in this way, there is no need to perform synchronization processing that occurs when processing a plurality of stream processes in a plurality of execution contexts. Since the synchronization processing for exclusively accessing the device has a high load, the performance degradation of the stream processing can be prevented by omitting this processing.

また、本方式では例えば、実行優先度を上げるのであれば、ピアモジュールの前処理部
で決定するピアモジュールの予約時間をより短くすれば、そのピアモジュールの処理がよ
り早くスケジューリングされることになり、より多くのCPU時間が該ピアモジュールの
処理に使われることになる。また、複数処理を実行する場合、上記した予約時間を調整す
ることで、それぞれの処理の優先度を指定することが可能となる。例えば、あるデバイス
からデータを取得してストレージに記録する処理と、あるデバイスからデータを取得して
ディスプレイに表示する処理の2つの処理を同時に行う場合、前者の処理の予約時間を短
く設定すれば、記録処理の優先順位を高く設定することが可能となる。
Also, in this method, for example, if the execution priority is increased, if the reservation time of the peer module determined by the pre-processing unit of the peer module is shortened, the processing of the peer module is scheduled earlier. More CPU time will be spent processing the peer module. Further, when a plurality of processes are executed, it is possible to specify the priority of each process by adjusting the reservation time. For example, when performing two processes at the same time, the process of acquiring data from a certain device and recording it in the storage, and the process of acquiring data from a certain device and displaying it on the display, if the reservation time of the former process is set short Therefore, it is possible to set a higher priority for recording processing.

また、複数のデータ処理を1つの実行コンテキストで実行することで、複数の実行コン
テキストに複数のバッファを割り当てる必要が無くなり、また複数コンテキストの並列実
行時に用いられるセマフォのような、複数の実行コンテキストで一つのリソースを利用す
る際に、排他的なアクセスを保証する仕組みである同期機能を用いる必要が無くなり、使
用リソースの低減が可能となる。
In addition, by executing multiple data processing in one execution context, it is not necessary to allocate multiple buffers to multiple execution contexts, and in multiple execution contexts such as semaphores used in parallel execution of multiple contexts When one resource is used, it is not necessary to use a synchronization function that is a mechanism for guaranteeing exclusive access, and it is possible to reduce resources used.

また、一つのコンテキストで処理を実行することにより、ピアモジュールスケジューラ
(233)は効率のよいスケジューリングを設定することが可能となる。なぜなら、従来
のスケジューリング方式、例えばラウンドロビン方式等では、一定時間毎に無条件に処理
を切り変えるので、処理が必要無い場合でもスケジューリングされてしまうことがあった
り、処理が必要な場合にスケジューリングされないことがあり、リアルタイム性が低下し
、無駄なCPU時間を消費することになっていた。一方、本方式では、次処理に必要な時
間を算出し、その必要な時間をスケジューリングテーブルに登録してスケジューリングを
行うので余計なスケジューリングが行われず、従来のラウンドロビン方式等における冗長
時間に割り当てられていたCPU処理を別の処理に振り当てることが可能になるため、全
体としてプラットフォームのリソースの一つであるCPU時間の使用効率が向上し、さら
に処理の必要な時刻には正しくスケジューリングされるので、リアルタイム性を向上する
ことが可能となる。
Further, by executing processing in one context, the peer module scheduler (233) can set efficient scheduling. This is because, in the conventional scheduling method, for example, the round robin method, the processing is unconditionally switched every fixed time. In some cases, real-time performance is reduced, and unnecessary CPU time is consumed. On the other hand, in this method, the time required for the next processing is calculated, and the required time is registered in the scheduling table and scheduling is performed. Therefore, unnecessary scheduling is not performed, and the time is allocated to the redundant time in the conventional round robin method or the like. Since it is possible to allocate CPU processing to other processing, the use efficiency of CPU time, which is one of the resources of the platform as a whole, is improved, and it is scheduled correctly at the time when processing is required. It becomes possible to improve the real-time property.

図7に、本実施例による、ピアモジュール、リンクモジュール、及びピアモジュールス
ケジューラを使ったデータ処理の一例として、音声と映像が多重化されて記録されている
ファイルをハードディスクから読み込み、これを再び分離して、ディスプレイ、並びにス
ピーカから動画として再生する場合のデータフローについて説明する。音声と映像を多重
化して記録する方式としては、MPEG(Motion Picture Expert Group)等がある。該処理に
おいてファイル読み出しピアモジュール(700)はデマルチプレクサピアモジュール(
730)とリンクモジュール(720)で結合され、デマルチプレクサピアモジュール(
730)と映像ピアモジュール(760)はリンクモジュール(740)で接続され、さ
らに音声ピアモジュール(780)がリンクモジュール(750)で接続されている。
In FIG. 7, as an example of data processing using the peer module, link module, and peer module scheduler according to the present embodiment, a file in which audio and video are multiplexed and recorded is read from the hard disk and separated again. A data flow in the case of reproducing as a moving image from the display and the speaker will be described. As a method of recording audio and video multiplexed, there is MPEG (Motion Picture Expert Group) and the like. In this process, the file read peer module (700)
730) and the link module (720) and the demultiplexer peer module (
730) and the video peer module (760) are connected by a link module (740), and an audio peer module (780) is further connected by a link module (750).

まず、ファイル読み出しピアモジュールはシステムインタフェース(709)とデバイ
スドライバ(710)を通してハードディスクにアクセスし、データを取得する。デマル
チプレクサピアモジュール(730)は、取得したデータの多重化を解除する。この処理
によって得られた映像データは映像ピアモジュール(760)に送られてデバイスドライ
バ(769)を通してハードウェア映像デコーダ(770)に送られ、音声データは音声
ピアモジュール(780)に送られてデバイスドライバ(789)を通して、ハードウェ
ア音声デコーダ(790)に送られて再生される。
First, the file reading peer module accesses the hard disk through the system interface (709) and the device driver (710) to acquire data. The demultiplexer peer module (730) demultiplexes the acquired data. The video data obtained by this processing is sent to the video peer module (760) and sent to the hardware video decoder (770) through the device driver (769), and the audio data is sent to the audio peer module (780) and the device. It is sent to the hardware audio decoder (790) through the driver (789) and reproduced.

図10には、図7で示した処理例における詳細な構成を示した。これを用いて、処理手
順について説明する。
FIG. 10 shows a detailed configuration of the processing example shown in FIG. The processing procedure will be described using this.

まず、ピアモジュールスケジューラが、ファイル読み出しピアモジュールのデータ処理
モジュールの実行を開始する。データ処理モジュール(701)であるファイル読み出し
モジュールの前処理部(702)はデータアクセスモジュール(704)であるファイル
アクセスモジュールの入出力実行処理部(705)へのファイル読出し入出力処理である
データオブジェクト(707)を入出力待ちデータオブジェクト行列に入力することで要
求する。この読出し処理は入出力処理部(705)によってシステムインタフェース(7
09)と記憶装置用アダプタデバイスドライバ(710)を経由して処理される。さらに
、当該処理の実行以前に実行された読み込み処理が完了したかどうかを、ピアモジュール
スケジューラがチェックし、処理が完了していれば入出力完了処理部(706)が実行さ
れ、該データをデータオブジェクト(708)にして後処理待ちデータオブジェクト待ち
行列に入れる。
First, the peer module scheduler starts executing the data processing module of the file reading peer module. A pre-processing unit (702) of the file reading module which is the data processing module (701) is a data object which is a file reading input / output processing to the input / output execution processing unit (705) of the file access module which is the data access module (704). This is requested by inputting (707) into the input / output waiting data object matrix. This read processing is performed by the input / output processing unit (705) by the system interface (7).
09) and the storage device adapter device driver (710). Further, the peer module scheduler checks whether or not the reading process executed before the execution of the process is completed. If the process is completed, the input / output completion processing unit (706) is executed, and the data is stored as data. An object (708) is put into the post-processing data object queue.

次に、後処理部(703)が実行されると、後処理待ちデータオブジェクト行列に格納
されたデータオブジェクト(708)を取得し、該データオブジェクト内のデータリスト
がリンクモジュール(720)のバッファ内の待ち行列に入力される。
Next, when the post-processing unit (703) is executed, the data object (708) stored in the post-processing waiting data object matrix is acquired, and the data list in the data object is stored in the buffer of the link module (720). To the queue.

なお、これらの処理において、各処理は以下のように検索される。ファイル読出しピア
モジュールのピアIDは100であるので、ピアモジュールスケジューラはこの値から、
テーブル(1800)を参照し、データ処理モジュールとして割り当てられているデータ
処理モジュールIDを得る。図16の例では該番号は100である。次にテーブル(15
00)を参照して、データ処理モジュールIDが100の行を検索する。これにより、実
行すべき前処理部が0xFA800000番地に、実行すべき後処理部が0xFA808
000番地に存在することがわかるので、これらを実行する。この場合、本アドレスに格
納されている前処理部の処理の内容は、指定されたファイルの読込を指示した後、次のス
ケジューリング時間を指定する処理であり、後処理部の処理の内容は取得したデータを出
力リンクに出力する処理である。同様にデータアクセスモジュールに関しては、テーブル
(1800)を参照し、データアクセスモジュールとして割り当てられているデータアク
セスモジュールIDを得る。図16の例では該番号は1である。次にテーブル(1300
)を参照して、データアクセスモジュールIDが1の行を検索する。これにより、実行す
べき入出力実行処理部のアドレスと、入出力完了処理部のアドレスを得て、これらを実行
する。この場合、本アドレスに格納されている入出力実行処理部の処理の内容は、ハード
ディスクへのデータ読込要求発行であり、入出力完了処理部の処理の内容はハードディス
クからのデータの取得処理である。
In these processes, each process is searched as follows. Since the peer ID of the file read peer module is 100, the peer module scheduler determines from this value:
With reference to the table (1800), the data processing module ID assigned as the data processing module is obtained. In the example of FIG. Next, the table (15
00), a row with a data processing module ID of 100 is searched. As a result, the pre-processing unit to be executed is at address 0xFA800000, and the post-processing unit to be executed is 0xFA808.
Since it can be seen that it exists at address 000, these are executed. In this case, the content of the pre-processing unit stored at this address is the processing for designating the next scheduling time after instructing the reading of the specified file, and the content of the processing of the post-processing unit is acquired. This process is to output the processed data to the output link. Similarly, for the data access module, the table (1800) is referred to, and the data access module ID assigned as the data access module is obtained. In the example of FIG. Next, the table (1300
), A row having a data access module ID of 1 is searched. As a result, the address of the input / output execution processing unit to be executed and the address of the input / output completion processing unit are obtained and executed. In this case, the processing content of the input / output execution processing unit stored at this address is a data read request issuance to the hard disk, and the processing content of the input / output completion processing unit is data acquisition processing from the hard disk. .

デマルチプレクサピアモジュール(730)のデマルチプレクサ処理モジュール(73
1)がピアモジュールスケジューラによって実行されると、前処理部(732)が実行さ
れ、リンクモジュール(720)の待ち行列(721)からデータリストを取り出す。待
ち行列にデータが無い場合、前処理部は処理を終了して、後処理部の処理に移る。
Demultiplexer processing module (73) of demultiplexer peer module (730)
When 1) is executed by the peer module scheduler, the pre-processing unit (732) is executed, and the data list is retrieved from the queue (721) of the link module (720). If there is no data in the queue, the pre-processing unit ends the processing and proceeds to the processing of the post-processing unit.

なお、上記の前処理部における処理は、データ処理フローにおいて始点から2つ目以降
に接続されたピアモジュールの処理において同様である。また、全てのピアモジュールの
前処理部は、処理を終了する前に、次に自身が実行されるべき時間を予約する。この予約
時間は、該ストリーム処理のビットレートや、要求されるリアルタイム性に依存する。例
えば、高いビットレートのデータ処理、あるいは高いリアルタイム性が要求される処理の
場合は、データを迅速に処理して次のピアモジュールに渡さなければならないので、入力
リンクモジュールのバッファにデータが格納されているか否かの確認を頻繁に行う必要が
ある。逆にビットレートが低ければ、比較的間隔を開けてチェックすることができる。
Note that the processing in the pre-processing unit is the same in the processing of the peer module connected from the start point to the second and subsequent points in the data processing flow. Also, the pre-processing unit of all peer modules reserves the next time that it should be executed before ending the processing. This reserved time depends on the bit rate of the stream processing and the required real time property. For example, in the case of high bit rate data processing or processing that requires high real-time performance, the data must be processed quickly and passed to the next peer module, so the data is stored in the buffer of the input link module. It is necessary to check frequently. On the contrary, if the bit rate is low, the check can be made at a relatively large interval.

該デマルチプレクサピアモジュールの処理はデータフォーマットの変換であり、プログ
ラムで実行することで処理可能であり、HDD等のI/O系のハードウェアにアクセスす
る必要がないためデータアクセスモジュールが定義する必要はなく、前処理部で処理後の
データは後処理部(733)に渡される。この場合のデータフォーマットの変換処理は、
与えられたデータを予めマルチプレクサピアモジュールの前処理部(732)が解析し、
その結果を2つの音声バッファと映像バッファに書き込む処理となる。後処理部は、映像
バッファから映像データを取り出し、リンクモジュール(740)の待ち行列(741)
に入力し、同様に音声バッファから音声データを取り出しリンクモジュール(750)の
待ち行列(751)に入力する。
The processing of the demultiplexer peer module is a data format conversion, which can be executed by a program and does not need to access I / O hardware such as an HDD, so the data access module must define it. Rather, the data processed by the pre-processing unit is passed to the post-processing unit (733). In this case, the data format conversion process is as follows:
The preprocessing unit (732) of the multiplexer peer module analyzes the given data in advance,
The result is a process of writing the result into two audio buffers and a video buffer. The post-processing unit extracts the video data from the video buffer, and queues (741) of the link module (740).
Similarly, the audio data is extracted from the audio buffer and input to the queue (751) of the link module (750).

次に、映像ピアモジュール(760)のデータ処理モジュールである映像書き込みモジ
ュール(761)の前処理部(762)が実行されると、待ち行列(741)に待機して
いるデータリストが取り出される。アプリケーションがデータ処理モジュール制御命令(
560)を用いて定めたビットレートに応じて、映像デコーダアクセスモジュール(76
4)にデータを送り、入出力実行処理部(765)によって、該データはハードウェア映
像デコーダ(770)のデバイスドライバ(769)に出力され、ハードウェア映像デコ
ーダ(770)に出力され、その結果として映像が出力される。出力が完了したデータは
データアクセスモジュールである映像デコーダアクセスモジュールの入出力完了処理部(
766)によって検出され、データオブジェクト(768)として終了処理待ちデータオ
ブジェクト行列に入れられる。映像ピアモジュールはデータ処理の末端であり、出力リン
クモジュールが無いので、デバイスに書き込まれた映像データは後処理部(763)によ
り破棄される。
Next, when the preprocessing unit (762) of the video writing module (761), which is the data processing module of the video peer module (760), is executed, the data list waiting in the queue (741) is taken out. Application can control data processing module (
560) according to the bit rate determined by using the video decoder access module (76).
4), the data is output to the device driver (769) of the hardware video decoder (770) by the input / output execution processing unit (765), and output to the hardware video decoder (770). As a video. The data that has been output is input / output completion processing section of the video decoder access module (data access module)
766) and is placed in the data object queue waiting for termination processing as a data object (768). Since the video peer module is the end of the data processing and there is no output link module, the video data written in the device is discarded by the post-processing unit (763).

音声ピアモジュール(780)における処理も先に説明した映像ピアにおける処理と同
様である。音声ピアのデータ処理モジュールである音声書き込みモジュール(781)の
前処理部(782)が実行され、待ち行列(751)内に待機している音声データリスト
が取り出される。取り出されたデータのビットレートに応じて、データアクセスモジュー
ルである音声デコーダアクセスモジュール(784)に送られ、入出力実行処理部(78
5)によって処理が開始される。音声データは、デバイスドライバ(789)を通じてハ
ードウェア音声デコーダ(790)に送られ、再生される。出力が完了したデータはデー
タアクセスモジュールの入出力完了処理部(786)によって検出され、完了したデータ
はデータオブジェクト(788)として後処理待ちデータオブジェクト行列に入れられ、
その後、後処理部(783)によって破棄される。
The processing in the audio peer module (780) is the same as the processing in the video peer described above. The preprocessing unit (782) of the voice writing module (781), which is the data processing module of the voice peer, is executed, and the waiting voice data list is extracted from the queue (751). In accordance with the bit rate of the extracted data, it is sent to the audio decoder access module (784), which is a data access module, and an input / output execution processing unit (78
The process is started by 5). The audio data is sent to the hardware audio decoder (790) through the device driver (789) and reproduced. The data that has been output is detected by the input / output completion processing unit (786) of the data access module, and the completed data is placed as a data object (788) in a post-processing waiting data object matrix,
Thereafter, it is discarded by the post-processing unit (783).

図8は、図2の構成をユーザ空間で実装した例を示している。ユーザ空間で実装する場
合、全てのモジュールがユーザ空間上で実装されるので、開発が容易という効果がある。
なぜなら、アプリケーションプログラムを開発する際に利用される開発ツール、例えばデ
バッガ等が使用できる上に、OSの提供するメモリ管理機能を利用できるので他のアプリ
ケーションからの干渉を防止でき、信頼性、可用性を高めることが可能だからである。
FIG. 8 shows an example in which the configuration of FIG. 2 is implemented in user space. When mounted in user space, all modules are mounted in user space, so that there is an effect that development is easy.
This is because development tools used when developing application programs, such as a debugger, can be used, and the memory management function provided by the OS can be used, so interference from other applications can be prevented, and reliability and availability can be improved. This is because it can be increased.

図9は、図2の構成の大部分をOSで構成した例を示している。例えば、カーネル空間
で実装する構成の場合、OS内のモジュールがアプリケーションプログラムより優先的に
実行が行わるOSでは、ユーザ空間で実装されるよりも、性能で有利になる。特に、リア
ルタイム性が必要となる高ビットレートでのコンテンツ処理を行う場合には特に有効と考
えられる。
FIG. 9 shows an example in which most of the configuration of FIG. 2 is configured by an OS. For example, in the case of a configuration implemented in a kernel space, an OS in which modules in the OS execute preferentially over application programs has an advantage in performance over implementation in a user space. This is particularly effective when content processing is performed at a high bit rate that requires real-time performance.

この2つの構成において、プラットホーム依存となるのは汎用システムインタフェース
(920,931)、及びデータアクセスモジュールマネージャ(932)であり、これ
以外の本実施例に属するプログラムモジュールはプラットホームに依存しない。なぜなら
ば、ハードウェアやOSの相違により異なるOSの機能利用手順や、デバイスのアクセス
方法の差異を該モジュールが吸収して、該モジュール提供する汎用化されたインタフェー
スを利用することでフラットホームが提供する機能を利用することが可能だからである。
In these two configurations, the general system interfaces (920, 931) and the data access module manager (932) are dependent on the platform, and other program modules belonging to the present embodiment do not depend on the platform. This is because the module absorbs differences in the function usage procedures and device access methods due to differences in hardware and OS, and provides a flat home by using the generalized interface provided by the module. It is because it is possible to use the function to do.

なお、いずれの構成を採用するかは、用途、ハードウェア構成、及び開発工数などを考
慮して決められるべきである。例えば、CPUの性能が低いプラットホームでの実装、あ
るいは高い性能が要求される場合は、デバッグなどは多少困難になるが、高性能を実現す
ることが比較的容易な図9のカーネル空間での実装が考えられる。逆に、CPUが十分に
早くメモリ等の実行リソースが十分に利用できる場合や、高性能が要求されない場合等は
、実装が容易な図8のユーザ空間のような構成とすることが考えられる。
Which configuration is to be adopted should be determined in consideration of the application, hardware configuration, development man-hours, and the like. For example, when implementation on a platform with low CPU performance or high performance is required, debugging is somewhat difficult, but implementation in the kernel space of FIG. 9 is relatively easy to achieve high performance. Can be considered. On the other hand, when the CPU can sufficiently use execution resources such as a memory sufficiently quickly or when high performance is not required, it can be considered to have a configuration like the user space of FIG.

本技術は、例えば動画や音声処理等のストリーミング処理に利用可能である。例えば、
放送機器、受信機、録画・録音機器、及び監視カメラなどに適用可能である。
The present technology can be used for streaming processing such as moving image and audio processing. For example,
It can be applied to broadcasting equipment, receivers, recording / recording equipment, surveillance cameras, and the like.

処理ポイント間のデータフローとして構成されたデータ処理の処理フローを示した構成図Configuration diagram showing the processing flow of data processing configured as a data flow between processing points 本実施例の要素の全体構成を示した構成図The block diagram which showed the whole structure of the element of a present Example ハードウェア構成を示した構成図Configuration diagram showing hardware configuration 本実施例の処理ポイントの定義を示した構成図The block diagram which showed the definition of the processing point of a present Example 本実施例の制御インタフェースを示した図The figure which showed the control interface of a present Example 本実施例の処理ポイントのスケジューリング機能の処理ステップを示したフローチャートThe flowchart which showed the processing step of the scheduling function of the processing point of a present Example 記憶装置に記憶されハードウェアデコーダを用いて復号化された映像フィルタを提示するためのデータ処理のフローの例を示した構成概要図Configuration outline diagram showing an example of a flow of data processing for presenting a video filter stored in a storage device and decoded using a hardware decoder オペレーティングシステムのアプリケーションレベルで実行させるための本実施例の実装形態例を示した構成図Configuration diagram showing an example of implementation of the present embodiment for execution at the application level of the operating system オペレーティングシステムのカーネルレベルで実行させるための本実施例の実装形態例を示した構成図Configuration diagram showing an example of implementation of this embodiment for execution at the kernel level of the operating system 記憶装置に記憶されハードウェアデコーダを用いて復号化された映像フィルタを提示するためのデータ処理のフローの例を示した構成図The block diagram which showed the example of the flow of the data processing for showing the video filter memorize | stored in the memory | storage device and decoded using the hardware decoder スケジュール時間を管理するテーブルの構成を示した図Figure showing the configuration of the table that manages the schedule time データオブジェクトの構成を示した図Diagram showing the structure of the data object データアクセスモジュールIDとデータアクセスモジュール管理情報のアドレスの対応を管理するテーブルの構成を示した図The figure which showed the structure of the table which manages a response | compatibility with the address of data access module ID and data access module management information データ処理モジュールIDとデータ処理モジュール管理情報のアドレスの対応を管理するテーブルの構成を示した図The figure which showed the structure of the table which manages a response | compatibility of data processing module ID and the address of data processing module management information ストリーム処理を構築する手順を示したフローFlow showing the procedure for building stream processing ピアモジュールの構成を示した図Diagram showing peer module configuration リンクモジュールの構成を示した図Diagram showing link module configuration ストリーム処理の構成を示した図Diagram showing stream processing configuration

符号の説明Explanation of symbols

100 カメラ、110 マイクロフォン、120 データを取り出すステップ、121
カメラを使って映像データにアクセスするポイント、122 マイクロフォンを使って
音声データにアクセスするポイント、130 映像データと音声データを同期させ多重化
するステップ、131 単一の処理ポイント、140 データを提示するステップ、14
1 単一の処理ポイント、150 データを記録するステップ、160 ハードウェアデ
ータデコーダ、170 ディスプレイ、180 スピーカ、190 記憶装置
100 camera, 110 microphone, 120 step of retrieving data, 121
Points for accessing video data using a camera, 122 points for accessing audio data using a microphone, 130 steps for synchronizing and multiplexing video data and audio data, 131 single processing points, 140 steps for presenting data , 14
1 single processing point, 150 steps to record data, 160 hardware data decoder, 170 display, 180 speakers, 190 storage device

Claims (18)

データの入力装置とデータの出力装置と各処理モジュールを格納した記憶部と命令を発
行する命令発行部と前記処理モジュールを用いて処理を実行する演算処理部とを有するデ
ータ処理装置におけるデータ処理方法であって、
前記命令発行部から発行された第1の命令に基づき、前記データを処理するのに必要な
少なくとも1以上の処理を特定し、
前記特定された処理に必要な処理モジュールを前記記憶部に生成し、
リンクモジュールを用い前記処理モジュールを接続して、前記処理を実行するための処
理フローを前記記憶部に生成し、
前記命令発行部から発行された第2の命令に基づき、前記入力装置から入力されたデー
タが前記処理フローの開始部に入力されて、前記演算処理部により前記処理フローが実行
され、
前記処理フローが実行された処理結果が前記出力装置から出力されることを特徴とする
データ処理方法。
Data processing method in data processing apparatus having data input device, data output device, storage unit storing each processing module, instruction issuing unit for issuing command, and arithmetic processing unit for executing processing using said processing module Because
Identifying at least one or more processes necessary to process the data based on a first instruction issued from the instruction issuing unit;
A processing module necessary for the specified processing is generated in the storage unit,
Connecting the processing modules using a link module, generating a processing flow for executing the processing in the storage unit,
Based on the second command issued from the command issuing unit, data input from the input device is input to the start of the processing flow, and the processing flow is executed by the arithmetic processing unit,
A data processing method, wherein a processing result obtained by executing the processing flow is output from the output device.
請求項1記載のデータ処理方法であって、
前記処理モジュールは、前記入力装置からデータを入力あるいは前記出力装置へデータを
出力するデータアクセスモジュールと、前記データアクセスモジュールを介して入力され
たデータに所定の処理を実行した後に該処理後のデータを他の処理モジュール出力するデ
ータ処理モジュールとを有することを特徴とするデータ処理方法。
A data processing method according to claim 1, wherein
The processing module includes: a data access module that inputs data from the input device or outputs data to the output device; and a data that has been processed after executing a predetermined process on the data input via the data access module And a data processing module for outputting the data to another processing module.
請求項2記載のデータ処理方法であって、
前記データ処理モジュールは、前記リンクモジュールからデータを入力し、所定の処理を
実行後に該実行後のデータを前記データアクセスモジュールに出力する第1の処理部と、
前記データアクセスモジュールから入力されたデータを他の処理モジュール出力する第2
の処理部とを有することを特徴とするデータ処理方法。
A data processing method according to claim 2, comprising:
The data processing module receives data from the link module, and executes a predetermined process, and then outputs the post-execution data to the data access module;
A second for outputting the data input from the data access module to another processing module;
A data processing method.
請求項3記載のデータ処理方法であって、
前記データアクセスモジュールは、前記第1の処理部から送信されるデータの入出力要求
を前記入力装置あるいは出力装置へ送信する入出力実行処理部と、前記入出力要求により
取得したデータを前記第2の処理部へ出力する入出力完了処理部とを有することを特徴と
するデータ処理方法。
A data processing method according to claim 3, wherein
The data access module includes: an input / output execution processing unit that transmits an input / output request for data transmitted from the first processing unit to the input device or the output device; and the data acquired by the input / output request A data processing method comprising: an input / output completion processing unit for outputting to the processing unit.
請求項3記載のデータ処理方法であって、
データ処理管理モジュールおよび処理の順序を規定したストリームテーブルをさらに有
し、
前記第1の処理部は、
前記命令発行部から通知されたビットレートと当該第1の処理部における処理を行う単位
であるブロックサイズに基づき、当該処理モジュールが次に起動される時刻を算出し、前
記ストリームテーブルに登録することを特徴とするデータ処理方法。
A data processing method according to claim 3, wherein
A data processing management module and a stream table that defines a processing order;
The first processing unit includes:
Based on the bit rate notified from the command issuing unit and the block size, which is a unit for processing in the first processing unit, calculates the time when the processing module is activated next and registers it in the stream table A data processing method characterized by the above.
請求項5記載のデータ処理方法であって、
前記データ処理管理モジュールは、前記ストリームテーブルを参照し、
前記ストリームテーブルに登録された処理を一つの実行コンテキストで実行することを
特徴とするデータ処理方法。
A data processing method according to claim 5, wherein
The data processing management module refers to the stream table,
A data processing method comprising: executing processing registered in the stream table in one execution context.
データ処理装置であって、
データの入力装置と、
データの出力装置と、
処理モジュールと当該処理モジュールを接続するリンクモジュール、およびデータ処理
管理モジュールを格納した記憶部と、
命令を発行する命令発行部と、
前記処理モジュールを用いて処理を実行する演算処理部とを有し、
前記データ処理管理モジュールは、
前記命令発行部から発行された第1の命令に基づき、前記データを処理するのに必要な
少なくとも1以上の処理を特定して、該特定された処理に必要な処理モジュールを前記記
憶部に生成し、
前記リンクモジュールを用い前記処理モジュールを接続して、前記処理を実行するため
の処理フローを前記記憶部に生成し、
前記命令発行部から発行された第2の命令に基づき、前記入力装置からデータを入力し
て前記演算処理部により前記処理フローを実行し、前記処理フローが実行された処理結果
を前記出力装置へ出力することを特徴とするデータ処理装置。
A data processing device,
A data input device;
A data output device;
A storage module storing a processing module, a link module connecting the processing module, and a data processing management module;
An instruction issuing unit for issuing instructions;
An arithmetic processing unit that executes processing using the processing module;
The data processing management module includes:
Based on the first instruction issued from the instruction issuing unit, at least one process necessary for processing the data is specified, and a processing module required for the specified process is generated in the storage unit And
Connecting the processing modules using the link module, generating a processing flow for executing the processing in the storage unit;
Based on the second command issued from the command issuing unit, data is input from the input device, the processing flow is executed by the arithmetic processing unit, and a processing result obtained by executing the processing flow is sent to the output device. A data processing apparatus that outputs the data.
請求項7記載のデータ処理装置であって、
前記処理モジュールは、前記入力装置からデータを入力あるいは前記出力装置へデータを
出力するデータアクセスモジュールと、前記データアクセスモジュールを介して入力され
たデータに所定の処理を実行した後に該処理後のデータを他の処理モジュール出力するデ
ータ処理モジュールとを有することを特徴とするデータ処理装置。
The data processing apparatus according to claim 7, wherein
The processing module includes: a data access module that inputs data from the input device or outputs data to the output device; and a data that has been processed after executing a predetermined process on the data input via the data access module And a data processing module for outputting the data to another processing module.
請求項8記載のデータ処理装置であって、
前記データ処理モジュールは、前記リンクモジュールからデータを入力し、所定の処理を
実行後に該実行後のデータを前記データアクセスモジュールに出力する第1の処理部と、
前記データアクセスモジュールから入力されたデータを他の処理モジュール出力する第2
の処理部とを有することを特徴とするデータ処理装置。
The data processing apparatus according to claim 8, wherein
The data processing module receives data from the link module, and executes a predetermined process, and then outputs the post-execution data to the data access module;
A second for outputting the data input from the data access module to another processing module;
A data processing apparatus.
請求項9記載のデータ処理装置であって、
前記データアクセスモジュールは、前記第1の処理部から送信されるデータの入出力要求
を前記入力装置あるいは出力装置へ送信する入出力実行処理部と、前記入出力要求により
取得したデータを前記第2の処理部へ出力する入出力完了処理部とを有することを特徴と
するデータ処理装置。
The data processing apparatus according to claim 9, wherein
The data access module includes: an input / output execution processing unit that transmits an input / output request for data transmitted from the first processing unit to the input device or the output device; and the data acquired by the input / output request And an input / output completion processing unit for outputting to the processing unit.
請求項9記載のデータ処理装置であって、
データ処理管理モジュールおよび処理の順序を規定したストリームテーブルをさらに有
し、
前記第1の処理部は、
前記命令発行部から通知されたビットレートと当該第1の処理部における処理を行う単位
であるブロックサイズに基づき、当該処理モジュールが次に起動される時刻を算出し、前
記ストリームテーブルに登録することを特徴とするデータ処理装置。
The data processing apparatus according to claim 9, wherein
A data processing management module and a stream table that defines a processing order;
The first processing unit includes:
Based on the bit rate notified from the command issuing unit and the block size, which is a unit for processing in the first processing unit, calculates the time when the processing module is activated next and registers it in the stream table A data processing apparatus.
請求項11記載のデータ処理装置であって、
前記データ処理管理モジュールは、前記ストリームテーブルを参照し、
前記ストリームテーブルに登録された処理を一つの実行コンテキストで実行することを
特徴とするデータ処理装置。
A data processing apparatus according to claim 11, comprising:
The data processing management module refers to the stream table,
A data processing apparatus, wherein processing registered in the stream table is executed in one execution context.
命令を発行する命令発行部とデータの入力装置と出力装置とを有する計算機におけるデ
ータ処理プログラムであって、計算機に、
前記命令発行部から発行された第1の命令に基づき、前記データを処理するのに必要な
少なくとも1以上の処理を特定する工程と、
前記特定された処理に必要な処理モジュールを前記記憶部に生成する工程と、
リンクモジュールを用い前記処理モジュールを接続して、前記処理を実行するための処
理フローを前記記憶部に生成する工程と、
前記命令発行部から発行された第2の命令に基づき、前記入力装置から入力されたデー
タが前記処理フローの開始部に入力されて、前記演算処理部により前記処理フローが実行
される工程と、
前記処理フローが実行された処理結果が前記出力装置から出力されること工程とを実行
させるためのデータ処理プログラム。
A data processing program in a computer having an instruction issuing unit for issuing an instruction, a data input device, and an output device,
Identifying at least one or more processes required to process the data based on a first instruction issued from the instruction issuing unit;
Generating a processing module necessary for the specified processing in the storage unit;
Connecting the processing modules using a link module and generating a processing flow for executing the processing in the storage unit;
Based on a second command issued from the command issuing unit, data input from the input device is input to the start of the processing flow, and the processing flow is executed by the arithmetic processing unit;
The data processing program for performing the process that the process result by which the said process flow was performed is output from the said output device.
請求項13記載のデータ処理プログラムであって、
前記処理モジュールは、前記入力装置からデータを入力あるいは前記出力装置へデータを
出力するデータアクセスモジュールと、前記データアクセスモジュールを介して入力され
たデータに所定の処理を実行した後に該処理後のデータを他の処理モジュール出力するデ
ータ処理モジュールとを有することを特徴とするデータ処理プログラム。
A data processing program according to claim 13,
The processing module includes: a data access module that inputs data from the input device or outputs data to the output device; and a data that has been processed after executing a predetermined process on the data input via the data access module And a data processing module for outputting the data to another processing module.
請求項14記載のデータ処理プログラムであって、
前記データ処理モジュールは、前記リンクモジュールからデータを入力し、所定の処理を
実行後に該実行後のデータを前記データアクセスモジュールに出力する第1の処理部と、
前記データアクセスモジュールから入力されたデータを他の処理モジュール出力する第2
の処理部とを有することを特徴とするデータ処理プログラム。
A data processing program according to claim 14, wherein
The data processing module receives data from the link module, and executes a predetermined process, and then outputs the post-execution data to the data access module;
A second for outputting the data input from the data access module to another processing module;
A data processing program.
請求項15記載のデータ処理プログラムであって、
前記データアクセスモジュールは、前記第1の処理部から送信されるデータの入出力要求
を前記入力装置あるいは出力装置へ送信する入出力実行処理部と、前記入出力要求により
取得したデータを前記第2の処理部へ出力する入出力完了処理部とを有することを特徴と
するデータ処理プログラム。
A data processing program according to claim 15,
The data access module includes: an input / output execution processing unit that transmits an input / output request for data transmitted from the first processing unit to the input device or the output device; and the data acquired by the input / output request A data processing program comprising an input / output completion processing unit for outputting to the processing unit.
請求項15記載のデータ処理プログラムであって、
データ処理管理モジュールおよび処理の順序を規定したストリームテーブルをさらに有
し、
前記第1の処理部は、
前記命令発行部から通知されたビットレートと当該第1の処理部における処理を行う単位
であるブロックサイズに基づき、当該処理モジュールが次に起動される時刻を算出し、前
記ストリームテーブルに登録することを特徴とするデータ処理プログラム。
A data processing program according to claim 15,
A data processing management module and a stream table that defines a processing order;
The first processing unit includes:
Based on the bit rate notified from the command issuing unit and the block size, which is a unit for processing in the first processing unit, calculates the time when the processing module is activated next and registers it in the stream table A data processing program.
請求項17記載のデータ処理プログラムであって、
前記データ処理管理モジュールは、前記ストリームテーブルを参照し、
前記ストリームテーブルに登録された処理を一つの実行コンテキストで実行することを
特徴とするデータ処理プログラム。
A data processing program according to claim 17,
The data processing management module refers to the stream table,
A data processing program for executing processing registered in the stream table in one execution context.
JP2008286048A 2008-11-07 2008-11-07 Data processing device and its method Pending JP2009116881A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008286048A JP2009116881A (en) 2008-11-07 2008-11-07 Data processing device and its method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008286048A JP2009116881A (en) 2008-11-07 2008-11-07 Data processing device and its method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004109599A Division JP4285307B2 (en) 2004-04-02 2004-04-02 Data processing apparatus and method

Publications (1)

Publication Number Publication Date
JP2009116881A true JP2009116881A (en) 2009-05-28

Family

ID=40783893

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008286048A Pending JP2009116881A (en) 2008-11-07 2008-11-07 Data processing device and its method

Country Status (1)

Country Link
JP (1) JP2009116881A (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11237993A (en) * 1998-02-20 1999-08-31 Matsushita Electric Ind Co Ltd Method and device for controlling task priority
JP2002335426A (en) * 2001-05-07 2002-11-22 Nippon Hoso Kyokai <Nhk> Video/audio processor, and method for configuring video/ audio processing software
JP2002351678A (en) * 2001-05-28 2002-12-06 Atr Adaptive Communications Res Lab Scheduling method in continuous media stream processing
JP2003303102A (en) * 2002-04-08 2003-10-24 Matsushita Electric Ind Co Ltd Image processing device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11237993A (en) * 1998-02-20 1999-08-31 Matsushita Electric Ind Co Ltd Method and device for controlling task priority
JP2002335426A (en) * 2001-05-07 2002-11-22 Nippon Hoso Kyokai <Nhk> Video/audio processor, and method for configuring video/ audio processing software
JP2002351678A (en) * 2001-05-28 2002-12-06 Atr Adaptive Communications Res Lab Scheduling method in continuous media stream processing
JP2003303102A (en) * 2002-04-08 2003-10-24 Matsushita Electric Ind Co Ltd Image processing device

Similar Documents

Publication Publication Date Title
EP2160685B1 (en) Digital data management using shared memory pool
JP2007534279A (en) Systems and methods for using graphics hardware for real time 2D and 3D, single and high definition video effects
KR20060008896A (en) Resource management method and apparatus
WO2019071678A1 (en) Live broadcasting method and device
JP2006259898A (en) I/o controller, signal processing system and data transferring method
JP4285307B2 (en) Data processing apparatus and method
JPWO2007023683A1 (en) Media processing method and media processing program
JP5506250B2 (en) Stream decoding apparatus and stream decoding method
US7882510B2 (en) Demultiplexer application programming interface
JP2009116881A (en) Data processing device and its method
CN113542765A (en) Media data jumping continuous playing method and display equipment
JP2005275643A (en) Contents data processor, and method
US9547612B2 (en) Method and architecture for data channel virtualization in an embedded system
KR20100029010A (en) Multiprocessor systems for processing multimedia data and methods thereof
CN114915810A (en) Media asset pushing method and intelligent terminal
KR101085393B1 (en) Method and apparatus for executing command to multitasking a plurality of process
RU2351002C2 (en) Demultiplexer application program interface
KR101180784B1 (en) apparatus for automatically creating operation sequence diagram of program based on component
CN117615191A (en) Multimedia resource playing method and playing equipment
CN117857872A (en) Memory processing method and display device
JP2009289238A (en) Data processing system and storage control method
JP5744605B2 (en) Information processing apparatus and information processing method
CN114915818A (en) Media asset pushing method and intelligent terminal
JP2010219672A (en) Editing system, recording and reproducing device, and video material editing method
JP2005236466A (en) Information processor and processing method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120508