throbber
(12) United States Patent
`Riddle
`
`I lllll llllllll Ill lllll lllll lllll lllll lllll 111111111111111111111111111111111
`US006175856Bl
`US 6,175,856 Bl
`*Jan. 16,2001
`
`(10) Patent No.:
`(45) Date of Patent:
`
`(54) METHOD AND APPARATUS FOR DYNAMIC
`SELECTION OF COMPRESSION
`PROCESSING DURING TELECONFERENCE
`CALL INITIATION
`
`(75)
`
`Inventor: G uy G. Riddle, Los Gatos, CA (US)
`
`(73) Assignee: Apple Computer, Inc., Cupertino, CA
`(US)
`
`( * ) Notice:
`
`This patent issued on a continued pros(cid:173)
`ecution application filed under 37 CPR
`1.53(d), and is subject to the twenty year
`patent term provisions of 35 U .S.C.
`154(a)(2).
`
`Under 35 U.S.C. 154(b), the tenn of this
`patent shall be extended for 0 days.
`
`(21) Appl. No.: 08/727,824
`
`Sep. 30, 1996
`
`(22) Filed:
`(51) Int. Cl.7
`........................ .. . G06F 15/16; G06F 15/177
`(52) U.S. Cl .
`............................................. 709/204; 709/227
`(58) Field of Search ......................... 395;200.34, 200.Gl,
`395/200.16, 330, 705, 706, 200.36, 200.75;
`354/284.4, 281.3, 514; 709/ 222, 227, 228,
`230, 220, 204, 231, 263; 340/825.5, 825.44
`
`(56)
`
`References Cited
`
`U.S. PA1ENT DOCUMENTS
`
`5,546,395 * 8/1996 Sharma et al. ......................... 370/84
`5,557,749 " 9/1996 Norris ............................. 395/200.18
`S,587,928 * 12/1996 Jones el al. ...................... 364/514 A
`5,600,646 " 2/1997 Polomski ............................. 370/263
`5,621,894 * 4/1997 Menezes et al. ................ 395/200.12
`5,742,773 * 4/1998 Blomfield-browo et al. ....... 395/200
`5,859,979 * 1/1999 Tuog et al. ..................... 395/200.58
`
`OTHER PUBLlCPJlONS
`
`International Telecommunication Union, "Draft ITU-T Rec(cid:173)
`ommendation H.245, Line Transmis.sion on Non-Telephone
`Signals; Control Protocol For Multimedia Communicatioa,"
`Nov. 2, 1995, pp. 1- 189.
`
`* cited by examiner
`
`Primary Examiner-Glenton B. Burgess
`Assi5tant Examiner-Tod Kupstas
`(74) Attorney, Agent, or Finn-Blakely, Sokoloff, Taylor &
`Zafmao
`
`(57)
`
`ABSTRACT
`
`A digital processing system and method which controls
`selection of a compressor in a communication system. In one
`embodiment, the method comprises receiving at the digital
`processing system information from a communication port,
`which information identifies decompression processing
`capabilities at a remote processor, and selecting in response
`to the information a particular compression process for use
`in compressing data for transmis.5ion to the remote proces(cid:173)
`sor.
`
`5,206,934 * 4/1993 Naef, III .............................. 395/200
`
`21 Claims, 6 Drawing Sheets
`
`20
`
`l
`
`.,..
`10
`
`'\
`30
`
`IPR2016-01710
`UNIFIED EX1003
`
`

`
`U.S. Patent
`
`Jan.16,2001
`
`Sheet 1of6
`
`US 6,175,856 Bl
`
`20
`"-- 23 J
`
`"-- 21
`
`15
`
`.,,.
`
`10
`
`FIG. 1
`
`' 30
`
`

`
`U.S. Patent
`
`Jan. 16,2001
`
`Sheet 2 of' 6
`
`US 6,175,856 Bl
`
`L(')
`L(')
`....-
`
`\
`
`(..)
`l.t')
`l.t')
`
`.a
`LO
`LO
`..-
`
`"C
`
`~"-1
`..-
`
`0
`L(')
`..-
`
`\
`
`.c
`0
`L(')
`..-
`
`I
`
`II
`
`L(') ca
`
`....--L(')
`~~
`c;
`tjgg!I
`g oo 0 o
`o oogo
`0 00 0
`o o0o0
`g aao0
`0 aao0
`a oao
`o oaoo0
`o goo00
`oo 0
`
`cJoO
`
`Q)
`LO
`l.t')
`....-
`
`0
`I'-..-
`
`Q,)
`0
`l.O
`
`(J oo
`
`r11g!I
`g oo0o
`o oogo
`o oo a
`o ooDa
`8 oa0a
`0 00 0
`o OoO
`0
`o a0ao0
`o gaooa 0 0
`
`0
`0
`..-
`
`J
`
`N
`•
`C!J
`~
`
`-
`
`

`
`U.S. Patent
`
`Jan.16,2001
`
`Sheet 3 of 6
`
`US 6,175,856 Bl
`
`FRAME
`DISPLAY ¢ BUFFER <;:::==
`321
`.3.1.il
`
`/150c
`
`,-----
`
`---KEYBOARD
`
`CURSOR
`CONTROL
`
`32a
`
`HARD
`COPY
`DEVICE
`3_24
`
`MAIN
`MEMORY
`
`.__,,_,lp!llli3_o_4~
`
`" . ~
`
`.
`
`.
`
`___,
`
`k'/'-. _
`•
`
`I
`I
`I
`I
`K""A~ -~
`I
`~
`-;-v'
`I
`I
`I
`I
`I
`I
`
`READ ONLY
`MEMORY
`
`3.0.6
`
`MASS
`STORAGE
`DEVICE
`NZ
`
`. )'
`
`BUS
`
`'
`
`7
`
`301
`
`PROCESSOR
`
`~150
`
`NETWORK
`CONNECTOR K/'-. _
`.
`
`ill
`
`____.
`
`SOUND
`OUTPUT
`DEVICE
`m
`
`VIDEO
`INPUT
`DEVICE
`329
`
`SOUND
`INPUT
`DEVICE
`.32.6
`
`K"A~-~
`..
`
`)
`
`)
`
`COMM
`DEVICE
`
`.
`
`NETWORKING MEDIUM
`
`FIG. 3
`
`

`
`U.S. Patent
`
`Jan.16,2001
`
`Sheet 4 of 6
`
`US 6,175,856 Bl
`
`APPLICATION PROGRAM
`
`CONFERENCE LAYER
`
`TRANSPORT LA YER
`
`NETWORK LAYER
`
`401
`
`400
`
`402
`
`403
`
`160
`(
`
`170
`
`FIG. 4
`
`

`
`U.S. Patent
`
`Jan. 16,2001
`
`Sheet 5 of 6
`
`US 6,175,856 Bl
`
`Begin Teleconference (or if there is an existing
`teleconference add new member or delete
`old member)
`
`502
`
`.,
`
`506
`Will this
`processor
`transmtt
`data?
`
`N
`
`y
`
`1 I
`
`Determine a list of
`compressors that the
`processor can use to
`compress data. 50.e.
`
`•
`
`Assign a ranking to each compressor
`available to the processor, indicating
`the relative efficiency, bandwidth, or
`proportional reduction in data word-
`length or other indicator of
`compressor 'goodness' expected to
`be achieved when the corresponding
`compressor is used. filQ
`
`!
`530
`~
`l_....
`~
`
`'
`Determine a list of
`decompressors available
`to this processor~
`
`,,
`Make list available
`to other processors
`in the network ~
`
`~
`t
`l 525
`~_.../
`t
`t
`l
`'
`t
`~
`
`...
`-
`
`'
`Issue request to other
`processors in the network for
`information identifying a list
`of decompressors available
`to the other processors filQ
`
`'
`Extract, from information that is
`received, a list of
`decompressors available to
`each of the other processes in
`the teleconf ere nee fil8
`
`'
`
`-
`Select the 'best' codec,
`according to the ranking, that -
`can be understood by all
`addressed recipients. fil
`
`Store the selcted best codec.
`;. where other routines can find
`the codec. ill
`
`FIG. S
`
`

`
`U.S. Patent
`
`Jan.16,2001
`
`Sheet 6 of 6
`
`US 6,175,856 Bl
`
`~-----------------~
`I
`
`SENDER/INITIATOR
`
`603
`
`604
`
`610
`
`620
`
`,--------------,
`:
`RECEIVER
`63 31
`RECEIVER'S CODE
`\.f FOR COMPRESSORS
`AND
`DECOMPRESSORS
`AT RECEIVER
`
`I
`I
`I
`I
`I
`I
`
`CODE FOR
`COMPRESSORS
`AND
`DECOM PRESSORS
`
`LIST OF
`COMPRESSORS
`AVAILABLE ON
`SENDER
`
`(LIST OF
`DECOMPRESSORS
`AVAILABLE ON
`SENDER)
`
`SELECTING CODE
`AND
`RANKING CODE
`I REQUESTING CODE
`
`(SENDING CODE)
`
`605
`
`I
`I
`I
`I
`I
`I
`606 I
`I
`I
`I
`I
`I
`I
`
`~7 I
`
`I
`I
`I
`
`~8 I
`
`I
`I
`I
`I
`I
`I
`
`601
`
`619
`
`FIG. 6
`
`634
`
`I
`I
`I
`I
`I
`
`612
`
`LIST OF
`DECOMPRESSORS
`AVAILABLE ON
`RECEIVER
`------------
`(LIST OF
`COMPRESSORS
`AVAILABLE ON
`RECEIVER)
`
`(SELECTING CODE
`AND
`RANKING CODE)
`
`63~ (REQUESTING CODE) I
`63~ SENDING CODE
`
`I
`I
`I
`I
`63SV
`I
`I
`I
`636 I
`I
`I
`I
`
`I
`
`I
`I
`I
`
`630
`
`

`
`US 6,175,856 Bl
`
`1
`METHOD AND APPARATUS FOR DYNAMIC
`SELECTION OF COMPRESSION
`PROCESSING DURING TELECONFERENCE
`CALL INITIATION
`
`BACKGROUND
`
`5
`
`15
`
`2
`selected data compressor. A communication port is coupled
`to the selected data compressor to allow the selected data
`compressor to provide compressed data for transmission.
`A method, according to one aspect of the present
`invention, comprises receiving, at a transmitting processor,
`information from a communication medium which provides
`an identification of decompression processing capabilities at
`a receiving processor and selecting, at the transmitting
`processor, a particular compression process for use in com-
`10 pressing and transmitting data from the transmitting proces(cid:173)
`sor to the receiving processor through the communication
`medium.
`In one embodiment, the communication medium may be
`considered to include a transmitting modem to phone-line to
`receiving modem connection without any conventional net(cid:173)
`working systems. In another embodiment, the communica(cid:173)
`tion medium may be considered to include a network system
`of computers with or without phone-line connections.
`Another aspect of the invention comprises a computer
`readable medium, containing executable computer program
`instructions, in a digital processing system. The instructions
`when executed in the system cause the system to perform the
`steps of receiving at the system information from a com(cid:173)
`munication port which identifies decompression processing
`capabilities and selecting, in response to the information, a
`particular compression process for use in compressing data
`for transmission. The particular compression process will
`typically be compatible with at least one of the identified
`decompression capabilities.
`It will be appreciated that video compressors are usually
`different than audio compressors. Therefore, the compressor
`negotiation process of the present invention is typically
`repeated twice. That is, a process according to the invention
`is performed for video data, and then another process
`according to the invention is performed for audio data. The
`process may also be repeated again if other data (e.g., a text
`file), to be compressed by yet another compressor, is trans(cid:173)
`ferred between the participants in a teleconference. It will
`also be appreciated that these negotiation processes may be
`performed substantially in parallel in time or serially. For
`example, the receiving processor may transmit information
`concerning video and audio decompressors at the same time
`or at different times. If data files (e.g., a text file) are to be
`transferred, the receiving processor may also transmit infor(cid:173)
`mation concerning decompression capabilities for such data
`files. It will be appreciated that the various compressors may
`be categorized into two categories: lossy and lossless. The
`video and audio compressors are often lossy, and the com(cid:173)
`pressors for data files, such as text files, are lossless.
`
`In teleconferencing applications between computers that
`are coupled by a networking or communication medium,
`data is generally compressed. Data is compressed for a
`number of reasons, including bandwidth limitations in the
`networking or communication medium, the information rate
`of the processors providing data to the medium, and the
`number of processors (and by the number of processes on
`each processor) trying to send data to the medium simulta-
`neously.
`Unfortunately, a large number of compression algorithms
`and processes are available, complicating data communica(cid:173)
`tion. Because the computer systems which are coupled for
`teleconferencing need not be of the same type, nor even
`operate on the same platform, and frequently do not have
`common teleconferencing applications or other telecommu(cid:173)
`nication applications available thereon, compatibility prob(cid:173)
`lems frequently arise. Selecting a data compression process
`or algorithm where several are available, that is compatible
`with at least one decompression process or algorithm on a
`remote processor can be problematic, especially given the
`fact that by definition data communication between the
`computer systems is not yet possible. Selecting a codec, or
`"compression/decompression" pair of processes, on remote
`processors can thus be difficult.
`When an application detects a problem, in that the data
`being received is compressed and that no decompression
`algorithm or process is available on the current processor to
`decompress the data, the application generally either 35
`terminates, or alternatively, a receiving processor on which
`an application has difficulty decompressing data may send a
`signal to the transmitting processor indicating that a problem
`has been detected, and requesting that the transmitting
`processor switch to a different compression algorithm. Thus, 40
`the transmitting processor will switch to different compres(cid:173)
`sion process and the receiving processor will determine if
`the received data can be decompressed.
`Although this hit-and-miss approach to codec negotiation
`is occasionally successful, the options become unmanage- 45
`able as the number of codecs or the number of parties
`involved in a teleconference increases.
`Therefore, a need has arisen for an automatic codec
`selector that determines what decompressors are available
`on each message recipient, determines what compressors are 50
`available on the current transmitting processor, and selects
`the best codec possible. The need is also arisen for a codec
`selector that automatically changes from one codec to
`another as new members join, or old members leave, a
`teleconference.
`
`20
`
`25
`
`30
`
`SUMMARY OF THE INVENTION
`An apparatus, according to one aspect of the present
`invention, comprises at least two data compressors, each of
`which compresses data from a transmitting processor
`according to a particular compression process, and a selector
`which is coupled to receive information from a communi(cid:173)
`cation medium. The selector receives information from a
`receiving processor and selects one of the two data com(cid:173)
`pressors based upon the information received from the
`receiving processor. The selector is typically coupled to at
`least one of the data compressors in order to select the
`
`55
`
`BRIEF DESCRIPTION
`FIG. 1 shows a number of computer systems coupled via
`a network each have a teleconferencing application running
`thereon.
`FIG. 2 shows one example of networked systems, spe-
`cifically showing two systems on such a network or com(cid:173)
`munication medium.
`FIG. 3 shows the system components of a general com(cid:173)
`puter system, having a number of component devices,
`60 coupled to a communication medium (e.g., a networking
`medium).
`FIG. 4 shows various levels of abstraction which describe
`the operation of codec selection, which is largely invisible to
`the user and to the higher levels of processing, for example
`65 the application.
`FIG. 5 shows a method according to one embodiment of
`the present invention.
`
`

`
`US 6,175,856 Bl
`
`3
`FIG. 6 shows such an embodiment of a computer readable
`medium containing a set of program instructions that, when
`executed by a digital processing system, cause the system to
`perform steps according to one embodiment of the present
`invention.
`
`DETAILED DESCRIPTION
`
`The present invention will be understood more fully from
`the detailed description given below and from the accom(cid:173)
`panying drawings of various embodiments of the invention,
`which, however, should not be taken to limit the invention
`to the specific embodiments, but are for explanation and
`understanding only. Specific circuit devices, components,
`and processes and numerous details such as specific com(cid:173)
`puter architectures, etc. are set forth in order to provide a
`thorough understanding of the present invention. In other
`instances, well-known structures and devices and processes
`are shown in block diagram form, rather than in detail, in
`order to avoid obscuring the present invention. However, it
`will be apparent to one of ordinary skill in the art that the
`present invention may be practiced without these specific
`details. In the present description, the terms "computer
`system", "work station", "machine", and "node" will be
`used interchangeably so as not to obscure the present
`invention needlessly. It will be understood that any of these
`may be replaced with a plurality thereof, or may be replaced
`with other intelligent systems such as servers, remote
`machines. Computer systems, servers, work stations, and 30
`other machines may be connected to one another across a
`communication medium including, for example, a network
`or networks. For simplicity of explanation, the term "com(cid:173)
`munication medium" refers to any medium for communi- 35
`eating including conductors (e.g., common carrier telephone
`lines) or electromagnetic transmissions and includes simple
`point to point systems (e.g., a first modem coupled to a
`telephone line which is coupled to a second modem) or
`complex systems where communications originate from a 40
`computer in a first LAN (Local Area Network), transit
`through router systems and/or gateway systems, to a second
`LAN. The term communication medium also refers to the
`network of networks referred to as the Internet.
`This disclosure contains copyrightable material which is
`reserved to the assignee of the present invention and is
`subject to copyright protection. The owner of this material
`has no objection to the facsimile reproduction by any one of
`the patent disclosure, as it appears in the Patent and Trade- 50
`mark Office patent files or records, but otherwise reserves all
`copyrights whatsoever.
`FIG. 1 shows three computer systems 11, 12, and 13 and
`a router 17 coupled to a network 10, and three computer 55
`systems 21, 22, and 23 coupled to another network 20, and
`another three computer systems 31, 32, and 33 coupled to
`another network 30.
`As shown in FIG. 1, a number of computer systems
`coupled via a network may each have a teleconferencing
`application running thereon. A teleconferencing application
`15 running on one computer system 12 sends teleconfer(cid:173)
`encing messages over the networks to the teleconferencing
`applications running on the other computer systems 22 and
`33 that are participating in the same teleconference. One
`computer system on a network may have running thereon a
`
`20
`
`10
`
`4
`teleconferencing application that is engaged in more than
`one teleconference simultaneously. Some computer systems
`on the networks are not engaged in any teleconferencing. As
`shown in FIG. 1, some computer systems or router systems
`5 are coupled to more than one network, such as router system
`17 and system 33; these computer systems or router systems
`can exchange information with other computer systems on
`each of the networks to which they are coupled, and may
`further serve as conduits (e.g., routers or gateways) by which
`computer systems on a first network can exchange informa-
`tion with computer systems on a second network. Some of
`the computer systems shown in FIG. 1 are personal com(cid:173)
`puters having only one user. Furthermore, some of the
`15 computer systems may be Macintosh computers, while
`others operate on non-Macintosh platforms.
`A network may be a local network connecting a few
`machines to one another, or a much wider network connect(cid:173)
`ing large numbers of different types of machines. Many
`networks, especially wide area networks, connect machines
`operating on different platforms with different operating
`systems and different microprocessors, but provide consis(cid:173)
`tent protocols to allow the machines to communicate. Vari-
`25 ous approaches to networking are known in the art, includ(cid:173)
`ing distributed networks and centrally administrative
`networks.
`FIG. 2 shows one example of two interconnected systems,
`specifically showing two systems coupled by a communi(cid:173)
`cation medium. Processors 150C and 155C are each con(cid:173)
`nected via a network adapter 160 and 165, respectively, to a
`network medium 170 which is a communication medium.
`The network medium 170 may be a digital bus, a video
`coaxial cable, a fiber optic cable, or other medium through
`which information may be transferred from one location to
`another and there may be intervening computer systems (not
`shown) which route or pass along the transmitted data. It
`will be understood upon reference to FIG. 2 that other
`arrangements are possible; for example, each of the proces(cid:173)
`sors 150C and 155C may be connected via other network
`adapters or other communication medium adapters to other
`network or communication media. Although reference is
`45 made to networks and network media, it will be apparent
`upon reference to the specification of the present invention
`that other communication media such as a telephone line or
`other link may be used. It will also be appreciated that the
`two systems each typically include at least one communi(cid:173)
`cation port which is used to couple its computer system to
`the communication medium. A communication port is typi(cid:173)
`cally an interface such as an Ethernet adapter or token ring
`adapter or "card" or an RS-232 interface (for connection to
`a modem); other types of interfaces which may be used as
`a communication port will be appreciated by those skilled in
`the art.
`Each of the computer systems (or digital processing
`systems) shown in FIG. 2 has a video monitor such as 150D
`60 and 155D, a video input such as 150A and 155A, an audio
`input such as 150B and 155B, a keyboard input (155e or
`150e) and a mouse (150/ or 155j), and possibly other
`peripheral input/output devices connected thereto. Com-
`65 puter systems such as 150 and 155 may connect to a number
`of network media having differing types of media substrates,
`and further having different network protocols. Processor
`
`

`
`US 6,175,856 Bl
`
`10
`
`5
`150C and 155C each display images on the video monitor
`150D and 155D, respectively, and receive inputs from other
`peripherals. Processors may also be running computer
`programs, including application programs and transport
`layer programs, that may call one another and serve one
`another, exchanging data, addresses, and control signals.
`FIG. 3 shows the system components of a general com(cid:173)
`puter system, such as the system 150, having a number of
`component devices.
`As shown in FIG. 3, a processor 302 is connected via a
`system bus 301 to a main memory 304, a read only memory
`306, and a mass storage device 307. The main memory may
`be a volatile memory array composed of dynamic random
`access memory. The read only memory 306 may be com- 15
`posed of a CD ROM, an initialization cache, erasable
`programmable read only memory, EEPROM, flash memory,
`or other read only memories. The mass storage device 307
`may be configured as a disk drive writing to, and reading
`from, hard disks, floppy disks, or other storage devices. The
`processor 302 may be a Power PC microprocessor or an Intel
`Pentium microprocessor. Processor 302 may have a cache,
`either a write back or read through configuration, storing
`frequently used values in a static random access memory or
`other memory array, the cache in some configurations being
`coupled directly to main memory 304. Various other intel(cid:173)
`ligent devices may be connected to the bus 301, including
`direct memory access devices.
`Also shown in FIG. 3, various peripherals exchange
`information via bus 301 with the processor 302, main
`memory 304, read only memory 306, and mass storage
`device 307. These peripherals include a display 321, gen(cid:173)
`erally a video monitor or LCD. A keyboard 322 is also 35
`coupled to the bus 301, permitting alphanumeric entry. A
`cursor control 323 coupled to the bus 301 may be configured
`as a mouse or track ball. A sound output device 328, also
`coupled to the bus 301, may be configured as a loud speaker
`or a number of loud speakers. A video input device 329 may
`be configured as a video camera, a scanner, a fax input, or
`similar device, and is coupled to the processor 302 via bus
`301. A sound input device 326, also coupled to the bus, may
`be configured as a microphone or a sound synthesizer, or
`may be a telephone connector. Finally, a communication
`device 327, also coupled to the bus 301, allows communi(cid:173)
`cation between any of the above devices and the network
`medium 170 via the network adapter 160. It will be recog(cid:173)
`nized that communication device 327 could be a modem, or 50
`any network interface device, including a token network
`interface device or other FDDI device. It will also be
`apparent upon reference to the specification herein described
`that the communication medium may be any communication
`link, such as a telephone line or other link, and that the
`system shown in FIG. 3 may be coupled through the
`communication device 327, which may be a modem, to
`another system not shown in the figure. In some
`embodiments, the networking medium is a digital commu(cid:173)
`nication medium, allowing high speed digital communica(cid:173)
`tion between computer systems over the network.
`A number of human users are collectively engaged in a
`teleconference using at least two systems such as 150 and
`155. The users may be coworkers sharing work-related
`information, friends enjoying a personal conversation, or
`
`6
`any other group of individuals discussing a subject of
`common interest. It will be apparent that, although human
`users are herein described, the computer systems may be
`servers, automatic database systems, control systems, or any
`5 other system capable of receiving and/or sending data.
`At each computer system in one embodiment, a user
`selects a teleconferencing application. In one example, each
`of the teleconferencing applications sends and receives
`sound, video, and other data. In other examples, sound-only
`teleconferencing applications may be used, for example to
`exchange voice-only information, or to broadcast speeches,
`lectures, or music. In still other examples, control-only
`signals may be exchanged, such as in simple white-board
`applications. Regardless of the situation, however, compres(cid:173)
`sion of data can increase the speed, reliability, and
`performance, while reducing bit-errors by allowing greater
`error correction and data rate.
`At a first computer system, video data is compressed
`according to a first compression algorithm. As stated above,
`video data is compressed for a variety of reasons, including
`bandwidth constraints of the network and of the 1/0 sub-
`systems of the computer systems. The compressed video
`25 data is combined with other data (e.g., header data) into one
`data packet or several data packets. It will be recognized that
`the sound and other data may also be compressed, or may be
`in an uncompressed form. Each packet is addressed to each
`of the other computer systems having applications engaged
`in the same teleconference. Depending on whether a multi-
`cast feature is available, a separate packet may need to be
`sent to each recipient computer system, or it may be that a
`single packet can be received by more than one recipient.
`As shown in FIG. 4, various levels of abstraction describe
`the operation of codec selection, which is largely invisible to
`the user and to the higher levels of processing. In many
`embodiments of the present invention, applications do not
`become involved in codec selection; these processes occur at
`lower levels of management. Video and other data may be
`provided to a lower level process by an application, and the
`data are compressed by the lower level process into a packet,
`addressed to at least one recipient. In one embodiment, the
`45 audio and video data are processed by the conference layer
`400 and passed in a compressed format to the layers 402 and
`403 and then to the communication medium for communi-
`cation to a receiving processor.
`A distinction is made between teleconference initiation
`requests and packets of compressed data. Teleconference
`initiation requests are made by a first user using a telecon(cid:173)
`ferencing application running on a first computer system,
`generally over a network, to a second user on another
`55 (second) computer system. In most cases, the first user and
`the second user are individuals and are the only users on the
`respective computer systems. In other cases, (for example,
`university, government, or institutional settings) at least one
`of the computers is a main frame or other multi-user,
`60 multi-task computer system. Teleconferencing initiation
`requests are therefore addressed to individual users, seeking
`to establish a teleconference. However, once a teleconfer(cid:173)
`ence is established, teleconference data, including com-
`65 pressed data packets, are addressed to particular teleconfer(cid:173)
`encing processes running on a computer system. Therefore,
`in most embodiments, recipients are identified by addresses.
`
`20
`
`30
`
`40
`
`

`
`US 6,175,856 Bl
`
`10
`
`40
`
`7
`Once a teleconference is established, packets may be
`addressed over the network to any of the application-level
`teleconferencing processes running on any computer sys(cid:173)
`tems in the network. With multi-cast, packets may be
`addressed to more than one process at a time.
`The packet must be in a form that can be decompressed
`by the recipients. To be so decompressed, the packet must be
`compressed by the sender according to a compression for(cid:173)
`mula corresponding to a decompression formula available
`on the recipient. The pair of formulas are collectively the
`"codec," or compression/decompression, formulas.
`In some embodiments of the present invention, the send(cid:173)
`ing computer system has available to it more than one
`compression algorithm. In such cases, one embodiment of
`the present invention includes a step of ranking the com(cid:173)
`pression algorithms in an order of preference. The ranking
`generally is selected to maximize or minimize some value,
`bandwidth (data rate) being an efficient example where the
`highest data rate is ranked the highest. A teleconferencing
`application operating according to this embodiment of the
`present invention sends a packet compressed according to
`the best codec available at the sender (the process sending
`the packet) to all recipients (processes receiving the packet)
`in the teleconference. The "best" codec is the codec on the
`sending computer system that provides the greatest data rate,
`yet is decompressible on any and all packet recipients.
`Because some codecs and compression schemes are better
`(that is, have a faster data rate or a lower probability of bit
`error) than other codecs and compression schemes, each
`transmitting processor transmits at the best codec for which
`all intended recipients of the message can decompress. The
`codec thus selected is common to all recipients in the
`teleconference.
`In other embodiments, the sending computer system
`groups the recipients into two or more groups according to
`the best codec available in each group of recipients, and
`sends a separate packet to each group or to each computer
`system in each group according to the best codec available
`on all recipients in the group. The codec thus selected is
`common to all recipients in the group. The latter approach is
`also applicable when multiple networks are linked together, 45
`and recipients are not all on one network; this may be the
`case when some recipients are located with the sender on the
`same local-area network while others are remotely located
`across a wide-area network, or when an inter-bus exchange
`is needed to transfer information to some recipients. Since
`each network may have different bandwidth availability,
`different codecs for each network may be appropriate.
`According to some embodiments of the present invention,
`the consequent increase in available data rate made possible
`by an appropriate matching of compressors with decom(cid:173)
`pressors generally makes up for any added complexity in the
`initiation messages. Due to the large number of compression
`and decompression algorithms and processes available, most
`embodiments of the present invention include an initial
`exchange of information between the sender and the recipi(cid:173)
`ent of a packet containing compressed data. The exchange of
`information contains information pertaining to the selection
`of the best codec. In one embodiment of the present 65
`invention, an automatic codec selector receives information
`from each recipient and from this information determines a
`
`8
`list of decompressors available on each recipient member of
`a teleconference. The codec selector then eliminates from
`the list decompressors for which no compressor is available
`at the current processor. The sender ranks the compressors
`5 available at the sender after this elimination, from best to
`worst, according to some ordering preference. In one
`embodiment, this preference is overall data rate. Then the
`ranked list of compressors at the sender is compared or
`matched to the list of decompressors available on each
`recipient, and this comparison produces a ranked list of
`compressors for which there is a corresponding decompres(cid:173)
`sor on each recipient. The sender then transmits data com(cid:173)
`pressed according to the best compressor available on the
`15 sender for which there is a corresponding decompressor on
`each recipient.
`An embodiment of the present invention is further shown
`in FIG. 5. In this embodiment, processors having telecon-
`20 ferencing applications join an ongoing teleconference by
`exchanging information with processors already participat(cid:173)
`ing in the teleconference. The embodiment shown in FIG. 5
`is one example of a sequence of steps which are performed
`according to this example of the present invention. It will be
`25 appreciated that the various steps may be performed in a
`different sequence or certain steps may be omitted. For
`example, step 508 could be performed before step 502, and
`step 516 could be omitted. The embodiment shown in FIG.
`5 begins in step 502 in which the teleconference begins (or
`30 if a teleconference exists,

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket