JP2018148259A - Network system, data processor, image processor, image processing method, and packet data structure - Google Patents
Network system, data processor, image processor, image processing method, and packet data structure Download PDFInfo
- Publication number
- JP2018148259A JP2018148259A JP2017038054A JP2017038054A JP2018148259A JP 2018148259 A JP2018148259 A JP 2018148259A JP 2017038054 A JP2017038054 A JP 2017038054A JP 2017038054 A JP2017038054 A JP 2017038054A JP 2018148259 A JP2018148259 A JP 2018148259A
- Authority
- JP
- Japan
- Prior art keywords
- data
- image processing
- packet
- image
- pixel data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】少ないメモリリソースで画像処理を行う。
【解決手段】対象となる画像フレームから画像処理に用いる画像データを取得して転送する際に用いるパケットのパケットデータ構造として、画像フレーム上に配置した、画像処理の単位であるn×m(n,mは2以上の整数)ピクセルからなるブロックのうち、1つまたは複数のブロックに関するピクセルデータを格納するデータ部を備え、データ部に、ブロックを構成する1行分または1列分のピクセルデータを、ブロック単位で順に格納する。
【選択図】 図1Image processing is performed with less memory resources.
As a packet data structure of a packet used when acquiring and transferring image data used for image processing from a target image frame, n × m (n × m (n), which is a unit of image processing, arranged on the image frame , M is an integer of 2 or more) Among the blocks composed of pixels, a data part for storing pixel data relating to one or a plurality of blocks is provided, and the data part includes pixel data for one row or one column constituting the block. Are sequentially stored in units of blocks.
[Selection] Figure 1
Description
本発明は、受信したパケットに含まれるデータを画像処理する際に用いる画像処理技術に関する。 The present invention relates to an image processing technique used when image processing is performed on data included in a received packet.
従来、ユーザに対して提供するネットワークサービスに関する機能は、ルータやゲートウェイなど専用ハードウェアで構成されていたが、近年、設備コストの削減等を目的として汎用サーバ上でソフトウェアとして動作させるNFV(Network Functions Virtualization)技術に注目が集まっている。 Conventionally, functions related to network services provided to users have been configured with dedicated hardware such as routers and gateways. However, in recent years, NFV (Network Functions) that operates as software on a general-purpose server for the purpose of reducing equipment costs and the like. Virtualization) technology is attracting attention.
このような、ネットワーク上に点在する複数のNFVアプリケーションを自由に組み合わせて柔軟にネットワークサービスを提供する仕組みとして、ネットワークサービスに含まれる機能に応じて適切な順序で、サービスデータをパケットで転送処理するSFC(Service Function Chaining)技術が検討されている(例えば、特許文献1など参照)。
一般に、SFC技術を用いたシステムは、任意のアルゴリズムに基づいたサービス処理を行うデータ処理機能(SF:Service Function)と、ヘッダ情報を基にしてサービスデータを含むパケットを転送するパケット転送機能(SFF:Service Function Forwarder)と、ネットワークシステム全体を制御する制御機能とから構成される。
As a mechanism for flexibly providing a network service by freely combining multiple NFV applications scattered on the network, service data is transferred in packets in an appropriate order according to the functions included in the network service. SFC (Service Function Chaining) technology is being studied (see, for example, Patent Document 1).
In general, a system using SFC technology has a data processing function (SF: Service Function) that performs service processing based on an arbitrary algorithm, and a packet transfer function (SFF) that transfers a packet including service data based on header information. : Service Function Forwarder) and a control function for controlling the entire network system.
SFC技術は、主にネットワークサービスに関する機能を仮想化して柔軟なサービス運用を可能とすることを目的に開発されているが、ネットワーク以外の機能に応用しても同様の効果が期待できると考えられる。例えば、画像処理機能を仮想化し、ネットワーク上で画像を分類することを考える。本来であれば、ユーザは対象となるすべての画像を取得してから目的の物体が写った画像を分類する必要がある。しかし、ネットワーク上で画像を分類することでユーザは必要な画像だけを受け取ることができ、自端末での処理を削減することができる。 SFC technology has been developed mainly for the purpose of virtualizing functions related to network services and enabling flexible service operation, but similar effects can be expected when applied to functions other than networks. . For example, consider virtualizing an image processing function and classifying images on a network. Originally, the user needs to classify images in which the target object is captured after acquiring all the images of interest. However, by classifying images on the network, the user can receive only necessary images, and the processing at the terminal can be reduced.
このような、画像処理機能は、一般に計算量が多くソフトウェア処理に向かないため、ASIC(Application Specific Integrated Circuit)やGPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)などのハードウェアを用いて計算することが望ましい。そのため、画像処理を行う画像処理装置はソフトウェア処理機能に加えてハードウェア処理機能を備える必要がある。また、画像処理装置には、独立して動作する複数の機能を実装するため、計算資源が限られるハードウェアでは、各機能は省資源と高パフォーマンスを両立する設計が求められる。 Since such an image processing function generally has a large amount of calculation and is not suitable for software processing, hardware such as an application specific integrated circuit (ASIC), a graphics processing unit (GPU), or a field-programmable gate array (FPGA) is used. It is desirable to calculate. Therefore, an image processing apparatus that performs image processing needs to have a hardware processing function in addition to a software processing function. In addition, since a plurality of functions that operate independently are mounted on the image processing apparatus, hardware that has limited computational resources is required to have a design that achieves both resource saving and high performance.
画像処理装置で用いられる画像処理回路では、モジュール間のデータ転送を制御するためにフレームバッファやラインバッファを用いることがある。例えば、非特許文献1では3×3フィルタ回路にデータを供給する前段回路にラインバッファを利用している。このような回路を実現するためには、1行分の画像データを保持するラインバッファが4個必要となる。例えばVGA(=640ピクセル×480ピクセル)サイズの画像を入力データと仮定したとき、必要となるラインバッファのサイズは7680バイト(=640ピクセル×4ライン×3バイト)であり、高々9ピクセル分のデータを送るのに、2560ピクセル分のデータを保持する必要がある。
In an image processing circuit used in an image processing apparatus, a frame buffer or a line buffer may be used to control data transfer between modules. For example, in Non-Patent
このように、画像処理回路では多くの場合、豊富なメモリリソースが必要とされる。このため、メモリリソースの制約が厳しいハードウェア実装には向いておらず、少ないメモリリソースで画像処理を行うことができないという問題点があった。 As described above, the image processing circuit often requires abundant memory resources. For this reason, there is a problem that image processing cannot be performed with a small amount of memory resources, which is not suitable for hardware implementation in which memory resource restrictions are severe.
本発明はこのような課題を解決するためのものであり、少ないメモリリソースで画像処理を行うことができる画像処理技術を提供することを目的としている。 The present invention has been made to solve such problems, and an object thereof is to provide an image processing technique capable of performing image processing with a small amount of memory resources.
このような目的を達成するために、本発明にかかるネットワークシステムは、画像データを格納したパケットを送信するデータ処理装置と、前記データ処理装置から通信リンクを介して受信した前記パケットから画像データを取得して所定の画像処理を行う画像処理装置とを備え、前記データ処理装置は、画像処理の対象となる画像フレーム上に配置した、前記画像処理の単位であるn×m(n,mは2以上の整数)ピクセルからなる複数のブロックのうち、1つまたは複数のブロックごとに、前記ブロックを構成する1行分または1列分のピクセルデータを順に取得して前記パケットに順次格納するデータ処理部を備え、前記画像処理装置は、1ブロック分のピクセルデータを保持するバッファ部と、受信したパケットから、前記1行分または前記1列分のピクセルデータを順に取得して前記バッファ部に順次格納することにより1ブロック分のピクセルデータを生成し、得られた1ブロック分のピクセルデータを単位として前記画像処理を実行する画像処理部とを備えている。 In order to achieve such an object, a network system according to the present invention includes a data processing device for transmitting a packet storing image data, and image data from the packet received from the data processing device via a communication link. An image processing device that acquires and performs predetermined image processing, and the data processing device is an n × m (n and m are units of image processing) arranged on an image frame that is a target of image processing. Data that sequentially acquires pixel data for one row or one column constituting the block and sequentially stores it in the packet for one or a plurality of blocks among a plurality of blocks made up of an integer of 2 or more pixels. A processing unit, and the image processing apparatus includes: a buffer unit that holds pixel data for one block; Generates the pixel data for one block by sequentially acquiring the pixel data for one column and sequentially storing it in the buffer unit, and executes the image processing in units of the obtained pixel data for one block. And an image processing unit.
また、本発明にかかる上記ネットワークシステムの一構成例は、前記バッファ部が、n(またはm)ピクセル分のピクセルデータを保持するm(またはn)個のバッファからなるものである。 In one configuration example of the network system according to the present invention, the buffer unit includes m (or n) buffers that hold pixel data for n (or m) pixels.
また、本発明にかかるデータ処理装置は、上記ネットワークシステムで用いられるデータ処理装置からなる。
また、本発明にかかる画像処理装置は、上記ネットワークシステムで用いられる画像処理装置からなる。
A data processing apparatus according to the present invention includes a data processing apparatus used in the network system.
An image processing apparatus according to the present invention includes an image processing apparatus used in the network system.
また、本発明にかかる画像処理方法は、画像データを格納したパケットを送信するデータ処理装置と、前記データ処理装置から通信リンクを介して受信した前記パケットから画像データを取得して所定の画像処理を行う画像処理装置とを備えるネットワークシステムで用いられる画像処理方法であって、前記データ処理装置が、画像処理の対象となる画像フレーム上に配置した、前記画像処理の単位であるn×m(n,mは2以上の整数)ピクセルからなる複数のブロックのうち、1つまたは複数のブロックごとに、前記ブロックを構成する1行分または1列分のピクセルデータを順に取得して前記パケットに順次格納するデータ処理ステップを備え、前記画像処理装置が、受信したパケットから、前記1行分または前記1列分のピクセルデータを順に取得して、1ブロック分のピクセルデータを保持するバッファ部に順次格納することにより1ブロック分のピクセルデータを生成し、得られた1ブロック分のピクセルデータを単位として前記画像処理を実行する画像処理ステップとを備えている。 In addition, an image processing method according to the present invention includes a data processing device that transmits a packet storing image data, and obtains image data from the packet received from the data processing device via a communication link, and performs predetermined image processing. An image processing method used in a network system including an image processing apparatus that performs n × m (unit of image processing arranged by the data processing apparatus on an image frame targeted for image processing) n and m are integers greater than or equal to 2) Among a plurality of blocks made up of pixels, pixel data for one row or one column constituting the block is sequentially obtained for each one or a plurality of blocks, and the packet is obtained. A data processing step of sequentially storing, wherein the image processing device receives pixel data for one row or one column from the received packet; Data is sequentially obtained and stored in a buffer unit that holds pixel data for one block to generate pixel data for one block, and the image processing is performed in units of the obtained pixel data for one block. And an image processing step to be executed.
また、本発明にかかる上記画像処理方法の一構成例は、前記バッファ部が、n(またはm)ピクセル分のピクセルデータを保持するm(またはn)個のバッファからなるものである。 In one configuration example of the image processing method according to the present invention, the buffer unit includes m (or n) buffers that hold pixel data for n (or m) pixels.
また、本発明にかかるパケットデータ構造は、対象となる画像フレームから画像処理に用いる画像データを取得して転送する際に用いるパケットのパケットデータ構造であって、前記画像フレーム上に配置した、前記画像処理の単位であるn×m(n,mは2以上の整数)ピクセルからなるブロックのうち、1つまたは複数のブロックに関するピクセルデータを格納するデータ部を備え、前記データ部は、前記ブロックを構成する1行分または1列分のピクセルデータが、ブロック単位で順に格納されているものである。 The packet data structure according to the present invention is a packet data structure of a packet used when acquiring and transferring image data used for image processing from a target image frame, and is arranged on the image frame. A data portion for storing pixel data relating to one or a plurality of blocks among blocks composed of n × m (n and m are integers of 2 or more) pixels, which are units of image processing; The pixel data for one row or one column that constitutes is sequentially stored in block units.
本発明によれば、パケットを受信した画像処理装置では、受信したパケットのデータ部から、1行分または1列分のピクセルデータを順に取得してバッファ部に順次格納することにより1ブロック分のピクセルデータを生成し、得られた1ブロック分のピクセルデータを単位として画像処理を実行することになる。したがって、バッファ部としては、1ブロック分のメモリリソースを備えておけばよく、最低1ブロック分のピクセルデータという、極めて少ないメモリリソースで画像処理を行うことができる。このため、メモリリソースに対する厳しい制約下であってもハードウェア実装で画像処理を実現でき、画像処理装置さらにはネットワークシステムにおいて、省資源と高パフォーマンスを両立することが可能となる。 According to the present invention, in an image processing apparatus that has received a packet, pixel data for one row or one column is sequentially obtained from the data portion of the received packet and sequentially stored in the buffer portion, thereby being equivalent to one block. Pixel data is generated, and image processing is executed using the obtained pixel data for one block as a unit. Therefore, it is sufficient that the buffer unit has memory resources for one block, and image processing can be performed with extremely small memory resources, ie, pixel data for at least one block. For this reason, image processing can be realized by hardware mounting even under severe restrictions on memory resources, and it is possible to achieve both resource saving and high performance in the image processing apparatus and the network system.
次に、本発明の一実施の形態について図面を参照して説明する。
[ネットワークシステム]
まず、図1を参照して、本実施の形態にかかるネットワークシステム1について説明する。図1は、ネットワークシステムの構成を示すブロック図である。
このネットワークシステム1は、SFC(Service Function Chaining)技術に基づいて、ネットワーク上に分散して配置されている複数のデータ処理機能を連携させることにより、ユーザに対して各種のネットワークサービスを提供する機能を有している。
Next, an embodiment of the present invention will be described with reference to the drawings.
[Network system]
First, a
This
ネットワークシステム1は、通信リンクLを介して相互に接続されて、ユーザが利用するネットワークサービスを構成するデータ処理を実行する複数のデータ処理装置10と、パケットにSFCヘッダ情報を付与するSFCヘッダ情報付与装置22と、ネットワークサービスを構成するデータ処理の連携を示すサービスパターンに基づいて、データ処理装置10を制御して所定の順序で連携させることにより、ネットワークサービスをユーザに対して提供する制御装置20とから構成される。
The
データ処理装置10には、主な機能部として、ユーザが利用するネットワークサービスを構成するデータ処理を実行するデータ処理部(SF)11、各パケットのヘッダ情報に基づいて処理順序の並び替えを行うパケット順序制御部(SQ)12、および、データ処理部11で処理するサービスデータを転送するパケット転送部(SFF)13が設けられている。
In the
ネットワークシステム1において、外部通信ネットワークNWからのパケットは、SFCヘッダ情報付与装置22でSFCヘッダ情報が付与される。ネットワークシステム1内では、このSFCヘッダ情報を元にして、データ処理装置10のパケット転送部13でルーティングが行われ、パケット順序制御部(SQ)12を介して自装置のデータ処理部11に、またはパケット転送部13に転送されるか、他のデータ処理装置10のパケット転送部13に転送される。パケットは1つ以上のデータ処理部11において計算され、ユーザ端末21に送られる。この仕組みにより、ユーザが必要とした処理はネットワーク上で行われるため、ユーザ端末21での処理が削減される。
In the
これらデータ処理装置10の1つとして、画像処理を行う画像処理装置10Aがある。この画像処理装置10Aは、データ処理部(SF)11として所定の画像処理を行うデータ処理部を備え、受信したパケットから画像データを取得してデータ処理部11で画像処理し、得られた画像データをパケットに格納して転送する機能を有している。したがって、画像処理装置10Aの構成は、データ処理部(SF)11として所定の画像処理を行うデータ処理部を備えている点以外は、他のデータ処理装置10とほぼ同じ構成を備えている。
One of these
[画像処理装置]
次に、図2を参照して、本実施の形態にかかる画像処理装置10Aについて説明する。図2は、画像処理装置の構成を示すブロック図である。
画像処理装置10Aは、主にCPUで実行されるソフトウェアで実現されるソフトウェア処理部10S、主にハードウェアで実現されるハードウェア処理部10H、および通信リンクLを介してデータ通信を行う1つまたは複数の入出力部15から構成されており、例えば、汎用サーバとFPGA(Field-Programmable Gate Array)を組み合わせることで実現される。
[Image processing device]
Next, an
The
ソフトウェア処理部10Sには、主な機能部として、サービスデータを含む1つ以上のパケットをまとめてデータ処理する1つまたは複数のデータ処理部(SF)11S、入出力部15を介して装置外部から受信したパケットをデータ処理部11Sまたは他のデータ処理装置10に転送するパケット転送部(SFF)13Sと、データ処理部11Sごとに設けられて、対応するデータ処理部11Sとパケット転送部13Sとの間でやり取りする各パケットのヘッダ情報に基づいて処理順序の並び替えを行うパケット順序制御部(SQ)12Sと、入出力部15を介して装置外部からパケット転送先情報を取得する転送制御部14Sとが設けられている。
The software processing unit 10S includes, as main functional units, one or more data processing units (SF) 11S that collectively process one or more packets including service data, and an external device via the input /
ハードウェア処理部10Hには、主な機能部として、サービスデータを含む1つ以上のパケットをまとめてデータ処理する1つまたは複数のデータ処理部(SF)11H、入出力部15を介して装置外部から受信したパケットをデータ処理部11Hまたは他のデータ処理装置10に転送するパケット転送部(SFF)13Hと、データ処理部11Hごとに設けられて、パケット転送部13Hから入力されたパケットのデータを対応するデータ処理部11Hへ転送する際、これらパケットのヘッダ情報に含まれるパケットIDの順序に従って順に選択してデータを転送するパケット順序制御部(SQ)12H(パケット順序制御回路)と、入出力部15を介して装置外部からパケット転送先情報を取得する転送制御部14Hとが設けられている。
The
図2の構成例では、ソフトウェア処理部10Sおよびハードウェア処理部10Hに、それぞれデータ処理部11(11S,11H)が2つずつ設けられている例が示されているが、データ処理部11の数についてはこれに限定されるものではない。
また、転送制御部14(14S,14H)は、パケット転送先情報を相互にやり取りする機能を有している。また、入出力部15はパケットを相互にやり取りする機能を有している。
In the configuration example of FIG. 2, an example in which two data processing units 11 (11S and 11H) are provided in each of the software processing unit 10S and the
The transfer control unit 14 (14S, 14H) has a function of exchanging packet transfer destination information with each other. The input /
入出力部15が受信したパケットは、パケット転送部13(13S,13H)に転送される。パケット転送部13は、入力パケットのSFCヘッダ情報に基づいて、入出力部15、パケット転送部13もしくはデータ処理部11に入力パケットを転送する。パケットに関する転送先情報は、転送制御部14によって管理される。
The packet received by the input /
パケットを用いてデータ処理を行う場合、パケットは、パケット転送部13からパケット順序制御部12(12S,12H)を経由して、データ処理部11に転送れる。この際、パケット順序制御部12では、パケットの処理順序に関する制御と、パケットのパースとが行われる。
When data processing is performed using a packet, the packet is transferred from the
データ処理部11で計算されたデータは、パケット順序制御部12でパケットに整形された後、パケット転送部13に転送される。
画像処理装置10A内で必要な処理が終わったパケットは、入出力部15を経由して他のデータ処理装置10へ転送される。これを各データ処理装置10で繰り返すことで、ユーザが必要とした処理が順番に実行され、最終的な計算結果がユーザ端末21に届くことになる。
The data calculated by the
A packet for which necessary processing has been completed in the
[画像処理]
画像処理装置10Aで実行する代表的な画像処理として、空間フィルタリング処理や特徴量計算処理などの領域演算処理がある。空間フィルタリング処理は、注目ピクセル(画素)のピクセルデータ(画素値)だけでなく、その周囲のピクセルも含む一定領域内に位置するピクセルのピクセルデータを用いて、注目ピクセルの新たなピクセルデータを求める演算処理である。特徴量計算処理は、一定領域内に位置するピクセルのピクセルデータに関する勾配や分布を示す特徴量を求める演算処理である。特徴量の算出手法については、例えば画像に含まれる物体のエッジや角の位置を特定するものなど、公知の手法が存在する。
[Image processing]
Typical image processing executed by the
このような領域演算処理では、画像フレームから演算対象となる画素領域を取り出して演算処理することになり、このような画素領域を一般的にはブロックと呼ぶ。図3は、画像フレームとブロックとの関係を示す説明図である。 In such area calculation processing, a pixel area to be calculated is extracted from the image frame and calculation processing is performed, and such a pixel area is generally called a block. FIG. 3 is an explanatory diagram showing the relationship between image frames and blocks.
この画像フレーム30は、横方向にA個、縦方向にB個、縦横マトリクス状に配置されたA×B個のブロック(block#1,#2,…,#A,#A+1,…,#A×B)31から構成されている。また、ブロック31は、横方向にC個、縦方向にD個、縦横マトリクス状に配置されたC×D個のピクセル(pix#1,#2,…,#C,#C+1,…,#C×D)32から構成されている。
This
前述のとおり、領域演算処理では注目するピクセルの近傍、すなわちブロック31が演算処理範囲となり、注目ピクセルから離れたピクセルは演算処理に必要とされない。一方、画像処理に用いる画像データは、従来、画像フレームを構成するピクセルが行方向もしくは列単方向の順で、順序付けされた複数のパケットに分割格納されて画像処理装置10Aに届く。
As described above, in the area calculation process, the vicinity of the pixel of interest, that is, the
このため、画像フレームから1行単位もしくは1列単位で取得したピクセルデータを画像処理回路に入力すると、演算処理に必要なピクセルデータを揃えるために、複数行/複数列のピクセルデータを保持する必要が生じてバッファサイズが増加することになる。
例えば、図3の例では、画像フレームから1行単位でピクセルデータを取得した場合、1つのブロック31に属するピクセルデータを用意するには、少なくともA×C個のピクセルデータをD行分にわたり保持する必要がある。
For this reason, when pixel data acquired from an image frame in units of one row or one column is input to the image processing circuit, it is necessary to hold pixel data of a plurality of rows / columns in order to align the pixel data necessary for the arithmetic processing. Will occur and the buffer size will increase.
For example, in the example of FIG. 3, when pixel data is acquired in units of one row from an image frame, in order to prepare pixel data belonging to one
本発明は、このような領域演算処理に必要となるブロック単位の画像データと、パケットに格納される画像データとの相違に着目し、このようなブロックを単位とした画像データを格納するデータ構造を持つパケットを用いて、画像データを転送するようにしたものである。 The present invention pays attention to the difference between block-unit image data required for such area calculation processing and image data stored in a packet, and a data structure for storing image data in units of such blocks. The image data is transferred using a packet having.
図4は、ネットワークシステムで用いるパケットフォーマットを示す説明図である。
本発明で用いるパケット40は、一般的なEthernet(登録商標)IIのフレーム形式を用いており、そのデータ部41は、IPヘッダ情報42、UDPヘッダ情報43、ユーザ定義ヘッダ情報44、およびデータ部45から構成されている。
FIG. 4 is an explanatory diagram showing a packet format used in the network system.
The
OSI(Open Systems Interconnection)参照モデルにおいて、IP(Internet Protocol)はネットワーク層における主要なプロトコルであり、UDP(User Datagram Protocol)はトランスポート層におけるプロトコルである。トランスポート層における他のプロトコルとして、(Transmission Control Protocol)などがあるが、リアルタイム性が要求されることが多い画像・映像における通信ではUDPを用いることが多い。 In an OSI (Open Systems Interconnection) reference model, IP (Internet Protocol) is a main protocol in the network layer, and UDP (User Datagram Protocol) is a protocol in the transport layer. As another protocol in the transport layer, there is (Transmission Control Protocol) or the like, but UDP is often used for communication in an image / video that often requires real-time property.
IPヘッダ情報42とUDPヘッダ情報43は規格で定められたヘッダ情報であるが、ユーザ定義ヘッダ情報44はアプリケーション層で用いる独自のヘッダ情報である。このユーザ定義ヘッダ43では、SFCヘッダ付与装置12で付与されるSFCヘッダ情報45や、パケットに格納されている画像データなどの処理データに関する順序を示すパケットIDなど、プリケーションに関する各種の独自情報を保持する。
The
図5は、パケットのデータ構造を示す説明図例である。パケット40のデータ部45は図5に示すようなデータ構造を備えている。
ここでは、ピクセルデータが、R(Red)、G(Green)、B(Blue)の値を持つRGBデータである例が示されており、データ部45は、ブロック内のピクセルが連続して並べられたデータ構造を持っている。また、1つのパケットにはデータ長が許す限り複数のブロックに関する画像データを格納することができ、データ部45のうちブロックサイズに満たない残余領域については0で埋めるなどして対処してもよい。
FIG. 5 is an explanatory diagram showing a data structure of a packet. The
Here, an example in which the pixel data is RGB data having values of R (Red), G (Green), and B (Blue) is shown, and the
図5のデータ構造例では、1つのブロックが8×8個のピクセル領域で構成され、画像フレームにおいてブロック間の重なり領域がない場合、ブロック#1を構成するピクセル(0,0)〜ピクセル(7,7)を連続して配置した後、ブロック#2を構成するピクセル(8,0)〜ピクセル(15,7)を連続で配置する。これを繰り返してブロック#10を構成するピクセル(72,0)〜ピクセル(79,7)まで配置し、次のブロック#11を配置するには足りない残余領域においては0埋めをしている。
In the example of the data structure of FIG. 5, when one block is composed of 8 × 8 pixel regions and there is no overlapping region between blocks in the image frame, the pixel (0, 0) to pixel ( 7, 7) are continuously arranged, and then pixel (8, 0) to pixel (15, 7) constituting
一方、画像フレームにおいてブロックに重なり領域がある場合は、複数のブロックで同じピクセルデータが必要となるため、データ転送量が増えることがある。この問題はブロックを一回の計算に必要な局所領域以上のサイズに定義することで緩和することができる。すなわち、計算精度とデータ転送量の間にトレードオフを発生させ、設計パラメータとすることができる。 On the other hand, if there are overlapping areas in the blocks in the image frame, the same pixel data is required in a plurality of blocks, so the data transfer amount may increase. This problem can be alleviated by defining the block to a size larger than the local area required for one calculation. That is, a trade-off can be generated between the calculation accuracy and the data transfer amount, and the design parameter can be obtained.
図6は、パケットデータ構造と画像データの対応を示す説明図である。一般的には、画像フレームから1行分もしくは1列分のピクセルデータを順番に取得してパケットのデータ部に格納していくが、本発明では、画像フレームからブロック単位でピクセルデータを順番に取得してパケットのデータ部に格納し、ブロック内では、1行分もしくは1列分のピクセルデータを順番に取得する。これにより、送信側のデータ処理装置10におけるパケットのデータ部の構築が従来よりも多少複雑になるが、受信側の画像処理装置10Aでは、画像処理に必要な画像データを極めて容易にブロック単位で取得することができる。
FIG. 6 is an explanatory diagram showing the correspondence between the packet data structure and the image data. In general, pixel data for one row or one column is sequentially obtained from an image frame and stored in the data portion of the packet. In the present invention, pixel data is sequentially assigned to the block from the image frame. The data is acquired and stored in the data portion of the packet, and the pixel data for one row or one column is sequentially acquired in the block. As a result, the construction of the data part of the packet in the
[本実施の形態の動作]
次に、本実施の形態にかかるネットワークシステム1の動作について説明する。
ここでは、図1において、任意のデータ処理装置10で画像フレームから画像データを格納したパケットを送信し、画像処理装置10Aがこのパケットを受信して画像データを取得し、ブロックごとに画像処理を実行する場合を例として説明する。
[Operation of this embodiment]
Next, the operation of the
Here, in FIG. 1, an arbitrary
まず、データ処理装置10のデータ処理部11は、図3に示したように、処理対象となる画像フレームを予め設定されている大きさ、例えば8×8ピクセルで分割してブロックを設け、画像処理の順に選択したブロックごとに、1行分ずつ8個のピクセルを順に取得してバケットのデータ部45に格納する。データ部45の残余領域が1ブロック分に満たなくなった時点で、残余領域を0埋めした後、当該パケットを画像処理装置10A宛に送信する。これを、画像フレーム内のすべてのブロックについて繰り返し実行し、次の画像フレームがあれば、上記と同様の処理を繰り返し実行する。
First, as shown in FIG. 3, the
一方、画像処理装置10Aのハードウェア処理部10Hは、データ処理装置10からのパケットを、入出力部15を介してパケット転送部13Hで受信し、パケット順序制御部12Hへ転送する。パケット順序制御部12Hは、パケット転送部13Hからのパケットに含まれる例えばパケットIDの順序に従ってパケットの処理順序を制御し、パケットのデータ部45に格納されている画像データをデータ処理部11Hへ出力する。
On the other hand, the
図7は、画像処理装置での画像データ取得を示す説明図である。
データ処理部11Hは、画像処理を行う画像処理回路において、ブロックを構成する行あるいは列ごとに、1行分もしくは1列分のピクセルデータを保持するためのバッファ70を有している。
例えば、ブロックが8×8ピクセル分のピクセル領域で構成されている場合、バッファ70は、1行目のピクセルデータ8個分を保持するバッファ#0から8行目のピクセルデータ8個分を保持するバッファ#7まで、合計8個のバッファから構成される。
FIG. 7 is an explanatory diagram showing image data acquisition in the image processing apparatus.
The
For example, when the block is configured by a pixel area of 8 × 8 pixels, the
パケット順序制御部12Hから新たなパケットのデータ部45に格納されている画像データ71が入力された場合、データ処理部11Hは、画像データ71の先頭から1行分に相当する8個のピクセルデータを順に取得して、バッファ#0〜バッファ#7に順に格納する。これにより、1ブロック(block#1)分の画像データが用意されることになり、データ処理部11Hは、このブロックを単位として、領域演算処理などの画像処理を実行する。
When the
したがって、画像フレームサイズがW×Hピクセルであり、ブロックサイズが8×8ピクセルである場合、従来技術によれば少なくともW×8ピクセル分もしくはH×8ピクセル分のバッファが必要となるが、本発明によれば、ブロックサイズに相当する8×8ピクセル分のバッファでよく、極めて少ないメモリリソースで画像処理を行うことができる。また、このバッファサイズは、画像フレームサイズに影響されることがないため、各種の画像フレームサイズに対応できる。 Therefore, when the image frame size is W × H pixels and the block size is 8 × 8 pixels, according to the prior art, a buffer for at least W × 8 pixels or H × 8 pixels is required. According to the invention, a buffer of 8 × 8 pixels corresponding to the block size may be used, and image processing can be performed with extremely small memory resources. Further, since this buffer size is not affected by the image frame size, it can correspond to various image frame sizes.
[本実施の形態の効果]
このように、本実施の形態は、対象となる画像フレームから画像処理に用いる画像データを取得して転送する際に用いるパケットのパケットデータ構造として、画像フレーム上に配置した、画像処理の単位であるn×m(n,mは2以上の整数)ピクセルからなるブロックのうち、1つまたは複数のブロックに関するピクセルデータを格納するデータ部を備え、データ部に、ブロックを構成する1行分または1列分のピクセルデータを、ブロック単位で順に格納するようにしたものである。
[Effects of the present embodiment]
As described above, this embodiment is a unit of image processing arranged on an image frame as a packet data structure of a packet used when acquiring and transferring image data used for image processing from a target image frame. A data portion that stores pixel data related to one or a plurality of blocks among blocks of n × m (n and m are integers greater than or equal to 2) pixels, and the data portion includes one row constituting the block or One column of pixel data is sequentially stored in units of blocks.
これにより、パケットを受信した画像処理装置10Aでは、受信したパケットのデータ部45から、1行分または1列分のピクセルデータを順に取得してバッファ部70に順次格納することにより1ブロック分のピクセルデータを生成し、得られた1ブロック分のピクセルデータを単位として画像処理を実行することになる。
Thus, in the
したがって、バッファ部70としては、1ブロック分のメモリリソースを備えておけばよく、最低1ブロック分のピクセルデータという、極めて少ないメモリリソースで画像処理を行うことができる。このため、メモリリソースに対する厳しい制約下であってもハードウェア実装で画像処理を実現でき、画像処理装置10Aさらにはネットワークシステム1において、省資源と高パフォーマンスを両立することが可能となる。
Therefore, the
[実施の形態の拡張]
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
[Extended embodiment]
The present invention has been described above with reference to the embodiments, but the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
1…ネットワークシステム、10…データ処理装置、10A…画像処理装置、10S…ソフトウェア処理部、10H…ハードウェア処理部、11,11S,11H…データ処理部(SF)、12,12S,12H…パケット順序制御部(SQ)、13,13S,13H…パケット転送部(SFF)、14,14S,14H…転送制御部、15…入出力部、20…制御装置、21…ユーザ端末、22…SFCヘッダ情報付与装置(CL)、30…画像フレーム、31…ブロック、32…ピクセル、40…パケット、45…データ部、70…バッファ部、71…画像データ、L…通信リンク。
DESCRIPTION OF
Claims (7)
前記データ処理装置から通信リンクを介して受信した前記パケットから画像データを取得して所定の画像処理を行う画像処理装置とを備え、
前記データ処理装置は、
画像処理の対象となる画像フレーム上に配置した、前記画像処理の単位であるn×m(n,mは2以上の整数)ピクセルからなる複数のブロックのうち、1つまたは複数のブロックごとに、前記ブロックを構成する1行分または1列分のピクセルデータを順に取得して前記パケットに順次格納するデータ処理部を備え、
前記画像処理装置は、
1ブロック分のピクセルデータを保持するバッファ部と、
受信したパケットから、前記1行分または前記1列分のピクセルデータを順に取得して前記バッファ部に順次格納することにより1ブロック分のピクセルデータを生成し、得られた1ブロック分のピクセルデータを単位として前記画像処理を実行する画像処理部とを備える
ことを特徴とするネットワークシステム。 A data processing device for transmitting a packet storing image data;
An image processing device that obtains image data from the packet received from the data processing device via a communication link and performs predetermined image processing;
The data processing device includes:
For each one or a plurality of blocks among a plurality of blocks composed of n × m pixels (n and m are integers of 2 or more), which are units of the image processing, arranged on an image frame to be subjected to image processing A data processing unit for sequentially acquiring pixel data for one row or one column constituting the block and sequentially storing the pixel data in the packet;
The image processing apparatus includes:
A buffer unit for holding pixel data for one block;
Pixel data for one block is generated by sequentially obtaining pixel data for one row or one column from the received packet and sequentially storing the pixel data in the buffer unit, and the obtained pixel data for one block An image processing unit that executes the image processing in units of
前記バッファ部は、n(またはm)ピクセル分のピクセルデータを保持するm(またはn)個のバッファからなることを特徴とするネットワークシステム。 The network system according to claim 1,
The buffer system comprises m (or n) buffers that hold pixel data for n (or m) pixels.
前記データ処理装置が、画像処理の対象となる画像フレーム上に配置した、前記画像処理の単位であるn×m(n,mは2以上の整数)ピクセルからなる複数のブロックのうち、1つまたは複数のブロックごとに、前記ブロックを構成する1行分または1列分のピクセルデータを順に取得して前記パケットに順次格納するデータ処理ステップを備え、
前記画像処理装置が、受信したパケットから、前記1行分または前記1列分のピクセルデータを順に取得して、1ブロック分のピクセルデータを保持するバッファ部に順次格納することにより1ブロック分のピクセルデータを生成し、得られた1ブロック分のピクセルデータを単位として前記画像処理を実行する画像処理ステップとを備える
ことを特徴とする画像処理方法。 A network system comprising: a data processing device that transmits a packet storing image data; and an image processing device that obtains image data from the packet received via a communication link from the data processing device and performs predetermined image processing An image processing method used,
One of a plurality of blocks of n × m (n and m are integers of 2 or more) pixels, which are units of the image processing, arranged on the image frame to be subjected to image processing by the data processing device. Alternatively, for each of a plurality of blocks, a data processing step of sequentially obtaining pixel data for one row or one column constituting the block and sequentially storing the pixel data in the packet is provided.
The image processing apparatus sequentially acquires pixel data for one row or one column from the received packet, and sequentially stores the pixel data for one block in a buffer unit that holds pixel data for one block. An image processing method comprising: generating image data; and executing the image processing in units of the obtained pixel data for one block.
前記バッファ部は、n(またはm)ピクセル分のピクセルデータを保持するm(またはn)個のバッファからなることを特徴とする画像処理方法。 The image processing method according to claim 5,
The image processing method according to claim 1, wherein the buffer unit includes m (or n) buffers that hold pixel data for n (or m) pixels.
前記画像フレーム上に配置した、前記画像処理の単位であるn×m(n,mは2以上の整数)ピクセルからなるブロックのうち、1つまたは複数のブロックに関するピクセルデータを格納するデータ部を備え、
前記データ部は、前記ブロックを構成する1行分または1列分のピクセルデータが、ブロック単位で順に格納されている
ことを特徴とするパケットデータ構造。 A packet data structure of a packet used when acquiring and transferring image data used for image processing from a target image frame,
A data portion for storing pixel data related to one or a plurality of blocks among blocks of n × m (n and m are integers of 2 or more) pixels, which are units of the image processing, arranged on the image frame. Prepared,
The data portion stores pixel data for one row or one column constituting the block in order in units of blocks.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017038054A JP2018148259A (en) | 2017-03-01 | 2017-03-01 | Network system, data processor, image processor, image processing method, and packet data structure |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017038054A JP2018148259A (en) | 2017-03-01 | 2017-03-01 | Network system, data processor, image processor, image processing method, and packet data structure |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2018148259A true JP2018148259A (en) | 2018-09-20 |
Family
ID=63590107
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017038054A Pending JP2018148259A (en) | 2017-03-01 | 2017-03-01 | Network system, data processor, image processor, image processing method, and packet data structure |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2018148259A (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0594521A (en) * | 1991-04-10 | 1993-04-16 | Canon Inc | Image processing apparatus and system having the same |
| JP2001103473A (en) * | 1999-09-30 | 2001-04-13 | Canon Inc | Image packet structure, page image data structure, and packet generating apparatus and method |
| JP2003330646A (en) * | 2002-05-10 | 2003-11-21 | Canon Inc | Image processing device controller |
| JP2011097521A (en) * | 2009-11-02 | 2011-05-12 | Sony Computer Entertainment Inc | Moving image processing program, device, and method, and imaging apparatus mounting the moving image processing device |
| JP2012216006A (en) * | 2011-03-31 | 2012-11-08 | Sony Computer Entertainment Inc | Information processing system, information processing device, imaging device, and information processing method |
-
2017
- 2017-03-01 JP JP2017038054A patent/JP2018148259A/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0594521A (en) * | 1991-04-10 | 1993-04-16 | Canon Inc | Image processing apparatus and system having the same |
| JP2001103473A (en) * | 1999-09-30 | 2001-04-13 | Canon Inc | Image packet structure, page image data structure, and packet generating apparatus and method |
| JP2003330646A (en) * | 2002-05-10 | 2003-11-21 | Canon Inc | Image processing device controller |
| JP2011097521A (en) * | 2009-11-02 | 2011-05-12 | Sony Computer Entertainment Inc | Moving image processing program, device, and method, and imaging apparatus mounting the moving image processing device |
| JP2012216006A (en) * | 2011-03-31 | 2012-11-08 | Sony Computer Entertainment Inc | Information processing system, information processing device, imaging device, and information processing method |
Non-Patent Citations (1)
| Title |
|---|
| 三好 健文 TAKEFUMI MIYOSHI: "高速Ethernet×FPGA", FPGAマガジン NO.3 FIELD PROGRAMMABLE GATE ARRAY, JPN6019045961, 1 November 2013 (2013-11-01), JP, pages 52 - 63, ISSN: 0004297934 * |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2023553086A (en) | Method and apparatus for forwarding computing power application traffic | |
| KR101644868B1 (en) | Inter-terminal image sharing method, terminal device, and communications system | |
| CN113190495B (en) | System and method for content retrieval from remote network areas | |
| TWI587676B (en) | Transmission apparatus and transmission method thereof | |
| CN107995108A (en) | Network path optimization method and SDN controllers | |
| JP2014241493A (en) | Transmitter, transmission method and program | |
| KR20160146996A (en) | Communication apparatus, communication method, and communication system | |
| JP6654733B2 (en) | Data processing device, network system, packet order control circuit, and data processing method | |
| Caraguay et al. | Framework for optimized multimedia routing over software defined networks | |
| CN113452471A (en) | Method, electronic device and computer program product for data processing | |
| JP2018148259A (en) | Network system, data processor, image processor, image processing method, and packet data structure | |
| WO2015154393A1 (en) | Method and apparatus for processing service node ability, service classifier and service controller | |
| JP2009088962A (en) | Communication adapter, communication device, and communication method | |
| CN109168185B (en) | Network scanning method and device based on network name space | |
| US9529739B2 (en) | Communications interface between two non-complimentary communication devices | |
| CN110570614B (en) | Video monitoring system and intelligent camera | |
| US20230195518A1 (en) | Processing device and method for distributing data to a plurality of processing units | |
| Bakri et al. | HTTP/2 and QUIC for Virtual Worlds and the 3D Web? | |
| JP4329429B2 (en) | Image transfer apparatus, image transfer method, and image transfer program | |
| JP2025508513A (en) | Method, device, electronic device, computer-readable medium and computer program for acquiring video stream data | |
| JP2023109707A (en) | Video analysis system and data delivery method | |
| KR20210078074A (en) | Apparatus and method for networking by using latent vector | |
| US12388676B2 (en) | Data transfer device, data processing device and data processing method | |
| CN105580330B (en) | A method, device and system for data transmission | |
| WO2017045486A1 (en) | Method, apparatus and system for wireless data transmission |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190301 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191127 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191210 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20200714 |