JP2013150094A - Task scheduling device, task scheduling method, and task scheduling program - Google Patents

Task scheduling device, task scheduling method, and task scheduling program Download PDF

Info

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
Application number
JP2012007856A
Other languages
Japanese (ja)
Inventor
Fumiyo Takano
芙美代 鷹野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2012007856A priority Critical patent/JP2013150094A/en
Publication of JP2013150094A publication Critical patent/JP2013150094A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a task scheduling device which schedules tasks having more overlapping memory access regions than other tasks in such a way that they can be executed in succession.SOLUTION: Task information including task specific information for identifying a task is acquired in plurality, and access information indicating the arrangement of memory regions to be accessed in the task is acquired, which information is stored in access region storage means after being correlated to the task specific information. From the access information on two of the tasks, task correlation indicating the overlapping amount of memory regions to be accessed in two of the tasks is calculated. To ensure that, among combinations of the task at the top or the end of a task queue which is the queue of the tasks in which order they are executed with any of the tasks not included in the task queue, the tasks of combinations where the task correlation is highest are contiguous, the tasks not included in the task queue are added to the task queue and information indicating the task queue is output.

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 Document 1 describes the contents of processing based on this standard. Further, Non-Patent Document 2 describes details of implementation of a moving image encoding device based on this standard.

動き補償予測は、符号化対象フレームと参照フレームの間の動き情報を用いて、参照フレームの画像を補正した画像(予測画像)を生成する技術である。動画像符号化装置は、動き補償予測により生成した予測画像と符号化対象画像の差分と、フレーム間の動きを表す動きベクトルのみを符号化することで、動画像情報を圧縮する。動き補償予測では、符号化済みの画像から符号化対象となる画像が予測される。参照画像が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 Document 2, an adaptive search algorithm is used in which a motion vector is searched from a point close to the search start point, and if it can be determined that a sufficiently good motion vector has been obtained, the search is terminated. There are many cases. Therefore, when searching for a motion vector, if the distance between the motion vector as a search result and the search start point is short, the search amount is small, and if the distance is long, the search amount is large. Since the prediction vector is predicted to be close to the motion vector, the search amount can be reduced by using the prediction vector as a search start point. If the prediction vector is a search start point, the search amount changes depending on the accuracy of the prediction vector, that is, the distance between the prediction vector and the motion vector.

次に、プロセッサアーキテクチャにおける技術背景を述べる。   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 Patent Document 1, Patent Document 2, and Patent Document 3. These techniques are techniques that increase the cache hit rate by collecting tasks that have similar memory access areas and executing the processes collectively while data is in the cache.

図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に記載の方法は、同一参照フレームの処理を連続して行うことで、キャッシュのヒット率を向上させる。   Patent Document 1 describes a moving image decompression method that effectively uses a cache by continuously processing the same-position macroblocks of two consecutive B pictures. The method described in Patent Document 1 improves the cache hit rate by continuously processing the same reference frame.

特許文献2には、複数のフレームを参照可能で参照フレームがブロックごとに異なる場合にもキャッシュがヒットするように、同一フレームを参照するタスクをまとめ、連続して実行する動き補償装置が記載されている。上述のタスクは、いずれかのブロックにおいて1枚のフレームを参照して行う処理を表す。特許文献2に記載の技術は、特許文献1に記載の技術よりも柔軟にタスクの処理順を変更し、同一フレームを参照するタスクをより多く連続して実行することでキャッシュヒット率を上げることができる。   Patent Document 2 describes a motion compensation device that collects and continuously executes tasks that refer to the same frame so that a cache hits even when a plurality of frames can be referred to and the reference frame is different for each block. ing. The above-described task represents processing performed with reference to one frame in any block. The technique described in Patent Document 2 increases the cache hit rate by changing the task processing order more flexibly than the technique described in Patent Document 1 and executing more tasks that refer to the same frame continuously. Can do.

図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 Patent Document 2. In FIG. 22, for example, a task 1-1 represents a task that refers to the reference frame 1 in a block in the encoding target frame, and tasks 2-1 to 2-3 are references in the block in the encoding target frame. Represents a task that references frame 2. These tasks are not necessarily processing in the same block. PE (Processor Element) 1 to PE4 each represent a processor core. In FIG. 22, for example, task 1-1 is performed by PE1, and tasks 2-1 to 2-3 are performed by PE2.

特許文献2に記載の動き補償装置は、並列処理を行う場合、図22のように同一フレームを参照する処理を同一プロセッサコアで行うことで、コアごとにキャッシュ内のデータを繰返し使用することができる。   When performing parallel processing, the motion compensation device described in Patent Document 2 can repeatedly use data in a cache for each core by performing processing referring to the same frame with the same processor core as shown in FIG. it can.

特許文献3には、同一フレームの同一領域を参照するブロックの処理を続けて実行することでキャッシュヒット率を上げる技術による復号装置が記載されている。特許文献2の復号装置は、各タスクのアクセス範囲を算出し、同じアクセス範囲のタスクを連続実行するようタスクスケジュールすることでキャッシュヒット率を上げる。特許文献3に記載の技術は、特許文献2に記載の技術よりもさらにキャッシュヒット率が高くなるように、同じメモリ領域にアクセスする異なるフレームのタスクも連続して実行するように、タスクをスケジューリングすることができる。   Patent Document 3 describes a decoding device based on a technique for increasing a cache hit rate by continuously executing processing of blocks that refer to the same area of the same frame. The decoding device of Patent Document 2 calculates the access range of each task, and increases the cache hit rate by scheduling the task so that tasks in the same access range are continuously executed. The technique described in Patent Document 3 schedules tasks so that tasks of different frames that access the same memory area are continuously executed so that the cache hit rate is higher than the technique described in Patent Document 2. can do.

図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 Patent Document 3. It is a figure showing the example of. In FIG. 23, for example, task 1-1 represents a task executed in block 1-1 of encoding target frame 1, and task 2-1 represents a task executed in block 2-1 of encoding target frame 2. . The result of scheduling the tasks 1-1 to 3-4 in FIG. 23 by the decoding apparatus of Patent Document 3 is the processing order in FIG.

図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 Patent Document 3. The task scheduling system shown in FIG. 25 includes a task acquisition unit that acquires a task, a task access area calculation unit that calculates an access area of the acquired task, and a memory area where the task access area is arbitrarily divided. It includes a task grouping unit that determines whether or not a task is included and groups tasks for each divided memory area, and a schedule unit that sorts the processing order of tasks for each group.

図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 Patent Document 3. FIG. 3 is a diagram illustrating an example of a memory range accessed by the tasks A, B, and C. An example of scheduling tasks A, B, and C that access a memory in the range shown in FIG. 3 will be described. The memory is divided into areas represented by (1) and (2) in the figure, and some of the divided memory areas overlap. First, the task acquisition unit acquires a task, for example, task A. The task access area calculation unit calculates the access area of task A. Since the access area of task A is included in the memory area of (1), the task grouping unit places task A in group G1. This is repeated until all tasks are grouped. Task B is arranged in group G1 in the same manner as task A. Since task C is included in the memory area (2), task C is placed in group G2. When the grouping of all tasks is completed, the schedule unit sorts the tasks using the group number as a key. For example, the tasks are sorted in the order of tasks A, B, and C, and the tasks are processed in the sorted order. The processing order of tasks within a group and the processing order of groups depend on the implementation.

特許文献4には、プログラムの各ステップ毎に調べた、データ項目に対するアクセス命令の種類及び回数から、プロセス及びデータ項目を分割し、プロセス間のインタフェースを表示するシステム解析装置が記載されている。   Patent Document 4 describes a system analysis apparatus that divides processes and data items and displays an interface between the processes based on the type and number of access instructions for the data items examined at each step of the program.

特許文献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には、プロセスがアクセスする対象のファイルにより、関連するプロセスをグループ化し、プロセスのグループ単位で稼働性能を監視する性能監視方法が記載されている。   Patent Document 6 describes a performance monitoring method in which related processes are grouped according to a file to be accessed by the process, and operation performance is monitored in units of the process group.

特開2000−278693号公報JP 2000-278893 A 特開2011−061320号公報JP 2011-063120 A WO2008/038513WO2008 / 038513 特開2001−092651号公報JP 2001-092651 A 特開2004−178571号公報JP 2004-178571 A 特開2009−265707号公報JP 2009-265707 A

ITU-T Recommendation H.264 ''Advanced video coding for generic audiovisual services,'' May 2003.ITU-T Recommendation H.264 `` Advanced video coding for generic audiovisual services, '' May 2003. K. P. Lim, G. Sullivan and T. Wiegand, "Text Description of Joint Model Reference Encoding Methods and Decoding Concealment Methods", Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG, Busan, Korea, Apr. 2005K. P. Lim, G. Sullivan and T. Wiegand, "Text Description of Joint Model Reference Encoding Methods and Decoding Concealment Methods", Joint Video Team (JVT) of ISO / IEC MPEG and ITU-T VCEG, Busan, Korea, Apr. 2005

特許文献1に記載の技術には、ブロックごとに参照フレームが異なる場合、キャッシュヒットしにくく、効果が少ないという問題がある。   The technique described in Patent Document 1 has a problem that when the reference frame is different for each block, a cache hit is difficult and the effect is small.

特許文献2に記載の技術には、画像サイズが大きくなると同一フレーム内であってもキャッシュに載っているとは限らず、キャッシュミスが多発する可能性があるという問題がある。特許文献2に記載の技術には、さらに、各参照フレームあたりのタスク数は一定ではないため、並列処理の場合にプロセッサコアあたりの処理量を均等化するのは困難であるという問題がある。   The technique described in Patent Document 2 has a problem that when the image size is increased, even in the same frame, it is not always placed in the cache, and cache misses may occur frequently. The technique described in Patent Document 2 further has a problem that it is difficult to equalize the processing amount per processor core in the case of parallel processing because the number of tasks per reference frame is not constant.

特許文献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 Patent Document 3 groups tasks that access a predetermined memory area so that they are continuously executed. For example, when scheduling a task that accesses a range as shown in FIG. 3, in order to improve the cache hit rate, it is necessary to continuously process tasks A and C having overlapping memory access areas. However, when the tasks A, B, and C are scheduled by the task scheduling method described in Patent Document 3, the tasks A and B extracted as tasks that access the area of (1) are processed in succession. Thereafter, the task C extracted as a task accessing the area (2) is processed. At this time, the processes of tasks A and B and task C are not always performed continuously. Since the memory access areas of task A and task B do not overlap, the cache memory cannot be used. On the other hand, since task A and task C are not processed consecutively even though part of the memory access area overlaps, the data in the cache cannot be reused.

このように、特許文献3の技術は、タスクがアクセスするメモリ領域が同一メモリ領域内か否かだけグループ化する。特許文献3の技術には、メモリアクセス領域が重複するタスクを連続して実行するよう、複数のタスクをスケジューリングすることができないという問題がある。   As described above, the technique of Patent Document 3 groups only whether or not the memory area accessed by the task is in the same memory area. The technique of Patent Document 3 has a problem that a plurality of tasks cannot be scheduled so that tasks having overlapping memory access areas are continuously executed.

特許文献4、5、6の技術には、アクセスするメモリ領域が重複するタスクを、連続して実行するよう、複数のタスクをスケジューリングすることができないという問題がある。   The techniques disclosed in Patent Documents 4, 5, and 6 have a problem that a plurality of tasks cannot be scheduled so that tasks having overlapping memory areas to be accessed are continuously executed.

本発明の目的は、メモリアクセス領域がより多く重複するタスクを連続実行できるようスケジュールする、タスクスケジューリング装置を提供することにある。   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.

第1、第2の実施形態のタスクスケジューリング装置1の構成を表すブロック図である。It is a block diagram showing the structure of the task scheduling apparatus 1 of 1st, 2nd embodiment. 第1の実施形態のタスクスケジューリング装置1の動作を表すフローチャートである。It is a flowchart showing operation | movement of the task scheduling apparatus 1 of 1st Embodiment. タスクのアクセス領域の例を表す図である。It is a figure showing the example of the access area of a task. タスクのアクセス領域の二番目の例を表す図である。It is a figure showing the 2nd example of the access area of a task. 第2の実施形態のタスクスケジューリング装置1の動作の例を表すフローチャートである。It is a flowchart showing the example of operation | movement of the task scheduling apparatus 1 of 2nd Embodiment. 複数のタスクの予測ベクトルの例を表す図である。It is a figure showing the example of the prediction vector of a some task. 第3実施形態のタスクスケジューリング装置3の構成を表す図である。It is a figure showing the structure of the task scheduling apparatus 3 of 3rd Embodiment. 第3実施形態のタスクスケジューリング装置3の動作を表すフローチャートである。It is a flowchart showing operation | movement of the task scheduling apparatus 3 of 3rd Embodiment. 並列処理が可能な複数のタスクのアクセス領域の例を表す図である。It is a figure showing the example of the access area of the some task in which parallel processing is possible. 図9の例のタスクがアクセスするアクセス領域を表として表した図である。FIG. 10 is a diagram illustrating an access area accessed by the task in the example of FIG. 図9の例のタスクの、タスク間の相関を表す図である。It is a figure showing the correlation between tasks of the task of the example of FIG. タスクスケジューリング装置4が、図9のタスクをグルーピングした結果を表す図である。FIG. 10 is a diagram illustrating a result of grouping the tasks of FIG. 9 by the task scheduling device 4. 第4実施形態のタスクスケジューリング装置4の構成を表す図である。It is a figure showing the structure of the task scheduling apparatus 4 of 4th Embodiment. 第4実施形態のタスクスケジューリング装置4の動作の例を表すフローチャートである。It is a flowchart showing the example of operation | movement of the task scheduling apparatus 4 of 4th Embodiment. 複数のプロセッサコアへのタスクの割り当ての例を表す図である。It is a figure showing the example of assignment of the task to a plurality of processor cores. 第5の実施形態のタスクスケジューリング装置5の構成を表す図である。It is a figure showing the structure of the task scheduling apparatus 5 of 5th Embodiment. 第5の実施形態のタスクスケジューリング装置5の動作の例を表すフローチャートである。It is a flowchart showing the example of operation | movement of the task scheduling apparatus 5 of 5th Embodiment. 第6の実施形態のタスクスケジューリング装置6の構成を表す図である。It is a figure showing the structure of the task scheduling apparatus 6 of 6th Embodiment. 第6の実施形態のタスクスケジューリング装置6の動作の例を表すフローチャートである。It is a flowchart showing the example of operation | movement of the task scheduling apparatus 6 of 6th Embodiment. H.264の規格に基づいた動画像符号化装置の例を表す図である。1 is a diagram illustrating an example of a video encoding device based on the H.264 standard. エンコード処理におけるフレーム構造の例を表す図である。It is a figure showing the example of the frame structure in an encoding process. タスクの参照フレームと、特許文献2の動き補償装置によるタスクのプロセッサコアへの割り当ての例を表す図である。FIG. 10 is a diagram illustrating an example of task reference frames and assignment of tasks to processor cores by the motion compensation device of Patent Literature 2. 参照フレーム内のブロックと、そのブロックを参照するタスクが実行される符号化対象フレーム内のブロックの関係の例と、特許文献3の復号装置が決定した、それらのタスクの処理順の例を表す図である。An example of a 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 an example of processing order of those tasks determined by the decoding device of Patent Document 3 FIG. 特許文献3の技術でタスクのグルーピングを行った結果と、タスクのグループのプロセッサコアへの割り当ての例を表す図である。It is a figure showing the example of the result of having performed the grouping of the task by the technique of patent document 3, and the allocation of the task group to the processor core. 特許文献3に記載の技術によりタスクをスケジューリングするタスクスケジューリングシステムの構成の例を表す図である。FIG. 10 is a diagram illustrating an example of a configuration of a task scheduling system that schedules tasks by the technique described in Patent Literature 3. 特許文献3に記載の技術によるタスクスケジューリングシステムの動作の例を表す図である。10 is a diagram illustrating an example of an operation of a task scheduling system according to a technique described in Patent Literature 3. FIG. 第7の実施形態のタスクスケジューリング装置7の構成を表す図である。It is a figure showing the structure of the task scheduling apparatus 7 of 7th Embodiment. 第7の実施形態のタスクスケジューリング装置7の動作の例を表すフローチャートである。It is a flowchart showing the example of operation | movement of the task scheduling apparatus 7 of 7th Embodiment. 情報処理装置1000の構成の一例を表すブロック図である。FIG. 3 is a block diagram illustrating an example of a configuration of an information processing device 1000.

次に、本発明の実施形態について図面を参照して詳細に説明する。   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 information processing apparatus 1000 including the task scheduling apparatus 1 according to the first embodiment of this invention.

図29を参照すると、情報処理装置1000は、タスク生成部1001と、タスクスケジューリング装置1と、タスク実行部1002と、プロセッサ1003と、実行結果出力部1004と、データ入力部1006と、データ記憶部1007を含む。情報処理装置1000は、動きベクトル記憶部1005を含んでいてもよい。   Referring to FIG. 29, the information processing apparatus 1000 includes a task generation unit 1001, a task scheduling apparatus 1, a task execution unit 1002, a processor 1003, an execution result output unit 1004, a data input unit 1006, and a data storage unit. 1007 is included. The information processing apparatus 1000 may include a motion vector storage unit 1005.

データ入力部1006は、入力データを受信し、データ記憶部1007に格納する。入力データは、例えば、時系列の複数のフレームを含む動画像のデータである。   The data input unit 1006 receives input data and stores it in the data storage unit 1007. The input data is, for example, moving image data including a plurality of time-series frames.

データ記憶部1007は、入力された入力データを記憶する。   The data storage unit 1007 stores input data that has been input.

タスク生成部1001は、データ記憶部1007に格納されている入力データから、プロセッサ1003が実行するためのタスクと、そのタスクを表すタスク情報の組を、複数生成する。タスクは、データ記憶部1007に格納されている入力データに対する処理のまとまりである。タスクは、例えば、動画像中のあるフレーム(符号化対象フレーム)に含まれるあるブロック(符号化対象ブロック)における動き推定の処理である。タスクは、例えば、動画像中のあるフレームに含まれるあるブロックにおける動き補償の処理であってもよい。   The task generation unit 1001 generates a plurality of sets of tasks to be executed by the processor 1003 and task information representing the tasks from input data stored in the data storage unit 1007. A task is a group of processes for input data stored in the data storage unit 1007. The task is, for example, motion estimation processing in a certain block (encoding target block) included in a certain frame (encoding target frame) in the moving image. The task may be, for example, a motion compensation process in a certain block included in a certain frame in the moving image.

タスクスケジューリング装置1は、複数のタスクのタスク情報を受信し、後述のようにタスクの実行順序(タスク列)を決定し、タスクの実行順序を表す情報を出力する。   The task scheduling apparatus 1 receives task information of a plurality of tasks, determines the task execution order (task sequence) as described later, and outputs information representing the task execution order.

タスク実行部1002は、タスク生成部1001からタスクを受信し、タスクスケジューリング装置1からタスクの実行順序を表す情報を受信する。タスク実行部1002は、タスクスケジューリング装置1が決定した実行順序に従って、プロセッサ1003に各タスクを実行させる。   The task execution unit 1002 receives a task from the task generation unit 1001 and receives information indicating the task execution order from the task scheduling apparatus 1. The task execution unit 1002 causes the processor 1003 to execute each task according to the execution order determined by the task scheduling apparatus 1.

プロセッサ1003はタスク実行部1002からの指示に従い、タスクを実行する。プロセッサ1003はキャッシュメモリを備えている。プロセッサ1003は、タスクの実行結果のデータを、順次実行結果出力部1004に送信する。   The processor 1003 executes a task in accordance with an instruction from the task execution unit 1002. The processor 1003 includes a cache memory. The processor 1003 sequentially transmits task execution result data to the execution result output unit 1004.

実行結果出力部1004は、プロセッサ1003がタスクを実行した結果を表す情報をプロセッサ1003から受信し、出力する。タスクの種類が動き推定である場合、実行結果出力部1004は、符号化対象ブロックを特定する情報と関連付けて、算出した、その符号化対象ブロックの動きベクトルを、動きベクトル記憶部1005に格納してもよい。   The execution result output unit 1004 receives information indicating the result of the task executed by the processor 1003 from the processor 1003 and outputs the information. When the task type is motion estimation, the execution result output unit 1004 stores the calculated motion vector of the encoding target block in association with the information for specifying the encoding target block in the motion vector storage unit 1005. May be.

動きベクトル記憶部1005は、符号化対象ブロックを特定する情報が関連付けられた、動きベクトルを記憶する。   The motion vector storage unit 1005 stores a motion vector associated with information for specifying an encoding target block.

なお、情報処理装置1000がタスクスケジューリング装置1を含まなくてもよい。この場合、タスクスケジューリング装置1が、情報処理装置1000からタスク情報を受信し、情報処理装置1000に実行順序を表す情報を送信することができるよう、タスクスケジューリング装置1と情報処理装置1000は、通信可能に接続されていればよい。また、後述の他の実施形態では、情報処理装置1000の構成は、タスクスケジューリング装置1を、各実施形態のタスクスケジューリング装置で置き換えた構成になる。   Note that the information processing apparatus 1000 may not include the task scheduling apparatus 1. In this case, the task scheduling apparatus 1 and the information processing apparatus 1000 communicate with each other so that the task scheduling apparatus 1 can receive task information from the information processing apparatus 1000 and transmit information indicating the execution order to the information processing apparatus 1000. It is only necessary to be connected. In other embodiments described later, the information processing apparatus 1000 has a configuration in which the task scheduling apparatus 1 is replaced with the task scheduling apparatus of each embodiment.

以下では、タスクの処理が動き推定の処理である例について具体的に説明する。ただし、タスクの処理は、動き推定以外の、例えば動き補償やその他の、タスクがアクセスするメモリ領域であるアクセス領域の推定が可能な処理や、アクセス領域が既知である処理であってもよい。タスクスケジューリング装置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 task scheduling apparatus 1 can perform task scheduling in a similar manner if the task access area is known at the time of scheduling. The task access area may be a predicted value. In the example described in this embodiment, one task is processing in one macroblock. The task scheduling apparatus 1 performs scheduling with processing in one macroblock as one task.

本発明では、タスク同士のメモリアクセス領域の重複量をタスクの相関とし、相関の高いタスクを連続して実行することでキャッシュの有効利用を図る。   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 task scheduling apparatus 1 according to the first embodiment of this invention.

図1を参照すると、本実施形態のタスクスケジューリング装置1は、タスク取得部101と、タスクアクセス取得部102と、アクセス情報記憶部105と、タスク相関算出部103と、スケジュール部104と、出力部106とを含む。タスクスケジューリング装置1は、タスクアクセス推定部107を含んでいてもよい。   Referring to FIG. 1, a task scheduling apparatus 1 according to the present embodiment includes a task acquisition unit 101, a task access acquisition unit 102, an access information storage unit 105, a task correlation calculation unit 103, a schedule unit 104, and an output unit. 106. The task scheduling apparatus 1 may include a task access estimation unit 107.

タスク取得部101は、スケジューリングの対象となる複数のタスクのタスク情報を入力する。   The task acquisition unit 101 inputs task information of a plurality of tasks to be scheduled.

タスクを表すタスク情報は、そのタスクを特定するタスク特定情報を含んでいればよい。タスク情報は、例えば動き推定や動き補償タスク等の、タスクの種類を表す情報を含んでいてもよい。タスク情報は、そのタスクのアクセス領域を表す情報を含んでいてもよい。アクセス領域を表す情報は、アクセス領域の配置を表す(特定する)アクセス情報であればよい。また、アクセス領域を表す情報は、アクセス領域の配置を算出するための情報であってもよい。   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 task scheduling apparatus 1 may be configured to include the task access estimation unit 107. The task access estimation unit 107 calculates the access area arrangement from the information for calculating the access area arrangement included in the task information. The task access estimation unit 107 transmits information identifying the task and access information indicating the calculated access area arrangement to the task access acquisition unit 102.

また、タスク情報が、アクセス領域の配置を特定するアクセス情報を含む場合、タスク取得部101が、タスク特定情報とアクセス情報をタスクアクセス取得部102に送信すればよい。タスク情報が、そのタスクのアクセス領域を表す情報を含まない場合、タスク取得部101はタスク特定情報をタスクアクセス取得部102に送信すればよい。   Further, when the task information includes access information for specifying the arrangement of the access area, the task acquisition unit 101 may transmit the task specification information and the access information to the task access acquisition unit 102. If the task information does not include information indicating the access area of the task, the task acquisition unit 101 may transmit the task identification information to the task access acquisition unit 102.

タスクアクセス取得部102は、タスク取得部101がタスク情報を取得したタスクの、アクセス情報を取得する。タスクアクセス取得部102は、タスク特定情報と、アクセスアクセス情報を、対応付けてアクセス領域記憶部105に格納する。   The task access acquisition unit 102 acquires access information of the task for which the task acquisition unit 101 has acquired task information. The task access acquisition unit 102 stores the task identification information and the access access information in the access area storage unit 105 in association with each other.

アクセス領域記憶部105は、タスク特定情報とアクセス情報の組を記憶する。   The access area storage unit 105 stores a set of task specifying information and access information.

タスク相関算出部103は、アクセス領域記憶部105が記憶するアクセス情報から、2つのタスク間の相関(タスク相関)を算出する。タスク相関算出部103は、2つのタスク間の相関を、例えば、それらのタスクのアクセス領域の重複部分のサイズにより決定すればよい。   The task correlation calculation unit 103 calculates a correlation between two tasks (task correlation) from the access information stored in the access area storage unit 105. The task correlation calculation unit 103 may determine the correlation between two tasks based on, for example, the size of the overlapping portion of the access areas of those tasks.

スケジュール部104は、タスク間の相関が高い2つのタスクが連続して実行されるよう、タスクの実行順序を決定する。   The schedule unit 104 determines the task execution order so that two tasks having a high correlation between tasks are continuously executed.

出力部106は、決定した実行順序を表す情報を出力する。   The output unit 106 outputs information representing the determined execution order.

次に、本実施形態の動作について、図面を参照して詳細に説明する。   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 task scheduling apparatus 1 of this embodiment.

また、図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 task scheduling apparatus 1 schedules tasks A, B, and C that access a range as shown in FIG.

まず、タスク取得部101がタスク、例えばタスクAのタスク情報を取得する(ステップS101)。   First, the task acquisition unit 101 acquires task information of a task, for example, task A (step S101).

前述のように、タスク情報が、アクセス領域の配置を表すアクセス情報を含んでいてもよい。この場合、タスク取得部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 task acquisition unit 101 may transmit access information to the task access acquisition unit 102. Further, the task information may include information for calculating the arrangement of access areas. When the task information includes information for calculating the access area arrangement, after the operation of step S101, the task access estimation unit 107 determines the access area information from the information for calculating the access area arrangement included in the task information. Calculate the placement. Then, the task access estimation unit 107 may transmit access information indicating the access area arrangement to the task access acquisition unit 102.

アクセス領域の配置は、例えば、メモリ上に配置され、タスクがアクセスして利用するデータが、例えば画像のように二次元のデータで、アクセス領域が矩形で表されるのであれば、メモリ上におけるアクセス領域の左上と右下の座標であればよい。メモリ上に配置されている、タスクがアクセスして利用するデータが、一次元のデータであれば、アクセス領域の配置は、データの始点のアドレスと終点のアドレスや、データの始点のアドレスとデータ長であればよい。   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 access estimation unit 107 may use any existing method such as a method in which the median of the motion vector obtained as a result of the search in the left, upper, and upper right blocks of the encoding target block is used as a prediction vector, A prediction vector may be calculated. The coordinates representing the position of the encoding target block may be the coordinates of the upper left point in the encoding target frame of the encoding target block, for example. The task searches a search range centered on a point moved by the predicted vector from the same coordinates that represent the position of the encoding target block on the reference frame. In other words, the task accesses a memory area (access area) corresponding to the search range. The size of the search range may be a predetermined size.

この場合、タスクアクセス推定部107は、参照フレームを特定する情報と、符号化対象ブロックの位置を表す座標と、予測ベクトルから、アクセス領域の配置を算出すればよい。   In this case, the task access estimation unit 107 may calculate the access area arrangement from the information specifying the reference frame, the coordinates representing the position of the encoding target block, and the prediction vector.

次に、タスクアクセス取得部102が、タスク情報を取得したタスク(例えば、前述のタスクA)のアクセス情報を取得し(ステップS102)、そのタスクのタスク特定情報と取得したアクセス情報を関連付けて、アクセス領域記憶部105に格納する。   Next, the task access acquisition unit 102 acquires the access information of the task that acquired the task information (for example, the above-described task A) (step S102), associates the task specifying information of the task with the acquired access information, Stored in the access area storage unit 105.

タスクアクセス取得部102は、タスク取得部101やタスクアクセス推定部107からアクセス情報を取得する。タスクアクセス取得部102は、例えば、タスク生成部1001が算出し、図示はしていないが、各タスクのアクセス情報を格納するための記憶部に格納しておいたアクセス情報を、その記憶部から読み出してもよい。   The task access acquisition unit 102 acquires access information from the task acquisition unit 101 and the task access estimation unit 107. For example, the task access acquisition unit 102 calculates the access information stored in the storage unit for storing the access information of each task from the storage unit, which is calculated by the task generation unit 1001 and is not illustrated. You may read.

タスクスケジューリング装置1は、タスクアクセス取得部102が全てのタスクのアクセス情報を取得するまで(ステップS103、No)、ステップS101からS102の動作を繰り返す。   The task scheduling apparatus 1 repeats the operations in steps S101 to S102 until the task access acquisition unit 102 acquires access information for all tasks (No in step S103).

タスクアクセス取得部102が全てのタスクのアクセス情報の取得を完了すると(ステップS103、Yes)、タスク相関算出部103がタスク間の相関を算出する(ステップS104)。   When the task access acquisition unit 102 completes acquisition of access information for all tasks (step S103, Yes), the task correlation calculation unit 103 calculates a correlation between tasks (step S104).

タスク相関算出部103は、まず、アクセス領域記憶部105にアクセス情報が格納されているタスク2つの組合せ全ての相関を、アクセス領域記憶部105から読み出した、アクセス情報から算出すればよい。   First, the task correlation calculation unit 103 may calculate the correlation of all the combinations of two tasks whose access information is stored in the access area storage unit 105 from the access information read from the access area storage unit 105.

アクセス情報が、例えばアクセス領域の左上と右下の点の座標などの、アクセス領域の位置と範囲を表す情報であれば、タスク相関算出部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 correlation calculation unit 103 determines the access from the access information of the two tasks. What is necessary is just to calculate the overlap amount of an area | region. The overlap amount is, for example, the size of the memory of the overlap portion. The task correlation calculation unit 103 may set the calculated overlap amount as the correlation between two corresponding tasks. The access information may be information indicating the position of the access area (for example, coordinates indicating the center of the access area). And the task correlation calculation part 103 is good also as the correlation of a task by calculating the value showing the grade of the duplication amount of two tasks from the access information like 2nd Embodiment mentioned later.

タスクの相関がアクセス領域の重複量である場合、アクセス領域が図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 scheduling unit 104 determines the task execution order so that a set of tasks having a high correlation continues (step S105).

まず、スケジュール部104は、例えば、相関が最も高いタスクの組を選択し、それらの二つのタスクの実行順序を決める。スケジュール部104は、相関が最も高い二つのタスクの実行順序を、どのように決めてもよい。スケジュール部104は、実行順序を決めたタスクをスケジュール済みとする。   First, for example, the schedule unit 104 selects a set of tasks having the highest correlation and determines the execution order of these two tasks. The schedule unit 104 may determine the execution order of the two tasks having the highest correlation. The schedule unit 104 sets the task whose execution order is determined as scheduled.

全てのタスクのスケジューリングが終了していない場合(ステップS106、No)、スケジュール部104は、既にスケジューリング済みとしたタスクとの相関が最も高いタスクを選択する(ステップS105)。スケジュール部104は、相関が高いタスクが連続して実行されるようそのタスクの実行順序を決める。   When the scheduling of all tasks has not been completed (No at Step S106), the scheduling unit 104 selects a task having the highest correlation with a task that has already been scheduled (Step S105). The schedule unit 104 determines the execution order of tasks so that tasks with high correlation are executed continuously.

スケジュール部104は、選択しスケジューリング済みとしたタスクが存在する場合、最後に選択しスケジューリング済みとしたタスクとの相関が最も高いタスクを、選択すればよい。スケジュール部104は、相関が最も高い二つのタスクの次のタスクを選択する際には、二つのタスクのいずれかと最も相関が高いタスクを選択すればよい。そして、スケジュール部104は、既に選択済みの二つのタスクのうち、次に選択したタスクとの相関が高い方のタスクを後に実行するよう実行順序を決めればよい。   When there is a task that has been selected and scheduled, the scheduling unit 104 may select a task having the highest correlation with the last selected and scheduled task. When selecting the next task of the two tasks having the highest correlation, the scheduling unit 104 may select the task having the highest correlation with one of the two tasks. Then, the scheduling unit 104 may determine the execution order so that the task having the higher correlation with the next selected task among the already selected tasks is executed later.

図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 schedule unit 104 is the order of A, C, B or the order of C, A, B.

図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 schedule unit 104 first selects task A and task C, and assumes that scheduling has been completed. Next, the scheduling unit 104 selects the task D having the highest correlation with the task A or the correlation with the task C among the tasks not yet selected. Since the correlation between task C and task D is higher than the correlation between task A and task D, in addition to task A and task C, scheduling unit 104 executes task C and task D continuously. The execution order of task A, task C, and task D is determined. The scheduling unit 104 may determine the execution order so that task A, task C, and task D are in order. Next, the scheduling unit 104 may select a task B whose correlation with the task A or the correlation with the task C is lower than the task D, and determine the execution order so that the task B is executed last.

スケジュール部104は、最後に選択しスケジューリング済みとしたタスクとの間の相関だけでなく、他のスケジューリング済みのタスクとの間の相関を使用して、タスクの選択を行ってもよい。スケジュール部104は、例えば、タスク処理順におけるタスク間の距離(時間)に応じて、新しくスケジュールされたタスクとの相関ほど影響が大きくなる重み係数算出してもよい。そして、スケジュール部104は、算出した係数をスケジューリング済みの各タスクとの間の相関に掛けた値の和の大きさによって、タスクを選択してもよい。   The scheduling unit 104 may select a task using not only the correlation with the task selected last and scheduled, but also the correlation with other scheduled tasks. For example, the schedule unit 104 may calculate a weighting factor that has a greater influence as the correlation with the newly scheduled task is increased according to the distance (time) between tasks in the task processing order. The scheduling unit 104 may select a task based on the sum of values obtained by multiplying the calculated coefficient by the correlation with each scheduled task.

また、スケジュール部104は、既に実行順序を決めているタスクのうち、実行順序が最初のタスク又は最後のタスクとの間の相関が、最も高いタスクを選択してもよい。そして、スケジュール部104は、選択したタスクと、実行順序が最初のタスクとの間の相関が最も高い場合、その実行順序が最初のタスクの前に選択したタスクを実行するように、実行順序を決めてもよい。また、スケジュール部104は、選択したタスクと、実行順序が最後のタスクとの間の相関が最も高い場合、その実行順序が最後のタスクの後に選択したタスクを実行するように、実行順序を決めてもよい。   In addition, the scheduling unit 104 may select a task having the highest correlation with the first task or the last task in the execution order among the tasks whose execution order has already been determined. Then, when the correlation between the selected task and the first task in the execution order is the highest, the scheduling unit 104 sets the execution order so that the execution order executes the task selected before the first task. You may decide. In addition, when the correlation between the selected task and the last task in the execution order is the highest, the scheduling unit 104 determines the execution order so that the selected task is executed after the last task. May be.

スケジューリング部104が全てのタスクを選択し、全てのタスクの実行順序をの決定が完了すると(ステップS106、Yes)、出力部106は、実行順序を表す情報を出力する(ステップS107)。   When the scheduling unit 104 selects all tasks and the determination of the execution order of all tasks is completed (Yes in step S106), the output unit 106 outputs information indicating the execution order (step S107).

以上で説明した本実施形態には、アクセスするメモリ領域が重複するタスクを含む複数のタスクを実行する場合に、キャッシュのヒット率が向上し、タスクの実行速度が高速化するという効果がある。   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 correlation calculation unit 103 calculates the overlap of the memory areas accessed by the task, and the task set having a high correlation between tasks is preferentially executed continuously. This is because the unit 104 determines the task execution order. When the processor executes tasks according to the execution order determined by the schedule unit 104, the cache hit rate is improved and the cache memory can be used effectively. As a result, the processing speed of the task is increased.

例えば、特許文献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 Patent Document 3, the execution order cannot be determined so that the tasks A and C having overlapping memory areas to be accessed are continuously executed. . On the other hand, when the task scheduling apparatus of the present embodiment similarly performs the task scheduling in the example of FIG. 3, the task execution order is such that task A and task C having overlapping memory areas to be accessed are executed in succession. In order. As a result, the cache data can be used effectively and the cache hit rate is improved.

(第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 correlation calculation unit 103 according to the present embodiment uses the prediction vector information of each task, which is one piece of information used for motion estimation, between tasks. Is calculated. The type of task may be motion compensation. When the task type is motion compensation processing, the prediction vector in the following description may be read as the motion vector.

本実施形態のタスクスケジューリング装置1の構成は、図1の第1の実施形態のタスクスケジューリング装置1の構成と同じである。   The configuration of the task scheduling apparatus 1 of the present embodiment is the same as the configuration of the task scheduling apparatus 1 of the first embodiment of FIG.

ただし、第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 region estimation unit 107 acquires the prediction vector, and calculates the coordinates of the prediction vector finger point from the prediction vector and the coordinates representing the position of the encoding target block. The access area estimation unit 107 uses the coordinates of the predicted vector finger point as access information. When the task information includes a prediction vector, the access area estimation unit 107 acquires the prediction vector from the task information. When the prediction vector is stored in a storage unit (not shown), the access area estimation unit 107 acquires the prediction vector from the storage unit. When the task is motion estimation, the access region estimation unit 107 may calculate the prediction vector without acquiring the prediction vector from the task information or the like. The access region estimation unit 107 may acquire a motion vector that has already been calculated around the encoding target block and is necessary for calculating the prediction vector of the encoding target block, and calculate the prediction vector. The motion vector that has already been calculated may be stored in the motion vector storage unit 1005 for storing the motion vector that has already been calculated, which is included in the information processing apparatus 1000 described above, for example. The access area estimation unit 107 may read a necessary motion vector from the motion vector storage unit 1005.

タスクアクセス取得部102は、予測ベクトル指点の座標であるアクセス情報を取得する。   The task access acquisition unit 102 acquires access information that is the coordinates of the predicted vector finger point.

アクセス領域記憶部105は、タスク特定情報と、予測ベクトル指点の座標であるアクセス情報を、関連付けて記憶する。   The access area storage unit 105 stores task identification information and access information that is the coordinates of the predicted vector finger point in association with each other.

タスク相関算出部103は、2つのタスクの予測ベクトル指点間の距離を算出し、それらの2つのタスクの相関を表す値にする。   The task correlation calculation unit 103 calculates a distance between predicted vector finger points of two tasks and sets a value representing a correlation between the two tasks.

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 schedule unit 104 according to the present embodiment determines the task execution order so that two tasks having a small correlation value and a high correlation value are successively executed.

次に、本実施形態の動作について、図面を参照して詳細に説明する。   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 task scheduling apparatus 1 of this embodiment. Compared with FIG. 2 representing the operation of the first embodiment, the operation of FIG. 5 is an operation in which step S102 of the operation of FIG. 2 is replaced with step S202, step S104 is replaced with step S204, and step S105 is replaced with step S205. is there. The operation of the step assigned with the same reference numeral as in FIG. 2 is the same as the operation of the step assigned with the reference numeral in the first embodiment, and thus the description thereof is omitted.

図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 task scheduling apparatus 1 determines the execution order of each task whose prediction vector is shown in FIG. 6 will also be described.

ステップS101の後、アクセス領域推定部107がアクセス領域の配置を算出する場合、アクセス領域推定部107は、予測ベクトル指点の座標を算出する。   After step S101, when the access region estimation unit 107 calculates the access region arrangement, the access region estimation unit 107 calculates the coordinates of the predicted vector finger point.

タスクアクセス取得部102は、ステップS101でタスク情報を取得したタスクの、予測ベクトル指点の座標であるアクセス情報を取得する(ステップS202)。   The task access acquisition unit 102 acquires access information that is the coordinates of the predicted vector finger point of the task for which task information has been acquired in step S101 (step S202).

タスクアクセス取得部102は、ステップS101でタスク情報を取得したタスクの、タスク特定情報とアクセス情報(本実施形態では予測ベクトル指点の座標)を関連付けて、アクセス領域記憶部105に格納する。   The task access acquisition unit 102 associates the task specifying information and the access information (in this embodiment, the coordinates of the predicted vector finger point) of the task for which the task information has been acquired in step S101, and stores them in the access area storage unit 105.

前タスクの、タスク特定情報とアクセス情報の組の、アクセス領域記憶部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 area storage unit 105 is completed (step S103, Yes), the task correlation calculation unit 103 calculates the prediction vector finger point between the two task sets. The distance is calculated (step S204). The task correlation calculation unit 103 sets the calculated predicted vector finger point distance as a correlation between two corresponding tasks (a value indicating the correlation). As described above, in this embodiment, the higher the correlation between tasks, the smaller the value representing the correlation.

タスク相関算出部103は、まず、タスク取得部101がタスク情報を取得したタスクから選択した2つのタスクの組全ての、予測ベクトル指点間距離を算出すればよい。   First, the task correlation calculation unit 103 may calculate the predicted vector finger point distances for all the two task sets selected from the tasks for which the task acquisition unit 101 has acquired task information.

図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 scheduling unit 104 determines the execution order of these tasks so that the two tasks having the highest correlation are executed successively (S205). As described above, the smaller the distance between predicted vector finger points, which is a value representing the correlation, the higher the correlation between the two corresponding tasks. Therefore, the schedule unit 104 selects the task set having the smallest distance between the predicted vector finger points. To do.

図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 schedule unit 104 selects task A and task C and assumes that they have been scheduled.

スケジュール部104が全てのタスクを選択してスケジューリング済みとしていない場合(ステップS106、No)、スケジュール部104は、既にスケジューリング済みのタスクとの間の相関が最も高いタスクを選択する(ステップS205)。スケジュール部104は、選択したタスクをスケジューリング済みにする。スケジュール部104は、既に選択したタスクの中で最初に実行されるタスクと最初に実行されるタスクのうち、最後に選択したタスクとの相関が高い方を、最後に選択したタスクと連続して実行されるようタスクの実行順序を決める。スケジュール部104は、既に選択したタスクの中で最初に実行されるタスクと間の相関が、最後に実行されるタスクと最後に選択したタスクと間の相関より高い場合、最後に選択したタスクの実行順序を最初にする。逆の場合、スケジュール部104は、最後に選択したタスクの実行順序を最後にする。   When the scheduling unit 104 selects all tasks and does not schedule them (step S106, No), the scheduling unit 104 selects a task having the highest correlation with the already scheduled tasks (step S205). The schedule unit 104 makes the selected task scheduled. The scheduling unit 104 continuously selects a task that has a higher correlation with the last selected task among the tasks that are executed first and the task that is executed first among the already selected tasks. Determine the task execution order to be executed. If the correlation between the task executed first among the tasks already selected is higher than the correlation between the task executed last and the task selected last, the scheduling unit 104 Make the execution order first. In the opposite case, the schedule unit 104 puts the last selected task in the execution order.

図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 schedule unit 104 sets the execution order of task B before (first) task A, and task A and task B. Is executed continuously.

ステップS205におけるスケジュール部104の動作は、相関の高さを予測ベクトル指点間距離の小ささで判定する点以外、第1の実施形態のステップS105における動作と同じである。   The operation of the schedule unit 104 in step S205 is the same as the operation in step S105 of the first embodiment, except that the level of correlation is determined by the small distance between predicted vector finger points.

なお、ステップS205で、スケジュール部104は、予測ベクトル指点と既に選択したタスクの予測ベクトル指点の重心との距離が最も小さいタスクを選択してもよい。その場合、まだ全てのタスクを選択していない場合(ステップS106、No)、タスクスケジューリング装置1はステップS204の動作に戻ってもよい。   In step S205, the schedule unit 104 may select a task having the smallest distance between the predicted vector finger point and the center of gravity of the predicted vector finger point of the already selected task. In this case, if not all tasks have been selected (No at Step S106), the task scheduling apparatus 1 may return to the operation at Step S204.

そして、ステップS204では、タスク相関算出部103は、既に選択したタスクの予測ベクトル指点の重心を算出し、算出した重心と、まだ選択していないタスクの予測ベクトル指点との距離を算出すればよい。   In step S204, the task correlation calculation unit 103 calculates the centroid of the predicted vector finger point of the already selected task, and calculates the distance between the calculated centroid and the predicted vector finger point of the task not yet selected. .

スケジュール部104が全てのタスクの実行順序を決定すると(ステップS106、Yes)、出力部106は、実行順序を表す情報を出力する(ステップS107)。   When the schedule unit 104 determines the execution order of all tasks (step S106, Yes), the output unit 106 outputs information indicating the execution order (step S107).

以上で説明した本実施形態には、第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 scheduling unit 104 determines the level of correlation based on the predicted vector finger point distance. Therefore, there is no need to calculate the overlapping amount of access areas. In addition, the correlation calculation does not require information indicating the arrangement of access areas, which are memory areas accessed by tasks. If information indicating the access area arrangement is necessary, even if the task scheduling apparatus 1 does not calculate the access area arrangement, for example, another processing unit such as the task generation unit 1001 of the information processing apparatus 1000 accesses the access area. It is necessary to calculate the arrangement of the areas. Therefore, by configuring the task scheduling apparatus as in the present embodiment, it is possible to simplify the process for determining the task execution order, and the amount of computation is reduced.

(第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 task scheduling apparatus 3 of the present embodiment.

図7を参照すると、本実施形態のタスクスケジューリング装置3は、図1の第1の実施形態のタスクスケジューリング装置1の構成に加えて、予測ベクトル精度推定部303と、アクセス領域修正部304を含む。   Referring to FIG. 7, the task scheduling apparatus 3 of the present embodiment includes a prediction vector accuracy estimation unit 303 and an access area correction unit 304 in addition to the configuration of the task scheduling apparatus 1 of the first embodiment of FIG. .

動き推定では、予測ベクトルを中心として動きベクトルの探索が行われる。動きベクトルの探索範囲の上限は設定により決められているが、適応的な探索アルゴリズムを用いる場合には実際に探索する範囲は一定ではない。予測ベクトルと動きベクトルが近い、つまり予測ベクトルの精度が高いことがわかっていれば、探索量は少なく探索範囲即ちメモリアクセス範囲も狭くてよい。反対に予測ベクトルの精度が低いことがわかっていれば、メモリアクセス範囲は広い必要がある。そこで、本実施の形態では、予測ベクトルの精度に応じてメモリアクセス範囲サイズを変更する。   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 accuracy estimation unit 303 acquires information on motion vectors already calculated for the blocks around the encoding target block. The prediction vector accuracy estimation unit 303 estimates the accuracy of the prediction vector of the encoding target block from the acquired motion vector information.

アクセス領域修正部304は、予測ベクトル精度推定部303が推定した予測ベクトルの精度に応じて、アクセス領域記憶部105に格納されているアクセス領域の配置を修正する。アクセス領域修正部304は、アクセス領域が予測ベクトル指点を中心とした所定の大きさの領域である場合、領域の大きさを予測ベクトルの精度に応じて修正すればよい。   The access area correction unit 304 corrects the arrangement of the access areas stored in the access area storage unit 105 according to the accuracy of the prediction vector estimated by the prediction vector accuracy estimation unit 303. When the access area is an area having a predetermined size centered on the prediction vector finger point, the access area correction unit 304 may correct the size of the area according to the accuracy of the prediction vector.

本実施形態の他の構成要素は、同一の符号を付した第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 area correction unit 304 does not correct the arrangement of the access areas stored in the access area storage unit 105, but the access area estimation unit 107 determines the size of the access area according to the accuracy of the prediction vector. And the location of the access area may be estimated.

次に、本発明のタスクスケジューリング装置3の動作について、図面を参照して詳細に説明する。   Next, the operation of the task scheduling apparatus 3 of the present invention will be described in detail with reference to the drawings.

図8は本実施形態のタスクスケジューリング装置3の動作を表すフローチャートである。図8を図1の第1の実施形態のタスクスケジューリング装置1の動作を表すフローチャートと比較すると、ステップS102とステップS103の間にステップS304〜ステップS306が存在する点が異なる。   FIG. 8 is a flowchart showing the operation of the task scheduling apparatus 3 of this embodiment. 8 is compared with the flowchart representing the operation of the task scheduling apparatus 1 of the first embodiment of FIG. 1, the difference is that steps S304 to S306 exist between step S102 and step S103.

ステップ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 accuracy measurement unit 303 receives from the task acquisition unit 101 information indicating task identification information and the position of the encoding target block of the task for which the task acquisition unit 101 has acquired task information in step S101. The prediction vector accuracy measurement unit 303 acquires information on motion vectors of blocks around the encoding target block (step S304).

予測ベクトル精度推定部303は、前述の動きベクトル記憶部1005から、動きベクトルの情報を取得すればよい。予測ベクトル精度推定部303が情報を取得する動きベクトルは、符号化対象ブロックの予測ベクトルの算出に使われる動きベクトルであればよい。前述のように、例えばH.264では、符号化対象ブロックの左と上と右上のブロックの動きベクトルを使って、その符号化対象ブロックの動きベクトルが算出される。この場合、予測ベクトル精度推定部303は、符号化対象ブロックの左と上と右上のブロックの動きベクトルを取得すればよい。予測ベクトル精度推定部303は、予測ベクトルの算出に使われる動きベクトル以外の、周囲のブロックの算出済みの動きベクトルを取得してもよい。   The prediction vector accuracy estimation unit 303 may acquire motion vector information from the motion vector storage unit 1005 described above. The motion vector from which the prediction vector accuracy estimation unit 303 obtains information may be a motion vector used for calculation of the prediction vector of the encoding target block. As described above, for example, H.264. In H.264, the motion vectors of the encoding target block are calculated using the motion vectors of the left, top, and upper right blocks of the encoding target block. In this case, the prediction vector accuracy estimation unit 303 may acquire the motion vectors of the left, upper, and upper right blocks of the encoding target block. The prediction vector accuracy estimation unit 303 may acquire motion vectors that have already been calculated for surrounding blocks other than the motion vector used for calculation of the prediction vector.

予測ベクトル精度推定部303は、取得した動きベクトルから、符号化対象ブロックの予測ベクトルの精度を推定する(ステップS305)。   The prediction vector accuracy estimation unit 303 estimates the accuracy of the prediction vector of the encoding target block from the acquired motion vector (step S305).

予測ベクトル精度推定部303は、予測ベクトルの精度の推定を、取得した動きベクトルのばらつきの大きさにより行えばよい。例えば、予測ベクトル精度推定部303は、取得した動きベクトルのx方向・y方向それぞれの分散を算出すればよい。周囲のベクトルのx方向・y方向それぞれの分散が小さいほど、予測ベクトルの精度が高いことになる。予測ベクトル精度推定部303は、更に、算出したx方向・y方向の分散値の例えば対数をとって正規化した値を算出すればよい。予測ベクトル精度推定部303は、算出した値をタスクアクセス領域修正のための係数(修正係数)にすればよい。予測ベクトル精度推定部303は、タスク特定情報と、x方向・y方向の2つの修正係数を、アクセス領域修正部304に送信する。   The prediction vector accuracy estimation unit 303 may perform estimation of the accuracy of the prediction vector based on the magnitude of the obtained motion vector variation. For example, the prediction vector accuracy estimation unit 303 may calculate the variances of the acquired motion vector in the x direction and the y direction, respectively. The smaller the variance in the x and y directions of surrounding vectors, the higher the accuracy of the prediction vector. The predicted vector accuracy estimation unit 303 may further calculate a normalized value by taking, for example, the logarithm of the calculated variance value in the x direction / y direction. The predicted vector accuracy estimation unit 303 may use the calculated value as a coefficient for correcting the task access area (correction coefficient). The prediction vector accuracy estimation unit 303 transmits the task identification information and the two correction coefficients in the x direction and the y direction to the access area correction unit 304.

修正係数の詳細な算出手順は、例えば次の通りである。予測ベクトル精度推定部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 accuracy estimation unit 303 first calculates the variance of each motion vector in the x direction and the y direction. Next, the predicted vector accuracy estimation unit 303 calculates the logarithm of the calculated variance in each of the x direction and the y direction. The base of the logarithm may be determined appropriately. Further, if there is a possibility that the variance is less than 1, the prediction vector accuracy estimation unit 303 may calculate the logarithm after adding 1 to the variance value. The prediction vector accuracy estimation unit 303 sets the correction coefficient to 1 if the logarithm of the calculated variance in each of the x direction and y direction is equal to or greater than a predetermined value, and calculates the variance in the calculated x direction and y direction if it is less than the predetermined value. A value obtained by dividing the logarithm of x by a predetermined value may be used as the correction coefficient in the x direction and the y direction.

各タスクの処理において、そのタスクの符号化対象ブロックの予測ベクトルの精度に応じた探索範囲の変更を行う場合、その変更を行うアルゴリズムが既知であるなら、予測ベクトル精度推定部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 accuracy estimation unit 303 The correction coefficient may be calculated as follows. That is, the prediction vector accuracy estimation unit 303 calculates the ratio of the search range in the x direction and the ratio of the search range in the y direction before and after the change of the search range, and sets the correction coefficient in the x direction and the correction coefficient in the y direction, respectively. do it.

アクセス領域修正部304は、アクセス領域記憶部105に格納されている、受信したタスク特定情報に対応するアクセス情報を修正する(ステップS306)。   The access area correction unit 304 corrects the access information corresponding to the received task identification information stored in the access area storage unit 105 (step S306).

アクセス情報が表すアクセス領域は、タスクアクセス取得部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 access acquisition unit 102 stores the access area in the access area storage unit 105. The access area correction unit 304 may multiply the received x-direction and y-direction correction coefficients by the sizes of the x-direction and y-direction areas, respectively. When the correction coefficient calculated as described above is multiplied by the size of the region in the x direction and the y direction, the smaller the variance of the motion vectors of the surrounding blocks, the narrower the access region. The correction coefficient does not have to be a value calculated as described above as long as the variance of the motion vectors of the surrounding blocks is smaller and the access area is narrower. The predicted vector accuracy correction unit 303 sets an upper limit on the size of the correction coefficient so that the size of the access area does not exceed a predetermined size regardless of the degree of accuracy. Good. For example, as in the above-described example, the prediction vector accuracy correcting unit 303 sets the correction coefficient when the accuracy evaluation value (dispersion or logarithm of dispersion in the above example) exceeds a predetermined range to the worse accuracy. It may be set to 1.

ステップ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 task scheduling apparatus 3 may include an access region estimation unit 107 that calculates the arrangement of access regions, and the prediction vector accuracy estimation unit 303 may transmit a correction coefficient to the access region estimation unit 107. The access area estimation unit 107 may multiply the received predetermined correction coefficient by a predetermined size to obtain the access area size. In this case, the access area correction unit 304 does not correct the access information. Furthermore, the access area correction unit 304 may not exist.

次に、本実施の形態の効果について説明する。   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 task scheduling device 3, in addition to the effects of the first embodiment, the cache hit rate when executing the task is further improved, There is an effect that the execution speed is further improved.

その理由は、予測ベクトル精度推定部303が予測ベクトルの精度を表す値を算出し、アクセス領域修正部304が、予測ベクトルの精度が高いほどアクセス領域の大きさが小さくなるよう、アクセス領域の大きさを修正するからである。   The reason is that the prediction vector accuracy estimation unit 303 calculates a value representing the accuracy of the prediction vector, and the access region correction unit 304 increases the size of the access region so that the size of the access region decreases as the prediction vector accuracy increases. It is because it corrects.

動き推定では、タスクは設定された探索範囲全体に対して必ずアクセスするとは限らない。例えば、タスクが、設定された探索範囲全体に対して、符号化対象ブロックと類似するブロックの探索を完了する前に、類似度が所定の基準以上であるブロックが発見された場合に、そのブロックの位置を動きベクトルの指点として検出し、探索を終了する場合がある。このような場合、タスクが実際にアクセスする範囲は、探索範囲全体のうち、予測ベクトル指点である探索開始点から、検出した動きベクトル指点までの探索経路でアクセスする範囲だけである。従って、予測ベクトルの精度が高く、予測ベクトル指点と動きベクトル指点が近い場合は、タスクがアクセスする範囲は狭くなる。一方、予測ベクトルの精度が低く、予測ベクトル指点と動きベクトル指点が遠い場合は、タスクがアクセスする範囲は広くなる。   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 area correction unit 304 according to the present embodiment is not an access area when the entire search area set in advance is searched, but an area that is actually accessed by the task estimated from the accuracy of the prediction vector. Modify the access area so that Thereby, the task correlation calculation unit 103 can use a range close to the actual memory access range for calculation of the task correlation. Therefore, the accuracy of task correlation, which is an overlapping portion of access areas, calculated by the access correlation calculation unit 103 is improved. Therefore, the cache hit rate when the tasks are executed in the execution order determined by the task scheduling device 3 is further improved, the cache data can be used more efficiently, and the task execution speed is further improved.

(第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 task scheduling apparatus 4 of this embodiment.

本実施形態のタスクスケジューリング装置4は、マルチコアプロセッサやメニコアプロセッサによりタスクを並列処理する場合のスケジューリングを行う。コアごとにキャッシュを持つ並列処理プロセッサでキャッシュを有効利用するためには、同じメモリ領域を参照するタスクを同じプロセッサコアで連続して実行することが重要である。さらに、効率よく並列処理するためにはプロセッサコアあたりの処理量を均等化する必要がある。   The task scheduling apparatus 4 according to the present embodiment performs scheduling when tasks are processed in parallel by a multicore processor or a menicore processor. In order to effectively use the cache in a parallel processor having a cache for each core, it is important to continuously execute a task referring to the same memory area on the same processor core. Furthermore, in order to perform parallel processing efficiently, it is necessary to equalize the processing amount per processor core.

特許文献2の技術でスケジューリングをした場合、処理量を考慮せずにスケジューリングするため、プロセッサコア毎の処理量が偏ってしまう。さらに特許文献3の技術で、メモリアクセス領域ごとに分割されたグループごとにプロセッサコアに割り当てた場合、グループ毎の処理量は均等にはならない。   When scheduling is performed using the technique of Patent Document 2, scheduling is performed without considering the processing amount, and thus the processing amount for each processor core is biased. Furthermore, when the technique of Patent Document 3 is assigned to a processor core for each group divided for each memory access area, the processing amount for each group is not equal.

図24は、特許文献3の技術でタスクのグルーピングを行った結果と、タスクのグループのプロセッサコア(PE1、PE2)への割り当ての例を表す図である。   FIG. 24 is a diagram illustrating a result of grouping tasks with the technique of Patent Document 3 and an example of assignment of task groups to processor cores (PE1, PE2).

図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 Patent Document 3, the number of tasks is biased as 1 and 3.

本実施形態では、図29のプロセッサ1003は複数のプロセッサコアでタスクを実行する。本実施形態のタスクスケジューリング装置4は、プロセッサ1003が実行する複数のタスクを、各プロセッサコアに割り当てる、複数のタスクグループにグルーピングする。タスクスケジューリング装置4は、プロセッサコア数をタスクグループのグループ数として受信し、以下で説明する動作により、実行の対象となる複数のタスクを、プロセッサコア数のタスクグループに、数が均等になるよう割り当てる。1つのタスク当たりの処理量は均等であれば、各タスクグループに含まれるタスクの処理量の合計はそれぞれ均等である。そして、タスクの実行時には、例えば図29のタスク実行部1002が、各グループをプロセッサコアに割り当てる。   In this embodiment, the processor 1003 in FIG. 29 executes a task with a plurality of processor cores. The task scheduling apparatus 4 according to the present embodiment groups a plurality of tasks executed by the processor 1003 into a plurality of task groups assigned to each processor core. The task scheduling apparatus 4 receives the number of processor cores as the number of task group groups, and performs the operations described below so that the number of tasks to be executed is equalized to the number of processor core task groups. assign. If the processing amount per task is equal, the total processing amount of tasks included in each task group is equal. Then, when executing a task, for example, the task execution unit 1002 in FIG. 29 assigns each group to a processor core.

図13を参照すると、タスクスケジューリング装置4は、タスク取得部101と、タスクアクセス取得部102と、アクセス領域記憶部105と、タスク相関算出部103と、スケジュール部104と、出力部106と、グループアクセス算出部406と、グループ記憶部407を含む。タスクスケジューリング装置4は、アクセス領域推定部107を含んでいてもよい。   Referring to FIG. 13, the task scheduling apparatus 4 includes a task acquisition unit 101, a task access acquisition unit 102, an access area storage unit 105, a task correlation calculation unit 103, a schedule unit 104, an output unit 106, a group An access calculation unit 406 and a group storage unit 407 are included. The task scheduling device 4 may include an access area estimation unit 107.

本実施形態では、タスク取得部101がタスク情報を取得するタスクは、並列に処理することが可能なタスクである。   In the present embodiment, the task for which the task acquisition unit 101 acquires task information is a task that can be processed in parallel.

タスク相関算出部103は、2つのタスク間の相関を算出するのに加えて、複数のタスクを含むタスクグループと、タスクとの間の相関を算出する。   The task correlation calculation unit 103 calculates a correlation between a task group including a plurality of tasks and a task in addition to calculating a correlation between two tasks.

スケジュール部104は、相関の高いタスクを同一タスクグループに登録する。また、スケジュール部104は、タスクグループ内でタスクの実行順序を決定する。   The schedule unit 104 registers highly correlated tasks in the same task group. The schedule unit 104 also determines the task execution order within the task group.

グループアクセス算出部406は、タスクグループがアクセスするメモリ領域を算出する。   The group access calculation unit 406 calculates a memory area accessed by the task group.

グループ記憶部407は、タスクグループを特定する情報と、タスクグループに含まれるタスクを特定する情報を、関連付けて記憶する。   The group storage unit 407 stores information for specifying a task group and information for specifying a task included in the task group in association with each other.

タスクスケジューリング装置4の他の構成要素は、同一の符号を付した、第1の実施形態のタスクスケジューリング装置1の構成要素と同じであるので、説明を省略する。   The other components of the task scheduling device 4 are the same as the components of the task scheduling device 1 of the first embodiment given the same reference numerals, and thus the description thereof is omitted.

次に、本実施形態のタスクスケジューリング装置4の動作について、図面を参照して詳細に説明する。   Next, the operation of the task scheduling apparatus 4 of this embodiment will be described in detail with reference to the drawings.

図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 task scheduling apparatus 4 assigns these tasks to two processor cores and performs scheduling, that is, an operation in which these tasks are divided into two groups and scheduled is also described. To do.

図14は、タスクスケジューリング装置4の動作の例を表すフローチャートである。   FIG. 14 is a flowchart showing an example of the operation of the task scheduling device 4.

本実施形態の、例えばスケジュール部104は、あらかじめタスクグループのグループ数を保持していればよい。あるいは、ステップS101で、タスク取得部101が、タスク情報に加えて、タスクグループのグループ数の情報も取得してもよい。この場合タスク取得部101は、取得したタスクグループのグループ数の情報を、スケジュール部104に送信すればよい。   For example, the schedule unit 104 of the present embodiment only needs to hold the number of task groups in advance. Alternatively, in step S101, the task acquisition unit 101 may also acquire information about the number of task groups in addition to the task information. In this case, the task acquisition unit 101 may transmit information on the acquired number of task groups to the schedule unit 104.

タスクスケジューリング装置4の、ステップS101〜ステップS103の動作は、グループ数を取得してスケジュール部104に送信する点を除き、第1の実施形態のタスクスケジューリング装置1のステップS101〜ステップS103の動作と同じである。従って、ステップS101〜ステップS103の動作の説明は省略する。   The operations of step S101 to step S103 of the task scheduling apparatus 4 are the same as the operations of steps S101 to S103 of the task scheduling apparatus 1 of the first embodiment, except that the number of groups is acquired and transmitted to the scheduling unit 104. The same. Therefore, the description of the operation in steps S101 to S103 is omitted.

スケジュール部104は、受信したグループ数と、アクセス情報記憶部105にアクセス情報が格納されているタスクの数から、1タスクグループ当たりのタスク数(グループタスク数)を算出する(ステップS401)。スケジュール部104は、アクセス情報記憶部105に格納されているタスクの数を、カウントすることで得ればよい。スケジュール部104は、タスク取得部101から、スケジューリングを行うタスクの数を受信してもよい。   The schedule unit 104 calculates the number of tasks (number of group tasks) per task group from the received number of groups and the number of tasks whose access information is stored in the access information storage unit 105 (step S401). The schedule unit 104 may be obtained by counting the number of tasks stored in the access information storage unit 105. The schedule unit 104 may receive the number of tasks to be scheduled from the task acquisition unit 101.

図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 correlation calculation unit 103 calculates the correlation between the tasks for all the combinations of the two tasks selected from the task that received the task information, similarly to step S104 in FIG. 2 (step S104).

図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 scheduling unit 104 selects a task pair having the highest correlation among the tasks that have not been grouped to assign the task to any task group, and registers (groups) the task pair in the new task group i (grouping). Step S405). i is a task group number. The initial value of the number i may be 0, for example. The schedule unit 104 associates information for identifying the task group i with information for identifying each task constituting the selected pair, and stores the information in the group storage unit 407. Note that in the operation of step S405, the scheduling unit 104 first registers one of the task pairs having the highest correlation in the task group, and further registers the task having the highest correlation with the task group in the task group. It can also be regarded as an action to perform.

図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 schedule unit 104 registers task C and task D in group 0. The schedule unit 104 associates the information specifying the task group 0 with the information specifying the task C and the information specifying the task D, and stores them in the group storage unit 407.

タスクグループ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 access calculation unit 406 calculates the access area of the task group (task group i) in which the task is newly registered. . The group access calculation unit 406 may set the sum of memory areas accessed by the tasks included in the task group i as the access area of the task group i. The group access calculation unit 406 transmits information indicating the calculated access area of the task group i to the task correlation calculation unit 103.

タスク相関算出部103は、グルーピングされていない各タスクとタスクグループiの相関(グループ相関)を算出する。グループ相関はタスクとグループの間の相関である。スケジュール部104は、グルーピングされていないタスクの中から、タスクグループiとの間の相関が最も高いタスクを選択する。スケジュール部104は、選択したタスクをタスクグループiに登録する(ステップS407)。   The task correlation calculation unit 103 calculates a correlation (group correlation) between each task that is not grouped and the task group i. Group correlation is the correlation between tasks and groups. The schedule unit 104 selects a task having the highest correlation with the task group i from tasks that are not grouped. The schedule unit 104 registers the selected task in the task group i (step S407).

スケジュール部104は、タスク間の相関と同様に、タスクグループiのアクセス領域とタスクのアクセス領域の重複部分のサイズを、タスクグループiとそのタスクの相関にすればよい。   Similar to the correlation between tasks, the scheduling unit 104 may set the size of the overlapping portion of the access area of the task group i and the access area of the task to the correlation between the task group i and the task.

スケジュール部104は、タスクグループを特定する情報と、そのタスクグループに含まれる各タスクのタスク特定情報各々とを関連付けて、グループ記憶部407に格納する。   The schedule unit 104 associates information for specifying a task group with each task specifying information for each task included in the task group, and stores the information in the group storage unit 407.

タスクグループ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 task scheduling device 4 outputs the execution order for each task group (step S107) and ends the operation.

なお、タスクグループ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 scheduling unit 104 performs steps S104 to S106 in FIG. 2 among the tasks included in the task group i. The execution order may be determined in the same manner as in FIG.

図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 task group 0 and task A and task B are not grouped, the number of tasks in task group 0 is equal to the number of group tasks. Furthermore, there are tasks A and B that are not grouped. In this case, the operation returns to step S405, and task A and task B are registered in task group 1.

その結果、タスクスケジューリング装置4は、図9のタスクを、図12の例のようにグルーピングする。図12は、タスクスケジューリング装置4が図9のタスクをグルーピングした結果を表す図である。   As a result, the task scheduling apparatus 4 groups the tasks in FIG. 9 as in the example in FIG. FIG. 12 is a diagram illustrating a result of grouping the tasks of FIG. 9 by the task scheduling apparatus 4.

なお、スケジュール部104は、ステップS405で、タスクのペアを新規タスクグループiに登録する際、そのペアが連続して実行されるよう実行順序を決めればよい。そして、スケジュール部104は、ステップS407で、新しくタスクグループiに登録するタスクの実行順序を、図2のステップS105と同じように決めればよい。さらに、スケジュール部104は、タスク特定情報と、決定したタスクの実行順序の順番に並べたタスク特定情報の組(タスク列を表す情報)を、グループ記憶部407に格納すればよい。   In step S405, the schedule unit 104 may determine the execution order so that the pair of tasks is continuously executed when the pair of tasks is registered in the new task group i. Then, in step S407, the schedule unit 104 may determine the execution order of tasks newly registered in the task group i in the same manner as in step S105 in FIG. Furthermore, the schedule unit 104 may store in the group storage unit 407 a set of task specifying information and task specifying information arranged in the order of the determined task execution order (information representing a task sequence).

また、タスク相関算出部103は、タスクとタスクグループの相関を、そのタスクとそのタスクグループ内で実行順序が最初のタスクとの相関と、そのタスクとそのタスクグループ内で実行順序が最後のタスクとの相関のうち、高い方にしてもよい。その場合、ステップS406の動作は必要なく、グループアクセス算出部406は存在しなくてよい。   The task correlation calculation unit 103 also correlates a task and a task group, a correlation between the task and the first task in the task group, and a task whose execution order is the last in the task group. Of these, the higher one may be used. In this case, the operation in step S406 is not necessary, and the group access calculation unit 406 does not have to exist.

また、スケジュール部104は、最初にステップS405を受信したグループ数と同じ回数だけ繰り返してもよい。そして、ステップS407で、スケジュール部104は、グルーピングされてない各タスクと各グループと組合せのうち、相関が最も高いタスクとグループを選択し、選択したタスクを選択したグループにグルーピングする動作を繰り返してもよい。   Moreover, the schedule part 104 may repeat as many times as the number of groups which received step S405 first. In step S407, the scheduling unit 104 repeats an operation of selecting a task and a group having the highest correlation among the ungrouped tasks and groups, and grouping the selected task into the selected group. Also good.

また出力部106は、ステップS107では、グループ毎のタスクの実行順序を表す情報を出力する。   In step S107, the output unit 106 outputs information representing the task execution order for each group.

以上のようにグルーピングされた各タスクグループは、例えばプロセッサ1003が含むプロセッサコアにそれぞれ割り当てられる。各プロセッサコアは、割り当てられたタスクグループに含まれる各タスクを、タスクグループ毎に並列に処理する。   Each task group grouped as described above is assigned to a processor core included in the processor 1003, for example. Each processor core processes each task included in the assigned task group in parallel for each task group.

図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 processor 1003 includes two processor cores (PE1, PE2), the number of task groups is two. If the number of task groups is 2, the task scheduling apparatus 4 groups the tasks shown in FIG. 9 (left side in FIG. 15) into two task groups as shown on the right side in FIG. For example, the task execution unit 1002 allocates two task groups to the two processor cores (PE1 and PE2) of the processor 1003.

以上で説明した本実施の形態には、第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 scheduling unit 104 sequentially assigns the task having the highest correlation with each task group to the task group so that the number of tasks included in each task group corresponding to the number of processor cores is equal. It is. In this case, if the processing amount of each task is equal, the total processing amount of tasks included in each task group is equal.

特許文献2や3のようにスケジューリングしグループごとにプロセッサコアにタスクを割り当てると、グループ内のタスク数はグルーピング時に考慮できない。そのため、図24のタスク例ではプロセッサあたりのタスク数が偏ってしまう。本実施の形態のタスクスケジューリング装置4は、タスクのグルーピング時に各タスクグループが含むタスク数を均等にすることができる。従って、本実施の形態のタスクスケジューリング装置4は、各タスクの処理量が均等である場合に、プロセッサコアごとの処理量を均等化できる。   When scheduling is performed as in Patent Documents 2 and 3 and tasks are assigned to processor cores for each group, the number of tasks in the group cannot be considered during grouping. Therefore, in the task example of FIG. 24, the number of tasks per processor is biased. The task scheduling apparatus 4 according to the present embodiment can equalize the number of tasks included in each task group during task grouping. Therefore, the task scheduling apparatus 4 according to the present embodiment can equalize the processing amount for each processor core when the processing amount of each task is equal.

(第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 amount estimation unit 508, a task processing amount storage, in addition to the components of the task scheduling apparatus 4 of the fourth embodiment shown in FIG. Part 509.

タスク処理量推定部508は、タスク取得部101が取得したタスク情報から、そのタスクの処理量を推定する。例えば、動き推定におけるタスクあたりの処理量は、参照可能フレーム数や、以下で簡単に説明する探索ブロック種数と相関関係にある。すなわち、動き推定のタスクの演算量は、参照可能フレーム数や探索ブロック種数とおおよそ比例関係にある。従って、タスク処理量推定部508は、これらの情報から、動き推定におけるタスクあたりの処理量を推定すればよい。   The task processing amount estimation unit 508 estimates the processing amount of the task from the task information acquired by the task acquisition unit 101. For example, the amount of processing per task in motion estimation correlates with the number of frames that can be referred to and the number of search block types described briefly below. That is, the calculation amount of the task of motion estimation is roughly proportional to the number of referable frames and the number of search block types. Therefore, the task processing amount estimation unit 508 may estimate the processing amount per task in motion estimation from these pieces of information.

なお、探索ブロック種数は、一つのタスク内で動きベクトルの探索を行うためのブロックサイズの種類である。タスクが、例えば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 amount estimation unit 508 may set the assumed maximum number of comparisons performed between the encoding target block and the block in the search frame as the processing amount in motion vector search. . If the algorithm for comparison performed between the encoding target block and the block in the search frame in the motion vector search is the same for each task, the task throughput estimation unit 508, for example, searches for task motion estimation. The value of the total area of the range may be used as the processing amount. The task information acquired by the task acquisition unit 101 only needs to include the number of referable frames, the number of search block types, and other information for estimating the processing amount of the task in addition to the type of task.

スケジュール部104は、各タスクグループの処理量が、全タスクの処理量の合計とグループ数から算出した、一つのタスクグループ当たりの処理量の目安に近付くように、タスクを各タスクグループに割り当てる。スケジュール部104は、さらに、タスクグループ毎にタスクのスケジューリングを行う。   The schedule unit 104 assigns tasks to each task group so that the processing amount of each task group approaches the guideline of the processing amount per task group calculated from the total processing amount of all tasks and the number of groups. The scheduling unit 104 further performs task scheduling for each task group.

タスク処理量推定部508は、タスク特定情報と、そのタスク特定情報で特定されるタスクの処理量を、関連付けてタスク処理量記憶部509に格納する。   The task processing amount estimation unit 508 stores the task specifying information and the processing amount of the task specified by the task specifying information in the task processing amount storage unit 509 in association with each other.

タスク処理量記憶部509は、タスク特定情報と処理量を関連付けて記憶する。   The task processing amount storage unit 509 stores task specifying information and processing amount in association with each other.

タスクスケジューリング装置5の他の構成要素は、第4の実施形態のタスクスケジューリング装置4の同一の番号の構成要素と同じであるので、説明を省略する。   The other components of the task scheduling device 5 are the same as the components of the same number of the task scheduling device 4 of the fourth embodiment, and thus description thereof is omitted.

図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 device 4. Furthermore, the task scheduling apparatus 5 is different from the task scheduling apparatus 4 in that it performs the operation of step S508 instead of step S408. Since the operations of the other steps of the task scheduling device 5 are the same as the operations of the steps having the same number in the task scheduling device 4 of the fourth embodiment, the description thereof is omitted.

ステップS102の後、タスク処理量推定部508が、タスク取得部101が取得したタスク情報から、対応するタスクの処理量を推定する(ステップS501)。タスク処理量推定部508は、推定した処理量を、対応するタスクのタスク特定情報に関連付けて、タスク処理量記憶部509に格納する。   After step S102, the task processing amount estimation unit 508 estimates the processing amount of the corresponding task from the task information acquired by the task acquisition unit 101 (step S501). The task processing amount estimation unit 508 stores the estimated processing amount in the task processing amount storage unit 509 in association with the task specifying information of the corresponding task.

タスク取得部101がタスク情報を取得した全てのタスクのアクセス領域の取得とタスクの処理量の推定が終了すると(ステップS103、Yes)、タスク処理量推定部508は、1タスクグループ当たりの処理量の目安を算出する(ステップS502)。   When the task acquisition unit 101 completes the acquisition of the access areas of all the tasks for which task information has been acquired and the estimation of the task processing amount (step S103, Yes), the task processing amount estimation unit 508 determines the processing amount per task group. Is calculated (step S502).

タスク処理量推定部508は、タスク情報に加えて、タスクグループのグループ数をタスク取得部101から受信すればよい。タスク処理量推定部508は、推定した各タスクの処理量の合計を算出し、算出した合計を受信したグループ数で割ることで、1タスクグループ当たりの処理量の目安(処理量目安)を算出すればよい。   The task processing amount estimation unit 508 may receive the number of task groups from the task acquisition unit 101 in addition to the task information. The task processing amount estimation unit 508 calculates the total processing amount of each estimated task, and calculates the processing amount guide (processing amount guide) per task group by dividing the calculated total by the number of received groups. do it.

ステップS509では、スケジュール部104は、タスクグループiに割り当てられているタスクの処理量の合計と、タスク処理量推定部508が推定した処理量目安を比較する。タスクグループiに割り当てられているタスクの処理量の合計が処理量目安未満である場合(ステップS509、Yes)、スケジュール部104はタスクグループiへのタスクの割り当て(ステップS406〜ステップS407)を継続する。タスクグループiに割り当てられているタスクの処理量の合計が処理量目安以上である場合(ステップS509、No)、スケジュール部104はタスクグループiへのタスクの割り当てを終了する。   In step S509, the schedule unit 104 compares the total processing amount of tasks assigned to the task group i with the processing amount standard estimated by the task processing amount estimation unit 508. When the total processing amount of tasks assigned to task group i is less than the processing amount guide (step S509, Yes), the schedule unit 104 continues to assign tasks to task group i (steps S406 to S407). To do. When the total processing amount of tasks assigned to the task group i is equal to or larger than the processing amount guide (No in step S509), the scheduling unit 104 ends the assignment of tasks to the task group i.

以上で説明した本実施形態には、第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 amount estimation unit 508 estimates the processing amount for each task. Using the estimated processing amount for each task, the scheduling unit 104 assigns tasks to each task group so that the total processing amount for each task group, which is a set of tasks to be executed by individual processor cores, becomes equal. . If the processing amount of the task executed by each processor core is equal, the processing time until the processing of all tasks is completed is shorter than when the processing amount of the task executed by each processor core is not equal.

(第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 task scheduling apparatus 6 of this embodiment estimates the processing amount of each task using the accuracy of the prediction vector calculated as in the third embodiment. This increases the accuracy of estimating the processing amount of each task. Therefore, the task scheduling apparatus 6 of this embodiment can group tasks so that the processing amount per task group is equal.

図18は、本実施形態のタスクスケジューリング装置6の構成を表す図である。   FIG. 18 is a diagram illustrating the configuration of the task scheduling apparatus 6 according to the present embodiment.

図18を参照すると、タスクスケジューリング装置6は、図16のタスクスケジューリング装置5の構成に加えて、予測ベクトル精度推定部303と、タスク処理量修正部614を含む。   Referring to FIG. 18, the task scheduling device 6 includes a prediction vector accuracy estimation unit 303 and a task processing amount correction unit 614 in addition to the configuration of the task scheduling device 5 in FIG. 16.

予測ベクトル精度推定部303は、第3の実施形態の予測ベクトル精度推定部303と同じである。   The prediction vector accuracy estimation unit 303 is the same as the prediction vector accuracy estimation unit 303 of the third embodiment.

タスク処理量修正部614は、予測ベクトル精度推定部303が算出した、予測ベクトルの精度に応じて、タスク処理量推定部508が推定しタスク処理量記憶部509に格納した、各タスクの処理量を修正する。   The task processing amount correction unit 614 estimates the processing amount of each task estimated by the task processing amount estimation unit 508 and stored in the task processing amount storage unit 509 according to the accuracy of the prediction vector calculated by the prediction vector accuracy estimation unit 303. To correct.

タスクスケジューリング装置6の他の構成要素は、第5の実施形態のタスクスケジューリング装置5の同じ番号の構成要素と同じなので、説明を省略する。   The other components of the task scheduling device 6 are the same as the components with the same number of the task scheduling device 5 of the fifth embodiment, and thus description thereof is omitted.

次に、本実施形態のタスクスケジューリング装置6の動作について、図面を参照して詳細に説明する。   Next, the operation of the task scheduling apparatus 6 of this embodiment will be described in detail with reference to the drawings.

図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 task scheduling apparatus 6. 19 and FIG. 17 representing the operation of the fifth embodiment are the same except that steps S304, S305, and S606 are provided between steps S501 and S103. Hereinafter, differences from the operation of the fifth embodiment in FIG. 17 will be mainly described.

タスク処理量推定部508が、タスク取得部101が取得したタスク情報からそのタスクの処理量を推定した(ステップS501)後、予測ベクトル精度推定部303が、符号化対象ブロックの周囲のブロックの動きベクトルを取得する(ステップS304)。   After the task processing amount estimation unit 508 estimates the processing amount of the task from the task information acquired by the task acquisition unit 101 (step S501), the prediction vector accuracy estimation unit 303 moves the blocks around the encoding target block. A vector is acquired (step S304).

予測ベクトル精度推定部303は、取得した動きベクトルから、符号化対象ブロックの予測ベクトルの精度を計算する(ステップS305)。   The prediction vector accuracy estimation unit 303 calculates the accuracy of the prediction vector of the encoding target block from the acquired motion vector (step S305).

ステップ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 amount correction unit 614 uses the correction coefficient that represents the accuracy estimated by the prediction vector accuracy estimation unit 303 to estimate the task processing amount estimated by the task processing amount estimation unit 508 and stored in the task processing amount storage unit 509. The amount is corrected (step S606).

タスク処理量修正部614は、例えば、タスク処理量記憶部509タスクの処理量に対して、そのタスクが対象とする符号化対象ブロックの予測ベクトルに対応する、x方向の修正係数とy方向の修正係数を掛ければよい。   The task processing amount correction unit 614, for example, with respect to the processing amount of the task processing amount storage unit 509, the correction coefficient in the x direction and the y direction corresponding to the prediction vector of the encoding target block targeted by the task. What is necessary is just to apply a correction coefficient.

ステップ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 accuracy estimation unit 303 may transmit the calculated correction coefficient to the task processing amount estimation unit 508. Then, the task processing amount estimation unit 508 may store the value obtained by multiplying the calculated processing amount by the received correction coefficient in the task processing amount storage unit 509 in association with the task specifying information. In this case, the task processing amount correction unit 614 may not exist.

以上で説明した本実施形態には、第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 amount correction unit 614 corrects the task processing amount estimated by the task processing amount estimation unit 508 using the accuracy of the prediction vector corresponding to the task estimated by the prediction vector accuracy estimation unit 303. Because it does. Therefore, the estimation accuracy of the processing amount of each task is improved. The scheduling unit 104 uses the corrected processing amount for each task, and assigns tasks to each task group so that the total processing amount for each task group, which is a set of tasks to be executed by individual processor cores, becomes equal. assign. For this reason, the processing amount of each task group is further equalized. Accordingly, the time until all tasks are completed is further shortened. That is, higher-speed parallel processing becomes possible.

(第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 task scheduling apparatus 7 of this embodiment.

図27と図13を比較すると、タスクスケジューリング装置7は、第4の実施形態のタスクスケジューリング装置4の構成に加えて、グループアクセス記憶部704を含む点が異なる。以下では、タスクスケジューリング装置7とタスクスケジューリング装置4の相違点を中心に説明する。   27 and FIG. 13 is different in that the task scheduling apparatus 7 includes a group access storage unit 704 in addition to the configuration of the task scheduling apparatus 4 of the fourth embodiment. In the following, the difference between the task scheduling device 7 and the task scheduling device 4 will be mainly described.

グループアクセス算出部406は、更新されたタスクグループのアクセス領域を算出し、タスクグループを特定する情報と関連付けて、グループアクセス記憶部704に格納する。   The group access calculation unit 406 calculates the access area of the updated task group, and stores it in the group access storage unit 704 in association with information for specifying the task group.

グループアクセス記憶部704は、グループアクセス算出部406が算出した、タスクグループ毎のアクセス領域を表す情報を、タスクグループを特定する情報と関連付けて記憶する。   The group access storage unit 704 stores information indicating the access area for each task group calculated by the group access calculation unit 406 in association with information for specifying the task group.

タスク相関算出部103は、アクセス領域記憶部105から読み出したタスクのアクセス情報と、グループアクセス記憶部704から読み出したタスクグループのアクセス情報から、相関を算出する。   The task correlation calculation unit 103 calculates a correlation from the task access information read from the access area storage unit 105 and the task group access information read from the group access storage unit 704.

次に、本実施形態の動作について、図面を参照して詳細に説明する。   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 task scheduling apparatus 7 of this embodiment.

図28を参照すると、まず、タスクスケジューリング装置7は、グループ数のタスクのタスク情報を取得し、タスク情報を取得した各タスクをそれぞれ別のタスクグループに登録する(ステップS701)。   Referring to FIG. 28, first, the task scheduling device 7 acquires task information of tasks of the number of groups, and registers each task for which task information has been acquired in different task groups (step S701).

具体的には、まず、タスク取得部101がタスクグループの数であるグループ数を受信する。タスク取得部101は、グループ数に加えて、スケジューリングの対象となるタスクの数も受信すればよい。タスク取得部101は、受信したグループ数分のタスク情報を取得する。タスクアクセス取得部102は、タスク取得部101が取得したタスク情報が表すタスクのアクセス情報を取得し、タスク特定情報に関連付けてアクセス領域記憶部105に格納する。スケジュール部104は、取得した各タスクを、それぞれ異なるタスクグループに登録する。スケジュール部104は、各タスクを特定する情報を、それぞれ異なるタスクグループを特定する情報に関連付け、グループ記憶部407に格納する。この時点では、各タスクグループは1個のタスクしか含んでおらず、各タスクグループのアクセス領域は、各タスクが含むタスクのアクセス領域と等しい。グループアクセス算出部406は、各タスクグループに含まれるタスクのアクセス情報を、アクセス領域記憶部105から読み出し、タスクグループを特定する情報に関連付けてグループアクセス記憶部704に格納する。   Specifically, first, the task acquisition unit 101 receives the number of groups that is the number of task groups. The task acquisition unit 101 may receive the number of tasks to be scheduled in addition to the number of groups. The task acquisition unit 101 acquires task information for the number of received groups. The task access acquisition unit 102 acquires the access information of the task represented by the task information acquired by the task acquisition unit 101 and stores it in the access area storage unit 105 in association with the task identification information. The schedule unit 104 registers each acquired task in a different task group. The schedule unit 104 associates information specifying each task with information specifying different task groups, and stores the information in the group storage unit 407. At this time, each task group includes only one task, and the access area of each task group is equal to the access area of the task included in each task. The group access calculation unit 406 reads the access information of the tasks included in each task group from the access area storage unit 105 and stores the access information in the group access storage unit 704 in association with the information specifying the task group.

タスク取得部101は、ステップS701におけるタスク情報受信の際、例えば、符号化対象フレームをグループ数の領域に分割し、各領域から一つずつ符号化対象ブロックを選択し、選択した符号化対象ブロックに対して処理を行うタスクを1つずつ取得すればよい。タスク取得部101がこのようにタスクを取得すると、タスクグループ毎のタスクの処理位置(符号化対象ブロックの位置)は、符号化対象フレーム内で分散する。あるいは、タスク取得部101は、フレーム毎に、そのフレームを参照フレームとするタスクを1つずつ選択し、取得してもよい。タスク取得部101がこのようにタスクを取得すると、タスクグループ毎のアクセス領域が分散する。   Upon receiving task information in step S701, for example, the task acquisition unit 101 divides the encoding target frame into regions of the number of groups, selects one encoding target block from each region, and selects the selected encoding target block. It is sufficient to acquire one task at a time for processing. When the task acquisition unit 101 acquires the task in this way, the task processing position (position of the encoding target block) for each task group is dispersed within the encoding target frame. Alternatively, the task acquisition unit 101 may select and acquire a task using each frame as a reference frame for each frame. When the task acquisition unit 101 acquires a task in this way, the access area for each task group is distributed.

次に、タスク取得部101は、まだスケジューリングされていないタスクのタスク情報を取得する(ステップS101)。タスク取得部101は、まだスケジューリングされていないタスクから任意のタスクを選択して、選択したタスクのタスク情報を取得すればよい。   Next, the task acquisition unit 101 acquires task information of a task that has not yet been scheduled (step S101). The task acquisition unit 101 may select an arbitrary task from tasks that have not yet been scheduled, and acquire task information of the selected task.

アクセス領域推定部107は、タスク取得部101から取得したタスク情報から、アクセス領域を推定すればよい。   The access area estimation unit 107 may estimate the access area from the task information acquired from the task acquisition unit 101.

次に、タスクアクセス取得部102が、タスク情報を選択したタスクのアクセス情報を、例えばアクセス領域を推定するアクセス領域推定部107から取得する(ステップS102)。タスクアクセス取得部102は取得したアクセス情報を、対応するタスクのタスク特定情報に関連付けて、アクセス領域記憶部105に格納する。   Next, the task access acquisition unit 102 acquires the access information of the task whose task information is selected from, for example, the access region estimation unit 107 that estimates an access region (step S102). The task access acquisition unit 102 stores the acquired access information in the access area storage unit 105 in association with the task identification information of the corresponding task.

次に、タスク相関算出部103は、アクセス領域記憶部105からタスク取得部101がタスク情報を取得したタスクのアクセス情報を読み出す。タスク相関算出部103は、読み出したアクセス情報と、グループアクセス記憶部704が記憶する各タスクグループのアクセス情報から、タスク取得部101がタスク情報を取得したタスクと各タスクグループとの間の相関を、それぞれ算出する(ステップS704)。   Next, the task correlation calculation unit 103 reads the access information of the task for which the task acquisition unit 101 has acquired the task information from the access area storage unit 105. The task correlation calculation unit 103 calculates the correlation between the task and the task group from which the task acquisition unit 101 has acquired the task information from the read access information and the access information of each task group stored in the group access storage unit 704. , Respectively (step S704).

タスク相関算出部103は、タスク同士の相関の算出と同様にして、タスクとタスクグループとの間の相関を算出すればよい。例えば、第1の実施形態のように、アクセス情報がアクセス領域の範囲を表す情報である場合、タスク相関算出部103は、タスクのアクセス領域とタスクグループのアクセス領域の重複領域の大きさを算出すればよい。タスクグループのアクセス領域は、第4の実施形態と同様に、例えば、タスクグループが含むタスクのアクセス領域の和であればよい。例えば、第2の実施形態のように、アクセス情報が予測ベクトル指点の座標である場合、タスク相関算出部103は、タスクの予測ベクトル指点と、タスクグループの予測ベクトル指点の距離を算出して、相関にすればよい。この場合、タスクグループの予測ベクトル指点の座標は、例えば、そのタスクグループが含むタスクの予測ベクトル指点の重心であればよい。   The task correlation calculation unit 103 may calculate the correlation between the task and the task group in the same manner as the calculation of the correlation between tasks. For example, when the access information is information indicating the range of the access area as in the first embodiment, the task correlation calculation unit 103 calculates the size of the overlapping area between the task access area and the task group access area. do it. As in the fourth embodiment, the task group access area may be, for example, the sum of the task access areas included in the task group. For example, as in the second embodiment, when the access information is the coordinates of the predicted vector finger point, the task correlation calculation unit 103 calculates the distance between the predicted vector finger point of the task and the predicted vector finger point of the task group, What is necessary is just to make it a correlation. In this case, the coordinates of the predicted vector finger point of the task group may be, for example, the center of gravity of the predicted vector finger point of the task included in the task group.

次に、スケジュール部104が、タスク情報を取得したタスクを、そのタスクとの相関が高く、含まれるタスクの数が少ないタスクグループに登録する(ステップS705)。   Next, the schedule unit 104 registers the task for which the task information has been acquired in a task group that has a high correlation with the task and that includes a small number of tasks (step S705).

スケジュール部104は、例えば、含まれるタスクの数が少ないほど評価値が高く、相関が高いほど評価値が高くなるような、タスク数と相関を変数とする評価式で算出した評価値が、最も高いタスクグループを選択してタスクを登録すればよい。評価式は、含まれるタスクの数が1タスクグループ当たりのタスク数以上になると、タスクグループにタスクが登録されない評価値になる評価式であればよい。スケジュール部104は、例えば、含まれるタスクの数が1タスクグループ当たりのタスク数未満であるタスクグループの中で、タスク情報を取得したタスクとの間の相関が最も高いタスクグループを選択し、選択したタスクグループにそのタスクを登録してもよい。この場合のスケジュール部104の動作は、タスク数が1タスクグループ当たりのタスク数未満の場合相関に比例する評価値を出力し、タスク数が1タスクグループ当たりのタスク数以上の場合評価値として0を出力する評価式による、上述の動作に相当する。なお、スケジュール部104が、タスク取得部101が取得したスケジューリング対象のタスク数をグループ数で割ることで、1タスクグループ当たりのタスク数を算出すればよい。   For example, the scheduling unit 104 has the highest evaluation value calculated with an evaluation formula using the number of tasks and the correlation as a variable such that the evaluation value is higher as the number of tasks included is smaller and the evaluation value is higher as the correlation is higher. Select a high task group and register the task. The evaluation formula may be an evaluation formula that becomes an evaluation value at which no task is registered in the task group when the number of tasks included exceeds the number of tasks per task group. For example, the scheduling unit 104 selects and selects a task group having the highest correlation with the task for which task information is acquired from among task groups in which the number of tasks included is less than the number of tasks per task group The task may be registered in the task group. The operation of the schedule unit 104 in this case outputs an evaluation value proportional to the correlation when the number of tasks is less than the number of tasks per task group, and is 0 as the evaluation value when the number of tasks is equal to or greater than the number of tasks per task group. This corresponds to the above-described operation based on the evaluation expression that outputs The scheduling unit 104 may calculate the number of tasks per task group by dividing the number of tasks to be scheduled acquired by the task acquisition unit 101 by the number of groups.

次に、グループアクセス算出部406は、更新されたタスクグループのアクセス領域を算出し、タスクグループを特定する情報と関連付けて、グループアクセス記憶部704に格納する(ステップS706)。グループアクセス算出部406は、更新されたタスクグループを表す情報を、スケジュール部104から受信すればよい。グループアクセス算出部406は、グループ記憶部407に格納されている、各タスクグループに含まれるタスクを表す情報の更新を検出してもよい。   Next, the group access calculation unit 406 calculates an access area of the updated task group, and stores it in the group access storage unit 704 in association with information specifying the task group (step S706). The group access calculation unit 406 may receive information indicating the updated task group from the schedule unit 104. The group access calculation unit 406 may detect an update of information representing a task included in each task group stored in the group storage unit 407.

全てのタスクのスケジューリングが終了していない場合(ステップ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 access calculation unit 406 performs the operation of updating the access information of the task group (step S706) when the scheduling of all tasks has not been completed after the completion of step S705 (No in step S106). Also good. In this case, the group access calculation unit 406 does not have to perform the operation in step S706 immediately after step S705.

全てのタスクのスケジューリングが終了した場合(ステップS106、Yes)、出力部106は、タスクグループ毎のタスクの実行順序を表す情報を出力する(ステップS107)。   When scheduling of all tasks has been completed (step S106, Yes), the output unit 106 outputs information indicating the task execution order for each task group (step S107).

スケジュール部104は、タスクの実行順序を表す情報を出力する前に、例えば第1、第2、第3の実施形態のいずれかと同様にして、タスクグループに含まれる各タスクの実行順序を、タスクグループ毎に決定してもよい。この場合、出力部106は、スケジュール部104が決定したタスクグループ毎の実行順序を表す情報を出力すればよい。タスクグループ毎の実行順序は、例えば、それぞれのタスクグループにタスクが登録された順序でもよい。この場合、スケジュール部104は、各タスクグループに含まれるタスクのタスク特定情報が、タスクグループに登録した順序になるように、タスクグループ毎のタスク特定情報をグループ記憶部407に格納すればよい。   Before outputting information indicating the execution order of tasks, the scheduling unit 104 determines the execution order of each task included in the task group in the same manner as in any of the first, second, and third embodiments, for example. It may be determined for each group. In this case, the output unit 106 may output information indicating the execution order for each task group determined by the schedule unit 104. The execution order for each task group may be, for example, the order in which tasks are registered in each task group. In this case, the schedule unit 104 may store the task specifying information for each task group in the group storage unit 407 so that the task specifying information of the tasks included in each task group is in the order registered in the task group.

また、グループ記憶部407は、各タスクグループに割り当てられたタスクの実行順序を、タスクグループを特定する情報に関連付けて記憶していてもよい。ステップS706で、グループアクセス算出部406は、タスクグループ内における実行順序が最初のタスクのアクセス情報と最後のタスクのアクセス情報の組を、タスクグループのアクセス情報にすればよい。そして、グループアクセス算出部406は、タスクグループ内における実行順序が最初のタスクのアクセス情報と最後のタスクのアクセス情報の組を、タスクグループを特定する情報に関連付けて、グループアクセス記憶部704に格納すればよい。   In addition, the group storage unit 407 may store the execution order of tasks assigned to each task group in association with information specifying the task group. In step S706, the group access calculation unit 406 may set a set of access information of the first task and access information of the last task in the task group as the access information of the task group. Then, the group access calculation unit 406 stores the combination of the access information of the first task and the access information of the last task in the task group in the group access storage unit 704 in association with the information specifying the task group. do it.

この場合、ステップS704で、タスク相関算出部103は、タスク相関算出の対象となるタスクの、タスクグループ内の実行順序が最初のタスクとの間のタスク相関と、同タスクグループ内の実行順序が最後のタスクとの間のタスク相関の、双方を算出すればよい。タスク相関算出部103は、算出した2つのタスク相関のいずれか大きい方を、タスク相関の算出の対象となるタスクと、そのタスクグループとの間の相関にすればよい。   In this case, in step S704, the task correlation calculation unit 103 determines whether the task correlation calculation target task has a task correlation with the task whose execution order is the first in the task group and the execution order in the task group. It is only necessary to calculate both of the task correlation with the last task. The task correlation calculation unit 103 may set the larger of the two calculated task correlations as the correlation between the task for which the task correlation is calculated and the task group.

ステップS705では、スケジュール部104は、上述の方法と同様に、タスクを割り当てるタスクグループを選択すればよい。スケジュール部104は、選択したタスクグループの実行順序が最初のタスクと最後のタスクのうち、割り当てるタスクとの間のタスク相関が大きい方のタスクと、その割り当てるタスクが連続するよう実行順序を決定すればよい。スケジュール部104は、各タスクグループに含まれるタスクのタスク特定情報を、決定した実行順序通りの順番に並べて、グループ記憶部407に格納すればよい。   In step S705, the schedule unit 104 may select a task group to which a task is assigned in the same manner as described above. The scheduling unit 104 determines the execution order so that the task with the larger task correlation between the first task and the last task in the execution order of the selected task group and the task to be assigned is continuous. That's fine. The schedule unit 104 may store the task identification information of tasks included in each task group in the group storage unit 407 in the order of the determined execution order.

グループ記憶部407が、各タスクグループを特定する情報に関連付けられた、実行順序通りの順番のタスク特定情報の組を記憶している場合、ステップS106で、出力部106は、グループ記憶部407が記憶する情報をそのまま出力してもよい。   When the group storage unit 407 stores a set of task identification information in the order of execution associated with information identifying each task group, in step S106, the output unit 106 The stored information may be output as it is.

また、タスクスケジューリング装置7は、第5の実施形態のタスクスケジューリング装置5と同様に、タスク処理量推定部508とタスク処理量記憶部509を含んでいてもよい。その場合、スケジュール部104は、タスク数の代わりに、タスク処理量推定部508が算出した処理量の合計値を使用すればよい。   Further, the task scheduling device 7 may include a task processing amount estimation unit 508 and a task processing amount storage unit 509, similarly to the task scheduling device 5 of the fifth embodiment. In that case, the schedule unit 104 may use the total value of the processing amounts calculated by the task processing amount estimation unit 508 instead of the number of tasks.

さらに、タスクスケジューリング装置7は、第6の実施形態のタスクスケジューリング装置6と同様に、タスク処理量推定部508とタスク処理量記憶部509に加えて、予測ベクトル精度推定部303と、タスク処理量修正部614を含んでいてもよい。その場合、タスク処理量修正部614が、第6の実施形態と同様にして、タスクの処理量を修正すればよい。さらに、スケジュール部104は、タスク数の代わりに、タスク処理量推定部508が算出し、タスク処理量修正部614が修正した処理量の合計値を使用すればよい。   Further, the task scheduling device 7, similarly to the task scheduling device 6 of the sixth embodiment, in addition to the task processing amount estimation unit 508 and the task processing amount storage unit 509, the predicted vector accuracy estimation unit 303, the task processing amount A correction unit 614 may be included. In this case, the task processing amount correction unit 614 may correct the task processing amount in the same manner as in the sixth embodiment. Furthermore, the schedule unit 104 may use the total value of the processing amounts calculated by the task processing amount estimation unit 508 and corrected by the task processing amount correction unit 614 instead of the number of tasks.

以上で説明した本実施形態には、第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 correlation calculation unit 103 does not necessarily calculate the task correlation for all combinations of two tasks selected from the tasks to be scheduled.

次に、第1から第7までの各実施形態の変形例について説明する。   Next, modified examples of the first to seventh embodiments will be described.

プロセッサ1003が、複数のプロセッサコアでタスクを並列に処理する並列プロセッサである場合、プロセッサ1003の構成は、複数のプロセッサコアと共有する一つのキャッシュでコアグループを構成し、コアグループが複数ある構成でも良い。この場合、タスク実行部1002は、キャッシュを共有する各コアグループ毎にタスクグループを割り当てればよい。この場合、コアグループ内でも、各プロセッサコアがタスクを並列に処理することが可能である。   When the processor 1003 is a parallel processor that processes a task in parallel with a plurality of processor cores, the configuration of the processor 1003 is a configuration in which a core group is formed by one cache shared with a plurality of processor cores, and there are a plurality of core groups. But it ’s okay. In this case, the task execution unit 1002 may assign a task group for each core group sharing the cache. In this case, each processor core can process tasks in parallel even in the core group.

プロセッサ1003の構成は、プロセッサ同士がメモリを共有しないマルチプロセッサの構成でも良い。この場合、異なるプロセッサ間ではメインメモリを共有しないため、データの局所化がより重要となる。   The configuration of the processor 1003 may be a multiprocessor configuration in which the processors do not share memory. In this case, since the main memory is not shared between different processors, data localization is more important.

また、プロセッサ1003の構成は、キャッシュメモリのかわりにスクラッチパッドメモリを持つ構成でも良い。スクラッチパッドメモリは、キャッシュメモリと同様に小容量・高速なメモリであり、保持するデータをユーザが明示的に管理できるため、本発明によるデータローカリティをより有効に利用することができる。   The processor 1003 may have a scratch pad memory instead of the cache memory. Like the cache memory, the scratch pad memory is a small-capacity and high-speed memory, and the user can explicitly manage the data to be held, so that the data locality according to the present invention can be used more effectively.

上で説明した各実施形態では、タスクは、異なる複数のフレームを参照するか否かに関わらず、一つのマクロブロックに対して行う処理をまとめた処理を指していた。しかし、例えば特許文献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 Patent Document 2 and Patent Document 3, even if processing is performed on the same macroblock, different tasks may be used as long as the reference frames are different.

一般的にキャッシュメモリには、実際に使用されたデータではなくても、使用されたデータに近いにアドレスに存在するデータも格納される。そのため、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 correlation calculation unit 103 can also calculate the correlation between tasks by adding the direction to the overlapping amount of access areas and the distance between predicted vector finger points. For example, the task correlation calculation unit 103 uses the task correlation of the two areas as the overlap amount of the areas obtained by adding the areas of a predetermined width that are adjacent to the access areas in the horizontal direction of the two tasks and adding the areas to the access areas. That's fine. Alternatively, the task correlation calculation unit 103 calculates the distance between the prediction vector finger points calculated by multiplying the horizontal component of the coordinates of the prediction vector finger points of the two tasks by, for example, a predetermined weight having a value of less than 1. What is necessary is just to make the task correlation of two tasks.

第3の実施形態や第5の実施形態の予測ベクトル精度推定部303は、例えば、周囲のブロックの予測ベクトルの平均値と、符号化対象ブロックの予測ベクトルとの差など、ベクトルの分散ではない他の値から、予測ベクトルの精度を表す値を算出してもよい。また、第3の実施形態や第5の実施形態では、予測ベクトル精度推定部303は、空間的に近い周囲のブロック、すなわち符号化対象フレーム内の符号化対象ブロックの周囲のブロックの予測ベクトルから、符号化対象ブロックの予測ベクトルの精度を表す値を算出する。しかし、予測ベクトル精度推定部303は、空間的に近いブロックの予測ベクトルに加えて、時間的に近いブロックの予測ベクトルを使用して、符号化対象ブロックの予測ベクトルの精度を表す値を算出してもよい。なお、時間的に近いブロックは、符号化対象フレームの隣接フレーム内の、符号化対象ブロックと同一位置のブロックである。予測ベクトル精度推定部303は、さらに、符号化対象フレームの隣接フレーム内の、符号化対象ブロックと同一の位置から所定範囲内に存在するブロックの予測ベクトルを使用してもよい。   The prediction vector accuracy estimation unit 303 according to the third embodiment or the fifth embodiment is not vector dispersion, such as a difference between an average value of prediction vectors of surrounding blocks and a prediction vector of an encoding target block. A value representing the accuracy of the prediction vector may be calculated from another value. Further, in the third embodiment and the fifth embodiment, the prediction vector accuracy estimation unit 303 calculates the prediction vector of the spatially neighboring blocks, that is, the prediction vectors of the blocks around the coding target block in the coding target frame. Then, a value representing the accuracy of the prediction vector of the encoding target block is calculated. However, the prediction vector accuracy estimation unit 303 uses the prediction vector of the temporally close block in addition to the prediction vector of the spatially close block to calculate a value indicating the accuracy of the prediction vector of the encoding target block. May be. A block that is close in time is a block at the same position as the encoding target block in a frame adjacent to the encoding target frame. The prediction vector accuracy estimation unit 303 may further use a prediction vector of a block existing within a predetermined range from the same position as the encoding target block in an adjacent frame of the encoding target frame.

タスクスケジューリング装置1、タスクスケジューリング装置3、タスクスケジューリング装置4、タスクスケジューリング装置5、タスクスケジューリング装置6、タスクスケジューリング装置7、及び情報処理装置1000は、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。   The task scheduling device 1, the task scheduling device 3, the task scheduling device 4, the task scheduling device 5, the task scheduling device 6, the task scheduling device 7, and the information processing device 1000 are respectively a computer, a program for controlling the computer, and dedicated hardware. Or a combination of a computer and a program for controlling the computer and dedicated hardware.

タスク取得部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の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。   Task acquisition unit 101, task access acquisition unit 102, task correlation calculation unit 103, schedule unit 104, output unit 106, access region estimation unit 107, prediction vector accuracy estimation unit 303, access region correction unit 304, group access calculation unit 406, The task processing amount estimation unit 508 and the task processing amount correction unit 614 include, for example, a dedicated program for realizing the function of each unit, which is read into a memory from a recording medium that stores the program, and a processor that executes the program. Can be realized. The access area storage unit 105, the group storage unit 407, the task processing amount storage unit 509, and the group access storage unit 704 can be realized by a memory or a hard disk device included in a computer. Alternatively, task acquisition unit 101, task access acquisition unit 102, task correlation calculation unit 103, schedule unit 104, access region storage unit 105, output unit 106, access region estimation unit 107, prediction vector accuracy estimation unit 303, access region correction unit 304, a group access calculation unit 406, a group storage unit 407, a task processing amount estimation unit 508, a task processing amount storage unit 509, a task processing amount correction unit 614, a part or all of the group access storage unit 704, and a function of each unit. It can also be realized by a dedicated circuit to be realized.

タスク生成部1001、タスク実行部1002、実行結果出力部1004は、例えば、プログラムを記憶する記録媒体からメモリに読み込まれた、各部の機能を実現するための専用のプログラムと、そのプログラムを実行するプロセッサにより実現することができる。また、動きベクトル記憶部1005は、コンピュータが含むメモリやハードディスク装置により実現することができる。あるいは、タスク生成部1001、タスク実行部1002、プロセッサ1003、実行結果出力部1004、動きベクトル記憶部1005の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。   The task generation unit 1001, the task execution unit 1002, and the execution result output unit 1004 execute, for example, a dedicated program for realizing the function of each unit read from the recording medium storing the program into the memory. It can be realized by a processor. The motion vector storage unit 1005 can be realized by a memory or a hard disk device included in the computer. Alternatively, part or all of the task generation unit 1001, the task execution unit 1002, the processor 1003, the execution result output unit 1004, and the motion vector storage unit 1005 can be realized by a dedicated circuit that implements the functions of the respective units.

また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。   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 claim 1, wherein the output unit outputs information representing the task sequence for each task group.

(付記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 claim 1, wherein the output unit outputs information representing the task sequence for each task group.

(付記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 supplementary notes 1 to 3, further comprising: task access estimation means for generating the access information from a motion vector and the task information.

(付記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 claim 4, further comprising: an access area correcting means for correcting

(付記6)
推定した前記精度を使用して、前記精度が高いほど前記処理量が少なくなるように、前記処理量を修正するタスク処理量修正手段
を含む付記4又は5に記載のタスクスケジューリング装置。
(Appendix 6)
The task scheduling apparatus according to appendix 4 or 5, further comprising: a task processing amount correcting unit that corrects the processing amount so that the processing amount decreases as the accuracy increases using the estimated accuracy.

(付記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 appendices 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.

(付記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 Task scheduling apparatus 101 Task acquisition unit 102 Task access acquisition unit 103 Task correlation calculation unit 104 Scheduling unit 105 Access region storage unit 106 Output unit 107 Access region estimation unit 303 Predictive vector accuracy estimation unit 304 Access area correction unit 406 Group access calculation unit 407 Group storage unit 508 Task processing amount estimation unit 509 Task processing amount storage unit 614 Task processing amount correction unit 704 Group access storage unit 1000 Information processing device 1001 Task generation unit 1002 Task execution unit 1003 Processor 1004 Execution result output unit 1005 Motion vector storage unit 1006 Data input unit 1007 Data storage unit

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.
請求項1乃至7のいずれかに記載のタスクスケジューリング装置と、
プロセッサと、
当該プロセッサが実行するタスクのタスク情報を生成し、前記タスクスケジューリング装置に入力するタスク生成手段と、
前記タスクスケジューリング装置から前記タスク列を表す情報を取得し、取得した前記タスク列の順序に従い、前記プロセッサに前記タスクを実行させるタスク実行手段と
を含むタスクスケジュールシステム。
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.
JP2012007856A 2012-01-18 2012-01-18 Task scheduling device, task scheduling method, and task scheduling program Pending JP2013150094A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (7)

* Cited by examiner, † Cited by third party
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