Preview only show first 10 pages with watermark. For full document please download

Error-correction-code Synchronization In A Videoconferencing Gateway

   EMBED


Share

Transcript

US006111924A United States Patent [19] [11] Patent Number: McKinley [45] Date of Patent: [54] ERROR-CORRECTION-CODE [75] 6,111,924 Aug. 29, 2000 Primary Examiner—Stephen Chin SYNCHRONIZATION IN A Assistant Examiner—Dac V. Ha VIDEOCONFERENCING GATEWAY Attorney, Agent, or Firm—Cesari and McKenna, LLP Inventor: Brittain S. McKinley, Melrose, Mass. [57] [73] Assignee: VideoServer, Inc., Burlington, Mass. ABSTRACT A de-framer (72) in a communications gateway (22) trans lates videoconferencing information from a circuit-sWitched 21 Appl, No.1 09/018,246 format to a packet-switched format. A demultipleXor (78) extracts a bitstream containing video information that [22] Filed: [51] [52] Int. Cl.7 ...................................................... .. H04L 7/00 US. Cl. ........................ .. 375/354; 375/365; 375/366; rnincd locations With respect to synchronization bits spaced by a Synchronization interval and forming a predetermined 375/368; 370/503; 370/509; 370/512; 370/513; 370/514; 714/758; 714/775; 714/789; 714/798 synchronization sequence. A frame checker (88) for check ing the error-correction code ?nds codeWord boundaries by [58] Feb‘ 3’ 1998 includes error-correction-code ?elds disposed at predeter Field of Search ................................... .. 375/365, 366, 375/368; 354; 370/503; 509; 512; 513; 514; 714/54, 12, 707, 758, 775, 789, 798 [56] References Cited Us‘ PATENT DOCUMENTS 5,600,646 2/1997 Polomskl .............................. .. 370/263 5,903,619 5/1999 5,956,377 9/1999 Lang ..................................... .. 375/372 ......................... .. bitstream bits until it ?nds a match. To do so, the frame checker (88) takes a group of video-bitstream Words offset from each other by the synchronization interval. It compares each WOI‘d~ 1n the group With a respective synchronization WllklIlSOIl ............................. .. 5570370 10/1996 Lm """ 370/953 Claisemartin comparing the predetermined synchronization sequence With sequences of synchronization-interval-spaced video Word consisting of a Word-Width replication of a respective Synchronization Enough Words resulting from the Com parisons are ORed together that the result Will be all ones unless each Videobitstream Word Contains a res ective 375/366 _ _ _ _ _ _ _ _ p synchromzanon e“ m a correspendmg b1t_P°S1t1°n~ If the result does contain a zero, then it can be inferred that the OTHER PUBLICATIONS International Telecomunication Union, “Video Codec for Audiovisual Services at p><64 kbit/s,” ITU—T Recommen video bitstream contains synchronization bits in correspond ing bit positions‘ dation H.261 (Mar. 1993). 3 Claims, 15 Drawing Sheets ADVANCE GetPtr BY 1 LEAST 512 WORDS IN BUFFER? WITH WRAP CHECK K102 TempPtr = Ptr Count = 0 Sum = O DOES Sum HAVE ANY zERos? K146 SYNCHRONIZATION ACHIEVED; FIND ZERO-BIT LOCATION AND SET IT AS THE REMAIN VALUE. Index = (Index + Count) MOD 8 Comp = Table(|ndex) A *TempPtr Sum: Sum I Comp TempPtr : TempPtr +16 Count : Count +1 TempPtr > BufEnd? K150 TempPtr = TempPtr - BufSize l__ U.S. Patent Aug. 29,2000 Sheet 2 0f 15 6,111,924 H0cTET—+—0oTET——+—ocTET——>| VIDEO AUDIO DATA VIDEO AUDIO DATA VIDEO AUDIO DATA VIDEO STREAM s F HDR DATA ECC ECIIEROUPéOé BLZOCIZ_ mNwo~m3£9k2$85om92: 2%v$R0N89m2So:2wo moomv m22 395P29503r0.5 [email protected] $360.35 5$089 m@ow @emo .QEo_\ 503m505@cc8 g cc U.S. Patent Aug. 29,2000 Sheet 6 0f 15 NEWVORK BUS 6,111,924 BPU Bus BPU SWITCH 58\ 58\ DSP1 A 5s\ DSP2 A SRAM A DSP1 B SRAM B 60] 60) 58 5s\ DSP2 B DSP1 c 5s\ 58\ DSP2 c DSPI D SRAM c 58\ DSP2 D SRAM D 61] so] 32 BIT CP BUS A4 SRAM CP 8 BIT MICROPROCESSOR BUS 020%: A2 DSP _ SER CP HPU MUX 36 INTERFACE EEROM ISA BUS FIG. 12 U.S. Patent Aug. 29, 2000 Sheet 7 0f 15 6,111,924 QPI .I,.. .r .-> I\ 81x: EMJrE05WE _1H5 _mamom 29Eu mmm8%3w3%“ I\OZ>mw m|.m RXawwk 31Iw“ENm\m_10mEzoi_ EENMWE 5:NRE:wNs:Z10PEI|.v6_o/ WI. O_jEM5 mmx3w\zéwUol2z>w mK-NMuE:RN 1LI50m3ug./‘0E NNK_ .L. . MQmUE/‘3&1 Mwzamo . .0E2 U.S. Patent Aug. 29,2000 Sheet 8 0f 15 FIG. 14 6,111,924 U.S. Patent Aug. 29, 2000 Sheet 9 0f 15 6,111,924 / 158 ADVANCE1 I Getptr BY LEAST 512 WORDS IN BUFFER? , WITH WRAP STOP CHECK f 102 TempPtr = Ptr Count = 0 Sum = 0 144 DOES Sum HAVE ANY zERos? K146 [154 SYNCHRONIZATION ACHIEVED; FIND ZERO-BIT LOCATION AND SET IT AS THE REMAIN VALUE. Index = (Index + Count) MOD 8 Comp = Table(lndex) A *TempPtr Sum: Sum | Comp TempPtr : TempPtr +16 CO unt = .Co unt +1 148 f 156 TempPtr > BufEnd? r150 TempPtr = TempPtr - BufSize FIG. 15 100 U.S. Patent Aug. 29,2000 104 K PutRemain = PutRemain + n l Temp = Bits SHIFT Temp BY PutRemain PutWord = Temp | PutWord 108 x “i 6,111,924 1 106 \ Sheet 10 0f 15 m *PutPtr = PutWord PutPtr = PutPtr + 1 112 PutPtr = BufEnd? 1A PutPtr = BufStart PutRemain = PutRemain + 32 [5 SHIFT Bits BY GetRemain PutWord = Bits ' RETURN FIG. 16 109 U.S. Patent Aug. 29, 2000 6,111,924 Sheet 11 0f 15 @ 122 GetRemain = GetRemain + n i 124 RetVal = *GetPtr SHIFT RetVal BY GetRemain 126 \ GetRemain 2 0? 129 GetRemain = GetRemain-32 130 l GetPtr = GetPtr + 1 NO GetPtr = BufEnd? YES GetPtr = BufStart 136 Temp = *GetPtr 138 SHIFT Temp BY GetRemain l RetVal = RetVal | Temp Mask = FFFFFFFFH LEFT SHIFT Mask BY n RetVal = Mask | RetVal /~— 128 RETURN RetVaI FIG. 17 U.S. Patent Aug. 29,2000 Sheet 12 0f 15 6,111,924 166 r170 WAS THE SOURCE BIT RESET THIS ROUTINE __ BUFFER RESET? DOES THE BIT BUFFER CON TAIN DATA? K188 IS THE CURRENT WORD DONE? YES FETCH A NEW 32-BIT WORD FROM THE SOURCE BIT BUFFER f NO 186 WRITE FETCHED BITS TO THE PACKET IF THERE IS ONE. 1 K190 SEARCH FOR N ZEROS FOL LOWED BY A ONE. (N=15 FOR H.261 AND 16 FOR H.263) r212 WAS TH PATTERN FOUND? NO COMPUTE STARTING BIT LOCATION OF PAT- 2 TERN. EXTRACT GOB# J AND HEADER (PS0) (5 14 FIG. 18A U.S. Patent Aug. 29, 2000 Sheet 13 0f 15 6,111,924 K218 216 DID THE LAST GOB END BAZZLIJDPLEEQTTERS BEFORE THE CURRENT WORD? COUNTS NO r220 COMPUTE END BIT VALUE FOR CURRENT PACKET, COIvIPUTE START BIT FOR NEXT PACKET Is THERE A CURRENT PACKET? r226 IS THE 224 GOB BOUNDARY A no TURE BOUNDARY? (GOB# = 0) YES SET T|ME STAMP AND SEND MES SAGE ABOUT VIDEO FORMAT CHANGES NO [ CLEAR UNUSED BITS, SET UP PACKET HEADER, )228 AND LOAD PACKET’S CONTROL FIELDS ALLOCATE NEW PACKET AND lNlTlALlZE IT 330 236 ' /234 F CLEAN UP CURRENT WORD CLEAN UP DID THE PATTERN START IN PREvIOUs WORD? l LAST WORD AND WRITE IT TO PACKET l /-238 WRITE CURRENT WORD TO PACKET % €240 FIG. 18B U.S. Patent Aug. 29,2000 Sheet 14 0f 15 6,111,924 wt/ Hx3GuE6£W|82wé>MmQ3nSV @t\#2 532E:6.051m8%92: UL5I@0N956:2%E04$?a m w l “_ w / amwdnvlmcE;Noqi mmESmQlIcEnoQ .@E9 U.S. Patent Aug. 29,2000 Sheet 15 0f 15 6,111,924 f194 V ADD CURRENT BYTE’S LEADINGZERO-TABLE ENTRY TO ZERO COUNT 1 O lYES YES ZERO COUNT AT LEAST ZERO COUNT = CURRENT BYTE‘S TRAILING-ZERO- 306 TABLE ENTRY r 204 L 7 PATTERN_FOUND=TRUE r200 60 TO YES NEXT '—_ BYTE ANY 198 MORE BYTES IN WORD? NO r208 PATTERN_FOUND=FALSE NO 4 w FIG. 20 6,111,924 1 2 ERROR-CORRECTION-CODE SYNCHRONIZATION IN A VIDEOCONFERENCING GATEWAY Word, and this operation is repeated a number of times equal to the length of the synchroniZation sequence. If the Word-length video-bitstream sequence, With Which the operation started contains a synchroniZation bit, then the BACKGROUND OF THE INVENTION sum Word Will still have a Zero in the corresponding bit at the end of many OR operations. OtherWise, all bits Will be ones, and the operation is repeated, beginning With a neW Word Width sequence. Operation proceeds in this manner until synchroniZation is achieved, as indicated by a Zero in the The present invention is directed to video communica tions and in particular to achieving synchronization in error-correction-coded video bitstreams. Digital video communications transmit large amounts of information, Which can be vulnerable to corruption in the communication process. To reduce this vulnerability, it is commonplace to add redundancy to the data. The result is a sequence of code Words, each of Which consists of a predetermined number of bits of the original, non-redundant video data concatenated With error-correction-code (ECC) 10 sum Word. Employing this approach enables the system to expedite the synchroniZation process by taking advantage of the microprocessor’s Word Width. 15 bits generated from those data to bear a predetermined The invention description beloW refers to the accompa relationship to the data bits. If they do not, the receiving nying draWings, of Which: node can conclude that an error has occurred. In many cases, FIG. 1 is a block diagram of a communications topology the code is so constructed that the receiving node can not only detect errors but also correct them in most cases. of the type in Which the videoconferencing gateWay of the present invention Will typically be employed; In order to take advantage of these features, the receiving FIG. 2 is a diagram that illustrates the format of a video node has to determine Where one code Word ends and the next one starts. A mechanism for achieving this “synchro niZation” is for each code Word to be preceded by a single synchroniZation bit so chosen that the synchroniZation bits preceding successive code Words form a predetermined BRIEF DESCRIPTION OF THE DRAWINGS stream of the type that the gateWay of the present invention Will typically process; 25 synchroniZation sequence. Suppose, for instance, that the length of a code Word is 511 bits and each code Word is preceded by a synchroniZa FIG. 3 is a diagram illustrating the format of a typical link-level packet used to transmit the video stream; FIG. 4 is a diagram illustrating the RTP header of FIG. 3; FIG. 5 is a diagram illustrating the header of a single picture portion of the video stream; FIG. 6 is a diagram of a single picture’s division into tion bit so that every 512th bit is a synchroniZation bit. If the groups of blocks (“GOBs”) synchroniZation sequence is relatively long, then if every 512th bit after a given candidate bit forms With it the FIG. 7 is a diagram illustrating the header of a GOB predetermined synchroniZation sequence, the receiving node portion of the video stream; FIG. 8 is a diagram illustrating a single-GOB picture can conclude With a relatively high degree of con?dence that the candidate bit is indeed a synchroniZation bit. For 35 segment’s division into subregions represented by respec tive “macroblocks”; instance, if the synchroniZation sequence is thirty-tWo bits long, there is less than one chance in four billion that a bit other than a synchroniZation bit Will form With every ?ve FIG. 9 is a diagram illustrating a macroblock header; FIG. 10 is a diagram illustrating a macroblock region’s hundred tWelfth bit thereafter the predetermined thirty-tWo bit synchroniZation sequence. So the synchroniZation-bit approach to ?nding code-Word boundaries can be quite coverage by its constituent blocks; FIG. 11 is a diagram of a multipoint control unit (“MCU”) of a type that can embody the present invention; FIG. 12 is a more-detailed diagram of the bridge process reliable. Unfortunately, it can also be quite time-consuming. Basically, candidate bits must be fetched from, say, thirty tWo Widely spaced positions in the received data record. The resultant sequence must then be compared With the expected synchroniZation sequence, and the process must be repeated 45 FIG. 13 is a data-?oW diagram used to describe the bridge processing unit’s implementation of the present invention; FIG. 14 is a conceptual logic diagram of the synchroni Zation operation performed by FIG. 13’s process 88; until a match is found. FIG. 15 is a How chart of a routine for implementing that SUMMARY OF THE INVENTION operation in softWare; We have developed a Way of greatly expediting this process. Our approach reorders the operations in such a FIG. 16 is a How chart of a routine for storing data in FIG. 13’s bit buffer 84; manner as to take advantage of a microprocessor’s datapath Width. Speci?cally, rather than initially form a FIG. 17 is a How chart of a routine for fetching data from 55 synchronization-sequence-length (in the example, thirty tWo-bit-long) bit sequence by fetching bits from locations separated by the code-frame frame length (512 bits in the FIG. 19 illustrates the data structure of FIG. 13’s packet buffer 164; FIG. 20 is a How chart of FIG. 18A’s step 190; and FIG. 21 is a diagram of FIG. 3’s H.261 header. parison is saved as the initial value of a sum Word, and the parison is ORed With the sum Word to produce a neW sum FIG. 13’s bit buffer 84; FIGS. 18A and 18B together form a How chart of FIG. 13’s packetiZing process 162; example), We simply start With a Word-length sequence of consecutive bits from the incoming video bitstream and compare them With a Word-length replication of one of the synchroniZation-sequence bit values. The result of the com operation is repeated With a sequence extracted from the bitstream at a location displaced from the ?rst sequence’s location by the code-frame length. The result of that com ing unit depicted in FIG. 11; 65 DETAILED DESCRIPTION OF AN ILLUSTRATIVE EMBODIMENT Terminals 12 in FIG. 1 that employ the public sWitched telephone netWork for videoconferencing, for instance by 6,111,924 3 4 using the Integrated Services Data Network (ISDN) 14, concatenates the rest into a bitstream that it packetiZes for typically comply With Recommendation H.320 of the Inter transmission in accordance With the RTP protocol. To place the packetiZation task in context, FIG. 3 illus trates a typical link-layer packet. If Ethernet is used for the national Telecommunications Union’s Telecommunication Standardization Sector (ITU-T). Terminals 16 that employ link layer, the information is sent in an Ethernet frame that begins and ends With an Ethernet header and trailer, Which packet-sWitched netWorks such as the Internet 18 instead comply With that organiZation’s Recommendation H.323. To represent the videoconferencing nature of the arrangement, FIG. 1 includes multipoint control units (MCUs) 20, Which both standards require to provide certain organiZational capabilities. are used for sending the information to the next stop on the same local netWork. For Internet use the frame’s contents are an Internet Protocol (IP) datagram, Which includes its oWn 10 To enhance videoconferencing ?exibility, a gateWay 22 can be provided to translate betWeen the tWo 15 plexed video, audio, and data information. (These “frames” 20 each of the eight octet bit positions can be thought of as a separate subchannel Within the frame; in general, certain bits of a given octet Will contain video information, certain Will contain audio information, and certain may contain data, as FIG. 2’s ?rst roW illustrates. Additionally, the eighth bit in certain of a frame’s octets (not shoWn in the draWings) 25 speci?ed in RFC 1889, that gives this and other information. assembling the RTP header as Well as a further, H.261 apparent after We describe the structure of the data stream 30 being packetiZed. Before We turn to that description, hoWever, We Will ?rst consider the RTP header format, Which FIG. 4 depicts as successive four-byte roWs. RFC 1889 describes the various FIG. 4 ?elds’ purposes in detail, so We Will mention only the employs separate RTP sessions to communicate a confer 35 lation from H.221 to RTP therefore involves demultiplexing the H.221 data stream into its video, audio, and data con stituents so that the gateWay can packetiZe the video, audio, and data separately. The present invention is directed par ticularly to performing the protocol translation for the con Since packet-sWitched protocol data units do not in gen eral arrive in order, and since real-time information must be presented in a predetermined time sequence, the UDP pay load must include information specifying the sequence in Which the information Was sent and its real-time relationship to other packets. So the payload begins With an RTP header, header, speci?ed in RFC 2032, Whose purpose Will be more Request For Comments (RFC) 1889. An H.323 terminal ence’s video, audio, and data portions. The gateWay’s trans streams, though, it speci?es the User Datagram Protocol The present packetiZation discussion concerns itself With represents control information by Which, among other things, frame boundaries can be recogniZed. The precise bit allocation is determined during a session negotiation process among the involved videoconferencing terminals. In contrast, H.323 terminals employ the Real-time Trans mission Protocol (RTP) set forth in the Internet community’s as the protocol for directing the information to the desired application at the destination Internet address. For video (UDP), so FIG. 3 depicts the IP payload as a UDP datagram, Which includes a UDP header speci?ed in RFC 768. should not be confused With video frames, Which We Will hereafter refer to as “pictures” to distinguish them from transmission frames.) Each frame consists of one or more channels, each of Which consists of eighty octets of bits, and its ultimate inter-netWork address. For some parts of the videoconference information, RTP speci?es that the Trans port Control Protocol be used as the transport protocol, i.e., standards’protocols. Communications from H.320 terminals typically conform to the ITU-T H.221 standard, in accor dance With Which information travels in “frames” of multi header, speci?ed in RFC 791, for directing the datagram to 40 timestamp ?eld, Which is particularly relevant here. When information travels by Way of a packet-sWitched netWork, different constituent packets make their Ways to their com mon destination independently. That is, different packets can take different routes, so the times required for different packets to arrive at their respective destinations are not in general the same, and packets can arrive out of sequence or ference’s video portion. in time relationships that otherWise differ from those With Which their contained information Was generated. Moreover, The video bits are extracted from a succession of octets and concentrated into a stream that thereby contains only the the UDP sessions in Which the video data are sent typically H.221 transmission’s video part, Which Was encoded at the 45 are not the ones used to send the audio that is to be played source in accordance With ITU-T Recommendation H.261. With it. RTP therefore provides for a timestamp in each (Alternatively, it may have been encoded in accordance With a related recommendation, H.263. Although the present invention’s teachings are equally applicable to such streams, We Will concentrate on H.261 in order to avoid complicating 50 the presentation unnecessarily.) In accordance With H.261, packet to indicate the real-time relationships With Which the information is to be played. In contrast, although video arriving at the gateWay in an H.221 stream Will have been digitiZed and typically time division multiplexed, it Will have been sent over a circuit that stream is a sequence of error-correction-coded frames, sWitched channel, so a common frame Will contain both a of Which FIG. 2’s third roW illustrates one. video segment and the audio segment to be played With it. H.221-stream timing relationships are therefore implicit: the H.221 data stream coming into the gateWay needs no explicit timestamp and therefore has none. So the gateWay consults a local clock to provide the RTP-required timestamp as it Each frame begins With a synchroniZation bit (“S”) and a ?ll bit (“F”). The gateWay uses the synchroniZation bit in a manner described beloW to recogniZe the ECC-frame boundaries, and the ?ll bit indicates Whether, as is some times required, the frame contains no actual information but 55 assembles the outgoing packets. is being sent to meet certain system timing requirements. The ?ll bit is folloWed by a 492-bit data or ?ll ?eld and an eighteen-bit ECC ?eld Whose contents are generated on the preceding 493 bits (i.e., on a bit group that excludes the synchroniZation bit) in accordance With a (511, 493) BCH code that H.261 speci?es. For forWarding into a packet-sWitched netWork, the gate Way discards the synchroniZation, ?ll, and ECC ?elds, as Well as any data ?elds identi?ed as being only ?ll, and Without more, though, it Would be complicated to play the 60 resultant timestamped information. If no notice Were taken of the actual contents of the data stream being packetiZed, for example, a single packet could contain parts of tWo different video pictures, so parts of the same picture Would have the same timestamp, While different parts of the same 65 picture could have different timestamps. To avoid this, the gateWay described here monitors the data stream for picture boundaries, as Will noW be described. 6,111,924 5 6 FIG. 2’s fourth through seventh roWs depict the structure that the incoming data stream uses to represent successive video pictures in accordance With H.261. The fourth roW illustrates a data-stream portion covering a single vide tion admits of a variety of data-compression techniques.) FIG. 2’s sixth roW shoWs that each macroblock has its oWn header, and FIG. 9 illustrates that header’s structure. The header’s MacroBlock Address (MBA) ?eld contains a variable-length code for the difference betWeen the current macroblock’s address and that of the previously sent GOB’s block (since not all macroblocks are sent for every GOB). The MTYPE ?eld speci?es the manner in Which the current macroblock’s data Were encoded; the data may be the result of comparing the raW data With a neighbor macroblock’s picture. It shoWs that the portion begins With a header, and FIG. 5 illustrates that header’s structure. The header ?eld of importance here is the Picture Start Code (PSC). For H.261 streams, that ?eld value is alWays 00010H, a sequence that cannot occur elseWhere in the data stream. To avoid having packets straddle picture boundaries, data, With the corresponding data from a previous picture, the gateWay begins a neW packet Whenever it encounters the PSC sequence. In the case of a packet containing the PSC sequence, the With ?ltered versions of either of them, etc. If an MQUANT ?eld is present, its contents supersede the default quantiZa tion that the GQUANT ?eld in the enclosing GOB’s header gateWay determines the timestamp simply by consulting the current local-clock output. But the length of a single-picture 15 speci?es. portion of the data stream typically exceeds the underlying protocol’s maximum-transmission-unit siZe, so the gateWay breaks a single picture’s data into multiple packets. For such The CBP ?eld speci?es the macroblock’s constituent “blocks” for Which the macroblock ?eld contains data. There are at most six such blocks. The ?rst four represent the packets, the timestamp entered is the same as that assigned luminance (Y) information from respective segments of a macroblock subregion divided as FIG. 10’s left rectangle to the last PSC-containing packet. The gateWay is also judicious in its selection of locations illustrates. The ?fth and sixth block ?elds represent more at Which it breaks a picture’s data into packets. The reason sparsely sampled blue (CB) and red (CR) color-difference for this can be appreciated by revieWing the picture data’s values covering the Whole macroblock region, as FIG. 10’s center and right rectangles indicate. Each block ?eld’s ?ner structure. As FIG. 2’s fourth roW indicates, the picture data’s body portion is divided into “groups of blocks” 25 contents are coefficients of an 8x8 discrete cosine transform of the data that remain after any subtraction by previous (GOBs). H.261 speci?es a Common Intermediate Format (CIF) into Which, say, an originally 525- or 625-line (or other) source representation is resampled to generate the H.261 representation, and each GOB represents one-tWelfth of the resultant picture area, in a spatial relationship that In short, the data interpretation for each macroblock depends greatly on its header and that of the enclosing GOB. This Would complicate decoding at the receiving end if image data. FIG. 6 illustrates. H.261 also speci?es an alternative, more packets Were alloWed to start betWeen block or macroblock sparsely sampled “QCIF” format. When QCIF is employed, boundaries; the decoding of a given packet’s contents Would each GOB represent one-third of the total picture area. And the present invention’s principles are applicable to other formats, too, such as those that H.263 speci?es. headers. To avoid such a complication, the illustrated gate have to aWait reception of packets containing the requisite 35 FIG. 2’s fourth roW depicts the GOB ?elds as being unequal in length. This is because the degree of H.261 speci?ed data compression depends on the source picture’s data redundancy, Which can differ from region to region. Way begins packets only at GOB boundaries. Although FIG. 1 depicts the gateWay 22 as separate from the MCIJs 20, the gateWay can be implemented in an MCU, such as the MCU illustrated in US. Pat. No. 5,600,646 to FIG. 2’s ?fth roW shoWs that each GOB ?eld has its oWn header, and FIG. 7 illustrates a GOB header’s structure. The Polomski, Which We hereby incorporate by reference. FIG. 11 depicts the major constituents of such an MCU adapted in accordance With the present invention’s teachings. Par GOB header begins With a Group-of-Blocks Start Code ticipants in a teleconference employ codecs 38 to generate audio, video, and/or data signals that they send over various (GBSC). That code’s value is 0001 H, a sequence that cannot occur elseWhere (except in the PSC). The gateWay described 45 here monitors the data stream for GBSC sequences and begins a neW block only at such sequences. To appreciate Why it does so, We revieW the rest of the data stream’s structure. The GOB’s Group Number (GN in FIG. 7) folloWs the GBSC code and speci?es the GOB region’s position in accordance With the FIG. 6 scheme. Next is a default quantiZation value GQUANT, Which in?uences the con unit 46 performs the distribution by obtaining signals from tained data’s interpretation by specifying the magnitude intervals at Which the values Were quantiZed. The header communications media 40a—c to the MCU for appropriate distribution to other participants. FIG. 11 adapts the Polomski arrangement so that it can communicate not only over circuit-sWitched networks, such as T1 or ISDN, but also packet-sWitched netWorks, such as the Internet. NetWork interface units 42a—c perform the loW-level processing necessary to extract the information from respective media and apply it to respective channels on the netWork or PCI/ISA bus 44 or 56. A bridge processing 55 various of that bus’s channels and applying appropriately so-called macroblocks, Which correspond to subregions processed versions thereof to others of its channels for re-transmission. The signals to be transmitted may have resulted from the Within the GOB regions. FIG. 8 illustrates a single-GOB bridge processing unit 46’s having ?rst exchanged the may additionally contain further, optional ?elds. FIG. 2’s ?fth roW shoWs that a GOB is divided into picture segment’s division into subregions represented by received signals over an interprocessor bus 48 With a video respective macroblocks. Although there are thirty-three such subregions in a GOB-represented region, FIG. 2 depicts someWhat feWer macroblocks than that, because macrob processing unit 50 or other data processing unit 52 in order, locks that are redundant in vieW of previous macroblocks can be omitted in accordance With H.261. (As those familiar mon picture. In accordance With the present invention, moreover, the bridge processing unit 46 may perform an inter-protocol translation, as Will be further described beloW. A host processing unit 54 employs an Industry Standard With the H.261 speci?cation Will recogniZe, previous may have either a temporal or a spatial meaning; that speci?ca say, to mix tWo sources’ information into a composite signal so that tWo participants’ images are combined into a com 65 6,111,924 7 8 Architecture bus 56 to exercise control over the various routine forms a longer, thirty-tWo-bit alignment sequence consisting of four repetitions of H.261 ’s eight-bit pattern. It elements, partially in response to information received from the netWork interface units 42a—c. As the Polomski patent describes in more detail, the core then conceptually loads the contents of FIG. 13’s bit buffer 84 into FIG. 14’s 16K-bit-long (conceptual) shift register 90 and, as thirty-tWo (again, conceptual) XOR gates 92 of the bridge processing unit 46 is a group of digital signal processors (DSPs) 58 shoWn in FIG. 12. The DSPs operate in pairs Whose constituent processors are labeled “DSPl” and “DSP2.” Those labeled “DSPl” primarily perform aspects of interfacing With the netWork bus 44, While those labeled “DSP2” perform processing more closely connected 10 With transfers over bus 48 to other processor pairs. Each pair is associated With a respective conference participant. A respective static RAM 60 is associated With each DSP pair and provides fast shared-memory communication betWeen the pair’s constituent DSPs. It also provides shared 15 indicate, compares every 512th bit With a corresponding bit of the long alignment sequence. If all the bits match, a NOR gate 94 produces a true output. A true output is a relatively reliable indicator that the BCH-frame boundaries have been found; the probability is less than one in four billion that thirty-tWo randomly chosen bit values Will form four successive repetitions of the alignment pattern. So the steady-state mode of FIG. 13’s process 88 can begin if NOR gate 94’s output is true. OtherWise, the synchroniZation process repeatedly mon control DSP 62, Which performs higher-level, less advances the shift register’s contents by one bit and repeats the comparison until it ?nds a match. FIG. 14 shoWs the time-sensitive tasks. That processor in turn has access to a shift-register state after n such advances. memory communication betWeen the DSP pair and a com further memory 64, to Which the host processor 54 (FIG. 11) also has access by Way of an ISA interface unit 66. The Polomski patent describes most of these and other compo nents’ operations in detail, so We Will describe only of the gateWay-function programming that We have added. FIG. 13 illustrates the gateWay-function data ?oWs. Blocks Within dashed lines 70 represent processes that a 20 of FIG. 1. Dedicated-circuitry use Would not take advantage 25 FIG. 12 DSP pair’s “DSPl” member performs. Process 72 is a conventionally performed operation of determining Where the 80n-octet H.221 frame boundaries occur. Once those boundaries are located, one can determine the bit locations of command and capacity codes (not shoWn in FIG. 2’s ?rst roW), some of Which specify the video infor Unfortunately, it usually is not practical to obtain this reliability by the straight-forWard approach that the bit stream organiZation suggests, i.e., by implementing the synchroniZation process in dedicated logic circuitry like that 30 of the signal-processing circuitry that the system Will already have for other purposes. In the absence of the present invention’s teachings, on the other hand, an algo rithmic approach, Which is necessary if the system’s general purpose digital-signal-processing circuitry is to be employed, could seriously detract from that circuitry’s abil ity to perform its other tasks. But We have found that We can so reorder the synchroniZation process’s operations as to reduce this burden to a small fraction of What it Would be otherWise. FIG. 15 depicts the Way in Which We achieve this can generate and place into the respective RAM 60 (FIG. 12) a table 76 containing masks and related information that a 35 reduction. de-multipleXing operation 78 uses to perform the video FIG. 15 illustrates a synchroniZation routine that FIG. stream extraction that the transition betWeen FIG. 2’s ?rst 13’s process 88 calls periodically until it achieves synchro and second roWs represents. Dashed lines 80 indicate that a niZation. As blocks 98 and 100 indicate, the synchroniZation “DSP2” member of a DSP pair performs the de-multipleXing routine ?rst determines Whether FIG. 13’s bit buffer 84 mation’s bit positions. From this information a process 74 operation 78. Dashed lines 82 indicate that their included processes are performed by FIG. 12’s control DSP 62 or 40 contains 512 thirty-tWo-bit Words, i.e., enough bits to ?ll FIG. 14’s conceptual shift register 90. If not, the synchro FIG. 11’s host processor 54. In particular, DSP 62 performs niZation process stops until its neXt invocation. But once the capability/command processing 74. The demultipleXing process produces video, audio, and data steams that undergo various processing before being into the bit buffer 84, the FIG. 15 routine advances to step FIG. 13’s demultipleXing process 78 has placed enough bits present purposes, We Will consider only the video stream’s 102, in Which it obtains a value GetPtr from a control structure in buffer 84. To eXplain GetPtr’s function, We digress to a discussion of bit buffer 84, Which is imple processing. That processing places the stream represented mented as a circular buffer in a block of FIG. 12’s RAM 60 45 placed in their respective IP datagrams for transmission. For by FIG. 2’s second roW into a bit buffer 84. During steady state operation, a BCH frame-checking process 88 veri?es that the synchroniZation bits are Where they are eXpected to memory assigned to that purpose and accessed by reference 50 be and checks the ECC (FIG. 2’s third roW). If all is in order, it then discards the contents of the sync, ?ll-indicator, and ECC ?elds, as Well as any data-?eld contents tagged by the ?ll-indicator ?eld as ?ll, and places the remaining bits into a successor bit buffer 89 (FIG. 13). Initially, though, process 88 does not “knoW” Where to look for the BCH ?eld boundaries. So before it begins its steady-state function, it performs a synchroniZation routine Whose principle FIG. 14 depicts conceptually. As Was to the associated control structure. We call buffer 84 a bit buffer because it is an object implemented by methods that calling processes can use to add or remove numbers of bits that do not constitute Whole numbers of memory Words. This individual-bit approach 55 employs a control-structure location PutWord in addition to the main bit-buffer storage locations. Received bits are Written into a main bit-buffer memory location only When enough bits have been received to make a complete memory Word. In the interim PutWord receives neWly received bits in 60 its leftmost unoccupied bit positions. explained above in connection With FIG. 2’s third roW, a More speci?cally, the buffer’s bit-storage method takes as synchroniZation (S) bit precedes each 511-bit (data plus tWo of its arguments the number n of bits to be stored and ECC) BCH code Word. In accordance With H.261, succes an unsigned thirty-tWo-bit Word Bits Whose n right-most bit positions contain the bits to be stored and Whose other bit sive frames’ synchroniZation bits-i.e., a ?rst synchroniZation bit and every 512th data-stream bit thereafter-repeatedly form a frame-alignment sequence SOS1S2S3S4S5S6S7= (00011011). To detect this sequence, the synchroniZation 65 locations contain Zeroes. As FIG. 16’s blocks 104 and 106 indicate, that routine begins by subtracting n from a control structure value PutRemain, Which before the subtraction