JP2007219438A - Code book selection method and code book selection device - Google Patents

Code book selection method and code book selection device Download PDF

Info

Publication number
JP2007219438A
JP2007219438A JP2006042913A JP2006042913A JP2007219438A JP 2007219438 A JP2007219438 A JP 2007219438A JP 2006042913 A JP2006042913 A JP 2006042913A JP 2006042913 A JP2006042913 A JP 2006042913A JP 2007219438 A JP2007219438 A JP 2007219438A
Authority
JP
Japan
Prior art keywords
value
accumulated value
code
code book
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006042913A
Other languages
Japanese (ja)
Other versions
JP4775026B2 (en
Inventor
Hitoshi Ishida
斉 石田
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2006042913A priority Critical patent/JP4775026B2/en
Publication of JP2007219438A publication Critical patent/JP2007219438A/en
Application granted granted Critical
Publication of JP4775026B2 publication Critical patent/JP4775026B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To select an optimum code book used for codes. <P>SOLUTION: The number of coded bits is stored in a bit number table specified by a code book number and a scale factor band number; a bit cost value is stored in accumulative value memory as an accumulative value; a value adding the bit cost value to the minimum accumulative value is stored in threshold value memory. When the accumulative value is larger than the threshold value, the accumulative value is stored in the accumulative value memory as a new accumulative value, and also a code book number for this minimum accumulative value is stored in a link table. Meanwhile, when the accumulative value is the threshold value or smaller, the last code book number is stored in the link table as a code book number for this time; and a value adding the accumulative value to the number of bits is updated as a new accumulative value. The optimum code book number is determined by referring to the link table and sequentially pursuing the code book number, with which the number of bits in the bit number table corresponds to the minimum number of bits, from a high order scale factor band number. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、符号本選択方法及び符号本選択装置に関し、例えば、AACの符号本の選択などに用いられ、量子化スペクトルを表現するための最小ビット数を探索する符号本選択方法及び符号本選択装置に関する。   The present invention relates to a code book selection method and a code book selection apparatus, and is used for, for example, selection of a code book of AAC, for example, and a code book selection method and code book selection for searching for the minimum number of bits for expressing a quantized spectrum. Relates to the device.

オーディオ信号の符号化方法は、現在までに非常に多くの方式が開発されている。特に最近では、それらの中でもISO/IECで国際標準化されたISO13818−7が認知され、高音質および高効率な符号化方法として評価されている。この符号化方法はAACと呼ばれている。   To date, a great number of audio signal encoding methods have been developed. Particularly recently, ISO 13818-7, which has been internationally standardized by ISO / IEC, has been recognized and evaluated as an encoding method with high sound quality and high efficiency. This encoding method is called AAC.

近年、AACはMPEG−4の標準規格にも採用され、ISO13818−7に対していくつかの拡張機能を有するMPEG4−AAC方式が定められている。   In recent years, AAC has also been adopted in the MPEG-4 standard, and the MPEG4-AAC system having some extended functions is defined for ISO 13818-7.

ここで、スケールファクタバンドを結合(マージ)してセクション化する方法としては、特許文献1が報告されている。以下、特許文献1について説明する。   Here, Patent Document 1 has been reported as a method of combining (merging) scale factor bands into sections. Hereinafter, Patent Document 1 will be described.

特許文献1に記載されている発明は、オーディオ信号の引き続くスケールファクタバンド(以下、SFBという)を、各々セクションと呼ばれる複数のグループにマージする方法であって、各SFBに対して符号化するための全ての可能なハフマン符号本を見つけ、最低のビットコストを持つハフマン符号本(最小符号本)を使用してフレームのスペクトル係数を表現するために必要な全ビットコストを計算しておき、同じ最小符号本を持つ、引き続くSFBを探索し、それらを一つのセクションとしてマージし、基準全ビットコストを全ビットコストに等しく設定し、マージされるべきセクションが符号本0または強度ステレオ符号化符号本を使用しないかどうかをチェックする。次いで、引き続くセクションの全ての対に渡って、一対だけ一時的にマージすることにより得られる新しい全ビットコストを計算し、そのうち、最低の新しい全ビットコストをもたらす、一対のセクションを見つけ、この最低の新しい全ビットコストが全ビットコストより小さければ、全ビットコストをこの新しい全ビットコストに等しく設定し直す。一方、もし全ビットコストが基準全ビットコストより低ければ(ビット節約)、一対のセクションを永久的にマージし、一対のセクションのマージングにより得られた新しいセクションとそれに隣接するセクションが、同じ最小符号本を持つかどうかをチェックする。新しいセクションとそれに隣接するセクションが同じ最小符号本を持てば、それらをマージして更に新しいセクションを形成する。全ビットコストを新しい基準全ビットコストとして設定し、何のビット節約ももたらさなくなるまで繰り返す。   The invention described in Patent Document 1 is a method for merging a scale factor band (hereinafter referred to as SFB) of an audio signal into a plurality of groups each called a section, and for encoding each SFB. Find all possible Huffman codebooks of, calculate the total bit cost required to represent the spectral coefficients of the frame using the Huffman codebook with the lowest bit cost (minimum code book), and the same Search for subsequent SFBs with the minimum codebook, merge them as one section, set the reference total bit cost equal to the total bitcost, and the section to be merged is codebook 0 or intensity stereo coded codebook Check whether to use. Then, over all pairs of subsequent sections, calculate the new total bit cost obtained by temporarily merging only one pair, of which the pair of sections that yields the lowest new total bit cost is found and this minimum If the new total bit cost is less than the total bit cost, reset the total bit cost equal to the new total bit cost. On the other hand, if the total bit cost is lower than the reference total bit cost (bit saving), the pair of sections is merged permanently, and the new section obtained by merging the pair of sections and the adjacent section have the same minimum code. Check if you have a book. If the new section and the adjacent section have the same minimum codebook, they are merged to form a new section. Set the total bit cost as the new reference total bit cost and repeat until no bit savings are provided.

このように、特許文献1には、SFBを結合(マージ)してセクション化する方法が記載されており、特に、同じ符号本を使用して表現することができるようにされている。
特開2001-188563号公報
As described above, Patent Document 1 describes a method of combining (merging) SFBs into sections, and in particular, can be expressed using the same code book.
JP 2001-188563 A

ところで、量子化スペクトルをハフマン符号化する過程においては、符号本の選択次第で総ビット数が変化する。つまり、最適な符号本を選択すれば、総ビット数は最小となるが、不適切な符号本を選択すると総ビット数が増加してしまう。   By the way, in the process of Huffman encoding the quantized spectrum, the total number of bits changes depending on the selection of the code book. That is, if the optimum code book is selected, the total number of bits is minimized, but if an inappropriate code book is selected, the total number of bits increases.

もし、符号本決定の方式において、単にSFB毎に最小ビットを与える符号本を選ぶだけであれば、セクション数が増加することでビットコストが発生してしまう。ビットの浪費はスペクトルの量子化幅にしわ寄せされ、この結果、量子化雑音が相対的に増加して音質を低下することになる。   If the code book determination method simply selects a code book that gives the minimum bit for each SFB, the number of sections increases, resulting in a bit cost. The waste of bits is reduced by the quantization width of the spectrum. As a result, the quantization noise is relatively increased and the sound quality is deteriorated.

従って、ビットコストを考慮した上で、全体としてビット数が最小となるよう符号本を選択しなければならない。   Therefore, the code book must be selected so that the number of bits is minimized as a whole in consideration of the bit cost.

これに対して、特許文献1に記載されている手法では、同じ符号本を使用して符号化のため使用する全ビット数を逐次的に減らすように構成されているものの、最小数(論理上の最小数)に収束するとは限らず音質が低下するといった問題があった。   In contrast, the technique described in Patent Document 1 is configured to sequentially reduce the total number of bits used for encoding using the same code book, but the minimum number (logically) There is a problem that the sound quality is not necessarily reduced.

そこで、全ビット数を最小数にして、量子化雑音が相対的に増加することを抑制し音質の低下を防止するための、最適な符号本を選択する手法の提供が望まれている。   Therefore, it is desired to provide a method for selecting an optimum code book in order to minimize the total number of bits, suppress a relative increase in quantization noise, and prevent deterioration in sound quality.

本発明は、上記に鑑みてなされたもので、その目的としては、符号化に用いる最適な符号本を選択することができる符号本選択方法及び符号本選択装置を提供することにある。   The present invention has been made in view of the above, and an object thereof is to provide a code book selection method and a code book selection apparatus capable of selecting an optimum code book used for encoding.

請求項1記載の発明は、上記課題を解決するため、各スケールファクタバンド毎に全ての符号本に対して符号化された結果のビット数を符号本番号とスケールファクタバンド番号で指定されるビット数テーブルに記憶し、ビットコスト値を累算値として累算値メモリに記憶して初期化するステップと、 前記累算値メモリからの累算値の最小値に前記ビットコスト値を加算した値を閾値として閾値メモリに記憶するステップと、前記累算値メモリからの累算値が前記閾値メモリからの閾値よりも大きい場合には、新たな累算値として累算値メモリに記憶するとともに、この最小の累算値に対する符号本番号をリンクテーブルに記憶し、一方、前記累算値が前記閾値以下の場合には、前記リンクテーブルからの前回の符号本番号を今回の符号本番号として前記リンクテーブルに記憶するステップと、前記ビット数テーブルからのビット数と前記累算値メモリからの累算値を加算した値を新たな累算値として更新するステップと、前記リンクテーブルを参照し、前記ビット数テーブルに記憶されたビット数が最小ビット数に対応する符号本番号を上位のスケールファクタバンド番号から順に追跡して最適な符号本番号を決定するステップとを有することを要旨とする。   In order to solve the above problem, the invention according to claim 1 is a bit in which the number of bits resulting from encoding for all code books for each scale factor band is designated by the code book number and the scale factor band number. A step of storing in the number table and storing the bit cost value as an accumulated value in the accumulated value memory for initialization, and a value obtained by adding the bit cost value to the minimum value of the accumulated value from the accumulated value memory In the threshold memory as a threshold value, and when the accumulated value from the accumulated value memory is larger than the threshold value from the threshold memory, the accumulated value is stored in the accumulated value memory as a new accumulated value; The code book number for this minimum accumulated value is stored in the link table. On the other hand, if the accumulated value is less than or equal to the threshold value, the previous code book number from the link table is stored as the current code book number. Storing in the link table as a signal, updating a value obtained by adding the number of bits from the bit number table and the accumulated value from the accumulated value memory as a new accumulated value, and the link table And referring to the code number corresponding to the minimum number of bits stored in the bit number table in order from the higher scale factor band number to determine the optimum code number. And

請求項2記載の発明は、上記課題を解決するため、各スケールファクタバンド毎に全ての符号本に対して符号化された結果のビット数を符号本番号とスケールファクタバンド番号で指定されるビット数テーブルに記憶し、ビットコスト値を累算値として累算値メモリに記憶して初期化する手段と、前記累算値メモリからの累算値の最小値に前記ビットコスト値を加算した値を閾値として閾値メモリに記憶する手段と、前記累算値メモリからの累算値が前記閾値メモリからの閾値よりも大きい場合には、新たな累算値として累算値メモリに記憶するとともに、この最小の累算値に対する符号本番号をリンクテーブルに記憶し、一方、前記累算値が前記閾値以下の場合には、前記リンクテーブルからの前回の符号本番号を今回の符号本番号として前記リンクテーブルに記憶する手段と、前記ビット数テーブルからのビット数と前記累算値メモリからの累算値を加算した値を新たな累算値として更新する手段と、前記リンクテーブルを参照し、前記ビット数テーブルに記憶されたビット数が最小ビット数に対応する符号本番号を上位のスケールファクタバンド番号から順に追跡して最適な符号本番号を決定する手段とを有することを要旨とする。   In order to solve the above problem, the invention according to claim 2 is a bit specified by the code number and the scale factor band number for the number of bits encoded for all code books for each scale factor band. Means for storing and initializing a bit cost value as an accumulated value in an accumulated value memory, and a value obtained by adding the bit cost value to the minimum accumulated value from the accumulated value memory; Is stored in the threshold value memory as a threshold value, and when the accumulated value from the accumulated value memory is larger than the threshold value from the threshold value memory, the accumulated value value is stored in the accumulated value memory as a new accumulated value; The code number for the minimum accumulated value is stored in the link table. On the other hand, if the accumulated value is less than or equal to the threshold value, the previous code number from the link table is set as the current code number. Means for storing in the link table, means for updating the value obtained by adding the bit number from the bit number table and the accumulated value from the accumulated value memory as a new accumulated value, and referring to the link table. And a means for determining an optimum code number by tracking the code number corresponding to the minimum number of bits in the bit number table in order from the higher scale factor band number. .

請求項3記載の発明は、上記課題を解決するため、各スケールファクタバンド毎に全ての符号本に対して符号化された結果を示すビット数を入力して符号本番号とスケールファクタバンド番号とで指定されるビット数テーブルに記憶する入力記憶手段と、ビットコスト値を各符号本番号に対応する累算値として累算値メモリに記憶して初期化する初期化手段と、前記累算値メモリから読み出した累算値の最小値に前記ビットコスト値を加算し、この加算結果値を閾値として閾値メモリに記憶する閾値算出手段と、前記累算値メモリから読み出した累算値と前記閾値メモリから読み出した閾値との大きさを比較し、この累算値が閾値よりも大きい場合には、新たな累算値として前記累算値メモリに記憶するとともに、この最小の累算値に対する符号本番号をリンクテーブルに記憶し、一方、この累算値が閾値以下の場合には、前記リンクテーブルに記憶した前回のスケールファクタバンド番号で指定される符号本番号を読み出し、この符号本番号を今回の符号本番号として前記リンクテーブルに記憶する累算値修正手段と、 前記ビット数テーブルからスケールファクタバンド番号での各符号本番号に対応するビット数を読み出し、前記累算値メモリから累算値を読み出し、各符号本番号に対応するビット数と累算値を加算し、この加算値を各符号本番号に対応する新たな累算値として更新する累算値更新手段と、前記リンクテーブルが完成するまで、前記閾値算出手段と前記累算値修正リンク決定手段とおよび前記累算値更新手段とを各スケールファクタバンド番号毎に順次に繰り返し実行させる繰り返し手段と、前記完成されたリンクテーブルを参照し、前記ビット数テーブルに記憶されたビット数が最小ビット数に対応する符号本番号を上位のスケールファクタバンド番号から順に追跡して最適な符号本番号を選択して決定する符号本番号決定手段とを有することを要旨とする。   In order to solve the above-mentioned problem, the invention described in claim 3 inputs the number of bits indicating the result of encoding for all the code books for each scale factor band, and enters the code number and the scale factor band number. Input storage means for storing in the bit number table specified by the above, initialization means for storing and initializing the bit cost value in the accumulated value memory as an accumulated value corresponding to each code number, and the accumulated value Threshold value calculation means for adding the bit cost value to the minimum value of the accumulated value read from the memory and storing the addition result value as a threshold value in the threshold value memory; the accumulated value read from the accumulated value memory and the threshold value Compared with the threshold value read from the memory, if this accumulated value is larger than the threshold value, it is stored in the accumulated value memory as a new accumulated value, and the minimum accumulated value is The code number is stored in the link table. On the other hand, if the accumulated value is less than or equal to the threshold value, the code number specified by the previous scale factor band number stored in the link table is read, and this code number Is stored in the link table as the current code book number, and the bit number corresponding to each code book number in the scale factor band number is read from the bit number table and accumulated from the accumulated value memory. Accumulated value update means for reading the calculated value, adding the number of bits corresponding to each code number and the accumulated value, and updating the added value as a new accumulated value corresponding to each code number, and the link Until the table is completed, the threshold value calculation means, the accumulated value correction link determination means, and the accumulated value update means are sequentially repeated for each scale factor band number. Referring to the completed link table and the repetition means to be executed, the code number corresponding to the minimum number of bits stored in the bit number table is traced in order from the higher scale factor band number in order and optimized. And a code number determination means for selecting and determining a code number.

本発明によれば、符号化に用いる最適な符号本を選択することができるので、符号化でのビット数が節約でき、量子化雑音を低減して音質向上を実現することができる。   According to the present invention, it is possible to select an optimum code book to be used for encoding, so that the number of bits in encoding can be saved, and quantization quality can be reduced to improve sound quality.

以下、本発明の実施の形態について図面を参照して説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

図1は、本発明に係る符号本選択装置に適応可能な一実施の形態となる符号化装置11の構成を示すブロック図、図2は、符号化装置11の量子化部15の構成を示すブロック図である。   FIG. 1 is a block diagram illustrating a configuration of an encoding device 11 according to an embodiment applicable to the code book selection device according to the present invention, and FIG. 2 illustrates a configuration of a quantization unit 15 of the encoding device 11. It is a block diagram.

図1において、符号化装置11を構成する時間−周波数変換部13と量子化部15およびビットストリーム生成部17は、ソフトウエア処理により実施しても良いし、DSP(Digital Signal Processor)にプログラム処理を実行させるようにしても良い。   In FIG. 1, the time-frequency conversion unit 13, the quantization unit 15, and the bit stream generation unit 17 constituting the encoding device 11 may be implemented by software processing or program processing in a DSP (Digital Signal Processor). May be executed.

図1において、sは符号化するオーディオ信号の時系列信号sである。時間−周波数変換部13は、入力される時系列信号sに対して変形離散コサイン変換(MDCT)してスペクトルfを出力する。量子化部15は、時間−周波数変換部13から出力されたスペクトルfを量子化して量子化スペクトルqを出力する。ビットストリーム生成部17は、量子化部15から出力された量子化スペクトルqから決められたシンタックスに従ってビットストリームbsを生成して出力する。   In FIG. 1, s is a time series signal s of an audio signal to be encoded. The time-frequency converter 13 performs a modified discrete cosine transform (MDCT) on the input time series signal s and outputs a spectrum f. The quantization unit 15 quantizes the spectrum f output from the time-frequency conversion unit 13 and outputs a quantized spectrum q. The bit stream generation unit 17 generates and outputs the bit stream bs according to the syntax determined from the quantized spectrum q output from the quantization unit 15.

なお、MPEG−2 AACやMPEG−4 AAC(以下、この2つのAACをまとめて単にAAC呼ぶ)のように、時間−周波数変換部13と量子化部15との間に、PNS(Perceptual Noise Shaping)符号化ツールや、IS(Intensity Stereo)符号化ツール等のスペクトル処理部を挿入しても良い。   In addition, like MPEG-2 AAC and MPEG-4 AAC (hereinafter, these two AACs are collectively referred to as AAC), a PNS (Perceptual Noise Shaping) is provided between the time-frequency conversion unit 13 and the quantization unit 15. ) A spectral processing unit such as an encoding tool or an IS (Intensity Stereo) encoding tool may be inserted.

量子化部15において、ヒトの聴覚特性を利用したオーディオ符号化では、量子化されたスペクトルをいくつかの帯域に分ける手法を用いてもよい。また、帯域ごとに量子化スペクトルをエントロピー符号化する過程が存在する。   In audio coding using human auditory characteristics in the quantizing unit 15, a method of dividing the quantized spectrum into several bands may be used. There is also a process for entropy encoding the quantized spectrum for each band.

例えば、AACでは、1024個の量子化スペクトルをサンプリング周波数によって40〜50の帯域に分割し、各帯域に属する量子化スペクトルに対して、ハフマン符号化を行う。(ただし上記数値例はロング窓の場合であり、ショート窓の場合は128個の量子化スペクトルを10〜15の帯域に分ける。)この帯域をスケールファクタバンド(以下SFBと呼ぶ)と呼ぶ。ハフマン符号本(コードブック)は複数あり、制約条件によって使用できる符号本と使用できない符号本があるが、SFB毎に複数の符号本の中からどれを使うか選択できる。   For example, in AAC, 1024 quantized spectra are divided into 40 to 50 bands according to the sampling frequency, and Huffman coding is performed on the quantized spectra belonging to each band. (However, the above numerical example is for a long window. In the case of a short window, 128 quantized spectra are divided into 10 to 15 bands.) This band is called a scale factor band (hereinafter referred to as SFB). There are a plurality of Huffman codebooks (codebooks), and there are codebooks that can be used and codebooks that cannot be used depending on the constraint conditions. For each SFB, it is possible to select which one to use.

選択された符号本の番号は別途符号化され、AACストリームに記述される。この時、隣り合ったSFB同士で同じ符号本番号を選択した場合は、それらをまとめて記述することができ、これをセクションデータと呼び、まとめる過程をセクション化と呼ぶ。セクションデータは、符号本番号の番号とその符号本を選択したSFBの範囲からなり、低域側から順に記述される。1つのセクションデータを記述するには、ロング窓の場合では9[bit ]、ショート窓の場合は7[bit ]が必要であり、以下、これをビットコストと呼ぶ。   The number of the selected code book is encoded separately and described in the AAC stream. At this time, if the same code number is selected between adjacent SFBs, they can be described together, and this is called section data, and the process of grouping is called sectioning. The section data is composed of a code book number and an SFB range in which the code book is selected, and is described in order from the low frequency side. In order to describe one section data, 9 [bit] is required in the case of a long window, and 7 [bit] is required in the case of a short window. This is hereinafter referred to as a bit cost.

次に、図2を参照して、量子化部15のブロック図について説明する。   Next, a block diagram of the quantization unit 15 will be described with reference to FIG.

量子化器21は、与えられたスペクトルfを対応するスケールファクタsfで除算し、量子化スペクトルq'を出力する。量子化スペクトルq’は、ビットコントロールによって再量子化が要求される場合があり、最終的に量子化部15から出力される量子化スペクトルqとは必ずしも一致しないのでq'と表記する。   The quantizer 21 divides the given spectrum f by the corresponding scale factor sf and outputs a quantized spectrum q ′. The quantized spectrum q ′ may be required to be re-quantized by bit control, and is not necessarily coincident with the quantized spectrum q that is finally output from the quantizing unit 15 and is therefore denoted as q ′.

ハフマン符号本候補決定部23は、各SFB毎にハフマン符号化を試みる符号本の候補を抽出して決定し、各SFB毎にどの符号本で符号化を試みるべきかが記述された出力cを出力する。ハフマン符号本は、SFB内の最大絶対値によって使用制限があるため、ハフマン符号本候補決定部23により符号本の候補を決定しておく必要がある。また、ハフマン符号本候補決定部23では、処理負荷を低減する目的で符号本の候補を減らすという役割も果たす。   The Huffman code book candidate determination unit 23 extracts and determines code book candidates to be subjected to Huffman coding for each SFB, and outputs an output c describing which code book should be tried for each SFB. Output. Since the Huffman code book is restricted in use by the maximum absolute value in the SFB, the code book candidate needs to be determined by the Huffman code book candidate determination unit 23. The Huffman code book candidate determination unit 23 also plays a role of reducing code book candidates for the purpose of reducing the processing load.

ハフマン符号化部27は、SFB毎にcに記述された全ての符号本に対してハフマン符号化を行い、結果のビット数btを出力する。ビット数btは表であり、あるSFB内の量子化スペクトルをある符号本でハフマン符号化すると何ビットになるかが記述される。   The Huffman coding unit 27 performs Huffman coding on all code books described in c for each SFB, and outputs the resulting number of bits bt. The number of bits bt is a table, and describes how many bits the quantization spectrum in a certain SFB becomes when Huffman coding is performed with a certain code book.

符号本決定部29は、ハフマン符号化部27から出力されるビット数btの表に記述された値に基づいて、各SFB毎にどの符号本番号を選択するかを決定する。決定した符号本hcbと符号化の結果の総ビット数bを出力する。総ビット数bには符号本切り替えによる前述のビットコストも含む。   The code book determination unit 29 determines which code book number to select for each SFB based on the value described in the table of the number of bits bt output from the Huffman coding unit 27. The determined code book hcb and the total bit number b of the encoding result are output. The total number of bits b includes the above-mentioned bit cost due to code book switching.

判定部31は、符号本決定部29から与えられる総ビット数bの範囲を判定しており、総ビット数bが予め定められた許容範囲内に収まっている場合には、許可信号jyをスイッチ33に与え、スイッチ33がオンされ量子化器21から出力される量子化スペクトルq’が量子化スペクトルqとしてスイッチ33を介してビットストリーム生成部17に出力される。同時に符号本hcbは副情報として、別途ストリームに記述される。しかし、判定部31は、符号本決定部29から与えられる総ビット数bがこの許容範囲外である場合には、不許可信号jnをスケールファクタ更新器35に与え再量子化を行わせる。   The determination unit 31 determines the range of the total number of bits b given from the code book determination unit 29. If the total number of bits b is within the predetermined allowable range, the determination unit 31 switches the permission signal ji. 33, the switch 33 is turned on, and the quantized spectrum q ′ output from the quantizer 21 is output as the quantized spectrum q to the bitstream generation unit 17 via the switch 33. At the same time, the code book hcb is separately described in the stream as sub information. However, when the total number of bits b given from the code book determination unit 29 is outside this allowable range, the determination unit 31 gives the non-permission signal jn to the scale factor updater 35 and performs requantization.

スケールファクタ更新器35は、前回の量子化に用いたスケールファクタsfを増減して更新した後に、量子化器21に更新されたスケールファクタsfを与えて再量子化を行わせる。   The scale factor updater 35 increases / decreases the scale factor sf used for the previous quantization, and then gives the updated scale factor sf to the quantizer 21 for requantization.

次に、図2を参照して、量子化部15の動作を説明する。   Next, the operation of the quantization unit 15 will be described with reference to FIG.

まず、時間−周波数変換部13から量子化器21へスペクトルfが出力されると、量子化器21では、与えられたスペクトルfを対応するスケールファクタsfで除算し、量子化スペクトルq'を出力する。次いで、ハフマン符号本候補決定部23では、各SFB毎にハフマン符号化を試みる符号本の候補を抽出して決定し、各SFB毎にどの符号本で符号化を試みるべきかが記述された出力cを出力する。次いで、ハフマン符号化部27では、SFB毎にcに記述された全ての符号本に対してハフマン符号化を行い、結果のビット数btを出力する。次いで、符号本決定部29では、ハフマン符号化部27から出力されるビット数btの表に記述された値に基づいて、各SFB毎にどの符号本番号を選択するかを決定する。決定した符号本hcbと符号化の結果の総ビット数bを出力する。   First, when the spectrum f is output from the time-frequency conversion unit 13 to the quantizer 21, the quantizer 21 divides the given spectrum f by the corresponding scale factor sf and outputs a quantized spectrum q ′. To do. Next, the Huffman code book candidate determination unit 23 extracts and determines code book candidates to be subjected to Huffman coding for each SFB, and outputs which code book should be tried for each SFB. c is output. Next, the Huffman coding unit 27 performs Huffman coding on all code books described in c for each SFB, and outputs the resulting number of bits bt. Next, the code book determination unit 29 determines which code book number is selected for each SFB based on the value described in the table of the number of bits bt output from the Huffman coding unit 27. The determined code book hcb and the total bit number b of the encoding result are output.

ここで、判定部31では、符号本決定部29から与えられる総ビット数bの範囲を判定しており、総ビット数bが予め定められた許容範囲内に収まっている場合には、許可信号jyをスイッチ33に与え、スイッチ33がオンされ量子化器21から出力される量子化スペクトルq’が量子化スペクトルqとしてスイッチ33を介してビットストリーム生成部17に出力される。同時に符号本hcbは副情報として、別途ストリームに記述される。   Here, the determination unit 31 determines the range of the total number of bits b given from the code book determination unit 29, and when the total number of bits b is within a predetermined allowable range, jy is given to the switch 33, the switch 33 is turned on, and the quantized spectrum q ′ output from the quantizer 21 is output to the bitstream generation unit 17 via the switch 33 as the quantized spectrum q. At the same time, the code book hcb is separately described in the stream as sub information.

一方、判定部31では、符号本決定部29から与えられる総ビット数bがこの許容範囲外である場合には、不許可信号jnをスケールファクタ更新器35に与え再量子化を行わせる。次いで、スケールファクタ更新器35では、前回の量子化に用いたスケールファクタsfを増減して更新した後に、量子化器21に更新されたスケールファクタsfを与えて再量子化を行わせる。   On the other hand, when the total number of bits b given from the code book determination unit 29 is outside the allowable range, the determination unit 31 gives the non-permission signal jn to the scale factor updater 35 and performs requantization. Next, the scale factor updater 35 increases / decreases the scale factor sf used for the previous quantization and then gives the updated scale factor sf to the quantizer 21 to perform requantization.

次に、図4に示す説明図を参照して、符号本決定部29での処理に用いるメモリ構成について説明する。なお、以下の説明において、符号本の数をn、SFBの数をmと表す。図4に示す説明図のように、符号本決定部29での処理を実現するにはビット数テーブル41、累算値メモリ43、閾値メモリ45、リンクテーブル47が必要となる。   Next, the memory configuration used for the processing in the code book determination unit 29 will be described with reference to the explanatory diagram shown in FIG. In the following description, the number of code books is represented as n, and the number of SFBs as m. As shown in the explanatory diagram of FIG. 4, the bit number table 41, the accumulated value memory 43, the threshold value memory 45, and the link table 47 are required to implement the processing in the code book determination unit 29.

ビット数テーブル41は、ハフマン符号化されたビット数btを符号本番号tとスケールファクタバンド番号iに対応して記憶するメモリであり、ハフマン符号化された結果を示すビット数btを入力して符号本番号tとスケールファクタバンド番号iで指定される位置に記憶する。   The bit number table 41 is a memory that stores the Huffman-encoded bit number bt in correspondence with the code number t and the scale factor band number i, and receives the bit number bt indicating the Huffman-encoded result. The code is stored in the position specified by the code number t and the scale factor band number i.

累算値メモリ43は、符号本の数と同じ大きさの記憶容量を有するメモリであり、これを a(1)〜a(n)で表す。a(t)[:ここで、tは1〜nのいずれかの整数]は、符号本番号tが選択されると仮定した場合のビット数を表わす。   The accumulated value memory 43 is a memory having a storage capacity as large as the number of code books, and is represented by a (1) to a (n). a (t) [where t is an integer from 1 to n] represents the number of bits when it is assumed that the code book number t is selected.

リンクテーブル47は、符号本番号を記憶するための2次元形式のメモリであり、最大で(符号本の数)×(SFBの数)の大きさの記憶容量が必要であり、これをk(1,1)〜k(m,n)で表す。k(i,t)[:ここで、iは1〜mのいずれかの整数、tは1〜nのいずれかの整数]は、i番目のSFBで符号本番号tを選択すると仮定した場合に、直前のi−1番目のSFBではどの符号本を選ぶのが最適(ビットが最小となる)かを示している。   The link table 47 is a two-dimensional memory for storing code number, and requires a maximum storage capacity of (number of code lines) × (number of SFBs). 1,1) to k (m, n). k (i, t) [where i is an integer from 1 to m and t is an integer from 1 to n] is assumed when the code number t is selected in the i-th SFB In the previous i-1 th SFB, it is shown which code book is optimal (bits are minimized).

次に、図3に示すフローチャート、図4〜図15に示す説明図を参照して、図2に示す符号本決定部29の動作を説明する。   Next, the operation of the code book determination unit 29 shown in FIG. 2 will be described with reference to the flowchart shown in FIG. 3 and the explanatory diagrams shown in FIGS.

まず、ステップS5では、符号本決定部29は、ハフマン符号化部27により各スケールファクタバンド毎に全ての符号本に対してハフマン符号化された結果を示すビット数btを入力して符号本番号tとスケールファクタバンド番号iで指定されるビット数テーブル41に記憶する。   First, in step S5, the code book determination unit 29 inputs the bit number bt indicating the result of Huffman coding for all the code books for each scale factor band by the Huffman coding unit 27 and inputs the code book number. It is stored in the bit number table 41 specified by t and the scale factor band number i.

次いで、ステップS10では、符号本決定部29は、累算値a(1)〜a(n)をビットコストで初期化する。すなわち、当該フレームがロング窓なら「9」、ショート窓なら「7」を累算値a(1)〜a(n)に代入する。以下、あるi(iは1〜mの整数)番目のSFBに関して、ステップS20〜S50に示す処理を繰り返す。   Next, in step S10, the code book determination unit 29 initializes the accumulated values a (1) to a (n) with a bit cost. That is, if the frame is a long window, “9” is assigned to the accumulated values a (1) to a (n). Hereinafter, with respect to a certain i (i is an integer of 1 to m) th SFB, the processes shown in steps S20 to S50 are repeated.

次いで、ステップS20では、符号本決定部29は、累算値a(1)〜a(n)の中で最小値を求め、求めた最小の累算置にビットコストを加算して、これを閾値thrとする。即ち、ロング窓の場合の閾値thrは、
thr=min{a(1),...,a(n)}+9 (数1)
ショート窓の場合の閾値thrは、
thr=min{a(1),...,a(n)}+7 (数2)
である。最小の累算値に対する符号本番号tをtminとする。なお、最小値tmin が複数ある場合、どれを選ぶかは本発明の本質ではない。
Next, in step S20, the code book determination unit 29 obtains the minimum value among the accumulated values a (1) to a (n), adds the bit cost to the obtained minimum accumulated position, and obtains this. The threshold value is thr. That is, the threshold thr in the case of a long window is
thr = min {a (1),. . . , A (n)} + 9 (Equation 1)
The threshold thr in the case of a short window is
thr = min {a (1),. . . , A (n)} + 7 (Equation 2)
It is. The code number t for the minimum accumulated value is tmin. Note that when there are a plurality of minimum values tmin, it is not the essence of the present invention which one is selected.

次いで、ステップS30では、符号本決定部29は、累算値a(1)〜a(n)と閾値thrとをそれぞれの大きさの大小を比較する。ここで、
(1) a(t)>thrの場合には、
a(t)=thrと修正し、k(i,t)=tminとしてリンクテーブル47に記憶する。すなわち、累算値a(t)が閾値thrよりも大きい場合には、閾値thrを新たな累算値として累算値メモリ43に代入して記憶する。同時に、最小の累算値a(t)に対する符号本番号tminの値を、SFB番号iと符号本番号tとがなすリンクk(i,t)=tminとし、リンクテーブル47に記憶する。
Next, in step S30, the code book determination unit 29 compares the accumulated values a (1) to a (n) with the threshold value thr in magnitude. here,
(1) If a (t)> thr,
It is corrected as a (t) = thr and stored in the link table 47 as k (i, t) = tmin. That is, when the accumulated value a (t) is larger than the threshold value thr, the threshold value thr is substituted into the accumulated value memory 43 and stored as a new accumulated value. At the same time, the code book number tmin with respect to the minimum accumulated value a (t) is stored in the link table 47 as the link k (i, t) = tmin formed by the SFB number i and the code book number t.

(2) a(t)≦thrの場合には、
累積値の修正は行わず、リンクテーブル47に記憶した前回のスケールファクタバンド番号(i−1)で指定される符号本番号を読み出し、この符号本番号tを今回の符号本番号k(i,t)としてリンクテーブル47に記憶する。
(2) When a (t) ≦ thr,
The code number designated by the previous scale factor band number (i-1) stored in the link table 47 is read without correcting the accumulated value, and the code number t is read as the current code number k (i, t) and stored in the link table 47.

ここで、上記(1)、(2)に場合分けをして処理する意味は、以下のとおりである。   Here, the meanings of the processing divided into cases (1) and (2) are as follows.

i番目のSFBで符号本番号tを使用すると仮定したとき、(1)の場合:a(t)>thrと判定されれば、直前の(i−1)番目のSFBでは符号本番号tminを選択し、i番目のSFBで符号本番号tを選択した方が、ビットコストを考慮しても全体のビット数が少なくなることを示す。   Assuming that the code number t is used in the i-th SFB, in the case of (1): If it is determined that a (t)> thr, the code number tmin is set in the immediately preceding (i-1) -th SFB. This indicates that the number of bits is smaller when the code number t is selected in the i-th SFB even if the bit cost is considered.

一方、(2)の場合:a(t)≦thrと判定されれば、直前の(i−1)番目のSFBから符号本を変えずに符号本番号tを使用した方がビットコストが発生しないだけ、全体のビット数が節約できることを示している。   On the other hand, in the case of (2): if it is determined that a (t) ≦ thr, it is more costly to use the code number t without changing the code number from the immediately preceding (i−1) th SFB. Not only does it show that the overall number of bits can be saved.

したがって、i=0のときは、意味を持たず(:直前のSFBが無いから)リンクテーブルn値は、便宜的なものに過ぎない。   Therefore, when i = 0, the link table n value has no meaning (because there is no immediately preceding SFB) and is merely convenient.

次いで、ステップS40では、符号本決定部29は、累算値a(t)に、ビット数bt(i,t)を加算する。ビット数btは、図2に示すハフマン符号化部27の出力であり、i番目のSFBを符号本tでエンコードした場合のビット数がbt(i,t)で与えられる。   Next, in step S40, the code book determining unit 29 adds the bit number bt (i, t) to the accumulated value a (t). The number of bits bt is the output of the Huffman encoder 27 shown in FIG. 2, and the number of bits when the i-th SFB is encoded with the code book t is given by bt (i, t).

なお、ハフマン符号本候補決定部23により、選択され得ない符号本に関しては、便宜的に「∞」が代入されているものと仮定するが、実際には、十分大きな値を入れておくか、if文などの条件分岐を用いる。   It is assumed that “∞” is assigned for the sake of convenience for code books that cannot be selected by the Huffman code book candidate determination unit 23. Use conditional branches such as if statements.

次いで、ステップS50では、符号本決定部29は、全てのSFBについて処理が終了したかどうか判断する。すなわち、i番目のSFBがエンコードすべき最後のSFBならば、つまりi=mの場合には終了処理を行うためにステップS60へ進む。   Next, in step S50, the code book determination unit 29 determines whether the processing has been completed for all SFBs. That is, if the i-th SFB is the last SFB to be encoded, that is, if i = m, the process proceeds to step S60 in order to perform end processing.

そうでなければ、ステップS55に進み、符号本決定部29は、「i」を「i+1」に更新し、次のi+1番目のSFBに関して処理を実行するため、ステップS20に戻る。すなわち、リンクテーブル47が完成するまで、ステップS20〜S40を各スケールファクタバンド番号i毎に順次に繰り返し実行させる。   Otherwise, the process proceeds to step S55, and the code book determination unit 29 updates “i” to “i + 1” and returns to step S20 to execute the process for the next i + 1-th SFB. That is, until the link table 47 is completed, Steps S20 to S40 are repeatedly executed sequentially for each scale factor band number i.

最後に、ステップS60では、符号本決定部29は、累算値メモリ43に記憶されている累算値a(1)〜a(n)から最小値を求め、これが出力の最小ビットbとなる。また、最小ビットbとなる符号本番号をtmin 、つまりa(tmin)=bとする。この時点で終端m番目のSFBに対する符号本番号をtminと決定し、最小ビット数となる1から(m−1)までのSFB番号に対応する符号本番号をリンクテーブル47を上位のSFB番号から逆に追跡することにより、順次に決定する。この処理を数式で書き表せば、
hcb(m)=tmin (数3)
hcb(i)=k(i+1,hcb(i+1)) (数4)
となる。ただしhcb(i)はi番目のSFBの符号本番号である。
Finally, in step S60, the code book determination unit 29 obtains the minimum value from the accumulated values a (1) to a (n) stored in the accumulated value memory 43, and this becomes the minimum bit b of the output. . In addition, the code number which becomes the minimum bit b is tmin, that is, a (tmin) = b. At this time, the code book number for the m-th terminal SFB is determined to be tmin, and the code book number corresponding to the SFB numbers from 1 to (m−1) which is the minimum number of bits is stored in the link table 47 from the higher SFB number. On the contrary, it is determined sequentially by tracing. If you write this process as a formula,
hcb (m) = tmin (Equation 3)
hcb (i) = k (i + 1, hcb (i + 1)) (Equation 4)
It becomes. Here, hcb (i) is the code number of the i-th SFB.

すなわち、完成されたリンクテーブル47を参照し、ビット数テーブル41に記憶されたビット数が最小ビット数に対応する符号本番号を上位のSFB番号から順に追跡して最適な符号本番号を選択して決定する。   That is, referring to the completed link table 47, the code number corresponding to the minimum number of bits stored in the bit number table 41 is traced in order from the higher SFB number to select the optimum code number. To decide.

次に、図3に示すフローチャートのそれぞれのステップによる処理についてその具体例を参照しながら説明する。   Next, processing in each step of the flowchart shown in FIG. 3 will be described with reference to specific examples.

なお、符号本は、「0」から「11」までの12冊とし、SFBは「0」から「11」までの12バンドと仮定する。   The code book is assumed to be 12 books from “0” to “11”, and the SFB is assumed to be 12 bands from “0” to “11”.

まず、ステップS5では、符号本決定部29は、ハフマン符号化部27により各スケールファクタバンド毎に全ての符号本に対してハフマン符号化された結果を示すビット数btを入力して符号本番号tとスケールファクタバンド番号iで指定されるビット数テーブル41に記憶する。   First, in step S5, the code book determination unit 29 inputs the bit number bt indicating the result of Huffman coding for all the code books for each scale factor band by the Huffman coding unit 27 and inputs the code book number. It is stored in the bit number table 41 specified by t and the scale factor band number i.

また、それぞれのハフマン符号化の結果のビット数は、図4に示す表「ビット数」のように与えられているものとする。この表において「∞」の記号は、ハフマン符号本候補決定部23により選択され得ない符号本番号を示しており、実際には、十分大きな値を入れておくか、if文などの条件分岐を用いる。   The number of bits resulting from each Huffman coding is given as shown in the table “number of bits” shown in FIG. In this table, the symbol “∞” indicates a code number that cannot be selected by the Huffman code book candidate determination unit 23. In practice, a sufficiently large value is entered or a conditional branch such as an “if” statement is executed. Use.

次いで、ステップS10では、累算値a(1)〜a(n)を初期化する。当該フレームはショート窓と仮定し、ビットコストを「7」とし、図5に示すように、ビットコスト「7」を累算値a(1)〜a(n)のそれぞれの値として累算値メモリ43に記憶して初期化する。   Next, in step S10, the accumulated values a (1) to a (n) are initialized. Assuming that the frame is a short window, the bit cost is “7”, and as shown in FIG. 5, the bit cost “7” is an accumulated value with each of accumulated values a (1) to a (n). It is stored in the memory 43 and initialized.

次いで、ステップS20では、累算値a(1)〜a(n)の最小値にビットコスト「7」を加算し、閾値を求める。この場合、図6に示すように、累算値a(1)〜a(n)は全て同じ値の「7」であるので、累算値が最小値となる符号本番号からtmin=0を選択し、閾値を「14」(=7+7)とする。   Next, in step S20, the bit cost “7” is added to the minimum value of the accumulated values a (1) to a (n) to obtain a threshold value. In this case, as shown in FIG. 6, since the accumulated values a (1) to a (n) are all the same value “7”, tmin = 0 is set from the code number where the accumulated value is the minimum value. The threshold is set to “14” (= 7 + 7).

次いで、ステップS30では、累算値a(1)〜a(n)と閾値thrとの大きさの大小を比較する。図7に示すように、この場合、閾値thr=14を超えている累算値はないので、累算値の修正は行わない。また、SFBの番号i=0に対する符号本番号t=0〜11のリンクをk(i,t)=tとしてリンクテーブル47に記憶する。   Next, in step S30, the magnitudes of the accumulated values a (1) to a (n) and the threshold value thr are compared. As shown in FIG. 7, in this case, since there is no accumulated value exceeding the threshold value thr = 14, the accumulated value is not corrected. Further, the link of the code number t = 0 to 11 for the SFB number i = 0 is stored in the link table 47 as k (i, t) = t.

次いで、ステップS40では、図7に示す累算値に、図8に示す当該SFBのビット数(図中のA)を加算し、この加算結果を累算値として累算値メモリ43に記憶して更新する。   Next, in step S40, the number of bits of the SFB shown in FIG. 8 (A in the figure) is added to the accumulated value shown in FIG. 7, and the addition result is stored in the accumulated value memory 43 as an accumulated value. Update.

次いで、ステップS50では、全てのSFBに関する処理が終了していないので、ステップS55へ進み、次の「i+1」番目のSFBへと処理を移し、上述した処理を繰り返す。   Next, in step S50, since the processing related to all the SFBs has not been completed, the process proceeds to step S55, the process is moved to the next “i + 1” -th SFB, and the above-described processes are repeated.

ここで、ステップS20では、図9に示すように、累算値の最小値「23」にビットコスト「7」を加算し、閾値「30」を求める。累算値が最小値となる符号本番号からtmin=10が選択され、閾値を「30」とし閾値メモリ45に記憶する。   Here, in step S20, as shown in FIG. 9, the bit cost “7” is added to the minimum value “23” of the accumulated value to obtain the threshold value “30”. Tmin = 10 is selected from the code number where the accumulated value becomes the minimum value, and the threshold value is set to “30” and stored in the threshold value memory 45.

次いで、ステップS30では、符号本番号t=0〜6に対応する累算値a(1)〜a(7)がそれぞれ「∞」となり閾値thr=「30」を超えているので、図10に示すように、それらの累算値a(1)〜a(7)を修正し、リンク元をtmin=10とする。それ以外は、累算値の修正は行わず、自分自身からのk(i,t)=tとしてリンクテーブル47に記憶する。   Next, in step S30, the accumulated values a (1) to a (7) corresponding to the code number t = 0 to 6 are “∞” and exceed the threshold value thr = “30”. As shown, the accumulated values a (1) to a (7) are corrected so that the link source is tmin = 10. Otherwise, the accumulated value is not corrected and stored in the link table 47 as k (i, t) = t from itself.

次いで、ステップS40では、図11に示すように、累算値に当該SFBのビット数(図中のB)を加算し、この加算値を累算値として累算値メモリ43に記憶して更新する。   Next, in step S40, as shown in FIG. 11, the number of bits of the SFB (B in the figure) is added to the accumulated value, and this added value is stored as an accumulated value in the accumulated value memory 43 and updated. To do.

次いで、ステップS50では、全てのSFBに関する処理が終了していないので、ステップS55へ進み、次の「i+1」番目のSFBへと処理を移し、上述した処理を繰り返す。   Next, in step S50, since the processing related to all the SFBs has not been completed, the process proceeds to step S55, the process is moved to the next “i + 1” -th SFB, and the above-described processes are repeated.

同様に、ステップS20では、図12に示すように、累算値の最小値「36」にビットコスト「7」を加算し、閾値「43」を求める。累算値が最小値となる符号本番号からtmin=10が選択され、閾値を「43」とし閾値メモリ45に記憶する。   Similarly, in step S20, as shown in FIG. 12, the bit cost “7” is added to the minimum value “36” of the accumulated value to obtain the threshold value “43”. Tmin = 10 is selected from the code number with the minimum accumulated value, and the threshold value is set to “43” and stored in the threshold value memory 45.

次いで、ステップS30では、図13に示すように、符号本番号0〜7、および9に対応する累算値a(1)〜a(7),a(9)が閾値「43」を超えているので、それらを修正し、リンクテーブル47にtminを記憶する。それ以外は修正は行わず、自分自身からのk(i,t)=tとしてリンクテーブル47に記憶する。   Next, in step S30, as shown in FIG. 13, the accumulated values a (1) to a (7) and a (9) corresponding to the code numbers 0 to 7 and 9 exceed the threshold “43”. Therefore, they are corrected and tmin is stored in the link table 47. Otherwise, no correction is made, and k (i, t) = t from itself is stored in the link table 47.

次いで、ステップS40では、図14に示すように、累算値に当該SFBのビット数(図中のC)を加算し、この加算結果を累算値として累算値メモリ43に記憶して更新する。   Next, in step S40, as shown in FIG. 14, the number of bits of the SFB (C in the figure) is added to the accumulated value, and the addition result is stored in the accumulated value memory 43 as an accumulated value and updated. To do.

次いで、ステップS50で、全てのSFBが終了したかどうか判断する。全てのSFBに関する処理が終了していないので、ステップS55へ進み、次の「i+1」番目のSFBへと処理を移する。以下、同様に上述したステップS20〜S40の処理を繰り返す。   Next, in step S50, it is determined whether all SFBs have been completed. Since the processes related to all SFBs have not been completed, the process proceeds to step S55, and the process moves to the next “i + 1” -th SFB. Thereafter, the processes of steps S20 to S40 described above are similarly repeated.

ステップS50で、全てのSFBが終了したと判断した場合には、ステップS60に進む。ステップS60では、このとき、終端(i=11)のSFBまで累算したところで、図15に示すように、累算値の最小値を求める。この場合、tmin=0であり、終端の符号本番号は0と決まる。   If it is determined in step S50 that all SFBs have been completed, the process proceeds to step S60. In step S60, at this time, when the SFB is accumulated up to the terminal (i = 11) SFB, the minimum value of the accumulated value is obtained as shown in FIG. In this case, tmin = 0 and the code number at the end is determined to be 0.

それ以外の符号本番号hcb(i)は、数5に従って、
hcb(i)=k(i+1,hcb(i+1)) (数5)
となる。
The other code number hcb (i) is in accordance with Equation 5,
hcb (i) = k (i + 1, hcb (i + 1)) (Equation 5)
It becomes.

最小ビット数となる1から(m−1)までのSFB番号に対応する符号本番号をリンクテーブル47を上位のSFB番号から逆に追跡することで求める。すなわち、i=11からi=0に向かって順次、番号iを代入し、図15に示す完成されたリンクテーブル47から符号本番号を選択する。すなわち、完成されたリンクテーブル47を参照し、ビット数テーブル41に記憶されたビット数が最小ビット数に対応する符号本番号を上位のSFB番号から順に追跡して最適な符号本番号を選択して決定する。   The code book number corresponding to the SFB numbers from 1 to (m−1), which is the minimum number of bits, is obtained by tracing the link table 47 backward from the upper SFB number. That is, the number i is sequentially substituted from i = 11 to i = 0, and the code book number is selected from the completed link table 47 shown in FIG. That is, referring to the completed link table 47, the code number corresponding to the minimum number of bits stored in the bit number table 41 is traced in order from the higher SFB number to select the optimum code number. To decide.

結果として、図15に示すように、最適な符号本番号の選択は、低域側から高域側に向かって順に、「8」、「8」、「8」、「8」、「8」、「8」、「6」、「6」、「6」、「6」、「0」、「0」となり、符号化後のビット数は218[bit]となる。ここで、例えば初めの「8 8 8 8 8 8」がセッション1を示し、次の「6 6 6 6」がセッション2を示し、最後の「0 0」がセッション3を示す。   As a result, as shown in FIG. 15, selection of the optimum code number is “8”, “8”, “8”, “8”, “8” in order from the low frequency side to the high frequency side. , “8”, “6”, “6”, “6”, “6”, “0”, “0”, and the number of bits after encoding is 218 [bits]. Here, for example, the first “8 8 8 8 8 8” indicates session 1, the next “6 6 6 6” indicates session 2, and the last “0 0” indicates session 3.

本発明の方法に従ってハフマン符号本を選択すれば、与えられたスペクトルを最小のビット数で表現することが可能である。スペクトルのハフマン符号化でビットが節約できると、量子化幅をより狭くすることが可能となり、量子化雑音の低減等の音質向上が実現できる。   If a Huffman code book is selected according to the method of the present invention, a given spectrum can be expressed with a minimum number of bits. If bits can be saved by Huffman coding of the spectrum, the quantization width can be made narrower, and sound quality improvement such as reduction of quantization noise can be realized.

なお、本発明の一実施の形態においては、AACのPNS符号化ツールやIS符号化ツールを使用した場合は説明していないが、PNS符号化ツールやIS符号化ツールを使用したことを示す仮想的な符号本番号(13〜15)を追加すれば同じく適用することができる。   In the embodiment of the present invention, a case where an AAC PNS encoding tool or an IS encoding tool is used is not described, but a hypothesis indicating that a PNS encoding tool or an IS encoding tool is used is used. The same can be applied by adding a typical code number (13 to 15).

つまり、本発明においては、選択され得る全ての符号本に対してハフマン符号化後のビット数が与えられることを前提としており、本発明は、ビット数を示す表の中から最適な符号本番号を選択することを特徴としている。   That is, in the present invention, it is assumed that the number of bits after Huffman coding is given to all codebooks that can be selected, and the present invention provides the optimum codebook number from the table indicating the number of bits. It is characterized by selecting.

なお、本実施の形態においては、ハフマン符号化によりオーディオ信号を符号化していたが、本発明は、ハフマン符号化に限定するものではなく、他の符号化方法にも適応することができる。   In the present embodiment, the audio signal is encoded by Huffman encoding. However, the present invention is not limited to Huffman encoding, and can be applied to other encoding methods.

本発明に係る符号本選択装置に適応可能な一実施の形態となる符号化装置11の構成を示すブロック図である。It is a block diagram which shows the structure of the encoding apparatus 11 used as one Embodiment applicable to the code book selection apparatus based on this invention. 符号化装置11の量子化部15の構成を示すブロック図である。3 is a block diagram illustrating a configuration of a quantization unit 15 of the encoding device 11. FIG. 符号本決定部29の動作を説明するための図である。6 is a diagram for explaining an operation of a code book determination unit 29. FIG. 符号本決定部29での処理に用いるメモリの構成について説明するための図である。5 is a diagram for explaining a configuration of a memory used for processing in a code book determination unit 29. FIG. ステップS10での動作を説明するための図である。It is a figure for demonstrating the operation | movement in step S10. ステップS20での動作を説明するための図である。It is a figure for demonstrating the operation | movement in step S20. ステップS30での動作を説明するための図である。It is a figure for demonstrating the operation | movement in step S30. ステップS40での動作を説明するための図である。It is a figure for demonstrating the operation | movement in step S40. ステップS20での動作を説明するための図である。It is a figure for demonstrating the operation | movement in step S20. ステップS30での動作を説明するための図である。It is a figure for demonstrating the operation | movement in step S30. ステップS40での動作を説明するための図である。It is a figure for demonstrating the operation | movement in step S40. ステップS20での動作を説明するための図である。It is a figure for demonstrating the operation | movement in step S20. ステップS30での動作を説明するための図である。It is a figure for demonstrating the operation | movement in step S30. ステップS40での動作を説明するための図である。It is a figure for demonstrating the operation | movement in step S40. ステップS60での動作を説明するための図である。It is a figure for demonstrating the operation | movement in step S60.

符号の説明Explanation of symbols

11…符号化装置、11a…CPU、11b…メモリ11b、13…時間−周波数変換部、15…量子化部、17…ビットストリーム生成部、21…量子化器、23…ハフマン符号本候補決定部、27…ハフマン符号化部、29…符号本決定部、31…判定部、33…スイッチ、35…スケールファクタ更新器、41…ビット数テーブル、43…累算値メモリ、45…閾値メモリ、47…リンクテーブル
DESCRIPTION OF SYMBOLS 11 ... Coding apparatus, 11a ... CPU, 11b ... Memory 11b, 13 ... Time-frequency conversion part, 15 ... Quantization part, 17 ... Bit stream generation part, 21 ... Quantizer, 23 ... Huffman code book candidate determination part , 27 ... Huffman encoding unit, 29 ... Code book determination unit, 31 ... Determination unit, 33 ... Switch, 35 ... Scale factor updater, 41 ... Bit number table, 43 ... Accumulated value memory, 45 ... Threshold memory, 47 ... Link table

Claims (3)

各スケールファクタバンド毎に全ての符号本に対して符号化された結果のビット数を符号本番号とスケールファクタバンド番号で指定されるビット数テーブルに記憶し、ビットコスト値を累算値として累算値メモリに記憶して初期化するステップと、
前記累算値メモリからの累算値の最小値に前記ビットコスト値を加算した値を閾値として閾値メモリに記憶するステップと、
前記累算値メモリからの累算値が前記閾値メモリからの閾値よりも大きい場合には、新たな累算値として累算値メモリに記憶するとともに、この最小の累算値に対する符号本番号をリンクテーブルに記憶し、一方、前記累算値が前記閾値以下の場合には、前記リンクテーブルからの前回の符号本番号を今回の符号本番号として前記リンクテーブルに記憶するステップと、
前記ビット数テーブルからのビット数と前記累算値メモリからの累算値を加算した値を新たな累算値として更新するステップと、
前記リンクテーブルを参照し、前記ビット数テーブルに記憶されたビット数が最小ビット数に対応する符号本番号を上位のスケールファクタバンド番号から順に追跡して最適な符号本番号を決定するステップと
を有することを特徴とする符号本選択方法。
The number of bits resulting from encoding for all code books for each scale factor band is stored in the bit number table specified by the code book number and the scale factor band number, and the bit cost value is accumulated as an accumulated value. Storing and initializing in arithmetic memory;
Storing the value obtained by adding the bit cost value to the minimum value of the accumulated value from the accumulated value memory as a threshold value in the threshold memory;
If the accumulated value from the accumulated value memory is larger than the threshold value from the threshold memory, the accumulated value is stored in the accumulated value memory as a new accumulated value, and the code number for this minimum accumulated value is also stored. Storing in the link table, on the other hand, if the accumulated value is less than or equal to the threshold, storing the previous code book number from the link table as the current code book number in the link table;
Updating a value obtained by adding the bit number from the bit number table and the accumulated value from the accumulated value memory as a new accumulated value;
Referring to the link table, and determining the optimum code number by tracking the code number corresponding to the minimum number of bits stored in the bit number table in order from the higher scale factor band number; A code book selection method comprising:
各スケールファクタバンド毎に全ての符号本に対して符号化された結果のビット数を符号本番号とスケールファクタバンド番号で指定されるビット数テーブルに記憶し、ビットコスト値を累算値として累算値メモリに記憶して初期化する手段と、
前記累算値メモリからの累算値の最小値に前記ビットコスト値を加算した値を閾値として閾値メモリに記憶する手段と、
前記累算値メモリからの累算値が前記閾値メモリからの閾値よりも大きい場合には、新たな累算値として累算値メモリに記憶するとともに、この最小の累算値に対する符号本番号をリンクテーブルに記憶し、一方、前記累算値が前記閾値以下の場合には、前記リンクテーブルからの前回の符号本番号を今回の符号本番号として前記リンクテーブルに記憶する手段と、
前記ビット数テーブルからのビット数と前記累算値メモリからの累算値を加算した値を新たな累算値として更新する手段と、
前記リンクテーブルを参照し、前記ビット数テーブルに記憶されたビット数が最小ビット数に対応する符号本番号を上位のスケールファクタバンド番号から順に追跡して最適な符号本番号を決定する手段と
を有することを特徴とする符号本選択装置。
The number of bits resulting from encoding for all code books for each scale factor band is stored in the bit number table specified by the code book number and the scale factor band number, and the bit cost value is accumulated as an accumulated value. Means for storing and initializing in arithmetic memory;
Means for storing in the threshold memory a value obtained by adding the bit cost value to the minimum value of the accumulated value from the accumulated value memory;
If the accumulated value from the accumulated value memory is larger than the threshold value from the threshold memory, the accumulated value is stored in the accumulated value memory as a new accumulated value, and the code number for this minimum accumulated value is also stored. Means for storing in the link table, on the other hand, if the accumulated value is less than or equal to the threshold, storing the previous code book number from the link table as the current code book number in the link table;
Means for updating a value obtained by adding the bit number from the bit number table and the accumulated value from the accumulated value memory as a new accumulated value;
Means for referring to the link table and determining the optimum code number by tracking the code number corresponding to the minimum number of bits stored in the bit number table in order from the higher scale factor band number; A code book selection device comprising:
各スケールファクタバンド毎に全ての符号本に対して符号化された結果を示すビット数を入力して符号本番号とスケールファクタバンド番号とで指定されるビット数テーブルに記憶する入力記憶手段と、
ビットコスト値を各符号本番号に対応する累算値として累算値メモリに記憶して初期化する初期化手段と、
前記累算値メモリから読み出した累算値の最小値に前記ビットコスト値を加算し、この加算結果値を閾値として閾値メモリに記憶する閾値算出手段と、
前記累算値メモリから読み出した累算値と前記閾値メモリから読み出した閾値との大きさを比較し、この累算値が閾値よりも大きい場合には、新たな累算値として前記累算値メモリに記憶するとともに、この最小の累算値に対する符号本番号をリンクテーブルに記憶し、一方、この累算値が閾値以下の場合には、前記リンクテーブルに記憶した前回のスケールファクタバンド番号で指定される符号本番号を読み出し、この符号本番号を今回の符号本番号として前記リンクテーブルに記憶する累算値修正手段と、
前記ビット数テーブルからスケールファクタバンド番号での各符号本番号に対応するビット数を読み出し、前記累算値メモリから累算値を読み出し、各符号本番号に対応するビット数と累算値を加算し、この加算値を各符号本番号に対応する新たな累算値として更新する累算値更新手段と、
前記リンクテーブルが完成するまで、前記閾値算出手段と前記累算値修正リンク決定手段とおよび前記累算値更新手段とを各スケールファクタバンド番号毎に順次に繰り返し実行させる繰り返し手段と、
前記完成されたリンクテーブルを参照し、前記ビット数テーブルに記憶されたビット数が最小ビット数に対応する符号本番号を上位のスケールファクタバンド番号から順に追跡して最適な符号本番号を選択して決定する符号本番号決定手段と
を有することを特徴とする符号本選択装置。
Input storage means for inputting the number of bits indicating the result of encoding for all the code books for each scale factor band and storing it in a bit number table designated by the code book number and the scale factor band number;
Initialization means for storing and initializing the bit cost value in the accumulated value memory as an accumulated value corresponding to each code number;
A threshold value calculating means for adding the bit cost value to the minimum value of the accumulated value read from the accumulated value memory and storing the addition result value as a threshold value in the threshold memory;
The accumulated value read from the accumulated value memory is compared with the threshold value read from the threshold memory, and when the accumulated value is larger than the threshold value, the accumulated value is set as a new accumulated value. The code number for the minimum accumulated value is stored in the link table as well as stored in the memory. On the other hand, if the accumulated value is less than or equal to the threshold value, the previous scale factor band number stored in the link table Accumulated value correction means for reading the designated code book number and storing this code book number as the current code book number in the link table;
Read the number of bits corresponding to each code number in the scale factor band number from the bit number table, read the accumulated value from the accumulated value memory, and add the number of bits and the accumulated value corresponding to each code number An accumulated value updating means for updating the added value as a new accumulated value corresponding to each code number;
Repeating means for repeatedly executing the threshold value calculating means, the accumulated value correction link determining means, and the accumulated value updating means sequentially for each scale factor band number until the link table is completed,
By referring to the completed link table, the code number corresponding to the minimum number of bits stored in the bit number table is traced in order from the higher scale factor band number, and the optimum code number is selected. A code book number selecting means for determining the code book number.
JP2006042913A 2006-02-20 2006-02-20 Code book selection method and code book selection device Active JP4775026B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006042913A JP4775026B2 (en) 2006-02-20 2006-02-20 Code book selection method and code book selection device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006042913A JP4775026B2 (en) 2006-02-20 2006-02-20 Code book selection method and code book selection device

Publications (2)

Publication Number Publication Date
JP2007219438A true JP2007219438A (en) 2007-08-30
JP4775026B2 JP4775026B2 (en) 2011-09-21

Family

ID=38496765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006042913A Active JP4775026B2 (en) 2006-02-20 2006-02-20 Code book selection method and code book selection device

Country Status (1)

Country Link
JP (1) JP4775026B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0535292A (en) * 1991-07-26 1993-02-12 Fujitsu Ltd Dynamic programming collating device
JP2001007707A (en) * 1999-04-20 2001-01-12 Matsushita Electric Ind Co Ltd Encoding device
JP2001188563A (en) * 2000-01-05 2001-07-10 Matsushita Electric Ind Co Ltd Effective sectioning method for audio coding
JP2003233397A (en) * 2002-02-12 2003-08-22 Victor Co Of Japan Ltd Device, program, and data transmission device for audio encoding
JP2007510170A (en) * 2003-09-29 2007-04-19 ソニー エレクトロニクス インク Fast codebook selection method in audio coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0535292A (en) * 1991-07-26 1993-02-12 Fujitsu Ltd Dynamic programming collating device
JP2001007707A (en) * 1999-04-20 2001-01-12 Matsushita Electric Ind Co Ltd Encoding device
JP2001188563A (en) * 2000-01-05 2001-07-10 Matsushita Electric Ind Co Ltd Effective sectioning method for audio coding
JP2003233397A (en) * 2002-02-12 2003-08-22 Victor Co Of Japan Ltd Device, program, and data transmission device for audio encoding
JP2007510170A (en) * 2003-09-29 2007-04-19 ソニー エレクトロニクス インク Fast codebook selection method in audio coding

Also Published As

Publication number Publication date
JP4775026B2 (en) 2011-09-21

Similar Documents

Publication Publication Date Title
JP5085543B2 (en) Selective use of multiple entropy models in adaptive coding and decoding
US7684981B2 (en) Prediction of spectral coefficients in waveform coding and decoding
US7693709B2 (en) Reordering coefficients for waveform coding or decoding
KR101419151B1 (en) Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a region-dependent arithmetic coding mapping rule
JP4792257B2 (en) Adaptive arithmetic decoding method and adaptive arithmetic decoding apparatus
KR100904605B1 (en) Audio coding apparatus, audio decoding apparatus, audio coding method and audio decoding method
KR20080049116A (en) Audio coding
ES2628127T3 (en) Advanced quantifier
JPWO2007132750A1 (en) LSP vector quantization apparatus, LSP vector inverse quantization apparatus, and methods thereof
JP2019124947A (en) Coding and decoding of spectral peak positions
JP4750366B2 (en) Trellis path determination method in block-limited TCQ, and line spectrum frequency coefficient quantization method and apparatus adopting trellis path determination method in TCQ in speech coding system
KR20020075592A (en) LSF quantization for wideband speech coder
US20100274556A1 (en) Vector quantizer, vector inverse quantizer, and methods therefor
KR20080092770A (en) The quantizer and method of lsf coefficient in wide-band speech coder using trellis coded quantization algorithm
JP4775026B2 (en) Code book selection method and code book selection device
KR20130112869A (en) Quantization device and quantization method
JP4273062B2 (en) Encoding method, encoding apparatus, decoding method, and decoding apparatus
JPH11219196A (en) Speech synthesizing method
KR101868252B1 (en) Audio signal encoder
JP4563881B2 (en) Audio encoding apparatus and program
JP2007017659A (en) Audio encoding method and device
JPH07134600A (en) Device for encoding voice and device for decoding voice
Wernik et al. Application of an adaptive Golomb block code using asymmetric inter-channel dependencies
KR100926366B1 (en) Method of determining codebook, Method and Device of encoding audio signal
JP2006126592A (en) Voice coding device and method, and voice decoding device and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110427

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110613

R150 Certificate of patent or registration of utility model

Ref document number: 4775026

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3