FILTER COEFFICIENT OPTIMIZATION APPARATUS, FILTER COEFFICIENT OPTIMIZATION METHOD, AND PROGRAM

20230088204 · 2023-03-23

Assignee

Inventors

Cpc classification

International classification

Abstract

Provided is a filter coefficient optimization technology that makes it possible to design a stable beamformer having a good quality by considering the relationship of a filter coefficient between adjacent frequency bins. A filter coefficient optimization apparatus includes an optimization unit that calculates an optimum value of a filter coefficient w={w.sub.1, . . . , w.sub.F} (w.sub.f is a filter coefficient of a frequency bin f) of a beamformer that emphasizes sound (target sound) from D sound source, a.sub.f,d being an array manifold vector in the frequency bin f corresponding to a sound wave that comes from an angular direction θ.sub.d in which a sound source d exists, the sound wave being a plane wave, the optimization unit calculating the optimum value based on an optimization problem of a cost function defined using a sum of a sum of a cost function L.sub.MV_f(w.sub.f) and a predetermined regularization term, under a predetermined constraint condition, the predetermined regularization term being defined using a difference in phase between adjacent frequency bins relevant to a response w.sub.f.sup.Ha.sub.f,d of the beamformer in the frequency bin f for the angular direction θ.sub.d.

Claims

1. A filter coefficient optimization apparatus including an optimization unit that calculates an optimum value w* of a filter coefficient w={w.sub.1, . . . , w.sub.F} (w.sub.f (f=1, . . . , F, F is an integer equal to or more than 1) is a filter coefficient of a frequency bin f) of a beamformer that emphasizes sound (hereinafter referred to as target sound) from D sound sources (hereinafter referred to as a sound source 1, . . . , a sound source D), D being an integer equal to or more than 1, R.sub.f (f=1, . . . , F) being a spatial correlation matrix for sound other than the target sound relevant to the frequency bin f, L.sub.MF_f(w.sub.f)=w.sub.f.sup.HR.sub.fwf (f=1, . . . , F) being a cost function relevant to a filter coefficient w.sub.f, θ.sub.d (d=1, . . . , D) being an angular direction in which a sound source d exists, a.sub.f,d (f=1, . . . , F, d=1, . . . , D) being an array manifold vector in the frequency bin f corresponding to a sound wave that comes from the angular direction θ.sub.d, the sound wave being a plane wave, L(w) being a cost function relevant to the filter coefficient w and being defined using a sum of a sum Σ.sub.f=1.sup.FL.sub.MV_f(w.sub.f) of the cost function L.sub.MV_f(w.sub.f) and a predetermined regularization term, the optimization unit calculating the optimum value w* based on an optimization problem min.sub.wL(w) relevant to the filter coefficient w, under a predetermined constraint condition, the predetermined regularization term being defined using a difference in phase between adjacent frequency bins relevant to a response w.sub.f.sup.Ha.sub.f,d (f=1, . . . , F, d=1, . . . , D) of the beamformer in the frequency bin f for the angular direction θ.sub.d.

2. The filter coefficient optimization apparatus according to claim 1, wherein: η is a predetermined positive number, and ∠(w.sub.f.sup.Ha.sub.f,d) (f=1, . . . , F, d=1, . . . , D) is the phase of the response w.sub.f.sup.Ha.sub.f,d of the beamformer in the frequency bin f for the angular direction θ.sub.d; and the predetermined regularization term is ηΣ.sub.f=1.sup.F-1Σ.sub.d=1.sup.D|∠(w.sub.f.sup.Ha.sub.f,d)−∠(w.sub.f+1.sup.Ha.sub.f+1,d)|.sub.2π or ηΣ.sub.f=1.sup.F-2Σ.sub.d=1.sup.D|∠(w.sub.f.sup.Ha.sub.f,d)−2∠(w.sub.f+1.sup.Ha.sub.f+1,d)+∠(w.sub.f+2.sup.Ha.sub.f+2,d)|.sub.2π.

3. The filter coefficient optimization apparatus according to claim 1, wherein: η is a predetermined positive number, C is an integer equal to or more than 1, ∠(w.sub.f.sup.Ha.sub.f,d) (f=1, . . . , F, d=1, . . . , D) is the phase of the response w.sub.f.sup.Ha.sub.f,d of the beamformer in the frequency bin f for the angular direction θ.sub.d, and c.sub.f,d (f=1, . . . , F, d=1, . . . , D) is a discrete variable having one value of 1, . . . , C that satisfies ∠(w.sub.f.sup.Ha.sub.f,d)∈[2π(c.sub.f,d−1)/C, 2πc.sub.f,d/C] for the phase ∠(w.sub.f.sup.Ha.sub.f,d); and the predetermined regularization term is ηΣ.sub.f=1.sup.F-1Σ.sub.d=1.sup.D|c.sub.f,d−c.sub.f+1,d|.sub.c.

4. The filter coefficient optimization apparatus according to claim 3, wherein the predetermined constraint condition is expressed by the following expression:
w.sub.f.sup.Ha.sub.f,1=1  [Math. 32] (f=1, . . . , F).

5. The filter coefficient optimization apparatus according to claim 3, wherein the predetermined constraint condition is expressed by the following expression:
|w.sub.f.sup.Ha.sub.f,d|≥1  [Math. 33] (f=1, . . . , F, d=1, . . . , D).

6. The filter coefficient optimization apparatus according to claim 4, wherein: c.sub.f=(c.sub.f,1, . . . , c.sub.f,D) (f=1, . . . , F) is a discrete variable that is defined by a discrete variable c.sub.f,1, . . . , c.sub.f,D; and the optimization unit includes a candidate calculation unit that calculates α.sub.f[c.sub.f] for all values that the discrete variable c.sub.f can have, for each frequency bin f, by the following expression, and adopts c.sub.opt=argmin.sub.cα.sub.F[c] as a value of a variable c.sub.opt: [ Math . 34 ] w f dp [ c f ] argmin w f L MV f ( w f ) s . t . ( w f H a f , d ) [ 2 π ( c f , d - 1 ) / C , 2 π c f , d / C ] ( d = 1 , .Math. , D ) , w f H a f , 1 = 1 c f prev [ c f ] arg min c f - 1 ( α f - 1 [ c f - 1 ] + L ^ η f - 1 ( c f - 1 , c f ) ) α f [ c f ] α f - 1 [ c f prev [ c f ] ] + L ^ η f - 1 ( c f prev [ c f ] , c f ) + L MV f ( w f dp [ c f ] ) ( .Math. L η f ( c f , c f + 1 ) = η .Math. d = 1 D .Math. "\[LeftBracketingBar]" c f , d - c f + 1 , d .Math. "\[RightBracketingBar]" c ) ,  and an optimum value determination unit that calculates an optimum value w.sub.f* of the filter coefficient w.sub.f and the value of the variable c.sub.opt for the frequency bin f, in descending order from F to 1, by the following expression, and obtains the optimum value w* from w*={w.sub.1*, . . . , w.sub.F*}:
w.sub.f*←w.sub.f.sup.dp[c.sub.opt]
c.sub.opt←c.sub.f.sup.prev[c.sub.opt].  [Math. 35]

7. The filter coefficient optimization apparatus according to claim 5, wherein: c.sub.f=(c.sub.f,1, . . . , c.sub.f,D) (f=1, . . . , F) is a discrete variable that is defined by a discrete variable c.sub.f,1, . . . , c.sub.f,D, and {circumflex over ( )}.sub.(f,d),c_f,d (f=1, . . . , F, d=1, . . . , D) is a function relevant to a variable γ.sub.f,d that is defined by the following expression (γ.sub.f,d=w.sub.f.sup.Ha.sub.f,d): [ Math . 36 ] Λ ( f , d ) , c f , d ( γ f , d ) = { 0 ( R ( γ f , d e - 2 π j ( c f , d + 1 ) / 2 C ) 1 , 2 π c f , d C ∠γ f , d 2 π ( c f , d + 1 ) C ) ( otherwise ) ; and the optimization unit calculates the optimum value w* by solving an optimization problem min.sub.{c_f,w_f}(Σ.sub.f=1.sup.FL.sub.MV_f(w.sub.f)+Σ.sub.f=1.sup.FΣ.sub.d=1.sup.D{circumflex over ( )}.sub.(f,d),c_f,d(w.sub.f.sup.Ha.sub.f,d)+ηΣ.sub.f=1.sup.F-1Σ.sub.d=1.sup.D|c.sub.f,d−c.sub.f+1,d|.sub.c) relevant to the filter coefficient w and the discrete variable c.sub.1, . . . , c.sub.F, instead of solving the optimization problem min.sub.wL(w).

8. The filter coefficient optimization apparatus according to claim 7, wherein the optimization unit includes a candidate calculation unit that calculates α.sub.f[c.sub.f] for all values that the discrete variable c.sub.f can have, for each frequency bin f, by the following expression, and adopts c.sub.opt=argmin.sub.cα.sub.F[c] as a value of a variable c.sub.opt: [ Math . 37 ] w f dp [ c f ] arg min w f ( L MV f ( w f ) + .Math. d = 1 D Λ ( f , d ) , c f , d ( w f H a f , d ) ) c f prev [ c f ] argmin c f - 1 ( α f - 1 [ c f - 1 ] + L ^ η f - 1 ( c f - 1 , c f ) ) α f [ c f ] α f - 1 [ c f prev [ c f ] ] + L ^ η f - 1 ( c f prev [ c f ] , c f ) + L MV f ( w f dp [ c f ] ) + .Math. d = 1 D Λ ( f , d ) , c f , d ( w f dp [ c f ] H a f , d ) ( .Math. L η f ( c f , c f + 1 ) = η .Math. d = 1 D .Math. "\[LeftBracketingBar]" c f , d - c f + 1 , d .Math. "\[RightBracketingBar]" c ) and an optimum value determination unit that calculates an optimum value w.sub.f* of the filter coefficient w.sub.f and the value of the variable c.sub.opt for the frequency bin f, in descending order from F to 1, by the following expression, and obtains the optimum value w* from w*={w.sub.1*, . . . , w.sub.F*}:
w.sub.f*←w.sub.f.sup.dp[c.sub.opt]
c.sub.opt←c.sub.f.sup.prev[c.sub.opt].  [Math. 38]

9. A filter coefficient optimization apparatus including an optimization unit that calculates an optimum value w* of a filter coefficient w={w.sub.1, . . . , w.sub.F} (w.sub.f (f=1, . . . , F, F is an integer equal to or more than 1) is a filter coefficient of a frequency bin f) of a beamformer that emphasizes sound (hereinafter referred to as target sound) from D sound sources (hereinafter referred to as a sound source 1, . . . , a sound source D), D being an integer equal to or more than 1, θ.sub.d (d=1, . . . , D) being an angular direction in which a sound source d exists, a.sub.f,d (f=1, . . . , F, d=1, . . . , D) being an array manifold vector in the frequency bin f corresponding to a sound wave that comes from the angular direction θ.sub.d, the sound wave being a plane wave, the optimization unit calculating the optimum value w* by performing derivation so as to reduce a difference in phase between adjacent frequency bins relevant to a response w.sub.f.sup.Ha.sub.f,d (f=1, . . . , F, d=1, . . . , D) of the beamformer in the frequency bin f for the angular direction θ.sub.d.

10. A filter coefficient optimization method including an optimization step in which a filter coefficient optimization apparatus calculates an optimum value w* of a filter coefficient w={w.sub.1, . . . , w.sub.F} (w.sub.f (f=1, . . . , F, F is an integer equal to or more than 1) is a filter coefficient of a frequency bin 0 of a beamformer that emphasizes sound (hereinafter referred to as target sound) from D sound sources (hereinafter referred to as a sound source 1, . . . , a sound source D), D being an integer equal to or more than 1, R.sub.f (f=1, . . . , F) being a spatial correlation matrix for sound other than the target sound relevant to the frequency bin f, L.sub.MV_f(w.sub.f)=w.sub.f.sup.HR.sub.fw.sub.f (f=1, . . . , F) being a cost function relevant to a filter coefficient w.sub.f, θ.sub.d (d=1, . . . , D) being an angular direction in which a sound source d exists, a.sub.f,d (f=1, . . . , F, d=1, . . . , D) being an array manifold vector in the frequency bin f corresponding to a sound wave that comes from the angular direction Od, the sound wave being a plane wave, L(w) being a cost function relevant to the filter coefficient w and being defined using a sum of a sum Σ.sub.f=1.sup.FL.sub.MV_f(w.sub.f) of the cost function L.sub.MV_f(w.sub.f) and a predetermined regularization term, the optimization step being a step of calculating the optimum value w* based on an optimization problem min.sub.wL(w) relevant to the filter coefficient w, under a predetermined constraint condition, the predetermined regularization term being defined using a difference in phase between adjacent frequency bins relevant to a response w.sub.f.sup.Ha.sub.f,d (f=1, . . . , F, d=1, . . . , D) of the beamformer in the frequency bin f for the angular direction θ.sub.d.

11. A filter coefficient optimization method including an optimization step in which a filter coefficient optimization apparatus calculates an optimum value w* of a filter coefficient w={w.sub.1, . . . , w.sub.F} (w.sub.f (f=1, . . . , F, F is an integer equal to or more than 1) is a filter coefficient of a frequency bin f) of a beamformer that emphasizes sound (hereinafter referred to as target sound) from D sound sources (hereinafter referred to as a sound source 1, . . . , a sound source D), D being an integer equal to or more than 1, θ.sub.d (d=1, . . . , D) being an angular direction in which a sound source d exists, a.sub.f,d (f=1, . . . , F, d=1, . . . , D) being an array manifold vector in the frequency bin f corresponding to a sound wave that comes from the angular direction Od, the sound wave being a plane wave, the optimization step being a step of calculating the optimum value w* by performing derivation so as to reduce a difference in phase between adjacent frequency bins relevant to a response w.sub.f.sup.Ha.sub.f,d (f=1, . . . , F, d=1, . . . , D) of the beamformer in the frequency bin f for the angular direction θ.sub.d.

12. A non-transitory computer-readable recording medium storing a program that causes a computer to function as the filter coefficient optimization apparatus according to claim 1.

13. A non-transitory computer-readable recording medium storing a program that causes a computer to function as the filter coefficient optimization apparatus according to claim 9.

Description

BRIEF DESCRIPTION OF DRAWINGS

[0031] FIG. 1 is a diagram showing a filter coefficient optimization algorithm.

[0032] FIG. 2 is a diagram showing a latent variable optimization algorithm.

[0033] FIG. 3 is a diagram showing a filter coefficient optimization algorithm.

[0034] FIG. 4 is a diagram showing a filter coefficient optimization algorithm.

[0035] FIG. 5 is a block diagram showing the configuration of a filter coefficient optimization apparatus 100.

[0036] FIG. 6 is a flowchart showing the behavior of the filter coefficient optimization apparatus 100.

[0037] FIG. 7 is a block diagram showing the configuration of an optimization unit 120.

[0038] FIG. 8 is a flowchart showing the behavior of the optimization unit 120.

[0039] FIG. 9 is a diagram showing an example of the functional configuration of a computer that realizes apparatuses in embodiments of the present invention.

DESCRIPTION OF EMBODIMENTS

[0040] Embodiments of the present invention will be described below in detail. Component units having identical functions are denoted by identical numerals, and repetitive descriptions are omitted.

[0041] Before the description of the embodiments, the notation method in the specification will be described.

[0042] “_” (underscore) indicates an inferior subscript. For example, “x.sup.y_z” shows that “y.sub.z” is a superscript for “x”, and “x.sub.y_z” shows that “y.sub.z” is an inferior subscript for “x”.

[0043] Further, for a certain character “x”, superscripts “{circumflex over ( )}” and “˜” for “{circumflex over ( )}x” and “˜x” should be originally put just above “x”, but “{circumflex over ( )}x” and “˜x” are shown because of the constraint about the notation in the specification.

[0044] <Technical Background>

[0045] A cost term (hereinafter referred to as a regularization term) in which the relationship of the filter coefficient between adjacent frequency bins is considered can be used for designing a stable beamformer having a good quality. In this technique, a new cost function is introduced by adding the regularization term to the cost function Σ.sub.fL.sub.MV_f(w.sub.f) described in Background Art, and the filter coefficient is determined by solving an optimization problem of the new cost function. When a first order difference and a second order difference in a frequency direction of a phase component related to the filter coefficient are used as the relationship of the filter coefficient between adjacent frequency bins, it is expected that it is possible to design a filter having a stable delay characteristic by using a regularization term corresponding to the first order difference and the second order difference, because the first order difference and the second order difference correspond to a phase delay and a group delay respectively.

[0046] The reason why the simple difference in the filter coefficient is not used as the relationship of the filter coefficient between adjacent frequency bins is that the calculation amount can become enormous. For avoiding this problem, in the invention in the present patent application, attention is focused on the difference in phase component related to the filter coefficient, in consideration of the correspondence to the above phase delay and group delay.

[0047] <<Regularization Term by Frequency-Directional Smoothing>>

[0048] Here, a regularization term using the difference in the phase component related to the filter coefficient will be descried as a regularization term by frequency-directional smoothing. The regularization term makes it possible to directly control the group delay and phase delay of the filter constituting the beamformer.

[0049] The response of the beamformer in the frequency bin f for the angular direction θ.sub.d is expressed as a complex number w.sub.f.sup.Ha.sub.f,d. An absolute value |w.sub.f.sup.Ha.sub.f,d| of the response w.sub.f.sup.Ha.sub.f,d of the beamformer is referred to as an amplitude, and a deflection angle ∠(w.sub.f.sup.Ha.sub.f,d) is referred to as a phase. Two forms will be shown below as examples of the regularization term by the frequency-directional smoothing.

[0050] (Continuous Form)

[0051] As an example of the regularization term in the form, there is a regularization term that is defined by the first order difference in phase between adjacent frequency bins. This regularization term is given by the following expression.

[00004] [ Math . 7 ] η .Math. f = 1 F - 1 .Math. d = 1 D .Math. "\[LeftBracketingBar]" ( w f H a f , d ) - ( w f + 1 H a f + 1 , d ) .Math. "\[RightBracketingBar]" 2 π ( 7 )

[0052] Further, as another example, there is a regularization term that is defined by the second order difference in phase between adjacent frequency bins. This regularization term is given by the following expression.

[00005] [ Math . 8 ] η .Math. f = 1 F - 2 .Math. d = 1 D .Math. "\[LeftBracketingBar]" ( w f H a f , d ) - 2 ( w f + 1 H a f + 1 , d ) + ( w f + 2 H a f + 2 , d ) .Math. "\[RightBracketingBar]" 2 π ( 8 )

[0053] In Expression (7) and Expression (8), η (η is a predetermined positive number) represents a weight parameter. Further, |.circle-solid.|.sub.2π in Expression (7) and Expression (8) is a norm that is defined by the following expression.

[00006] [ Math . 9 ] .Math. "\[LeftBracketingBar]" x .Math. "\[RightBracketingBar]" 2 π = min n = .Math. , - 1 , 0 , 1 , .Math. .Math. "\[LeftBracketingBar]" x - 2 n π .Math. "\[RightBracketingBar]" ( 9 )

[0054] That is, |x|.sub.2π is a special norm in which the periodicity of a variable x is considered.

[0055] (Discrete Form)

[0056] For defining the regularization term in the form, a variable c.sub.f,d (f=1, . . . , F, d=1, . . . , D) that depends on the phase of the response w.sub.f.sup.Ha.sub.f,d of the beamformer and that has discrete values is introduced for a filter coefficient w.sub.f and an array manifold vector a.sub.f,d. Specifically, a complex plane is divided into C sectors that are around the origin and that have an equal central angle, consecutive numbers 1, . . . , C are assigned in a counterclockwise manner, and c.sub.f,d is the number of a sector where the complex number w.sub.f.sup.Ha.sub.f,d is positioned. Accordingly, the discrete variable c.sub.f,d has one value of 1, . . . , C. Further, the following expression is satisfied among the filter coefficient w.sub.f, the array manifold vector a.sub.f,d and the discrete variable c.sub.f,d.

[00007] [ Math . 10 ] ( w f H a f , d ) [ 2 π ( c f , d - 1 ) / C , 2 π c f , d / C ] ( 10 )

[0057] The regularization term in the following expression is defined using the discrete variable c.sub.f,d that meets Expression (10).

[00008] [ Math . 11 ] η .Math. f = 1 F - 1 .Math. d = 1 D .Math. "\[LeftBracketingBar]" c f , d - c f + 1 , d .Math. "\[RightBracketingBar]" C ( 11 )

[0058] In Expression (11), η (η is a predetermined positive number) represents a weight parameter. Further, |.circle-solid.|.sub.c in Expression (11) is a norm that is defined by the following

[00009] expression . [ Math 12 ] .Math. "\[LeftBracketingBar]" x .Math. "\[RightBracketingBar]" C = min n = .Math. , - 1 , 0 , 1 , .Math. .Math. "\[LeftBracketingBar]" x - nC .Math. "\[RightBracketingBar]" ( 12 )

[0059] That is, |x|.sub.c is a special norm in which the periodicity of the variable x is considered.

[0060] In the case of c.sub.f=(c.sub.f,1, . . . , c.sub.f,D), the regularization term (hereinafter referred to as {circumflex over ( )}L.sub.η(c.sub.1,1, . . . , c.sub.F,D)) in Expression (11) is expressed as follows.

[00010] [ Math . 13 ] L ^ η ( c 1 , 1 , .Math. , c F , D ) = .Math. f = 1 F - 1 L ^ η f ( c f , c f + 1 ) ( 13 ) L ^ η f ( c f , c f + 1 ) = η .Math. d = 1 D .Math. "\[LeftBracketingBar]" c f , d - c f + 1 , d .Math. "\[RightBracketingBar]" C ( 14 )

[0061] An example of the introduction of the regularization term {circumflex over ( )}L.sub.η(c.sub.1,1, . . . , c.sub.F,D) in the design of the LCMV beamformer will be described below. Assuming that a particularly important target sound exists in the first angular direction (that is, an angular direction θ.sub.1) of D angular directions θ.sub.1, . . . , θ.sub.D, a distortionless constraint condition w.sub.f.sup.Ha.sub.f,1=1 (f=1, . . . , F) is imposed for the angular direction θ.sub.1. In this case, an optimization problem to be solved is shown as follows.

[00011] [ Math . 14 ] min { c f , w f } f = 1 F ( .Math. f = 1 F L MV f ( w f ) + .Math. f = 1 F - 1 L ^ η f ( c f , c f + 1 ) ) s . t . ( w f H a f , d ) [ 2 π ( c f , d - 1 ) / C , 2 π c f , d / C ] ( f = 1 , .Math. , F , d = 1 , .Math. , D ) , w f H a f , 1 = 1 ( f = 1 , .Math. , F ) ( 15 )

[0062] This optimization problem can be solved by evaluating optimum values of the filter coefficient w.sub.f that minimize a cost function Σ.sub.f=1.sup.FL.sub.MV_f(w.sub.f)+Σ.sub.f=1.sup.F-1{circumflex over ( )}L.sub.ηf(c.sub.f, c.sub.f+1) for all values that the discrete variable c.sub.f (f=1, . . . , F) can have, and thereafter, among them, adopting the optimum value that minimizes the value of the cost function Σ.sub.f=1.sup.FL.sub.MV_f(w.sub.f)+Σ.sub.f=1.sup.F-1{circumflex over ( )}L.sub.ηf(c.sub.f, c.sub.f+1), but in fact, there is a more efficient algorithm. The algorithm is shown in FIG. 1.

[0063] When the value of the discrete variable c.sub.f is set, the optimum value of the filter coefficient w.sub.f is determined depending on only the value of the discrete variable c.sub.f, regardless of the values of the other frequency bins. Therefore, by previously the filter coefficient w.sub.f for all values that C.sup.D discrete variables c.sub.f can have for each frequency bin f, the optimization problem results in a shortest path problem relevant to the discrete variable c.sub.f. Accordingly, the optimization problem can be solved at high speed by applying a Dijkstra method. This is used in the algorithm in FIG. 1.

[0064] In the optimization problem in Expression (15), the distortionless constraint condition for one angular direction is used, but a distortionless constraint condition for a plurality of angular directions may be used. However, when the distortionless constraint condition for a plurality of angular directions is used, the constraint sometimes becomes excessively strict, so that the solution is not evaluated. The relaxation of the distortionless constraint condition is possible, but in this case, a non-convex optimization problem is sometimes obtained. Generally, it is difficult to solve the non-convex optimization problem. Hence, a technique for optimizing the filter coefficient by solving a convex optimization problem equivalent to the non-convex optimization problem instead of solving the non-convex optimization problem will be described below.

[0065] First, a method for transforming the non-convex optimization problem into the convex optimization problem equivalent to the non-convex optimization problem and a method for solving the convex optimization problem obtained by the transformation will be described. Next, two examples will be described as examples of the use of the method for the non-convex optimization problem obtained by the relaxation of the constraint condition.

[0066] <<Transformation into Convex Optimization Problem Equivalent to Non-Convex Optimization Problem and Solution Method>>

[0067] Here, a method for transforming the non-convex optimization problem into the convex optimization problem equivalent to the non-convex optimization problem and a method for solving the convex optimization problem obtained by the transformation will be described. An optimization problem relevant to a latent variable ˜w that is defined by the following expression will be discussed below.

[00012] [ Math . 15 ] min w ~ ( L convex ( w ~ ) + .Math. d = 1 D L d ( w ~ ) ) ( 16 )

[0068] Here, L.sub.convex is a strongly convex function relevant to the latent variable ˜w, and L.sub.d (d=1, . . . , D, D is an integer equal to or more than 1) is a function relevant to the latent variable ˜w. That is, L.sub.d (d=1, . . . , D) does not always need to be a convex function.

[0069] Generally, the optimization problem in Expression (16) is an optimization problem in which the cost function is a non-convex function, that is, a non-convex optimization problem. The non-convex optimization problem is a difficult problem as described above, and therefore, is intended to result in a convex optimization problem to be solved more easily, by introducing a certain kind of approximation. Hence, the function L.sub.d(˜w) (d=1, . . . , D) is intended to be approximated by a piecewise convex function constituted by a plurality of convex functions.

[0070] The definition of the piecewise convex function will be described below. For the function L.sub.d(˜w) (d=1, . . . , D) to be approximated, the domain is divided into regions S.sub.d,1, . . . , S.sub.d,C that are C closed convex sets. Then, a function {circumflex over ( )}.sub.d,c (c=1, . . . , C) that is defined for each of the regions S.sub.d,1, . . . , S.sub.d,C is introduced. The newly introduced function {circumflex over ( )}.sub.d,c is a convex function on the region S.sub.d,c, and is a function for approximating the function L.sub.d on the region S.sub.d,c. In the case where the function L.sub.d is a convex function on the region S.sub.d,c, {circumflex over ( )}.sub.d,c=L.sub.d may be adopted on the region S.sub.d,c. Thereby, the function L.sub.d(˜w) can be approximately expressed by the piecewise convex function {circumflex over ( )}.sub.d,c (c=1, . . . , C). Generally, as the value (that is, the number into which the domain of the function L.sub.d is divided) of C is larger, the approximation can be performed by a more accurate piecewise convex function.

[0071] However, when the approximation is used, a discrete variable representing a region to which the optimum value as the solution of the optimization problem belongs is newly added as an optimized object, in addition to the latent variable that is an optimized object in the optimization problem in Expression (16), so that the number of variables to be optimized increases. However, when the discrete variable is fixed, for the latent variable, the optimization problem results in the convex optimization (instead of the non-convex optimization), and therefore can be solved relatively easily. This will be specifically described below. The optimization problem that is formulated using the approximation is expressed by the following expression, with c.sub.d (d=1, . . . , D) as a discrete variable that has a value of 1, . . . , C.

[00013] [ Math . 16 ] min w ~ ( L convex ( w ~ ) + .Math. d = 1 D min c d Λ d , c d ( w ~ ) ) ( 17 )

[0072] Expression (17) is equivalent to the following expression.

[00014] [ Math . 17 ] min c 1 , .Math. , c D ( min w ~ ( L convex ( w ~ ) + .Math. d = 1 D Λ d , c d ( w ~ ) ) ) ( 18 )

[0073] In Expression (18), min.sub.˜w(L.sub.convex(˜w)+Σ.sub.d=1.sup.D{circumflex over ( )}.sub.d,c_d(˜w)) is a convex optimization problem relevant to the latent variable ˜w, and can be solved relatively easily. The procedure will be described below. First, the convex optimization problem min.sub.˜w(L.sub.convex (˜w)+Σ.sub.d=1.sup.D{circumflex over ( )}.sub.d,c_d(˜w)) is solved for all values that the discrete variable (c.sub.1, . . . , c.sub.D) can have. Thereby, the solution of the convex optimization problem min.sub.˜w(L.sub.convex(˜w)+Σ.sub.d=1.sup.D{circumflex over ( )}.sub.d,c_d(˜w)) is evaluated for all values that the C.sup.D discrete variables (c.sub.1, . . . , c.sub.D) can have. Then, among the obtained solutions of the convex optimization problem, a solution that minimizes the value the cost function L.sub.convex(˜w)+Σ.sub.d=1.sup.D{circumflex over ( )}.sub.d,c_d(˜w) is adopted as the optimum value. Thereby, the optimization problem in Expression (18) can be solved. The procedure of the solution method is illustrated in FIG. 2.

[0074] The non-convex optimization problem in Expression (16) can be transformed into the convex optimization problem in Expression (18) that is equivalent to the non-convex optimization problem in Expression (16), and the convex optimization problem in Expression (18) can be solved by the latent variable optimization algorithm in FIG. 2.

Application Example

[0075] Here, an example in which the above-described versatile scheme of evaluating the optimum value after transforming the non-convex optimization problem into the convex optimization problem is applied to the non-convex optimization problem obtained by relaxing the constraint condition in Expression (3) will be described.

[0076] As described above, in the related art in Non Patent Literature 1, Expression (3) that is an equality constraint is imposed for many objects, and therefore, there is a fear that an appropriate filter coefficient cannot be obtained. Hence, it is intended to use a softer constraint condition that is suitable for a real situation. Specifically, it is intended to use a constraint condition (that is, a constraint condition in which there is no constraint relevant to the phase) in which a constraint is imposed for only the amplitude of the response of the beamformer, instead of the constraint condition in Expression (3). For example, the following expression can be used.


[Math. 18]


|w.sub.f.sup.Na.sub.f,d|=1  (19)

[0077] Further, as another example, the following expression can be used.


[Math. 19]


|w.sub.f.sup.Na.sub.f,d|≥1  (20)

[0078] The constraint condition in Expression (19) and the constraint condition in Expression (20) express the constraint that the amplitude of the response of the beamformer is a constant value (specifically, 1) and the constraint that the amplitude of the response of the beamformer only needs to be equal to or more than a constant value (specifically, 1), respectively. Each of the constraint condition in Expression (19) and the constraint condition in Expression (20) is mathematically classified into a non-convex constraint.

[0079] An optimization problem in which the constraint condition is Expression (20) will be discussed below. The constraint condition in Expression (20) shows that the absolute value of the complex number w.sub.f.sup.Ha.sub.f,d is equal to or more than 1. This means that the complex number w.sub.f.sup.Ha.sub.f,d needs to be geometrically positioned on a unit circle or outside the unit circle in the complex plane. Hence, first, the complex plane is equally divided into C sectors that are around the origin. The C sectors correspond to the C regions described above. Then, on the border or inside of each sector, Expression (20) that is the original constraint is approximated by C convex functions.

[0080] This will be specifically described below. The discrete variable c.sub.f,d is adopted as a variable that has a value of 1, . . . , C, for the frequency bin f (f=1, . . . , F) and the sound source d (d=1, . . . , D). Further, γ.sub.f,d=w.sub.f.sup.Ha.sub.f,d is satisfied. A convex function {circumflex over ( )}.sub.(f,d),c_f,d(γ.sub.f,d) (c.sub.f,d=1, . . . , C) that is defined for the frequency bin f (f=1, . . . , F) and the sound source d (d=1, . . . , D) is defined such that the values of the complex number γ.sub.f,d are restricted inside the sectors around the origin at a central angle 2π/C on the complex plane and in a range in which |γ.sub.f,d|≥1 is met. Then, Expression (20) is approximated by a piecewise convex function using the C convex functions {circumflex over ( )}.sub.(f,d),c_f,d(γ.sub.f,d) (c.sub.f,d=1, . . . , C).

[0081] For example, the function {circumflex over ( )}.sub.(f,d),c_f,d may be a function expressed by the following expression.

[00015] [ Math . 20 ] Λ ( f , d ) c f , d ( γ f , d ) := { 0 ( R ( γ f , d e - 2 π j ( c f , d + 1 ) / 2 C 1 , 2 π c f , d C ∠γ f , d 2 π ( c f , d + 1 ) C ) ( otherwise ) ( 21 )

[0082] Here, R(z) represents the real part of a complex number z.

[0083] When the value of C is large, the approximation can be performed more accurately, but in the case of solving the optimization problem using the algorithm in FIG. 2, it is necessary to examine all combinations of the discrete variables, so that the calculation amount increases.

[0084] Thus, the filter coefficient optimization problem in which the constraint condition is Expression (20) results in a convex optimization problem in the following expression.

[00016] [ Math . 21 ] min { c f , w f } f = 1 F ( .Math. f = 1 F L MV f ( w f ) + .Math. f = 1 F .Math. d = 1 D Λ ( f , d ) , c f , d ( w f H a f , d ) ) ( 22 )

[0085] Here, c.sub.f=(c.sub.f,1, . . . , c.sub.f,D) is satisfied.

[0086] This optimization problem can be solved by applying the latent variable optimization algorithm in FIG. 2. An algorithm for solving the optimization problem is shown in FIG. 3. That is, FIG. 3 shows a filter coefficient optimization algorithm that is obtained based on the latent variable optimization algorithm in FIG. 2.

Application Example 2

[0087] The optimization problem of the filter coefficient w that is defined using the cost function Σ.sub.f=1.sup.FL.sub.MV_f(w.sub.f)+Σ.sub.f=1.sup.F-1{circumflex over ( )}L.sub.ηf(c.sub.f, c.sub.f+1) under the constraint condition |w.sub.f.sup.Ha.sub.f,d|≥1 (f=1, . . . , F, d=1, . . . , D) will be discussed. This problem is a non-convex optimization problem that is obtained by using the constraint condition |w.sub.f.sup.Ha.sub.f,d|≥1 (f=1, . . . , F, d=1, . . . , D) instead of the constraint condition w.sub.f.sup.Ha.sub.f,d=1 (f=1, . . . , F, d=1, . . . , D).

[0088] Note that the discrete variable c.sub.f,d defined in <<Regularization Term by Frequency-Directional Smoothing>> and the discrete variable c.sub.f,d defined in <<Application Example>> are the same as each other. Thereby, the above non-convex optimization problem results in the following convex optimization problem.

[00017] [ Math . 22 ] min { c f , w f } f = 1 F ( .Math. f = 1 F L MV f ( w f ) + .Math. f = 1 F .Math. d = 1 D Λ ( f , d ) , c f , d ( w f H a f , d ) + .Math. f = 1 F - 1 L ^ η f ( c f , c f + 1 ) ) ( 23 )

[0089] Similarly to the optimization problem in Expression (15), the optimization problem in Expression (23) can be solved at high speed by applying the Dijkstra method. The algorithm is shown in FIG. 4.

First Embodiment

[0090] From a signal (observation signal) resulting from observing sound (hereinafter referred to as target sound) from D (D is an integer equal to or more than 1) sound sources (hereinafter referred to as a sound source 1, . . . , a sound source D), a filter coefficient optimization apparatus 100 calculates the optimum value w* of the filter coefficient w={w.sub.1, . . . , w.sub.F} (w.sub.f (f=1, . . . , F, F is an integer equal to or more than 1) is the filter coefficient of the frequency bin f) of the beamformer that emphasizes the target sound, using a microphone array constituted by M (M is an integer equal to or more than 1) microphone elements. The observation signal is an input data that is used for the optimization of the filter coefficient, and therefore, the observation signal is referred to as optimization data, hereinafter.

[0091] The filter coefficient optimization apparatus 100 will be described below with reference to FIG. 5 and FIG. 6. FIG. 5 is a block diagram showing the configuration of the filter coefficient optimization apparatus 100. FIG. 6 is a flowchart showing the behavior of the filter coefficient optimization apparatus 100. As shown in FIG. 5, the filter coefficient optimization apparatus 100 includes a setup data calculation unit 110, an optimization unit 120, and a recording unit 190. The recording unit 190 is a component unit that appropriately records the information necessary for the processing in the filter coefficient optimization apparatus 100. For example, the recording unit 190 records the filter coefficient that is an optimized object.

[0092] The behavior of the filter coefficient optimization apparatus 100 will be described with FIG. 6.

[0093] In S110, the setup data calculation unit 110 calculates setup data that is used at the time of the optimization of the filter coefficient w, using the optimization data. In the case of using the cost function for optimizing the filter coefficient w, examples of the setup data include a spatial correlation matrix R.sub.f (f=1, . . . , F) for sound other than the target sound relevant to the frequency bin f and the array manifold vector a.sub.f,d (f=1, . . . , F, d=1, . . . , D) in the frequency bin f corresponding to a sound wave as a plane wave that comes from the angular direction θ.sub.d (d=1, . . . , D) in which the sound source d exists obtained based on the observation signal.

[0094] In S120, the optimization unit 120 calculates the optimum value w* of the filter coefficient w, using the setup data generated in S110. For example, the optimization unit 120 can calculate the optimization value w* based on the optimization problem min.sub.wL(w) relevant to the filter coefficient w under a predetermined constraint condition. Here, L.sub.MV_f(w.sub.f)=w.sub.f.sup.HR.sub.fw.sub.f (f=1, . . . , F) is a cost function relevant to the filter coefficient w.sub.f, and the function L(w) is a cost function relevant to the filter coefficient w and is defined using the sum of the sum Σ.sub.f=I.sup.FL.sub.MV_f(w.sub.f) of the function L.sub.MV_f(w.sub.f) and a predetermined regularization term. Further, the predetermined regularization term is a regularization term that is defined using the difference in phase between adjacent frequency bins relevant to the response w.sub.f.sup.Ha.sub.f,d (f=1, . . . , F, d=1, . . . , D) of the beamformer in the frequency bin f for the angular direction θ.sub.d.

[0095] Some examples of the regularization term will be shown. Here, η is a predetermined positive value, and ∠(w.sub.f.sup.Ha.sub.f,d) (f=1, . . . , F, d=1, . . . , D) expresses the phase of the response w.sub.f.sup.Ha.sub.f,d of the beamformer in the frequency bin f for the angular direction θ.sub.d.

[0096] The first example is ηΣ.sub.f=1.sup.F-1Σ.sub.d=1.sup.D|∠(w.sub.f.sup.Ha.sub.f,d)−∠(w.sub.f+1.sup.Ha.sub.f+1,d)|.sub.2π. The second example is ηΣ.sub.f=1.sup.F-2Σ.sub.d=1.sup.D|∠(w.sub.f.sup.Ha.sub.f,d)−2∠(w.sub.f+1.sup.Ha.sub.f+1,d)+∠(w.sub.f+2.sup.Ha.sub.f+2,d)|.sub.2π.

[0097] The third example is ηΣ.sub.f=1.sup.F-1Σ.sub.d=1.sup.D|c.sub.f,d−c.sub.f+1,d|.sub.c. Here, C is an integer equal to or more than 1, and c.sub.f,d (f=1, . . . , F, d=1, . . . , D) is a discrete variable that has one value of 1, . . . , C that satisfies ∠(w.sub.f.sup.Ha.sub.f,d)∈[2π(c.sub.f,d−1)/C, 2πc.sub.f,d/C] for the phase ∠(w.sub.f.sup.Ha.sub.f,d).

[0098] A case where the third example is used as the regularization term will be described below. In this case, an example of the constraint condition is expressed by the following expression.


[Math. 23]


w.sub.f.sup.Ha.sub.f,1=1  (*)

[0099] (f=1, . . . , F)

[0100] Further, another example of the constraint condition is expressed by the following expression.


[Math. 24]


|w.sub.f.sup.Ha.sub.f,d|≥1  (**)

[0101] (f=1, . . . , F, d=1, . . . , D)

[0102] Case 1 and Case 2 will be described below. Case 1 is a case where the optimization unit 120 solves the optimization problem of the cost function that is defined using the sum of the sum Σ.sub.f=1.sup.FL.sub.MV_f(w.sub.f) of the cost function L.sub.MV_f(w.sub.f) and the regularization term ηΣ.sub.f=1.sup.F-1Σ.sub.d=1.sup.D|c.sub.f,d−c.sub.f+1,d|.sub.c under a constraint condition (*). Case 2 is a case where the optimization unit 120 solves the optimization problem of the cost function that is defined using the sum of the sum Σ.sub.f=1.sup.FL.sub.MV_f(w.sub.f) of the cost function L.sub.MV_f(w.sub.f) and the regularization term ηΣ.sub.f=1.sup.F-1Σ.sub.d=1.sup.D|c.sub.f,d−c.sub.f+1,d|.sub.c under a constraint condition (**).

[0103] (Case 1)

[0104] The optimization unit 120 will be described below with reference to FIG. 7 and FIG. 8. FIG. 7 is a block diagram showing the configuration of the optimization unit 120. FIG. 8 is a flowchart showing the behavior of the optimization unit 120. As shown in FIG. 7, the optimization unit 120 includes an initialization unit 121, a candidate calculation unit 122 and an optimum value determination unit 123.

[0105] The behavior of the optimization unit 120 will be described with FIG. 8. Here, c.sub.f=(c.sub.f,1, . . . , c.sub.f,D) (f=1, . . . , F) is a discrete variable that is defined by the discrete variable c.sub.f,1, . . . , c.sub.f,D.

[0106] In S121, the initialization unit 121 initializes α.sub.0[c.sub.f] (f=1, . . . , F), by the following expression.


α.sub.0[c.sub.f]=0  [Math. 25]

[0107] In S122, the candidate calculation unit 122 calculates α.sub.f[c.sub.f] for all values that the discrete variable c.sub.f can have, for each the frequency f, and sets the value of the variable c.sub.opt to c.sub.opt=argmin.sub.cα.sub.F[c].

[00018] [ Math . 26 ] w f dp [ c f ] argmin w f L MV f ( w f ) s . t . ( w f H a f , d ) [ 2 π ( c f , d - 1 ) / C , 2 π c f , d / C ] ( d = 1 , .Math. , D ) w f H a f , 1 = 1 c f prev [ c f ] argmin c f - 1 ( α f - 1 [ c f - 1 ] + L ^ η f - 1 ( c f - 1 , c f ) ) α f [ c f ] α f - 1 [ c f prev [ c f ] ] + L ^ η f - 1 ( c f prev [ c f ] , c f ) + L MV f ( w f dp [ c f ] ) ( .Math. L η f ( c f , c f + 1 ) = η .Math. d = 1 D .Math. "\[LeftBracketingBar]" c f , d - c f + 1 , d .Math. "\[RightBracketingBar]" c )

[0108] In S123, using the value of the variable c.sub.opt calculated in S122 as an input, the optimum value determination unit 123 calculates the optimum value w.sub.f* of the filter coefficient w.sub.f and the value of the variable c.sub.opt for the frequency bin f, in descending order from F to 1, by the following expression, and obtains the optimum value w* from w*={w.sub.1*, . . . , w.sub.F*}.


w.sub.f*←w.sub.f.sup.dp[c.sub.opt]


c.sub.opt←c.sub.f.sup.prev[c.sub.opt]  [Math. 27]

[0109] (Case 2)

[0110] In this case, the optimization unit 120 may calculate the optimization value w* by solving an optimization problem min.sub.{c_f,w_f}(Σ.sub.f=1.sup.FL.sub.MV_f(w.sub.f)+Σ.sub.f=1.sup.FΣ.sub.d=1.sup.D{circumflex over ( )}.sub.(f,d),c_f,d(w.sub.f.sup.Ha.sub.f,d)+ηΣ.sub.f=1.sup.F-1Σ.sub.d=1.sup.D|c.sub.f,d−c.sub.f+1,d|.sub.c) relevant to the filter coefficient w and the discrete variable c.sub.1, . . . , c.sub.F, instead of solving the optimization problem under the constraint condition (**). Here, c.sub.f=(c.sub.f,1, . . . , c.sub.f,D) (f=1, . . . , F) is a discrete variable that is defined by the discrete variable c.sub.f,1, . . . , c.sub.f,D, and {circumflex over ( )}.sub.(f,d),c_f,d (f=1, . . . , F, d=1, . . . , D) is a function relevant to a variable γ.sub.f,d that is defined by the following expression (γ.sub.f,d=w.sub.f.sup.Ha.sub.f,d).

[00019] [ Math . 28 ] Λ ( f , d ) , c f , d ( γ f , d ) = { 0 ( R ( γ f , d e - 2 π j ( c f , d + 1 ) / 2 C 1 , 2 π c f , d C ∠γ f , d 2 π ( c f , d + 1 ) C ) ( otherwise ) ( 21 )

[0111] The optimization unit 120 will be described below with reference to FIG. 7 and FIG. 8. FIG. 7 is a block diagram showing the configuration of the optimization unit 120. FIG. 8 is a flowchart showing the behavior of the optimization unit 120. As shown in FIG. 7, the optimization unit 120 includes an initialization unit 121, a candidate calculation unit 122 and an optimum value determination unit 123.

[0112] The behavior of the optimization unit 120 will be described with FIG. 8.

[0113] In S121, the initialization unit 121 initializes α.sub.0[c.sub.f] (f=1, . . . , F), by the following expression.


α.sub.0[c.sub.f]=0  [Math. 29]

[0114] In S122, the candidate calculation unit 122 calculates α.sub.f[c.sub.f] for all values that the discrete variable c.sub.f can have, for each the frequency bin f, and sets the value of the variable c.sub.opt to c.sub.opt=argmin.sub.cα.sub.F[c].

[00020] [ Math . 30 ] w f dp [ c f ] arg min w f ( L MV f ( w f ) + .Math. d = 1 D Λ ( f , d ) , c f , d w f H a f , d ) ) c f prev [ c f ] argmin c f - 1 ( α f - 1 [ c f - 1 ] + L ^ η f - 1 ( c f - 1 , c f ) ) α f [ c f ] α f - 1 [ c f prev [ c f ] ] + L ^ η f - 1 ( c f prev [ c f ] , c f ) + L MV f ( w f dp [ c f ] ) + .Math. d = 1 D Λ ( f , d ) , c f , d ( w f dp [ c f ] H a f , d ) ( .Math. L η f ( c f , c f + 1 ) = η .Math. d = 1 D .Math. "\[LeftBracketingBar]" c f , d - c f + 1 , d .Math. "\[RightBracketingBar]" c )

[0115] In S123, using the value of the variable c.sub.opt calculated in S122 as an input, the optimum value determination unit 123 calculates the optimum value w.sub.f* of the filter coefficient w.sub.f and the value of the variable c.sub.opt for the frequency bin f, in descending order from F to 1, by the following expression, and obtains the optimum value w* from w*={w.sub.1*, . . . , w.sub.F}.


w.sub.f*←w.sub.f.sup.dp[c.sub.opt]


c.sub.opt←c.sub.f.sup.prov[c.sub.opt]  [Math. 31]

[0116] As described above, it can be said that the optimization unit 120 calculates the optimum value w* by performing derivation so as to reduce the difference in phase between adjacent frequency bins relevant to the response w.sub.f.sup.Ha.sub.f,d (f=1, . . . , F, d=1, . . . , D) of the beamformer in the frequency bin f for the angular direction θ.sub.d.

[0117] According to the embodiments of the present invention, it is possible to design a stable beamformer having a good quality, by optimizing the filter coefficient in consideration of the relationship of the filter coefficient between adjacent frequency bins.

[0118] <Supplement>

[0119] FIG. 9 is a diagram showing an example of the functional configuration of a computer that realizes the apparatuses described above. The processing in the apparatuses described above can be executed when a recording unit 2020 reads programs for causing a computer to function as the apparatuses described above and a control unit 2010, an input unit 2030, an output unit 2040 and the like to behave.

[0120] For example, as a single hardware entity, the apparatus in the present invention includes an input unit that can be connected with a keyboard and the like, an output unit that can be connected with a liquid crystal display and the like, a communication unit that can be connected with a communication device (for example, a communication cable) capable of communicating with the exterior of the hardware entity, a CPU (Central Processing Unit, a cache memory, a register and the like may be included), a RAM and a ROM that are memories, an external storage device that is a hard disk, and a bus that connects the input unit, the output unit, the communication unit, the CPU, the RAM, the ROM and the external storage device such that data can be exchanged. Further, as necessary, the hardware entity may be provided with a device (drive) that can perform reading and writing for a record medium such as a CD-ROM. As a physical entity including the hardware resources, there are a general-purpose computer and the like.

[0121] In the external storage device of the hardware entity, programs necessary for realizing the above functions, data necessary in the processing of the programs, and the like are stored (for example, the program may be stored in a ROM that is a read-only storage without being limited to the external storage device). Further, data and others obtained by the processing of the programs are appropriately stored in the RAM, the external storage device or the like.

[0122] In the hardware entity, the programs stored in the external storage device (or the ROM or the like) and the data necessary for the processing of the programs are read in the memory as necessary, and are appropriately interpreted, executed or processed by the CPU. As a result, the CPU realizes predetermined functions (the above component units expressed as the . . . unit, the . . . means and the like).

[0123] The present invention is not limited to the above-described embodiments, and modifications can be appropriately made without departing from the spirit of the present invention. Further, the processes described in the above embodiments do not need to be executed in a time-series manner in the order of the descriptions, and may be executed in parallel or individually, depending on the processing capacities of the devices that execute the processes or as necessary.

[0124] In the case where the processing functions in the hardware entity (the apparatus in the present invention) described in the above embodiments are realized by a computer as described above, the processing contents of the functions to be included in the hardware entity are described by programs. Then, the programs are executed by the computer, and thereby, the processing functions in the above hardware entity are realized on the computer.

[0125] The programs describing the processing contents can be recorded in a computer-readable record medium. As the computer-readable record medium, for example, a magnetic record device, an optical disk, a magneto-optical record medium, a semiconductor memory and others may be used. Specifically, for example, a hard disk device, a flexible disk, a magnetic tape or the like can be used as the magnetic record device, a DVD (Digital Versatile Disc), a DVD-RAM (Random Access Memory), a CD-ROM (Compact Disc Read Only Memory), a CD-R (Readable)/RW (ReWritable) or the like can be used as the optical disk, an MO (Magneto-Optical disc) or the like can be used as the magneto-optical record medium, and an EEP-ROM (Electronically Erasable and Programmable-Read Only Memory) or the like can be used as the semiconductor memory.

[0126] For example, the distribution of the programs is performed by sale, transfer, lending or the like of a portable record medium such as a DVD or CD-ROM in which the programs are recorded. Furthermore, the programs may be distributed by storing the programs in a storage device of a server computer and transmitting the programs from the server computer to another computer through a network.

[0127] For example, the computer that executes the programs, first, once stores the programs recorded in the portable record medium or the programs transmitted from the server computer, in its own storage device. Then, at the time of the execution of the processing, the computer reads a program stored in its own storage device, and executes a process in accordance with the read program. Further, as another form of the execution of the programs, the computer may read a program directly from the portable record medium, and may execute a process in accordance with the program.

[0128] Furthermore, whenever a program is transmitted from the server computer to the computer, the computer may execute a process in accordance with the received program. Further, the above-described processes may be executed by a so-called ASP (Application Service Provider) service in which the processing functions are realized by only execution instruction and result acquisition, without the transmission of the programs from the server computer to the computer. The program in the form includes information that is supplied for the processing by an electronic computer and that is similar to the program (for example, data that is not a direct command to the computer but has a property of prescribing the processing by the computer).

[0129] In the form, the hardware entity is configured by executing predetermined programs on the computer, but at least some of the processing contents may be realized in hardware.

[0130] The above description of the embodiment of the present invention has been presented for the purpose of exemplification and description. It is not intended to be exhaustive, and it is not intended to limit the invention to the disclosed strict form. Modifications and variations can be made from the above disclosure. The embodiments are selected and expressed, such that the best exemplification of the principle of the present invention is provided and such that a person skilled in the art can use the present invention as various embodiments suitable for deliberated actual use or can use the present invention while adding various modifications. All modifications and variations fall within the scope of the present invention that is determined by the attached claims interpreted based on a range given justly, lawfully and fairly.