JP2021044706A - Image encoding device, and control method and program thereof - Google Patents

Image encoding device, and control method and program thereof Download PDF

Info

Publication number
JP2021044706A
JP2021044706A JP2019165531A JP2019165531A JP2021044706A JP 2021044706 A JP2021044706 A JP 2021044706A JP 2019165531 A JP2019165531 A JP 2019165531A JP 2019165531 A JP2019165531 A JP 2019165531A JP 2021044706 A JP2021044706 A JP 2021044706A
Authority
JP
Japan
Prior art keywords
image
motion vector
search
block
coding
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
JP2019165531A
Other languages
Japanese (ja)
Inventor
小林 幸史
Yukifumi Kobayashi
幸史 小林
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2019165531A priority Critical patent/JP2021044706A/en
Publication of JP2021044706A publication Critical patent/JP2021044706A/en
Pending legal-status Critical Current

Links

Images

Abstract

To provide an image encoding device in which an area division number is adaptively determined to suppress increase of a bus band in encoding a frame of an encoding target.SOLUTION: An imaging apparatus comprises: a first search unit that holds a motion vector of each block in which a block of an encoding target of a moving image frame is searched in n pixel accuracy (n is an integer being more than or equal to 2); a determination unit that determines a division number of a frame on the basis of the motion vector of each block obtained by the first search unit; and a control unit that divides the frame into one or more tiles by means of the division number determined by the determination unit, and that performs encoding processing for each divided tile using a block as a unit. The control unit comprises: a second search unit that searches a motion vector which has accuracy of one pixel for a noted block in a noted tile, from an area corresponding to the noted tile in reference image data; and an encoding unit that encodes image data of the noted block according to the motion vector obtained by the second search unit.SELECTED DRAWING: Figure 1

Description

本発明は、画像の符号化技術に関するものである。 The present invention relates to an image coding technique.

動画像の国際標準符号化規格である、H.264やその後継規格であるHEVC(High Efficiency Video Coding)符号化方式においては、動きベクトル検出という技術が用いられている。これは、符号化対象の画像のブロックと、それとは時間的に異なる符号化済みの参照画像との間で動きを検出し、その動き情報を加味して動画像圧縮を行うことにより、符号化効率を高めるものである(非特許文献1)。 In H.264, which is an international standard coding standard for moving images, and HEVC (High Efficiency Video Coding) coding method, which is a successor standard, a technique called motion vector detection is used. This is encoded by detecting motion between a block of the image to be encoded and a coded reference image that is different in time from the block of the image to be encoded, and performing moving image compression in consideration of the motion information. It enhances efficiency (Non-Patent Document 1).

この動きベクトル検出は、ある決められた探索範囲内で行われるものであり、探索範囲は広い方が動きベクトル検出の精度は向上するが、その分だけ回路規模や処理量が増大してしまう。 This motion vector detection is performed within a certain fixed search range, and the wider the search range, the higher the accuracy of the motion vector detection, but the circuit scale and the amount of processing increase accordingly.

また、本来の動きよりも狭い範囲の探索範囲を設定した場合、高い動きを追跡することができず、動きベクトル検出の精度が低下し、画質劣化を招くことになる。 Further, when a search range narrower than the original motion is set, a high motion cannot be tracked, the accuracy of motion vector detection is lowered, and the image quality is deteriorated.

動きベクトル検出をハードウェア処理で行う場合、外部メモリに置かれている参照画像のうち探索範囲部分を読み出して内部メモリに保持しておき、動きベクトル検出を行うことになる。 When the motion vector detection is performed by hardware processing, the search range portion of the reference image stored in the external memory is read out and held in the internal memory, and the motion vector detection is performed.

この参照画像を格納する内部メモリの構成として、水平方向に画像の水平解像度分を保持しておくラインバッファが用いられることが多い。これは、外部メモリから参照画像を読み出す際に、ラインバッファを用いずに符号化ブロックごとに必要な参照画像を読み出すと、同一の画素を何度も重複して読み出す必要があり、外部メモリからの画像データ読み出しのバス帯域を増大させてしまうためである。 As a configuration of the internal memory for storing the reference image, a line buffer for holding the horizontal resolution of the image in the horizontal direction is often used. This is because when reading the reference image from the external memory, if the reference image required for each coded block is read without using the line buffer, the same pixel must be read repeatedly and repeatedly from the external memory. This is because the bus band for reading the image data of the above is increased.

この場合、参照画像格納用内部メモリの構成は、水平方向サイズは画像の水平解像度サイズ、垂直方向サイズは垂直方向の探索を行うのに必要となるサイズとなる。 In this case, the configuration of the internal memory for storing the reference image is such that the horizontal size is the horizontal resolution size of the image and the vertical size is the size required for performing the vertical search.

ラインバッファの容量は解像度に比例して大きくなるため、解像度が大きいほど回路規模が増大してしまう。この問題に対応するため、領域分割を行い、符号化順を変更することで、参照画像の格納用のラインバッファの容量を小さくするという技術がある(特許文献1)。 Since the capacity of the line buffer increases in proportion to the resolution, the larger the resolution, the larger the circuit scale. In order to deal with this problem, there is a technique of reducing the capacity of the line buffer for storing the reference image by dividing the area and changing the coding order (Patent Document 1).

特開2018−32949号公報Japanese Unexamined Patent Publication No. 2018-32949

H.265/HEVC教科書、大久保 榮[[監修]、鈴木輝彦、高村誠之、中条健[共編]、2013年10月21日発行H.265 / HEVC textbook, Ei Okubo [[supervised], Teruhiko Suzuki, Masayuki Takamura, Ken Nakajo [co-edited], published October 21, 2013

しかしながら、従来技術において領域分割数を増やした場合、通常よりも参照画像の読み出し量が多くなってしまう。そのため、外部メモリ読み出しのバス帯域が増大してしまうという問題があった。 However, when the number of region divisions is increased in the prior art, the amount of reading the reference image becomes larger than usual. Therefore, there is a problem that the bus bandwidth for reading the external memory increases.

この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
動画像を符号化する画像符号化装置であって、
動画像のフレームの符号化対象のブロックについて、既に符号化されたフレームの参照画像データを参照して、n画素精度(nは2以上の整数)で動きベクトルを探索していき、ブロック毎の動きベクトルを保持する第1の探索手段と、
該第1の探索手段で得た各ブロックの動きベクトルに基づき、フレームの分割数を判定する判定手段と、
該判定手段で判定した分割数で前記フレームを1以上のタイルに分割し、分割した各タイルについて前記ブロックを単位とする符号化処理を行う制御手段とを有し、
該制御手段は、
着目タイル内の着目ブロックに対する1画素の精度の動きベクトルを、前記参照画像データにおける前記着目タイルに対応する領域から探索する第2の探索手段と、
前記着目ブロックの画像データを、前記第2の探索手段により得た動きベクトルに従って符号化する符号化手段とを有する。
In order to solve this problem, for example, the image coding apparatus of the present invention has the following configuration. That is,
An image coding device that encodes a moving image.
For the block to be encoded in the frame of the moving image, the motion vector is searched with n pixel accuracy (n is an integer of 2 or more) by referring to the reference image data of the already encoded frame, and for each block. The first search means for holding the motion vector and
A determination means for determining the number of divided frames based on the motion vector of each block obtained by the first search means, and a determination means.
The frame is divided into one or more tiles according to the number of divisions determined by the determination means, and each of the divided tiles has a control means for performing coding processing in units of the blocks.
The control means
A second search means for searching a motion vector with an accuracy of one pixel with respect to a block of interest in the tile of interest from a region corresponding to the tile of interest in the reference image data.
It has a coding means for encoding the image data of the block of interest according to the motion vector obtained by the second search means.

本発明によれば、符号化対象のフレームを符号化する際の領域分割数を適応的に決定してバス帯域の増大を抑制しつつ、符号化を行うことができる。 According to the present invention, it is possible to perform coding while adaptively determining the number of region divisions when coding the frame to be coded and suppressing an increase in the bus bandwidth.

実施形態にて適用する撮像装置における符号化に係る構成のブロック図。FIG. 3 is a block diagram of a configuration related to coding in the imaging device applied in the embodiment. 分割なしの場合の符号化順を示す図。The figure which shows the coding order in the case of no division. 水平方向2分割の場合の符号化順を示す図。The figure which shows the coding order in the case of the horizontal 2 division. 符号化対象の画像と参照画像ラインバッファのサイズ関係を示す図。The figure which shows the size relation between the image to be encoded and the reference image line buffer. 水平方向2分割の場合の参照画像ラインバッファのサイズを示す図。The figure which shows the size of the reference image line buffer in the case of horizontal division into two. 水平方向4分割の場合の参照画像ラインバッファのサイズを示す図。The figure which shows the size of the reference image line buffer in the case of 4 divisions in a horizontal direction. 分割なしの場合の参照画像読み出し量を説明するための図。The figure for demonstrating the reference image reading amount in the case of no division. 水平方向2分割の場合の参照画像読み出し量を説明するための図。The figure for demonstrating the reference image reading amount in the case of horizontal division into two. 水平方向4分割の場合の参照画像読み出し量を説明するための図。The figure for demonstrating the reference image reading amount in the case of 4 divisions in a horizontal direction. 水平方向分割数決定処理を示すフローチャート。The flowchart which shows the horizontal direction division number determination processing.

以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。 Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. The following embodiments do not limit the invention according to the claims. Although a plurality of features are described in the embodiment, not all of the plurality of features are essential to the invention, and the plurality of features may be arbitrarily combined. Further, in the attached drawings, the same or similar configurations are designated by the same reference numbers, and duplicate explanations are omitted.

[第1の実施形態]
本実施形態では、画像符号化装置を、デジタルビデオカメラに代表される撮像装置に適用した例を説明する。図1は、その撮像装置における符号化に関わる部分のブロック構成図である。本実施形態では、撮像した動画像をHEVC符号化方式に従って符号化するものとしている。制御部150は以下に説明する各構成要素の制御を行い、装置全体の制御を司る。この制御部150は、CPU、CPUが実行するプログラムを格納するROM、及び、ワークエリアとして使用されるRAMで構成される。
[First Embodiment]
In this embodiment, an example in which the image coding device is applied to an imaging device typified by a digital video camera will be described. FIG. 1 is a block configuration diagram of a portion related to coding in the image pickup apparatus. In the present embodiment, the captured moving image is encoded according to the HEVC coding method. The control unit 150 controls each component described below, and controls the entire device. The control unit 150 includes a CPU, a ROM for storing a program executed by the CPU, and a RAM used as a work area.

レンズ101を通して、被写体の像が撮像部102の結像面に結像される。撮像部102は、結像した光学像を電気信号に変換し、A/D変換でデジタルの画像データ(ベイヤ配列のRAW画像データ)を得る。撮像部102は、得られた画像データを現像処理部103に供給する。なお、撮像部102は、予め設定されたフレームレート(たとえば30フレーム/秒)で撮像処理を行うものとする。 An image of the subject is formed on the image plane of the imaging unit 102 through the lens 101. The imaging unit 102 converts the imaged optical image into an electric signal, and obtains digital image data (RAW image data of the Bayer array) by A / D conversion. The image pickup unit 102 supplies the obtained image data to the development processing unit 103. The imaging unit 102 shall perform imaging processing at a preset frame rate (for example, 30 frames / second).

現像処理部103は、撮像部102より受信した画像データに対し、ディベイヤー処理、キズ補正、ノイズ除去、YCbCr形式への色変換などの画像処理を行う。そして、現像処理部103は、画像処理後の画像データを、符号化対象の着目フレームの画像データとして符号化フレームバッファ104に格納すると共に、符号化画像縮小処理部106に供給する。 The development processing unit 103 performs image processing such as debayer processing, scratch correction, noise removal, and color conversion to the YCbCr format on the image data received from the imaging unit 102. Then, the development processing unit 103 stores the image data after the image processing in the coding frame buffer 104 as the image data of the frame of interest to be coded, and supplies the image data to the coded image reduction processing unit 106.

符号化対象の画像データを格納する符号化フレームバッファ104、参照画像を格納し、保持する参照フレームバッファ105は、それぞれ外部メモリであるDRAM(Dynamic Random Access Memory)を用いるものとする。 The encoded frame buffer 104 for storing the image data to be encoded and the reference frame buffer 105 for storing and holding the reference image shall each use DRAM (Dynamic Random Access Memory) which is an external memory.

符号化対象画像と参照画像との間で動きベクトル検出が行われる。実施形態では、動きベクトル検出処理として、縮小画像を用いて広く粗く探す粗探索と、この粗探索の結果を受けて狭く精度良く探す密探索との組み合わせの階層探索を行う。本実施形態における階層探索は、粗探索と密探索をピクチャパイプラインで行う。すなわち、1ピクチャ分の粗探索をブロック毎に行い、その結果を保存しておく。その後に1ピクチャ分の密探索をブロック毎に行う(詳細後述)。 Motion vector detection is performed between the coded image and the reference image. In the embodiment, as the motion vector detection process, a hierarchical search is performed by combining a coarse search that searches widely and roughly using a reduced image and a dense search that searches narrowly and accurately based on the result of this coarse search. In the hierarchical search in the present embodiment, the coarse search and the dense search are performed by the picture pipeline. That is, a rough search for one picture is performed for each block, and the result is saved. After that, a dense search for one picture is performed for each block (details will be described later).

符号化画像縮小処理部106は、現像処理部103から受信した符号化対象画像データに対して縮小処理を行い、粗探索用の符号化対象の縮小画像データを生成し、その縮小画像データを縮小符号化フレームバッファ107に格納する。なお、縮小率は特に問わないが、実施形態の符号化画像縮小処理部106は水平1/2、垂直1/2の縮小率に従って縮小処理を行うものとする。また、縮小方法は、オリジナルの画像の2×2画素の平均値を縮小後の1画素とするものとするが、オリジナル画像を単純に間引きして縮小画像を生成しても構わない。 The coded image reduction processing unit 106 performs reduction processing on the coded target image data received from the development processing unit 103, generates reduced image data to be coded for rough search, and reduces the reduced image data. It is stored in the coded frame buffer 107. The reduction ratio is not particularly limited, but the coded image reduction processing unit 106 of the embodiment performs the reduction processing according to the reduction ratios of horizontal 1/2 and vertical 1/2. Further, in the reduction method, the average value of 2 × 2 pixels of the original image is set to 1 pixel after reduction, but the original image may be simply thinned out to generate a reduced image.

粗探索部109は、縮小符号化フレームバッファ107に格納された縮小符号化対象画像と、縮小参照フレームバッファ108に格納された縮小参照画像を用いてブロックマッチングを行い粗探索の動きベクトル検出を行う。両者に格納される画像は、オリジナルの画像に対して水平1/2、垂直1/2のサイズであるので、水平、垂直ともに2画素精度の動きベクトルとなる。粗探索部109は、この粗探索による動きベクトル検出は、密探索を行う前に、1ピクチャの全ブロックに対して行い、その結果を内部の不図示のメモリに保存する。粗探索部109が、1ピクチャ分の動きベクトル検出を終えると、密探索の動作が行われる。 The coarse search unit 109 performs block matching using the reduced coded target image stored in the reduced coded frame buffer 107 and the reduced reference image stored in the reduced reference frame buffer 108, and detects the motion vector of the rough search. .. Since the images stored in both have a size of 1/2 horizontal and 1/2 vertical with respect to the original image, the motion vector has a accuracy of 2 pixels in both horizontal and vertical directions. The coarse search unit 109 performs the motion vector detection by the rough search for all the blocks of one picture before performing the dense search, and saves the result in an internal memory (not shown). When the coarse search unit 109 finishes detecting the motion vector for one picture, the dense search operation is performed.

符号化画像ブロックバッファ110は、密探索の符号化画像の保存用であり、符号化フレームバッファ104に格納されている符号化画像をブロック単位で取得し、格納しておく。この符号化画像ブロックバッファ110は、内部メモリであるSRAM(Static Random Access Memory)で構成されているものとする。 The coded image block buffer 110 is for storing the coded image of the dense search, and acquires and stores the coded image stored in the coded frame buffer 104 in block units. It is assumed that the coded image block buffer 110 is composed of SRAM (Static Random Access Memory) which is an internal memory.

参照画像ラインバッファ111は、密探索の参照画像の保存用であり、動きベクトル検出に必要な参照画像を参照フレームバッファ105から取得し、格納する。この参照画像ラインバッファ111は、内部メモリであるSRAMで構成されているものとする。 The reference image line buffer 111 is for storing the reference image of the dense search, and acquires and stores the reference image necessary for motion vector detection from the reference frame buffer 105. It is assumed that the reference image line buffer 111 is composed of SRAM, which is an internal memory.

密探索部112は、粗探索部109が行った動きベクトル検出の結果を受け取り、その動きベクトル位置の周辺の1画素以内の範囲のみ探索を行う。符号化画像ブロックバッファ110に格納されている符号化画像と、参照画像ラインバッファ111に格納されている参照画像との間でブロックマッチングをとり、動きベクトル検出を行う。 The dense search unit 112 receives the result of the motion vector detection performed by the coarse search unit 109, and searches only the range within one pixel around the motion vector position. Block matching is performed between the coded image stored in the coded image block buffer 110 and the reference image stored in the reference image line buffer 111, and motion vector detection is performed.

例えば、粗探索部109の探索処理で得た動きベクトルの水平、垂直成分を{vx、vy}(ただし、vx,vyの2の整数倍となる)と表した場合、密探索部112は、符号化画像ブロックバッファ110に格納された着目ブロックに対する候補ブロックを、水平成分の探索範囲を「vx−1〜vx+1」、垂直成分の探索範囲を「vy−1〜vy+1」の範囲で探し出し、最も近い候補ブロックに対する相対座標を動きベクトルとして取得する。 For example, when the horizontal and vertical components of the motion vector obtained by the search process of the coarse search unit 109 are expressed as {vx, vy} (however, it is an integral multiple of 2 of vx, vy), the dense search unit 112 The candidate block for the block of interest stored in the coded image block buffer 110 is searched for in the range of "vx-1 to vx + 1" for the horizontal component search range and "vy-1 to vy + 1" for the vertical component search range. Acquires the relative coordinates for close candidate blocks as a motion vector.

このように粗探索と密探索の階層探索により動きベクトル検出を行う。密探索時は、粗探索結果の動きベクトル位置の周辺の整数画素精度の動きベクトル検出を行った後、さらに1/2精度、1/4精度の動きベクトル検出を行うこともできる。 In this way, motion vector detection is performed by hierarchical search of coarse search and dense search. At the time of dense search, it is also possible to perform motion vector detection with integer pixel accuracy around the motion vector position of the coarse search result, and then further perform motion vector detection with 1/2 accuracy and 1/4 accuracy.

密探索部112は、動きベクトル検出処理後、符号化対象画像のブロックと、検出された動きベクトルが示す位置の予測画像ブロックとの間で画素の差分をとり、その差分画像ブロックを直交変換部113に出力する。また密探索部112は、ローカルデコード画像作成用に、検出した動きベクトルが示す予測画像ブロックを動き補償部120に出力する。 After the motion vector detection process, the dense search unit 112 takes a pixel difference between the block of the image to be encoded and the predicted image block of the position indicated by the detected motion vector, and converts the difference image block into an orthogonal conversion unit. Output to 113. Further, the dense search unit 112 outputs the predicted image block indicated by the detected motion vector to the motion compensation unit 120 for creating a locally decoded image.

直交変換部113は、送られてきた差分画像ブロックに対して離散コサイン変換(DCT)を行って変換係数を生成し、その変換係数を量子化部114に出力する。 The orthogonal transform unit 113 performs discrete cosine transform (DCT) on the sent difference image block to generate a conversion coefficient, and outputs the conversion coefficient to the quantization unit 114.

量子化部114は、直交変換部113から送られてきた変換係数に対して、量子化制御部115が出力する量子化ステップサイズに従い、量子化を行う。そして、量子化部114は、量子化後の変換係数を、可変長符号化部116、及び、逆量子化部118に出力する。 The quantization unit 114 performs quantization on the conversion coefficient sent from the orthogonal conversion unit 113 according to the quantization step size output by the quantization control unit 115. Then, the quantization unit 114 outputs the conversion coefficient after quantization to the variable length coding unit 116 and the inverse quantization unit 118.

可変長符号化部116は、受信した量子化後の変換係数に対してジグザグスキャン、オルタネートスキャン等を行い、可変長符号化を行い、符号化データを生成する。また、量子化部114は、動きベクトルや量子化ステップサイズ、ブロック分割情報、適応オフセット処理用パラメータなどの符号化方式情報を可変長符号化したものをピクチャ(フレーム)のヘッダとして付加し、生成された符号化データを多重化することで符号化ストリームを生成する。そして、可変長符号化部116は、生成された符号化ストリームを記録メディア117にファイルとして記録する。更に、可変長符号化部116は、符号化の際にブロックごとの発生符号量を算出し、算出した発生符号量を示す情報を量子化制御部115に出力する。 The variable-length coding unit 116 performs a zigzag scan, an alternate scan, or the like on the received conversion coefficient after quantization, performs variable-length coding, and generates coded data. Further, the quantization unit 114 adds variable-length coded coding method information such as motion vector, quantization step size, block division information, and adaptive offset processing parameter to a picture (frame) header to generate the data. A coded stream is generated by multiplexing the coded data. Then, the variable-length coding unit 116 records the generated coded stream as a file on the recording medium 117. Further, the variable length coding unit 116 calculates the generated code amount for each block at the time of coding, and outputs information indicating the calculated generated code amount to the quantization control unit 115.

量子化制御部115は、可変長符号化部116から送られてくる発生符号量を用いて、目標とする符号量になるように、次のブロックを量子化する際の量子化ステップサイズを決定し、量子化部114に出力する。 The quantization control unit 115 uses the generated code amount sent from the variable length coding unit 116 to determine the quantization step size when the next block is quantized so as to reach the target code amount. Then, it is output to the quantization unit 114.

逆量子化部118は、量子化部114から受信した量子化後の変換係数に対して逆量子化を行い、ローカルデコード用の変換係数を生成する。そして、逆量子化部118は、生成された変換係数を逆直交変換部119に出力する。 The inverse quantization unit 118 performs inverse quantization on the conversion coefficient after quantization received from the quantization unit 114, and generates a conversion coefficient for local decoding. Then, the inverse quantization unit 118 outputs the generated conversion coefficient to the inverse orthogonal conversion unit 119.

逆直交変換部119は、逆量子化部118から受信した変換係数に対して逆離散コサイン変換を行うことで、差分画像ブロックを生成する。そして、逆直交変換部119は、生成された差分画像ブロックは動き補償部120に出力する。 The inverse orthogonal transform unit 119 generates a difference image block by performing an inverse discrete cosine transform on the conversion coefficient received from the inverse quantization unit 118. Then, the inverse orthogonal conversion unit 119 outputs the generated difference image block to the motion compensation unit 120.

動き補償部120は、密探索部112から受信した動きベクトルが示す予測画像ブロックと、逆直交変換部119から受信した差分画像ブロックとを加算することにより、ローカルデコード用の画像ブロックを生成する。そして、動き補償部120は、生成された画像ブロックをデブロッキングフィルタ部121に出力する。 The motion compensation unit 120 generates an image block for local decoding by adding the predicted image block indicated by the motion vector received from the dense search unit 112 and the difference image block received from the inverse orthogonal conversion unit 119. Then, the motion compensation unit 120 outputs the generated image block to the deblocking filter unit 121.

デブロッキングフィルタ部121は、動き補償部120から受信した画像ブロックに対してデブロッキングフィルタをかけ、デブロッキングフィルタ後の画像ブロックを適応オフセット処理部122に出力する。 The deblocking filter unit 121 applies a deblocking filter to the image block received from the motion compensation unit 120, and outputs the image block after the deblocking filter to the adaptive offset processing unit 122.

適応オフセット処理部122は、バンドオフセット処理、エッジオフセット処理、もしくは何も処理をしない、のいずれかの選択を行い、適応オフセット処理を行うバンド位置、エッジ方向、オフセット値などを決定する。そして、適応オフセット処理部122は、適応オフセット処理としてどの処理を選択したかを示す情報、バンド位置、エッジ方向、オフセット値などの適応オフセット処理用のパラメータを符号化ストリームとして生成するため、可変長符号化部116に出力する。また、適応オフセット処理部122は、デブロッキングフィルタ後の画像ブロックに対して適応オフセット処理を行う。そして、適応オフセット処理部122は、適応オフセット処理後の画像ブロックをローカルデコード画像として参照フレームバッファ105に格納する。更に、適応オフセット処理部122は、粗探索用の縮小参照画像を生成するためローカルデコードした画像ブロックを参照画像縮小処理部123へ送る。 The adaptive offset processing unit 122 selects either band offset processing, edge offset processing, or no processing, and determines the band position, edge direction, offset value, and the like on which adaptive offset processing is performed. Then, the adaptive offset processing unit 122 generates as a coded stream information indicating which process is selected as the adaptive offset process, and parameters for the adaptive offset process such as the band position, the edge direction, and the offset value, so that the variable length is variable. Output to the coding unit 116. Further, the adaptive offset processing unit 122 performs adaptive offset processing on the image block after the deblocking filter. Then, the adaptive offset processing unit 122 stores the image block after the adaptive offset processing as a locally decoded image in the reference frame buffer 105. Further, the adaptive offset processing unit 122 sends a locally decoded image block to the reference image reduction processing unit 123 in order to generate a reduced reference image for rough search.

参照画像縮小処理部123は、ローカルデコードの画像ブロックに対して縮小処理を行い、縮小参照フレームバッファ108へ格納する。 The reference image reduction processing unit 123 performs reduction processing on the locally decoded image block and stores it in the reduction reference frame buffer 108.

上記の示す動作により、符号化ストリーム、ローカルデコード画像が作成される。 The coded stream and the locally decoded image are created by the operation shown above.

HEVCでは、新たにタイル分割という技術が導入されている。これは画像を複数のタイルに分割するもので、CTU(Coding Tree Unit)の符号化を行う順番が変わる。タイル分割を行う場合は、領域分割制御部124から符号化画像ブロックバッファ110と参照画像ラインバッファ111にタイル分割の指示がなされ、符号化画像、参照画像を取得する順番が変わる。 HEVC has introduced a new technology called tile division. This divides the image into a plurality of tiles, and the order of coding the CTU (Coding Tree Unit) changes. When the tile division is performed, the area division control unit 124 instructs the coded image block buffer 110 and the reference image line buffer 111 to divide the tiles, and the order of acquiring the coded image and the reference image changes.

図2にタイル分割を行わない場合の符号化順を示す。符号化対象の画像201に対して、画像の左上のCTU202からラスタスキャン順に処理が行われる。すなわち、左上のCTUから右方向に順番に処理が行われ、右端の処理が終わったら左端で一つ下のCTUの処理が行われる。このような順で画像の右下のCTU203まで処理が行われる。 FIG. 2 shows the coding order when tile division is not performed. The image 201 to be encoded is processed in the order of raster scan from CTU202 on the upper left of the image. That is, the processing is performed in order from the upper left CTU to the right, and when the processing at the right end is completed, the processing of the next lower CTU is performed at the left end. Processing is performed up to CTU203 at the lower right of the image in this order.

図3にタイル分割を水平方向の左右に2分割した場合の符号化順を示す。左タイル301、右タイル302に対して、まず左タイル301の中でラスタ順に処理が行われる。左タイル301の左上のCTU303から処理が行われ、左タイルの右下のCTU304まで順に処理が行われる。その後、右タイル302の左上CTU305に処理が移り、右タイル302の中でラスタ順に処理が行われ、右下CTU306まで順に処理が行われる。 FIG. 3 shows the coding order when the tile division is divided into two on the left and right in the horizontal direction. The left tile 301 and the right tile 302 are first processed in raster order in the left tile 301. Processing is performed from CTU 303 on the upper left of the left tile 301, and processing is performed in order up to CTU 304 on the lower right of the left tile. After that, the processing moves to the upper left CTU 305 of the right tile 302, the processing is performed in the raster order in the right tile 302, and the processing is performed in order up to the lower right CTU 306.

このように水平方向にタイル分割を行うと符号化処理の順番が変わることになる。 When tiles are divided in the horizontal direction in this way, the order of coding processing changes.

次に、参照画像ラインバッファ111の使用方法について説明する。 Next, how to use the reference image line buffer 111 will be described.

タイル分割なしの場合の符号化対象の画像、および参照画像ラインバッファ111の水平サイズ、および垂直サイズを図4に示す。 FIG. 4 shows the image to be encoded and the horizontal size and vertical size of the reference image line buffer 111 without tile division.

図示では、符号化対象の画像401の解像度(画素数)を3840×2160画素とし、タイル分割なしの場合の動きベクトル検出の水平方向の探索範囲を±256画素、垂直方向の探索範囲を±128ラインとして説明する。 In the figure, the resolution (number of pixels) of the image 401 to be encoded is 3840 × 2160 pixels, the horizontal search range for motion vector detection without tile division is ± 256 pixels, and the vertical search range is ± 128. Described as a line.

タイル分割なしの場合の参照画像ラインバッファ111の水平サイズは水平解像度と同じ3840画素となる。そして、参照画像ラインバッファ111の垂直サイズは垂直方向探索範囲+垂直方向CTUサイズ(ここでは64ラインとする)であるので、320ラインとなる。 The horizontal size of the reference image line buffer 111 without tile division is 3840 pixels, which is the same as the horizontal resolution. Since the vertical size of the reference image line buffer 111 is the vertical search range + the vertical CTU size (64 lines here), it is 320 lines.

これより参照画像ラインバッファ111の容量は、3840×320画素で“1228800”画素分のデータ量となる。 From this, the capacity of the reference image line buffer 111 is 3840 × 320 pixels, which is the amount of data equivalent to “1228800” pixels.

次に、水平方向の左右にタイル2分割を行った場合の符号化対象の画像、および参照画像ラインバッファ111の水平サイズ、および垂直サイズを図5に示す。 Next, FIG. 5 shows the image to be encoded and the horizontal size and vertical size of the reference image line buffer 111 when the tiles are divided into two on the left and right in the horizontal direction.

タイル分割を行った場合、動きベクトル検出の水平方向の探索範囲は分割なしの場合と同様に水平方向±256画素となり、垂直方向の探索範囲は分割なしの場合より広く取ることができる。 When the tiles are divided, the horizontal search range for motion vector detection is ± 256 pixels in the horizontal direction as in the case without division, and the search range in the vertical direction can be wider than in the case without division.

水平方向にタイル分割を行った場合の参照画像ラインバッファ111の水平サイズは、分割なし時とはCTUの符号化順が変わるために、水平タイルサイズ+探索範囲となる。水平タイルサイズは、左タイル501、および右タイル502ともに3840画素の2分割なので1920画素となる。水平方向の探索範囲は256画素なので、参照画像ラインバッファ111の水平サイズは1920+256で2176画素となる。 The horizontal size of the reference image line buffer 111 when the tiles are divided in the horizontal direction is the horizontal tile size + the search range because the coding order of the CTU is different from that when the tiles are not divided. The horizontal tile size is 1920 pixels because both the left tile 501 and the right tile 502 are divided into 3840 pixels. Since the search range in the horizontal direction is 256 pixels, the horizontal size of the reference image line buffer 111 is 1920 + 256, which is 2176 pixels.

参照画像ラインバッファ111の容量は1228800画素のデータ量が確保できる。水平サイズは上記の通り、2176画素なので、参照画像ラインバッファ111の垂直サイズは564ライン(=1228800/2176)とすることができる。垂直CTUサイズが64ラインであることから、{564−64}/2=250となるので、垂直探索範囲を±250ラインにすることができる。 The capacity of the reference image line buffer 111 can secure a data amount of 1228800 pixels. Since the horizontal size is 2176 pixels as described above, the vertical size of the reference image line buffer 111 can be 564 lines (= 1228800/2176). Since the vertical CTU size is 64 lines, {564-64} / 2 = 250, so that the vertical search range can be set to ± 250 lines.

このように水平方向にタイル分割を行うことで、垂直探索範囲を広くすることができる。 By dividing the tiles in the horizontal direction in this way, the vertical search range can be widened.

水平方向のタイル4分割を行った場合の符号化対象の画像、および参照画像ラインバッファ111の水平サイズ、および垂直サイズを図6に示す。 FIG. 6 shows the image to be encoded and the horizontal size and vertical size of the reference image line buffer 111 when the tiles are divided into four in the horizontal direction.

水平方向に並ぶタイル601、タイル602、タイル603、タイル604のそれぞれの水平方向のサイズは960画素(=3840/4)となる。また、水平方向の動きベクトルの探索範囲は256画素であり、タイル602、タイル603は左右方向の両方に探索範囲分だけ必要となるので、参照画像ラインバッファ111の水平方向のサイズは960+256+256で1472画素となる。 The horizontal size of each of the tiles 601 and 602, tiles 603, and tiles 604 arranged in the horizontal direction is 960 pixels (= 3840/4). Further, since the search range of the motion vector in the horizontal direction is 256 pixels, and the tiles 602 and 603 are required for the search range in both the left and right directions, the size of the reference image line buffer 111 in the horizontal direction is 960 + 256 + 256, which is 1472. It becomes a pixel.

参照画像ラインバッファ111の容量は1228800画素のデータ量が確保できるわけであるので、参照画像ラインバッファ111の垂直サイズは834ライン(=1228800/1472)とすることができる。垂直CTUサイズが64ラインであることから、(834−64)/2=385となるので、垂直探索範囲を±385ラインにすることができることになる。 Since the capacity of the reference image line buffer 111 can secure a data amount of 1228800 pixels, the vertical size of the reference image line buffer 111 can be 834 lines (= 1228800/1472). Since the vertical CTU size is 64 lines, (834-64) / 2 = 385, so that the vertical search range can be set to ± 385 lines.

このように、水平方向の分割数を増やすことにより、垂直方向により広い探索範囲を取ることができる。 In this way, by increasing the number of divisions in the horizontal direction, a wider search range can be obtained in the vertical direction.

次に、分割なしの場合と分割した場合の、参照画像データの総読み出し量について説明する。 Next, the total read amount of the reference image data will be described with and without division.

まず、図7を参照して、分割なしの場合の参照画像データの総読み出し量を説明する。分割なしの場合は参照画像データ701に対して、先頭ラインの画素から順番に参照画像ラインバッファ111にラインごとに読み出しを行い、不必要になったラインを入れ替えていくことにより、各画素を1回だけ読むことになる。したがって、総読み出し量は画像サイズと同じになり、水平3840画素×垂直2160ラインで、8294400画素分のデータ量となる。 First, with reference to FIG. 7, the total amount of reference image data read out without division will be described. In the case of no division, the reference image data 701 is read out from the pixel of the first line in order to the reference image line buffer 111 for each line, and unnecessary lines are replaced to make each pixel 1. You will read it only once. Therefore, the total read amount is the same as the image size, and the amount of data is 8294400 pixels in the horizontal 3840 pixels × vertical 2160 lines.

次に、水平方向に2分割の場合の参照画像データの総読み出し量を図8(a),(b)を参照して説明する。 Next, the total read amount of the reference image data in the case of being divided into two in the horizontal direction will be described with reference to FIGS. 8A and 8B.

まず、左タイル801が符号化対象の着目タイルであって、その着目タイル内の着目ブロックを符号化する場合は、着目タイルに対応する参照画像データの読み出しを行う。左タイル801の先頭ラインの画素から順番に参照画像ラインバッファ111にラインごとに読み出しを行う。ここで、参照画像を格納する水平方向のラインバッファサイズは、左タイル801の水平サイズ+右方向の水平方向探索範囲となる。水平タイルサイズが1920画素、水平探索範囲が256画素のため、水平方向のラインバッファサイズは2176画素となる(図5を参照されたい)。 First, when the left tile 801 is the tile of interest to be encoded and the block of interest in the tile of interest is encoded, the reference image data corresponding to the tile of interest is read out. The reference image line buffer 111 is read out line by line in order from the pixel of the first line of the left tile 801. Here, the horizontal line buffer size for storing the reference image is the horizontal size of the left tile 801 + the horizontal search range in the right direction. Since the horizontal tile size is 1920 pixels and the horizontal search range is 256 pixels, the horizontal line buffer size is 2176 pixels (see FIG. 5).

分割なしの場合と同様にラインごとに読み出しを行い、不必要になったラインを入れ替えていく。その結果、左タイル801用の参照画像の読み出し範囲802は、水平2176画素×垂直2160ラインとなり、4700160画素分のデータ量となる。 Read out line by line as in the case without division, and replace unnecessary lines. As a result, the reading range 802 of the reference image for the left tile 801 is 2176 horizontal pixels × 2160 vertical lines, which is the amount of data for 4700160 pixels.

右タイル803の場合も左タイル801と同様に、水平方向のラインバッファサイズは右タイルサイズ+左方向の水平方向探索範囲で2176画素となる。左タイルと同じく、読み出し量は4700160画素分のデータ量となる。 In the case of the right tile 803 as well as the left tile 801 the horizontal line buffer size is 2176 pixels in the right tile size + the horizontal search range in the left direction. As with the left tile, the read amount is the amount of data for 4700160 pixels.

これらより水平方向2分割の場合の参照画像の総読み出し量は、4700160×2=9400320画素となる。これは分割なしの総読み出し量に対して1105920画素の増加となる。 From these, the total amount of reading of the reference image in the case of dividing into two in the horizontal direction is 4700160 × 2 = 9400320 pixels. This is an increase of 110,920 pixels with respect to the total read amount without division.

次に、水平方向4分割の場合の参照画像の総読み出し量を図9(a)〜(d)を参照して説明する。 Next, the total amount of reading of the reference image in the case of dividing into four in the horizontal direction will be described with reference to FIGS. 9 (a) to 9 (d).

左端のタイル901の水平方向のラインバッファサイズは水平タイルサイズ+右方向の水平探索範囲であり、960+256で、1216画素となる。よって、タイル901の参照画像の読み出し範囲902の読み出し量は、1216画素×2160ラインで2626560画素分のデータ量となる。 The horizontal line buffer size of the leftmost tile 901 is the horizontal tile size + the horizontal search range in the right direction, which is 960 + 256, which is 1216 pixels. Therefore, the read amount of the reference image read range 902 of the tile 901 is the data amount of 2626560 pixels in 1216 pixels × 2160 lines.

左から2番目のタイル903の水平方向のラインバッファサイズは水平タイルサイズ+左右方向の水平探索範囲であり、960+256+256で、1472画素となる。よって、タイル903の参照画像の読み出し範囲904の読み出し量は、1472画素×2160ラインで3179520画素分となる。 The horizontal line buffer size of the second tile 903 from the left is the horizontal tile size + the horizontal search range in the left-right direction, which is 960 + 256 + 256, which is 1472 pixels. Therefore, the reading amount of the reading range 904 of the reference image of the tile 903 is 3179520 pixels in 1472 pixels × 2160 lines.

左から3番目のタイル905もタイル903の場合と同様に算出し、参照画像の読み出し範囲906の読み出し量は3179520画素分となる。 The third tile 905 from the left is also calculated in the same manner as in the case of the tile 903, and the reading amount of the reading range 906 of the reference image is 3179520 pixels.

そして、一番右のタイル907もタイル901の場合と同様に算出し、参照画像の読み出し範囲908の読み出し量は2626560画素部となる。 Then, the rightmost tile 907 is also calculated in the same manner as in the case of the tile 901, and the reading amount of the reading range 908 of the reference image is 2626560 pixels.

これらを合計した水平方向4分割の場合の参照画像の総読み出し量は、2626560+3179520+3179520+2626560=11612160画素となる。これは分割なしの総読み出し量に対して2217760画素の増加であり、水平方向2分割の総読み出し量に対して2211840画素の増加となる。 The total amount of the reference image read out in the case of the total of these four divisions in the horizontal direction is 2626560 + 3179520 + 3179520 + 2626560 = 11612160 pixels. This is an increase of 22177760 pixels with respect to the total read amount without division, and an increase of 2211840 pixels with respect to the total read amount of the horizontal two divisions.

このように、水平方向の分割数が多くなるほど参照画像の総読み出し量は増えていく。したがって水平方向の分割数が多くなるほどDRAM読み出しのバス帯域を消費してしまうことになる。 In this way, as the number of divisions in the horizontal direction increases, the total amount of reading of the reference image increases. Therefore, as the number of divisions in the horizontal direction increases, the DRAM read bus bandwidth is consumed.

なるべくバス帯域を消費せずに適切な探索範囲を設定するためには、粗探索部109の結果を用いて密探索時の水平方向の分割数を決定することである。 In order to set an appropriate search range without consuming the bus band as much as possible, the number of divisions in the horizontal direction at the time of dense search is determined by using the result of the coarse search unit 109.

実施形態の場合、粗探索部109は、1ピクチャ分のブロックごとの2画素精度の動きベクトル検出を行い、その結果を保存する。そして、密探索時には、粗探索結果の2画素精度の動きベクトルの周辺1画素以内のみ探索を行うため、この時点でピクチャ内の動きベクトルの最大値を求めることができる。ここでの最大値とは、ベクトル長が最も長いものを指す。このピクチャ内の垂直方向の動きベクトルのベクトル長最大値を領域分割制御部124に送る。 In the case of the embodiment, the coarse search unit 109 performs motion vector detection with two pixel accuracy for each block for one picture, and saves the result. Then, at the time of the dense search, the search is performed only within one pixel around the motion vector with a two-pixel accuracy of the rough search result, so that the maximum value of the motion vector in the picture can be obtained at this point. The maximum value here refers to the one with the longest vector length. The maximum value of the vector length of the vertical motion vector in this picture is sent to the area division control unit 124.

領域分割制御部124は、ピクチャ内の垂直方向の粗動きベクトルのベクトル長最大値から、水平方向の分割数を決定する。 The area division control unit 124 determines the number of divisions in the horizontal direction from the maximum vector length of the vertical coarse motion vector in the picture.

本実施形態における動きベクトルの垂直方向の探索範囲は、分割なしの場合が±128ライン、水平方向2分割の場合が±250ライン、水平方向4分割の場合が±385ラインである。このことから、実施形態の領域分割制御部124は、ピクチャ内の垂直方向の動きベクトルのベクトル長最大値が128ライン以内であれば水平方向分割なし、250ライン以内であれば水平方向2分割、それより大きい場合は水平方向4分割、と決定する。 The search range of the motion vector in the vertical direction in the present embodiment is ± 128 lines in the case of no division, ± 250 lines in the case of two divisions in the horizontal direction, and ± 385 lines in the case of four divisions in the horizontal direction. From this, the area division control unit 124 of the embodiment does not divide in the horizontal direction if the maximum vector length of the vertical motion vector in the picture is within 128 lines, and divides into two in the horizontal direction if it is within 250 lines. If it is larger than that, it is determined to be divided into four in the horizontal direction.

粗探索で得た動きベクトルの垂直方向のベクトル長最大値から分割数を決定しているため、密探索時に動きベクトル検出が可能となる最小の分割数にすることができる。 Since the number of divisions is determined from the maximum value of the vertical vector length of the motion vector obtained by the rough search, the minimum number of divisions that enables motion vector detection during the dense search can be set.

実施形態における参照画像データの水平方向の分割数決定処理を図10のフローチャートに従って説明する。 The horizontal division number determination process of the reference image data in the embodiment will be described with reference to the flowchart of FIG.

まず、S1001にて、制御部150の制御下にて粗探索部109が、1ピクチャ分の粗探索をブロックごとに行い、2画素精度の粗動きベクトル検出を行い、その結果を保存する。そして、S1002にて、制御部150は、粗探索における動きベクトル検出の結果から、ピクチャ内の粗動きベクトルの垂直方向のベクトル長最大値を取得する。 First, in S1001, under the control of the control unit 150, the coarse search unit 109 performs a rough search for one picture for each block, performs rough motion vector detection with two pixel accuracy, and saves the result. Then, in S1002, the control unit 150 acquires the maximum value of the vector length in the vertical direction of the rough motion vector in the picture from the result of the motion vector detection in the rough search.

S1003にて、制御部150は、粗動きベクトルの垂直方向のベクトル長最大値が閾値である“128”以下かどうか判定する。閾値以下であると判定した場合、制御部150は、処理をS1004に進める。このS1004にて、制御部150は密探索時の水平方向分割を無しに設定する(タイル分割数を1にすると等価)。 In S1003, the control unit 150 determines whether or not the maximum value of the vector length in the vertical direction of the coarse motion vector is "128" or less, which is the threshold value. If it is determined that the value is equal to or less than the threshold value, the control unit 150 advances the process to S1004. In this S1004, the control unit 150 sets no horizontal division at the time of dense search (equivalent to setting the number of tile divisions to 1).

S1003にて、制御部150が粗動きベクトルの垂直方向のベクトル長最大値が128を超えると判定した場合、処理をS1005に進める。このS1005にて、制御部150は、粗動きベクトルの垂直方向のベクトル長最大値が250以下かどうかを判定する。制御部150は、粗動きベクトルの垂直方向のベクトル長最大値が250以下であると判定した場合、処理をS1006に進める。このS1006にて、制御部150は、密探索時の水平方向分割数を2分割に設定する。 When the control unit 150 determines in S1003 that the maximum value of the vector length in the vertical direction of the coarse motion vector exceeds 128, the process proceeds to S1005. In this S1005, the control unit 150 determines whether or not the maximum value of the vector length in the vertical direction of the coarse motion vector is 250 or less. When the control unit 150 determines that the maximum value of the vector length in the vertical direction of the rough motion vector is 250 or less, the control unit 150 advances the process to S1006. In this S1006, the control unit 150 sets the number of horizontal divisions during the dense search to two.

一方、S1005にて、制御部150が粗動きベクトルの垂直方向のベクトル長最大値が250を超えると判定した場合、処理をS1007に進める。このS1007にて、制御部150は、密探索時の水平方向分割数を4分割に設定する。 On the other hand, when the control unit 150 determines in S1005 that the maximum value of the vector length in the vertical direction of the rough motion vector exceeds 250, the process proceeds to S1007. In this S1007, the control unit 150 sets the number of divisions in the horizontal direction at the time of dense search to four.

このように動作することで、密探索時に得た粗動きベクトル検出の探索範囲を適切に保ちながら、参照画像データの水平方向分割数を最小限に抑えることができる。 By operating in this way, it is possible to minimize the number of horizontal divisions of the reference image data while appropriately maintaining the search range of the coarse motion vector detection obtained during the dense search.

以上のように、粗探索時のベクトル検出の結果の粗動きベクトルの垂直方向のベクトル長最大値に応じて、密探索時の参照画像データの水平方向分割数を決定することで、適切な探索範囲のまま水平方向分割数を最小限に抑えることができ、バス帯域の増加を最小限にすることができる。 As described above, an appropriate search is performed by determining the number of horizontal divisions of the reference image data during the dense search according to the maximum value of the vertical vector length of the coarse motion vector as a result of the vector detection during the rough search. The number of horizontal divisions can be minimized while maintaining the range, and the increase in bus band can be minimized.

なお、本実施形態では、符号化方式としてHEVCを採用するものとして説明を行ったが、領域分割を用いるものであれば、特に符号化方式は問わない。 In this embodiment, HEVC has been described as a coding method, but any coding method may be used as long as it uses region division.

また、実施形態では、粗探索部109は2画素精度で動きベクトルの探索を行うものとした。しかし、符号化画像縮小処理部106は、オリジナルの画像のn×n画素(nは2以上の整数)から縮小画像の1画素を生成する場合には、粗探索部109はn画素精度で動きベクトルの探索を行えばよいので、上記実施形態に限定されるものではない。 Further, in the embodiment, the coarse search unit 109 searches for a motion vector with a two-pixel accuracy. However, when the coded image reduction processing unit 106 generates one pixel of the reduced image from n × n pixels (n is an integer of 2 or more) of the original image, the coarse search unit 109 moves with n pixel accuracy. The vector search may be performed, and the present invention is not limited to the above embodiment.

[第2の実施形態]
本第2の実施形態では、上記第1の実施形態との違いとして、粗探索時の動きベクトル検出を行う際に、水平方向分割数が変更となる閾値を考慮したベクトル検出を行う例を説明する。
[Second Embodiment]
In the second embodiment, as a difference from the first embodiment, an example in which the motion vector detection at the time of rough search is performed in consideration of the threshold value in which the number of divisions in the horizontal direction is changed will be described. To do.

説明を単純化するため、以下では、第1の実施形態をとの差異についてのみ詳細に説明する。 In order to simplify the description, only the differences from the first embodiment will be described in detail below.

動きベクトル検出においては、符号化対象の着目画像ブロックと、参照画像データ内のブロックと間でブロックマッチングをとり、最も符号化効率がいい、参照画像データ内のブロックの位置(相対位置)を動きベクトルとして決定する。この動きベクトルの決定には、一般的に、符号化対象の画像ブロックと参照画像ブロック(参照画像データ内の候補ブロック)を減算して得られる差分データをベースにしたコスト関数が用いられる。コスト関数には色々な関数が考えられるが、代表的なものとして式(1)が挙げられる。
Cost = SATD+Qp×Mvcost …(1)
ここでSATDとは、符号化対象の画像ブロックと参照画像ブロックを減算して得られた差分データに対してアダマール変換をかけたものに対し、差分絶対値和演算を行ったものである。Qpは量子化処理に使用される量子化値であり、Mvcostは動きベクトルの長さに応じた動きベクトルの符号量相当のコスト値である。このコスト関数を用い、最もコスト値の小さい参照画像ブロックの位置を動きベクトルとして決定する。
In motion vector detection, block matching is performed between the image block of interest to be encoded and the block in the reference image data, and the most coding efficiency is achieved, and the position (relative position) of the block in the reference image data is moved. Determined as a vector. A cost function based on the difference data obtained by subtracting the image block to be encoded and the reference image block (candidate block in the reference image data) is generally used to determine the motion vector. Various functions can be considered as the cost function, and the equation (1) is a typical one.
Cost = SATD + Qp × Mvcost… (1)
Here, the SATD is obtained by performing a difference absolute value sum calculation on the difference data obtained by subtracting the image block to be encoded and the reference image block and applying the Hadamard transform. Qp is the quantization value used for the quantization process, and Mvcost is the cost value corresponding to the code amount of the motion vector according to the length of the motion vector. Using this cost function, the position of the reference image block with the lowest cost value is determined as a motion vector.

本第2の実施形態においては、この基本となるコスト式に対して、さらにベクトル長が水平方向分割数の閾値となる値ごとにコスト式を変更する。 In the second embodiment, the cost formula is further changed for each value whose vector length is the threshold value of the number of horizontal divisions with respect to this basic cost formula.

垂直方向のベクトル長の最大値に応じて水平方向の分割数は決定される。そのため、垂直方向のベクトル長の最大値を水平方向の分割数の境界となる閾値より小さくなるようなベクトルを選ばれやすくすることにより、水平方向分割数を少なくすることができる。水平方向の分割数を少なくすることにより、バス帯域の増加を抑制することができる。 The number of horizontal divisions is determined according to the maximum value of the vertical vector length. Therefore, the number of horizontal divisions can be reduced by making it easy to select a vector whose maximum value of the vector length in the vertical direction is smaller than the threshold value which is the boundary of the number of divisions in the horizontal direction. By reducing the number of divisions in the horizontal direction, it is possible to suppress an increase in the bus bandwidth.

垂直方向のベクトル長の絶対値をMVyとする。また、ピクチャ内での粗動きベクトルの垂直方向の最大値をMVyMaxとする。 Let MVy be the absolute value of the vector length in the vertical direction. Also, let MVyMax be the maximum value in the vertical direction of the coarse motion vector in the picture.

本第2の実施形態の場合、垂直方向のベクトル長の最大値と水平方向分割数の関係は、以下のようになる。
MVyMax ≦ 128 → 分割なし
128 < MVyMax ≦ 250 → 水平方向2分割
250 < MVyMax → 水平方向4分割
これより、垂直方向ベクトル長が128、250を閾値として異なるコスト式を用いることにする。垂直方向のベクトル長とコスト式の関係を以下に示す。
MVy ≦ 128 のとき Cost = SATD+Qp×Mvcost …(2)
128 < MVy ≦ 250 のとき Cost = SATD+Qp×Mvcost + α …(3)
250 < MVy のとき Cost = SATD+Qp×Mvcost + β …(4)
ここで、α、βはあらかじめ決められている値であり、β>α>0の関係であるとする。
In the case of the second embodiment, the relationship between the maximum value of the vector length in the vertical direction and the number of divisions in the horizontal direction is as follows.
MVyMax ≤ 128 → No division 128 <MVyMax ≤ 250 → Horizontal 2 division 250 <MVyMax → Horizontal 4 division From this, we will use different cost formulas with vertical vector lengths of 128 and 250 as thresholds. The relationship between the vertical vector length and the cost equation is shown below.
When MVy ≤ 128 Cost = SATD + Qp × Mvcost… (2)
When 128 <MVy ≤ 250 Cost = SATD + Qp × Mvcost + α… (3)
250 <When MVy Cost = SATD + Qp × Mvcost + β… (4)
Here, it is assumed that α and β are predetermined values and the relationship is β>α> 0.

垂直方向ベクトル長MVyが128以下のときは、動きベクトル検出のコスト式として式(2)を用いる。また、垂直方向ベクトル長MVyが128より大きく、250以下のときはコスト式として式(3)を用いる。これは式(2)と比較して、αだけコスト値が大きくなっている。すなわち垂直方向ベクトル長が128以下の場合と比べて、選ばれにくくなっている。垂直方向ベクトル長MVyが250より大きいときはコスト式として式(4)を用いる。これは式(3)と比較して、β−αだけコスト値が大きくなっている。すなわち垂直方向ベクトル長が250以下の場合と比べて、選ばれにくくなっている。 When the vertical vector length MVy is 128 or less, equation (2) is used as the cost equation for motion vector detection. When the vertical vector length MVy is larger than 128 and 250 or less, the formula (3) is used as the cost formula. Compared with the equation (2), the cost value is larger by α. That is, it is more difficult to select than the case where the vertical vector length is 128 or less. When the vertical vector length MVy is larger than 250, the equation (4) is used as the cost equation. Compared with the equation (3), the cost value of this is larger by β-α. That is, it is more difficult to be selected as compared with the case where the vertical vector length is 250 or less.

このように、水平方向分割数の境界となる閾値に応じてコスト式を変更することにより、水平方向分割数が少なくなるベクトルが選ばれやすくなる。水平方向分割数が少なくなることにより、バス帯域の増加をより抑えることができる。 In this way, by changing the cost equation according to the threshold value that is the boundary of the number of horizontal divisions, it becomes easy to select a vector with a small number of horizontal divisions. By reducing the number of horizontal divisions, it is possible to further suppress the increase in the bus band.

なお、上記第1、第2の実施形態では、撮像部により得た動画像を符号化する撮像装置に適用する例を説明したが、動画像発生源としては符号化対象の動画像データを記憶した記憶媒体であっても良いので、撮像装置に限定されるものではない。 In the first and second embodiments, an example of applying to an imaging device that encodes a moving image obtained by an imaging unit has been described, but moving image data to be encoded is stored as a moving image generation source. The storage medium may be the same as the storage medium, and is not limited to the imaging device.

(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Other Examples)
The present invention supplies a program that realizes one or more functions of the above-described embodiment to a system or device via a network or storage medium, and one or more processors in the computer of the system or device reads and executes the program. It can also be realized by the processing to be performed. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.

発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。 The invention is not limited to the above embodiments, and various modifications and modifications can be made without departing from the spirit and scope of the invention. Therefore, a claim is attached to make the scope of the invention public.

101…レンズ、102…撮像部、103…現像処理部、104…符号化フレームバッファ、105…参照フレームバッファ、106…符号化画像縮小処理部、107…縮小符号化フレームバッファ、108…縮小参照フレームバッファ、109…粗探索部、110…符号化画像ブロックバッファ、111…参照画像ラインバッファ、112…密探索部、113…直交変換部、114…量子化部、115…量子化制御部、116…可変長符号化部、117…記録メディア、118…逆量子化部、119…逆直交変換部、120…動き補償部、121…デブロッキングフィルタ部、122…適応オフセット処理部、123…参照画像縮小処理部、124…領域分割制御部、150…制御部 101 ... lens, 102 ... imaging unit, 103 ... development processing unit, 104 ... coded frame buffer, 105 ... reference frame buffer, 106 ... coded image reduction processing unit, 107 ... reduced coded frame buffer, 108 ... reduced reference frame Buffer, 109 ... coarse search unit, 110 ... coded image block buffer, 111 ... reference image line buffer, 112 ... dense search unit, 113 ... orthogonal conversion unit, 114 ... quantization unit, 115 ... quantization control unit, 116 ... Variable length coding unit, 117 ... Recording media, 118 ... Inverse quantization unit, 119 ... Inverse orthogonal conversion unit, 120 ... Motion compensation unit, 121 ... Deblocking filter unit, 122 ... Adaptive offset processing unit, 123 ... Reference image reduction Processing unit, 124 ... Area division control unit, 150 ... Control unit

Claims (8)

動画像を符号化する画像符号化装置であって、
動画像のフレームの符号化対象のブロックについて、既に符号化されたフレームの参照画像データを参照して、n画素精度(nは2以上の整数)で動きベクトルを探索していき、ブロック毎の動きベクトルを保持する第1の探索手段と、
該第1の探索手段で得た各ブロックの動きベクトルに基づき、フレームの分割数を判定する判定手段と、
該判定手段で判定した分割数で前記フレームを1以上のタイルに分割し、分割した各タイルについて前記ブロックを単位とする符号化処理を行う制御手段とを有し、
該制御手段は、
着目タイル内の着目ブロックに対する1画素の精度の動きベクトルを、前記参照画像データにおける前記着目タイルに対応する領域から探索する第2の探索手段と、
前記着目ブロックの画像データを、前記第2の探索手段により得た動きベクトルに従って符号化する符号化手段と
を有することを特徴とする画像符号化装置。
An image coding device that encodes a moving image.
For the block to be encoded in the frame of the moving image, the motion vector is searched with n pixel accuracy (n is an integer of 2 or more) by referring to the reference image data of the already encoded frame, and for each block. The first search means for holding the motion vector and
A determination means for determining the number of divided frames based on the motion vector of each block obtained by the first search means, and a determination means.
The frame is divided into one or more tiles according to the number of divisions determined by the determination means, and each of the divided tiles has a control means for performing coding processing in units of the blocks.
The control means
A second search means for searching a motion vector with an accuracy of one pixel with respect to a block of interest in the tile of interest from a region corresponding to the tile of interest in the reference image data.
An image coding apparatus comprising: a coding means for coding the image data of the block of interest according to a motion vector obtained by the second search means.
前記判定手段は、前記第1の探索手段で得た全ブロックにおける最大となる動きベクトルに基づいて分割数を判定することを特徴とする請求項1に記載の画像符号化装置。 The image coding apparatus according to claim 1, wherein the determination means determines the number of divisions based on the maximum motion vector in all the blocks obtained by the first search means. 前記判定手段は、前記第1の探索手段で得た全ブロックにおける動きベクトルの垂直方向の成分の最大値に基づいて、フレームの水平方向に対する分割数を判定することを特徴とする請求項2に記載の画像符号化装置。 The second aspect of the present invention is characterized in that the determination means determines the number of divisions of the frame in the horizontal direction based on the maximum value of the vertical component of the motion vector in all the blocks obtained by the first search means. The image encoding device described. 前記判定手段は、前記第1の探索手段で得た全ブロックにおける動きベクトルの垂直方向の成分の最大値が、予め設定された閾値以下の場合には分割数として1を設定することを特徴とする請求項2に記載の画像符号化装置。 The determination means is characterized in that when the maximum value of the vertical component of the motion vector in all the blocks obtained by the first search means is equal to or less than a preset threshold value, 1 is set as the number of divisions. The image coding apparatus according to claim 2. 前記第2の探索手段は、前記第1の探索手段で得た全ブロックにおける動きベクトルの垂直方向の最大値が大きいほど、小さな動きベクトルが選択され易くして探索する
ことを特徴とする請求項2乃至4のいずれか1項に記載の画像符号化装置。
The second search means is characterized in that the larger the maximum value in the vertical direction of the motion vector in all the blocks obtained by the first search means, the easier it is to select a smaller motion vector. The image coding apparatus according to any one of 2 to 4.
前記第1の探索手段は、
前記動画像のフレームが示す画像を縮小する第1の縮小手段と、
符号化を行っている際のローカルデコードで得たブロックの画像データを縮小する第2の縮小手段と、
該第2の縮小手段で得た縮小画像データで構成される縮小参照フレームを格納するためのバッファとを含み、
前記第1の探索手段は、
前記バッファに格納された縮小参照フレームを探索することで、前記第1の縮小手段で得た縮小画像におけるブロックに対する動きベクトルを得る
ことを特徴とする請求項1乃至5のいずれか1項に記載の画像符号化装置。
The first search means is
A first reduction means for reducing the image indicated by the frame of the moving image, and
A second reduction means for reducing the image data of the block obtained by local decoding during coding, and
It includes a buffer for storing a reduced reference frame composed of reduced image data obtained by the second reduction means.
The first search means is
The invention according to any one of claims 1 to 5, wherein a motion vector with respect to a block in the reduced image obtained by the first reduction means is obtained by searching the reduced reference frame stored in the buffer. Image coding device.
動画像を符号化する画像符号化装置の制御方法であって、
動画像のフレームの符号化対象のブロックについて、既に符号化されたフレームの参照画像データを参照して、n画素精度(nは2以上の整数)で動きベクトルを探索していき、ブロック毎の動きベクトルを保持する第1の探索工程と、
該第1の探索工程で得た各ブロックの動きベクトルに基づき、フレームの分割数を判定する判定工程と、
該判定工程で判定した分割数で前記フレームを1以上のタイルに分割し、分割した各タイルについて前記ブロックを単位とする符号化処理を行う制御工程とを有し、
該制御工程は、
着目タイル内の着目ブロックに対する1画素の精度の動きベクトルを、前記参照画像データにおける前記着目タイルに対応する領域から探索する第2の探索工程と、
前記着目ブロックの画像データを、前記第2の探索工程により得た動きベクトルに従って符号化する符号化工程と
を有することを特徴とする画像符号化装置の制御方法。
It is a control method of an image coding device that encodes a moving image.
For the block to be encoded in the frame of the moving image, the motion vector is searched with n pixel accuracy (n is an integer of 2 or more) by referring to the reference image data of the already encoded frame, and for each block. The first search step to hold the motion vector and
A determination step of determining the number of frame divisions based on the motion vector of each block obtained in the first search step, and a determination step.
It has a control step of dividing the frame into one or more tiles according to the number of divisions determined in the determination step, and performing a coding process for each of the divided tiles in units of the blocks.
The control step is
A second search step of searching for a motion vector with an accuracy of one pixel with respect to the block of interest in the tile of interest from a region corresponding to the tile of interest in the reference image data.
A control method of an image coding apparatus, which comprises a coding step of coding the image data of the block of interest according to a motion vector obtained by the second search step.
コンピュータが読み込み実行することで、前記コンピュータに、請求項7に記載の方法の各工程を実行させるためのプログラム。 A program for causing the computer to execute each step of the method according to claim 7, when the computer reads and executes the process.
JP2019165531A 2019-09-11 2019-09-11 Image encoding device, and control method and program thereof Pending JP2021044706A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019165531A JP2021044706A (en) 2019-09-11 2019-09-11 Image encoding device, and control method and program thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019165531A JP2021044706A (en) 2019-09-11 2019-09-11 Image encoding device, and control method and program thereof

Publications (1)

Publication Number Publication Date
JP2021044706A true JP2021044706A (en) 2021-03-18

Family

ID=74862610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019165531A Pending JP2021044706A (en) 2019-09-11 2019-09-11 Image encoding device, and control method and program thereof

Country Status (1)

Country Link
JP (1) JP2021044706A (en)

Similar Documents

Publication Publication Date Title
JP2010524383A (en) Video signal processing method and apparatus
EP3941056A1 (en) Encoding and decoding method and device, encoder side apparatus and decoder side apparatus
KR100843418B1 (en) Apparatus and method for image coding
CN109688413B (en) Method and encoder for encoding a video stream in a video encoding format supporting auxiliary frames
JP5441812B2 (en) Video encoding apparatus and control method thereof
JP5178616B2 (en) Scene change detection device and video recording device
KR102162856B1 (en) Apparatus and method for video motion compensation
US10349071B2 (en) Motion vector searching apparatus, motion vector searching method, and storage medium storing motion vector searching program
US11290740B2 (en) Image coding apparatus, image coding method, and storage medium
JP2021044706A (en) Image encoding device, and control method and program thereof
US10516896B2 (en) Encoding device, encoding method, and storage medium
KR100613732B1 (en) Image Compression System for Digital Video Surveillance and Method for controlling the Same
US10666970B2 (en) Encoding apparatus, encoding method, and storage medium
JP5943733B2 (en) Image encoding apparatus, control method therefor, and program
JP5299319B2 (en) Motion vector detection device
JP6942504B2 (en) Coding device, imaging device, coding method, and program
US11202082B2 (en) Image processing apparatus and method
JP2021118425A (en) Moving image encoding device, imaging apparatus, control method of moving image encoding device, and program
JP2008199521A (en) Image processing apparatus and method thereof
JP2016213657A (en) Encoded block size determination device, encoding device, and program
JP2020057842A (en) Image coding apparatus, control method thereof, and program
JP6496166B2 (en) Predictive coding determination device, coding device, and program
JP2005252870A (en) Image data processing method and device
JP2021022865A (en) Motion vector detection device and method for controlling the same, encoder, imaging device, and program
JP2020028024A (en) Image encoding apparatus, control method therefor, and program

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113