The subject matter disclosed herein generally relates to the processing of data. Specifically, the present disclosure addresses systems and methods for modifying the playback of content using pre-processed profile information.
Many devices that play music and other audio content do not provide optimal playback experiences. For example, these devices (e.g., car stereos, mobile devices) may provide the same playback experience for drastically different types of content, such as a same experience for a rock recording, a classical recording, and a news-based radio program. Although most playback devices provide users with mechanisms to adjust the playback experience, users often do not have the knowledge of what adjustments to make, and may make adjustments that diminish and not enhance the playback experience. Also, as a listener may not know what audio content is coming up, the listener will then have to make changes after the song has already started in order to optimize the playback experience for the particular song. Further, adjusting the playback experience while driving vehicles may pose safety issues.
Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings.
Example methods and systems for modifying the playback of content using pre-processed profile information are described. In some example embodiments, the methods and systems may access a stream of content to be delivered to a playback device, identify a piece of content within the stream of content to be delivered to the playback device, determine a profile for the identified piece of content, and deliver the determined profile to the playback device. These operations may be performed automatically on-the-fly.
In some example embodiments, the methods and systems may receive a stream of content at a playback device, access profile information associated with the stream of content, and modify playback of the stream of content based on the accessed profile information. For example, the methods and systems may receive and/or access an audio stream along with profile information identifying a mood or other characteristics assigned to the audio stream and modify playback settings of the playback device (e.g., equalization settings) based on the profile information.
The example methods and systems may, therefore, pre-process a content stream provided by a content provider to determine a profile for the content stream, and deliver the profile to a playback device, which may play the content stream with an adjusted, modified, and/or optimized playback experience, among other things.
In the following description, for purposes of explanation, numerous specific details are set forth to provide a thorough understanding of example embodiments. It will be evident to one skilled in the art, however, that the present subject matter may be practiced without these specific details.
A playback device 130 may receive a stream or streams of content from the content provider 110 over a network 120 such as the Internet. The network 120 may be any network or communication medium that enables communication between the content provider 110, the playback device 130, and other networked devices. The network 120, therefore, may be or include a wired network, a wireless network (e.g., a mobile network), a radio or telecommunications network, a satellite network, and so on. For example, the network 120 may include one or more portions that constitute a private network (e.g., a cable television network or a satellite radio network), a public network (e.g., over-the-air broadcast channels or the Internet), and so on.
The playback device 130 may include audio or video playback devices 130, such as car or personal stereo systems, televisions, set-top boxes, laptops and other personal computers, tablets and other mobile devices (e.g., smart phones), gaming devices, and/or other devices capable of receiving and presenting a stream of audio or video content. In some example embodiments, the playback device 130 may include a tuner configured to receive a stream of audio or video content and play the stream of audio or video content by processing the stream and outputting information (e.g., digital or analog) usable by a display of the playback device 130 to present or play back the audio or video content to a user associated with the playback device 130. The playback device 130 may also include a display or other user interface configured to display the processed stream of content and/or associated metadata. The display may be a flat-panel screen, a plasma screen, a light emitting diode (LED) screen, a cathode ray tube (CRT), a liquid crystal display (LCD), a projector, and so on.
In some example embodiments, the content provider 110 and/or the playback device 130 may include one or more fingerprint generators 115 configured to generate identifiers for content being transmitted or broadcast by the content provider 110 and/or received or accessed by the playback device 130. For example, the fingerprint generators 115 may include a reference fingerprint generator (e.g., a component that calculates a hash value from a portion of content) that is configured to generate reference fingerprints or other identifiers of received content, among other things.
In some example embodiments, the playback device 130 may include or be associated with a playback modification engine 135 configured to modify the playback experience of content played by the playback device 130. For example, the playback modification engine 135 may access a profile associated with a stream of content and utilize the profile to modify, adjust, and/or otherwise control various playback settings (e.g., equalization settings) associated with a quality or character for the playback of the content. In an example embodiment where the content is video or other visual content, the playback settings may include color palette settings, color layout settings, brightness settings, font settings, artwork settings, and so on.
In some example embodiments, a content profile engine 150 may access, over the network 120, a stream of content provided by the content provider 110, and perform various processes to determine, generate, and/or select a profile or profile information for the stream of content. For example, the content profile engine 150 may identify the stream of content (e.g., using audio or video fingerprint comparisons), and determine a profile for the identified stream of content. The content profile engine 150 may deliver the profile to the playback device 130, which receives the profile along with the stream of content, and plays the stream of content using certain playback settings that are associated and/or selected based on information within the received profile, among other things.
Any of the machines, databases, or devices shown in
Furthermore, any of the modules, systems, and/or generators may be located at any of the machines, databases, or devices shown in the
As described herein, in some example embodiments, the systems and methods identify content to be streamed or otherwise transmitted to the playback device 130 and generate and/or determine a profile to deliver to the playback device 130 that provides information associated with a mood, style, or other attributes of the content. In an example embodiment, the profile may be a simple identifier that merely identifies a content type. For example, the profile may identify the content as news, an action movie, a sports event, or the like. Different settings on a TV may then be automatically adjusted based on the profile. Similarly, the profile may identify a radio talk show, a song, a jingle, a song genre, or the like. Accordingly, audio settings may then be adjusted automatically on-the-fly to enhance the audio delivered to a listener.
In some example embodiments, the content access module 210 is configured and/or programmed to access a stream of content 215 to be delivered to a playback device 130. For example, the content access module 210 may access the stream of content 215 from the content provider 110 that is providing the stream of content 215 to the playback device 130 over the network 120. As another example, the content access module 210 may access a stream of content 215 from the content provider 110 that is locally stored by the playback device 130.
The content access module 210 may access various types of content streams 215, such as audio content streams, video streams, and so on. For example, the content access module 210 may access a stream of songs or other music, a stream of spoken content, a podcast, YouTube′ videos and clips, and so on.
In some example embodiments, the content identification module 220 is configured and/or programmed to identify a piece of content 215 within the stream of content 215 to be delivered to the playback device 130. The content identification module 220 may identify the piece of content 215 using a variety of processes, including a comparison of a fingerprint of the content 215 to reference fingerprints of known content 215, such as reference fingerprints generated by the fingerprint generator 115.
For example, the content identification module 220 may generate and/or access query fingerprints for a frame or block of frames of the piece or stream of content 215, and perform a comparison of the query fingerprints to the reference fingerprints in order to identify the piece of content or stream of content 215.
In some example embodiments, the profile module 230 is configured and/or programmed to determine a profile 235 for the identified piece or a segment/portion within a piece of content 215 and deliver the determined profile 235 to the playback device 130. For example, the profile module 230 may determine one or more characteristics for an entire portion of the piece of content 215 and/or may determine one or more characteristics for multiple portions of the piece of content 215, such as frames or blocks of frames of the content 215.
The profile module 230 may render, generate, create, and/or otherwise determine the profile 235 for the piece of content 215, such as audio content, having a variety of different characteristics. For example, the profile 235 may include characteristics associated with equalization (EQ) settings, such as different audio frequencies within the audio content.
The profile 235 may include different types of information. Example profile information may include:
information identifying a category associated with the song, such as a category for a style of music (e.g., rock, classical, hip-hop, instrumental, spoken-word, jingle and so on);
information identifying a category associated with a video segment, such as style of video (e.g. drama, sci-fi, horror, romance, news, TV show, documentary, advertisment, and so on);
information identifying a mood associated with the song or video clip, such as upbeat mood, a relaxed mood, a soft mood, and so on;
information identifying signal strength parameters for different frequencies within the content, such as low frequencies for bass and other similar tones, high frequencies for spoken or sung tones; and/or
information identifying color palette, brightness, sharpness, motion, blurriness, presence of text and/or subtitles or close caption, specific content with said text or subtitles, scene cuts, black frames, presence of display format adjustment bars/pillars, presence or absence of faces, landscapes, or other objects, presence of specific company, network, or broadcast logos, and so on.
Therefore, the profile 235 may represent the “DNA” or playback attributes of the audio content 215, which may be used by the playback modification engine 135 to control the playback device 130 in order to optimize or enhance the experience during playback of the audio content 215, among other things.
Referring back to
For example, the synchronization module 240 may utilize a fingerprint or fingerprints associated with the piece of content 215 to synchronize the piece of content 215 to the profile 235. For example, the profile 235 may include information that relates one or more settings to a known fingerprint for the piece of content 215 align the settings to a portion of the piece of content 215 in order to synchronize the profile 235 to the piece of content 215 during playback of the content 215.
As another example, the synchronization module 240 may identify various audio or acoustic events within the piece of content 215 (e.g., a snare hit, the beginning of a guitar solo, an initial vocal), and align the profile 235 to the events within the content 215 in order to synchronize the profile 235 to the piece of content 215 during playback of the content 215. In an example embodiment, the sequencing module may organize the sequence of songs as part of an adaptive radio, a playlist recommendation, a playlist of content in the cloud (music and/or video) that is specific to currently rendered content (e.g., using its profile), user's profile, device settings that are known in advance to provide personalized optimal experience, and so on.
In some example embodiments, the adjustment module 250 is configured and/or programmed to modify playback of the piece of content 215 using the playback device 130 based on the profile 235 for the piece of content 215. For example, the adjustment module 250 may apply information within the profile 235 to modify or adjust the settings of an equalizer and or a dynamic processor of the playback device 130, in order to adjust and/or tune the equalization during the playback of the stream of content 215. When the content is video, the profile may be used to adjust video settings such as color temperature, dynamic range, color palette, brightness, sharpness, or any other video-related settings.
In addition to the equalization, the adjustment module 250 may adjust a variety of different playback settings, such as equalization settings, virtualization settings, spatialization settings, and so on. For example, the adjustment module 250 may access information identifying a genre assigned to the stream of content and modify playback of the stream of content by adjusting equalization settings of a playback device to settings associated with the identified genre. As another example, the adjustment module 250 may access information identifying signal strength parameters for different frequencies of the stream of content and modify playback of the stream of content by adjusting equalization settings of a playback device to settings using the signal strength parameters.
Thus, as shown in
As described herein, in some example embodiments, the content profile engine 150 determines and/or generate profiles 235 for content 215 to be delivered to the playback device 130, among other things.
In operation 310, the content profile engine 150 accesses a stream of content to be delivered to a playback device 130. For example, the content access module 210 may access the stream of content 215 from the content provider 110 that is providing the stream of content 215 to the playback device 130 over the network 120. As another example, the content access module 210 may access a stream of content 215 from the content provider 110 that is locally stored by the playback device 130. As described herein, the content access module 210 may access various types of content streams, such as audio content streams, video streams, and so on. For example, the content access module 210 may access a stream of songs or other music, a stream of spoken content, a podcast, and so on.
In operation 320, the content profile engine 150 identifies a piece of content within the stream of content to be delivered to the playback device 130. For example, the content identification module 220 may identify the piece of content 215 using a variety of processes, including a comparison of a fingerprint for the content to a set of reference fingerprints associated with known content, such as reference fingerprints generated by the reference fingerprint generator 115. Of course, the content identification module 220 may identify the piece of content using other information, such as metadata (e.g., information identifying an associated title, artist, genre, and so on) associated with the piece of content, information associated with the content provider 110, and so on.
In some example embodiments, the content identification module 220 may identify a certain category type or genre associated with the piece of content 215. For example, instead of identifying the piece of content as a specific piece of content (e.g., a specific song, YouTube′ videos/clips, TV programs, movies, podcast, and so on), the content identification module 220 may identify a genre or category applied to the piece of content 215 using the techniques described herein.
In operation 330, the content profile engine 150 determines a profile for the identified piece of content. For example, the profile module 230 may determine one or more characteristics for an entire portion of the piece of content and/or may determine one or more characteristics for multiple portions of the piece of content 215, such as frames or blocks of frames of the content. For example, the profile 235 may include a first set of one or more characteristics for a first portion of the piece of content 215, a second set of one or more characteristics for a second portion of the piece of content 215, and so on.
In some example embodiments, the profile module 230 renders, generates, creates, and/or otherwise determines the profile 235 for the piece of content 215, such as audio content having a variety of different characteristics. For example, the determined or generated profile 235 may include characteristics associated with equalization (EQ) settings, spatialization settings, virtualization settings, video settings, and so on
In operation 340, the content profile engine 150 delivers the determined profile 235 to the playback device 130. For example, the profile module 230 may deliver the determined profile 235 to the playback device 130 over the network 120 or via other communication channels.
For example, the content profile engine 150 may access a piece of content that is a song to be streamed to a playback device that is a car stereo, identify the song as a specific song, which is associated with a genre of “classical music,” determine a profile that includes a set of equalization settings to be used when playing the song via the car stereo (e.g., signal strength indicators for different frequencies within the song, speaker spatialization settings, and so on), and deliver the profile to the car stereo to be consumed by a network associated with the car stereo, such as a car area network (CAN), which controls the operation of the car stereo.
In another example embodiment, the content profile engine 150 may access a piece of content that is a movie to be streamed via a broadcast network or the internet to a playback device that is a TV set or set top box, identify the movie as being a specific movie as a specific movie, which is associated with a genre of “action”, and as possessing a lot of fast action sequences, determine a profile that includes a set of image processing settings to be used when playing the movie via the TV set or other device (e.g. color palette settings, frame rate upscaling settings, contrast enhancement settings for low contrast scenes, etc.), and deliver the profile to the TV set or other device for adjusting the rendering and thus the content experience by the user.
As described herein, in some example embodiments, the playback modification engine 135 modifies or adjusts the playback of content by the playback device 130, among other things.
In operation 410, the playback modification engine 135 receives and/or accesses a stream of content at or associated with a playback device. For example, the playback modification engine 135 may access a content stream about to be played by the playback device 130.
In operation 420, the playback modification engine 135 accesses profile information associated with the stream of content. For example, the playback modification engine 135 may receive a profile or profile information that is generated by the content profile engine 150. As described herein, the content profile engine 150 may determine the profile by identifying the stream of content based on a comparison of fingerprints associated with the stream of content to a set of fingerprints associated with known content, and select or otherwise determine the profile 235 that is associated with the identified stream of content.
The profile 235 may include various types of information, such as information identifying a category or genre associated with the song, information identifying a mood associated with the song, such as upbeat mood, a relaxed mood, a soft mood, and so on, information identifying signal strength parameters for different frequencies within the content, such as low frequencies for bass and other similar tones, high frequencies for spoken or sung tones, prosodic information and/or language information obtained from spoken content, and so on.
Similarly, the profile 235 may include information identifying a category or genre associated with video, or a segment of a video clip, information identifying a mood associated with the video, information identifying brightness, color palette, color contrast, luminance range, blurriness, display format, video scene information, information obtained from visual object detection and/or recognition, or face detection and or recognition, or broadcast logo detection and/or recognition algorithms, presence and/or content of text or subtitles, presence and/or content of watermarks, and so on
In operation 430, the playback modification engine 135 modifies the playback of the stream of content based on the accessed profile information. For example, the adjustment module 250 may apply information within the profile 235 to modify or adjust the settings of an equalizer of the playback device 130, in order to adjust and/or tune the equalization during the playback of the stream of content 215. In addition to the equalization, the adjustment module 250 may adjust a variety of different playback settings, such as virtualization settings, spatialization settings, and so on.
In some example embodiments, the playback modification engine 135 may access a profile that includes multiple settings that relate to different portions of the content. For example, a song may include portions having different tempos, and the corresponding profile generated for the song may include first portion having a setting of “slow,” a second portion having a setting of “fast,” and a third portion having the setting of “slow,” among other things. The playback modification engine 135, which may receive the profile from a different platform than the playback device 130 may synchronize the profile to the song in order to accurately adjust the playback settings using the multiple settings contained by the profile.
In operation 510, the playback modification engine 135 accesses the profile 235 for the piece of content 215. For example, the playback modification engine 135 may access different types of profiles, such as single setting profiles, multiple setting profiles, and so on.
Referring back to
In operation 530, the playback modification engine 135 modifies the playback of the piece of content 215 using the playback device 130 based on the synchronized profile for the piece of content 215. For example, the adjustment module 250 may apply information within the profile 235 to modify or adjust the settings of an equalizer of the playback device 130, in order to adjust and/or tune the equalization during the playback of the stream of content 215. Likewise, when the content is video, the profile 235 may be used to adjust video-related settings.
Therefore, in some example embodiments, the playback modification engine 135 may utilize complex or multilayered profiles, which include different settings to be applied to different portions of content, in order to dynamically adjust the playback experience of the content at different times during the playback of the content, among other things.
Thus, the systems and methods described herein may provide a platform that facilitates a real-time, or near real-time, processing and delivery of profile information (e.g., a content profile) to a playback device, which utilizes the content profile to adjust a playback experience (e.g., video and/or audio experience) associated with playing the content to users, among other things. This may entail buffering the content before rendering of the content until a profile can be retrieved or predicted. In one embodiment, a specific profile may be applied based on usage history (e.g. the user has consumed a specific content type associated with a specific profile at this time of day/week for the past several days/weeks, so the same profile will be applied again after determination of the usage pattern). In another embodiment, the user has earlier established preference of a specific profile with a specific type of content (e.g. a video clip categorized as TV drama), so going forward content that profile will be automatically applied for the same or similar types of content. Another way of predicting a profile for a user may be through applying collaborative filtering methods, where profiles of other users are inferred on a particular user based on usage patterns, demographic information, or any other information about a user or user group. Yet another embodiment is including device settings such as content source setting, e.g. the selected input on a TV set, such as the input that connects to a set top box, vs. the input that connects to a DVD player or game console, to determine or influence the profile selection. Many playback devices 130 may utilize such a platform, including:
A car stereo system that receives and plays content from an online, satellite, or terrestrial radio station and/or from a locally stored content player (e.g., CD player, MP3 player, and so on);
A home stereo system that receives and plays content from an online, satellite, or terrestrial radio station and/or from a locally stored content player (e.g., CD player, MP3 player, a TV set, a Set-Top-Box (STB), a game console, and so on);
A mobile device (e.g., smart phone or tablet) that receives and plays content (e.g., video and/or audio) from an online, satellite, or terrestrial radio station and/or from a locally stored content player (e.g., MP3 player); and so on.
In some example embodiments, the systems and methods may enhance and/or optimize low quality or low volume recordings and other content. For example, the content profile engine 150 may identify a stream of content (e.g., a homemade podcast) as having low audio quality, and generate a profile for the low quality stream of content that includes instructions to boost the playback of the content. The playback modification engine 135 may then adjust the playback settings of the playback device 130 (e.g., a mobile device) to boost the fidelity of the playback of the low quality content, among other things.
In some example embodiments, the systems and methods may diminish the quality of certain types of content, such as advertisements within a content stream. For example, the content profile engine 150 may identify a stream of content includes a commercial break, and generate a profile for the stream of content that lowers the playback quality during the commercial break. The playback modification engine 135 may then adjust the playback settings of the playback device 130 (e.g., a mobile device) to lower the fidelity of the playback of the content during the commercial break, among other things. Of course, other scenarios may be possible.
The machine 700 includes a processor 702 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio-frequency integrated circuit (RFIC), or any suitable combination thereof), a main memory 704, and a static memory 706, which are configured to communicate with each other via a bus 708. The machine 700 may further include a graphics display 710 (e.g., a plasma display panel (PDP), an LED display, an LCD, a projector, or a CRT). The machine 700 may also include an alphanumeric input device 712 (e.g., a keyboard), a cursor control device 714 (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instrument), a storage unit 716, a signal generation device 718 (e.g., a speaker), and a network interface device 720.
The storage unit 716 includes a machine-readable medium 722 on which is stored the instructions 724 (e.g., software) embodying any one or more of the methodologies or functions described herein. The instructions 724 may also reside, completely or at least partially, within the main memory 704, within the processor 702 (e.g., within the processor's cache memory), or both, during execution thereof by the machine 700. Accordingly, the main memory 704 and the processor 702 may be considered as machine-readable media. The instructions 724 may be transmitted or received over a network 726 (e.g., network 120) via the network interface device 720.
As used herein, the term “memory” refers to a machine-readable medium able to store data temporarily or permanently and may be taken to include, but not be limited to, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, and cache memory. While the machine-readable medium 722 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store instructions (e.g., instructions 724). The term “machine-readable medium” shall also be taken to include any medium that is capable of storing instructions (e.g., software) for execution by the machine (e.g., machine 700), such that the instructions, when executed by one or more processors of the machine (e.g., processor 702), cause the machine 700 to perform any one or more of the methodologies described herein. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, a data repository in the form of a solid-state memory, an optical medium, a magnetic medium, or any suitable combination thereof.
Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.
Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms. Modules may constitute either software modules (e.g., code embodied on a machine-readable medium 722 or in a transmission signal) or hardware modules. A “hardware module” is a tangible unit capable of performing certain operations and may be configured or arranged in a certain physical manner. In various example embodiments, one or more computer systems (e.g., a standalone computer system, a client computer system, or a server computer system) or one or more hardware modules of a computer system (e.g., a processor 702 or a group of processors 701) may be configured by software 724 (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.
In some embodiments, a hardware module may be implemented mechanically, electronically, or any suitable combination thereof. For example, a hardware module may include dedicated circuitry or logic that is permanently configured to perform certain operations. For example, a hardware module may be a special-purpose processor 702, such as a field programmable gate array (FPGA) or an ASIC. A hardware module may also include programmable logic or circuitry that is temporarily configured by software 724 to perform certain operations. For example, a hardware module may include software 724 encompassed within a general-purpose processor or other programmable processor. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
Accordingly, the term “hardware module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. As used herein, “hardware-implemented module” refers to a hardware module. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where the hardware modules comprise a general-purpose processor configured by software to become a special-purpose processor, the general-purpose processor may be configured as respectively different hardware modules at different times. Software may accordingly configure a processor, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.
Hardware modules can provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple hardware modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) between or among two or more of the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions described herein. As used herein, “processor-implemented module” refers to a hardware module implemented using one or more processors.
Similarly, the methods described herein may be at least partially processor-implemented, with a processor being an example of hardware. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented modules. Moreover, the one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an application program interface (API)).
The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the one or more processors or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the one or more processors or processor-implemented modules may be distributed across a number of geographic locations.
Some portions of this specification are presented in terms of algorithms or symbolic representations of operations on data stored as bits or binary digital signals within a machine memory (e.g., a computer memory). These algorithms or symbolic representations are examples of techniques used by those of ordinary skill in the data processing arts to convey the substance of their work to others skilled in the art. As used herein, an “algorithm” is a self-consistent sequence of operations or similar processing leading to a desired result. In this context, algorithms and operations involve physical manipulation of physical quantities. Typically, but not necessarily, such quantities may take the form of electrical, magnetic, or optical signals capable of being stored, accessed, transferred, combined, compared, or otherwise manipulated by a machine. It is convenient at times, principally for reasons of common usage, to refer to such signals using words such as “data,” “content,” “bits,” “values,” “elements,” “symbols,” “characters,” “terms,” “numbers,” “numerals,” or the like. These words, however, are merely convenient labels and are to be associated with appropriate physical quantities.
Unless specifically stated otherwise, discussions herein using words such as “processing,” “computing,” “calculating,” “determining,” “presenting,” “displaying,” or the like may refer to actions or processes of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or any suitable combination thereof), registers, or other machine components that receive, store, transmit, or display information. Furthermore, unless specifically stated otherwise, the terms “a” or “an” are herein used, as is common in patent documents, to include one or more than one instance. Finally, as used herein, the conjunction “or” refers to a non-exclusive “or,” unless specifically stated otherwise.
This patent arises from a continuation of U.S. patent application Ser. No. 15/186,945, (Now U.S. patent Ser. No. ______) which was filed on Jun. 20, 2016, and which is a continuation of U.S. patent application Ser. No. 14/020,420, (Now U.S. Pat. No. 9,380,383), which was filed on Sep. 3, 2013. U.S. patent application Ser. No. 15/186,945 and U.S. patent application Ser. No. 14/020,420 are hereby incorporated herein by reference in their entireties. Priority to U.S. patent application Ser. No. 15/186,945 and U.S. patent application Ser. No. 14/020,420 is hereby claimed.
Number | Date | Country | |
---|---|---|---|
Parent | 15186945 | Jun 2016 | US |
Child | 16983787 | US | |
Parent | 14020420 | Sep 2013 | US |
Child | 15186945 | US |