Vector quantization method, apparatus, and communication device

By performing vector quantization on the frequency domain envelope value of the audio frame, and using the first B-bit codebook to fully quantize the first vector, the final quantization index value of the second vector is determined, thus solving the problem of transmitting a large number of bits and achieving efficient signal representation and transmission.

CN121532826BActive Publication Date: 2026-07-03BEIJING XIAOMI MOBILE SOFTWARE CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
BEIJING XIAOMI MOBILE SOFTWARE CO LTD
Filing Date
2024-06-06
Publication Date
2026-07-03

AI Technical Summary

Technical Problem

In existing audio processing technologies, vector quantization methods suffer from the problem of transmitting a large number of bits, making it difficult to efficiently represent and transmit signals.

Method used

The first codebook of B bits is used to quantize multiple frequency domain envelope values ​​of the audio frame. The initial quantization index value is obtained by fully quantizing the first vector. The final quantization index value of the second vector is determined based on the initial quantization index value, thereby reducing the number of bits required for the quantization index value of the second vector. The quantization index value of the second vector is set in the range of 0 to 2(B-1).

Benefits of technology

This effectively reduces the number of transmitted bits while maintaining the correlation between vectors, thus improving the quantization effect.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121532826B_ABST
    Figure CN121532826B_ABST
Patent Text Reader

Abstract

This disclosure relates to a vector quantization method, apparatus, and communication device. The vector quantization method includes: determining N1 vectors based on multiple frequency domain envelope values ​​corresponding to an audio frame, each of the N1 vectors including M frequency domain envelope values ​​from the multiple frequency domain envelope values; quantizing the N1 vectors using a B-bit first codebook to obtain a quantization index value of a first vector and an initial quantization index value of a second vector; determining a quantization index value of the second vector based on the initial quantization index value, wherein the number of bits required for the quantization index value of the second vector is less than B; the first vector is the first vector among the N1 vectors, and the second vector is at least one vector among the N1 vectors other than the first vector. Embodiments of this disclosure use a single codebook to quantize the N1 vectors corresponding to an audio frame, which can reduce transmission bits and achieve higher quantization performance.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of communication technology, and in particular to vector quantization methods, apparatus and communication equipment. Background Technology

[0002] Vector quantization (VQ) enables efficient signal representation and transmission with relatively low complexity. For example, in audio processing, vector quantization can be used to encode the frequency domain envelope of audio. Summary of the Invention

[0003] This disclosure presents vector quantization methods, apparatus, and communication devices.

[0004] According to a first aspect of the embodiments of this disclosure, a vector quantization method is proposed, comprising:

[0005] N1 vectors are determined based on multiple frequency domain envelope values ​​corresponding to an audio frame, wherein each of the N1 vectors includes M frequency domain envelope values ​​from the multiple frequency domain envelope values, and N1 and M are positive integers;

[0006] The N1 vectors are quantized using a B-bit first codebook to obtain the quantization index value of the first vector and the initial quantization index value of the second vector, where B is a positive integer greater than or equal to 2.

[0007] The quantization index value of the second vector is determined based on the initial quantization index value, and the number of bits required for the quantization index value of the second vector is less than B;

[0008] The first vector is the first vector among the N1 vectors, and the second vector is at least one vector among the N1 vectors other than the first vector.

[0009] According to a second aspect of the present disclosure, a vector quantization apparatus is provided, comprising:

[0010] Processing module;

[0011] The processing module is configured as follows:

[0012] N1 vectors are determined based on multiple frequency domain envelope values ​​corresponding to an audio frame, wherein each of the N1 vectors includes M frequency domain envelope values ​​from the multiple frequency domain envelope values, and N1 and M are positive integers;

[0013] The N1 vectors are quantized using a B-bit first codebook to obtain the quantization index value of the first vector and the initial quantization index value of the second vector, where B is a positive integer greater than or equal to 2.

[0014] The quantization index value of the second vector is determined based on the initial quantization index value, and the number of bits required for the quantization index value of the second vector is less than B;

[0015] The first vector is the first vector among the N1 vectors, and the second vector is at least one vector among the N1 vectors other than the first vector.

[0016] According to a third aspect of the present disclosure, a communication device is provided, comprising:

[0017] One or more processors;

[0018] The communication device is used to execute the vector quantization method proposed in the first aspect.

[0019] According to a fourth aspect of the present disclosure, a communication system is proposed, including an encoder and a decoder, wherein the encoder is configured to implement the vector quantization method proposed in the first aspect.

[0020] According to a fifth aspect of the present disclosure, a storage medium is provided that stores instructions which, when executed on a communication device, cause the communication device to perform the vector quantization method as described in the first aspect.

[0021] According to a sixth aspect of the present disclosure, a computer program product is provided, including a computer program that, when executed by a communication device, implements the vector quantization method as proposed in the first aspect.

[0022] The embodiments disclosed herein employ a codebook to quantize N1 vectors corresponding to an audio frame, which can reduce the number of transmitted bits and achieve a high quantization effect. Attached Figure Description

[0023] To more clearly illustrate the technical solutions in the embodiments of this disclosure, the accompanying drawings required for the description of the embodiments are introduced below. The following drawings are only some embodiments of this disclosure and do not impose specific limitations on the protection scope of this disclosure.

[0024] Figure 1 This is an exemplary architecture diagram of a communication system provided according to embodiments of the present disclosure.

[0025] Figure 2A This is an exemplary flowchart illustrating the vector quantization method provided according to embodiments of the present disclosure.

[0026] Figure 2B This is an exemplary flowchart illustrating the vector quantization method provided according to embodiments of the present disclosure.

[0027] Figure 2CThis is an exemplary flowchart illustrating the vector quantization method provided according to embodiments of the present disclosure.

[0028] Figure 3A This is an exemplary flowchart illustrating the vector quantization method provided according to embodiments of the present disclosure.

[0029] Figure 3B This is an exemplary flowchart illustrating the vector quantization method provided according to embodiments of the present disclosure.

[0030] Figure 4A This is an exemplary flowchart illustrating the vector quantization method provided according to embodiments of the present disclosure.

[0031] Figure 4B This is an exemplary flowchart illustrating the vector quantization method provided according to embodiments of the present disclosure.

[0032] Figure 5 This is an exemplary structural diagram of a vector quantization device provided according to embodiments of the present disclosure.

[0033] Figure 6A This is an exemplary structural diagram of a communication device provided according to embodiments of the present disclosure.

[0034] Figure 6B This is an exemplary structural diagram of a chip provided according to embodiments of this disclosure. Detailed Implementation

[0035] This disclosure presents vector quantization methods, apparatus, and communication devices.

[0036] In a first aspect, embodiments of this disclosure propose a vector quantization method, including:

[0037] N1 vectors are determined based on multiple frequency domain envelope values ​​corresponding to an audio frame, wherein each of the N1 vectors includes M frequency domain envelope values ​​from the multiple frequency domain envelope values, and N1 and M are positive integers;

[0038] The N1 vectors are quantized using a B-bit first codebook to obtain the quantization index value of the first vector and the initial quantization index value of the second vector, where B is a positive integer greater than or equal to 2.

[0039] The quantization index value of the second vector is determined based on the initial quantization index value, and the number of bits required for the quantization index value of the second vector is less than B;

[0040] The first vector is the first vector among the N1 vectors, and the second vector is at least one vector among the N1 vectors other than the first vector.

[0041] In the above embodiment, a codebook is used to quantize N1 vectors corresponding to an audio frame. It is particularly noteworthy that the second vector is quantized using the complete first codebook, rather than a portion of it, thus achieving a higher quantization effect. Furthermore, the index value obtained by quantizing the second vector using the first codebook is not used as the final quantization index value of the second vector, but rather as the initial quantization index value. The final quantization index value of the second vector is then determined based on this initial quantization index value, thereby reducing the number of bits required for the quantization index value of the second vector. This reduces the number of bits required for the quantization index value of the second vector to less than B, thus reducing the number of transmission bits.

[0042] In conjunction with some embodiments of the first aspect, in some embodiments, the quantization index value of the second vector is within a first range, wherein the first range is 0 to 2. (B-1) .

[0043] In the above embodiments, the quantization index value of the second vector can be set to between 0 and 2. (B-1) Within the range, the number of bits required for the quantization index value of the second vector can be B-1.

[0044] In conjunction with some embodiments of the first aspect, in some embodiments, determining the quantization index value of the second vector based on the initial quantization index value includes at least one of the following:

[0045] If the initial quantization index value is greater than or equal to k, the quantization index value of the second vector is determined to be the initial quantization index value minus k;

[0046] If the initial quantization index value is less than k, the quantization index value of the second vector is determined to be the initial quantization index value.

[0047] In the above embodiments, the final quantization index value of the second vector is determined based on the relationship between the initial quantization index value of the second vector and k, thereby ensuring the correlation between the first vector and the second vector and reducing the number of bits required for the quantization index value of the second vector.

[0048] In conjunction with some embodiments of the first aspect, in some embodiments, determining the quantization index value of the second vector based on the initial quantization index value includes at least one of the following:

[0049] If the quantization index value of the first vector is less than k and the initial quantization index value is less than k, then the quantization index value of the second vector is determined to be the initial quantization index value.

[0050] If the quantization index value of the first vector is less than k and the initial quantization index value is greater than or equal to k, the quantization index value of the second vector is determined to be k1, where k1 is the last index of the first half of the first codebook.

[0051] If the quantization index value of the first vector is greater than or equal to k and the initial quantization index value is less than k, then the quantization index value of the second vector is indeed k2, where k2 is the first index of the first half of the first codebook;

[0052] If the quantization index value of the first vector is greater than or equal to k, and the initial quantization index value is greater than or equal to k, the quantization index value of the second vector is determined to be the initial quantization index value minus k.

[0053] In the above embodiments, the final quantization index value of the second vector is determined according to the relationship between the quantization index value of the first vector and the initial quantization index value of the second vector and k, thereby ensuring the correlation between the first vector and the second vector, reducing the number of bits required for the quantization index value of the second vector, and also taking into account the quantization effect.

[0054] In conjunction with some embodiments of the first aspect, in some embodiments, k is 2. (B-1) .

[0055] Secondly, embodiments of this disclosure provide a vector quantization device, comprising:

[0056] Processing module;

[0057] The processing module is configured as follows:

[0058] N1 vectors are determined based on multiple frequency domain envelope values ​​corresponding to an audio frame, wherein each of the N1 vectors includes M frequency domain envelope values ​​from the multiple frequency domain envelope values, and N1 and M are positive integers;

[0059] The N1 vectors are quantized using a B-bit first codebook to obtain the quantization index value of the first vector and the initial quantization index value of the second vector, where B is a positive integer greater than or equal to 2.

[0060] The quantization index value of the second vector is determined based on the initial quantization index value, and the number of bits required for the quantization index value of the second vector is less than B;

[0061] The first vector is the first vector among the N1 vectors, and the second vector is at least one vector among the N1 vectors other than the first vector.

[0062] Thirdly, embodiments of this disclosure provide a communication device, including:

[0063] One or more processors;

[0064] The communication device is used to execute the method described in the optional implementation of the first aspect.

[0065] Fourthly, embodiments of this disclosure provide a communication system including an encoder and a decoder, wherein the encoder is configured to implement the method described in the optional implementation of the first aspect.

[0066] Fifthly, embodiments of this disclosure provide a storage medium storing instructions that, when executed on a communication device, cause the communication device to perform the method described in the optional implementation of the first aspect.

[0067] In a sixth aspect, embodiments of this disclosure provide a computer program product including a computer program that, when executed by a communication device, implements the method described in the optional implementation of the first aspect.

[0068] In a seventh aspect, embodiments of this disclosure provide a chip or chip system. The chip or chip system includes processing circuitry configured to perform the methods described in the alternative implementations of the first aspect.

[0069] It is understood that the aforementioned vector quantization device, communication equipment, communication system, storage medium, computer program product, chip, or chip system are all used to execute the methods proposed in the embodiments of this disclosure. Therefore, the beneficial effects they can achieve can be referred to the beneficial effects in the corresponding methods, and will not be repeated here.

[0070] This disclosure provides vector quantization methods, apparatus, and communication devices. In some embodiments, the terms vector quantization method, encoding method, and communication method can be used interchangeably, as can the terms vector quantization apparatus, encoding apparatus, and communication apparatus.

[0071] This disclosure is not exhaustive, but merely illustrative of some embodiments, and is not intended to limit the scope of protection of this disclosure. Unless otherwise specified, each step in a particular embodiment can be implemented as an independent embodiment, and the steps can be arbitrarily combined. For example, a solution after removing some steps in a particular embodiment can also be implemented as an independent embodiment, and the order of the steps in a particular embodiment can be arbitrarily interchanged. Furthermore, the optional implementation methods in a particular embodiment can be arbitrarily combined; moreover, the embodiments can be arbitrarily combined, for example, some or all steps of different embodiments can be arbitrarily combined, and a particular embodiment can be arbitrarily combined with the optional implementation methods of other embodiments.

[0072] In each of the disclosed embodiments, unless otherwise specified or in case of logical conflict, the terminology and / or descriptions of the embodiments are consistent and can be referenced by each other. Technical features in different embodiments can be combined to form new embodiments based on their inherent logical relationships.

[0073] The terminology used in the embodiments of this disclosure is for the purpose of describing particular embodiments only and is not intended to limit the scope of this disclosure.

[0074] In this embodiment of the disclosure, unless otherwise stated, elements expressed in the singular form, such as "a," "an," "the," "the," "the," "the," "the," "the," "this," etc., can mean "one and only one," or "one or more," "at least one," etc. For example, when using articles such as "a," "an," "the," etc. in translation, the noun following the article can be understood as either a singular expression or a plural expression.

[0075] In the embodiments disclosed herein, "multiple" refers to two or more.

[0076] In some embodiments, the terms “at least one (at least one item, at least one)”, “one or more”, “a plurality of”, “multiple”, etc., may be used interchangeably.

[0077] In some embodiments, the notation "at least one of A and B", "A and / or B", "A in one case, B in another", "in response to one case A, in response to another case B", etc., may include the following technical solutions depending on the situation: in some embodiments, A (execute A regardless of B); in some embodiments, B (execute B regardless of A); in some embodiments, execution is selected from A and B (A and B are selectively executed); in some embodiments, A and B (both A and B are executed). The same applies when there are more branches such as A, B, C, etc.

[0078] In some embodiments, the notation "A or B" may include the following technical solutions, depending on the situation: in some embodiments, A (execution of A regardless of B); in some embodiments, B (execution of B regardless of A); in some embodiments, execution is selected from A and B (A and B are selectively executed). The same applies when there are more branches such as A, B, C, etc.

[0079] The prefixes "first," "second," etc., used in the embodiments of this disclosure are merely for distinguishing different descriptive objects and do not impose restrictions on the position, order, priority, quantity, or content of the descriptive objects. The description of the descriptive objects is found in the claims or the context of the embodiments, and the use of prefixes should not constitute unnecessary restrictions. For example, if the descriptive object is a "field," the ordinal numbers preceding "field" in "first field" and "second field" do not restrict the position or order of the "fields." "First" and "second" do not restrict whether the "fields" they modify are in the same message, nor do they restrict the order of "first field" and "second field." Similarly, if the descriptive object is a "level," the ordinal numbers preceding "level" in "first level" and "second level" do not restrict the priority between "levels." Furthermore, the number of descriptive objects is not limited by ordinal numbers and can be one or more. For example, in "first device," the number of "devices" can be one or more. Furthermore, the objects modified by different prefixes can be the same or different. For example, if the object being described is "device", then "first device" and "second device" can be the same device or different devices, and their types can be the same or different. Similarly, if the object being described is "information", then "first information" and "second information" can be the same information or different information, and their content can be the same or different.

[0080] In some embodiments, “including A,” “containing A,” “for indicating A,” and “carrying A” can be interpreted as directly carrying A or indirectly indicating A.

[0081] In some embodiments, the terms “in response to…”, “in response to determining…”, “in the case of…”, “when…”, “if…”, “if…”, etc., can be used interchangeably.

[0082] In some embodiments, the terms “greater than,” “greater than or equal to,” “not less than,” “more than,” “more than or equal to,” “not less than,” “higher than,” “higher than or equal to,” “not lower than,” and “above” can be used interchangeably, as can the terms “less than,” “less than or equal to,” “not greater than,” “less than,” “less than or equal to,” “not more than,” “lower than,” “lower than or equal to,” “not higher than,” and “below”.

[0083] In some embodiments, the apparatus and device may be interpreted as physical or virtual, and their names are not limited to the names recorded in the embodiments. In some cases, they may also be understood as "equipment", "device", "circuit", "network element", "node", "function", "unit", "section", "system", "network", "chip", "chip system", "entity", "body", etc.

[0084] In some embodiments, "network" can be interpreted as devices included in the network, such as access network devices, core network devices, etc.

[0085] In some embodiments, "access network device (AN device)" may also be referred to as "radio access network device (RAN device)," "base station (BS)," "radio base station," or "fixed station." In some embodiments, it may also be understood as "node," "access point," "transmission point (TP)," "reception point (RP)," "transmission / reception point (TRP)," "panel," "antenna panel," "antenna array," "cell," "macro cell," "small cell," "femto cell," "pico cell," "sector," "cellgroup," "serving cell," "carrier," "component carrier," or "bandwidth part (BWP)," etc.

[0086] In some embodiments, "terminal" or "terminal device" may be referred to as "user equipment (UE)," "user terminal," "mobile station (MS)," "mobile terminal (MT)," "subscriber station," "mobile unit," "subscriber unit," "wireless unit," "remote unit," "mobile device," "wireless device," "wireless communication device," "remote device," "mobile subscriber station," "access terminal," "mobile terminal," "wireless terminal," "remote terminal," "handset," "user agent," "mobile client," "client," etc.

[0087] In some embodiments, the acquisition of data, information, etc., may comply with the laws and regulations of the country where the location is situated.

[0088] In some embodiments, data, information, etc., may be obtained with the user's consent.

[0089] Furthermore, each element, each row, or each column in the table of this disclosure can be implemented as an independent embodiment, and any combination of any element, any row, or any column can also be implemented as an independent embodiment.

[0090] In related technologies, data and audio are transmitted via Internet Protocol (IP), providing real-time high-definition voice (HD Voice) / enhanced high-definition voice (HD+Voice) services. The Enhanced Voice and Audio Services (EVS) codecs employed ensure high-quality compression and reconstruction of both voice and audio. Vector quantization (VQ) enables efficient signal representation and transmission with relatively low complexity. For example, vector quantization can be used to encode the frequency domain envelope of audio.

[0091] Figure 1 This is a schematic diagram of the architecture of a communication system provided according to embodiments of this disclosure. Figure 1 As shown, the communication system includes an encoder 101 and a decoder 102. In some embodiments, the encoder 101 performs vector quantization on an input audio frame. Some alternative implementations of the vector quantization method are described in the following embodiments.

[0092] Figure 2A This is a schematic flowchart of the vector quantization method provided according to embodiments of this disclosure. Figure 2A As shown, the method includes the following steps:

[0093] Step S2101: Determine N1 vectors based on the multiple frequency domain envelope values ​​corresponding to an audio frame.

[0094] Assuming an audio frame corresponds to N frequency domain envelope values, these N frequency domain envelope values ​​can be divided into N1 vectors. Each of these N1 vectors includes M frequency domain envelope values ​​from the N frequency domain envelope values; that is, each of the N1 vectors is an M-dimensional vector. Thus, N1 M-dimensional vectors can be obtained from the N frequency domain envelope values ​​corresponding to an audio frame. Optionally, N1 × M = N. N, N1, and M are all positive integers. M can be greater than or equal to 2, and N is greater than N1. For example, when M = 2, each of the N1 vectors is a two-dimensional vector.

[0095] When an audio frame comprises N1 subframes, each subframe corresponds to M frequency domain envelope values. Based on the M frequency domain envelope values ​​corresponding to each subframe, an M-dimensional vector can be determined for each subframe, resulting in a total of N1 M-dimensional vectors. For example, when N1 = 4 and M = 2, i.e., an audio frame comprises 4 subframes, the two frequency domain envelope values ​​of each subframe are combined into a two-dimensional vector. Based on the eight frequency domain envelope values ​​corresponding to the four subframes, four two-dimensional vectors are determined. It is understood that the N1 vectors can also be determined in other ways, and this disclosure does not limit the method of determining the N1 vectors.

[0096] Step S2102: Use the B-bit first codebook to quantize the first vector among the N1 vectors to obtain the quantization index value of the first vector.

[0097] B is a positive integer greater than or equal to 2. The first codebook of B bits includes 2. B Each of the B-bit vectors in the first codebook can be called a quantization vector or codeword. The B-bit first codebook can be divided into two B-1 bit codebooks, each containing 2... B-1A vector, or in other words, the first codebook of B bits can be divided into two parts, denoted as the first half and the second half, each part including 2... B-1 A vector. For example, when B=4, the 4-bit first codebook can be divided into two 3-bit codebooks.

[0098] The method for quantizing the first vector using the first codebook involves comparing the first vector with each vector in the first codebook, determining the vector in the first codebook that is closest to the first vector, and then determining the quantization index value of the first vector based on this closest vector. For example, each vector in the first codebook corresponds to an index, and the index corresponding to the closest vector is the quantization index value of the first vector. This closest vector can also be called the codeword quantized from the first vector.

[0099] Table 1 below is an example of a 4-bit first codebook.

[0100] Table 1

[0101]

[0102] The aforementioned 4-bit first codebook can be divided into two 3-bit codebooks. For example, the first 3-bit codebook corresponds to the portion with indices 0 to 7 in Table 1, and the second 3-bit codebook corresponds to the portion with indices 8 to 15 in Table 1. Alternatively, the aforementioned 4-bit first codebook can be divided into two parts: the first half corresponds to the portion with indices 0 to 7 in Table 1, and the second half corresponds to the portion with indices 8 to 15 in Table 1.

[0103] Step S2103: If the quantization index value of the first vector corresponds to the first half of the first codebook, determine that the first half of the first codebook is the second codebook.

[0104] Step S2104: If the quantization index value of the first vector corresponds to the second half of the first codebook, determine that the second half of the first codebook is the second codebook.

[0105] Step S2105: Use the second codebook to quantize the second vector among the N1 vectors to obtain the quantization index value of the second vector.

[0106] According to the above embodiments, in some embodiments, the second codebook is determined by determining whether the quantization index value of the first vector corresponds to the first half or the second half of the first codebook (i.e., whether the codeword quantized by the first vector is located in the first half or the second half of the first codebook). If the quantization index value of the first vector corresponds to the first half of the first codebook (i.e., the codeword quantized by the first vector is located in the first half of the first codebook), then for the second vector among the above N1 vectors, the first half of the first codebook is used as the second codebook, and the second vector is quantized using the second codebook to obtain the quantization index value of the second vector; if the quantization index value of the first vector corresponds to the second half of the first codebook (i.e., the codeword quantized by the first vector is located in the second half of the first codebook), then for the second vector among the above N1 vectors, the second half of the first codebook is used as the second codebook, and the second vector is quantized using the second codebook to obtain the quantization index value of the second vector. It can be understood that the second codebook includes either the first half or the second half of the first codebook, therefore the second codebook is a B-1 bit codebook.

[0107] In some embodiments, the first vector is the first vector among the N1 vectors, and the second vector is at least one vector among the N1 vectors other than the first vector. For example, the second vector can be the second, third, fourth, etc., vector among the N1 vectors. The first vector can be the vector corresponding to the first subframe in the audio frame, the second vector can be the vector corresponding to the second subframe in the audio frame, and so on.

[0108] It is worth noting that in the above process, the quantization index value of the first vector can be represented by B bits, and the quantization index value of the second vector can be represented by B-1 bits. Therefore, the number of bits required for the second vector and subsequent vectors can be reduced. At the same time, the second codebook used to quantize the second vector and subsequent vectors is determined based on the quantization result of the first vector. Therefore, the correlation between multiple vectors corresponding to the same audio frame can be guaranteed. That is, when the codeword of the first vector is located in the first half of the first codebook, the codewords of the second vector and subsequent vectors are also located in the first half. When the codeword of the first vector is located in the second half of the first codebook, the codewords of the second vector and subsequent vectors are also located in the second half.

[0109] Through the above process, the encoder can determine the quantization index values ​​corresponding to each of the N1 vectors and transmit the quantization index values.

[0110] The decoder decodes the M frequency domain envelope values ​​corresponding to each of the N1 vectors based on their respective quantization index values, thereby reconstructing the corresponding audio frame.

[0111] At the decoder end, when the quantization index value of the first vector corresponds to the latter half of the first codebook, the quantization index value of the second vector will be based on the transmitted quantization index value with an offset of k, thereby ensuring the correlation between the second vector and the first vector.

[0112] Figure 2B This is a schematic flowchart of the vector quantization method provided according to embodiments of this disclosure. Figure 2B As shown, the method includes the following steps:

[0113] Step S2201: Determine N1 vectors based on the multiple frequency domain envelope values ​​corresponding to an audio frame.

[0114] For optional implementations of step S2201, please refer to [link / reference]. Figure 2A Optional implementation methods of step S2101, and Figure 2A Other related parts in the embodiments involved will not be described in detail here.

[0115] Step S2202: Use the B-bit first codebook to quantize the first vector among the N1 vectors to obtain the quantization index value of the first vector.

[0116] For optional implementations of step S2202, please refer to [link / reference]. Figure 2A Optional implementation methods of step S2102, and Figure 2A Other related parts in the embodiments involved will not be described in detail here.

[0117] Step S2203: Use the first codebook to quantize the second vector among the N1 vectors to obtain the initial quantization index value of the second vector.

[0118] The method of quantizing the second vector among the N1 vectors using the first codebook is the same as the method of quantizing the first vector. Therefore, the optional implementation of step S2203 can refer to the optional implementation of step S2202. However, the difference is that the index value obtained by quantizing the second vector using the first codebook is not used as the final quantization index value of the second vector, but as the initial quantization index value of the second vector.

[0119] In some embodiments, the second vector is compared with each vector in the first codebook to determine the vector in the first codebook that is closest to the second vector, and the initial quantization index value of the second vector is determined based on the closest vector. For example, the index corresponding to the closest vector is the initial quantization index value of the second vector.

[0120] Step S2204: If the initial quantization index value of the second vector is greater than or equal to k, determine that the quantization index value of the second vector is the initial quantization index value minus k.

[0121] Step S2205: If the initial quantization index value of the second vector is less than k, determine that the quantization index value of the second vector is the initial quantization index value.

[0122] k is a positive integer. In some embodiments, k = 2 (B-1) For example, when B = 4, k = 8. It should be understood that in the above description, "the initial quantization index value of the second vector is greater than or equal to 2". (B-1) The description can be replaced with "The initial quantization index value of the second vector is greater than 2". (B-1) -1", "The initial quantization index value of the second vector is less than 2". (B-1) "This can be replaced by the description "The initial quantization index value of the second vector is less than or equal to 2". (B-1) -1”. Therefore, in some embodiments, k = 2 (B-1) -1.

[0123] In the above embodiment, the final quantization index value of the second vector is determined according to the relationship between the initial quantization index value of the second vector and k, thereby reducing the number of bits required for the quantization index value of the second vector, making the number of bits required for the quantization index value of the second vector less than B.

[0124] In some embodiments, the quantization index value of the second vector is set within a first range, which is 0 to 2. (B-1) Therefore, the number of bits required for the quantization index value of the second vector can be B-1.

[0125] According to the above embodiments, in some embodiments, it is determined whether the initial quantization index value of the second vector is greater than or equal to k (or whether the initial quantization index value of the second vector is less than k). If the initial quantization index value of the second vector is greater than or equal to k, then the quantization index value of the second vector is set to the initial quantization index value of the second vector minus k. In this way, at the decoder end, when the quantization index value of the first vector is greater than or equal to k, the quantization index value of the second vector will be restored to the original initial quantization index value after adding an offset of k. If the initial quantization index value of the second vector is less than k, then the quantization index value of the second vector is set to the initial quantization index value of the second vector.

[0126] In some embodiments, step S2202 may be performed in an altered order or simultaneously with at least one of steps S2203 to S2205.

[0127] Figure 2C This is a schematic flowchart of the vector quantization method provided according to embodiments of this disclosure. Figure 2C As shown, the method includes the following steps:

[0128] Step S2301: Determine N1 vectors based on the multiple frequency domain envelope values ​​corresponding to an audio frame.

[0129] For optional implementations of step S2301, please refer to [link / reference]. Figure 2A Step S2101 Figure 2B The optional implementation of at least one step in step S2201, and Figure 2A , Figure 2B Other related parts in the embodiments involved will not be described in detail here.

[0130] Step S2302: Use the B-bit first codebook to quantize the first vector among the N1 vectors to obtain the quantization index value of the first vector.

[0131] For optional implementations of step S2302, please refer to [link / reference]. Figure 2A Step S2102 Figure 2B Optional implementations of at least one step in step S2202, and Figure 2A , Figure 2B Other related parts in the embodiments involved will not be described in detail here.

[0132] Step S2303: Use the first codebook to quantize the second vector among the N1 vectors to obtain the initial quantization index value of the second vector.

[0133] For optional implementations of step S2303, please refer to [link / reference]. Figure 2B The optional implementation methods of step S2203, and Figure 2B Other related parts in the embodiments involved will not be described in detail here.

[0134] Step S2304: If the quantization index value of the first vector is less than k and the initial quantization index value of the second vector is less than k, determine that the quantization index value of the second vector is the initial quantization index value.

[0135] Step S2305: If the quantization index value of the first vector is less than k and the initial quantization index value of the second vector is greater than or equal to k, determine the quantization index value of the second vector as k1.

[0136] k1 can be any index in the first half of the first codebook. Optionally, k1 can be the last index in the first half of the first codebook. For example, taking the first codebook shown in Table 1 as an example, k1 = 7.

[0137] According to the above embodiment, when the quantization index value of the first vector is less than k (i.e., the codeword quantized by the first vector is located in the first half of the first codebook), due to the correlation between the first and second vectors, it is generally assumed that the codeword quantized by the second vector is also located in the first half of the first codebook. Therefore, when the initial quantization index value of the second vector is less than k, the quantization index value of the second vector is determined to be the initial quantization index value of the second vector. When the initial quantization index value of the second vector is greater than or equal to k, the quantization index value of the second vector is determined to be k1, that is, the quantization index value of the second vector is set to an index in the first half of the first codebook. This ensures the correlation between the first and second vectors on the one hand, and allows the quantization index value of the second vector to be set between 0 and 2 on the other hand. (B-1) Within the range of k, the quantization index value of the second vector can be represented by B-1 bits. Furthermore, it should be noted that when the initial quantization index value of the second vector is greater than or equal to k, by setting the quantization index value of the second vector to the last index of the first half of the codebook, both correlation and the reduction of transmission bits can be achieved while maintaining quantization performance.

[0138] Step S2306: If the quantization index value of the first vector is greater than or equal to k, and the initial quantization index value of the second vector is less than k, then confirm that the quantization index value of the second vector is k2.

[0139] k2 is any index in the first half of the first codebook. k1 and k2 can be the same or different. Optionally, k2 is the first index in the first half of the first codebook. For example, k2 = 0.

[0140] In some embodiments, step S2306 is an optional step. For example, if the quantization index value of the first vector is greater than or equal to k and the initial quantization index value of the second vector is less than k, the quantization index value of the second vector can also be determined to be the initial quantization index value of the second vector.

[0141] Step S2307: If the quantization index value of the first vector is greater than or equal to k, and the initial quantization index value of the second vector is greater than or equal to k, determine that the quantization index value of the second vector is the initial quantization index value minus k.

[0142] According to the above embodiment, when the quantization index value of the first vector is greater than or equal to k (i.e., the codeword quantized by the first vector is located in the latter half of the first codebook), due to the correlation between the first and second vectors, it is generally assumed that the codeword quantized by the second vector is also located in the latter half of the first codebook. To reduce the number of bits required for the quantization index value of the second vector, the final quantization index value of the second vector is determined based on its initial quantization index value, allowing the quantization index value of the second vector to be set between 0 and 2. (B-1)Within the range, the quantization index value of the second vector can be represented by B-1 bits.

[0143] Optionally, if the quantization index value of the first vector is greater than or equal to k, and the initial quantization index value of the second vector is less than k, then the quantization index value of the second vector is determined to be k2. That is, the quantization index value of the second vector is set to an index in the first half of the first codebook, so the quantization index value of the second vector can be set between 0 and 2. (B-1) Within a certain range, the quantization index value of the second vector can be represented using B-1 bits. Furthermore, it should be noted that at the decoder end, since the quantization index value of the first vector is greater than or equal to k, for the second vector, the decoder will add an offset of k to the transmitted quantization index value of the second vector to maintain the correlation between the second and first vectors. Since the initial quantization index value of the second vector is less than k, and the transmitted quantization index value of the second vector is the first index of the first half of the first codebook, after adding the offset of k, the quantization index value of the second vector at the decoder end will be further set to the first index of the second half of the first codebook, which is closest to the first half of the first codebook. Therefore, while ensuring correlation and reducing the number of transmitted bits, the quantization effect can be balanced.

[0144] Optionally, if the quantization index value of the first vector is greater than or equal to k, and the initial quantization index value of the second vector is also greater than or equal to k, then the quantization index value of the second vector is determined to be the initial quantization index value minus k, so that the quantization index value of the second vector can be set between 0 and 2. (B-1) Within the range, the quantization index value of the second vector can be represented by B-1 bits. At the decoder end, since the quantization index value of the first vector is greater than or equal to k, for the second vector, the decoder will add an offset of k to the transmitted quantization index value of the second vector to maintain the correlation between the second vector and the first vector. After adding the offset of k, the quantization index value of the second vector will be restored to its original initial quantization index value.

[0145] In the above embodiment, the final quantization index value of the second vector is determined according to the relationship between the quantization index value of the first vector and the initial quantization index value of the second vector and k, thereby reducing the number of bits required for the quantization index value of the second vector, making the number of bits required for the quantization index value of the second vector less than B.

[0146] It is worth noting that, in Figure 2B and Figure 2C In the embodiments, with Figure 2AThe difference in this embodiment is that the second vector is quantized using the entire first codebook, rather than using a second codebook determined by a portion of the first codebook, thus improving quantization performance. Furthermore, by determining the final quantization index value of the second vector using its initial quantization index value, the quantization index value of the second vector can be set between 0 and 2. (B-1) Within this range, therefore, while improving the quantization effect, the quantization index value of the second vector can still be represented by B-1 bits. Compared to Figure 2A The embodiment can achieve a higher quantization effect while keeping the transmitted bits unchanged.

[0147] In some embodiments, the above Figure 2B and Figure 2C In the embodiment, the operation at the decoder end is similar to... Figure 2A The operation at the decoder end is the same in the embodiments.

[0148] Figure 3A This is a schematic flowchart of the vector quantization method provided according to embodiments of this disclosure. Figure 3A As shown, the method includes the following steps:

[0149] Step S3101: Determine N1 vectors based on the multiple frequency domain envelope values ​​corresponding to an audio frame.

[0150] Each of the N1 vectors includes M frequency domain envelope values ​​from the plurality of frequency domain envelope values, where N1 and M are positive integers.

[0151] For optional implementations of step S3101, please refer to [link / reference]. Figure 2B Step S2201 Figure 2C Optional implementations of at least one step in step S2301, and Figure 2B , Figure 2C Other related parts in the embodiments involved will not be described in detail here.

[0152] Step S3102: Use the B-bit first codebook to quantize the first vector among the N1 vectors to obtain the quantization index value of the first vector.

[0153] Where B is a positive integer greater than or equal to 2. The first vector is the first vector among the N1 vectors.

[0154] Optional implementations of step S3102 can be found in [reference]. Figure 2B Step S2202 Figure 2C Optional implementations of at least one step in step S2302, and Figure 2B , Figure 2C Other related parts in the embodiments involved will not be described in detail here.

[0155] Step S3103: Use the first codebook to quantize the second vector among the N1 vectors to obtain the initial quantization index value of the second vector.

[0156] The second vector is at least one of the N1 vectors other than the first vector, for example, the second vector is the second vector, the third vector, the fourth vector, etc. among the N1 vectors.

[0157] For optional implementations of step S3103, please refer to [link / reference]. Figure 2B Step S2203 Figure 2C The optional implementation of at least one step in step S2303, and Figure 2B , Figure 2C Other related parts in the embodiments involved will not be described in detail here.

[0158] Step S3104: Determine the quantization index value of the second vector based on the initial quantization index value of the second vector. The number of bits required for the quantization index value of the second vector is less than B.

[0159] Optionally, the quantization index value of the second vector can be determined based on the relationship between the initial quantization index value of the second vector and the size of k.

[0160] Optionally, the quantization index value of the second vector can be determined based on the relationship between the quantization index value of the first vector and the initial quantization index value of the second vector and k, respectively.

[0161] Optionally, the quantization index value of the second vector is within a first range, which is 0 to 2. (B-1) Therefore, the number of bits required for the quantization index value of the second vector is B-1.

[0162] Optionally, k is 2 (B-1) .

[0163] For optional implementations of step S3104, please refer to [link / reference]. Figure 2B Steps S2204 to S2205 Figure 2C Optional implementation methods for at least one step in steps S2304 to S2307, and Figure 2B , Figure 2C Other related parts in the embodiments will not be described again here. In some embodiments, step S3104 may include at least one of the steps S2204 to S2205 and steps S2304 to S2307 described above.

[0164] In some embodiments, step S3102 may be performed in an altered order or simultaneously with at least one of steps S3103 to S3104.

[0165] Through the above embodiments, using a codebook to quantize N1 vectors corresponding to an audio frame can reduce the number of transmitted bits and achieve a high quantization effect.

[0166] Figure 3B This is a schematic flowchart of the vector quantization method provided according to embodiments of this disclosure. Figure 3B As shown, the method includes the following steps:

[0167] Step S3201: Determine N1 vectors based on the multiple frequency domain envelope values ​​corresponding to an audio frame.

[0168] For optional implementations of step S3201, please refer to [link / reference]. Figure 2B Step S2201 Figure 2C Step S2301 Figure 3A The optional implementation of at least one step in step S3101, and Figure 2B , Figure 2C , Figure 3A Other related parts in the embodiments involved will not be described in detail here.

[0169] Step S3202: Use the B-bit first codebook to quantize N1 vectors to obtain the quantization index value of the first vector and the initial quantization index value of the second vector.

[0170] For optional implementations of step S3202, please refer to [link / reference]. Figure 2B Steps S2202~S2203 Figure 2C Steps S2302 to S2303 Figure 3A The optional implementation of at least one step in steps S3102 to S3103, and Figure 2B , Figure 2C , Figure 3A Other related parts in the embodiments involved will not be described in detail here.

[0171] Step S3203: Determine the quantization index value of the second vector based on the initial quantization index value of the second vector. The number of bits required for the quantization index value of the second vector is less than B.

[0172] For optional implementations of step S3203, please refer to [link / reference]. Figure 2B Steps S2204 to S2205 Figure 2C Steps S2304 to S2307 Figure 3A The optional implementation of at least one step in step S3104, and Figure 2B , Figure 2C , Figure 3AOther related parts in the embodiments will not be described again here. In some embodiments, step S3203 may include at least one of the steps S2204 to S2205 and steps S2304 to S2307 described above.

[0173] The following are some specific embodiments that describe the vector quantization method proposed in this disclosure.

[0174] Suppose an audio frame is divided into 4 subframes, each subframe corresponds to 2 frequency domain envelope values, and the 2 frequency domain envelope values ​​of each subframe are combined into a two-dimensional vector, then there are 4 two-dimensional vectors.

[0175] In some embodiments, refer to Figure 4A First, the first vector is quantized using a 4-bit first codebook, with the quantization index value being ind2.

[0176] Then, the second vector is quantized using a 4-bit first codebook, with the quantization index value being ind1.

[0177] Then, determine whether ind1 is greater than or equal to 8 (or determine whether ind1 is less than 8);

[0178] If ind1 is greater than or equal to 8, then set ind1 = ind1 - 8;

[0179] If ind1 is less than 8, then keep ind1 unchanged, or in other words, set ind1 = ind1.

[0180] In some embodiments, refer to Figure 4B First, the first vector is quantized using a 4-bit first codebook, with the quantization index value being ind1.

[0181] Then, the second vector is quantized using a 4-bit first codebook, with the quantization index value being ind1.

[0182] Then, determine whether ind2 is greater than or equal to 8 (or determine whether ind2 is less than 8);

[0183] If ind2 is greater than or equal to 8, then check if ind1 is greater than or equal to 8 (or check if ind1 is less than 8);

[0184] If ind1 is greater than or equal to 8, then set ind1 = ind1 - 8;

[0185] If ind1 is less than 8, then set ind1 = 0;

[0186] If ind2 is less than 8, then check if ind1 is greater than or equal to 8 (or check if ind1 is less than 8);

[0187] If ind1 is greater than or equal to 8, then set ind1 = 7;

[0188] If ind1 is less than 8, then keep ind1 unchanged, or in other words, set ind1 = ind1.

[0189] The quantization process for the third and fourth vectors can be referenced from that for the second vector, and will not be repeated here.

[0190] In the embodiments disclosed herein, some or all of the steps and their optional implementations may be arbitrarily combined with some or all of the steps in other embodiments, or may be arbitrarily combined with the optional implementations in other embodiments.

[0191] This disclosure also provides an apparatus for implementing any of the above methods. For example, an apparatus is provided that includes units or modules for implementing the steps performed by the terminal in any of the above methods. Alternatively, another apparatus is provided that includes units or modules for implementing the steps performed by a network device (e.g., an access network device, a core network functional node, a core network device, etc.) in any of the above methods.

[0192] It should be understood that the division of units or modules in the above device is only a logical functional division. In actual implementation, they can be fully or partially integrated into a single physical entity, or they can be physically separated. Furthermore, the units or modules in the device can be implemented by a processor calling software: for example, the device includes a processor connected to a memory containing instructions. The processor calls the instructions stored in the memory to implement any of the above methods or to implement the functions of the units or modules in the above device. The processor can be, for example, a general-purpose processor, such as a Central Processing Unit (CPU) or a microprocessor, and the memory can be internal or external to the device. Alternatively, the units or modules in the device can be implemented in the form of hardware circuits. The functionality of some or all of the units or modules can be achieved through the design of these hardware circuits, which can be understood as one or more processors. For example, in one implementation, the hardware circuit is an application-specific integrated circuit (ASIC). The functionality of some or all of the units or modules is achieved through the design of the logical relationships between the components within the circuit. In another implementation, the hardware circuit can be implemented using a programmable logic device (PLD). Taking a field-programmable gate array (FPGA) as an example, it can include a large number of logic gates. The connection relationships between the logic gates are configured through configuration files, thereby achieving the functionality of some or all of the units or modules. All units or modules of the above device can be implemented entirely through processor-called software, entirely through hardware circuits, or partially through processor-called software with the remaining parts implemented through hardware circuits.

[0193] In this embodiment, the processor is a circuit with signal processing capabilities. In one implementation, the processor can be a circuit with instruction read and execute capabilities, such as a Central Processing Unit (CPU), a microprocessor, a graphics processing unit (GPU) (which can be understood as a microprocessor), or a digital signal processor (DSP). In another implementation, the processor can implement certain functions through the logical relationships of hardware circuits. The logical relationships of the aforementioned hardware circuits are fixed or reconfigurable. For example, the processor is a hardware circuit implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD), such as an FPGA. In a reconfigurable hardware circuit, the process of the processor loading a configuration document and configuring the hardware circuit can be understood as the process of the processor loading instructions to implement the functions of some or all of the above units or modules. Furthermore, it can also be a hardware circuit designed for artificial intelligence, which can be understood as an ASIC, such as a Neural Network Processing Unit (NPU), a Tensor Processing Unit (TPU), or a Deep Learning Processing Unit (DPU).

[0194] Figure 5 This is a schematic diagram of the vector quantization device proposed in an embodiment of this disclosure. Figure 5 As shown, the vector quantization device 5100 may include a processing module 5101. In some embodiments, the processing module is used for:

[0195] N1 vectors are determined based on multiple frequency domain envelope values ​​corresponding to an audio frame, wherein each of the N1 vectors includes M frequency domain envelope values ​​from the multiple frequency domain envelope values, and N1 and M are positive integers;

[0196] The N1 vectors are quantized using a B-bit first codebook to obtain the quantization index value of the first vector and the initial quantization index value of the second vector, where B is a positive integer greater than or equal to 2.

[0197] The quantization index value of the second vector is determined based on the initial quantization index value, and the number of bits required for the quantization index value of the second vector is less than B;

[0198] The first vector is the first vector among the N1 vectors, and the second vector is at least one vector among the N1 vectors other than the first vector.

[0199] Optionally, the vector quantization device 5100 may also include a transceiver module for transmitting quantization index values.

[0200] Optionally, the transceiver module is used to perform at least one of the communication steps such as sending and / or receiving performed by the encoder in the above method, which will not be elaborated here. Optionally, the processing module is used to perform at least one of the other steps performed by the encoder in the above method (e.g., steps S2101-2105, steps S2201-S2205, steps S2301-S2307, but not limited thereto), which will not be elaborated here.

[0201] In some embodiments, the transceiver module may include a transmitting module and / or a receiving module, which may be separate or integrated. Optionally, the transceiver module may be interchangeable with a transceiver.

[0202] In some embodiments, the processing module may be a single module or may include multiple sub-modules. Optionally, the multiple sub-modules may each perform all or part of the steps required by the processing module. Optionally, the processing module may be interchangeable with a processor.

[0203] Figure 6A This is a schematic diagram of the structure of the communication device 6100 proposed in this embodiment. The communication device 6100 can be a network device (e.g., access network device, core network device, etc.), a terminal (e.g., user equipment, etc.), a chip, chip system, or processor that supports the network device in implementing any of the above methods, or a chip, chip system, or processor that supports the terminal in implementing any of the above methods. The communication device 6100 can be used to implement the methods described in the above method embodiments; for details, please refer to the descriptions in the above method embodiments.

[0204] like Figure 6A As shown, the communication device 6100 includes one or more processors 6101. The processor 6101 can be a general-purpose processor or a dedicated processor, such as a baseband processor or a central processing unit (CPU). The baseband processor can be used to process communication protocols and communication data, while the CPU can be used to control communication devices (e.g., base stations, baseband chips, terminal devices, terminal device chips, DUs or CUs, etc.), execute programs, and process program data. The communication device 6100 is used to execute any of the above methods.

[0205] In some embodiments, the communication device 6100 further includes one or more memories 6102 for storing instructions. Optionally, all or part of the memories 6102 may also be located outside the communication device 6100.

[0206] In some embodiments, the communication device 6100 further includes one or more transceivers 6103. When the communication device 6100 includes one or more transceivers 6103, the transceivers 6103 perform at least one of the communication steps such as sending and / or receiving in the above method (e.g., transmitting a quantization index value, but not limited thereto), and the processor 6101 performs at least one of the other steps (e.g., steps S2101 to S2105, steps S2201 to S2205, steps S2301 to S2307, but not limited thereto).

[0207] In some embodiments, a transceiver may include a receiver and / or a transmitter, which may be separate or integrated. Optionally, the terms transceiver, transceiver unit, transceiver, transceiver circuit, etc., may be used interchangeably; the terms transmitter, transmitting unit, transmitter, transmitting circuit, etc., may be used interchangeably; and the terms receiver, receiving unit, receiver, receiving circuit, etc., may be used interchangeably.

[0208] In some embodiments, the communication device 6100 may include one or more interface circuits 6104. Optionally, the interface circuit 6104 is connected to the memory 6102, and the interface circuit 6104 can be used to receive signals from the memory 6102 or other devices, and can be used to send signals to the memory 6102 or other devices. For example, the interface circuit 6104 can read instructions stored in the memory 6102 and send the instructions to the processor 6101.

[0209] The communication device 6100 described in the above embodiments may be a network device or a terminal, but the scope of the communication device 6100 described in this disclosure is not limited thereto, and the structure of the communication device 6100 may vary. Figure 6A The limitations. The communication device can be a standalone device or part of a larger device. For example, the communication device can be: (1) a standalone integrated circuit IC, or chip, or chip system or subsystem; (2) a collection of one or more ICs, optionally including storage components for storing data and programs; (3) an ASIC, such as a modem; (4) a module that can be embedded in other devices; (5) a receiver, terminal device, smart terminal device, cellular phone, wireless device, handheld device, mobile unit, vehicle device, network device, cloud device, artificial intelligence device, etc.; (6) others, etc.

[0210] Figure 6BThis is a schematic diagram of the structure of chip 6200 according to an embodiment of this disclosure. For cases where the communication device 6100 can be a chip or a chip system, please refer to... Figure 6B The diagram shown is a schematic representation of the structure of chip 6200, but it is not limited to this.

[0211] Chip 6200 includes one or more processors 6201, which are used to perform any of the above methods.

[0212] In some embodiments, chip 6200 further includes one or more interface circuits 6202. Optionally, the interface circuit 6202 is connected to memory 6203, and the interface circuit 6202 can be used to receive signals from memory 6203 or other devices, and the interface circuit 6202 can be used to send signals to memory 6203 or other devices. For example, the interface circuit 6202 can read instructions stored in memory 6203 and send the instructions to processor 6201.

[0213] In some embodiments, the interface circuit 6202 performs at least one of the communication steps such as sending and / or receiving in the above method (e.g., transmitting a quantization index value, but not limited thereto), and the processor 6201 performs at least one of the other steps (e.g., steps S2101 to S2105, steps S2201 to S2205, steps S2301 to S2307, but not limited thereto).

[0214] In some embodiments, the terms interface circuit, interface, transceiver pin, transceiver, etc., can be used interchangeably.

[0215] In some embodiments, chip 6200 further includes one or more memories 6203 for storing instructions. Optionally, all or part of the memories 6203 may be located outside of chip 6200.

[0216] This disclosure also proposes a storage medium storing instructions that, when executed on the communication device 6100, cause the communication device 6100 to perform any of the above methods. Optionally, the storage medium is an electronic storage medium. Optionally, the storage medium is a computer-readable storage medium, but not limited thereto; it may also be a storage medium readable by other devices. Optionally, the storage medium may be a non-transitory storage medium, but not limited thereto; it may also be a temporary storage medium.

[0217] This disclosure also provides a program product that, when executed by the communication device 6100, causes the communication device 6100 to perform any of the above methods. Optionally, the program product is a computer program product.

[0218] This disclosure also proposes a computer program that, when run on a computer, causes the computer to perform any of the above methods.

Claims

1. A method of vector quantization, characterized by, include: N1 vectors are determined based on multiple frequency domain envelope values ​​corresponding to an audio frame, wherein each of the N1 vectors includes M frequency domain envelope values ​​from the multiple frequency domain envelope values, and N1 and M are positive integers; The N1 vectors are quantized using a B-bit first codebook to obtain the quantization index value of the first vector and the initial quantization index value of the second vector, where B is a positive integer greater than or equal to 2. The quantization index value of the second vector is determined based on the initial quantization index value, and the number of bits required for the quantization index value of the second vector is less than B; The first vector is the first vector among the N1 vectors, and the second vector is at least one vector among the N1 vectors other than the first vector.

2. The method of claim 1, wherein, The quantization index value of the second vector is in a first range, the first range being 0 to 2 (B-1) .

3. The method according to claim 1 or 2, characterized in that, Determining the quantization index value of the second vector based on the initial quantization index value includes at least one of the following: If the initial quantization index value is greater than or equal to k, the quantization index value of the second vector is determined to be the initial quantization index value minus k; If the initial quantization index value is less than k, the quantization index value of the second vector is determined to be the initial quantization index value.

4. The method according to claim 1 or 2, characterized in that, Determining the quantization index value of the second vector based on the initial quantization index value includes at least one of the following: If the quantization index value of the first vector is less than k and the initial quantization index value is less than k, then the quantization index value of the second vector is determined to be the initial quantization index value. If the quantization index value of the first vector is less than k and the initial quantization index value is greater than or equal to k, the quantization index value of the second vector is determined to be k1, where k1 is the last index of the first half of the first codebook. If the quantization index value of the first vector is greater than or equal to k and the initial quantization index value is less than k, then the quantization index value of the second vector is indeed k2, where k2 is the first index of the first half of the first codebook; If the quantization index value of the first vector is greater than or equal to k, and the initial quantization index value is greater than or equal to k, the quantization index value of the second vector is determined to be the initial quantization index value minus k.

5. The method according to claim 3 or 4, characterized in that, k is 2 (B-1) .

6. A vector quantization device, characterized in that, include: Processing module; The processing module is configured as follows: N1 vectors are determined based on multiple frequency domain envelope values ​​corresponding to an audio frame, wherein each of the N1 vectors includes M frequency domain envelope values ​​from the multiple frequency domain envelope values, and N1 and M are positive integers; The N1 vectors are quantized using a B-bit first codebook to obtain the quantization index value of the first vector and the initial quantization index value of the second vector, where B is a positive integer greater than or equal to 2. The quantization index value of the second vector is determined based on the initial quantization index value, and the number of bits required for the quantization index value of the second vector is less than B; The first vector is the first vector among the N1 vectors, and the second vector is at least one vector among the N1 vectors other than the first vector.

7. A communication device, characterized in that, include: One or more processors; The communication device is used to execute the vector quantization method according to any one of claims 1-5.

8. A communication system, characterized in that, It includes an encoder and a decoder, wherein the encoder is configured to implement the vector quantization method according to any one of claims 1-5.

9. A storage medium storing instructions, characterized in that, When the instruction is executed on the communication device, the communication device performs the vector quantization method as described in any one of claims 1-5.

10. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the communication device, it implements the vector quantization method as described in any one of claims 1-5.