JP4716911B2 - Ultrasound diagnostic processor - Google Patents
Ultrasound diagnostic processor Download PDFInfo
- Publication number
- JP4716911B2 JP4716911B2 JP2006100226A JP2006100226A JP4716911B2 JP 4716911 B2 JP4716911 B2 JP 4716911B2 JP 2006100226 A JP2006100226 A JP 2006100226A JP 2006100226 A JP2006100226 A JP 2006100226A JP 4716911 B2 JP4716911 B2 JP 4716911B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- string
- processor
- diagnostic apparatus
- ultrasonic diagnostic
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Ultra Sonic Daignosis Equipment (AREA)
Description
本発明は、超音波診断装置用プロセッサに関し、特に、超音波の送受信によって得られたデータを並列処理する超音波診断装置用プロセッサに関する。 The present invention relates to a processor for an ultrasonic diagnostic apparatus, and more particularly to a processor for an ultrasonic diagnostic apparatus that performs parallel processing on data obtained by transmitting and receiving ultrasonic waves.
医療用の超音波診断装置においては、超音波探触子が被検者の体表に当接あるいは体内に挿入されて超音波が発信され、超音波の反射波信号に基づいて体内の状態の診断画像等が得られる。一般に、超音波診断装置では装置内部での信号がデジタルデータに変換された上で処理されている。つまり、受信信号としてのアナログ信号はデジタル信号に変換され、その信号に対して多様な演算が何重にも施された結果、診断画像等が形成されている。そのために、超音波診断装置の内部で処理すべきデジタルデータの量は膨大なものとなる。そして、超音波診断装置の画像の応答性やリアルタイム表示性能を改善するためには、大量のデジタルデータを高速に処理し高速に画像化することは必要不可欠となっている。従って、超音波診断装置においてはそれぞれの処理の各段階において複数個のプロセッサが使用されており、膨大な量のデータを処理するために個々のプロセッサには、自ずと高速な処理速度が求められている。 In an ultrasonic diagnostic apparatus for medical use, an ultrasonic probe is brought into contact with or inserted into a body surface of a subject and an ultrasonic wave is transmitted, and an internal state of the body is determined based on a reflected wave signal of the ultrasonic wave. A diagnostic image or the like is obtained. In general, in an ultrasonic diagnostic apparatus, a signal inside the apparatus is converted into digital data and then processed. That is, an analog signal as a received signal is converted into a digital signal, and a variety of calculations are performed on the signal, resulting in the formation of a diagnostic image or the like. For this reason, the amount of digital data to be processed inside the ultrasonic diagnostic apparatus is enormous. In order to improve the image responsiveness and real-time display performance of the ultrasonic diagnostic apparatus, it is indispensable to process a large amount of digital data at high speed and image it at high speed. Therefore, in the ultrasonic diagnostic apparatus, a plurality of processors are used in each stage of each process, and each processor is required to have a high processing speed in order to process a huge amount of data. Yes.
ここで、中央演算処理装置(CPU)やデジタルシグナルプロセッサ(DSP)に代表されるプロセッサは、データ処理の高速化のための要となる部品である。DSPとは信号処理に特化した半導体デバイスであり、CPUと同様に信号処理プログラムを実行することで多様な機能を実現させることができる。これらのプロセッサは技術進歩に伴って、データの処理能力を向上させるための様々な高速化手段を搭載している。その高速化手段の一つとしてSIMD(Single Instruction Multiple Data)方式が挙げられる。SIMD方式とは、単一命令で複数個のデータを同時並列的に処理するデータ処理方式を意味する。SIMD方式を採用しているプロセッサにおいて、取り扱われるデータ形式や命令セットは、並列に入力される複数のデータに対して一括の操作を行うことができるようになっている。つまり、プロセッサの最大データバス幅を1個のデータだけで占有するのではなく、そのデータバス幅を機能的に分割することにより、複数のデータが同時に並列して扱えるようになっている。SIMD方式のプロセッサを用いると、データの並列処理が可能となるので、処理速度を高速化できる。 Here, a processor represented by a central processing unit (CPU) and a digital signal processor (DSP) is a key component for speeding up data processing. A DSP is a semiconductor device specialized for signal processing, and various functions can be realized by executing a signal processing program in the same manner as a CPU. These processors are equipped with various speed-up means for improving data processing capability as technology advances. One of the speed-up means is SIMD (Single Instruction Multiple Data). The SIMD system means a data processing system that processes a plurality of data simultaneously and in parallel with a single instruction. In a processor adopting the SIMD system, a data format and an instruction set to be handled can perform a batch operation on a plurality of data input in parallel. That is, instead of occupying the maximum data bus width of the processor with only one piece of data, the data bus width is functionally divided so that a plurality of data can be handled simultaneously in parallel. When a SIMD processor is used, parallel processing of data becomes possible, so that the processing speed can be increased.
以下、特許文献1にはSIMD方式を用いた演算器及びその演算器を用いた演算処理装置に関する技術が記されている。また、特許文献2にはSIMD方式のプロセッサを用いた超音波診断システムに関する技術が記されている。
In the following,
背景技術として示したように、SIMDの機能を搭載したCPUやDSPを使って、データ演算を行うことは、処理速度の高速化のための有力な手段となっている。しかしながら、SIMDの機能を用いたとしても、高速な処理速度を維持できない場合がある。それは、if文に代表されるような条件分岐処理を実行する場合である。SIMD方式の演算を実行する場合において、演算の途中で演算結果の値を判定して、条件分岐を行うような処理はSIMD向きではない。つまり、ある所定の条件に合致するかどうかを判断して、プログラム内のジャンプ先を二者択一で選択するような条件分岐処理は、SIMD方式の処理になじまないのである。なぜなら、ある条件に合致するかどうかの判定を、複数のデータに対して行った場合には、全部のデータが条件に合致するケースや、あるいは逆に全部のデータが条件に合致しないケースはまれであり、通常の場合には条件に一致するデータと一致しないデータが混在するケースが多いからである。このように判定条件に対する一致と不一致が混在する場合には、判定結果に応じてデータ毎に個別の処理をする必要があり、並進処理の足並みが乱されてしまうことになる。このように、SIMDの演算機能を搭載したプロセッサにおいて条件分岐処理をそのまま実行しようとすると、データ列の並進処理が乱されてしまい、プログラムの処理速度を著しく低下させるという問題があった。 As shown in the background art, performing a data operation using a CPU or DSP equipped with a SIMD function is an effective means for increasing the processing speed. However, even if the SIMD function is used, a high processing speed may not be maintained. This is a case where conditional branch processing represented by an if statement is executed. In the case of executing a SIMD operation, a process that determines the value of the operation result in the middle of the operation and performs conditional branching is not suitable for SIMD. In other words, conditional branching processing that determines whether or not a certain predetermined condition is met and selects a jump destination in the program in an alternative is not compatible with SIMD processing. This is because when it is determined whether or not a certain condition is met for a plurality of data, there are rare cases where all the data matches the condition, or conversely, all the data does not match the condition. This is because there are many cases where data that matches the condition and data that does not match are usually mixed. In this way, when matching and mismatching with respect to the determination condition coexist, it is necessary to perform individual processing for each data according to the determination result, and the level of translation processing is disturbed. As described above, when a conditional branch process is executed as it is in a processor equipped with a SIMD arithmetic function, the translation process of the data string is disturbed, and there is a problem that the processing speed of the program is remarkably reduced.
なお、前述の特許文献1と特許文献2に記載のSIMD方式では、いずれにもこのような問題を解決するための特別な方式については提案されていない。特に、同時並列処理を行う上で操作テーブルを使用する概念は提示されていない。
Note that none of the SIMD methods described in
本発明の目的は、並列処理を維持した状態で高速なデータ演算を実行できる超音波診断装置用プロセッサを提供することにある。 An object of the present invention is to provide a processor for an ultrasonic diagnostic apparatus that can execute high-speed data computation while maintaining parallel processing.
(1)本発明は、超音波の送受信により得られた入力データ列を構成する各入力データを並列処理する超音波診断装置用プロセッサにおいて、前記入力データ列と比較データ列とを比較して、比較結果データ列を生成する第1の演算手段と、前記比較結果データ列を構成する各比較結果データから代表ビットを抽出し、それらの代表ビットによって代表ビット列を生成する代表ビット列抽出手段と、前記代表ビット列が表し得るビットパターンに対応した複数の操作データ列を格納した操作テーブルと、前記複数の操作データ列の中から前記代表ビット列に応じて選択された特定の操作データ列を用いて、前記入力データ列に対するデータ演算を実行し出力データ列を生成する第2の演算手段と、を有することを特徴とする。 (1) In the ultrasonic diagnostic apparatus processor for parallel processing each input data constituting the input data string obtained by transmitting and receiving ultrasonic waves, the present invention compares the input data string and the comparison data string, First arithmetic means for generating a comparison result data string; representative bit string extraction means for extracting a representative bit from each comparison result data constituting the comparison result data string and generating a representative bit string from the representative bits; and An operation table storing a plurality of operation data strings corresponding to bit patterns that can be represented by the representative bit string, and a specific operation data string selected according to the representative bit string from the plurality of operation data strings, And second calculation means for executing data calculation on the input data string and generating an output data string.
上記構成によれば、第1の演算手段において、入力データ列と比較データ列とが並列処理によって比較され比較結果データ列が生成される。そして、その比較結果データ列を構成する各比較結果データから代表ビットが抽出され、それらの代表ビットを並べた代表ビット列が生成される。ここで、代表ビット列によって表し得るビットパターンに対応して、複数の操作データ列が予め準備されており、具体的には、それらの操作データ列は操作テーブルの中に格納されている。そして、代表ビット列が構成するあるビットパターンに応じて、特定の操作データ列が選択される。選択された特定の操作データ列は、第2の演算手段において、入力データ列に対するデータ演算を実行するために用いられる。従って、このような構成においては、第1の演算手段及び第2の演算手段で行われる演算において、演算の並列性を維持したままの状態で、一括のデータ演算を行うことができる。つまり、演算の並列性が乱されることがないので、従来の演算処理と比較して高速な演算処理を行うことができる。また、例えば条件分岐処理を行う場合においても分岐が発生しないので、演算の並列処理を維持しつつ高速な処理速度を実現することができる。ちなみに、前記第1の演算手段と第2の演算手段は、共通の演算部で構成されていてもよい。また、操作テーブルは、プロセッサ内部に備わる内部メモリに構成されていてもよいし、プロセッサの外部に存在する周辺デバイスの記憶部上に構成されてもよい。 According to the above configuration, in the first calculation means, the input data string and the comparison data string are compared by parallel processing to generate a comparison result data string. Then, representative bits are extracted from each comparison result data constituting the comparison result data string, and a representative bit string in which these representative bits are arranged is generated. Here, a plurality of operation data strings are prepared in advance in correspondence with bit patterns that can be represented by representative bit strings, and specifically, these operation data strings are stored in an operation table. Then, a specific operation data string is selected according to a certain bit pattern formed by the representative bit string. The selected specific operation data string is used by the second calculation means to execute data calculation on the input data string. Therefore, in such a configuration, it is possible to perform a batch data calculation while maintaining the parallelism of the calculations performed by the first calculation unit and the second calculation unit. That is, since the parallelism of operations is not disturbed, high-speed arithmetic processing can be performed as compared with conventional arithmetic processing. Further, for example, even when conditional branch processing is performed, no branch occurs, so that high processing speed can be realized while maintaining parallel processing of operations. Incidentally, the first calculation unit and the second calculation unit may be configured by a common calculation unit. Further, the operation table may be configured in an internal memory provided in the processor or may be configured on a storage unit of a peripheral device existing outside the processor.
望ましくは、前記データ演算は、条件分岐処理に相当する論理演算を含むことを特徴とする。この構成によれば、演算対象であるデータの並列性を担保したままの状態で、論理演算による一括処理で条件分岐処理を行うことができる。すなわち、条件分岐処理を行う場合に、条件分岐命令に代えて、上記のようなテーブルの利用に加えて論理演算が用いられる。 Preferably, the data operation includes a logical operation corresponding to a conditional branch process. According to this configuration, it is possible to perform conditional branch processing by batch processing by logical operation while ensuring parallelism of data to be calculated. That is, when performing conditional branch processing, a logical operation is used in addition to the use of the table as described above, instead of the conditional branch instruction.
望ましくは、前記データ演算は、更に算術演算を含むことを特徴とする。この構成によれば、第2の演算手段において、論理演算と算術演算とを組み合わせることにより、所望の出力データ列を得ることができる。 Preferably, the data operation further includes an arithmetic operation. According to this configuration, a desired output data string can be obtained by combining the logical operation and the arithmetic operation in the second arithmetic means.
望ましくは、前記データ演算は、前記入力データ列を構成する各入力データに対して、前記特定の操作データ列を構成する各操作データを作用させて、前記各入力データの保存処理または変更処理を選択的に実行する演算を含むことを特徴とする。この構成によれば操作テーブルに格納されている操作データ列の中から特定の操作データ列として選定された各操作データは、各入力データに対する択一的な処理のための作用を発揮し、演算の同時並列性を維持したまま高速な演算を行うことができる。 Preferably, in the data calculation, the operation data constituting the specific operation data sequence is applied to the input data constituting the input data sequence, and the storage processing or change processing of the input data is performed. It includes a calculation that is selectively executed. According to this configuration, each operation data selected as a specific operation data string from among the operation data strings stored in the operation table exhibits an action for alternative processing for each input data, and is calculated. It is possible to perform high-speed computation while maintaining simultaneous parallelism.
望ましくは、前記データ演算は、前記入力データ列を構成する各入力データに対して、前記特定の操作データ列を構成する各操作データに応じて生成された派生操作データを作用させて、前記各入力データの保存処理または変更処理を選択的に実行する演算を含むことを特徴とする。例えば、互いに異なる複数の操作テーブルを使用すると、各々の操作テーブルから特定した操作データ列を相互に作用させることによって、派生操作データ列を生成することができる。派生操作データ列は複数の派生操作データから構成されており、その派生操作データを用いることによって、各入力データに対する択一的な処理のための作用をもって、演算の同時並列性を維持したまま高速な演算を行うことができる。 Preferably, the data calculation is performed by causing the derived operation data generated according to each operation data constituting the specific operation data sequence to act on each input data constituting the input data sequence, It includes an operation for selectively executing a storage process or a change process of input data. For example, when a plurality of different operation tables are used, a derived operation data string can be generated by causing the operation data strings specified from each operation table to interact with each other. Derived operation data strings are composed of multiple derived operation data. By using the derived operation data, it is possible to perform high-speed operations while maintaining the parallelism of operations with the action for alternative processing for each input data. Can be performed.
望ましくは、前記代表ビット列を構成する各代表ビットは、正負を表わす符号ビットであることを特徴とする。この構成によれば、例えば、第1の演算手段における演算操作が差分演算であるような場合に、大小判別のための比較結果が正であるか負であるかを、符号ビット列に基づいて判断することができる。 Preferably, each representative bit constituting the representative bit string is a sign bit representing positive or negative. According to this configuration, for example, when the calculation operation in the first calculation means is a difference calculation, it is determined based on the sign bit string whether the comparison result for size determination is positive or negative. can do.
望ましくは、前記比較データ列を構成する各比較データは、大小判別のための複数の閾値データであることを特徴とする。この構成によれば、第1の演算手段における演算操作は、条件分岐処理の手段としての数値の大小関係を判断する演算手段として用いることができる。 Preferably, each comparison data constituting the comparison data string is a plurality of threshold data for size discrimination. According to this configuration, the arithmetic operation in the first arithmetic means can be used as an arithmetic means for judging the magnitude relationship of numerical values as a means for conditional branch processing.
(2)本発明は、超音波の送受信により得られたN個(但し、Nは2以上の整数)の入力データを並列処理する超音波診断装置用プロセッサにおいて、前記N個の入力データとN個の比較データとを比較してN個の比較結果データを生成する第1の演算手段と、前記N個の比較結果データからN個の代表ビットを抽出し、それらの代表ビットによって代表ビット列を生成する代表ビット列抽出手段と、前記代表ビット列が表し得るビットパターンに対応する複数の操作データ列を格納した操作テーブルと、前記複数の操作データ列の中から前記代表ビット列に応じて特定の操作データ列を選択し、この特定の操作データ列を構成するN個の操作データを用いて、前記N個の入力データに対してデータ演算を実行し、N個の出力データを生成する第2の演算手段と、を有することを特徴とする。Nの取り得る値は、2、4、8または16などの2のべき乗で表される値が好ましいが、それ以外の数値であってもかまわない。ちなみに、Nの値は、プロセッサの仕様が許す限り大きな値を選定するのが望ましく、これによって並列処理能力は高くなる。 (2) The present invention provides an ultrasonic diagnostic apparatus processor for parallel processing of N pieces of input data (where N is an integer equal to or greater than 2) obtained by transmission / reception of ultrasonic waves. First arithmetic means for comparing N pieces of comparison data to generate N pieces of comparison result data, N representative bits are extracted from the N pieces of comparison result data, and a representative bit string is determined by the representative bits. Representative bit string extraction means to be generated, an operation table storing a plurality of operation data strings corresponding to bit patterns that can be represented by the representative bit string, and specific operation data according to the representative bit string from among the plurality of operation data strings A column is selected, and N operation data constituting this specific operation data sequence is used to perform data operation on the N input data to generate N output data. And having a second calculating means. The possible value of N is preferably a value represented by a power of 2, such as 2, 4, 8 or 16, but may be any other numerical value. Incidentally, it is desirable to select a value of N that is as large as the specifications of the processor allow, which increases the parallel processing capability.
(3)本発明は、超音波の送受信により得られた入力データ列を構成する各入力データを並列処理する超音波診断装置用プロセッサにおいて、前記超音波診断装置用プロセッサは、演算部と記憶部とを有し、前記演算部は、前記入力データ列と比較データ列との算術演算により比較結果データ列を生成し、前記比較結果データ列を構成する各比較結果データから代表ビットを抽出し、それらの代表ビットによって代表ビット列を生成し、予め用意された前記複数の操作データ列の中から前記代表ビット列に応じて選択された特定の操作データ列を用いて、前記入力データ列に対するデータ演算を実行して出力データ列を生成し、前記記憶部には、前記複数の操作データ列が格納され、前記複数の操作データ列は、前記代表ビット列が表し得るビットパターンに対応することを特徴とする。上記構成によれば、入力データ列と比較データ列との算術演算により比較結果データ列を生成する機能と、各比較結果データから代表ビットを抽出し代表ビット列を生成する機能と、予め用意された複数の操作データ列の中から選択された特定の操作データ列を用いて、入力データ列に対するデータ演算を実行して出力データ列を生成する機能が、共通の演算部によって達成される。 (3) The present invention relates to a processor for an ultrasonic diagnostic apparatus that processes in parallel each input data that constitutes an input data sequence obtained by transmission and reception of ultrasonic waves. The processor for an ultrasonic diagnostic apparatus includes a calculation unit and a storage unit. And the arithmetic unit generates a comparison result data string by an arithmetic operation of the input data string and the comparison data string, and extracts representative bits from each comparison result data constituting the comparison result data string, A representative bit string is generated from these representative bits, and a data operation on the input data string is performed using a specific operation data string selected according to the representative bit string from the plurality of operation data strings prepared in advance. And generating an output data string, and the storage unit stores the plurality of operation data strings, and the plurality of operation data strings may be represented by the representative bit string Characterized in that it corresponds to the Ttopatan. According to the above configuration, a function for generating a comparison result data string by an arithmetic operation of an input data string and a comparison data string, a function for extracting a representative bit from each comparison result data, and generating a representative bit string are prepared in advance. The function of executing the data operation on the input data string and generating the output data string using the specific operation data string selected from the plurality of operation data strings is achieved by the common calculation unit.
以上説明したように、本発明によれば、演算の並進処理を維持した状態で高速なデータ演算を実行できる。そのために、例えば、条件分岐処理に相当する処理であっても、分岐が発生しないので、入力データ列について処理の流れが乱されることなく、高速な演算処理が可能になる。 As described above, according to the present invention, high-speed data computation can be executed while maintaining the translation processing of computation. Therefore, for example, even in the process corresponding to the conditional branch process, no branch occurs, so that high-speed arithmetic processing can be performed without disturbing the process flow for the input data string.
以下、本発明の好適な実施の形態を図面に基づいて説明する。 DESCRIPTION OF EXEMPLARY EMBODIMENTS Hereinafter, preferred embodiments of the invention will be described with reference to the drawings.
図1は本発明に係るプロセッサが搭載される超音波診断装置の全体的構成を示すブロック図である。図1のシステム制御部30は、当該超音波診断装置を統括的に制御する役割をもち、システム制御部30の中には全体制御を行うCPU31が搭載されている。また、このシステム制御部30は図1に示す各ユニットに対して制御タイミングの基本となる信号等を出力している。
FIG. 1 is a block diagram showing an overall configuration of an ultrasonic diagnostic apparatus in which a processor according to the present invention is mounted. The
送信ビームフォーマー18は、複数の送信遅延回路を有しており、各々の送信遅延回路の出力信号は、探触子10の内部にある各々の振動素子に供給される。複数の送信遅延回路は、システム制御部30から出力された制御タイミングの基本信号に基づいて駆動されており、探触子10の中に配列された複数の振動素子に対して、遅延時間が制御された送信信号が出力されている。
The transmission beam former 18 has a plurality of transmission delay circuits, and an output signal of each transmission delay circuit is supplied to each vibration element in the
探触子10は、多数の振動素子を配列して構成されたアレイ振動子を有している。それぞれの振動素子は、生体に向けてタイミング制御された送信信号により超音波を送信する。生体に向けて送信した超音波は、生体からの反射波として受信される。図1において、この超音波の送受信の状態は1本の超音波ビームBとして概念的に示されている。この超音波ビームBを電子的に走査することによりセクタ形状の走査面14が形成される。この走査面14はデータ取り込み面であり、振動子からの距離を示すrと走査角θとを用いてデータの取り込み位置が把握される。本実施形態においてはセクタ走査方式を例示しているが、リニア走査、コンベックス走査、ラジアル走査及びその他の走査方式を採用することもできる。
The
受信ビームフォーマー16は、複数のA/D変換回路、複数の受信波位相整合回路、及び加算回路を備える。図示されていない各A/D変換回路は、各振動素子で受信されたエコー信号をデジタルデータに変換する機能をもつ。また、各受信波位相整合回路は各エコー信号の遅延量を制御して位相を揃える機能をもち、加算回路は位相整合された複数のエコー信号を加算する機能をもつ。探触子10で得られた複数のエコー信号は、受信ビームフォーマー16によって整相加算され1つのエコーデータが形成され、それがビーム処理部20に送られる。
The reception beam former 16 includes a plurality of A / D conversion circuits, a plurality of reception wave phase matching circuits, and an addition circuit. Each A / D conversion circuit (not shown) has a function of converting an echo signal received by each vibration element into digital data. Each received wave phase matching circuit has a function of controlling the delay amount of each echo signal to align the phases, and an adding circuit has a function of adding a plurality of phase-matched echo signals. The plurality of echo signals obtained by the
ビーム処理部20においては、受信ビームフォーマー16から送られるエコーデータに対して、以下のような信号処理が順次行われる。すなわち、受信した高周波信号の包絡線を検出するための検波処理、信号の輝度を補正するためのダイナミックレンジの圧縮処理などの処理である。このような信号処理を行うために、ビーム処理部には複数のDSP34が搭載されている。各DSP34は、所定のプログラムを実行して信号処理を行う。そして、信号処理が終了したエコーデータは次段の画像処理部22に送られる。
In the
画像処理部22においては、エコーデータに対する閾値処理、2値化処理などの変換処理が行われる。画像処理部22では、当該超音波診断装置の動作モードに応じて様々な処理が行われる場合がある。例えば、Bモード画像上でのカラードップラ法による血流画像の表示を行う場合には、画像処理部22では空間フィルタ処理などが行われる。この画像処理部22においても複数の画像データ処理用のDSP36が使用されている。画像処理部22から出力されたエコーデータは、次段のデジタルスキャンコンバータ(DSC)24に送られる。
In the
DSC24においては画像データが作成される。DSC24の内部には画像メモリが設けられ、座標変換機能と補間処理機能とを備えている。座標変換処理を行うことによって、送受波座標系で管理されるエコーデータは、表示座標系で管理される画像データに変換される。このような画像データの作製処理にもDSP38が使用されている。
In the
ビデオ出力部26は、DSC24から出力された画像データを、表示部28で画像表示するためのモニタ信号に変換する。表示部28としては一般的にCRTやLCDが用いられる。表示部28には、例えば、Bモード表示で、セクタ形状の走査面14に対応した断層画像が表示される。
The
操作パネル32は、キーボードやトラックボール等のデータ入力機器を有している。操作パネルはシステム制御部30と電気的に接続されており、操作パネル32から入力されたデータは、システム制御部30において、そのデータを保存することができる。システム制御部30に保存されるデータとしては、閾値処理のための閾値や折り返し補正処理のための位相角などがあげられる。
The
以上、説明したように、超音波診断装置の内部には、本実施形態においてはシステム制御のためのCPU31と、エコーデータ処理のための複数のDSP34、36、38などの複数のプロセッサが使用されている。
As described above, in the present embodiment, a
図2には、本発明の実施形態である超音波診断装置用プロセッサの概略ブロック図が示されている。プロセッサ40は、演算器42と内部メモリ44を有し、演算器42は内部メモリ44を経由してデータバス46との間でデータを送受する。システム制御部のCPU31とDSP34,36,38は、データバス46を用いることにより、図示されていない外部メモリを経由して、相互にデータの送受をすることができる。動作の詳細については後述の図5から図21までの図を用いて説明する。
FIG. 2 shows a schematic block diagram of the ultrasonic diagnostic apparatus processor according to the embodiment of the present invention. The
本発明の実施形態の具体例の説明に入る前に、従来のエコーデータの処理方法を図3を用いて説明する。図3を用いて説明する内容は、前述した従来技術の課題を補足説明するための内容である。 Prior to describing a specific example of the embodiment of the present invention, a conventional echo data processing method will be described with reference to FIG. The content described with reference to FIG. 3 is a content for supplementary explanation of the above-described problems of the prior art.
図3に示すC言語のプログラム50は閾値処理のためのプログラムである。これは、演算対象データであるエコーデータと閾値を比較して、閾値以上の値については、エコーデータを無処理のままで保存し、閾値未満の値についてはエコーデータを0にするための処理を記述したものである。比較の対象である閾値THは一定値である。このプログラム50の中で用いられるエコーデータは、図4に示すように配列data[i]54に格納されている。図3のプログラム50の1行目は、変数iを回数カウンタとして、繰り返し処理がN回実行されることを示している。2行目は、if文の条件分岐処理を示している。演算対象の値data[i]と閾値THとの大小関係が調べられて、その結果に応じて分岐先が決定される。もし、あるエコーデータdata[i]の値が閾値THより大きな値である場合には、プログラム50の3行目の分岐先に処理が移り、data[i]の値はそのまま配列output[i]に格納される。もし、data[i]の値が閾値TH以下である場合には、プログラム50の5行目の分岐先に処理が移り、output[i]には0が格納される。
図3のプログラム50に示すような閾値処理をSIMD方式による並列演算によって行った場合には、上記のような条件分岐先を指定することができないか、あるいは、条件分岐先を指定できたとしても後続の処理が大幅に乱れてしまうという問題が発生する。例えば、4つのエコーデータを並列処理しようとする場合に、1つのケースとして、1つのデータが閾値THよりも大きく、残りのデータは閾値TH以下であるような場合は十分に発生しうる。このように、判定条件を満足するデータと満足しないデータが混在してしまうと、分岐先を二者択一で選択する処理を行うことは困難である。判定条件が混在するような事態が発生した場合には、一括で読み込んだ4つのデータの並列性を乱して、1つずつ分解して個別に処理するしかなくなり、結局は、1つずつのデータについて閾値との大小関係をそれぞれ判定し、逐次処理することになる。このようにSIMD演算機能を搭載したプロセッサを用いて、並列処理を維持したまま条件分岐処理を実行しようとしても、並列性を維持することができないために高速なデータ処理は望むことはできなかった。そこで、以下に本実施形態を説明する。
When the threshold processing as shown in the
図5は、本発明の好適な第1の実施形態の概念図を示したものである。具体的には、エコーデータの大小判断を行うための閾値処理に関する内容を示している。この閾値処理は、図1に記す画像処理部22の中にあるDSP36を用いて実行されるデータ処理である。以下、図5において、閾値処理の説明をデータ処理の流れに沿って詳述する。演算対象の入力データ列70は、4つの入力データから構成されている。具体的には、図5に示す入力データ列70は、各16ビットの4つの入力データ(data[0]、data[1]、data[2]、data[3])から構成されている。入力データ列70は、第1演算器72と第2演算器84に入力される。ここで、第1演算器72に入力される比較データ列74も、4つの比較データから構成されている。第1演算器72では、入力データ列70と比較データ列74とを用いて以下の並列演算が行われる。
FIG. 5 shows a conceptual diagram of a preferred first embodiment of the present invention. Specifically, the contents regarding threshold processing for determining the size of echo data are shown. This threshold processing is data processing executed using the
図6は、第1演算器72で行われる演算の詳細を示している。第1演算器72に入力された入力データ列70は、比較データ列74との比較のために減算されて、比較結果データ列88が得られる。すなわち、SIMD方式の減算操作により、4つの入力データ(data[0]、data[1]、data[2]、data[3])から、4つの比較データ(TH[0]、TH[1]、TH[2]、TH[3])を一括で減算することによって、4つの比較結果データ(tmp[0]、tmp[1]、tmp[2]、tmp[3])が得られる。ここでは減算を用いているが、比較結果データを得るために減算以外の算術演算、論理演算その他の演算を用いてもかまわない。4つの比較結果データは、入力データと比較データとの大小関係を判断するための手段となる。周知のことであるが、2進数表記の数値の最上位ビットは、数値の正負を表す符号ビットとして使用することができる。従って、この比較結果データ列88についても、各々の比較結果データの最上位ビットである16ビット目を、各々の符号ビット68として使用することができる。すなわち、図6において記号Sで表す4つの符号ビット(S0、S1、S2、S3)は、エコーデータと閾値との大小関係に応じて、“1”または“0”のいずれかの値になる(本明細書においては、2進数表記の数値を“ ”で括って表記する)。ここでは、具体例として、4つの符号ビットの値が決定し、S0=“0”、S1=“1”、S2=“0”、S3=“0”になったとする。この4つの符号ビットを抽出して順に並べると、4ビットの符号ビット列76が作成される。図6に示す例では、記号SIGNで表す符号ビット列76は、“0010”となる。本来、符号ビットは、“0”と“1”のいずれかの値を取るので、4ビットのビットパターンで識別できるのは24=16通りの組み合わせになる。
FIG. 6 shows details of the calculation performed by the
次に、図5に示した符号ビット列76と操作テーブルA80について、図7を用いて詳述する。図7においては、符号ビット列76は、前述した“0010”のビットパターンとして例示されている。一方、操作テーブルA80は、16組(16列)の操作データ列92から構成されており、それぞれの操作データ列92は、4つの操作データ90a、90b、90c、90dから構成されている。ある符号ビット列76のビットパターンが決定すると、それに応じて、ある特定の操作データ列82が決定されることが、図に示す矢印94によって示されている。
Next, the
符号ビット列76を構成する各々の符号ビットの値は、入力データと、閾値の比較データとの大小関係の情報を抽出したものである。閾値処理を実行するためには、符号ビットが“0"であれば、入力データを無変換のまま処理すればよく、逆に、符号ビットが“1"であれば、入力データを0に変換して処理すればよい。これらの変換の必要あるいは不要の選択を行うために、符号ビットの値に応じた操作データとして、0xFFFFあるいはOx0000のいずれかを選択する。0xFFFFと0x0000の閾値処理における選択方法は、以下の2つの方法によって行う。(i)符号ビットが“0”の場合は操作データとして0xFFFFを選択する。(ii)符号ビットが“1”の場合には操作データとして0x0000を選択する。ちなみに、0xFFFFと0x0000はいずれも16進数表記の数値である。ここで、例示した符号ビット列76は、“0010”であるので、4つの符号ビットS0=“0”、S1=“1”、S2=“0”、S3=“0”に応じて選択される4つの操作データを列記すると、0xFFFF、0x0000、0xFFFF、0xFFFFとなる。この4つの操作データは、図7に示した矢印94で指し示す#2の位置の操作データ列としてTABLE_A[8]=0xFFFF、TABLE_A[9]=0x0000、TABLE_A[10]=0xFFFF、TABLE_A[11]=0xFFFFと記されている。この例から分かるように、4つの符号ビットが全て定まれば、それに対応する特定の操作データ列82の組み合わせも自動的に決定することができる。ここで、符号ビット列76が取り得るビットパターンは、“0000”から“1111”までの16通りであるので、特定の操作データ列82は図7に示す#0から#15までの16組の操作データ列のいずれか一つに該当する。操作テーブルA80は、これらの16組の操作データ列を集合することで構成されている。更に、操作データ列92を構成する4つの操作データは、前述の(i)と(ii)の2つのルールに従って、0xFFFF又は0x0000のいずれかに決定される。符号ビット列76で取り得る値がどのような値であっても、それに対応する特定の操作データ列82は操作テーブルA80の中に予め格納してある。なお、操作テーブルA80の実体的な構成は、図2に示すプロセッサ40内の内部メモリ44上に構成されるデータ列の集合である。符号ビット列76のビットパターンに応じて、ある操作データ列92を特定する際には、プログラム内で管理している相対的なメモリアドレス管理番号を使用してもよいし、メモリに割り当てられているハードウェアのアドレス番号を直接に利用してもよい。図7に示すTABLE_A[i]の記号は、メモリアドレス管理番号を示している。ちなみに、操作テーブルA80は、プロセッサ40の外部にある周辺デバイスの記憶部内に構成されてもよい。また、不揮発性のメモリに書き込むことによって、消去できない操作テーブルA80を構成することも可能である。
The value of each code bit constituting the
次に、図5に示した特定の操作データ列82、入力データ列70及び第2演算器84の関係を図8に基づいて詳述する。図8は、第2演算器84で行われる演算の内容を示している。第2演算器84に入力された入力データ列70は、特定の操作データ列82との論理積演算を行うことにより、出力データ列86に変換される。すなわち、SIMD方式の論理演算により、4つの入力データ(data[0]、data[1]、data[2]、data[3])に、4つの特定の操作データ(0xFFFF、0x0000、0xFFFF、0xFFFF)を作用させて、一括で論理積を取ることにより、4つの出力データ(out[0]、out[1]、out[2]、out[3])が得られる。周知のことであるが、論理積演算においては、双方のビット単位の入力値が“1”の場合にだけビット単位の出力値が“1”になる。また、ビット単位の入力値に1つでも“0”がある場合にはビット単位の出力値は“0”となる。本実施形態において閾値処理を行うための特定の操作データ列82を構成する4つの特定の操作データは、0xFFFFまたは0x0000のいずれかの値であり、論理積の演算において、0xFFFFを作用させるということは、演算対象である入力データに対して、全く何の変換処理も行わない操作であることを意味する。つまり、入力データは保存処理されてそのまま出力される。一方、0x0000を作用させるということは、演算対象である入力データを0に置き換える変更処理となる。すなわち、0x0000を作用させることは、ゼロへの置換処理となる。図8に示す具体例では、論理積演算にてdata[1]だけを0x0000と作用させているので、out[1]だけが0になる。その他の3つのデータout[0]、out[2]、out[3]は、それぞれの入力データdata[0]、data[2]、data[3]のそのままの値になる。結果として、第2演算部84での論理積演算により適正な閾値処理が行われることにより、出力データ列86が一括で得られる。
Next, the relationship among the specific
以上、図5の概念図に示したように、エコーデータである入力データ列70が第1演算器72と第2演算器84に入力された段階から、第2演算器84によって出力データ列86が出力される段階に至るまで、4つのデータは全て並進処理されており、演算の足並みが乱されることはない。このように、データ処理の同時並列性を保つことは、高速な実行速度を保つ上で極めて有効である。
As described above, as shown in the conceptual diagram of FIG. 5, the
ちなみに、本実施例においては、前述の(i)と(ii)の2つのルールに従って、符号ビットが“0”の場合は0xFFFFを対応させており、符号ビットが“1”の場合には0x0000を対応させている。しかし、別の適用例としては、符号ビットが“0”の場合は0x0000を対応させて、符号ビットが“1”の場合には0xFFFFを適用させるような他の操作テーブルA2を閾値処理に使用することも可能である。他の操作テーブルA2を用いて閾値処理を行う場合には、符号ビット列76のビットパターンが決定した直後であって、特定の操作データ列82を決定する前に、そのビットパターンを否定論理演算(NOT演算)によって反転させる必要がある。つまり、符号ビット列76の否定論理演算を追加することにより、他の操作テーブルA2を用いても正しい閾値処理の結果を得ることができる。ところが、他の操作テーブルA2を用いると、否定論理演算を実行するための演算の時間が余計に累積されてしまい、処理速度の面で不利な点が生じてしまうことになる。すなわち、演算の高速化を目的として考えると、図示されていない操作テーブルA2を用いるよりも、図7に示す操作テーブルA80を使用することが望ましい。
Incidentally, in this embodiment, according to the two rules (i) and (ii) described above, 0xFFFF is associated when the sign bit is “0”, and 0x0000 when the sign bit is “1”. It corresponds. However, as another application example, another operation table A 2 that corresponds to 0x0000 when the sign bit is “0” and applies 0xFFFF when the sign bit is “1” is used for threshold processing. It is also possible to use it. When threshold processing is performed using another operation table A 2 , immediately after the bit pattern of the
次に、参考までに、図9を用いて、図5の概念図に示した閾値処理をプロセッサに実行させる具体的なプログラムの説明を示す。図9に示すプログラム96は全部で4行の式からなっている。なお、C言語にはSIMD演算を表現する演算子が無いため、データを並列に扱う演算子として暫定的に“[]”の記号を使用する。
Next, for reference, a specific program for causing the processor to execute the threshold processing shown in the conceptual diagram of FIG. 5 will be described with reference to FIG. The
プログラム96の1行目に記す式tmp[]=data[]−TH[]は、SIMD方式による並列の減算処理を示す式であり、第1演算器72で行う演算に相当する。すなわち、入力データ列data[]を構成する4つの入力データ(data[0]、data[1]、data[2]、data[3])から、比較データ列TH[]を構成する4つの比較データ(TH[0]、TH[1]、TH[2]、TH[3])を一括で減算することによって、比較結果データ列tmp[]を構成する4つの比較結果データ(tmp[0]、tmp[1]、tmp[2]、tmp[3])が得られる。
An expression tmp [] = data [] − TH [] written in the first line of the
プログラム96の2行目に記す式は、比較結果データ列tmp[]から符号ビットSが抽出されて、符号ビット列SIGNが生成される処理を示す式である。本実施形態のSIMD処理が可能なプロセッサでは、符号ビットに相当するビットを検出する機能を内蔵している。そのため、2行目の式に示したようなシフト命令や論理積演算等を行うことなく、直接的にSIGNのビットパターンに相当するデータを導出することができる。従って、符号ビットの抽出処理及び符号ビット列SIGNの生成処理において並列演算の足並みを乱すことはない。ちなみに、2行目に記す式は、符号ビットの抽出処理と符号ビット列SIGNの生成処理について演算方法を例示したものである。まず(tmp[3]>>12)の部分については、2進数表記のデータとしての比較結果データtmp[3]を右に12桁シフトさせる。すると、tmp[3]の最上位16ビット目に位置していた符号ビットの数値は、最下位ビットから数えて4番目のビットに移動される。12桁右シフトした後の2進数表記データに対して0x8との論理積を行うことにより4桁目のみが“1”か“0”かのビット判定が行われる。他の3つの入力データtmp[2]、tmp[1]、tmp[0]についても同様の処理が行われる。すなわち、tmp[2]の符号ビットは、右に13桁シフトさせることで3桁目に移動し0x4との論理積を行うことで3桁目のみのビット判定が行われる。tmp[1]の符号ビットは、右に14桁シフトさせることで2桁目に移動し0x2との論理積を行うことで2桁目のみのビット判定が行われる。tmp[0]の符号ビットは、右に15桁シフトさせることで1桁目に移動し0x1との論理積を行うことで1桁目のみのビット判定が行われる。4桁目、3桁目、2桁目及び1桁目の各々についてビット判定が行われた4つのビット判定のデータは、4つの論理和を取ることにより1つのデータに集約される。4つの符号ビットを1つのデータに集約することにより、4ビットの符号ビット列SIGNのビットパターンが形成される。(実際にはプロセッサ内ではシフト命令や論理積に相当する抽出処理が実行されるだけであり、各データごとの並列性が乱されることはない)なお、正負の判定を行う手段としては、符号ビットが最適であるので利用されるが、抽出されるビットは任意の桁のビットを抽出してもかまわない。例えば、第1演算器72で算術演算を行った上で、最上位ビット以外のある特定のビットを代表ビットとして抽出し、それらの代表ビットから代表ビット列を集積することも可能である。
The expression described in the second line of the
プログラム96の3行目に示す式は、操作データ列が格納された操作テーブルA80の中から1つの操作データ列を特定する処理を示す式である。特定の操作データ列は符号ビット列SIGNのビットパターンによって決定される。つまり、符号ビット列SIGNのビットパターンに応じて、操作テーブルA80である配列TABLE_A[]の中から1つの操作データ列が特定される。特定された操作データ列は、式の左辺に記す変数としてのMASKに代入される。
The expression shown in the third line of the
プログラム96の4行目に記す式out[]=data[]&MASK[]は、SIMD方式による並列の論理積演算を示す式である。MASK[]は特定の操作データ列82を示しており、3行目の式で決定した変数MASKと同値である。4行目の式によって、入力データ列70としてのdata[]を構成する4つの入力データ(data[0]、data[1]、data[2]、data[3])と、特定の操作データ列82としてのMASK[]との論理積を取ることによって、出力データ列86としての(out[0]、out[1]、out[2]、out[3])を得ることができる。
The expression out [] = data [] & MASK [] written in the fourth line of the
以上のような手順で 閾値処理を行うことにより、4つの入力データを一括して処理することができる。最初の入力データ列(data[0]、data[1]、data[2]、data[3])の閾値処理が完了した後には、後続の入力データ列である(data[4]、data[5]、data[6]、data[7])の閾値処理が順次実行されることは言うまでもない。条件分岐命令を使った逐次判定処理を行わないので、判定条件に相当する処理を高速に行うことができ、逐次処理と比較すると数倍の処理速度を期待できる。 By performing threshold processing according to the above procedure, four input data can be processed in a batch. After the threshold processing of the first input data string (data [0], data [1], data [2], data [3]) is completed, the subsequent input data strings (data [4], data [ It goes without saying that threshold processing of 5], data [6], data [7]) is executed sequentially. Since sequential determination processing using a conditional branch instruction is not performed, processing corresponding to the determination condition can be performed at high speed, and a processing speed several times higher than that of sequential processing can be expected.
次に、本発明の第2の実施形態としてカラードップラ法による血流画像の形成を行う場合における折り返し現象の補正処理について詳述する。カラードップラ法とは、血流で発生する超音波ドップラ効果を利用した血流状態の表示方法である。カラードップラ法は血流を視覚化して表示するための有効な方法であるが、血流速度がサンプリング周期で決定される上限値よりも大きい場合には、血流方向が探触子に近づく方向であるのか、遠ざかる方向であるのか判定できなくなるという側面を有している。これは、偏移周波数がいわゆるナイキスト周波数を越えた場合に発生する折り返し現象として知られており、適切な血流速度の算出を阻害する現象である。そこで、この折り返し速度近傍において、適切な血流速度の平均値を求めるために、速度データに対しては、折り返し補正処理が行われる。 Next, as a second embodiment of the present invention, a correction process for the aliasing phenomenon when a blood flow image is formed by the color Doppler method will be described in detail. The color Doppler method is a method for displaying a blood flow state using an ultrasonic Doppler effect generated in the blood flow. The color Doppler method is an effective method for visualizing and displaying blood flow. However, when the blood flow velocity is larger than the upper limit determined by the sampling period, the direction of blood flow approaches the probe. Or the direction of moving away from each other. This is known as a folding phenomenon that occurs when the deviation frequency exceeds the so-called Nyquist frequency, and is a phenomenon that hinders calculation of an appropriate blood flow velocity. Therefore, in order to obtain an appropriate average value of blood flow velocity in the vicinity of the folding speed, folding correction processing is performed on the speed data.
一般に、カラードップラ法において超音波は生体に対して同一方向に複数回送受信されて、それぞれのエコーデータを基に血流速度の平均値が求められる。この場合に、血流速度の検出上下限が存在するために、血流速度値の中には、折り返したデータが混在する。この血流速度に対して平均化処理などを行う場合、折り返し速度をまたぐデータ同士については、折り返し補正処理をデータ毎に選択的に行う必要がある。以下には、折り返し補正処理に関して、図10から図18までを用いて詳述する。 In general, in the color Doppler method, ultrasonic waves are transmitted / received to / from a living body a plurality of times in the same direction, and an average value of blood flow velocity is obtained based on respective echo data. In this case, since there is an upper and lower limit of blood flow velocity detection, the blood flow velocity value includes folded data. When the averaging process or the like is performed on the blood flow velocity, it is necessary to selectively perform the aliasing correction process for each piece of data between the aliasing speeds. Hereinafter, the aliasing correction process will be described in detail with reference to FIGS. 10 to 18.
図10に示す複素平面のグラフ114は、超音波ドップラ効果に基づいて得られる血流の速度と血流の方向を図示するための概要図を示したものである。速度情報は複素平面上において位相角θをもつベクトルとして記載することができる。図10に示す複素平面グラフ114上では、2つの速度情報の位相としてθ1(符号116)とθ2(符号118)が示されている。θ1とθ2のいずれも、探触子に近づく同一方向の血流を観測することで得られた測定値とする。そうすると、θ1もθ2も正の値(例えば、θ1=130°、θ2=200°)として測定されるのが適切である。しかしながら、ドップラ法で測定される測定値としては、θ2は負の値(例えばθ2=−160°)として測定されてしまう。これを折り返し現象という。測定値をそのまま用いて、単純な平均値である(θ1+θ2)/2の計算をすると、θ2が見かけ上、負の値であるので、図10のグラフ114に記すθaのベクトル120で示される角度が求められる。しかし、θ2は実際には正の値なので、θaのベクトル120の位置は不適切となる。正しい平均値(θ1+θ2)/2の値は、グラフ114に示したθbのベクトル122として表されるのが適正である。
A
そこで、正しい平均値を求めるために、以下に述べる手順で2段階の処理を行う。まず、第1段階の処理として、演算対象の2つの値の角度差の絶対値を求め、その角度差△θが所定角度180°より大きいかどうかを調べる。角度差△θは△θ=|θ1−θ2|の式で表される。角度差△θが180°よりも大きい場合にはベクトルを表す矢印を反転させる必要があると判断し、反対に180°以下である場合には反転させないので何の処理も行わない。反転する必要があると判断された場合には、次の第2段階の処理を行う。第2段階の処理においては、ベクトルを表す矢印を反転させるのに、時計周りの回転方向に180°に反転するか、それとも反時計方向に180°に反転するかを決定する処理を行う。具体的には第2段階の処理においては、単純平均値θavgの計算結果が判断に使用される。単純平均値θavgはθavg=(θ1+θ2)/2の式で表される。θavgの値が0以上の値であれば、単純平均した値から180°を引く。つまり、時計周りの方向に180°回転させることで反転処理を行う。一方、θavgの値が0より小さい値であれば、単純平均した値に180°を加える。つまり、反時計方向に180°回転させることで反転処理を行う。以上のように、単純平均値θavgと角度差△θを求めて、第1段階と第2段階の処理を併せて行うことによって、折り返し補正処理を行うことができる。この2段階の併合処理自体は公知技術と言えるが、本実施形態ではそれをSIMD方式で実現している。
Therefore, in order to obtain a correct average value, a two-stage process is performed according to the procedure described below. First, as a first stage process, an absolute value of an angle difference between two values to be calculated is obtained, and it is checked whether or not the angle difference Δθ is larger than a
図11は、カラードップラ法の折り返し補正処理の概念図を示したものである。この処理は図1に記す画像処理部22の中にあるDSP36を用いて実行されるデータ処理である。以下、図11を用いて、折り返し補正処理の説明をデータ処理の流れに沿って詳述する。演算対象の入力データ列124は、4つの入力データave_TH[0]、ave_TH[1]、ave_TH[2]、ave_TH[3]から構成されている。ここで、ave_TH[P]は単純平均値{θ(2P+1)+θ(2P+2)}/2(但し、Pは0以上の整数)の値であり、例えばave_TH[0]=(θ1+θ2)/2で求められ、ave_TH[1]=(θ3+θ4)/2で求められる。更に、θ5及びθ6を用いてave_TH[2]の値が求められ、θ7及びθ8を用いてave_TH[3]の値が求められる。ここでそれぞれのθが取り得る値は単なる例示であり、同じ値が含まれていてもよいし、異なる値であってもよい。これらの単純平均値ave_TH[P]は、入力データ列124に代入される前の段階で予め計算で求められている。入力データ列124は、第1演算器126と第2演算器148に入力される。
FIG. 11 shows a conceptual diagram of the aliasing correction processing of the color Doppler method. This processing is data processing executed using the
図12を用いて、第1演算器126で行われる演算の内容を説明する。第1演算器126では、入力データ列124から比較データ列140を減算することにより比較結果データ列152が得られる。折り返し補正処理の実施形態においては、比較データ列140の値は全て0であるので、比較結果データ列152から抽出した4つの符号ビット(S0、S1、S2、S3)の各々の値は、各々の単純平均値ave_TH[]の正負を示すことになる。
The contents of the calculation performed by the
次に、図11に示す符号ビット列128と操作テーブルB130との関係について、図13を用いて説明する。図13においては、符号ビット列128は、“0101”を例示のビットパターンとして示している。符号ビット列128を構成する各々の符号ビットの値が“0”であれば、単純平均値を示すベクトル120は、図10に示すグラフ114の実数軸(横軸)より上方の領域に位置していることを示す。従って、符号ビットが“0”であることは、そのベクトル120を反転させようとすると時計回りの方向が適切であることを示している。また、逆に、符号ビットの値が“1”であれば、単純平均値を示すベクトル120は、図10に示すグラフ114の実数軸(横軸)より下方の領域に位置していることを示している。従って、符号ビットが“1”であることは、そのベクトル120を反転させようとすると反時計回りの方向が適切であることを示している。整理すると、符号ビットが“0”であれば、−180°回転の操作データを作用させ、符号ビットが“1”であれば、+180°回転の操作データを作用させればよい。10進数表記の180は16進数表記で0x00B4であることから、図13に示す操作デーブルB130においては、(iii)符号ビットが“0”の場合は0xFF4Cを選択し、(vi)符号ビットが“1”の場合には0x00B4を選択する。操作テーブルB130に格納される操作データの値は、(iii)と(vi)との2つのルールに従って決定されている。図13に示すように、例示のビットパターン“0101”に対応する特定の操作データ列132は、矢印154で指し示す#5の位置の操作データ列132であって、TABLE_B[20]=0xFF4C、TABLE_B[21]=0x00B4、TABLE_B[22]=0xFF4C、TABLE_B[23]=0x00B4となる。特定の操作データ列132は、後述の第2演算器148での論理演算を行う段階では、OFFSET[]という名称の配列に代入される。符号ビット列128のビットパターンがどのような値を取っても、そのビットパターンに対応する特定の操作データ列が操作テーブルB130の中に予め準備されている。例示した符号ビット列128は4ビットであるため、操作テーブルB130は16組の操作データ列から構成されている。もし、SIMDの演算の並列性が高い場合であって、符号ビット列128が8ビットであれば、それに対応して予め準備される操作テーブルB130は256組の操作データ列から構成されることになる。一般的には、代表ビット列がN桁である場合には、予め準備される操作テーブルは2N組の操作データ列から構成される。なお、ここでは角度補正を理解しやすいように±180°を整数値で表現したが、実際には精度を確保するため、±180°を±1.0に正規化して16ビット固定小数点で処理する方がよい。
Next, the relationship between the
図11に戻ってこれまでの演算を確認すると、入力データ列124、第1演算器126、符号ビット列128及び操作テーブルB130に基づいて、特定の操作データ列132が決定され、それによって血流の速度を示すベクトル120を反転する方向を決定する演算を行ってきた。ところで、ベクトルの回転方向の決定とは別に、反転の必要または不要の判定については別の判定条件を必要とするので、その判定条件を導くための演算を行う必要がある。以下には、図11に示す参照データ列156、第3演算器134、符合ビット列136及び操作テーブルC138を用いて決定される反転の必要、不要の判定処理について記す。
Returning to FIG. 11 and confirming the calculation so far, a specific
演算対象の参照データ列156は、4つの入力データdelt_TH[0]、delt_TH[1]、delt_TH[2]、delt_TH[3]から構成されている。ここで、delt_TH[P]は、位相差{θ(2P+1)−θ(2P+2)}の絶対値(但し、Pは0以上の整数)の値を示しており、例えばdelt_TH[0]=|θ1−θ2|により求められ、delt_TH[1]=|θ3−θ4|で求められる。これらの角度差delt_TH[P]は、参照データ列156に代入される前の段階で予め計算で求められている。参照データ列156は、第3演算器134に入力される。
The
図11に示す第3演算器134で行われる演算の内容を、図14を用いて説明する。第3演算器134では、参照データ列156から比較データ列158を減算して比較結果データ列160が得られる。反転の要不要の判定が180°との大小関係で判定されるので、比較データ列158に代入される値は全て180となる。つまり、PI[0]=0x00B4、PI[1]=0x00B4、PI[2]=0x00B4、PI[3]=0x00B4となる。比較結果データ列160から抽出した4つの符号ビット(S0、S1、S2、S3)の各々の値は、反転の要不要の判定情報を有している。
The contents of the calculation performed by the
次に、符号ビット列136と操作テーブルC138の関係について、図15を用いて記す。図15においては、符号ビット列136は、“0110”を例示のビットパターンとして示している。符号ビット列136を構成する各々の符号ビットの値が“0”であれば、角度差の絶対値から180°を減算した値が正または0であることを示しており、反転処理が必要であることを意味する。操作テーブルC138の中から特定される操作データ列162は、前述した回転方向を決定するための特定の操作データ列132と作用させることを前提としている。従って、反転が必要な場合には、0xFFFFの演算子を選択すればよい。あるいは逆に、符号ビットの値が“1”であれば、角度差の絶対値から180°を減算した値が負であることを示しており、反転処理が不要であることを意味する。従って、反転が不要な場合には0x0000の演算子を選択すればよい。図15に示す操作テーブルC138においては、(v)符号ビットが“0”の場合は0xFFFFを選択し、(vi)符号ビットが“1”の場合には0x0000を選択する。操作テーブルC138に格納される全ての操作データの値は、(v)と(vi)との2つのルールに従って決定されている。図15に示すように、例示のビットパターン“0110”に対応する特定の操作データ列162は、矢印164で指し示す#6の位置の操作データ列であってTABLE_B[24]=0xFFFF、TABLE_B[25]=0x0000、TABLE_B[26]=0x0000、TABLE_B[27]=0xFFFFとなる。特定の操作データ列162は、後述の第2演算器148での論理演算を行う段階では、MASK[]という名称の配列に代入される。ちなみに、反転の要不要を決定する目的である操作テーブルC138と、閾値処理を行う目的である操作テーブルA80とは、実質的に同じ操作テーブルとなっている。
Next, the relationship between the
次に、図11の第2演算器148で行われる演算について記す。第2演算器148は、論理演算器164と算術演算器166の2つの演算器からなっている。図16には、第2演算器148の一部である論理演算器164で行われるデータ演算の内容が示されている。論理演算器164には、操作テーブルB130の中から導き出された特定の操作データ列132と、操作テーブルC138の中から導き出された特定の操作データ列162と、が入力される。論理演算器164では論理積演算が行われて、派生操作データ列168が求められる。すなわち論理演算器164では、4つの操作テーブルB130から導出された操作データ(OFFSET[0]、OFFSET[1]、OFFSET[2]、OFFSET[3])と、4つの特定の操作データ(MASK[0]、MASK[1]、MASK[2]、MASK[3])との論理積により得られた4つのデータを、再度(OFFSET[0]、OFFSET[1]、OFFSET[2]、OFFSET[3])に上書きして格納する。特定の操作データ列132には、反転の回転方向を指定する+180あるいは−180のいずれかの値が格納されており、特定の操作データ列162に格納されている0xFFFFあるいは0x0000のいずれかの値と作用して、論理積の演算が行われ、派生操作データ列168が得られる。論理積演算が行われることによって、以下に記す3つの処理の中から1つの処理が選択される。つまり、1つは反転が不要な処理であり、もう1つは反転が必要であって反時計回りに180°回転させる処理であり、残りの1つは反転が必要であって時計回りに180°回転させる処理である。このように、異なる2つの操作テーブルから導出される2つの操作データ列を相互に作用させることによって、多様な演算を実行することが可能となる。本実施形態においては、反転が不要な処理については、更に2つに細分化する必要がないので3つのオペレーションからなる処理を並列演算で行うことができる。ちなみに、一般的には2つの操作テーブルを用いれば互いに異なる4つの処理を同時並列の処理で行うことができる。得られた演算結果はOFFSET[]に再度格納されて、次段の算術演算器166で用いられる。
Next, the calculation performed by the
図17は、第2演算器148の一部である算術演算器166で行われるデータ演算の内容を示している。算術演算器166には、論理演算器164から出力されるOFFSET[]の派生操作データ列168と、ave_TH[]の入力データ列124とが入力される。算術演算器166では入力データ列124と、論理演算器164の演算結果である派生操作データ列168との加算が行われて、出力データ列170が得られる。算術演算器166で行う操作は、まだ折り返し補正処理が行われていない個々の入力データave_TH[0]、ave_TH[1]、ave_TH[2]、ave_TH[3]を、適切に折り返し補正処理が施されたデータに修正するための操作とみなすことができる。適切なデータに修正するために、前述した3つのオペレーションのいずれか1つの操作が選択的に行われて、出力データ列を構成する各データ(out[0]、out[1]、out[2]、out[3])が作成される。
FIG. 17 shows the contents of the data calculation performed by the
以上、図11の概念図に示すような演算を行うことにより、流速の単純平均値である入力データ列124が第1演算器126に入力されて符号ビット列128が生成され、操作テーブルB130の中から特定の操作データ列132が選択される。また、参照データ列156が第3演算器134に入力されて符号ビット列136が生成され、操作テーブルC138の中から特定の操作データ列162が選択される。そして、第2演算器148において、操作データ列132と操作データ列162との論理演算が行われる。その論理演算で得られた派生操作データ列168に対して入力データ列124が加算されて、出力データ列170が得られる。このように、演算の全ての段階において4つのデータは全て並進して処理が行われており、演算の足並みが乱されることはない。操作テーブルB130と操作テーブルC138との2つの操作テーブルを用いることによって、3つの操作から選択的に1つの操作を特定するような処理を行うことができる。
As described above, by performing the calculation as shown in the conceptual diagram of FIG. 11, the
参考までに、次に、図11の概念図に示した折り返し補正処理を、プロセッサに実行させる具体的なプログラムとして記述する。図18に示すプログラム174が、その折り返し補正処理のためのプログラムであり全部で7行の式からなっている。このプログラム174においては、単純平均値のデータ列ave_TH[P]と角度差delt_TH[P]とを演算対象として用いる。ただし、プログラム174を実行する前段階において、単純平均値のデータ列ave_TH[P]と角度差delt_TH[P]は既に求められているものとしている。すなわち、単純平均値{θ(2P+1)+θ(2P+2)}/2(但し、Pは0以上の整数)の値は、配列ave_TH[]に格納済みであり、角度差の絶対値|θ(2P+1)−θ(2P+2)|(但し、Pは0以上の整数)の値についても、配列delt_TH[]に格納済みであるとして、それらのデータを用いた演算を開始する部分から説明を記す。
For reference, next, the aliasing correction process shown in the conceptual diagram of FIG. 11 is described as a specific program for causing the processor to execute. A
図18に示すプログラム174の1行目に記す式tmp[]=delt_TH[]−PI[]は、SIMD方式による並列の減算処理を示す式である。図14に示す第3演算器134で行われる比較演算に相当する。すなわち、入力データ列delt_TH[]を構成する4つの入力データ(delt_TH[0]、 delt_TH[1]、 delt_TH[2]、 delt_TH[3])から、比較データ列PI[]を構成する4つの比較データ(PI[0]、PI[1]、PI[2]、PI[3])を一括で減算することによって、比較結果データ列tmp[]を構成する4つの比較結果データ(tmp[0]、tmp[1]、tmp[2]、tmp[3])が得られる。
An expression tmp [] = delt_TH []-PI [] written in the first line of the
プログラム174の2行目に記す式は、比較結果データ列tmp[]から符号ビットSが抽出されて、符号ビット列SIGNが生成される処理を示す式である。図14に示す符号ビット列136の生成処理に相当する。2行目の式の右辺の処理について記す。まず(tmp[3]>>12)の部分については、比較結果データtmp[3]の2進数表記のデータを右に12桁シフトさせる。そうすると、tmp[3]の最上位16ビット目に位置していた符号ビットの数値は、最下位ビットから数えて4番目のビットに移動される。次に12桁右シフトした後の数値に対して0x8との論理積を行うこと[(tmp[3]>>12)& 0x8]により、4桁目のみが“1”か“0”かのビット判定が行われる。他の3つの入力データtmp[2]、tmp[1]、tmp[0]についても、同様の処理が行われる。すなわち、tmp[2]の符号ビットは、右に13桁シフトさせることで3桁目に移動し、0x4との論理積を行うことで、3桁目のみが“1”か“0”かのビット判定が行われる。tmp[1]の符号ビットは、右に14桁シフトさせることで2桁目に移動し、0x2との論理積を行うことで、2桁目のみが“1”か“0”かのビット判定が行われる。tmp[0]の符号ビットは、右に15桁シフトさせることで1桁目に移動し、0x1との論理積を行うことで、1桁目のみが“1”か“0”かのビット判定が行われる。4桁目、3桁目、2桁目及び1桁目の合計4つのビット判定のデータは、4つの論理和を取ることにより、1つのデータに集約される。2行目に示す式の中の&記号は論理積を、|記号は論理和の演算を表す。4つの符号ビットを1つのデータに集約することにより符号ビット列SIGNのビットパターンが形成される。
The expression described in the second line of the
プログラム174の3行目に示す式は、操作データ列が格納された操作テーブルC138の中から、1つの操作データ列を特定する処理を示す式である。図15に示すような、特定の操作テーブル162を特定する処理に相当する。符号ビット列136の操作テーブルC138の符号ビット列SIGNのビットパターンに応じて、操作テーブルC138の配列TABLE_C[]の中から1つの操作データ列が特定され、MASKという特定された操作データ列として決定される。図15に示すように、符号ビット列136がSIGN=“0110”であった場合には、TABLE_C[24]=0xFFFF, TABLE_C[25]=0x0000, TABLE_C[26]=0x0000, TABLE_C[27]=0xFFFFの4つのデータを、特定の操作データとして使用する。図18のプログラムにおいて特定の操作データ列は、MASKという名称で指定される。
The expression shown in the third line of the
プログラム174の4行目に記す式は、入力データ列ave_TH[]から符号ビットSが抽出されて、符号ビット列SIGN2が生成される処理を示す式である。4行目の式の右辺の処理について記すと、まず(ave_TH[3]>>12)の部分については、入力データave_TH[3]の2進数表記のデータとして右に12桁シフトさせる。そうすると、ave_TH[3]の最上位16ビット目に位置していた符号ビットの数値は、最下位ビットから数えて4番目のビットに移動される。次に12桁右シフトした後の数値に対して0x8との論理積を行うこと{(ave_TH[3]>>12)&0x8}により、4桁目のみが“1”か“0”かのビット判定が行われる。他の3つの入力データave_TH[2]、ave_TH[1]、ave_TH [0]についても、同様の処理が行われる。すなわち、ave_TH [2]の符号ビットは、右に13桁シフトさせることで3桁目に移動し、0x4との論理積を行うことにより3桁目のみが“1”か“0”かのビット判定が行われる。ave_TH[1]の符号ビットは、右に14桁シフトさせることで2桁目に移動し、0x2との論理積を行うことにより2桁目のみが“1”か“0”かのビット判定が行われる。ave_TH [0]の符号ビットは、右に15桁シフトさせることで1桁目に移動し、0x1との論理積を行うことにより1桁目のみが“1”か“0”かのビット判定が行われる。4桁目、3桁目、2桁目及び1桁目の合計4つのビット判定のデータは、4つの論理和を取ることにより、1つのデータに集約される。4つの符号ビットを1つのデータに集約することにより符号ビット列SIGN2のビットパターンが形成される。
The expression described in the fourth line of the
5行目に示す式は、操作データ列が格納された操作テーブルB130の中から、1つの操作データ列を特定する処理を示す式である。符号ビット列SIGN2のビットパターンに応じて、操作テーブルB130の配列TABLE_B[]の中から1つの操作データ列が特定され、OFFSETという名称の特定の操作データ列として決定される。具体的な数値を用いると、例えば、符号ビット列SIGN2が“0101”であった場合には、TABLE_B[20]=0xFF4C, TABLE_B[21]=0x00B4, TABLE_B[22]= 0xFF4C, TABLE_B[23]= 0x00B4の4つのデータを、特定の操作データとして使用する。図18のプログラムにおいて特定の操作データ列132は、OFFSETという名称で指定される。
The expression shown in the fifth row is an expression indicating a process for specifying one operation data string from the operation table B130 in which the operation data string is stored. According to the bit pattern of the sign bit string SIGN2, one operation data string is specified from the array TABLE_B [] of the operation table B130, and is determined as a specific operation data string named OFFSET. When a specific numerical value is used, for example, when the code bit string SIGN2 is “0101”, TABLE_B [20] = 0xFF4C, TABLE_B [21] = 0x00B4, TABLE_B [22] = 0xFF4C, TABLE_B [23] = Four pieces of data of 0x00B4 are used as specific operation data. In the program of FIG. 18, a specific
6行目に記す式OFFSET[]=OFFSET[]&MASK[]は、SIMD方式による並列の論理積演算を示す式である。MASK[]は特定の操作データ列162を示しており、3行目の式で決定した変数MASKと同値である。4行目の式によって、操作データ列132を構成する4つの入力データ(OFFSET[0]、OFFSET[1]、OFFSET[2]、OFFSET[3])と、特定の操作データ列162としてのMASK[]との論理積を取ることによって、派生操作データ列としての(OFFSET[0]、OFFSET[1]、OFFSET[2]、OFFSET [3])を得ることができる。
The expression OFFSET [] = OFFSET [] & MASK [] described in the sixth line is an expression indicating parallel AND operation by the SIMD method. MASK [] indicates a specific
7行目に記す式out[]=ave_TH[]+OFFSET[]は、SIMD方式による並列の加算演算を示す式である。まだ折り返し補正処理がなされていない入力データ列ave_TH[]に対して、派生操作データ列OFFSET[]を加算することによって、各々のデータに対して選択的に適切な折り返し補正処理がなされて、結果がout[]に格納される。 The expression out [] = ave_TH [] + OFFSET [] written in the seventh line is an expression indicating a parallel addition operation by the SIMD method. By adding the derived operation data string OFFSET [] to the input data string ave_TH [] that has not yet undergone aliasing correction processing, appropriate aliasing correction processing is selectively performed on each data, and the result Is stored in out [].
次に、変形例としてエコーデータの2値化処理について詳述する。本明細書に記す2値化処理とは、画像を構成する画素の輝度値が判定基準値より大きければ1に、小さければ0にする処理のことを示す。具体的な適用例としては、心臓の断層面に係るエコーデータを処理する場合に生体組織部である心筋と、心腔との境界を検出するような場合に適用できる。この2値化処理は、図1に記す画像処理部22の中にあるDSP36によって行われるデータ処理である。
Next, echo data binarization processing will be described in detail as a modification. The binarization process described in this specification indicates a process for setting the luminance value of the pixels constituting the image to 1 if the luminance value is larger than the determination reference value, and to 0 if the luminance value is smaller. As a specific application example, the present invention can be applied to the case where the boundary between the myocardium, which is a biological tissue part, and the heart chamber is detected when echo data relating to the tomographic plane of the heart is processed. This binarization processing is data processing performed by the
以下、図19を用いて、2値化処理の演算の流れに沿って詳述する。演算対象の入力データ列178は、4つの入力データから構成されており、第1演算器180に入力される。4つの比較データから構成される比較データ列182も、第1演算器180に入力される。比較データ列182に格納されている値は、例えば、画素の輝度値の明暗を判定するための判定基準値である。第1演算器180では、入力データ列178から比較データ列182を引く減算が行われて、比較結果データ列が生成される。従って、比較結果データ列から抽出した4つの符号ビット(S0、S1、S2、S3)の各々の値は、判定基準値との大小関係の判定結果の情報を有している。符号ビット列184は、4つの符号ビットを集合したものである。
Hereinafter, detailed description will be given along the flow of the binarization processing using FIG. The
次に、図19に示した符号ビット列184と操作テーブルD186について、図20を用いて詳述する。図20に示す符号ビット列184は、“0010”のビットパターンとして例示されている。一方、図20に示す操作テーブルD186は、16組(16列)の操作データ列から構成されており、それぞれの操作データ列は4つの操作データから構成されている。符号ビット列184のビットパターンが決定すると、それに応じて16組の中から、ある特定の操作データ列188が決定されることが、図20に示す矢印190によって示されている。
Next, the
符号ビット列184を構成する各々の符号ビットの値は、入力データと、閾値の比較データとの大小関係の情報を抽出したものである。従って、2値化処理を実行するためには、符号ビットが“0”であれば、入力データを1に置換処理すればよい。逆に、符号ビットが“1”であれば、入力データを0に置換処理すればよい。これらの置換処理の必要、不要の選択を行うために、符号ビットの値に応じた操作データとして、0x0001あるいはOx0000のいずれかを選択する。0x0001と0x0000の2値化処理における選択方法は、以下の2つの方法によって行う。(vii)符号ビットが“0”の場合は0x0001を選択する。(viii)符号ビットが“1”の場合には0x0000を選択する。ここで、例示した符号ビット列184は、“0010”であるので、4つの符号ビットS0=“0”、S1=“1”、S2=“0”、S3=“0”に応じて選択される4つの操作データを列記すると、0x0001、0x0000、0x0001、0x0001となる。この4つの操作データは、図20に示した矢印190で指し示す#2の位置の操作データ列としてTABLE_D[8]=0x0001、TABLE_D[9]=0x0000、TABLE_D[10]=0x0001、TABLE_D[11]=0x0001と記されている。この例から分かるように、4つの符号ビットが全て定まれば、それに対応する特定の操作データ列188の組み合わせも自動的に決定することができる。操作テーブルD186は、この16組の操作データ列を集合することで構成されている。更に、操作データ列を構成する4つの操作データは、前述の(vii)と(viii)の2つのルールに従って、0x0001又は0x0000のいずれかが決定される。符号ビット列184で取り得る値がどのような値であっても、それに対応する特定の操作データ列188は操作テーブルD186の中に予め格納してある。
The value of each code bit constituting the
図19に示すように、特定された操作データ列188はそのまま出力データ列192として使用することができる。操作テーブルD186には、2種類の値を予め格納しておくことができるので、2値化処理の場合には、第2演算器を特には必要としない。
As shown in FIG. 19, the specified
図21に示すプログラム194は、2値化処理のためのプログラムを例示したものである。プログラム194の1行目及び2行目で行われる処理は、図9に示す閾値処理のプログラム96の1行目及び2行目で行う処理と実質的に同じである。すなわち、プログラム194の1行目に記す処理によりSIMD方式による並列の減算処理が行われる。そして、プログラム194の2行目に記す処理によって、SIGNで表される4ビットの符号ビット列184が作成される。プログラム194の3行目に示す式は、複数の操作データ列が格納された操作テーブルD186の中から、1つの操作データ列を特定する処理を示す式である。つまり、プログラム194の2行目に示すSIGNのビットパターンに応じて、図20に示す操作テーブルD186の配列TABLE_D[]の中から1つの操作データ列が特定される。そして、その特定の操作データ列188の値は、配列out[]にそのまま代入される。
A
以上のように、2値化処理を行う場合にも、2値化処理のための操作テーブルD186を用いることによって、4つの入力データを一括して処理することが可能となる。但し、図19の概念図に示す2値化処理を行う場合は、図5及び図11等に示した実施形態とは異なり、第2演算器に相当するものは含まれていない。 As described above, even when the binarization process is performed, it is possible to process the four input data at once by using the operation table D186 for the binarization process. However, when the binarization processing shown in the conceptual diagram of FIG. 19 is performed, unlike the embodiments shown in FIGS. 5 and 11 and the like, those corresponding to the second arithmetic unit are not included.
これまで詳述した閾値処理、カラードップラ法による折り返し補正処理及び2値化処理の説明においては、最大のデータバス幅が64ビットの演算器を用いるものであった。そして、1つのデータ長を16ビットとし、16ビット×4データの並列演算が可能なSIMD方式の演算器での例を示した。しかし、SIMD方式のプロセッサで行える演算は、16ビット×4データの場合に限定されるものではない。プロセッサの仕様によっては、32ビット、128ビットもしくは256ビットのデータバス幅を有する場合があり、それらのデータバス幅を、2分割、4分割、8分割又は16分割等のいずれかの分割値の中から1つを選択して並列処理を実行させることも可能である。並列処理を行う場合に、同時に処理できるデータ数はN個(但し、Nは2以上の整数)となる。その場合には、入力データ列、比較データ列、比較結果データ列、特定の操作データ列、出力データ列は全てN個のデータから構成される。なお、代表ビット列の桁数もN桁となる。これらのデータ列の個数あるいは桁数に関してNという数が一致していることは、演算の過程で一貫して並列処理が行われていることを示している。なお、SIMD方式の演算器を複数個備えている場合には、高速化処理の性能改善度は更に大きくなる。 In the description of the threshold processing, the aliasing correction processing using the color Doppler method, and the binarization processing described in detail so far, an arithmetic unit having a maximum data bus width of 64 bits is used. An example of a SIMD type arithmetic unit capable of parallel calculation of 16 bits × 4 data with one data length of 16 bits is shown. However, operations that can be performed by a SIMD processor are not limited to 16 bits × 4 data. Depending on the specifications of the processor, it may have a data bus width of 32 bits, 128 bits, or 256 bits, and the data bus width is divided into two division values, four divisions, eight divisions, 16 divisions, etc. It is also possible to select one of them and execute parallel processing. When performing parallel processing, the number of data that can be processed simultaneously is N (where N is an integer of 2 or more). In that case, the input data string, the comparison data string, the comparison result data string, the specific operation data string, and the output data string are all composed of N pieces of data. The number of digits in the representative bit string is N digits. The coincidence of the numbers N with respect to the number of data strings or the number of digits indicates that parallel processing is consistently performed during the operation. When a plurality of SIMD type arithmetic units are provided, the performance improvement degree of the high-speed processing is further increased.
70 入力データ列、72 第1演算器、74 比較データ列、76 符号ビット列、80 操作テーブルA、82 特定の操作データ列、84 第2演算器、86 出力データ列。 70 input data string, 72 first operator, 74 comparison data string, 76 sign bit string, 80 operation table A, 82 specific operation data string, 84 second operator, 86 output data string.
Claims (9)
前記入力データ列と比較データ列とを比較して、比較結果データ列を生成する第1の演算手段と、
前記比較結果データ列を構成する各比較結果データから代表ビットを抽出し、それらの代表ビットによって代表ビット列を生成する代表ビット列抽出手段と、
前記代表ビット列が表し得るビットパターンに対応した複数の操作データ列を格納した操作テーブルと、
前記複数の操作データ列の中から前記代表ビット列に応じて選択された特定の操作データ列を用いて、前記入力データ列に対するデータ演算を実行し出力データ列を生成する第2の演算手段と、
を有することを特徴とする超音波診断装置用プロセッサ。 In the processor for an ultrasonic diagnostic apparatus that processes in parallel each input data constituting an input data string obtained by transmission / reception of ultrasonic waves,
A first computing means for comparing the input data string and the comparison data string to generate a comparison result data string;
Representative bit string extracting means for extracting representative bits from each comparison result data constituting the comparison result data string, and generating a representative bit string by those representative bits;
An operation table storing a plurality of operation data strings corresponding to bit patterns that can be represented by the representative bit string;
Using a specific operation data string selected according to the representative bit string from among the plurality of operation data strings, a second calculation means for executing a data operation on the input data string and generating an output data string;
A processor for an ultrasonic diagnostic apparatus, comprising:
前記データ演算は、条件分岐処理に相当する論理演算を含むことを特徴とする超音波診断装置用プロセッサ。 The processor for an ultrasonic diagnostic apparatus according to claim 1,
The processor for an ultrasonic diagnostic apparatus, wherein the data operation includes a logical operation corresponding to a conditional branch process.
前記データ演算は、更に算術演算を含むことを特徴とする超音波診断装置用プロセッサ。 The processor for an ultrasonic diagnostic apparatus according to claim 2,
The processor for an ultrasonic diagnostic apparatus, wherein the data calculation further includes an arithmetic calculation.
前記データ演算は、前記入力データ列を構成する各入力データに対して、前記特定の操作データ列を構成する各操作データを作用させて、前記各入力データの保存処理または変更処理を選択的に実行する演算を含むことを特徴とする超音波診断装置用プロセッサ。 The processor for an ultrasonic diagnostic apparatus according to claim 1,
In the data calculation, each input data constituting the input data string is caused to act on each operation data constituting the specific operation data string, so that the storage process or change process of each input data is selectively performed. A processor for an ultrasonic diagnostic apparatus, comprising an operation to be executed.
前記データ演算は、前記入力データ列を構成する各入力データに対して、前記特定の操作データ列を構成する各操作データに応じて生成された派生操作データを作用させて、前記各入力データの保存処理または変更処理を選択的に実行する演算を含むことを特徴とする超音波診断装置用プロセッサ。 The processor for an ultrasonic diagnostic apparatus according to claim 1,
The data calculation is performed by causing derived operation data generated according to each operation data constituting the specific operation data sequence to act on each input data constituting the input data sequence, and A processor for an ultrasonic diagnostic apparatus, comprising an operation for selectively executing a storage process or a change process.
前記代表ビット列を構成する各代表ビットは、正負を表わす符号ビットであることを特徴とする超音波診断装置用プロセッサ。 The processor for an ultrasonic diagnostic apparatus according to claim 1,
The processor for an ultrasonic diagnostic apparatus, wherein each representative bit constituting the representative bit string is a sign bit representing positive or negative.
前記比較データ列を構成する各比較データは、大小判別のための複数の閾値データであることを特徴とする超音波診断装置用プロセッサ。 The processor for an ultrasonic diagnostic apparatus according to claim 1,
Each of the comparison data constituting the comparison data string is a plurality of threshold data for size discrimination, the ultrasonic diagnostic apparatus processor.
前記N個の入力データとN個の比較データとを比較してN個の比較結果データを生成する第1の演算手段と、
前記N個の比較結果データからN個の代表ビットを抽出し、それらの代表ビットによって代表ビット列を生成する代表ビット列抽出手段と、
前記代表ビット列が表し得るビットパターンに対応する複数の操作データ列を格納した操作テーブルと、
前記複数の操作データ列の中から前記代表ビット列に応じて特定の操作データ列を選択し、この特定の操作データ列を構成するN個の操作データを用いて、前記N個の入力データに対してデータ演算を実行し、N個の出力データを生成する第2の演算手段と、
を有することを特徴とする超音波診断装置用プロセッサ。 In a processor for an ultrasonic diagnostic apparatus that processes N pieces of input data (where N is an integer of 2 or more) obtained by transmission / reception of ultrasonic waves in parallel,
First arithmetic means for comparing the N input data and the N comparison data to generate N comparison result data;
Representative bit string extracting means for extracting N representative bits from the N comparison result data and generating a representative bit string by using the representative bits;
An operation table storing a plurality of operation data strings corresponding to bit patterns that can be represented by the representative bit string;
A specific operation data string is selected from the plurality of operation data strings according to the representative bit string, and N pieces of operation data constituting the specific operation data string are used for the N pieces of input data. Second calculation means for executing data calculation and generating N pieces of output data;
A processor for an ultrasonic diagnostic apparatus, comprising:
前記超音波診断装置用プロセッサは、演算部と記憶部とを有し、
前記演算部は、
前記入力データ列と比較データ列との算術演算により比較結果データ列を生成し、
前記比較結果データ列を構成する各比較結果データから代表ビットを抽出し、それらの代表ビットによって代表ビット列を生成し、
予め用意された前記複数の操作データ列の中から前記代表ビット列に応じて選択された特定の操作データ列を用いて、前記入力データ列に対するデータ演算を実行して出力データ列を生成し、
前記記憶部には、前記複数の操作データ列が格納され、
前記複数の操作データ列は、前記代表ビット列が表し得るビットパターンに対応することを特徴とする超音波診断装置用プロセッサ。
In the processor for an ultrasonic diagnostic apparatus that processes in parallel each input data constituting an input data string obtained by transmission / reception of ultrasonic waves,
The ultrasonic diagnostic apparatus processor includes a calculation unit and a storage unit,
The computing unit is
A comparison result data string is generated by an arithmetic operation of the input data string and the comparison data string,
A representative bit is extracted from each comparison result data constituting the comparison result data string, and a representative bit string is generated by the representative bits,
Using a specific operation data string selected according to the representative bit string from the plurality of operation data strings prepared in advance, generating an output data string by performing a data operation on the input data string,
The storage unit stores the plurality of operation data strings,
The processor for an ultrasonic diagnostic apparatus, wherein the plurality of operation data strings correspond to bit patterns that can be represented by the representative bit string.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006100226A JP4716911B2 (en) | 2006-03-31 | 2006-03-31 | Ultrasound diagnostic processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006100226A JP4716911B2 (en) | 2006-03-31 | 2006-03-31 | Ultrasound diagnostic processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007268156A JP2007268156A (en) | 2007-10-18 |
JP4716911B2 true JP4716911B2 (en) | 2011-07-06 |
Family
ID=38671550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006100226A Expired - Fee Related JP4716911B2 (en) | 2006-03-31 | 2006-03-31 | Ultrasound diagnostic processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4716911B2 (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05189585A (en) * | 1992-01-14 | 1993-07-30 | Nippon Telegr & Teleph Corp <Ntt> | Conditional operation control circuit for parallel processing |
JPH1153189A (en) * | 1997-07-31 | 1999-02-26 | Toshiba Corp | Operation unit, operation method and recording medium readable by computer |
JP3652518B2 (en) * | 1998-07-31 | 2005-05-25 | 株式会社リコー | SIMD type arithmetic unit and arithmetic processing unit |
US6139498A (en) * | 1998-12-29 | 2000-10-31 | Ge Diasonics Israel, Ltd. | Ultrasound system performing simultaneous parallel computer instructions |
JP3487421B2 (en) * | 2000-02-16 | 2004-01-19 | 日本電気株式会社 | SIMD parallel computing device |
-
2006
- 2006-03-31 JP JP2006100226A patent/JP4716911B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007268156A (en) | 2007-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5048175B2 (en) | An ultrasound system that executes computer instructions in parallel | |
US8708911B2 (en) | Ultrasonic imaging apparatus and a method for displaying diagnostic images | |
JP4716911B2 (en) | Ultrasound diagnostic processor | |
JP6352540B2 (en) | Detection device, rotation angle detection device, detection method, and program | |
CN102143710B (en) | Ultrasonographic device, ultrasonographic device data processing method | |
CN110009559B (en) | Image processing method and device | |
KR102124609B1 (en) | Method and apparatus for extracting blood vessel pattern of ultrasonic imaging device | |
TWI634872B (en) | Method for improving quality of an ultrasound image | |
US20100088493A1 (en) | Image processing device and data processor | |
JP2000254123A (en) | Ultrasoniograph | |
US8098913B2 (en) | Ultrasonic diagnostic apparatus and image filtering method of the same | |
KR101510678B1 (en) | Method for Forming Harmonic Image, Ultrasound Medical Apparatus Therefor | |
CN116228531A (en) | High-performance fan-shaped interpolation method applied to high-frequency multi-beam image sonar | |
EP4101392B1 (en) | Information processing program, information processing apparatus, and method for processing information | |
CN103049925B (en) | Based on C scan image or the D scan image disposal route of phased array | |
JP2013061738A (en) | Image processing device and method | |
JPH10165402A (en) | Two-dimensional doppler type ultrasonic diagnostic instrument | |
JP2572140Y2 (en) | Digital oscilloscope | |
CN109276276B (en) | Ultrasonic endoscopic imaging system and method based on Labview platform | |
JPH0716488B2 (en) | Ultrasonic 3D image display | |
JP2008173448A (en) | Ultrasonic Doppler diagnostic device | |
CN111915477A (en) | Address rotation method for color ultrasonic Doppler transposition storage | |
JPH0341867B2 (en) | ||
Hossein Khani et al. | A Distinct Autofluorescence Distribution Pattern Marks Enzymatic Deconstruction of Plant Cell Wall | |
SU1476462A1 (en) | Sine and cosine function pipeline computer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081215 |
|
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: 20110329 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110331 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110329 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4716911 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140408 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140408 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 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |