JP2013150094A - Task scheduling device, task scheduling method, and task scheduling program - Google Patents
Task scheduling device, task scheduling method, and task scheduling program Download PDFInfo
- Publication number
- JP2013150094A JP2013150094A JP2012007856A JP2012007856A JP2013150094A JP 2013150094 A JP2013150094 A JP 2013150094A JP 2012007856 A JP2012007856 A JP 2012007856A JP 2012007856 A JP2012007856 A JP 2012007856A JP 2013150094 A JP2013150094 A JP 2013150094A
- Authority
- JP
- Japan
- Prior art keywords
- task
- information
- tasks
- access
- correlation
- 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
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
タスクスケジューリング装置、タスクスケジューリング方法およびタスクスケジューリングプログラムに関し、特にキャッシュメモリを持つ演算器のためのタスクスケジューリング装置、スケジューリング方法およびスケジューリングプログラムに関する。 The present invention relates to a task scheduling apparatus, a task scheduling method, and a task scheduling program, and more particularly to a task scheduling apparatus, a scheduling method, and a scheduling program for an arithmetic unit having a cache memory.
近年、動画像の画像サイズの拡大要求に伴って、符号化技術もMPEG-2(Moving Picture Experts Group−2)、MPEG-4、H.264/MPEG-4 AVC(Advanced Video Coding。H.264)と圧縮効率を向上するように進歩してきた。これらの符号化方式は、フレーム間の動き補償予測を用いて情報を圧縮することで高い符号化効率を達成している。図20は、H.264の規格に基づいた動画像符号化装置の例を表す図である。なお、非特許文献1にはこの規格に基づく処理の内容が記載されている。また非特許文献2には、この規格に基づいた動画像符号化装置の実装の詳細が記載されている。
In recent years, with the demand for increasing the image size of moving images, the encoding techniques are MPEG-2 (Moving Picture Experts Group-2), MPEG-4, H.264 / MPEG-4 AVC (Advanced Video Coding, H.264). ) And have progressed to improve compression efficiency. These encoding methods achieve high encoding efficiency by compressing information using motion compensation prediction between frames. FIG. 20 is a diagram illustrating an example of a video encoding device based on the H.264 standard. Non-Patent
動き補償予測は、符号化対象フレームと参照フレームの間の動き情報を用いて、参照フレームの画像を補正した画像(予測画像)を生成する技術である。動画像符号化装置は、動き補償予測により生成した予測画像と符号化対象画像の差分と、フレーム間の動きを表す動きベクトルのみを符号化することで、動画像情報を圧縮する。動き補償予測では、符号化済みの画像から符号化対象となる画像が予測される。参照画像が1枚であるフレームがP(Predictive)フレーム、2枚であるフレームがB(Bi-predictive)フレームである。動画像符号化装置は、複数のフレームの中から、ブロックごとに参照フレームを選択することが可能である。 Motion compensation prediction is a technique for generating an image (predicted image) obtained by correcting an image of a reference frame using motion information between an encoding target frame and a reference frame. The moving image encoding apparatus compresses moving image information by encoding only a difference between a prediction image generated by motion compensated prediction and an encoding target image and a motion vector representing a motion between frames. In motion compensated prediction, an image to be encoded is predicted from an encoded image. A frame having one reference image is a P (Predictive) frame, and a frame having two reference images is a B (Bi-predictive) frame. The video encoding apparatus can select a reference frame for each block from a plurality of frames.
参照フレームと符号化対象フレームとの間の動き情報を算出する処理が動き推定である。動画像符号化装置は、参照フレームの中から、符号化対象ブロックと類似度が高いブロックを探索することで、動き推定を行う。参照フレームの最も類似度が高いブロックと符号化対象ブロックの位置差が動きベクトルである。参照フレームの候補である参照可能フレームが複数ある場合は、動画像符号化装置は、各参照可能フレームで動きベクトル探索を行う。画像符号化装置は、探索の結果最も類似度が高いブロックを含む参照可能フレームを選択して参照フレームにし、最も類似度が高いブロックと符号化対象ブロックの位置差を動きベクトルにする。参照画像と動きベクトルを用いて予測画像を生成する処理を動き補償と呼ぶ。 A process for calculating motion information between the reference frame and the encoding target frame is motion estimation. The video encoding apparatus performs motion estimation by searching for a block having high similarity to the encoding target block from the reference frame. The position difference between the block with the highest similarity of the reference frame and the encoding target block is a motion vector. When there are a plurality of referable frames that are reference frame candidates, the video encoding apparatus performs a motion vector search in each referable frame. The image encoding apparatus selects a referenceable frame including a block having the highest similarity as a result of the search, and sets it as a reference frame, and sets a position difference between the block having the highest similarity and the encoding target block as a motion vector. The process of generating a predicted image using a reference image and a motion vector is called motion compensation.
動き補償予測を含むH.264動画像符号化の処理は、16x16画素のマクロブロック単位で行われる。H.264などの近年の符号化方式による動画像符号化の処理は演算量が多いため、並列処理によって高速化が図られることも多い。動き推定や動き補償は、マクロブロックごとにほぼ独立な処理であるため、マクロブロック単位で並列化して、これらの処理を行うことができる。 H.264 video coding processing including motion compensation prediction is performed in units of 16 × 16 pixel macroblocks. Since moving picture coding processing by recent coding schemes such as H.264 has a large amount of computation, speeding up is often achieved by parallel processing. Since motion estimation and motion compensation are almost independent processes for each macroblock, these processes can be performed in parallel on a macroblock basis.
また、動き補償予測では、近接する動きベクトル同士は相関性が高いことが知られている。そのため、符号化の際、すでに探索された周辺のブロックの動きベクトル情報を予測ベクトルとして用いて、予測ベクトルと符号化対象ブロックの動きベクトルの差分のみを符号化することで、動きベクトルの符号量を削減することができる。H.264における予測ベクトルは、処理の終了した左と上と右上のブロックの動きベクトルのメディアンである。 In motion compensation prediction, it is known that adjacent motion vectors have high correlation. Therefore, the coding amount of the motion vector is encoded by encoding only the difference between the prediction vector and the motion vector of the encoding target block using the motion vector information of the neighboring blocks already searched as a prediction vector. Can be reduced. The prediction vector in H.264 is the median of the motion vectors of the left, top, and top right blocks after processing.
動き推定では、非特許文献2に記載のように、探索開始点に近い点から動きベクトルを探索し、充分に良い動きベクトルが得られたと判断できたら探索を打ち切る適応的な探索アルゴリズムが用いられることが多い。そのため、動きベクトルの探索の際、探索結果である動きベクトルと探索開始点の距離が短ければ探索量は少なく済み、距離が長ければ探索量は多くなる。予測ベクトルは、動きベクトルに近いと予想されるため、予測ベクトルを探索開始点とすることで探索量を削減できる。予測ベクトルを探索開始点とすると、予測ベクトルの精度すなわち予測ベクトルと動きベクトルの距離により探索量が変化する。
In motion estimation, as described in Non-Patent
次に、プロセッサアーキテクチャにおける技術背景を述べる。 Next, the technical background in the processor architecture will be described.
CPU (Central Processing Unit)やGPU (Graphics Processing Unit)などのプロセッサは、メインメモリに格納されたデータを読み出して演算処理を行う。一般的に、演算処理に対してメインメモリアクセスは低速であるため、多くのプロセッサにはメインメモリへのアクセス負荷を軽減するためのキャッシュメモリが備えられている。キャッシュメモリはメインメモリに比べると、容量は少ないが高速にアクセスすることができる。キャッシュメモリには、プロセッサが近い過去にアクセスしたメインメモリの内容が保持される。キャッシュメモリを備えるプロセッサは、メモリアクセスに時間的・空間的な局所性があれば、メインメモリにアクセスせず、キャッシュメモリのみにアクセスすればよくなるので、高速なデータ読み出しが可能になる。 A processor such as a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit) reads out data stored in a main memory and performs arithmetic processing. In general, since main memory access is slow for arithmetic processing, many processors are provided with a cache memory for reducing the access load on the main memory. The cache memory is smaller in capacity than the main memory, but can be accessed at high speed. The cache memory holds the contents of the main memory accessed in the past by the processor. A processor having a cache memory can access data at high speed without accessing the main memory and accessing only the cache memory if the memory access is temporally and spatially local.
前述の動き推定や動き補償は、演算量に対してメモリアクセスの量が多いため、キャッシュメモリへのアクセスだけで済む割合を示すキャッシュヒット率が、これらの処理の処理時間に大きく影響を与える。そのため、動き推定や動き補償を行うタスクを実行する際、同一データを使用するタスクを連続して実行できるようなタスクスケジューリングが重要である。さらに、一般的なマルチコア/メニコアなどの並列処理環境ではコア毎あるいは複数のコアをまとめたコアグループ毎にキャッシュを持っており、キャッシュを有効利用できるように、同一データを使用するタスクをなるべく同じコアに配置するなどのスケジューリングも必要となる。特に、画像サイズが大きい場合は画像データの全てをキャッシュメモリに保持することができず、一度キャッシュに保存されたデータを多く再利用することが重要である。 In the above-described motion estimation and motion compensation, since the amount of memory access is large with respect to the amount of calculation, the cache hit rate that indicates the ratio that only requires access to the cache memory greatly affects the processing time of these processes. Therefore, when executing a task for performing motion estimation or motion compensation, task scheduling that can continuously execute a task using the same data is important. Furthermore, in a general multi-core / meni-core parallel processing environment, each core or each core group that combines multiple cores has a cache, and tasks that use the same data are as much as possible so that the cache can be used effectively. Scheduling such as placing in the core is also required. In particular, when the image size is large, all of the image data cannot be held in the cache memory, and it is important to reuse a large amount of data once stored in the cache.
また並列処理では、プロセッサコア毎の負荷を均等に分散することで、各プロセッサコアが遊休状態になる時間をできるだけ減少させることが、高速化のためには重要である。さらに、GPUなどのメニコアプロセッサは、コア数がマルチコアCPUなどに比べて多く、並列に実行可能なタスク数が多いので、メニコアプロセッサによる処理では、負荷分散の均等化が処理時間の短縮に与える影響はより大きくなる。 In parallel processing, it is important for speeding up to reduce the time in which each processor core is in an idle state as much as possible by evenly distributing the load of each processor core. In addition, many core processors such as GPUs have more cores than multi-core CPUs, and the number of tasks that can be executed in parallel is large. The impact will be greater.
動き補償処理のキャッシュヒット率を向上させるための技術の例が、特許文献1、特許文献2、特許文献3に記載されている。これらの技術は、メモリアクセス領域が近いタスクをまとめ、データがキャッシュに乗っているうちに処理をまとめて実行することでキャッシュヒット率を上げる技術である。
Examples of techniques for improving the cache hit rate of motion compensation processing are described in
図21は、エンコード処理におけるフレーム構造の例を表す図である。図21の例では、P1、P2、P3はPフレームを、B1、B2、B3、B4はBフレームを表す。双予測動き補償を含むエンコード処理では、図21のようにPフレームの間に2枚のBフレームを挟み、各Bフレームは前後の同じPフレームを参照するフレーム構造がとられることが多い。 FIG. 21 is a diagram illustrating an example of a frame structure in the encoding process. In the example of FIG. 21, P1, P2, and P3 represent P frames, and B1, B2, B3, and B4 represent B frames. In encoding processing including bi-predictive motion compensation, two B frames are sandwiched between P frames as shown in FIG. 21, and each B frame often has a frame structure that refers to the same P frame before and after.
以下では、タスクを実行するプロセッサが、例えばタスクaを実行中に、フレームbの少なくとも一部のデータにアクセスすることを、タスクaがフレームbを参照すると表記する。また、この場合、フレームbを、タスクaがアクセスするフレーム又はタスクaでアクセスされるフレームと表記する。さらに、タスクを実行するプロセッサが、例えばタスクaを実行中に、あるメモリ領域にアクセスすることを、タスクaがそのメモリ領域をアクセスすると表記する。また、この場合、このメモリ領域を、タスクaがアクセスするメモリ領域又はタスクaでアクセスされるメモリ領域と表記する。 In the following description, a task executing a task accesses, for example, at least a part of the data in the frame b while executing the task a, and the task a refers to the frame b. In this case, the frame b is expressed as a frame accessed by the task a or a frame accessed by the task a. Further, a task executing a task accesses a certain memory area while executing the task a, for example, and indicates that the task a accesses the memory area. In this case, this memory area is referred to as a memory area accessed by task a or a memory area accessed by task a.
特許文献1には、連続する2枚のBピクチャの同一位置マクロブロックの処理を続けて行うことにより、キャッシュを有効利用する動画像伸長方法が記載されている。特許文献1に記載の方法は、同一参照フレームの処理を連続して行うことで、キャッシュのヒット率を向上させる。
特許文献2には、複数のフレームを参照可能で参照フレームがブロックごとに異なる場合にもキャッシュがヒットするように、同一フレームを参照するタスクをまとめ、連続して実行する動き補償装置が記載されている。上述のタスクは、いずれかのブロックにおいて1枚のフレームを参照して行う処理を表す。特許文献2に記載の技術は、特許文献1に記載の技術よりも柔軟にタスクの処理順を変更し、同一フレームを参照するタスクをより多く連続して実行することでキャッシュヒット率を上げることができる。
図22は、タスクが参照するブロックと、特許文献2の動き補償装置によるタスクのプロセッサコアへの割り当ての例を表す図である。図22において、例えば、タスク1−1は、符号化対象フレーム内のブロックにおける参照フレーム1を参照するタスクを表し、タスク2−1〜タスク2−3は、符号化対象フレーム内のブロックにおける参照フレーム2を参照するタスクを表す。これらのタスクは、必ずしも同一のブロックにおける処理ではない。PE(Processor Element)1〜PE4は、それぞれプロセッサコアを表す。図22では、例えば、タスク1−1はPE1で、タスク2−1〜タスク2−3はPE2で行うことを表す。
FIG. 22 is a diagram illustrating an example of assignment of tasks to processor cores by the blocks referred to by the tasks and the motion compensation apparatus disclosed in
特許文献2に記載の動き補償装置は、並列処理を行う場合、図22のように同一フレームを参照する処理を同一プロセッサコアで行うことで、コアごとにキャッシュ内のデータを繰返し使用することができる。
When performing parallel processing, the motion compensation device described in
特許文献3には、同一フレームの同一領域を参照するブロックの処理を続けて実行することでキャッシュヒット率を上げる技術による復号装置が記載されている。特許文献2の復号装置は、各タスクのアクセス範囲を算出し、同じアクセス範囲のタスクを連続実行するようタスクスケジュールすることでキャッシュヒット率を上げる。特許文献3に記載の技術は、特許文献2に記載の技術よりもさらにキャッシュヒット率が高くなるように、同じメモリ領域にアクセスする異なるフレームのタスクも連続して実行するように、タスクをスケジューリングすることができる。
図23は、参照フレーム内のブロックと、そのブロックを参照するタスクが実行される符号化対象フレーム内のブロックの関係の例と、特許文献3の復号装置が決定した、それらのタスクの処理順の例を表す図である。図23で、例えば、タスク1−1は符号化対象フレーム1のブロック1−1で実行されるタスクを、タスク2−1は符号化対象フレーム2のブロック2−1で実行されるタスクを表す。特許文献3の復号装置が、図23のタスク1−1〜タスク3−4をスケジューリングした結果が、図23の処理順である。
FIG. 23 shows an example of the relationship between a block in a reference frame and a block in an encoding target frame in which a task that refers to the block is executed, and the processing order of those tasks determined by the decoding device of
図25は、特許文献3に記載の技術によりタスクをスケジューリングするタスクスケジューリングシステムの構成の例を表す図である。図25のタスクスケジューリングシステムは、タスクを取得するタスク取得部と、取得されたタスクのアクセス領域を算出するタスクアクセス領域算出部と、タスクのアクセス領域が任意に区切られたメモリ領域のどの部分に含まれるかを判定し、各区分されたメモリ領域毎にタスクをグルーピングするタスクグループ化部と、グループごとにタスクの処理順をソートするスケジュール部から構成される。
FIG. 25 is a diagram illustrating an example of a configuration of a task scheduling system that schedules tasks using the technique described in
図26は、特許文献3に記載の技術による、図25のタスクスケジューリングシステムの動作の例を表す図である。また、図3は、タスクA、B、Cがアクセスするメモリの範囲の例を表す図である。図3のような範囲のメモリにアクセスするタスクA、B、Cをスケジューリングする例について説明する。メモリは図の(1)、(2)で表される領域に区切られており、区切られたメモリ領域の一部は重複している。まず、タスク取得部がタスク、例えばタスクAを取得する。タスクアクセス領域算出部はタスクAのアクセス領域を算出する。タスクAのアクセス領域は(1)のメモリ領域に含まれているため、タスクグループ化部は、タスクAをグループG1に配置する。これを全タスクのグルーピングが完了するまで繰り返す。タスクBはタスクAと同様にグループG1に配置される。タスクCは(2)のメモリ領域に含まれているため、グループG2に配置される。全タスクのグルーピングが完了すると、スケジュール部は、グループ番号をキーにタスクをソートする。例えば、タスクA、B、Cの順にソートされ、ソートされた順番にタスクは処理される。グループ内のタスクの処理順やグループの処理順は実装に依存する。
FIG. 26 is a diagram illustrating an operation example of the task scheduling system in FIG. 25 according to the technique described in
特許文献4には、プログラムの各ステップ毎に調べた、データ項目に対するアクセス命令の種類及び回数から、プロセス及びデータ項目を分割し、プロセス間のインタフェースを表示するシステム解析装置が記載されている。
特許文献5には、並列処理する複数のタスク各々に、キャッシュメモリを分割した領域を関連付けるキャッシュ制御装置が記載されている。特許文献5に記載の技術では、各タスクは、関連付けられているキャッシュメモリの領域のみを使用する。このことにより、各タスクが使用しているキャッシュメモリの領域のデータは、他のタスクにより上書きされない。 Patent Document 5 describes a cache control device that associates an area obtained by dividing a cache memory with each of a plurality of tasks to be processed in parallel. In the technique described in Patent Document 5, each task uses only an associated cache memory area. As a result, the data in the cache memory area used by each task is not overwritten by another task.
特許文献6には、プロセスがアクセスする対象のファイルにより、関連するプロセスをグループ化し、プロセスのグループ単位で稼働性能を監視する性能監視方法が記載されている。
特許文献1に記載の技術には、ブロックごとに参照フレームが異なる場合、キャッシュヒットしにくく、効果が少ないという問題がある。
The technique described in
特許文献2に記載の技術には、画像サイズが大きくなると同一フレーム内であってもキャッシュに載っているとは限らず、キャッシュミスが多発する可能性があるという問題がある。特許文献2に記載の技術には、さらに、各参照フレームあたりのタスク数は一定ではないため、並列処理の場合にプロセッサコアあたりの処理量を均等化するのは困難であるという問題がある。
The technique described in
特許文献3に記載のタスクスケジューリング手法は、決められたメモリ領域内をアクセスするタスクを、連続して実行するようグループ化する。例えば、図3のような範囲にアクセスするタスクをスケジューリングする際、キャッシュのヒット率を向上させるためには、メモリアクセス領域が重複するタスクAとCを連続して処理する必要がある。しかし、タスクA、B、Cを特許文献3に記載のタスクスケジューリング手法でスケジューリングする場合、まず(1)の領域内をアクセスするタスクとして抽出されたタスクA及びBが連続して処理される。その後、(2)の領域内をアクセスするタスクとして抽出されたタスクCが処理される。この時、タスクA及びBと、タスクCの処理は連続して行われるとは限らない。タスクAとタスクBのメモリアクセス領域は重複しないため、キャッシュメモリの利用はできない。一方で、タスクAとタスクCはメモリアクセス領域の一部が重複しているにもかかわらず連続に処理されないため、キャッシュ内のデータの再利用ができない。
The task scheduling method described in
このように、特許文献3の技術は、タスクがアクセスするメモリ領域が同一メモリ領域内か否かだけグループ化する。特許文献3の技術には、メモリアクセス領域が重複するタスクを連続して実行するよう、複数のタスクをスケジューリングすることができないという問題がある。
As described above, the technique of
特許文献4、5、6の技術には、アクセスするメモリ領域が重複するタスクを、連続して実行するよう、複数のタスクをスケジューリングすることができないという問題がある。
The techniques disclosed in
本発明の目的は、メモリアクセス領域がより多く重複するタスクを連続実行できるようスケジュールする、タスクスケジューリング装置を提供することにある。 It is an object of the present invention to provide a task scheduling apparatus that schedules a task in which more memory access areas overlap so that they can be continuously executed.
本発明のタスクスケジューリング装置は、処理のまとまりであるタスクを特定するタスク特定情報を含むタスク情報を複数取得するタスク取得手段と、前記タスクでアクセスされるメモリ領域の配置を表すアクセス情報を取得し、前記タスク特定情報に関連付けてアクセス領域記憶手段に格納するタスクアクセス取得手段と、前記タスク特定情報と前記アクセス情報の組を記憶するアクセス領域記憶手段と、2つの前記タスクの前記アクセス情報から、2つの前記タスクでアクセスされるメモリ領域の重複量を表すタスク相関を算出するタスク相関算出手段と、前記タスクの実行順の列であるタスク列の最初又は最後の前記タスクと、前記タスク列に含まれない前記タスクのいずれかとの組合せ中、前記タスク相関が最も高い前記組合せの前記タスクが連続するように、前記タスク列に含まれない前記タスクを前記タスク列に加えるスケジュール手段と、前記タスク列を表す情報を出力する出力手段とを含む。 A task scheduling apparatus according to the present invention acquires task information that acquires a plurality of task information including task specifying information that specifies a task that is a unit of processing, and access information that indicates an arrangement of memory areas accessed by the task. From the task access acquisition means for storing in the access area storage means in association with the task identification information, the access area storage means for storing a set of the task identification information and the access information, and the access information of the two tasks, A task correlation calculating means for calculating a task correlation representing an overlapping amount of memory areas accessed by the two tasks, a first or last task in a task sequence which is a sequence of execution order of the tasks, and a task sequence Before the combination having the highest task correlation among combinations with any of the tasks not included As the task is continuous, it comprises a scheduling means for adding said tasks that are not included in the task sequence in the task sequence, and output means for outputting information representing the task sequence.
本発明のタスクスケジューリング方法は、処理のまとまりであるタスクを特定するタスク特定情報を含むタスク情報を複数取得し、前記タスクでアクセスされるメモリ領域の配置を表すアクセス情報を取得し、前記タスク特定情報に関連付けてアクセス領域記憶手段に格納し、前記タスク特定情報と前記アクセス情報の組をアクセス領域記憶手段に記憶し、2つの前記タスクの前記アクセス情報から、2つの前記タスクでアクセスされるメモリ領域の重複量を表すタスク相関を算出し、前記タスクの実行順の列であるタスク列の最初又は最後の前記タスクと、前記タスク列に含まれない前記タスクのいずれかとの組合せ中、前記タスク相関が最も高い前記組合せの前記タスクが連続するように、前記タスク列に含まれない前記タスクを前記タスク列に加え、前記タスク列を表す情報を出力する。 The task scheduling method of the present invention acquires a plurality of task information including task specifying information for specifying a task that is a unit of processing, acquires access information indicating an arrangement of a memory area accessed by the task, and specifies the task Memory associated with information and stored in access area storage means, a set of the task specifying information and the access information is stored in access area storage means, and the memory accessed by the two tasks from the access information of the two tasks Calculating a task correlation representing an overlap amount of the area, and combining the first or last task in the task sequence, which is a sequence of the execution order of the tasks, with any of the tasks not included in the task sequence, The tasks that are not included in the task sequence are assigned to the tasks so that the tasks of the combination having the highest correlation are consecutive. In addition to the click string and outputs the information representing the task sequence.
本発明のタスクスケジューリングプログラムは、コンピュータを、処理のまとまりであるタスクを特定するタスク特定情報を含むタスク情報を複数取得するタスク取得手段と、前記タスクでアクセスされるメモリ領域の配置を表すアクセス情報を取得し、前記タスク特定情報に関連付けてアクセス領域記憶手段に格納するタスクアクセス取得手段と、前記タスク特定情報と前記アクセス情報の組を記憶するアクセス領域記憶手段と、2つの前記タスクの前記アクセス情報から、2つの前記タスクでアクセスされるメモリ領域の重複量を表すタスク相関を算出するタスク相関算出手段と、前記タスクの実行順の列であるタスク列の最初又は最後の前記タスクと、前記タスク列に含まれない前記タスクのいずれかとの組合せ中、前記タスク相関が最も高い前記組合せの前記タスクが連続するように、前記タスク列に含まれない前記タスクを前記タスク列に加えるスケジュール手段と、前記タスク列を表す情報を出力する出力手段として動作させる。 The task scheduling program of the present invention includes a task acquisition unit that acquires a plurality of task information including task specifying information for specifying a task that is a unit of processing, and access information that indicates an arrangement of memory areas accessed by the task A task access acquisition means for acquiring and storing in the access area storage means in association with the task specification information, an access area storage means for storing a set of the task specification information and the access information, and the access of the two tasks From the information, a task correlation calculating means for calculating a task correlation representing an overlap amount of memory areas accessed by the two tasks, the first or last task in the task sequence which is a sequence of the execution order of the tasks, In combination with any of the tasks not included in the task column, the task correlation is Even as the task of high the combination is continuous, and schedule means for adding the tasks that are not included in the task sequence in the task sequence, it is operated as an output means for outputting information representing the task sequence.
本発明には、アクセスするメモリ領域が重複するタスクを含む複数のタスクを実行する場合に、キャッシュのヒット率が向上し、タスクの実行速度が高速化するという効果がある。 According to the present invention, when a plurality of tasks including tasks having overlapping memory areas to be accessed are executed, the cache hit rate is improved and the task execution speed is increased.
次に、本発明の実施形態について図面を参照して詳細に説明する。 Next, embodiments of the present invention will be described in detail with reference to the drawings.
(第1の実施の形態)
図29は、本発明の第1の実施形態のタスクスケジューリング装置1を含む、情報処理装置1000の構成の一例を表すブロック図である。
(First embodiment)
FIG. 29 is a block diagram illustrating an example of the configuration of the
図29を参照すると、情報処理装置1000は、タスク生成部1001と、タスクスケジューリング装置1と、タスク実行部1002と、プロセッサ1003と、実行結果出力部1004と、データ入力部1006と、データ記憶部1007を含む。情報処理装置1000は、動きベクトル記憶部1005を含んでいてもよい。
Referring to FIG. 29, the
データ入力部1006は、入力データを受信し、データ記憶部1007に格納する。入力データは、例えば、時系列の複数のフレームを含む動画像のデータである。
The
データ記憶部1007は、入力された入力データを記憶する。
The
タスク生成部1001は、データ記憶部1007に格納されている入力データから、プロセッサ1003が実行するためのタスクと、そのタスクを表すタスク情報の組を、複数生成する。タスクは、データ記憶部1007に格納されている入力データに対する処理のまとまりである。タスクは、例えば、動画像中のあるフレーム(符号化対象フレーム)に含まれるあるブロック(符号化対象ブロック)における動き推定の処理である。タスクは、例えば、動画像中のあるフレームに含まれるあるブロックにおける動き補償の処理であってもよい。
The
タスクスケジューリング装置1は、複数のタスクのタスク情報を受信し、後述のようにタスクの実行順序(タスク列)を決定し、タスクの実行順序を表す情報を出力する。
The
タスク実行部1002は、タスク生成部1001からタスクを受信し、タスクスケジューリング装置1からタスクの実行順序を表す情報を受信する。タスク実行部1002は、タスクスケジューリング装置1が決定した実行順序に従って、プロセッサ1003に各タスクを実行させる。
The
プロセッサ1003はタスク実行部1002からの指示に従い、タスクを実行する。プロセッサ1003はキャッシュメモリを備えている。プロセッサ1003は、タスクの実行結果のデータを、順次実行結果出力部1004に送信する。
The
実行結果出力部1004は、プロセッサ1003がタスクを実行した結果を表す情報をプロセッサ1003から受信し、出力する。タスクの種類が動き推定である場合、実行結果出力部1004は、符号化対象ブロックを特定する情報と関連付けて、算出した、その符号化対象ブロックの動きベクトルを、動きベクトル記憶部1005に格納してもよい。
The execution
動きベクトル記憶部1005は、符号化対象ブロックを特定する情報が関連付けられた、動きベクトルを記憶する。
The motion
なお、情報処理装置1000がタスクスケジューリング装置1を含まなくてもよい。この場合、タスクスケジューリング装置1が、情報処理装置1000からタスク情報を受信し、情報処理装置1000に実行順序を表す情報を送信することができるよう、タスクスケジューリング装置1と情報処理装置1000は、通信可能に接続されていればよい。また、後述の他の実施形態では、情報処理装置1000の構成は、タスクスケジューリング装置1を、各実施形態のタスクスケジューリング装置で置き換えた構成になる。
Note that the
以下では、タスクの処理が動き推定の処理である例について具体的に説明する。ただし、タスクの処理は、動き推定以外の、例えば動き補償やその他の、タスクがアクセスするメモリ領域であるアクセス領域の推定が可能な処理や、アクセス領域が既知である処理であってもよい。タスクスケジューリング装置1は、スケジューリング時にタスクのアクセス領域がわかれば、同様にしてタスクスケジューリングを行うことが可能である。タスクのアクセス領域は予測値でも良い。また、本実施形態で説明する例では、1個のタスクは1個のマクロブロックにおける処理である。タスクスケジューリング装置1は、1マクロブロックにおける処理を1タスクとしてスケジューリングを行う。
Hereinafter, an example in which the task processing is motion estimation processing will be described in detail. However, the task processing may be processing other than motion estimation, such as motion compensation or other processing capable of estimating an access area that is a memory area accessed by the task, or processing in which the access area is known. The
本発明では、タスク同士のメモリアクセス領域の重複量をタスクの相関とし、相関の高いタスクを連続して実行することでキャッシュの有効利用を図る。 In the present invention, the amount of duplication of memory access areas between tasks is used as the correlation between tasks, and the cache is effectively used by continuously executing tasks with high correlation.
図1は、本発明の第1の実施形態のタスクスケジューリング装置1の構成を表す図である。
FIG. 1 is a diagram illustrating a configuration of a
図1を参照すると、本実施形態のタスクスケジューリング装置1は、タスク取得部101と、タスクアクセス取得部102と、アクセス情報記憶部105と、タスク相関算出部103と、スケジュール部104と、出力部106とを含む。タスクスケジューリング装置1は、タスクアクセス推定部107を含んでいてもよい。
Referring to FIG. 1, a
タスク取得部101は、スケジューリングの対象となる複数のタスクのタスク情報を入力する。
The
タスクを表すタスク情報は、そのタスクを特定するタスク特定情報を含んでいればよい。タスク情報は、例えば動き推定や動き補償タスク等の、タスクの種類を表す情報を含んでいてもよい。タスク情報は、そのタスクのアクセス領域を表す情報を含んでいてもよい。アクセス領域を表す情報は、アクセス領域の配置を表す(特定する)アクセス情報であればよい。また、アクセス領域を表す情報は、アクセス領域の配置を算出するための情報であってもよい。 The task information that represents the task only needs to include task identification information that identifies the task. The task information may include information indicating the type of task such as motion estimation or motion compensation task. The task information may include information indicating the access area of the task. The information representing the access area may be access information representing (identifying) the arrangement of the access area. The information indicating the access area may be information for calculating the arrangement of the access area.
タスク情報がアクセス領域の配置を算出するための情報を含み、タスクスケジューリング装置1がタスクアクセス推定部107を含むよう構成されていてもよい。タスクアクセス推定部107は、タスク情報が含む、アクセス領域の配置を算出するための情報から、アクセス領域の配置を算出する。タスクアクセス推定部107は、タスクを特定する情報と、算出したアクセス領域の配置を表すアクセス情報を、タスクアクセス取得部102に送信する。
The task information may include information for calculating the arrangement of the access areas, and the
また、タスク情報が、アクセス領域の配置を特定するアクセス情報を含む場合、タスク取得部101が、タスク特定情報とアクセス情報をタスクアクセス取得部102に送信すればよい。タスク情報が、そのタスクのアクセス領域を表す情報を含まない場合、タスク取得部101はタスク特定情報をタスクアクセス取得部102に送信すればよい。
Further, when the task information includes access information for specifying the arrangement of the access area, the
タスクアクセス取得部102は、タスク取得部101がタスク情報を取得したタスクの、アクセス情報を取得する。タスクアクセス取得部102は、タスク特定情報と、アクセスアクセス情報を、対応付けてアクセス領域記憶部105に格納する。
The task
アクセス領域記憶部105は、タスク特定情報とアクセス情報の組を記憶する。
The access
タスク相関算出部103は、アクセス領域記憶部105が記憶するアクセス情報から、2つのタスク間の相関(タスク相関)を算出する。タスク相関算出部103は、2つのタスク間の相関を、例えば、それらのタスクのアクセス領域の重複部分のサイズにより決定すればよい。
The task
スケジュール部104は、タスク間の相関が高い2つのタスクが連続して実行されるよう、タスクの実行順序を決定する。
The
出力部106は、決定した実行順序を表す情報を出力する。
The
次に、本実施形態の動作について、図面を参照して詳細に説明する。 Next, the operation of the present embodiment will be described in detail with reference to the drawings.
図2は、本実施形態のタスクスケジューリング装置1の動作を表すフローチャートである。
FIG. 2 is a flowchart showing the operation of the
また、図3は、タスクのアクセス領域の例を表す図である。以下で説明する動作の例はは、タスクスケジューリング装置1が、図3のような範囲にアクセスするタスクA、B、Cをスケジューリングする場合の動作の例である。
FIG. 3 is a diagram illustrating an example of a task access area. The example of the operation described below is an example of the operation when the
まず、タスク取得部101がタスク、例えばタスクAのタスク情報を取得する(ステップS101)。
First, the
前述のように、タスク情報が、アクセス領域の配置を表すアクセス情報を含んでいてもよい。この場合、タスク取得部101が、タスクアクセス取得部102にアクセス情報を送信すればよい。また、タスク情報がアクセス領域の配置を算出するための情報を含んでいてもよい。タスク情報がアクセス領域の配置を算出するための情報を含む場合、ステップS101の動作の後に、タスクアクセス推定部107が、タスク情報が含むアクセス領域の配置を算出するための情報から、アクセス領域の配置を算出する。そして、タスクアクセス推定部107が、タスクアクセス取得部102にアクセス領域の配置を表すアクセス情報を送信すればよい。
As described above, the task information may include access information indicating the arrangement of access areas. In this case, the
アクセス領域の配置は、例えば、メモリ上に配置され、タスクがアクセスして利用するデータが、例えば画像のように二次元のデータで、アクセス領域が矩形で表されるのであれば、メモリ上におけるアクセス領域の左上と右下の座標であればよい。メモリ上に配置されている、タスクがアクセスして利用するデータが、一次元のデータであれば、アクセス領域の配置は、データの始点のアドレスと終点のアドレスや、データの始点のアドレスとデータ長であればよい。 For example, if the access area is arranged on the memory and the data accessed and used by the task is two-dimensional data such as an image and the access area is represented by a rectangle, the access area is arranged on the memory. The coordinates may be the upper left and lower right coordinates of the access area. If the data that the task accesses and uses in the memory is one-dimensional data, the access area can be arranged at the start and end addresses of the data, or the start and end addresses of the data. It only needs to be long.
入力データが、2次元の画像であるフレームが複数、時系列で並ぶ動画像のデータであり、タスクの種類が動き推定であれば、タスクは、符号化対象フレーム上の符号化対象ブロックにおける、参照フレーム上のデータを参照して行う処理である。この場合、アクセス領域の配置を表す情報は、参照フレームを特定する情報と、参照フレームにおけるアクセス領域の例えば左上と右下の座標であればよい。この場合、一つの動画像に含まれる各フレームは同じ大きさであり、各フレーム内における座標は、各フレームを重ねた場合に重なる点が原点であり、座標軸が同一方向である座標系における座標であればよい。例えば、全てのフレームで、左上の角の点が原点であり、右方向がx軸方向、下方向がy軸方向である座標系で、フレーム内の点の座標が表されていればよい。アクセス領域の配置を表す情報は、参照フレームにおけるアクセス領域が格納されているメモリのアドレスを表す情報であってもよい。 If the input data is a moving image data in which a plurality of frames that are two-dimensional images are arranged in time series, and the type of task is motion estimation, the task is performed in the encoding target block on the encoding target frame. This process is performed by referring to data on the reference frame. In this case, the information indicating the location of the access area may be information for specifying the reference frame and, for example, the upper left and lower right coordinates of the access area in the reference frame. In this case, each frame included in one moving image has the same size, and the coordinates in each frame are coordinates in a coordinate system in which the overlapping point is the origin when the frames are overlapped and the coordinate axes are in the same direction. If it is. For example, in all frames, the coordinates of the points in the frame may be represented by a coordinate system in which the upper left corner point is the origin, the right direction is the x-axis direction, and the lower direction is the y-axis direction. The information indicating the access area arrangement may be information indicating the address of the memory in which the access area in the reference frame is stored.
また、タスク情報がアクセス領域の配置を算出するための情報を含む場合、アクセス領域の配置を算出するための情報は、例えば、符号化対象フレーム上の符号化対象ブロックの位置を表す座標と、参照フレームを特定する情報であればよい。アクセス領域の配置を算出するための情報は、予測ベクトルを含んでいてもよい。あるいは、タスクアクセス推定部107が、例えば符号化対象ブロックの左と上と右上のブロックにおける、探索の結果得られている動きベクトルのメディアンを予測ベクトルとする方法など、既存の任意の方法で、予測ベクトルを算出してもよい。符号化対象ブロックの位置を表す座標は、符号化対象ブロックの、例えば、符号化対象フレームにおける左上の点の座標であればよい。タスクは、参照フレーム上の、符号化対象ブロックの位置を表す座標と同じ座標から、予測ベクトル分移動した点を中心とした探索範囲を探索する。言い換えると、タスクは、探索範囲に対応するメモリ領域(アクセス領域)にアクセスする。探索範囲の大きさは、あらかじめ決められた大きさであればよい。
Further, when the task information includes information for calculating the arrangement of the access area, the information for calculating the arrangement of the access area includes, for example, coordinates indicating the position of the encoding target block on the encoding target frame, Any information that identifies the reference frame may be used. Information for calculating the arrangement of access areas may include a prediction vector. Alternatively, the task
この場合、タスクアクセス推定部107は、参照フレームを特定する情報と、符号化対象ブロックの位置を表す座標と、予測ベクトルから、アクセス領域の配置を算出すればよい。
In this case, the task
次に、タスクアクセス取得部102が、タスク情報を取得したタスク(例えば、前述のタスクA)のアクセス情報を取得し(ステップS102)、そのタスクのタスク特定情報と取得したアクセス情報を関連付けて、アクセス領域記憶部105に格納する。
Next, the task
タスクアクセス取得部102は、タスク取得部101やタスクアクセス推定部107からアクセス情報を取得する。タスクアクセス取得部102は、例えば、タスク生成部1001が算出し、図示はしていないが、各タスクのアクセス情報を格納するための記憶部に格納しておいたアクセス情報を、その記憶部から読み出してもよい。
The task
タスクスケジューリング装置1は、タスクアクセス取得部102が全てのタスクのアクセス情報を取得するまで(ステップS103、No)、ステップS101からS102の動作を繰り返す。
The
タスクアクセス取得部102が全てのタスクのアクセス情報の取得を完了すると(ステップS103、Yes)、タスク相関算出部103がタスク間の相関を算出する(ステップS104)。
When the task
タスク相関算出部103は、まず、アクセス領域記憶部105にアクセス情報が格納されているタスク2つの組合せ全ての相関を、アクセス領域記憶部105から読み出した、アクセス情報から算出すればよい。
First, the task
アクセス情報が、例えばアクセス領域の左上と右下の点の座標などの、アクセス領域の位置と範囲を表す情報であれば、タスク相関算出部103は、二つのタスクのアクセス情報から、それらのアクセス領域の重複量を算出すればよい。重複量は例えば重複部分のメモリのサイズである。タスク相関算出部103は、算出した重複量を、対応する二つのタスクの相関にすればよい。アクセス情報は、アクセス領域の位置を表す情報(例えばアクセス領域の中心を表す座標)であってもよい。そして、タスク相関算出部103は、後述の第2の実施形態のように、そのアクセス情報から二つのタスクの重複量の程度を表す値を算出し、タスクの相関としてもよい。
If the access information is information indicating the position and range of the access area, such as the coordinates of the upper left and lower right points of the access area, for example, the task
タスクの相関がアクセス領域の重複量である場合、アクセス領域が図3の領域であるタスクの例では、タスクAとタスクB、タスクBとタスクCの相関は0である。また、タスクAとタスクCの相関は6である。 When the task correlation is an overlapping amount of access areas, in the example of the task in which the access area is the area of FIG. 3, the correlation between task A and task B and task B and task C is zero. The correlation between task A and task C is 6.
次に、スケジュール部104が、相関が高いタスクの組が連続するようにタスクの実行順序を決定する(ステップS105)。
Next, the
まず、スケジュール部104は、例えば、相関が最も高いタスクの組を選択し、それらの二つのタスクの実行順序を決める。スケジュール部104は、相関が最も高い二つのタスクの実行順序を、どのように決めてもよい。スケジュール部104は、実行順序を決めたタスクをスケジュール済みとする。
First, for example, the
全てのタスクのスケジューリングが終了していない場合(ステップS106、No)、スケジュール部104は、既にスケジューリング済みとしたタスクとの相関が最も高いタスクを選択する(ステップS105)。スケジュール部104は、相関が高いタスクが連続して実行されるようそのタスクの実行順序を決める。
When the scheduling of all tasks has not been completed (No at Step S106), the
スケジュール部104は、選択しスケジューリング済みとしたタスクが存在する場合、最後に選択しスケジューリング済みとしたタスクとの相関が最も高いタスクを、選択すればよい。スケジュール部104は、相関が最も高い二つのタスクの次のタスクを選択する際には、二つのタスクのいずれかと最も相関が高いタスクを選択すればよい。そして、スケジュール部104は、既に選択済みの二つのタスクのうち、次に選択したタスクとの相関が高い方のタスクを後に実行するよう実行順序を決めればよい。
When there is a task that has been selected and scheduled, the
図3の例では、タスクAとタスクCの相関が最も高く、タスクAとタスクB、タスクBとタスクCの間の相関は0である。この場合、スケジュール部104が決定する実行順序は、A、C、Bの順またはC、A、Bの順となる。
In the example of FIG. 3, the correlation between task A and task C is the highest, and the correlation between task A and task B and task B and task C is zero. In this case, the execution order determined by the
図4は、タスクのアクセス領域の第2の例を表す図である。この例の場合、タスクA、B、Cのアクセス領域は、図3の例と同じである。図4の例では、さらに、タスクCとの相関が1であるタスクDが存在する。タスクAとタスクDの間の相関と、タスクBとタスクDの間の相関は、それぞれ0である。 FIG. 4 is a diagram illustrating a second example of task access areas. In this example, the access areas of tasks A, B, and C are the same as in the example of FIG. In the example of FIG. 4, there is a task D whose correlation with the task C is 1. The correlation between task A and task D and the correlation between task B and task D are 0 respectively.
この例の場合、タスクAとタスクCの間の相関が最も高く、次に、タスクCとタスクDの間の相関が高い。従って、スケジュール部104は、まずタスクAとタスクCを選択し、スケジューリング済みとする。スケジューリング部104は、次に、タスクAとの間の相関又はタスクCとの間の相関が、まだ選択されていないタスクの中で最も高いタスクDを選択する。タスクAとタスクDの相関よりタスクCとタスクDの相関の方が高いので、スケジューリング部104は、タスクAとタスクCに加えて、タスクCとタスクDも連続して実行されるように、タスクA、タスクC、タスクDの実行順序を決定する。スケジューリング部104は、タスクA、タスクC、タスクDの順になるよう、実行順序を決めればよい。次に、スケジューリング部104は、タスクAとの間の相関又はタスクCとの間の相関がタスクDより低いタスクBを選択し、タスクBが最後に実行されるよう実行順序を決めればよい。
In this example, the correlation between task A and task C is the highest, and then the correlation between task C and task D is high. Therefore, the
スケジュール部104は、最後に選択しスケジューリング済みとしたタスクとの間の相関だけでなく、他のスケジューリング済みのタスクとの間の相関を使用して、タスクの選択を行ってもよい。スケジュール部104は、例えば、タスク処理順におけるタスク間の距離(時間)に応じて、新しくスケジュールされたタスクとの相関ほど影響が大きくなる重み係数算出してもよい。そして、スケジュール部104は、算出した係数をスケジューリング済みの各タスクとの間の相関に掛けた値の和の大きさによって、タスクを選択してもよい。
The
また、スケジュール部104は、既に実行順序を決めているタスクのうち、実行順序が最初のタスク又は最後のタスクとの間の相関が、最も高いタスクを選択してもよい。そして、スケジュール部104は、選択したタスクと、実行順序が最初のタスクとの間の相関が最も高い場合、その実行順序が最初のタスクの前に選択したタスクを実行するように、実行順序を決めてもよい。また、スケジュール部104は、選択したタスクと、実行順序が最後のタスクとの間の相関が最も高い場合、その実行順序が最後のタスクの後に選択したタスクを実行するように、実行順序を決めてもよい。
In addition, the
スケジューリング部104が全てのタスクを選択し、全てのタスクの実行順序をの決定が完了すると(ステップS106、Yes)、出力部106は、実行順序を表す情報を出力する(ステップS107)。
When the
以上で説明した本実施形態には、アクセスするメモリ領域が重複するタスクを含む複数のタスクを実行する場合に、キャッシュのヒット率が向上し、タスクの実行速度が高速化するという効果がある。 The present embodiment described above has an effect of improving the cache hit rate and increasing the task execution speed when executing a plurality of tasks including tasks having overlapping memory areas to be accessed.
その理由は、タスク相関算出部103が算出した、タスクがアクセスするメモリ領域の重複の大きさを表す、タスク間の相関が高いタスクの組ほど優先的に、連続して実行されるよう、スケジュール部104がタスクの実行順序を決めるからである。スケジュール部104が決めた実行順序に従ってプロセッサがタスクを実行することで、キャッシュヒット率が向上してキャッシュメモリの有効利用が可能になる。その結果、タスクの処理速度が高速化する。
The reason is that the task
例えば、特許文献3の技術で、図3の例の複数のタスクをスケジューリングした場合、アクセスするメモリ領域が重複するタスクAとタスクCが連続して実行されるよう実行順序を決めることが出来ない。一方、本実施形態のタスクスケジューリング装置で同様に図3の例のタスクのスケジューリングを行った場合、タスクの実行順序は、アクセスするメモリ領域が重複するタスクAとタスクCが連続して実行される順番になる。その結果、キャッシュデータの有効利用が可能になり、キャッシュのヒット率が向上する。
For example, when a plurality of tasks in the example of FIG. 3 is scheduled with the technique of
(第2の実施の形態)
次に、本発明の第2の実施形態について、図面を参照して詳細に説明する。
(Second Embodiment)
Next, a second embodiment of the present invention will be described in detail with reference to the drawings.
以下、タスクの種類は動き推定である場合について説明を行う。タスクの種類が動き推定である場合に、後述するように、本実施形態のタスク相関算出部103は、動き推定に用いる情報の一つである、各タスクの予測ベクトル情報を利用してタスク間の相関を算出する。タスクの種類は、動き補償であってもよい。タスクの種類が動き補償処理の場合は、以下の説明における予測ベクトルを動きベクトルと読み替えればよい。
Hereinafter, the case where the task type is motion estimation will be described. When the task type is motion estimation, as will be described later, the task
本実施形態のタスクスケジューリング装置1の構成は、図1の第1の実施形態のタスクスケジューリング装置1の構成と同じである。
The configuration of the
ただし、第1の実施形態における、アクセス領域の配置を算出するための情報は、符号化対象ブロックの位置を表す座標(例えば符号化対象ブロックの左上角の点の座標)と、タスクの種類が動き推定である場合は予測ベクトルである。アクセス領域の配置を表すアクセス情報は、符号化対象ブロックの位置を表す座標から予測ベクトル分移動した点である、予測ベクトル指点の座標である。タスクの種類が動き補償である場合は、本実施形態の、予測ベクトルの算出に関する説明を除く説明の、予測ベクトルを動きベクトルと読み替えればよい。 However, in the first embodiment, the information for calculating the arrangement of the access area includes coordinates indicating the position of the encoding target block (for example, the coordinates of the upper left corner point of the encoding target block) and the task type. In the case of motion estimation, it is a prediction vector. The access information indicating the arrangement of the access area is the coordinates of the prediction vector finger point, which is the point moved by the prediction vector from the coordinates indicating the position of the encoding target block. When the type of task is motion compensation, the prediction vector in the present embodiment, excluding the description related to calculation of the prediction vector, may be read as the motion vector.
以下では、第1の実施形態との相違点を中心に説明を行う。 Below, it demonstrates centering around difference with 1st Embodiment.
アクセス領域推定部107は、予測ベクトルを取得し、予測ベクトルと、符号化対象ブロックの位置を表す座標から、予測ベクトル指点の座標を算出する。アクセス領域推定部107は、予測ベクトル指点の座標を、アクセス情報とする。タスク情報が予測ベクトルを含む場合、アクセス領域推定部107は、タスク情報から予測ベクトルを取得する。予測ベクトルが図示しない記憶部に格納されている場合、アクセス領域推定部107は、その記憶部から予測ベクトルを取得する。タスクが動き推定である場合、アクセス領域推定部107は、予測ベクトルをタスク情報等から取得せずに、算出してもよい。アクセス領域推定部107は、符号化対象ブロックの予測ベクトルの算出に必要な、符号化対象ブロックの周辺の既に算出済みである動きベクトルを取得し、予測ベクトルを算出すればよい。既に算出済みである動きベクトルは、例えば、前述の情報処理装置1000が含む、既に算出済みの動きベクトルを格納するための、動きベクトル記憶部1005に格納されていればよい。アクセス領域推定部107は、動きベクトル記憶部1005から、必要な動きベクトルを読み出せばよい。
The access
タスクアクセス取得部102は、予測ベクトル指点の座標であるアクセス情報を取得する。
The task
アクセス領域記憶部105は、タスク特定情報と、予測ベクトル指点の座標であるアクセス情報を、関連付けて記憶する。
The access
タスク相関算出部103は、2つのタスクの予測ベクトル指点間の距離を算出し、それらの2つのタスクの相関を表す値にする。
The task
2つのタスクのアクセス領域の重複量は大きいほど、それらの2つのタスクの予測ベクトル指点間の距離が近いはずである。従って、本実施形態では、タスク間の相関は高いほど、タスク間の相関を表す値が小さい。このように、タスク間の相関の高さと、タスク間の相関を表す値の大きさとの関係は、必ずしも、タスク間の相関が高いほどその相関を表す値が大きいという関係でなくてもよい。タスク間の相関の高さとタスク間の相関を表す値の大きさとの関係は、相関を表す値の算出法に応じてあらかじめ定まっていればよい。 The larger the overlapping amount of the access areas of two tasks, the closer the distance between the predicted vector finger points of those two tasks should be. Therefore, in the present embodiment, the higher the correlation between tasks, the smaller the value representing the correlation between tasks. Thus, the relationship between the high correlation between tasks and the magnitude of the value representing the correlation between tasks does not necessarily have to be such a relationship that the value representing the correlation increases as the correlation between tasks increases. The relationship between the height of the correlation between tasks and the magnitude of the value representing the correlation between tasks may be determined in advance according to the calculation method of the value representing the correlation.
本実施形態のスケジュール部104は、相関を表す値が小さく、相関が高い2つのタスクが連続して実行されるよう、タスクの実行順序を決定する。
The
次に、本実施形態の動作について、図面を参照して詳細に説明する。 Next, the operation of the present embodiment will be described in detail with reference to the drawings.
図5は、本実施形態のタスクスケジューリング装置1の動作の例を表すフローチャートである。第1の実施形態の動作を表す図2と比較すると、図5の動作は、図2の動作のステップS102をステップS202に、ステップS104をステップS204に、ステップS105をステップS205に置き換えた動作である。図2と同じ符号が付与されたステップの動作は、第1の実施形態の、その符号が付与されたステップの動作と同じであるので、説明を省略する。
FIG. 5 is a flowchart showing an example of the operation of the
図6は、複数のタスクの予測ベクトルの例を表す図である。それぞれの矢印の終点が、予測ベクトル指点である。A、B、Cが付された矢印が、それぞれタスクA、タスクB、タスクCの予測ベクトルを表す。 FIG. 6 is a diagram illustrating an example of prediction vectors of a plurality of tasks. The end point of each arrow is a prediction vector finger point. Arrows to which A, B, and C are attached represent prediction vectors of task A, task B, and task C, respectively.
以下の説明では、タスクスケジューリング装置1が、図6に予測ベクトルを示した各タスクの実行順序を決める場合の動作例についても説明を行う。
In the following description, an operation example when the
ステップS101の後、アクセス領域推定部107がアクセス領域の配置を算出する場合、アクセス領域推定部107は、予測ベクトル指点の座標を算出する。
After step S101, when the access
タスクアクセス取得部102は、ステップS101でタスク情報を取得したタスクの、予測ベクトル指点の座標であるアクセス情報を取得する(ステップS202)。
The task
タスクアクセス取得部102は、ステップS101でタスク情報を取得したタスクの、タスク特定情報とアクセス情報(本実施形態では予測ベクトル指点の座標)を関連付けて、アクセス領域記憶部105に格納する。
The task
前タスクの、タスク特定情報とアクセス情報の組の、アクセス領域記憶部105への格納が終了すると(ステップS103、Yes)、タスク相関算出部103は、2つのタスクの組の、予測ベクトル指点間距離を算出する(ステップS204)。タスク相関算出部103は、算出した予測ベクトル指点間距離を、対応する2つのタスク間の相関(相関を表す値)とする。前述のように、本実施形態では、タスク間の相関が高いほど、相関を表す値は小さい。
When the storage of the combination of task identification information and access information of the previous task in the access
タスク相関算出部103は、まず、タスク取得部101がタスク情報を取得したタスクから選択した2つのタスクの組全ての、予測ベクトル指点間距離を算出すればよい。
First, the task
図6のタスクの例の場合、タスクAとタスクBの予測ベクトル指点間距離は5、タスクBとタスクCの予測ベクトル指点間距離は√34(約5.8)、タスクAとタスクCの予測ベクトル指点間距離は√5(約2.2)である。 In the case of the task example of FIG. 6, the distance between the predicted vector finger points of task A and task B is 5, the distance between the predicted vector finger points of task B and task C is √34 (about 5.8), The distance between the predicted vector finger points is √5 (about 2.2).
次に、スケジュール部104が、最も相関が高い2つのタスクが連続して実行されるよう、それらのタスクの実行順序を決める(S205)。前述のように、相関を表す値である予測ベクトル指点間距離が小さいほど、対応する2つのタスク間の相関が高いので、スケジュール部104は、最も予測ベクトル指点間距離が小さいタスクの組を選択する。
Next, the
図6のタスクの例の場合、タスクAとタスクCの予測ベクトル指点間距離が最も小さいので、スケジュール部104はタスクAとタスクCを選択し、スケジューリング済みとする。
In the case of the example of the task in FIG. 6, since the distance between the predicted vector finger points of task A and task C is the smallest, the
スケジュール部104が全てのタスクを選択してスケジューリング済みとしていない場合(ステップS106、No)、スケジュール部104は、既にスケジューリング済みのタスクとの間の相関が最も高いタスクを選択する(ステップS205)。スケジュール部104は、選択したタスクをスケジューリング済みにする。スケジュール部104は、既に選択したタスクの中で最初に実行されるタスクと最初に実行されるタスクのうち、最後に選択したタスクとの相関が高い方を、最後に選択したタスクと連続して実行されるようタスクの実行順序を決める。スケジュール部104は、既に選択したタスクの中で最初に実行されるタスクと間の相関が、最後に実行されるタスクと最後に選択したタスクと間の相関より高い場合、最後に選択したタスクの実行順序を最初にする。逆の場合、スケジュール部104は、最後に選択したタスクの実行順序を最後にする。
When the
図6のタスクの例の場合、タスクAとタスクBの予測ベクトル指点間距離より、タスクBとタスクCの予測ベクトル指点間距離が小さい。従って、スケジュール部104は、既に選択したタスクAとタスクCの実行順序がタスクA、タスクCの順であるなら、タスクBの実行順序をタスクAの前(最初)にし、タスクAとタスクBが連続して実行されるようにする。
In the example of the task in FIG. 6, the predicted vector finger point distance between task B and task C is smaller than the predicted vector finger point distance between task A and task B. Therefore, if the execution order of the task A and task C that have already been selected is the order of task A and task C, the
ステップS205におけるスケジュール部104の動作は、相関の高さを予測ベクトル指点間距離の小ささで判定する点以外、第1の実施形態のステップS105における動作と同じである。
The operation of the
なお、ステップS205で、スケジュール部104は、予測ベクトル指点と既に選択したタスクの予測ベクトル指点の重心との距離が最も小さいタスクを選択してもよい。その場合、まだ全てのタスクを選択していない場合(ステップS106、No)、タスクスケジューリング装置1はステップS204の動作に戻ってもよい。
In step S205, the
そして、ステップS204では、タスク相関算出部103は、既に選択したタスクの予測ベクトル指点の重心を算出し、算出した重心と、まだ選択していないタスクの予測ベクトル指点との距離を算出すればよい。
In step S204, the task
スケジュール部104が全てのタスクの実行順序を決定すると(ステップS106、Yes)、出力部106は、実行順序を表す情報を出力する(ステップS107)。
When the
以上で説明した本実施形態には、第1の実施形態の効果に加えて、タスクの実行順序を決定するための演算量を削減することができるという効果がある。 In addition to the effect of the first embodiment, the present embodiment described above has an effect that the amount of calculation for determining the task execution order can be reduced.
その理由は、スケジュール部104が、予測ベクトル指点間距離により、相関の高さを判定するからである。そのため、アクセス領域の重複量を算出する必要が無い。さらに、相関の算出に、タスクがアクセスするメモリ領域であるアクセス領域の配置を表す情報が必要も無い。アクセス領域の配置を表す情報が必要であれば、タスクスケジューリング装置1がアクセス領域の配置を算出しない場合であっても、例えば情報処理装置1000のタスク生成部1001などの他の処理部が、アクセス領域の配置を算出する必要がある。従って、本実施形態のようにタスクスケジューリング装置を構成することにより、タスクの実行順序を決定するための処理の簡単化が可能になり、その演算量が削減される。
The reason is that the
(第3の実施の形態)
次に、本発明の第3の実施形態について、図面を参照して詳細に説明する。
(Third embodiment)
Next, a third embodiment of the present invention will be described in detail with reference to the drawings.
図7は、本実施形態のタスクスケジューリング装置3の構成を表す図である。
FIG. 7 is a diagram illustrating the configuration of the
図7を参照すると、本実施形態のタスクスケジューリング装置3は、図1の第1の実施形態のタスクスケジューリング装置1の構成に加えて、予測ベクトル精度推定部303と、アクセス領域修正部304を含む。
Referring to FIG. 7, the
動き推定では、予測ベクトルを中心として動きベクトルの探索が行われる。動きベクトルの探索範囲の上限は設定により決められているが、適応的な探索アルゴリズムを用いる場合には実際に探索する範囲は一定ではない。予測ベクトルと動きベクトルが近い、つまり予測ベクトルの精度が高いことがわかっていれば、探索量は少なく探索範囲即ちメモリアクセス範囲も狭くてよい。反対に予測ベクトルの精度が低いことがわかっていれば、メモリアクセス範囲は広い必要がある。そこで、本実施の形態では、予測ベクトルの精度に応じてメモリアクセス範囲サイズを変更する。 In motion estimation, a motion vector search is performed centering on a prediction vector. Although the upper limit of the motion vector search range is determined by the setting, when an adaptive search algorithm is used, the actual search range is not constant. If it is known that the prediction vector is close to the motion vector, that is, the accuracy of the prediction vector is high, the search amount is small and the search range, that is, the memory access range may be narrow. On the other hand, if the accuracy of the prediction vector is known to be low, the memory access range needs to be wide. Therefore, in the present embodiment, the memory access range size is changed according to the accuracy of the prediction vector.
予測ベクトルの精度の推定は、予測ベクトルの算出に用いた周囲の動きベクトルを比較することで実行することが可能である。周囲のブロックの動きベクトルの向き・大きさが似ていれば、符号化対象ブロックの動きベクトルも似ていることが予想される。従ってこの場合、予測ベクトルの精度は高いと推定される。 The prediction vector accuracy can be estimated by comparing the surrounding motion vectors used for calculating the prediction vector. If the direction and size of the motion vectors of the surrounding blocks are similar, it is expected that the motion vectors of the encoding target blocks are also similar. Therefore, in this case, the accuracy of the prediction vector is estimated to be high.
予測ベクトル精度推定部303は、符号化対象ブロックの周囲のブロックの、既に算出した動きベクトルの情報を取得する。予測ベクトル精度推定部303は、取得した動きベクトルの情報から、符号化対象ブロックの予測ベクトルの精度を推定する。
The prediction vector
アクセス領域修正部304は、予測ベクトル精度推定部303が推定した予測ベクトルの精度に応じて、アクセス領域記憶部105に格納されているアクセス領域の配置を修正する。アクセス領域修正部304は、アクセス領域が予測ベクトル指点を中心とした所定の大きさの領域である場合、領域の大きさを予測ベクトルの精度に応じて修正すればよい。
The access
本実施形態の他の構成要素は、同一の符号を付した第1の実施形態の構成要素と同じなので、説明を省略する。 The other components of the present embodiment are the same as the components of the first embodiment given the same reference numerals, and thus description thereof is omitted.
なお、アクセス領域修正部304が、アクセス領域記億部105に格納されているアクセス領域の配置を修正するのではなく、アクセス領域推定部107が、予測ベクトルの精度に応じてアクセス領域の大きさを決定し、アクセス領域の配置を推定してもよい。
The access
次に、本発明のタスクスケジューリング装置3の動作について、図面を参照して詳細に説明する。
Next, the operation of the
図8は本実施形態のタスクスケジューリング装置3の動作を表すフローチャートである。図8を図1の第1の実施形態のタスクスケジューリング装置1の動作を表すフローチャートと比較すると、ステップS102とステップS103の間にステップS304〜ステップS306が存在する点が異なる。
FIG. 8 is a flowchart showing the operation of the
ステップS101、S102の動作は、第1の実施形態の同じ符号のステップの動作と同じなので説明を省略する。 Since the operations in steps S101 and S102 are the same as those in the steps having the same reference numerals in the first embodiment, description thereof is omitted.
予測ベクトル精度測定部303は、タスク取得部101から、ステップS101でタスク取得部101がタスク情報を取得したタスクの、タスク特定情報と符号化対象ブロックの位置を表す情報を受信する。予測ベクトル精度測定部303は、その符号化対象ブロックの周囲のブロックの動きベクトルの情報を取得する(ステップS304)。
The predicted vector
予測ベクトル精度推定部303は、前述の動きベクトル記憶部1005から、動きベクトルの情報を取得すればよい。予測ベクトル精度推定部303が情報を取得する動きベクトルは、符号化対象ブロックの予測ベクトルの算出に使われる動きベクトルであればよい。前述のように、例えばH.264では、符号化対象ブロックの左と上と右上のブロックの動きベクトルを使って、その符号化対象ブロックの動きベクトルが算出される。この場合、予測ベクトル精度推定部303は、符号化対象ブロックの左と上と右上のブロックの動きベクトルを取得すればよい。予測ベクトル精度推定部303は、予測ベクトルの算出に使われる動きベクトル以外の、周囲のブロックの算出済みの動きベクトルを取得してもよい。
The prediction vector
予測ベクトル精度推定部303は、取得した動きベクトルから、符号化対象ブロックの予測ベクトルの精度を推定する(ステップS305)。
The prediction vector
予測ベクトル精度推定部303は、予測ベクトルの精度の推定を、取得した動きベクトルのばらつきの大きさにより行えばよい。例えば、予測ベクトル精度推定部303は、取得した動きベクトルのx方向・y方向それぞれの分散を算出すればよい。周囲のベクトルのx方向・y方向それぞれの分散が小さいほど、予測ベクトルの精度が高いことになる。予測ベクトル精度推定部303は、更に、算出したx方向・y方向の分散値の例えば対数をとって正規化した値を算出すればよい。予測ベクトル精度推定部303は、算出した値をタスクアクセス領域修正のための係数(修正係数)にすればよい。予測ベクトル精度推定部303は、タスク特定情報と、x方向・y方向の2つの修正係数を、アクセス領域修正部304に送信する。
The prediction vector
修正係数の詳細な算出手順は、例えば次の通りである。予測ベクトル精度推定部303は、まず、動きベクトルのx方向・y方向それぞれの分散を算出する。次に、予測ベクトル精度推定部303は、算出したx方向・y方向それぞれの分散の対数を算出する。対数の底は適宜決めておけばよい。また、分散が1未満の値になる可能性があるなら、予測ベクトル精度推定部303は、分散の値に1を足してから対数を算出すればよい。予測ベクトル精度推定部303は、算出したx方向・y方向それぞれの分散の対数が所定値以上であれば修正係数を1に、所定値未満であれば、算出したx方向・y方向それぞれの分散の対数を所定値で割った値をx方向・y方向それぞれの修正係数にすればよい。
The detailed calculation procedure of the correction coefficient is, for example, as follows. The prediction vector
各タスクの処理において、そのタスクの符号化対象ブロックの予測ベクトルの精度に応じた探索範囲の変更を行う場合、その変更を行うアルゴリズムが既知であるなら、予測ベクトル精度推定部303は、そのアルゴリズムにより修正係数を算出すればよい。すなわち、予測ベクトル精度推定部303は、探索範囲変更前後の、x方向の探索範囲の比と、y方向の探索範囲の比を算出し、それぞれx方向の修正係数と、y方向の修正係数にすればよい。
In the process of each task, when changing the search range according to the accuracy of the prediction vector of the encoding target block of the task, if the algorithm for the change is known, the prediction vector
アクセス領域修正部304は、アクセス領域記憶部105に格納されている、受信したタスク特定情報に対応するアクセス情報を修正する(ステップS306)。
The access
アクセス情報が表すアクセス領域は、タスクアクセス取得部102がアクセス領域記憶部105に格納した時点では、アクセス領域は予測ベクトル指点を中心とした、あらかじめ定められた所定の大きさの領域である。アクセス領域修正部304は、受信したx方向・y方向の修正係数を、それぞれ、x方向・y方向の領域の大きさに掛ければよい。前述のように算出した修正係数をx方向・y方向の領域の大きさに掛けた場合、周囲のブロックの動きベクトルの分散が小さければ小さいほど、アクセス領域は狭くなる。なお、修正係数は、周囲のブロックの動きベクトルの分散が小さければ小さいほど、アクセス領域は狭くなる値であれば、前述のように算出した値でなくてもよい。また、予測ベクトル精度修正部303は、精度の程度によらず、アクセス領域の大きさがあらかじめ定められた所定の大きさを超えないように、修正係数の大きさに上限を設定しておけばよい。予測ベクトル精度修正部303は、例えば上述の例のように、精度の評価値(上述の例では分散あるいは分散の対数)が、所定の範囲を、精度が悪い方に超えた場合、修正係数を1に設定すればよい。
The access area represented by the access information is an area having a predetermined size centered on the predicted vector finger point when the task
ステップS103〜S107の動作は、第1の実施形態の同じ符号のステップの動作と同じなので説明を省略する。 Since the operations in steps S103 to S107 are the same as those in the steps having the same reference numerals in the first embodiment, description thereof will be omitted.
また、タスクスケジューリング装置3は、アクセス領域の配置を算出するアクセス領域推定部107を含み、予測ベクトル精度推定部303は、修正係数をアクセス領域推定部107に送信する構成であってもよい。アクセス領域推定部107は、あらかじめ定められた所定の大きさに受信した修正係数を掛けて、アクセス領域の大きさにしてもよい。この場合、アクセス領域修正部304は、アクセス情報の修正を行わない。更に、アクセス領域修正部304は存在しなくてよい。
Further, the
次に、本実施の形態の効果について説明する。 Next, the effect of this embodiment will be described.
本実施形態には、タスクスケジューリング装置3が決定した実行順序でタスクを実行した場合に、第1の実施形態の効果に加えて、タスクを実行する際のキャッシュヒット率が更に向上し、タスクの実行速度が更に向上するという効果がある。
In the present embodiment, when the tasks are executed in the execution order determined by the
その理由は、予測ベクトル精度推定部303が予測ベクトルの精度を表す値を算出し、アクセス領域修正部304が、予測ベクトルの精度が高いほどアクセス領域の大きさが小さくなるよう、アクセス領域の大きさを修正するからである。
The reason is that the prediction vector
動き推定では、タスクは設定された探索範囲全体に対して必ずアクセスするとは限らない。例えば、タスクが、設定された探索範囲全体に対して、符号化対象ブロックと類似するブロックの探索を完了する前に、類似度が所定の基準以上であるブロックが発見された場合に、そのブロックの位置を動きベクトルの指点として検出し、探索を終了する場合がある。このような場合、タスクが実際にアクセスする範囲は、探索範囲全体のうち、予測ベクトル指点である探索開始点から、検出した動きベクトル指点までの探索経路でアクセスする範囲だけである。従って、予測ベクトルの精度が高く、予測ベクトル指点と動きベクトル指点が近い場合は、タスクがアクセスする範囲は狭くなる。一方、予測ベクトルの精度が低く、予測ベクトル指点と動きベクトル指点が遠い場合は、タスクがアクセスする範囲は広くなる。 In motion estimation, a task does not always access the entire set search range. For example, if a block with a similarity greater than or equal to a predetermined criterion is found before the task completes a search for blocks similar to the encoding target block for the entire set search range, the block May be detected as the finger point of the motion vector, and the search may be terminated. In such a case, the range that the task actually accesses is only the range that is accessed through the search path from the search start point that is the predicted vector finger point to the detected motion vector finger point, in the entire search range. Therefore, when the accuracy of the prediction vector is high and the prediction vector finger point is close to the motion vector finger point, the range that the task accesses becomes narrow. On the other hand, when the accuracy of the prediction vector is low and the prediction vector finger point is far from the motion vector finger point, the range that the task accesses becomes wide.
本実施の形態のアクセス領域修正部304は、アクセス領域が、あらかじめ設定された探索範囲全体を探索した場合にアクセスする範囲ではなく、予測ベクトルの精度から推定した、タスクが実際にアクセスする範囲になるように、アクセス領域を修正する。これにより、タスク相関算出部103が、実際のメモリアクセス範囲に近い範囲をタスク相関の算出に使用できる。従って、アクセス相関算出部103が算出する、アクセス領域の重複部分であるタスク相関の精度が向上する。そのため、タスクスケジューリング装置3が決定した実行順序でタスクを実行した場合のキャッシュヒット率が更に向上し、キャッシュのデータの更に効率的な使用が可能になり、タスクの実行速度が更に向上する。
The access
(第4の実施の形態)
次に、第4の実施形態について図面を参照して詳細に説明する。
(Fourth embodiment)
Next, a fourth embodiment will be described in detail with reference to the drawings.
図13は本実施形態のタスクスケジューリング装置4の構成を表す図である。
FIG. 13 is a diagram showing the configuration of the
本実施形態のタスクスケジューリング装置4は、マルチコアプロセッサやメニコアプロセッサによりタスクを並列処理する場合のスケジューリングを行う。コアごとにキャッシュを持つ並列処理プロセッサでキャッシュを有効利用するためには、同じメモリ領域を参照するタスクを同じプロセッサコアで連続して実行することが重要である。さらに、効率よく並列処理するためにはプロセッサコアあたりの処理量を均等化する必要がある。
The
特許文献2の技術でスケジューリングをした場合、処理量を考慮せずにスケジューリングするため、プロセッサコア毎の処理量が偏ってしまう。さらに特許文献3の技術で、メモリアクセス領域ごとに分割されたグループごとにプロセッサコアに割り当てた場合、グループ毎の処理量は均等にはならない。
When scheduling is performed using the technique of
図24は、特許文献3の技術でタスクのグルーピングを行った結果と、タスクのグループのプロセッサコア(PE1、PE2)への割り当ての例を表す図である。
FIG. 24 is a diagram illustrating a result of grouping tasks with the technique of
図24に示す範囲にアクセスするタスクの例では、(1)の領域にはタスクAが、(2)の領域にはタスクB、C、Dが含まれる。特許文献3の技術でそれぞれのグループを別のプロセッサコアに割り当てた場合、タスク数は1と3のように偏ってしまう。
In the example of the task accessing the range shown in FIG. 24, the area (1) includes task A, and the area (2) includes tasks B, C, and D. When each group is assigned to another processor core by the technique of
本実施形態では、図29のプロセッサ1003は複数のプロセッサコアでタスクを実行する。本実施形態のタスクスケジューリング装置4は、プロセッサ1003が実行する複数のタスクを、各プロセッサコアに割り当てる、複数のタスクグループにグルーピングする。タスクスケジューリング装置4は、プロセッサコア数をタスクグループのグループ数として受信し、以下で説明する動作により、実行の対象となる複数のタスクを、プロセッサコア数のタスクグループに、数が均等になるよう割り当てる。1つのタスク当たりの処理量は均等であれば、各タスクグループに含まれるタスクの処理量の合計はそれぞれ均等である。そして、タスクの実行時には、例えば図29のタスク実行部1002が、各グループをプロセッサコアに割り当てる。
In this embodiment, the
図13を参照すると、タスクスケジューリング装置4は、タスク取得部101と、タスクアクセス取得部102と、アクセス領域記憶部105と、タスク相関算出部103と、スケジュール部104と、出力部106と、グループアクセス算出部406と、グループ記憶部407を含む。タスクスケジューリング装置4は、アクセス領域推定部107を含んでいてもよい。
Referring to FIG. 13, the
本実施形態では、タスク取得部101がタスク情報を取得するタスクは、並列に処理することが可能なタスクである。
In the present embodiment, the task for which the
タスク相関算出部103は、2つのタスク間の相関を算出するのに加えて、複数のタスクを含むタスクグループと、タスクとの間の相関を算出する。
The task
スケジュール部104は、相関の高いタスクを同一タスクグループに登録する。また、スケジュール部104は、タスクグループ内でタスクの実行順序を決定する。
The
グループアクセス算出部406は、タスクグループがアクセスするメモリ領域を算出する。
The group
グループ記憶部407は、タスクグループを特定する情報と、タスクグループに含まれるタスクを特定する情報を、関連付けて記憶する。
The
タスクスケジューリング装置4の他の構成要素は、同一の符号を付した、第1の実施形態のタスクスケジューリング装置1の構成要素と同じであるので、説明を省略する。
The other components of the
次に、本実施形態のタスクスケジューリング装置4の動作について、図面を参照して詳細に説明する。
Next, the operation of the
図9は、並列処理が可能な複数のタスク(タスクA、タスクB、タスクC、タスクD)がアクセスするメモリの範囲(アクセス領域)の例を表す図である。本実施形態の動作の説明では、タスクスケジューリング装置4が、これらのタスクを2つのプロセッサコアに割り当ててスケジューリングする動作、すなわち、これらのタスクを2つのグループに分けてスケジューリングする動作の例についても説明する。
FIG. 9 is a diagram illustrating an example of a memory range (access area) accessed by a plurality of tasks (task A, task B, task C, and task D) that can be processed in parallel. In the description of the operation of the present embodiment, an example of an operation in which the
図14は、タスクスケジューリング装置4の動作の例を表すフローチャートである。
FIG. 14 is a flowchart showing an example of the operation of the
本実施形態の、例えばスケジュール部104は、あらかじめタスクグループのグループ数を保持していればよい。あるいは、ステップS101で、タスク取得部101が、タスク情報に加えて、タスクグループのグループ数の情報も取得してもよい。この場合タスク取得部101は、取得したタスクグループのグループ数の情報を、スケジュール部104に送信すればよい。
For example, the
タスクスケジューリング装置4の、ステップS101〜ステップS103の動作は、グループ数を取得してスケジュール部104に送信する点を除き、第1の実施形態のタスクスケジューリング装置1のステップS101〜ステップS103の動作と同じである。従って、ステップS101〜ステップS103の動作の説明は省略する。
The operations of step S101 to step S103 of the
スケジュール部104は、受信したグループ数と、アクセス情報記憶部105にアクセス情報が格納されているタスクの数から、1タスクグループ当たりのタスク数(グループタスク数)を算出する(ステップS401)。スケジュール部104は、アクセス情報記憶部105に格納されているタスクの数を、カウントすることで得ればよい。スケジュール部104は、タスク取得部101から、スケジューリングを行うタスクの数を受信してもよい。
The
図9の例では、1グループ当たりのタスクの数は2である。 In the example of FIG. 9, the number of tasks per group is two.
次にタスク相関算出部103が、図2のステップS104と同様に、タスク情報を受信したタスクから選択した2つのタスクの組合せ全ての、タスク間の相関を算出する(ステップS104)。
Next, the task
図10は、図9の例のタスクがアクセスするアクセス領域を表として表した図である。 FIG. 10 is a diagram showing an access area accessed by the task in the example of FIG. 9 as a table.
図11は、図10のアクセス領域を表す情報から算出した、タスク間の相関を表す図である。図11の重複サイズが、タスク間の相関に相当する。 FIG. 11 is a diagram showing the correlation between tasks calculated from the information indicating the access area of FIG. The overlap size in FIG. 11 corresponds to the correlation between tasks.
次に、スケジュール部104が、タスクをいずれかのタスクグループに割り当てるグルーピングがなされていないタスクの中で、最も相関が高いタスクのペアを選択し、新規のタスクグループiに登録(グルーピング)する(ステップS405)。iはタスクグループの番号である。番号iの初期値は例えば0であればよい。スケジュール部104は、タスクグループiを特定する情報と、選択したペアを構成するタスク各々を特定する情報を関連付けて、グループ記憶部407に格納する。なお、ステップS405の動作は、スケジュール部104が、最も相関が高いタスクのペアのいずれか一方をタスクグループにまず登録し、さらに、そのタスクグループとの相関が最も高いタスクをそのタスクグループに登録する動作と見なすこともできる。
Next, the
図9の例で、グルーピングが行われたタスクがなければ、相関が最も高いタスクのペアは、タスクCとタスクDである。また、iは初期値の0である。スケジュール部104は、タスクCとタスクDをグループ0に登録する。スケジュール部104は、タスクグループ0を特定する情報と、タスクCを特定する情報及びタスクDを特定する情報を関連付けて、グループ記憶部407に格納する。
In the example of FIG. 9, if there is no grouped task, the task pair with the highest correlation is task C and task D. I is an initial value of 0. The
タスクグループiに登録されているタスク数がグループタスク数より小さい場合(ステップS408、Yes)、グループアクセス算出部406が、タスクを新たに登録したタスクグループ(タスクグループi)のアクセス領域を算出する。グループアクセス算出部406は、タスクグループiが含む各タスクがアクセスするメモリ領域の和を、そのタスクグループiのアクセス領域にすればよい。グループアクセス算出部406は、算出したタスクグループiのアクセス領域を表す情報を、タスク相関算出部103に送信する。
When the number of tasks registered in the task group i is smaller than the number of group tasks (step S408, Yes), the group
タスク相関算出部103は、グルーピングされていない各タスクとタスクグループiの相関(グループ相関)を算出する。グループ相関はタスクとグループの間の相関である。スケジュール部104は、グルーピングされていないタスクの中から、タスクグループiとの間の相関が最も高いタスクを選択する。スケジュール部104は、選択したタスクをタスクグループiに登録する(ステップS407)。
The task
スケジュール部104は、タスク間の相関と同様に、タスクグループiのアクセス領域とタスクのアクセス領域の重複部分のサイズを、タスクグループiとそのタスクの相関にすればよい。
Similar to the correlation between tasks, the
スケジュール部104は、タスクグループを特定する情報と、そのタスクグループに含まれる各タスクのタスク特定情報各々とを関連付けて、グループ記憶部407に格納する。
The
タスクグループiに登録されているタスク数がグループタスク数以上である場合(ステップS408、No)、グルーピングが終了していないタスクが存在すれば(ステップS409、No)、iをカウントアップしてステップS405に戻る。この場合、全てのタスクのグルーピングが終了していれば(ステップS409、Yes)、タスクスケジューリング装置4は各タスクグループ毎の実行順序を出力し(ステップS107)、動作を終了する。
If the number of tasks registered in task group i is equal to or greater than the number of group tasks (step S408, No), if there is a task for which grouping has not ended (step S409, No), i is incremented and step Return to S405. In this case, if the grouping of all tasks has been completed (step S409, Yes), the
なお、タスクグループiに登録されているタスク数がグループタスク数以上である場合(ステップS408、No)、スケジュール部104は、タスクグループiに含まれるタスクの中で、図2のステップS104〜S106と同様に実行順序を決めればよい。
When the number of tasks registered in the task group i is equal to or greater than the number of group tasks (step S408, No), the
図9のタスクの例で、タスクCとタスクDがタスクグループ0にグルーピングされ、タスクAとタスクBがグルーピングされていない場合、タスクグループ0のタスク数はグループタスク数に等しい。さらに、グルーピングされていないタスクAとタスクBが存在する。この場合動作はステップS405に戻り、タスクAとタスクBをタスクグループ1に登録する。
In the example of the task of FIG. 9, when task C and task D are grouped into
その結果、タスクスケジューリング装置4は、図9のタスクを、図12の例のようにグルーピングする。図12は、タスクスケジューリング装置4が図9のタスクをグルーピングした結果を表す図である。
As a result, the
なお、スケジュール部104は、ステップS405で、タスクのペアを新規タスクグループiに登録する際、そのペアが連続して実行されるよう実行順序を決めればよい。そして、スケジュール部104は、ステップS407で、新しくタスクグループiに登録するタスクの実行順序を、図2のステップS105と同じように決めればよい。さらに、スケジュール部104は、タスク特定情報と、決定したタスクの実行順序の順番に並べたタスク特定情報の組(タスク列を表す情報)を、グループ記憶部407に格納すればよい。
In step S405, the
また、タスク相関算出部103は、タスクとタスクグループの相関を、そのタスクとそのタスクグループ内で実行順序が最初のタスクとの相関と、そのタスクとそのタスクグループ内で実行順序が最後のタスクとの相関のうち、高い方にしてもよい。その場合、ステップS406の動作は必要なく、グループアクセス算出部406は存在しなくてよい。
The task
また、スケジュール部104は、最初にステップS405を受信したグループ数と同じ回数だけ繰り返してもよい。そして、ステップS407で、スケジュール部104は、グルーピングされてない各タスクと各グループと組合せのうち、相関が最も高いタスクとグループを選択し、選択したタスクを選択したグループにグルーピングする動作を繰り返してもよい。
Moreover, the
また出力部106は、ステップS107では、グループ毎のタスクの実行順序を表す情報を出力する。
In step S107, the
以上のようにグルーピングされた各タスクグループは、例えばプロセッサ1003が含むプロセッサコアにそれぞれ割り当てられる。各プロセッサコアは、割り当てられたタスクグループに含まれる各タスクを、タスクグループ毎に並列に処理する。
Each task group grouped as described above is assigned to a processor core included in the
図15は、複数のプロセッサコアへのタスクの割り当ての例を表す図である。プロセッサ1003が2つのプロセッサコア(PE1、PE2)を含む場合、タスクグループ数は2である。タスクグループ数が2であれば、タスクスケジューリング装置4は、図9(図15の左側)のタスクを、図15の右側のように2つのタスクグループにグルーピングする。そして、例えばタスク実行部1002が、2つのタスクグループを、プロセッサ1003の2つのプロセッサコア(PE1、PE2)に割り当てる。
FIG. 15 is a diagram illustrating an example of task assignment to a plurality of processor cores. When the
以上で説明した本実施の形態には、第1の実施形態の効果に加えて、複数のプロセッサコアがタスクを実行する場合に、プロセッサコアごとの処理量を均等にすることができるという効果がある。 In addition to the effect of the first embodiment, the present embodiment described above has an effect that the processing amount of each processor core can be equalized when a plurality of processor cores execute tasks. is there.
その理由は、スケジューリング部104が、プロセッサコアの個数に対応するグループ数のタスクグループ各々が含むタスクの個数が均等になるよう、各タスクグループと相関の最も高いタスクを順次そのタスクグループに割り当てるからである。この場合、各タスクの処理量が均等であれば、各タスクグループが含むタスクの処理量の合計は均等である。
The reason is that the
特許文献2や3のようにスケジューリングしグループごとにプロセッサコアにタスクを割り当てると、グループ内のタスク数はグルーピング時に考慮できない。そのため、図24のタスク例ではプロセッサあたりのタスク数が偏ってしまう。本実施の形態のタスクスケジューリング装置4は、タスクのグルーピング時に各タスクグループが含むタスク数を均等にすることができる。従って、本実施の形態のタスクスケジューリング装置4は、各タスクの処理量が均等である場合に、プロセッサコアごとの処理量を均等化できる。
When scheduling is performed as in
(第5の実施の形態)
次に、本発明の第5の実施形態について、図面を参照して詳細に説明する。
(Fifth embodiment)
Next, a fifth embodiment of the present invention will be described in detail with reference to the drawings.
タスクあたりの処理量がタスクごとに異なる場合は、タスクグループあたりのタスク数のみではなく、タスクの処理量を考慮してスケジュールすることで、グループあたり、引いてはプロセッサコアあたりの処理量を均等化することができる。 If the amount of processing per task varies from task to task, schedule not only the number of tasks per task group but also the amount of processing of tasks, so that the amount of processing per group, and thus per processor core, is equalized. Can be
例えば、動き推定におけるタスクあたりの処理量は、参照可能フレーム数などから推定することができる。参照可能フレーム数が2枚である場合の処理量は、1枚の場合の倍の処理量であると推定できる。本実施形態は、タスクあたりの処理量が均等ではない場合にもプロセッサコアあたりの負荷の均等化を図る。なお、処理量は、演算量の程度を表す数値である。演算量の単位は任意で構わない。 For example, the amount of processing per task in motion estimation can be estimated from the number of referable frames. It can be estimated that the processing amount in the case where the number of referenceable frames is two is double the processing amount in the case of one frame. In the present embodiment, even when the processing amount per task is not equal, the load per processor core is equalized. The processing amount is a numerical value indicating the degree of calculation amount. The unit of calculation amount may be arbitrary.
図16は本実施形態のタスクスケジューリング装置5の構成を表す図である。 FIG. 16 is a diagram illustrating the configuration of the task scheduling apparatus 5 of the present embodiment.
図16を参照すると、本実施形態のタスクスケジューリング装置5は、図13に示す第4の実施形態のタスクスケジューリング装置4の各構成要素に加えて、タスク処理量推定部508と、タスク処理量記憶部509を含む。
Referring to FIG. 16, the task scheduling apparatus 5 of the present embodiment includes a task processing
タスク処理量推定部508は、タスク取得部101が取得したタスク情報から、そのタスクの処理量を推定する。例えば、動き推定におけるタスクあたりの処理量は、参照可能フレーム数や、以下で簡単に説明する探索ブロック種数と相関関係にある。すなわち、動き推定のタスクの演算量は、参照可能フレーム数や探索ブロック種数とおおよそ比例関係にある。従って、タスク処理量推定部508は、これらの情報から、動き推定におけるタスクあたりの処理量を推定すればよい。
The task processing
なお、探索ブロック種数は、一つのタスク内で動きベクトルの探索を行うためのブロックサイズの種類である。タスクが、例えばH.264の規格で動き探索を行うタスクである場合、そのタスクは、マクロブロック(16×16画素)単位での動きベクトルの探索に加えて、マクロブロックを分割した更に小さいブロックでの動きベクトルの探索を行う場合がある。この場合、タスクは、複数のサイズのブロックで行った探索の結果から、最も良い動きベクトルを選択する。このような場合、例えば、探索を行うためのブロックが、16×16画素のマクロブロックと、8×8画素及び4×4画素の、マクロブロックを分割したブロックである場合、探索ブロック種数は3である。 The number of search block types is a block size type for searching for a motion vector in one task. For example, the task is H.264. In the case of a task for performing motion search according to the H.264 standard, the task is to search for a motion vector in a smaller block obtained by dividing a macroblock in addition to searching for a motion vector in units of macroblocks (16 × 16 pixels). May do. In this case, the task selects the best motion vector from the results of a search performed with a plurality of blocks of a plurality of sizes. In such a case, for example, when a block for performing a search is a 16 × 16 pixel macroblock and a block of 8 × 8 pixel and 4 × 4 pixel macroblocks, the number of search block types is 3.
タスク処理量推定部508は、例えば、動きベクトル探索の際に、符号化対象ブロックと探索フレーム内のブロックとの間で行われる比較の回数の、想定される最大数を処理量にしてもよい。タスク処理量推定部508は、動きベクトル探索の際に符号化対象ブロックと探索フレーム内のブロックとの間で行われる比較のアルゴリズムが各タスクで同一であるなら、例えば、タスクの動き推定における探索範囲の総面積の値を処理量にしてもよい。タスク取得部101が取得するタスク情報は、タスクの種類に加えて、参照可能フレーム数や、探索ブロック種数や、タスクの処理量を推定するための他の情報を含んでいればよい。
For example, the task processing
スケジュール部104は、各タスクグループの処理量が、全タスクの処理量の合計とグループ数から算出した、一つのタスクグループ当たりの処理量の目安に近付くように、タスクを各タスクグループに割り当てる。スケジュール部104は、さらに、タスクグループ毎にタスクのスケジューリングを行う。
The
タスク処理量推定部508は、タスク特定情報と、そのタスク特定情報で特定されるタスクの処理量を、関連付けてタスク処理量記憶部509に格納する。
The task processing
タスク処理量記憶部509は、タスク特定情報と処理量を関連付けて記憶する。
The task processing
タスクスケジューリング装置5の他の構成要素は、第4の実施形態のタスクスケジューリング装置4の同一の番号の構成要素と同じであるので、説明を省略する。
The other components of the task scheduling device 5 are the same as the components of the same number of the
図17は、本実施形態のタスクスケジューリング装置5の動作の例を表すフローチャートである。図17と図14を比較すると、タスクスケジューリング装置5は、ステップS102の後にステップS501の動作を行う点と、ステップS104の前にステップS502の動作を行う点が、第4の実施形態のタスクスケジューリング装置4と異なる。更に、タスクスケジューリング装置5は、ステップS408の代わりにステップS508の動作を行う点タスクスケジューリング装置4と異なる。タスクスケジューリング装置5のその他のステップの動作は、第4の実施形態のタスクスケジューリング装置4の同じ番号のステップの動作と同じなので、説明を省略する。
FIG. 17 is a flowchart showing an example of the operation of the task scheduling apparatus 5 of this embodiment. Comparing FIG. 17 and FIG. 14, the task scheduling apparatus 5 has the point that the operation of step S501 is performed after step S102 and the operation of step S502 is performed before step S104. Different from the
ステップS102の後、タスク処理量推定部508が、タスク取得部101が取得したタスク情報から、対応するタスクの処理量を推定する(ステップS501)。タスク処理量推定部508は、推定した処理量を、対応するタスクのタスク特定情報に関連付けて、タスク処理量記憶部509に格納する。
After step S102, the task processing
タスク取得部101がタスク情報を取得した全てのタスクのアクセス領域の取得とタスクの処理量の推定が終了すると(ステップS103、Yes)、タスク処理量推定部508は、1タスクグループ当たりの処理量の目安を算出する(ステップS502)。
When the
タスク処理量推定部508は、タスク情報に加えて、タスクグループのグループ数をタスク取得部101から受信すればよい。タスク処理量推定部508は、推定した各タスクの処理量の合計を算出し、算出した合計を受信したグループ数で割ることで、1タスクグループ当たりの処理量の目安(処理量目安)を算出すればよい。
The task processing
ステップS509では、スケジュール部104は、タスクグループiに割り当てられているタスクの処理量の合計と、タスク処理量推定部508が推定した処理量目安を比較する。タスクグループiに割り当てられているタスクの処理量の合計が処理量目安未満である場合(ステップS509、Yes)、スケジュール部104はタスクグループiへのタスクの割り当て(ステップS406〜ステップS407)を継続する。タスクグループiに割り当てられているタスクの処理量の合計が処理量目安以上である場合(ステップS509、No)、スケジュール部104はタスクグループiへのタスクの割り当てを終了する。
In step S509, the
以上で説明した本実施形態には、第4の実施形態の効果に加えて、タスク毎の処理量が異なる場合でも、プロセッサコアあたりの処理量を均等化することができ、全てのタスクの処理が完了するまでの処理時間を短縮できるという効果がある。 In the present embodiment described above, in addition to the effects of the fourth embodiment, even when the processing amount for each task is different, the processing amount per processor core can be equalized, and the processing of all tasks There is an effect that it is possible to shorten the processing time until the process is completed.
その理由は、タスク処理量推定部508が、タスク毎に処理量を推定するからである。スケジュール部104は、推定したタスク毎の処理量を使用して、個々のプロセッサコアに実行させるタスクの集合であるタスクグループ毎の処理量の合計が均等になるよう、各タスクグループにタスクを割り当てる。各プロセッサコアが実行するタスクの処理量が均等であれば、各プロセッサコアが実行するタスクの処理量が均等でない場合より、全てのタスクの処理が完了するまでの処理時間は短くなる。
The reason is that the task processing
(第6の実施の形態)
次に、本発明の第6の実施形態について図面を参照して詳細に説明する。
(Sixth embodiment)
Next, a sixth embodiment of the present invention will be described in detail with reference to the drawings.
動き推定におけるタスクあたりの処理量は、動きベクトルの探索量で決まる。探索量は、探索を開始してから動きベクトル指点を検出するまでに探索を行った範囲に相当する。1タスク当たりの探索量は、そのタスクの参照可能フレーム数などによって大まかに定まる。ただし、十分によい動きベクトルが見つかったと判断された時点で探索は打ち切られる場合があるので、1タスク当たりの探索量が、参照可能フレーム数に比例するとは限らない。例えば、1フレーム・1ブロックあたりの探索量は、探索開始点と動きベクトルの指点の距離によって異なる。探索開始点と動きベクトルの指点の距離が近ければ少なく、離れていれば多くなる。 The amount of processing per task in motion estimation is determined by the amount of motion vector search. The search amount corresponds to a range in which the search is performed from when the search is started until the motion vector finger point is detected. The search amount per task is roughly determined by the number of frames that can be referred to by the task. However, the search may be aborted when it is determined that a sufficiently good motion vector has been found, so the search amount per task is not always proportional to the number of referable frames. For example, the search amount per frame / block differs depending on the distance between the search start point and the motion vector finger point. The smaller the distance between the search start point and the motion vector finger point, the greater the distance.
動きベクトルは周囲のブロックの動きベクトルとの相関が高いので、周囲の動きベクトルから算出された予測ベクトルを中心として動きベクトル探索を行うことによって、早期に良い動きベクトルを決定することができる。予測ベクトルと周囲のブロックの動きベクトルの向き・大きさが似ていれば、予測ベクトルは動きベクトルに近く、探索量は少ないことが予想される。一方、周囲のブロックの動きベクトルの向き・大きさが様々であれば、予測ベクトルの精度が不十分で探索量は多くなると考えられる。そこで、本実施形態のタスクスケジューリング装置6は、第3の実施形態のようにして算出した予測ベクトルの精度を使用して、各タスクの処理量を推定する。これにより、各タスクの処理量の推定の精度が高くなる。そのため、本実施形態のタスクスケジューリング装置6は、1タスクグループ当たりの処理量が均等になるよう、タスクをグルーピングできる。
Since the motion vector has a high correlation with the motion vectors of the surrounding blocks, a good motion vector can be determined early by performing a motion vector search centering on the prediction vector calculated from the surrounding motion vectors. If the direction and size of the prediction vector and the motion vectors of the surrounding blocks are similar, the prediction vector is close to the motion vector and the search amount is expected to be small. On the other hand, if the directions and sizes of the motion vectors of the surrounding blocks are various, it is considered that the accuracy of the prediction vector is insufficient and the search amount increases. Therefore, the
図18は、本実施形態のタスクスケジューリング装置6の構成を表す図である。
FIG. 18 is a diagram illustrating the configuration of the
図18を参照すると、タスクスケジューリング装置6は、図16のタスクスケジューリング装置5の構成に加えて、予測ベクトル精度推定部303と、タスク処理量修正部614を含む。
Referring to FIG. 18, the
予測ベクトル精度推定部303は、第3の実施形態の予測ベクトル精度推定部303と同じである。
The prediction vector
タスク処理量修正部614は、予測ベクトル精度推定部303が算出した、予測ベクトルの精度に応じて、タスク処理量推定部508が推定しタスク処理量記憶部509に格納した、各タスクの処理量を修正する。
The task processing
タスクスケジューリング装置6の他の構成要素は、第5の実施形態のタスクスケジューリング装置5の同じ番号の構成要素と同じなので、説明を省略する。
The other components of the
次に、本実施形態のタスクスケジューリング装置6の動作について、図面を参照して詳細に説明する。
Next, the operation of the
図19は、タスクスケジューリング装置6の動作の例を表すフローチャートである。図19と第5の実施形態の動作を表す図17を比較すると、ステップS501とステップS103の間にステップS304、S305、S606がある点以外は同じである。以下では図17の第5の実施形態の動作との相違点を中心に説明する。
FIG. 19 is a flowchart showing an example of the operation of the
タスク処理量推定部508が、タスク取得部101が取得したタスク情報からそのタスクの処理量を推定した(ステップS501)後、予測ベクトル精度推定部303が、符号化対象ブロックの周囲のブロックの動きベクトルを取得する(ステップS304)。
After the task processing
予測ベクトル精度推定部303は、取得した動きベクトルから、符号化対象ブロックの予測ベクトルの精度を計算する(ステップS305)。
The prediction vector
ステップS304及びステップS305は、それぞれ、図8の第3の実施形態のステップS304及びステップS305と同じなので、詳細な説明を省略する。 Since step S304 and step S305 are the same as step S304 and step S305 of the third embodiment in FIG. 8, respectively, detailed description thereof is omitted.
タスク処理量修正部614は、予測ベクトル精度推定部303が推定した精度を表す、修正係数を使用して、タスク処理量推定部508が推定してタスク処理量記憶部509に格納したタスクの処理量を修正する(ステップS606)。
The task processing
タスク処理量修正部614は、例えば、タスク処理量記憶部509タスクの処理量に対して、そのタスクが対象とする符号化対象ブロックの予測ベクトルに対応する、x方向の修正係数とy方向の修正係数を掛ければよい。
The task processing
ステップS103以降の動作は、第5の実施形態の動作と同じなので、説明を省略する。 Since the operation after step S103 is the same as that of the fifth embodiment, the description thereof is omitted.
なお、予測ベクトル精度推定部303は、算出した修正係数をタスク処理量推定部508に送信してもよい。そして、タスク処理量推定部508は、算出した処理量に受信した修正係数を掛けた値を、タスク特定情報と対応付けて、タスク処理量記憶部509に格納してもよい。この場合、タスク処理量修正部614は存在しなくてもよい。
Note that the predicted vector
以上で説明した本実施形態には、第5の実施形態の効果に加えて、複数のプロセッサコアでタスクを実行する場合に、プロセッサコアあたりの処理量を更に均等化することができ、更に高速な並列処理が可能になるという効果がある。 In the present embodiment described above, in addition to the effects of the fifth embodiment, when a task is executed by a plurality of processor cores, the processing amount per processor core can be further equalized and the processing speed can be further increased. There is an effect that parallel processing becomes possible.
その理由は、タスク処理量推定部508が推定したタスクの処理量を、予測ベクトル精度推定部303が推定したそのタスクに対応する予測ベクトルの精度を使用して、タスク処理量修正部614が修正するからである。従って、各タスクの処理量の推定精度が向上する。スケジュール部104は、タスク毎の修正後の処理量を使用して、個々のプロセッサコアに実行させるタスクの集合であるタスクグループ毎の処理量の合計が均等になるよう、各タスクグループにタスクを割り当てる。そのため、各タスクグループの処理量が更に均等になる。従って、全てのタスクの処理が完了するまでの時間が更に短縮する。すなわち、更に高速な並列処理が可能になる。
The reason is that the task processing
(第7の実施の形態)
次に、本発明の第7の実施形態について、図面を参照して詳細に説明する。
(Seventh embodiment)
Next, a seventh embodiment of the present invention will be described in detail with reference to the drawings.
これまでの各実施形態説明したのは、既にスケジューリングされたタスクグループと、それ以外のタスクの相関を全て算出して、そのタスクグループに割り当てるタスクを選択するタスクスケジューリング装置である。なお、第1から第3の実施形態は、タスクグループが1である場合に相当する。一方、本実施形態では、タスクを順次1個ずつ選択し、選択したタスクと各タスクグループとの間の相関によって、選択したタスクを割り当てるタスクグループを選択することで、タスクのタスクグループへの割り当てとスケジューリングを行う方法を説明する。 Each of the embodiments described so far is a task scheduling apparatus that calculates all the correlations between a task group that has already been scheduled and other tasks and selects a task to be assigned to the task group. The first to third embodiments correspond to the case where the task group is 1. On the other hand, in this embodiment, tasks are assigned to task groups by selecting tasks one by one and selecting a task group to which the selected task is assigned according to the correlation between the selected task and each task group. A method for performing scheduling will be described.
図27は、本実施形態のタスクスケジューリング装置7の構成を表すブロック図である。
FIG. 27 is a block diagram showing the configuration of the
図27と図13を比較すると、タスクスケジューリング装置7は、第4の実施形態のタスクスケジューリング装置4の構成に加えて、グループアクセス記憶部704を含む点が異なる。以下では、タスクスケジューリング装置7とタスクスケジューリング装置4の相違点を中心に説明する。
27 and FIG. 13 is different in that the
グループアクセス算出部406は、更新されたタスクグループのアクセス領域を算出し、タスクグループを特定する情報と関連付けて、グループアクセス記憶部704に格納する。
The group
グループアクセス記憶部704は、グループアクセス算出部406が算出した、タスクグループ毎のアクセス領域を表す情報を、タスクグループを特定する情報と関連付けて記憶する。
The group
タスク相関算出部103は、アクセス領域記憶部105から読み出したタスクのアクセス情報と、グループアクセス記憶部704から読み出したタスクグループのアクセス情報から、相関を算出する。
The task
次に、本実施形態の動作について、図面を参照して詳細に説明する。 Next, the operation of the present embodiment will be described in detail with reference to the drawings.
図28は、本実施形態のタスクスケジューリング装置7の動作を表すフローチャートである。
FIG. 28 is a flowchart showing the operation of the
図28を参照すると、まず、タスクスケジューリング装置7は、グループ数のタスクのタスク情報を取得し、タスク情報を取得した各タスクをそれぞれ別のタスクグループに登録する(ステップS701)。
Referring to FIG. 28, first, the
具体的には、まず、タスク取得部101がタスクグループの数であるグループ数を受信する。タスク取得部101は、グループ数に加えて、スケジューリングの対象となるタスクの数も受信すればよい。タスク取得部101は、受信したグループ数分のタスク情報を取得する。タスクアクセス取得部102は、タスク取得部101が取得したタスク情報が表すタスクのアクセス情報を取得し、タスク特定情報に関連付けてアクセス領域記憶部105に格納する。スケジュール部104は、取得した各タスクを、それぞれ異なるタスクグループに登録する。スケジュール部104は、各タスクを特定する情報を、それぞれ異なるタスクグループを特定する情報に関連付け、グループ記憶部407に格納する。この時点では、各タスクグループは1個のタスクしか含んでおらず、各タスクグループのアクセス領域は、各タスクが含むタスクのアクセス領域と等しい。グループアクセス算出部406は、各タスクグループに含まれるタスクのアクセス情報を、アクセス領域記憶部105から読み出し、タスクグループを特定する情報に関連付けてグループアクセス記憶部704に格納する。
Specifically, first, the
タスク取得部101は、ステップS701におけるタスク情報受信の際、例えば、符号化対象フレームをグループ数の領域に分割し、各領域から一つずつ符号化対象ブロックを選択し、選択した符号化対象ブロックに対して処理を行うタスクを1つずつ取得すればよい。タスク取得部101がこのようにタスクを取得すると、タスクグループ毎のタスクの処理位置(符号化対象ブロックの位置)は、符号化対象フレーム内で分散する。あるいは、タスク取得部101は、フレーム毎に、そのフレームを参照フレームとするタスクを1つずつ選択し、取得してもよい。タスク取得部101がこのようにタスクを取得すると、タスクグループ毎のアクセス領域が分散する。
Upon receiving task information in step S701, for example, the
次に、タスク取得部101は、まだスケジューリングされていないタスクのタスク情報を取得する(ステップS101)。タスク取得部101は、まだスケジューリングされていないタスクから任意のタスクを選択して、選択したタスクのタスク情報を取得すればよい。
Next, the
アクセス領域推定部107は、タスク取得部101から取得したタスク情報から、アクセス領域を推定すればよい。
The access
次に、タスクアクセス取得部102が、タスク情報を選択したタスクのアクセス情報を、例えばアクセス領域を推定するアクセス領域推定部107から取得する(ステップS102)。タスクアクセス取得部102は取得したアクセス情報を、対応するタスクのタスク特定情報に関連付けて、アクセス領域記憶部105に格納する。
Next, the task
次に、タスク相関算出部103は、アクセス領域記憶部105からタスク取得部101がタスク情報を取得したタスクのアクセス情報を読み出す。タスク相関算出部103は、読み出したアクセス情報と、グループアクセス記憶部704が記憶する各タスクグループのアクセス情報から、タスク取得部101がタスク情報を取得したタスクと各タスクグループとの間の相関を、それぞれ算出する(ステップS704)。
Next, the task
タスク相関算出部103は、タスク同士の相関の算出と同様にして、タスクとタスクグループとの間の相関を算出すればよい。例えば、第1の実施形態のように、アクセス情報がアクセス領域の範囲を表す情報である場合、タスク相関算出部103は、タスクのアクセス領域とタスクグループのアクセス領域の重複領域の大きさを算出すればよい。タスクグループのアクセス領域は、第4の実施形態と同様に、例えば、タスクグループが含むタスクのアクセス領域の和であればよい。例えば、第2の実施形態のように、アクセス情報が予測ベクトル指点の座標である場合、タスク相関算出部103は、タスクの予測ベクトル指点と、タスクグループの予測ベクトル指点の距離を算出して、相関にすればよい。この場合、タスクグループの予測ベクトル指点の座標は、例えば、そのタスクグループが含むタスクの予測ベクトル指点の重心であればよい。
The task
次に、スケジュール部104が、タスク情報を取得したタスクを、そのタスクとの相関が高く、含まれるタスクの数が少ないタスクグループに登録する(ステップS705)。
Next, the
スケジュール部104は、例えば、含まれるタスクの数が少ないほど評価値が高く、相関が高いほど評価値が高くなるような、タスク数と相関を変数とする評価式で算出した評価値が、最も高いタスクグループを選択してタスクを登録すればよい。評価式は、含まれるタスクの数が1タスクグループ当たりのタスク数以上になると、タスクグループにタスクが登録されない評価値になる評価式であればよい。スケジュール部104は、例えば、含まれるタスクの数が1タスクグループ当たりのタスク数未満であるタスクグループの中で、タスク情報を取得したタスクとの間の相関が最も高いタスクグループを選択し、選択したタスクグループにそのタスクを登録してもよい。この場合のスケジュール部104の動作は、タスク数が1タスクグループ当たりのタスク数未満の場合相関に比例する評価値を出力し、タスク数が1タスクグループ当たりのタスク数以上の場合評価値として0を出力する評価式による、上述の動作に相当する。なお、スケジュール部104が、タスク取得部101が取得したスケジューリング対象のタスク数をグループ数で割ることで、1タスクグループ当たりのタスク数を算出すればよい。
For example, the
次に、グループアクセス算出部406は、更新されたタスクグループのアクセス領域を算出し、タスクグループを特定する情報と関連付けて、グループアクセス記憶部704に格納する(ステップS706)。グループアクセス算出部406は、更新されたタスクグループを表す情報を、スケジュール部104から受信すればよい。グループアクセス算出部406は、グループ記憶部407に格納されている、各タスクグループに含まれるタスクを表す情報の更新を検出してもよい。
Next, the group
全てのタスクのスケジューリングが終了していない場合(ステップS106、No)、ステップS101からステップS706を繰り返す。なお、グループアクセス算出部406は、タスクグループのアクセス情報を更新する動作(ステップS706)を、ステップS705終了後、全てのタスクのスケジューリングが終了していない場合に(ステップS106、No)、行ってもよい。この場合、グループアクセス算出部406は、ステップS706の動作を、ステップS705の直後には行わなくて良い。
If scheduling of all tasks has not been completed (No at Step S106), Steps S101 to S706 are repeated. The group
全てのタスクのスケジューリングが終了した場合(ステップS106、Yes)、出力部106は、タスクグループ毎のタスクの実行順序を表す情報を出力する(ステップS107)。
When scheduling of all tasks has been completed (step S106, Yes), the
スケジュール部104は、タスクの実行順序を表す情報を出力する前に、例えば第1、第2、第3の実施形態のいずれかと同様にして、タスクグループに含まれる各タスクの実行順序を、タスクグループ毎に決定してもよい。この場合、出力部106は、スケジュール部104が決定したタスクグループ毎の実行順序を表す情報を出力すればよい。タスクグループ毎の実行順序は、例えば、それぞれのタスクグループにタスクが登録された順序でもよい。この場合、スケジュール部104は、各タスクグループに含まれるタスクのタスク特定情報が、タスクグループに登録した順序になるように、タスクグループ毎のタスク特定情報をグループ記憶部407に格納すればよい。
Before outputting information indicating the execution order of tasks, the
また、グループ記憶部407は、各タスクグループに割り当てられたタスクの実行順序を、タスクグループを特定する情報に関連付けて記憶していてもよい。ステップS706で、グループアクセス算出部406は、タスクグループ内における実行順序が最初のタスクのアクセス情報と最後のタスクのアクセス情報の組を、タスクグループのアクセス情報にすればよい。そして、グループアクセス算出部406は、タスクグループ内における実行順序が最初のタスクのアクセス情報と最後のタスクのアクセス情報の組を、タスクグループを特定する情報に関連付けて、グループアクセス記憶部704に格納すればよい。
In addition, the
この場合、ステップS704で、タスク相関算出部103は、タスク相関算出の対象となるタスクの、タスクグループ内の実行順序が最初のタスクとの間のタスク相関と、同タスクグループ内の実行順序が最後のタスクとの間のタスク相関の、双方を算出すればよい。タスク相関算出部103は、算出した2つのタスク相関のいずれか大きい方を、タスク相関の算出の対象となるタスクと、そのタスクグループとの間の相関にすればよい。
In this case, in step S704, the task
ステップS705では、スケジュール部104は、上述の方法と同様に、タスクを割り当てるタスクグループを選択すればよい。スケジュール部104は、選択したタスクグループの実行順序が最初のタスクと最後のタスクのうち、割り当てるタスクとの間のタスク相関が大きい方のタスクと、その割り当てるタスクが連続するよう実行順序を決定すればよい。スケジュール部104は、各タスクグループに含まれるタスクのタスク特定情報を、決定した実行順序通りの順番に並べて、グループ記憶部407に格納すればよい。
In step S705, the
グループ記憶部407が、各タスクグループを特定する情報に関連付けられた、実行順序通りの順番のタスク特定情報の組を記憶している場合、ステップS106で、出力部106は、グループ記憶部407が記憶する情報をそのまま出力してもよい。
When the
また、タスクスケジューリング装置7は、第5の実施形態のタスクスケジューリング装置5と同様に、タスク処理量推定部508とタスク処理量記憶部509を含んでいてもよい。その場合、スケジュール部104は、タスク数の代わりに、タスク処理量推定部508が算出した処理量の合計値を使用すればよい。
Further, the
さらに、タスクスケジューリング装置7は、第6の実施形態のタスクスケジューリング装置6と同様に、タスク処理量推定部508とタスク処理量記憶部509に加えて、予測ベクトル精度推定部303と、タスク処理量修正部614を含んでいてもよい。その場合、タスク処理量修正部614が、第6の実施形態と同様にして、タスクの処理量を修正すればよい。さらに、スケジュール部104は、タスク数の代わりに、タスク処理量推定部508が算出し、タスク処理量修正部614が修正した処理量の合計値を使用すればよい。
Further, the
以上で説明した本実施形態には、第4の実施形態の効果に加えて、タスクのスケジューリングにおける処理量を削減することができるという効果がある。 In addition to the effect of the fourth embodiment, the present embodiment described above has an effect that the amount of processing in task scheduling can be reduced.
その理由は、タスク相関算出部103が、必ずしも、スケジューリングの対象となるタスクから選択した2つのタスクの組合せ全てに対して、タスク相関を算出するわけではないからである。
This is because the task
次に、第1から第7までの各実施形態の変形例について説明する。 Next, modified examples of the first to seventh embodiments will be described.
プロセッサ1003が、複数のプロセッサコアでタスクを並列に処理する並列プロセッサである場合、プロセッサ1003の構成は、複数のプロセッサコアと共有する一つのキャッシュでコアグループを構成し、コアグループが複数ある構成でも良い。この場合、タスク実行部1002は、キャッシュを共有する各コアグループ毎にタスクグループを割り当てればよい。この場合、コアグループ内でも、各プロセッサコアがタスクを並列に処理することが可能である。
When the
プロセッサ1003の構成は、プロセッサ同士がメモリを共有しないマルチプロセッサの構成でも良い。この場合、異なるプロセッサ間ではメインメモリを共有しないため、データの局所化がより重要となる。
The configuration of the
また、プロセッサ1003の構成は、キャッシュメモリのかわりにスクラッチパッドメモリを持つ構成でも良い。スクラッチパッドメモリは、キャッシュメモリと同様に小容量・高速なメモリであり、保持するデータをユーザが明示的に管理できるため、本発明によるデータローカリティをより有効に利用することができる。
The
上で説明した各実施形態では、タスクは、異なる複数のフレームを参照するか否かに関わらず、一つのマクロブロックに対して行う処理をまとめた処理を指していた。しかし、例えば特許文献2や特許文献3のように、同一マクロブロックに対する処理であっても、参照フレームが異なれば、別々のタスクであってもよい。
In each of the embodiments described above, the task indicates a process in which processes to be performed on one macro block are grouped regardless of whether different frames are referred to. However, for example, as in
一般的にキャッシュメモリには、実際に使用されたデータではなくても、使用されたデータに近いにアドレスに存在するデータも格納される。そのため、2つのタスクのアクセス領域が重複する面積が同じであっても、それぞれのアクセス領域のメモリ上の配置により、キャッシュのヒット率が異なることが考えられる。例えば各フレームの各画素のデータが、横方向に隣接する画素でアドレスが連続するようにメモリに格納されているのであれば、タスク実行後にキャッシュに格納されているデータは、そのタスクのアクセス領域とアクセス領域に横方向に隣接する領域のデータである。従って、2つのタスクのアクセス領域の重複領域の面積が同じであっても、例えば、2つのタスクの予測ベクトル指点の座標の縦方向の差が横方向の差より大きい場合より、縦方向の差が横方向の差より小さい場合の方が、キャッシュのヒット率が高いと考えられる。よって、タスク相関算出部103は、アクセス領域の重複量や予測ベクトル指点間の距離に方向を加味して、タスク間の相関を算出することもできる。例えば、タスク相関算出部103が、2つのタスクの、アクセス領域に横方向で隣接した所定の幅の領域を、アクセス領域に加えた領域の重複量を、それらの2つの領域のタスク相関にすればよい。あるいは、タスク相関算出部103は、2つのタスクの、予測ベクトル指点の座標の横方向の成分に、例えば値が1未満の所定の重みを掛けて算出した、予測ベクトル指点間の距離を、その2つのタスクのタスク相関にすればよい。
In general, the cache memory stores not only actually used data but also data existing at an address close to the used data. Therefore, even if the area where the access areas of the two tasks overlap is the same, the cache hit rate may differ depending on the arrangement of the access areas on the memory. For example, if the data of each pixel of each frame is stored in the memory so that the addresses are continuous in pixels adjacent in the horizontal direction, the data stored in the cache after the task is executed is the access area of the task. And the data of the area adjacent to the access area in the horizontal direction. Therefore, even if the area of the overlapping area of the access areas of the two tasks is the same, for example, the difference in the vertical direction is larger than the case where the vertical difference in the coordinates of the predicted vector finger points of the two tasks is larger than the horizontal difference. It is considered that the cache hit rate is higher when is smaller than the horizontal difference. Therefore, the task
第3の実施形態や第5の実施形態の予測ベクトル精度推定部303は、例えば、周囲のブロックの予測ベクトルの平均値と、符号化対象ブロックの予測ベクトルとの差など、ベクトルの分散ではない他の値から、予測ベクトルの精度を表す値を算出してもよい。また、第3の実施形態や第5の実施形態では、予測ベクトル精度推定部303は、空間的に近い周囲のブロック、すなわち符号化対象フレーム内の符号化対象ブロックの周囲のブロックの予測ベクトルから、符号化対象ブロックの予測ベクトルの精度を表す値を算出する。しかし、予測ベクトル精度推定部303は、空間的に近いブロックの予測ベクトルに加えて、時間的に近いブロックの予測ベクトルを使用して、符号化対象ブロックの予測ベクトルの精度を表す値を算出してもよい。なお、時間的に近いブロックは、符号化対象フレームの隣接フレーム内の、符号化対象ブロックと同一位置のブロックである。予測ベクトル精度推定部303は、さらに、符号化対象フレームの隣接フレーム内の、符号化対象ブロックと同一の位置から所定範囲内に存在するブロックの予測ベクトルを使用してもよい。
The prediction vector
タスクスケジューリング装置1、タスクスケジューリング装置3、タスクスケジューリング装置4、タスクスケジューリング装置5、タスクスケジューリング装置6、タスクスケジューリング装置7、及び情報処理装置1000は、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。
The
タスク取得部101、タスクアクセス取得部102、タスク相関算出部103、スケジュール部104、出力部106、アクセス領域推定部107、予測ベクトル精度推定部303、アクセス領域修正部304、グループアクセス算出部406、タスク処理量推定部508、タスク処理量修正部614は、例えば、プログラムを記憶する記録媒体からメモリに読み込まれた、各部の機能を実現するための専用のプログラムと、そのプログラムを実行するプロセッサにより実現することができる。また、アクセス領域記憶部105、グループ記憶部407、タスク処理量記憶部509、グループアクセス記憶部704は、コンピュータが含むメモリやハードディスク装置により実現することができる。あるいは、タスク取得部101、タスクアクセス取得部102、タスク相関算出部103、スケジュール部104、アクセス領域記憶部105、出力部106、アクセス領域推定部107、予測ベクトル精度推定部303、アクセス領域修正部304、グループアクセス算出部406、グループ記憶部407、タスク処理量推定部508、タスク処理量記憶部509、タスク処理量修正部614、グループアクセス記憶部704の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
タスク生成部1001、タスク実行部1002、実行結果出力部1004は、例えば、プログラムを記憶する記録媒体からメモリに読み込まれた、各部の機能を実現するための専用のプログラムと、そのプログラムを実行するプロセッサにより実現することができる。また、動きベクトル記憶部1005は、コンピュータが含むメモリやハードディスク装置により実現することができる。あるいは、タスク生成部1001、タスク実行部1002、プロセッサ1003、実行結果出力部1004、動きベクトル記憶部1005の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
The
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。 Moreover, although a part or all of said embodiment can be described also as the following additional remarks, it is not restricted to the following.
(付記1)
処理のまとまりであるタスクを特定するタスク特定情報を含むタスク情報を複数取得するタスク取得手段と、
前記タスクでアクセスされるメモリ領域の配置を表すアクセス情報を取得し、前記タスク特定情報に関連付けてアクセス領域記憶手段に格納するタスクアクセス取得手段と、
前記タスク特定情報と前記アクセス情報の組を記憶するアクセス領域記憶手段と、
2つの前記タスクの前記アクセス情報から、2つの前記タスクでアクセスされるメモリ領域の重複量を表すタスク相関を算出するタスク相関算出手段と、
前記タスクの実行順の列であるタスク列の最初又は最後の前記タスクと、前記タスク列に含まれない前記タスクのいずれかとの組合せ中、前記タスク相関が最も高い前記組合せの前記タスクが連続するように、前記タスク列に含まれない前記タスクを前記タスク列に加えるスケジュール手段と、
前記タスク列を表す情報を出力する出力手段と
を含むタスクスケジューリング装置。
(Appendix 1)
Task acquisition means for acquiring a plurality of task information including task identification information for identifying a task that is a unit of processing;
Task access acquisition means for acquiring access information representing an arrangement of a memory area accessed by the task, and storing the access information in an access area storage means in association with the task identification information;
Access area storage means for storing a set of the task identification information and the access information;
Task correlation calculating means for calculating a task correlation representing an overlap amount of memory areas accessed by the two tasks from the access information of the two tasks;
Among the combinations of the first or last task in the task sequence, which is the sequence of execution of the tasks, and any of the tasks not included in the task sequence, the tasks of the combination having the highest task correlation are consecutive. Scheduling means for adding the task not included in the task sequence to the task sequence,
An output means for outputting information representing the task sequence.
(付記2)
前記タスクの処理の内容を表すタスク内容情報を更に含む前記タスク情報を取得する前記タスク取得手段と、
前記タスク情報と前記アクセス情報から、当該タスク情報が表すタスクの計算量の程度を表す処理量を推定するタスク処理量推定手段とを含み、
前記タスク相関算出手段は、更に、1個以上の前記タスクの、前記タスク列で構成されるタスクグループ各々の中の、含まれる前記タスク各々の前記処理量の合計が所定値未満である、1個の前記タスクグループである対象タスクグループが含む、各タスクでアクセスされるメモリ領域と、前記タスクでアクセスされるメモリ領域の重なりの大きさを表すグループ相関を、前記タスクグループのいずれにも含まれない前記タスク各々に対して算出し、
前記スケジュール手段は、前記タスクグループのいずれにも含まれない前記タスク各々の中で、前記対象タスクグループとの間の前記グループ相関が最も高い前記タスクを、前記対象タスクグループの前記タスク列に加え、
前記出力手段は、前記タスクグループ毎の前記タスク列を表す情報を出力する
付記1に記載のタスクスケジューリング装置。
(Appendix 2)
The task acquisition means for acquiring the task information further including task content information representing the content of processing of the task;
From the task information and the access information, including a task processing amount estimation means for estimating a processing amount representing the degree of calculation amount of the task represented by the task information,
The task correlation calculating means further includes: one or more of the tasks, wherein the total processing amount of each of the tasks included in each of the task groups configured by the task sequence is less than a predetermined value. Each of the task groups includes a group correlation that represents a size of an overlap between a memory area accessed by each task and a memory area accessed by the task included in the target task group that is the task group. Not calculated for each of the tasks
The scheduling means adds the task having the highest group correlation with the target task group among the tasks not included in any of the task groups to the task column of the target task group. ,
The task scheduling apparatus according to
(付記3)
前記タスクの処理の内容を表すタスク内容情報を更に含む前記タスク情報を取得する前記タスク取得手段と、
前記タスク情報から、当該タスク情報が表すタスクの計算量の程度を表す処理量を推定するタスク処理量推定手段を含み、
前記タスク相関算出手段は、更に、1個以上の前記タスクの、前記タスク列でそれぞれ構成されるタスクグループが含む各タスクでアクセスされるメモリ領域と、複数の前記タスクグループのいずれにも含まれない前記タスク各々から選択された、前記タスクでアクセスされるメモリ領域の重なりの大きさを表すグループ相関を、複数の前記タスクグループ各々に対して算出し、
前記スケジュール手段は、複数の前記タスクグループの、いずれにも含まれない前記タスクから対象タスクを順次選択し、複数の前記タスクグループ各々に対して、選択した前記対象タスクとの間の前記グループ相関と、前記対象タスクの前記処理量とから評価値を算出し、複数の前記タスクグループで前記評価値が最も高い前記タスクグループの前記タスク列に、前記対象タスクを加え、
前記出力手段は、前記タスクグループ毎の前記タスク列を表す情報を出力する
付記1に記載のタスクスケジューリング装置。
(Appendix 3)
The task acquisition means for acquiring the task information further including task content information representing the content of processing of the task;
From the task information, including task processing amount estimation means for estimating a processing amount representing the degree of calculation amount of the task represented by the task information,
The task correlation calculation means is further included in any one of the plurality of task groups and a memory area accessed by each task included in each task group configured by the task sequence of one or more of the tasks. Calculating a group correlation for each of the plurality of task groups, which is selected from each of the non-tasks and represents a size of an overlap of memory areas accessed by the task;
The scheduling means sequentially selects a target task from the tasks not included in any of the plurality of task groups, and the group correlation with the selected target task for each of the plurality of task groups And calculating an evaluation value from the processing amount of the target task, adding the target task to the task column of the task group having the highest evaluation value among a plurality of task groups,
The task scheduling apparatus according to
(付記4)
前記タスク内容情報が、前記タスクの種類を表すタスク種類情報と、時系列の複数のフレームを含む動画像中の、前記タスクの処理の対象の領域である対象ブロックを含む前記フレームである対象フレームの中における、前記対象ブロックの位置を特定する情報と、前記動画像中の、前記タスクの前記対象ブロックを対象とする前記処理で参照される前記フレームである参照フレームを特定する情報とを含む、前記タスク情報を取得する前記タスク取得手段と、
前記タスク種類情報が、前記参照フレーム中の、前記対象ブロックに対応する領域の位置の推定と、前記対象フレームの中における前記対象ブロックの位置に対応する、前記参照フレームの中の位置から、前記参照フレームの中の推定した前記位置までの距離と方向を表す、前記対象ブロックの動きベクトルの算出を含む処理である、動き推定を表す場合、前記対象フレーム中における、前記対象ブロックの周囲の複数のブロックの、既に算出されている前記動きベクトル各々を取得し、取得した前記動きベクトル各々から前記対象ブロックの前記動きベクトルの予測値である予測ベクトルを生成し、生成した前記予測ベクトルと前記タスク情報から、前記タスク特定情報で特定される前記タスクでアクセスされる前記参照フレーム内の領域を推定し、推定した前記領域を格納する前記メモリ領域の配置を表す前記アクセス情報を生成し、前記タスク種類情報が動き補償を表す場合、前記対象ブロックの前記動きベクトルを取得して、取得した前記動きベクトルと前記タスク情報から、前記アクセス情報を生成するタスクアクセス推定手段と
を含む付記1乃至3のいずれかに記載のタスクスケジューリング装置。
(Appendix 4)
A target frame in which the task content information is a frame including task type information indicating the type of the task and a target block that is a target area for processing the task in a moving image including a plurality of time-series frames. Information for specifying the position of the target block, and information for specifying a reference frame in the moving image that is referred to in the processing for the target block of the task. The task acquisition means for acquiring the task information;
The task type information is obtained by estimating the position of the region corresponding to the target block in the reference frame, and the position in the reference frame corresponding to the position of the target block in the target frame. In the case of representing motion estimation, which is a process including calculation of a motion vector of the target block, which represents a distance and direction to the estimated position in a reference frame, a plurality of surroundings of the target block in the target frame Each of the motion vectors already calculated for the block of the current block, generate a prediction vector that is a predicted value of the motion vector of the target block from each of the acquired motion vectors, and generate the predicted vector and the task An area in the reference frame accessed by the task specified by the task specifying information from information And generating the access information representing an arrangement of the memory area storing the estimated area, and when the task type information represents motion compensation, obtaining the motion vector of the target block, The task scheduling apparatus according to any one of
(付記5)
前記タスク特定情報と、当該タスク特定情報で特定される前記タスクでアクセスされる前記メモリ領域の大きさを含むアクセス情報との組を記憶する前記アクセス領域記憶手段と、
前記タスク種類情報が動き推定を表す場合、前記対象ブロックの、周囲の複数のブロックの前記動きベクトル各々を取得し、取得した前記動きベクトル各々から、前記予測ベクトルの精度を推定する予測ベクトル精度推定手段と、
推定した前記精度を使用して、前記精度が高いほど、対応する前記対象ブロックを処理の対象とする前記タスクでアクセスされる前記メモリ領域の大きさが小さくなるように、前記メモリ領域の大きさを修正するアクセス領域修正手段と
を含む付記4に記載のタスクスケジューリング装置。
(Appendix 5)
The access area storage means for storing a set of the task identification information and access information including a size of the memory area accessed by the task identified by the task identification information;
When the task type information represents motion estimation, the motion vector of each of a plurality of surrounding blocks of the target block is acquired, and the accuracy of the prediction vector is estimated from each of the acquired motion vectors Means,
Using the estimated accuracy, the size of the memory region is such that the higher the accuracy, the smaller the size of the memory region accessed by the task that processes the corresponding target block. The task scheduling apparatus according to
(付記6)
推定した前記精度を使用して、前記精度が高いほど前記処理量が少なくなるように、前記処理量を修正するタスク処理量修正手段
を含む付記4又は5に記載のタスクスケジューリング装置。
(Appendix 6)
The task scheduling apparatus according to
(付記7)
前記タスクアクセス取得手段は、前記タスク種類情報が動き推定を表す場合、前記予測ベクトルを取得し、前記アクセス情報として、前記対象ブロックの位置から前記予測ベクトル分移動した点である予測ベクトル指点の座標を算出し、前記タスク種類情報が動き補償を表す場合、前記対象ブロックの前記動きベクトルを取得して、前記アクセス情報として、前記対象ブロックの位置から前記動きベクトル分移動した点である動きベクトル指点の座標を算出し、
前記タスク相関算出手段は、2つのタスクの前記タスク特定情報に関連付けられている前記アクセス情報である前記座標間の距離を算出して、2つの前記タスク間の前記タスク相関を求める
付記1乃至4のいずれかに記載のタスクスケジューリング装置
(付記8)
付記1乃至7のいずれかに記載のタスクスケジューリング装置と、
プロセッサと、
当該プロセッサが実行するタスクのタスク情報を生成し、前記タスクスケジューリング装置に入力するタスク生成手段と、
前記タスクスケジューリング装置から前記タスク列を表す情報を取得し、取得した前記タスク列の順序に従い、前記プロセッサに前記タスクを実行させるタスク実行手段と
を含むタスクスケジュールシステム。
(Appendix 7)
When the task type information represents motion estimation, the task access acquisition unit acquires the prediction vector, and as the access information, coordinates of a prediction vector finger point that is a point moved by the prediction vector from the position of the target block When the task type information represents motion compensation, the motion vector finger point is a point obtained by obtaining the motion vector of the target block and moving as the access information by the motion vector from the position of the target block. The coordinates of
The task correlation calculating means calculates a distance between the coordinates, which is the access information associated with the task specifying information of two tasks, and calculates the task correlation between the two tasks. Scheduling device according to any of (8)
A task scheduling apparatus according to any one of
A processor;
Task generation means for generating task information of a task to be executed by the processor and inputting the task information to the task scheduling device;
A task scheduling system comprising: task execution means for acquiring information representing the task sequence from the task scheduling device and causing the processor to execute the task according to the order of the acquired task sequence.
(付記9)
処理のまとまりであるタスクを特定するタスク特定情報を含むタスク情報を複数取得し、
前記タスクでアクセスされるメモリ領域の配置を表すアクセス情報を取得し、前記タスク特定情報に関連付けてアクセス領域記憶手段に格納し、
前記タスク特定情報と前記アクセス情報の組をアクセス領域記憶手段に記憶し、
2つの前記タスクの前記アクセス情報から、2つの前記タスクでアクセスされるメモリ領域の重複量を表すタスク相関を算出し、
前記タスクの実行順の列であるタスク列の最初又は最後の前記タスクと、前記タスク列に含まれない前記タスクのいずれかとの組合せ中、前記タスク相関が最も高い前記組合せの前記タスクが連続するように、前記タスク列に含まれない前記タスクを前記タスク列に加え、
前記タスク列を表す情報を出力する
タスクスケジューリング方法。
(Appendix 9)
Get multiple pieces of task information including task identification information that identifies the task that is a unit of processing,
Obtaining access information representing the location of the memory area accessed by the task, storing it in the access area storage means in association with the task identification information;
Storing a set of the task identification information and the access information in an access area storage means;
From the access information of the two tasks, calculate a task correlation that represents the overlap amount of the memory areas accessed by the two tasks,
Among the combinations of the first or last task in the task sequence, which is the sequence of execution of the tasks, and any of the tasks not included in the task sequence, the tasks of the combination having the highest task correlation are consecutive. So that the task not included in the task column is added to the task column,
A task scheduling method for outputting information representing the task sequence.
(付記10)
前記タスクの処理の内容を表すタスク内容情報を更に含む前記タスク情報を取得し、
前記タスク情報と前記アクセス情報から、当該タスク情報が表すタスクの計算量の程度を表す処理量を推定し、
更に、1個以上の前記タスクの、前記タスク列で構成されるタスクグループ各々の中の、含まれる前記タスク各々の前記処理量の合計が所定値未満である、1個の前記タスクグループである対象タスクグループが含む、各タスクでアクセスされるメモリ領域と、前記タスクでアクセスされるメモリ領域の重なりの大きさを表すグループ相関を、前記タスクグループのいずれにも含まれない前記タスク各々に対して算出し、
前記タスクグループのいずれにも含まれない前記タスク各々の中で、前記対象タスクグループとの間の前記グループ相関が最も高い前記タスクを、前記対象タスクグループの前記タスク列に加え、
前記タスクグループ毎の前記タスク列を表す情報を出力する
付記9に記載のタスクスケジューリング方法。
(Appendix 10)
Obtaining the task information further including task content information representing the processing content of the task;
From the task information and the access information, a processing amount representing the degree of calculation amount of the task represented by the task information is estimated,
Further, the task group is one task group in which the total processing amount of each of the included tasks is less than a predetermined value in each of the task groups configured by the task sequence of one or more of the tasks. A group correlation indicating a size of an overlap between a memory area accessed by each task and a memory area accessed by the task included in the target task group is set for each of the tasks not included in any of the task groups. Calculated,
In each of the tasks not included in any of the task groups, the task having the highest group correlation with the target task group is added to the task column of the target task group,
The task scheduling method according to claim 9, wherein information representing the task sequence for each task group is output.
(付記11)
前記タスクの処理の内容を表すタスク内容情報を更に含む前記タスク情報を取得し、
前記タスク情報から、当該タスク情報が表すタスクの計算量の程度を表す処理量を推定し、
更に、1個以上の前記タスクの、前記タスク列でそれぞれ構成されるタスクグループが含む各タスクでアクセスされるメモリ領域と、複数の前記タスクグループのいずれにも含まれない前記タスク各々から選択された、前記タスクでアクセスされるメモリ領域の重なりの大きさを表すグループ相関を、複数の前記タスクグループ各々に対して算出し、
複数の前記タスクグループの、いずれにも含まれない前記タスクから対象タスクを順次選択し、複数の前記タスクグループ各々に対して、選択した前記対象タスクとの間の前記グループ相関と、前記対象タスクの前記処理量とから評価値を算出し、複数の前記タスクグループで前記評価値が最も高い前記タスクグループの前記タスク列に、前記対象タスクを加え、
前記タスクグループ毎の前記タスク列を表す情報を出力する
付記9に記載のタスクスケジューリング方法。
(Appendix 11)
Obtaining the task information further including task content information representing the processing content of the task;
From the task information, a processing amount representing the degree of calculation amount of the task represented by the task information is estimated,
Further, one or more of the tasks are selected from a memory area accessed by each task included in the task group configured by the task column and each of the tasks not included in any of the plurality of task groups. In addition, a group correlation representing the size of the overlap of the memory areas accessed by the task is calculated for each of the plurality of task groups,
A target task is sequentially selected from the tasks not included in any of the plurality of task groups, and for each of the plurality of task groups, the group correlation with the selected target task, and the target task The evaluation value is calculated from the processing amount of the task, and the target task is added to the task column of the task group having the highest evaluation value among the plurality of task groups,
The task scheduling method according to claim 9, wherein information representing the task sequence for each task group is output.
(付記12)
前記タスク内容情報が、前記タスクの種類を表すタスク種類情報と、時系列の複数のフレームを含む動画像中の、前記タスクの処理の対象の領域である対象ブロックを含む前記フレームである対象フレームの中における、前記対象ブロックの位置を特定する情報と、前記動画像中の、前記タスクの前記対象ブロックを対象とする前記処理で参照される前記フレームである参照フレームを特定する情報とを含む、前記タスク情報を取得し、
前記タスク種類情報が、前記参照フレーム中の、前記対象ブロックに対応する領域の位置の推定と、前記対象フレームの中における前記対象ブロックの位置に対応する、前記参照フレームの中の位置から、前記参照フレームの中の推定した前記位置までの距離と方向を表す、前記対象ブロックの動きベクトルの算出を含む処理である、動き推定を表す場合、前記対象フレーム中における、前記対象ブロックの周囲の複数のブロックの、既に算出されている前記動きベクトル各々を取得し、取得した前記動きベクトル各々から前記対象ブロックの前記動きベクトルの予測値である予測ベクトルを生成し、生成した前記予測ベクトルと前記タスク情報から、前記タスク特定情報で特定される前記タスクでアクセスされる前記参照フレーム内の領域を推定し、推定した前記領域を格納する前記メモリ領域の配置を表す前記アクセス情報を生成し、前記タスク種類情報が動き補償を表す場合、前記対象ブロックの前記動きベクトルを取得して、取得した前記動きベクトルと前記タスク情報から、前記アクセス情報を生成する
付記9乃至11のいずれかに記載のタスクスケジューリング方法。
(Appendix 12)
A target frame in which the task content information is a frame including task type information indicating the type of the task and a target block that is a target area for processing the task in a moving image including a plurality of time-series frames. Information for specifying the position of the target block, and information for specifying a reference frame in the moving image that is referred to in the processing for the target block of the task. , Get the task information,
The task type information is obtained by estimating the position of the region corresponding to the target block in the reference frame, and the position in the reference frame corresponding to the position of the target block in the target frame. In the case of representing motion estimation, which is a process including calculation of a motion vector of the target block, which represents a distance and direction to the estimated position in a reference frame, a plurality of surroundings of the target block in the target frame Each of the motion vectors already calculated for the block of the current block, generate a prediction vector that is a predicted value of the motion vector of the target block from each of the acquired motion vectors, and generate the predicted vector and the task An area in the reference frame accessed by the task specified by the task specifying information from information And generating the access information representing an arrangement of the memory area storing the estimated area, and when the task type information represents motion compensation, obtaining the motion vector of the target block, The task scheduling method according to any one of appendices 9 to 11, wherein the access information is generated from a motion vector and the task information.
(付記13)
前記タスク特定情報と、当該タスク特定情報で特定される前記タスクでアクセスされる前記メモリ領域の大きさを含むアクセス情報との組を前記アクセス領域記憶手段に記憶し、
前記タスク種類情報が動き推定を表す場合、前記対象ブロックの、周囲の複数のブロックの前記動きベクトル各々を取得し、取得した前記動きベクトル各々から、前記予測ベクトルの精度を推定し、
推定した前記精度を使用して、前記精度が高いほど、対応する前記対象ブロックを処理の対象とする前記タスクでアクセスされる前記メモリ領域の大きさが小さくなるように、前記メモリ領域の大きさを修正する
付記12に記載のタスクスケジューリング方法。
(Appendix 13)
Storing a set of the task identification information and access information including the size of the memory area accessed by the task identified by the task identification information in the access area storage means;
When the task type information represents motion estimation, obtain each of the motion vectors of a plurality of surrounding blocks of the target block, estimate the accuracy of the prediction vector from each of the obtained motion vectors,
Using the estimated accuracy, the size of the memory region is such that the higher the accuracy, the smaller the size of the memory region accessed by the task that processes the corresponding target block. The task scheduling method according to attachment 12, wherein:
(付記14)
推定した前記精度を使用して、前記精度が高いほど前記処理量が少なくなるように、前記処理量を修正する
付記12又は13に記載のタスクスケジューリング方法。
(Appendix 14)
The task scheduling method according to appendix 12 or 13, wherein the processing amount is corrected using the estimated accuracy so that the processing amount decreases as the accuracy increases.
(付記15)
前記タスク種類情報が動き推定を表す場合、前記予測ベクトルを取得し、前記アクセス情報として、前記対象ブロックの位置から前記予測ベクトル分移動した点である予測ベクトル指点の座標を算出し、前記タスク種類情報が動き補償を表す場合、前記対象ブロックの前記動きベクトルを取得して、前記アクセス情報として、前記対象ブロックの位置から前記動きベクトル分移動した点である動きベクトル指点の座標を算出し、
2つのタスクの前記タスク特定情報に関連付けられている前記アクセス情報である前記座標間の距離を算出して、2つの前記タスク間の前記タスク相関を求める
付記9乃至12のいずれかに記載のタスクスケジューリング方法
(付記16)
コンピュータを、
処理のまとまりであるタスクを特定するタスク特定情報を含むタスク情報を複数取得するタスク取得手段と、
前記タスクでアクセスされるメモリ領域の配置を表すアクセス情報を取得し、前記タスク特定情報に関連付けてアクセス領域記憶手段に格納するタスクアクセス取得手段と、
前記タスク特定情報と前記アクセス情報の組を記憶するアクセス領域記憶手段と、
2つの前記タスクの前記アクセス情報から、2つの前記タスクでアクセスされるメモリ領域の重複量を表すタスク相関を算出するタスク相関算出手段と、
前記タスクの実行順の列であるタスク列の最初又は最後の前記タスクと、前記タスク列に含まれない前記タスクのいずれかとの組合せ中、前記タスク相関が最も高い前記組合せの前記タスクが連続するように、前記タスク列に含まれない前記タスクを前記タスク列に加えるスケジュール手段と、
前記タスク列を表す情報を出力する出力手段と
して動作させるタスクスケジューリングプログラム。
(Appendix 15)
When the task type information represents motion estimation, the prediction vector is acquired, and as the access information, coordinates of a prediction vector finger point that is a point moved by the prediction vector from the position of the target block are calculated, and the task type When the information represents motion compensation, the motion vector of the target block is acquired, and as the access information, a coordinate of a motion vector finger point that is a point moved by the motion vector from the position of the target block is calculated,
The task according to any one of appendices 9 to 12, wherein a distance between the coordinates as the access information associated with the task specifying information of two tasks is calculated to obtain the task correlation between the two tasks. Scheduling method (Appendix 16)
Computer
Task acquisition means for acquiring a plurality of task information including task identification information for identifying a task that is a unit of processing;
Task access acquisition means for acquiring access information representing an arrangement of a memory area accessed by the task, and storing the access information in an access area storage means in association with the task identification information;
Access area storage means for storing a set of the task identification information and the access information;
Task correlation calculating means for calculating a task correlation representing an overlap amount of memory areas accessed by the two tasks from the access information of the two tasks;
Among the combinations of the first or last task in the task sequence, which is the sequence of execution of the tasks, and any of the tasks not included in the task sequence, the tasks of the combination having the highest task correlation are consecutive. Scheduling means for adding the task not included in the task sequence to the task sequence,
A task scheduling program that operates as output means for outputting information representing the task sequence.
(付記17)
コンピュータを、
前記タスクの処理の内容を表すタスク内容情報を更に含む前記タスク情報を取得する前記タスク取得手段と、
前記タスク情報と前記アクセス情報から、当該タスク情報が表すタスクの計算量の程度を表す処理量を推定するタスク処理量推定手段と、
更に、1個以上の前記タスクの、前記タスク列で構成されるタスクグループ各々の中の、含まれる前記タスク各々の前記処理量の合計が所定値未満である、1個の前記タスクグループである対象タスクグループが含む、各タスクでアクセスされるメモリ領域と、前記タスクでアクセスされるメモリ領域の重なりの大きさを表すグループ相関を、前記タスクグループのいずれにも含まれない前記タスク各々に対して算出する前記タスク相関算出手段と、
前記タスクグループのいずれにも含まれない前記タスク各々の中で、前記対象タスクグループとの間の前記グループ相関が最も高い前記タスクを、前記対象タスクグループの前記タスク列に加える前記スケジュール手段と、
前記タスクグループ毎の前記タスク列を表す情報を出力する前記出力手段と
して動作させる付記16に記載のタスクスケジューリングプログラム。
(Appendix 17)
Computer
The task acquisition means for acquiring the task information further including task content information representing the content of processing of the task;
From the task information and the access information, task processing amount estimation means for estimating a processing amount representing the degree of calculation amount of the task represented by the task information;
Further, the task group is one task group in which the total processing amount of each of the included tasks is less than a predetermined value in each of the task groups configured by the task sequence of one or more of the tasks. A group correlation indicating a size of an overlap between a memory area accessed by each task and a memory area accessed by the task included in the target task group is set for each of the tasks not included in any of the task groups. The task correlation calculating means for calculating
Among the tasks not included in any of the task groups, the scheduling means for adding the task having the highest group correlation with the target task group to the task column of the target task group;
Item 17. The task scheduling program according to appendix 16, which is operated as the output unit that outputs information representing the task sequence for each task group.
(付記18)
コンピュータを、
前記タスクの処理の内容を表すタスク内容情報を更に含む前記タスク情報を取得する前記タスク取得手段と、
前記タスク情報から、当該タスク情報が表すタスクの計算量の程度を表す処理量を推定するタスク処理量推定手段と、
更に、1個以上の前記タスクの、前記タスク列でそれぞれ構成されるタスクグループが含む各タスクでアクセスされるメモリ領域と、複数の前記タスクグループのいずれにも含まれない前記タスク各々から選択された、前記タスクでアクセスされるメモリ領域の重なりの大きさを表すグループ相関を、複数の前記タスクグループ各々に対して算出する前記タスク相関算出手段と、
複数の前記タスクグループの、いずれにも含まれない前記タスクから対象タスクを順次選択し、複数の前記タスクグループ各々に対して、選択した前記対象タスクとの間の前記グループ相関と、前記対象タスクの前記処理量とから評価値を算出し、複数の前記タスクグループで前記評価値が最も高い前記タスクグループの前記タスク列に、前記対象タスクを加る前記スケジュール手段と、
前記タスクグループ毎の前記タスク列を表す情報を出力する前記出力手段と
して動作させる付記16に記載のタスクスケジューリングプログラム。
(Appendix 18)
Computer
The task acquisition means for acquiring the task information further including task content information representing the content of processing of the task;
From the task information, task processing amount estimation means for estimating a processing amount representing the degree of calculation amount of the task represented by the task information;
Further, one or more of the tasks are selected from a memory area accessed by each task included in the task group configured by the task column and each of the tasks not included in any of the plurality of task groups. Further, the task correlation calculating means for calculating a group correlation representing the size of the overlap of memory areas accessed by the task for each of the plurality of task groups,
A target task is sequentially selected from the tasks not included in any of the plurality of task groups, and for each of the plurality of task groups, the group correlation with the selected target task, and the target task The scheduling means for calculating an evaluation value from the processing amount of and adding the target task to the task column of the task group having the highest evaluation value among a plurality of task groups;
Item 17. The task scheduling program according to appendix 16, which is operated as the output unit that outputs information representing the task sequence for each task group.
(付記19)
コンピュータを、
前記タスク内容情報が、前記タスクの種類を表すタスク種類情報と、時系列の複数のフレームを含む動画像中の、前記タスクの処理の対象の領域である対象ブロックを含む前記フレームである対象フレームの中における、前記対象ブロックの位置を特定する情報と、前記動画像中の、前記タスクの前記対象ブロックを対象とする前記処理で参照される前記フレームである参照フレームを特定する情報とを含む、前記タスク情報を取得する前記タスク取得手段と、
前記タスク種類情報が、前記参照フレーム中の、前記対象ブロックに対応する領域の位置の推定と、前記対象フレームの中における前記対象ブロックの位置に対応する、前記参照フレームの中の位置から、前記参照フレームの中の推定した前記位置までの距離と方向を表す、前記対象ブロックの動きベクトルの算出を含む処理である、動き推定を表す場合、前記対象フレーム中における、前記対象ブロックの周囲の複数のブロックの、既に算出されている前記動きベクトル各々を取得し、取得した前記動きベクトル各々から前記対象ブロックの前記動きベクトルの予測値である予測ベクトルを生成し、生成した前記予測ベクトルと前記タスク情報から、前記タスク特定情報で特定される前記タスクでアクセスされる前記参照フレーム内の領域を推定し、推定した前記領域を格納する前記メモリ領域の配置を表す前記アクセス情報を生成し、前記タスク種類情報が動き補償を表す場合、前記対象ブロックの前記動きベクトルを取得して、取得した前記動きベクトルと前記タスク情報から、前記アクセス情報を生成するタスクアクセス推定手段と
として動作させる付記16乃至18のいずれかに記載のタスクスケジューリングプログラム。
(Appendix 19)
Computer
A target frame in which the task content information is a frame including task type information indicating the type of the task and a target block that is a target area for processing the task in a moving image including a plurality of time-series frames. Information for specifying the position of the target block, and information for specifying a reference frame in the moving image that is referred to in the processing for the target block of the task. The task acquisition means for acquiring the task information;
The task type information is obtained by estimating the position of the region corresponding to the target block in the reference frame, and the position in the reference frame corresponding to the position of the target block in the target frame. In the case of representing motion estimation, which is a process including calculation of a motion vector of the target block, which represents a distance and direction to the estimated position in a reference frame, a plurality of surroundings of the target block in the target frame Each of the motion vectors already calculated for the block of the current block, generate a prediction vector that is a predicted value of the motion vector of the target block from each of the acquired motion vectors, and generate the predicted vector and the task An area in the reference frame accessed by the task specified by the task specifying information from information And generating the access information representing an arrangement of the memory area storing the estimated area, and when the task type information represents motion compensation, obtaining the motion vector of the target block, The task scheduling program according to any one of supplementary notes 16 to 18, which is operated as a task access estimation unit that generates the access information from a motion vector and the task information.
(付記20)
コンピュータを、
前記タスク特定情報と、当該タスク特定情報で特定される前記タスクでアクセスされる前記メモリ領域の大きさを含むアクセス情報との組を記憶する前記アクセス領域記憶手段と、
前記タスク種類情報が動き推定を表す場合、前記対象ブロックの、周囲の複数のブロックの前記動きベクトル各々を取得し、取得した前記動きベクトル各々から、前記予測ベクトルの精度を推定する予測ベクトル精度推定手段と、
推定した前記精度を使用して、前記精度が高いほど、対応する前記対象ブロックを処理の対象とする前記タスクでアクセスされる前記メモリ領域の大きさが小さくなるように、前記メモリ領域の大きさを修正するアクセス領域修正手段と
して動作させる付記19に記載のタスクスケジューリングプログラム。
(Appendix 20)
Computer
The access area storage means for storing a set of the task identification information and access information including a size of the memory area accessed by the task identified by the task identification information;
When the task type information represents motion estimation, the motion vector of each of a plurality of surrounding blocks of the target block is acquired, and the accuracy of the prediction vector is estimated from each of the acquired motion vectors Means,
Using the estimated accuracy, the size of the memory region is such that the higher the accuracy, the smaller the size of the memory region accessed by the task that processes the corresponding target block. 20. The task scheduling program according to appendix 19, wherein the task scheduling program is operated as an access area correction unit that corrects an error.
(付記21)
コンピュータを、
推定した前記精度を使用して、前記精度が高いほど前記処理量が少なくなるように、前記処理量を修正するタスク処理量修正手段
として動作させる付記19又は20に記載のタスクスケジューリングプログラム。
(Appendix 21)
Computer
The task scheduling program according to appendix 19 or 20, wherein the task scheduling program is operated as task processing amount correcting means for correcting the processing amount so that the processing amount decreases as the accuracy increases, using the estimated accuracy.
(付記22)
コンピュータを、
前記タスク種類情報が動き推定を表す場合、前記予測ベクトルを取得し、前記アクセス情報として、前記対象ブロックの位置から前記予測ベクトル分移動した点である予測ベクトル指点の座標を算出し、前記タスク種類情報が動き補償を表す場合、前記対象ブロックの前記動きベクトルを取得して、前記アクセス情報として、前記対象ブロックの位置から前記動きベクトル分移動した点である動きベクトル指点の座標を算出する前記タスクアクセス取得手段と、
2つのタスクの前記タスク特定情報に関連付けられている前記アクセス情報である前記座標間の距離を算出して、2つの前記タスク間の前記タスク相関を求める前記タスク相関算出手段と
して動作させる付記16乃至19のいずれかに記載のタスクスケジューリングプログラム。
(Appendix 22)
Computer
When the task type information represents motion estimation, the prediction vector is acquired, and as the access information, coordinates of a prediction vector finger point that is a point moved by the prediction vector from the position of the target block are calculated, and the task type When the information represents motion compensation, the task obtains the motion vector of the target block, and calculates, as the access information, the coordinates of a motion vector finger point that is a point moved by the motion vector from the position of the target block Access acquisition means;
Supplementary notes for calculating the distance between the coordinates as the access information associated with the task specifying information of two tasks and operating as the task correlation calculating means for obtaining the task correlation between the two tasks The task scheduling program according to any one of 16 to 19.
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 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.
本発明は、キャッシュメモリを搭載した装置における処理タスクのスケジューリング装置、また特に、動画像を圧縮符号化する装置や、マルチコアやメニコアに対応した動画像圧縮符号化ソフトウェアなどに適用できる。 The present invention can be applied to a processing task scheduling apparatus in an apparatus equipped with a cache memory, and in particular, to an apparatus for compressing and encoding moving images, moving image compression and encoding software corresponding to multi-core and menicore, and the like.
1、3、4、5、6、7 タスクスケジューリング装置
101 タスク取得部
102 タスクアクセス取得部
103 タスク相関算出部
104 スケジュール部
105 アクセス領域記憶部
106 出力部
107 アクセス領域推定部
303 予測ベクトル精度推定部
304 アクセス領域修正部
406 グループアクセス算出部
407 グループ記憶部
508 タスク処理量推定部
509 タスク処理量記憶部
614 タスク処理量修正部
704 グループアクセス記憶部
1000 情報処理装置
1001 タスク生成部
1002 タスク実行部
1003 プロセッサ
1004 実行結果出力部
1005 動きベクトル記憶部
1006 データ入力部
1007 データ記憶部
1, 3, 4, 5, 6, 7
Claims (10)
前記タスクでアクセスされるメモリ領域の配置を表すアクセス情報を取得し、前記タスク特定情報に関連付けてアクセス領域記憶手段に格納するタスクアクセス取得手段と、
前記タスク特定情報と前記アクセス情報の組を記憶するアクセス領域記憶手段と、
2つの前記タスクの前記アクセス情報から、2つの前記タスクでアクセスされるメモリ領域の重複量を表すタスク相関を算出するタスク相関算出手段と、
前記タスクの実行順の列であるタスク列の最初又は最後の前記タスクと、前記タスク列に含まれない前記タスクのいずれかとの組合せ中、前記タスク相関が最も高い前記組合せの前記タスクが連続するように、前記タスク列に含まれない前記タスクを前記タスク列に加えるスケジュール手段と、
前記タスク列を表す情報を出力する出力手段と
を含むタスクスケジューリング装置。 Task acquisition means for acquiring a plurality of task information including task identification information for identifying a task that is a unit of processing;
Task access acquisition means for acquiring access information representing an arrangement of a memory area accessed by the task, and storing the access information in an access area storage means in association with the task identification information;
Access area storage means for storing a set of the task identification information and the access information;
Task correlation calculating means for calculating a task correlation representing an overlap amount of memory areas accessed by the two tasks from the access information of the two tasks;
Among the combinations of the first or last task in the task sequence which is the sequence of execution of the tasks and any of the tasks not included in the task sequence, the tasks of the combination having the highest task correlation are consecutive. Scheduling means for adding the task not included in the task sequence to the task sequence,
An output means for outputting information representing the task sequence.
前記タスク情報と前記アクセス情報から、当該タスク情報が表すタスクの計算量の程度を表す処理量を推定するタスク処理量推定手段とを含み、
前記タスク相関算出手段は、更に、1個以上の前記タスクの、前記タスク列で構成されるタスクグループ各々の中の、含まれる前記タスク各々の前記処理量の合計が所定値未満である、1個の前記タスクグループである対象タスクグループが含む、各タスクでアクセスされるメモリ領域と、前記タスクでアクセスされるメモリ領域の重なりの大きさを表すグループ相関を、前記タスクグループのいずれにも含まれない前記タスク各々に対して算出し、
前記スケジュール手段は、前記タスクグループのいずれにも含まれない前記タスク各々の中で、前記対象タスクグループとの間の前記グループ相関が最も高い前記タスクを、前記対象タスクグループの前記タスク列に加え、
前記出力手段は、前記タスクグループ毎の前記タスク列を表す情報を出力する
請求項1に記載のタスクスケジューリング装置。 The task acquisition means for acquiring the task information further including task content information representing the content of processing of the task;
From the task information and the access information, including a task processing amount estimation means for estimating a processing amount representing the degree of calculation amount of the task represented by the task information,
The task correlation calculating means further includes: one or more of the tasks, wherein the total processing amount of each of the tasks included in each of the task groups configured by the task sequence is less than a predetermined value. Each of the task groups includes a group correlation that represents a size of an overlap between a memory area accessed by each task and a memory area accessed by the task included in the target task group that is the task group. Not calculated for each of the tasks
The scheduling means adds the task having the highest group correlation with the target task group among the tasks not included in any of the task groups to the task column of the target task group. ,
The task scheduling apparatus according to claim 1, wherein the output unit outputs information representing the task sequence for each task group.
前記タスク情報から、当該タスク情報が表すタスクの計算量の程度を表す処理量を推定するタスク処理量推定手段とを含み、
前記タスク相関算出手段は、更に、1個以上の前記タスクの、前記タスク列でそれぞれ構成されるタスクグループが含む各タスクでアクセスされるメモリ領域と、複数の前記タスクグループのいずれにも含まれない前記タスク各々から選択された、前記タスクでアクセスされるメモリ領域の重なりの大きさを表すグループ相関を、複数の前記タスクグループ各々に対して算出し、
前記スケジュール手段は、複数の前記タスクグループの、いずれにも含まれない前記タスクから対象タスクを順次選択し、複数の前記タスクグループ各々に対して、選択した前記対象タスクとの間の前記グループ相関と、前記対象タスクの前記処理量とから評価値を算出し、複数の前記タスクグループで前記評価値が最も高い前記タスクグループの前記タスク列に、前記対象タスクを加え、
前記出力手段は、前記タスクグループ毎の前記タスク列を表す情報を出力する
請求項1に記載のタスクスケジューリング装置。 The task acquisition means for acquiring the task information further including task content information representing the content of processing of the task;
Task processing amount estimation means for estimating a processing amount representing the degree of calculation amount of the task represented by the task information from the task information,
The task correlation calculation means is further included in any one of the plurality of task groups and a memory area accessed by each task included in each task group configured by the task sequence of one or more of the tasks. Calculating a group correlation for each of the plurality of task groups, which is selected from each of the non-tasks and represents a size of an overlap of memory areas accessed by the task;
The scheduling means sequentially selects a target task from the tasks not included in any of the plurality of task groups, and the group correlation with the selected target task for each of the plurality of task groups And calculating an evaluation value from the processing amount of the target task, adding the target task to the task column of the task group having the highest evaluation value among a plurality of task groups,
The task scheduling apparatus according to claim 1, wherein the output unit outputs information representing the task sequence for each task group.
前記タスク種類情報が、前記参照フレーム中の、前記対象ブロックに対応する領域の位置の推定と、前記対象フレームの中における前記対象ブロックの位置に対応する、前記参照フレームの中の位置から、前記参照フレームの中の推定した前記位置までの距離と方向を表す、前記対象ブロックの動きベクトルの算出を含む処理である、動き推定を表す場合、前記対象フレーム中における、前記対象ブロックの周囲の複数のブロックの、既に算出されている前記動きベクトル各々を取得し、取得した前記動きベクトル各々から前記対象ブロックの前記動きベクトルの予測値である予測ベクトルを生成し、生成した前記予測ベクトルと前記タスク情報から、前記タスク特定情報で特定される前記タスクでアクセスされる前記参照フレーム内の領域を推定し、推定した前記領域を格納する前記メモリ領域の配置を表す前記アクセス情報を生成し、前記タスク種類情報が動き補償を表す場合、前記対象ブロックの前記動きベクトルを取得して、取得した前記動きベクトルと前記タスク情報から、前記アクセス情報を生成するタスクアクセス推定手段と
を含む請求項1乃至3のいずれかに記載のタスクスケジューリング装置。 A target frame in which the task content information is a frame including task type information indicating the type of the task and a target block that is a target area for processing the task in a moving image including a plurality of time-series frames. Information for specifying the position of the target block, and information for specifying a reference frame in the moving image that is referred to in the processing for the target block of the task. The task acquisition means for acquiring the task information;
The task type information is obtained by estimating the position of the region corresponding to the target block in the reference frame, and the position in the reference frame corresponding to the position of the target block in the target frame. In the case of representing motion estimation, which is a process including calculation of a motion vector of the target block, which represents a distance and direction to the estimated position in a reference frame, a plurality of surroundings of the target block in the target frame Each of the motion vectors already calculated for the block of the current block, generate a prediction vector that is a predicted value of the motion vector of the target block from each of the acquired motion vectors, and generate the predicted vector and the task An area in the reference frame accessed by the task specified by the task specifying information from information And generating the access information representing an arrangement of the memory area storing the estimated area, and when the task type information represents motion compensation, obtaining the motion vector of the target block, The task scheduling apparatus according to claim 1, further comprising: task access estimation means for generating the access information from a motion vector and the task information.
前記タスク種類情報が動き推定を表す場合、前記対象ブロックの、周囲の複数のブロックの前記動きベクトル各々を取得し、取得した前記動きベクトル各々から、前記予測ベクトルの精度を推定する予測ベクトル精度推定手段と、
推定した前記精度を使用して、前記精度が高いほど、対応する前記対象ブロックを処理の対象とする前記タスクでアクセスされる前記メモリ領域の大きさが小さくなるように、前記メモリ領域の大きさを修正するアクセス領域修正手段と
を含む請求項4に記載のタスクスケジューリング装置。 The access area storage means for storing a set of the task identification information and access information including a size of the memory area accessed by the task identified by the task identification information;
When the task type information represents motion estimation, the motion vector of each of a plurality of surrounding blocks of the target block is acquired, and the accuracy of the prediction vector is estimated from each of the acquired motion vectors Means,
Using the estimated accuracy, the size of the memory region is such that the higher the accuracy, the smaller the size of the memory region accessed by the task that processes the corresponding target block. The task scheduling apparatus according to claim 4, further comprising: an access area correction unit that corrects
を含む請求項4又は5に記載のタスクスケジューリング装置。 The task scheduling apparatus according to claim 4, further comprising: a task processing amount correction unit that corrects the processing amount so that the processing amount decreases as the accuracy increases, using the estimated accuracy.
前記タスク相関算出手段は、2つのタスクの前記タスク特定情報に関連付けられている前記アクセス情報である前記座標間の距離を算出して、2つの前記タスク間の前記タスク相関を求める
請求項1乃至4のいずれかに記載のタスクスケジューリング装置。 When the task type information represents motion estimation, the task access acquisition unit acquires the prediction vector, and as the access information, coordinates of a prediction vector finger point that is a point moved by the prediction vector from the position of the target block When the task type information represents motion compensation, the motion vector finger point is a point obtained by obtaining the motion vector of the target block and moving as the access information by the motion vector from the position of the target block. The coordinates of
The task correlation calculating unit calculates a distance between the coordinates, which is the access information associated with the task specifying information of two tasks, and obtains the task correlation between the two tasks. 5. The task scheduling apparatus according to any one of 4 above.
プロセッサと、
当該プロセッサが実行するタスクのタスク情報を生成し、前記タスクスケジューリング装置に入力するタスク生成手段と、
前記タスクスケジューリング装置から前記タスク列を表す情報を取得し、取得した前記タスク列の順序に従い、前記プロセッサに前記タスクを実行させるタスク実行手段と
を含むタスクスケジュールシステム。 A task scheduling apparatus according to any one of claims 1 to 7;
A processor;
Task generation means for generating task information of a task to be executed by the processor and inputting the task information to the task scheduling device;
A task scheduling system comprising: task execution means for acquiring information representing the task sequence from the task scheduling device and causing the processor to execute the task according to the order of the acquired task sequence.
前記タスクでアクセスされるメモリ領域の配置を表すアクセス情報を取得し、前記タスク特定情報に関連付けてアクセス領域記憶手段に格納し、
前記タスク特定情報と前記アクセス情報の組をアクセス領域記憶手段に記憶し、
2つの前記タスクの前記アクセス情報から、2つの前記タスクでアクセスされるメモリ領域の重複量を表すタスク相関を算出し、
前記タスクの実行順の列であるタスク列の最初又は最後の前記タスクと、前記タスク列に含まれない前記タスクのいずれかとの組合せ中、前記タスク相関が最も高い前記組合せの前記タスクが連続するように、前記タスク列に含まれない前記タスクを前記タスク列に加え、
前記タスク列を表す情報を出力する
タスクスケジューリング方法。 Get multiple pieces of task information including task identification information that identifies the task that is a unit of processing,
Obtaining access information representing the location of the memory area accessed by the task, storing it in the access area storage means in association with the task identification information;
Storing a set of the task identification information and the access information in an access area storage means;
From the access information of the two tasks, calculate a task correlation that represents the overlap amount of the memory areas accessed by the two tasks,
Among the combinations of the first or last task in the task sequence, which is the sequence of execution of the tasks, and any of the tasks not included in the task sequence, the tasks of the combination having the highest task correlation are consecutive. So that the task not included in the task column is added to the task column,
A task scheduling method for outputting information representing the task sequence.
処理のまとまりであるタスクを特定するタスク特定情報を含むタスク情報を複数取得するタスク取得手段と、
前記タスクでアクセスされるメモリ領域の配置を表すアクセス情報を取得し、前記タスク特定情報に関連付けてアクセス領域記憶手段に格納するタスクアクセス取得手段と、
前記タスク特定情報と前記アクセス情報の組を記憶するアクセス領域記憶手段と、
2つの前記タスクの前記アクセス情報から、2つの前記タスクでアクセスされるメモリ領域の重複量を表すタスク相関を算出するタスク相関算出手段と、
前記タスクの実行順の列であるタスク列の最初又は最後の前記タスクと、前記タスク列に含まれない前記タスクのいずれかとの組合せ中、前記タスク相関が最も高い前記組合せの前記タスクが連続するように、前記タスク列に含まれない前記タスクを前記タスク列に加えるスケジュール手段と、
前記タスク列を表す情報を出力する出力手段と
して動作させるタスクスケジューリングプログラム。 Computer
Task acquisition means for acquiring a plurality of task information including task identification information for identifying a task that is a unit of processing;
Task access acquisition means for acquiring access information representing an arrangement of a memory area accessed by the task, and storing the access information in an access area storage means in association with the task identification information;
Access area storage means for storing a set of the task identification information and the access information;
Task correlation calculating means for calculating a task correlation representing an overlap amount of memory areas accessed by the two tasks from the access information of the two tasks;
Among the combinations of the first or last task in the task sequence, which is the sequence of execution of the tasks, and any of the tasks not included in the task sequence, the tasks of the combination having the highest task correlation are consecutive. Scheduling means for adding the task not included in the task sequence to the task sequence,
A task scheduling program that operates as output means for outputting information representing the task sequence.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012007856A JP2013150094A (en) | 2012-01-18 | 2012-01-18 | Task scheduling device, task scheduling method, and task scheduling program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012007856A JP2013150094A (en) | 2012-01-18 | 2012-01-18 | Task scheduling device, task scheduling method, and task scheduling program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013150094A true JP2013150094A (en) | 2013-08-01 |
Family
ID=49047208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012007856A Pending JP2013150094A (en) | 2012-01-18 | 2012-01-18 | Task scheduling device, task scheduling method, and task scheduling program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013150094A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021005287A (en) * | 2019-06-27 | 2021-01-14 | 富士通株式会社 | Information processing apparatus and arithmetic program |
JP2021018711A (en) * | 2019-07-23 | 2021-02-15 | 富士通株式会社 | Task execution management device, task execution management method, and task execution management program |
CN113326114A (en) * | 2021-06-11 | 2021-08-31 | 深圳前海微众银行股份有限公司 | Batch task processing method and device |
JP2022160691A (en) * | 2015-12-28 | 2022-10-19 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | Data driven scheduler on multiple computing cores |
-
2012
- 2012-01-18 JP JP2012007856A patent/JP2013150094A/en active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022160691A (en) * | 2015-12-28 | 2022-10-19 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | Data driven scheduler on multiple computing cores |
JP7554795B2 (en) | 2015-12-28 | 2024-09-20 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | Data-driven scheduler on multiple computing cores |
JP2021005287A (en) * | 2019-06-27 | 2021-01-14 | 富士通株式会社 | Information processing apparatus and arithmetic program |
JP2021018711A (en) * | 2019-07-23 | 2021-02-15 | 富士通株式会社 | Task execution management device, task execution management method, and task execution management program |
US11556377B2 (en) | 2019-07-23 | 2023-01-17 | Fujitsu Limited | Storage medium, task execution management device, and task execution management method |
JP7367365B2 (en) | 2019-07-23 | 2023-10-24 | 富士通株式会社 | Task execution management device, task execution management method, and task execution management program |
CN113326114A (en) * | 2021-06-11 | 2021-08-31 | 深圳前海微众银行股份有限公司 | Batch task processing method and device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101998120B (en) | Image coding device, image coding method, and image coding integrated circuit | |
US8615039B2 (en) | Optimized allocation of multi-core computation for video encoding | |
US20160080768A1 (en) | Encoding system using motion estimation and encoding method using motion estimation | |
JP2008109632A (en) | Motion vector detector and its method | |
CN111373441B (en) | Time gaze point rendering using motion estimation | |
JP2015513151A5 (en) | ||
KR20200100190A (en) | Image Transformation for Machine Learning | |
JP2013150094A (en) | Task scheduling device, task scheduling method, and task scheduling program | |
JP7402623B2 (en) | Filter processing device and its control method | |
Nisa et al. | Parallel ccd++ on gpu for matrix factorization | |
JP2003324743A5 (en) | ||
KR20170026540A (en) | Motion vector selection for video encoding | |
US20100080298A1 (en) | Refined Weighting Function and Momentum-Directed Genetic search pattern algorithm | |
JP5934380B2 (en) | Variable depth compression | |
CN107810520B (en) | Image processing apparatus and method | |
JP2012181710A (en) | Object tracking device, method and program | |
CN103329532B (en) | Quantization controls apparatus and method and quantization controls program | |
Shuai et al. | Accelerate multi-thread path-dependent digital image correlation by minimizing thread competition for real-time deformation measurement | |
CN110351560A (en) | A kind of coding method, system and electronic equipment and storage medium | |
JP5906993B2 (en) | Encoding apparatus, encoding method, and program | |
Sun et al. | An efficient Markov chain-based data prefetching for motion estimation of HEVC on multi-core DSPs | |
CN107659822B (en) | A kind of method and device for the frame type judging video frame | |
JP7184175B2 (en) | Operation unit and operation allocation method | |
JP4989348B2 (en) | Embedded program development system for parallel processors | |
US20200068214A1 (en) | Motion estimation using pixel activity metrics |