Abstract:
A time shared multiport conference arrangement includes an additive PCM speaker circuit. The additive PCM speaker circuit eliminates the need for loudest speaker detection and the last speaker memory of conventional conferencing arrangements. The additive PCM speaker circuitry operates in an on-line, real time environment to allow rapid conversion and summing of speakers&#39; PCM voice samples. Since the PCM voice samples are logarithmic in nature, they are not directly combinable. The additive PCM speaker circuitry provides for converting the logarithmic PCM signals to linear form. Next, the linear signals of up to three conferees are buffered. Then the speakers&#39; linear form samples are added and each combination reconverted from linear to logarithmic form. The additive PCM speaker circuit simplifies the complex processing logic usually associated with loudest speaker detection systems and thereby improves the real time operation of the conferencing arrangement.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This Application is related to co-pending U.S. patent applications Ser. Nos. 87-7-018 and 87-7-033, which have the same assignee as the present Application. This Application is also related to co-pending U.S. patent application Ser. No. 87-7-040, having the same inventive entity and being assigned to the same Assignee as the present Application. 
     BACKGROUND OF THE INVENTION 
     The present invention generally pertains to a conference calling arrangement for an integrated services digital network and more particularly to improvements for speaker selection and broadcasting for multi-port conference circuitry. 
     U.S. Pat. No. 4,466,093 teaches a time shared conference arrangement. U.S. Pat. Nos. 4,466,092 and 4,466,094 also teach similar techniques. The assignee of the present application is the successor in all rights, title and interest to the assignee of the U.S. Pat. No. 4,466,093 . 
     This patent teaches the broadcasting of the &#34;loudest speaker&#34; to the other conferees. A series of on-line comparisons is made between the PCM magnitude levels of up to three conferees. Such on-line comparisons require an amount of switching system real time. Next, this patent teaches the comparison of the loudest detected speaker to a threshold level. If the PCM magnitude of the speakers&#39; values exceeds this threshold, then this loudest speaker&#39;s PCM sample is broadcast to the other conferees during the appropriate time slots. If the PCM magnitude of the loudest conferee did not exceed the threshold, then the identity of the loudest conferee stored during the previous sampling time period was selected and the corresponding PCM sample broadcast to the other conferees during the appropriate time slots. 
     This technique provided for rapid switching between the speakers introducing noise. As a result, the overall audible quality broadcast to the conferees is substantially degraded when two or more parties speak simultaneously. 
     When multiple sound sources are present, the human ear hears a combination of all the various sources. Some of the sources are louder in amplitude than others. The PCM samples, which represent speech sound, of modern digital networks are not directly combinable. Therefore, the human ear listening via a digital switching system does not hear a true combination of each conferee&#39;s speech. 
     PCM data samples are nonlinear logarithmic representations of human speech. Since these PCM samples are nonlinear, they are difficult to combine. 
     It is an object of the present invention to provide a PCM speaker control circuit for a time shared conference arrangement of an integrated services digital network (ISDN) which provides for low noise output and true representation of each conferee&#39;s speech. 
     SUMMARY OF THE INVENTION 
     In accomplishing the object of the present invention a novel additive PCM speaker circuit for a time shared ISDN conference arrangement is provided. 
     An ISDN system includes a number of system subscribers connected to the system network. The network connects at least three of the system subscribers in a conference call arrangement by transferring PCM voice samples in consecutive time slots. The time shared conference arrangement has a timer for generating a plurality of periodic pulses. Also included is a first converter which is connected to the ISDN network. The first converter produces linear values corresponding to each of the PCM voice samples. 
     A buffering arrangement is connected to the timer and to the first converter. The buffering arrangement sequentially stores the corresponding linear values of each conference subscriber. The buffering arrangement also stores, during sequential time slot,, the linear values of the subscribers in a second conference call. 
     A multiplexer is connected to the buffering arrangement and to the timer. The multiplexer transmits pairs of the stored linear values during successive time slots. An adder is connected to the multiplexer. The adder arithmetically combines the pairs of linear values to produce a resultant value. 
     Lastly, a second converter is connected between the adder and the network. The second converter produces a PCM value corresponding to each resultant value of the adder. Then, the second converter transmits these PCM values to the network. The transmitted PCM values are the equivalent PCM values corresponding to each resultant value of the adder. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of the conference circuit embodying the principles of operation of the present invention. 
     FIG. 2 is a layout of the channel input to and output from the conference circuit via the network. 
     FIGS. 3A and 3B are a flow chart of a method for converting linear values to PCM logarithmic values. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     In FIG. 1, a conference circuit block diagram of an integrated services digital network (ISDN) is shown. ISDN systems typically provide for switching both data and voice communications. The conference circuit shown herein is applied only to PCM voice samples. That is, the circuit is used only for conferences between voice subscribers. In this application, only PCM voice samples are received from the ISDN system&#39;s time switched network. PCM voice data is input to the conference circuit via the received data lead RXD. 
     The ISDN systems transmits multiplexed voice and data at a rate of 3.088 megabytes per second. The RXD lead is connected to other logic (not shown) of the network that segregates the voice channels from the data channels. This system logic also orients the PCM voice samples of each group of three conferees, which comprise the conference call, in three adjacent channels or time slots. There are a maximum of 24 channels of information in a frame and hence a maximum of eight three party conference groups. 
     FIG. 2 shows that callers A1, B1 and C1, with their PCM voice samples in channels 1, 2 and 3 respectively, comprise conference call 1. Similarly, speakers A2, B2 and C2 with their PCM voice samples in channels 4, 5 and 6 respectively, comprise conference call 2. Up to eight time shared conference calls may be handled by this conference circuit arrangement. 
     The input bit stream is serially transmitted from the network via the RXD lead to serial to parallel shift register 10. Whenever a complete PCM voice sample has been collected by serial to parallel shift register 10, the resulting parallel word is transmitted to programmable read only memory (PROM) 15 as an address. PROM 15 has been preprogrammed with values which convert the logarithmic PCM voice samples to a corresponding linear form. PROM 15 is 256×16-bits and may be implemented with two 256×8-bit programmable read only memory devices. 
     Timing and control circuit 60 provides for controlling the transfer of each parallel word from shift register 10 to PROM 15. Each address input to PROM 15, causes PROM 15 to output the data located at the corresponding address. This data is output to the temporary registers A, B and C, 20, 21 and 22, respectively. Timing and control circuit 60 allows the output of PROM 15 to be latched up by temporary register 20, 21, or 22. The contents of the temporary registers 20, 21 and 22 represent the linear forms of the PCM voice samples of the three conference callers of conference call 1. In other words, the linear representations of the information contained in channels 1, 2 and 3 of now reside in temporary registers 20, 21 and 22, respectively. 
     After all three samples have been converted and are stored in temporary registers 20, 21 and 22, timing and control circuit 60 causes the contents of the temporary registers 20, 21 and 22 to be transferred to working registers 30, 31 and 32, respectively. The purpose of this transfer is to allow the temporary registers to be filled with the converted data for the next conference call sharing this circuit, conference call 2. This occurs simultaneously with the processing of the samples of conference call 1 contained in the working registers. 
     During the next three time slots the temporary registers 20, 21 and 22 are collecting converted linear samples of channels A2, B2 and C2 of conference call 2. During these same time slots, working registers 30, 31 and 32 are transmitting their values through multiplexers 40 and 41 under the control of timing and control circuit 60. 
     First, the converted samples contained in working register B 31 and working register C 32 are transmitted through multiplexers 40 and 41, respectively. The two linear values of working registers 31 and 32 are then added by 16-bit ALU 45. 16-BIT ALU 45 is an arithmetic logic unit. This arithmetic logic unit may be implemented with a Texas Instruments integrated circuit part number HC382 or suitable equivalent such as those manufactured by National Semiconductor or other manufacturers. The arithmetic logic unit 45 directly adds the two linear samples. Any resulting value which exceeds the maximum value is truncated. 
     The output of arithmetic logic unit 45 is transmitted as an address to PROM 50. PROM 50 is a programmable read only memory and may be implemented with a 16K×8-bit electronically programmable read only memory device. PROM 50 has been preprogrammed with values which convert the linear values, applied as addresses to the PROM, into logarithmic PCM voice sample values. The values output by PROM 50 are transmitted via the TXD lead back to the ISDN network. This value is transmitted to speaker A1. This value represents the combined PCM values of speakers B1 and C1. 
     Next, conferee B1 receives the combined values of conferees A1 and C1. In accomplishing this, timing of control circuit 60 gates the contents of working registers 30 and 32 through multiplexers 40 and 41, respectively. These two values are added by ALU 45. The output of ALU 45 is transmitted as an address to PROM 50 which converts the combined linear representation to the corresponding logarithmic representation. PROM 50 transmits, via the TXD lead, the combined PCM voice sample during the appropriate time slot of conference caller B1. The sample is transmitted to the SDN network. 
     Lastly, for conference call 1, conference caller C1 receives the combination of the PCM voice samples of callers A1 and B1. During the next time slot, timing and control circuit gates the contents of working register 30, the converted sample of conferee A1, through multiplexer 40 and gates the contents of working register 31, the converted sample of conferee B1, through multiplexer 41 to ALU 45. ALU 45 combines these linear representations. Next, ALU 45 transmits the result to PROM 50 as an address. This address causes the contents of that location to be read from PROM 50; and, as a result, the linear representation is converted to the corresponding PCM logarithmic representation. PROM 50 then transmits this value via the TXD lead to the ISDN network. In this way, conferee C1 receives the additive combination of the voice samples of speakers A1 and B1. 
     The voice samples from conference call 2 have now been converted from logarithmic representation to linear representation and stored in temporary registers 20, 21 and 22. During the next three successive time slots, the samples conference call 2 are processed as described above for conference call 1. 
     A maintenance feature for determining the integrity of the circuit is also provided. Microprocessor 70 is connected to maintenance register 80. Microprocessor 70 transmits test voice samples to maintenance register 80. Maintenance register 80 is connected to PROM 15. Under the control of timing and control circuit 60, serial to parallel shift register 10 may be inhibited from transmitting a voice sample to PROM 15. Instead, timing and control circuit 60 allows maintenance register 80 to transmit the test sample to PROM 15. In this manner, a number of test PCM voice samples may be transmitted to the conference circuit and a test conference call is generated as a result. The conference circuit will process these test voice samples as though they were actual speakers&#39; voice samples. 
     When these test samples have been processed by the conference circuit and are output via the TXD lead, microprocessor 70 informs maintenance register sense 81. Maintenance register sense 81 then removes each of the test PCM samples before transmission to the ISDN network and transmits them to microprocessor 70. Microprocessor 70 then compares the test samples obtained from PROM 50 with the known combinations of the original test samples transmitted to maintenance register 80. If the samples compare, the circuit is operating properly. Miscomparisons indicate circuit failures or faults. 
     PROM 15 of FIG. 1 performs the conversion from the PCM logarithmic values to linear values. The contents of PROM 15 are calculated in accordance with the CCITT U-law charts as contained in the CCITT Recommendations G.711. Values for each of the locations of PROM 15 may be calculated using the following formula: ##EQU1## where Y 0  =X 0  =0, for n =0. 
     Each value of Y 0  calculated by the above formula is stored in 256×8-bit PROM 15. The linear values of Y n  are stored at addresses which correspond to the equivalent values of the logarithmic PCM sample values. As a result, when PROM 15 is addressed by the PCM value in logarithmic form, the equivalent linear value is output by PROM 15 on its 16-bit databus. 
     PROM 50 converts linear values to logarithmic PCM values. Linear values are transmitted to PROM 50 as an input address. Within PROM 50, positive and negative sample values are represented by + or - 8159 linear decision levels. Each decision level maps into a portion of a step within a segment. There eight different segments for both positive and negative input linear samples. Each step portion of the address input to PROM 50 has a corresponding logarithmic PCM value stored at that location. 
     Generation of the contents of PROM 50 is accomplished as shown by FIGS. 3A and 3B. The procedure is shown for positive PCM values, but is identical for producing negative PCM sample values. The procedure for generating the contents of PROM 50 is started at block 101. Next, an initialization step is performed, block 103. The memory start location is defined. This is location zero hexadecimal for the negative values and location 2000 hexadecimal for the positive values. The initial PCM value is also defined as 7F hexadecimal for the negative values and FF for the positive values. The step size is also defined. 
     The segment count is started at a value of 1, block 105. Next, it is determined whether this is the first step, block 107. Since this is the first step, block 109 stores the initial value in memory. The step count is incremented by one, block 111. Then control is returned to block 107. 
     Block 107 again determines whether this was the first step. Since this is not the first step, block 107 transfers control via the NO path to block 113. Block 113 increments the memory location by one and decrements the PCM value by one. The calculated PCM value is stored in the memory at the memory location which was calculated, block 115. 
     Next, it is determined whether this is the end of a step, block 117. If the answer is negative, block 117 transfers control via the NO path to block 113. The steps of blocks 113 and 115 are iterated until the end of the step is detected by block 117. When the step is ended, block 117 transfers control to block 119 via the YES path. If this is not the end of a segment, block 119 transfers control to block 113 via the NO path. Again, the steps of blocks 113, 115 and 117 are iterated until the end of this segment is detected by block 119. 
     When the end of the segment is detected, block 119 transfers control to block 121 via the YES path. Block 121 increments the segment count by one. Block 123 is entered from block 121. Block 123 transfers control to block 125 which begins the calculations for the next segment. 
     Block 125 transfers control to block 127 which defines the steps and step size. Next, block 129 decrements the PCM value by one and increments the memory address location by one. The calculated PCM value is stored in the new memory address location, block 131. The step is incremented to the next step location, block 133. Block 135 determines whether the end of the step is reached. If the answer is negative, block 135 transfers control to block 129 via the NO path. As a result, blocks 129, 131 and 133 are iterated. 
     When the end of a step is determined, block 135 transfers control via the YES path to block 137. Block 137 increments the step to the next step value. Then, block 139 determines whether the end of the segment has been detected. If not, block 139 transfers control to block 129 via the NO path. Blocks 129 through 137 are then iterated, until it is determined that the end of the segment is detected. 
     When the end of the segment has been determined, block 139 transfers control to block 141 via the YES path. Block 141 increments the segment value. Lastly, block 143 determines whether this is the last segment. If this is not the last segment, block 143 transfers control to block 129 via the NO path. As a result, the steps of blocks 129 through 141 are iterated until the last segment is detected. When the last segment is detected block 143 transfers control to block 145 and the procedure is ended. 
     Table 1 shows a position of the negative values contained by PROM 50. All values are given in hexadecimal. 
     
                       TABLE 1______________________________________ADDRESS       CONTENTS______________________________________0000          7F0001          7E0002          7E0003          7D0004          7D0005          7C0006          7C0007          7B0008          7B.             ..             ..             .______________________________________ 
    
     Table 2 shows a portion of the positive values contained by PROM 50. All values are given in hexadecimal. 
     
                       TABLE 2______________________________________ADDRESS       CONTENTS______________________________________2000          FF2001          FE2002          FE2003          FD2004          FD2005          FC2006          FC2007          FB2008          FB.             ..             ..             .______________________________________ 
    
     Although the preferred embodiment of the invention has been illustrated, and that form described in detail, it will be readily apparent to those skilled in the art that various modifications may be made therein without departing from the spirit of the invention or from the scope of the appended claims.