JP6470191B2 - Video encoding method, video encoding apparatus, and video encoding program - Google Patents

Video encoding method, video encoding apparatus, and video encoding program Download PDF

Info

Publication number
JP6470191B2
JP6470191B2 JP2016001281A JP2016001281A JP6470191B2 JP 6470191 B2 JP6470191 B2 JP 6470191B2 JP 2016001281 A JP2016001281 A JP 2016001281A JP 2016001281 A JP2016001281 A JP 2016001281A JP 6470191 B2 JP6470191 B2 JP 6470191B2
Authority
JP
Japan
Prior art keywords
code amount
pictures
picture
buffer
encoding
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.)
Active
Application number
JP2016001281A
Other languages
Japanese (ja)
Other versions
JP2017123545A (en
Inventor
隆一 谷田
隆一 谷田
和也 早瀬
和也 早瀬
正樹 北原
正樹 北原
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2016001281A priority Critical patent/JP6470191B2/en
Publication of JP2017123545A publication Critical patent/JP2017123545A/en
Application granted granted Critical
Publication of JP6470191B2 publication Critical patent/JP6470191B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、映像符号化の並列処理において、並列処理数を適切に算出する映像符号化方法、映像符号化装置及び映像符号化プログラムに関する。   The present invention relates to a video encoding method, a video encoding device, and a video encoding program that appropriately calculate the number of parallel processes in parallel processing of video encoding.

映像の符号化を高速に行う方法として、複数のピクチャの符号化処理を並列に行う方法がある。図4は、各ピクチャについてその復号時に参照される他のピクチャとの関係(以下、「参照構造」という。)を表示順に示した図である。ピクチャとは、符号化対象映像の1フレーム(または1画面)である。この図は、片方向予測ピクチャ(以下、「Pピクチャ」という。)1枚に対し、双方向予測ピクチャ(以下、「Bピクチャ」という。)が2枚あるM=3と呼ばれる参照構造を示したものである。各ピクチャの上もしくは下に描かれた矢印は各ピクチャが参照する先のピクチャを表している。   As a method of encoding video at high speed, there is a method of performing encoding processing of a plurality of pictures in parallel. FIG. 4 is a diagram showing the relationship (hereinafter referred to as “reference structure”) of each picture with other pictures referenced at the time of decoding in the order of display. A picture is one frame (or one screen) of an encoding target video. This figure shows a reference structure called M = 3 in which one bidirectional prediction picture (hereinafter referred to as “P picture”) has two bidirectional prediction pictures (hereinafter referred to as “B pictures”). It is a thing. An arrow drawn above or below each picture represents a destination picture to which each picture refers.

この図において、符号化順は各ピクチャの下に数字で示した通り、I→P→B→B→P→B→Bという順番である。しかし参照構造によれば、Pの符号化が終了すると、BのみではなくB及びPも符号化可能である。従って、符号化処理を並列に行えるシステムにおいては、これら3ピクチャを同時に符号化処理することができる。 In this figure, the encoding order is the order of I 1 → P 1 → B 1 → B 2 → P 2 → B 3 → B 4 as indicated by numbers below each picture. However, according to the reference structure, when encoding of P 1 is completed, not only B 1 but also B 2 and P 2 can be encoded. Therefore, in a system that can perform encoding processing in parallel, these three pictures can be encoded simultaneously.

次に、HEVCやH.264をはじめとする一般的な映像符号化規格における符号化部の装置構成を説明する。図5は、一般的な映像符号化規格における符号化部の装置構成を示すブロック図である。図5に示す装置は、原画像バッファ1、復号画像バッファ10及び符号化部12を備える。   Next, HEVC and H.C. An apparatus configuration of an encoding unit in a general video encoding standard such as H.264 will be described. FIG. 5 is a block diagram illustrating a device configuration of an encoding unit in a general video encoding standard. The apparatus shown in FIG. 5 includes an original image buffer 1, a decoded image buffer 10, and an encoding unit 12.

符号化部12は、減算器2、加算器3、DCT(離散コサイン変換)計算器(図中「DCT」)4、量子化器(図中「Q」)5、逆量子化器(図中「IQ」)6、IDCT(逆離散コサイン変換)計算器(図中「IDCT」)7、予測モード選択部8、ループフィルタ9及びエントロピー符号化部11を備える。   The encoding unit 12 includes a subtracter 2, an adder 3, a DCT (discrete cosine transform) calculator ("DCT" in the figure) 4, a quantizer ("Q" in the figure) 5, and an inverse quantizer (in the figure). “IQ”) 6, an IDCT (Inverse Discrete Cosine Transform) calculator (“IDCT” in the figure) 7, a prediction mode selection unit 8, a loop filter 9 and an entropy coding unit 11.

原画像バッファ1は、表示順に入力された原画像を保持し、符号化順に並べ替えて順に出力する。減算器2は、原画像バッファ1から送られた原画と予測モード選択部8から送られた予測画像の差分を取って予測残差信号を計算し、DCT計算器4に出力する。   The original image buffer 1 holds the original images input in the display order, rearranges them in the encoding order, and outputs them in order. The subtractor 2 calculates a prediction residual signal by taking the difference between the original image sent from the original image buffer 1 and the predicted image sent from the prediction mode selection unit 8 and outputs the prediction residual signal to the DCT calculator 4.

加算器3は、予測モード選択部8から出力された予測画像と、IDCT計算器7から送られる量子化後の予測残差信号の和を計算し、フィルタ前の復号画像としてループフィルタ9に送る。DCT計算器4は、予測残差信号に離散コサイン変換を施し、算出されたDCT係数を量子化器5へ送る。   The adder 3 calculates the sum of the prediction image output from the prediction mode selection unit 8 and the quantized prediction residual signal sent from the IDCT calculator 7, and sends the sum to the loop filter 9 as a decoded image before filtering. . The DCT calculator 4 performs discrete cosine transform on the prediction residual signal and sends the calculated DCT coefficient to the quantizer 5.

量子化器5は、DCT計算器4から送られたDCT係数を、外部から与えられた量子化パラメータQPを用いて量子化し、DCT係数の量子化値としてエントロピー符号化部11と逆量子化器6へ送る。逆量子化器6は、量子化器5で求まった量子化後のDCT係数を、外部から与えられた量子化パラメータQPを用いて逆量子化し、量子化後のDCT係数としてIDCT計算器7に送る。   The quantizer 5 quantizes the DCT coefficient sent from the DCT calculator 4 using the quantization parameter QP given from the outside, and uses the entropy encoding unit 11 and the inverse quantizer as a quantized value of the DCT coefficient. Send to 6. The inverse quantizer 6 inversely quantizes the quantized DCT coefficient obtained by the quantizer 5 using the quantization parameter QP given from the outside, and sends it to the IDCT calculator 7 as the DCT coefficient after quantization. send.

IDCT計算器7では、逆量子化器6から送られた量子化後のDCT係数に逆離散コサイン変換を施し、量子化後の予測残差信号を求める。予測モード選択部8は、入力された原画像に最も近い予測画像を、同じく入力された参照画像から作成して出力すると共に、その予測モードの情報をエントロピー符号化器11へ送る。   The IDCT calculator 7 performs inverse discrete cosine transform on the quantized DCT coefficient sent from the inverse quantizer 6 to obtain a quantized prediction residual signal. The prediction mode selection unit 8 creates and outputs a prediction image closest to the input original image from the input reference image, and sends the prediction mode information to the entropy encoder 11.

ループフィルタ9は、加算器3から送られたフィルタ前の復号画像にフィルタ処理を施し、復号画像として復号画像バッファ10に送る。復号画像バッファ10は、ループフィルタ9から出力された復号画像を保存し、予測モード選択部8に対して参照画像として出力する。   The loop filter 9 performs a filtering process on the decoded image before the filter sent from the adder 3 and sends it to the decoded image buffer 10 as a decoded image. The decoded image buffer 10 stores the decoded image output from the loop filter 9 and outputs the decoded image to the prediction mode selection unit 8 as a reference image.

エントロピー符号化部11は、量子化器5から送られるDCT係数の量子化値と予測モード選択部8から送られる予測モード情報を可変長符号化し、符号化ストリームとして出力する。   The entropy encoding unit 11 performs variable length encoding on the quantized value of the DCT coefficient sent from the quantizer 5 and the prediction mode information sent from the prediction mode selection unit 8, and outputs the result as an encoded stream.

次に、図6を参照して、図5に示す装置の処理動作を説明する。図6は、図5に示すHEVCやH.264をはじめとする一般的な映像符号化規格における符号化装置の動作を示すフローチャートである。処理が始まると、まず原画像バッファ1は、入力された各ピクチャを符号化順に並べ替える(ステップS21)。   Next, the processing operation of the apparatus shown in FIG. 5 will be described with reference to FIG. 6 shows HEVC or H.264 shown in FIG. 2 is a flowchart showing an operation of an encoding device in a general video encoding standard such as H.264. When the process starts, first, the original image buffer 1 rearranges the inputted pictures in the encoding order (step S21).

以降、符号化部12は各ピクチャを符号化順に処理する。各ピクチャは矩形のブロックに分割される。予測モード選択部8は、ブロックごとに予測モードを決定する(ステップS22)。減算器2は、予測モードに対応する予測画像と原画像との差分を取得する。減算器2は、取得された差分に基づいて予測残差信号を出力する(ステップS23)。   Thereafter, the encoding unit 12 processes each picture in the encoding order. Each picture is divided into rectangular blocks. The prediction mode selection unit 8 determines a prediction mode for each block (step S22). The subtracter 2 acquires the difference between the predicted image corresponding to the prediction mode and the original image. The subtracter 2 outputs a prediction residual signal based on the acquired difference (step S23).

次に、DCT計算器4は、出力された予測残差信号にDCT(ステップS24)を施す。量子化器5は、DCT係数に対して量子化(ステップS25)を施す。逆量子化器6は、逆量子化を行う(ステップS26)。IDCT計算器7は、IDCTを計算する(ステップS27)。   Next, the DCT calculator 4 performs DCT (step S24) on the output prediction residual signal. The quantizer 5 performs quantization (step S25) on the DCT coefficient. The inverse quantizer 6 performs inverse quantization (step S26). The IDCT calculator 7 calculates IDCT (step S27).

次に、加算器3は、予測画像と量子化後の予測残差信号とを加算し復号画像を生成する(ステップS28)。ループフィルタ9は、生成された復号画像にループフィルタを掛けて(ステップS29)、復号画像バッファ1に復号画像として保存する(ステップS30)。保存された復号画像は、以降の予測画像生成に利用される。   Next, the adder 3 adds the predicted image and the predicted residual signal after quantization to generate a decoded image (step S28). The loop filter 9 applies a loop filter to the generated decoded image (step S29) and stores it as a decoded image in the decoded image buffer 1 (step S30). The stored decoded image is used for subsequent prediction image generation.

一方、エントロピー符号化部11は、DCTと量子化を施した量子化済みのDCT係数と、対応する予測モード情報とに対して可変長符号化を施し、符号化ストリームとして出力する(ステップS31)。   On the other hand, the entropy encoding unit 11 performs variable-length encoding on the DCT and quantized DCT coefficients that have been subjected to quantization and corresponding prediction mode information, and outputs the result as an encoded stream (step S31). .

図6に示す処理(ステップS22〜S31)が行われる際には、各ピクチャに対して量子化パラメータQPが与えられる必要がある。量子化パラメータQPは、量子化の粗さを表す。量子化パラメータQPが大きいほど粗く量子化され、符号化ノイズが多くなる。一方、量子化パラメータQPが大きいほど、圧縮率が高くなるため発生する符号量は少なくなる。量子化パラメータQPは、予め定められたビットレート及びバッファサイズを元に、デコーダのバッファモデルを順守するように算出される。   When the processing shown in FIG. 6 (steps S22 to S31) is performed, the quantization parameter QP needs to be given to each picture. The quantization parameter QP represents the roughness of quantization. As the quantization parameter QP is larger, the quantization is coarser and coding noise increases. On the other hand, the larger the quantization parameter QP, the higher the compression rate, and the smaller the amount of code generated. The quantization parameter QP is calculated based on a predetermined bit rate and buffer size so as to comply with the buffer model of the decoder.

ここで、デコーダのバッファモデルについて説明する。映像デコーダには符号化ストリームを保存する受信バッファがあり、この受信バッファには外部から受信した符号化ストリームが蓄積される。また、復号の際には1フレーム分ずつ符号化ストリームを受信バッファから引き抜いて復号する。   Here, the buffer model of the decoder will be described. The video decoder has a reception buffer for storing the encoded stream, and the encoded stream received from the outside is stored in the reception buffer. In decoding, the encoded stream is extracted from the reception buffer one frame at a time and decoded.

この受信バッファのサイズは有限のため、受信した符号化ストリームを受信バッファに蓄積する速度と、受信バッファに蓄積された符号化ストリームをバッファから引き抜く速度は釣り合っている必要がある。   Since the size of this reception buffer is finite, the speed at which the received encoded stream is accumulated in the reception buffer and the speed at which the encoded stream accumulated in the reception buffer is extracted from the buffer must be balanced.

例えば、前者の速度が速い場合は受信バッファがフルになって符号化ストリームを受信できなくなる「バッファオーバーフロー」(以下、「オーバーフロー」という。)が発生し、逆に後者の速度が速い場合は受信バッファが空になってピクチャの復号が停止してしまう「バッファアンダーフロー」(以下、「アンダーフロー」という。)が発生する。   For example, when the former speed is high, the reception buffer becomes full and a "buffer overflow" (hereinafter referred to as "overflow") that prevents receiving the encoded stream occurs. Conversely, when the latter speed is high, reception occurs. A “buffer underflow” (hereinafter referred to as “underflow”) occurs in which the buffer becomes empty and decoding of the picture stops.

そこで一般的な映像符号化器では、上記のよう受信バッファのオーバーフローやアンダーフローが起こらないよう、各ピクチャの発生符号量、ひいては量子化パラメータQPを適切に制御するレート制御部と呼ばれる機構が組み込まれている。   Therefore, a general video encoder incorporates a mechanism called a rate control unit that appropriately controls the amount of code generated in each picture and thus the quantization parameter QP so as not to cause overflow or underflow of the reception buffer as described above. It is.

ここで復号順でn枚目ピクチャの復号時刻をt(n)、n枚目ピクチャを復号した直後の受信バッファのデータ蓄積量をBt_after(t(n))と表記する。次のn+1枚目ピクチャを復号する時刻t(n+1)は、フレームレートFPS[フレーム/秒]を用いて、t(n+1)=t(n)+1/FPSと表記できる。   Here, in the decoding order, the decoding time of the nth picture is expressed as t (n), and the data accumulation amount in the reception buffer immediately after decoding the nth picture is expressed as Bt_after (t (n)). The time t (n + 1) at which the next n + 1-th picture is decoded can be expressed as t (n + 1) = t (n) + 1 / FPS using the frame rate FPS [frame / second].

このことから、一般的なCBRモデル(ビットレート一定モデル)の場合、n+1枚目ピクチャを復号する直前の受信バッファのデータ蓄積量Bt_before(t(n+1))は、ビットレートb[bit/秒]を用いて
Bt_before(t(n+1))=Bt_after(t(n))+b/FPS
と表せる。
Therefore, in the case of a general CBR model (constant bit rate model), the data accumulation amount Bt_before (t (n + 1)) of the reception buffer immediately before decoding the (n + 1) th picture is the bit rate b [bit / second]. Using Bt_before (t (n + 1)) = Bt_after (t (n)) + b / FPS
It can be expressed.

ここでn+1枚目ピクチャの発生符号量がG(n+1)だったとすれば、n+1枚目ピクチャを復号した直後の受信バッファにおけるデータ蓄積量Bt_after(t(n+1))は
Bt_after(t(n+1))=Bt_before(t(n+1))−G(n+1)
と表せる。
If the generated code amount of the (n + 1) th picture is G (n + 1), the data accumulation amount Bt_after (t (n + 1)) in the reception buffer immediately after decoding the (n + 1) th picture is Bt_after (t (n + 1)) = Bt_before (t (n + 1))-G (n + 1)
It can be expressed.

ここで、もし、G(n+1)>Bt_before(t(n+1))であった場合、Bt_after(t(n+1))<0となり、バッファアンダーフローが発生する。一方、受信バッファサイズをSと置いたとき、G(n+1)<Bt_before(t(n+1))+b/FPS−Sであった場合、Bt_after(t(n+1))>Sとなり、バッファオーバーフローが発生する。   Here, if G (n + 1)> Bt_before (t (n + 1)), Bt_after (t (n + 1)) <0 and a buffer underflow occurs. On the other hand, when the reception buffer size is set to S, if G (n + 1) <Bt_before (t (n + 1)) + b / FPS-S, Bt_after (t (n + 1))> S and buffer overflow occurs. .

そのため前述のレート制御部では、このようにバッファアンダーフローやオーバーフローが起こらないよう各ピクチャの発生符号量Gの適切な値を算出し、またそのような発生符号量となるようにQPを決定する機構となる。   For this reason, the above-described rate control unit calculates an appropriate value of the generated code amount G of each picture so that the buffer underflow or overflow does not occur in this way, and determines the QP so as to be such a generated code amount. It becomes a mechanism.

この発生符号量Gと量子化パラメータQPの関係であるが、ある量子化パラメータQPに対応する量子化幅をQstep(QP)と表すと、量子化幅Qstep(QP)と、その時の発生符号量Gの間にはおおよそ反比例の関係がある。この両者の積を取ったものをこのピクチャの複雑さ指数X=G×Qstep(QP)と呼ぶ。この複雑さ指数Xは、直前に符号化したピクチャのものとおよそ近い値となることから、直前に符号化した結果の積からXを求め、次ピクチャのGとQPの算出に用いられることが多い。   The relationship between the generated code amount G and the quantization parameter QP. When the quantization width corresponding to a certain quantization parameter QP is expressed as Qstep (QP), the quantization width Qstep (QP) and the generated code amount at that time There is a roughly inverse relationship between G. The product of these two is called the complexity index X = G × Qstep (QP) of this picture. Since this complexity index X is approximately the same as that of the picture encoded immediately before, X can be obtained from the product of the result of encoding immediately before and used for calculating G and QP of the next picture. Many.

また、各ピクチャの適切な発生符号量Gの計算方法としては、MPEG−2のTM5モデルがよく用いられる。これは、Iから始まる一連のピクチャ群であるGOP(Group of Pictures)に対して使用可能な符号量を設定し、各ピクチャタイプI・P・Bに対する複雑さ指数Xi、Xp、Xbに応じて、GOP内の各ピクチャに符号量を分配する、というものである。   Also, as a method for calculating an appropriate generated code amount G for each picture, the MPEG-5 TM5 model is often used. This sets the amount of code that can be used for GOP (Group of Pictures), which is a series of pictures starting from I, according to the complexity indices Xi, Xp, and Xb for each picture type I, P, and B. The code amount is distributed to each picture in the GOP.

1ピクチャずつ符号化する毎に割り当て符号量と実際の発生符号量の間の誤差をフィードバックし、バッファアンダーフローやオーバーフローを抑止しつつ、目的のビットレートbとなるよう各ピクチャの符号量配分を決定する。   Each time one picture is encoded, an error between the allocated code amount and the actual generated code amount is fed back, and the code amount distribution of each picture is distributed to achieve the target bit rate b while suppressing buffer underflow and overflow. decide.

ここで、レート制御部の処理例を示す。レート制御部の処理は前処理と後処理の2パートに大別される。まず前処理について説明する。処理が始まると、まずバッファ位置Bt_beforeを予め定められた初期値にて初期化する。また、各ピクチャタイプに対する複雑さ指数Xi、Xp、Xbを予め定められた定数で初期化する。   Here, a processing example of the rate control unit is shown. The processing of the rate control unit is roughly divided into two parts, pre-processing and post-processing. First, preprocessing will be described. When the process starts, first, the buffer position Bt_before is initialized with a predetermined initial value. Also, the complexity indices Xi, Xp, and Xb for each picture type are initialized with predetermined constants.

次に1GOPに割り当てる符号量Rの初期値を設定する。例えば、1GOPに含まれるピクチャ枚数をNとすれば、Rの初期値は、R=b×N/FPSなどと計算される。また、1GOPに含まれる各タイプ毎のピクチャ枚数をそれぞれNi(=Iピクチャの枚数=1)、Np(=Pピクチャの枚数)、Nb(=Bピクチャの枚数)に代入する。   Next, an initial value of the code amount R assigned to 1 GOP is set. For example, if the number of pictures included in one GOP is N, the initial value of R is calculated as R = b × N / FPS. Also, the number of pictures of each type included in one GOP is substituted into Ni (= number of I pictures = 1), Np (= number of P pictures), and Nb (= number of B pictures), respectively.

次に、符号化対象のピクチャ毎に以下のような処理により割り当て符号量Tを算出する。符号化対象ピクチャがIピクチャの場合、TはT=(Xi×R)/(Xi×Ni+Xp×Np+Xb×Nb)として算出する。その後、Niの値を1デクリメントする。同様に符号化対象ピクチャがPピクチャの場合はT=(Xp×R)/(Xi×Ni+Xp×Np+Xb×Nb)として算出後、Npの値を1デクリメントする。Bピクチャの場合はT=(Xb×R)/(Xi×Ni+Xp×Np+Xb×Nb)として算出後、Nbの値を1デクリメントする。   Next, the allocated code amount T is calculated for each picture to be encoded by the following process. When the encoding target picture is an I picture, T is calculated as T = (Xi × R) / (Xi × Ni + Xp × Np + Xb × Nb). Thereafter, the value of Ni is decremented by 1. Similarly, when the encoding target picture is a P picture, after calculating as T = (Xp × R) / (Xi × Ni + Xp × Np + Xb × Nb), the value of Np is decremented by 1. In the case of a B picture, after calculating as T = (Xb × R) / (Xi × Ni + Xp × Np + Xb × Nb), the value of Nb is decremented by 1.

上記で求めた符号量Tについて、符号化のバッファ位置推定値Bt_afterを
Bt_after=Bt_before−T
として算出する。この時Bt_after <0(バッファアンダーフロー)、もしくはバッファサイズをSとした時にBt_after+b/FPS>S(バッファオーバーフロー)とならないよう、TをBt_before+b/FPS−S≦T≦Bt_beforeの範囲にクリップする。
For the code amount T obtained above, the encoding buffer position estimated value Bt_after is set to Bt_after = Bt_before-T
Calculate as At this time, T is clipped to a range of Bt_before + b / FPS−S ≦ T ≦ Bt_before so that Bt_after + b / FPS> S (buffer overflow) when Bt_after <0 (buffer underflow) or when the buffer size is S is set.

次に、この割り当て符号量Tに相当する量子化パラメータQPを算出する。この量子化パラメータQPをターゲットQPと名付ける。前述の通り、複雑さ指数Xと発生符号量Gとの間にはおよそ以下の関係が成立する。
X=G×Qstep(QP)
Next, a quantization parameter QP corresponding to the allocated code amount T is calculated. This quantization parameter QP is named target QP. As described above, the following relationship is established between the complexity index X and the generated code amount G.
X = G × Qstep (QP)

そのため、例えばIピクチャの場合は符号量TとQstep(QP)の積がXiに最も近くなるQPをターゲットQPとすればよい。同様に、Pピクチャの場合は積がXpに最も近くなるQP、Bピクチャの場合はXbに最も近くなるQPをターゲットQPとすればよい。   Therefore, for example, in the case of an I picture, a QP in which the product of the code amount T and Qstep (QP) is closest to Xi may be set as the target QP. Similarly, the target QP may be the QP whose product is closest to Xp in the case of a P picture, and the QP that is closest to Xb in the case of a B picture.

ここまでが前処理となる。このようにして求めたターゲットQPを用いて実際に符号化を行った後、レート制御部では後処理を行う。この処理は具体的には以下の通りである。まず、符号化結果から複雑さ指数の値を更新する。符号化したピクチャの発生符号量をG、その時のターゲットQPに対応する量子化幅をQstep(ターゲットQP)とすれば、複雑さ指数は両者の積で求められる。   This is the preprocessing. After actually performing encoding using the target QP thus obtained, the rate control unit performs post-processing. Specifically, this processing is as follows. First, the value of the complexity index is updated from the encoding result. If the generated code amount of the encoded picture is G, and the quantization width corresponding to the target QP at that time is Qstep (target QP), the complexity index can be obtained by the product of both.

そこで符号化したピクチャのピクチャタイプがIピクチャであればXi、PピクチャであればXp、BピクチャであればXbをG×Qstep(ターゲットQP)の値に更新する。また、符号量Rの値も更新する。具体的にはRから発生符号量Gを引いたものを新たに符号量Rとする。   Therefore, Xi is updated to the value of G × Qstep (target QP) if the picture type of the encoded picture is I picture, Xp if it is a P picture, and Xb if it is a B picture. Also, the value of the code amount R is updated. Specifically, a value obtained by subtracting the generated code amount G from R is newly set as the code amount R.

次に、発生符号量Gを用いてバッファ位置Bt_beforeの値を更新する。これは、
Bt_before=Bt_before−G+b/FPS
として計算される。以上がレート制御部の後処理となる。
Next, the value of the buffer position Bt_before is updated using the generated code amount G. this is,
Bt_before = Bt_before−G + b / FPS
Is calculated as The above is the post-processing of the rate control unit.

その後、またレート制御部の前処理に戻って次の符号化ピクチャに関するターゲットQPを算出する処理を行うことを繰り返す。1GOP分の符号化が終わったら、Rの値を更新し、次のGOPに対してまた同様の処理を繰り返す。具体的には、Rの値について、その時点で保持している値に対し、b×N/FPSを加算する。また、Ni、Np、Nbの値を1GOPに含まれる各ピクチャタイプの枚数に戻す。   Thereafter, returning to the preprocessing of the rate control unit, the process of calculating the target QP for the next coded picture is repeated. When encoding for 1 GOP is completed, the value of R is updated, and the same processing is repeated for the next GOP. Specifically, for the value of R, b × N / FPS is added to the value held at that time. Further, the values of Ni, Np, and Nb are returned to the number of pictures of each picture type included in 1 GOP.

このような処理を行うことで、バッファを破綻させないようにしつつも目的のビットレートに沿ったビットストリームを生成できる(例えば、非特許文献1参照)。   By performing such processing, it is possible to generate a bit stream in accordance with the target bit rate while preventing the buffer from failing (see Non-Patent Document 1, for example).

次に、前述したような複数ピクチャを同時に符号化するための装置の装置構成を説明する。図7は、前述したような複数ピクチャを同時に符号化するための装置の装置構成を示すブロック図である。この装置は、原画像バッファ1、復号画像バッファ10、N(Nは自然数)個の符号化部12−1〜N、ストリームバッファ13、並列処理割り当て部14、バッファ計算部15、割り当て符号量算出部16、QP計算部17、複雑さ計算部18から構成される。バッファ計算部15、割り当て符号量算出部16、QP計算部17及び複雑さ計算部18によってレート制御部19が構成されている。   Next, an apparatus configuration of an apparatus for simultaneously encoding a plurality of pictures as described above will be described. FIG. 7 is a block diagram showing a device configuration of a device for simultaneously encoding a plurality of pictures as described above. This apparatus includes an original image buffer 1, a decoded image buffer 10, N (N is a natural number) encoding units 12-1 to N, a stream buffer 13, a parallel processing allocation unit 14, a buffer calculation unit 15, and an allocated code amount calculation. The unit 16, the QP calculation unit 17, and the complexity calculation unit 18 are configured. A rate control unit 19 is configured by the buffer calculation unit 15, the allocated code amount calculation unit 16, the QP calculation unit 17, and the complexity calculation unit 18.

原画像バッファ1は前述のものと同様、原画像を符号化順に並べ替え、符号化部12−1〜Nに送る。ただし、本構成では符号化部12−1〜Nが複数あるため、並列処理割り当て部14から送られる原画割り当て情報を元に、符号化順でN枚分のピクチャをN個ある符号化部12−1〜Nへそれぞれ送信する。   Similar to the above, the original image buffer 1 rearranges the original images in the encoding order and sends them to the encoding units 12-1 to 12 -N. However, since there are a plurality of encoding units 12-1 to 12 -N in this configuration, N encoding units 12 of N pictures in the encoding order based on the original image allocation information sent from the parallel processing allocation unit 14. -1 to N, respectively.

復号画像バッファ10は前述のものと同様、符号化部12−1〜Nから送られる復号画像を保存し、また必要に応じて参照画像として符号化部12−1〜Nへ送る。但し、本構成では符号化部12−1〜Nが複数あるため、このバッファも複数の復号画像の同時保存、及び複数の参照画像の同時送出に対応している。   Similar to the above, the decoded image buffer 10 stores the decoded images sent from the encoding units 12-1 to N, and sends them to the encoding units 12-1 to 12-N as reference images as necessary. However, since there are a plurality of encoding units 12-1 to 12 -N in this configuration, this buffer also supports simultaneous storage of a plurality of decoded images and simultaneous transmission of a plurality of reference images.

符号化部12−1〜Nは図5の点線で囲まれた符号化部12と同等の機能を有し、本構成例ではそれがN個並列に備わっている。ストリームバッファ13は、各符号化部12−1〜Nから送られる符号化ストリームを保存すると共に、そのデータサイズを発生符号量としてバッファ計算部15、割り当て符号量算出部16、複雑さ計算部8に送る。   The encoding units 12-1 to 12 -N have the same function as the encoding unit 12 surrounded by the dotted line in FIG. 5, and N units are provided in parallel in this configuration example. The stream buffer 13 stores the encoded streams sent from the encoding units 12-1 to 12 -N, and uses the data size as the generated code amount for the buffer calculation unit 15, the assigned code amount calculation unit 16, and the complexity calculation unit 8. Send to.

並列処理割り当て部14は、入力された並列処理数を元に、原画像バッファのどのピクチャをN個あるどの符号化部(符号化部12−1〜Nのいずれか)へ送るかを求め、原画像バッファ1へ割り当て情報として送信する。   The parallel processing allocation unit 14 determines which picture in the original image buffer is sent to which of N encoding units (any of the encoding units 12-1 to N) based on the input parallel processing number, It is transmitted to the original image buffer 1 as allocation information.

バッファ計算部15は、処理が始まるとレート制御設定情報を元にバッファ位置の初期値Bt_before(0)を計算して保持する。また、ストリームバッファ13から各ピクチャの発生符号量が求まるたびにBt_beforeの値を計算し、割り当て符号量算出部16へ送る。   When the process starts, the buffer calculation unit 15 calculates and holds an initial value Bt_before (0) of the buffer position based on the rate control setting information. Further, every time the generated code amount of each picture is obtained from the stream buffer 13, the value of Bt_before is calculated and sent to the allocated code amount calculation unit 16.

割り当て符号量算出部16は、外部から与えられるレート制御設定と並列数、バッファ位置、各ピクチャの発生符号量を元に、向こうNピクチャ分の各ピクチャの割り当て符号量T(1)〜T(N)を求め、QP計算部17へ送る。QP計算部17は、複雑さ計算部18から送られる各ピクチャタイプの複雑さ指数と各ピクチャの割り当て符号量を元に、Nピクチャ分のターゲットQPを計算して対応するN個の符号化部12−1〜Nへ送る。   The allocation code amount calculation unit 16 allocates code amounts T (1) to T (1) to T (1) to T (pictures) for the next N pictures based on the rate control setting and the parallel number, buffer position, and the generated code amount of each picture. N) is obtained and sent to the QP calculation unit 17. The QP calculation unit 17 calculates a target QP for N pictures based on the complexity index of each picture type sent from the complexity calculation unit 18 and the assigned code amount of each picture, and corresponding N encoding units. Send to 12-1 to N.

複雑さ計算部18は、QP計算部17から送られる各ピクチャの量子化パラメータQPと、ストリームバッファ13から送られる対象ピクチャの発生符号量からピクチャタイプ毎の複雑さ指数を計算し、割り当て符号量算出部16とQP計算部17へ送る。   The complexity calculation unit 18 calculates a complexity index for each picture type from the quantization parameter QP of each picture sent from the QP calculation unit 17 and the generated code amount of the target picture sent from the stream buffer 13, and the assigned code amount The data is sent to the calculation unit 16 and the QP calculation unit 17.

次に、図8を参照して、図7に示す装置の処理動作を説明する。図8は、前述したような複数ピクチャを同時に符号化する装置が行う処理動作を示すフローチャートである。符号化を開始すると、まず図6のフローと同様、原画像バッファ1は、ピクチャを符号化順に並べ替える(ステップS41)。   Next, the processing operation of the apparatus shown in FIG. 7 will be described with reference to FIG. FIG. 8 is a flowchart showing processing operations performed by the apparatus for simultaneously encoding a plurality of pictures as described above. When encoding is started, the original image buffer 1 first rearranges the pictures in the encoding order (step S41), as in the flow of FIG.

次に、前述のレート制御部19の処理を元に、割り当て符号量算出部16は、向こうN枚分のピクチャに対する割り当て符号量を算出する(ステップS42)。この時、N枚分のピクチャのうち、1枚目ピクチャの割り当て符号量算出は前述の通りに行えばよい。しかし2枚目以降のピクチャに関しては前述の式のままでは割り当て符号量算出ができない。   Next, based on the processing of the rate control unit 19 described above, the allocation code amount calculation unit 16 calculates the allocation code amount for the next N pictures (step S42). At this time, the allocation code amount calculation of the first picture out of N pictures may be performed as described above. However, for the second and subsequent pictures, the allocated code amount cannot be calculated with the above formula.

これは、例えば2枚目ピクチャの計算を行うには1枚目ピクチャの符号化結果から求まる発生符号量を使い、バッファ位置Bt_before、符号量R、及び対応するピクチャタイプの複雑さ指数を更新する必要があるためである。   For example, in order to calculate the second picture, the generated code quantity obtained from the encoding result of the first picture is used, and the buffer position Bt_before, the code quantity R, and the complexity index of the corresponding picture type are updated. This is necessary.

同様に3枚目ピクチャは1枚目と2枚目ピクチャの符号化結果、4枚目ピクチャは1〜3枚目ピクチャの発生符号量が必要となる。しかしこの時点ではこれらピクチャの発生符号量が無いことから、割り当て符号量を発生符号量の代用に用いる。   Similarly, the encoding result of the first and second pictures is required for the third picture, and the generated code amount of the first to third pictures is required for the fourth picture. However, since there is no generated code amount of these pictures at this time, the allocated code amount is used as a substitute for the generated code amount.

従って2枚目ピクチャに関して言えば、複雑さ指数は1枚目と共通とし、バッファ位置Bt_before(2)は、1枚目ピクチャに関するバッファ位置Bt_before(1)と1枚目ピクチャの割り当て符号量T(1)から
Bt_before’(2)=Bt_before(1)−T(1)+b/FPS
となる。
Therefore, regarding the second picture, the complexity index is the same as that of the first picture, and the buffer position Bt_before (2) is the buffer position Bt_before (1) related to the first picture and the assigned code amount T ( From 1) Bt_before ′ (2) = Bt_before (1) −T (1) + b / FPS
It becomes.

また符号量R(2)は1枚目ピクチャ計算時の符号量R(1)から符号量T(1)を引いた
R(2)=R(1)−T(1)
を用いるとする。これらの値を用い、2枚目ピクチャに対する割り当て符号量T(2)を計算すればよい。同様に3枚目ピクチャに関しても複雑さ指数は1枚目計算時と共通で、バッファ位置Bt_before(3)は
Bt_before(3)=Bt_before(2)−T(2)+b/FPS
=Bt_before(1)−(T(1)+T(2))+2×b/FPS
The code amount R (2) is obtained by subtracting the code amount T (1) from the code amount R (1) at the time of calculating the first picture. R (2) = R (1) −T (1)
Is used. Using these values, the allocated code amount T (2) for the second picture may be calculated. Similarly, the complexity index for the third picture is the same as that for calculating the first picture, and the buffer position Bt_before (3) is Bt_before (3) = Bt_before (2) −T (2) + b / FPS.
= Bt_before (1)-(T (1) + T (2)) + 2 × b / FPS

また、符号量R(3)は
R(3)=R(2)−T(2)=R(1)−(T(1)+T(2))
と表せ、これらから割り当て符号量T(3)を算出すればよい。
The code amount R (3) is R (3) = R (2) −T (2) = R (1) − (T (1) + T (2)).
The allocated code amount T (3) may be calculated from these.

上記の計算によりNピクチャ分の割り当て符号量T(1)〜T(N)を算出したら、QP計算部17は、これらの割り当て符号量に対応する各ピクチャの量子化パラメータQPを算出する(ステップS43)。これは、各ピクチャのピクチャタイプに対する複雑さ指数XiもしくはXpもしくはXbを各ピクチャの割り当て符号量で除した値に最も近い量子化幅となるQPを求めればよい。例えば、1枚目ピクチャのピクチャタイプがIピクチャであれば量子化幅はXi/T(1)で算出でき、この量子化幅に最も近い量子化パラメータQPが1枚目ピクチャのターゲットQPとなる。   After calculating the allocated code amounts T (1) to T (N) for N pictures by the above calculation, the QP calculating unit 17 calculates the quantization parameter QP of each picture corresponding to these allocated code amounts (step). S43). For this purpose, a QP having a quantization width closest to a value obtained by dividing the complexity index Xi, Xp, or Xb for the picture type of each picture by the allocated code amount of each picture may be obtained. For example, if the picture type of the first picture is an I picture, the quantization width can be calculated by Xi / T (1), and the quantization parameter QP closest to the quantization width becomes the target QP of the first picture. .

同様にNピクチャ分全てのターゲットQPを算出したら、符号化部12−1〜Nは、これらNピクチャを同時並列に符号化する(ステップS44)。この処理は、具体的には図6に示すフローチャート中の破線で囲まれた「符号化処理のコアフロー」に従って各ピクチャを同時に符号化することに相当する。   Similarly, after calculating the target QP for all N pictures, the encoding units 12-1 to 12-N encode these N pictures in parallel at the same time (step S44). Specifically, this processing corresponds to the simultaneous encoding of each picture in accordance with the “core flow of encoding processing” surrounded by a broken line in the flowchart shown in FIG.

Nピクチャ分の符号化が終わったら、各ピクチャに対応する発生符号量G(1)〜G(N)が求まるので、複雑さ計算部18は、この結果を元に複雑さ指数の更新(ステップS45)し、バッファ計算部15は、バッファ位置の更新を行う(ステップS46)。複雑さ指数の更新に関しては、発生符号量とターゲットQPに対応するQstepの積で当該ピクチャの複雑さ指数が求まるので、ピクチャタイプ毎に分類し、平均値を求めて当該ピクチャタイプの新たな複雑さ指数とするなどすればよい。   When encoding for N pictures is completed, the generated code amounts G (1) to G (N) corresponding to each picture are obtained, and the complexity calculation unit 18 updates the complexity index based on this result (step Then, the buffer calculation unit 15 updates the buffer position (step S46). Regarding the update of the complexity index, since the complexity index of the picture is obtained by the product of the generated code amount and Qstep corresponding to the target QP, the complexity index of the picture is classified for each picture type, and an average value is obtained to obtain a new complexity of the picture type. For example, the index may be used.

一方バッファ位置の更新については、Nピクチャ分の発生符号量G(1)〜G(N)を元にバッファ位置Bt_before(N+1)を以下の通り求める。
Bt_before(N+1)=Bt_before(1)−(T(1)+T(2)+…T(N))+N×b/FPS
On the other hand, for updating the buffer position, the buffer position Bt_before (N + 1) is obtained as follows based on the generated code amounts G (1) to G (N) for N pictures.
Bt_before (N + 1) = Bt_before (1) − (T (1) + T (2) +... T (N)) + N × b / FPS

以上の処理を全てのピクチャに対して行う(ステップS47)ことで、複数ピクチャ並列に符号化処理を行うことができる。   By performing the above process on all the pictures (step S47), it is possible to perform the encoding process in parallel with a plurality of pictures.

MPEG-2, Test Model5(TM5) , Doc. ISO / IECJTC1 / SC29 / WG11 / NO400, Test Model Editing Committee, Apr.1993MPEG-2, Test Model5 (TM5), Doc.ISO / IECJTC1 / SC29 / WG11 / NO400, Test Model Editing Committee, Apr.1993

ところで、上記の複数ピクチャを同時に符号化する方式においては、各ピクチャの割り当て符号量に関して、必ずしも正確な情報を元に計算できていない。具体的に言えば、上記において符号量T(1)は正確なバッファ位置Bt_before(1)及び符号量R(1)を元に計算できているが、符号量T(2)に関して言えば、計算の元となるバッファ位置Bt_before(2)及びR(2)は仮の値となっている。   By the way, in the above-described method of encoding a plurality of pictures at the same time, the allocation code amount of each picture cannot always be calculated based on accurate information. Specifically, in the above, the code amount T (1) can be calculated based on the exact buffer position Bt_before (1) and the code amount R (1). The buffer positions Bt_before (2) and R (2) that are the origins of are temporary values.

一般的に映像の符号化では、割り当て符号量Tと実際の発生符号量Gの間には乖離が起きる。そのため、割り当て符号量の計算時点ではバッファ破綻が起こっていないとしても、実際にNピクチャ符号化した時にはバッファ破綻が起こっている可能性がある。   In general, in video coding, a divergence occurs between the allocated code amount T and the actual generated code amount G. For this reason, even if there is no buffer failure at the time of calculation of the allocated code amount, there is a possibility that a buffer failure occurs when N pictures are actually encoded.

特に並列数Nの値が大きければ大きいほど各ピクチャの割り当て符号量Tと実際の発生符号量Gの乖離の影響を大きく受けるため、バッファ破綻を起こす可能性が高いことが分かる。従って複数ピクチャの同時並列処理は、並列処理数が多いほど処理時間も短縮できるが、バッファ破綻のリスクも並列処理数の増加に伴って高まるという問題がある。   In particular, it can be understood that the larger the value of the parallel number N, the greater the influence of the difference between the allocated code amount T of each picture and the actual generated code amount G, and thus the higher the possibility of buffer failure. Therefore, the simultaneous parallel processing of a plurality of pictures can shorten the processing time as the number of parallel processes increases, but there is a problem that the risk of buffer failure increases as the number of parallel processes increases.

なお、このバッファ破綻に関して、バッファオーバーフローの場合は空データ(fillerデータ)を間に挟むことで回避する手段が存在する。一方、バッファ位置が0未満となるバッファアンダーフローに関してはこのような回避手段が存在しないため、複数ピクチャ並列符号化においては特にこのバッファアンダーフローの回避が大きな問題となる。   Note that there is a means for avoiding this buffer failure by inserting empty data (filler data) in the case of buffer overflow. On the other hand, since there is no such avoidance means for buffer underflow where the buffer position is less than 0, avoiding this buffer underflow is a big problem particularly in the multi-picture parallel coding.

本発明は、このような事情に鑑みてなされたもので、バッファアンダーフローのリスクを低く抑えつつ、可能な限り並列処理数を高めることにより高速に符号化することができるようにするための並列処理数を算出することができる映像符号化方法、映像符号化装置及び映像符号化プログラムを提供することを目的とする。   The present invention has been made in view of such circumstances, and it is possible to perform high-speed encoding by increasing the number of parallel processes as much as possible while keeping the risk of buffer underflow low. It is an object of the present invention to provide a video encoding method, a video encoding device, and a video encoding program capable of calculating the number of processes.

本発明の一態様は、最大N(Nは2以上の自然数)枚までの複数ピクチャを並列に符号化する符号化部と、N枚の各ピクチャに対する割り当て符号量を算出する割り当て符号量算出部と、前記割り当て符号量に相当する量子化パラメータであるターゲットQPを算出するQP計算部とを備え、映像を符号化する映像符号化装置が行う映像符号化方法であって、前記N枚の各ピクチャに対する前記割り当て符号量の誤差に基づいて、前記割り当て符号量を再算出する割り当て符号量再算出ステップと、N枚の各ピクチャに対する前記割り当て符号量から各ピクチャの符号化後のバッファのデータ蓄積量の推定量を示すバッファ位置推定値を算出するバッファ位置推定値算出ステップと、算出した各ピクチャの前記符号化後のバッファ位置推定値と、予め定められた閾値との大小を比較する比較ステップと、前記大小の比較の結果に基づき、前記閾値以上となっているピクチャの枚数を求める枚数算出ステップと、前記ピクチャの枚数に基づいて、前記符号化部によって並列に符号化するピクチャの枚数である並列数を算出する並列数算出ステップとを有する映像符号化方法である。   One aspect of the present invention is an encoding unit that encodes a plurality of pictures up to N (N is a natural number of 2 or more) in parallel, and an allocation code amount calculation unit that calculates an allocation code amount for each of the N pictures. And a QP calculation unit that calculates a target QP that is a quantization parameter corresponding to the allocated code amount, and is a video encoding method performed by a video encoding device that encodes video, each of the N sheets An allocation code amount recalculation step for recalculating the allocation code amount based on an error of the allocation code amount for a picture, and data storage in a buffer after encoding each picture from the allocation code amount for each of N pictures A buffer position estimated value calculating step for calculating a buffer position estimated value indicating an estimated amount of the quantity, and a buffer position estimated value after the encoding of each calculated picture A comparison step for comparing the magnitude with a predetermined threshold, a number calculation step for obtaining the number of pictures that are equal to or greater than the threshold based on the result of the magnitude comparison, and a number based on the number of pictures. And a parallel number calculating step of calculating a parallel number that is the number of pictures to be encoded in parallel by the encoding unit.

本発明の一態様は、前記映像符号化方法であって、前記割り当て符号量再算出ステップでは、各ピクチャの割り当て符号量に対してあらかじめ定めた1以上の係数を乗算する。   One aspect of the present invention is the video encoding method, wherein in the allocation code amount recalculation step, the allocation code amount of each picture is multiplied by one or more predetermined coefficients.

本発明の一態様は、前記映像符号化方法であって、前記割り当て符号量再算出ステップでは、各ピクチャの割り当て符号量に予め定めた固定値を加算する。   One aspect of the present invention is the video encoding method, wherein in the allocation code amount recalculation step, a predetermined fixed value is added to the allocation code amount of each picture.

本発明の一態様は、前記映像符号化方法であって、前記割り当て符号量再算出ステップでは、各ピクチャの割り当て符号量を予め定めた四則演算による方程式に代入して算出した値を用いることによって前記誤差に基づいた前記割り当て符号量を求める。   One aspect of the present invention is the video encoding method, wherein in the allocation code amount recalculation step, a value calculated by substituting the allocation code amount of each picture into a predetermined equation based on four arithmetic operations is used. The allocated code amount based on the error is obtained.

本発明の一態様は、前記映像符号化方法であって、前記バッファ位置推定値算出ステップでは、前記バッファのバッファ位置として入力された初期バッファ位置を起点として前記並列数によって規定されるピクチャ枚数分の符号化後の前記バッファの前記バッファ位置推定値を、各ピクチャに関して前記誤差に基づいた前記割り当て符号量から計算する。   One aspect of the present invention is the video encoding method, wherein in the buffer position estimation value calculation step, an initial buffer position input as the buffer position of the buffer is used as a starting point for the number of pictures defined by the parallel number. The buffer position estimation value of the buffer after encoding is calculated from the allocated code amount based on the error for each picture.

本発明の一態様は、 映像を符号化する映像符号化装置であって、最大N(Nは2以上の自然数)枚までの複数ピクチャを並列に符号化する符号化部と、N枚の各ピクチャに対する割り当て符号量を算出する割り当て符号量算出部と、前記割り当て符号量に相当する量子化パラメータであるターゲットQPを算出するQP計算部と、前記N枚の各ピクチャに対する前記割り当て符号量の誤差に基づいて、前記割り当て符号量を再算出する割り当て符号量再再算出部と、N枚の各ピクチャに対する前記割り当て符号量から各ピクチャの符号化後のバッファのデータ蓄積量の推定量を示すバッファ位置推定値を算出するバッファ位置推定値算出部と、算出した各ピクチャの前記符号化後のバッファ位置推定値と、予め定められた閾値との大小を比較する比較部と、前記大小の比較の結果に基づき、前記閾値以上となっているピクチャの枚数を求める枚数算出部と、前記ピクチャの枚数に基づいて、前記符号化部によって並列に符号化するピクチャの枚数である並列数を算出する並列数算出部とを備える映像符号化装置である。   One aspect of the present invention is a video encoding device that encodes video, an encoding unit that encodes a plurality of pictures up to N (N is a natural number of 2 or more) in parallel, and each of the N images An allocation code amount calculation unit that calculates an allocation code amount for a picture, a QP calculation unit that calculates a target QP that is a quantization parameter corresponding to the allocation code amount, and an error in the allocation code amount for each of the N pictures An allocation code amount re-recalculation unit that recalculates the allocation code amount based on the above, and a buffer that indicates an estimated amount of data accumulation in a buffer after encoding each picture from the allocation code amount for each of N pictures A buffer position estimated value calculation unit for calculating a position estimated value, and a ratio between the calculated buffer position estimated value of each picture after encoding and a predetermined threshold value are compared. A comparison unit, a number calculation unit for determining the number of pictures that are equal to or greater than the threshold based on the result of the size comparison, and a picture that is encoded in parallel by the encoding unit based on the number of pictures It is a video coding apparatus provided with the parallel number calculation part which calculates the parallel number which is the number of sheets.

本発明の一態様は、コンピュータに、前記映像符号化方法を実行させるための映像符号化プログラムである。   One aspect of the present invention is a video encoding program for causing a computer to execute the video encoding method.

本発明によれば、バッファアンダーフローのリスクを低く抑えつつ、可能な限り並列処理数を高めることにより高速に符号化することができるようにするための並列処理数を算出することができるという効果が得られる。   According to the present invention, it is possible to calculate the number of parallel processes for enabling high-speed encoding by increasing the number of parallel processes as much as possible while suppressing the risk of buffer underflow. Is obtained.

本発明の一実施形態による映像符号化装置の構成を示すブロック図である。It is a block diagram which shows the structure of the video coding apparatus by one Embodiment of this invention. 図1に示す並列数算出部20の構成を示すブロック図である。It is a block diagram which shows the structure of the parallel number calculation part 20 shown in FIG. 図1に示す映像符号化装置の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the video coding apparatus shown in FIG. ピクチャの参照構造を表示順に示した図である。It is the figure which showed the reference structure of the picture in display order. HEVCやH.264をはじめとする一般的な映像符号化規格における符号化部の装置構成を示すブロック図である。HEVC and H.C. 1 is a block diagram illustrating a device configuration of an encoding unit in a general video encoding standard such as H.264. 図5に示すHEVCやH.264をはじめとする一般的な映像符号化規格における符号化部の処理動作を示すフローチャートである。HEVC and H.264 shown in FIG. 2 is a flowchart showing processing operations of an encoding unit in general video encoding standards such as H.264. 複数ピクチャを同時に符号化するための装置の装置構成を示すブロック図である。It is a block diagram which shows the apparatus structure of the apparatus for encoding a some picture simultaneously. 複数ピクチャを同時に符号化する装置が行う処理動作を示すフローチャートである。It is a flowchart which shows the processing operation which the apparatus which codes a some picture simultaneously performs.

以下、図面を参照して、本発明の一実施形態による映像符号化装置を説明する。図1は同実施形態の構成を示すブロック図である。この図に示す装置が図7に示す従来の装置と異なる点は、並列数算出部20が新たに設けられている点である。   Hereinafter, a video encoding apparatus according to an embodiment of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing the configuration of the embodiment. The apparatus shown in this figure is different from the conventional apparatus shown in FIG. 7 in that a parallel number calculation unit 20 is newly provided.

なお、並列処理割り当て部14の入力に関して、図7に示す構成では外部から与えられた並列数が固定値として与えられていたが、図1に示す構成では並列数算出部20から出力される並列処理数mが入力となっている。   As for the input to the parallel processing allocation unit 14, the parallel number given from the outside is given as a fixed value in the configuration shown in FIG. 7, but the parallel number output from the parallel number calculation unit 20 in the configuration shown in FIG. The processing number m is an input.

図1に示す装置は、図7に示す装置と同様に、原画像バッファ1、復号画像バッファ10、N(Nは自然数)個の符号化部12−1〜N、ストリームバッファ13、並列処理割り当て部14、バッファ計算部15、割り当て符号量算出部16、QP計算部17、複雑さ計算部18から構成される。バッファ計算部15、割り当て符号量算出部16、QP計算部17及び複雑さ計算部18によってレート制御部19が構成されている。そして、新たに設けられた並列数算出部20が備えられている。図1に示す装置は、並列数算出部20を除く構成は、図7に示す構成と同様であるため、ここでは、説明を簡単に行う。   The apparatus shown in FIG. 1 is the same as the apparatus shown in FIG. 7. The original image buffer 1, the decoded image buffer 10, N (N is a natural number) encoding units 12-1 to N, the stream buffer 13, and parallel processing allocation A unit 14, a buffer calculation unit 15, an allocated code amount calculation unit 16, a QP calculation unit 17, and a complexity calculation unit 18. A rate control unit 19 is configured by the buffer calculation unit 15, the allocated code amount calculation unit 16, the QP calculation unit 17, and the complexity calculation unit 18. And the newly provided parallel number calculation part 20 is provided. The apparatus shown in FIG. 1 has the same configuration as that shown in FIG. 7 except for the parallel number calculation unit 20, and therefore will be described briefly here.

原画像バッファ1は、原画像を符号化順に並べ替え、符号化部12−1〜Nに送る。ただし、本構成では符号化部12−1〜Nが複数あるため、並列処理割り当て部14から送られる原画割り当て情報を元に、符号化順でm枚分のピクチャを、N個ある符号化部12−1〜Nのなかの任意のm個に対してそれぞれ送信する。   The original image buffer 1 rearranges the original images in the encoding order and sends them to the encoding units 12-1 to 12 -N. However, since there are a plurality of encoding units 12-1 to 12 -N in this configuration, N encoding units for m pictures in the encoding order based on the original image allocation information sent from the parallel processing allocation unit 14. Transmission is performed for any m of 12-1 to 12-N.

復号画像バッファ10は、符号化部12−1〜Nから送られる復号画像を保存し、また必要に応じて参照画像として符号化部12−1〜Nへ送る。ただし、本構成では符号化部12−1〜Nが複数あるため、この復号画像バッファ10も複数の復号画像の同時保存、及び複数の参照画像の同時送出に対応している。   The decoded image buffer 10 stores the decoded images sent from the encoding units 12-1 to 12 -N, and sends them to the encoding units 12-1 to 12 -N as reference images as necessary. However, since there are a plurality of encoding units 12-1 to 12 -N in this configuration, the decoded image buffer 10 also supports simultaneous storage of a plurality of decoded images and simultaneous transmission of a plurality of reference images.

符号化部12−1〜Nは図5に示す符号化部12と同等の機能を有し、本構成例では符号化部12それがN個並列に備わっている。ストリームバッファ13は、各符号化部12−1〜Nから送られる符号化ストリームを保存すると共に、そのデータサイズを発生符号量としてバッファ計算部15、割り当て符号量算出部16、複雑さ計算部8に送る。   The encoding units 12-1 to 12-N have the same function as the encoding unit 12 shown in FIG. 5, and in this configuration example, N encoding units 12 are provided in parallel. The stream buffer 13 stores the encoded streams sent from the encoding units 12-1 to 12 -N, and uses the data size as the generated code amount for the buffer calculation unit 15, the assigned code amount calculation unit 16, and the complexity calculation unit 8. Send to.

並列処理割り当て部14は、入力された並列処理数mを元に、原画像バッファ1のどのピクチャをN個あるどの符号化部(符号化部12−1〜Nのいずれか)へ送るかを求め、原画像バッファ1へ割り当て情報として送信する。原画像バッファ1のピクチャの符号化部12−1〜Nへの割り当て方法としては、例えば、m枚を前詰めで割り当てればよい。   The parallel processing allocation unit 14 determines which picture in the original image buffer 1 is sent to which N encoding units (any of the encoding units 12-1 to N) based on the input parallel processing number m. Obtained and transmitted to the original image buffer 1 as allocation information. As a method for assigning the pictures in the original image buffer 1 to the encoding units 12-1 to 12-N, for example, m pictures may be assigned in a left-justified manner.

バッファ計算部15は、処理が始まるとレート制御設定情報を元にバッファ位置の初期値Bt_before(0)を計算して保持する。また、ストリームバッファ13から各ピクチャの発生符号量が求まるたびにBt_beforeの値を計算し、割り当て符号量算出部16及び並列数算出部20へ送る。   When the process starts, the buffer calculation unit 15 calculates and holds an initial value Bt_before (0) of the buffer position based on the rate control setting information. Further, every time the generated code amount of each picture is obtained from the stream buffer 13, the value of Bt_before is calculated and sent to the allocated code amount calculation unit 16 and the parallel number calculation unit 20.

割り当て符号量算出部16は、外部から与えられるレート制御設定と並列数、バッファ位置、各ピクチャの発生符号量を元に、向こうNピクチャ分の各ピクチャの割り当て符号量T(1)〜T(N)を求め、QP計算部17及び並列数算出部20へ送る。QP計算部17は、複雑さ計算部18から送られる各ピクチャタイプの複雑さ指数と各ピクチャの割り当て符号量を元に、Nピクチャ分のターゲットQPを計算して対応するN個の符号化部12−1〜Nへ送る。   The allocation code amount calculation unit 16 allocates code amounts T (1) to T (1) to T (1) to T (pictures) for the next N pictures based on the rate control setting and the parallel number given from the outside, the buffer position, and the generated code amount of each picture. N) is obtained and sent to the QP calculation unit 17 and the parallel number calculation unit 20. The QP calculation unit 17 calculates a target QP for N pictures based on the complexity index of each picture type sent from the complexity calculation unit 18 and the assigned code amount of each picture, and corresponding N encoding units. Send to 12-1 to N.

複雑さ計算部18は、QP計算部17から送られる各ピクチャの量子化パラメータQPと、ストリームバッファ13から送られる対象ピクチャの発生符号量からピクチャタイプ毎の複雑さ指数を計算し、割り当て符号量算出部16とQP計算部17へ送る。   The complexity calculation unit 18 calculates a complexity index for each picture type from the quantization parameter QP of each picture sent from the QP calculation unit 17 and the generated code amount of the target picture sent from the stream buffer 13, and the assigned code amount The data is sent to the calculation unit 16 and the QP calculation unit 17.

並列数算出部20は、割り当て符号量算出部16が出力する各ピクチャの割り当て符号量と、バッファ計算部15が出力するバッファ位置と、外部から指定される並列数とから符号化部12−1〜Nにおける並列処理数mを出力する。ここで、出力される並列処理数mは、N≧mを満たすことが条件である。   The parallel number calculating unit 20 encodes the encoding unit 12-1 based on the allocated code amount of each picture output from the allocated code amount calculating unit 16, the buffer position output from the buffer calculating unit 15, and the parallel number designated from the outside. Output the number m of parallel processes in .about.N. Here, the number m of parallel processes to be output is required to satisfy N ≧ m.

次に、図2を参照して、図1に示す並列数算出部20の構成を説明する。図2は、図1に示す並列数算出部20の構成を示すブロック図である。並列数算出部20は、誤差考慮済み符号量計算部21、バッファ推移推定部22、閾値判定部23、並列処理数決定部24から構成される。並列数算出部20には、各ピクチャの割り当て符号量と、並列数と、バッファ位置とが入力される。   Next, the configuration of the parallel number calculation unit 20 shown in FIG. 1 will be described with reference to FIG. FIG. 2 is a block diagram showing a configuration of the parallel number calculation unit 20 shown in FIG. The parallel number calculation unit 20 includes an error-considered code amount calculation unit 21, a buffer transition estimation unit 22, a threshold determination unit 23, and a parallel processing number determination unit 24. The parallel number calculation unit 20 receives the assigned code amount of each picture, the parallel number, and the buffer position.

誤差考慮済み符号量計算部21は、入力された並列数で指定されるピクチャ数分の割り当て符号量を入力とし、それらにあらかじめ定められた誤差係数k=1.2を乗じた値を各ピクチャの誤差考慮済み符号量としてバッファ推移推定部22に送る。ここで、誤差係数kとして、1.2を乗じているが、この値に限るものではなく、任意の値を用いることが可能である。   The error-considered code amount calculation unit 21 receives the assigned code amount for the number of pictures specified by the input parallel number, and multiplies them by a predetermined error coefficient k = 1.2 for each picture. Is sent to the buffer transition estimation unit 22 as an error-considered code amount. Here, the error coefficient k is multiplied by 1.2, but is not limited to this value, and any value can be used.

バッファ推移推定部22は、バッファ位置として入力された初期バッファ位置を起点として並列数によって規定されるピクチャ枚数分の符号化後バッファ位置(n枚目ピクチャを復号した直後の受信バッファのデータ蓄積量Bt_after)を各ピクチャに関する誤差考慮済み割り当て符号量から計算して閾値判定部23に送る。   The buffer transition estimation unit 22 uses the initial buffer position input as the buffer position as a starting point and the encoded buffer position for the number of pictures defined by the parallel number (the amount of data stored in the reception buffer immediately after decoding the nth picture) Bt_after) is calculated from the error-considered allocated code amount for each picture and sent to the threshold value determination unit 23.

閾値判定部23は、並列数によって規定されたピクチャ数分の符号化後バッファ位置(各ピクチャのBt_after)に関して、予め定められた閾値Thとの間で大小比較を施し、その結果を並列処理数決定部24に送る。   The threshold determination unit 23 compares the buffer positions after encoding (Bt_after of each picture) for the number of pictures defined by the parallel number with a predetermined threshold Th and compares the result with the number of parallel processes. The data is sent to the determination unit 24.

並列処理数決定部24は、閾値判定部23の出力を入力し、並列数で規定された値以下の範囲で、閾値判定結果が常に閾値Th以上となる最大のピクチャ番号を求め、それを並列処理数mとして出力する。   The parallel processing number determination unit 24 receives the output of the threshold determination unit 23, obtains the maximum picture number for which the threshold determination result is always greater than or equal to the threshold Th within a range equal to or less than the value defined by the parallel number, and parallelizes it. Output as the processing number m.

次に、図3を参照して、図2に示す並列数算出部20を含む図1に示す映像符号化装置の動作を説明する。図3は、図1に示す映像符号化装置の動作を示すフローチャートである。   Next, the operation of the video encoding device shown in FIG. 1 including the parallel number calculation unit 20 shown in FIG. 2 will be described with reference to FIG. FIG. 3 is a flowchart showing the operation of the video encoding apparatus shown in FIG.

まず、符号化が始まると、従来法と同様、原画像バッファ1は、入力画像を符号化順に並べ替える(ステップS1)。続いて、割り当て符号量算出部16は、向こうN(Nは自然数)枚分のピクチャに関して割り当て符号量を算出する(ステップS2)。算出方法は前述した通りである。   First, when encoding starts, as in the conventional method, the original image buffer 1 rearranges the input images in the encoding order (step S1). Subsequently, the allocated code amount calculation unit 16 calculates the allocated code amount for N pictures (N is a natural number) beyond (step S2). The calculation method is as described above.

次に、誤差考慮済み符号量計算部21は、算出した各ピクチャの割り当て符号量T(1)〜T(N)に対して誤差を加味する(ステップS3)。具体的にはT(1)〜T(N)に誤差係数k=1.2を掛け、誤差考慮済み符号量T’(1)〜T’(N)を算出する。   Next, the error-considered code amount calculation unit 21 adds an error to the calculated assigned code amounts T (1) to T (N) of each picture (step S3). Specifically, T (1) to T (N) are multiplied by an error coefficient k = 1.2, and error-considered code amounts T ′ (1) to T ′ (N) are calculated.

次に、バッファ推移推定部22は、バッファ推移の推定を行う(ステップS4)。具体的には各ピクチャの符号化終了時点の推定バッファ位置Bt_after(1)〜Bt_after(N)を以下のように求める。
Bt_after(1)=Bt_before(1)−T’(1)
Bt_after(2)=Bt_before(2)−T’(2)
=Bt_before(1)−(T’(1)+T’(2))+b/FPS

Bt_after(N)= Bt_before(N) −T’(N)
=Bt_before(1)−(T’(1)+T’(2)+…T’(N))+(N−1)×b/FPS
Next, the buffer transition estimation unit 22 estimates buffer transition (step S4). Specifically, the estimated buffer positions Bt_after (1) to Bt_after (N) at the end of encoding of each picture are obtained as follows.
Bt_after (1) = Bt_before (1) −T ′ (1)
Bt_after (2) = Bt_before (2) −T ′ (2)
= Bt_before (1)-(T '(1) + T' (2)) + b / FPS
...
Bt_after (N) = Bt_before (N) −T ′ (N)
= Bt_before (1) − (T ′ (1) + T ′ (2) +... T ′ (N)) + (N−1) × b / FPS

そして、閾値判定部23は、Bt_after(1)〜Bt_after(N)を予め定めた閾値Thと比較する(ステップS5)。この比較結果に基づき、並列処理数決定部24は、符号化順に見て最も早く閾値Thを下回るピクチャ番号を見つけ、その直前のピクチャ番号を並列処理数mとして出力する(ステップS6)。例えばBt_after(1)、Bt_after(2)は閾値Thを上回り、Bt_after(3)が閾値Thを下回っていた場合、並列処理数mは2とする。   Then, the threshold determination unit 23 compares Bt_after (1) to Bt_after (N) with a predetermined threshold Th (step S5). Based on the comparison result, the parallel processing number determination unit 24 finds the picture number that falls below the threshold Th the earliest in the coding order, and outputs the immediately preceding picture number as the parallel processing number m (step S6). For example, if Bt_after (1) and Bt_after (2) are above the threshold Th, and Bt_after (3) is below the threshold Th, the parallel processing count m is 2.

その後、QP計算部17は、向こうm(並列処理数)枚分のピクチャに対して量子化パラメータQPを算出する(ステップS7)。この時の量子化パラメータQPの計算では、誤差係数k(例えば、1.2)を掛ける前の符号量T(1)〜T(m)の値を元に量子化パラメータQPを算出する。   After that, the QP calculation unit 17 calculates the quantization parameter QP for m (the number of parallel processing) pictures beyond (step S7). In the calculation of the quantization parameter QP at this time, the quantization parameter QP is calculated based on the values of the code amounts T (1) to T (m) before being multiplied by the error coefficient k (for example, 1.2).

次に、向こうm枚分のピクチャに対するターゲットQPが求まったら、以降は従来法と同様、符号化部12−1〜Nは、m(並列処理数)枚分のピクチャを並列処理して符号化を行う(ステップS8)。m枚の符号化に必ずしも符号化部12−1〜Nの全てが使われる訳ではなく、m個の符号化部のみが使われることになる。そして、複雑さ計算部18は、求まった発生符号量を元に、複雑さ指数を更新する(ステップS9)。   Next, when target QPs for m pictures beyond are obtained, the encoding units 12-1 to 12-N encode and process m (parallel processing number) pictures in parallel as in the conventional method. Is performed (step S8). Not all of the encoding units 12-1 to 12 -N are necessarily used for encoding m sheets, but only m encoding units are used. Then, the complexity calculation unit 18 updates the complexity index based on the obtained generated code amount (step S9).

また、バッファ計算部15は、求まった発生符号量を元に、バッファ位置を更新する(ステップS10)。そして、符号化フレームが残っていたら向こうN枚分のピクチャに対する割り当て符号量算出処理に戻って符号化処理を最後まで繰り返す(ステップS11)。   Further, the buffer calculation unit 15 updates the buffer position based on the obtained generated code amount (step S10). If the encoded frame remains, the process returns to the allocated code amount calculation process for the next N pictures and repeats the encoding process to the end (step S11).

なお、前述した説明では割り当て符号量に誤差を加味する方法として誤差係数k=1.2を乗算する例を説明したが、誤差係数kを乗算することに限るものではない。例えば、固定値を加算してもよい。また、乗算や加算に限らず、各ピクチャの割り当て符号量を予め定めた誤差係数kを算出するための四則演算による方程式に代入して得られた値に基づいた割り当て符号量としてもよい。   In the above description, an example in which the error coefficient k = 1.2 is multiplied as a method for adding an error to the allocated code amount, but the present invention is not limited to multiplication by the error coefficient k. For example, a fixed value may be added. Further, not only multiplication and addition, but an allocation code amount based on a value obtained by substituting the allocation code amount of each picture into an equation based on four arithmetic operations for calculating a predetermined error coefficient k may be used.

また、誤差係数kを乗算する際の誤差係数kは、割り当て符号量に対して、予め定めた1以上の係数を掛けて安全側に設定することを目的とするため、1以上の係数であればよい。特に、本実施形態では、割り当て符号量T(N)と、実際の発生符号量G(N)の間に乖離が生じるため、その分を補償する際に、安全側に設定するため、1以上の誤差係数を乗算するようにしている。そのため、例えば並列化を行わない状態で予め符号化を行って割り当て符号量T(N)と実際の発生符号量G(N)を算出し、その比を以って「1以上の係数」を定めれるようにしてもよい。   Further, the error coefficient k when multiplying by the error coefficient k is set to a safe side by multiplying the assigned code amount by one or more predetermined coefficients, so that it should be one or more coefficients. That's fine. In particular, in the present embodiment, there is a divergence between the allocated code amount T (N) and the actual generated code amount G (N). Is multiplied by the error coefficient. Therefore, for example, encoding is performed in advance in a state where parallelization is not performed, and an allocated code amount T (N) and an actual generated code amount G (N) are calculated. It may be determined.

例えば、大量のあらゆる映像を予めエンコードして割り当て符号量T(N)と実際の発生符号量G(N)の平均値をそれぞれ求め、その比を「1以上の係数」とすると手法を用いて誤差係数kを設定することができる。   For example, a method is used in which a large amount of all images are encoded in advance to obtain an average value of the allocated code amount T (N) and the actual generated code amount G (N), and the ratio is “one or more coefficients”. An error coefficient k can be set.

また、誤差係数kは必ずしも固定値である必要はない。実際にエンコードを行っていくと各フレームの割り当て符号量T(N)と実際の発生符号量G(N)の値が順次求まるので、その最新Mフレーム分の平均値を以って順次更新したり、先頭からずっと積算し続けた値の平均値を使ったりすることも可能である。   Further, the error coefficient k is not necessarily a fixed value. When encoding is actually performed, the assigned code amount T (N) and the actual generated code amount G (N) of each frame are obtained sequentially, and are updated sequentially with the average value for the latest M frames. It is also possible to use an average value of values continuously accumulated from the beginning.

以上説明したように、実施形態における映像符号化装置は、複数のピクチャを同時に符号化を行う際に、割り当て符号量に誤差を加味したうえでバッファ推移の推定を行う。そして、映像符号化装置は、同時に符号化を行う適切なピクチャ数を設定する。この構成によれば、復号時においてバッファオーバーフロー及びバッファアンダーフローの発生を低く抑えることができるとともに、符号化速度の高速化を実現することができる。   As described above, when encoding a plurality of pictures at the same time, the video encoding apparatus according to the embodiment performs buffer transition estimation in consideration of an error in the allocated code amount. The video encoding apparatus sets an appropriate number of pictures to be encoded at the same time. According to this configuration, it is possible to suppress the occurrence of buffer overflow and buffer underflow at the time of decoding, and it is possible to increase the encoding speed.

特に、バッファ位置が下がっている場合は、並列数算出部20が並列処理数を少なくすることで処理速度が遅くなる代わりにバッファアンダーフローのリスクを下げることが可能になる。逆に、バッファ位置が上がっている場合などバッファアンダーフローの危険性が低い場合は、並列数算出部20が並列数を多くすることで処理速度を高めることが可能になる。この結果、バッファアンダーフローのリスクを低く抑えつつ、可能な限り並列処理数を高めることにより高速にエンコードすることができる。   In particular, when the buffer position is lowered, it is possible to reduce the risk of buffer underflow instead of reducing the processing speed by reducing the number of parallel processes by the parallel number calculation unit 20. Conversely, when the risk of buffer underflow is low, such as when the buffer position is raised, the parallel number calculation unit 20 can increase the processing speed by increasing the parallel number. As a result, it is possible to perform high-speed encoding by increasing the number of parallel processes as much as possible while keeping the risk of buffer underflow low.

前述した実施形態における映像符号化装置の全部または一部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、PLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されるものであってもよい。   You may make it implement | achieve all or one part of the video coding apparatus in embodiment mentioned above with a computer. In that case, a program for realizing this function may be recorded on a computer-readable recording medium, and the program recorded on this recording medium may be read into a computer system and executed. Here, the “computer system” includes an OS and hardware such as peripheral devices. The “computer-readable recording medium” refers to a storage device such as a flexible medium, a magneto-optical disk, a portable medium such as a ROM and a CD-ROM, and a hard disk incorporated in a computer system. Furthermore, the “computer-readable recording medium” dynamically holds a program for a short time like a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line. In this case, a volatile memory inside a computer system serving as a server or a client in that case may be included and a program held for a certain period of time. Further, the program may be a program for realizing a part of the above-described functions, and may be a program capable of realizing the functions described above in combination with a program already recorded in a computer system. It may be realized using hardware such as PLD (Programmable Logic Device) or FPGA (Field Programmable Gate Array).

以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。   As mentioned above, although embodiment of this invention has been described with reference to drawings, the said embodiment is only the illustration of this invention, and it is clear that this invention is not limited to the said embodiment. is there. Therefore, additions, omissions, substitutions, and other modifications of the components may be made without departing from the technical idea and scope of the present invention.

バッファアンダーフローのリスクを低く抑えつつ、可能な限り並列処理数を高めることにより高速に符号化することが不可欠な用途に適用できる。   It can be applied to applications where it is essential to perform high-speed encoding by increasing the number of parallel processes as much as possible while keeping the risk of buffer underflow low.

1・・・原画像バッファ、10・・・復号画像バッファ、12−1〜N・・・符号化部、13・・・ストリームバッファ、14・・・並列処理割り当て部、15・・・バッファ計算部、16・・・割り当て符号量算出部、17・・・QP計算部、18・・・複雑さ計算部、19・・・レート制御部、20・・・並列数算出部   DESCRIPTION OF SYMBOLS 1 ... Original image buffer, 10 ... Decoded image buffer, 12-1 to N ... Encoding part, 13 ... Stream buffer, 14 ... Parallel processing allocation part, 15 ... Buffer calculation , 16 ... Allocation code amount calculation unit, 17 ... QP calculation unit, 18 ... Complexity calculation unit, 19 ... Rate control unit, 20 ... Parallel number calculation unit

Claims (7)

最大N(Nは2以上の自然数)枚までの複数ピクチャを並列に符号化する符号化部と、N枚の各ピクチャに対する割り当て符号量を算出する割り当て符号量算出部と、前記割り当て符号量に相当する量子化パラメータであるターゲットQPを算出するQP計算部とを備え、映像を符号化する映像符号化装置が行う映像符号化方法であって、
前記N枚の各ピクチャに対する前記割り当て符号量の誤差に基づいて、前記割り当て符号量を再算出する割り当て符号量再算出ステップと、
N枚の各ピクチャに対する前記割り当て符号量から各ピクチャの符号化後のバッファのデータ蓄積量の推定量を示すバッファ位置推定値を算出するバッファ位置推定値算出ステップと、
算出した各ピクチャの前記符号化後のバッファ位置推定値と、予め定められた閾値との大小を比較する比較ステップと、
前記大小の比較の結果に基づき、前記閾値以上となっているピクチャの枚数を求める枚数算出ステップと、
前記ピクチャの枚数に基づいて、前記符号化部によって並列に符号化するピクチャの枚数である並列数を算出する並列数算出ステップと
を有する映像符号化方法。
An encoding unit that encodes a plurality of pictures up to N (N is a natural number of 2 or more) in parallel, an allocation code amount calculation unit that calculates an allocation code amount for each of the N pictures, and the allocation code amount A video encoding method performed by a video encoding device that encodes video, comprising a QP calculation unit that calculates a target QP that is a corresponding quantization parameter,
An allocation code amount recalculation step of recalculating the allocation code amount based on an error of the allocation code amount for each of the N pictures;
A buffer position estimated value calculating step for calculating a buffer position estimated value indicating an estimated amount of data accumulation in the buffer after encoding each picture from the allocated code amount for each of N pictures;
A comparison step for comparing the calculated buffer position estimated value of each picture with a predetermined threshold value;
A number-of-sheets calculating step for determining the number of pictures that are equal to or greater than the threshold based on the result of the comparison of the magnitudes;
And a parallel number calculating step of calculating a parallel number that is the number of pictures to be encoded in parallel by the encoding unit based on the number of pictures.
前記割り当て符号量再算出ステップでは、各ピクチャの割り当て符号量に対してあらかじめ定めた1以上の係数を乗算する請求項1に記載の映像符号化方法。   2. The video encoding method according to claim 1, wherein in the allocation code amount recalculation step, the allocation code amount of each picture is multiplied by one or more predetermined coefficients. 前記割り当て符号量再算出ステップでは、各ピクチャの割り当て符号量に予め定めた固定値を加算する請求項1に記載の映像符号化方法。   The video encoding method according to claim 1, wherein in the allocation code amount recalculation step, a predetermined fixed value is added to the allocation code amount of each picture. 前記割り当て符号量再算出ステップでは、各ピクチャの割り当て符号量を予め定めた四則演算による方程式に代入して算出した値を用いることによって前記誤差に基づいた前記割り当て符号量を求める請求項1に記載の映像符号化方法。   2. The allocation code amount recalculation step determines the allocation code amount based on the error by using a value calculated by substituting the allocation code amount of each picture into an equation based on predetermined four arithmetic operations. Video encoding method. 前記バッファ位置推定値算出ステップでは、前記バッファのバッファ位置として入力された初期バッファ位置を起点として前記並列数によって規定されるピクチャ枚数分の符号化後の前記バッファの前記バッファ位置推定値を、各ピクチャに関して前記誤差に基づいた前記割り当て符号量から計算する請求項1に記載の映像符号化方法。   In the buffer position estimated value calculation step, the buffer position estimated value of the buffer after encoding for the number of pictures defined by the parallel number starting from the initial buffer position input as the buffer position of the buffer, The video encoding method according to claim 1, wherein calculation is performed from the allocated code amount based on the error with respect to a picture. 映像を符号化する映像符号化装置であって、
最大N(Nは2以上の自然数)枚までの複数ピクチャを並列に符号化する符号化部と、
N枚の各ピクチャに対する割り当て符号量を算出する割り当て符号量算出部と、
前記割り当て符号量に相当する量子化パラメータであるターゲットQPを算出するQP計算部と、
前記N枚の各ピクチャに対する前記割り当て符号量の誤差に基づいて、前記割り当て符号量を再算出する割り当て符号量再再算出部と、
N枚の各ピクチャに対する前記割り当て符号量から各ピクチャの符号化後のバッファのデータ蓄積量の推定量を示すバッファ位置推定値を算出するバッファ位置推定値算出部と、
算出した各ピクチャの前記符号化後のバッファ位置推定値と、予め定められた閾値との大小を比較する比較部と、
前記大小の比較の結果に基づき、前記閾値以上となっているピクチャの枚数を求める枚数算出部と、
前記ピクチャの枚数に基づいて、前記符号化部によって並列に符号化するピクチャの枚数である並列数を算出する並列数算出部と
を備える映像符号化装置。
A video encoding device for encoding video,
An encoding unit for encoding a plurality of pictures up to N (N is a natural number of 2 or more) in parallel;
An allocation code amount calculation unit for calculating an allocation code amount for each of the N pictures;
A QP calculation unit for calculating a target QP that is a quantization parameter corresponding to the allocated code amount;
An allocation code amount re-recalculation unit that recalculates the allocation code amount based on an error of the allocation code amount for each of the N pictures;
A buffer position estimated value calculating unit that calculates a buffer position estimated value indicating an estimated amount of data accumulation in a buffer after encoding each picture from the allocated code amount for each of N pictures;
A comparing unit that compares the calculated buffer position estimated value of each picture after the encoding with a predetermined threshold;
A number calculation unit for determining the number of pictures that are equal to or greater than the threshold based on the result of the magnitude comparison;
A video encoding apparatus comprising: a parallel number calculating unit that calculates a parallel number that is the number of pictures to be encoded in parallel by the encoding unit based on the number of pictures.
コンピュータに、請求項1から5のいずれか一項に記載の映像符号化方法を実行させるための映像符号化プログラム。   A video encoding program for causing a computer to execute the video encoding method according to any one of claims 1 to 5.
JP2016001281A 2016-01-06 2016-01-06 Video encoding method, video encoding apparatus, and video encoding program Active JP6470191B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016001281A JP6470191B2 (en) 2016-01-06 2016-01-06 Video encoding method, video encoding apparatus, and video encoding program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016001281A JP6470191B2 (en) 2016-01-06 2016-01-06 Video encoding method, video encoding apparatus, and video encoding program

Publications (2)

Publication Number Publication Date
JP2017123545A JP2017123545A (en) 2017-07-13
JP6470191B2 true JP6470191B2 (en) 2019-02-13

Family

ID=59306654

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016001281A Active JP6470191B2 (en) 2016-01-06 2016-01-06 Video encoding method, video encoding apparatus, and video encoding program

Country Status (1)

Country Link
JP (1) JP6470191B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11323703B2 (en) 2018-07-03 2022-05-03 Nec Corporation Moving-image encoding device, moving-image encoding method, and program
WO2021084679A1 (en) * 2019-10-31 2021-05-06 株式会社ソシオネクスト Video encoding method, encoding processing method, video encoding apparatus, and encoding processing apparatus
CN112333526B (en) * 2020-10-26 2022-08-16 浙江大华技术股份有限公司 Video buffer adjustment method and device, storage medium and electronic device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3621598B2 (en) * 1999-03-04 2005-02-16 日本電信電話株式会社 Parallel software image encoding method and recording medium recording parallel software image encoding program
JP5706759B2 (en) * 2011-06-01 2015-04-22 ルネサスエレクトロニクス株式会社 Image coding apparatus and image coding method
JP2015171114A (en) * 2014-03-11 2015-09-28 キヤノン株式会社 Moving image encoder

Also Published As

Publication number Publication date
JP2017123545A (en) 2017-07-13

Similar Documents

Publication Publication Date Title
US9282329B2 (en) Methods and devices for data compression using offset-based adaptive reconstruction levels
JP5152402B2 (en) Moving picture coding apparatus, moving picture coding method, and moving picture coding computer program
JP5472105B2 (en) Image processing apparatus and image processing method
KR101391661B1 (en) Video coding control method, video coding device and video coding program
US6229849B1 (en) Coding device and method
KR101494562B1 (en) Moving picture encoding device, moving picture encoding method and computer-readable recording medium storing computer program for moving picture encoding
US8582898B2 (en) Method and apparatus for encoding and decoding image based on code table selection adapted to residual value distribution
US9955168B2 (en) Constraining number of bits generated relative to VBV buffer
KR101389919B1 (en) Moving image encoding control method, moving image encoding apparatus and moving image encoding program
KR100796857B1 (en) Moving image encoding method and apparatus
JP4668767B2 (en) Moving picture coding apparatus and moving picture coding program
JP6470191B2 (en) Video encoding method, video encoding apparatus, and video encoding program
JP7343817B2 (en) Encoding device, encoding method, and encoding program
JP2006295535A (en) Dynamic image coding apparatus, and method
JP4485996B2 (en) Image encoding apparatus and image encoding program
KR20040007818A (en) Method for controlling DCT computational quantity for encoding motion image and apparatus thereof
JP7001159B2 (en) Video coding device, video coding method, program
JP2012138661A (en) Image processing apparatus and method
JP5741073B2 (en) Image encoding apparatus, image encoding method, and image encoding program
JP3889552B2 (en) Code amount allocation apparatus and method
JP2009200871A (en) Encoding apparatus
JP4962609B2 (en) Moving picture coding apparatus and moving picture coding program
JP4582710B2 (en) Video encoding device
JP6985899B2 (en) Image coding device and its control method and program
JP2004349855A (en) Coder

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181205

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: 20190115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190117

R150 Certificate of patent or registration of utility model

Ref document number: 6470191

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150