US 20140359082A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2014/0359082 A1 Paris et al. (43) Pub. Date: Dec. 4, 2014

(54) SEEDING OF A WORKSPACE TO OPTIMIZE (52) vs. C]. CODEC OPERATIONS CPC ...... H04L 65/607 (2013.01); H04L 69/04 (2013.01) (71) Applicant: Centri Technology, Inc., Seattle, WA USPC ...... 709/219 (Us) (57) ABSTRACT (72) Inventors: Luis Gerardo Paris, Hershey, PA (US); Michael Patrick Mackey, Lake Stevens, Various embodiments are directed toward compressing and/ WA (US) or decompressing data communicated between one or more network devices (e.g., codec operations). In particular, (21) Appl. No.: 14/454,633 embodiments are directed towards improving codec perfor mance by seeding the computation workspace that may be (22) Filed: Aug. 7, 2014 used by various codec processors. The seeding data may be determined based on at least one characteristic of a particular Related US. Application Data codec and the characteristics of data that may be processed by (63) Continuation of application No. 13/ 909,921, ?led on the codec processor. Also, the codec processor may be Jun. 4, 2013, now Pat. No. 8,804,814. employed to generate data for the codec workspace based on the determined seeding data. Workspace data may be gener Publication Classi?cation ated by processing the seeding data with the same codec processor that is used for normal codec operations. The work (51) Int. Cl. space generated from the seeding data may be stored for H04L 29/06 (2006.01) future use, such as, when a matched data stream arrives.

124

126

Client (Wearable) Device Client Client (Desktop) Device (Handheld) Device Client (Tablet) Device

/ Enclosure of \ Enclosure of /’ ( Blade Servers \ Network Device Server /\ \ (Source Provider) Computers

Network Device / \ \ (Super Computer) / - q , \ Network

102 Patent Application Publication Dec. 4, 2014 Sheet 1 0f 12 US 2014/0359082 A1

f 100

124

126

Clzent _ (Wearable) Device Client Client (Desktop) Device (Handheld) Device Client (Tablet) Device

\ \ / " _‘ \ 104 \’ \_ \ 1/110’ “ \ \ e e \\é 116 ‘ \ \\ I \ € : // Enclosure of \\ . Enclosure of l' { Blade Servers \\ \\ Network Device Server /\ \ \ \ (Source Provider) Computers \ \\ I \ /

‘\ Network Device / \ Network Device 1’ (Source Provider) // ’ \\J\ “I, \ \\ _(Super Computer)I /, / c , \ _ , Network \ /~-/

1 02

I Fig. 1 Patent Application Publication Dec. 4, 2014 Sheet 2 0f 12 US 2014/0359082 A1

f 200

/ Rack ofBlade Sewers

Powersupply V -. > BladeServer N210 204W") i > BladeServer @212 InpuVOutput ‘ ‘ Interface ‘ V 206’“) < > Blade Server N214

Rack Logic 4 7 . 20w" ‘ Q

202% ‘ > Blade Server N216

Fig. 2A Patent Application Publication Dec. 4, 2014 Sheet 3 0f 12 US 2014/0359082 A1

'///,/*—————— 250 ~ Blade Server

Processor "\_/252 256 254 ’1 I r\) 30 l _ Input/Output / Memory Inte1face 258 \/ Operating System 3105 Ad 260 292

270 Data Storage AppliCdin?S \\] 280 processor 2 / D r W £52211” 74 J 98 mg “m Decompressor J 1 ry Storage / 276 J Workspace Input Stream F 284 294 J P1 / St B ‘ Processor 278 J ream u?ers Output Stream ’ J 286 _ Rmdflbll? Removable Storage

Fig. 23 Patent Application Publication Dec. 4, 2014 Sheet 4 0f 12 US 2014/0359082 A1

/~—~ 300

Client Device

302f Processor 328 304 l 2 | I . 346 Memory 330 Power — ProI ector ’\/ QtyO eratin Sistem 306 Su PP~11/ _ Dismay \3/50 BIOS 308 \/ 333/ Network _ d Data Storage , 310- ' 1n twill“ ‘ — Ke yp a \/352

s 1' D t 312 Processor 111 - 354 ee‘mg ‘1 a ’ ' Readable — ummator w V 334\/‘ Stationary - Workspace “\3/14 Storage _ Audio 356 Processor Inte'face ’\/ Stream Buffers ' 316 Readable V gaff Removable —__- GPS \3/58 320 Storage Applications ’\/ Open Air Input/Output — Gesture 360 Compressor/ , 322 338 -—~ 7 ’\_/ Decompressor \/ \f Interface Inte'fa“

Input Stream / \3/24 340\f C amends) ___W TemperatureIntmfuce \j362 342 Video Output Stream " 326 \f Interface — Haptic \/ ' “— Interface \3/64 Touch 34\4f Interface Pointng 366 Device ’\/ Interface

Fig. 3 Patent Application Publication Dec. 4, 2014 Sheet 5 0f 12 US 2014/0359082 A1

/” 400

Network Device

402\/\ Processor 428 404 i 2

Memory 430 power Operating System ’06 Supply m Dismay 450 , 408 \/ BIOS \/ 432 Network _ K b d 2 Data Storage \f lute ace w ey 0m \435

Seeding Data ,\ 414 Processor \/ 434 Readable Audio 456 /~ 416 \f Stationary Interface \/ Workspace \/ Storage Pointing r Stream Buffers ’\ 418 Processor Device '\4)’8 \/ 436 Readable _ Interface 420 \f Removable Applications /\] varage

Compressor/ ,\ 422 ‘ Decompressor \j at — 424 Input Stream /‘\/ 426 Output Stream ’A\/

Fig. 4 Patent Application Publication Dec. 4, 2014 Sheet 6 0f 12 US 2014/0359082 A1

inK as||\

@.mE Patent Application Publication Dec. 4, 2014 Sheet 7 0f 12 US 2014/0359082 A1

700

I;lI

71 2 J Workspace

Fig. 7A

700

Workspace

Fig. 7B Patent Application Publication Dec. 4, 2014 Sheet 8 0f 12 US 2014/0359082 A1

800

Workspace Fig. 8A

800

Workspace Fig. as Patent Application Publication Dec. 4, 2014 Sheet 9 0f 12 US 2014/0359082 A1

/ 900

V UNCOMPRESSED DATA > AVAILABLE AT INPUT \9/02 STREAM $05 GENERATE WORKSPA CE WORKSPA CE DA TA - - .. READY? BASED ON SEEDING __ DATA

CONIPRESS SOURCE DATA USING WORKSPACE AND SEEDING DATA IF APPLICABLE

V PROVIDE COMPRESSED 910 DATA TO OUTPUT STREAM \/

MORE DATA . _ _ 912

RETURN

Fig. 9 Patent Application Publication Dec. 4, 2014 Sheet 10 0f 12 US 2014/0359082 A1

1000 ( START } f

V coMPRESSED DATA AT \1902 INPUT STREAM

GENERATE WORKSPACE DATA 1006 BASED ON SEEDING \/ DATA l

PREPEND SEEDING DATA 1 012 TO O UTPUT STREAM /\/

1008 4' 1010 GENERATE DECOMPRESSED DATA USING WORKSPACE AND SEEDIN G DATA IF APPLICABLE

i PROVIDE DE C OMPRESSED DATA ’\1914 TO OUTPUT STREAM

YES MORE

. _ COMPRESSED __

Fig. 10 ...... Patent Application Publication Dec. 4, 2014 Sheet 11 0f 12 US 2014/0359082 A1

f 1100

V DETERMINE SEEDIN G DATA

V PROVIDE SEEDIN G DATA TO CODEC MODULE

V GENERATE WORKSPACE DATA

RETURN

Fig. 11 Patent Application Publication Dec. 4, 2014 Sheet 12 0f 12 US 2014/0359082 A1

Fig. 12A

Fig. 125 US 2014/0359082 A1 Dec. 4, 2014

SEEDING OF A WORKSPACE TO OPTIMIZE [0011] FIG. 4 illustrates a schematic embodiment of a net CODEC OPERATIONS work device; [0012] FIG. 5 illustrates a portion of a logical architecture [0001] This application is a continuation of US. patent for symmetrical codec operations in accordance with at least application Ser. No. 13/909,0921 ?led on Jun. 4, 2013 claim one of the various embodiments; ing the bene?t of the earlier ?ling date of which is hereby [0013] FIG. 6 illustrates a portion of a logical architecture claimed under 35 U.S.C. §119 (e) and which is further incor for generating workspace data for codec operations in accor porated herein by reference. dance with at least one of the various embodiments; [0014] FIGS. 7A-7B illustrate a portion of a logical archi TECHNICAL FIELD tecture for asymmetrical compressor operations in accor [0002] The present invention relates generally to data pro dance with at least one of the various embodiments; cessing operations, in particular, but not exclusively to com [0015] FIGS. 8A-8B illustrate a portion of a logical archi pression and decompression of data. tecture for asymmetrical decompressor operations in accor dance with at least one of the various embodiments; BACKGROUND [0016] FIG. 9 shows an overview ?owchart for a process for data compression operations in accordance with at least one [0003] Vast amounts of data are transmitted and received of the various embodiments; every day in a variety of contexts, from all manner of devices, [0017] FIG. 10 shows an overview ?owchart for a process including, mobile phones, personal computers, backend data for data decompression operations in accordance with at least servers, or the like. One major concern is the size of data one of the various embodiments; transmitted. Data transmitted from one endpoint to another [0018] FIG. 11 shows an overview ?owchart for a process may travel through a variety of intermediate networking hard for generating workspace data in accordance with at least one ware, such as routers, switches, servers, Internet service pro of the various embodiments; and viders (ISPs), and so forth. Each intermediate entity is [0019] FIGS. 12A-12B shows a portion of pseudo-code for affected by the size of the data, which consumes resources performing codec operations using workspace data generated such as, memory, CPU, network bandwidth, cache space, or from seeding data, in accordance with at least one of the the like. various embodiments. [0004] Data compression is designed to help alleviate these potential problems by reducing data size. Since bandwidth DETAILED DESCRIPTION and storage may be scarce resources for both analog and digital communication, the need for compressing information [0020] Various embodiments now will be described more to use less space is also a needed commodity. The goal of data fully hereinafter with reference to the accompanying draw compression is to represent the exchanged information in a ings, which form a part hereof, and which show, by way of more compact form that takes less space to store and less time illustration, speci?c exemplary embodiments by which the to transmit. A sender may compress data by noticing redun invention may be practiced. The embodiments may, however, dancies in the data, ?nding patterns in the data, and applying be embodied in many different forms and should not be a variety of other well-known compression techniques. A construed as limited to the embodiments set forth herein; receiver may employ shared knowledge about the compres rather, these embodiments are provided so that this disclosure sion method used to decompress the compressed data hack will be thorough and complete, and will fully convey the into an uncompressed form. Compression may occur at the scope of the embodiments to those skilled in the art. Among sender, at intermediate entities between the sender and other things, the various embodiments may be methods, sys receiver (e.g. TCP header compression), or anywhere else, in tems, media or devices. Accordingly, the various embodi the communication chain. Thus, it is in the consideration of at ments may take the form of an entirely hardware embodi least these issues that the following subject matter is directed. ment, an entirely software embodiment or an embodiment combining software and hardware aspects. The following BRIEF DESCRIPTION OF THE DRAWINGS detailed description is, therefore, not to be taken in a limiting sense. [0005] Non-limiting and non-exhaustive embodiments of [0021] Throughout the speci?cation and claims, the fol the present innovations are described with reference to the lowing terms take the meanings explicitly associated herein, following drawings. In the drawings, like reference numerals unless the context clearly dictates otherwise. The phrase “in refer to like parts throughout the various ?gures unless oth erwise speci?ed. one embodiment” as used herein does not necessarily refer to the same embodiment, though it may. Furthermore, the [0006] For a better understanding of the present invention, phrase “in another embodiment” as used herein does not reference will be made to the following Detailed Description, necessarily refer to a different embodiment, although it may. which is to be read in association with the accompanying Thus, as described below, various embodiments may be drawings, wherein: readily combined, without departing from the scope or spirit [0007] FIG. 1 illustrates a system environment in which of the invention. various embodiments may be implemented; [0022] In addition, as used herein, the term “or” is an inclu [0008] FIG. 2A shows a schematic drawing of a rack of sive “or” operator, and is equivalent to the term “and/or.” blade servers; unless the context clearly dictates otherwise. The term “based [0009] FIG. 2B illustrates a schematic embodiment of a on” is not exclusive and allows for being based on additional blade server that may be included in a rack of blade servers factors not described, unless the context clearly dictates oth such as that shown in FIG. 2A; erwise. In addition, throughout the speci?cation, the meaning [0010] FIG. 3 shows a schematic embodiment of a client of “a,” “an,” and “the” include plural references. The meaning device; of “in” includes “in” and “on.” US 2014/0359082 A1 Dec. 4, 2014

[0023] For example embodiments, the following terms are processor. It may be provided on either an input stream or an also used herein according to the corresponding meaning, output stream depending on the circumstances and/or the unless the context clearly dictates otherwise. direction of a communication ?ow. [0024] The terms “codec,” and “codec operations” as used [0034] The term “source stream,” as used herein, refers to herein, refers to methods and processes for compression and the original stream of data that awaits compression by the decompression of data. codec processor. In general, data from a source stream may be [0025] The term “asymmetrical codec,” as used herein provided to a codec system by way of an input stream. refers to a method for characterizing codes based on whether [0035] The following brie?y describes embodiments of the the operations of compression and decompression for a given invention in order to provide a basic understanding of some codec have different levels of complexity or may require aspects of the invention. This brief description is not intended different inputs. For example, an asymmetrical codec may as an extensive overview. It is not intended to identify key or use a workspace during compression operations that is not critical elements, or to delineate or otherwise narrow the required for decompression operations. Examples, of asym scope. Its purpose is merely to present some concepts in a metrical codecs may include LZ77 variants, or the like. simpli?ed form as a prelude to the more detailed description [0026] The term “symmetric codec,” as used herein refers that is presented later. to a method for characterizing codecs based on whether the [0036] Brie?y stated, various embodiments are directed operations of compression and decompression for a given toward compressing and/or decompressing data communi codec have the same level of complexity or may require the cated between one or more network devices (e. g. codec same inputs. Generally, symmetric codecs use same amount operations). In particular, embodiments are directed towards of time and/or resources to compress data as they do to improving codec performance by seeding the computation decompress data. For example, a symmetrical codec may use workspace that may be used by various codec processors. The initialized workspace data during both compression opera seeding data may be determined based on at least one char tions and decompression operations. Often, though not acteristic of a particular codec and the characteristics data that invariably, symmetric codec may be used in streaming opera may be processed by the codec processor. E. g., seeding data tions where the data must be compressed as fast as it is may be different for different types and/or formats of data. decompressed. From the seeding data, the codec processor may generate data [0027] The term “workspace,” as used herein refers to a for the codec workspace based on the determined seeding de?ned memory space used as temporary workspace for a data and the codec. In at least one of the various embodi codec. The speci?c content and size of a workspace depends ments, the workspace data may be generated by processing on the particular codec being used. Symmetric codecs that use the seeding data with the same codec processor that is used for a workspace may use the workspace both for compression normal codec operations. The workspace generated from the operations and decompression operations. In contrast, some seeding data may be indexed and/ or stored for future use, such asymmetrical codecs may use a dedicated workspace for only as, when a matched data stream arrives. one side of the codec operation, either compression or decom [0037] In at least one of the various embodiments, if data is pression, depending on the particular asymmetrical codec. provided to an input stream of a codec processor, the codec [0028] The term “workspace data,” as used herein refers to processor may determine a particular portion of workspace the data values that are stored in a workspace during the codec data and load it into the codec processor based on at least one operations. Generally, theses values may change as the codec characteristic of the provided data. The workspace data that operations are in process with the particular values and for has been generated from the seeding data may be employed matting depending on the content stream being processed and during the initial codec operations to modify (e.g. compress the particular codec being used. or decompress) the data provided to the input stream. Next, in [0029] The term “seeding data,” as used herein, refers to at least one of the various embodiments, the codec processor data that may be processed to generate workspace data for may provide the modi?ed data to an output stream. In at least seeding codec operations. one of the various embodiments, codec operations may [0030] The term “input stream,” as used herein, refers to a include, compressing or decompressing data. logical input point where data enters a codec processors. [0038] In at least one of the various embodiments, if the Input streams may be implemented using a variety of well codec is an asymmetrical codec and the provided data is being known software and hardware techniques. Input stream, as decompressed, the seeding data may be pre-pended to the used herein may refer to any particular implementation of a output stream before decompressing the provided data. Also, method of providing external data to a system. in at least one of the various embodiments, if the codec is an [0031] The term “output stream,” as used herein, refers to a asymmetrical codec and the provided data is being com logical output point where data that has been processed by pressed, the seeding data may be pre-pended to the input codec processors may be provided to other process and/or stream before compressing the provided data. In at least one systems. Output streams may be implemented using a variety of the various embodiments, the seeding data may be com of well-known software and hardware techniques. Output municated between network devices enabling them to syn stream, as used herein may refer to any implementation for chronize seeding data if necessary. providing data to an external system. Illustrative Operating Environment [0032] The term “compressed stream,” as used herein, refers to a stream of data that has been compressed by a codec [0039] FIG. 1 shows components of an environment in processor. It may be provided on either an input stream or an which various embodiments may be practiced. Not all of the output stream depending on the circumstances and/ or the components may be required to practice the various embodi direction of a communication ?ow. ments, and variations in the arrangement and type of the [0033] The term “decompressed stream,” as used herein, components may be made without departing from the spirit or refers to a stream of data that has been compressed by a codec scope of the various embodiments. US 2014/0359082 A1 Dec. 4, 2014

[0040] In at least one embodiment, cloud network 102 universal serial bus (USB) ports, Firewire ports. Thunderbolt enables one or more network services for a user based on the ports, Digital Subscriber Lines (DSLs), wireless links includ operation of corresponding arrangements 104 and 106 of ing satellite links, or other communications links known to virtually any type of networked computing device. As shown, those skilled in the art. Moreover, these communication links the networked computing devices may include network may further employ any of a variety of digital signaling tech devices 112 and 114, enclosure of blade servers 110, enclo nologies, including without limit, for example, DS-O, DS-l, sure of server computers 116, super computer network device DS-2, DS-3, DS-4, OC-3. OC-12, OC-48, or the like. Fur 118, and the like. Although not shown, one or more mobile thermore, remotely located computing devices could be devices may be included in cloud network 102 in one or more remotely connected to networks via a modern and a tempo arrangements to provide one or more network services to a rary communication link. In essence, network 102 may user. Also, these arrangements of networked computing include virtually any communication technology by which devices may or may not be mutually exclusive of each other. information may travel between computing devices. Addi [0041] In at least one of the various embodiments, network tionally, in the various embodiments, the communicated devices 112 and 114 may include nodule, processes, compo information may include virtually any kind of information nents, services, or the like, and which are operative to perform codec operations. including, but not limited to processor-readable instructions, [0042] Also, in at least one of the various embodiments, data structures, program modules, applications, raw data, enclosure of blade servers 110, enclosure of enclosure of control data, archived data, video data, voice data, image data, server computers 116, super computer network device 118 text data, and the like. may include network devices that perform codec operations. [0046] Network 102 may be partially or entirely embodied In at least one embodiment, at least one blade server or at least by one or more wireless networks. A wireless network may one server computer may be arranged to perform codec include any of a variety of wireless sub-networks that may operations. further overlay stand-alone ad-hoe networks, and the like. [0043] Additionally, the user may employ a plurality of Such sub-networks may include mesh networks, Wireless virtually any type of wired or wireless networked computing LAN (WLAN) networks, Wireless Router (WR) mesh, cel devices to communicate with cloud network 102 and access at lular networks, pico networks, PANs, Open Air net least one of the network services enabled by one or more of works, Microwave networks, and the like. Network 102 may arrangements 104 and 106. These networked computing further include an autonomous system of intermediate net devices may include tablet client device 122, handheld client device 124, wearable client device 126, desktop client device work devices such as terminals, gateways, routers, switches, 120, and the like. Although not shown, in various embodi ?rewalls, load balancers, and the like, which are coupled to ments, the user may also employ notebook computers, desk wired and, or wireless communication links. These autono top computers, microprocessor-based or programmable con mous devices may be operable to move freely and randomly sumer electronics, network appliances, mobile telephones, and organize themselves arbitrarily, such that the topology of smart telephones, pagers, radio frequency (RF) devices, network 102 may change rapidly. infrared (IR) devices. Personal Digital Assistants (PDAs), [0047] Network 102 may further employ a plurality of televisions, integrated devices combining at least one of the wired and wireless access technologies, e.g., 2nd (2G), 3rd preceding devices, and the like. Each client device may also (3G), 4th (4G), 5th (5G), 6th (6G), generation wireless access include hardware and/or software components for codec operations. technologies, and the like, for mobile devices. These wired and wireless access technologies may also include Global [0044] One embodiment of a client device is described in System for Mobile communication (GSM), General Packet more detail below in conjunction with FIG. 3. Generally, client devices may include virtually any substantially por Radio Services (GPRS), Enhanced Data GSM Environment table networked computing device capable of communicat (EDGE), Code Division Multiple Access (CDMA), Wide ing over a wired, wireless, or some combination of wired and band Code Division Multiple Access (WCDMA), Long Term wireless network. Evolution Advanced (LTE), Universal Mobile Telecommuni [0045] In various embodiments, network 102 may employ cations System (UMTS). Orthogonal frequency-division virtually any form of communication technology and topol multiplexing (OFDM), Wideband Code Division Multiple ogy. For example, network 102 can include local area net Access (W-CDMA), Code Division Multiple Access 2000 works Personal Area Networks (PANs), (LANs), Campus (CDMA2000), Evolution-Data Optimized (EV-DO), High Area Networks (CANs), Metropolitan Area Networks Speed Downlink Packet Access (HSDPA), IEEE 802.16 (MANs) Wide Area Networks (WVANs), direct communica Worldwide Interoperability for Microwave Access (WiMax), tion connections, and the like, or any combination thereof. On ultra wide band (UWB), user datagram protocol (UDP), an interconnected set of LANs, including those based on transmission control protocol/Intemet protocol (TCP/IP), differing architectures and protocols, a router acts as a link any portion of the Open Systems Interconnection (OSI) between LANs, enabling messages to be sent from one to model protocols, Short Message Service (SMS), Multimedia another. In addition, communication links within networks Messaging Service (MMS), Web Access Protocol (WAP), may include virtually any type of link, e.g., twisted wire pair Session Initiation Protocol/Real-time Transport Protocol lines, optical ?bers, open air or coaxial cable, plain old (SIP/RTP), or any of a variety of other wireless or wired telephone service (POTS), wave guides, acoustic, full or frac communication protocols. In one non-limiting example, net tional dedicated digital communication lines including T1, work 102 may enable a to wirelessly access a T2, T3, and T4, and/or other carrier and other wired media network service through a combination of several radio net and wireless media. These carrier mechanisms may include work access technologies such as GSM, EDGE, HSDPA, E-carriers, Integrated Services Digital Networks (ISDNs), LTE and the like. US 2014/0359082 A1 Dec. 4, 2014

Enclosure of Blade Servers [0053] Memory 256 further includes one or more data stor age 270, which can be utilized by blade server 250 to store, [0048] FIG. 2A shows one embodiment of an enclosure of among other things, applications 280 and/or oilier data. Data blade servers 200, which are also illustrated in FIG. 1. Enclo store 270 may include program code, data, algorithms, and sure of blade servers 200) may include many more or fewer the like, for use by processor 252 to execute and perform components than those shown in FIG. 2A. However, the com actions such as those described in conjunction with FIGS. ponents shown are suf?cient to disclose an illustrative 6-11. In one embodiment, at least some of datastore 270 embodiment. Generally, a blade server is a stripped down might also be stored on another component of blade server server computing device with a modular design optimized to 250, including, but not limited to, processor-readable remov minimize the use of physical space and energy. A blade enclo able storage device 294, processor-readable stationary stor sure can include several blade servers and provide each with age device 292, or any other non-transitory processor-read power, cooling, network interfaces, input/output interfaces, able storage device (not shown). Data storage 270 may and resource management. Although not shown, an enclosure include, for example, Seeding Data 274, Workspace 276, of server computers typically includes several computers that Stream Buffers 278, or the like. Seeding Data 274 is arranged may have at least one network connection and a power cord to store data for seeding codec operations, as well as other connection. Each server computer often includes redundant supporting data. Likewise, Workspace 276 may be memory components for power and interfaces. used to hold workspace data for codec operations, or the like. [0049] As shown in the ?gure, enclosure 200 contains Stream Buffers 278 may be used for storage of incoming power supply 204, and input/output interface 206, rack logic and/or outgoing data. 208, several blade servers 210, 212, 214, and 216, and blade [0054] Applications 280 may include processor executable server interconnect 202. Power supply 204 provides power to instructions which, when executed by blade server 250, trans each component and blade server within the enclosure. The mit, receive, and/or otherwise process messages, audio, input/output interface 206 provides internal and external video, and enable communication with other networked com communication for components and blade servers within the puting devices. Examples of application programs include enclosure. Backplane 208 can enable passive and active com database servers, ?le servers, calendars, transcoders, and so munication of power, logic, input signals, and output signals forth. Applications 280 may include, for example, Compres for each blade server. sor/Decompressor 282, Input Stream 284, and Output Stream 286, which may be enabled to perform actions further Illustrative Blade Server describedbelow starting with at least FIG. 5. Human interlace components (not pictured), may be remotely associated with [0050] FIG. 21B illustrates an illustrative embodiment of blade server 250, which can enable remote input to and/or blade server 250, which may include many more or fewer output from blade server 250. For example, information to a components than those shown. As shown in FIG. 2A, a plu display or from a keyboard can be routed through the input/ rality of blade servers may be included in one enclosure that output interface 290 to appropriate peripheral human inter shares resources provided by the enclosure to reduce size, face components that are remotely located. Examples of power, and cost. peripheral human interface components include, but are not [0051] Blade server 250 includes processor 252 which limited to, an audio interface, a display, keypad, pointing communicates with memory 256 via bus 254. Blade server device, touch interface, and the like. 250 also includes input/ output interface 290, processor-read [0055] Furthermore, in at least one of the various embodi able stationary storage device 202, and processor-readable ments, Compressor/Decompressor 282, Input Stream 284, removable storage device 294. Input/ output interface 290 can and Output Stream 286 may be operative in a cloud-based enable blade server 250 to communicate with other blade computing environment. In at least one of the various servers, mobile devices, network devices, and the like. Inter embodiments, these applications, and others, may be execut face 290 may provide wireless and/or wired communication ing within virtual machines and/ or virtual servers that may be links for blade server. Processor-readable stationary storage managed in a cloud-based based computing environment. In device 292 may include one or more devices such as an at least one of the various embodiments, in this context the electromagnetic storage device (hard disk), solid state hard applications may ?ow from one physical blade server and/or disk (SSD), hybrid of both an SSD and a hard disk, and the network device within the cloud-based environment to like. In some con?gurations, a blade server may include mul another depending on performance and scaling consider tiple storage devices. Also, processor-readable removable ations automatically managed by the cloud computing envi storage device 294 enables processor 252 to read non-transi ronment, likewise, in at least one of the various embodiments, tory storage media for storing and accessing processor-read virtual machines and/or virtual servers for Compressor/De able instructions, modules, data structures, and other forms of compressor 282, Input Stream 284, or Output Stream 286 and data. The non-transitory storage media may include Flash may be provisioned and dc-commissioned automatically. drives, tape media, ?oppy media, and the like. [0056] Also, in at least one of the various embodiments, [0052] Memory 256 may include Random Access Memory Seeding Data 274, Workspace 276, and Stream Buffers 278, (RAM), Read-Only Memory (ROM), hybrid of RAM and or the like, may be located on virtual servers running in a ROM, and the like. As shown, memory 256 includes operat cloud-based computing environment rather than being tied to ing system 258 and basic input/output system (BIOS) 260 for one or more speci?c physical blade servers. enabling the operation of blade server 250. In various embodiments, a general-purpose operating system may be Illustrative Client Device employed such as a version of UNIX, LINUXTM, a special ized server operating system such as Microsoft’s Windows [0057] FIG. 3 shows one embodiment of client device 300 ServerTM, or the like. that may include many more or less components than those US 2014/0359082 A1 Dec. 4, 2014

shown. Client device 300 may represent, for example, at least [0065] Keypad 352 may comprise any input device one embodiment of client devices shown in FIG. 1. arranged to receive input from a user. For example, keypad [0058] Client device 300 may include processor 302 in 352 may include a push button numeric dial, or a keyboard. communication with memory 304 via bus 328. Client device Keypad 352 may also include command buttons that are 300 may also include power supply 330, network interface associated with selecting and sending images. 332, audio interface 356, display 350, keypad 352, illumina [0066] Illuminator 354 may provide a status indication and/ tor 354, video interface 342, input/output interface 338, hap or provide light. Illuminator 354 may remain active for spe tic interface 364, global positioning systems (GPS) receiver ci?c periods of time or in response to events. For example, 358, open air gesture interface 360, temperature interface when illuminator 354 is active, it may backlight the buttons 362, camera(s) 340, 346, pointing device interface on keypad 352 and stay on while the client device is powered. 366, processor-readable stationary storage device 334, and Also, illuminator 354 may backlight these buttons in various processor-readable removable storage device 336. Client patterns when particular actions are performed, such as dial device 300 may optionally communicate with a base station ing another client device. Illuminator 354 may also cause (not shown), or directly with another computing device. And light sources positioned within a transparent or translucent in one embodiment, although not shown, a gyroscope may be case of the client device to illuminate in response to actions. employed within client device 300 to measuring and/or main [0067] Client device 300 may also comprise input/output taining an orientation of client device 300. interface 338 for communicating with external peripheral [0059] Power supply 330 may provide power to client devices or other computing devices such as other client device 300. A rechargeable or non-rechargeable battery may devices and network devices. The peripheral devices may be used to provide power. The power may also be provided by include an audio headset, display screen glasses, remote an external power source, such as anAC adapter or a powered speaker system, remote speaker and microphone system, and docking cradle that supplements and/ or recharges the battery. the like. Input/output interface 338 can utilize one or more [0060] Network interface 332 includes circuitry for cou technologies, such as Universal Serial Bus (U SB), Infrared, pling client device 300 to one or more networks, and is con WiFi, WiMax, BluetoothTM, and the like. structed for use with one or more communication protocols [0068] Haptic interface 364 may be arranged to provide and technologies including, but not limited to, protocols and tactile feedback to a user of the client device. For example, the technologies that implement any portion of the OSI model for haptic interface 364 may be employed to vibrate client device mobile communication (GSM), CDMA, time division mul 300 in a particular way when another user of a computing tiple access (TDMA), UDP, TCP/IP, SMS, MMS, GPRS, device is calling. Temperature interface 362 may be used to WAP, UWB, WiMax, SIP/RTP, GPRS, EDGE, WCDMA, provide a temperature measurement input and/or a tempera LTE, UMTS, OFDM, CDMA2000, EV-DO, HSDPA, or any ture changing output to a user of client device 300. Open air of a variety of other wireless communication protocols. Net gesture interface 360 may sense physical gestures of a user of work interface 332 is sometimes known as a transceiver, client device 300, for example, by using single or stereo video transceiving device, or network inter face card (N IC). cameras, radar, a gyroscopic sensor inside a device held or [0061] Audio interface 356 may be arranged to produce and worn by the user, or the like. Camera 340 may be used to track receive audio signals such as the sound of a human voice. For physical eye movements of a user of client device 300. example, audio interface 356 may be coupled to a speaker and [0069] GPS transceiver 358 can determine the physical microphone (not shown) to enable telecommunication with coordinates of client device 300 on the surface of the Earth, others and/or generate an audio acknowledgement for some which typically outputs a location as latitude and longitude action. A microphone in audio interface 356 can also be used values. GPS transceiver 358 can also employ other geo-posi for input to or control of client device 300, e.g., using voice tioning mechanisms, including, but not limited to, triangula recognition, detecting touch based on sound, and the like. tion, assisted GPS (AGPS), Enhanced Observed Time Differ [0062] Display 350 may be a liquid crystal display (LCD), ence (E-OTD), Cell Identi?er (CI), Service Area Identi?er gas plasma, electronic ink, light emitting diode (LED), (SAI), Enhanced Timing Advance (ETA), Base Station Sub Organic LED (OLED) or any other type of light re?ective or system (BSS), or the like, to further determine the physical light transmissive display that can be used with a computing location of client device 300 on the surface of the Earth. It is device. Display 350 may also include a touch interface 344 understood that under different conditions, GPS transceiver arranged to receive input from an object such as a stylus or a 358 can determine a physical location for client device 300. In digit from a human hand, and may use resistive, capacitive, at least one embodiment, however, client device 300 may, surface acoustic wave (SAW), infrared, radar, or other tech through other components, provide other information that nologies to sense touch and/or gestures. may be employed to determine a physical location of the [0063] Projector 346 may be a remote handheld projector device, including for example, a Media Access Control or an integrated projector that is capable of projecting an (MAC) address, IP address, and the like. image on a remote wall or any other re?ective object such as [0070] Human interface components can be peripheral a remote screen. devices that are physically separate from client device 300, [0064] Video interface 342 may be arranged to capture allowing for remote input and/ or output to client device 300. video images, such as a still photo, a video segment, an For example, information routed as described here through infrared video, or the like. For example, video interface 342 human interface components such as display 350 or keyboard may be coupled to a digital video camera, a web-camera, or 352 can instead be routed through network interlace 332 to the like. Video interface 342 may comprise a lens, an image appropriate human interface components located remotely. sensor, and other electronics. Image sensors may include a Examples of human interface peripheral components that complementary metal-oxide-semiconductor (CMOS) inte may be remote include, but are not limited to, audio devices, grated circuit, charge-coupled device (CCD), or any other pointing devices, keypads, displays, cameras, , and integrated circuit for sensing light. the like. These peripheral components may communicate US 2014/0359082 A1 Dec. 4, 2014

over a Pico Network such as BluetoothTM, ZigbeeTM and the [0074] Applications 320 may include computer executable like. One non-limiting example of a client device with such instructions which, when executed by mobile device 300, peripheral human interface components is a wearable com transmit, receive, and/or otherwise process instructions and puting device, which might include a remote pico projector data. Applications 320 may include, for example, Compres along with one or more cameras that remotely communicate sor/Decompressor 322, Input Stream 324, or Output Stream with a separately located client device to sense a user’s ges 326. tures toward portions of an image projected by the pico pro [0075] Other examples of application programs include jector onto a re?ected surface such as a wall or the user’s calendars, search programs, email client applications, IM hand. applications, SMS applications, Voice Over Internet Protocol [0071] A client device may include a browser application (VoIP) applications, contact managers, task managers, that is con?gured to receive and to send web pages, web transcoders, database programs, word processing programs, based messages, graphics, text, multimedia, and the like. The security applications, spreadsheet programs, games, search client device’s browser application may employ virtually any programs, and so forth. programming language, including a wireless application pro Illustrative Network Device tocol messages (WAP), and the like. In at least one embodi ment, the browser application is enabled to employ Handheld [0076] FIG. 4 shows one embodiment of network device Device Markup Language (HDML), Wireless Markup Lan 400 that may be included in a system implementing the inven guage (WML), WMLScript, JavaScript, Standard General tion. Network device 400 may include many more or less ized Markup Language (SGML), HyperText Markup Lan components than those shown in FIG. 4. However, the com guage (HTML), eXtensible Markup Language C(ML), ponents shown are suf?cient to disclose an illustrative HTML5, and the like. embodiment for practicing these innovations. Network [0072] Memory 304 may include RAM, ROM, and/or other device 400) may represent, for example, one embodiment of types of memory. Memory 304 illustrates an example of at least one of network device 112, 114, or 120 of FIG. 1 computer-readable storage media (devices) for storage of [0077] As shown in the ?gure, network device 400 includes information such as computer-readable instructions, data a processor 402 in communication with a memory 404 via a structures, program modules or other data. Memory 304 may bus 428. Network device 400 also includes a power supply store BIOS 308 for controlling low-level operation of client 430, network interface 432, audio interface 456, display 450, device 300. The memory may also store operating system 306 keyboard 452, input/ output interface 438, processor-readable for controlling the operation of client device 300. It will be stationary storage device 434, and processor-readable remov appreciated that this component may include a general-pur able storage device 436. Power supply 430 provides power to pose operating system such as a version of UNIX, or LinuxTM, network device 400. or a specialized mobile computer communication operating [0078] Network interface 432 includes circuitry for cou system such as Windows PhoneTM, or the Symbian® operat pling network device 400 to one or more networks, and is ing system. The operating system may include, or interlace constructed for use with one or more communication proto with a Java virtual machine module that enables control of cols and technologies including, but not limited to, protocols hardware components and/ or operating system operations via and technologies that implement any portion of the Open Java application programs. Systems Interconnection model (OSI model), global system [0073] Memory 304 may further include one or more data for mobile communication (GSM), code division multiple storage 310, which can be utilized by client device 300 to access (CDMA), time division multiple access (TDMA), user store, among other things, applications 320 and/ or other data. datagram protocol (UDP), transmission control protocol/In For example, data storage 310 may also be employed to store temet protocol (TCP/IP), Short Message Service (SMS), information that describes various capabilities of client Multimedia Messaging Service (MMS), general packet radio device 3 00. The information may then be provided to another service (GPRS), WAP, ultra wide band (UWB), IEEE 802.16 device based on any of a variety of events, including being Worldwide Interoperability for Microwave Access (WiMax), Session Initiation Protocol/Real-time Transport Protocol sent as part of a header during a communication, sent upon request, or the like. Data storage 310 may also be employed to (SIP/RTP), or any of a variety of other wired and wireless store social networking information including address books, communication protocols. Network interface 432 is some buddy lists, aliases, user pro?le information, or the like. Data times known as a transceiver, transceiving device, or network storage 310 may further include program code, data, algo interface card (NIC). Network device 400 may optionally rithms, and the like, for use by a processor, such as processor communicate with at base station (not shown), or directly 302 to execute and perform actions. Data storage 310 may with another computing device. also include Seeding Data 312. Workspace 314, Stream Buff [0079] Audio interface 456 is arranged to produce and ers 316, or the like. Seeding Data 312 may be arranged to receive audio signals such as the sound of a human voice. For store data for seeding codec operations, as well as other example, audio interface 456 may be coupled to a speaker and supporting data. Likewise, Workspace 314 may be memory microphone (not shown) to enable telecommunication with used to hold workspace data for codec operations, or the like. others and/or generate an audio acknowledgement for some Stream Buffers 316 may be used for interim storage of incom action. A microphone in audio interface 456 can also be used ing and/ or outgoing data. In one embodiment, at least some of for input to or control of network device 400, for example, data storage 310 might also be stored on another component using voice recognition. of client device 300, including, but not limited to, non-tran [0080] Display 450 may be a liquid crystal display (LCD), sitory processor-readable removable storage device 336, pro gas plasma, electronic ink, light emitting diode (LED), cessor-readable stationary storage device 334, or even exter Organic LED (OLED) or any other type of light re?ective or nal to the client device. light transmissive display that can be used with a computing US 2014/0359082 A1 Dec. 4, 2014

device. Display 450 may be a handheld projector or pico Data 414 may be arranged to store data for seeding codec projector capable of projecting an image on a wall or other operations, as well as other supporting data. Likewise. Work object. space 416 may be memory used to hold workspace data for [0081] Network device 400 may also comprise input/out codec operations, or the like. Stream Buffers 416 may be used put interface 438 for communicating with external devices for interim storage of incoming and/or outgoing data. not shown in FIG. 4. Input/output interface 438 can utilize [0085] Applications 420 may include computer executable one or more wired or wireless communication technologies, instructions which, when executed by network device 400, such as USBTM, FirewireTM, WiFi, WiMax, ThunderboltTM, transmit, receive, and/or otherwise process messages (e.g., Infrared, BluetoothTM, ZigbeeTM, serial port, parallel port, SMS, Multimedia Messaging Service (MMS), Instant Mes and the like. sage (IM), email, and/or other messages), audio, video, and [0082] Human interlace components can be physically enable telecommunication with another user of another separate from network device 400, allowing for remote input mobile device. Other examples of application programs and/ or output to network device 400. For example, informa include calendars, search programs, email client applications, tion routed as described here through human interface com IM applications, SMS applications, Voice Over Internet Pro ponents such as display 450 or keyboard 452 can instead be tocol (VoIP) applications, contact managers, task managers, routed through the network interface 432 to appropriate transcoders, database programs, word processing programs, human interface components located elsewhere on the net security applications, spreadsheet programs, games, search work. Human interface components include any component programs, and so forth. Applications 420 may include Com that allows the computer to take input from, or send output to, pressor/Decompressor 422, Input Stream 424, or Output a human user of a computer. Accordingly, pointing devices Stream 426 which may be enabled to perform actions further such as mice, styluses, track balls, or the like, may commu described below starting with at least FIG. 5. In at least one of nicate through pointing device interface 458 to receive user the various embodiments, while they may be illustrated here input. as separate applications. Compressor/Decompressor 422, [0083] Memory 404 may include Random Access Memory Input Stream 424, or Output Stream 426 may be implemented (RAM), Read-Only Memory (ROM), and/or other types of as modules and/or components of the same application. Fur memory. Memory 404 illustrates an example of computer ther, in at least one of the various embodiments. Compressor/ readable storage media (devices) for storage of information Decompressor 422. Input Stream 424, or Output Stream 426 may be implemented as operating system extensions, mod such as computer-readable instructions, data structures, pro gram modules or other data. Memory 404 stores a basic ules, plugins, or the like. input/output system (BIOS) 408 for controlling low-level [0086] Furthermore, in at least one of the various embodi operation of network device 400. The memory also stores an ments, Compressor/Decompressor 422. Input Stream 424, or operating system 406 for controlling the operation of network Output Stream 426 may be operative in a cloud-based com device 400. It will be appreciated that this component may puting environment. In at least one of the various embodi include a general-purpose operating system such as a version ments, these applications, and others, that comprise the mobile development platform may be executing within vir of UNIX, or LinuxTM, or a specialized operating system such as Microsoft Corporation’s Windows® operating system, or tual machines and/or virtual servers that may be managed in the Apple Corporation’s IOS® operating system. The oper a cloud-based based computing environment. In at least one of the various embodiments, in this context the applications ating system may include, or interface with a Java virtual may ?ow from one physical network device within the cloud machine module that enables control of hardware compo nents and/or operating system operations via Java application based environment to another depending on performance and scaling considerations automatically managed by the cloud programs. computing environment. Likewise, in at least one of the vari [0084] Memory 404 may further include one or more data ous embodiments, virtual machines and/or virtual servers storage 410, which can be utilized by network device 400 to dedicated to running Compressor/Decompressor 422, Input store, among other things, applications 420 and/ or other data. Stream 424, or Output Stream 426 may be provisioned and For example, data storage 410 may also be employed to store de-commissioned automatically. information that describes various capabilities of network [0087] Also, in at least one of the various embodiments, device 400. The information may then be provided to another Seeding Data 414, Workspace 416, Stream Butlers 418, or the device based on any of a variety of events, including being like, may located in virtual ser ers running in a cloud-based sent as part of a header during a communication, sent upon computing environment rather than being tied to one or more request, or the like. Data storage 410 may also be employed to speci?c physical blade servers or server computer devices. store social networking information including address books, buddy lists, aliases, user pro?le information, or the like. Data Illustrated Logical Architecture for Codec Operations storage 410 may further include program code, data, algo rithms, and the like, for use by a processor, such as processor [0088] FIGS. 5-8 are presented to illustrate and clarify the 402 to execute and perform actions such as those action logical architecture for at least one of the various embodi describe in conjunction with FIGS. 5-11. In one embodiment, ments. at least some of data storage 410 might also be stored on [0089] FIG. 5 illustrates a portion of logical codec archi another component of network device 400, including, but not tecture 500 for symmetrical codec operations in accordance limited to, non-transitory media inside processor-readable with at least one of the various embodiments. In at least one of removable storage device 436, processor-readable stationary the various embodiments, symmetrical codec systems storage device 434, or any other computer-readable storage enabled by codec architecture 500 may process data received device within network device 400, or even external to net on an input stream, such as, input stream 502. Data provided work device 400. Data storage 410 may include Seeding Data to input stream 502 may be part of an active network trans 414, Workspace 416, Stream Buffers 416, or the like. Seeding mission and/ or session, or it may be provided from data stored