JP2007524156A - Block processing of input data in a graphical programming environment - Google Patents

Block processing of input data in a graphical programming environment Download PDF

Info

Publication number
JP2007524156A
JP2007524156A JP2006547439A JP2006547439A JP2007524156A JP 2007524156 A JP2007524156 A JP 2007524156A JP 2006547439 A JP2006547439 A JP 2006547439A JP 2006547439 A JP2006547439 A JP 2006547439A JP 2007524156 A JP2007524156 A JP 2007524156A
Authority
JP
Japan
Prior art keywords
block
data
input data
processing
blocks
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.)
Granted
Application number
JP2006547439A
Other languages
Japanese (ja)
Other versions
JP4892354B2 (en
Inventor
ホーマン ザリンコーブ,
ドナルド, ポール, 2世 オリフィーノ,
ナーバン ルースラモールシー,
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.)
MathWorks Inc
Original Assignee
MathWorks Inc
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 MathWorks Inc filed Critical MathWorks Inc
Publication of JP2007524156A publication Critical patent/JP2007524156A/en
Application granted granted Critical
Publication of JP4892354B2 publication Critical patent/JP4892354B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Geometry (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computer Hardware Design (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

グラフィカルプログラミング環境における入力データのブロック処理を実行するための方法及びシステムを開示する。処理対象の前記入力データが、複数のブロックに分割される。前記入力データの各ブロックが、前記入力データの各ブロックを処理するためのデータ処理装置へと送られる。処理された前記データの複数のブロックは、結合されて出力データを生成する。前記出力データのサイズが前記入力データのサイズよりも小さいか又はこれと等しい場合には、前記出力データが前記入力データに上書きされる前記入力データのインプレース処理を本発明が行ってもよい。前記入力データのインプレース処理においては、前記ブロック処理において前記入力データを処理する際のメモリ領域が節約されるように、前記出力データがメモリ領域を前記入力データと共有してもよい。  A method and system for performing block processing of input data in a graphical programming environment is disclosed. The input data to be processed is divided into a plurality of blocks. Each block of the input data is sent to a data processing device for processing each block of the input data. The plurality of processed blocks of data are combined to produce output data. When the size of the output data is smaller than or equal to the size of the input data, the present invention may perform in-place processing of the input data in which the output data is overwritten on the input data. In the in-place process of the input data, the output data may share a memory area with the input data so that a memory area when the input data is processed in the block process is saved.

Description

関連出願Related applications

本出願は、その内容が本願中に引用をもって援用された、2003年12月22日提出の米国特許出願第10/744,654号の利益を主張するものである。   This application claims the benefit of US patent application Ser. No. 10 / 744,654, filed Dec. 22, 2003, the contents of which are incorporated herein by reference.

本発明は、概略的にはグラフィカルプログラミング環境に関し、より詳細には、グラフィカルプログラミング環境における入力データのブロック処理の実行方法及びシステムに関する。前記入力データのブロック処理においては、入力データが、前記入力データのより小さな部分である複数のデータブロックに分割され、前記複数のデータブロックがそれぞれ処理される。   The present invention relates generally to a graphical programming environment, and more particularly to a method and system for performing block processing of input data in a graphical programming environment. In the block processing of the input data, the input data is divided into a plurality of data blocks which are smaller portions of the input data, and the plurality of data blocks are processed.

コンピュータ、マイクロコントローラ、FPGA及びカスタムハードウェアなどの特定用途向け計算ハードウェア上で実行可能な計算が記述されたブロック図には、様々な種類がある。そのような多様なブロック図には、マサチューセッツ州ネーティックのThe MathWorks社製のSimulink(登録商標)などの時間ベースブロック図、マサチューセッツ州ネーティックのThe MathWorks社製のStateflow(登録商標)などの状態ベースフローチャート及びデータフロー図が含まれる。これらの様々な形のブロック図は、これらの図を実行する方法が記されているという点で共通している。   There are various types of block diagrams that describe computations that can be performed on application specific computing hardware such as computers, microcontrollers, FPGAs, and custom hardware. Such various block diagrams include time-based block diagrams such as Simlink (registered trademark) manufactured by The MathWorks of Natick, Massachusetts, and states such as Stateflow (registered trademark) manufactured by The MathWorks of Natick, Massachusetts. A base flow chart and a data flow chart are included. These various forms of block diagrams are common in that they describe how to perform these diagrams.

これまでに、技術者や科学者らは、フィードバック制御理論及び信号処理などの数多くの科学的分野において、時間ベースブロック図を用いて動的システムを学習、設計、デバッグ及び改良してきた。挙動が経時的に変化する特徴を持つ動的システムは、実社会における多くのシステムを代表するシステムである。Simulink(登録商標)などのソフトウェアパッケージの出現により、時間ベースブロック図によるモデリングの重要性は、ここ数年の間に一層高まっている。これらのパッケージが提供する洗練されたソフトウェアプラットフォームに含まれる充実した支援ツールにより、動的システムの分析及び設計を効率的、体系的にかつ低コストで行うことが可能である。   To date, engineers and scientists have used time-based block diagrams to learn, design, debug, and improve dynamic systems in many scientific fields, such as feedback control theory and signal processing. A dynamic system having a characteristic that behavior changes with time is a system that represents many systems in the real world. With the advent of software packages such as Simulink, time-based block diagram modeling has become increasingly important over the last few years. The rich support tools included in the sophisticated software platform provided by these packages enable efficient, systematic and low-cost analysis and design of dynamic systems.

動的システムとは(それが自然のものであっても人工のものであっても)、その応答が、いかなる所定の時点においても、加えられた刺激、その現在の状態及び現在の時点の関数であるシステムである。そのようなシステムは、単純なシステムから高度に複雑なシステムまで多岐にわたる。物理的な動的システムには、落下物体、地球の自転、(筋肉、関節などの)生体力学システム、(遺伝子の発現、タンパク質経路などの)生化学的システム、気象及び気候パターンシステムなどが含まれる。人工の又は工学的な動的システムの例には、弾むボール、片端に分銅が結び付けられたばね、自動車、航空機、大型電化製品の制御システム、通信ネットワーク、可聴信号処理、原子炉、株式市場などが含まれる。工学、自然科学、教育及び経済学などの様々な分野の専門家らは、動的システムの数学的モデルを構築することにより、前記システムの時間の経過に伴う挙動の変化をよりよく理解しようとする。そのような数学的モデルは「より優れた」システムの構築を支援するが、ここで「より優れた」とは、例えば品質、製品化までの時間、コスト、速さ、大きさ、電力消費、堅牢性などの様々な特性の基準によって定義されうる。これらの数学的モデルは、(人体又は自動車のアンチロックブレーキシステムなどの)既存のシステムの分析、デバッグ及び修理も支援する。これらのモデルは、物理的システムを司る原理に基づいて他者を教育する目的を果たす場合もある。これらのモデル及び結果は、多くの場合、人間同士の科学的コミュニケーション媒体として利用される。「モデルベースデザイン」という用語は、動的システムの開発、分析及び検証におけるブロック図モデルの利用を意味するものとして用いられる。   A dynamic system (whether it is natural or artificial) is a function whose response is applied at any given time, its current state and current time. It is a system that is. Such systems range from simple systems to highly complex systems. Physical dynamic systems include falling objects, earth rotation, biomechanical systems (such as muscles and joints), biochemical systems (such as gene expression and protein pathways), weather and climate pattern systems, etc. It is. Examples of artificial or engineered dynamic systems include bouncing balls, springs with weights attached to one end, automobiles, aircraft, control systems for large appliances, communication networks, audible signal processing, nuclear reactors, stock markets, etc. included. Experts from various fields, such as engineering, natural sciences, education and economics, try to better understand changes in the behavior of the system over time by building mathematical models of the dynamic system. To do. Such mathematical models help to build “better” systems, where “better” means, for example, quality, time to market, cost, speed, size, power consumption, It can be defined by criteria of various properties such as robustness. These mathematical models also support analysis, debugging and repair of existing systems (such as human or automotive anti-lock braking systems). These models may serve the purpose of educating others based on the principles governing the physical system. These models and results are often used as a medium for scientific communication between humans. The term “model-based design” is used to mean the use of a block diagram model in the development, analysis and verification of dynamic systems.

グラフィカルプログラミング環境が、データを入力して所望の出力データセットを得る一連のデータ操作を実行する複数のカスケード状の構成要素からなるデータ処理システムを実装するためのツールを提供する場合もある。多くの用途においては、そのようなデータ処理システムは、入力データの処理をリアルタイムに実行して出力データを生成するために必要とされる。   A graphical programming environment may provide a tool for implementing a data processing system consisting of a plurality of cascaded components that perform a series of data operations that input data to obtain a desired output data set. In many applications, such a data processing system is required to perform input data processing in real time to produce output data.

イメージ又はビデオ処理システムを含めた多くの用途においては、入力データは多次元のマトリックスを持ち、大量の処理対象のデータを含む。そのような大量の信号の処理済みのコピーを一時的に記憶するには、大きなメモリ容量が必要とされる。或いは、上記動作を、入力信号をデータブロックと呼ばれるより小さな複数のセグメントに分割し、各データブロックに対して同じ処理を行って、処理された信号を再構築することによって実行することも可能である。このような種類の処理はブロック処理として知られている。ブロック処理では、データブロックのサイズが入力信号よりもはるかに小さいので、一時的記憶に要するメモリ容量が大幅に減少される。   In many applications, including image or video processing systems, the input data has a multidimensional matrix and contains a large amount of data to be processed. Large memory capacity is required to temporarily store a processed copy of such a large amount of signal. Alternatively, the above operation can be performed by dividing the input signal into smaller segments called data blocks, performing the same processing on each data block, and reconstructing the processed signal. is there. This type of processing is known as block processing. In block processing, the size of the data block is much smaller than the input signal, so the memory capacity required for temporary storage is greatly reduced.

発明の概要
本発明は、グラフィカルプログラミング環境における入力データのブロック処理を実行するための方法及びシステムを提供する。本発明のブロック処理においては、入力データはいかなる次元数を有してもよい。処理対象の入力信号は、複数のデータブロックに分割される。ユーザが入力データのデータブロックへの分割方法を指定してもよく、例えば処理対象の入力データのサイズ及びデータブロックのサイズをデザインすることで、入力信号がある総数の処理対象のデータブロックへと分割されてもよい。入力データの各ブロックを処理するためのデータ処理関数をユーザが指定してもよい。処理済みのデータの複数のブロックは、再構築されて出力データを生成する。出力データのサイズが入力データのサイズよりも小さいか又はこれと等しい場合には、本発明は、処理済みのデータのブロックが入力データのブロックに上書きされる、入力データのインプレースブロック処理を実行することが可能である。本発明のブロック処理における入力データの処理に要するメモリ領域が節約されるように、出力データと入力データとがメモリ領域を共有してもよい。
SUMMARY OF THE INVENTION The present invention provides a method and system for performing block processing of input data in a graphical programming environment. In the block processing of the present invention, the input data may have any number of dimensions. The input signal to be processed is divided into a plurality of data blocks. The user may specify the method of dividing the input data into data blocks. For example, by designing the size of the input data to be processed and the size of the data block, the input signal can be divided into a total number of data blocks to be processed. It may be divided. A user may specify a data processing function for processing each block of input data. Multiple blocks of processed data are reconstructed to produce output data. If the size of the output data is less than or equal to the size of the input data, the present invention performs in-place block processing of the input data, where the processed data block is overwritten with the input data block Is possible. The output data and the input data may share the memory area so that the memory area required for the input data processing in the block processing of the present invention is saved.

本発明の一局面によれば、グラフィカルプログラミング環境を提供する電子装置における入力データのブロック処理を実行するための一方法が提供される。図形要素が前記電子装置のディスプレイ上に表示され、前記図形要素にデータを入力できるようになっている。前記図形要素は、入力データのブロック処理を実行するブロック処理モデルを表している。ユーザによる前記図形要素の操作に応答して、前記ブロック処理モデルの制御データを入力するためのユーザインターフェースが設けられる。前記制御データは、前記ブロック処理モデルの動作モードを設定する。前記ブロック処理モデルは、前記ブロック処理モデルの前記制御データに基づき、前記入力データのブロック処理を実行する。   According to one aspect of the invention, a method is provided for performing block processing of input data in an electronic device that provides a graphical programming environment. Graphic elements are displayed on the display of the electronic device, and data can be input to the graphic elements. The graphic element represents a block processing model for executing block processing of input data. A user interface is provided for inputting control data of the block processing model in response to an operation of the graphic element by the user. The control data sets an operation mode of the block processing model. The block processing model executes block processing of the input data based on the control data of the block processing model.

本発明の別の一局面によれば、グラフィカルプログラミング環境を提供する電子装置における入力データのブロック処理を実行するための一方法が提供される。入力データが、ユーザによって入力された制御データに基づき、複数のブロックに分割される。あるブロックを前記入力信号内で特定するために、前記入力データの前記ブロックに対してインデックスが生成される。前記データブロックは、前記ブロックの前記インデックスに基づいて選択され、処理される。処理された前記データは、出力データ内のある位置へと割り当てられるが、前記出力データ内での前記処理されたデータの位置は、前記ブロックの前記インデックスによって決定される。   According to another aspect of the invention, a method is provided for performing block processing of input data in an electronic device that provides a graphical programming environment. The input data is divided into a plurality of blocks based on the control data input by the user. In order to identify a block in the input signal, an index is generated for the block of the input data. The data block is selected and processed based on the index of the block. The processed data is assigned to a position in the output data, but the position of the processed data in the output data is determined by the index of the block.

本発明の更に別の一局面によれば、入力データのブロック処理を実行するためのシステムが提供される。前記システムは、グラフィカルプログラミング環境を提供する電子装置内で実装される。前記システムには、前記入力データを受け取り、前記入力データを複数のデータブロックに分割するためのイテレータが含まれる。前記システムには、前記入力データの一ブロックを処理するためのデータ処理装置も含まれる。前記イテレータは、前記データ処理装置が前記複数のブロックのそれぞれについて前記入力データのデータ処理を繰り返すことを可能にする。   According to still another aspect of the present invention, a system for executing block processing of input data is provided. The system is implemented in an electronic device that provides a graphical programming environment. The system includes an iterator for receiving the input data and dividing the input data into a plurality of data blocks. The system also includes a data processing device for processing one block of the input data. The iterator allows the data processing device to repeat data processing of the input data for each of the plurality of blocks.

本発明の更に別の一局面によれば、グラフィカルプログラミング環境を提供する電子装置における入力データのブロック処理を実行するためのシステムが提供される。前記システムには、前記入力データの各ブロックのポインタを繰り返し生成するためのポインタジェネレータが含まれる。前記システムには、前記ポインタによって指定された前記入力データの各ブロックを処理するためのデータ処理装置も含まれる。前記ポインタは、メモリ領域内での各データブロックの位置を表す。   According to yet another aspect of the invention, a system is provided for performing block processing of input data in an electronic device that provides a graphical programming environment. The system includes a pointer generator for repeatedly generating a pointer for each block of the input data. The system also includes a data processing device for processing each block of the input data specified by the pointer. The pointer represents the position of each data block in the memory area.

本発明は、入力データのブロック処理により、大量のデータのリアルタイムでの処理を可能にする。更に、本発明は、前記入力データのサイズが出力データのサイズよりも大きいか又はこれと等しい場合に、前記入力データのインプレース処理を可能にする。この結果、本発明は、前記入力データの処理に要するメモリ領域を節減させる。   The present invention enables processing of a large amount of data in real time by block processing of input data. Furthermore, the present invention enables in-place processing of the input data when the size of the input data is greater than or equal to the size of the output data. As a result, the present invention saves a memory area required for processing the input data.

発明の詳細な説明
本発明の実施例は、電子装置によって提供されるブロック図プログラミング環境などのグラフィカルプログラミング環境に関する。ブロック図とは、実社会におけるシステムを、弧(線と呼ばれる)によって相互に接続された、図式を含む複数のノード(ブロックと呼ばれる)を用いて表したものである。ブロックは、前記システムによって処理されるデータに対する操作を実行する機能的実体である。線は、前記様々なブロック間でのデータ(信号と呼ばれる)の伝送を表す。ブロック図がグラフィカルプログラミング環境の一例であり、本発明を例えば状態フローチャートプログラミング環境などの別の種類のグラフィカルプログラミング環境に応用可能であることが当業者に理解されよう。
DETAILED DESCRIPTION OF THE INVENTION Embodiments of the present invention relate to a graphical programming environment, such as a block diagram programming environment provided by an electronic device. A block diagram is a representation of a system in the real world using a plurality of nodes (called blocks) containing diagrams connected to each other by arcs (called lines). A block is a functional entity that performs operations on data processed by the system. Lines represent the transmission of data (called signals) between the various blocks. Those skilled in the art will appreciate that a block diagram is an example of a graphical programming environment and that the present invention is applicable to other types of graphical programming environments, such as a state flowchart programming environment.

本発明の実施例のグラフィカルプログラミング環境は、入力データのブロック処理を実行するブロック処理ブロックを提供する。ブロック処理ブロックは、前記ブロック図環境における機能ノードであり、入力データ全体を一度に処理するのではなく、前記入力データをデータブロックと呼ばれるセクション(前記入力信号のより小さな部分)単位で処理する。ブロック処理ブロックは、前記入力データを受け取り、前記ブロック処理ブロックによる処理対象の前記入力データを複数のブロックに分割する。ブロック処理ブロックは、前記入力データの各ブロックを繰り返し処理し、この結果生じた処理済みデータの複数のブロックを結合させて出力データを生成する。本発明の実施例では、ブロック処理ブロックが単一のブロック内に設けられているが、前記ブロック処理が、ブロック処理ブロックの複数の構成要素を含んでもよい複数のブロック単位で実行されてもよいことが当業者に理解されよう。   The graphical programming environment of an embodiment of the present invention provides a block processing block that performs block processing of input data. A block processing block is a functional node in the block diagram environment, and does not process the entire input data at once, but processes the input data in units of sections (smaller portions of the input signal) called data blocks. The block processing block receives the input data and divides the input data to be processed by the block processing block into a plurality of blocks. The block processing block repeatedly processes each block of the input data, and generates output data by combining a plurality of blocks of processed data generated as a result. In the embodiment of the present invention, the block processing block is provided in a single block. However, the block processing may be executed in units of a plurality of blocks which may include a plurality of components of the block processing block. Those skilled in the art will appreciate that.

ブロック処理ブロックは、ユーザによる前記ブロック処理ブロックの動作モードの選択に基づき、入力データのデータ処理を複数のブロックで実行する。前記ブロック処理ブロックの前記動作モードは、データブロックのサイズや処理対象の入力データのサイズなどの前記ブロック処理ブロックのパラメータを入力するユーザによって決定される。出力データのサイズが入力データのサイズよりも小さいか又はこれと等しい場合には、前記ブロック処理ブロックが前記入力データのインプレース処理を実行してもよい。入力データのインプレースブロック処理では、処理済みのデータのブロックが入力データのブロックに上書きされる。この結果、出力データがメモリ領域を入力データと共有するので、前記出力データに要するメモリ領域が節減される。   The block processing block executes data processing of input data in a plurality of blocks based on selection of an operation mode of the block processing block by the user. The operation mode of the block processing block is determined by a user who inputs parameters of the block processing block such as the size of the data block and the size of input data to be processed. When the size of the output data is smaller than or equal to the size of the input data, the block processing block may execute in-place processing of the input data. In the in-place block processing of input data, the processed data block is overwritten with the input data block. As a result, since the output data shares the memory area with the input data, the memory area required for the output data is saved.

図1は、本発明の実施例のモデルを表すために複数のブロックが利用されるグラフィカルプログラミング環境の一例である。環境100には、ブロックライブラリブロック110、エディタ120、シミュレータ130及びコードジェネレータ140が含まれる。コードジェネレータ140が、本発明の実施例のモデル向けのソースコードを生成してもよい。   FIG. 1 is an example of a graphical programming environment in which multiple blocks are utilized to represent a model of an embodiment of the present invention. The environment 100 includes a block library block 110, an editor 120, a simulator 130, and a code generator 140. The code generator 140 may generate source code for the model of the embodiment of the present invention.

ブロックライブラリ110には、システムのモデリング及びシミュレーションを支援する特定用途向けモデルの複数のブロックが含まれる。ブロックライブラリ110内の複数のブロックは、モデリング及びシミュレーションツール130を用いてデザインされたシステムのモデルに組み込まれる。ブロックライブラリ100から供給されるブロックは、本発明の実施例においては長方形のブロックで表される。モデルが他の図形記号又は文字記号で表されてもよいことが当業者に理解されよう。ブロックライブラリ110から供給されるモデルブロックには、入力データをブロック単位で処理するためのブロック処理ブロック300(図3を参照のこと)が含まれる。ブロックライブラリ110に、ブロック処理関数を実行するために組み合わせることの可能な、ブロック処理ブロックの複数の構成要素ブロックが更に含まれてもよい。本発明の実施例のブロック処理が、前記ブロック処理ブロックの複数の構成要素が含まれてもよい複数のブロック単位で実行されてもよいことが当業者に理解されよう。ブロックライブラリ110の例として、マサチューセッツ州ネーティックのThe MathWorks社製のSimulink(登録商標)BlocksetシリーズのDSP Blockset、Fixed−point Blockset及びCommunications Blocksetなどが挙げられる。Blocksetシリーズは、対象システム及び前記対象システムのサブシステム向けモデルの開発及び組み込みのためのモデル及びユーティリティを提供する。   The block library 110 includes a plurality of blocks of application specific models that support system modeling and simulation. A plurality of blocks in the block library 110 are incorporated into a model of the system designed using the modeling and simulation tool 130. The blocks supplied from the block library 100 are represented by rectangular blocks in the embodiment of the present invention. Those skilled in the art will appreciate that the model may be represented by other graphic or character symbols. The model block supplied from the block library 110 includes a block processing block 300 (see FIG. 3) for processing input data in units of blocks. The block library 110 may further include a plurality of component blocks of block processing blocks that can be combined to perform block processing functions. It will be understood by those skilled in the art that the block processing of the embodiment of the present invention may be executed in units of a plurality of blocks that may include a plurality of components of the block processing block. Examples of the block library 110 include the Simulink Blockset series DSP Blockset, Fixed-point Blockset, and Communications Blockset manufactured by The MathWorks of Natick, Massachusetts. The Blockset series provides models and utilities for developing and incorporating models for target systems and subsystems of the target systems.

エディタ120及びシミュレータ130は、対象システムのモデリング、シミュレーション及び分析のためのグラフィカルシミュレーション及びプロトタイピング環境を提供する。エディタ120は、ブロックライブラリ110から供給された複数のブロックを対象システムに組み込む。エディタ120によってデザインされた対象システムは、前記デザインされた対象システムの挙動を分析するために、シミュレータ130によってシミュレートされる。エディタ120及びシミュレータ130の例として、マサチューセッツ州ネーティックのThe MathWorks社製のSimulink(登録商標)が挙げられる。BlocksetはSimulink(登録商標)上で動作する。   Editor 120 and simulator 130 provide a graphical simulation and prototyping environment for modeling, simulation and analysis of the target system. The editor 120 incorporates a plurality of blocks supplied from the block library 110 into the target system. The target system designed by the editor 120 is simulated by the simulator 130 in order to analyze the behavior of the designed target system. An example of editor 120 and simulator 130 is Simulink (registered trademark) manufactured by The MathWorks of Natick, Massachusetts. Blockset operates on Simulink (registered trademark).

Simulink(登録商標)は、ユーザが対象システムのブロック図をデザインし、前記システムの挙動をシミュレートし、前記システムの性能を分析し、前記システムのデザインを改良することを可能にする。Simulink(登録商標)は、ユーザが対象システムのブロック図モデルの製図を可能にするユーザインターフェースを使用して対象システムをデザインすることを可能にする。ブロックライブラリ110内の全てのブロックは、ユーザが対象システムのブロック図を作成する際にユーザによって使用可能である。各ユーザが、このモデルブロックをカスタマイズして、(a)ブロックを何らかのカスタムフォーマットに再構成し、(b)使用していないブロックを削除し、(c)自らがデザインしたカスタムブロックを追加することが可能であってもよい。ブロックが、ブロックライブラリ110から、(マウス又はキーボードなどの)何らかの人間−機械インターフェースを用いてウィンドウ(即ちモデル描画面)へとドラッグされてもよい。Simulink(登録商標)には、対象システムのブロック図表現を描く、編集する、注釈を付ける、保存する、印刷するなどの作業をユーザが実行できるようにするブロック図エディタが含まれる。ブロック図エディタは、ユーザによるブロック図モデルの下書きを可能にする、グラフィカルユーザインターフェース(GUI)の構成要素である。Simulink(登録商標)には、グラフィカルエディタとの対話を可能にする命令セットを有する文字インターフェースも含まれる。ユーザは、この文字インターフェースを用いて、ブロック図の編集作業を自動的に実行する特定のスクリプトを書くことが可能である。Simulink(登録商標)は、ユーザが前記デザインした対象システムをシミュレートして、前記システムの挙動を判定することも可能にする。Simulink(登録商標)には、ブロック図をコンパイル及びリンクして、コード生成及び/又はブロック図モデルのシミュレーションに使用される前記モデルの「メモリ内実行可能な」バージョンを作成するタスクを実行するブロック図実行エンジンが含まれる。   Simulink® allows the user to design a block diagram of the target system, simulate the behavior of the system, analyze the performance of the system, and improve the design of the system. Simulink® allows the user to design the target system using a user interface that allows the drawing of a block diagram model of the target system. All the blocks in the block library 110 can be used by the user when the user creates a block diagram of the target system. Each user customizes this model block, (a) reconfigures the block into some custom format, (b) removes unused blocks, and (c) adds custom blocks designed by him / her. May be possible. Blocks may be dragged from the block library 110 to a window (ie, a model drawing surface) using some human-machine interface (such as a mouse or keyboard). Simulink includes a block diagram editor that allows the user to perform tasks such as drawing, editing, annotating, saving, and printing block diagram representations of the target system. The block diagram editor is a component of a graphical user interface (GUI) that allows a user to draft a block diagram model. Simulink (R) also includes a character interface with an instruction set that allows interaction with a graphical editor. The user can use this character interface to write a specific script that automatically performs block diagram editing operations. Simulink® also allows the user to determine the behavior of the system by simulating the designed target system. Simulink includes a block that performs the task of compiling and linking a block diagram to create an “in-memory executable” version of the model used for code generation and / or simulation of the block diagram model A diagram execution engine is included.

コードジェネレータ140は、エディタ120を用いてデザインされたモデルのブロック図から、カスタマイズ可能なCコードディレクトリを生成する。コードジェネレータ140は、ソースコードを自動的に生成することにより、エディタ120内でデザインされたモデルの迅速なプロトタイピング、ハードウェアインザループシミュレーション及び迅速なデスクトップシミュレーションを可能にする。コード生成ツール140が、組み込まれたシステムアプリケーション向けの有効なソースコードを生成してもよい。ソースコードが、コードジェネレータ140内で生成されるコードの一例であり、コードジェネレータ140が、前記モデル向けの例えばAdaなどの別のコードを生成してもよいことが当業者に理解されよう。マサチューセッツ州ネーティックのThe Mathworks社製のReal−Time Workshopは、コード生成ツール140の一例である。   The code generator 140 generates a customizable C code directory from the model block diagram designed using the editor 120. Code generator 140 automatically generates source code to enable rapid prototyping, hardware-in-the-loop simulation, and rapid desktop simulation of models designed in editor 120. The code generation tool 140 may generate valid source code for embedded system applications. Those skilled in the art will appreciate that the source code is an example of code that is generated within the code generator 140 and that the code generator 140 may generate other code, such as Ada, for the model. Real-Time Workshop from The Mathworks of Natick, Massachusetts is an example of a code generation tool 140.

グラフィカルプログラミング環境100がブロック図プログラミング環境に限定されず、例えば状態フローチャートのグラフィカルプログラミング環境などのいかなるその他のグラフィカルプログラミング環境も含むことが当業者に理解されよう。マサチューセッツ州ネーティックのThe Mathworks社製のStateflow(登録商標)は、状態フローチャートモデリング環境の一例を提供する。Stateflow(登録商標)は、イベント駆動型モデルのモデリング及びデザインのためのグラフィカルな環境を提供する。Stateflow(登録商標)は、複数のモデルの階層的なかつ並列な状態と、前記複数の状態間のイベント駆動型の遷移とをグラフィカルに表現する状態フローチャートをユーザが作成することを可能にする。Stateflow(登録商標)とシームレスにインターフェースされたSimulink(登録商標)が、Stateflow(登録商標)によって作成された状態フローチャートに基づいてモデルを実行し、前記モデルの挙動を分析してもよい。   Those skilled in the art will appreciate that the graphical programming environment 100 is not limited to a block diagram programming environment, but includes any other graphical programming environment, such as a state programming graphical programming environment. Stateflow® from The Mathworks of Natick, Massachusetts provides an example of a state flowchart modeling environment. Stateflow® provides a graphical environment for modeling and designing event-driven models. Stateflow® allows the user to create a state flowchart that graphically represents the hierarchical and parallel states of multiple models and event-driven transitions between the multiple states. Simulink® that interfaces seamlessly with Stateflow® may execute a model based on a state flow chart created by Stateflow® and analyze the behavior of the model.

図2は、本発明の実施例の実施に適した電子装置200の一例である。電子装置200には、ネットワークインターフェース230と、モデム240と、補助記憶装置250と、主記憶装置260と、マイクロプロセッサ270と、モニタ280と、キーボード/マウス290とが含まれる。マイクロプロセッサ270は、グラフィカルプログラミング環境100内のソフトウェアツールが適切に実行されるように、電子装置200の各構成要素を制御する。電子装置200は、キーボード/マウス290を介して、例えばブロック処理ブロック300の動作モードを設定するための制御データなどの、対象システムのデザイン及びシミュレーションの制御に必要なデータを受け取る(図3を参照のこと)。電子装置200は、グラフィカルプログラミング環境100内で生成された結果を、モニタ280に表示する。主記憶装置260は、電子装置200の動作及びグラフィカルプログラミング環境100の実行のためにマイクロプロセッサ270によって迅速にアクセスされることを要するコードを補助記憶装置250から取り出し、これをマイクロプロセッサ270へと送る。補助記憶装置250は通常、アプリケーション向けのソフトウェアツールを格納している。詳細には、補助記憶装置250には、ブロックライブラリ110用のコード251と、エディタ120用のコード252と、シミュレータ130用のコード253とが含まれる。ネットワークインターフェース230及びモデム240は、電子装置200が、例えばインターネット、イントラネット、LAN(ローカルエリアネットワーク)、WAN(ワイドエリアネットワーク)及びMAN(メトロポリタンエリアネットワーク)などの通信ネットワークを介して他の電子装置と通信を行うことを可能にする。このような通信機能により、本発明の分散実装が可能であってもよい。   FIG. 2 is an example of an electronic device 200 suitable for implementing embodiments of the present invention. The electronic device 200 includes a network interface 230, a modem 240, an auxiliary storage device 250, a main storage device 260, a microprocessor 270, a monitor 280, and a keyboard / mouse 290. The microprocessor 270 controls each component of the electronic device 200 so that software tools within the graphical programming environment 100 are properly executed. The electronic device 200 receives data necessary for controlling the design and simulation of the target system, such as control data for setting the operation mode of the block processing block 300, via the keyboard / mouse 290 (see FIG. 3). ) The electronic device 200 displays the result generated in the graphical programming environment 100 on the monitor 280. Main memory 260 retrieves code from auxiliary memory 250 that needs to be accessed quickly by microprocessor 270 for operation of electronic device 200 and execution of graphical programming environment 100 and sends it to microprocessor 270. . The auxiliary storage device 250 normally stores software tools for applications. Specifically, the auxiliary storage device 250 includes a code 251 for the block library 110, a code 252 for the editor 120, and a code 253 for the simulator 130. The network interface 230 and the modem 240 are connected to other electronic devices via a communication network such as the Internet, an intranet, a LAN (Local Area Network), a WAN (Wide Area Network), and a MAN (Metropolitan Area Network). Enables communication. With such a communication function, the distributed implementation of the present invention may be possible.

図3は、図1に図示された本発明の実施例のグラフィカルプログラミング環境100内のブロックライブラリ110によって提供されるブロック処理ブロック300の一例である。ブロック処理ブロック300は、グラフィカルプログラミング環境内でブロック処理動作を実行可能な反復システムを実装する。ブロック処理ブロック300は、入力データを受け取って出力データを生成する。入力データがいかなる次元数を有してもよい。例えば、イメージ又はビデオ処理システムにおいては、入力データはマトリックスの次元数を有し、大量の処理対象のデータを含む。ブロック処理ブロック300には、入力データに対するデータ処理関数を実行するデータ処理装置310を表すサブブロックが含まれる。データ処理装置310の前記データ処理関数が、ユーザによって特定されてもよい。例えば、ブロック処理ブロック300は、単一のDCT(離散コサイン変換)データ処理装置310を用いて、512×512入力データの各8×8ブロックを処理する。   FIG. 3 is an example of a block processing block 300 provided by the block library 110 in the graphical programming environment 100 of the embodiment of the invention illustrated in FIG. Block processing block 300 implements an iterative system capable of performing block processing operations within a graphical programming environment. Block processing block 300 receives input data and generates output data. The input data may have any number of dimensions. For example, in an image or video processing system, the input data has a matrix dimension and contains a large amount of data to be processed. Block processing block 300 includes sub-blocks representing a data processing device 310 that performs a data processing function on input data. The data processing function of the data processing device 310 may be specified by a user. For example, the block processing block 300 processes each 8 × 8 block of 512 × 512 input data using a single DCT (Discrete Cosine Transform) data processor 310.

ブロック処理ブロック300は、入力データを複数のブロックに分割し、前記入力データの各ブロックをデータ処理装置310に送り、処理済みの前記データの各ブロックを出力データ内の適切な位置へと配置することによって、出力データを作成する。ブロック処理ブロック300の動作モードは、ブロック処理ブロック300の、例えばブロックのサイズや、入力データのうちでブロック処理が実行される範囲などのパラメータを特定するユーザによって決定される。ブロック処理ブロック300の前記パラメータは、図4を参照してより詳細に説明される。ブロック処理ブロック300の予め定められた動作モードに基づき、入力データ全体又は入力データの一部分が複数のブロックに分割される。データ処理装置310によって、前記入力データの各ブロックに対してデータ処理関数が実行される。前記入力データの前記複数のブロックの処理に伴って、前記処理済みのデータの複数のブロックを同じ順序で再びアセンブルすることにより、出力データが再構成される。   The block processing block 300 divides the input data into a plurality of blocks, sends each block of the input data to the data processing device 310, and places each block of the processed data at an appropriate position in the output data. As a result, output data is created. The operation mode of the block processing block 300 is determined by a user who specifies parameters of the block processing block 300 such as, for example, the size of the block and the range in which block processing is executed in the input data. The parameters of block processing block 300 are described in more detail with reference to FIG. Based on a predetermined operation mode of the block processing block 300, the entire input data or a part of the input data is divided into a plurality of blocks. A data processing function is executed by the data processing device 310 for each block of the input data. As the blocks of the input data are processed, output data is reconstructed by reassembling the blocks of processed data in the same order.

ブロック処理ブロック300を、イメージ圧縮及び音声コーディングを含めた数多くの用途に利用してもよい。JPEG(ジョイント・フォトグラフィック・エキスパート・グループ)イメージ圧縮法においては、入力された大量のイメージデータがブロック処理によって圧縮可能であるようなJPEGイメージ圧縮アルゴリズムを実行するように、データ処理装置310が選択されてもよい。圧縮段階においては、入力されたイメージは複数のブロックに分割され、各ブロックは、DCT(離散コサイン変換)変換を実行するデータ処理装置310によって処理される。復元段階においては、各ブロックに対して逆DCTが実行され、最終的に出力データが再構成される。ブロック処理ブロック300をMPEG(ムービング・ピクチャー・エキスパート・グループ)ビデオ圧縮で用いてもよいことが当業者に理解されよう。音声コーディングの場合には、音声信号が10乃至30ミリ秒のフレーム内で処理される。通常は、入力されたフレームは2乃至4個のサブフレームに細分化され、データ処理装置310がこれらのサブフレームのサンプルに対して同じ一連の動作を実行可能である。これらの音声コーディングサブフレームのサンプルが、サブフレーム境界をまたいで重複していてもよい。この重複は、下記に図5Aを参照しながらより詳細に説明される。   Block processing block 300 may be utilized for numerous applications, including image compression and audio coding. In the JPEG (Joint Photographic Expert Group) image compression method, the data processor 310 selects to execute a JPEG image compression algorithm in which a large amount of input image data can be compressed by block processing. May be. In the compression stage, the input image is divided into a plurality of blocks, and each block is processed by a data processor 310 that performs a DCT (Discrete Cosine Transform) transformation. In the restoration stage, inverse DCT is performed on each block, and finally output data is reconstructed. One skilled in the art will appreciate that the block processing block 300 may be used with MPEG (Moving Picture Expert Group) video compression. In the case of voice coding, the voice signal is processed within a frame of 10 to 30 milliseconds. Normally, an input frame is subdivided into 2 to 4 subframes, and the data processor 310 can perform the same series of operations on samples of these subframes. These speech coding subframe samples may overlap across subframe boundaries. This overlap is described in more detail below with reference to FIG. 5A.

図4は、図3に図示された本発明の実施例におけるブロック処理ブロック300の動作モードを設定するためにブロック処理ブロック300にパラメータを入力するためのグラフィカル・ユーザインターフェース(GUI)400の一例である。GUI400が例示的なものであり、ブロック処理ブロック300のパラメータが、例えばコマンドラインインターフェースなどのテキストユーザインターフェースを介して入力されてもよいことが当業者に理解されよう。GUI400は、ユーザがブロック処理ブロック300のパラメータを入力するための幾つかの空白を提供する。前記パラメータに、ブロック当たりの行数410、ブロック当たりの列数420、重複行430、重複列440、入力データのサイズ450及び境界値460が含まれてもよい。GUI400における前記パラメータが例示的なものであり、GUI400が、例えばデータ処理装置310のデータ処理関数や、入力データを処理する複数のブロックの順序などの更なるパラメータを入力するための空白を提供してもよいことが当業者に理解されよう。入力データを処理する複数のブロックの順序については、下記に図5C乃至5Eを参照しながらより詳細に説明する。   FIG. 4 is an example of a graphical user interface (GUI) 400 for entering parameters into the block processing block 300 to set the operating mode of the block processing block 300 in the embodiment of the present invention illustrated in FIG. is there. Those skilled in the art will appreciate that the GUI 400 is exemplary and the parameters of the block processing block 300 may be entered via a text user interface, such as a command line interface, for example. The GUI 400 provides several spaces for the user to enter parameters for the block processing block 300. The parameters may include the number of rows per block 410, the number of columns per block 420, duplicate rows 430, duplicate columns 440, input data size 450 and boundary values 460. The parameters in the GUI 400 are exemplary, and the GUI 400 provides a space for entering additional parameters, such as the data processing function of the data processing device 310 and the order of multiple blocks that process the input data. Those skilled in the art will appreciate that this is possible. The order of a plurality of blocks for processing input data will be described in more detail below with reference to FIGS. 5C to 5E.

ブロック当たりの行数410及びブロック当たりの列数420は、入力データ内のブロックのサイズを決定する。GUI400に、ブロックのサイズを決定する、例えば処理対象の入力データの行方向のブロックの数及び処理対象の入力データの列方向のブロックの数などの別のパラメータ群が含まれてもよいことが、当業者に理解されよう。   The number of rows 410 per block and the number of columns 420 per block determine the size of the block in the input data. The GUI 400 may include another parameter group that determines the size of the block, such as the number of blocks in the row direction of the input data to be processed and the number of blocks in the column direction of the input data to be processed. Those skilled in the art will appreciate.

重複行430及び重複列440は、各ブロックと隣接するブロックとの重複を決定する。これらの重複は、ブロック処理の際にその値が考慮されるデータブロックの外側の余分な行及び列である。図5Aは、入力データ内の各ブロックの重複行及び列を説明する入力データの一例である。図5Aでは、本発明の実施例の入力データが複数のデータブロックに分割されており、これらのデータブロックは、8×8マトリックスサイズである。入力データの各ブロックは、隣接するブロックと2列及び1行ずつ重複している。各8×8ブロックは、上下が1行ずつ、左右が2列ずつ重複している。陰影をつけた部分520が重複を表す。GUI400に、パディングのための境界値460を入力する空白が含まれてもよい。図5Bは、本発明の実施例における入力データのパディング過程を説明する入力データの一例である。入力データは、複数のブロックに分割され、各ブロックは8×8マトリックスサイズである。これらのブロックが入力データと完全に一致しない場合には、ブロックが処理対象の入力データと一致するように、入力データの下側及び右側の陰影をつけた範囲530にパディング値が付加される。更に、図5Aに図示された重複が、入力データの境界510を超えて拡張される。このパディング過程では、入力データの境界510の外側の重複520にもパディング値が付加される。   Duplicate rows 430 and duplicate columns 440 determine the overlap between each block and adjacent blocks. These duplicates are extra rows and columns outside the data block whose values are taken into account during block processing. FIG. 5A is an example of input data that illustrates duplicate rows and columns of each block in the input data. In FIG. 5A, the input data of the embodiment of the present invention is divided into a plurality of data blocks, and these data blocks have an 8 × 8 matrix size. Each block of input data overlaps adjacent blocks by two columns and one row. Each 8 × 8 block overlaps one row at the top and bottom and two columns at the left and right. A shaded portion 520 represents an overlap. The GUI 400 may include a blank for inputting a boundary value 460 for padding. FIG. 5B is an example of input data illustrating a padding process of input data in the embodiment of the present invention. The input data is divided into a plurality of blocks, and each block has an 8 × 8 matrix size. If these blocks do not completely match the input data, padding values are added to the shaded range 530 on the lower and right sides of the input data so that the blocks match the input data to be processed. Further, the overlap illustrated in FIG. 5A extends beyond the input data boundary 510. In this padding process, a padding value is also added to the overlap 520 outside the boundary 510 of the input data.

処理対象の入力データを処理する複数のブロックの順序を、ユーザがコード語生成関数であるインデックスジェネレータを選択することによって選択してもよい。これらのデータブロックが、ユーザが特定するいかなる任意の順序で処理されてもよい。例えば、これらのブロックが、図5C乃至5Eにそれぞれ図示されるように、水平(行)方向、垂直(列)方向又はジグザグ方向に処理されてもよい。図5C乃至5Eに図示される順序が例示的なものであり、これらのブロックが、例えば主対角線方向及び副対角線方向などのその他の順序で処理されてもよいことが当業者に理解されよう。これらのブロックが、ユーザが規定した順序で処理されてもよい。例えば、ユーザがブロックを処理するための「1、3、5、7、9・・・」などの特定の順序を入力すると、入力データのブロックは、ブロック1、ブロック3、ブロック5、ブロック7、ブロック9・・・の順序で処理される。   The order of a plurality of blocks for processing input data to be processed may be selected by the user selecting an index generator that is a code word generation function. These data blocks may be processed in any arbitrary order specified by the user. For example, these blocks may be processed in the horizontal (row) direction, vertical (column) direction, or zigzag direction, as illustrated in FIGS. 5C-5E, respectively. One skilled in the art will appreciate that the order illustrated in FIGS. 5C-5E is exemplary, and that these blocks may be processed in other orders, such as, for example, main diagonal and sub-diagonal directions. These blocks may be processed in the order specified by the user. For example, when the user inputs a specific order such as “1, 3, 5, 7, 9...” For processing the blocks, the blocks of input data are block 1, block 3, block 5, block 7 and so on. , Block 9...

図6は、本発明の実施例における入力データのブロック処理を実行するブロック処理ブロック600の一例である。ブロック処理ブロック600には、イテレータ610とデータ処理装置620とが含まれる。イテレータ610は、入力データを受け取って出力データを出力する。ユーザが選択したブロック処理ブロック600の動作モードに基づき、イテレータ610は、処理対象の入力データの一ブロックを選択して、前記選択された入力データのブロックをデータ処理装置620へと送る。データ処理装置620が、前記選択された入力データのブロックを処理し、前記処理済みデータのブロックをイテレータ610へと戻すと、イテレータ610は前記処理済みデータのブロックを出力データ内に配置する。現在処理中のブロックが、環境100内で目に見えるように表示されてもよい。この表示がデバッグ処理で有用であってもよい。処理済みデータのブロックのサイズが、ユーザが規定したデータ処理装置620のデータ処理関数によっては入力データのブロックのサイズと異なっていてもよいことが当業者に理解されよう。処理済みデータのブロックの出力データ内での位置は、前記選択されたブロックの入力データ内での位置に基づいて決定される。ブロック処理ブロック600は、処理対象の入力データの全ブロックについてこれらのステップを繰り返す。   FIG. 6 is an example of a block processing block 600 that executes block processing of input data in the embodiment of the present invention. The block processing block 600 includes an iterator 610 and a data processing device 620. The iterator 610 receives input data and outputs output data. Based on the operation mode of the block processing block 600 selected by the user, the iterator 610 selects one block of input data to be processed and sends the selected block of input data to the data processing device 620. When the data processor 620 processes the selected block of input data and returns the processed block of data to the iterator 610, the iterator 610 places the processed block of data in the output data. The block currently being processed may be displayed so as to be visible in the environment 100. This display may be useful in debugging processing. Those skilled in the art will appreciate that the size of the block of processed data may differ from the size of the block of input data depending on the data processing function of the data processing device 620 defined by the user. The position of the processed data block in the output data is determined based on the position of the selected block in the input data. The block processing block 600 repeats these steps for all blocks of input data to be processed.

図7は、本発明の実施例における入力データのブロック処理を実行するブロック処理ブロックの別の一例700である。ブロック処理ブロック700には、インデックスジェネレータ710、セレクタ720、データ処理装置730及び割り当て装置740が含まれる。セレクタ720及び割り当て装置740が入力データを受け取り、割り当て装置740が出力データを生成する。インデックスジェネレータ710が、入力データのブロックについて、一般に1つ又は複数の整数を含むコード語又はインデックスを生成する。ブロック処理ブロックの動作モードに基づき、インデックスジェネレータ710は、ブロック処理の繰り返しの際に、入力データのどの要素がブロックを形成するために選択されるのかを正確に特定する一連のコード語又はインデックスを繰り返し生成する。前記ブロックインデックスは、処理対象の入力データのブロック及び処理済みのデータのブロックの出力データ内での位置の双方を特定するように決定される。前記インデックスジェネレータによって生成された前記ブロックインデックスが、スカラ又はベクトルであってもよい。前記ブロックインデックスは、ブロックに含まれる全てのサンプルを個別に特定する。前記スカラ又はベクトルインデックスの大きさは、データブロックの大きさよりも小さくなくてはならない。前記インデックスジェネレータは、入力信号のサブユニットを個別に特定する一般化されたアドレス指定スキームを実行可能である。この一般化されたアドレス指定スキームにおいては、前記入力信号のサブユニットを構成している複数のサンプルは、必ずしもメモリ内で互いに隣接していなくてもよい。i=1、2、3、・・・、nを繰り返しインデックスとすると、サブユニット要素のアドレスは、前記繰り返しインデックスに適用されるいかなる関数f(i)であってもよい。例えば、ブロックインデックスのコード語が、iの単純な線形関数であるf(i)=a+biとして規定され、ここでaが開始インデックス、bがインデックス増分であってもよい。ブロックインデックスの別の一例に、ブロックの[開始行、終了行]及び[開始列、終了列]が含まれていてもよい。インデックスが、例えば各ブロックの開始行/列からの終了行/列のオフセットを用いた別の形であってもよいことが当業者に理解されよう。セレクタ720及び割り当て装置740が、入力データのブロックインデックスを受け取る。セレクタ720が、前記ブロックインデックスに基づいて一ブロックを選択し、前記選択されたブロックをデータ処理装置730へと送る。データ処理装置730は、前記送られた入力データブロックを処理し、処理済みのデータブロックを出力する。割り当て装置740が前記処理済みのデータブロックを受け取り、前記入力データブロックのインデックスに基づいて、前記処理済みのデータブロックを出力データ内に割り当てる。セレクタ720及び割り当て装置740に別のインデックスジェネレータを用いてもよいことが当業者に理解されよう。ブロック処理ブロック700は、これらのステップを、処理対象の入力データブロックの全てについて繰り返す。ブロック処理ブロック700が、入力データのインプレース処理を実行してもよく、この場合、出力データは入力データとメモリ領域を共有する必要がある。インプレース処理においては、出力データは入力データに上書きされる。インプレースブロック処理は、下記に図8を参照しながらより詳細に説明される。   FIG. 7 shows another example 700 of a block processing block for executing block processing of input data in the embodiment of the present invention. The block processing block 700 includes an index generator 710, a selector 720, a data processing device 730, and an allocation device 740. The selector 720 and the allocation device 740 receive input data, and the allocation device 740 generates output data. An index generator 710 generates a codeword or index that typically includes one or more integers for a block of input data. Based on the operational mode of the block processing block, the index generator 710 generates a series of codewords or indexes that accurately identify which elements of the input data are selected to form the block during the block processing iteration. Generate repeatedly. The block index is determined so as to specify both the block of input data to be processed and the position of the block of processed data in the output data. The block index generated by the index generator may be a scalar or a vector. The block index individually identifies all samples included in the block. The size of the scalar or vector index must be smaller than the size of the data block. The index generator can implement a generalized addressing scheme that individually identifies the subunits of the input signal. In this generalized addressing scheme, the samples that make up the subunits of the input signal do not necessarily have to be adjacent to each other in the memory. If i = 1, 2, 3,..., n is a repetition index, the address of the subunit element may be any function f (i) applied to the repetition index. For example, the code word for the block index may be defined as f (i) = a + bi, which is a simple linear function of i, where a may be the starting index and b may be the index increment. Another example of the block index may include [start row, end row] and [start column, end column] of the block. Those skilled in the art will appreciate that the index may be in another form, for example using an offset of the end row / column from the start row / column of each block. The selector 720 and the allocation device 740 receive the block index of the input data. The selector 720 selects one block based on the block index, and sends the selected block to the data processing device 730. The data processing device 730 processes the transmitted input data block and outputs a processed data block. An allocation device 740 receives the processed data block and allocates the processed data block in the output data based on the index of the input data block. Those skilled in the art will appreciate that other index generators may be used for the selector 720 and the allocation device 740. Block processing block 700 repeats these steps for all input data blocks to be processed. The block processing block 700 may execute in-place processing of input data. In this case, the output data needs to share a memory area with the input data. In the in-place process, the output data is overwritten with the input data. In-place block processing is described in more detail below with reference to FIG.

図8は、本発明の実施例における入力データのインプレースブロック処理を実行可能なブロック処理ブロックの更に別の一例800である。ブロック処理ブロック800には、ポインタジェネレータ810及びデータ処理装置820が含まれる。ポインタジェネレータ810及びデータ処理装置820は、入力データを受け取る。ポインタジェネレータ810は、ユーザによって選択されたブロック処理ブロック800の動作モードに基づき、各入力データブロックへのポインタを生成する。ある入力データブロックへのポインタは、前記ブロックのメモリ領域内での位置を表す。前記ブロックのポインタに、前記ブロックの第1の要素へのポインタが含まれてもよい。前記ブロックへのポインタに、前記メモリ領域内の前記ブロックを特定することの可能な、例えば前記ブロックの最後の要素へのポインタなどの前記ブロックの別の要素へのポインタが含まれてもよいことが当業者に理解されよう。前記入力データブロックへのポインタは、データ処理装置820へと送られる。データ処理装置820は、前記ポインタによって特定された前記入力データブロックを処理する。前記入力データブロックの処理が完了すると、データ処理装置820は、前記処理済みのデータブロックを、ポインタジェネレータ810から受け取った前記ブロックへのポインタによって特定される前記メモリ領域内の位置に上書きする。ブロック処理ブロック800は、処理対象の入力データブロックの全てについてこれらのステップを繰り返す。このようにして、繰り返し処理の終了時には、出力データが完全に形成される。前記入力データのインプレース処理において、一般には入力データのサイズが出力データのサイズよりも大きいか又はこれと等しいことが当業者に理解されよう。   FIG. 8 shows still another example 800 of a block processing block capable of executing in-place block processing of input data in the embodiment of the present invention. The block processing block 800 includes a pointer generator 810 and a data processing device 820. The pointer generator 810 and the data processing device 820 receive input data. The pointer generator 810 generates a pointer to each input data block based on the operation mode of the block processing block 800 selected by the user. A pointer to an input data block represents the position of the block in the memory area. The pointer of the block may include a pointer to the first element of the block. The pointer to the block may include a pointer to another element of the block, such as a pointer to the last element of the block, which can identify the block in the memory area. Will be understood by those skilled in the art. The pointer to the input data block is sent to the data processing device 820. The data processing device 820 processes the input data block specified by the pointer. When the processing of the input data block is completed, the data processing device 820 overwrites the processed data block at a position in the memory area specified by the pointer to the block received from the pointer generator 810. Block processing block 800 repeats these steps for all input data blocks to be processed. In this way, output data is completely formed at the end of the iterative process. It will be understood by those skilled in the art that in the in-place processing of the input data, generally, the size of the input data is larger than or equal to the size of the output data.

要約すると、本発明の実施例は、グラフィカルプログラミング環境における入力データのブロック処理を提供する。本発明の前記実施例は、入力データのブロック処理を実行するブロック処理ブロックを提供する。前記入力データのブロック処理が、前記ブロック処理ブロックの構成要素である複数のブロック単位で実行されてもよいことが当業者に理解されよう。前記入力データ内の処理対象の部分は複数のブロックに分割され、前記入力データの複数のブロックは、ユーザによって指定された順序で処理される。処理済みの前記データブロックは、前記入力データブロックが処理されるのと並行して同じ順序で結合される。本発明の前記実施例は、処理済みのデータブロックが前記入力データブロックに対応するメモリ領域に上書きされる、入力データのインプレース処理も提供する。前記入力データのインプレース処理によって、出力データが入力データとメモリ領域を共有し、出力データ用のメモリ領域を節約することが可能となる。   In summary, embodiments of the present invention provide block processing of input data in a graphical programming environment. The embodiment of the present invention provides a block processing block for executing block processing of input data. It will be understood by those skilled in the art that the block processing of the input data may be executed in units of a plurality of blocks that are constituent elements of the block processing block. A portion to be processed in the input data is divided into a plurality of blocks, and the plurality of blocks of the input data are processed in an order designated by the user. The processed data blocks are combined in the same order as the input data blocks are processed. The embodiment of the present invention also provides in-place processing of input data, in which a processed data block is overwritten in a memory area corresponding to the input data block. By the in-place processing of the input data, the output data can share the memory area with the input data, and the memory area for the output data can be saved.

以上のように、本発明が上述の目的を達成することが理解されよう。本発明の範囲から逸脱することなく幾つかの変更を加えてもよいことから、上述の説明に含まれるか又は添付の図面に示される事項は全て、単に例示的なものであり、限定的なものではないと解釈されるべきことを意図されている。例えば、本発明の実施例は、入力データのデータ処理を行ういかなるグラフィカルプログラミング環境において実施されてもよい。図に示されたステップの順序及び構成を、本発明の範囲から逸脱することなく変更可能であり、またここに含まれる記載が、本発明を説明する数多くの適切な記載の一例に過ぎないことが当業者に理解されよう。   As described above, it will be understood that the present invention achieves the above-mentioned objects. Since several modifications may be made without departing from the scope of the invention, all matter contained in the above description or shown in the accompanying drawings is illustrative only and not restrictive. It is intended to be interpreted as not intended. For example, embodiments of the present invention may be implemented in any graphical programming environment that performs data processing of input data. The order and configuration of the steps shown in the figures can be changed without departing from the scope of the invention, and the description contained herein is only one example of many suitable descriptions that illustrate the invention. Will be understood by those skilled in the art.

本発明の上述の特徴、利点並びにその他の特徴及び局面は、添付の図面と関連させながら詳細な説明を参考にすることにより、より十二分に理解されるであろう。
図1は、本発明の実施例のモデルを表すために複数のブロックが利用されるグラフィカルプログラミング環境の一例である。 図2は、本発明の実施例の実施に適した電子装置である。 図3は、図1に示す本発明の実施例のグラフィカルプログラミング環境において提供されるブロック処理モデルで使用されるブロックの一例である。 図4は、図3に示す本発明の実施例のブロック処理ブロックのパラメータを入力して、前記ブロック処理ブロックの動作モードを設定するためのグラフィカルユーザインターフェース(GUI)の一例である。 図5Aは、本発明の実施例において、図4に示すGUIを介して入力される各ブロックの重複列及び行を説明する、入力データの一例である。 図5Bは、本発明の実施例における入力データのパディング過程を説明する、入力データの一例である。 図5Cは、本発明の実施例において、入力データを水平(行方向)に処理する複数のブロックの順序を説明する、入力データの一例である。 図5Dは、本発明の実施例において、入力データを垂直(列方向)に処理する複数のブロックの順序を説明する、入力データの一例である。 図5Eは、本発明の実施例において、入力データをジグザグ方向に処理する複数のブロックの順序を説明する、入力データの一例である。 図6は、本発明の実施例のブロック処理ブロックの一例である。 図7は、本発明の実施例のブロック処理ブロックの別の一例である。 図8は、本発明の実施例のブロック処理ブロックの更に別の一例である。
The foregoing features, advantages, and other features and aspects of the present invention will be more fully understood by reference to the detailed description taken in conjunction with the accompanying drawings.
FIG. 1 is an example of a graphical programming environment in which multiple blocks are utilized to represent a model of an embodiment of the present invention. FIG. 2 is an electronic device suitable for implementing an embodiment of the present invention. FIG. 3 is an example of blocks used in the block processing model provided in the graphical programming environment of the embodiment of the present invention shown in FIG. FIG. 4 is an example of a graphical user interface (GUI) for inputting the parameters of the block processing block of the embodiment of the present invention shown in FIG. 3 and setting the operation mode of the block processing block. FIG. 5A is an example of input data for explaining duplicate columns and rows of each block input via the GUI shown in FIG. 4 in the embodiment of the present invention. FIG. 5B is an example of input data illustrating a padding process of input data in the embodiment of the present invention. FIG. 5C is an example of input data for explaining the order of a plurality of blocks for processing input data horizontally (in the row direction) in the embodiment of the present invention. FIG. 5D is an example of input data illustrating the order of a plurality of blocks for processing input data vertically (column direction) in the embodiment of the present invention. FIG. 5E is an example of input data illustrating the order of a plurality of blocks for processing the input data in the zigzag direction in the embodiment of the present invention. FIG. 6 is an example of a block processing block according to the embodiment of the present invention. FIG. 7 shows another example of the block processing block according to the embodiment of the present invention. FIG. 8 shows still another example of the block processing block according to the embodiment of the present invention.

Claims (33)

グラフィカルプログラミング環境における入力データのブロック処理を実行するためのシステムであって、前記グラフィカルプログラミング環境が、実際のシステムを数学的に表すモデルを提供し、前記入力データが複数のデータブロックに分割される、以下を備えたシステム:
処理対象の前記入力データの各データブロックを個別に特定するアドレスを生成するためのインデックスジェネレータと;
前記インデックスジェネレータによって生成された前記アドレスに基づいて、前記入力データから一データブロックを選択するためのセレクタと;
各データブロックを処理して前記データブロックに関連した出力を生成する、ブロック処理装置と;
前記入力データの前記複数のデータブロックの反復処理を可能にするイテレータと;
前記ブロックインデックスに基づいて処理済みの複数のデータブロックを再びアセンブルして前記システムの出力を生成するための、出力ジェネレータ。
A system for performing block processing of input data in a graphical programming environment, wherein the graphical programming environment provides a model that mathematically represents an actual system, wherein the input data is divided into a plurality of data blocks A system with:
An index generator for generating an address for individually specifying each data block of the input data to be processed;
A selector for selecting one data block from the input data based on the address generated by the index generator;
A block processing device that processes each data block to produce an output associated with the data block;
An iterator that allows iterative processing of the plurality of data blocks of the input data;
An output generator for reassembling a plurality of processed data blocks based on the block index to generate the output of the system.
前記インデックスジェネレータによって生成された前記データブロックアドレスがスカラ又はベクタのいずれかであり、前記データブロックアドレスが、前記データブロック内に含まれる全てのサンプルを個別に特定可能なコード語である、請求項1に記載のシステム。   The data block address generated by the index generator is either a scalar or a vector, and the data block address is a code word that can individually identify all samples included in the data block. The system according to 1. 前記スカラ又はベクタアドレスの大きさが、前記データブロックの大きさよりも小さくなくてはならない、請求項2に記載のシステム。   The system of claim 2, wherein the size of the scalar or vector address must be smaller than the size of the data block. 前記インデックスジェネレータが、大きな入力データ構造のデータブロックを個別に特定する一般化されたアドレス指定スキームを実行可能であり、前記入力データのデータブロックを構成している前記複数のサンプルが、必ずしもメモリ内で互いに隣接している要素でなくてもよい、請求項1に記載のシステム。   The index generator can perform a generalized addressing scheme that individually identifies data blocks of a large input data structure, and the plurality of samples making up the data block of input data are not necessarily in memory The system of claim 1, wherein the elements may not be adjacent to each other. i=1、2、3、・・・、nをイテレータのインデックスとした場合に、前記複数のブロックのアドレスが前記インデックスに適用される関数f(i)である、請求項2に記載のシステム。   The system according to claim 2, wherein the addresses of the plurality of blocks are functions f (i) applied to the index, where i = 1, 2, 3,..., n is an iterator index. . 前記データブロックアドレスのコード語が、iの単純な線形関数であるf(i)=a+biとして規定され、ここでaが開始インデックス、bがインデックス増分である、請求項5に記載のシステム。   6. The system of claim 5, wherein the code word of the data block address is defined as f (i) = a + bi, which is a simple linear function of i, where a is a starting index and b is an index increment. 前記インデックスジェネレータに複数の出力が含まれる、請求項1に記載のシステム。   The system of claim 1, wherein the index generator includes a plurality of outputs. 前記セレクタと前記出力ジェネレータとに異なるインデックスジェネレータが使用される、請求項1に記載のシステム。   The system of claim 1, wherein different index generators are used for the selector and the output generator. 前記セレクタと前記出力ジェネレータとに同じインデックスジェネレータが使用される、請求項1に記載のシステム。   The system of claim 1, wherein the same index generator is used for the selector and the output generator. 前記制御パラメータに前記入力データのサイズが含まれる、請求項1に記載のシステム。   The system of claim 1, wherein the control parameter includes a size of the input data. 前記制御パラメータに各ブロックのサイズが含まれる、請求項1に記載のシステム。   The system of claim 1, wherein the size of each block is included in the control parameter. 前記制御パラメータに、一連の正の整数に対して規定されるインデックスジェネレータコード語生成関数が含まれ、複数のデータブロックがユーザによって指定される任意の順序で処理される、請求項1に記載のシステム。   2. The control parameter of claim 1, wherein the control parameter includes an index generator codeword generation function defined for a series of positive integers, and the plurality of data blocks are processed in any order specified by the user. system. 前記制御パラメータに、互いに隣接する複数のデータブロック間で重複しているサンプルの数が含まれる、請求項1に記載のシステム。   The system of claim 1, wherein the control parameter includes a number of samples that overlap between a plurality of adjacent data blocks. 前記制御パラメータに、元の入力信号の範囲を超えるアドレスを有するサンプルの境界値が含まれる、請求項1に記載のシステム。   The system of claim 1, wherein the control parameter includes a boundary value of a sample having an address that exceeds the range of the original input signal. 前記システムに、ブロック図モデリング環境内で実装されるブロック処理モデルが含まれ、前記ブロック処理モデルの動作を表す自動ソースコードが生成される、請求項1に記載のシステム。   The system of claim 1, wherein the system includes a block processing model implemented within a block diagram modeling environment, and automatic source code representing the operation of the block processing model is generated. 前記ブロック処理モデルが、データフロー及び時間指向シミュレーション環境で使用される、請求項15に記載のシステム。   The system of claim 15, wherein the block processing model is used in a data flow and time oriented simulation environment. 前記システムが、前記入力データのサイズが前記出力データのサイズよりも大きいか又はこれと等しい場合に、前記入力データが前記出力データとメモリ領域を共有することの可能なインプレース処理を可能にする、請求項1に記載のシステム。   The system enables in-place processing in which the input data can share a memory area with the output data when the size of the input data is greater than or equal to the size of the output data. The system of claim 1. 実際のシステムを数学的に表すモデルを提供するグラフィカルプログラミング環境において、入力データのブロック処理を実行するためのシステムであって:
処理対象の前記入力データの各データブロックを個別に特定するアドレスを繰り返し生成し、インデックスジェネレータによって生成された前記アドレスに基づいて、前記入力データから一データブロックを選択するためのブロック処理サブシステムと;
各データブロックを処理して前記データブロックに関連した出力を生成する、ブロック処理装置と;
を備え、
前記ブロック処理サブシステムが、ユーザによって入力された制御パラメータに基づく前記入力データの複数のデータブロックの反復処理を可能にし、前記ブロックインデックスに基づいて処理済みの複数のデータブロックを再びアセンブルして前記システムの出力を生成し、前記制御パラメータに、前記データブロックを処理する前記処理装置の仕様が含まれる;
システム。
A system for performing block processing of input data in a graphical programming environment that provides a model that mathematically represents an actual system:
A block processing subsystem for repeatedly generating an address for individually specifying each data block of the input data to be processed, and selecting one data block from the input data based on the address generated by an index generator; ;
A block processing device that processes each data block to produce an output associated with the data block;
With
The block processing subsystem enables iterative processing of a plurality of data blocks of the input data based on control parameters input by a user, reassembles the processed data blocks based on the block index, and Generating the output of the system, and the control parameters include a specification of the processing device for processing the data block;
system.
前記制御パラメータに前記入力データのサイズが含まれる、請求項18に記載のシステム。   The system of claim 18, wherein the control parameter includes a size of the input data. 前記制御パラメータに各ブロックのサイズが含まれる、請求項18に記載のシステム。   The system of claim 18, wherein the control parameter includes a size of each block. 前記制御パラメータに、一連の正の整数に対して規定される関数を指定する際にユーザによって指定される任意の順序が含まれる、請求項18に記載のシステム。   The system of claim 18, wherein the control parameters include any order specified by a user in specifying a function defined for a series of positive integers. 現在処理中のデータブロックが前記グラフィカルプログラミング環境内で目に見えるように表示される、請求項18に記載のシステム。   The system of claim 18, wherein a data block currently being processed is displayed visibly within the graphical programming environment. ブロック処理サブシステム毎に専用のブロック処理構造を更に備えた、請求項18に記載のシステム。   The system of claim 18 further comprising a dedicated block processing structure for each block processing subsystem. 全てのブロック処理サブシステムのための汎用ブロック処理構造を更に備え、各ブロック処理サブシステムの設定及び制御パラメータが制御変数の形で個別に記憶されている、請求項18に記載のシステム。   19. The system of claim 18, further comprising a general block processing structure for all block processing subsystems, wherein settings and control parameters for each block processing subsystem are individually stored in the form of control variables. 前記制御パラメータに、互いに隣接する複数のデータブロック間で重複しているサンプルの数が含まれる、請求項18に記載のシステム。   The system of claim 18, wherein the control parameter includes a number of samples that overlap between a plurality of adjacent data blocks. 前記制御パラメータに、元の入力信号の範囲を超えるアドレスを有するサンプルの境界値が含まれる、請求項18に記載のシステム。   The system of claim 18, wherein the control parameter includes a boundary value of a sample having an address that exceeds the range of the original input signal. 前記システムに、グラフィカルプログラミング環境内で実装されるブロック処理モデルが含まれ、前記ブロック処理モデルの動作を表す自動ソースコードが生成される、請求項18に記載のシステム。   The system of claim 18, wherein the system includes a block processing model implemented in a graphical programming environment, and automatic source code representing the operation of the block processing model is generated. 前記ブロック処理サブシステムが、データフロー及び時間指向シミュレーション環境で使用される、請求項18に記載のシステム。   The system of claim 18, wherein the block processing subsystem is used in a data flow and time oriented simulation environment. 前記入力データのサイズが前記出力データのサイズよりも大きいか又はこれと等しい場合に、前記入力データが前記出力データとメモリ領域を共有可能であることにより、インプレース処理が可能である、請求項18に記載のシステム。   The in-place processing is possible when the input data can share a memory area with the output data when the size of the input data is larger than or equal to the size of the output data. 18. The system according to 18. 入力データのブロック処理を実行するためのシステムであって、前記システムが、グラフィカルプログラミング環境を提供する電子装置内で実装され、グラフィカルプログラミング環境が、実際のシステムを数学的に表すモデルを提供して、対象システムを設計するために使用されるシステムであって:
ユーザによって入力された制御パラメータに基づいて、前記入力データの各ブロックのポインタを繰り返し生成するためのポインタジェネレータと;
前記ポインタによって指定された各ブロックの入力データを処理するための処理装置と;
を備え、
前記処理装置が、前記ポインタによって特定された前記入力データのブロックを直接に処理することによって、前記入力データと出力データとがメモリ領域を共有する;
システム。
A system for performing block processing of input data, wherein the system is implemented in an electronic device that provides a graphical programming environment, the graphical programming environment providing a model that mathematically represents the actual system A system that is used to design the target system:
A pointer generator for repeatedly generating a pointer of each block of the input data based on a control parameter input by a user;
A processing device for processing input data of each block designated by the pointer;
With
The processing unit directly processes the block of input data specified by the pointer so that the input data and output data share a memory area;
system.
前記制御パラメータに、互いに隣接する複数のデータブロック間で重複しているサンプルの数が含まれる、請求項30に記載のシステム。   31. The system of claim 30, wherein the control parameter includes a number of samples that overlap between a plurality of adjacent data blocks. 前記制御パラメータに、元の入力信号の範囲を超えるアドレスを有するサンプルの境界値が含まれる、請求項30に記載のシステム。   31. The system of claim 30, wherein the control parameters include boundary values for samples having addresses that exceed the range of the original input signal. 前記ブロック処理モデルの動作を表す自動ソースコードが生成される、請求項30に記載のシステム。
32. The system of claim 30, wherein automatic source code representing the operation of the block processing model is generated.
JP2006547439A 2003-12-22 2004-12-22 Block processing of input data in a graphical programming environment Active JP4892354B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/744,654 2003-12-22
US10/744,654 US7353146B2 (en) 2003-12-22 2003-12-22 Block processing of input data in graphical programming environments
PCT/US2004/043536 WO2005064457A2 (en) 2003-12-22 2004-12-22 Block processing of input data in graphical programming environments

Publications (2)

Publication Number Publication Date
JP2007524156A true JP2007524156A (en) 2007-08-23
JP4892354B2 JP4892354B2 (en) 2012-03-07

Family

ID=34678923

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006547439A Active JP4892354B2 (en) 2003-12-22 2004-12-22 Block processing of input data in a graphical programming environment

Country Status (4)

Country Link
US (2) US7353146B2 (en)
EP (1) EP1700205A2 (en)
JP (1) JP4892354B2 (en)
WO (1) WO2005064457A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009193181A (en) * 2008-02-13 2009-08-27 Meidensha Corp Software development support system and method, and program for the method
WO2017163590A1 (en) * 2016-03-24 2017-09-28 富士フイルム株式会社 Image processing device, image processing method, and image processing program
JP2020144509A (en) * 2019-03-05 2020-09-10 株式会社デンソー Automatic code generation method and automatic code generating program

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7353146B2 (en) * 2003-12-22 2008-04-01 The Mathworks, Inc. Block processing of input data in graphical programming environments
US7834876B2 (en) * 2004-12-28 2010-11-16 The Mathworks, Inc. Providing graphic generating capabilities for a model based development process
US8312420B1 (en) 2005-11-18 2012-11-13 The Mathworks, Inc. System and method for performing structural templatization
US7917514B2 (en) * 2006-06-28 2011-03-29 Microsoft Corporation Visual and multi-dimensional search
US7739221B2 (en) * 2006-06-28 2010-06-15 Microsoft Corporation Visual and multi-dimensional search
US7873500B1 (en) 2006-10-16 2011-01-18 The Mathworks, Inc. Two-way connection in a graphical model
US7405693B2 (en) * 2006-12-19 2008-07-29 Enterprise Electronics Corporation System and method for synthesizing data in a radar system
WO2009057967A2 (en) * 2007-11-01 2009-05-07 Posteck Academy-Industry Foundation Apparatus and method for iterative operation on regular graph
US7933939B2 (en) * 2008-04-16 2011-04-26 Quantum Corporation Apparatus and method for partitioning data blocks
CN102203728A (en) * 2008-11-03 2011-09-28 引擎实验室公司 System and method of dynamically building a behavior model on a hardware system
US8346800B2 (en) * 2009-04-02 2013-01-01 Microsoft Corporation Content-based information retrieval
US9251554B2 (en) 2012-12-26 2016-02-02 Analog Devices, Inc. Block-based signal processing
CN104216694B (en) * 2013-06-04 2017-12-08 广州中国科学院软件应用技术研究所 The fusion method and system of a kind of business form page and the workflow page
CN105793847B (en) * 2013-10-09 2019-12-10 瑞典爱立信有限公司 Apparatus and method for managing digital video compression system
US20150118959A1 (en) * 2013-10-28 2015-04-30 Nicolas Jean Petit Platform framework for wireless media device simulation and design
US9794025B2 (en) 2015-12-22 2017-10-17 Qualcomm Incorporated Systems and methods for communication and verification of data blocks
US10318251B1 (en) * 2016-01-11 2019-06-11 Altair Engineering, Inc. Code generation and simulation for graphical programming

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06168139A (en) * 1992-11-30 1994-06-14 Toshiba Eng Co Ltd Compiling device
JPH09297782A (en) * 1996-05-01 1997-11-18 Babcock Hitachi Kk Device and method for analyzing block drawing

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4445176A (en) * 1979-12-28 1984-04-24 International Business Machines Corporation Block transfers of information in data processing networks
US4490782A (en) * 1981-06-05 1984-12-25 International Business Machines Corporation I/O Storage controller cache system with prefetch determined by requested record's position within data block
US5367385A (en) * 1992-05-07 1994-11-22 Picturetel Corporation Method and apparatus for processing block coded image data to reduce boundary artifacts between adjacent image blocks
US5963220A (en) * 1996-02-08 1999-10-05 Industrial Technology Research Institute Mip map/rip map texture linear addressing memory organization and address generator
JP3821316B2 (en) * 1996-08-06 2006-09-13 ソニー株式会社 Arithmetic apparatus and method
US6073153A (en) * 1998-06-03 2000-06-06 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6487574B1 (en) * 1999-02-26 2002-11-26 Microsoft Corp. System and method for producing modulated complex lapped transforms
US8196056B2 (en) * 2001-07-24 2012-06-05 The Mathworks, Inc. Handling parameters in block diagram modeling
US7353146B2 (en) * 2003-12-22 2008-04-01 The Mathworks, Inc. Block processing of input data in graphical programming environments

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06168139A (en) * 1992-11-30 1994-06-14 Toshiba Eng Co Ltd Compiling device
JPH09297782A (en) * 1996-05-01 1997-11-18 Babcock Hitachi Kk Device and method for analyzing block drawing

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009193181A (en) * 2008-02-13 2009-08-27 Meidensha Corp Software development support system and method, and program for the method
WO2017163590A1 (en) * 2016-03-24 2017-09-28 富士フイルム株式会社 Image processing device, image processing method, and image processing program
CN108885777A (en) * 2016-03-24 2018-11-23 富士胶片株式会社 Image processing apparatus, image processing method and image processing program
JPWO2017163590A1 (en) * 2016-03-24 2019-02-14 富士フイルム株式会社 Image processing apparatus, image processing method, and image processing program
US10783604B2 (en) 2016-03-24 2020-09-22 Fujifilm Corporation Image processing apparatus, image processing method, and image processing program
JP2020144509A (en) * 2019-03-05 2020-09-10 株式会社デンソー Automatic code generation method and automatic code generating program
JP7156094B2 (en) 2019-03-05 2022-10-19 株式会社デンソー Automatic code generation method and automatic code generation program

Also Published As

Publication number Publication date
US8160844B2 (en) 2012-04-17
US20080065964A1 (en) 2008-03-13
US7353146B2 (en) 2008-04-01
JP4892354B2 (en) 2012-03-07
US20050138045A1 (en) 2005-06-23
WO2005064457A2 (en) 2005-07-14
EP1700205A2 (en) 2006-09-13
WO2005064457A3 (en) 2006-08-03

Similar Documents

Publication Publication Date Title
JP4892354B2 (en) Block processing of input data in a graphical programming environment
US8046735B1 (en) Transforming graphical objects in a graphical modeling environment
US7865350B1 (en) Partitioning a model in modeling environments
US9009690B1 (en) Code generation
JP4963232B2 (en) Hierarchy references or links in the modeling environment
US8046207B2 (en) Digital effects analysis in modeling environments
CN105279307A (en) System and method of recovering lagrange multipliers in modal dynamic analysis
JPH09259153A (en) Device and method for generating batch execution control program
US10452797B2 (en) Fault insertion for system verification
CN115657467A (en) Wind power plant wake flow control optimization method, device, equipment and storage medium
JP4956190B2 (en) Model-based diagnostic interface
Gupta et al. MATRIXx
JP5031117B2 (en) Method and system for dynamically updating a geometric model
Aish et al. An integrated approach to algorithmic design and environmental analysis
Scott An evaluation of three commercially available integrated design framework packages for use in the Space Systems Design Lab
CN116384178A (en) Wear simulation analysis method, system, medium and equipment for photoelectric rotary connector
NAKADA et al. Introduction of Innovative Program OHC-Sim for Oil-Hydraulic Circuit Simulation
Santos et al. Workflow for simulators based on finite element method
JPH04233605A (en) Robot language editor
CN114581554A (en) Curve generation method and device for representing image information and storage medium
CN117034397A (en) Modeling method, device, equipment and medium for hull plate frame
Karnopp Retaining analog intuition in a digital world with bond graphs
CN118192335A (en) Control law design method conforming to full-drive form system
Herbert Toward Direct Numerical Simulations of Turbine Flows
Rousselle et al. NEW IDEAS (Numerical Electromagnetics With I-DEAS) for Visual Electromagnetics

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100615

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100914

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100922

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101013

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101020

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101115

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110524

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110823

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110830

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110922

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110930

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111129

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111219

R150 Certificate of patent or registration of utility model

Ref document number: 4892354

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250