(57)【特許請求の範囲】
【請求項１】
デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファと、
整数部として符号化する信号の振幅の範囲を決めるシフト量決定部と、
前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割部と、
整数信号を符号化する整数信号符号化部と、
誤差信号を符号化する誤差信号符号化部と、
前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合部と、
を備える信号符号化装置であって、
前記シフト量決定部は、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）のすべてのビットが０の場合には、シフト量を前記シフト量候補にｎを加えた数とするものであること、
を特徴とする信号符号化装置。
【請求項２】
デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファと、
整数部として符号化する信号の振幅の範囲を決めるシフト量決定部と、
前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割部と、
整数信号を符号化する整数信号符号化部と、
誤差信号を符号化する誤差信号符号化部と、
前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合部と、
を備える信号符号化装置であって、
前記シフト量決定部は、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）の各ビットプレーン（同一フレーム内の各サンプル値列の同じ桁を示すビット。以下同じ。）で、１があらかじめ定めた割合以下の場合または０があらかじめ定めた割合以上の場合には、シフト量を前記シフト量候補にｎを加えた数とするものであること、
を特徴とする信号符号化装置。
【請求項３】
デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファと、
整数部として符号化する信号の振幅の範囲を決めるシフト量決定部と、
前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割部と、
整数信号を符号化する整数信号符号化部と、
誤差信号を符号化する誤差信号符号化部と、
前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合部と、
を備える信号符号化装置であって、
前記シフト量決定部は、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）の全ビット中で、１があらかじめ定めた割合以下の場合または０があらかじめ定めた割合以上の場合には、シフト量を前記シフト量候補にｎを加えた数とするものであること、
を特徴とする信号符号化装置。
【請求項４】
デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファと、
整数部として符号化する信号の振幅の範囲を決めるシフト量決定部と、
前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割部と、
整数信号を符号化する整数信号符号化部と、
誤差信号を符号化する誤差信号符号化部と、
前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合部と、
を備える信号符号化装置であって、
前記シフト量決定部は、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めたシフト量から１つずつシフト量を増やしながら、当該シフト量にしたがった符号化を行った場合の符号量を計算し、前のシフト量での符号量よりも符号量が増えた場合には、１つ前のシフト量を当該フレームのシフト量とするものであること、
を特徴とする信号符号化装置。
【請求項５】
デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファと、
整数部として符号化する信号の振幅の範囲を決めるシフト量決定部と、
前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割部と、
整数信号を符号化する整数信号符号化部と、
誤差信号を符号化する誤差信号符号化部と、
前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合部と、
を備える信号符号化装置であって、
前記シフト量決定部は、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）の全ビット中の１の比率を、ｎを１から１つずつ増やしながら計算し、１の比率が１つ前の計算での１の比率よりも増えるｎを求め、シフト量を前記シフト量候
補にｎ−１を加えた数とするものであること、
を特徴とする信号符号化装置。
【請求項６】
デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファと、
整数部として符号化する信号の振幅の範囲を決めるシフト量決定部と、
前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割部と、
整数信号を符号化する整数信号符号化部と、
誤差信号を符号化する誤差信号符号化部と、
前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合部と、
を備える信号符号化装置であって、
前記シフト量決定部は、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）の全ビット中の０の比率を、ｎを１から１つずつ増やしながら計算し、０の比率が１つ前の計算での０の比率よりも減るｎを求め、シフト量を前記シフト量候補にｎ−１を加えた数とするものであること、
を特徴とする信号符号化装置。
【請求項７】
デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファと、
整数部として符号化する信号の振幅の範囲を決めるシフト量決定部と、
前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割部と、
整数信号を符号化する整数信号符号化部と、
誤差信号を符号化する誤差信号符号化部と、
前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合部と、
を備える信号符号化装置であって、
前記シフト量決定部は、
少なくとも１つの過去のフレームのシフト量をフレームシフト量保持バッファに記録しておき、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）のすべてのビットが０の場合には、前記シフト量候補にｎを加えた数をシフト量候補とし、
前記シフト量候補と前記フレームシフト量保持バッファに記録されたシフト量を用いて、あらかじめ定めた基準にしたがって、現フレームのシフト量を決定するものであること、
を特徴とする信号符号化装置。
【請求項８】
デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファと、
整数部として符号化する信号の振幅の範囲を決めるシフト量決定部と、
前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割部と、
整数信号を符号化する整数信号符号化部と、
誤差信号を符号化する誤差信号符号化部と、
前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合部と、
を有する信号符号化装置であって、
前記シフト量決定部は、
少なくとも１つの過去のフレームのシフト量をフレームシフト量保持バッファに記録しておき、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）の各ビットプレーンで、１があらかじめ定めた割合以下の場合または０があらかじめ定めた割合以上の場合には、前記シフト量候補にｎを加えた数をシフト量候補とし、
前記シフト量候補と前記フレームシフト量保持バッファに記録されたシフト量を用いて、あらかじめ定めた基準にしたがって、現フレームのシフト量を決定するものであること、
を特徴とする信号符号化装置。
【請求項９】
デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファと、
整数部として符号化する信号の振幅の範囲を決めるシフト量決定部と、
前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割部と、
整数信号を符号化する整数信号符号化部と、
誤差信号を符号化する誤差信号符号化部と、
前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合部と、
を有する信号符号化装置であって、
前記シフト量決定部は、
少なくとも１つの過去のフレームのシフト量をフレームシフト量保持バッファに記録しておき、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）の全ビット中で、１があらかじめ定めた割合以下の場合または０があらかじめ定めた割合以上の場合には、前記シフト量候補にｎを加えた数をシフト量候補とし、
前記シフト量候補と前記フレームシフト量保持バッファに記録されたシフト量を用いて、あらかじめ定めた基準にしたがって、現フレームのシフト量を決定するものであること、
を特徴とする信号符号化装置。
【請求項１０】
デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファと、
整数部として符号化する信号の振幅の範囲を決めるシフト量決定部と、
前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割部と、
整数信号を符号化する整数信号符号化部と、
誤差信号を符号化する誤差信号符号化部と、
前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合部と、
を有する信号符号化装置であって、
前記シフト量決定部は、
少なくとも１つの過去のフレームのシフト量をフレームシフト量保持バッファに記録しておき、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めたシフト量から１つずつシフト量を増やしながら、当該シフト量にしたがった符号化を行った場合の符号量を計算し、前のシフト量での符号量よりも符号量が増えた場合には、１つ前のシフト量を当該フレームのシフト量候補とし、
前記シフト量候補と前記フレームシフト量保持バッファに記録されたシフト量を用いて、あらかじめ定めた基準にしたがって、現フレームのシフト量を決定するものであること、
を特徴とする信号符号化装置。
【請求項１１】
デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファと、
整数部として符号化する信号の振幅の範囲を決めるシフト量決定部と、
前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割部と、
整数信号を符号化する整数信号符号化部と、
誤差信号を符号化する誤差信号符号化部と、
前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合部と、
を有する信号符号化装置であって、
前記シフト量決定部は、
少なくとも１つの過去のフレームのシフト量をフレームシフト量保持バッファに記録しておき、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）の全ビット中の１の比率を、ｎを１から１つずつ増やしながら計算し、１の比率が１つ前の計算での１の比率よりも増えるｎを求め、シフト量を前記シフト量候補にｎ−１を加えた数とし、
前記シフト量候補と前記フレームシフト量保持バッファに記録されたシフト量を用いて、あらかじめ定めた基準にしたがって、現フレームのシフト量を決定するものであること、
を特徴とする信号符号化装置。
【請求項１２】
デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファと、
整数部として符号化する信号の振幅の範囲を決めるシフト量決定部と、
前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割部と、
整数信号を符号化する整数信号符号化部と、
誤差信号を符号化する誤差信号符号化部と、
前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合部と、
を有する信号符号化装置であって、
前記シフト量決定部は、
少なくとも１つの過去のフレームのシフト量をフレームシフト量保持バッファに記録しておき、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）の全ビット中の０の比率を、ｎを１から１つずつ増やしながら計算し、０の比率が１つの前の計算での０の比率よりも減るｎを求め、シフト量を前記シフト量候補にｎ−１を加えた数とし、
前記シフト量候補と前記フレームシフト量保持バッファに記録されたシフト量を用いて、あらかじめ定めた基準にしたがって、現フレームのシフト量を決定するものであること、
を特徴とする信号符号化装置。
【請求項１３】
フレームバッファで、デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファステップと、
シフト量決定部で、整数部として符号化する信号の振幅の範囲を決めるシフト量決定ステップと、
分割部で、前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割ステップと、
整数信号符号化部で、整数信号を符号化する整数信号符号化ステップと、
誤差信号符号化部で、誤差信号を符号化する誤差信号符号化ステップと、
統合部で、前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合ステップと、
を有する信号符号化方法であって、
前記シフト量決定ステップが、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）のすべてのビットが０の場合には、シフト量を前記シフト量候補にｎを加えた数とすること、
を特徴とする信号符号化方法。
【請求項１４】
フレームバッファで、デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファステップと、
シフト量決定部で、整数部として符号化する信号の振幅の範囲を決めるシフト量決定ステップと、
分割部で、前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割ステップと、
整数信号符号化部で、整数信号を符号化する整数信号符号化ステップと、
誤差信号符号化部で、誤差信号を符号化する誤差信号符号化ステップと、
統合部で、前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合ステップと、
を有する信号符号化方法であって、
前記シフト量決定ステップが、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）の各ビットプレーンで、１があらかじめ定めた割合以下の場合または０があらかじめ定めた割合以上の場合には、シフト量を前記シフト量候補にｎを加えた数とすること、
を特徴とする信号符号化方法。
【請求項１５】
フレームバッファで、デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファステップと、
シフト量決定部で、整数部として符号化する信号の振幅の範囲を決めるシフト量決定ステップと、
分割部で、前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割ステップと、
整数信号符号化部で、整数信号を符号化する整数信号符号化ステップと、
誤差信号符号化部で、誤差信号を符号化する誤差信号符号化ステップと、
統合部で、前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合ステップと、
を有する信号符号化方法であって、
前記シフト量決定ステップが、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）の全ビット中で、１があらかじめ定めた割合以下の場合または０があらかじめ定めた割合以上の場合には、シフト量を前記シフト量候補にｎを加えた数とすること、
を特徴とする信号符号化方法。
【請求項１６】
フレームバッファで、デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファステップと、
シフト量決定部で、整数部として符号化する信号の振幅の範囲を決めるシフト量決定ステップと、
分割部で、前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割ステップと、
整数信号符号化部で、整数信号を符号化する整数信号符号化ステップと、
誤差信号符号化部で、誤差信号を符号化する誤差信号符号化ステップと、
統合部で、前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合ステップと、
を有する信号符号化方法であって、
前記シフト量決定ステップが、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めたシフト量から１つずつシフト量を増やしながら、当該シフト量にしたがった符号化を行った場合の符号量を計算し、前のシフト量での符号量よりも符号量が増えた場合には、１つ前のシフト量を当該フレームのシフト量とすること、
を特徴とする信号符号化方法。
【請求項１７】
フレームバッファで、デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファステップと、
シフト量決定部で、整数部として符号化する信号の振幅の範囲を決めるシフト量決定ステップと、
分割部で、前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割ステップと、
整数信号符号化部で、整数信号を符号化する整数信号符号化ステップと、
誤差信号符号化部で、誤差信号を符号化する誤差信号符号化ステップと、
統合部で、前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合ステップと、
を有する信号符号化方法であって、
前記シフト量決定ステップが、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）の全ビット中の１の比率を、ｎを１から１つずつ増やしながら計算し、前記１の前のシフト量での比率よりも増えるｎを求め、シフト量を前記シフト量候補にｎ−１を加えた数とすること、
を特徴とする信号符号化方法。
【請求項１８】
フレームバッファで、デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファステップと、
シフト量決定部で、整数部として符号化する信号の振幅の範囲を決めるシフト量決定ステップと、
分割部で、前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割ステップと、
整数信号符号化部で、整数信号を符号化する整数信号符号化ステップと、
誤差信号符号化部で、誤差信号を符号化する誤差信号符号化ステップと、
統合部で、前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合ステップと、
を有する信号符号化方法であって、
前記シフト量決定ステップが、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）の全ビット中の０の比率を、ｎを１から１つずつ増やしながら計算し、前記１の前のシフト量での比率よりも減るｎを求め、シフト量を前記シフト量候補にｎ−１を加えた数とすること、
を特徴とする信号符号化方法。
【請求項１９】
フレームバッファで、デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファステップと、
シフト量決定部で、整数部として符号化する信号の振幅の範囲を決めるシフト量決定ステップと、
分割部で、前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割ステップと、
整数信号符号化部で、整数信号を符号化する整数信号符号化ステップと、
誤差信号符号化部で、誤差信号を符号化する誤差信号符号化ステップと、
統合部で、前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合ステップと、
を有する信号符号化方法であって、
前記シフト量決定ステップが、
少なくとも１つの過去のフレームのシフト量をフレームシフト量保持バッファに記録しておき、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）のすべてのビットが０の場合には、前記シフト量候補にｎを加えた数をシフト量候補とし、
前記シフト量候補と前記フレームシフト量保持バッファに記録されたシフト量を用いて、あらかじめ定めた基準にしたがって、現フレームのシフト量を決定すること、
を特徴とする信号符号化方法。
【請求項２０】
フレームバッファで、デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファステップと、
シフト量決定部で、整数部として符号化する信号の振幅の範囲を決めるシフト量決定ステップと、
分割部で、前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割ステップと、
整数信号符号化部で、整数信号を符号化する整数信号符号化ステップと、
誤差信号符号化部で、誤差信号を符号化する誤差信号符号化ステップと、
統合部で、前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合ステップと、
を有する信号符号化方法であって、
前記シフト量決定ステップが、
少なくとも１つの過去のフレームのシフト量をフレームシフト量保持バッファに記録しておき、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）の各ビットプレーンで、１があらかじめ定めた割合以下の場合または０があらかじめ定めた割合以上の場合には、前記シフト量候補にｎを加えた数をシフト量候補とし、
前記シフト量候補と前記フレームシフト量保持バッファに記録されたシフト量を用いて、あらかじめ定めた基準にしたがって、現フレームのシフト量を決定すること、
を特徴とする信号符号化方法。
【請求項２１】
フレームバッファで、デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファステップと、
シフト量決定部で、整数部として符号化する信号の振幅の範囲を決めるシフト量決定ステップと、
分割部で、前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割ステップと、
整数信号符号化部で、整数信号を符号化する整数信号符号化ステップと、
誤差信号符号化部で、誤差信号を符号化する誤差信号符号化ステップと、
統合部で、前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合ステップと、
を有する信号符号化方法であって、
前記シフト量決定ステップが、
少なくとも１つの過去のフレームのシフト量をフレームシフト量保持バッファに記録しておき、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）の全ビット中で、１があらかじめ定めた割合以下の場合または０があらかじめ定めた割合以上の場合には、前記シフト量候補にｎを加えた数をシフト量候補とし、
前記シフト量候補と前記フレームシフト量保持バッファに記録されたシフト量を用いて、あらかじめ定めた基準にしたがって、現フレームのシフト量を決定すること、
を特徴とする信号符号化方法。
【請求項２２】
フレームバッファで、デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファステップと、
シフト量決定部で、整数部として符号化する信号の振幅の範囲を決めるシフト量決定ステップと、
分割部で、前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割ステップと、
整数信号符号化部で、整数信号を符号化する整数信号符号化ステップと、
誤差信号符号化部で、誤差信号を符号化する誤差信号符号化ステップと、
統合部で、前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合ステップと、
を有する信号符号化方法であって、
前記シフト量決定ステップが、
少なくとも１つの過去のフレームのシフト量をフレームシフト量保持バッファに記録しておき、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めたシフト量から１つずつシフト量を増やしながら、当該シフト量にしたがった符号化を行った場合の符号量を計算し、前のシフト量での符号量よりも符号量が増えた場合には、１つ前のシフト量を当該フレームのシフト量候補とし、
前記シフト量候補と前記フレームシフト量保持バッファに記録されたシフト量を用いて、あらかじめ定めた基準にしたがって、現フレームのシフト量を決定すること、
を特徴とする信号符号化方法。
【請求項２３】
フレームバッファで、デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファステップと、
シフト量決定部で、整数部として符号化する信号の振幅の範囲を決めるシフト量決定ステップと、
分割部で、前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割ステップと、
整数信号符号化部で、整数信号を符号化する整数信号符号化ステップと、
誤差信号符号化部で、誤差信号を符号化する誤差信号符号化ステップと、
統合部で、前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合ステップと、
を有する信号符号化方法であって、
前記シフト量決定ステップが、
少なくとも１つの過去のフレームのシフト量をフレームシフト量保持バッファに記録しておき、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）の全ビット中の１の比率を、ｎを１から１つずつ増やしながら計算し、１の比率が１つ前の計算での１の比率よりも増えるｎを求め、シフト量を前記シフト量候補にｎ−１を加えた数とし、
前記シフト量候補と前記フレームシフト量保持バッファに記録されたシフト量を用いて、あらかじめ定めた基準にしたがって、現フレームのシフト量を決定すること、
を特徴とする信号符号化方法。
【請求項２４】
フレームバッファで、デジタル信号を複数のサンプル値（以下、「フレーム」という。）ごとに分割するフレームバッファステップと、
シフト量決定部で、整数部として符号化する信号の振幅の範囲を決めるシフト量決定ステップと、
分割部で、前記シフト量決定部で定めたシフト量にしたがって、前記デジタル信号を整数信号と誤差信号に分割する分割ステップと、
整数信号符号化部で、整数信号を符号化する整数信号符号化ステップと、
誤差信号符号化部で、誤差信号を符号化する誤差信号符号化ステップと、
統合部で、前記整数信号符号化部の出力と前記誤差信号符号化部の出力とを統合する統合ステップと、
を有する信号符号化方法であって、
前記シフト量決定ステップが、
少なくとも１つの過去のフレームのシフト量をフレームシフト量保持バッファに記録しておき、
フレーム内の振幅値が最大のサンプル値を、整数部の最大値、最小値の範囲内でシフト量の変更のみによって表現可能な最大の振幅となるようにシフト量候補を算出し、
前記シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）の全ビット中の０の比率を、ｎを１から１つずつ増やしながら計算し、０の比率が１つの前の計算での０の比率よりも減るｎを求め、シフト量を前記シフト量候補にｎ−１を加えた数とし、
前記シフト量候補と前記フレームシフト量保持バッファに記録されたシフト量を用いて、あらかじめ定めた基準にしたがって、現フレームのシフト量を決定すること、
を特徴とする信号符号化方法。
【請求項２５】
請求項１から１２のいずれかに記載の信号符号化装置をコンピュータにより実現する信号符号化プログラム。
【請求項２６】
請求項２５記載の信号符号化プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサンプル値を情報符号化する情報符号化装置、方法、プログラム、および記録媒体に関する。
【背景技術】
【０００２】
近年、音響信号データや画像情報データを通信路により伝送する場合や情報記録媒体に記録する場合に、情報圧縮符号化技術が用いられている。また編集加工が容易な浮動小数点形式のデータの可逆圧縮も重要で、例えば非特許文献１または特許文献１の符号化方法がある。これらの符号化方法では、浮動小数点形式のデータサンプル列を、複数サンプルをまとめてフレームを構成させる。そして、フレームごとに、フレーム内の最大の振幅の値が整数の最大値となるようにビットシフト量を決定する。決定したビットシフト量を用いて各サンプルを整数信号と誤差信号に分離し、それぞれをフレームごとに符号化する。
【０００３】
従来技術での符号化処理部の機能構成を図１に示す。符号化処理部８００は、フレームバッファ８１０、シフト量算出部８２０、整数信号・誤差信号分離部８３０、整数信号符号化部８４０、誤差信号符号化部８５０、統合部（Multiplexer）８６０から構成される。
この符号化処理のイメージを図２に示す。フレームは、複数のサンプル値から構成されていて、各サンプル値は有限のビット列から構成されている。図２は整数部を２３ビットで表現した浮動小数点表現の場合を示している。図２では網掛けされたビットには０または１が入るが、他のビットはすべて０である。フレーム単位で符号化する際には、フレーム内のサンプル値を整数部と誤差部（入力信号から整数部を引いた残りの全部または一部）とに分離する。図２の点線で囲んだ部分が整数部である。整数部は、フレーム内で最大の振幅の値が整数の最大値となるようにマッピングを行うことで決められる。分離された整数部と誤差部は、それぞれ別々に符号化された後、統合されて符号化データとなる。
【０００４】
なお、図２に示すイメージは、浮動小数点表現の場合だけでなく、整数表現の場合などにも適用できる。どのような表現であれ、当該振幅を表現する最大のビット（ＭＳＢ：Most Significant Bit）から有限個離れた最小のビット（ＬＳＢ：Least Significant Bit）までのビット列のみが０または１が存在しうるビットであり、他のビットはすべて０ならば、同じ方法が適用できる。たとえば、３２ビットや６４ビットの整数表現の場合に、サンプルごとに特定の２４ビットだけに０か１のビットがあり、他のビットは０という場合でもよい。
【０００５】
図２に示した従来の符号化方法では、たとえば、整数部の量子化ビット数よりも入力信号のダイナミックレンジが狭い場合には、マッピング後の整数のＬＳＢ側に、フレーム内で同じ桁に属するビット（以下、「ビットプレーン」という。）が全て０、あるいはほとんどが０の場合がある。たとえば、入力信号のダイナミックレンジが１６ビット程度しかない場合に、このような信号を量子化ビット数２４ビットで表現すると、整数信号のＬＳＢ側に全てのサンプルでビットが０となるビットプレーンを生じる。ここで、図２に示すように、縦軸に入力信号の時系列、横軸に各サンプルを構成する２進表現されたビットをとった場合に、各サンプルの信号を２進表現し、各サンプルの振幅の相対的な関係が保たれるように構成ビットを配置した場合に、同じ桁に相当するビットの集合をビットプレーン、あるいはビット桁という。整数信号の符号化には線形予測を行い、予測係数と残差信号の振幅が小さいサンプルが、振幅が大きいサンプルよりも多くなることを前提とした符号化を用いると、整数信号を効率良く圧縮符号化できる。誤差部の圧縮符号化方式としては、いくつかのビットを組にした辞書を用いる圧縮符号化方式を用いたり、ビットプレーンごとのランレングス符号化を用いたりして符号化すると、誤差信号を効率的効率良く圧縮符号化できる。
【０００６】
また、代表的な浮動小数点表示としては、IEEE754 32bit浮動小数点がある。この浮動小数点は、
【０００７】
【数１】
0004523885.tif 000002
と表現される。ここで、Ｓは符号部、Ｍは仮数部、Ｅは指数部である。また、IEEE754では、Ｅ０＝２７−１＝１２７と決められている。上記式中のＥ−Ｅ０は−１２７≦Ｅ−Ｅ０≦１２８の範囲の値である。仮数部Ｍは、２進表現で値が１となるビットがＭＳＢに来るように、かつ、ＭＳＢビットと次のビットの間に小数点の位置がくるように正規化され、１となるＭＳＢビットを除いた小数点以下のビットである２３ビットで構成されている。以下の説明では、整数部の信号（以下、「整数信号」という。また、誤差部の信号を「誤差信号」という。）の量子化ビット数Ｑを２４とする。
【０００８】
図３は、図１に示した符号化処理部８００の処理フローである。フレームバッファ８１０は、デジタルの入力信号ｘ（ｉ）を一時的に蓄積し、ＮＦ個のサンプル値ｘ（ｉ）（ｉ＝１〜ＮＦ）でフレームを構成する（Ｓ８１０）。シフト量算出部８２０は、図２を用いて説明した方法によって、フレーム単位にシフト量Ｓｊを決定する（Ｓ８２０）。整数信号・誤差信号分離部８３０は、シフト量Ｓｊを用いて、当該フレーム入力信号のＮＦ個のサンプルそれぞれを整数部と誤差部に分離する（Ｓ８３０）。整数信号符号化部８４０は、整数信号・誤差信号分離部８３０で分離された整数信号を符号化する（Ｓ８４０）。誤差信号符号化部８５０は、整数信号・誤差信号分離部８３０で分離された誤差信号を符号化する（Ｓ８５０）。統合部（Multiplexer）８６０は、符号化された整数信号と誤差信号とシフト量を統合し、符号化データを出力する（Ｓ８６０）。
【０００９】
図４にはシフト量算出部８２０の処理（ステップＳ８２０）の詳細な処理フロー例を示す。ただし、この処理例は、IEEE754 32bit浮動小数点で表現されたサンプル値の場合の処理例である。シフト量算出部８２０では、まず、フレーム入力信号中の全サンプル（ＮＦ個）を読み込む（Ｓ８２０１）。次に変数ｉに１を設定し、ΔＥｍａｘに−１２７（Ｅ０）を設定する（Ｓ８２０２）。現フレームのｉ番目のサンプルの指数部Ｅｉ−Ｅ０すなわちＥｉ−１２７を計算して変数ΔＥｉに代入する（Ｓ８２０３）。ΔＥｉ＞ΔＥｍａｘであるかどうかを判定し（Ｓ８２０４）、真であればΔＥｉをΔＥｍａｘ設定する（Ｓ８２０５）。ｉ＜ＮＦかを確認する（Ｓ８２０６）。ｉ＜ＮＦならば、ｉにｉ＋１を代入し（Ｓ８２０７）、ステップＳ８２０３に戻る。ｉ＜ＮＦでないならば、ΔＥｍａｘ＞−１２７であるかどうかをチェックする（Ｓ８２０８）。ΔＥｍａｘ＞−１２７の場合には、シフト量ＳｊにΔＥｍａｘを代入して（Ｓ８２０９）、処理を終了する。ΔＥｍａｘ≦−１２７の場合には、当該フレーム中のサンプルは全て０であったということなのでシフト量Ｓｊを０に設定する（Ｓ８２１０）。この処理は、サンプルの中で最大振幅が、整数部で表現可能な最大値、最小値の範囲を超えない範囲で、最大の振幅に割り当てられるようにシフト値を決定することに相当する。
【００１０】
また、図５にシフト量算出部８２０の処理フローの変形例（ステップＳ８２０’）を示す。IEEE754 32bit浮動小数点表現されたサンプルでは、Ｅ−Ｅ０が１２８や、−１２７の場合には、ＮａＮや非正規化数などの特殊な値となっている。最大振幅を判定する際に、フレーム内のサンプルのうち、−１２７＜Ｅ−Ｅ０＜１２８の範囲内の数値のみを用いてシフト量を算出する点が図４と異なる。また、ｉ番目のサンプルを分析する際に、これまでに得られたΔＥｍａｘを用いてｉ番目のサンプルの小数点の位置を移動させ、桁調整後の値が想定する量子化ビット数で表現可能な値の範囲内にあるかどうかを判定する。このとき、桁調整の結果、所定の量子化ビット数で表現可能な値の範囲を超えてしまう場合には、ΔＥｍａｘを1増加させ、範囲を超えないようにする点が図４の処理と異なる。
【００１１】
具体的な処理フローの違いは以下のとおりである。ステップＳ８２０２とステップＳ８２０３との間にステップＳ８２２１を追加し、−１２７＜Ｅｉ−１２７＜１２８かを確認する（Ｓ８２２１）。Ｓ８２２１が真の場合にはステップＳ８２０３に進み、真でない場合にはステップＳ８２０６へ進む。また、ステップＳ８２０５とステップＳ８２０６との間にステップＳ８２２０を追加する。ステップＳ８２２０では、まずＸ’ｉに、Ｘｉと２の（−ΔＥ＋（Ｑ−１））乗との積を代入する（Ｓ８２２２）。Ｘ’ｉ＞２Ｑ−１−１またはＸ’ｉ＜−２Ｑ−１を確認する（Ｓ８２２３）。ステップＳ８２２３が真の場合には、ΔＥｍａｘに１を加える（Ｓ８２２４）。ステップ８２２３が真でない場合には、ステップ８２０６へ進む。
【００１２】
図６に、ステップＳ８３０のシフト量Ｓｊを用いて入力信号Ｘｉを整数信号Ｙｉと誤差信号Ｚｉに分離する手順を詳細に示す。ＮＦ個の各サンプルＸｉに対して逐次以下の処理を行う。内部のメモリに、フレームバッファからＮＦ個のサンプルを取り込む（Ｓ８３０１）。サンプルの番号を示すｉに１を代入する（Ｓ８３０２）。入力サンプルＸｉの指数部（Ｅｉ−１２７）が、−１２７より大きく、かつ１２８未満の範囲に含まれているか否かを判定する（Ｓ８３０３）。ステップＳ８３０３で指数部が前記の範囲外であると判定された場合には、i番目のサンプルは値が０であるか、非正規化数もしくはＮａＮなどの特殊な数である。したがって、桁合わせ後のサンプルＹｉは０とし、Ｘ’ｉを誤差部Ｚｉとする（Ｓ８３０９）。ステップＳ８３０３で指数部が前記の範囲内であった場合には、Ｘｉに２の（−Ｓｊ＋（Ｑ−１））乗を掛け合わせてＸ’ｉを得る（Ｓ８３０４）。もしくは、サンプルＸｉの指数値ＥｉからＥｉ’＝Ｅｉ−Ｓｊ＋（Ｑ−１）によって、Ｘ’ｉの指数値（Ｅ’ｉ−１２７）のＥ’ｉを求める。ここで、Ｑは整数部の量子化ビット数２４である。この処理は、フレーム内の全てのサンプルに共通の２の（−Ｓｊ＋（Ｑ−１））乗を掛け合わせて、フレーム内の振幅最大のサンプルが、整数部の量子化ビット数で表現可能な最大振幅を超えないように、シフト量Ｓｊを用いて小数点の位置を桁合わせすることに相当する。得られたＸ’ｉの指数値（Ｅ’ｉ−１２７）が、−１２７より大きく、かつ１２８未満の範囲に含まれているか否かをチェックする（Ｓ８３０５）。指数部が前記の範囲外の場合には、サシプルＹｉは０とする（Ｓ８３０９）。指数部が前記の範囲内の場合には、Ｘ’ｉが正かを確認する（Ｓ８３０６）。Ｘ’ｉが正の場合には、Ｘ’ｉの小数点以下を切り捨てたものを整数部Ｙｉとする（Ｓ８３０７）。Ｘ’ｉが負の場合には、Ｘ’ｉの小数点以下を切り上げたものを整数部Ｙｉとする（Ｓ８３０８）。Ｙｉが０でない場合には、Ｘ’ｉの小数点以下の部分を誤差部Ｚｉとする（Ｓ８３０７，Ｓ８３０８）。ｉがＮＦより小さいかを確認する（Ｓ８３１０）。ｉがＮＦより小さい場合は、ｉにｉ＋１を代入する（Ｓ８３１１）。ｉがＮＦ以上の場合は、終了する。整数信号と誤差信号の分離は、上記の手順に限る必要はなく、特許文献１にはいくつかの分離方法が示されている。
【００１３】
図７に復号化処理部の機能構成を示す。復号化処理部９００は、符号化データを分割する分割部（Demultiplexer）９１０、整数信号を復号化する整数信号復号化部９２０、誤差信号を復号化する誤差信号復号化部９３０、整数・誤差信号を結合する整数・誤差信号結合処理部９４０から構成される。
【非特許文献１】Dai Yang, and Takehiro Moriya, ”Lossless Compression for Audio Data in the IEEE Floating-Point Format, AES Convention Paper 5987, AES 115th Convention, New York, NY, USA, 2003 0CTOBER 10-13.
【特許文献１】国際公開第２００４／１１４５２７号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【００１４】
従来の整数信号の符号化方法では、残差の振幅が大きくなると符号化に必要なビット数が増加する。しかし、従来の誤差信号の符号化方法では、符号化に必要なビット数を削減できる場合がある。特に、誤差部の符号化方法では、構成ビットが全て０であるような特殊な場合には、全ての構成ビットが０という１ビットのフラグで符号化が可能なため、整数信号の符号化方法を適用した場合に比べ、圧縮効率が非常に良い。
このように、当該ビットプレーンを構成する全てのビット、あるいは、ほとんどのビットが０である場合には、誤差部に割り当てた方が、整数部に割り当てて符号化するよりも符号量が少なくてすむ場合がある。しかし、最大値を基準として整数部と誤差部に割り当てる従来の方法では、上記のような性質を考慮することなく整数部と誤差部を分離するシフト値を決定していた。つまり、整数信号部分の下位のビットプレーン内の構成によっては、整数部と誤差部とを合わせた全体の圧縮率が悪くなっていたという問題があった。
【課題を解決するための手段】
【００１５】
本発明では、シフト量決定部で、フレーム内の振幅値が最大のサンプル値を整数部で表現できる最大の振幅となるようにシフト量候補を算出し、前記シフト量候補にしたがって定めた整数部の下位のあらかじめ定めた範囲のビット群の０または１の頻度を用いて、あらかじめ定めた基準にしたがって、フレームのシフト量をシフト量候補から補正して決定する。
本発明の整数部として符号化する信号の振幅の範囲を決める符号化処理のイメージを、図８に示す。従来の方法では、フレーム内の振幅値が最大のサンプル値を整数部で表現できる最大の振幅となるようにシフト量を決定する。しかし、本発明の１つ目の方法は、シフト量候補にしたがって定めた整数部（従来の方法での整数部１）の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）のすべてのビットが０の場合には、シフト量を前記シフト量候補にｎを加えた数とする。図８の場合には、最下位を含む最下位から２桁の範囲のすべてのビットが０であるから、図中の本発明での第１の整数部２が、整数部となる。本発明の２つ目の方法は、シフト量候補にしたがって定めた整数部（従来の方法での整数部１）の最下位を含む最下位からｎ桁の範囲の全ビットで、１があらかじめ定めた割合以下の場合（または０があらかじめ定めた割合以上の場合）には、シフト量を前記シフト量候補にｎを加えた数とする。図８の場合に、あらかじめ定めた割合を１／２とすると、図中の本発明での第２の整数部３が、整数部となる。これらの他にも、シフト量候補にしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲のすべてのビットで、１があらかじめ定めた割合以下の場合（または０があらかじめ定めた割合以上の場合）には、シフト量を前記シフト量候補にｎを加えた数とする方法、シフト量候補にしたがって定めたシフト量から１つずつシフト量を増やしながら、当該シフト量にしたがった符号化を行った場合の符号量を計算し、前のシフト量での符号量よりも符号量が増えた場合には、１つ前のシフト量を当該フレームのシフト量とする方法などがある。しかし、これらの方法に限定する必要は無い。
【発明の効果】
【００１６】
本発明によれば、整数信号部分の下位のビットプレーン内の構成も考慮した上でフレームのシフト量を決定するので、符号量をさらに少なくすることができる。
【発明を実施するための最良の形態】
【００１７】
以下では、説明の重複を避けるため同じ機能を有する構成部や同じ処理を行う処理ステップには同一の番号を付与し、説明を省略する。
［第１実施形態］
図９に本実施形態の符号化処理部の機能構成例を示す。符号化処理部２００は、フレームバッファ８１０、下位桁チェック部２３０を有するシフト量算出部２１０、整数信号・誤差信号分離部８３０、整数信号符号化部８４０、誤差信号符号化部８５０、統合部（Multiplexer）８６０から構成される。図１の従来の符号化処理部８００との違いは、シフト量算出部２１０が下位桁チェック部２３０を有することである。
【００１８】
符号化処理部２００の処理フローは、図３のステップＳ８２０を、図１０のステップＳ２１０に置き換えたものとなる。ステップＳ２１０では、シフト量算出部２１０で、フレーム内のサンプル値の最大振幅を整数部の量子化ビット数で表現可能な最大振幅にマッピングしてシフト量候補ΔＥを求める（Ｓ１２０）。ステップＳ１２０の処理内容は、実質的にステップＳ８２０（図４）またはステップＳ８２０’（図５）と同じである。違いは、結果がシフト量の決定値として扱われるステップＳ８２０（Ｓ８２０’）に対して、ステップＳ１２０の結果は、シフト量の候補として扱われるだけである。シフト量算出部２１０の下位桁チェック部２３０は、シフト量候補ΔＥにしたがって定めた整数部の最下位を含む最下位からｎ桁の範囲（ｎは１以上の整数）のビットプレーンで、１があらかじめ定めた割合以下の場合には、シフト量を前記シフト量候補にｎを加えた数とする（Ｓ２３０）。ここで、あらかじめ定めた割合には、０（すべてのビットが０）も含まれる。シフト量算出部２１０は、シフト量候補ΔＥをシフト量Ｓｊにする（Ｓ２４０）。
【００１９】
図１１にシフト量算出部２１０の下位桁チェック部２３０の処理（ステップＳ２３０）の詳細な処理フローを示す。下位桁チェック部２３０は、ＮＦ個のサンプル値を取り込む（Ｓ２３０１）。シフト量候補ΔＥによって整数部と誤差部とに分離した場合の整数部の最下位桁のビットプレーン中の１の数ｍを取得する（Ｓ２３０２）。１の数ｍが、あらかじめ定めた閾値以下かを確認する（Ｓ２３０３）。ステップＳ２３０３が真の場合には、シフト量候補ΔＥに１を加え（Ｓ２３０４）、ステップＳ２３０２に戻る。ステップＳ２３０３が真でない場合は、ステップＳ２３０を終了する。ステップＳ２３０が終了すると、図１０に示したようにステップＳ２４０へ進み、シフト量Ｓｊがシフト量候補ΔＥに設定される。このように処理することで、ステップＳ１２０で求めたシフト量候補にしたがって定めた整数部の最下位桁を含む最下位からｎ桁の範囲（ｎは１以上の整数）の各ビットプレーンで、１があらかじめ定めた割合以下の場合には、シフト量をステップＳ１２０で求めたシフト量候補にｎを加えた数に補正できる。また、閾値を０とした場合には、ビットプレーンのすべてのビットが０であった場合にシフト量候補ΔＥを１増やすことになる。
【００２０】
このようにシフト量Ｓｊを決定することで、誤差部に含めた方が符号量を少なくすることができるビットプレーンを、誤差部に含めることができ、圧縮率を向上することができる。
なお、本実施形態では、１の数の割合が閾値以下であることを確認したが、０の割合が閾値以上であることを確認してもよい。
［第２実施形態］
第１実施形態では、シフト量算出部２１０の下位桁チェック部２３０で、各ビットプレーン中の１の数（または比率）を閾値と比較した。本実施形態では、シフト量候補にしたがって定めた整数部の最下位桁を含む最下位からｎ桁の範囲（ｎは１以上の整数）の全ビット中の１があらかじめ定めた割合以下の場合には、シフト量Ｓｊを前記シフト量候補にｎを加えた数とする。本実施形態では、第１実施形態の図１１に示したステップＳ２３０の代わりに、図１２に示す処理フロー（ステップＳ２３０’）を行う。
【００２１】
下位桁チェック部２３０は、ＮＦ個のサンプル値を取り込む（Ｓ２３０１）。ｉに１を代入する（Ｓ２３１１）。シフト量候補ΔＥによって整数部と誤差部とに分離した場合の整数部の最下位桁から最下位桁を含むｉ番目の桁までの１となるビットの数ｍを取得する（Ｓ２３１２）。ｍ／（ｉ・ＮＦ）が、あらかじめ定めた閾値以下かを確認する（Ｓ２３１３）。ステップＳ２３１３が真の場合には、ｉに１を加え（Ｓ２３１４）、ステップＳ２３１２に戻る。ステップＳ２３１３が真でない場合は、シフト量候補ΔＥにｉ−１を加え（Ｓ２３１５）、ステップＳ２３０’を終了する。ステップＳ２３０’が終了すると、図１０に示したようにステップＳ２４０へ進み、シフト量Ｓｊがシフト量候補ΔＥに設定される。
【００２２】
なお、本実施形態では、１の数の比率が閾値以下であることを確認したが、０の比率が閾値以上であることを確認してもよい。
［第３実施形態］
本実施形態では、シフト量算出部２１０の下位桁チェック部２３０で、シフト量候補にしたがって定めたシフト量から１つずつシフト量を増やしながら、当該シフト量にしたがった符号化を行った場合の符号量を計算し、前のシフト量での符号量よりも符号量が増えた場合には、１つ前のシフト量を当該フレームのシフト量Ｓｊとする。本実施形態では、第１実施形態の図１１に示したステップＳ２３０の代わりに、図１３に示す処理フロー（ステップＳ２３０”）を行う。
【００２３】
下位桁チェック部２３０は、ＮＦ個のサンプル値を取り込む（Ｓ２３０１）。Ｄｍｉｎを無限大とする（Ｓ２３２１）。実際には、Ｄｍｉｎを符号量として取りうる最大値とすればよい。シフト量候補ΔＥによって整数部と誤差部とに分離した場合の符号量Ｄを計算する（Ｓ２３２２）。Ｄ≦Ｄｍｉｎかを確認する（Ｓ２３２３）。ステップＳ２３２３が真の場合には、ＤｍｉｎをＤとし（Ｓ２３２４）、シフト量候補ΔＥに１を加え（Ｓ２３０４）、ステップＳ２３２２に戻る。ステップＳ２３２３が真でない場合は、シフト量候補ΔＥから１を引き（Ｓ２３２５）、ステップＳ２３０”を終了する。ステップＳ２３０”が終了すると、図１０に示したようにステップＳ２４０へ進み、シフト量Ｓｊがシフト量候補ΔＥに設定される。
［第４実施形態］
本実施形態では、シフト量算出部２１０の下位桁チェック部２３０で、シフト量候補にしたがって定めた整数部の最下位桁を含む最下位からｎ桁の範囲（ｎは１以上の整数）の全ビットの１の比率を、ｎを１から１つずつ増やしながら計算し、前記１の比率が前のシフト量での比率よりも増えた場合のｎを求め、シフト量Ｓｊを前記シフト量候補にｎ−１を加えた数とする。本実施形態では、第１実施形態の図１１に示したステップＳ２３０の代わりに、図１４に示す処理フロー（ステップＳ２３０’’’）を行う。
【００２４】
下位桁チェック部２３０は、ＮＦ個のサンプル値を取り込む（Ｓ２３０１）。Ｒｍｉｎに１、ｉに１を代入する（Ｓ２３３１）。シフト量候補ΔＥによって整数部と誤差部とに分離した場合の整数部の最下位桁からｉ番目までの全ビット中の１の比率Ｒを求める（Ｓ２３３２）。Ｒ≦Ｒｍｉｎかを確認する（Ｓ２３３３）。ステップＳ２３３３が真の場合には、ＲｍｉｎをＲとし、ｉに１を加え（Ｓ２３３４）、ステップＳ２３３２に戻る。ステップＳ２３３３が真でない場合は、シフト量候補ΔＥにｉ−２を加え（Ｓ２３３５）、ステップＳ２３０’’’を終了する。ステップＳ２３０’’’が終了すると、図１０に示したようにステップＳ２４０へ進み、シフト量Ｓｊがシフト量候補ΔＥに設定される。
［変形例］
第４実施形態では、１の比率を用いてシフト量を求めたが、０の比率を用いてシフト量を求めてもよい。本変形例では、第１実施形態の図１１に示したステップＳ２３０の代わりに、図１５に示す処理フロー（ステップＳ２３０’’’’）を行う。
【００２５】
下位桁チェック部２３０は、ＮＦ個のサンプル値を取り込む（Ｓ２３０１）。Ｒｍａｘに０、ｉに１を代入する（Ｓ２３３１’）。シフト量候補ΔＥによって整数部と誤差部とに分離した場合の整数部の最下位桁からｉ番目までの全ビット中の０の比率Ｒを求める（Ｓ２３３２’）。Ｒ≧Ｒｍａｘかを確認する（Ｓ２３３３’）。ステップＳ２３３３’が真の場合には、ＲｍａｘをＲとし、ｉに１を加え（Ｓ２３３４’）、ステップＳ２３３２’に戻る。ステップＳ２３３３’が真でない場合は、シフト量候補ΔＥにｉ−２を加え（Ｓ２３３５）、ステップＳ２３０’’’’を終了する。ステップＳ２３０’’’’が終了すると、図１０に示したようにステップＳ２４０へ進み、シフト量Ｓｊがシフト量候補ΔＥに設定される。
［第５実施形態］
図１６に本実施形態の符号化処理部の機能構成例を示す。符号化処理部１００は、フレームバッファ８１０、シフト量候補算出部２１０’とシフト量選定部１３０とフレームシフト量保存バッファ１４０から構成されるシフト量決定部１１０、整数信号・誤差信号分離部８３０、整数信号符号化部８４０、誤差信号符号化部８５０、統合部（Multiplexer）８６０から構成される。また、シフト量候補算出部２１０’は、下位桁チェック部２３０を備えている。なお、シフト量候補算出部２１０’は、シフト量決定部１１０でシフト量を決定するための候補を算出する構成部であるが、第１実施形態のシフト量算出部２１０とまったく同じ構成と処理でよい。図９の符号化処理部２００との違いは、シフト量決定部１１０である。
【００２６】
符号化処理部１００の処理フローは、図３のステップＳ８２０を、図１７のステップＳ１１０に置き換えたものである。ステップＳ１１０では、まず、シフト量候補算出部２１０’で、フレーム内のサンプル値の最大振幅を整数部の量子化ビット数で表現可能な最大振幅にマッピングしてシフト量候補ΔＥを求め（Ｓ１２０）、下位桁チェック部２３０によりシフト量候補ΔＥを補正する（Ｓ２３０、Ｓ２３０’、Ｓ２３０”、Ｓ２３０’’’、またはＳ２３０’’’’）。シフト量選定部１３０は、現フレームが先頭フレームかランダムアクセスフレーム（ＲＡフレーム：過去のフレームからの予測を用いないフレーム）かを判断する（Ｓ１４０）。先頭フレームかランダムアクセスフレームの場合には、シフト量選定部１３０は、シフト量候補ΔＥを現フレームのシフト量とする（Ｓ１５０）。先頭フレームでもランダムアクセスフレームでもない場合には、シフト量選定部１３０は、フレームシフト量保持バッファから１つまたは複数の過去のフレームのシフト量Ｓｊ−ｋ（ｋは１以上の整数）を読み出し、過去のフレームのシフト量とシフト量候補ΔＥを用いて現フレームのシフト量Ｓｊを決定する（Ｓ１３０）。
【００２７】
図１８に、シフト量選定部１３０の処理（ステップＳ１３０）の詳細な処理フロー例を示す。シフト量選定部１３０は、フレームシフト量保持バッファ１４０から直前のフレームのシフト量Ｓｊ−１を、シフト量候補算出部１２０からシフト量候補ΔＥを読み込む（Ｓ１３０１）。Ｓｊ−１＞ΔＥを確認する（Ｓ１３０２）。真の場合にはＳｊ−１＜ΔＥ＋αを確認する（Ｓ１３０３）。ここで、αはあらかじめ定めておく閾値である。ステップＳ１３０２とＳ１３０３とがともに真の場合には、直前のフレームのシフト量Ｓｊ−１を現フレームのシフト量Ｓｊとする（Ｓ１３０４）。また、ステップＳ１３０２とＳ１３０３のどちらかが真でない場合には、シフト量候補ΔＥを現フレームのシフト量Ｓｊとする（Ｓ１３０５）。
【００２８】
αはシフト量の揺らぎが一定以上になった場合にのみシフト量を変化させるようにするための閾値で、たとえばあらかじめ５に設定しておく。α＝５の場合には、当該フレームの最大振幅を分析して得られたシフト量侯補ΔＥが、前のフレームのシフト量Ｓｊ−１よりも大きくなるか、もしくはＳｊ−１−５よりも小さい値となった場合にのみシフト量を変化させることに相当する。
このようにフレームのシフト量Ｓｊを決定することで、頻繁なシフト量の変化がなくなり、フレーム間予測を用いて圧縮符号化する場合の圧縮率を向上することができる。
［変形例１］
第５実施形態では、シフト量決定部１１０のシフト量選定部１３０は、図１８に示したように、閾値をあらかじめ決めておき、直前のフレームのシフト量と現フレームのシフト量候補との差が閾値以内であれば現フレームのシフト量を直前のフレームと同じにした。本変形例では、シフト量決定部１１０のシフト量選定部１３０は、直前のフレームのシフト量から現フレームのシフト量候補までの各シフト量での符号化後のデータ量を計算して、最もデータ量が少ないシフト量を現フレームのシフト量とする。
【００２９】
図１９にステップＳ１３０の代わりとなるシフト量選定部１３０の処理フロー（ステップＳ１３０’）を示す。シフト量選定部１３０は、フレームシフト量保持バッファ１４０から直前のフレームのシフト量Ｓｊ−１を、シフト量候補算出部１２０からシフト量候補ΔＥを読み込む（Ｓ１３０１）。Ｓｊ−１＞ΔＥを確認する（Ｓ１３０２）。ステップＳ１３０２が真の場合には、Ｄｍｉｎを無限大、ｉを直前のフレームのシフト量Ｓｊ−１とする（Ｓ１３１１）。ただし、無限大とは、符号量として取りうる最大の値とすればよい。シフト量をｉとした場合の整数信号の符号量と誤差信号の符号量とを求め、統合した場合の符号化データの符号量Ｄｉを求める（Ｓ１３１２）。ＤｍｉｎがＤｉよりも大きいかを確認する（Ｓ１３１３）。ＤｍｉｎがＤｉよりも大きい場合は、ＤｉをＤｍｉｎとする（Ｓ１３１４）。ＤｍｉｎがＤｉ以下の場合にはステップＳ１３１５に進む。ｉ＞ΔＥであることを確認する（Ｓ１３１５）。ステップＳ１３１５が真の場合意は、ｉにｉ−１を代入する（Ｓ１３１６）。ステップＳ１３１５が真でない場合は、シフト量ＳｊをＤｍｉｎとする（Ｓ１３１７）。
ステップＳ１３０２が真でない場合には、シフト量Ｓｊをシフト量候補ΔＥとする（Ｓ１３０５）。
【００３０】
このように処理すると、処理の時間はかかるが、確実に符号量の少ないシフト量を選定することができる。
［変形例２］
本変形例では、シフト量決定部１１０のシフト量選定部１３０は、過去のＮ個（Ｎは２以上の整数）のフレームのシフト量を記録しておく。シフト量候補が、過去のＮ個のフレームのシフト量の中で、ｎ番目（ｎは、１以上Ｎ未満の整数）に小さいシフト量よりも大きく、かつ直前のフレームのシフト量よりも小さい場合には、直前のフレームのシフト量を現フレームのシフト量とする。シフト量候補が、過去のＮ個のフレームのシフト量の中で、ｎ番目（ｎは、１以上Ｎ未満の整数）に小さいシフト量以下、または直前のフレームのシフト量以上の場合には、シフト量候補を現フレームのシフト量とする。
【００３１】
図２０にステップＳ１３０の代わりとなるシフト量選定部１３０の処理フロー（ステップＳ１３０”）を示す。シフト量選定部１３０は、フレームシフト量保持バッファ１４０から過去のフレームのシフト量Ｓｊ−ｋ（ｋ＝１〜Ｎ）を、シフト量候補算出部１２０からシフト量候補ΔＥを読み込む（Ｓ１３０１）。ただし、Ｎは２以上の整数である。閾値αをＮ個の過去のシフト量の中で、ｎ番目に小さいシフト量とする（Ｓ１３２２）。ステップＳ１３０２以降の処理は、第５実施形態の図１８と同じである。
本実施形態では、閾値をあらかじめ決めておくのではなく、過去のシフト値から求めている。したがって、入力信号の特徴を考慮して閾値を変更することができる。
［変形例３］
本変形例では、シフト量決定部１１０のシフト量選定部１３０は、シフト量候補が、直前のフレームのシフト量以下の場合には、直前のフレームのシフト量を現フレームのシフト量とする。シフト量候補が、直前のフレームのシフト量よりも大きい場合には、シフト量候補を現フレームのシフト量とする。
【００３２】
図２１にステップＳ１３０の代わりとなるシフト量選定部１３０の処理フロー（ステップＳ１３０’’’）を示す。図１８のフローとの違いは、ステップＳ１３０３が削除された点である。したがって、本実施形態の場合、シフト量は増加することはあるが、減少することはない。ただし、処理の内容は最も簡単である。
なお、上記の実施形態はコンピュータに、上記方法の各ステップを実行させるプログラムを読み込ませ、実施することもできる。また、コンピュータに読み込ませる方法としては、プログラムをコンピュータ読み取り可能な記録媒体に記録しておき、記録媒体からコンピュータに読み込ませる方法、サーバ等に記録されたプログラムを電気通信回線等を通じてコンピュータに読み込ませる方法などがある。
【図面の簡単な説明】
【００３３】
【図１】従来技術での符号化処理部の機能構成を示す図。
【図２】従来技術での符号化処理のイメージを示す図。
【図３】従来の符号化処理部の処理フローを示す図。
【図４】シフト量算出部の処理の詳細な処理フローを示す図。
【図５】シフト量算出部の処理フローの変形例を示す図。
【図６】シフト量Ｓｊを用いて入力信号Ｘｉを整数信号Ｙｉと誤差信号Ｚｉに分離する手順を示す図。
【図７】復号化処理部の機能構成を示す図。
【図８】本発明のシフト量を決める符号化処理のイメージを示す図。
【図９】本発明の符号化処理部の機能構成例を示す図。
【図１０】本発明の第１実施形態の符号量を最小にする処理フローを示す図。
【図１１】シフト量算出部２１０の下位桁チェック部２３０の処理（ステップＳ２３０）の詳細な処理フローを示す図。
【図１２】シフト量算出部２１０の下位桁チェック部２３０の処理（ステップＳ２３０’）の詳細な処理フローを示す図。
【図１３】シフト量算出部２１０の下位桁チェック部２３０の処理（ステップＳ２３０”）の詳細な処理フローを示す図。
【図１４】シフト量算出部２１０の下位桁チェック部２３０の処理（ステップＳ２３０’’’）の詳細な処理フローを示す図。
【図１５】シフト量算出部２１０の下位桁チェック部２３０の処理（ステップＳ２３０’’’’）の詳細な処理フローを示す図。
【図１６】第５実施形態の符号化処理部の機能構成例を示す図。
【図１７】シフト量決定部１１０の処理フローを示す図。
【図１８】シフト量選定部１３０の処理（ステップＳ１３０）の詳細な処理フロー例を示す図。
【図１９】第５実施形態の変形例１のシフト量選定部１３０の処理フローを示す図。
【図２０】第５実施形態の変形例２のシフト量選定部１３０の処理フローを示す図。
【図２１】第５実施形態の変形例３のシフト量選定部１３０の処理フローを示す図。
【図１】
0004523885.tif 000003
【図２】
0004523885.tif 000004
【図３】
0004523885.tif 000005
【図４】
0004523885.tif 000006
【図５】
0004523885.tif 000007
【図６】
0004523885.tif 000008
【図７】
0004523885.tif 000009
【図８】
0004523885.tif 000010
【図９】
0004523885.tif 000011
【図１０】
0004523885.tif 000012
【図１１】
0004523885.tif 000013
【図１２】
0004523885.tif 000014
【図１３】
0004523885.tif 000015
【図１４】
0004523885.tif 000016
【図１５】
0004523885.tif 000017
【図１６】
0004523885.tif 000018
【図１７】
0004523885.tif 000019
【図１８】
0004523885.tif 000020
【図１９】
0004523885.tif 000021
【図２０】
0004523885.tif 000022
【図２１】
0004523885.tif 000023