`Razazian et al.
`
`USOO6172987B1
`(10) Patent No.:
`US 6,172,987 B1
`(45) Date of Patent:
`Jan. 9, 2001
`
`(54) SWITCHING COMPRESSION ROUTINES
`WITH NO LOSS OF DATA
`(75) Inventors: Kaveh Razazian, Simi Valley; Xiao
`11.
`sing says Greer,
`y,
`(73) Assignee: Nortel Networks Limited, Montreal
`(CA)
`Under 35 U.S.C. 154(b), the term of this
`patent shall be extended for 0 days.
`
`(*) Notice:
`
`(21) Appl. No.: 09/190,389
`(22) Filed:
`Nov. 10, 1998
`(51) Int. Cl." .................................. H04J 3/16. H04J 3/1s
`(52) U.S. Cl. ........................... 370/468; 370/477; 375/241
`(58) Field of Search ..................................... 370/477,521,
`370/465, 468, 433, 435; 375/240, 241
`s
`s
`s
`s
`s 37
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`12/1982 Ruether et al. ...................... 370/465
`3/1988 MacCrisken ......................... 375/240
`
`4,365,112
`4,730,348
`
`1/1993 Shirai et al. ......................... 375/240
`5,182,762
`9/1993 Gutman et al. ...................... 370/477
`5.245,614
`9/1995 Sharma et al. ....................... 370/477
`5,452,289
`3. : 34: St. et al.
`3:2
`2Y-4-2
`OOS. . . . . . . . . . .
`5,642,421
`6/1997 Gray et al. ............................. 380/49
`5,666,350 * 9/1997 Huang et al. ........................ 370/435
`5,784,006 * 7/1998 Hochstein ...
`... 375/240
`5,818,843 * 10/1998 Virdee et al.
`370/435
`5,825,779 * 10/1998 Putnins et al.
`370/477
`5,889,767
`3/1999 Kimura ................................ 370/314
`* cited by examiner
`
`Primary Examiner Melvin Marcelo
`Assistant Examiner Phuongchau Ba Nguyen
`(74) Attorney, Agent, or Firm-Blakely Sokoloff Taylor &
`Zafman
`ABSTRACT
`(57)
`A method and apparatus to change compression methods
`without data loSS. A real time System for converting com
`pressing data using one of Several compression methods is
`described. When a change in compression rates is requested,
`the System changes compression methods while continuing
`to compress data in real time without data loSS.
`
`19 Claims, 5 Drawing Sheets
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`212
`
`
`
`
`
`LAW
`TO
`LINEAR
`of
`
`LINEAR
`BUFFER
`
`234
`
`ECHOTASK
`
`236
`
`NON-LINEAR
`pROCESSOR
`
`SERIAI
`PORT
`RECEIVE
`AUTO
`BUFFER
`
`SERIAl PORT
`ISR
`
`232
`
`EGRESS CIRCUITRY
`
`ANAIYSIS
`BUFFER
`
`2100Hz
`TONE
`DETECTION
`
`SIENCE
`DETECTION
`
`ENCODER
`
`PACK
`ANAIYSIS
`TASK
`
`
`
`
`
`
`
`
`
`
`
`
`
`256
`
`TOVOICE
`FRAME
`IWTERFACE
`
`/
`DTMP
`DETECTION
`
`VOICE
`FRAME
`TRANSMIT
`INTERFACE
`
`HPI
`TRANSMIT
`BUFFER
`
`254
`
`HOSTPORT
`INTERFACE
`ISR
`
`IPR2018-01413
`Sony EX1026 Page 1
`
`
`
`U.S. Patent
`
`Jan. 9, 2001
`
`Sheet 1 of 5
`
`US 6,172,987 B1
`
`104
`
`116
`
`112
`
`SYSTEM |
`
`WETWORK
`
`SYSTEM 2
`
`
`
`120
`
`108
`
`FIG, 1
`
`SWITCH COMPRESSION
`
`ECHO SWITCH PROG
`
`604
`
`
`
`LOAD NEW
`PARAMETER
`TABLE
`
`CALL ECHO
`SWITCH
`PROGRAM
`
`ECHO SWITCH
`FLAG=1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`408
`
`608
`
`412
`
`612
`
`INITIALIZE
`ECHO CANCELLER
`ARIABLE
`
`ECHO SWITCH
`FLAG-2
`
`
`
`416
`
`RET, ECHO TEST
`
`RET, ECHO TEST
`
`FIG. 4
`
`FIG, 6
`
`IPR2018-01413
`Sony EX1026 Page 2
`
`
`
` ||||257_|ove:-|NSWNOLDILIGYId4N9|!WIGOW
`
`
`ZHOOTZINOLolny||!XV4WAIIIY||140d|ZeTHIYIS||NOLLDILIO
`
`
`wading||JOVIYFINIgLSISATUNW||_Fairid
`DIOAOL957IZYLTYOLIULIALINDYID|
`
` YsTAULINDYTD
`SSIADI
`FINFUS
`
`
`TVIYSS NOLLIALIG
`
`
`
`AAldvavAIWLFTEGNOGTO¥LNOD
`
`vdding
`LYdANOD
`
`YVINiT
`
`
`
`U.S. Patent
`
`Jan. 9, 2001
`
`Sheet 2 of 5
`
`US 6,172,987 B1
`
`LIWSNVYL
`
`vsddNg
`
`
`
`140dLSOH
`
`FOVIGALNI
`
`AIION
`
`IW
`
`LIWSNVYL
`
`FDVAUALNT
`
`ASVLOHDF
`
`YVINIT-NON
`
`YOSSIIOUd
`
`YFGODNA
`
`SISATVNV
`
`ASL
`
`SSVdHOIH
`
`YaTd
`
`a/v
`
`YIM
`
`MMVI
`
`OL
`
`LYOd
`
`Ys]
`
`COE
`
`Cle
`
`IPR2018-01413
`Sony EX1026 Page 3
`
`IPR2018-01413
`Sony EX1026 Page 3
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`SEOHDIT1V?
`09€
`YIdINGLIS40D0¢d
`=AQVIYonog.9Sid
`eeL531
`01193)
`
`HILIMSOHI
`MANF4OLS(isi
`10IWeed
`
`ff
`
`0=DV14
`
`Vid
`
`U.S. Patent
`
`Jan. 9, 2001
`
`Sheet 3 of 5
`
`US 6,172,987 B1
`
`£OY“
`
`NEBEIAS|
`
`INILIVM
`
`TWNIIS¥150d
`
`STVNDIS
`
`ANIWFYONT
`
`YANG
`
`DNILIVM
`
`YddINGGNV
`
`dlAGVI4
`
`aLVlddOdddY
`
`CSE
`
`ALNDAXA
`
`HSVLTIVD
`
`Z9l440
`
`J]
`
`YANG
`
`0<AGVIY
`
`TVNOISVLS0d
`
`HOLIMS
`
`VLS0d
`
`TWNOIS
`
`FNNILNOD
`
`OHDF
`
`IPR2018-01413
`Sony EX1026 Page 4
`
`IPR2018-01413
`Sony EX1026 Page 4
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`U.S. Patent
`
`Jan. 9, 2001
`
`Sheet 4 of 5
`
`US 6,172,987 B1
`US 6,172,987 B1
`
`
`
`IASVFTIYNIGiLYOddNSLON
`
`lwae
` 000F9SGLYPOXT
`
`
`IPR2018-01413
`Sony EX1026 Page 5
`
`
`YFEWANZLVa
`SALVYLIFGIMOTIV
`
`
`
`
`
`NOLdIYDSIGWHLIYODTVAFdALWHLIYODTVYHDAFdS
`
`
`
`
`
`IPR2018-01413
`Sony EX1026 Page 5
`
`
`
`
`
`
`U.S. Patent
`
`Jan. 9, 2001
`
`Sheet 5 of 5
`
`US 6,172,987 B1
`
`708
`
`SETAWALYSIS
`TEST CIRCUIT
`
`IWITIALIZE
`A/WALYSIS TASK
`CIRCUIT
`
`
`
`712
`
`
`
`
`
`
`
`ISG726
`PROTOCOL
`USED
`2
`
`
`
`
`
`SET G.726
`PARAMETERS
`
`SELECTA
`RATE FOR
`G.726
`
`SETECHO
`SWITCH
`FLAG-0
`
`RET, ECHO TEST
`
`720
`
`724
`
`
`
`728
`
`
`
`732
`
`
`
`
`
`FIG 7
`
`736
`
`SET PCM
`/ARIABLES
`
`IPR2018-01413
`Sony EX1026 Page 6
`
`
`
`1
`SWITCHING COMPRESSION ROUTINES
`WITH NO LOSS OF DATA
`
`US 6,172,987 B1
`
`15
`
`BACKGROUND OF THE INVENTION
`1. Field of the Invention
`The present invention relates to communication Systems.
`More particularly, the invention relates to an apparatus and
`method for avoiding data loSS during Switching of data
`transfer protocols.
`2. Description of Related Art
`With the rise of the internet and other communication
`devices that couple to telephone networks, Such as asyn
`chronous transfer mode (ATM) networks, the amount of data
`transferred by these networks has been dramatically increas
`ing. These networks have finite bandwidths. As data load
`increases, data congestion occurs. During periods of peak
`usage, when data congestion occurs, Sources of data, Such as
`telephones, and other digitized communication Systems,
`reduce the data load by compressing the data or changing the
`rate of data transfer. The amount of compression may vary
`according to the needs of the network. High compression
`rates Save bandwidth on the network, however, increases the
`processing time of the transmitting and receiving devices
`and may also result in deterioration of Signal quality. Lower
`compression rates require leSS processing to reconstruct the
`Signal and may allow for higher quality transmissions,
`however, during peak transmission times, the network may
`be unable to handle the high bandwidth requirements. Thus,
`many modern Systems determine the network capability at a
`particular time and Set a data transfer rate or compression
`routine used to compress data at the beginning of the
`transmission.
`One problem with the current System is that during long
`transmissions, the network may change State during the
`transmission. In particular, the network may have a large
`increase in data load or may have a large decrease in data
`load. Thus, it is appropriate to change data transfer rates or
`compression routines in the middle of a transmission.
`Currently, modern Systems Switch the compression routine
`or the data transfer rate in the middle of a transmission
`through a process called “real time algorithm' or “real time
`rate Switching.”
`One problem with real time algorithm or rate Switching
`techniques is that during the rate Switch, data is lost.
`Typically, a System transferring data includes buffers to
`accumulate data in frames for appropriate processing. For
`example, a G.726 processing System processes data in 80
`byte frames while a Pulse Code Modulation (PCM) system
`processes data in 40 byte frames. A “G.726 processing
`System” is defined to be a processing System using the
`International Telecommunications Union (ITU, formerly
`CCITT, International Telegraph and Telephone Consultative
`Committee) G.726 standard for 40, 32, 24, 16 Kbit/second
`Adaptive Differential Pulse Code Modulation (ADPCM)
`established in Geneva, Switzerland, 1990. Hereinafter, the
`ITU G.726 standard will be referred to as “G.726. A PCM
`system is defined to be a system which uses the ITU standard
`G.711 set forth by the ITU (formerly CCITT) in Geneva,
`Switzerland, 1972. Hereinafter, the ITU G.711 standard will
`60
`be referred to as “PCM'. During a Switch between com
`pression routines, data Stored in a buffer to accumulate a
`frame is typically discarded.
`Discarding of the data in the buffer creates several prob
`lems. At a minimum, Such data loSS is inconvenient, causing
`an annoying, high-pitched noise unpleasant to human ears
`when the Switch occurs. When data is being transferred, such
`
`45
`
`50
`
`55
`
`65
`
`25
`
`35
`
`40
`
`2
`as when a digital tone modulation frequency (DTMF) trans
`mission is occurring, the data loSS can result in digits or other
`Vital information being lost.
`Thus, a method and apparatus to handle Such compression
`routine transitions or rate changes is needed which mini
`mizes data loSS.
`
`SUMMARY OF THE INVENTION
`A method and apparatus to prevent data loSS during
`Switching of compression routines is described. Typically, a
`System which transferS communications data from a Source
`to a network compresses the data using one of Several
`compression routines. The compression routine Selected
`depends on the network load at a particular time. The
`compression routine Selected may be changed in the middle
`of data transmission to accommodate changing network
`loads. In order to avoid losing data during a change of
`compression routines, a Storage device buffers the commu
`nications data while a control circuit coordinates a change of
`compression routine to coincide with the output of a new
`frame of data from the Storage device.
`BRIEF DESCRIPTION OF THE DRAWINGS
`The advantages of the present invention will become
`readily apparent to those ordinarily skilled in the art after
`reviewing the following detailed description and drawings
`wherein:
`FIG. 1 is a System level diagram of a telephone coupled
`to a network.
`FIG. 2 illustrates a functional diagram of the System
`which receives data at a Serial port from the Source and
`transmits the data from a host port to the network.
`FIG. 3 is a flow diagram illustrating the processing of
`incoming data in one embodiment of the invention.
`FIG. 4 is a flow diagram illustrating a subroutine used by
`the echo task processing illustrated in FIG. 3.
`FIG. 5 is an example of a parameter table.
`FIG. 6 is a flow diagram illustrating an echo Switch
`Subroutine.
`FIG. 7 is a flow diagram illustrating Switching between a
`PCM and G.726 compression method.
`DETAILED DESCRIPTION
`The following detailed description describes a System to
`buffer data transferred from a Source device, Such as a
`telephone, to a network, Such as an asynchronous transfer
`mode (ATM) link. The system prevents data loss by buff
`ering incoming data until all data generated in an old
`compression routine has been processed before processing
`data using a new compression routine. By waiting until data
`in partial frames have been processed before Switching to a
`new compression routine, the System avoids the loSS of data
`which occurs from discarded partial frames.
`In the following description, various embodiments of a
`System and method for executing lossleSS Switching of
`compression routines will be described. The description will
`include details including the format and type of data being
`transmitted, the protocols used, the Subroutines called, and
`the circuitry used to implement the System. However, Such
`details are included to facilitate understanding of the inven
`tion and to describe alternate embodiments for implement
`ing the invention. Such details should not be used to limit the
`invention to the particular embodiments described because
`other variations which would be obvious to one of ordinary
`skill in the art are possible while Staying within the Scope of
`the invention.
`
`IPR2018-01413
`Sony EX1026 Page 7
`
`
`
`3
`FIG. 1 illustrates a portion of an overall system 100 for
`transferring data between a first communications device
`(e.g., first telephone 104) and a second communications
`device (e.g., second telephone 108). The network 112 is
`typically a digital network which may contain Switching
`equipment designed to transfer digital data. Typically the
`links within network 112 are asynchronous transfer mode
`(ATM) links carrying communication data from a wide
`variety of Sources to a wide variety of receiving devices. The
`current invention focuses on systems 116, 120 which trans
`fer the data from sources such as telephones 104,108 to the
`network 112. Each system 116, 120 typically includes two
`data paths, an ingreSS route which transferS data from the
`Source such as telephone 104 to the network 112 and an
`egreSS route which transferS data from network 112 to a
`receiving device which may also be a telephone 104. In one
`embodiment, data flows through system 116 in both
`directions, between telephone 104 and network 112. The
`current invention focuses on the ingreSS route, the transmis
`sion of data from the source such as telephone 104 to the
`network 112.
`FIG. 2 illustrates a block diagram of an embodiment of
`system 116. Although FIG. 2 illustrates a hardware imple
`mentation of the invention, it is recognized that in an
`alternate embodiment, Software may be used to implement
`the described invention. In the embodiment of the invention
`illustrated in FIG. 1, the source is a telephone. Serial port
`ISR 208 receives data in a variety of formats, including, but
`not limited to, Speech data and digital signal through line
`212. In one embodiment, a stream of data is received using
`a time division multiplexing (TDM) technique.
`Serial port ISR 208 transfers the received telephone
`communication data from line 212 to an ingress route 210.
`When the stream of data is received, ingress route 210 may
`include circuitry to generate frames of data. For example, a
`circuit Such as a digital signal processing (DSP) circuit may
`convert 5 msec Samples of received data into a frame of
`PCM data or a 10 msec sample into a frame of G.726 data.
`The frames undergo processing including compression
`using one of Several compression routines. When network
`112 is an ATM network, header data may be added to each
`compressed frame to generate a corresponding ATM cell for
`output to an ATM network. Although the following descrip
`tion has described an ATM network, the invention may also
`be used for other network types such as IP networks.
`Along ingreSS route 210, the received telephone data is
`processed to (1) remove echoes and (2) analyze and encode
`the data for transmission. Echo task circuit 214 performs
`removal of echoes while analysis task circuit 216 performs
`the processing and encoding of data. Analysis buffer 218
`receives data from the output of echo task circuit 214. The
`output of analysis buffer 218 is input into analysis task
`circuit 216. The following detailed descriptions will
`describe one embodiment of echo task circuit 214, analysis
`task circuit 216 and analysis buffer 218.
`Echo task circuit 214 is used to cancel line echoes (e.g.,
`electrical echoes) which may result from non-perform
`hybrids (devices that couple local two-wire to long distance
`4-wire circuits). Such echo canceling is important in tele
`conference Systems where two or more parties are connected
`via full duplex links to alleviate acoustic feedback problems.
`A serial port receive auto buffer 220 accumulates data
`from the telephone into Samples appropriate for processing
`by echo task circuit 214. In one embodiment, auto buffer 220
`stores 10-byte samples. The 10-byte samples are transmitted
`to echo task circuit 214 where a linear converter 222
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,172,987 B1
`
`4
`converts the received digital data to linear data. Thus, in one
`embodiment of the invention, PCM data received in 18-bit
`Segments is converted to a linear format. The output of the
`linear converter 222 is transferred to an analog to digital
`(A/D) linear buffer 224 which stores the data until high pass
`filter 226 is ready to receive data.
`High pass filter 226, adaptive filter 228 and double-talk
`detector 230 collectively operate as echo cancellation cir
`cuitry to remove echoes by Subtracting a filtered output from
`the microphone signal. Such a procedure is well known and
`described in detail in the Electrical Engineering Handbook
`by Richard C. Dorf, pages 401 to 403, published by IEEE,
`copyrighted 1993.
`More specifically, high pass filter 226 of the echo can
`cellation circuitry remove DC offsets from the received
`Signal. The output of high pass filter 226 is transmitted to a
`double-talk detector 230. Double-talk detector also receives
`signals from the egress circuit 232. When double-talk detec
`tor 230 detects duplicate Signals or redundant data present in
`both egreSS circuit 232 and high pass filter 226, adaptive
`filter 228 uses a summing circuit 234 to subtract the redun
`dant data from high pass filter 226 output to cancel the
`redundant data and remove the echo. Failure to cancel Such
`echoes may result in acoustic feedback or "howling.” Thus,
`echo task circuit 214 typically is always running and inter
`actively processing incoming Signals to cancel out echoes or
`feedback in the telephone signal. A non-linear processor 236
`converts the output of Summing circuit 234 into an appro
`priate digital format for analysis by analysis task circuit 216.
`A control circuit 238 continuously monitors incoming
`Signals and controls the flow of data through echo task
`circuit 214, analysis task circuit 216 and analysis buffer 218.
`Control circuit 238 may also maintain flags indicating when
`analysis buffer 218 is ready to transfer data, what compres
`Sion routine is being used by analysis task circuit 216 and
`other related information. In one embodiment of control
`circuit 238, a processor executes a computer program to
`implement control functions of ingress route 210. The
`computer program may be hard wired using circuit
`elements, or may be implemented as computer code Stored
`in a memory device. In the embodiment illustrated in FIG.
`2, control circuit 238 is implemented in echo task circuit
`214.
`Analysis buffer 218 stores the data output by echo task
`circuit 214 until needed by analysis task circuit 216. Analy
`sis buffer 218 is typically large, for example 256 bytes in one
`embodiment of the invention. Typically, the size of the
`analysis buffer will be greater than twice the largest frame
`Size times the number of channels being transmitted. The
`analysis buffer 218 accumulates data and tracks frames to
`transfer to analysis task circuit 216. For example, when
`PCM protocol is used, the analysis buffer 218 may store the
`data and track when 40 bytes to form a frame of data have
`been received. Other protocols such as a G.726 protocol may
`cause analysis buffer 218 to store and track data until 80
`bytes of data have been received to form a frame of G762
`data.
`An operating State machine or control circuit 238 con
`trolling System 116 determines the protocol used to transmit
`data over network 112 of FIG. 1. Analysis task circuit 216
`processes the received data according to the protocol
`selected for transmission by network 112 of FIG. 1. In one
`embodiment of ingress route 210, analysis buffer 218 trans
`fers stored data to tone detection circuit 240 of analysis task
`circuit 216. Tone detection circuit 240 determines whether
`the Signal received is a non-Speech Signal, for example, a fax
`
`IPR2018-01413
`Sony EX1026 Page 8
`
`
`
`S
`signal in which the fax transmits a 2,100 hertz notification
`signal. When the tone detection circuit 240 detects an
`incoming non-speech or “particular data type,” Such as a fax
`signal, the tone detection circuit 240 may forward the
`particular data type to a processing circuit Such as a fax/
`modem task circuit 242. Fax/modem circuit 242 stores
`current voice digitizing and Switches between compression/
`encoding methods Such as PCM encoding in order to make
`the highest possible data rate connection. When tone detec
`tion circuit 240 does not detect a particular data type, tone
`detection circuit 240 transfers the received data to a silence
`detection circuit 244 which detects silent periods. Silence
`detection circuit 244 transferS the Silent packets to a voice
`frame transmit interface 246. The voice frame transmit
`interface receives both Silence frames from Silence detection
`circuit 244 as well as any Special data types Such as fax
`Signals from faX/modem task circuit 242 and converts the
`data into appropriate form for transmission.
`When the data received from analysis task circuit is
`Speech data, encoder 248 encodes the Speech data while
`pack circuit 250 packs the encoded speech data. Encoding
`the Voice data in encoder circuit 248 and packing the data in
`pack circuit 250 produces a compressed Signal, conforming
`to a particular protocol and posted into an ATM frame. A
`typical ATM frame includes a header having specific infor
`mation that allows a receiving device to parse the data. A
`control System instructs encoder circuit 248 and pack circuit
`250 to produce data conforming to a particular speech
`compression for transmission at a particular data rate. The
`Speech compression or data rate Selected is based on the
`needs of the transmitting or Source device and the capabili
`ties of network 112 of FIG. 1 which receives the data. The
`output of the processed Voice data is transferred to a voice
`frame transmit interface 246 which prepares the data for
`transmission to an ATM link.
`When voice frame transmit interface 246 has prepared the
`data in a format appropriate for transmission, the data is
`forwarded to transmit buffer 252 which stores the data.
`Transmit buffer 252 transfers data to the network through
`host port interface 254.
`When a management circuit, Such as a host at a remote
`end indicates rate Switching is appropriate, prior art Systems
`do not retain data in analysis buffer 218. In order to avoid
`data loSS, one embodiment of the present invention causes
`control circuits in echo task circuit 214 to flag the beginning
`of the next frame of data in analysis buffer 218. The
`accumulation of data for the new compression routine
`continues while analysis task circuit 216 processes all data
`remaining prior to the flag in analysis buffer 218. By
`coordinating the Start of a new compression routine with the
`Start of a new frame, Switching of routines while transmit
`ting data in real time can be accomplished without data loSS.
`Analysis buffer 218 buffers data between the echo task
`circuit 214 and the analysis task circuit 216. In one
`embodiment, analysis task buffer 218 is a “circular buffer.”
`In a circular buffer arrangement, analysis buffer 218 includes
`a pointer which counts up from a first number Such a Zero to
`a last number such as 255 before restarting the count from
`the first number Such as Zero. AS data is received by analysis
`buffer 218, the looping of the pointer from Zero to 255
`coincides with the output of data to the analysis task circuit
`216. A control circuit sets encoder 240 and pack circuit 250
`to output data in a particular protocol. Analysis buffer 218
`outputs data in frames to correspond to the protocol Selected.
`For example the PCM protocol usually processes data in 40
`byte frame Segments while the G.726 protocol processes
`data in 80-byte frame Segments.
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,172,987 B1
`
`15
`
`35
`
`40
`
`6
`When the compression routine is Switched to generate a
`different protocol, analysis buffer 218 sets a flag to indicate
`protocol Switching After the control circuit instructs a
`change in protocol, analysis buffer 218 uses a counter to
`count until the last byte of data in a frame is received from
`echo task circuit 214 and Sets a flag to indicate the beginning
`of the next data frame. Control circuit 238 coordinates the
`Switch over to the new protocol by analysis task circuit 216
`to coincide with the Start of the new frame of data in analysis
`buffer 218. The operation of a system to control analysis
`buffer 218 is described in flowcharts 3, 4, 6 and 7 which
`follows.
`FIG. 3 is a flow diagram providing an illustrative embodi
`ment of the Overall System for controlling flag insertion
`while FIGS. 4–7 illustrate embodiments of Subroutines used
`by the overall system of FIG. 3. In FIG. 3, an echo task
`continuously checks the echo task circuit in block 304 and
`stores frames of received data in block 308. The frames of
`data are stored in the analysis buffer 218 of FIG. 2. Under
`normal operation, when no change of protocol is occurring,
`an echo Switch flag is maintained at a predetermined value
`Such as Zero. In block 312, when echo flag is determined to
`be Zero, normal process routines occur and a signal is posted
`in block 316. AS used in this patent, “posting a signal” is
`defined as posting of transferring data to an analysis task
`(ATASK). AS long as operations are normal, “normal”
`meaning no change of protocols or data transfer rates, the
`echo task continues in block 320 to monitor for protocol or
`routine changes.
`Control circuit 238 manages the System containing
`ingress route 210 of FIG. 2 to determine when a change in
`compression routines is needed. FIG. 4 illustrates the opera
`tion of the control circuit 238 to change the compression
`routine in one embodiment of the present invention. In FIG.
`4, a new parameter table is loaded into the System in block
`408. A parameter table typically includes data such as the
`compression routine description, allowed bit rates and pos
`sibly a rate number. Possible information transferred by a
`parameter table is illustrated in table 500 of FIG. 5. After the
`new parameter table is loaded and the change of compres
`Sion routine is executed, an echo Switch program is called in
`block 412. The operation of the echo Switch program will be
`described in FIG. 6. The echo flag is set to 1 or a value
`different from the predetermined value and the system
`returns to the echo task 304 of FIG. 3.
`In FIG. 3, during the next processing of decision block
`312, it is determined that the echo Switch flag is not set to
`Zero. Instead, in block 324, when it is determined that the
`echo Switch flag has been Set to one, a control circuit in the
`echo test circuit causes the analysis task circuit to consume
`current data in the analysis buffer 218 using the former
`protocol by posting of signals in block 328. This continues
`until all data corresponding to a frame is consumed. Thus,
`data is transferred and a Second Subroutine or the echo
`Switch Subroutine is called in block 332. The echo Switch
`Subroutine is described in FIG. 6.
`FIG. 6 shows the echo Switch Subroutine receiving the
`data in block 604. In block 608, the echo Switch Subroutine
`initializes the echo canceler variable for the echo task circuit
`214 of FIG.2 to correspond to the new protocol. Initializing
`the echo canceler variables may include Setting a new buffer
`length corresponding to the new compression method used
`as well as Setting pointers to the new functions which will be
`invoked by the new compression method. After changing the
`echo canceler variables in block 608, the echo switch flag is
`Set equal to 2 in block 612 and the System returns to echo
`task block 308 of FIG. 3.
`
`IPR2018-01413
`Sony EX1026 Page 9
`
`
`
`US 6,172,987 B1
`
`15
`
`25
`
`7
`While the analysis task circuit continues processing of
`data using the old compression routine, the echo task moni
`tors the echo Switch flag. When the echo task determines that
`the echo Switch flag is set to two in block 336, the echo task
`checks if the analysis task circuit has completed processing
`of data with the old compression routine.
`Whether processing of data is complete is checked by
`monitoring a buffer ready flag in block 340. In one embodi
`ment of the invention, the Setting of the buffer ready flag is
`determined by whether the buffer pointer is pointing to the
`end of a frame containing old data to be processed using the
`old compression routine. When the buffer pointer is not
`pointing to the end of a frame, the buffer ready counter is
`greater than Zero and the echo task does not invoke any
`functions to change the Speech compression routine. Thus,
`to avoid interruption of the analysis task circuit, a signal is
`not posted (or a function is not invoked) in block 344 to
`allow analysis task circuit to complete processing of the
`remaining data using the old compression routine.
`AS echo task circuit 218 transmits new frames of data to
`the analysis buffer, buffer waiting counter is incremented, in
`block 348. The buffer waiting counter is used to track how
`many frames of new data to be processed by the new
`compression function is buffered in analysis buffer 218 of
`FIG. 2.
`In blocks 336,340, the echo task continues monitoring of
`the buffer ready flag. A buffer ready flag Value greater than
`0 indicates that the analysis circuit has completed processing
`of data using the old compression routine and is at a break
`point between frames. When buffer ready flag indicates that
`the analysis buffer is at the break point, echo task calls an
`analysis task Subroutine in block 352. The analysis task
`Subroutine is described in FIG. 7.
`In block 708 of FIG. 7, the analysis task subroutine
`initializes analysis task circuit 216 of FIG. 2 to handle the
`new speech compression routine. In block 712, when a
`G.726 compression routine is Selected, the parameters for
`G.726 compression are set in block 720. The G.726 com
`pression Standard Supports Several different compression
`40
`rates. In block 724, a compression rate is Selected.
`In the illustrated embodiment of FIG. 7, a PCM compres
`sion routine may also be selected. When a PCM compres
`sion function is selected, the appropriate PCM variables are
`set in block 736. In block 728, the echo Switch flag is set to
`a value (e.g. 0) to indicate that the analysis task circuit is
`using the new compression function to process incoming
`data. In block 732, the system returns to the echo task
`processing routine of FIG. 3.
`In block 356 of FIG. 3, the echo task checks the buffer
`waiting counter and notifies the analysis task circuit to
`proceSS any new buffered frames of data accumulated during
`the Switch in compression routines. The System returns to
`normal operation by posting a Signal in block 360 and
`continuing the echo task in block 320.
`While certain exemplary embodiments have been
`described and shown in the accompanying drawings, it is to
`be understood that such embodiments are merely illustrative
`of and not restrictive on the broad invention, and that this
`invention not be limited to the Specific constructions and
`arrangements shown and described, Since various other
`modifications may occur to those ordinarily skilled in the art.
`What is claimed is:
`1. A data compression apparatus comprising:
`a storage device to buffer uncompressed data;
`an analysis task circuit to receive uncompressed data from
`the Storage device and to compress the uncompressed
`
`8
`data, the analysis task circuit Switchable between at
`least two compression routines used to compress the
`uncompressed data; and
`a control circuit to receive a request for a Switch in
`compression routines while transmitting compressed
`data in real time, the control circuit to Signal the
`analysis task circuit to Switch compression routines
`when information corresponding to a beginning new
`frame of uncompressed data is output by the Storage
`device.
`2. The apparatus of claim 1 further comprising:
`an echo task circuit to remove echoes from a Signal before
`input into the Storage device.
`3. The apparatus of claim 1 wherein the analysis task
`circuit includes a tone detection circuit to determine when
`the received uncompressed data is a fax transmission.
`4. The apparatus of claim 1 wherein the analysis circuit
`Switches between a G.726 compression routine and a PCM
`compression routine.
`5. The apparatus of claim 2 wherein the apparatus further
`comprises a Second buffer to temporarily Store uncom
`pressed data received from a Serial port before transfer to the
`echo task circuit.
`6. The apparatus of claim 2 wherein the control circuit
`Signals the analysis task circuit to Switch compression
`routines when a first byte of a new frame of uncompressed
`data is output by the Storage device.
`7. A data compression method comprising:
`compressing incoming uncompressed data using a first
`compression routine,
`receiving a signal requesting a change in compression
`routine while transmitting compressed data in real time;
`determining a beginning of a frame of uncompressed data
`in an analysis buffer; and Switching compression rou
`tines as the beginning of the frame of uncompressed
`data is