Method of and system for ordering data of an encoder for masking errors occurring in a transmission channel
Abstract
A method and system by which parameter data representative of vocoded speech are organized into a data packet for transmission so as to reduce the impact of transmission channel induced errors on the data packet. A data packet is constructed with certain most perceptually significant bits of parameter data at the beginning of the data packet. Following in the data packet are lesser perceptually significant bits of the same parameter data. Other parameter data then follows in the data packet. Interleaved in the data packet following the most perceptually significant bits at the beginning of the data packet are most perceptually significant bits of other parameter data. A parity check code is computed from the most perceptually significant bits in the data packet and also interleaved in the data packet following the most perceptually significant bits at the beginning of the data packet.

Term
Term ended
Expired 26 January 2008, 18.7 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
18 claims: 3 independent, 15 dependent
- 1Zastrzeżenia patentowe 1. Sposób formatowania danych zawierających parametry mowy w trakcie ich nadawania w postaci pakietu danych, w którym generuje się na podstawie wejściowej ramki próbek mowy dane zawierające parametry mowy, przy czym określone dane, wybrane spośród danych zawierających parametry mowy, mają większą względną ważność niż inne dane zawierające parametry mowy, oraz wprowadza się do początkowej części pakietu danych część tych określonych danych, znamienny tym, że do pozostałej części pakietu danych, następującej po jego początkowej części wprowadza się dane, które uzyskuje się z przeplatania pozostałej części określonych danych z innymi danymi, przez co początkowa część pakietu danych zawiera wyłącznie część określonych danych zaś pozostała część pakietu danych zawiera wyłącznie dane przeplecione.
- 2Sposób według zastrz. 1, znamienny tym, że na podstawie określonych danych zawierających parametry mowy oblicza się kod korekcyjny błędów i przeplata się dane kodu korekcyjnego błędów wyłącznie z danymi przeplecionymi.
- 3Sposób według zastrz. 1 albo 2, znamienny tym, że inną część określonych danych tworzy się wyłącznie w pozostałej części pakietu danych.
- 4Sposób według zastrz. 3, znamienny tym, że do części określonych danych wprowadza się dane pierwszego parametru mowy zaś do innej części określonych danych wprowadza się dane pierwszego parametru mowy i dane drugiego parametru mowy, przy czym w trakcie tworzenia innej części określonych danych generuje się dane pierwszego parametru mowy, następujące bezpośrednio po częściach określonych danych w pakiecie danych, i generuje się dane drugiego parametru mowy następujące bezpośrednio po danych pierwszego parametru mowy w pakiecie danych.
- 5Sposób wedhig zastrz. 3, znamienny tym, że do innej części określonych danych wprowadza się dane drugiego parametru mowy i dane trzeciego parametru mowy zaś do innych danych wprowadza się dane trzeciego parametru mowy i dane czwartego parametru mowy, przy czym w trakcie tworzenia pozostałej części określonych danych, następującej po określonych częściach jednego z zespołu danych zawierających określone parametry mowy, znajdujących się w pakiecie danych, generuje się dane trzeciego parametru mowy bezpośrednio po zespole danych w pakiecie danych oraz generuje się dane czwartego parametru mowy bezpośrednio po danych trzeciego parametru mowy w pakiecie danych.
- 6Sposób według zastrz. 2, znamienny tym, że w trakcie obliczania kodu korekcyjnego błędów oblicza się kod kontroli parzystości na podstawie niektórych z danych o częstotliwości spektralnej pary linii (LSP), danych tonu i danych książki kodowej, zaś w trakcie tworzenia danych w pakiecie danych i przeplatania kodu korekcyjnego błędów składa się w określonej sekwencji w części początkowej pakietu danych dane pierwszej części każdych danych o częstotliwości LSP, składa się w określonej sekwencji, innej niż w początkowej części pakietu danych, dane drugiej części wszystkich danych o częstotliwości LSP, przy czym sekwencja drugiej części danych o częstotliwości LSP następuje bezpośrednio po sekwencji pierwszej części danych o częstotliwości LSP w pakiecie danych, tworzy się następnie, inną niż początkowa część pakietu danych, sekwencję danych tonu i danych książki kodowej, po której następuje sekwencja drugiej części danych o częstotliwości LSP w pakiecie danych, oraz tworzy się kod kontroli parzystości w pakiecie danych inny niż w początkowej części pakietu danych.
- 7Sposób według zastrz. 6, znamienny tym, że kod kontroli parzystości przeplata się w pakiecie danych następującym po pierwszej części wszystkich danych o częstotliwości LSP.
- 8Sposób według zastrz. 7, znamienny tym, że przeplata się w pakiecie danych części wszystkich danych książki kodowej w sekwencji drugich części wszystkich danych o częstotliwości LSP i w sekwencji danych tonu i danych książki kodowej, przy czym kody kontroli parzystości przeplata się w sekwencji danych tonu i danych książki kodowej po przeplecionych częściach danych książki kodowej. 172 397
- 9Sposób według zastrz. 6, znamienny tym, że przy jednej szybkości nadawania, w pierwszej grupie zespołów danych dotyczących tonu, wprowadza się cztery zespoły danych tonu, przy czym każdy zespół danych dotyczących wysokości zawiera dane opóźnienia tonu i dane wzmocnienia tonu, w pierwszej grupie zespołów danych książki kodowej wprowadza się osiem zespołów danych książki kodowej, zaś każdy zespół danych książki kodowej zawiera indeks książki kodowej i dane wzmocnienia książki kodowej.
- 10Sposób według zastrz. 6, znamienny tym, że przy innej szybkości nadawania ramki danych zawierających parametry mowy, odbiera się drugie dane o częstotliwości spektralnej pary linii (LSP), odbiera się drugie dane tonu, odbiera się drugie dane książki kodowej, składa się w określonej sekwencji na początku pakietu danych wszystkie dane o częstotliwości LSP z drugich danych o częstotliwości LSP oraz składa się w określonej sekwencji drugie dane tonu i dane książki kodowej po sekwencji danych o częstotliwości LSP w pakiecie danych.
- 11Sposób według zastrz. 1, znamienny tym, że w trakcie tworzenia ramki danych o pełnej szybkości nadawania z odebranych próbek mowy, generuje się dane zawierające parametry mowy reprezentujące odebrane próbki mowy, generuje się na podstawie danych zawierających parametry mowy uporządkowaną sekwencję najbardziej znaczących bitów pary spektralnej linii (LSP), generuje się, na podstawie danych zawierających parametry mowy, przeplecioną sekwencję najbardziej znaczących bitów pary spektralnej linii (LSP) i niektórych najbardziej znaczących bitów wzmocnienia książki kodowej (CBGAIN) oraz generuje się, na podstawie danych zawierających parametry mowy, przeplecioną sekwencję pozostałych bitów CBGAIN, bitów wzmocnienia tonu (PGAIN), bitów opóźnienia tonu (PLAG), bitów indeksu książki kodowej (CBINDEX) i bitów kontroli parzystości (PCB).
- 12Sposób według zastrz. 1, znamienny tym, że w trakcie tworzenia ramki danych o połówkowej szybkości nadawania z odebranych próbek mowy, generuje się dane zawierające parametry mowy reprezentujące odebrane próbki mowy, generuje się, na podstawie danych zawierających parametry mowy, uporządkowaną sekwencję najbardziej znaczących bitów pary spektralnej linii (LSP) oraz generuje się, na podstawie danych zawierających parametry mowy, uporządkowaną sekwencję bitów wzmocnienia książki kodowej (CBGAIN), bitów wzmocnienia tonu (PGAIN), bitów opóźnienia tonu (PLAG) i bitów indeksu książki kodowej (CBINDEX).
- 13Sposób według zastrz. 1, znamienny tym, że w trakcie tworzenia ramki danych o ćwiartkowej szybkości nadawania z odebranych próbek mowy, generuje się dane zawierające parametry mowy reprezentując odebrane próbki mowy, generuje się, na podstawie danych zawierających parametry mowy, uporządkowaną sekwencję najbardziej znaczących bitów pary spektralnej linii (LSP) oraz generuje się, na podstawie danych zawierających parametry mowy, uporządkowaną sekwencję bitów wzmocnienia książki kodowej (CBGAIN), bitów wzmocnienia tonu (PGAIN), bitów opóźnienia tonu (PLAG) i bitów indeksu książki kodowej (CBINDEX).
- 14Sposób według zastrz. 1, znamienny tym, że w trakcie tworzenia ramki danych o oktetowej (jedna ósma) szybkości nadawania z odebranych próbek mowy, generuje się dane zawierające parametry mowy reprezentujące odebrane próbki mowy, generuje się, na podstawie danych zawierających parametry mowy, przeplecioną sekwencję bitów zarodkowych (CBSEED) i bitów pary spektralnej linii (LSP) oraz generuje się, na podstawie danych zawierających parametry mowy, uporządkowaną sekwencję bitów wzmocnienia książki kodowej (CBGAIN).
- 15Sposób formatowania danych zawierających parametry mowy w trakcie ich odbioru w postaci pakietu danych, w którym odebrane ramki danych zawierających zakodowane cyfrowo parametry mowy, posiadające różne prędkości nadawania, dekoduje się na odpowiadające ramki próbek mowy, przy czym dane parametrów mowy o najwyższej prędkości nadawania zawierają część danych każdego parametru mowy z danych jednego typu parametru mowy we wcześniej określonym porządku w początkowej części pakietu danych, następnie po początkowej części pakietu danych następuje pozostała część pakietu danych, w której jest wyłącznie inna część danych każdego parametru z jednego zestawu danych parametrów mowy we wcześniej określonym porządku, i po której następują wyłącznie w pozostałej części pakietu danych pozostałe zawierające parametry mowy dane ramki danych o zmiennej szybkości nadawania, zaś dane kontroli parzystości są wyłącznie w pozostałej części pakietu danych, przy czym dane parzystości oblicza się na podstawie danych zawierających parametry mowy zawarte w pakiecie danych, 172 397 znamienny tym, że odbiera się ramki danych zawierających parametry mowy posiadające największą szybkość nadawania, ponownie składa się dane obu części wszystkich danych jednego typu parametru mowy, dla utworzenia danych powtórnie złożonych, oblicza się dane parzystości z danych parametrów mowy w odebranej ramce danych parametrów mowy posiadającej największą szybkość nadawania, porównuje się obliczone dane parzystości z danymi parzystości w ramce danych parametrów mowy posiadającej największą szybkość nadawania oraz tworzy się dane powtórnie złożone i pozostałe dane parametrów mowy dla odtworzenia próbek mowy, jeżeli obliczone dane parzystości są takie same, jak odebrane dane parzystości.
- 16Sposób według zastrz. 15, znamienny tym, że w trakcie formatowania ramki danych parametrów mowy posiadających mniejszą szybkość transmisji z danymi parametrów mowy w pakiecie danych we wcześniej określonym porządku odpowiadającym szybkości nadawania danych w ramce zawierającej dane o zmiennej szybkości nadawania, odbiera się wskazania szybkości nadawania danych dla każdej odebranej ramki danych zawierających parametry mowy o zmiennej szybkości nadawania danych i tworzy się dane parametrów mowy we wcześniej określonym formacie zgodnie ze wskazaniem szybkości nadawania odebranej ramki danych o zmiennej szybkości nadawania danych.
- 17Sposób według zastrz. 15, znamienny tym, że do ramki danych zawierających parametry mowy posiadających najwyższą szybkość transmisji wprowadza się następnie część każdych danych parametrów mowy innego typu parametru mowy przeplecionych z inną częścią danych parametrów mowy z danych jednego typu parametru mowy, oraz następnie powtórnie składa się każdą część danych parametrów mowy innego typu danych parametrów mowy z odpowiadającą pozostałą częścią wszystkich danych parametrów mowy tego innego typu.
- 18Sposób według zastrz. 15, znamienny tym, że odbiera się wskazania odpowiadające pełnej szybkości nadawania danych dla odebranej ramki danych parametrów mowy posiadających największą szybkość nadawania, przy czym wskazanie odpowiadające pełnej prędkości nadawania odnosi się do co najmniej jednego błędu w co najmniej jednych danych parametrów mowy i danych parzystości, oblicza się dane parzystości z danych parametrów mowy w odebranej ramce danych zawierających parametry mowy, porównuje się obliczone dane parzystości z danymi parzystości w odebranej ramce danych zawierających dane parametrów mowy 0 największej szybkości nadawania, wykrywa się na podstawie porównania obliczonych danych parzystości z danymi parzystości w odebranej ramce danych o największej szybkości danych parametrów mowy błąd w co najmniej jednych z danych parametrów mowy i danych parzystości w odebranej ramce danych zawierających dane parametrów mowy o największej szybkości nadawania, koryguje się wykryty błąd, jeżeli występuje on w niektórych z danych parametrów mowy i danych parzystości w odebranej ramce danych parametrów mowy o największej szybkości nadawania, powtórnie składa się dane obu części wszystkich danych zawierających parametry mowy jednego zespołu danych parametrów mowy oraz wytwarza się sygnał wyjściowy z danych parametrów mowy, gdy wykryty błąd występuje w niektórych z danych parzystości, 1 ze skorygowanych danych parametrów mowy, gdy wykryty błąd pojawia się w niektórych z danych parametrów mowy.
Independent claims18
345 paragraphs in 22 sections, as filed
The subject of the invention is a method of formatting data containing speech parameters.
In the field of digital communications, various methods of formatting digital data are used. Data bits are usually grouped into data packets sent over transmission channels. For data generated by the vocoder, the data is also grouped for transmission.
Usually, when preparing a data packet sent on a transmission channel, a forwarding error correction code can be used to protect data against errors arising on the transmission channel. In the event that channel errors appear in the error correction data, in many cases these errors can be detected and corrected. Although known error correction techniques provide channel error reduction, such techniques may not
172 397 a sufficient level of collateral required. In the event that portions of the data packet are of much greater importance than others, it is desirable to provide other forms of protection against channel errors. An example of such a solution is when the data packet contains vocoder data, where certain parameters are more important when reproducing speech data from them. The solutions described above are known from US Patent Nos. 4,617,667, 4,903,301 and 4,922,537.
The essence of the method of formatting data containing speech parameters, according to the invention, during their transmission in the form of a data packet, in which, based on the input frame of speech samples, data containing speech parameters is generated, wherein specific data selected from among the data containing speech parameters have a greater relative validity than other data containing speech parameters, and part of the specified data is introduced into the initial part of the data packet, that is, that the rest of the data packet following its initial part is entered with data that is obtained by interleaving the rest of the specified data with other data, so that the initial part of the data packet contains only part of the specified data and the rest of the data packet contains only interlaced data .
Preferably, according to the invention, the error correction code is calculated based on the specified data including speech parameters and the error correction code data is interleaved only with the interleaved data, with another part of the specified data being created only in the remainder of the data packet.
It is also beneficial if the first speech parameter data is entered into a portion of certain data while the first speech parameter data and the second speech parameter data are entered into another portion of the specified data, while the first speech parameter data is generated when creating another portion of the specified data as follows directly after parts of specific data in the data packet, and generating second speech parameter data immediately following the first speech parameter data in the data packet.
It is furthermore advantageous if data of the second speech parameter and data of the third speech parameter are entered into another part of the specified data and data of the third speech parameter and data of the fourth speech parameter are entered into other data, while during the creation of the remainder of the specific data following parts of one of the data sets that contain specific speech parameters in the data packet, generating the third speech parameter data immediately after the data set in the data packet and generating the fourth speech parameter data immediately after the third speech parameter data in the data packet.
Further advantages of the invention are obtained when, during the calculation of the error correction code, the parity check code is calculated on the basis of some of the line pair spectral frequency (LSP) data, tone data and codebook data, and when creating data in the data packet and code interleaving corrective errors are composed in a specific sequence in the initial part of the data packet data of the first part of each LSP frequency data, composed in a specific sequence, other than in the initial part of the data packet, the data of the second part of all LSP frequency data, wherein the sequence of the second part of the LSP frequency data follows immediately the sequence of the first part of the LSP frequency data in the data packet, then a different than the initial part of the data packet is created , the tone data and codebook data sequence followed by the sequence of the second LSP frequency data portion in the data packet, and a parity check code is created in the data packet other than in the beginning of the data packet.
Then the parity check code is interleaved in the data packet following the first part of all LSP frequency data and interlaced in the data packet of parts of all codebook data in a sequence of second parts of all LSP frequency data and in the sequence of tone data and codebook data, with the codes the parity check is interleaved in the tone data and codebook data sequences after the interleaved portions of the codebook data.
Then, according to the invention, at one transmission speed, in the first group of tone data sets, four tone data sets are introduced, wherein
172 397 each set of height data includes tone delay data and tone gain data, eight codebook data sets are entered in the first group of codebook data sets, and each codebook data set includes codebook index and codebook gain data. At a different transmission speed of a data frame containing speech parameters, a second data on the spectral frequency of a line pair (LSP) is received, a second tone data is received, a second codebook data is received, it is composed in a specific sequence at the beginning of the data packet all LSP frequency data the second LSP frequency data and consists in the specified sequence of the second tone data and codebook data after the LSP frequency data sequence in the data packet.
According to the invention, when creating a full-speed data frame from received speech samples, data containing speech parameters representing the received speech samples is generated, generated based on data containing speech parameters, ordered sequence of the most significant bits of the spectral line pair (LSP), generated , based on data containing speech parameters, the interleaved sequence of the most significant bits of the spectral line pair (LSP) and some of the most significant bits of the code book gain (CBGAIN) and are generated, based on data containing speech parameters, the interleaved sequence of the remaining CBGAIN bits, tone gain bits (PGAIN), tone delay bits ( PLAG), code book index bits (CBINDEX) and parity bits (PCB). However, when creating a half-rate data frame from received speech samples, data containing speech parameters representing received speech samples is generated, based on data containing speech parameters, an ordered sequence of the most significant bits of the spectral line pair (LSP) is generated and generated , based on data containing speech parameters, an ordered sequence of codebook gain bits (CBGAIN), tone boost bits (PGAIN), tone delay bits (PLAG) and codebook index bits (CBINDEX). In turn, when creating a quarter speed transmission data frame from received speech samples, data containing speech parameters are generated representing the received speech samples, generated, based on data containing speech parameters, an ordered sequence of the most significant bits of the spectral line pair (LSP) and generated based on data containing speech parameters, an ordered sequence of code book gain bits (CBGAIN), tone gain bits (PGAIN), tone delay bits (PLAG) and codebook index bits (CBINDEX). In addition, when creating an octet (one-eighth) data transmission rate frame from received speech samples, data containing speech parameters representing received speech samples is generated, based on data containing speech parameters, an interlaced seed bit sequence (CB SEED) and bits of the spectral line pair (LSP) and generated, based on data containing speech parameters, an ordered sequence of code book gain bits (CBGAIN).
The essence of the variation of the method of formatting data containing speech parameters, according to the invention, during their reception in the form of a data packet, in which the received data frames containing digitally coded speech parameters, having different transmission speeds, are decoded into the corresponding frames of speech samples, wherein the speech parameter data with the highest transmission speed includes a portion of the data of each speech parameter from the data of one type of speech parameter in a predetermined order in the initial part of the data packet, then the first part of the data packet is followed by the remaining part of the data packet, in which there is only another part each parameter from one set of speech parameter data in a predetermined order, and followed only by the remainder of the data packet, the remaining speech parameters of the variable speed data frame, and the parity check data are only for the remainder of the data packet, the parity data being calculated from the data containing the speech parameters contained in the data packet , is that you receive data frames containing speech parameters having the highest transmission speed, the data of both parts of all data of one type of speech parameter is reassembled, to create the data reassembled, parity data is calculated from the speech parameter data in the received speech parameter data frame having the highest transmission speed, the calculated data is compared
172 397 parity with the parity data in the speech parameter data frame having the highest transmission rate, and replicated composite data and other speech parameter data are created for reproducing speech samples if the calculated parity data is the same as the received parity data.
Preferably according to the invention, when formatting a speech parameter data frame having a lower bit rate with the speech parameter data in the data packet in a predetermined order corresponding to the data transmission rate in the frame containing the variable transmission data, data rate indications are received for each received data frame containing variable speech data rate parameters, and speech parameter data is created in a predetermined format according to the transmission speed of the received data frame variable data rate, wherein a portion of each speech parameter data of a different type of speech interlaced with another portion of the speech parameter data of one type of the speech parameter data is then inserted into the data frame containing the speech rate having the highest transmission rate, and then reassembled each portion of the other type of speech parameter data speech parameter data with the corresponding remainder of all other types of speech parameter data.
It is also advantageous if then according to the invention indications corresponding to the full data transmission rate are received for the received speech parameter data frame having the highest transmission speed, wherein the indication corresponding to the full transmission speed refers to at least one error in at least one speech and data parameter data parity, the parity data is calculated from the speech parameter data in the received data frame containing the speech parameters, compares the calculated parity data with the parity data in the received data frame containing the speech parameter data with the highest transmission speed, is detected based on a comparison of the calculated parity data with the parity data in the received data frame with the highest data rate of speech parameters error in at least one of the data parameters speech and parity data in the received data frame containing the speech parameter data with the highest transmission speed, the detected error is corrected if it occurs in some of the speech parameter data and parity data in the received speech parameter data frame with the highest transmission speed, the data of both parts of all data containing speech parameters of one set of speech parameters data is repeated, and an output from speech parameter data when the error detected occurs in some of the parity data, and from the corrected speech parameter data, when the detected error appears in some of the given speech parameters.
The method of formatting data containing speech parameters is shown in the embodiment based on the drawing, in which Fig. 1 shows a block diagram of the vocoding system, Figs. 2a-2d are graphs of the bit distribution of vocoder output parameters for different frame rates of the output data, Figs. 3a-3e - graphs of ordering data packets sent between the vocoder and the microprocessor, Fig. 4 shows a block diagram of the system for assembling vocoder data into packets for transferring from the vocoder to the microprocessor and for disassembly of packets received from the microprocessor in the vocoder to form for use in the vocoder for data recovery of the speech frame, and Figs. transmission states and vocoder frame rates.
Referring to the drawing, figure 1 shows in the form of a block diagram an exemplary embodiment of the vocoding system 10. It should be understood that figure 1 shows only one physical embodiment, such as in a mobile station. When made in the vicinity of a mobile telephone exchange (MTSO) and a cellular base station in a cellular system, the elements of figure 1 can be physically separated, as described below.
In the case of digital voice transmission, sounds such as speech and / or background noise are sampled and digitally processed by well-known techniques. In the example of figure 1, the sound is converted by the microphone 12 into an analog signal, which is then converted into a digital signal by the codec 14. The codec 14 usually performs the process
172 397 analog-to-digital processing using the standard 8 bit / plaw format. In a different embodiment, the analog signal may be directly converted to digital form in a uniform format with code-pulse modulation (PCM). In an exemplary embodiment, the codec 14 uses 8 kHz sampling and outputs 8 bit samples at a sampling rate such that the data rate is 64 kbps.
8-bit samples are output from codec 14 to vocoder 16, where the plaw / homogeneous code conversion process is performed. In vocoder 16, samples are organized into input frames, where each frame is composed of a predetermined number of samples. In a preferred embodiment of vocoder 16, each frame is composed of 160 samples or speech for 20 ms. at a sampling rate of 8 kHz. It should be understood that other sample rates and frame sizes can be used. Each frame of speech samples is encoded by vocoder 16 with the resulting parameter data formatted into a corresponding data packet in accordance with the present invention as described herein. Vocoder 16 preferably has a variable speed vocoder configuration that encodes each frame of speech samples at a speed dependent on speech activity and system operating conditions. The vocoder data packets are then output to microprocessor 18 to format the transmission. The microprocessor 18 provides output formatted transmission data to the transceiver (not shown) for modulation and transmission.
At the end of the reception, the formatted transmission data packets are received and demodulated by the transceiver and then delivered to the microprocessor 18. In the microprocessor 18, the transmission formatting is removed and the extracted data packet for each speech frame is output to the vocoder 16. Vocoder 16 plays from each data packet samples of the appropriate speech frame. These reproduced speech frame samples are output to the encoder 14, where they are conventionally decoded and processed into analog form. The analog speech samples are then output to the loudspeaker 20, where they are converted into an acoustic signal.
The preferred embodiment of vocoder 16 uses a form of coding techniques for forced linear code predictor (CELP) so as to provide a variable rate of coded speech data. The Linear Predictor Encoder (LPC) analysis is performed after a fixed number of samples, and the character pitch and code list searches are performed with a varying number of samples depending on the baud rate. Vocoder 16 can be made in a special purpose integrated circuit (ASIC) or in a digital signal processor.
In the variable speed vocoder just mentioned, the speech analysis frames are 20 msec long, using that the extracted parameters are output in the packet 50 times per second. In addition, the output data rate is changed from about 8 kbps to 4 kbps to 2 kbps and to 1 kbps.
At total speed, also referred to as speed 1, the data transmission between the vocoder and the microprocessor has a speed of 8.55 kbps. For total speed data, the parameters are coded for each frame and represented by 160 bits. The full speed data frame also includes an 11 bit parity check, causing the total speed frame to be composed of 171 bits in total. In the overall speed data frame, the transmission rate between vocoder and microprocessor in the absence of parity check bits would be 8 kbps.
At half speed, also referred to as 1/2 speed, the data transmission between the vocoder and the microprocessor is 4 kbps, with the parameters encoded for each frame using 80 bits. At the quarter rate, also referred to as 1/4 speed, the data transmission between the vocoder and the microprocessor has a speed of 2 kbps, with the parameters encoded for each frame using 40 bits. At one-eighth speed, also referred to as 1/8 speed, data transmission between the vocoder and microprocessor is slightly slower than the speed of 1 kbps, with parameters encoded for each frame using 16 bits.
In a communication system in which vocoder 16 is used, it may also be desirable to transfer signaling or non-vocoder data. In the event that all signaling or non-vocoder data is to be transmitted instead of the data around the dera, which is discussed as a blanking frame, the vocoder data for the frame need not be transferred to the microprocessor for transmission.
Depending on the data transfer rate, searches are performed to calculate the pitch filter parameters and to force the code list repeatedly in different subframes of each speech frame. All frames have only one LPC calculation per speech frame. At only one speed selected for each frame, character pitch searches and code lists are performed in subframes of different dimensions corresponding to the selected speed as described below.
At total speed, there are four pitch subframes and two code subframes for each pitch subframe. At total speed, there are four pitch updates, one for each of the four pitch subframes, each with 40 samples (5 ms) long. In addition, at total speed, eight code list updates take place, one for each of the eight code list subframes, each with 20 samples (2.5 ms).
At half speed there are two pitch subframes and two code subframes for each pitch subframe. The pitch is updated twice, once for each of the two pitch subframes, while the code list is updated four times, once for each of the four codebook subframes. At the quarter rate, there is one pitch subframe and two code subframes for a single pitch subframe. The pitch is updated once for the pitch subframe, while the code list is updated twice, once for each of the two code list subframes. At one-eighth the pitch is not specified and the code list is updated only once in the speech frame.
Although the LPC coefficients are calculated only once per frame, they are interpolated linearly, in the spectral linear pair (LSP) representation, up to six times using the resulting LSP frequencies from the previous frame to bring the LPC analysis results closer to the Hamming window centered on each subframe. The exception is that at full speed LPC coefficients are not interpolated for the codebook subframes.
In addition to performing pitch search and code list searches, less frequent at lower speeds, fewer bits are also allocated for transmission of LPC coefficients. The number of bits allocated at different rates is shown in figures 2a-2d. Each of Figures 2a-2d represents the number of coded vocoder data bits allocated to each frame of 160 speech samples. In Figures 2a-2d, the number in a particular LPC block is the number of bits used at the appropriate rate to code short-term LPC coefficients. In a preferred embodiment, the number of bits used to encode the LPC coefficients at total, half, quarter and one eighth rates is 40, 20, 10 and 10, respectively.
To implement variable speed coding, LPC coefficients are first transformed into linear spectrum pairs (LPS) and the resulting LSP frequencies are individually coded using DPCM encoders with differential code-pulse modulation. The order of DPCM is 10 such that there are ten LSP frequencies and 10 independent DPCM encoders. An example of bit allocation for DPCM encoders at total, half, quarter and one-eighth speed is 4, 2, 1 and 1, respectively. In the vocoder, the LPS frequencies are converted back to the LPC filter coefficients for use in character pitch and code list searches.
With respect to the character pitch search, at the overall speed as shown in figure 2a, the character pitch update is calculated four times, once for each quadrant of the speech frame. For each pitch update, 10 bits are used to encode new pitch parameters at full speed. Character pitch updates are made a varying number of times for other speeds, as shown in Figures 2b-2d. When the speed decreases, the number of code jump updates also decreases. Figure 2b shows the pitch updates for half speed that are calculated twice, once for each half of the speech frame. Similarly, Figure 2c shows the pitch updates for the quarter rate, which is calculated once for each complete speech frame. As it was for total speed, 10 bits are used for coding
172 397 new pitch parameters for each pitch update at half and quarter speed. However, for eighth rate, as shown in Figure 2d, no pitch update is calculated if this rate is used to encode frames when there is little or no speech and no redundancy exists.
For each 10-bit jump update, 7 bits represent the jump delay and 3 bits represent the jump gain. The stroke delay is limited to values between 17 and 143. The stroke gain is quantized linearly to a value between 0 and 2 for representation by a value of 3 bits.
With reference to the code list search, at the overall speed as shown in figure 2a, the code list update is calculated eight times, once for each eighth of the speech frame. For each code list update, at total speed, 10 bits are used to encode the new code list parameters. Code list updates are made a variable number of times at other speeds, as shown in Figures 2b-2d. However, as the speed decreases, the number of code list updates also decreases. Figure 2b shows the code list updates for half speed, which is calculated four times, once for each quarter of the speech frame. Figure 2c shows the code list updates for the quarter rate, which is calculated twice, once for each half of the speech frame. As it was for the overall speed, 10 bits are used to encode the new code list parameters for each pitch update at half and quarter speed. Finally, Figure 2d shows the code list updates for one-eighth rate, which is calculated once for each integer speech frame. It should be noted that at one-eighth rate 6, 2 bits represent the coding gain, while the other 4 bits are random access bits. A further discussion of bit allocation for code list updates is described in more detail below.
The bits allocated to the code list updates represent the data bits needed for the vector quantization of the jump forecasting residue. For full speed, half speed, and quarter speed, each code list update consists of 7 code list index bits plus 3 code list gain bits for a total of 10 bits. Code list gain is encoded using a DPCM (differential pulse code modulation) operating in a log domain. Although a similar bit ordering can be used for one-eighth speed, a different scheme is recommended. At eighth rate, the code list gain is represented by 2 bits, while 4 randomly generated bits are used along with the received data as a power supply for the pseudo-random number generator that replaces the code list. It should be understood that in a different code list data can be output instead of using the pseudo-random number generator method.
Table I as follows is a graph that shows the various parameters and bit assignments then generated by the vocoder for each speech frame and also used by the vocoder when playing speech samples for the speech frame.
Table I
<td rowspan="2">1 Code</td><td colspan="4">Speed</td>
<td> 1</td><td> 1/2</td><td> 1/4</td><td> 1/8</td>
<td> 1</td><td> 2</td><td> 3</td><td> 4</td><td> 5</td>
<td>LSP1</td><td> 4</td><td> 2</td><td> 1</td><td> 1</td>
<td>LSP 2</td><td> 4</td><td> 2</td><td> 1</td><td> 1</td>
<td>LSP3</td><td> 4</td><td> 2</td><td> 1</td><td> 1</td>
<td>LSP4</td><td> 4</td><td> 2</td><td> 1</td><td> 1</td>
<td>LSP5</td><td> 4</td><td> 2</td><td> 1</td><td> 1</td>
<td>LSP6</td><td> 4</td><td> 2</td><td> 1</td><td> 1</td>
<td>LSP7</td><td> 4</td><td> 2</td><td> 1</td><td> 1</td>
<td>LSP8</td><td> 4</td><td> 2</td><td> 1</td><td> 1</td>
<td rowspan="2">Code</td><td colspan="4">Speed</td>
<td> 1</td><td> 1/2</td><td> 1/4</td><td> 1/8</td>
<td> 1</td><td> 2</td><td> 3</td><td> 4</td><td> 5</td>
<td>CBINDEX1</td><td> 7</td><td> 7</td><td> 7</td><td></td>
<td>CBINDEX2</td><td> 7</td><td> 7</td><td> 7</td><td></td>
<td>CBINDEX3</td><td> 7</td><td> 7</td><td> -</td><td></td>
<td>CBINDEX4</td><td> 7</td><td> 7</td><td> -</td><td> -</td>
<td>CBINDEX5</td><td> 7</td><td></td><td> -</td><td> -</td>
<td>CBINDEX6</td><td> 7</td><td> -</td><td> -</td><td> -</td>
<td>CBINDEX7</td><td> 7</td><td> -</td><td> -</td><td> -</td>
<td>CBINDEX8</td><td> 7</td><td> -</td><td> -</td><td> -</td>
172 397
<td> 1</td><td> 2</td><td> 3</td><td> 4</td><td> 5</td>
<td>LSP9</td><td> 4</td><td> 2</td><td> 1</td><td> 1</td>
<td>LSP10</td><td> 4</td><td> 2</td><td> 1</td><td> 1</td>
<td>Scourge</td><td> 7</td><td> 7</td><td> 7</td><td> -</td>
<td>PLAG2</td><td> 7</td><td> 7</td><td> -</td><td> -</td>
<td>PLAG3</td><td> 7</td><td> -</td><td> -</td><td> -</td>
<td>PLAG4</td><td> 7</td><td> -</td><td> -</td><td> -</td>
<td>PGAIN1</td><td> 3</td><td> 3</td><td> 3</td><td> -</td>
<td>PGAIN2</td><td> 3</td><td> 3</td><td> -</td><td></td>
<td>PGAIN3</td><td> 3</td><td> -</td><td> -</td><td> -</td>
<td>PGAIN4</td><td> 3</td><td> -</td><td> -</td><td> -</td>
cd of table 1
<td> 1</td><td> 2</td><td> 3</td><td> 4</td><td> 5</td>
<td>CBGAIN1</td><td> 3</td><td> 3</td><td> 3</td><td> 2</td>
<td>CBGAIN2</td><td> 3</td><td> 3</td><td> 3</td><td> -</td>
<td>CBGAIN3</td><td> 3</td><td> 3</td><td> -</td><td> -</td>
<td>CBGAIN4</td><td> 3</td><td> 3</td><td> -</td><td> -</td>
<td>CBGAIN5</td><td> 3</td><td> -</td><td> -</td><td> -</td>
<td>CBGAIN6</td><td> 3</td><td> -</td><td> -</td><td> -</td>
<td>CBGAIN7</td><td> 3</td><td> -</td><td> -</td><td> -</td>
<td>CBGAIN8</td><td> 3</td><td> -</td><td> -</td><td> -</td>
<td>CBSEED</td><td> -</td><td> -</td><td> -</td><td> 4</td>
<td>PCB</td><td> 11</td><td> -</td><td> -</td><td> -</td>
Table II describes each parameter as a reference in Table I and also in Tables III-VI:
Table II
<td>LSP1</td><td>frequency and linear spectral pairs</td>
<td>Plage,</td><td>pitch jump for the i-th jump subframe</td>
<td>PGAIN1</td><td>pitch enhancement for i-th pitch subframes</td>
<td>CBINDEX1</td><td>code index index for the i-th code index subframe</td>
<td>CBGAIN,</td><td>reinforcement of the code list for the i-th code list subframe</td>
<td>CBSEED</td><td>random power supply for eight speed data packet</td>
<td>PCB</td><td>the parity check bits used to detect and correct errors in the total speed data packet</td>
As discussed here below, and in particular with reference to Tables III-VI, the least significant bit (LSB) of the specified parameter is discussed as PARAMETER (O), with more significant bits respectively PARAMETER (l), PARAMETER (2) etc. For example in the frame at full speed, where LSP1 = 1011 in binary form, the most significant bit LSPi (3) = 1, the next most significant bit LSP1 (2) = 0, the next relative to the least significant bit LSP1 (1) = 1 and the least significant bit LSP1 (0) = 1.
Vocoder 16 organizes the calculated parameter bits for each speech frame into data packets at the output to the microprocessor 18. In a mobile station implementation, all elements of the vocoding system 10 are typically located inside the unit. However, in the implementation of the cellular base / MTSO station, the microprocessor 18 can be placed in the MTSO with vocoder 16 or placed in the cellular base station with the appropriate transmission interface.
The microprocessor 18 may receive a vocoder data packet in response to a data packet request delivered from the microprocessor 18 to the vocoder 16 or as a result of the operation of the vocoder 16. It should be understood that many different schemes well known in the art may be used to cause the data packet to be transferred from the microprocessor 18 to vocoder 16. The data is packed into vocoder 16 for transfer to the microprocessor 18 in a unique arrangement that offers advantages over conventional data formats.
In the exemplary embodiment, the vocoder 16 communicates with the microprocessor 18 through an 8-bit parallel port, the vocoder activating its parallel port in passive mode. In the sample communication protocol between microprocessor 18 and wo12
172 397 encoder 16, data transfer is always initiated by microprocessor 18. In this communication scheme, data packets sent to vocoder 16 by microprocessor 18 are discussed as instruction packets, while data packets sent from vocoder 16 to microprocessor 18 are discussed as response packets. Orders are sent in packets of orders from the microprocessor 18 and are confirmed by vocoder 16 in two levels. First, vocoder 16 indicates whether the packet from microprocessor 18 has been received in good shape. If so, it indicates that it understands the order and transfers the desired function by routing the orders back to microprocessor 18.
Data packets are sent between microprocessor 18 and vocoder 16 usually in 22-byte blocks, with each byte in the block composed of 8 data bits. Transmitting the data packet in block from vocoder 16 to microprocessor 18 for transmission and from microprocessor 18 to vocoder 16 for decoding the received transmission data is the same. Figures 3a-3e show the structure of each data packet of the vocodised speech frame for each of the total, half, quarter, eighth rates and for the blanking frame. In Figures 3a-3e, the data block is graphically represented, with byte 1 being transmitted first with bits 7 and 0 in each byte being the first and last bit, respectively, transmitted for the individual byte. If the exemplary embodiment uses a fixed transfer block, while the number of bits of the actual data packet varies depending on the speed of the data packet, several bytes bits, up to all bytes, are created from unwanted bits. Figures 3a-3e illustrate this fact in that the positions of the byte bits in the block are shaded for the bits used and not shaded for the bits not used or ignored. Figure 3e relates to the case in which, with some transmissions, the microprocessor provides non-vocoder data, such as signaling data or other used data for the frame. At the receiving end, the blanking frame is transmitted to the vocoder. In this blanking frame where no vocoder data is present, the data should be passed from the microprocessor to the vocoder, which is ignored.
Figure 4 illustrates in an exemplary form of a block diagram a suitable arrangement for organizing data parameters corresponding to each speech frame into data packets sent to the microprocessor. In figure 4 vocoder 16 is shown together with vocoder drive 30 which calculates parameter data as described in the current application mentioned above. The vocoder 30 also calculates the appropriate frame of speech samples based on the received parameter data. Vocoder 16 further includes output frame buffer 32, packaging logic 34, output packet buffer 36, parity check bits 38 and microprocessor interface logic 40.
The vocoder drive 30 calculates the parameters for each speech frame and provides an output frame of the corresponding parameter data bits to the output frame buffer 32, where they are temporarily stored. Parameter data can also be provided directly to the 38 logic parity check bits to calculate the parity check bits for total speed data. The vocoder drive 30 also provides for each speech frame output a determination of the speed selected for the vocoded speech frame. Speed data is usually provided to the packaging logic 34, the 38 parity check bits and the microprocessor 18 through the microprocessor interface logic 40.
In a different embodiment, the frame parameter data may be provided from buffer 32 to the 38 parity check bits for each speech frame or only in response to speed data determining the frame at full speed. In this system, the rate indication may also be provided to buffer 32, which reacts to the overall rate indication to provide parameter data to the 38 parity check bits.
The 38 parity check bits logic responds to the overall rate indication for calculating the 11 parity check bits based on the 18 most discernibly significant total speed data bits. The bits, which are designated as a group of noticeably significant bits, have been identified as the most adversely affecting speech quality in decoded speech when an error occurs in one of these bits. The parity bits are added to the total speed data packet to provide correction for these 18 most noticeably significant bits. In an exemplary and preferred embodiment, protection
172 397 against errors, provided by the 38 parity check bits, is based on a cyclic code to produce 10 parity bits forming the code (28, 18), where the cyclic code is the abbreviated BCH code. Terminology (n, k) specifies that the code word has a length of n bits and k information bits. A single parity check bit is calculated using 28 bits of this code to create the final code (29, 18).
the most noticeably significant bits are combined into an input polynomial GF (2), a Galois field composed of two components, according to equation (1) as follows:
a (x) = LSPi [3] χ<sup>Π</sup> + LSP2 [3] x<sup>16</sup> + LSP3 [3] x<sup>15</sup> + LSP4 [3] x<sup>14</sup> + LSP5 [3] x<sup>13</sup> + L SP6 ['3] x'<sup>2</sup> + LSP7 [31x<sup>1</sup> i + LSPs [3] x<sup>IN</sup> + LSP9 [3Jx9 + LSPio [3] x<sup>8</sup> + CBGAINi [1lx<sup>7</sup> + CBGAIN2 [1] x * + CBGAIN<sub>3</sub>[1] x<sup>5</sup> + CBGAIMIK + CBGAIN5 [1] x<sup>3</sup> + CBGAΙΝ7 [1] χ2 + CBGAIN7 [1] x <sup>1</sup> + CBGAIN8 [1] x °. (1) where LSPi [3] is the most significant bit (MSB) and LSP code, CBGAINi [1] is the second most significant bit and CBGAIN ax code<sup>J</sup> represents the position of a bit in a polynomial for the parameter bit. As a result, a (x) is implemented from the MSB bits of all ten LSP codes and the second most significant bit of the CBGAIN codes.
The first 10 bits of the parity check are generated using a cyclic code with a polynomial generator:
gpc (x) = x10 + x + <sub>χ</sub>8 + x6 + <sub>χ</sub>5 + x3 + 1 (2)
The term r (x) will be defined as the remainder of the binary division of the input polynomial and generator polynomial a (x) ^ 10 / gpc (x) = q (x) + r (x) / gpc (x) (3) where a (x) x<sup>10</sup> is the 10-bit position offset a (x), where q (x) is the division quotient and r (x) is the remainder of the division. The quotient q (x) is not used and bits r (x) will be assigned according to equation 4 as follows:
r (x) = PCBri01x<sup>9</sup> + PCBf91x<sup>8</sup> + PCBi81x<sup>7</sup> + PCBI71x<sup>6</sup> + PCB [6] x<sup>5</sup> + PCB [5] x<sup>4</sup> + PCB [4] x<sup>3</sup> + PCB [3] x<sup>2</sup> + PCBRfr<sup>1</sup> + PCB [l] x °. (4)
It should be noted that PCB [1] to PCB [10] are inverted before transmission and 11th protection bit is determined before PCB [0]. PCB [0] will be a parity bit in 18 protected wa (x) bits and ten parity check bits wr (x). PCB [0] will be logical 0 if the function OR all 28 bits gives 0; PCB [0] will be logical 1 if the function OR all 28 bits gives 1. This is
PCB [0] = LSP1 [3] Φ LSP2 [3] Φ LSP3 [3] Φ LSP4 [3] Φ LSP5 [3] Φ LSP6 [3] Φ LSP7 [3] Φ LSP8 [3] Φ LSP9 [3] Φ LSP10 [3] Φ CBGAIN1 [1] Φ CBGAIN2 [1] Φ CBGAIN3 [1] Φ CBGAIN4 [1] Φ CBGAIN5 [1] Φ CBGAIN6 [1] Φ CBGAIN7 [1] Φ CBGAIN8 [1] Φ PCB [10] Φ PCB [9] Φ PCB [8] Φ PCB [7] Φ PCB [6] Φ PCB [5] Φ PCB [4] + PCB [3] + PCB [2] Φ PCB [1] (5) where © means OR arguments.
Logic circuit 38 can be built using conventional logic / processing elements. Logic 38 performs multiplications and divisions such that it simply multiplies and divides one polynomial by another, except that the coefficients are limited to binary and arithmetic is implemented modulo 2 without any carriers or negated transfers.
Logic 38 provides an output of parity check bits for buffer 32 for temporary storage. As mentioned previously, the parameter bits as shown in
172 397 of Table I, are provided to buffer 32 from the vocoder drive 30, along with the parity check bits for the overall speed frame. These frame bits are then packed for transmission.
The packing logic 34 receives the speed indication for each frame and in response addresses the buffer 32 for outputting parameter bits and parity bits, if used, in a particular order. The bits output from buffer 32 are provided to buffer 36 of packets for eventual forwarding to microprocessor 18, as discussed with reference to figure 3. It should be understood that otherwise the bits may be output from buffer 32 directly to microprocessor 18 in an organized manner as discussed herein. It should also be understood that buffers 32 and 36 can be built as single memory. In any embodiment, the bits are organized at each rate, as shown in Tables III-VI.
In general, vocoder 16 provides output of parameter data for microprocessor 18 in order that corresponds to speech frame analysis, as discussed with reference to figures 2a-2d. LSP data, which is based on the entire frame of speech samples, is provided near the beginning of the packet. Then the pitch data from the first pitch subframe of the speech samples in the frame is provided. The character jump data followed by the code list data from the code sample subframe (s) that correspond to the speech samples of the first character subframe of the speech samples. If more than one speech sample code subframe corresponds to the speech sample character subframe, then the code list data for the first code book subframe is provided, followed by the code list data for the next code book subframe. After outputting the codebook data for the codebook subframes that correspond to the pitch subframe, the pitch data for the next pitch subframe of the speech samples is provided, if present for the coding rate. The code list data for this next pitch subframe is then output as discussed previously. In the case of a speech sample frame, when there are more pitch subframes and corresponding subframes of the speech sample code list, for which the pitch and code list data are generated, the respective pitch data first follows the character code data. This output process is repeated for any remaining pitch data and code list for the speech sample frame. Generally, for the pitch subframe, the pitch gain values occur before the pitch lag values in the data packet. Similarly, for the index list subframes, the values of the code list index appear before the values of the code list gain in the data packet. Properties of differences from this general embodiment of the exemplary ordering of parameter data are given in Tables II-VI. In addition, it should be understood that various other ordering schemes can easily be made, but new aspects are preserved in ordering the given parameters.
When discussing Table III, 171 bits of the total speed frame data are packed in a primary traffic packet. Bit 170 is the first primary traffic bit in the primary traffic packet, with bit 0 being the last. As can be seen in Table III, the most significant bit and the second most bits of the ten 4-bit LSP codes are located at the end of the packet. The first 20 bits of the data packet are the bits that are in the bit group that are the most discernibly significant. These first 20 bits most noticeably significant in data packets are followed by the less significant bits of LSP codes. The bits of the less significant LSP codes in the data packet are followed by the remaining parameter codes, with the exception of the most significant bit of the eight code list gain codes and parity check bits. The most significant bit of the eight codebook gain codes and the parity check bits are also considered as the bits of the group of the most discernibly significant bits. These remaining most noticeably significant bits intertwine among the bits of the less significant LSP codes and the next parameter codes in the data packet, as every eighth bit.
The bit interleaving in the packet is implemented because the errors are pulses with an average length of 8 bits. When interleaving significant bits in an average packet, a single pulse will only affect one of the interleaving bits. If the parity check bits are used to correct a single error in the packet as with the total speed, interleaving means that error correction can be performed in 8 bits of significant bits.
172 397
As previously mentioned, the preferred ordering scheme provides data from each pitch subframe and corresponding code subframe as shown in Figure 2a. The data from the first pitch subframe is followed by the data of the individual, first and second codepage subframes, respectively. Similar is the arrangement of the next pitch subframe data and the corresponding code list subframe data in the remaining coded speech frame.
Table III
<td>bit</td><td>Code</td><td>bit</td><td>Code</td><td>bit</td><td>Code</td><td>bit</td><td>Code</td>
<td> 170</td><td>LSP1 [2]</td><td> 127</td><td>CBGAIN3 [1]</td><td> 84</td><td>CBINDEX3 [6]</td><td> 41</td><td>CBINDEX6 [5]</td>
<td> 169</td><td>LSP1 [3]</td><td> 126</td><td>PGAIN1 [1]</td><td> 83</td><td>CBINDEX3 [5]</td><td> 40</td><td>CBINDEX6 [4]</td>
<td> 168</td><td>LSP2 [2]</td><td>i25</td><td>PGA1N1 [0]</td><td> 82</td><td>CBINDEX3 [4]</td><td> 39</td><td>PCB [5]</td>
<td> 167</td><td>LSP2 [3]</td><td> 124</td><td>PLAGS [6]</td><td> 81</td><td>CBINDEX3 [3]</td><td> 38</td><td>CBINDEX6 [3]</td>
<td> 166</td><td>LSP3 [2]</td><td> 123</td><td>PLAGS [5]</td><td> 80</td><td>CB1NDEX3 [2]</td><td> 37</td><td>CBINDEX6 [2]</td>
<td> 165</td><td>LSP3 [3]</td><td> 122</td><td>PLAGS [4]</td><td> 79</td><td>PCB [10]</td><td> 36</td><td>CBINDEX6 [1]</td>
<td> 164</td><td>LSP4 [2]</td><td> 121</td><td>PLAGS [3]</td><td> 78</td><td>CB1NDEX3 [1]</td><td> 35</td><td>CBINDEX6 [0]</td>
<td> 163</td><td>LSP4 [3]</td><td> 120</td><td>PLAGS [2]</td><td> 77</td><td>CB1NDEX3 [0]</td><td> 34</td><td>CBGAIN6 [2]</td>
<td> 162</td><td>LSP5 [2]</td><td> 119</td><td>CBGAIN4 [1]</td><td> 76</td><td>CBGA1N3 [2]</td><td> 33</td><td>CBGAIN6 [0]</td>
<td> 161</td><td>LSP5 [3]</td><td> 118</td><td>PLAG1 [1]</td><td> 75</td><td>CBGA1N3 [0]</td><td> 32</td><td>PGAIN4 [2]</td>
<td> 160</td><td>LSP6 [2]</td><td> 117</td><td>PLAG 1 [0]</td><td><sup>74</sup></td><td>CBINDEX4 [6]</td><td> 31</td><td>PCB [4]</td>
<td> 159</td><td>LSP6 [3]</td><td> 116</td><td>CBINDEX1 [6]</td><td> 73</td><td>CBINDEX4 [5]</td><td><sup>30</sup></td><td>PGAIN4 [1]</td>
<td> 158</td><td>LSP7 [2]</td><td> 115</td><td>CBINDEX1 [5]</td><td> 72</td><td>CBINDEX4 [4]</td><td> 29</td><td>PGAIN4 [0]</td>
<td> 157</td><td>LSP7 [3]</td><td> 114</td><td>CBINDEX1 [4]</td><td> 71</td><td>PCB [9]</td><td> 28</td><td>PLAG4 [6]</td>
<td> 156</td><td>LSP8 [2]</td><td> 113</td><td>CBINDEX1 [3]</td><td> 70</td><td>CBINDEX4 [3]</td><td> 27</td><td>PLAG4 [5]</td>
<td> 155</td><td>LSP8 [3]</td><td> 112</td><td>CBINDEX1 [2]</td><td> 69</td><td>CB1NDEX4 [2]</td><td> 26</td><td>PLAG4 [4]</td>
<td> 154</td><td>LSP9 [2]</td><td> 111</td><td>CBGAIN5 [1]</td><td> 68</td><td>CBINDEX4 [1]</td><td> 25</td><td>PLAG4 [3]</td>
<td> 153</td><td>LSP9 [3]</td><td> 110</td><td>CBINDEX1 [1]</td><td> 67</td><td>CB1NDEX4 [0]</td><td> 24</td><td>PLAG4 [2]</td>
<td> 152</td><td>LSP10 [2]</td><td> 109</td><td>CB INDEX 1 [0]</td><td> 66</td><td>CBGA1N4 [2]</td><td> 23</td><td>PCB [3]</td>
<td> 151</td><td>LSP10 [3]</td><td> 108</td><td>CBGAIN1 [2]</td><td> 65</td><td>CBGAIN4 [0]</td><td> 22</td><td>PLAG4 [1]</td>
<td> 150</td><td>LSP1 [1]</td><td> 107</td><td>CBGAIN1 [0]</td><td> 64</td><td>PGA1N3 [2]</td><td> 21</td><td>PLAG4 [0]</td>
<td> 149</td><td>LSP1 [0]</td><td> 106</td><td>CBINDEX2 [6]</td><td> 63</td><td>PCB [8]</td><td> 20</td><td>CBINDEX7 [6]</td>
<td> 148</td><td>LSP2 [1]</td><td> 105</td><td>CBINDEX2 [5]</td><td> 62</td><td>PGAIN3 [1]</td><td> 19</td><td>CBINDEX7 [5]</td>
<td> 147</td><td>LSP2 [0]</td><td> 104</td><td>CBINDEX2 [4]</td><td> 61</td><td>PGAIN3 [0]</td><td> 18</td><td>CB1NDEX7 [4]</td>
<td> 146</td><td>LSP3 [1]</td><td> 103</td><td>CBGAIN6 [1]</td><td> 60</td><td>PLAG3 [6]</td><td> 17</td><td>CBINDEX7 [3]</td>
<td> 145</td><td>LSP3 [0]</td><td> 102</td><td>CB1NDEX2 [3]</td><td> 59</td><td>PLAG3 [5]</td><td> 16</td><td>CB1NDEX7 [2]</td>
<td> 144</td><td>LSP4 [1]</td><td> 101</td><td>CBINDEX2 [2]</td><td> 58</td><td>PLAG3 [4]</td><td> 15</td><td>PCB [2]</td>
<td> 143</td><td>CBGAIN1 [1]</td><td> 100</td><td>CBINDEX2 [1]</td><td> 57</td><td>PLAG3 [3]</td><td> 14</td><td>CB1NDEX7 [1]</td>
<td> 142</td><td>LSP4 [0]</td><td> 99</td><td>CB1NDEX2 [0]</td><td> 56</td><td>PLAG3 [2]</td><td> 13</td><td>CB1NDEX7 [0]</td>
<td> 141</td><td>LSP5 [1]</td><td> 98</td><td>CBGA1N2 [2]</td><td> 55</td><td>PCB [7]</td><td> 12</td><td>CBGA1N7 [2]</td>
<td> 140</td><td>LSP5 [0]</td><td> 97</td><td>CBGAIN2 [0]</td><td> 54</td><td>PLAG3 [1]</td><td> 11</td><td>CBGAIN7 [0]</td>
<td> 139</td><td>LSP6 [1]</td><td> 96</td><td>PGA1N2 [2]</td><td> 53</td><td>PLAG3 [0]</td><td> 10</td><td>CBINDEX8 [6]</td>
<td> 138</td><td>LSP6 [0]</td><td> 95</td><td>CBGA1N7 [1]</td><td> 52</td><td>CBINDEX5 [6]</td><td> 9</td><td>CBINDEX8 [5]</td>
<td> 137</td><td>LSP7 [1]</td><td> 94</td><td>PGAIN2 [1]</td><td> 51</td><td>CB1NDEX5 [5]</td><td> 8</td><td>CBINDEX8 [4]</td>
<td> 136</td><td>LSP7 [0]</td><td> 93</td><td>PGAIN2 [0]</td><td> 50</td><td>CBINDEX5 [4]</td><td> 7</td><td>PCB [1]</td>
<td> 135</td><td>CBGAIN2 [1]</td><td> 92</td><td>PLAG2 [6]</td><td> 49</td><td>CBINDEX5 [3]</td><td> 6</td><td>CB1NDEX8 [3]</td>
<td> 134</td><td>LSP8 [1]</td><td> 91</td><td>PLAG2 [5]</td><td> 48</td><td>CBINDEX5 [2]</td><td> 5</td><td>CB1NDEX8 [2]</td>
<td> 133</td><td>LSP8 [0]</td><td> 90</td><td>PLAG2 [4]</td><td> 47</td><td>PCB [6]</td><td> 4</td><td>CBINDEX8 [1]</td>
<td> 132</td><td>LSP9 [1]</td><td> 89</td><td>PLAG2 [3)</td><td> 46</td><td>CB1NDEX5 [1]</td><td> 3</td><td>CBINDEX8 [0]</td>
<td> 131</td><td>LSP9 [0]</td><td> 88</td><td>PLAG2 [2]</td><td> 45</td><td>CB1NDEX5 [0]</td><td> 2</td><td>CBGA1N8 [2]</td>
<td> 130</td><td>LSP10 [1]</td><td> 87</td><td>CBGAIN8 [1]</td><td><sup>44</sup></td><td>CBGA1N5 [2]</td><td> 1</td><td>CBGAIN8 [0]</td>
<td> 129</td><td>LSP10 [0]</td><td> 86</td><td>PLAG2 [1]</td><td> 43</td><td>CBGAIN5 [0]</td><td> 0</td><td>PCB [0]</td>
<td> 128</td><td>PGAIN1 [2]</td><td> 85</td><td>PLAG2 [0]</td><td> 42</td><td>CB1NDEX6 [6]</td><td></td><td></td>
172 397
The total speed primary traffic packet is then organized by the microprocessor 18 into a transmission packet that also includes a signaling bit, frame quality indicator bits and end of frame bits (encoder foot bits). The frame quality indicator bits are in fact cyclic redundancy control (CRC) bits generated from the full rate primary traffic packet bits by the CRC generator system and footer bits (not shown) after microprocessor 18. Referring to figure 5a, for the total rate, the transmission packet is composed of 192 bits, in which the first bit is a signaling bit. The signaling bit is followed by 171 bits of the primary traffic packet, followed by 12 CRC bits. After the CRC bits there are 8 footer bits in the transmitted packet, which are all zeros. The transmission packet is coded for transmission in a transmission frame that has a time interval of 20 msec. so that a data rate of 9.6 kbps is obtained.
half speed frame data bits are also packed into a primary traffic packet as shown in Table IV. Bit 79 is the first primary traffic bit in the primary traffic packet, with bit 0 again being the last. As can be seen in Table IV, the bits of the ten 2-bit LSP codes are placed at the beginning of the packet for convenience and compatibility. After these first 20 bits are the bits of the remaining significant parameter codes, as was the case for the total speed data, again with some interleaving of the code list gain bits.
The half-speed primary traffic packet is then organized by the microprocessor 18 into a transmission packet that also includes frame quality indicator bits and encoder foot bits. The frame quality indicator bits are again the cyclic redundancy check (CRC) bits generated from the half-speed primary traffic packet bits by the CRC system. In figure 5f, for a half speed, the transmission packet is composed of 96 bits that start with 80 bits of the primary traffic packet. The primary traffic packet bits are followed by 8 CRC bits followed by 8 footer bits. The transmission packet is re-encoded for transmission in a transmission frame that has a time interval of 20 msec. for an effective data rate of 4.8 kbps.
Table IV
<td>bit</td><td>Code</td><td>bit</td><td>Code</td><td>bit</td><td>Code</td><td>bit</td><td>Code</td>
<td> 79</td><td>LSP1 [1]</td><td> 59</td><td>PGAIN1 [2]</td><td> 39</td><td>CBINDEX2 [6]</td><td> 19</td><td>CBINDEX3 [6]</td>
<td> 78</td><td>LSP1 [0]</td><td> 58</td><td>PGAIN1 [1]</td><td> 38</td><td>CBINDEX2 [5]</td><td> 18</td><td>CBINDEX3 [5]</td>
<td> 77</td><td>LSP2 [1]</td><td> 57</td><td>PGAIN1 [0]</td><td> 37</td><td>CBINDEX2 [4]</td><td> 17</td><td>CBINDEX3 [4]</td>
<td> 76</td><td>LSP2 [0]</td><td> 56</td><td>PLAGS [6]</td><td> 36</td><td>CBINDEX2 [3]</td><td> 16</td><td>CBINDEX3 [3]</td>
<td> 75</td><td>LSP3 [1]</td><td> 55</td><td>PLAGS [5]</td><td> 35</td><td>CBINDEX2 [2]</td><td> 15</td><td>CBINDEX3 [2]</td>
<td> 74</td><td>LSP3 [0]</td><td> 54</td><td>PLAGS [4]</td><td> 34</td><td>CBINDEX2 [1]</td><td> 14</td><td>CBINDEX3 [1]</td>
<td> 73</td><td>LSP4 [1]</td><td> 53</td><td>PLAGS [3]</td><td> 33</td><td>CB1NDEX2 [0]</td><td> 13</td><td>CBINDEX3 [0]</td>
<td> 72</td><td>LSP4 [0]</td><td> 52</td><td>PLAGS [2]</td><td> 32</td><td>CBGAIN2 [2]</td><td> 12</td><td>CBGAIN3 [2]</td>
<td> 71</td><td>LSP5 [1]</td><td> 51</td><td>PLAG1 [1]</td><td><sup>31</sup></td><td>CBGAIN2 [1]</td><td> 11</td><td>CBGAIN3 [1]</td>
<td> 70</td><td>LSP5 [0]</td><td> 50</td><td>PLAG 1 [0]</td><td> 30</td><td>CBGAIN2 [0]</td><td> 10</td><td>CBGAIN3 [0]</td>
<td> 69</td><td>LSP6 [1]</td><td> 49</td><td>CBINDEX1 [6]</td><td> 29</td><td>PGA1N2 [2]</td><td> 9</td><td>CBINDEX4 [6]</td>
<td> 68</td><td>LSP6 [0]</td><td> 48</td><td>CBINDEX1 [5]</td><td> 28</td><td>PGAIN2 [1]</td><td> 8</td><td>CBINDEX4 [5]</td>
<td> 67</td><td>LSP7 [1]</td><td> 47</td><td>CBINDEX1 [4]</td><td> 27</td><td>PGAIN2 [0]</td><td> 7</td><td>CBINDEX4 [4]</td>
<td> 66</td><td>LSP7 [0]</td><td> 46</td><td>CBINDEX1 [3]</td><td> 26</td><td>PLAG2 [6]</td><td> 6</td><td>CBINDEX4 [3]</td>
<td> 65</td><td>LSP8 [1]</td><td> 45</td><td>CBINDEX 1 [2]</td><td> 25</td><td>PLAG2 [5]</td><td> 5</td><td>CBINDEX4 [2]</td>
<td> 64</td><td>LSP8 [0]</td><td> 44</td><td>CBINDEX 1 [1]</td><td> 24</td><td>PLAG2 [4]</td><td> 4</td><td>CBINDEX4 [1]</td>
<td> 63</td><td>LSP9 [1]</td><td> 43</td><td>CBINDEX 1 [0]</td><td> 23</td><td>PLAG2 [3]</td><td> 3</td><td>CBINDEX4 [0]</td>
<td> 62</td><td>LSP9 [0]</td><td> 42</td><td>CBGAIN1 [2]</td><td> 22</td><td>PLAG2 [2]</td><td> 2</td><td>CBGA1N4 [2]</td>
<td> 61</td><td>LSP10 [1]</td><td> 41</td><td>CBGAIN1 [1]</td><td> 21</td><td>PLAG2 [I]</td><td> 1</td><td>CBGAIN4 [1]</td>
<td> 60</td><td>LSP10 [0]</td><td> 40</td><td>CBGAIN1 [0]</td><td> 20</td><td>PLAG2 [0]</td><td> 0</td><td>CBGAIN4 [0]</td>
172 397
It should be understood that half-speed data may be sent in a transmission packet along with other data such as signaling data, signaling traffic (Figure 5b) or data from sources other than a vocoder, secondary traffic (Figure 5c) at data rate 9 , 6 kbps. It should then be understood that the full rate vocoder data can be blanked, not produced, and other data entered into the transmission packet as shown in figures 5d-5e.
The quarter rate frame data bits are packed into the primary traffic packet as shown in Table V. Bit 39 is the first primary traffic bit in the primary traffic packet, where bit 0 is again the last. As can be seen in Table V, a single bit of LSP 1-bit codes is placed at the beginning of the packet. After these first 10 bits are the bits of the remaining parameter codes, again with some interleaving of the code list gain bits.
Table V
<td>bit</td><td>Code</td><td>bit</td><td>Code</td><td>bit</td><td>Code</td><td>bit</td><td>Code</td>
<td> 39</td><td>LSP1 [0]</td><td> 29</td><td>PGA1N1 [2]</td><td> 19</td><td>CB1NDEX1 [6]</td><td> 9</td><td>CB1NDEX2 [6]</td>
<td> 38</td><td>LSP2 [0]</td><td> 28</td><td>PGAINI [1]</td><td> 18</td><td>CBINDEX1 [5]</td><td> 8</td><td>CBINDEX2 [5]</td>
<td> 37</td><td>LSP3 [0]</td><td> 27</td><td>PGAIN1 [0]</td><td> 17</td><td>CBINDEX1 [4]</td><td> 7</td><td>CBINDEX2 [4]</td>
<td> 36</td><td>LSP4 [0]</td><td> 26</td><td>PLAGS [6]</td><td> 16</td><td>CBINDEX1 [3]</td><td> 6</td><td>CB1NDEX2 [3]</td>
<td> 35</td><td>LSP5 [0]</td><td> 25</td><td>PLAGS [5]</td><td> 15</td><td>CBINDEX1 [2]</td><td> 5</td><td>CBINDEX2 [2]</td>
<td> 34</td><td>LSP6 [0]</td><td> 24</td><td>PLAGS [4]</td><td> 14</td><td>CB1NDEX1 [1]</td><td> 4</td><td>CBINDEX2 [1]</td>
<td> 33</td><td>LSP7 [0]</td><td> 23</td><td>PLAGS [3]</td><td> 13</td><td>CBINDEX1 [0]</td><td> 3</td><td>CBINDEX2 [0]</td>
<td> 32</td><td>LSP8 [0]</td><td> 22</td><td>PLAGS [2]</td><td> 12</td><td>CBGAIN1 [2]</td><td> 2</td><td>CBGAIN2 [2]</td>
<td> 31</td><td>LSP9 [0]</td><td> 21</td><td>PLAGS [1]</td><td> 11</td><td>CBGA1N1 [1]</td><td> 1</td><td>CBGAIN2 [1]</td>
<td> 30</td><td>LSP10 [0]</td><td> 20</td><td>Plagues [0]</td><td> 10</td><td>CBGAIN 1 [0]</td><td> 0</td><td>CBGAIN2 [0]</td>
The quarter-speed primary traffic packet is then organized by the microprocessor 18 into a transmission packet that also contains only 8 encoder foot bits. Discussing the figure 5g, for a quarter rate the transmission packet is therefore composed of 48 bits, which start with 40 bits of the primary traffic packet and end with 8 foot bits. The transmission packet is re-encoded for transmission in a transmission frame that has a time interval of 20 msec. for an effective data rate of 2.4 kbps.
eight-bit frame data bits are packed in a primary traffic packet as shown in Table VI. Bit 15 is the first primary traffic bit in the primary traffic packet, with bit 0 being the last again. As can be seen in Table VI, a single bit of ten LSP 1-bit codes is placed at the beginning of the packet, interleaving in it the code list feed. These bits are followed by the bits of the remaining parameter code.
Table VI
<td>bit</td><td>Code</td><td>bit</td><td>Code</td><td>bit</td><td>Code</td><td>bit</td><td>Code</td>
<td> 15</td><td>CBSEED [3]</td><td> 11</td><td>CBSEED [2]</td><td> 7</td><td>CBSEED [1]</td><td> 3</td><td>CBSEED [0]</td>
<td> 14</td><td>LSP1 [0]</td><td> 10</td><td>LSP4 [0]</td><td> 6</td><td>LSP7 [0]</td><td> 2</td><td>LSP10 [0]</td>
<td> 13</td><td>LSP2 [0]</td><td> 9</td><td>LSP5 [0]</td><td> 5</td><td>LSP8 [0]</td><td> 1</td><td>CBGA1N1 [1]</td>
<td> 12</td><td>LSP3 [0]</td><td> 8</td><td>LSP6 [0]</td><td> 4</td><td>LSP9 [0]</td><td> 0</td><td>CBGAIN 1 [0]</td>
The eighth rate primary traffic packet is then organized by the microprocessor 18 into a transmission packet that also contains only 8 encoder foot bits. Discussing figure 5h, the eighth speed transmission packet is therefore composed of 24 bits, which start with 16 bits of the primary traffic packet and end with 8 footers. The transmission packet is re-encoded for transmission in a transmission frame that has a time interval of 20 ms. for an effective data rate of 1.2 kbps.
Referring again to Figure 3, primary traffic packets are sent from vocoder 16 in response to an output command from microprocessor 18. In response to this order,
172 397 output formatted in bytes for microprocessor 18, as discussed with reference to figure 3.
In the vocoding system of Figure 1, the received vocodised speech frames are also reproduced into speech frame samples. At the receiving end, data communication between microprocessor 18 and vocoder 16 is appropriate for transmission. In this operating state, the vocoder 16 receives and extracts data packets from the microprocessor 18 for decoding and reproducing speech samples. Primary traffic packets are sent from microprocessor 18 to vocoder 16 along with input command from microprocessor 18. Microprocessor 18, Which also determines the speed of data packets for the purpose of vocoder decoding and provides a specific speed indication for vocoder 16.
The microprocessor 18 also determines the quality of the data received. If the received packet is broken to an extent that is impossible to correct using error correction techniques (insufficient frame quality), an erasure indication is sent to vocoder 16 as a speed indication. In this case, however, the microprocessor 18 may send the data packet to vocoder 16, these values are not used in the decoding process. In addition, microprocessor 18 should determine that the data packet is a full rate packet with an error detected in the received transmission packet data, based on the CRC control, and the indication that the packet is a full speed packet with a probable bit error is provided to vocoder 16. If the CRC is calculated from the data packet bits, one or more errors occurring in the data packet will be detected. In vocoder 16, defective bits of the data packet, if they are correctable, are corrected and the corrected data packet is used by vocoder 16.
Another possibility for the received transmission packet is that it contains data other than vocoder data, such as signaling data or secondary traffic data. For example, when transmitting, the vocoder data share the transmission frame with other digital data (Figures 6b-6c) or are only data other than the vocoder (Figures 6d-6e). In this case, the mode data in the transmission packet indicates the type of packet as containing only vocoder data or that contains other data, such as a combination of vocoder and non-vocoder data, or only non-vocoder data. The packet format bit also indicates whether the packet is a combination of vocoder and non-vocoder data or only non-vocoder data. When the transmission packet is received and detected as containing only data other than the vocoder, an indication of the blanking frame from the microprocessor 18 to the vocoder 16 is provided. Although the data can be transferred from the microprocessor 18 to the vocoder 16, this is not used. Instead, vocoder 16 uses data stored internally to update vocoder status.
Referring to Figures 1 and 4, in all cases the vocoder 16 responds to the input command from the microprocessor 18, which is processed by the microprocessor interface logic 40 and provides the transfer order to buffer 36. Buffer 36 in response to the transfer order receives a formatted packet in bytes from microprocessor 18, as discussed in reference to figure 3. Logic 40 also transfers the speed indication between vocoder 16 and microprocessor 18.
The transmitted data packet is introduced to the input of the 42 packet buffer, where it is temporarily stored. In accordance with the transmission of the data packet, a speed indication for a specific data packet speed is provided to the logic system 44 unpacking through the logic system 40. Generally, the unpacking logic 44 responds to the speed indication for controlling the output data of the packet from buffer 42 to frame buffer 46. The unpacked parameter data is then stored in buffer 46 for providing vocoder to drive 30. The vocoder drive 30 receives a speed indication from the microprocessor 18 in addition to the corresponding unpacked parameter data for decoding at the indicated speed. It should be understood that in a different configuration the buffer 46 can be eliminated and the data provided directly from the buffer 42 to the vocoder drive 30 when controlling logic 44.
When unpacking the full-speed vocoder data packet, as for all-speed vocoder data packets, logic 44 coordinates the output from buffer 42 to be stored in buffer 46. For data parameters in which
172 397 parameter bits were separated in the packing process, parts of the bits are combined again to form the corresponding total bit value. For example, for a total speed vocoder data packet, the most significant and second most significant bits of each LSP code are combined with the corresponding less significant bits of the LSP code. Therefore, LSP codes are restored as 4-bit values stored in buffer 46. In addition, the parameter data interleaving in the packet are grouped with the corresponding parameter data. For example, in the case of a full rate vocoder data packet, the parity check bits are grouped together as stored in buffer 46. Parameter data can also be organized according to a sample frame and subframe for vocoder input. It should be realized that possibly other schemes can easily be used for and for the organization of given parameters at the vocoder input.
When unpacking the total speed data packet, buffer 42 provides input parameter data to buffer 46 according to signals from logic 44. Parameters corresponding to their data bits separated in the packet are organized to create total values of parameter bits. For example, as mentioned above, the most significant and second most significant data bits for each LSP parameter are combined with the next relative least significant and least significant bits for the LSP parameter to form a specific 4-bit value. Parameter values can also be organized to provide grouping of similar parameter data or by subframe analysis or any other organization scheme. The ordered and organized parameter values are stored in buffer 46 when controlling logic 44.
After unpacking the parameter values, the parity check bits are calculated as discussed in relation to logic 38 and compared with the received parity check bits. The parity check logic 48 bits receive the correct bits from buffer 46 at the command from logic 44 so as to calculate the parity check for the packet. Logic 48 is run to calculate and compare, in response to the total speed indication, the total speed with any error as discussed below. In addition, the received parity check bits are also output from buffer 46 to logic 48 for comparison with the calculated parity bits. In a different configuration, the received parity check bits or parameter bits used to calculate the comparison parity bits may be extracted directly from the output data packet of the microprocessor 18 as buffer input 42. In yet another configuration, the received parity check bits or parameter bits used to calculate the comparison parity may be stripped from buffer output 42.
In the case of a full speed frame, when no errors are detected in the received parity bits compared to the calculated parity bits, an indication of the full speed parity occurring from logic 48 to logic 44 and vocoder 30 drive is provided. Logic 44 responds to the output command to buffer 46, which responds by supplying parameter data to the vocoder drive 30, where it uses them to play speech frame samples.
However, when the error is detected in the parity check bits by logic 48, logic 48 produces an insufficient frame quality indication, which is also provided to logic 44 and vocoder drive 30. In response to an insufficient indication of frame quality, logic 44 can provide an output command to buffer 46, which outputs data for vocoder drive 30. In this case, the vocoder drive 30 ignores the received data in response to an insufficient frame quality indication delivered to it also from the logic 48. In a different embodiment, the data may not be output from buffer 46 to the vocoder drive 30. The vocoder drive 30 works to reproduce the frame of speech samples from the previous vocoder state.
In the event that the microprocessor 18 provides the overall speed when indicating a possible error (also discussed as the probability of the total speed) for the logic circuit 40, the data packet is also sent to the buffer 42. The indication of the total speed probability is generated by the microprocessor 18 when
172 397 a full rate transmission packet error is detected in the CRC even when the transmission packet had a frame quality measure provided by the decoder that determines a good packet. A frame quality measure is used on the microprocessor 18 to determine the symbol error rate of the received frames. The low symbol error rate indicates that the received data frames are prone to contain good data.
Before unpacking the data packet in buffer 42 by logic 44 for transfer to buffer 46, the parity check bits are first checked. As was done for the full rate packet, logic 48 calculates the parity check bits for the received data packet and compares it with the received parity check bits from the packet itself.
When logic 48 detects a single error. the error is corrected using well-known parity check bit correction techniques, with the corrected bit being supplied to buffer 42 in place of the uncorrected bit. Logic 48 also provides an indication of likely parity check at full speed to logic 44 and vocoder drive 30. Logic 44 in response controls the reorganization of parameter bits and memory in buffer 46. Logic 44 also provides an output command to buffer 46, which responds by outputting parameter data to the vocoder drive 30, where it is used to play speech frame samples.
However, when more than one error is detected in the parity check bits by logic 48, logic 48 produces an insufficient frame quality indication that is also provided to logic 44 and vocoder drive 30. In response to an insufficient frame quality indication, logic 44 does not unpack the data packet if the data is not used by the vocoder drive 30. Data in buffer 42 can be output to buffer 46, where it is ignored when sending vocoder 30 to drive 30. The vocoder drive 30 ignores the received data again in response to an insufficient frame quality indication. As before, the vocoder drive 30 operates to reconstruct the frame of speech samples from the previous vocoder state.
For half, quarter and one-eighth speed, the speed indication from microprocessor 18 is provided by logic 40 to logic 44 and vocoder 30 drive. Microprocessor 18 also provides a data packet to buffer 42. Logic 44 controls the unpacking of 80.40 and 16 bits, respectively for half , quarter and eighth rates , when transferred from buffer 42 to buffer 46. However, for one-eighth speed, when the packet contains all logic ones (1), when detection by detection logic 50, an insufficient frame quality indication is generated by logic 50 and supplied to logic 44 and vocoder 30 drive. Logic 44 and vocoder drive 30 operate as discussed just above with respect to the likely state of total speed with multiple errors detected in the parity check bits.
Sometimes the microprocessor 18 will generate an insufficient frame quality indication as an indication of the rate determination when the transmission packet CRC control deteriorates and a high symbol error rate is determined from the decoder frame quality measure. Insufficient frame quality indication is provided by logic 40 to logic 44 and vocoder 30 drive. Logic 44 and vocoder drive 30 operate as discussed above with respect to the likely state of full speed with multiple errors detected in the parity check bits.
In addition, sometimes the received transmission packet may contain data other than vocoder data. The transmission packet may be completely from other data or have vocoder data and other data together, as discussed above with reference to figures 6b-6e. The microprocessor 18 recognizes this type of transmission data packet based on the signaling bits contained in the packet. In the event that less than all of the transmission packet data contains all data as signaling or secondary traffic (Figures 6d-6e), the blanking indication is provided from the microprocessor through logic 40 to logic 44, vocoder 30 drive and memory 52. Memory 52 is provided to remember previous output from buffer 42. Logic 44 issues a memory order 52 to supply data from memory 52 to buffer 46 in place of output from buffer 42. In particular, character jump delay and character enhancement
172 397 for the last pitch subframe of the previous data frame, along with the LSP frequency data for the previous frame, are provided from memory 52 to buffer 46. This data is then provided from memory 52 to vococoder drive 30. Otherwise, individual data may be provided directly from memory 52 to the vocoder drive 30. In yet another embodiment, all data from memory 52 can be delivered to buffer 46. From the previous frame data, the vocoder drive 30 generates a current frame from the evaluated speech samples.
It should be understood from the above that various embodiments can be used to obtain the packing and unpacking of the given parameters. Many of the functions of the elements described above may be performed in various forms, such as a processor or various logical and memory elements or a combination thereof. It should be understood that the additional security described with respect to the encoded high-speed data can easily be incorporated into the slower data.
The previous description of preferred embodiments is provided to enable any skilled person to make and use the present invention. Various modifications to these embodiments will be clear to those skilled in the art, and the general principles set forth herein may be applied to other embodiments without the use of inventive capacity. Therefore, the present invention is not intended to limit the embodiments shown herein, but is intended to agree on the widest extent consistent with the principles and new features disclosed herein.
172 397
LPC
CHARACTER JUMP LIST OF CODES
TOTAL SPEED
LPC
CHARACTER JUMP code list
<td colspan="8"> 40</td>
<td colspan="2"> 10</td><td colspan="2"> 10</td><td colspan="2"> 10</td><td colspan="2"> 10</td>
<td> 10</td><td> 10</td><td> 10</td><td> 10</td><td> 10</td><td> 10</td><td> 10</td><td> 10</td>
FIG. 2a
LPC
JUMP CHARACTERS
LIST OF CODES
HALF SPEED
<td colspan="4"> 20</td>
<td colspan="2"> 10</td><td colspan="2"> 10</td>
<td> 10.</td><td> 10</td><td> 10</td><td> 10</td>
<td></td><td colspan="2">FIG. 2b</td><td></td>
<td></td><td>SPEED</td><td>ĆWIATKOWA</td><td></td>
SUM = 80
10
FIG. 2c
LPC
JUMP CHARACTERS
LIST OF CODES
<img file="PL172397B1_D0001.tif" />
SUM = 16
FIG. 2d
SUM = 160 (PLUS 11 PCB)
SUM = 40
172 397
<img file="PL172397B1_D0002.tif" />
t
172 397
Figure 5a
Only primary traffic (9.6 kbps)
<td> «3—</td><td> <3-</td><td>- 192 bits - 20 ms - -171 bits</td><td>-Β »</td><td colspan="2">-t></td>
<td> 1</td><td colspan="3"> -- 171</td><td> 12</td><td> 8</td>
Primary traffic FT
Figure 5b
Dimension and packet with primary traffic and signaling (9.6 kbps)
<td colspan="4" rowspan="2"> <-</td><td colspan="3">-192 bits - 20 ms-</td><td colspan="2" rowspan="2">-E></td>
<td><sub>v</sub> 1 y</td><td colspan="2"></td>
<td> 1</td><td> 1</td><td> 1</td><td> 2</td><td> 80</td><td> 1</td><td> 86</td><td> 12</td><td> 8</td>
MM BF TT TM Ruch SOM Ruch p <sub>T </sub>= 1 = 0 = 0 = 00 primary signaling
Figure 5c
Dimension and packet with primary and secondary traffic (9.6 kbps)
The figures 5d
Blanking and packet only with signaling traffic (9.6 kbps)
<td colspan="4"> <3-</td><td>-192 bits-20ms - <-167 bit-p></td><td colspan="2"> -6»</td>
<td> 1</td><td> 1</td><td> 1</td><td> 2</td><td> 80 87</td><td> 12</td><td> 8</td>
<td colspan="3">MM BF TT = 1 = 0 = 1 "and-</td><td colspan="2">TM Ruch Ruch = 00 primary secondary -192 bits - 20 ms- «A- 169 bits -e></td><td colspan="2">FT -about</td>
<td> 1</td><td> 1</td><td> 1</td><td> 1</td><td> 168</td><td> 12</td><td> 8</td>
<td colspan="7">MM ĘF yj SOM Traffic signaling FT</td>
5A
Blanking and packet only with secondary traffic (9.6 kbps)
<td> <3—</td><td></td><td></td><td>- 192 bits-20ms -</td><td></td><td> —</td>
<td></td><td></td><td></td><td>= 3-169 bits-β »</td><td></td><td></td>
<td> 1</td><td> 1</td><td> 1</td><td> 169</td><td> 12</td><td> 8</td>
MM BF TT = 1 = 1 = 1
Secondary traffic
FT
ATTENTION.
Mixed mode MM-bit 0 - primary traffic only 1 - primary traffic and / or signaling traffic / Secondary traffic
BF - 0-dimension packet format bit and packet 1 - blanking and packet
TT - traffic type bit 0 - signaling 1 - secondary
TM-traffic bits 00-80 primary traffic bits traffic bits or secondary 01.10 and 11 - reserved
SOM - start of message bit 0 - message does not start at next bit 1 - message starts at next bit F - frame quality indicator (CRC)
T bits encoder foot
172 397
FIG. 5f 4.8 kbps
Format
FIG. 5g 2.4 kbps
FRAME
Format
FIG. 5h 1.2 kbps FRAME Format
BnCw-ZOms-δΟΒΰΟί80
PRIMARY MOVEMENT
Hnflł-20 ms' -40Hd £ w40
PRIMARY MOVEMENT
24ηπΟ- 20 ms' - 16ot5w -
PRIMARY MOVEMENT
ATTENTION
F-FRAME QUALITY INDICATOR (CRC) T-BITS CODER SIGNALS
172 397
<img file="PL172397B1_D0003.tif" />
FIG. 3
Eh
BIT
76543210
SiSSiiSSSiSS.
SWiKSiySSSi iSSKfSSSsSS ^ a:
S. <ISSS * <aa;
S $ a <4 «SSSK. <5it ji ^ jsiaTS.aa;
«SsSssysijsis®! ^
S ^ SSSSS.iWS ?, aSK.S ^ S ^ iS ^
SSSSSSSiS ^ aiSi ^ saSśSSSSStSfcSSSS '
Si! ¥ S: a «NS»!% S jS3Ń5? FSS.SS: «i» Sf $ 3Κ $ ΚΚ $$ Κ ».
feSSjSiSS ^ SiiSiiS
SS. ^ Ii ·····
<td>^ ^ SłSi SSSS. SWiSiSaWiW: ) KasssiWS! And? And?</td><td rowspan="18"></td><td colspan="8"></td>
<td>s $ ai! K "»! ¥ S = K</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td> 1</td>
<td>sśasśatssssśs</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>and</td>
<td>a ^ ss ^ aiiss</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td> 1</td>
<td>«ŚiJSiSSWiSS · '</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td><;. «^ ¥ ssias and a ;.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<img file="PL172397B1_D0004.tif" />
SPEED and 171 BITS
SPEED 1/2 SPEED 1/4 SPEED 1/8 BLANKED 80 BITS 40 BITS 16 BITS 0 BITS
BITS TRANSMITTED □ INVALID BITS
UP Department of Publications. Circulation of 90 copies
Price PLN 4.00
Contents22
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
41 members in 22 offices
Priority claims8
| Document | Office | Kind | Date |
|---|---|---|---|
| 82670192 | United States of America | A | |
| 82670192 | United States of America | A | |
| 9300703 | United States of America | W | |
| 9300703 | United States of America | W | |
| 826701 | – | – | – |
| US9300703 | – | – | – |
| US19920826701 | – | – | – |
| WO1993US00703 | – | – | – |
Members41
| Document | Office | Kind | |
|---|---|---|---|
| IL104500D0 | Israel | D0 | |
| CA2128708A1 | Canada | A1 | |
| WO9315502A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU3593993A | Australia | A | |
| ZA93450B | South Africa | B | |
| CN1081037A | China | A | |
| TW224191B | Taiwan Province of China | B | |
| NO942751D0 | Norway | D0 | |
| MX9300442A | Mexico | A | |
| FI943538A | Finland | A | |
| FI943538A7 | Finland | A7 | |
| EP0624275A1 | European Patent Office (EPO) | A1 | |
| EP0624275A4 | European Patent Office (EPO) | A4 | |
| PL305984A1 | Poland | A1 | |
| JPH07506439A | Japan | A | |
| IL104500A | Israel | A | |
| US5600754A | United States of America | A | |
| BR9305808A | Brazil | A | |
| AU678962B2 | Australia | B2 | |
| PL172397B1This record | Poland | B1 | |
| CA2128708C | Canada | C | |
| KR0168900B1 | Republic of Korea | B1 | |
| EP0624275B1 | European Patent Office (EPO) | B1 | |
| AT180091T | Austria | T | |
| ATE180091T1 | Austria | T1 | |
| DE69324906D1 | Germany | D1 | |
| HK1011110A1 | Hong Kong, China | A1 | |
| ES2131576T3 | Spain | T3 | |
| DK0624275T3 | Denmark | T3 | |
| GR3030910T3 | Greece | T3 | |
| DE69324906T2 | Germany | T2 | |
| CN1290085A | China | A | |
| CN1072867C | China | C | |
| HK1035976A1 | Hong Kong, China | A1 | |
| JP3604689B2 | Japan | B2 | |
| EP0624275B2 | European Patent Office (EPO) | B2 | |
| DK0624275T4 | Denmark | T4 | |
| ES2131576T5 | Spain | T5 | |
| DE69324906T3 | Germany | T3 | |
| FI118103B | Finland | B | |
| CN100382479C | China | C |
Numbers
- Publication, DOCDB
- 172397
- Publication, EPODOC
- PL172397B
- Application
- 93305984
- Application, DOCDB
- 30598493
- Application, EPODOC
- PL19930305984
Titles
- English
- METHOD OF AND SYSTEM FOR ORDERING DATA OF AN ENCODER FOR MASKING ERRORS OCCURRING IN A TRANSMISSION CHANNEL
Classification
- CPC, 7
- H04L1/0071
- G10L19/005
- G10L19/07
- H03M13/35
- H04B1/665
- H04L1/0083
- H04L1/0086
- IPC, 6
- G10L19 005
- G10L19 038
- G10L19 06
- H03M13 35
- H04B1 66
- H04L1 00