The performance of modern computing systems and consumer electronic devices has increased rapidly in recent years. One particular area in which performance has evolved is processing power. Additionally, multimedia output capabilities of modern computing system and consumer electronic devices have also evolved. Modern systems and devices are often capable of outputting rich, high definition entertainment and multimedia content. The increased capabilities of modern systems and devices have also caused user expectations to evolve. As processing power and output capabilities continue to increase, providing a meaningful multimedia entertainment experience at all possible times becomes an important design consideration. As a result, it is desirable for computing systems and consumer electronic devices, when possible, to optimize multimedia data output. Consequently, there exists a substantial need for techniques display multimedia data during operating system initialization.
The embodiments are generally directed to techniques designed to allow for the outputting of multimedia data during operating system initialization. Various embodiments provide techniques that include initializing a computing system, initializing a media playback system of the computing system using a first processor circuit, initializing an operating system of the computing system using a second processor circuit, and during the operating system initialization, outputting one or more multimedia streams using the media playback system. Other embodiments are described and claimed.
For computing and consumer electronic (CE) devices, like smart TVs, set-top boxes or Blu-ray disk players, it is a fundamental user experience requirement that the system display a still image during the system boot. However, as user expectations continue to increase along with system capabilities, simply displaying a still image, such as a logo, may not be sufficient use of the available computing power and may also not be sufficient to capture and maintain the attention of the user. In various embodiments, the user experience may be improved by including a simple animation during system boot, which has been done on some platforms. In some embodiments, however, this solution may increase the effort required on the part of the central processor (CPU) to load the animation from storage and perform any necessary decompression or other processing while simultaneously continuing to perform the system boot. Including audio with these types of animation under current solutions is nearly impossible without greatly and negatively effecting system boot time.
Various embodiments described herein provide for techniques that allow for the outputting of multimedia data during system boot. Instead of a long wait for the OS to boot, some embodiments may provide a system that allows for the presentation of a vivid short movie during the boot process and when the OS is ready for use, the movie playback may be interrupted and the system may switch back to the OS desktop. For example, various embodiments may exploit the hardware capability of the media processor that is present in many modern computing and CE devices to implement the media playback system. Other embodiments are described and claimed.
Embodiments may include one or more elements. An element may comprise any structure arranged to perform certain operations. Each element may be implemented as hardware, software, or any combination thereof, as desired for a given set of design parameters or performance constraints. Although embodiments may be described with particular elements in certain arrangements by way of example, embodiments may include other combinations of elements in alternate arrangements.
It is worthy to note that any reference to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrases “in one embodiment” and “in an embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
In some embodiments, depending upon services provided during BIOS booting 102, OS boot logic may draw relatively simple graphics on a display during OS booting 106. Since the graphics are associated with the OS logic, the graphics are typically associated with an OS vendor. As shown in timing diagram 100 and as described in more detail elsewhere herein, some embodiments may include a media playback system that is initialized 104 as part of system startup 101 to allow for media playback 108 to occur in parallel with OS booting 106. In various embodiments, media playback 108 may allow for the display of platform graphics during initialization of an OS 106 and, in some embodiments, display of platform graphics during BIOS booting, or a portion thereof. The embodiments are not limited in this context.
As shown in timing diagram 100, media playback 108 may be interrupted or otherwise stopped 112 when the OS is ready 110. At this point, in some embodiments, the OS may resume control over the computing device and normal system operations may proceed. In various embodiments, allowing for media playback 108 during the OS boot 106 may improve the user experience and expand the types and use of media that are presented during this otherwise limiting and sometimes frustrating wait time.
As used herein, the term, “platform graphics,” refers to graphics other than OS initialization graphics generated by operating system initialization logic. In various embodiments, platform graphics may include one or more of audio, video, still pictures, text, wallpapers, and skins. The terms “platform graphics,” “platform video,” “multimedia data” and “multimedia streams” may be used interchangeably herein. In some embodiments, platform graphics may include, without limitation, graphics related to third party products or services, which may include advertising graphics, graphics provided by a computer platform vendor or manufacturer, graphics associated with an entity that owns or exercises control over a computer system, including a managed hosting provider, and personal graphics. Platform graphics may be displayed in place of OS initialization graphics in various embodiments. Alternatively, OS initialization graphics may be merged with platform graphics in some embodiments. In some embodiments, the platform graphics may comprise one or more high definition (HD) video streams and accompanying or corresponding audio streams. Other embodiments are described and claimed.
In various embodiments, processor 208 may comprise a central processing unit comprising one or more processor cores. The processor 208 may include any type of processing unit, such as, for example, CPU, multi-processing unit, a reduced instruction set computer (RISC), a processor that have a pipeline, a complex instruction set computer (CISC), digital signal processor (DSP), and so forth.
Memory 204 may comprise any suitable type of memory unit, memory device, memory article, memory medium, storage device, storage article, storage medium, register and/or storage unit, for example, memory, removable or non-removable media, volatile or non-volatile memory or media, erasable or non-erasable media, writeable or re-writeable media, digital or analog media, hard disk, floppy disk, Compact Disk Read Only Memory (CD-ROM), Compact Disk Recordable (CD-R), Compact Disk Rewriteable (CD-RW), optical disk, magnetic media, magneto-optical media, removable memory cards or disks, various types of Digital Versatile Disk (DVD), a tape, a cassette, or the like.
In various embodiments, OS 210 may comprise a set of programs operative to manage manage computer hardware resources for computing device 200 and provide common services for application software. In some embodiments, OS 210 may be operative to act as an intermediary between application programs and the computing device 200 for hardware functions such as input and output and memory allocation. Examples of OS 210 may include but are not limited to Microsoft Windows®, Mac OS X®, iOS®, Linux® and Android®. Other embodiments are described and claimed.
Media system memory 212 may comprise a reserved portion of memory 204 in some embodiments. For example, media system memory 212 may comprise a portion of memory 204 that is reserved by BIOS that may remain untouched by OS 210. The embodiments are not limited in this respect.
Media processor 206 may comprise a microprocessor-based system-on-a-chip (SOC) device or circuit in various embodiments. In some embodiments, media processor 206 may be operative to process multimedia data or digital streaming data in real-time. For example, media processor 206 may be operative to process one or more of uncompressed digital video, compressed digital video (e.g. MPEG-1, MPEG-2, MPEG-4) or digital audio. In various embodiments, media processor 206 may comprise a microprocessor optimized to deal with any number of media data types, one or more memory interfaces, streaming media interfaces, and one or more specialized functional units operative to deal with the various digital media codecs as described in more detail with reference to
Media processors, such as media processor 206, are widely used in modern computing and consumer electronics device. For example, smart televisions, set-top boxes, high definition and Blue-ray media players and other devices often include a media processor 206. In some embodiments, the media processor 206 comprises a SOC device. Although the internal components of media processors 206 vary from between manufactures and devices, to some extent they share a common architecture. For example, many media processors include one or more media playback pipelines or media playback systems as described in more detail with reference to
In various embodiments, media processor 206 may be operative to initialize a media playback system. For example, media processor 206 may include one or more functional units that, together with media system memory 212, form a media playback system that is controlled by media processor 206. In some embodiments processor 208 may comprise a processor circuit that is operative to initialize an operating system 210. For example, processor 208 may comprise a CPU for computing device 200 that may be responsible for executing or running traditional applications under the control of OS 210. Other embodiments are described and claimed.
The media playback system, under the control of media processor 206, may be operative to output one or more multimedia streams during the initialization of OS 210 in some embodiments. For example, media processor 206 may be operative to output one or more high definition video and audio streams to a digital display (not shown) while processor 208 initializes OS 210 as shown in
In various embodiments, processor 208 may be operative to determine that the OS 210 initialization is complete, send an interrupt to media processor 206 to stop the multimedia stream output, and output one or more graphical user interface elements of the OS 210. For example, processor 208 may interrupt the media playback system when OS 210 is initialized and ready for operation. In this manner, media playback system may be capable of reproducing multimedia data while the OS 210 is being initialized and, when ready, processor 208 and OS 210 can take control of computing device 210 to being normal computing operations. In some embodiments, in order to allow for the multimedia data to be played back while the OS 210 is booting, BIOS may be operative to report a fake frame buffer address in order to mask any intended OS 210 graphic output. Other embodiments are described and claimed.
In various embodiments, the media playback pipeline or media playback system of media processor 206 that enables this parallel playback of multimedia data and OS 210 initialization may be further described with reference to
As shown in
In some embodiments, each node or functional unit 220-226 of the media playback system may consist of two parts: the firmware or microcode 230 and the hardware 220-226. Instead of using a pure hardware processing unit or a pure software processing unit, various embodiments described herein combine the hardware 220-226 and the firmware 230 to form a media playback system that is capable of more flexibility and stability than previous systems.
In various embodiments, demultiplexer logic 220 may be operative to receive a program stream (PS) 250 from a media source 214, extract video and audio streams from the program stream to form an elementary stream (ES) and send the elementary stream 252 to a first circular buffer 232 in a reserved portion of system memory 212. The media source 214 may comprise a local media source in memory 204, such as a transport stream or program stream buffer 214 as shown in
Pre-processor logic 222 may be operative to retrieve the elementary stream 254 from the first circular buffer 232, perform error correction on the elementary stream 232, and send a compressed bit stream (BS) 256 to a second circular buffer 234 in the reserved portion of system memory 212 based on the error correction in various embodiments. In some embodiments, decoder logic 224 may be operative to retrieve the compressed bit stream 258 from the second circular buffer 234, decode the compressed bit stream 234 using one or more decoding algorithms to generate one or more raw video and audio data streams (FB) 260, and send the one or more raw video and audio data streams 260 to a third circular buffer 236 in the reserved portion of system memory 212. In various embodiments, the real video and audio decoding task happens here at the decoder logic 224. For example, to meet a requirement of real-time HD playback, the decoder logic 224 may comprise dedicated silicon or a DSP that is highly optimized according to the different decoding algorithms that may be required by the system.
In some embodiments, post-processor logic 226 may be operative to retrieve the one or more raw video and audio data streams 262 from the third circular buffer 236, perform one or more of noise reduction, picture scaling or other suitable post-processing activity on the one or more raw video and audio data streams 262 to generate one or more multimedia streams 240, and output the one or more multimedia streams 240. For example, the one or more multimedia streams 240 may be outputted as playback on a digital display by the media system. In various embodiments, post-processor logic 226 may be operative to improve the quality of the decoded video and audio. For example noise reduction, scaling and other corrections may be performed by post-processor logic 226. Other embodiments are described and claimed.
In various embodiments, the functional units 220-226 of media processor 206 may form a number of consumer-producer relationships to form the media playback system. For example, in the self-managed pipeline, the output of first process unit 220 is connected to the input of following unit 222, the output of the second unit 222 is connected to the input of the third unit 224 and the output of the third unit 224 is connected to the input of the fourth unit 226 and so on. In this manner, the relationship between two adjacent functional units is actually a pair of producer and consumer units. By using this relationship, in various embodiments, a shared circular buffer (e.g. 232, 246 and 236 respectively) may be operative to resolve any access competition between two processing units. In various embodiments, the circular buffers 232, 234 and 236 may comprise any suitable circular buffer, cyclic buffer or ring buffer comprising a data structure that uses a single, fixed-size buffer as if it were connected end-to-end. In some embodiments, the structure of circular buffers 232, 234 and 236 may lend itself easily to buffering data streams as required in the described multimedia playback system.
Besides the original decoding function, extra blocks may be added into a firmware workflow 230 in some embodiments. For example, each processing unit 220-226 may be operative to actively fetch data from a circular buffer 232-234, 236 and feed the backward unit if there is output. While shown in
Logic flow 300 may illustrate the workflow for firmware 230 of
In various embodiments, the firmware in one or more processing units may be operative to continually poll one or more corresponding circular buffers and once an input is available, it may send the data to dedicated hardware for further processing. In various embodiments, at 306 the firmware may determine if there is any output. For example, if there is data output, firmware 230 may be operative to update the output circular buffer at 308 thereby notifying the next functional unit in the media playback pipeline. In various embodiments, each processing or functional unit in the media playback system may include firmware in the pipeline that follows the same polling logic. Because the firmware is responsible for fetching data as its input, there is no requirement for control processor involvement and an automatically running pipeline may be built up in some embodiments.
In various embodiments, the media playback system described in
The above-described embodiments may improve upon these prior software systems by working separately and in parallel outside of the OS. In various embodiments, the above-described embodiments do not consume additional CPU time or power because the media system is implemented as a separate system. Therefore, media playback capabilities are improved and system/OS boot time is not affected. Other embodiments are described and claimed.
In various embodiments, a computing system may be initialized at 402. For example, the computing system described with reference to
At 408, in some embodiments, one or more multimedia streams may be output during the operating system initialization using the media playback system. For example, during the initialization of OS 210 by processor 208, media processor 206 may be operative to execute or control a media playback system that is capable of outputting one or more multimedia streams comprising high definition video and audio streams. As described with reference to
In various embodiments, when it is determined that the operating system initialization is complete, the multimedia output may be interrupted using the second processor circuit and one or more graphical user interface elements of the operating system may be outputted using the second processor circuit. For example, in various embodiments processor 208 may be operative to determine that OS 210 is initialized and ready for use and may then interrupt or otherwise stop the media playback system 206 to allow for normal computing operations to proceed under control of processor 208 and OS 210.
The media playback system may include a plurality of functional units in some embodiments. For example, as described with reference to
In some embodiments, the elementary stream may be retrieved from the first circular buffer by pre-processor logic of the media playback system, error correction may be performed on the elementary stream, and a compressed bit stream may be sent to a second circular buffer in the reserved portion of system memory based on the error correction. For example, pre-processor logic 222 may be operative to receive or retrieve the elementary stream from circular buffer 232, perform error correction on the stream to form a compressed bit stream, and send the compressed bit stream to circular buffer 232 of reserved system memory 212.
The compressed bit stream may be retrieved from the second circular buffer by decoder logic of the media playback system, the compressed bit stream may be decoded using one or more decoding algorithms to generate one or more raw video and audio data streams, and the one or more raw video and audio data streams may be sent to a third circular buffer in the reserved portion of system memory in some embodiments. For example, decoder 224 may be operative to retrieve the compressed bit stream from circular buffer 234, decode the compressed bit stream to generate raw video and audio data streams, and send the raw video and audio data streams to circular buffer 236 of reserved system memory 212.
In various embodiments, the one or more raw video and audio data streams may be retrieved from the third circular buffer by post-processor logic of the media playback system, one or more of noise reduction or picture scaling may be performed on the one or more raw video and audio data streams to generate one or more multimedia streams, and the one or more multimedia streams may be outputted. For example, post-processor logic 226 may be operative to retrieve the raw video and data streams from circular buffer 236, perform post-processing activities on the raw video and audio data streams, and output the processed multimedia streams as playback at 240. In some embodiments, the playback may comprise, for example, HD video and audio streams such as a video advertisement. Other embodiments are described and claimed.
As shown in
Processor 502 may be a central processing unit comprising one or more processor cores and may include any number of processors having any number of processor cores. The processor 502 may include any type of processing unit, such as, for example, CPU, multi-processing unit, a reduced instruction set computer (RISC), a processor that have a pipeline, a complex instruction set computer (CISC), digital signal processor (DSP), and so forth.
Although not shown, the system 500 may include various interface circuits, such as an Ethernet interface and/or a Universal Serial Bus (USB) interface, and/or the like. In some exemplary embodiments, the I/O device 506 may comprise one or more input devices connected to interface circuits for entering data and commands into the system 500. For example, the input devices may include a keyboard, mouse, touch screen, track pad, track ball, isopoint, a voice recognition system, and/or the like. Similarly, the I/O device 506 may comprise one or more output devices connected to the interface circuits for outputting information to an operator. For example, the output devices may include one or more displays, printers, speakers, and/or other output devices, if desired. For example, one of the output devices may be a digital display. The display may be a cathode ray tube (CRTs), liquid crystal displays (LCDs), or any other type of display.
The system 500 may also have a wired or wireless network interface to exchange data with other devices via a connection to a network. The network connection may be any type of network connection, such as an Ethernet connection, digital subscriber line (DSL), telephone line, coaxial cable, etc. The network may be any type of network, such as the Internet, a telephone network, a cable network, a wireless network, a packet-switched network, a circuit-switched network, and/or the like.
In embodiments, system 600 comprises a platform 602 coupled to a display 620. Platform 602 may receive content from a content device such as content services device(s) 630 or content delivery device(s) 640 or other similar content sources. A navigation controller 650 comprising one or more navigation features may be used to interact with, for example, platform 602 and/or display 620. Each of these components is described in more detail below.
In embodiments, platform 602 may comprise any combination of a chipset 605, processor 610, memory 612, storage 614, graphics subsystem 615, applications 616 and/or radio 618. Chipset 605 may provide intercommunication among processor 610, memory 612, storage 614, graphics subsystem 615, applications 616 and/or radio 618. For example, chipset 605 may include a storage adapter (not depicted) capable of providing intercommunication with storage 614.
Processor 610 may be implemented as Complex Instruction Set Computer (CISC) or Reduced Instruction Set Computer (RISC) processors, x86 instruction set compatible processors, multi-core, or any other microprocessor or central processing unit (CPU). In embodiments, processor 610 may comprise dual-core processor(s), dual-core mobile processor(s), and so forth.
Memory 612 may be implemented as a volatile memory device such as, but not limited to, a Random Access Memory (RAM), Dynamic Random Access Memory (DRAM), or Static RAM (SRAM).
Storage 614 may be implemented as a non-volatile storage device such as, but not limited to, a magnetic disk drive, optical disk drive, tape drive, an internal storage device, an attached storage device, flash memory, battery backed-up SDRAM (synchronous DRAM), and/or a network accessible storage device. In embodiments, storage 614 may comprise technology to increase the storage performance enhanced protection for valuable digital media when multiple hard drives are included, for example.
Graphics subsystem 615 may perform processing of images such as still or video for display. Graphics subsystem 615 may be a graphics processing unit (GPU) or a visual processing unit (VPU), for example. An analog or digital interface may be used to communicatively couple graphics subsystem 615 and display 620. For example, the interface may be any of a High-Definition Multimedia Interface, DisplayPort, wireless HDMI, and/or wireless HD compliant techniques. Graphics subsystem 615 could be integrated into processor 610 or chipset 605. Graphics subsystem 615 could be a stand-alone card communicatively coupled to chipset 605.
The graphics and/or video processing techniques described herein may be implemented in various hardware architectures. For example, graphics and/or video functionality may be integrated within a chipset. Alternatively, a discrete graphics and/or video processor may be used. As still another embodiment, the graphics and/or video functions may be implemented by a general purpose processor, including a multi-core processor. In a further embodiment, the functions may be implemented in a consumer electronics device.
Radio 618 may include one or more radios capable of transmitting and receiving signals using various suitable wireless communications techniques. Such techniques may involve communications across one or more wireless networks. Exemplary wireless networks include (but are not limited to) wireless local area networks (WLANs), wireless personal area networks (WPANs), wireless metropolitan area network (WMANs), cellular networks, and satellite networks. In communicating across such networks, radio 618 may operate in accordance with one or more applicable standards in any version.
In embodiments, display 620 may comprise any television type monitor or display. Display 620 may comprise, for example, a computer display screen, touch screen display, video monitor, television-like device, and/or a television. Display 620 may be digital and/or analog. In embodiments, display 620 may be a holographic display. Also, display 620 may be a transparent surface that may receive a visual projection. Such projections may convey various forms of information, images, and/or objects. For example, such projections may be a visual overlay for a mobile augmented reality (MAR) application. Under the control of one or more software applications 616, platform 602 may display user interface 622 on display 620.
In embodiments, content services device(s) 630 may be hosted by any national, international and/or independent service and thus accessible to platform 602 via the Internet, for example. Content services device(s) 630 may be coupled to platform 602 and/or to display 620. Platform 602 and/or content services device(s) 630 may be coupled to a network 660 to communicate (e.g., send and/or receive) media information to and from network 660. Content delivery device(s) 640 also may be coupled to platform 602 and/or to display 620.
In embodiments, content services device(s) 630 may comprise a cable television box, personal computer, network, telephone, Internet enabled devices or appliance capable of delivering digital information and/or content, and any other similar device capable of unidirectionally or bidirectionally communicating content between content providers and platform 602 and/display 620, via network 660 or directly. It will be appreciated that the content may be communicated unidirectionally and/or bidirectionally to and from any one of the components in system 600 and a content provider via network 660. Examples of content may include any media information including, for example, video, music, medical and gaming information, and so forth.
Content services device(s) 630 receives content such as cable television programming including media information, digital information, and/or other content. Examples of content providers may include any cable or satellite television or radio or Internet content providers. The provided examples are not meant to limit embodiments of the invention.
In embodiments, platform 602 may receive control signals from navigation controller 650 having one or more navigation features. The navigation features of controller 650 may be used to interact with user interface 622, for example. In embodiments, navigation controller 650 may be a pointing device that may be a computer hardware component (specifically human interface device) that allows a user to input spatial (e.g., continuous and multi-dimensional) data into a computer. Many systems such as graphical user interfaces (GUI), and televisions and monitors allow the user to control and provide data to the computer or television using physical gestures.
Movements of the navigation features of controller 650 may be echoed on a display (e.g., display 620) by movements of a pointer, cursor, focus ring, or other visual indicators displayed on the display. For example, under the control of software applications 616, the navigation features located on navigation controller 650 may be mapped to virtual navigation features displayed on user interface 622, for example. In embodiments, controller 650 may not be a separate component but integrated into platform 602 and/or display 620. Embodiments, however, are not limited to the elements or in the context shown or described herein.
In embodiments, drivers (not shown) may comprise technology to enable users to instantly turn on and off platform 602 like a television with the touch of a button after initial boot-up, when enabled, for example. Program logic may allow platform 602 to stream content to media adaptors or other content services device(s) 630 or content delivery device(s) 640 when the platform is turned “off.” In addition, chip set 605 may comprise hardware and/or software support for 5.1 surround sound audio and/or high definition 6.1 surround sound audio, for example. Drivers may include a graphics driver for integrated graphics platforms. In embodiments, the graphics driver may comprise a peripheral component interconnect (PCI) Express graphics card.
In various embodiments, any one or more of the components shown in system 600 may be integrated. For example, platform 602 and content services device(s) 630 may be integrated, or platform 602 and content delivery device(s) 640 may be integrated, or platform 602, content services device(s) 630, and content delivery device(s) 640 may be integrated, for example. In various embodiments, platform 602 and display 620 may be an integrated unit. Display 620 and content service device(s) 630 may be integrated, or display 620 and content delivery device(s) 640 may be integrated, for example. These examples are not meant to limit the invention.
In various embodiments, system 600 may be implemented as a wireless system, a wired system, or a combination of both. When implemented as a wireless system, system 600 may include components and interfaces suitable for communicating over a wireless shared media, such as one or more antennas, transmitters, receivers, transceivers, amplifiers, filters, control logic, and so forth. An example of wireless shared media may include portions of a wireless spectrum, such as the RF spectrum and so forth. When implemented as a wired system, system 600 may include components and interfaces suitable for communicating over wired communications media, such as input/output (I/O) adapters, physical connectors to connect the I/O adapter with a corresponding wired communications medium, a network interface card (NIC), disc controller, video controller, audio controller, and so forth. Examples of wired communications media may include a wire, cable, metal leads, printed circuit board (PCB), backplane, switch fabric, semiconductor material, twisted-pair wire, co-axial cable, fiber optics, and so forth.
Platform 602 may establish one or more logical or physical channels to communicate information. The information may include media information and control information. Media information may refer to any data representing content meant for a user. Examples of content may include, for example, data from a voice conversation, videoconference, streaming video, electronic mail (“email”) message, voice mail message, alphanumeric symbols, graphics, image, video, text and so forth. Data from a voice conversation may be, for example, speech information, silence periods, background noise, comfort noise, tones and so forth. Control information may refer to any data representing commands, instructions or control words meant for an automated system. For example, control information may be used to route media information through a system, or instruct a node to process the media information in a predetermined manner. The embodiments, however, are not limited to the elements or in the context shown or described in
As described above, system 600 may be embodied in varying physical styles or form factors.
As described above, examples of a mobile computing device may include a personal computer (PC), laptop computer, ultra-laptop computer, tablet, touch pad, portable computer, handheld computer, palmtop computer, personal digital assistant (PDA), cellular telephone, combination cellular telephone/PDA, television, smart device (e.g., smart phone, smart tablet or smart television), mobile internet device (MID), messaging device, data communication device, and so forth.
Examples of a mobile computing device also may include computers that are arranged to be worn by a person, such as a wrist computer, finger computer, ring computer, eyeglass computer, belt-clip computer, arm-band computer, shoe computers, clothing computers, and other wearable computers. In embodiments, for example, a mobile computing device may be implemented as a smart phone capable of executing computer applications, as well as voice communications and/or data communications. Although some embodiments may be described with a mobile computing device implemented as a smart phone by way of example, it may be appreciated that other embodiments may be implemented using other wireless mobile computing devices as well. The embodiments are not limited in this context.
As shown in
Various embodiments may be implemented using hardware elements, software elements, or a combination of both. Examples of hardware elements may include processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth), integrated circuits, application specific integrated circuits (ASIC), programmable logic devices (PLD), digital signal processors (DSP), field programmable gate array (FPGA), logic gates, registers, semiconductor device, chips, microchips, chip sets, and so forth. Examples of software may include software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application program interfaces (API), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. Determining whether an embodiment is implemented using hardware elements and/or software elements may vary in accordance with any number of factors, such as desired computational rate, power levels, heat tolerances, processing cycle budget, input data rates, output data rates, memory resources, data bus speeds and other design or performance constraints.
One or more aspects of at least one embodiment may be implemented by representative instructions stored on a machine-readable medium which represents various logic within the processor, which when read by a machine causes the machine to fabricate logic to perform the techniques described herein. Such representations, known as “IP cores” may be stored on a tangible, machine readable medium and supplied to various customers or manufacturing facilities to load into the fabrication machines that actually make the logic or processor.
Numerous specific details have been set forth herein to provide a thorough understanding of the embodiments. It will be understood by those skilled in the art, however, that the embodiments may be practiced without these specific details. In other instances, well-known operations, components and circuits have not been described in detail so as not to obscure the embodiments. It can be appreciated that the specific structural and functional details disclosed herein may be representative and do not necessarily limit the scope of the embodiments.
Various embodiments may be implemented using hardware elements, software elements, or a combination of both. Examples of hardware elements may include processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth), integrated circuits, application specific integrated circuits (ASIC), programmable logic devices (PLD), digital signal processors (DSP), field programmable gate array (FPGA), logic gates, registers, semiconductor device, chips, microchips, chip sets, and so forth. Examples of software may include software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application program interfaces (API), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. Determining whether an embodiment is implemented using hardware elements and/or software elements may vary in accordance with any number of factors, such as desired computational rate, power levels, heat tolerances, processing cycle budget, input data rates, output data rates, memory resources, data bus speeds and other design or performance constraints.
Some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. These terms are not intended as synonyms for each other. For example, some embodiments may be described using the terms “connected” and/or “coupled” to indicate that two or more elements are in direct physical or electrical contact with each other. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.
Some embodiments may be implemented, for example, using a machine-readable or computer-readable medium or article which may store an instruction, a set of instructions or computer executable code that, if executed by a machine or processor, may cause the machine or processor to perform a method and/or operations in accordance with the embodiments. Such a machine may include, for example, any suitable processing platform, computing platform, computing device, processing device, computing system, processing system, computer, processor, or the like, and may be implemented using any suitable combination of hardware and/or software. The machine-readable medium or article may include, for example, any suitable type of memory unit, memory device, memory article, memory medium, storage device, storage article, storage medium and/or storage unit, for example, memory, removable or non-removable media, volatile or non-volatile memory or media, erasable or non-erasable media, writeable or re-writeable media, digital or analog media, hard disk, floppy disk, Compact Disk Read Only Memory (CD-ROM), Compact Disk Recordable (CD-R), Compact Disk Rewriteable (CD-RW), optical disk, magnetic media, magneto-optical media, removable memory cards or disks, various types of Digital Versatile Disk (DVD), a tape, a cassette, or the like. The instructions may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, encrypted code, and the like, implemented using any suitable high-level, low-level, object-oriented, visual, compiled and/or interpreted programming language.
Unless specifically stated otherwise, it may be appreciated that terms such as “processing,” “computing,” “calculating,” “determining,” or the like, refer to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulates and/or transforms data represented as physical quantities (e.g., electronic) within the computing system's registers and/or memories into other data similarly represented as physical quantities within the computing system's memories, registers or other such information storage, transmission or display devices. The embodiments are not limited in this context.
It should be noted that the methods described herein do not have to be executed in the order described, or in any particular order. Moreover, various activities described with respect to the methods identified herein can be executed in serial or parallel fashion.
Although specific embodiments have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. It is to be understood that the above description has been made in an illustrative fashion, and not a restrictive one. Combinations of the above embodiments, and other embodiments not specifically described herein will be apparent to those of skill in the art upon reviewing the above description. Thus, the scope of various embodiments includes any other applications in which the above compositions, structures, and methods are used.
It is emphasized that the Abstract of the Disclosure is provided to comply with 37 C.F.R. §1.72(b), requiring an abstract that will allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter that lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate preferred embodiment. In the appended claims, the terms “including” and “in which” are used as the plain-English equivalents of the respective terms “comprising” and “wherein,” respectively. Moreover, the terms “first,” “second,” and “third,” etc. are used merely as labels, and are not intended to impose numerical requirements on their objects.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US2011/062508 | 6/6/2013 | WO | 00 | 6/22/2013 |