JP2015142233A - Moving picture encoder - Google Patents

Moving picture encoder Download PDF

Info

Publication number
JP2015142233A
JP2015142233A JP2014013743A JP2014013743A JP2015142233A JP 2015142233 A JP2015142233 A JP 2015142233A JP 2014013743 A JP2014013743 A JP 2014013743A JP 2014013743 A JP2014013743 A JP 2014013743A JP 2015142233 A JP2015142233 A JP 2015142233A
Authority
JP
Japan
Prior art keywords
motion vector
region
increase
coding unit
motion vectors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014013743A
Other languages
Japanese (ja)
Other versions
JP6187286B2 (en
Inventor
健太朗 片山
Kentaro Katayama
健太朗 片山
昇 米岡
Noboru Yoneoka
昇 米岡
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014013743A priority Critical patent/JP6187286B2/en
Publication of JP2015142233A publication Critical patent/JP2015142233A/en
Application granted granted Critical
Publication of JP6187286B2 publication Critical patent/JP6187286B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a moving picture encoder in which the detection time and detection accuracy of a motion vector are optimized.SOLUTION: A moving picture encoder 100 for detecting a second motion vector in a second coding unit region, where encoding process has not yet completed, by using a first motion vector detected in a first coding unit region, where encoding process has completed, includes an increase and decrease control circuit 122 for increasing or decreasing the total number of first motion vectors used in the second coding unit region, depending on the progress of coding process in one image including the first coding unit region and second coding unit region.

Description

本件は、動画像符号化装置に関する。   The present case relates to a moving image encoding apparatus.

動画像の圧縮符号化方式として、H.264/Moving Picture Experts Group -4 Advanced Video Coding(H.264/MPEG−4 AVC)やH.265/High Efficiency Video Coding(H.265/HEVC)が規格化されている。例えばH.265/HEVCは、次世代のテレビとして予定されているUltra High Definition Television(UHDTV:超高精細テレビ)に利用される。UHDTVでは4K(4,096×2,160画素または3,840×2,160画素)や8K(7,680×4,320画素)といった超高精細画像が取り扱われる。   H.264 / Moving Picture Experts Group-4 Advanced Video Coding (H.264 / MPEG-4 AVC) and H.265 / High Efficiency Video Coding (H.265 / HEVC) are standards for video compression coding. It has become. For example, H.C. H.265 / HEVC is used for Ultra High Definition Television (UHDTV), which is planned as the next-generation television. UHDTV handles 4K (4,096 × 2,160 pixels or 3,840 × 2,160 pixels) and 8K (7,680 × 4,320 pixels) ultra high definition images.

動画像の符号化では、Motion Estimation(ME:動きベクトル検出)と呼ばれる演算で多くの電力が消費される。このため、上述した超高精細画像を取り扱う際には演算量を削減し消費電力を抑えてMotion Vector(MV:動きベクトル)を高精度に検出することが望まれる。   In encoding a moving image, much power is consumed in a calculation called motion estimation (ME). For this reason, when handling the above-described ultra-high-definition image, it is desired to detect a motion vector (MV) with high accuracy by reducing the amount of calculation and suppressing power consumption.

演算量を削減する動きベクトル検出として階層型動きベクトル検出がある。階層型動きベクトル検出では、まず、入力画像を縮小した縮小画像を利用して縮小画像による初段の動きベクトルが検出される。次に、初段の動きベクトルのベクトル先を基点に入力画像の動きベクトルの探索範囲が決定され、決定された探索範囲の中から次段の動きベクトルが検出される。そして、初段の動きベクトルと次段の動きベクトルから入力画像の最終的な動きベクトルが検出される。   Hierarchical motion vector detection is one type of motion vector detection that reduces the amount of computation. In hierarchical motion vector detection, firstly, a first-stage motion vector based on a reduced image is detected using a reduced image obtained by reducing an input image. Next, the search range of the motion vector of the input image is determined based on the vector destination of the motion vector of the first stage, and the motion vector of the next stage is detected from the determined search range. Then, the final motion vector of the input image is detected from the motion vector at the first stage and the motion vector at the next stage.

一方、入力画像の動きベクトルの検出精度を向上させるべく、既に符号化処理が済んだ符号化単位領域で検出された入力画像の動きベクトルを利用して符号化処理が済んでいない符号化単位領域の動きベクトルを検出する技術がある。しかしながら、当該技術では、検出精度向上のために既に検出された動きベクトルの数を増やせば演算量も増加する。   On the other hand, in order to improve the detection accuracy of the motion vector of the input image, the encoding unit region that has not been encoded using the motion vector of the input image detected in the encoding unit region that has already been encoded There is a technique for detecting a motion vector. However, in this technique, if the number of already detected motion vectors is increased in order to improve detection accuracy, the amount of calculation increases.

演算量を抑えつつ、動きベクトルの検出精度向上を図った種々の技術も提案されている。例えば、縮小画像による初段の動きベクトルにおけるベクトル先の周囲のSum of Absolute Difference(SAD:差分絶対値和)値を算出し、最小のSAD値となった周辺を入力画像の動きベクトルの探索範囲と決定する技術がある(例えば、特許文献1参照)。当該技術によれば、演算量が少ない縮小画像の動きベクトル検出により探索範囲が絞られ、動きベクトル検出全体の演算量も抑えられる。また、符号化開始から経過した時間を計時するとともに符号化したブロックの個数を計数し、経過時間と計数結果に応じて動きベクトルの探索回数を増減させる技術もある(例えば、特許文献2参照)。さらに、シーンチェンジに該当する画像を探索先とする動きベクトルは、動きベクトルの検出対象から除外する技術も知られている(例えば、特許文献3参照)。   Various techniques for improving the accuracy of motion vector detection while suppressing the amount of calculation have been proposed. For example, a Sum of Absolute Difference (SAD) around the vector destination in the first-stage motion vector of the reduced image is calculated, and the periphery where the SAD value is the minimum is used as the motion vector search range of the input image. There is a technique for determining (see, for example, Patent Document 1). According to this technique, the search range is narrowed down by motion vector detection of a reduced image with a small amount of computation, and the computation amount of the entire motion vector detection can be suppressed. There is also a technique for measuring the time elapsed from the start of encoding, counting the number of encoded blocks, and increasing or decreasing the number of motion vector searches according to the elapsed time and the counting result (see, for example, Patent Document 2). . Furthermore, a technique is also known in which a motion vector whose search destination is an image corresponding to a scene change is excluded from motion vector detection targets (see, for example, Patent Document 3).

特開2010−74496号公報JP 2010-74496 A 特開2009−60536号公報JP 2009-60536 A 特開平5−304664号公報JP-A-5-304664

しかしながら、上述した技術において、例えば外乱などにより計画されていた演算時間が揺らぎ、符号化処理に遅延が発生した場合、演算量を削減することができないため、符号化処理の遅延は累積される。また、H.264/MPEG−4 AVCやH.265/HEVCでは、動きベクトルを検出する領域のサイズが可変であるため、探索回数に対する符号化処理時間は必ずしも一定とならず、探索回数を増減させるだけでは演算時間を十分に制御することができない。   However, in the above-described technique, for example, when the computation time planned due to disturbance or the like fluctuates and a delay occurs in the encoding process, the amount of calculation cannot be reduced, and thus the delay of the encoding process is accumulated. H. H.264 / MPEG-4 AVC and H.264. In H.265 / HEVC, since the size of a region for detecting a motion vector is variable, the encoding processing time with respect to the number of searches is not necessarily constant, and the calculation time cannot be controlled sufficiently only by increasing or decreasing the number of searches. .

そこで、1つの側面では、本件は、動きベクトルの検出時間と検出精度が適正化された動画像符号化装置を提供することを目的とする。   Therefore, in one aspect, an object of the present invention is to provide a moving image encoding apparatus in which the detection time and detection accuracy of a motion vector are optimized.

本明細書に開示の動画像符号化装置は、符号化処理が済んだ第1符号化単位領域で検出した第1動きベクトルを利用して前記符号化処理が済んでいない第2符号化単位領域の第2動きベクトルを検出する動画像符号化装置であって、前記第1符号化単位領域及び前記第2符号化単位領域を含む一画像内の前記符号化処理の進捗に応じて、前記第2符号化単位領域が利用する前記第1動きベクトルの総数を増減させる増減制御手段を有する動画像符号化装置である。   The moving image encoding apparatus disclosed in the present specification uses the first motion vector detected in the first encoding unit region that has been encoded, and the second encoding unit region that has not been encoded The second motion vector detection apparatus detects a second motion vector of the first encoding unit region and the second encoding unit region according to a progress of the encoding process in one image. It is a moving picture encoding apparatus having an increase / decrease control means for increasing / decreasing the total number of the first motion vectors used by two encoding unit areas.

本明細書に開示の動画像符号化装置によれば、動きベクトルの検出時間と検出精度が適正化される。   According to the moving image encoding device disclosed in this specification, the detection time and detection accuracy of a motion vector are optimized.

図1は、動画像符号化装置のブロック図の一例である。FIG. 1 is an example of a block diagram of a video encoding apparatus. 図2は、符号化ツリー単位領域と符号化単位領域の関係の一例を説明するための図である。FIG. 2 is a diagram for explaining an example of a relationship between a coding tree unit region and a coding unit region. 図3は、増減制御回路の動作の一例を示すフローチャートである。FIG. 3 is a flowchart showing an example of the operation of the increase / decrease control circuit. 図4は、動きベクトルの総数の増減を説明するための図である。FIG. 4 is a diagram for explaining an increase or decrease in the total number of motion vectors. 図5は、動きベクトル分類処理の詳細を例示するフローチャートである。FIG. 5 is a flowchart illustrating details of the motion vector classification process. 図6は、動きベクトル分類処理の一例を説明する図である。FIG. 6 is a diagram illustrating an example of motion vector classification processing. 図7は、動きベクトル数決定処理の詳細を例示するフローチャートである。FIG. 7 is a flowchart illustrating details of the motion vector number determination process. 図8は、動きベクトル数の決定を説明する図である。FIG. 8 is a diagram for explaining determination of the number of motion vectors. 図9は、符号化単位領域に配分された動きベクトル数の一例である。FIG. 9 is an example of the number of motion vectors allocated to the coding unit area. 図10は、最大動きベクトル数決定処理の詳細を例示するフローチャートである。FIG. 10 is a flowchart illustrating details of the maximum motion vector number determination process. 図11は、動きベクトル選択処理の詳細を例示するフローチャートである。FIG. 11 is a flowchart illustrating the details of the motion vector selection process. 図12は、実施例と比較例の効果を対比して説明する図である。FIG. 12 is a diagram illustrating the effects of the example and the comparative example in comparison. 図13は、実施例と比較例の効果を対比して説明する別の図である。FIG. 13 is another diagram illustrating the effects of the example and the comparative example in comparison.

以下、本件を実施するための形態について図面を参照して説明する。   Hereinafter, an embodiment for carrying out this case will be described with reference to the drawings.

図1は、動画像符号化装置100のブロック図の一例である。図2は、符号化ツリー単位領域11と符号化単位領域12の関係の一例を説明するための図である。
動画像符号化装置100は、図1に示すように、減算部101、量子化部102、逆量子化部103、加算部104、画像内予測部105、ループフィルタ部106、画面間予測部107、縮小動きベクトル検出部108、等倍動きベクトル検出部109、スイッチ部110、エントロピー符号化部111、動きベクトル管理部112及び制御部120を含んでいる。動画像符号化装置100は、例えばLarge Scale Integration(LSI:大規模集積回路)によって実現される。また、減算部101,・・・,制御部120はそれぞれハードウェア回路によって実現される。
FIG. 1 is an example of a block diagram of the moving picture encoding apparatus 100. FIG. 2 is a diagram for explaining an example of the relationship between the coding tree unit region 11 and the coding unit region 12.
As shown in FIG. 1, the moving image encoding apparatus 100 includes a subtraction unit 101, a quantization unit 102, an inverse quantization unit 103, an addition unit 104, an intra-picture prediction unit 105, a loop filter unit 106, and an inter-screen prediction unit 107. , A reduced motion vector detection unit 108, a normal motion vector detection unit 109, a switch unit 110, an entropy encoding unit 111, a motion vector management unit 112, and a control unit 120. The moving image encoding apparatus 100 is realized by, for example, large scale integration (LSI: large scale integrated circuit). Further, the subtraction units 101,..., The control unit 120 are each realized by a hardware circuit.

動画像符号化装置100には、図1及び図2に示すように、動画像5が入力される。動画像5は、アナログの画像信号である。図2に示すように、動画像5は、時間的に連続する複数のピクチャ(静止画像)10を含んでいる。ピクチャ10はフレームと呼ばれることもある。動画像符号化装置100に動画像5が入力されると、動画像5に含まれる複数のピクチャ10は順にアナログの画像信号からデジタルの画像信号に変換される。デジタルの画像信号に変換されたピクチャ10は、ピクチャの種類(例えばIタイプ、Pタイプ、Bタイプ)に応じて、時間軸上の順序から符号化する順序に並び替えられる。並び替えられたピクチャ10の符号化処理は、図2に示すように、正方の複数の符号化ツリー単位領域11(最大64画素×64画素)毎に行われる。符号化ツリー単位領域11は4種類の符号化単位領域12(8画素×8画素〜64画素×64画素)に分割される。分割された符号化ツリー単位領域11は減算部101、縮小動きベクトル検出部108及び等倍動きベクトル検出部に入力される。尚、符号化ツリー単位領域11は、例えばCoding Tree Unit(CTU:符号化ツリーユニット)又はMacro Block(MB:マクロブロック)と呼ばれる。符号化単位領域12は、例えばCoding Unit(CU:符号化ユニット)やサブブロックと呼ばれる。   As shown in FIGS. 1 and 2, a moving image 5 is input to the moving image encoding apparatus 100. The moving image 5 is an analog image signal. As shown in FIG. 2, the moving image 5 includes a plurality of pictures (still images) 10 that are temporally continuous. The picture 10 is sometimes called a frame. When the moving image 5 is input to the moving image encoding apparatus 100, a plurality of pictures 10 included in the moving image 5 are sequentially converted from an analog image signal to a digital image signal. The picture 10 converted into the digital image signal is rearranged from the order on the time axis to the encoding order according to the type of picture (for example, I type, P type, B type). As shown in FIG. 2, the encoding process of the rearranged pictures 10 is performed for each of a plurality of square encoding tree unit regions 11 (maximum 64 pixels × 64 pixels). The coding tree unit region 11 is divided into four types of coding unit regions 12 (8 pixels × 8 pixels to 64 pixels × 64 pixels). The divided coding tree unit region 11 is input to the subtracting unit 101, the reduced motion vector detecting unit 108, and the equal motion vector detecting unit. The coding tree unit region 11 is called, for example, a Coding Tree Unit (CTU: coding tree unit) or a Macro Block (MB: macro block). The coding unit area 12 is called, for example, a coding unit (CU: coding unit) or a sub-block.

減算部101は、入力された現在(カレント)の符号化ツリー単位領域11から、スイッチ部110から出力された後述するフレーム間予測領域又はフレーム内予測領域を減算する。フレーム間予測領域及びフレーム内予測領域は、いずれも過去の符号化ツリー単位領域11に対応する。減算部101により、現在の符号化ツリー単位領域11とフレーム間予測領域又はフレーム内予測領域との誤差領域が生成される。減算部101は生成した誤差領域を量子化部102に出力する。   The subtraction unit 101 subtracts an inter-frame prediction region or an intra-frame prediction region, which will be described later, output from the switch unit 110 from the input current (current) coding tree unit region 11. Both the inter-frame prediction region and the intra-frame prediction region correspond to the past coding tree unit region 11. The subtraction unit 101 generates an error region between the current coding tree unit region 11 and the inter-frame prediction region or the intra-frame prediction region. The subtraction unit 101 outputs the generated error region to the quantization unit 102.

量子化部102は、入力された誤差領域に対し符号化単位領域12毎にDiscrete Cosine Transform(DCT:離散コサイン変換)を実行する。これにより、各符号化単位領域12は実空間領域から周波数領域に変換される。以下、周波数領域に変換された符号化単位領域12をDCT係数と呼ぶ。量子化部102は、各DCT係数をそれぞれ量子化パラメータ(QP)に応じて量子化する。量子化パラメータは、視覚特性や目標ビットレートに基づくパラメータである。量子化部102は、量子化した各DCT係数を逆量子化部103及びエントロピー符号化部111に出力する。   The quantization unit 102 performs Discrete Cosine Transform (DCT: Discrete Cosine Transform) for each encoding unit region 12 on the input error region. As a result, each coding unit region 12 is converted from the real space region to the frequency region. Hereinafter, the coding unit region 12 converted into the frequency domain is referred to as a DCT coefficient. The quantization unit 102 quantizes each DCT coefficient according to a quantization parameter (QP). The quantization parameter is a parameter based on visual characteristics and a target bit rate. The quantization unit 102 outputs each quantized DCT coefficient to the inverse quantization unit 103 and the entropy coding unit 111.

逆量子化部103は、入力された各DCT係数を逆量子化する。これにより、量子化前のDCT係数、すなわち周波数領域が再生される。逆量子化部103は、各周波数領域に対しInverse Discrete Cosine Transform(IDCT:逆離散コサイン変換)を実行する。これにより、各周波数領域は実空間領域にそれぞれ変換される。すなわち、符号化ツリー単位領域11の一部を構成する誤差領域がそれぞれ再生される。逆量子化部103は、再生した誤差領域を符号化ツリー単位領域11の大きさを有する誤差領域に戻し加算部104に出力する。   The inverse quantization unit 103 inversely quantizes each input DCT coefficient. Thereby, the DCT coefficient before quantization, that is, the frequency domain is reproduced. The inverse quantization unit 103 performs Inverse Discrete Cosine Transform (IDCT) on each frequency domain. Thereby, each frequency domain is converted into a real space domain. That is, each error region that constitutes a part of the coding tree unit region 11 is reproduced. The inverse quantization unit 103 returns the reproduced error region to the error region having the size of the coding tree unit region 11 and outputs the error region to the addition unit 104.

加算部104は、入力された誤差領域と、フレーム間予測領域又はフレーム内予測領域とを加算する。これにより、DCTにより失われた高周波成分を含まない符号化単位領域(以下、再生領域という。)が再生される。加算部104は、再生領域を画面内予測部105とループフィルタ部106に出力する。   The adding unit 104 adds the input error region and the inter-frame prediction region or the intra-frame prediction region. As a result, a coding unit region (hereinafter referred to as a reproduction region) that does not include a high-frequency component lost due to DCT is reproduced. The adding unit 104 outputs the reproduction area to the intra-screen prediction unit 105 and the loop filter unit 106.

画面内予測部105は、入力された再生領域に対しイントラ予測を符号化単位領域12毎に行って、再生領域の予測結果としてフレーム内予測領域をスイッチ部110に出力する。
ループフィルタ部106は、入力された再生領域のノイズを低減する。ループフィルタ部106としては、例えばデブロッキングフィルタがある。ループフィルタ部106にSample Adaptive Offset(SAO:画素適応オフセット)を含めてもよい。ループフィルタ部106は、ノイズを低減した再生領域を画面間予測部107、縮小動きベクトル検出部108及び等倍動きベクトル検出部109に出力する。ノイズを低減した再生領域は、縮小動きベクトル検出部108及び等倍動きベクトル検出部109において参照領域として利用される。尚、ループフィルタ部106は、ノイズを低減した再生領域を動画像符号化装置100の外部に配置されたフレームメモリ(例えばSynchronous Dynamic Random Access Memory(SDRAM))に出力してもよい。
画面間予測部107は、入力された再生領域と等倍動きベクトル検出部109によって検出された等倍画像の動きベクトルとに基づいて、動き補償予測(画面間予測)を行い、予測結果としてのフレーム間予測領域をスイッチ部110に出力する。
The intra-screen prediction unit 105 performs intra prediction on the input reproduction region for each coding unit region 12, and outputs the intra-frame prediction region to the switch unit 110 as a prediction result of the reproduction region.
The loop filter unit 106 reduces noise in the input reproduction area. An example of the loop filter unit 106 is a deblocking filter. The loop filter unit 106 may include Sample Adaptive Offset (SAO: pixel adaptive offset). The loop filter unit 106 outputs the reproduction region in which noise is reduced to the inter-screen prediction unit 107, the reduced motion vector detection unit 108, and the equal-size motion vector detection unit 109. The reproduction area with reduced noise is used as a reference area in the reduced motion vector detection unit 108 and the equal-magnification motion vector detection unit 109. Note that the loop filter unit 106 may output the reproduction region in which noise is reduced to a frame memory (eg, Synchronous Dynamic Random Access Memory (SDRAM)) arranged outside the video encoding device 100.
The inter-screen prediction unit 107 performs motion compensation prediction (inter-screen prediction) based on the input reproduction area and the motion vector of the same-size image detected by the same-size motion vector detection unit 109. The inter-frame prediction region is output to the switch unit 110.

縮小動きベクトル検出部108は、現在(カレント)の符号化ツリー単位領域11を縮小した縮小領域と入力された再生領域を縮小した再生縮小領域のとの差分により、縮小領域による初段の動きベクトルを検出する。検出の際には例えばブロックマッチング法が利用される。縮小動きベクトル検出部108は、初段の動きベクトルとその動きベクトルを検出した際のSAD値を動きベクトル管理部112に出力する。   The reduced motion vector detection unit 108 calculates the first-stage motion vector based on the reduced area based on the difference between the reduced area obtained by reducing the current (current) coding tree unit area 11 and the reproduction reduced area obtained by reducing the input reproduction area. To detect. For the detection, for example, a block matching method is used. The reduced motion vector detection unit 108 outputs the first-stage motion vector and the SAD value when the motion vector is detected to the motion vector management unit 112.

等倍動きベクトル検出部109は、後述する制御部120から出力された探索範囲の中から動きベクトルを選択する。一方、探索範囲が存在しない場合には、現在の符号化ツリー単位領域11と入力された再生領域との差分により、次段の動きベクトルを検出し、検出した次段の動きベクトルと動きベクトル管理部112によって管理された初段の動きベクトルを合成して、等倍画像の動きベクトルを検出する。等倍動きベクトル検出部109は、等倍画像の動きベクトルを画面間予測部107に出力する。また、等倍動きベクトル検出部109は、等倍画像の動きベクトルとその動きベクトルを検出した際のSAD値を動きベクトル管理部112に出力する。   The same-size motion vector detection unit 109 selects a motion vector from the search range output from the control unit 120 described later. On the other hand, if there is no search range, the next stage motion vector is detected based on the difference between the current coding tree unit area 11 and the input reproduction area, and the detected next stage motion vector and motion vector management are detected. The first-stage motion vectors managed by the unit 112 are combined to detect a motion vector of the same-size image. The same-size motion vector detection unit 109 outputs the motion vector of the same-size image to the inter-screen prediction unit 107. In addition, the same-size motion vector detection unit 109 outputs the motion vector of the same-size image and the SAD value when the motion vector is detected to the motion vector management unit 112.

スイッチ部110は、画面内予測部105から出力されたフレーム内予測領域と画面間予測部107から出力されたフレーム間予測領域のいずれかを減算部101及び加算部104に出力する。
エントロピー符号化部111は、量子化部102から出力されたDCT係数と等倍動きベクトル検出部109から出力された等倍画像の動きベクトルをエントロピー符号化する。エントロピー符号化には、例えばハフマン符号化や算術符号化などが利用される。エントロピー符号化部111は、符号化したDCT係数と等倍画像の動きベクトルを多重化し、ビットストリームとして符号出力する。
The switch unit 110 outputs either the intra-frame prediction region output from the intra-screen prediction unit 105 or the inter-frame prediction region output from the inter-screen prediction unit 107 to the subtraction unit 101 and the addition unit 104.
The entropy encoding unit 111 entropy encodes the DCT coefficient output from the quantization unit 102 and the motion vector of the equal-magnification image output from the equal-magnification motion vector detection unit 109. For entropy coding, for example, Huffman coding or arithmetic coding is used. The entropy encoding unit 111 multiplexes the encoded DCT coefficient and the motion vector of the same-size image, and outputs the code as a bit stream.

動きベクトル管理部112は、縮小動きベクトル検出部108から出力された初段の動きベクトル及びそのSAD値、並びに、等倍動きベクトル検出部109から出力された等倍画像の動きベクトル及びそのSAD値を管理する。動きベクトル管理部112には、例えばStatic Random Access Memory(SRAM)が利用される。   The motion vector management unit 112 receives the first-stage motion vector output from the reduced motion vector detection unit 108 and the SAD value thereof, and the motion vector and the SAD value of the same-size image output from the 1 × motion vector detection unit 109. to manage. For the motion vector management unit 112, for example, a static random access memory (SRAM) is used.

制御部120は、現在の符号化ツリー単位領域11が探索する探索範囲を決定する。制御部120は、計時回路121と増減制御回路122を含んでいる。
計時回路121は、ピクチャ10の符号化処理開始から経過した時間を計時し、経過時間に対する符号化処理の進捗率を計算する。計時回路121は、計算した進捗率を増減制御回路122に出力する。
増減制御回路122は、動きベクトル管理部112によって管理された初段の動きベクトル及びそのSAD値、並びに、等倍動きベクトル検出部109から出力された等倍画像の動きベクトル及びそのSAD値を取得する。そして、増減制御回路122は、符号化処理が済んだ符号化ツリー単位領域11と符号化処理が済んでいない符号化ツリー単位領域11を含む一ピクチャ10内の符号化処理の進捗率に応じて、符号化処理が済んでいない符号化ツリー単位領域11が利用する、符号化処理が済んだ符号化ツリー単位領域11で検出された等倍画像の動きベクトルの総数を増減させる。例えば、増減制御回路122は、符号化処理の経過時間に対する符号化処理の進捗率が予め設定された設定情報としての進捗率閾値を下回っている場合、検出に利用する動きベクトルの総数を減らす。一方、増減制御回路122は、符号化処理の経過時間に対する符号化処理の進捗率が進捗率閾値を上回っている場合、検出に利用する動きベクトルの総数を増やす。
The control unit 120 determines a search range in which the current coding tree unit region 11 searches. The control unit 120 includes a timer circuit 121 and an increase / decrease control circuit 122.
The timer circuit 121 measures the time elapsed from the start of the encoding process of the picture 10 and calculates the progress rate of the encoding process with respect to the elapsed time. The timer circuit 121 outputs the calculated progress rate to the increase / decrease control circuit 122.
The increase / decrease control circuit 122 acquires the first-stage motion vector and its SAD value managed by the motion vector management unit 112, and the motion vector and its SAD value of the same-size image output from the 1 × motion vector detection unit 109. . Then, the increase / decrease control circuit 122 corresponds to the progress rate of the encoding process in one picture 10 including the encoding tree unit region 11 that has been encoded and the encoding tree unit region 11 that has not been encoded. The total number of motion vectors of the same-size image detected in the encoding tree unit region 11 that has been subjected to the encoding process and used by the encoding tree unit region 11 that has not been subjected to the encoding process is increased or decreased. For example, the increase / decrease control circuit 122 reduces the total number of motion vectors used for detection when the progress rate of the encoding process with respect to the elapsed time of the encoding process is below a progress rate threshold value as preset setting information. On the other hand, the increase / decrease control circuit 122 increases the total number of motion vectors used for detection when the progress rate of the encoding process with respect to the elapsed time of the encoding process exceeds the progress rate threshold.

次に、図3及び図4を参照して、動画像符号化装置100の動作について説明する。   Next, the operation of the moving picture coding apparatus 100 will be described with reference to FIGS.

図3は、増減制御回路122の動作の一例を示すフローチャートである。図4は、動きベクトルの総数の増減を説明するための図である。
図3に示すように、増減制御回路122は、まず、ピクチャ10に対し新たに符号化処理を開始する度に計時回路121を再設定する(ステップS101)。これにより、ピクチャ10に対して新たに行われる符号化処理に費やされる時間が計時される。次いで、増減制御回路122は、動きベクトル分類処理を実行する(ステップS102)。動きベクトル分類処理は、所定の条件に従って、動きベクトルを分類する処理である。尚、動きベクトル分類処理の詳細は後述する。
FIG. 3 is a flowchart showing an example of the operation of the increase / decrease control circuit 122. FIG. 4 is a diagram for explaining an increase or decrease in the total number of motion vectors.
As shown in FIG. 3, the increase / decrease control circuit 122 first resets the clock circuit 121 every time encoding processing is newly started for the picture 10 (step S101). Thereby, the time spent for the encoding process newly performed on the picture 10 is timed. Next, the increase / decrease control circuit 122 performs a motion vector classification process (step S102). The motion vector classification process is a process of classifying motion vectors according to a predetermined condition. Details of the motion vector classification process will be described later.

次いで、増減制御回路122は、ピクチャ内進捗率を算出する(ステップS103)。ピクチャ内進捗率は以下の数式(1)により算出される。
[ピクチャ内進捗率]
=[符号化処理が済んだ符号化単位領域の数]
÷[ピクチャ内の符号化単位領域の総数]×100・・・(1)
Next, the increase / decrease control circuit 122 calculates the in-picture progress rate (step S103). The in-picture progress rate is calculated by the following equation (1).
[Progress rate in picture]
= [Number of coding unit areas that have been coded]
÷ [total number of coding unit areas in a picture] × 100 (1)

次いで、増減制御回路122は、符号化処理が済んでいない符号化ツリー単位領域11(CTU)が利用する動きベクトルの総数を決定する(ステップS104)。動きベクトルの総数は、以下の数式(2)により決定される。
[動きベクトルの総数]
=[動きベクトルの総数]
+重み係数A×([ピクチャ内進捗率]−[進捗率閾値])・・・(2)
Next, the increase / decrease control circuit 122 determines the total number of motion vectors used by the encoding tree unit region 11 (CTU) that has not been encoded (step S104). The total number of motion vectors is determined by the following equation (2).
[Total number of motion vectors]
= [Total number of motion vectors]
+ Weighting coefficient A × ([progress rate in picture] − [progress rate threshold]) (2)

ここで、重み係数Aは重み付けのために用いる正の定数である。例えば、設定情報として設定されたある時間の進捗率閾値が「40%」、動きベクトルの総数の初期値が「30」、重み係数Aが「25」である場合に、ピクチャ内進捗率が「20%」であると、進捗率閾値をピクチャ内進捗率が下回る。すなわち、符号化処理に遅延が発生している。上述した数式(1)及び(2)によれば、図4に示すように、動きベクトルの総数は「25」と決定される。すなわち、符号化処理が済んでいない符号化ツリー単位領域11は、動きベクトルの総数が「30」から「25」に減る。逆に、符号化処理が進みすぎている場合には、進捗率閾値をピクチャ内進捗率が上回り、符号化処理が済んでいない符号化ツリー単位領域11は、動きベクトルの総数が「30」から「33」等に増える。すなわち、符号化処理の進捗率に応じて、動きベクトルの総数を減らして演算量を減らし符号化処理の速度を上げたり、動きベクトルの総数を増やして演算量を増やし符号化処理の速度を下げたりすることで、符号化処理の速度が一定に保たれる。したがって、実時間の(リアルタイムな)符号化が実現され、リアルタイムエンコードが要求される撮像機器(例えばビデオカメラ)では有効になる。   Here, the weight coefficient A is a positive constant used for weighting. For example, when the progress rate threshold for a certain time set as setting information is “40%”, the initial value of the total number of motion vectors is “30”, and the weighting factor A is “25”, the in-picture progress rate is “ If it is “20%”, the in-picture progress rate falls below the progress rate threshold. That is, there is a delay in the encoding process. According to the above formulas (1) and (2), as shown in FIG. 4, the total number of motion vectors is determined to be “25”. That is, in the coding tree unit region 11 that has not been subjected to the coding process, the total number of motion vectors decreases from “30” to “25”. On the other hand, if the encoding process has progressed too much, the in-picture progress rate exceeds the progress rate threshold, and the encoding tree unit region 11 that has not been encoded has a total number of motion vectors of “30”. It increases to “33”. In other words, depending on the progress rate of the encoding process, the total number of motion vectors is reduced to reduce the amount of calculation to increase the speed of the encoding process, or the total number of motion vectors is increased to increase the amount of calculation and decrease the speed of the encoding process. By doing so, the speed of the encoding process is kept constant. Therefore, real-time (real-time) encoding is realized, and is effective in an imaging device (for example, a video camera) that requires real-time encoding.

次いで、増減制御回路122は、動きベクトル数決定処理を実行する(ステップS105)。動きベクトル数決定処理は、符号化ツリー単位領域11に含まれる各符号化単位領域12に配分する動きベクトル数を決定する処理である。尚、動きベクトル数決定処理の詳細は後述する。次いで、増減制御回路122は、動きベクトル選択処理を実行する(ステップS106)。動きベクトル選択処理は、分類された動きベクトルの中から、探索範囲として利用する動きベクトルを選択する処理である。選択された動きベクトルが探索範囲として等倍動きベクトル検出部109に出力される。   Next, the increase / decrease control circuit 122 executes a motion vector number determination process (step S105). The motion vector number determination process is a process of determining the number of motion vectors to be allocated to each coding unit region 12 included in the coding tree unit region 11. Details of the motion vector number determination process will be described later. Next, the increase / decrease control circuit 122 performs a motion vector selection process (step S106). The motion vector selection process is a process of selecting a motion vector to be used as a search range from the classified motion vectors. The selected motion vector is output as a search range to the equal-magnification motion vector detection unit 109.

増減制御回路122は、次いで、符号化ツリー単位領域11に含まれる全ての符号化単位領域12(CU)に対して動きベクトルの選択が完了したか否かを判断する(ステップS107)。増減制御回路122は、全ての符号化単位領域12に対して動きベクトルの選択が完了していないと判断した場合には(ステップS107:NO)、ステップS106の処理を繰り返す。符号化ツリー単位領域11に含まれる全ての符号化単位領域12に対する動きベクトルの選択が完了する。   Next, the increase / decrease control circuit 122 determines whether or not the selection of motion vectors has been completed for all the coding unit regions 12 (CU) included in the coding tree unit region 11 (step S107). When the increase / decrease control circuit 122 determines that the motion vector selection has not been completed for all the encoding unit regions 12 (step S107: NO), the process of step S106 is repeated. The selection of motion vectors for all the coding unit regions 12 included in the coding tree unit region 11 is completed.

一方、増減制御回路122は、全ての符号化単位領域12に対して動きベクトルの選択が完了したと判断した場合には(ステップS107:YES)、次いで、ピクチャ10に含まれる全ての符号化ツリー単位領域11に対して、ステップS102〜S107の処理が完了したか否かを判断する(ステップS108)。増減制御回路122は、全ての符号化ツリー単位領域11に対してこれらの処理が完了していないと判断した場合には(ステップS108:NO)、ステップS102〜ステップS107の処理を繰り返す。これにより、ピクチャ10に含まれる全ての符号化ツリー単位領域11に対し動きベクトルの総数が決定され、各符号化ツリー単位領域11に含まれる全ての符号化単位領域12に対する動きベクトルの選択が完了する。   On the other hand, if the increase / decrease control circuit 122 determines that the motion vector selection has been completed for all the encoding unit regions 12 (step S107: YES), then all the encoding trees included in the picture 10 are displayed. It is determined whether or not the processing of steps S102 to S107 is completed for the unit area 11 (step S108). If the increase / decrease control circuit 122 determines that these processes have not been completed for all the coding tree unit regions 11 (step S108: NO), the process of step S102 to step S107 is repeated. As a result, the total number of motion vectors is determined for all the coding tree unit regions 11 included in the picture 10, and the selection of the motion vectors for all the coding unit regions 12 included in each coding tree unit region 11 is completed. To do.

一方、増減制御回路122は、全ての符号化ツリー単位領域11に対して上述したステップS102〜ステップS107の処理が完了したと判断した場合には(ステップS108:YES)、次いで、動画像5に含まれる全てのピクチャ10に対してステップS101〜ステップS108の処理が完了したか否かを判断する(ステップS109)。増減制御回路122は、全てのピクチャ10に対してこれらの処理が完了していないと判断した場合には(ステップS109:NO)、ステップS101〜ステップS108の処理を繰り返す。一方、増減制御回路122は、全てのピクチャ10に対してステップS101〜ステップS108の処理が完了したと判断した場合には(ステップS109:YES)、処理を終了する。これにより、動画像5に対し動きベクトルの総数を増減させる処理が完了する。   On the other hand, if the increase / decrease control circuit 122 determines that the processing of steps S102 to S107 described above has been completed for all the coding tree unit regions 11 (step S108: YES), then the increase / decrease control circuit 122 converts the moving image 5 to It is determined whether or not the processing in steps S101 to S108 has been completed for all the included pictures 10 (step S109). When the increase / decrease control circuit 122 determines that these processes have not been completed for all the pictures 10 (step S109: NO), the process of steps S101 to S108 is repeated. On the other hand, when the increase / decrease control circuit 122 determines that the processing in steps S101 to S108 has been completed for all the pictures 10 (step S109: YES), the processing is terminated. Thereby, the process of increasing or decreasing the total number of motion vectors for the moving image 5 is completed.

次に、図5及び図6を参照して、上述したステップS102の動きベクトル分類処理について説明する。   Next, the motion vector classification process in step S102 described above will be described with reference to FIGS.

図5は、動きベクトル分類処理の詳細を例示するフローチャートである。図6は、動きベクトル分類処理の一例を説明する図である。動きベクトル分類処理は、増減制御回路122が取得した等倍画像の動きベクトル毎に実行される。   FIG. 5 is a flowchart illustrating details of the motion vector classification process. FIG. 6 is a diagram illustrating an example of motion vector classification processing. The motion vector classification process is executed for each motion vector of the same-size image acquired by the increase / decrease control circuit 122.

まず、図5に示すように、増減制御回路122は、動きベクトルの分類結果を格納する分類結果格納用リストを初期化する(ステップS201)。次いで、増減制御回路122は、動きベクトル管理部112から取得した等倍画像の動きベクトルがシーンチェンジに該当するピクチャ10を参照しているか否かを判断する(ステップS202)。   First, as shown in FIG. 5, the increase / decrease control circuit 122 initializes a classification result storage list for storing the motion vector classification results (step S201). Next, the increase / decrease control circuit 122 determines whether or not the motion vector of the equal-size image acquired from the motion vector management unit 112 refers to the picture 10 corresponding to the scene change (step S202).

例えば、図6(a)に示すように、符号化処理中のピクチャ10に含まれる符号化ツリー単位領域11が、取得した等倍画像の動きベクトルに基づいて識別番号「0」や識別番号「1」が付与された符号化処理済のピクチャ10におけるベクトル先の領域を参照する。符号化ツリー単位領域11とベクトル先の領域とのSAD値(等倍画像の動きベクトルのSAD値)が所定の判定閾値以上であることにより符号化ツリー単位領域11とベクトル先の領域とが類似していないと判定した場合、等倍画像の動きベクトルがシーンチェンジに相当するピクチャ10を参照していると判断し(ステップS202:YES)、該SAD値と関連付けられた動きベクトルを符号化ツリー単位領域11の利用対象から除外する(ステップS203)。これにより、図6(b)に示すように、シーンチェンジに相当するピクチャ10を参照している候補番号「4」の動きベクトルが利用対象から除外される。   For example, as shown in FIG. 6A, the coding tree unit area 11 included in the picture 10 being coded is identified by an identification number “0” or an identification number “ Reference is made to the vector destination area in the encoded picture 10 to which “1” is assigned. The coding tree unit region 11 and the vector destination region are similar because the SAD value of the coding tree unit region 11 and the vector destination region (the SAD value of the motion vector of the equal-magnification image) is equal to or greater than a predetermined determination threshold. If it is determined that the motion vector of the equal-size image does not refer to the picture 10 corresponding to the scene change (step S202: YES), the motion vector associated with the SAD value is encoded tree It excludes from the utilization object of the unit area | region 11 (step S203). As a result, as shown in FIG. 6B, the motion vector of candidate number “4” referring to the picture 10 corresponding to the scene change is excluded from the use target.

一方、増減制御回路122は、等倍画像の動きベクトルがシーンチェンジに相当するピクチャ10を参照していないと判断した場合(ステップS202:NO)、次いで、同じ識別番号を持つグループがあるか否かを判断する(ステップS204)。例えば、図6(b)に示すように、分類結果格納用リストにまだ分類結果が格納されていない場合、増減制御回路122は、同じ識別番号を持つグループがないと判断し(ステップS204:NO)、分類処理の対象となっている等倍画像の動きベクトルを新しいグループに分類する(ステップS205)。例えば、分類処理の対象となっている等倍画像の動きベクトルとして、図6(b)に示すように、候補番号「0」の動きベクトルが対象となっている場合、分類結果格納用リストにまだ分類結果が格納されていなければ、その動きベクトルはグループ番号「0」に分類される。   On the other hand, if the increase / decrease control circuit 122 determines that the motion vector of the equal-size image does not refer to the picture 10 corresponding to the scene change (step S202: NO), then there is a group having the same identification number. Is determined (step S204). For example, as shown in FIG. 6B, when the classification result is not yet stored in the classification result storage list, the increase / decrease control circuit 122 determines that there is no group having the same identification number (step S204: NO). ), Classifying the motion vectors of the same-size images that are the targets of the classification process into new groups (step S205). For example, as shown in FIG. 6B, when the motion vector of the candidate number “0” is the target as the motion vector of the equal-magnification image that is the target of the classification process, it is included in the classification result storage list. If the classification result is not yet stored, the motion vector is classified into the group number “0”.

一方、増減制御回路122は、同じ識別番号を持つグループがあると判断した場合(ステップS204:YES)、次いで、ベクトル方向が近いグループがあるか否かを判断する(ステップS206)。当該判断は、例えばグループ内に存在する動きベクトルとのコサイン距離や動きベクトルとの差分ベクトルの正接等から求められる。増減制御回路122は、ベクトル方向が近いグループがないと判断した場合(ステップS206:NO)、分類処理の対象となっている等倍画像の動きベクトルを新しいグループに分類する(ステップS205)。一方、増減制御回路122は、ベクトル方向が近いグループがあると判断した場合(ステップS206:YES)、分類処理の対象となっている等倍画像の動きベクトルをそのグループに分類する(ステップS207)。   On the other hand, when the increase / decrease control circuit 122 determines that there is a group having the same identification number (step S204: YES), the increase / decrease control circuit 122 then determines whether there is a group with a close vector direction (step S206). The determination is obtained from, for example, a cosine distance with a motion vector existing in the group, a tangent of a difference vector with the motion vector, or the like. If the increase / decrease control circuit 122 determines that there is no group whose vector direction is close (step S206: NO), it classifies the motion vector of the same-size image that is the target of the classification process into a new group (step S205). On the other hand, if the increase / decrease control circuit 122 determines that there is a group with a similar vector direction (step S206: YES), the motion vector of the same-size image that is the target of the classification process is classified into that group (step S207). .

増減制御回路122は、ステップS203、S205又はS207の処理が完了すると、全ての動きベクトルの分類処理が完了したか否かを判断し(ステップS208)、全ての動きベクトルの分類処理が完了していないと判断した場合には(ステップS208:NO)、ステップS202〜S207の処理を繰り返す。そして、増減制御回路122は、全ての動きベクトルの分類処理が完了したと判断した場合には(ステップS208:YES)、動きベクトル分類処理を終了する。この結果、図6(b)に示すように、同じ符号化処理済のピクチャ10を参照する複数の動きベクトルがベクトルの方向に応じてさまざまなグループに分類される。   When the process in step S203, S205, or S207 is completed, the increase / decrease control circuit 122 determines whether all the motion vector classification processes have been completed (step S208), and all the motion vector classification processes have been completed. If it is determined that there is not (step S208: NO), the processing of steps S202 to S207 is repeated. When the increase / decrease control circuit 122 determines that all the motion vector classification processes have been completed (step S208: YES), the motion vector classification process ends. As a result, as shown in FIG. 6B, a plurality of motion vectors referring to the same encoded picture 10 are classified into various groups according to the vector direction.

次に、図7乃至図9を参照して、上述したステップS105の動きベクトル数決定処理について説明する。   Next, the motion vector number determination process in step S105 described above will be described with reference to FIGS.

図7は、動きベクトル数決定処理の詳細を例示するフローチャートである。図8は、動きベクトル数の決定を説明する図である。図9は、符号化ツリー単位領域11に配分された動きベクトル数の一例である。   FIG. 7 is a flowchart illustrating details of the motion vector number determination process. FIG. 8 is a diagram for explaining determination of the number of motion vectors. FIG. 9 is an example of the number of motion vectors allocated to the coding tree unit area 11.

まず、図7に示すように、増減制御回路122は、後述する各変数を初期化し(ステップS301)、次いで、処理対象の符号化単位領域12を指定して、指定した符号化単位領域12のSAD値が最小SAD値より大きいか否かを判断する(ステップS302)。当該SAD値は、縮小画像の動きベクトルのSAD値である。増減制御回路122は、決定処理の対象となる符号化単位領域12のSAD値が最小SAD閾値より大きいと判断した場合(ステップS302:YES)、変数としての合計SAD値に符号化単位領域12のSAD値を加算する(ステップS303)。すなわち、指定した符号化単位領域12のSAD値が最小SAD閾値以下である場合には、縮小画像の動きベクトルの精度は十分に高精度であると判断し、当該動きベクトルを利用して等倍画像の動きベクトルを探索すると判断する。   First, as shown in FIG. 7, the increase / decrease control circuit 122 initializes each variable to be described later (step S <b> 301), then designates the encoding unit region 12 to be processed, and stores the specified encoding unit region 12. It is determined whether or not the SAD value is larger than the minimum SAD value (step S302). The SAD value is the SAD value of the motion vector of the reduced image. When the increase / decrease control circuit 122 determines that the SAD value of the coding unit region 12 to be determined is larger than the minimum SAD threshold (YES in step S302), the increase / decrease control circuit 122 adds the total SAD value as a variable to the total SAD value. The SAD value is added (step S303). That is, when the SAD value of the designated encoding unit region 12 is equal to or less than the minimum SAD threshold, it is determined that the accuracy of the motion vector of the reduced image is sufficiently high, and the motion vector is used to make the same magnification. It is determined that the motion vector of the image is searched.

増減制御回路122は、ステップS302又はS303の処理が完了すると、次いで、全ての符号化単位領域12(CU)に対しステップS302又はS303の処理が完了したか否かを判断する(ステップS304)。増減制御回路122は、全ての符号化単位領域12に対しステップS302又はS303の処理が完了していないと判断した場合(ステップS304:NO)、ステップS302〜S303の処理を繰り返す。これにより、最小SAD閾値以下を除く符号化ツリー単位領域11に含まれるすべての検出対象領域12のSAD値を合計した合計SAD値が求められる。   When the process of step S302 or S303 is completed, the increase / decrease control circuit 122 then determines whether or not the process of step S302 or S303 is completed for all the coding unit regions 12 (CU) (step S304). When the increase / decrease control circuit 122 determines that the process of step S302 or S303 has not been completed for all the encoding unit regions 12 (step S304: NO), the process of steps S302 to S303 is repeated. As a result, a total SAD value obtained by summing up the SAD values of all the detection target regions 12 included in the coding tree unit region 11 excluding the value equal to or smaller than the minimum SAD threshold is obtained.

増減制御回路122は、全ての符号化単位領域12に対しステップS302又はS303の処理が完了したと判断した場合(ステップS304:YES)、最大動きベクトル数決定処理を実行する(ステップS305)。最大動きベクトル数決定処理は、符号化ツリー単位領域11に含まれる各符号化単位領域12に対し、最大でどの程度の数量の動きベクトル数を配分するかを決定する処理である。尚、最大動きベクトル数決定処理の詳細は後述する。   When the increase / decrease control circuit 122 determines that the process of step S302 or S303 has been completed for all the encoding unit regions 12 (step S304: YES), the increase / decrease control circuit 122 executes the maximum motion vector number determination process (step S305). The maximum motion vector number determination process is a process for determining the maximum number of motion vectors to be allocated to each coding unit region 12 included in the coding tree unit region 11. Details of the maximum motion vector number determination process will be described later.

増減制御回路122は、ステップS305の処理が完了すると、次いで、決定した最大動きベクトル数を変数iに指定するとともに(ステップS306)、処理対象の符号化単位領域12を指定し、処理対象として指定された符号化単位領域12のSAD値が最小SAD閾値より大きいか否かを判断する(ステップS307)。ここで、増減制御回路122は、指定した符号化単位領域12のSAD値が最小SAD閾値以下である場合には(ステップS307:NO)、後述するステップS308〜S310の処理をスキップする。すなわち、指定した符号化単位領域12が最大動きベクトル数の配分先から除外される。これは上述したように、指定した符号化単位領域12のSAD値が最小SAD閾値以下である場合には、縮小画像の動きベクトルの精度は十分に高精度であると判断し、当該動きベクトルを利用して等倍画像の動きベクトルを探索するとためである。   When the process of step S305 is completed, the increase / decrease control circuit 122 then designates the determined maximum number of motion vectors as the variable i (step S306), designates the encoding unit region 12 to be processed, and designates it as the process target. It is determined whether or not the SAD value of the encoded unit area 12 is larger than the minimum SAD threshold (step S307). Here, when the SAD value of the designated encoding unit region 12 is equal to or less than the minimum SAD threshold (step S307: NO), the increase / decrease control circuit 122 skips the processing of steps S308 to S310 described later. That is, the designated encoding unit area 12 is excluded from the allocation destination of the maximum number of motion vectors. As described above, when the SAD value of the designated encoding unit region 12 is equal to or smaller than the minimum SAD threshold, it is determined that the accuracy of the motion vector of the reduced image is sufficiently high, and the motion vector is determined as This is because the motion vector of the same-size image is searched by using it.

一方、増減制御回路122は、処理対象として指定した符号化単位領域12のSAD値が最小SAD閾値より大きい場合には(ステップS307:YES)、次いで、不等式Aを充足するか否かを判断する(ステップS308)。ここで、不等式Aは、合計SAD値を最大動きベクトル数で割り、得られた第1の値に変数iから1を引いた第2の値を掛け合わせた第3の値と指定した符号化単位領域12のSAD値との大小関係を表す式である。例えば、最大動きベクトル数が「4」である場合に、合計SAD値を最大動きベクトル数「4」で割ると、図8に示すように、SAD値が4つの区間に均等に区分される。そして、1つ1つの区間の大きさが上述した第1の値となる。第1の値に最大動きベクトル数「4」から「1」を引いた第2の値「3」を掛け合わせると、図8において合計SAD値と示された破線の左に隣接する破線位置が求められる。したがって、不等式Aは、指定した符号化単位領域12のSAD値と当該破線位置で示されるSAD値との大小関係を表すことになる。   On the other hand, the increase / decrease control circuit 122 determines whether or not the inequality A is satisfied when the SAD value of the coding unit region 12 designated as the processing target is larger than the minimum SAD threshold (step S307: YES). (Step S308). Here, the inequality A is an encoding designated as a third value obtained by dividing the total SAD value by the maximum number of motion vectors and multiplying the obtained first value by a second value obtained by subtracting 1 from the variable i. It is a formula showing the magnitude relationship with the SAD value of the unit region 12. For example, when the maximum number of motion vectors is “4” and the total SAD value is divided by the maximum number of motion vectors “4”, the SAD values are equally divided into four sections as shown in FIG. The size of each section is the above-described first value. When the first value is multiplied by the second value “3” obtained by subtracting “1” from the maximum motion vector number “4”, the broken line position adjacent to the left of the broken line indicated as the total SAD value in FIG. Desired. Therefore, the inequality A represents the magnitude relationship between the SAD value of the designated encoding unit region 12 and the SAD value indicated by the broken line position.

ここで図7に戻り、増減制御回路122は、不等式Aを充足すると判断した場合(ステップS308:YES)、処理対象として指定した符号化単位領域12の動きベクトル数に1を加える(ステップS309)。すなわち、図8に示すように、処理対象として指定した符号化単位領域12のSAD値と上述した破線位置(合計SAD値と示された破線の左に隣接する破線位置)で示されるSAD値との大小関係において、指定した符号化単位領域12のSAD値の方が破線位置で示されるSAD値より大きい場合、指定した符号化単位領域12に1が加算される。一方、増減制御回路122は、不等式Aを充足しないと判断した場合(ステップS308:NO)、ステップS309の処理をスキップする。   Returning to FIG. 7, when the increase / decrease control circuit 122 determines that the inequality A is satisfied (step S308: YES), it adds 1 to the number of motion vectors of the coding unit region 12 designated as the processing target (step S309). . That is, as shown in FIG. 8, the SAD value of the coding unit area 12 designated as the processing target and the SAD value indicated by the above-described broken line position (the broken line position adjacent to the left of the broken line indicated as the total SAD value) When the SAD value of the designated coding unit area 12 is larger than the SAD value indicated by the broken line position, 1 is added to the designated coding unit area 12. On the other hand, when determining that the inequality A is not satisfied (step S308: NO), the increase / decrease control circuit 122 skips the process of step S309.

増減制御回路122は、ステップS308又はS309の処理が完了すると、次いで、符号化ツリー単位領域11内のベクトル数の総和が決定総数であるか否かを判断する(ステップS310)。すなわち、増減制御回路122は、各符号化単位領域12に加算された動きベクトル数の総和が、ステップS104の処理で決定された動きベクトルの総数であるか否かを判断する。例えば、決定された動きベクトルの総数が「25」である場合に、1つの符号化単位領域12に加算された動きベクトル数の総和を算出しても総数「25」でない場合(例えばまだ「1」だけの場合)には、符号化単位領域12に加算された動きベクトル数の総和が、ステップS104の処理で決定された動きベクトルの総数でないと判断される。   When the process of step S308 or S309 is completed, the increase / decrease control circuit 122 then determines whether or not the total number of vectors in the coding tree unit region 11 is the determined total number (step S310). That is, the increase / decrease control circuit 122 determines whether or not the total number of motion vectors added to each coding unit region 12 is the total number of motion vectors determined in the process of step S104. For example, when the total number of determined motion vectors is “25”, the total number of motion vectors added to one coding unit region 12 is not calculated to be “25” (for example, still “1”). "Only"), it is determined that the total number of motion vectors added to the encoding unit region 12 is not the total number of motion vectors determined in the process of step S104.

増減制御回路122は、符号化ツリー単位領域11内のベクトル数の総和が決定総数でないと判断した場合(ステップS310:NO)、すべての符号化単位領域12に対しステップS307〜S310の処理を完了したか否かを判断する(ステップS311)。増減制御回路122は、すべての符号化単位領域12に対しステップS307〜S310の処理を完了していないと判断した場合(ステップS311:NO)、これらの処理を繰り返す。これにより、合計SAD値とこれに隣接するSAD値(図8参照)の間に属するSAD値を有する各符号化単位領域12に対し動きベクトル数「1」がそれぞれ加算される。   When the increase / decrease control circuit 122 determines that the total number of vectors in the coding tree unit region 11 is not the determined total number (step S310: NO), the processing of steps S307 to S310 is completed for all the coding unit regions 12. It is determined whether or not it has been done (step S311). If the increase / decrease control circuit 122 determines that the processing of steps S307 to S310 has not been completed for all the encoding unit regions 12 (step S311: NO), it repeats these processing. As a result, the number of motion vectors “1” is added to each coding unit region 12 having SAD values that belong to the total SAD value and the SAD values adjacent thereto (see FIG. 8).

一方、増減制御回路122は、すべての符号化単位領域12に対し「1」を加算したと判断した場合(ステップS311:YES)、又は、符号化ツリー単位領域11内のベクトル数の総和が決定総数であると判断した場合(ステップS310:YES)、変数iが「1」であるか否かを判断する(ステップS312)。すなわち、指定した符号化単位領域12に「1」を加算した結果、符号化ツリー単位領域11内のベクトル数の総和が決定総数を超えることができないため、動きベクトル数「1」の加算を取り止めることで、総和が決定総数を超過することを防止している。このため、符号化ツリー単位領域11内のベクトル数の総数が決定された総数を上回ることはない。   On the other hand, when the increase / decrease control circuit 122 determines that “1” has been added to all the coding unit regions 12 (step S311: YES), or the total number of vectors in the coding tree unit region 11 is determined. When it is determined that the total number is reached (step S310: YES), it is determined whether or not the variable i is “1” (step S312). That is, as a result of adding “1” to the designated encoding unit region 12, the sum of the number of vectors in the encoding tree unit region 11 cannot exceed the determined total number, and therefore the addition of the number of motion vectors “1” is canceled. This prevents the sum from exceeding the total number of decisions. For this reason, the total number of vectors in the coding tree unit area 11 does not exceed the determined total number.

増減制御回路122は、変数iが「1」でないと判断した場合(ステップS312:NO)、変数iから「1」引いた値を新たな変数iとし(ステップS313)、ステップS307〜S311の処理を繰り返す。この結果、合計SAD値とこれに隣接するSAD値(図8参照)の間に属するSAD値を有する各符号化単位領域12に対しさらに動きベクトル数「1」がそれぞれ加算されるだけでなく、この隣接するSAD値とこれにさらに隣接するSAD値(図8参照)の間に属するSAD値を有する各符号化単位領域12に対しても動きベクトル数「1」がそれぞれ加算される。すなわち、最初に動きベクトル数「4」が割り当てられるべきSAD値を有する各符号化単位領域12に対し、動きベクトル数「1」が加算される。次に、動きベクトル数「4」、「3」が割り当てられるべきSAD値を有する各符号化単位領域12に対し、動きベクトル数「1」が加算される。次に、動きベクトル数「4」、「3」、「2」が割り当てられるべきSAD値を有する各符号化単位領域12に対し、動きベクトル数「1」が加算される。最後に、動きベクトル数「4」、「3」、「2」、「1」が割り当てられるべきSAD値を有する各符号化単位領域12に対し、動きベクトル数「1」が加算される。したがって、動きベクトル数「4」が割り当てられるべきSAD値を有する各符号化単位領域12に対しては動きベクトル数「4」が割り当てられ、以下同様に動きベクトル数「3」、「2」、「1」が割り当てられる。増減制御回路122は、変数iが「1」であると判断した場合(ステップS312:YES)、動きベクトル数決定処理を終了する。この結果、図9に示すように、符号化ツリー単位領域11に総数「25」が決定されている場合、各符号化単位領域12には動きベクトル利用可能数として「0」〜「4」が配分される。特に、低類似度には相対的に多くのベクトル数が配分され、高類似度には相対的に少ないベクトル数が配分される。すなわち、類似度が低いほど多くのベクトル数を配分し、動きベクトルの検出精度の向上を図っている。   When the increase / decrease control circuit 122 determines that the variable i is not “1” (step S312: NO), the value obtained by subtracting “1” from the variable i is set as a new variable i (step S313), and the processing of steps S307 to S311 is performed. repeat. As a result, the motion vector number “1” is not only added to each encoding unit region 12 having SAD values belonging to the total SAD value and the SAD values adjacent to the total SAD value (see FIG. 8), The number of motion vectors “1” is also added to each coding unit region 12 having an SAD value that belongs between this adjacent SAD value and a further adjacent SAD value (see FIG. 8). That is, the motion vector number “1” is added to each coding unit region 12 having the SAD value to which the motion vector number “4” is to be assigned first. Next, the number of motion vectors “1” is added to each coding unit region 12 having SAD values to which the number of motion vectors “4” and “3” should be assigned. Next, the number of motion vectors “1” is added to each coding unit region 12 having SAD values to which the number of motion vectors “4”, “3”, and “2” should be assigned. Finally, the number of motion vectors “1” is added to each coding unit region 12 having SAD values to which the number of motion vectors “4”, “3”, “2”, “1” should be assigned. Accordingly, the number of motion vectors “4” is assigned to each coding unit region 12 having the SAD value to which the number of motion vectors “4” should be assigned, and the number of motion vectors “3”, “2”, “1” is assigned. When determining that the variable i is “1” (step S312: YES), the increase / decrease control circuit 122 ends the motion vector number determination process. As a result, as shown in FIG. 9, when the total number “25” is determined in the coding tree unit area 11, “0” to “4” are available as motion vector available numbers in each coding unit area 12. Distributed. In particular, a relatively large number of vectors are allocated to the low similarity and a relatively small number of vectors are allocated to the high similarity. That is, as the similarity is lower, a larger number of vectors are allocated to improve motion vector detection accuracy.

次に、図10を参照して、上述したステップS305の最大動きベクトル数決定処理について説明する。   Next, the maximum motion vector number determination process in step S305 described above will be described with reference to FIG.

図10は、最大動きベクトル数決定処理の詳細を例示するフローチャートである。
最大動きベクトル数決定処理では、まず、増減制御回路122は、動きベクトル候補の総数から利用対象外の候補数を除外した候補数を最大動きベクトル数と指定する(ステップS401)。例えば、図6(b)に示すように、5つの動きベクトル候補がある場合、利用対象外となった候補番号「4」の動きベクトル候補を除外して最大動きベクトル数「4」を指定する。
FIG. 10 is a flowchart illustrating details of the maximum motion vector number determination process.
In the maximum motion vector number determination process, the increase / decrease control circuit 122 first designates the number of candidates obtained by excluding the number of candidates not to be used from the total number of motion vector candidates as the maximum number of motion vectors (step S401). For example, as shown in FIG. 6B, when there are five motion vector candidates, the maximum motion vector number “4” is specified by excluding the motion vector candidate with the candidate number “4” that is not used. .

次いで、増減制御回路122は、不等式Bを充足するか否かを判断する(ステップS402)。不等式Bは、動きベクトルの出現数の期待値に1つの符号化ツリー単位領域11に含まれる検出単位領域数を掛け合わせた第4の値と、符号化ツリー単位領域11が利用する動きベクトルの総数との大小関係を表す式である。例えば、最大動きベクトル総数が「4」である場合、各符号化単位領域12に「4」〜「1」が均等に出現する場合、(4+3+2+1)÷4=2.5となる。すなわち、各符号化単位領域12には期待値として動きベクトル数「2.5」が出現する。ここで、例えば図9に示すように、符号化ツリー単位領域11に10個の符号化単位領域12(8個の小領域と2つの大領域)が含まれている場合、2.5×10=25となる。したがって、符号化ツリー単位領域11が利用する動きベクトルの総数が「25」である場合、最大動きベクトル総数が「4」であれば動きベクトルの総数「25」以下となって不等式Bを充足し(ステップS402:YES)、増減制御回路122は、最大動きベクトル総数「4」を出力する。   Next, the increase / decrease control circuit 122 determines whether or not the inequality B is satisfied (step S402). The inequality B is the fourth value obtained by multiplying the expected value of the number of appearances of the motion vector by the number of detection unit regions included in one coding tree unit region 11 and the motion vector used by the coding tree unit region 11. It is a formula showing the magnitude relationship with the total number. For example, when the maximum total number of motion vectors is “4”, and “4” to “1” appear evenly in each encoding unit region 12, (4 + 3 + 2 + 1) ÷ 4 = 2.5. That is, the number of motion vectors “2.5” appears as an expected value in each coding unit region 12. Here, for example, as shown in FIG. 9, when the coding tree unit region 11 includes 10 coding unit regions 12 (eight small regions and two large regions), 2.5 × 10. = 25. Therefore, when the total number of motion vectors used by the coding tree unit region 11 is “25”, if the maximum total number of motion vectors is “4”, the total number of motion vectors is “25” or less, and the inequality B is satisfied. (Step S402: YES), the increase / decrease control circuit 122 outputs the maximum motion vector total number “4”.

一方、例えば最大動きベクトル総数が「5」である場合、上述した期待値は同様の計算により3となる。したがって、符号化ツリー単位領域11に10個の符号化単位領域12(8個の小領域と2つの大領域)が含まれている場合、3×10=30となり、符号化ツリー単位領域11が利用する動きベクトルの総数が「25」あれば、不等式Bを充足しない(ステップS402:NO)、この場合、増減制御回路122は、最大動きベクトル総数から「1」を差し引き、新たな最大動きベクトル総数を算出する(ステップS403)。増減制御回路122は、算出した新たな最大動きベクトル数が「0」より大きければ(ステップS404:YES)、ステップS402〜S403の処理を繰り返す。この結果、最大動きベクトル数は、符号化ツリー単位領域11が利用する動きベクトルの総数に応じた数値に収束する。すなわち、最大動きベクトル総数「4」に収束する。   On the other hand, for example, when the maximum total number of motion vectors is “5”, the above-described expected value is 3 by the same calculation. Therefore, if the coding tree unit region 11 includes 10 coding unit regions 12 (eight small regions and two large regions), 3 × 10 = 30, and the coding tree unit region 11 is If the total number of motion vectors to be used is “25”, the inequality B is not satisfied (step S402: NO). In this case, the increase / decrease control circuit 122 subtracts “1” from the maximum total number of motion vectors, thereby obtaining a new maximum motion vector. The total number is calculated (step S403). If the calculated new maximum motion vector number is greater than “0” (step S404: YES), the increase / decrease control circuit 122 repeats the processes of steps S402 to S403. As a result, the maximum number of motion vectors converges to a numerical value corresponding to the total number of motion vectors used by the coding tree unit region 11. That is, it converges to the maximum total number of motion vectors “4”.

次に、図11を参照して、上述したステップS106の動きベクトル選択処理について説明する。   Next, the motion vector selection process in step S106 described above will be described with reference to FIG.

図11は、動きベクトル選択処理の詳細を例示するフローチャートである。
動きベクトル選択処理では、まず、増減制御回路122は、後述する各変数を初期化し(ステップS501)、次いで、各動きベクトルの評価値を算出する(ステップS502)。具体的には、動きベクトルの方向、参照するピクチャ10の種類、SAD値などの評価値付与基準に基づいて評価値が算出される。
FIG. 11 is a flowchart illustrating the details of the motion vector selection process.
In the motion vector selection process, first, the increase / decrease control circuit 122 initializes each variable described later (step S501), and then calculates an evaluation value of each motion vector (step S502). Specifically, the evaluation value is calculated based on evaluation value provision criteria such as the direction of the motion vector, the type of the picture 10 to be referenced, and the SAD value.

動きベクトルの方向であれば、現在の符号化ツリー単位領域11の上又は左に隣接する符号化ツリー単位領域11で決定された動きベクトルに対するSAD値を評価値として利用してもよい。また、類似した方向を指す動きベクトルが多ければ、その動きベクトルに対しその他の動きベクトルより大きな評価値が付与されるようにしてもよい。参照するピクチャ10であれば、算出対象の動きベクトルが、隣接する符号化ツリー単位領域11の動きベクトルと同じピクチャ10を参照していれば、相対的に大きな評価値が付与されるようにしてもよい。全ての動きベクトル候補の中で同じピクチャ10を参照する動きベクトル候補に相対的に大きな評価値が付与されるようにしてもよい。SAD値であれば、SAD値が大きいほど類似度が低いため相対的に小さな評価値が付与されるようにしてもよい。   If it is the direction of the motion vector, the SAD value for the motion vector determined in the coding tree unit region 11 adjacent to the top or left of the current coding tree unit region 11 may be used as the evaluation value. In addition, if there are many motion vectors pointing in similar directions, an evaluation value larger than other motion vectors may be given to the motion vector. For the picture 10 to be referenced, if the motion vector to be calculated refers to the same picture 10 as the motion vector of the adjacent coding tree unit region 11, a relatively large evaluation value is given. Also good. A relatively large evaluation value may be given to motion vector candidates that refer to the same picture 10 among all motion vector candidates. In the case of the SAD value, since the similarity is lower as the SAD value is larger, a relatively smaller evaluation value may be given.

以上説明した評価値付与基準に基づいて、増減制御回路122は、以下の数式(3)を利用して動きベクトルの評価値を算出する。
[動きベクトルの評価値]=
重み係数B×[動きベクトルの方向に関する評価値]
+重み係数C×[参照するピクチャ10に関する評価値]
+重み係数D×[SAD値に関する評価値]・・・(3)
Based on the evaluation value provision criterion described above, the increase / decrease control circuit 122 calculates the evaluation value of the motion vector using the following formula (3).
[Evaluation value of motion vector] =
Weight coefficient B × [evaluation value regarding the direction of the motion vector]
+ Weighting coefficient C × [evaluation value relating to reference picture 10]
+ Weighting coefficient D × [evaluation value for SAD value] (3)

ここで、重み係数B,C,Dは重み付けに利用する正の定数である。例えば、(B,C,D)=(1,0,0)であれば、動きベクトルの方向の類似度のみによる優先順位、(B,C,D)=(1,1,2)であれば、SAD値が小さい動きベクトルを重視した優先順位となる。   Here, the weighting factors B, C, and D are positive constants used for weighting. For example, if (B, C, D) = (1, 0, 0), the priority is based only on the similarity in the direction of the motion vector, and (B, C, D) = (1, 1, 2). For example, priority is given to a motion vector with a small SAD value.

増減制御回路122は、ステップS502の処理が完了すると、次いで、最大の評価値となった動きベクトルを選択し(ステップS503)、選択した動きベクトルを動きベクトル格納用リストから削除する(ステップS504)。そして、増減制御回路122は、選択した動きベクトル数が最大の動きベクトル数に到達したか否か判断する(ステップS505)。すなわち、最大の動きベクトル数が「4」である場合、最大の評価値となった動きベクトルだけが選択されていた場合には、増減制御回路122は、選択した動きベクトル数が最大の動きベクトル数に到達していないと判断し(ステップS505:NO)、ステップS503〜S504の処理を繰り返す。この結果、最大の評価値となった動きベクトルのほかに、順に大きな評価値が付与された3つの動きベクトルが選択される。増減制御回路122は、選択した動きベクトル数が最大の動きベクトル数に到達したと判断した場合(ステップS505:YES)、動きベクトル選択処理を終了する。   When the process of step S502 is completed, the increase / decrease control circuit 122 then selects the motion vector having the maximum evaluation value (step S503), and deletes the selected motion vector from the motion vector storage list (step S504). . Then, the increase / decrease control circuit 122 determines whether or not the selected number of motion vectors has reached the maximum number of motion vectors (step S505). That is, when the maximum number of motion vectors is “4” and only the motion vector having the maximum evaluation value has been selected, the increase / decrease control circuit 122 selects the motion vector having the maximum number of selected motion vectors. It is determined that the number has not been reached (step S505: NO), and the processing of steps S503 to S504 is repeated. As a result, in addition to the motion vector having the maximum evaluation value, three motion vectors to which a large evaluation value is assigned in order are selected. If the increase / decrease control circuit 122 determines that the selected number of motion vectors has reached the maximum number of motion vectors (step S505: YES), the motion vector selection process ends.

次に、図12を参照して、実施例の効果を比較例の効果と対比して説明する。   Next, referring to FIG. 12, the effect of the embodiment will be described in comparison with the effect of the comparative example.

図12は、実施例と比較例の効果を対比して説明する図である。
まず、図12(a)に示すように、符号化ツリー単位領域11の各符号化単位領域12に動きベクトルの総数「30」が所定の配分比率で配分されている。この状態で時刻t1になるまで進捗率閾値に沿って符号化処理が進んでいる。ここで、実施例では、時刻t1にメモリアクセス時間の揺らぎやサブブロック分割法による動きベクトル検出処理時間の揺らぎなどの外乱によって符号化処理に遅れが生じた場合、増減制御回路122は動きベクトルの総数を「30」から「25」に変更する。これにより、演算量が変更前と比べて減少し、符号化処理の速度が向上する。
FIG. 12 is a diagram illustrating the effects of the example and the comparative example in comparison.
First, as shown in FIG. 12A, the total number “30” of motion vectors is distributed to each coding unit region 12 of the coding tree unit region 11 at a predetermined distribution ratio. In this state, the encoding process proceeds along the progress rate threshold until time t1. Here, in the embodiment, if the encoding process is delayed at time t1 due to disturbance such as fluctuation of memory access time or fluctuation of motion vector detection processing time by the sub-block division method, the increase / decrease control circuit 122 detects the motion vector. The total number is changed from “30” to “25”. As a result, the amount of calculation is reduced compared to before the change, and the speed of the encoding process is improved.

また、増減制御回路122は、SAD値が相対的に大きな符号化単位領域12に対し、大きなベクトル数を配分する。この結果、例えば変更前には動きベクトル数「4」が配分されていた符号化単位領域12に対し、変更後にも継続して動きベクトル数「4」が配分される。逆に、増減制御回路122は、SAD値が相対的に小さな符号化単位領域12に対し、小さなベクトル数を配分する。例えば変更前には動きベクトル数「3」〜「1」が配分されていた符号化単位領域12に対し、変更後には動きベクトル数「2」〜「0」が配分される。すなわち、類似度が低い符号化単位領域12では、多くの動きベクトルが利用され検出精度が向上する。一方、類似度が高い符号化単位領域12では、動きベクトルの精度が高いため、多くの動きベクトルを利用しないで済む。動きベクトル数「1」であれば、評価値が最大となった動きベクトルが探索範囲として出力され、動きベクトル数「0」であれば、縮小画像の動きベクトルが利用されて等倍画像の動きベクトルが検出される。このような処理によって、図12(a)に示すように、処理速度が一定に保たれる。   The increase / decrease control circuit 122 distributes a large number of vectors to the coding unit region 12 having a relatively large SAD value. As a result, for example, the number of motion vectors “4” is continuously allocated to the coding unit region 12 to which the number of motion vectors “4” has been allocated before the change. Conversely, the increase / decrease control circuit 122 distributes a small number of vectors to the coding unit region 12 having a relatively small SAD value. For example, the number of motion vectors “2” to “0” is allocated to the coding unit region 12 to which the number of motion vectors “3” to “1” has been allocated before the change. That is, in the coding unit region 12 with a low similarity, many motion vectors are used and the detection accuracy is improved. On the other hand, in the coding unit region 12 having a high degree of similarity, since the accuracy of the motion vector is high, it is not necessary to use many motion vectors. If the number of motion vectors is “1”, the motion vector having the maximum evaluation value is output as the search range, and if the number of motion vectors is “0”, the motion vector of the reduced image is used and the motion of the same-size image is obtained. A vector is detected. By such processing, the processing speed is kept constant as shown in FIG.

逆に、比較例では、図12(b)に示すように、図12(a)と同様に符号化処理が進んでいる。ここで、時刻t1に、上述した外乱によって符号化処理に遅れが生じた場合でも、動きベクトルの総数は「30」から変更されない。これにより、演算量が変更前と比べて変わらず、符号化処理の遅延が累積する。   On the other hand, in the comparative example, as shown in FIG. 12B, the encoding process proceeds as in FIG. Here, even when the encoding process is delayed due to the above-described disturbance at time t1, the total number of motion vectors is not changed from “30”. As a result, the amount of calculation does not change compared to before the change, and the delay of the encoding process is accumulated.

次に、図13を参照して、別の視点から実施例の効果を比較例の効果と対比して説明する。   Next, referring to FIG. 13, the effect of the embodiment will be described from another viewpoint in comparison with the effect of the comparative example.

図13は、実施例と比較例の効果を対比して説明する別の図である。
図13に示すように、実施例では、動きベクトル数「0」が配分された符号化単位領域12では、相対的に精度が高い縮小画像の動きベクトルが利用されて等倍画像の動きベクトルが検出される。一方、動きベクトル数「0」以外が配分された符号化単位領域12では、配分された動きベクトルの数量に応じた動きベクトルが探索範囲として利用される。等倍動きベクトル検出部109では、探索範囲として決定された動きベクトルの中から動きベクトルが検出される。このように、SAD値に応じて、縮小画像の動きベクトルと符号化済みの符号化ツリー単位領域11で検出した動きベクトルが利用されるため、検出時間と検出精度の適正化が測れる。
FIG. 13 is another diagram illustrating the effects of the example and the comparative example in comparison.
As shown in FIG. 13, in the embodiment, in the coding unit area 12 to which the number of motion vectors “0” is allocated, the motion vector of the reduced image with relatively high accuracy is used, and the motion vector of the equal-magnification image is obtained. Detected. On the other hand, in the coding unit region 12 to which a number other than the number of motion vectors “0” is allocated, a motion vector corresponding to the number of allocated motion vectors is used as a search range. The 1 × motion vector detection unit 109 detects a motion vector from the motion vectors determined as the search range. Thus, since the motion vector of the reduced image and the motion vector detected in the encoded coding tree unit region 11 are used according to the SAD value, the detection time and the detection accuracy can be optimized.

一方、比較例1では、すべての符号化単位領域12に対し動きベクトル数「0」が配分されている。このため、高精度だけでなく低精度の縮小画像の動きベクトルも利用されて、等倍画像の動きベクトルが検出されるため、等倍画像の動きベクトルの検出精度が低くなる。また、比較例2では、すべての符号化単位領域12に対し動きベクトル数「5」が配分されている。このため、符号化済みの符号化ツリー単位領域11で検出した動きベクトルが探索範囲として利用されて、等倍画像の動きベクトルが検出されるため、等倍画像の動きベクトルの検出精度は高くなるもの、実施例に比べて多くの検出時間が費やされる。   On the other hand, in Comparative Example 1, the number of motion vectors “0” is distributed to all the encoding unit regions 12. For this reason, since the motion vector of the reduced-size image not only with high accuracy but also with low accuracy is used to detect the motion vector of the same-size image, the detection accuracy of the motion vector of the same-size image is lowered. In Comparative Example 2, the number of motion vectors “5” is allocated to all the encoding unit regions 12. For this reason, since the motion vector detected in the encoded encoding tree unit region 11 is used as a search range and the motion vector of the same-size image is detected, the detection accuracy of the motion vector of the same-size image is increased. However, a lot of detection time is consumed as compared with the embodiment.

以上説明したように、本実施形態によれば、符号化処理が済んだ符号化ツリー単位領域11で検出した動きベクトルを利用して符号化処理が済んでいない符号化ツリー単位領域11の動きベクトルを検出する際、符号化処理の進捗率により符号化処理が済んでいない符号化ツリー単位領域11が利用する動きベクトルの総数を増減させることで、検出時間と検出精度の適正化が図れる。   As described above, according to the present embodiment, the motion vector of the encoding tree unit region 11 that has not been encoded using the motion vector detected in the encoding tree unit region 11 that has been encoded. In this case, the detection time and the detection accuracy can be optimized by increasing / decreasing the total number of motion vectors used by the coding tree unit region 11 that has not been coded according to the progress rate of the coding process.

以上、本発明の好ましい実施形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。例えば、量子化部102で実行されるDCTと量子化はそれぞれ別の回路で実現してもよい。同様に、逆量子化部103で実行されるIDCTと逆量子化についても別の回路で実現してもよい。また、上述した実施形態では、SAD値を利用して類似度を説明したが、Sum of Absolute Transformed Difference(SATD:変換差分絶対値和)値を利用してもよい。   The preferred embodiments of the present invention have been described in detail above, but the present invention is not limited to the specific embodiments according to the present invention, and various modifications are possible within the scope of the gist of the present invention described in the claims.・ Change is possible. For example, DCT and quantization executed by the quantization unit 102 may be realized by separate circuits. Similarly, IDCT and inverse quantization executed by the inverse quantization unit 103 may be realized by separate circuits. In the above-described embodiment, the similarity is described using the SAD value. However, a Sum of Absolute Transformed Difference (SATD) value may be used.

11 符号化ツリー単位領域(第1符号化単位領域、第2符号化単位領域)
12 符号化単位領域(分割領域)
100 動画像符号化装置
120 制御部
121 計時回路
122 増減制御回路(増減制御手段)
11 Coding tree unit region (first coding unit region, second coding unit region)
12 Coding unit area (divided area)
DESCRIPTION OF SYMBOLS 100 Moving image encoding device 120 Control part 121 Time measuring circuit 122 Increase / decrease control circuit (increase / decrease control means)

Claims (7)

符号化処理が済んだ第1符号化単位領域で検出した第1動きベクトルを利用して前記符号化処理が済んでいない第2符号化単位領域の第2動きベクトルを検出する動画像符号化装置であって、
前記第1符号化単位領域及び前記第2符号化単位領域を含む一画像内の前記符号化処理の進捗に応じて、前記第2符号化単位領域が利用する前記第1動きベクトルの総数を増減させる増減制御手段
を有する動画像符号化装置。
A moving picture coding apparatus that detects a second motion vector of a second coding unit area that has not been coded using a first motion vector detected in a first coding unit area that has been coded Because
The total number of the first motion vectors used by the second coding unit region is increased or decreased according to the progress of the coding process in one image including the first coding unit region and the second coding unit region. A moving picture coding apparatus having an increase / decrease control means.
前記増減制御手段は、前記符号化処理の処理時間に対する前記符号化処理の進捗が予め設定された設定情報を下回っている場合、前記第1動きベクトルの総数を減らすことを特徴とする請求項1に記載の動画像符号化装置。   The increase / decrease control means reduces the total number of the first motion vectors when the progress of the encoding process with respect to the processing time of the encoding process is less than preset setting information. The moving image encoding apparatus described in 1. 前記増減制御手段は、前記符号化処理の処理時間に対する前記符号化処理の進捗が予め設定された設定情報を上回っている場合、前記第1動きベクトルの総数を増やすことを特徴とする請求項1又は2に記載の動画像符号化装置。   2. The increase / decrease control means increases the total number of the first motion vectors when the progress of the encoding process with respect to the processing time of the encoding process exceeds preset setting information. Or the moving image encoding apparatus of 2. 前記増減制御手段は、前記第2符号化単位領域を縮小した縮小領域と該縮小領域が参照する第1参照領域との前記第2動きベクトルを検出する分割領域ごとの第1類似度に基づいて、各分割領域に前記第1動きベクトルの総数を配分することを特徴とする請求項1から3のいずれか1項に記載の動画像符号化装置。   The increase / decrease control means is based on a first similarity for each divided region for detecting the second motion vector between a reduced region obtained by reducing the second coding unit region and a first reference region referred to by the reduced region. 4. The moving picture encoding apparatus according to claim 1, wherein the total number of the first motion vectors is distributed to each divided region. 5. 前記増減制御手段は、前記第1類似度が該第1類似度を判定する第1判定閾値以上であることにより前記縮小領域と前記第1参照領域とが類似していないと判断した場合、前記分割領域に配分する前記第1動きベクトルの数量を相対的に増やすことを特徴とする請求項4に記載の動画像符号化装置。   When the increase / decrease control means determines that the reduced area and the first reference area are not similar because the first similarity is equal to or greater than a first determination threshold for determining the first similarity, The moving picture encoding apparatus according to claim 4, wherein the number of the first motion vectors to be allocated to the divided areas is relatively increased. 前記増減制御手段は、前記第1類似度が該第1類似度を判定する第1判定閾値未満であることにより前記縮小領域と前記第1参照領域とが類似していると判断した場合、前記分割領域に配分する前記第1動きベクトルの数量を相対的に減らすことを特徴とする請求項4又は5に記載の動画像符号化装置。   When the increase / decrease control means determines that the reduced area and the first reference area are similar by determining that the first similarity is less than a first determination threshold for determining the first similarity, 6. The moving picture coding apparatus according to claim 4, wherein the number of the first motion vectors allocated to the divided areas is relatively reduced. 前記増減制御手段は、前記第1動きベクトルと関連付けられた前記第1符号化単位領域と該第1符号化単位領域が参照する第2参照領域との第2類似度が該第2類似度を判定する第2判定閾値以上であることにより前記第1符号化単位領域と前記第2参照領域とが類似していないと判断した場合、前記第2類似度と関連付けられた第1動きベクトルを前記第2符号化単位領域の利用対象から除外することを特徴とする請求項1から6のいずれか1項に記載の動画像符号化装置。   The increase / decrease control means determines that the second similarity between the first coding unit region associated with the first motion vector and the second reference region referred to by the first coding unit region is the second similarity. When it is determined that the first coding unit region and the second reference region are not similar by being greater than or equal to a second determination threshold value, the first motion vector associated with the second similarity is The moving picture coding apparatus according to claim 1, wherein the moving picture coding apparatus is excluded from a use target of the second coding unit area.
JP2014013743A 2014-01-28 2014-01-28 Video encoding device Active JP6187286B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014013743A JP6187286B2 (en) 2014-01-28 2014-01-28 Video encoding device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014013743A JP6187286B2 (en) 2014-01-28 2014-01-28 Video encoding device

Publications (2)

Publication Number Publication Date
JP2015142233A true JP2015142233A (en) 2015-08-03
JP6187286B2 JP6187286B2 (en) 2017-08-30

Family

ID=53772336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014013743A Active JP6187286B2 (en) 2014-01-28 2014-01-28 Video encoding device

Country Status (1)

Country Link
JP (1) JP6187286B2 (en)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005057750A (en) * 2003-07-24 2005-03-03 Matsushita Electric Ind Co Ltd Coding mode determination instrument, image coding instrument, coding mode determination method, and coding mode determination program
JP2006080736A (en) * 2004-09-08 2006-03-23 Fujitsu Ltd Motion vector search controller
JP2006345186A (en) * 2005-06-08 2006-12-21 Canon Inc Moving vector detection processing time calculating device and method, moving vector detecting device, and image encoding device
JP2009060536A (en) * 2007-09-03 2009-03-19 Canon Inc Image encoding apparatus, and image encoding method
JP2009284058A (en) * 2008-05-20 2009-12-03 Mitsubishi Electric Corp Moving image encoding device
JP2010074496A (en) * 2008-09-18 2010-04-02 Fujitsu Ltd Motion vector detection processing apparatus
JP2012004710A (en) * 2010-06-15 2012-01-05 Fujitsu Ltd Motion vector detection circuit, moving image encoding apparatus, and motion vector detection method
WO2012042719A1 (en) * 2010-09-30 2012-04-05 三菱電機株式会社 Dynamic image encoding device, dynamic image decoding device, dynamic image encoding method, and dynamic image decoding method
JP2013098733A (en) * 2011-10-31 2013-05-20 Jvc Kenwood Corp Moving image decoder, moving image decoding method and moving image decoding program
WO2014155738A1 (en) * 2013-03-29 2014-10-02 富士通株式会社 Encoding device, computer system, encoding method, encoding program, and recording medium

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005057750A (en) * 2003-07-24 2005-03-03 Matsushita Electric Ind Co Ltd Coding mode determination instrument, image coding instrument, coding mode determination method, and coding mode determination program
JP2006080736A (en) * 2004-09-08 2006-03-23 Fujitsu Ltd Motion vector search controller
JP2006345186A (en) * 2005-06-08 2006-12-21 Canon Inc Moving vector detection processing time calculating device and method, moving vector detecting device, and image encoding device
JP2009060536A (en) * 2007-09-03 2009-03-19 Canon Inc Image encoding apparatus, and image encoding method
JP2009284058A (en) * 2008-05-20 2009-12-03 Mitsubishi Electric Corp Moving image encoding device
JP2010074496A (en) * 2008-09-18 2010-04-02 Fujitsu Ltd Motion vector detection processing apparatus
JP2012004710A (en) * 2010-06-15 2012-01-05 Fujitsu Ltd Motion vector detection circuit, moving image encoding apparatus, and motion vector detection method
WO2012042719A1 (en) * 2010-09-30 2012-04-05 三菱電機株式会社 Dynamic image encoding device, dynamic image decoding device, dynamic image encoding method, and dynamic image decoding method
JP2013098733A (en) * 2011-10-31 2013-05-20 Jvc Kenwood Corp Moving image decoder, moving image decoding method and moving image decoding program
WO2014155738A1 (en) * 2013-03-29 2014-10-02 富士通株式会社 Encoding device, computer system, encoding method, encoding program, and recording medium

Also Published As

Publication number Publication date
JP6187286B2 (en) 2017-08-30

Similar Documents

Publication Publication Date Title
US8665960B2 (en) Real-time video coding/decoding
US10291925B2 (en) Techniques for hardware video encoding
WO2020180685A1 (en) Constraints on decoder-side motion vector refinement
CN107396117B (en) Video encoding and decoding methods and non-transitory computer-readable storage medium
US20110206132A1 (en) Data Compression for Video
EP2520094A2 (en) Data compression for video
JP6149707B2 (en) Moving picture coding apparatus, moving picture coding method, moving picture coding program, and moving picture photographing apparatus
TWI401967B (en) Method for scalable video coding, scalable video coding apparatus, program for scalable video coding, and computer readable storage medium storing program for scalable video coding
CN106658013A (en) Image encoding device and method, image decoding device and method and recording medium
US20120219057A1 (en) Video encoding apparatus and video encoding method
JP4217174B2 (en) Moving picture coding apparatus and moving picture coding method
JP6339977B2 (en) Video encoding apparatus and video encoding program
JP2017228827A (en) Intra-prediction device, image coding device, image decoding device, and program
JP2009094644A (en) Moving image encoding apparatus and method for controlling the same
JP6187286B2 (en) Video encoding device
JP5832263B2 (en) Image coding apparatus and image coding method
JP2015226199A (en) Dynamic image coding device, dynamic image coding method and dynamic image coding program
WO2020129681A1 (en) Encryption device and program
KR101247024B1 (en) Method of motion estimation and compensation using in-loop preprocessing filtering
JP5171675B2 (en) Image processing apparatus and imaging apparatus equipped with the same
JP2009130864A (en) Image processing device, and imaging apparatus equipped with the same
JP6728870B2 (en) Image compression apparatus, image compression method, and image compression program
Lee et al. Depth-based adaptive search range algorithm for motion estimation in HEVC
JP2008153802A (en) Moving picture encoding device and moving picture encoding program
JP2008072608A (en) Apparatus and method for encoding image

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170623

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170704

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170717

R150 Certificate of patent or registration of utility model

Ref document number: 6187286

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150