<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.0 20120330//EN" "JATS-journalpublishing1.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">INFORMATICA</journal-id>
<journal-title-group><journal-title>Informatica</journal-title></journal-title-group>
<issn pub-type="epub">1822-8844</issn><issn pub-type="ppub">0868-4952</issn><issn-l>0868-4952</issn-l>
<publisher>
<publisher-name>Vilnius University</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">INFO1135</article-id>
<article-id pub-id-type="doi">10.15388/Informatica.2017.135</article-id>
<article-categories><subj-group subj-group-type="heading">
<subject>Research Article</subject></subj-group></article-categories>
<title-group>
<article-title>An Improved Version of Algebraic Codebook Search Algorithm for an AMR-WB Speech Coder</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Yeh</surname><given-names>Ming-Che</given-names></name><email xlink:href="tp26610@gmail.com">tp26610@gmail.com</email><xref ref-type="aff" rid="j_info1135_aff_001">1</xref><bio>
<p><bold>M.-C. Yeh</bold> received the BS and MS degrees in electrical engineering from National Taipei University of Technology, Taipei, Taiwan, in 2012 and 2013, respectively. He is currently pursuing a PhD degree at the National Taipei University of Technology. His major area of research is speech processing and voice over IP, especially the NAT traversal algorithm and firewall traversal method.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Yeh</surname><given-names>Cheng-Yu</given-names></name><email xlink:href="cy.yeh@ncut.edu.tw">cy.yeh@ncut.edu.tw</email><xref ref-type="aff" rid="j_info1135_aff_002">2</xref><xref ref-type="corresp" rid="cor1">∗</xref><bio>
<p><bold>C.-Y. Yeh</bold> received the BS and MS degrees in electrical engineering and the PhD degree in Graduate Institute of Mechanical and Electrical Engineering from National Taipei University of Technology, Taipei, Taiwan, in 2000, 2002, and 2006, respectively. Currently, he is an associate professor at the Department of Electrical Engineering, National Chin-Yi University of Technology, Taichung, Taiwan. His research interests include speech and image signal processing, network communication, and embedded system applications.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Hwang</surname><given-names>Shaw-Hwa</given-names></name><email xlink:href="hsf@ntut.edu.tw">hsf@ntut.edu.tw</email><xref ref-type="aff" rid="j_info1135_aff_002">2</xref><bio>
<p><bold>S.-H. Hwang</bold> received the BS and MS degrees in communication engineering and a PhD degree in electronic engineering from National Chiao Tung University, Hsinchu, Taiwan, in 1989, 1991, and 1996, respectively. He is currently a professor at the Department of Electrical Engineering, National Taipei University of Technology, Taipei, Taiwan. His major area of research is speech processing and voice over IP, especially video streaming over IP and NAT traversal method.</p></bio>
</contrib>
<aff id="j_info1135_aff_001"><label>1</label>Department of Electrical Engineering, <institution>National Taipei University of Technology</institution>, 1, Sec. 3, Chung-hsiao E. Rd., Taipei 10608, <country>Taiwan, R.O.C.</country></aff>
<aff id="j_info1135_aff_002"><label>2</label>Department of Electrical Engineering, <institution>National Chin-Yi University of Technology</institution>, 57, Sec. 2, Zhongshan Rd., Taiping Dist., Taichung 41170, <country>Taiwan, R.O.C.</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>∗</label>Corresponding author.</corresp>
</author-notes>
<pub-date pub-type="ppub"><year>2017</year></pub-date><pub-date pub-type="epub"><day>1</day><month>1</month><year>2017</year></pub-date><volume>28</volume><issue>2</issue><fpage>403</fpage><lpage>414</lpage><history><date date-type="received"><month>10</month><year>2015</year></date><date date-type="accepted"><month>5</month><year>2016</year></date></history>
<permissions><copyright-statement>© 2017 Vilnius University</copyright-statement><copyright-year>2017</copyright-year>
<license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/4.0/">
<license-p>Open access article under the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">CC BY</ext-link> license.</license-p></license></permissions>
<abstract>
<p>An adaptive multi-rate wideband (AMR-WB) speech codec with a sampling rate of 16 kHz is known as one of the speech codecs employed in handheld devices that support 4G mobile communication systems. When applied to smartphones, it provides a superior speech quality relative to conventional speech codecs. Nonetheless, a major disadvantage is that an algebraic codebook search occupies a significant computational load in an AMR-WB encoder. In other words, the high computational complexity accounts for the high power consumption on a smartphone battery. This paper presents an improved version of depth-first tree search (DF) algorithm as a means to considerably reduce the complexity of an algebraic codebook search in an AMR-WB speech codec. This proposed search algorithm firstly involves the choice of a specified number of candidate pulses according to a pulse contribution ranking. Subsequently, a DF search is performed on the candidate pulses for a set of best pulses. Consequently, the target of the search and computational complexity reduction can be reached as expected. With a well maintained speech quality, this proposal demonstrates a search performance superiority over a DF and a global pulse replacement approach. Furthermore, with DF as a benchmark, a computational load reduction above 73% is reached in all coding modes.</p>
</abstract>
<kwd-group>
<label>Key words</label>
<kwd>speech codec</kwd>
<kwd>algebraic code-excited linear-prediction (ACELP)</kwd>
<kwd>algebraic codebook search</kwd>
<kwd>depth-first tree search</kwd>
<kwd>VoIP</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="j_info1135_s_001">
<label>1</label>
<title>Introduction</title>
<p>Due to the double advantage of low bit rate and high speech quality, the algebraic code-excited linear-prediction (ACELP)-based speech coding technique (Adoul <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1135_ref_001">1987</xref>; Laflamme <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1135_ref_010">1991</xref>; Salami <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1135_ref_015">1998</xref>; Bessette <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1135_ref_002">2002</xref>) is the type of technique most widely used to digital speech communication systems, and is adopted in a great number of speech codec standards, such as G.723.1, G.729 (ITU-T Recommendation and 729, <xref ref-type="bibr" rid="j_info1135_ref_006">1996</xref>), G.729.1 (ITU-T Recommendation and 1, <xref ref-type="bibr" rid="j_info1135_ref_008">2006</xref>; Geiser <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1135_ref_005">2007</xref>) in International Telecommunication Union (ITU), adaptive multi-rate narrowband (AMR-NB) (3GPP TS 26.090, <xref ref-type="bibr" rid="j_info1135_ref_019">2012a</xref>) and wideband (AMR-WB) (3GPP TS 26.190, <xref ref-type="bibr" rid="j_info1135_ref_020">2012b</xref>; Ojala <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1135_ref_013">2006</xref>; Varga <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1135_ref_017">2006</xref>) in the 3rd Generation Partnership Project (3GPP). Among such protocols, an AMR-WB speech codec with a 16 kHz sampling rate is applied to 4G mobile communication system as a way to remarkably improve the speech quality of a smartphone.</p>
<p>An AMR-WB codec is a multi-mode speech codec with 9 wideband speech coding modes with bitrates of 23.85, 23.05, 19.85, 18.25, 15.85, 14.25, 12.65, 8.85 and 6.6 kbps. ACELP is developed as an excellent speech coding technique, but a price paid is a high computational complexity required in an AMR-WB codec, particularly much higher than in an AMR-NB one. Using an AMR-WB speech codec, the speech quality of a smartphone can be improved, but at the cost of high power consumption on a smartphone battery.</p>
<p>In an AMR-WB encoder, a depth-first tree search (DF) algorithm is performed for the purpose of an algebraic codebook search, and a DF search is found to occupy a significant computational load in various speech coding modes. A brief literature survey on the complexity reduction in algebraic codebook search is given as follows. An attempt is made to decrease the number of the candidate positions in a candidate scheme for fast ACELP search (Chen <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1135_ref_003">2002</xref>). As presented in Park <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1135_ref_014">2002</xref>), the least significant pulse is replaced in an iterative manner. Developed on the basis of Park <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1135_ref_014">2002</xref>), a global pulse replacement (GPR) (Lee <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1135_ref_011">2003</xref>), is adopted by G.729.1 (ITU-T Recommendation and 1, <xref ref-type="bibr" rid="j_info1135_ref_008">2006</xref>). An iteration-free pulse replacement (IFPR) (Lee <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1135_ref_012">2007</xref>) method and a number of previously published reduced candidate mechanism (RCM) based search algorithms (Yeh and Su, <xref ref-type="bibr" rid="j_info1135_ref_018">2012</xref>; Chu <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1135_ref_004">2014</xref>; Ku <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1135_ref_009">2014</xref>) are proposed to further reduce the search complexity in an efficient way. In addition, the issue of computational complexity reduction has been addressed in literature, as presented in Tsai and Yang (<xref ref-type="bibr" rid="j_info1135_ref_016">2006</xref>).</p>
<p>As can be found in literature, a continuous effort has been made to address the issue of computational complexity reduction for an AMR-WB speech codec. A major motivation behind this is to meet the energy saving requirement on handheld devices, e.g. smartphones, for an extended operational time period.</p>
<p>This improved algebraic codebook search algorithm is a combined use of the RCM approach (Yeh and Su, <xref ref-type="bibr" rid="j_info1135_ref_018">2012</xref>) and a DF algorithm. An RCM approach requires to locate 2–6 candidate pulses of each track, as a prerequisite, in an algebraic codebook search at 12.65 kbps and higher AMR-WB modes. In this context, there is no way to reduce the search complexity using RCM. For this sake, a specified number of candidate pulses are located out of each track in advance of a search task, and then the scope of DF search for a set of best pulses is confined within all the candidate pulses. In this manner, the search complexity can be reduced significantly, and the mechanism of the candidate pulse determination will be detailed herein.</p>
<p>This paper is outlined as follows. The coding criterion of algebraic codebook search in AMR-WB is briefly reviewed in Section <xref rid="j_info1135_s_002">2</xref>. Presented in Section <xref rid="j_info1135_s_005">3</xref> is an efficient approach for the purpose of search complexity reduction. Experimental results are demonstrated and discussed in Section <xref rid="j_info1135_s_008">4</xref>. This work is summarized at the end of this paper.</p>
</sec>
<sec id="j_info1135_s_002">
<label>2</label>
<title>Algebraic Codebook Search in AMR-WB</title>
<p>In AMR-WB speech codec, the algebraic codebook structures corresponding to nine coding modes with bit rates of 23.85, 23.05, 19.85, 18.25, 15.85, 14.25, 12.65, 8.85 and 6.60 kbps are given in 3GPP TS 26.190 (<xref ref-type="bibr" rid="j_info1135_ref_020">2012b</xref>). The codebook is structured using an interleaved single-pulse permutation (ISPP) scheme, where each pulse is with an amplitude of +1 or −1. As can be found, a codebook contains 2 tracks, each with 32 pulse positions, in the 6.60 kbps mode, and a nonzero pulse is located. In contrast, a codebook has 4 tracks in the remaining eight coding modes with bit rates of 8.85–23.85 kbps, and 16 pulse positions are assigned to each track. Subsequently, 1–6 nonzero pulses are located according to the specified coding mode.</p>
<p>The optimal codevector <inline-formula id="j_info1135_ineq_001"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${\mathbf{c}_{k}}=\{{c_{k}}(n)\}$]]></tex-math></alternatives></inline-formula> is thus found by minimizing the mean squared weighted error between the original and the synthesized speeches (Bessette <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1135_ref_002">2002</xref>), defined as 
<disp-formula id="j_info1135_eq_001">
<label>(1)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">‖</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">Hc</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">‖</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\varepsilon _{k}}=\| \mathbf{x}-g{\mathbf{Hc}_{k}}{\| ^{2}},\]]]></tex-math></alternatives>
</disp-formula> 
where <bold>x</bold> denotes the target vector, <italic>g</italic> a scaling gain factor, and <bold>H</bold> a lower triangular convolution matrix. It can be shown that the optimal codevector is the one maximizing the term <inline-formula id="j_info1135_ineq_002"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${Q_{k}}$]]></tex-math></alternatives></inline-formula> (Bessette <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1135_ref_002">2002</xref>; 3GPP TS 26.190, <xref ref-type="bibr" rid="j_info1135_ref_020">2012b</xref>): 
<disp-formula id="j_info1135_eq_002">
<label>(2)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">Hc</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">Hc</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">dc</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="bold">Φ</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {Q_{k}}=\frac{{({\mathbf{x}^{\mathrm{T}}}{\mathbf{Hc}_{k}})^{2}}}{{\mathbf{c}_{k}^{\mathrm{T}}}{\mathbf{H}^{\mathrm{T}}}{\mathbf{Hc}_{k}}}=\frac{{({\mathbf{dc}_{k}})^{2}}}{{\mathbf{c}_{k}^{\mathrm{T}}}\boldsymbol{\Phi }{\mathbf{c}_{k}}},\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1135_ineq_003"><alternatives><mml:math>
<mml:mi mathvariant="bold">d</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">H</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{d}={\mathbf{x}^{\mathrm{T}}}\mathbf{H}$]]></tex-math></alternatives></inline-formula>, the correlation function, is expressed as 
<disp-formula id="j_info1135_eq_003">
<label>(3)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mn>0</mml:mn>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ d(n)={\sum \limits_{i=n}^{L-1}}x(i)h(i-n),\hspace{1em}0\leqslant n\leqslant L-1,\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1135_ineq_004"><alternatives><mml:math>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$h(n)$]]></tex-math></alternatives></inline-formula> is the impulse response of the weighted synthesis filter, <italic>L</italic> is the speech subframe size. The correlations of <inline-formula id="j_info1135_ineq_005"><alternatives><mml:math>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$h(n)$]]></tex-math></alternatives></inline-formula> are contained in the symmetric matrix <inline-formula id="j_info1135_ineq_006"><alternatives><mml:math>
<mml:mi mathvariant="bold">Φ</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">H</mml:mi></mml:math><tex-math><![CDATA[$\boldsymbol{\Phi }={\mathbf{H}^{\mathrm{T}}}\mathbf{H}$]]></tex-math></alternatives></inline-formula>, where the entries are given by 
<disp-formula id="j_info1135_eq_004">
<label>(4)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">ϕ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mn>0</mml:mn>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \phi (i,j)={\sum \limits_{n=j}^{L-1}}h(n-i)h(n-j),\hspace{1em}0\leqslant i\leqslant L-1,\hspace{2.5pt}i\leqslant j\leqslant L-1.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>In an attempt to locate the optimal vector, (<xref rid="j_info1135_eq_002">2</xref>) is evaluated repeatedly and a full search is performed for <inline-formula id="j_info1135_ineq_007"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">FS</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${N_{\mathrm{FS}}}$]]></tex-math></alternatives></inline-formula> number of times, given as 
<disp-formula id="j_info1135_eq_005">
<label>(5)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">FS</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∏</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∏</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>!</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>!</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>!</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {N_{\mathrm{FS}}}={\prod \limits_{i=1}^{{N_{\mathrm{T}}}}}{C_{{N_{\mathrm{s}}}({T_{i}})}^{{N_{\mathrm{p}}}}}={\prod \limits_{i=1}^{{N_{\mathrm{T}}}}}\frac{({N_{\mathrm{p}}})!}{({N_{\mathrm{s}}}({T_{i}}))!({N_{\mathrm{p}}}-{N_{\mathrm{s}}}({T_{i}}))!},\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1135_ineq_008"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${N_{\mathrm{T}}}$]]></tex-math></alternatives></inline-formula> represents the number of tracks, <inline-formula id="j_info1135_ineq_009"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${N_{\mathrm{p}}}$]]></tex-math></alternatives></inline-formula> the number of pulse positions assigned to each track, and <inline-formula id="j_info1135_ineq_010"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${N_{\mathrm{s}}}({T_{i}})$]]></tex-math></alternatives></inline-formula> the number of optimal pulses that need to be located in track <italic>i</italic>. Taking the 12.65 kbps mode in 3GPP TS 26.190 (<xref ref-type="bibr" rid="j_info1135_ref_020">2012b</xref>) as an instance, <inline-formula id="j_info1135_ineq_011"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[${N_{\mathrm{T}}}=4$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1135_ineq_012"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[${N_{\mathrm{p}}}=16$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1135_ineq_013"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn></mml:math><tex-math><![CDATA[${N_{\mathrm{s}}}({T_{i}})=2$]]></tex-math></alternatives></inline-formula> for all <italic>i</italic>, meaning that it requires as many as <inline-formula id="j_info1135_ineq_014"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>16</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${({C_{2}^{16}})^{4}}$]]></tex-math></alternatives></inline-formula> full searches that is an impractically large load to implement. For this sake, a DF algorithm is employed in AMR-WB for search load reduction.</p>
<table-wrap id="j_info1135_tab_001">
<label>Table 1</label>
<caption>
<p>Depth-first tree search complexity in AMR-WB.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Mode (kbit/s)</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Number of levels in tree search</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Number of no search levels</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Tested combinations in remaining levels (<italic>NTested</italic>)</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Iteration (<italic>NIter</italic>)</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Total searches (<italic>NIter</italic> × <italic>NTested</italic>)</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">23.85</td>
<td style="vertical-align: top; text-align: left">12</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_015"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>5</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>7</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[$(2+2+3+4+5+6+7+8+8+8)\times 16$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left">848</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">23.05</td>
<td style="vertical-align: top; text-align: left">12</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_016"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>5</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>7</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[$(2+2+3+4+5+6+7+8+8+8)\times 16$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">1696</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">19.85</td>
<td style="vertical-align: top; text-align: left">9</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_017"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>5</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>7</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[$(2+3+4+5+6+7+8)\times 16$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left">1680</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">18.25</td>
<td style="vertical-align: top; text-align: left">8</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_018"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[$(4+4+6+6+8+8)\times 16$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left">1728</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">15.85</td>
<td style="vertical-align: top; text-align: left">6</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_019"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[$(4+6+8+8)\times 16$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">1664</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">14.25</td>
<td style="vertical-align: top; text-align: left">5</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_020"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[$(4+6+8+8)\times 16$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">1664</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">12.65</td>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">1</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_021"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[$(4+8+8)\times 16$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">1280</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">8.85</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">0</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_022"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[$(4+8)\times 16$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">768</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">6.60</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_info1135_ineq_023"><alternatives><mml:math>
<mml:mn>32</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>32</mml:mn></mml:math><tex-math><![CDATA[$32\times 32$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1024</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>As listed in Table <xref rid="j_info1135_tab_001">1</xref>, the number of levels in a tree search is evaluated as one-half the total number of nonzero pulses. In other words, there are 2 nonzero pulse contained in each level, and a search is conducted on consecutive levels to locate a pair of best nonzero pulses. The search scope in each level is confined to 2 neighbouring tracks, say, <inline-formula id="j_info1135_ineq_024"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({T_{0}},{T_{1}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1135_ineq_025"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({T_{1}},{T_{2}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1135_ineq_026"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({T_{2}},{T_{3}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1135_ineq_027"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({T_{3}},{T_{0}})$]]></tex-math></alternatives></inline-formula>. A pulse is located until a set of best pulses is found. Besides, 3 parameters are specified for each speech coding mode. The first parameter, designated as the number of no search level, refers to the number of levels where a set of best pulses is specified directly, meaning that there is no need to perform any search task. The second, termed as <italic>NTested</italic>, refers to the test combinations in the remaining levels, and the third, denoted by <italic>NIter</italic>, represents the number of iterations. Accordingly, the total number of searches is given as <italic>NIter</italic> × <italic>NTested</italic>.</p>
<p>A DF search is illustrated with the example of 12.65 kbps mode. The goal is to locate the desired 8 best pulses, according to which there are 4 levels involved in a tree search. As the first step, a set of best pulses is specified directly, not by way of search, in level 1. Subsequently, respective numbers of searches are performed over the remaining levels, as specified in Table <xref rid="j_info1135_tab_001">1</xref>, i.e. <inline-formula id="j_info1135_ineq_028"><alternatives><mml:math>
<mml:mn>4</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[$4\times 16$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1135_ineq_029"><alternatives><mml:math>
<mml:mn>8</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[$8\times 16$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1135_ineq_030"><alternatives><mml:math>
<mml:mn>8</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[$8\times 16$]]></tex-math></alternatives></inline-formula>, such that the best pulses for each level are located. In this manner, it requires 4 iterations to get the search done, that is, a total of <inline-formula id="j_info1135_ineq_031"><alternatives><mml:math>
<mml:mn>4</mml:mn>
<mml:mo>×</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>16</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>16</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>16</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>1280</mml:mn></mml:math><tex-math><![CDATA[$4\times (4\times 16+8\times 16+8\times 16)=1280$]]></tex-math></alternatives></inline-formula> searches are required. In short, the DF search accounts for a significant computational load in the AMR-WB encoder operation. Besides, two existing methods, the GPR and RCM approaches, will be discussed in this section.</p>
<sec id="j_info1135_s_003">
<label>2.1</label>
<title>The GPR Search Approach</title>
<p>The GPR approach is derived from the least important pulse replacement approach (Park <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1135_ref_014">2002</xref>). In order to prevent the termination of the pulse replacement procedure without finding the best codevector in the GPR algorithm, except for the only track that contains the least important pulse, all the tracks are searched for a new pulse. That is, the new pulse is sought by replacing each pulse in each track with a new one so that the (2) associated with a new codevector is maximized. On the ground that the variation in (2) is always maximized during the replacement procedure, the codevector approaches the best solution rapidly as this procedure is repeated. When the value of <inline-formula id="j_info1135_ineq_032"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${Q_{k}}$]]></tex-math></alternatives></inline-formula> once reaches the upper bound, the search procedure is then terminated. Furthermore, the average number of searches, required by the GPR approach, is represented as 
<disp-formula id="j_info1135_eq_006">
<label>(6)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">GPR</mml:mi>
<mml:mtext>-</mml:mtext>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:mo maxsize="2.45em" minsize="2.45em" fence="true">{</mml:mo>
<mml:mspace width="-0.1667em"/>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mpadded height="0pt" depth="0pt">
<mml:mphantom>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">GPR</mml:mi>
<mml:mtext>-</mml:mtext>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo></mml:mphantom></mml:mpadded>
<mml:mo>+</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo stretchy="false">≠</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="2.45em" minsize="2.45em" fence="true">}</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {N_{\mathrm{GPR}\text{-}R}}=1+{\sum \limits_{i=1}^{{N_{\mathrm{T}}}}}\big({N_{\mathrm{p}}}-{N_{\mathrm{s}}}({T_{i}})\big){N_{\mathrm{s}}}({T_{i}})+\frac{R-1}{{N_{\mathrm{T}}}}{\sum \limits_{k=1}^{{N_{\mathrm{T}}}}}\Bigg\{\hspace{-0.1667em}\big({N_{\mathrm{p}}}-{N_{\mathrm{s}}}({T_{k}})\big)\big({N_{\mathrm{s}}}({T_{k}})-1\big)\\ {} \displaystyle \phantom{{N_{\mathrm{GPR}\text{-}R}}=}+{\sum \limits_{i=1,\hspace{0.1667em}i\ne k}^{{N_{\mathrm{T}}}}}\big({N_{\mathrm{p}}}-{N_{\mathrm{s}}}({T_{i}})\big){N_{\mathrm{s}}}({T_{i}})\Bigg\}\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
where <italic>R</italic> represents the iteration number. For instance, <inline-formula id="j_info1135_ineq_033"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[${N_{\mathrm{T}}}=4$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1135_ineq_034"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[${N_{\mathrm{p}}}=16$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1135_ineq_035"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[${N_{\mathrm{s}}}({T_{i}})=4$]]></tex-math></alternatives></inline-formula> for all <italic>i</italic> in the 18.25 kbps mode, that is, the initial <inline-formula id="j_info1135_ineq_036"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${Q_{k}}$]]></tex-math></alternatives></inline-formula> is evaluated and the initial codevector is firstly yielded with one search. Subsequently, it requires 192 searches to seek the new pulse during the first pulse replacement procedure and requires an average of 180 during the second. Therefore, the GPR approach requires 193 searches in the first iteration <inline-formula id="j_info1135_ineq_037"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(R=1)$]]></tex-math></alternatives></inline-formula>, 373 in the second <inline-formula id="j_info1135_ineq_038"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(R=2)$]]></tex-math></alternatives></inline-formula>, 553 in the third <inline-formula id="j_info1135_ineq_039"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(R=3)$]]></tex-math></alternatives></inline-formula>, and so on.</p>
</sec>
<sec id="j_info1135_s_004">
<label>2.2</label>
<title>The RCM Search Approach</title>
<p>Ahead of a search task, the number of candidate pulses in each track is reduced for the purpose of search complexity reduction. This is done in this work according to the contribution of individual pulses. It is that in each track a pulse sorting is made by the contribution thereof in descending order as the first step, and then the top <italic>M</italic> pulses are chosen as the candidate pulses for a full search.</p>
<p>In Yeh and Su (<xref ref-type="bibr" rid="j_info1135_ref_018">2012</xref>), the contribution made by individual pulses is given as (<xref rid="j_info1135_eq_002">2</xref>), that is, a higher value of <inline-formula id="j_info1135_ineq_040"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${Q_{k}}$]]></tex-math></alternatives></inline-formula> reflects a higher contribution. In consideration of merely a single pulse contribution, the number of nonzero pulses in the codevector <inline-formula id="j_info1135_ineq_041"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathrm{c}_{k}}$]]></tex-math></alternatives></inline-formula> is reduced to 1. Therefore, (<xref rid="j_info1135_eq_002">2</xref>) can be simplified into (<xref rid="j_info1135_eq_007">7</xref>), where the numerator of (<xref rid="j_info1135_eq_007">7</xref>) is derived from (<xref rid="j_info1135_eq_002">2</xref>) and (<xref rid="j_info1135_eq_003">3</xref>), and the denominator of (<xref rid="j_info1135_eq_007">7</xref>) is derived from (<xref rid="j_info1135_eq_002">2</xref>) and (<xref rid="j_info1135_eq_004">4</xref>), respectively. Just as in (<xref rid="j_info1135_eq_002">2</xref>), a higher value of <inline-formula id="j_info1135_ineq_042"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${Q_{k}^{i}}$]]></tex-math></alternatives></inline-formula> represents a higher contribution of the <italic>i</italic>th pulse. This RCM approach is presented as an algorithm below. 
<disp-formula id="j_info1135_eq_007">
<label>(7)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mn>0</mml:mn>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {Q_{k}^{i}}=\frac{{d^{2}}(i)}{\phi (i,i)},\hspace{1em}0\leqslant i\leqslant L-1.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p><italic><bold>Algorithm 1:</bold> </italic>The RCM search procedure.</p>
<def-list><def-item><term><bold>Step 1.</bold></term><def>
<p>Sort the pulses in each track in a descending order by individual pulse contribution evaluated as (<xref rid="j_info1135_eq_007">7</xref>).</p></def></def-item><def-item><term><bold>Step 2.</bold></term><def>
<p>Determine the value of <italic>M</italic>, and select the top <italic>M</italic> pulses in each track as the candidate pulses.</p></def></def-item><def-item><term><bold>Step 3.</bold></term><def>
<p>Search for the best pulses over all the combinations of the candidate pulses through a full search by means of (<xref rid="j_info1135_eq_002">2</xref>).</p></def></def-item><def-item><term><bold>Step 4.</bold></term><def>
<p>Terminate a searching task at the moment the combination of the best pulses is done.</p></def></def-item></def-list>
<p>Furthermore, the number of searches required in RCM is represented as 
<disp-formula id="j_info1135_eq_008">
<label>(8)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">RCM</mml:mi>
<mml:mtext>-</mml:mtext>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∏</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∏</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>!</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>!</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>!</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {N_{\mathrm{RCM}\text{-}M}}={\prod \limits_{i=1}^{{N_{\mathrm{T}}}}}{C_{{N_{\mathrm{s}}}({T_{i}})}^{M}}={\prod \limits_{i=1}^{{N_{\mathrm{T}}}}}\frac{M!}{({N_{\mathrm{s}}}({T_{i}}))!(M-{N_{\mathrm{s}}}({T_{i}}))!},\]]]></tex-math></alternatives>
</disp-formula> 
where <italic>M</italic> represents the number of candidate pulses specified. Taking the 12.65 kbps mode as an instance, <inline-formula id="j_info1135_ineq_043"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[${N_{\mathrm{T}}}=4$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1135_ineq_044"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[${N_{\mathrm{p}}}=16$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1135_ineq_045"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn></mml:math><tex-math><![CDATA[${N_{\mathrm{s}}}({T_{i}})=2$]]></tex-math></alternatives></inline-formula> for all <italic>i</italic>, meaning that it requires <inline-formula id="j_info1135_ineq_046"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${({C_{2}^{M}})^{4}}$]]></tex-math></alternatives></inline-formula> searches, i.e. 1 296 searches for <inline-formula id="j_info1135_ineq_047"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[$M=4$]]></tex-math></alternatives></inline-formula> and 50 625 for <inline-formula id="j_info1135_ineq_048"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>6</mml:mn></mml:math><tex-math><![CDATA[$M=6$]]></tex-math></alternatives></inline-formula>. It is obvious that there is no way to reduce the search load using RCM at 12.65 kbps and higher AMR-WB modes.</p>
</sec>
</sec>
<sec id="j_info1135_s_005">
<label>3</label>
<title>Proposed Search Algorithm</title>
<p>Using a combination of RCM and DF approaches, an improved depth-first tree search (IDFT) is presented in this section as a way to reach the goal of search complexity reduction. This is done by means of a reduction in the number of candidate pulses contained in each track ahead of a DF search, and the reduction is made according to the contribution made by each pulse, but with a different criterion to evaluate individual pulse contribution than in RCM. Hence, this section firstly refers to the contribution made by a single pulse, and then details a search algorithm.</p>
<sec id="j_info1135_s_006">
<label>3.1</label>
<title>Analysis on the Contribution Made by an Individual Pulse</title>
<p>It is an issue of our interest whether there exists a correlation between the contribution made by a single pulse in each track and the best codevector via a DF search. More precisely, is there a probability that a pulse with a higher contribution in a track is more likely to serve as a component of the determined best codevector, i.e. a best pulse. The AMR-WB criterion Bessette <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1135_ref_002">2002</xref>); 3GPP TS 26.190 (<xref ref-type="bibr" rid="j_info1135_ref_020">2012b</xref>) is treated as a measure of the contribution made by a single pulse in this work, that is, 
<disp-formula id="j_info1135_eq_009">
<label>(9)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">r</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
</mml:mrow>
</mml:msqrt>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">LTP</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ b(n)=\sqrt{\frac{{E_{\mathrm{d}}}}{{E_{\mathrm{r}}}}}{r_{\mathrm{LTP}}}(n)+\alpha d(n),\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1135_ineq_049"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">LTP</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${r_{\mathrm{LTP}}}(n)$]]></tex-math></alternatives></inline-formula> denotes the residual signal after a long term prediction, <inline-formula id="j_info1135_ineq_050"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">d</mml:mi></mml:math><tex-math><![CDATA[${E_{\mathrm{d}}}={\mathbf{d}^{\mathrm{T}}}\mathbf{d}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1135_ineq_051"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">r</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">LTP</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">LTP</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mpadded width="0pt">
<mml:mphantom>
<mml:mi mathvariant="normal">T</mml:mi></mml:mphantom></mml:mpadded>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${E^{\mathrm{r}}}={\mathbf{r}_{\mathrm{LTP}}^{\mathrm{T}}}{\mathbf{r}_{\mathrm{LTP}}^{\phantom{\mathrm{T}}}}$]]></tex-math></alternatives></inline-formula> represent the energy of <inline-formula id="j_info1135_ineq_052"><alternatives><mml:math>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$d(n)$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1135_ineq_053"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">LTP</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${r_{\mathrm{LTP}}}(n)$]]></tex-math></alternatives></inline-formula>, respectively, and <italic>α</italic> is a coding mode-dependent constant, i.e. <inline-formula id="j_info1135_ineq_054"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn></mml:math><tex-math><![CDATA[$\alpha =2$]]></tex-math></alternatives></inline-formula> for 6.6 and 8.85 modes; <inline-formula id="j_info1135_ineq_055"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$\alpha =1$]]></tex-math></alternatives></inline-formula> for 12.65, 14.25 and 15.85 modes; <inline-formula id="j_info1135_ineq_056"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0.8</mml:mn></mml:math><tex-math><![CDATA[$\alpha =0.8$]]></tex-math></alternatives></inline-formula> for 18.25 mode; <inline-formula id="j_info1135_ineq_057"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0.75</mml:mn></mml:math><tex-math><![CDATA[$\alpha =0.75$]]></tex-math></alternatives></inline-formula> for 19.85 mode; and <inline-formula id="j_info1135_ineq_058"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0.5</mml:mn></mml:math><tex-math><![CDATA[$\alpha =0.5$]]></tex-math></alternatives></inline-formula> for 23.05 and 23.85 modes. The value of <inline-formula id="j_info1135_ineq_059"><alternatives><mml:math>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$b(n)$]]></tex-math></alternatives></inline-formula> varies in tandem with the contribution of the <italic>n</italic>th pulse.</p>
<p>Moreover, a hit probability is defined here as 
<disp-formula id="j_info1135_eq_010">
<label>(10)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">NH</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">TSF</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mn>0</mml:mn>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mn>1</mml:mn>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {p_{h}}({T_{t}},n)=\frac{\mathit{NH}({T_{t}},n)}{\mathit{TSF}},\hspace{1em}0\leqslant t\leqslant {N_{\mathrm{T}}},\hspace{2.5pt}1\leqslant n\leqslant {N_{\mathrm{p}}},\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1135_ineq_060"><alternatives><mml:math>
<mml:mi mathvariant="italic">NH</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathit{NH}({T_{t}},n)$]]></tex-math></alternatives></inline-formula> represents the times that the <italic>n</italic>th ranked pulse in terms of contribution on track <inline-formula id="j_info1135_ineq_061"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${T_{t}}$]]></tex-math></alternatives></inline-formula> acts as one of the best pulses via the DF search, <italic>TSF</italic> the total number of testing subframes, <inline-formula id="j_info1135_ineq_062"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${N_{\mathrm{T}}}$]]></tex-math></alternatives></inline-formula> the number of tracks, and <inline-formula id="j_info1135_ineq_063"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${N_{\mathrm{p}}}$]]></tex-math></alternatives></inline-formula> the number of pulses contained in each track.</p>
<fig id="j_info1135_fig_001">
<label>Fig. 1</label>
<caption>
<p>Probability of a sorted pulse hitting an optimal pulse among tracks in (a) 12.65, (b) 15.85, (c) 18.25, and (d) 23.85 kbps modes.</p>
</caption>
<graphic xlink:href="info1135_g001.jpg"/>
</fig>
<p>Presented in Fig. <xref rid="j_info1135_fig_001">1</xref> are the curves of four coding mode-dependent statistics according to (<xref rid="j_info1135_eq_010">10</xref>), that is, the probability that a sorted pulse hits one of the best pulses among tracks in 12.65, 15.85, 18.25, and 23.85 kbps modes. There are a total of 89,020 subframes, i.e. <inline-formula id="j_info1135_ineq_064"><alternatives><mml:math>
<mml:mi mathvariant="italic">TSF</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>89</mml:mn>
<mml:mspace width="0.1667em"/>
<mml:mn>020</mml:mn></mml:math><tex-math><![CDATA[$\mathit{TSF}=89\hspace{0.1667em}020$]]></tex-math></alternatives></inline-formula>, in a Chinese-language speech database. As given in Fig. <xref rid="j_info1135_fig_001">1</xref>, the value of <inline-formula id="j_info1135_ineq_065"><alternatives><mml:math>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$b(n)$]]></tex-math></alternatives></inline-formula> is positively correlated to the hit probability in each track, that is, a pulse with a high value of <inline-formula id="j_info1135_ineq_066"><alternatives><mml:math>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$b(n)$]]></tex-math></alternatives></inline-formula> is more likely to be one of the best pulses on the corresponding track. Taking the 15.85 kbps mode as an instance, there are 3 best pulses waiting to be located from each track, and the one with the maximum value of <inline-formula id="j_info1135_ineq_067"><alternatives><mml:math>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$b(n)$]]></tex-math></alternatives></inline-formula> in each track is specified as one of them (3GPP TS 26.190, <xref ref-type="bibr" rid="j_info1135_ref_020">2012b</xref>). Hence, there is a 100% hit probability for such pulse, and the hit probability in each track numbers 3, since there exist three best pulses in each track during a search task. As indicated, the hit probability decreases with the pulse contribution ranking.</p>
<p>Hence, the presumption, as referred to at the beginning of this subsection, is validated accordingly. In this context, pulses with a high contribution can be chosen as candidate pulses as a way to reduce the search complexity significantly.</p>
</sec>
<sec id="j_info1135_s_007">
<label>3.2</label>
<title>Improved Depth-First Tree Search Method</title>
<p>Based on the analysis in Section <xref rid="j_info1135_s_006">3.1</xref>, the IDFT search strategy is proposed for the purpose of search complexity reduction. This approach is decomposed into following steps. Firstly, <inline-formula id="j_info1135_ineq_068"><alternatives><mml:math>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$b(n)$]]></tex-math></alternatives></inline-formula> is evaluated as the contribution made by pulse <italic>n</italic>, and then pulses contained in each track are sorted in terms of contribution in a descending order. Subsequently, the first <italic>M</italic> <inline-formula id="j_info1135_ineq_069"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:mn>16</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(1\leqslant M\leqslant 16)$]]></tex-math></alternatives></inline-formula> ranked pulses are treated as candidate pulses. Then, a DF search is performed on all the candidate pulses, and the pulse combination with the maximum value of <inline-formula id="j_info1135_ineq_070"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${Q_{k}}$]]></tex-math></alternatives></inline-formula>, as given in (<xref rid="j_info1135_eq_002">2</xref>), is the desired best vector. Finally, this proposal is presented as an algorithm below.</p>
<p><italic><bold>Algorithm 2:</bold> </italic>The IDFT search procedure. 
<def-list><def-item><term><bold>Step 1.</bold></term><def>
<p>Apply (<xref rid="j_info1135_eq_009">9</xref>) to evaluate the individual pulse contribution, following which all the pulses in associated tracks are sorted by contributions.</p></def></def-item><def-item><term><bold>Step 2.</bold></term><def>
<p>Specify the value of <italic>M</italic>, and select the first <italic>M</italic> ranked pulses in each track as the candidate pulses.</p></def></def-item><def-item><term><bold>Step 3.</bold></term><def>
<p>Search for the best pulses among all the candidate pulses through a DF search by means of (<xref rid="j_info1135_eq_002">2</xref>).</p></def></def-item><def-item><term><bold>Step 4.</bold></term><def>
<p>Terminate the search process the moment the combination of the best pulses is acquired.</p></def></def-item></def-list></p>
</sec>
</sec>
<sec id="j_info1135_s_008">
<label>4</label>
<title>Experimental Results</title>
<p>There are two experiments conducted in this work. The first is a search complexity comparison among various search approaches. The second is that various approaches are compared with ITU-T P.862 perceptual evaluation of speech quality (PESQ) ITU-T Recommendation and 862 (<xref ref-type="bibr" rid="j_info1135_ref_007">2001</xref>) as an objective measure of speech quality. The test objects are those selected out of a Chinese-language speech database, containing 1 694 syllables out of 50 sentences for a duration over 445 s and 89 020 subframes.</p>
<p>For the brevity of the following discussion, the proposed IDFT approach with <italic>M</italic> candidate pulses is abbreviated as IDFT-<italic>M</italic>, <inline-formula id="j_info1135_ineq_071"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[$1\leqslant M\leqslant 16$]]></tex-math></alternatives></inline-formula>. For instance, IDFT-1 symbolizes the one with merely a candidate pulse extracted out of each track. Similarly, the GPR approach with <italic>R</italic> repetitions is designated as GPR-<italic>R</italic>.</p>
<table-wrap id="j_info1135_tab_002">
<label>Table 2</label>
<caption>
<p>Search complexity comparison among various methods and coding modes.</p>
</caption>
<table>
<thead>
<tr>
<td colspan="2" rowspan="2" style="vertical-align: middle; text-align: left; border-top: solid thin; border-bottom: solid thin">Method</td>
<td colspan="7" style="vertical-align: top; text-align: center; border-top: solid thin; border-bottom: solid thin">Search complexity and CS (%) in different coding mode (kbit/s)</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">23.85</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">23.05</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">19.85</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">18.25</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">15.85</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">14.25</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">12.65</td>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2" style="vertical-align: top; text-align: left">DF (Benchmark, 0%)</td>
<td style="vertical-align: top; text-align: left">848</td>
<td style="vertical-align: top; text-align: left">1696</td>
<td style="vertical-align: top; text-align: left">1680</td>
<td style="vertical-align: top; text-align: left">1728</td>
<td style="vertical-align: top; text-align: left">1664</td>
<td style="vertical-align: top; text-align: left">1664</td>
<td style="vertical-align: top; text-align: left">1280</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">GPR (CS, %)</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_072"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$R=1$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">71.58</td>
<td style="vertical-align: top; text-align: left">85.79</td>
<td style="vertical-align: top; text-align: left">87.68</td>
<td style="vertical-align: top; text-align: left">88.83</td>
<td style="vertical-align: top; text-align: left">90.56</td>
<td style="vertical-align: top; text-align: left">91.89</td>
<td style="vertical-align: top; text-align: left">91.17</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_073"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn></mml:math><tex-math><![CDATA[$R=2$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">44.46</td>
<td style="vertical-align: top; text-align: left">72.23</td>
<td style="vertical-align: top; text-align: left">76.10</td>
<td style="vertical-align: top; text-align: left">78.41</td>
<td style="vertical-align: top; text-align: left">81.97</td>
<td style="vertical-align: top; text-align: left">84.65</td>
<td style="vertical-align: top; text-align: left">83.52</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_074"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>3</mml:mn></mml:math><tex-math><![CDATA[$R=3$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">17.33</td>
<td style="vertical-align: top; text-align: left">58.67</td>
<td style="vertical-align: top; text-align: left">64.52</td>
<td style="vertical-align: top; text-align: left">68.00</td>
<td style="vertical-align: top; text-align: left">73.38</td>
<td style="vertical-align: top; text-align: left">77.40</td>
<td style="vertical-align: top; text-align: left">75.86</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_075"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[$R=4$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">−9.79</td>
<td style="vertical-align: top; text-align: left">45.11</td>
<td style="vertical-align: top; text-align: left">52.95</td>
<td style="vertical-align: top; text-align: left">57.58</td>
<td style="vertical-align: top; text-align: left">64.78</td>
<td style="vertical-align: top; text-align: left">70.16</td>
<td style="vertical-align: top; text-align: left">68.20</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_076"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>5</mml:mn></mml:math><tex-math><![CDATA[$R=5$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">−36.91</td>
<td style="vertical-align: top; text-align: left">31.54</td>
<td style="vertical-align: top; text-align: left">41.37</td>
<td style="vertical-align: top; text-align: left">47.16</td>
<td style="vertical-align: top; text-align: left">56.19</td>
<td style="vertical-align: top; text-align: left">62.92</td>
<td style="vertical-align: top; text-align: left">60.55</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Proposed (CS, %)</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_077"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>5</mml:mn></mml:math><tex-math><![CDATA[$M=5$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">–</td>
<td style="vertical-align: top; text-align: left">–</td>
<td style="vertical-align: top; text-align: left">–</td>
<td style="vertical-align: top; text-align: left">89.93</td>
<td style="vertical-align: top; text-align: left">87.98</td>
<td style="vertical-align: top; text-align: left">85.34</td>
<td style="vertical-align: top; text-align: left">83.75</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_078"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>6</mml:mn></mml:math><tex-math><![CDATA[$M=6$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">–</td>
<td style="vertical-align: top; text-align: left">–</td>
<td style="vertical-align: top; text-align: left">85.89</td>
<td style="vertical-align: top; text-align: left">84.38</td>
<td style="vertical-align: top; text-align: left">81.49</td>
<td style="vertical-align: top; text-align: left">78.37</td>
<td style="vertical-align: top; text-align: left">76.88</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_079"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>7</mml:mn></mml:math><tex-math><![CDATA[$M=7$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">86.20</td>
<td style="vertical-align: top; text-align: left">86.20</td>
<td style="vertical-align: top; text-align: left">79.29</td>
<td style="vertical-align: top; text-align: left">77.43</td>
<td style="vertical-align: top; text-align: left">73.56</td>
<td style="vertical-align: top; text-align: left">69.95</td>
<td style="vertical-align: top; text-align: left">68.75</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_080"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>8</mml:mn></mml:math><tex-math><![CDATA[$M=8$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">79.95</td>
<td style="vertical-align: top; text-align: left">79.95</td>
<td style="vertical-align: top; text-align: left">72.32</td>
<td style="vertical-align: top; text-align: left">69.10</td>
<td style="vertical-align: top; text-align: left">65.87</td>
<td style="vertical-align: top; text-align: left">61.78</td>
<td style="vertical-align: top; text-align: left">59.38</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_081"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>9</mml:mn></mml:math><tex-math><![CDATA[$M=9$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">73.00</td>
<td style="vertical-align: top; text-align: left">73.00</td>
<td style="vertical-align: top; text-align: left">64.29</td>
<td style="vertical-align: top; text-align: left">61.81</td>
<td style="vertical-align: top; text-align: left">57.21</td>
<td style="vertical-align: top; text-align: left">52.64</td>
<td style="vertical-align: top; text-align: left">48.75</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_info1135_ineq_082"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>10</mml:mn></mml:math><tex-math><![CDATA[$M=10$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">65.68</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">65.68</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">56.43</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">53.82</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">47.60</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">44.71</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">42.50</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="j_info1135_tab_003">
<label>Table 3</label>
<caption>
<p>PESQ values comparison among various methods.</p>
</caption>
<table>
<thead>
<tr>
<td colspan="2" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Method</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Mean</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Drop (%)</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Mean</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Drop (%)</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td colspan="3" style="vertical-align: top; text-align: center">12.65 kbit/s mode</td>
<td colspan="3" style="vertical-align: top; text-align: center">15.85 kbit/s mode</td>
</tr>
<tr>
<td colspan="2" style="vertical-align: top; text-align: left">DF</td>
<td style="vertical-align: top; text-align: left">4.048</td>
<td style="vertical-align: top; text-align: left">0.119</td>
<td style="vertical-align: top; text-align: left">Benchmark</td>
<td style="vertical-align: top; text-align: left">4.112</td>
<td style="vertical-align: top; text-align: left">0.121</td>
<td style="vertical-align: top; text-align: left">Benchmark</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">GPR</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_083"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$R=1$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">3.964</td>
<td style="vertical-align: top; text-align: left">0.111</td>
<td style="vertical-align: top; text-align: left">2.075</td>
<td style="vertical-align: top; text-align: left">4.012</td>
<td style="vertical-align: top; text-align: left">0.106</td>
<td style="vertical-align: top; text-align: left">2.432</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_084"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn></mml:math><tex-math><![CDATA[$R=2$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.016</td>
<td style="vertical-align: top; text-align: left">0.114</td>
<td style="vertical-align: top; text-align: left">0.791</td>
<td style="vertical-align: top; text-align: left">4.060</td>
<td style="vertical-align: top; text-align: left">0.111</td>
<td style="vertical-align: top; text-align: left">1.265</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_085"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>3</mml:mn></mml:math><tex-math><![CDATA[$R=3$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.033</td>
<td style="vertical-align: top; text-align: left">0.120</td>
<td style="vertical-align: top; text-align: left">0.371</td>
<td style="vertical-align: top; text-align: left">4.096</td>
<td style="vertical-align: top; text-align: left">0.119</td>
<td style="vertical-align: top; text-align: left">0.389</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_086"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[$R=4$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.035</td>
<td style="vertical-align: top; text-align: left">0.117</td>
<td style="vertical-align: top; text-align: left">0.321</td>
<td style="vertical-align: top; text-align: left">4.110</td>
<td style="vertical-align: top; text-align: left">0.118</td>
<td style="vertical-align: top; text-align: left">0.049</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_087"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>5</mml:mn></mml:math><tex-math><![CDATA[$R=5$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.035</td>
<td style="vertical-align: top; text-align: left">0.114</td>
<td style="vertical-align: top; text-align: left">0.321</td>
<td style="vertical-align: top; text-align: left">4.117</td>
<td style="vertical-align: top; text-align: left">0.118</td>
<td style="vertical-align: top; text-align: left">-0.122</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Proposed</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_088"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>5</mml:mn></mml:math><tex-math><![CDATA[$M=5$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.018</td>
<td style="vertical-align: top; text-align: left">0.116</td>
<td style="vertical-align: top; text-align: left">0.741</td>
<td style="vertical-align: top; text-align: left">4.057</td>
<td style="vertical-align: top; text-align: left">0.109</td>
<td style="vertical-align: top; text-align: left">1.338</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_089"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>6</mml:mn></mml:math><tex-math><![CDATA[$M=6$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.031</td>
<td style="vertical-align: top; text-align: left">0.118</td>
<td style="vertical-align: top; text-align: left">0.420</td>
<td style="vertical-align: top; text-align: left">4.078</td>
<td style="vertical-align: top; text-align: left">0.111</td>
<td style="vertical-align: top; text-align: left">0.827</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_090"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>7</mml:mn></mml:math><tex-math><![CDATA[$M=7$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.039</td>
<td style="vertical-align: top; text-align: left">0.111</td>
<td style="vertical-align: top; text-align: left">0.222</td>
<td style="vertical-align: top; text-align: left">4.097</td>
<td style="vertical-align: top; text-align: left">0.113</td>
<td style="vertical-align: top; text-align: left">0.365</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_091"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>8</mml:mn></mml:math><tex-math><![CDATA[$M=8$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.038</td>
<td style="vertical-align: top; text-align: left">0.122</td>
<td style="vertical-align: top; text-align: left">0.247</td>
<td style="vertical-align: top; text-align: left">4.100</td>
<td style="vertical-align: top; text-align: left">0.116</td>
<td style="vertical-align: top; text-align: left">0.292</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_092"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>9</mml:mn></mml:math><tex-math><![CDATA[$M=9$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.039</td>
<td style="vertical-align: top; text-align: left">0.116</td>
<td style="vertical-align: top; text-align: left">0.222</td>
<td style="vertical-align: top; text-align: left">4.105</td>
<td style="vertical-align: top; text-align: left">0.114</td>
<td style="vertical-align: top; text-align: left">0.170</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_093"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>10</mml:mn></mml:math><tex-math><![CDATA[$M=10$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.039</td>
<td style="vertical-align: top; text-align: left">0.115</td>
<td style="vertical-align: top; text-align: left">0.222</td>
<td style="vertical-align: top; text-align: left">4.104</td>
<td style="vertical-align: top; text-align: left">0.124</td>
<td style="vertical-align: top; text-align: left">0.195</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td colspan="3" style="vertical-align: top; text-align: center">18.25 kbit/s mode</td>
<td colspan="3" style="vertical-align: top; text-align: center">23.85 kbit/s mode</td>
</tr>
<tr>
<td colspan="2" style="vertical-align: top; text-align: left">DF</td>
<td style="vertical-align: top; text-align: left">4.147</td>
<td style="vertical-align: top; text-align: left">0.120</td>
<td style="vertical-align: top; text-align: left">Benchmark</td>
<td style="vertical-align: top; text-align: left">4.164</td>
<td style="vertical-align: top; text-align: left">0.120</td>
<td style="vertical-align: top; text-align: left">Benchmark</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">GPR</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_094"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$R=1$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.028</td>
<td style="vertical-align: top; text-align: left">0.106</td>
<td style="vertical-align: top; text-align: left">2.870</td>
<td style="vertical-align: top; text-align: left">4.050</td>
<td style="vertical-align: top; text-align: left">0.116</td>
<td style="vertical-align: top; text-align: left">2.738</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_095"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn></mml:math><tex-math><![CDATA[$R=2$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.080</td>
<td style="vertical-align: top; text-align: left">0.111</td>
<td style="vertical-align: top; text-align: left">1.616</td>
<td style="vertical-align: top; text-align: left">4.104</td>
<td style="vertical-align: top; text-align: left">0.110</td>
<td style="vertical-align: top; text-align: left">1.441</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_096"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>3</mml:mn></mml:math><tex-math><![CDATA[$R=3$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.122</td>
<td style="vertical-align: top; text-align: left">0.117</td>
<td style="vertical-align: top; text-align: left">0.603</td>
<td style="vertical-align: top; text-align: left">4.133</td>
<td style="vertical-align: top; text-align: left">0.115</td>
<td style="vertical-align: top; text-align: left">0.744</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_097"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[$R=4$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.134</td>
<td style="vertical-align: top; text-align: left">0.121</td>
<td style="vertical-align: top; text-align: left">0.313</td>
<td style="vertical-align: top; text-align: left">4.152</td>
<td style="vertical-align: top; text-align: left">0.118</td>
<td style="vertical-align: top; text-align: left">0.288</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_098"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>5</mml:mn></mml:math><tex-math><![CDATA[$R=5$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.143</td>
<td style="vertical-align: top; text-align: left">0.121</td>
<td style="vertical-align: top; text-align: left">0.096</td>
<td style="vertical-align: top; text-align: left">4.164</td>
<td style="vertical-align: top; text-align: left">0.122</td>
<td style="vertical-align: top; text-align: left">0.000</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Proposed</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_099"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>5</mml:mn></mml:math><tex-math><![CDATA[$M=5$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.037</td>
<td style="vertical-align: top; text-align: left">0.110</td>
<td style="vertical-align: top; text-align: left">2.653</td>
<td style="vertical-align: top; text-align: left">–</td>
<td style="vertical-align: top; text-align: left">–</td>
<td style="vertical-align: top; text-align: left">–</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_100"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>6</mml:mn></mml:math><tex-math><![CDATA[$M=6$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.084</td>
<td style="vertical-align: top; text-align: left">0.109</td>
<td style="vertical-align: top; text-align: left">1.519</td>
<td style="vertical-align: top; text-align: left">3.972</td>
<td style="vertical-align: top; text-align: left">0.102</td>
<td style="vertical-align: top; text-align: left">4.611</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_101"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>7</mml:mn></mml:math><tex-math><![CDATA[$M=7$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.111</td>
<td style="vertical-align: top; text-align: left">0.119</td>
<td style="vertical-align: top; text-align: left">0.868</td>
<td style="vertical-align: top; text-align: left">4.059</td>
<td style="vertical-align: top; text-align: left">0.110</td>
<td style="vertical-align: top; text-align: left">2.522</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_102"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>8</mml:mn></mml:math><tex-math><![CDATA[$M=8$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.123</td>
<td style="vertical-align: top; text-align: left">0.118</td>
<td style="vertical-align: top; text-align: left">0.579</td>
<td style="vertical-align: top; text-align: left">4.101</td>
<td style="vertical-align: top; text-align: left">0.110</td>
<td style="vertical-align: top; text-align: left">1.513</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1135_ineq_103"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>9</mml:mn></mml:math><tex-math><![CDATA[$M=9$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">4.134</td>
<td style="vertical-align: top; text-align: left">0.119</td>
<td style="vertical-align: top; text-align: left">0.313</td>
<td style="vertical-align: top; text-align: left">4.126</td>
<td style="vertical-align: top; text-align: left">0.112</td>
<td style="vertical-align: top; text-align: left">0.913</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_info1135_ineq_104"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>10</mml:mn></mml:math><tex-math><![CDATA[$M=10$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4.137</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.121</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.241</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4.141</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.116</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.552</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Firstly, listed in Table <xref rid="j_info1135_tab_002">2</xref> is a comparison on the search complexity, that is, the number of searches performed and those required in the evaluation of <inline-formula id="j_info1135_ineq_105"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${Q_{k}}$]]></tex-math></alternatives></inline-formula> defined in (<xref rid="j_info1135_eq_002">2</xref>). The proposed IDFT search is performed among the first <italic>M</italic> ranked pulses on a condition that <italic>M</italic> be greater than the number of best pulses in each track. Table <xref rid="j_info1135_tab_002">2</xref> firstly gives the number of searches required in a DF approach as a benchmark, and then gives relative search complexity change expressed in percentage form, i.e. computational saving (CS), in GPR and the proposed IDFT approaches for comparison purposes. A high value of CS reflects a high search complexity reduction, while a negative sign indicates a search complexity higher than in the DF case.</p>
<p>With DF as a benchmark, a noticeable computational saving is demonstrated, and the aim of search load reduction is achieved as expected by this proposal. It is noted that a CS above 50% can be reached for <inline-formula id="j_info1135_ineq_106"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:mn>8</mml:mn></mml:math><tex-math><![CDATA[$M\leqslant 8$]]></tex-math></alternatives></inline-formula>. Nevertheless, a comparison on speech quality must be made for a complete performance assessment of this presented search algorithm.</p>
<p>Table <xref rid="j_info1135_tab_003">3</xref> gives a PESQ comparison, including the mean and the standard deviation (STD), in the 12.65, 15.85, 18.25 and 23.85 kbps modes. With DF as a benchmark, a minus sign in the comparison represents a superior PESQ relative to the benchmark. As pointed out in Yeh and Su (<xref ref-type="bibr" rid="j_info1135_ref_018">2012</xref>), a subjective speech quality can be well maintained even though there is a slight drop in PESQ.</p>
<table-wrap id="j_info1135_tab_004">
<label>Table 4</label>
<caption>
<p>Overall performance comparison among various methods.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin"/>
<td rowspan="2" style="vertical-align: middle; text-align: left; border-top: solid thin; border-bottom: solid thin">Method</td>
<td colspan="4" style="vertical-align: top; text-align: center; border-top: solid thin; border-bottom: solid thin">Mode (kbit/s)</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">23.85</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">18.25</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">15.85</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">12.65</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">DF</td>
<td style="vertical-align: top; text-align: left">PESQ</td>
<td style="vertical-align: top; text-align: left">4.164</td>
<td style="vertical-align: top; text-align: left">4.147</td>
<td style="vertical-align: top; text-align: left">4.112</td>
<td style="vertical-align: top; text-align: left">4.048</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">Search load</td>
<td style="vertical-align: top; text-align: left">848</td>
<td style="vertical-align: top; text-align: left">1728</td>
<td style="vertical-align: top; text-align: left">1664</td>
<td style="vertical-align: top; text-align: left">1280</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">GPR</td>
<td style="vertical-align: top; text-align: left">The optimum choice of <italic>R</italic></td>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left">2</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">PESQ</td>
<td style="vertical-align: top; text-align: left">4.133</td>
<td style="vertical-align: top; text-align: left">4.122</td>
<td style="vertical-align: top; text-align: left">4.096</td>
<td style="vertical-align: top; text-align: left">4.016</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">Search load</td>
<td style="vertical-align: top; text-align: left">701</td>
<td style="vertical-align: top; text-align: left">553</td>
<td style="vertical-align: top; text-align: left">443</td>
<td style="vertical-align: top; text-align: left">211</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">CS (%)</td>
<td style="vertical-align: top; text-align: left">17.33</td>
<td style="vertical-align: top; text-align: left">68.00</td>
<td style="vertical-align: top; text-align: left">73.38</td>
<td style="vertical-align: top; text-align: left">83.52</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">IDFT</td>
<td style="vertical-align: top; text-align: left">The optimum choice of <italic>M</italic></td>
<td style="vertical-align: top; text-align: left">9</td>
<td style="vertical-align: top; text-align: left">7</td>
<td style="vertical-align: top; text-align: left">6</td>
<td style="vertical-align: top; text-align: left">5</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">PESQ</td>
<td style="vertical-align: top; text-align: left">4.126</td>
<td style="vertical-align: top; text-align: left">4.111</td>
<td style="vertical-align: top; text-align: left">4.078</td>
<td style="vertical-align: top; text-align: left">4.018</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">Search load</td>
<td style="vertical-align: top; text-align: left">229</td>
<td style="vertical-align: top; text-align: left">390</td>
<td style="vertical-align: top; text-align: left">308</td>
<td style="vertical-align: top; text-align: left">208</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">CS (%)</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">73.00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">77.43</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">81.49</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">83.75</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="j_info1135_fig_002">
<label>Fig. 2</label>
<caption>
<p>Overall performance comparison in 23.85 kbps coding mode.</p>
</caption>
<graphic xlink:href="info1135_g002.jpg"/>
</fig>
<p>A rearrangement of Tables <xref rid="j_info1135_tab_002">2</xref> and <xref rid="j_info1135_tab_003">3</xref> gives Table <xref rid="j_info1135_tab_004">4</xref>. As listed in Table <xref rid="j_info1135_tab_004">4</xref>, on a condition of PESQ drop stays below 1% as compared with the DF case, the best choice of <italic>R</italic> in GPR and <italic>M</italic> in IDFT are respectively tabulated in various modes, and a performance comparison in the 23.85 kbps coding mode is presented in a graphic form as Fig. <xref rid="j_info1135_fig_002">2</xref>. The overall performance superiority is demonstrated with a well maintained high speech quality and a computational load reduction beyond 73%. A noticeable superiority over GPR is particularly seen in a high bit rate coding mode.</p>
</sec>
<sec id="j_info1135_s_009">
<label>5</label>
<title>Conclusions</title>
<p>An improved depth-first tree search approach is presented in this work as an efficient means to enhance the search performance of an algebraic codebook search when applied to an AMR-WB speech codec. This improved version of depth-first tree search algorithm is presented as a way not merely to well maintain a high speech quality but also to achieve the aim of complexity reduction in algebraic codebook search. It offers a search performance superiority over a DF and a GPR counterpart. It is worth noting that with DF as a benchmark, a search load reduction beyond 73% is seen in all the coding modes on a condition that PESQ drop stays below 1%.</p>
<p>Furthermore, this improved AMR-WB speech codec can be adopted to improve the VoIP performance on a smartphone. As a consequence, the energy efficiency requirement is achieved for an extended operation time period due to computational load reduction.</p>
</sec>
</body>
<back>
<ack id="j_info1135_ack_001">
<title>Acknowledgements</title>
<p>This research was financially supported by the Ministry of Science and Technology under grant number MOST 104-2221-E-167-025, Taiwan, Republic of China.</p></ack>
<ref-list id="j_info1135_reflist_001">
<title>References</title>
<ref id="j_info1135_ref_001">
<mixed-citation publication-type="chapter"><string-name><surname>Adoul</surname>, <given-names>J.-P.</given-names></string-name>, <string-name><surname>Mabilleau</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Delprat</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Morissette</surname>, <given-names>S.</given-names></string-name> (<year>1987</year>). <chapter-title>Fast CELP coding based on algebraic codes</chapter-title>. In: <source>Proceedings of International Conference on Acoustics, Speech, and Signal Processing</source>, pp. <fpage>1957</fpage>–<lpage>1960</lpage>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_002">
<mixed-citation publication-type="journal"><string-name><surname>Bessette</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Salami</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Lefebvre</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Jelínek</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Rotola-Pukkila</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Vainio</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Mikkola</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Järvinen</surname>, <given-names>K.</given-names></string-name> (<year>2002</year>). <article-title>The adaptive multirate wideband speech codec (AMR-WB)</article-title>. <source>IEEE Transactions on Speech and Audio Processing</source>, <volume>10</volume>(<issue>8</issue>), <fpage>620</fpage>–<lpage>636</lpage>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_003">
<mixed-citation publication-type="journal"><string-name><surname>Chen</surname>, <given-names>F.-K.</given-names></string-name>, <string-name><surname>Yang</surname>, <given-names>J.-F.</given-names></string-name>, <string-name><surname>Yan</surname>, <given-names>Y.-L.</given-names></string-name> (<year>2002</year>). <article-title>Candidate scheme for fast ACELP search</article-title>. <source>IEE Proceedings – Vision, Image and Signal Processing</source>, <volume>149</volume>(<issue>1</issue>), <fpage>10</fpage>–<lpage>16</lpage>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_004">
<mixed-citation publication-type="journal"><string-name><surname>Chu</surname>, <given-names>C.P.</given-names></string-name>, <string-name><surname>Yeh</surname>, <given-names>C.Y.</given-names></string-name>, <string-name><surname>Hwang</surname>, <given-names>S.H.</given-names></string-name> (<year>2014</year>). <article-title>An efficient search strategy for ACELP algebraic codebook by means of reduced candidate mechanism and iteration-free pulse replacement</article-title>. <source>Information Technology and Control</source>, <volume>43</volume>(<issue>2</issue>), <fpage>183</fpage>–<lpage>187</lpage>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_005">
<mixed-citation publication-type="journal"><string-name><surname>Geiser</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Jax</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Vary</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Taddei</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Schandl</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Gartner</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Guillaume</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Ragot</surname>, <given-names>S.</given-names></string-name> (<year>2007</year>). <article-title>Bandwidth extension for hierarchical speech and audio coding in ITU-T Rec. G.729.1</article-title>. <source>IEEE Transactions on Audio, Speech, and Language Processing</source>, <volume>15</volume>(<issue>8</issue>), <fpage>2496</fpage>–<lpage>2509</lpage>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_006">
<mixed-citation publication-type="other"><string-name><surname>ITU-T Recommendation</surname></string-name>, <string-name><surname>729</surname>, <given-names>G.</given-names></string-name> (1996). <italic>Coding of speech at 8 kbit/s using conjugate-structure algebraic-code-excited linear-prediction (CS-ACELP)</italic>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_007">
<mixed-citation publication-type="other"><string-name><surname>ITU-T Recommendation</surname></string-name>, <string-name><surname>862</surname>, <given-names>P.</given-names></string-name> (2001). <italic>Perceptual evaluation of speech quality (PESQ): an objective method for end-to-end speech quality assessment of narrow-band telephone networks and speech codecs</italic>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_008">
<mixed-citation publication-type="other"><string-name><surname>ITU-T Recommendation</surname></string-name>, <string-name><surname>1</surname>, <given-names>G.</given-names></string-name> (2006). <italic>G.729 based Embedded Variable bit-rate coder: an 8–32 kbit/s scalable wideband coder bitstream interoperable with G.729</italic>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_009">
<mixed-citation publication-type="journal"><string-name><surname>Ku</surname>, <given-names>N.Y.</given-names></string-name>, <string-name><surname>Yeh</surname>, <given-names>C.Y.</given-names></string-name>, <string-name><surname>Hwang</surname>, <given-names>S.H.</given-names></string-name> (<year>2014</year>). <article-title>An efficient algebraic codebook search for ACELP speech coder</article-title>. <source>EURASIP Journal on Audio, Speech, and Music Processing</source>, <volume>2014</volume>, <fpage>1</fpage>–<lpage>9</lpage>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_010">
<mixed-citation publication-type="chapter"><string-name><surname>Laflamme</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Adoul</surname>, <given-names>J.-P.</given-names></string-name>, <string-name><surname>Salami</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Morissette</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Mabilleau</surname>, <given-names>P.</given-names></string-name> (<year>1991</year>). <chapter-title>16 kbps wideband speech coding technique based on algebraic CELP</chapter-title>. In: <source>Proceedings of IEEE International Conference on Acoustics, Speech, and Signal Processing</source>, pp. <fpage>13</fpage>–<lpage>16</lpage>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_011">
<mixed-citation publication-type="chapter"><string-name><surname>Lee</surname>, <given-names>E.D.</given-names></string-name>, <string-name><surname>Lee</surname>, <given-names>M.S.</given-names></string-name>, <string-name><surname>Kim</surname>, <given-names>D.Y.</given-names></string-name> (<year>2003</year>). <chapter-title>Global pulse replacement method for fixed codebook search of ACELP speech codec</chapter-title>. In: <source>Proceedings of Second IASTED International Conference on Communications, Internet and Information Technology</source>, pp. <fpage>372</fpage>–<lpage>375</lpage>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_012">
<mixed-citation publication-type="journal"><string-name><surname>Lee</surname>, <given-names>E.D.</given-names></string-name>, <string-name><surname>Yun</surname>, <given-names>S.H.</given-names></string-name>, <string-name><surname>Lee</surname>, <given-names>S.I.</given-names></string-name>, <string-name><surname>Ahn</surname>, <given-names>J.M.</given-names></string-name> (<year>2007</year>). <article-title>Iteration-free pulse replacement method for algebraic codebook search</article-title>. <source>Electronics Letters</source>, <volume>43</volume>(<issue>1</issue>), <fpage>59</fpage>–<lpage>60</lpage>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_013">
<mixed-citation publication-type="journal"><string-name><surname>Ojala</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Lakaniemi</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Lepanaho</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Jokimies</surname>, <given-names>M.</given-names></string-name> (<year>2006</year>). <article-title>The adaptive multirate wideband speech codec: system characteristics, quality advances, and deployment strategies</article-title>. <source>IEEE Communications Magazine</source>, <volume>44</volume>(<issue>5</issue>), <fpage>59</fpage>–<lpage>65</lpage>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_014">
<mixed-citation publication-type="chapter"><string-name><surname>Park</surname>, <given-names>H.C.</given-names></string-name>, <string-name><surname>Choi</surname>, <given-names>Y.C.</given-names></string-name>, <string-name><surname>Lee</surname>, <given-names>D.Y.</given-names></string-name> (<year>2002</year>). <chapter-title>Efficient codebook search method for ACELP speech codecs</chapter-title>. In: <source>Speech Coding, 2002, IEEE Workshop Proceedings</source>, pp. <fpage>17</fpage>–<lpage>19</lpage>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_015">
<mixed-citation publication-type="journal"><string-name><surname>Salami</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Laflamme</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Adoul</surname>, <given-names>J.-P.</given-names></string-name>, <string-name><surname>Kataoka</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Hayashi</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Moriya</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Lamblin</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Massaloux</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Proust</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Kroon</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Shoham</surname>, <given-names>Y.</given-names></string-name> (<year>1998</year>). <article-title>Design and description of CS-ACELP: a toll quality 8 kb/s speech coder</article-title>. <source>IEEE Transactions on Speech and Audio Processing</source>, <volume>6</volume>(<issue>2</issue>), <fpage>116</fpage>–<lpage>130</lpage>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_016">
<mixed-citation publication-type="journal"><string-name><surname>Tsai</surname>, <given-names>S.-M.</given-names></string-name>, <string-name><surname>Yang</surname>, <given-names>J.-F.</given-names></string-name> (<year>2006</year>). <article-title>Efficient algebraic code-excited linear-predictive codebook search</article-title>. <source>IEE Proceedings – Vision, Image and Signal Processing</source>, <volume>153</volume>(<issue>6</issue>), <fpage>761</fpage>–<lpage>768</lpage>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_017">
<mixed-citation publication-type="journal"><string-name><surname>Varga</surname>, <given-names>I.</given-names></string-name>, <string-name><surname>De Lacovo</surname>, <given-names>R.D.</given-names></string-name>, <string-name><surname>Usai</surname>, <given-names>P.</given-names></string-name> (<year>2006</year>). <article-title>Standardization of the AMR wideband speech codec in 3GPP and ITU-T</article-title>. <source>IEEE Communications Magazine</source>, <volume>44</volume>(<issue>5</issue>), <fpage>66</fpage>–<lpage>73</lpage>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_018">
<mixed-citation publication-type="journal"><string-name><surname>Yeh</surname>, <given-names>C.Y.</given-names></string-name>, <string-name><surname>Su</surname>, <given-names>Y.J.</given-names></string-name> (<year>2012</year>). <article-title>Reduced candidate mechanism for an algebraic code-excited linear-prediction codebook search</article-title>. <source>IET Communications</source>, <volume>6</volume>(<issue>17</issue>), <fpage>2864</fpage>–<lpage>2869</lpage>.</mixed-citation>
</ref>
<ref id="j_info1135_ref_019">
<mixed-citation publication-type="other">3GPP TS 26.090 (2012a). <italic>Adaptive Multi-Rate (AMR) speech codec; transcoding functions</italic>. 3GPP TS 26.090.</mixed-citation>
</ref>
<ref id="j_info1135_ref_020">
<mixed-citation publication-type="other">3GPP TS 26.190 (2012b). <italic>Adaptive Multi-Rate – Wideband (AMR-WB) speech codec, transcoding functions</italic>. 3GPP TS 26.190.</mixed-citation>
</ref>
</ref-list>
</back>
</article>