JP2010193398A - Image encoding device, and image encoding method - Google Patents
Image encoding device, and image encoding method Download PDFInfo
- Publication number
- JP2010193398A JP2010193398A JP2009038418A JP2009038418A JP2010193398A JP 2010193398 A JP2010193398 A JP 2010193398A JP 2009038418 A JP2009038418 A JP 2009038418A JP 2009038418 A JP2009038418 A JP 2009038418A JP 2010193398 A JP2010193398 A JP 2010193398A
- Authority
- JP
- Japan
- Prior art keywords
- data
- image
- block
- code length
- binarized
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
本発明は画像符号化装置及び画像符号化方法に関し、特に、H.264/MPEG−4 AVC等の動画像の符号化装置に用いて好適な技術に関する。 The present invention relates to an image encoding device and an image encoding method. The present invention relates to a technique suitable for use in a moving image encoding apparatus such as H.264 / MPEG-4 AVC.
動画像符号化の規格の1つとして、ISO/IECの国際標準規格である、MPEG-1, MPEG-2, MPEG-4が広く使用されている。近年、より高い符号化効率を持つ規格として、ITU-T H.264(あるいはISO/IEC MPEG-4 AVCと呼称される)が勧告され、その実用化が急速に進んでいる。以下、図7を参照しながらH.264規格に対応した符号化装置の従来例を説明する。 As one of the moving image coding standards, MPEG-1, MPEG-2 and MPEG-4, which are ISO / IEC international standards, are widely used. In recent years, ITU-T H.264 (or ISO / IEC MPEG-4 AVC) has been recommended as a standard having higher encoding efficiency, and its practical application is rapidly progressing. Hereinafter, a conventional example of an encoding apparatus compatible with the H.264 standard will be described with reference to FIG.
図7において、700は画像符号化装置である。701は画像メモリであり、符号化の対象となるフレーム、及び動き補償で使用する参照フレームを一時的に記憶する。702は動き検出部であり、動きベクトルの検出をマクロブロック単位で行う。703はデブロッキングフィルタであり、符号化対象画像と参照画像との差分データにおけるブロックノイズを低減するために使用される。704は動き補償部であり、動き検出部702で求められた動きベクトルに従って、符号化対象画像と参照画像との差分を求める。705は整数変換部であり、所定のマクロブロックサイズのデータを周波数空間に変換する。なお、直交変換の方式としては、MPEG-4規格までは離散コサイン変換が用いられていたが、デコーダにおいては、有限精度での演算により、逆変換時の変換誤差が蓄積されるという問題点があった。この問題点を解消するため、H.264規格においては、原理的に変換誤差の生じない整数変換が採用されている。
In FIG. 7,
706は量子化部であり、整数変換部705で行われた整数変換によって得られた係数データを量子化する。708は逆量子化部であり、局所(ローカル)デコード画像のための逆量子化処理を行う。707は逆整数変換部であり、逆整数変換処理を行う。
A
一方、量子化部706において量子化された係数データはCABAC (Content Adaptive Binary Arithmetic Coding)と呼ばれるエントロピー符号化部710に送られる。CABACの構成要素として、二値化部711、及び算術符号化部712を図示している。
On the other hand, the coefficient data quantized by the
二値化部711は、量子化済みの係数データ、動きベクトル、及びマクロブロックに付随する各種情報など、すべての符号化要素(シンタックスエレメントと呼称される)に対して二値化処理を行う。二値化の方式については、各シンタックスエレメントによって異なった可変長符号表が定義されている。
The
算術符号化部712は、二値化部711において二値化されたデータに対して、1ビットずつの順次処理によって符号化を行う。したがって、マクロブロックの総処理時間は、入力される二値データのビット数によって変動する。しかも、各ビットの処理結果を、後続するビットの符号化処理に反映させて、適応的に符号化効率を向上させるフィードバック型アルゴリズムであるため、複数ビットの一括処理が原理的に困難であるという特徴がある。
The
709は、量子化ステップ制御部であり、ピクチャ単位での符号量制御を行う。量子化ステップ制御を行うためには、ピクチャの符号化過程において、マクロブロックごとの既発生符号量の観測を行っている。そして、目標とするピクチャの総発生符号量との差異を観測しながら量子化ステップを随時更新することによって量子化ステップ制御を実現している。
しかしながら、前述したように、従来の符号化装置700の場合には、算術符号化部712で行われる算術符号化は、処理時間が入力(=二値化済みデータ)のビット数によって変動してしまう。このため、マクロブロック単位での処理時間のワースト値をあらかじめ推測することが困難であるので、ピクチャ全体での総処理時間に破綻が生じてしまうという可能性もある。また、H.264勧告においては、1マクロブロックの最大符号長が4:2:0サンプリングの場合では、3200ビット以内に納めなければならないという規定がある。
However, as described above, in the case of the
これは、デコーダにおいて、算術復号化の処理負荷が局所的に過大になり、復号処理が破綻してしまうのを防止するためである。非常に稀なケースではあるものの、CABAC処理後のマクロブロック符号長が前述した3200ビットを超過する場合には、これを画像データそのものに置き換える処理が行われる。この場合のマクロブロックタイプはI_PCMと呼ばれる。具体的には、I_PCMモードでのマクロブロックのサイズは、以下の(式1)により、3072ビット(固定)となる。
64(画素/ブロック)×6(ブロック)×8(ビット)=3072ビット ・・・(式1)
This is to prevent the arithmetic decoding processing load from becoming excessively high in the decoder and causing the decoding process to fail. Although this is a very rare case, when the macroblock code length after CABAC processing exceeds the above-mentioned 3200 bits, processing for replacing this with the image data itself is performed. The macroblock type in this case is called I_PCM. Specifically, the size of the macroblock in the I_PCM mode is 3072 bits (fixed) according to (Equation 1) below.
64 (pixel / block) x 6 (block) x 8 (bit) = 3072 bits (Equation 1)
このとき、置き換えが行われる画像の内容についての規定は特に無いが、隣接マクロブロックのフレーム内予測処理との並列処理を考慮すると、原画像ではなく、局所復号画像を用いることが望ましい。したがって、この処理を行うためには、符号化済で、かつ動き補償の参照フレームとして使用されないフレームもすべてI_PCMデータ置き換え用として保存しておく必要がある。 At this time, there is no particular restriction on the content of the image to be replaced, but it is desirable to use a local decoded image instead of the original image in consideration of parallel processing with intra-frame prediction processing of adjacent macroblocks. Therefore, in order to perform this processing, it is necessary to save all frames that have been encoded and are not used as reference frames for motion compensation for I_PCM data replacement.
こうした仕組みを利用して、1マクロブロック当りの最大符号量超過を保護するために、エントロピー符号化前の情報からある閾値を元に符号量を判定し、I_PCMデータへ差し替える方法が開示されている(例えば、特許文献1参照)。 In order to protect the excess of the maximum code amount per macroblock using such a mechanism, a method is disclosed in which the code amount is determined based on a certain threshold value from information before entropy coding and replaced with I_PCM data. (For example, refer to Patent Document 1).
前記特許文献1においては、変換係数からマクロブロックごとの算術符号処理後の符号長を推定し、推定値が所定のしきい値を超えた場合には、I_PCMモードを無条件に選択するようにしている。
In
しかしながら、CABAC処理では、マクロブロック単位の算術符号処理時間が二値化データの符号長により変動してしまうため、マクロブロック単位でパイプライン処理を行い、所定時間内に処理を終了することを保証するのが困難である。 However, in CABAC processing, the arithmetic code processing time in units of macro blocks varies depending on the code length of the binarized data, so pipeline processing is performed in units of macro blocks and processing is guaranteed to be completed within a predetermined time. Difficult to do.
このような問題点を解決するために、図8で示すように、二値化出力を1フレーム(あるいは1フィールド)分蓄積して、算術符号化だけをフレーム単位で遅延させて行う手法が考えられる。 In order to solve such a problem, as shown in FIG. 8, a method of accumulating binarized output for one frame (or one field) and delaying only arithmetic coding in units of frames can be considered. It is done.
図8の例では、フレームメモリ801、符号処理部(動き補償/量子化部)802、二値化部803、二値バッファ804、セレクタ805、算術符号化部806を設けている。そして、フレームnの1フレーム分の二値データを二値バッファ804でバッファリングして、フレーム(n+1)の期間に算術符号化部806で一括して算術符号化を行っている。
In the example of FIG. 8, a
このようにすれば、特定のマクロブロックで処理時間が過大になったとしても、フレーム全体では処理時間を平滑化することができるので、フレーム時間内にすべてのマクロブロックの処理を終了させることが容易になる。 In this way, even if the processing time is excessive for a specific macroblock, the processing time can be smoothed for the entire frame, so that processing of all macroblocks can be completed within the frame time. It becomes easy.
このとき、前述したように、マクロブロック単位の算術符号量が特定の値(4:2:0サブサンプリングで3200ビット)を超えた場合には、I_PCMモードに置き換えなければならない。この場合のI_PCMデータは、局所復号画像であることが望ましいため、結局このフレームの画像を、たとえ以降の処理で参照フレームとして使用されない場合でもフレームメモリ801内に保存しておき、必要に応じてI_PCMとして挿入しなければならない。したがって、この方法の場合も冗長なメモリ領域を確保しておかなければならない不都合がある。
At this time, as described above, when the arithmetic code amount in units of macroblocks exceeds a specific value (3200 bits in 4: 2: 0 subsampling), it must be replaced with the I_PCM mode. Since it is desirable that the I_PCM data in this case is a locally decoded image, the image of this frame is eventually stored in the
また、変換係数の分布状況や二値符号長の判定により、あらかじめ強制的にI_PCMモードにしてしまう方法では、算術符号量が特定の値を実際には超えなかった場合でもI_PCMモードになってしまう可能性がある。このため、出力符号量が最適ではなくなってしまうという問題もあった。 In addition, in the method of forcibly setting the I_PCM mode in advance by determining the distribution status of the transform coefficients and the binary code length, even if the arithmetic code amount does not actually exceed a specific value, the I_PCM mode is set. there is a possibility. For this reason, there has been a problem that the output code amount is not optimal.
本発明は前述の問題点に鑑み、所定ブロックの画像データをマクロブロック単位で挿入する構成を簡略化できるようにすることを目的としている。 The present invention has been made in view of the above-described problems, and an object of the present invention is to simplify the configuration for inserting image data of a predetermined block in units of macroblocks.
本発明の画像符号化装置は、入力される動画像の各フレームを任意のブロックサイズに分割し、ブロックごとに符号化を行う画像符号化装置であって、前記ブロックの各符号化要素を二値化して二値化データを生成する二値化手段と、前記二値化手段によって生成された二値化データの符号長を前記二値化データに付加する符号長付加手段と、前記二値化データの符号長に応じて所定ブロックの画像データを適応的に挿入するデータ挿入手段とを有することを特徴とする。 An image encoding apparatus according to the present invention is an image encoding apparatus that divides each frame of an input moving image into arbitrary block sizes and performs encoding for each block, and each encoding element of the block is divided into two. Binarizing means for binarizing and generating binarized data; code length adding means for adding the code length of the binarized data generated by the binarizing means to the binarized data; and the binary Data insertion means for adaptively inserting image data of a predetermined block according to the code length of the digitized data.
本発明の画像符号化方法は、入力される動画像の各フレームを任意のブロックサイズに分割し、ブロックごとに符号化を行う画像符号化方法であって、前記ブロックの各符号化要素を二値化して二値化データを生成する二値化工程と、前記二値化工程において生成された二値化データの符号長を前記二値化データに付加する符号長付加工程と、前記二値化データの符号長に応じて所定ブロックの画像データを適応的に挿入するデータ挿入工程とを有することを特徴とする。 The image coding method of the present invention is an image coding method in which each frame of an input moving image is divided into arbitrary block sizes and coding is performed for each block, and each coding element of the block is divided into two. A binarization step for binarizing and generating binarized data, a code length adding step for adding the code length of the binarized data generated in the binarization step to the binarized data, and the binarization And a data insertion step of adaptively inserting image data of a predetermined block according to the code length of the digitized data.
本発明のコンピュータプログラムは、入力される動画像の各フレームを任意のブロックサイズに分割し、ブロックごとに符号化を行う画像符号化方法をコンピュータに実行させるコンピュータプログラムであって、前記ブロックの各符号化要素を二値化して二値化データを生成する二値化工程と、前記二値化工程において生成された二値化データの符号長を前記二値化データに付加する符号長付加工程と、前記二値化データの符号長に応じて所定ブロックの画像データを適応的に挿入するデータ挿入工程とをコンピュータに実行させることを特徴とする。 A computer program according to the present invention is a computer program that causes a computer to execute an image encoding method for dividing each frame of an input moving image into arbitrary block sizes and performing encoding for each block. A binarization step for binarizing encoding elements to generate binarized data, and a code length adding step for adding the code length of the binarized data generated in the binarization step to the binarized data And a data insertion step of adaptively inserting a predetermined block of image data in accordance with the code length of the binarized data.
本発明によれば、入力される動画像の各フレームから生成した二値化データの符号長に応じて所定ブロックの画像データを適応的に挿入するようにしたので、所定ブロックの画像データをマクロブロック単位で挿入する構成を簡略化することができる。これにより、バッファを介して遅延させて算術符号化処理を行っても、I_PCM保存用のフレームメモリを装備しておく必要がなくなる。
また、本発明の他の特徴によれば、I_PCMモード判定をより最適化することができ、最終的に、無駄な符号量を削減することができる。
According to the present invention, the image data of the predetermined block is adaptively inserted according to the code length of the binarized data generated from each frame of the input moving image. It is possible to simplify the configuration for inserting in block units. As a result, even if arithmetic coding processing is performed with a delay through the buffer, it is not necessary to equip a frame memory for storing I_PCM.
In addition, according to another feature of the present invention, it is possible to further optimize the I_PCM mode determination, and ultimately to reduce a wasteful code amount.
(第1の実施形態)
以下、添付図面を参照しながら本発明の第1の実施形態を説明する。
図1は、本発明の第1の実施形態の画像符号化装置100の構成例を説明するブロックである。
図1において、101は画像メモリであり、符号化の対象となる動画像のフレーム、及び動き補償で使用する参照フレームを一時的に記憶する。102は動き検出部であり、マクロブロック単位での動きベクトルの検出を行う。103はデブロッキングフィルタであり、符号化対象画像と参照画像との差分データにおけるブロックノイズを低減するために使用される。
(First embodiment)
Hereinafter, a first embodiment of the present invention will be described with reference to the accompanying drawings.
FIG. 1 is a block diagram illustrating a configuration example of an
In FIG. 1,
104は動き補償部であり、動き検出部102で求められた動きベクトルに従って、符号化対象画像と参照画像との差分を求める。105は整数変換部であり、所定のマクロブロックサイズのデータを周波数空間に変換する。なお、直交変換の方式としては、MPEG-4規格までは離散コサイン変換が用いられていたが、デコーダにおいては、有限精度での演算により、逆変換時の変換誤差が蓄積されるという問題があった。このため、H.264規格においては、原理的に変換誤差の生じない整数変換が採用されている。
A
106は量子化部であり、整数変換部105における整数変換によって得られた係数データを量子化する。107は逆量子化部であり局所(ローカル)デコード画像のための逆量子化処理を行う。108は逆整数変換部であり、逆整数変換処理を行う。一方、量子化部106において量子化された係数データは二値化部110に送られる。二値化部110は、符号化対象ブロックの各符号化要素を二値化して二値化データを生成する。
A
111は符号量チェック部であり、マクロブロックごとに二値化済データの符号長を、予め設定された所定の値と大小比較する。比較する値については後述する。112は、バイトアライナであり、二値データに対して適宜余剰ビットを追加して二値データとしてバイトアライン処理を行う。付加するビット数については、以下の式により求められる。
付加ビット数=(二値化データ符号長)%8・・・(式2)
A code
Number of additional bits = (binary data code length)% 8 (Expression 2)
113は、ヘッダ/フッタ付加部であり、二値データ長及びI_PCM付加有無情報を二値化データに付加する符号長付加を行う。また、I_PCMデータの挿入の有無を示す属性情報を各ブロックに付加する属性情報付加を行う。115はI_PCMバッファであり、符号化処理の過程において、局所復号処理された1マクロブロック分のI_PCMデータを保存する。114はセレクタであり、ヘッダ/フッタ付加部113から出力されるヘッダ/フッタが付加された二値データに、I_PCMバッファ115に記憶されたI_PCMデータを適応的に挿入する動作を行う。116は二値バッファであり、図8で示した二値バッファ804のように、1フレーム分の二値データを保存する。
図3に、本実施形態の二値符号データ系列の一例を示す。
図3においてBLEN301はマクロブロック単位での二値符号長であり、BIN302は二値符号データである。F303はI_PCMフラグであり、I_PCMデータが二値データ後に挿入されているかどうかを示すためのものである。I_PCM304は1マクロブロック分の画素データが挿入されている。
FIG. 3 shows an example of the binary code data series of the present embodiment.
In FIG. 3,
図4に、詳細なデータフィールドを示す。
401及び402はBLENフィールドであり、16ビットでBIN長を示す。マクロブロックの符号長は、3200ビットに制限されている。このため、16ビット以内で十分に表記可能である。403はBINデータ、404はスタッフィングビットであり、前述した(式2)に従って、バイト単位で余剰なフィールドを埋める。本実施形態においては、二値化データに、余剰データを適宜付加して、所定ブロックごとの二値化データを少なくとも8ビット単位に整列させるデータ整列を行う。
FIG. 4 shows detailed data fields.
405は、I_PCMフラグであり、I_PCMデータが後続するときのみ'1'とする。図4の場合では、スタッフィングビットとして2ビット挿入することにより、I_PCMフィールド直前でのバイトアライメント処理を行っている。406はI_PCMデータであり、このマクロブロックにのみI_PCMデータが挿入されていることを示す。
図2に、本実施形態における二値化処理以後のエンコーダの動作を記す。
201は二値バッファであり、図1における二値バッファ116に相当する。この二値バッファ201から読み出された二値符号データは、ヘッダ/フッタ検出部(ヘッダ/フッタアナライザ)202に送られ、前段のヘッダ/フッタ付加部113で付加されたヘッダ/フッタ情報が解析される。
FIG. 2 shows the operation of the encoder after the binarization process in this embodiment.
ヘッダ/フッタ検出部202においては、まず、BLENが取得され、その値(二値符号長)に従って、二値符号の各シンタックスエレメントに対して、算術符号化部204において可変長符号化処理が行われる。また、本実施形態においては、ITU-T H.264規格、あるいはISO/IEC 14496-10 (MPEG-4 Advanced Video Coding)規格に準拠する符号化処理が行なわれる。算術符号化部204から出力される算術符号出力は、算術符号バッファ206に順次ストアされる。また、ヘッダ/フッタ検出部202の出力はI_PCM抽出部203に送られ、I_PCMが抽出される。
In the header /
205は、二値符号長をチェックする符号量チェッカであり、1マクロブロックの算術符号処理が終了した後に出力された総算術符号長のサイズが、3200ビット以上か否かをチェックする。このチェックの結果、総算術符号長のサイズが3200ビット以上であれば、第2のデータ選択手段として設けられているセレクタ207はI_PCM抽出部203の出力を選択する。そして、後続するI_PCMデータをそのまま最終符号出力とし、算術符号バッファ206の内容は廃棄される。また、この場合は、算術符号化部204の予測状態(入力に応じて順次適応的に学習された履歴情報のこと)は、すべてピクチャ単位での初期状態にリセットされる。
205 is a code amount checker for checking the binary code length, and checks whether the size of the total arithmetic code length output after the completion of the arithmetic code processing for one macroblock is 3200 bits or more. As a result of this check, if the size of the total arithmetic code length is 3200 bits or more, the
反対に、出力された総算術符号長のサイズが、3200ビット以下の場合は、セレクタ207は算術符号バッファ206の内容を最終出力として選択し、かつ後続するI_PCMフラグをチェックする。このチェックの結果、'1'が検出された場合には、後続するI_PCMデータを廃棄する。この場合は、I_PCMデータは実際に読み出されること無く、バッファのポインタを所定のバイト数(4:2:0で3072バイト)分だけ進めればよい。
On the other hand, when the size of the output total arithmetic code length is 3200 bits or less, the
前述した(式1)で示すごとくI_PCMのサイズは固定であるため、そのサイズを敢えて二値データ内に示す必要はない。また、ヘッダ/フッタはバイトアラインされているため、次マクロブロックのヘッダ位置も検索しやすい構造となっている。以上のようにして、セレクタ207によりにより選択されたデータが結合されて最終的な符号出力データが生成される。
Since the size of I_PCM is fixed as shown in (Equation 1) described above, it is not necessary to indicate the size in the binary data. Further, since the header / footer is byte-aligned, the header position of the next macroblock is easily searched. As described above, the data selected by the
以上の処理手順を、図5及び図6のフローチャートを参照しながら説明する。
図5は、二値符号化までの処理手順を説明するフローチャートである。
ステップS501で処理が開始されると、ステップS502においては二値化処理が行われる。次に、ステップS503に進み、ステップS502において二値化されたデータを二値バッファ116に記録する。次に、ステップS504において、ヘッダとして二値データ符号長(BLEN)を記録する。
The above processing procedure will be described with reference to the flowcharts of FIGS.
FIG. 5 is a flowchart for explaining the processing procedure up to binary encoding.
When processing is started in step S501, binarization processing is performed in step S502. In step S503, the data binarized in step S502 is recorded in the
次に、ステップS505において、二値データ符号長と、あらかじめ実験的に求められた所定の値(N)とを比較する符号長比較が行われる。実際には、所定の値Nは規格上の最大値である3200ビット、及び算術符号の符号化効率から算出される。定量的な評価により、二値符号を入力とした算術符号化の符号化効率は、70〜80%程度と測定されている。したがって、所定の値Nは、仮にマージンを+10%与えるとすれば、
N=3200/0.9≒3500ビット・・・(式3)
とすればよいことになる。
Next, in step S505, a code length comparison is performed to compare the binary data code length with a predetermined value (N) obtained experimentally in advance. Actually, the predetermined value N is calculated from the standard maximum value of 3200 bits and the coding efficiency of the arithmetic code. Through quantitative evaluation, the coding efficiency of arithmetic coding using a binary code as an input is measured to be about 70 to 80%. Therefore, if the predetermined value N gives a margin of + 10%,
N = 3200 / 0.9 ≒ 3500 bits (Formula 3)
It will be enough.
ステップS505の比較の結果、二値データサイズが所定の値N(例えば、規格上の最大値)よりも小さい場合には、ステップS506に進み、I_PCMフラグがクリアされる。また、ステップS505の比較の結果、二値データサイズが所定の値Nよりも大きい場合は、ステップS507に進み、I_PCMフラグがセットされる。その後、ステップS508に進み、I_PCMフラグがセットされたことに応じて、二値符号データの後ろにI_PCMが書き込まれる。 As a result of the comparison in step S505, if the binary data size is smaller than a predetermined value N (for example, the maximum value according to the standard), the process proceeds to step S506, and the I_PCM flag is cleared. If the binary data size is larger than the predetermined value N as a result of the comparison in step S505, the process proceeds to step S507, and the I_PCM flag is set. Thereafter, the process proceeds to step S508, and in accordance with the setting of the I_PCM flag, I_PCM is written after the binary code data.
ステップS506またはステップS508の処理が終了するとステップS509に進む。ステップS509においては、ピクチャ内で最終マクロブロック分まで処理を終了したか否かを判断する。この判断の結果、最終マクロブロックまで終了していない場合にはステップS502に戻って前述した処理を行う。また、ステップS509の判断の結果、最終マクロブロックまで終了した場合にはステップS510に進んでエンド処理を行う。 When the process of step S506 or step S508 ends, the process proceeds to step S509. In step S509, it is determined whether or not processing has been completed up to the last macroblock in the picture. If the result of this determination is that the process has not ended up to the final macroblock, the process returns to step S502 and the above-described processing is performed. If it is determined in step S509 that the processing has been completed up to the final macroblock, the process proceeds to step S510 to perform end processing.
次に、図6のフローチャートを参照しながら算術符号化以降の処理手順の一例を説明する。
ステップS601で処理が開始されると、次のステップS602で、二値符号データ長が読み出される。次に、ステップS603で各シンタックスエレメントに応じた算術符号化が1マクロブロック分行われる。
Next, an example of a processing procedure after arithmetic coding will be described with reference to the flowchart of FIG.
When the process is started in step S601, the binary code data length is read in the next step S602. Next, in step S603, arithmetic coding corresponding to each syntax element is performed for one macroblock.
次に、ステップS604において、1マクロブロック分の算術符号長が3200ビットよりも小さいか否かが比較される。この比較の結果、符号長が3200ビットを超過した場合は、ステップS606に進み、ステップS603において符号化された算術符号データが廃棄される。その後、ステップS608において、二値データに後続するI_PCMデータが最終的なビットストリームとして採用されて記録される。 Next, in step S604, it is compared whether or not the arithmetic code length for one macroblock is smaller than 3200 bits. As a result of the comparison, if the code length exceeds 3200 bits, the process proceeds to step S606, and the arithmetic code data encoded in step S603 is discarded. Thereafter, in step S608, the I_PCM data subsequent to the binary data is adopted and recorded as a final bit stream.
一方、ステップS604の比較の結果、符号長が3200ビット以下の場合は、ステップS605に進み、算術符号化された算術符号データが最終的にビットストリームとして採用されて記録される。次に、ステップS607において、I_PCMフラグの有無を検査し、画像データ挿入有を示す'1'がセットされている場合はステップS609に進み、二値符号データに後続したI_PCMデータは廃棄される。 On the other hand, as a result of the comparison in step S604, if the code length is 3200 bits or less, the process proceeds to step S605, where the arithmetically encoded arithmetic code data is finally adopted and recorded as a bit stream. Next, in step S607, the presence / absence of the I_PCM flag is checked. If “1” indicating that image data is inserted is set, the process proceeds to step S609, and the I_PCM data following the binary code data is discarded.
ステップS607の検証の結果、'1'がセットされていない場合はステップS610に進む。また、ステップS608またはステップS609の処理が終了した場合にもステップS610に進む。ステップS610においては、ピクチャ内で最終マクロブロック分まで処理を終了したか否かを判断する。この判断の結果、最終マクロブロックまで終了していない場合にはステップS602に戻って前述した処理を行う。また、ステップS610の判断の結果、最終マクロブロックまで終了した場合にはステップS611に進んでエンド処理を行う。 If “1” is not set as a result of the verification in step S607, the process proceeds to step S610. Also, when the process of step S608 or step S609 is completed, the process proceeds to step S610. In step S610, it is determined whether or not processing has been completed up to the last macroblock in the picture. If the result of this determination is that the process has not ended up to the final macroblock, the process returns to step S602 and the above-described processing is performed. If it is determined in step S610 that the processing has been completed up to the last macro block, the process proceeds to step S611 to perform end processing.
以上のような処理を行うことにより、CABAC処理について、フレーム単位での遅延を行って処理を行う場合においても、I_PCMモード処理を容易に実行することが可能になる。かつ、規格によるビット長制限に該当しないマクロブロックをI_PCMモードにし、余剰の符号を発生させてしまう不都合を防止することができる。 By performing the process as described above, the I_PCM mode process can be easily executed even when the CABAC process is performed with a delay in units of frames. In addition, it is possible to prevent the inconvenience of generating a surplus code by setting a macroblock that does not correspond to the bit length restriction by the standard to the I_PCM mode.
(第2の実施形態)
次に、図9を参照しながら本発明の第2の実施形態を説明する。
本実施形態では、図4に示した二値符号データと同じデータを使用して、別のフォーマットを形成した場合の例である。図9において、902及び903はBLENフィールドであり、16ビットでBIN長を示している。904はBINデータ、905はスタッフィングビットである。また、906はI_PCMデータであり、このマクロブロックにのみI_PCMデータが挿入されていることを示す。
(Second Embodiment)
Next, a second embodiment of the present invention will be described with reference to FIG.
The present embodiment is an example in which another format is formed using the same data as the binary code data shown in FIG. In FIG. 9,
このようなフォーマットにおいて、BLEN902、903の値は、実際には12ビット(<4095)で収まる。このため、本実施形態においてはBLENフィールド902のMSBをI_PCMフラグ901としている。このフォーマットにおいては、マクロブロック MB(n+1)においては、フッタの1ビットがなくなるためバイトアラインの必要性がなくなっている。このように、BLEN及びI_PCMフラグは、任意の配置で構成することが可能である。
In such a format, the values of
(本発明に係る他の実施形態)
前述した本発明の実施形態における画像符号化装置を構成する各手段は、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
(Other embodiments according to the present invention)
Each means constituting the image coding apparatus according to the above-described embodiment of the present invention can be realized by operating a program stored in a RAM or ROM of a computer. This program and a computer-readable recording medium recording the program are included in the present invention.
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。 In addition, the present invention can be implemented as, for example, a system, apparatus, method, program, storage medium, or the like. Specifically, the present invention may be applied to a system including a plurality of devices. The present invention may be applied to an apparatus composed of a single device.
なお、本発明は、前述した画像符号化方法における各工程を実行するソフトウェアのプログラム(実施形態では図5、図6に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接、あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。 In the present invention, a software program (in the embodiment, a program corresponding to the flowcharts shown in FIGS. 5 and 6) for executing each step in the above-described image encoding method is directly or remotely supplied to the system or apparatus. To do. And the case where it is achieved also by reading and executing the supplied program code by the computer of the system or apparatus is included.
したがって、本発明の機能処理をコンピュータで実現するために、コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。 Therefore, since the functions of the present invention are implemented by computer, the program code installed in the computer also implements the present invention. In other words, the present invention includes a computer program itself for realizing the functional processing of the present invention.
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。 In that case, as long as it has the function of a program, it may be in the form of object code, a program executed by an interpreter, script data supplied to the OS, and the like.
プログラムを供給するための記録媒体としては種々の記録媒体を使用することができる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。 Various recording media can be used as a recording medium for supplying the program. For example, floppy (registered trademark) disk, hard disk, optical disk, magneto-optical disk, MO, CD-ROM, CD-R, CD-RW, magnetic tape, nonvolatile memory card, ROM, DVD (DVD-ROM, DVD- R).
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。 As another program supply method, a browser on a client computer is used to connect to an Internet home page. It can also be supplied by downloading the computer program itself of the present invention or a compressed file including an automatic installation function from a homepage to a recording medium such as a hard disk.
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。 It can also be realized by dividing the program code constituting the program of the present invention into a plurality of files and downloading each file from a different homepage. That is, the present invention includes a WWW server that allows a plurality of users to download a program file for realizing the functional processing of the present invention on a computer.
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。 In addition, the program of the present invention is encrypted, stored in a storage medium such as a CD-ROM, distributed to users, and key information for decryption is downloaded from a homepage via the Internet to users who have cleared predetermined conditions. Let It is also possible to execute the encrypted program by using the key information and install the program on a computer.
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行うことによっても前述した実施形態の機能が実現され得る。 In addition to the functions of the above-described embodiments being realized by the computer executing the read program, the OS running on the computer may perform part or all of the actual processing. The functions of the above-described embodiments can be realized.
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。 Further, the program read from the recording medium is written in a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer. Thereafter, the CPU of the function expansion board or function expansion unit performs part or all of the actual processing based on the instructions of the program, and the functions of the above-described embodiments are realized by the processing.
100 画像符号化装置
101 画像メモリ
102 動き検出部
103 デブロッキングフィルタ
104 動き補償部
105 整数変換部
106 量子化部
107 逆量子化部
108 逆整数変換部
109 量子化ステップ制御部
110 二値化部
111 符号量チェック部
112 バイトアライナ
113 ヘッダ/フッタ付加部
114 セレクタ
115 I_PCMバッファ
116 二値バッファ
201 二値バッファ
202 ヘッダ/フッタ検出部
203 I_PCM検出部
204 算術符号化部
205 符号量チェッカ
206 算術符号バッファ
207 セレクタ
DESCRIPTION OF
Claims (9)
前記ブロックの各符号化要素を二値化して二値化データを生成する二値化手段と、
前記二値化手段によって生成された二値化データの符号長を前記二値化データに付加する符号長付加手段と、
前記二値化データの符号長に応じて所定ブロックの画像データを適応的に挿入するデータ挿入手段とを有することを特徴とする画像符号化装置。 An image encoding device that divides each frame of an input moving image into arbitrary block sizes and performs encoding for each block,
Binarization means for binarizing each coding element of the block to generate binarized data;
Code length adding means for adding the code length of the binarized data generated by the binarizing means to the binarized data;
An image coding apparatus comprising: data insertion means for adaptively inserting image data of a predetermined block according to the code length of the binarized data.
前記可変長符号化手段により可変長符号化された符号データの符号長を所定の値と比較する符号長比較手段とをさらに有し、
前記データ選択手段は、前記符号長比較手段の比較の結果、前記二値化データの符号長が予め設定された所定の値よりも大きい場合には、可変長符号化した符号データを廃棄し、前記所定ブロックの画像データを選択し、前記二値化データの符号長が予め設定された所定の値よりも小さい場合には、前記属性情報付加手段により付加された属性情報を検査し、前記属性情報が画像データ挿入有を示す場合に、前記挿入された所定ブロックの画像データを廃棄するとともに可変長符号化した符号データを選択して最終的な符号出力データとして出力することを特徴とする請求項4に記載の画像符号化装置。 Variable length encoding means for variable length encoding the binarized data output from the data insertion means;
Code length comparison means for comparing the code length of the code data variable length encoded by the variable length encoding means with a predetermined value;
The data selection means discards the variable-length encoded code data if the code length of the binarized data is larger than a predetermined value as a result of the comparison by the code length comparison means, When the image data of the predetermined block is selected and the code length of the binarized data is smaller than a predetermined value set in advance, the attribute information added by the attribute information adding means is inspected, and the attribute data When the information indicates that image data is inserted, the image data of the inserted predetermined block is discarded and code data subjected to variable length encoding is selected and output as final code output data. Item 5. The image encoding device according to Item 4.
前記データ挿入手段は、前記所定ブロックの画像データとして前記I_PCMバッファに保存されているI_PCMデータを挿入することを特徴とする請求項1〜5の何れか1項に記載の画像符号化装置。 An I_PCM buffer that stores image data for one macroblock locally decoded in the process of encoding each block as I_PCM data;
6. The image encoding device according to claim 1, wherein the data insertion unit inserts I_PCM data stored in the I_PCM buffer as image data of the predetermined block.
前記ブロックの各符号化要素を二値化して二値化データを生成する二値化工程と、
前記二値化工程において生成された二値化データの符号長を前記二値化データに付加する符号長付加工程と、
前記二値化データの符号長に応じて所定ブロックの画像データを適応的に挿入するデータ挿入工程とを有することを特徴とする画像符号化方法。 An image encoding method that divides each frame of an input moving image into arbitrary block sizes and performs encoding for each block,
A binarization step of binarizing each coding element of the block to generate binarized data;
A code length adding step of adding the code length of the binarized data generated in the binarizing step to the binarized data;
And a data insertion step of adaptively inserting image data of a predetermined block in accordance with the code length of the binarized data.
前記ブロックの各符号化要素を二値化して二値化データを生成する二値化工程と、
前記二値化工程において生成された二値化データの符号長を前記二値化データに付加する符号長付加工程と、
前記二値化データの符号長に応じて所定ブロックの画像データを適応的に挿入するデータ挿入工程とをコンピュータに実行させることを特徴とするコンピュータプログラム。 A computer program that causes a computer to execute an image encoding method that divides each frame of an input moving image into arbitrary block sizes and performs encoding for each block,
A binarization step of binarizing each coding element of the block to generate binarized data;
A code length adding step of adding the code length of the binarized data generated in the binarizing step to the binarized data;
A computer program causing a computer to execute a data insertion step of adaptively inserting image data of a predetermined block in accordance with the code length of the binarized data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009038418A JP2010193398A (en) | 2009-02-20 | 2009-02-20 | Image encoding device, and image encoding method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009038418A JP2010193398A (en) | 2009-02-20 | 2009-02-20 | Image encoding device, and image encoding method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010193398A true JP2010193398A (en) | 2010-09-02 |
Family
ID=42818925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009038418A Pending JP2010193398A (en) | 2009-02-20 | 2009-02-20 | Image encoding device, and image encoding method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010193398A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012120909A1 (en) * | 2011-03-09 | 2012-09-13 | パナソニック株式会社 | Video image decoding device and video image decoding method |
WO2012120908A1 (en) * | 2011-03-09 | 2012-09-13 | パナソニック株式会社 | Video image encoding device and video image encoding method |
WO2014002386A1 (en) * | 2012-06-26 | 2014-01-03 | 日本電気株式会社 | Video encoding device, video decoding device, video encoding method, video decoding method, and program |
KR20150014990A (en) * | 2010-11-26 | 2015-02-09 | 닛본 덴끼 가부시끼가이샤 | Video encoding device, video decoding device, video encoding method, video decoding method, and program |
JP2017135727A (en) * | 2017-03-03 | 2017-08-03 | ソニー株式会社 | Image processing device, method, program, and recording medium |
JP2017135728A (en) * | 2017-03-03 | 2017-08-03 | ソニー株式会社 | Image processing device, method, program, and recording medium |
CN107079192A (en) * | 2014-10-24 | 2017-08-18 | 英特尔公司 | Shown using on the active screen of compressed video data |
US10027987B2 (en) | 2011-01-11 | 2018-07-17 | Sony Corporation | Image processing apparatus and method |
-
2009
- 2009-02-20 JP JP2009038418A patent/JP2010193398A/en active Pending
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101671156B1 (en) | 2010-11-26 | 2016-10-31 | 닛본 덴끼 가부시끼가이샤 | Video encoding device, video decoding device, video encoding method, video decoding method, and program |
KR20150063594A (en) * | 2010-11-26 | 2015-06-09 | 닛본 덴끼 가부시끼가이샤 | Video encoding device, video decoding device, video encoding method, video decoding method, and program |
KR101629153B1 (en) | 2010-11-26 | 2016-06-09 | 닛본 덴끼 가부시끼가이샤 | Video encoding device, video decoding device, video encoding method, video decoding method, and program |
KR101616667B1 (en) | 2010-11-26 | 2016-04-28 | 닛본 덴끼 가부시끼가이샤 | Video decoding device, video decoding method, and recording medium |
KR20150014990A (en) * | 2010-11-26 | 2015-02-09 | 닛본 덴끼 가부시끼가이샤 | Video encoding device, video decoding device, video encoding method, video decoding method, and program |
KR101519488B1 (en) | 2010-11-26 | 2015-05-12 | 닛본 덴끼 가부시끼가이샤 | Video encoding device, video decoding device, video encoding method, video decoding method, and recording medium |
US10027987B2 (en) | 2011-01-11 | 2018-07-17 | Sony Corporation | Image processing apparatus and method |
US10979739B2 (en) | 2011-01-11 | 2021-04-13 | Velos Media, Llc | Image processing apparatus and method |
US10432976B2 (en) | 2011-01-11 | 2019-10-01 | Velos Media, Llc | Image processing apparatus and method |
JP2015146634A (en) * | 2011-03-09 | 2015-08-13 | パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America | Image encoding device and image encoding method |
US11303910B2 (en) | 2011-03-09 | 2022-04-12 | Panasonic Intellectual Property Corporation Of America | Device and method of video encoding with first and second encoding code |
JP2017028727A (en) * | 2011-03-09 | 2017-02-02 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | Image encoding device and image encoding method |
JPWO2012120908A1 (en) * | 2011-03-09 | 2014-07-17 | パナソニック株式会社 | Moving picture coding apparatus and moving picture coding method |
CN103416063B (en) * | 2011-03-09 | 2017-07-28 | 松下电器(美国)知识产权公司 | Moving image decoding apparatus and dynamic image decoding method |
JP2014033460A (en) * | 2011-03-09 | 2014-02-20 | Panasonic Corp | Moving image decoder |
US11706424B2 (en) | 2011-03-09 | 2023-07-18 | Panasonic Intellectual Property Corporation Of America | Device and method of video decoding with first and second decoding code |
US11849124B2 (en) | 2011-03-09 | 2023-12-19 | Panasonic Intellectual Property Corporation Of America | Device and method of video encoding with first and second encoding code |
WO2012120908A1 (en) * | 2011-03-09 | 2012-09-13 | パナソニック株式会社 | Video image encoding device and video image encoding method |
US11234005B2 (en) | 2011-03-09 | 2022-01-25 | Panasonic Intellectual Property Corporation Of America | Device and method of video decoding with first and second decoding code |
WO2012120909A1 (en) * | 2011-03-09 | 2012-09-13 | パナソニック株式会社 | Video image decoding device and video image decoding method |
US10757422B2 (en) | 2011-03-09 | 2020-08-25 | Panasonic Intellectual Property Corporation Of America | Device and method of video encoding with first and second encoding code |
US10587882B2 (en) | 2011-03-09 | 2020-03-10 | Panasonic Intellectual Property Corporation Of America | Device and method of video decoding with first and second decoding code |
CN103416063A (en) * | 2011-03-09 | 2013-11-27 | 松下电器产业株式会社 | Video image decoding device and video image decoding method |
KR101880325B1 (en) * | 2011-03-09 | 2018-07-19 | 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 | Video image encoding device |
KR20150021075A (en) * | 2012-06-26 | 2015-02-27 | 닛본 덴끼 가부시끼가이샤 | Video encoding device, video decoding device, video encoding method, video decoding method, and program |
JPWO2014002386A1 (en) * | 2012-06-26 | 2016-05-30 | 日本電気株式会社 | Video encoding apparatus, video decoding apparatus, video encoding method, video decoding method, and program |
WO2014002386A1 (en) * | 2012-06-26 | 2014-01-03 | 日本電気株式会社 | Video encoding device, video decoding device, video encoding method, video decoding method, and program |
KR101643839B1 (en) | 2012-06-26 | 2016-07-28 | 닛본 덴끼 가부시끼가이샤 | Video encoding device, video decoding device, video encoding method, video decoding method, and program |
US20150181213A1 (en) * | 2012-06-26 | 2015-06-25 | Nec Corporation | Video encoding device, video decoding device, video encoding method, video decoding method, and program |
CN107079192B (en) * | 2014-10-24 | 2020-02-07 | 英特尔公司 | Dynamic on-screen display using compressed video streams |
CN107079192A (en) * | 2014-10-24 | 2017-08-18 | 英特尔公司 | Shown using on the active screen of compressed video data |
JP2017135728A (en) * | 2017-03-03 | 2017-08-03 | ソニー株式会社 | Image processing device, method, program, and recording medium |
JP2017135727A (en) * | 2017-03-03 | 2017-08-03 | ソニー株式会社 | Image processing device, method, program, and recording medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101695681B1 (en) | Context-based adaptive binary arithmetic coding (cabac) video stream compliance | |
JP2010193398A (en) | Image encoding device, and image encoding method | |
US8194736B2 (en) | Video data compression with integrated lossy and lossless compression | |
KR101208233B1 (en) | Two step arithmetic decoding with conversion into an intermediate format | |
US20140286417A1 (en) | Data encoding and decoding | |
KR101360313B1 (en) | Arithmetic decoding method and device | |
JP4928176B2 (en) | Video encoding apparatus and video encoding method | |
US7933326B2 (en) | Encoded data modification device, modification method, and modification program | |
EP1119827A1 (en) | Embedding auxiliary data in an information signal | |
US7643689B2 (en) | Encoded data conversion method | |
TW201320757A (en) | Method for decoding picture in form of bit-stream | |
US20100195924A1 (en) | Method and apparatus for successively encoding/decoding image | |
JP2010130522A (en) | Moving image encoding device and moving image encoding method | |
US10536697B2 (en) | Method for re-encoding image and apparatus therefor | |
JP4642509B2 (en) | Apparatus for embedding confidential information in compressed image data and apparatus for encoding confidential data | |
JP4919213B2 (en) | Digital watermark insertion method and detection method | |
JP2005142898A (en) | Electronic watermark embedding system and drift compensation system | |
US8073270B2 (en) | Image decoding apparatus and method | |
JP5078852B2 (en) | Moving picture coding apparatus and moving picture coding method | |
KR20070032674A (en) | Compensation for Watermark Irregularities Caused by Moved Objects | |
CA2312138C (en) | System and method for inserting information in dct coefficient domain | |
US20120147972A1 (en) | Image decoding apparatus, image decoding method, image encoding apparatus, image encoding method, and program | |
JP2006108997A (en) | Method and device for processing information, program, and storage medium | |
US20190158841A1 (en) | Method for decoding a digital image, coding method, devices, terminal and associated computer programs | |
TWI384862B (en) | Image decoding apparatus and method using the same |