The present disclosure generally relates to the provision of video content, and more particularly relates to formatting video content for display.
Televisions often are configured to reformat video content to meet their particular display characteristics. To illustrate, a High Definition (HD) television configured for a display resolution of 1280×720 (HD 720) typically will up-convert video content having a lower resolution before it is displayed. Conversely, a television configured for the National Televisions Standard Committee (NTSC) resolution of 720×480 typically will down-convert video content having a higher resolution before it is displayed. Similarly, a television configured for progressive scan display may deinterlace video content having an interlaced scan format before it is displayed.
With the prevalence of cable television providers and satellite television providers, many viewer premises incorporate set top box (STB) devices such as cable receivers or satellite receivers to interface between the service provider's network and the viewer's television. However, while the television to which a STB device is connected may be capable of supporting any of a variety of display formats, conventional STB devices are statically preconfigured to a particular display format, such as 720p (1280×720 progressive scan) or 1080i (1920×1080 interlace scan), regardless of the capabilities of the television. Accordingly, when a conventional STB device receives video content that has a native display format that differs from the preset display format of the STB device, the STB device automatically converts the video content into the preset display format before providing the video content to the television for display. However, as the producer of the video content presumably selected the native format of the video content for aesthetic or practical considerations, the preset display format may not be the most appropriate display format for the television. Moreover, the display format conversion to the preset display format at the STB device can introduce aliasing issues in the converted video content because non-video information such as closed captioning information, can appear as raster lines above cropped video as a result of conversion of lower-definition video content into higher-definition video content.
It will be appreciated that for simplicity and clarity of illustration, elements illustrated in the Figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements are exaggerated relative to other elements. Embodiments incorporating teachings of the present disclosure are shown and described with respect to the drawings presented herein, in which:
The use of the same reference symbols in different drawings indicates similar or identical items.
The numerous innovative teachings of the present application will be described with particular reference to the presently preferred example embodiments. However, it should be understood that this class of embodiments provides only a few examples of the many advantageous uses of the innovative teachings herein. In general, statements made in the specification of the present application do not necessarily delimit any of the various claimed inventions. Moreover, some statements may apply to some inventive features but not to others.
The term “display format,” as used herein, refers to at least a display resolution, a scan format, or a combination thereof. To illustrate, a display format of 720p identifies a display resolution of 1280×720 and a progressive scan format, whereas a display format of 1080i identifies a display resolution of 1920×1080 and an interlaced scan format. Accordingly, the conversion of video content from one display format to a different display format includes at least one of up-conversion of the display resolution, down-conversion of the display resolution, deinterlacing of an interlaced scan format to a progressive scan format, interlacing of a progressive scan format to an interlaced scan format. In addition to a particular display resolution or a particular scan format, a display format also can include other display characteristics, such as a particular frame rate, a particular aspect ratio (e.g., 16:9 and 4:3), and the like.
A display format indicator can include a single value or other identifier representative of more than one characteristic of a display format. To illustrate, a display format indicator can include a single value representing the display format “HD1080i,” thereby identifying a display format with a resolution of 1920×1080 and an interlace scan format. Alternately, a display format indicator can include a set of values, each value associated with a corresponding characteristic of the identified display format. To illustrate, a display format indicator can include a first value representing with a display width of 1920 pixels, a second value representing a display height of 1080 pixels, a third value representing a progressive scan format, a fourth value representing a frame rate of 59.97 frames per second (fps), etc.
For ease of illustration, the example techniques disclosed herein are described in the context of a packet-switched network for the delivery of multimedia content encoded in accordance with, for example, the H.264 encoding standard (also known as the Motion Pictures Experts Group (MPEG) 4 Advanced Video Coding (AVC) standard), whereby a STB device is utilized to interface between a display device, such as a television or computer, and the multimedia distribution network of a service provider. However, these techniques also can be implemented in other contexts without departing from the scope of the present disclosure.
The service provider 102 includes a content server 112 configured to receive and store multimedia content from content producers, such as multimedia content 114 and 116 from content producers 104 and 106, respectively. The multimedia content can include video content, audio content, or a combination thereof. The content server 112 then can provide at least a portion of the multimedia content to a viewer's premises as a multimedia channel represented as a data stream, whereby the data stream can include video content data, audio content data, meta data, or a combination thereof.
In at least one embodiment, the video content data of a data stream comprises encoded video data and the audio content data comprises encoded video data, such as multimedia data encoded in compliance with the H.264 standard. The meta data of the data stream can include, for example, electronic programming guide (EPG) information, closed captioning information, and the like. Further, in at least one embodiment, the meta data includes a display format indicator for at least a portion of the video content data of the data stream, whereby the display format indicator identifies a native or intended display format for the corresponding video content data. To illustrate, the display format indicator can be included in the meta data corresponding to the ancillary data, such as the vertical ancillary (VANC) data located in the vertical blanking region. A single display format indicator can be provided for an entire program (e.g., as a field in a meta data packet at the start of the program). Alternately, in the event that the display format changes as a program progresses, multiple different display format indicators can be provided for a program. In at least one embodiment, the display format indicator can comprise an Active Format Descriptor (AFD) value in accordance with the Advanced Television Standards Committee (ATSC) Digital Television (DTV) standard and the H.264 encoding standard.
The STB device 108 includes a network interface 118, a buffer 120, and a video processing component 121 (e.g., a video processor). The video processing component 121 includes a video decoder 122, a video scaler 124, an aspect ratio controller 126, and a frame rate converter 128. The STB device 108 also includes a controller 130 and a video interface 132. The STB device 108 further can include a central processing unit (CPU) or other processor (not shown), and one or more computer readable mediums (not shown), such as a memory or a hard drive. As described in greater detail below with reference to
The network interface 118 is configured to interface with a network for communications with the service provider 102 and therefore includes an interface compatible with the network type of the service provider 102, such as an Ethernet interface, a digital subscriber line (DSL) modem, a fiber optic interface, and the like. The video interface 132 is configured to interface with, and control the operation of, the display device 110 and therefore includes an interface suitable to the connection capabilities of the display device 110, such as a high-definition multimedia interface (HDMI), a digital video interface (DVI), coaxial cable interface based on the NTSC, PAL, or Sequential Color with Memory (SECAM) standards, an S-video interface, a component video interface, audio outputs, and the like.
The video decoder 122, in one embodiment, is configured to decode encoded video content data received via the network interface 118 and buffered in the buffer 120. To illustrate, if the video content data is encoded in accordance with the H.264 standard, the video decoder 410 can include an H.264-compliant video decoder. In this implementation, the video decoding process can include, for example, bit stream decoding (e.g., Huffman decoding), inverse quantization of the decoded bit stream, application of an inverse discrete cosine transform (IDCT) process, image reconstruction via motion compensation, etc. The resulting decoded display data (i.e., decoded video content data) is provided to the video scaler 124, whereupon the video scaler 124 can up-scale the decoded display data to a higher resolution, down-scale the decoded display data to a lower resolution, or pass the decoded display data through without scaling.
The aspect ratio controller 126 is configured to reformat the display data output by the video scaler 124 to an indicated aspect ratio. This reformatting can be achieved by removing video content at one or more sides of video frames, stretching the video content in either the horizontal or vertical direction by duplication or interpolation of pixel data, by introduction of “black bars” (i.e., “letterboxing” or “pillarboxing”), or a combination thereof.
The frame rate converter 128, in turn, is configured to convert the native frame rate of the decoded display data (as output by, for example, the aspect ratio controller 126) to a desired frame rate. This frame rate conversion can include, for example, a change in the frame rate, a conversion from an interlace scan format to a progressive scan format, conversion from a progressive scan format to an interlace scan format, or a combination thereof. To illustrate, the Phase Alternating Line (PAL) standard provides for a frame rate of 25 frames per second (fps), whereas the National Television Standards Committee (NTSC) standard provides for a frame rate of 30 fps. Accordingly, to convert from a PAL format to a NTSC format, the frame rate converter may add five frames per second to the resulting output display data via frame duplication or frame interpolation. Conversely, to convert from a NTSC format to a PAL format, the frame rate converter may remove five frames per second. Similarly, to convert from an interlaced scan format to a progressive scan format, the frame rate converter 128 can combine the odd line field of a frame and the even line field of the frame as a single frame (and drop or duplicate certain frames if frame rate conversion is also needed). Conversely, to convert from a progressive scan format to an interlaced format, the frame rate converter 128 can separate a single frame in it corresponding odd line field and even line field (and drop or duplicate certain fields if frame rate conversion is also needed). After formatting and conversion as appropriate, the resulting display data is provided to the video interface 132 for transmission to the display device 110.
Although
In at least one embodiment, the controller 130 configures the settings of one or more of the video decoder 122, the video scaler 124, the aspect ratio controller 126, and the frame rate converter 128 via control signals 142, 144, 146, and 148, respectively (referred to herein collectively as “control signals 142-148”). Further, in at least one embodiment, the controller 130 is configured to access a display format indicator for the data stream from the buffer 120 and configure the video processing component 121 so as to maintain the display format identified by the accessed display format indicator for the video content of the data stream. This configuration can include, for example, configuring the video scaler 124 to refrain from up-scaling or down-scaling the display data output by the video decoder 122, configuring the aspect ratio controller 126 to refrain from letterboxing or pillar boxing the display data, and configuring the frame rate converter 128 to refrain from converting the display data from an interlace scan rate format to a progressive scan format or vice-versa, a pull-down or pull-up conversion (e.g., a 3:2 pull-down), and the like. As described below with reference to
As with conventional STB devices, the STB device 108 can include a preset static display format configuration (represented as, for example a value stored in a default configuration register 150 or other storage component) which can be used by the controller 130 to control video processing component 121 so as to achieve the preset, or default, display format. This default display format typically is programmed by a viewer when the STB device 108 is configured by the viewer for use with a particular display device. In instances where a default display format is implemented by the STB device 108, the controller 130 is configured to override the default display format and instead implement the display format identified from the display format indicator accessed from the meta data of the data stream. In one embodiment, each of the video decoder 122, the video scaler 124, the aspect ratio controller 126, and the frame rate converter 128 is configured based on access to the default configuration register 150. In this instance, the controller 130 can override the preset display format by configuring some or all of the control signals 142-148 to signal an override condition.
The display device 110 includes a display interface 152 and a display 154. The display interface 152 is configured to receive the display data from the STB device 108 via the video interface 132 and process the display data for presentation on the display 154. As discussed above, the STB device 108 can be configured to provide display data in its native display format or other indicated display format. In instances where the display device 110 is capable of presenting the display data in its received display format, the display interface 152 can provide the content of the display data to the display 154 in the display format in which it was received. Otherwise, if the display format of the received display data exceeds or is otherwise incompatible with the configuration of the display device 110, an error may occur in the presentation of the display data at the display device 110. In some instances, the display interface 152 may be configured to convert the display format of the display data to a supported display format before provision to the display 154.
At block 208, the STB device 108 begins to receive and buffer the data stream 162. In response to receiving the data stream 162, at block 210 the controller 130 accesses the display format indicator 168 from the buffer 120 to determine the display format intended for the corresponding video content data 164. The controller 130 then configures the video processing component 121 of the STB device 108 via one or more of the control signals 142-148 so that the video processing component 121 processes the video content data 164 to generate display data 170 (
At block 212, the video processing component 121 of the STB device 108 processes the buffered video content data in accordance with its configuration as set by the controller 130 to generate the display data 170 having the display format indicated by the display format indicator 168. The STB device 108 provides the display data 170 to the display device 110 as it is generated. At block 214, the display device 110 receives the display data 170 and provides it for presentation at the display 154. The display device 110 either can present the display data 170 in its received display format or the display device 110 can convert the display format of the display data 170 to be more consistent with the particular capabilities of the display device 110.
At block 216 the controller 130 monitors the data stream 162 as it is received and buffered at the STB device 108 to determine whether another display format indicator has been received in the meta data 166 of the data stream 162. In the event that another display format indicator has been received that identifies a different display format, the method 200 returns to block 210 whereby the controller 130 reconfigures the video processing component 121 based on the new display format. Otherwise, the method 200 returns to block 212 whereby the video processing component 121 continues to process the video content data 164 in accordance with the configuration already in place.
In the example of
The various tiers 502, 504, 506, and 508 communicate with each other via the private network 510 and the public network 512. For instance, the client-facing tier 502 can communicate with the application tier 504 and the acquisition tier 506 via the private network 510. The application tier 504 can also communicate with the acquisition tier 506 via the private network 510. Further, the application tier 504 can communicate with the acquisition tier 506 and the operations and management tier 508 via the public network 512. Moreover, the acquisition tier 506 can communicate with the operations and management tier 508 via the public network 512. In a particular embodiment, elements of the application tier 504 can communicate directly with the client-facing tier 502.
The client-facing tier 502 can communicate with user equipment via a private access network 566, such as an Internet Protocol Television (IPTV) network. In an illustrative embodiment, modems, such as a first modem 514 and a second modem 522 can be coupled to the private access network 566. The client-facing tier 502 can communicate with a first representative STB device 516 via the first modem 514 and with a second representative STB device 524 via the second modem 522. The client-facing tier 502 can communicate with a large number of set-top boxes, such as the representative set-top boxes 516 and 524, over a wide geographic area, such as a regional area, a metropolitan area, a viewing area, or any other suitable geographic area that can be supported by networking the client-facing tier 502 to numerous set-top box devices. In an illustrative embodiment, the client facing tier or any portion thereof can be included at a video head-end office.
In one embodiment, the client-facing tier 502 can be coupled to the modems 514 and 522 via fiber optic cables. Alternatively, the modems 514 and 522 can be digital subscriber line (DSL) modems that are coupled to one or more network nodes via twisted pairs, and the client-facing tier 502 can be coupled to the network nodes via fiber-optic cables. Each set-top box device 516 and 524 can process data received through the private access network 566 via an IPTV software platform such as Microsoft® TV IPTV Edition.
Additionally, the first set-top box device 516 can be coupled to a first display device 518, such as a first television monitor, and the second set-top box device 524 can be coupled to a second display device 526, such as a second television monitor. Moreover, the first set-top box device 516 can communicate with a first remote control 520, and the second set-top box device can communicate with a second remote control 528. In an exemplary, non-limiting embodiment, each set-top box device 516 and 524 can receive data or video from the client-facing tier 502 via the private access network 566 and render or display the data or video at the display devices 518 and 526 to which it is coupled. In an illustrative embodiment, the set-top box devices 516 and 524 can include tuners that receive and decode television programming information for transmission to the display devices 518 and 526. The television tuner can be an NTSC tuner, a SECAM tuner, a PAL tuner, an ATSC tuner, another suitable analog or digital tuner, or any combination thereof. A signal for a television channel can pass through the tuner before the content is displayed on a monitor.
In an exemplary, non-limiting embodiment, STB devices 516 and 524 can receive a data stream including video content data and audio content data from the client-facing tier 502 via the private access network 566. The STB device 516 and 524 can transmit the video content to an external display device, such as the television monitors 518 and 526. The STB devices 516 and 524 can also communicate commands received from the remote control devices 520 and 528 to the client-facing tier 502 via the private access network 566. The STB devices 516 and 524, in one embodiment, implement one or more of the display formatting techniques described above with reference to
In an illustrative embodiment, the client-facing tier 502 can include a client-facing tier (CFT) switch 530 that manages communication between the client-facing tier 502 and the private access network 566 and between the client-facing tier 502 and the private network 510. As shown, the CFT switch 530 is coupled to one or more data servers 532 that store data transmitted in response to user requests, such as video-on-demand material. The CFT switch 530 can also be coupled to a terminal server 534 that provides terminal devices, such as a game application server 568 and other devices with a common connection point to the private network 510. In a particular embodiment, the CFT switch 530 can also be coupled to a video-on-demand (VOD) server 536 that stores or provides VOD content imported by the IPTV system 500. The client-facing tier 502 can also include one or more channel provision servers 580 that transmit video content requested by viewers via their STB devices 516 and 524. In an illustrative, non-limiting embodiment, the channel provision servers 580 can include one or more multicast servers. The client-facing tier 502 further can include an SNMP monitor server 538 (one embodiment of the channel status servers 138 and 140,
As shown in
Further, the second APP switch 540 can be coupled to a domain controller 546 that provides web access, for example, to users via the public network 512. The second APP switch 540 can be coupled to a subscriber and system store 548 that includes account information, such as account information that is associated with users who access the system 500 via the private network 510 or the public network 512. In a particular embodiment, the application tier 504 can also include a client gateway 550 that communicates data directly to the client-facing tier 502. In this embodiment, the client gateway 550 can be coupled directly to the CFT switch 530. The client gateway 550 can provide user access to the private network 510 and the tiers coupled thereto.
In a particular embodiment, the set-top box devices 516 and 524 can access the system via the private access network 566, using information received from the client gateway 550. The private access network 566 provides security for the private network 510. User devices can access the client gateway 550 via the private access network 566, and the client gateway 550 can allow such devices to access the private network 510 once the devices are authenticated or verified. Similarly, the client gateway 550 can prevent unauthorized devices, such as hacker computers or stolen set-top box devices from accessing the private network 510, by denying access to these devices beyond the private access network 566.
For example, when a set-top box device 516 accesses the system 500 via the private access network 566, the client gateway 550 can verify subscriber information by communicating with the subscriber and system store 548 via the private network 510, the first APP switch 538 and the second APP switch 540. Further, the client gateway 550 can verify billing information and status by communicating with the OSS/BSS gateway 544 via the private network 510 and the first APP switch 538. The OSS/BSS gateway 544 can transmit a query across the first APP switch 538 to the second APP switch 540, and the second APP switch 540 can communicate the query across the public network 512 to an OSS/BSS server 564. After the client gateway 550 confirms subscriber and/or billing information, the client gateway 550 can allow the set-top box device 516 access to IPTV content and VOD content. If the client gateway 550 cannot verify subscriber information for the set-top box device 516, for example because it is connected to a different twisted pair, the client gateway 550 can deny transmissions to and from the set-top box device 516 beyond the private access network 566.
The acquisition tier 506 includes an acquisition tier (AQT) switch 552 that communicates with the private network 510. The AQT switch 552 can also communicate with the operations and management tier 508 via the public network 512. In a particular embodiment during operation of the IPTV system, the live acquisition server 554 can acquire television or movie content. The live acquisition server 554 can transmit the television or movie content to the AQT switch 552, and the AQT switch can transmit the television or movie content to the CFT switch 530 via the private network 510.
Further, the television or movie content can be transmitted to the channel provision servers 580, where it can be encoded, formatted, stored, or otherwise manipulated and prepared for communication to the STB devices 516 and 524. The CFT switch 530 can communicate the television or movie content to the modems 514 and 522 via the private access network 566. The STB devices 516 and 524 can receive the television or movie content via the modems 514 and 522, and can transmit the television or movie content to the television monitors 518 and 526. In an illustrative embodiment, video or audio portions of the television or movie content can be streamed to the STB devices 516 and 524.
Further, the AQT switch can be coupled to a VOD importer server 558 that stores television or movie content received at the acquisition tier 506 and communicates the stored content to the VOD server 536 at the client-facing tier 502 via the private network 510. Additionally, at the acquisition tier 506, the VOD importer server 558 can receive content from one or more VOD sources outside the IPTV system 500, such as movie studios and programmers of non-live content. The VOD importer server 558 can transmit the VOD content to the AQT switch 552, and the AQT switch 552, in turn, can communicate the material to the CFT switch 530 via the private network 510. The VOD content can be stored at one or more servers, such as the VOD server 536.
When users issue requests for VOD content via the STB devices 516 and 524, the requests can be transmitted over the private access network 566 to the VOD server 536 via the CFT switch 530. Upon receiving such requests, the VOD server 536 can retrieve the requested VOD content and transmit the content to the STB devices 516 and 524 across the private access network 566 via the CFT switch 530. The STB devices 516 and 524 can transmit the VOD content to the television monitors 518 and 526. In an illustrative embodiment, video or audio portions of VOD content can be streamed to the STB devices 516 and 524.
The operations and management tier 508 can include an operations and management tier (OMT) switch 560 that conducts communication between the operations and management tier 508 and the public network 512. In the embodiment illustrated by
In a particular embodiment during operation of the IPTV system, the live acquisition server 554 can acquire television content from the broadcast service 556. The live acquisition server 554 can transmit the television or movie content to the AQT switch 552, and the AQT switch 552 in turn can transmit the television content to the CFT switch 530 via the private network 510 or to the OMT switch 560 via the public network 512. Further, the television content can be encoded at the D-servers 532, and the CFT switch 530 can communicate the television content to the modems 514 and, 522 via the private access network 566. The set-top box devices 516 and 524 can receive the television content from the modems 514 and 522, decode the television content, and transmit the content to the display devices 518 and 526 according to commands from the remote control devices 520 and 528.
Additionally, at the acquisition tier 506, the video-on-demand (VOD) importer server 558 can receive content from one or more VOD sources outside the IPTV system 500, such as movie studios and programmers of non-live content. The VOD importer server 558 can transmit the VOD content to the AQT switch 552, and the AQT switch 552 in turn can communicate the material to the CFT switch 530 via the private network 510. The VOD content can be stored at one or more servers, such as the VOD server 536.
When a user issues a request for VOD content to set-top box devices 516 and 524, the request can be transmitted over the private access network 566 to the VOD server 536 via the CFT switch 530. Upon receiving such a request, the VOD server 536 can retrieve requested VOD content and transmit the content to the set-top box devices 516 and 524 across the private access network 566 via the CFT switch 530. In an illustrative embodiment, the live acquisition server 554 can transmit the television content to the AQT switch 552, and the AQT switch 552 in turn can transmit the television content to the OMT switch 560 via the public network 512. In this embodiment, the OMT switch 560 can transmit the television content to the TV2 server 562 for display to users accessing the user interface at the TV2 server. For example, a user can access the TV2 server 562 using a personal computer 568 coupled to the public network 512.
The domain controller 546 communicates with the public network 512 via the second APP switch 540. Additionally, the domain controller 546 can communicate via the public network 512 with the personal computer 568. For example, the domain controller 546 can display a web portal via the public network 512 and allow users to access the web portal using the PC 568. Further, in an illustrative embodiment, the domain controller 546 can communicate with at least one wireless network access point 578 over a data network 576. In this embodiment, each wireless network access device 578 can communicate with user wireless devices, such as a cellular telephone 584.
In a particular embodiment, a set-top box device such as the second set-top box device 524 can include an STB processor 571 and an STB memory device 572 that is accessible to the STB processor 571. The set-top box device 524 also includes a STB computer program 574 that is embedded within the STB memory device 572. In a particular embodiment, the STB computer program 574 can contain instructions to receive and execute at least one user television viewing preference that a user has entered by accessing an Internet user account via the domain controller 546. For example, the user can use the PC 568 to access a web portal maintained by the domain controller 546 via the Internet. The domain controller 546 can query the subscriber and system store 548 via the private network 510 for account information associated with the user. In a particular embodiment, the account information can associate the user's Internet account with the second set-top box device 524. For instance, in an illustrative embodiment, the account information can relate the user's account to the second set-top box device 524, by associating the user account with an IP address of the second set-top box device with data relating to one or more twisted pairs connected with the second set-top box device 524, with data related to one or more fiber optic cables connected with the second set-top box device 524, with an alphanumeric identifier of the second set-top box device 524, with any other data that is suitable for associating second set-top box device 524 with a user account, or with any combination of these.
The STB computer program 574 can contain instructions to receive many types of user preferences from the domain controller 546 via the access network 566. For example, the STB computer program 574 can include instructions to receive a request to record at least one television program at a video content storage module such as a digital video recorder (DVR) 582 within the second set-top box device 524. In this example embodiment, the STB computer program 574 can include instructions to transmit the request to the DVR 582, where the television program(s) are recorded. In an illustrative embodiment, the STB computer program 574 can include instructions to receive from the DVR 582 a recording status with respect to one or more of the television programs and to transmit at least one message regarding the status to a wireless device, such as the cellular telephone 584. The message can be received at the CFT switch 530, for instance, and communicated to the domain controller 546 across the private network 510 via the second APP switch 540. Further, the domain controller 546 can transmit the message to the wireless data network 576, directly or via the public network 512, and on to the wireless network access point 578. The message can then be transmitted to the cellular telephone 584. In an illustrative embodiment, the status can be sent via a wireless access protocol (WAP). Further details of the IPTV system are taught in U.S. Patent Application Publication No. 2007/0199041, the disclosure of which is hereby incorporated by reference.
In a networked deployment, the computer system may operate in the capacity of a server or as a client user computer in a server-client user network environment, or as a peer computer system in a peer-to-peer (or distributed) network environment. The computer system 600 can also be implemented as or incorporated into, for example, a STB device. In a particular embodiment, the computer system 600 can be implemented using electronic devices that provide voice, video or data communication. Further, while a single computer system 600 is illustrated, the term “system” shall also be taken to include any collection of systems or sub-systems that individually or jointly execute a set, or multiple sets, of instructions to perform one or more computer functions.
The computer system 600 may include a processor 602, e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both. Moreover, the computer system 600 can include a main memory 604 and a static memory 606 that can communicate with each other via a bus 608. As shown, the computer system 600 may further include a video display unit 610, such as a liquid crystal display (LCD), an organic light emitting diode (OLED), a flat panel display, a solid state display, or a cathode ray tube (CRT). Additionally, the computer system 600 may include an input device 612, such as a keyboard, and a cursor control device 614, such as a mouse. The computer system 600 can also include a disk drive unit 616, a signal generation device 618, such as a speaker or remote control, and a network interface device 620.
In a particular embodiment, as depicted in
In an alternative embodiment, dedicated hardware implementations such as application specific integrated circuits, programmable logic arrays and other hardware devices can be constructed to implement one or more of the methods described herein. Applications that may include the apparatus and systems of various embodiments can broadly include a variety of electronic and computer systems. One or more embodiments described herein may implement functions using two or more specific interconnected hardware modules or devices with related control and data signals that can be communicated between and through the modules, or as portions of an application-specific integrated circuit. Accordingly, the present system encompasses software, firmware, and hardware implementations.
In accordance with various embodiments of the present disclosure, the methods described herein may be implemented by software programs executable by a computer system. Further, in an exemplary, non-limited embodiment, implementations can include distributed processing, component/object distributed processing, and parallel processing. Alternatively, virtual computer system processing can be constructed to implement one or more of the methods or functionality as described herein.
The present disclosure contemplates a computer-readable medium that includes instructions 624 or receives and executes instructions 624 responsive to a propagated signal, so that a device connected to a network 626 can communicate voice, video or data over the network 626. Further, the instructions 624 may be transmitted or received over the network 626 via the network interface device 620.
While the computer-readable medium is shown to be a single medium, the term “computer-readable medium” includes a single medium or multiple media, such as a centralized or distributed database, and/or associated caches and servers that store one or more sets of instructions. The term “computer-readable medium” shall also include any medium that is capable of storing, encoding or carrying a set of instructions for execution by a processor or that cause a computer system to perform any one or more of the methods or operations disclosed herein.
In a particular non-limiting, exemplary embodiment, the computer-readable medium can include a solid-state memory such as a memory card or other package that houses one or more non-volatile read-only memories. Further, the computer-readable medium can be a random access memory or other volatile re-writable memory. Additionally, the computer-readable medium can include a magneto-optical or optical medium, such as a disk or tapes or other storage device to capture carrier wave signals such as a signal communicated over a transmission medium. A digital file attachment to an e-mail or other self-contained information archive or set of archives may be considered a distribution medium that is equivalent to a tangible storage medium. Accordingly, the disclosure is considered to include any one or more of a computer-readable medium or a distribution medium and other equivalents and successor media, in which data or instructions may be stored.
Although the present specification describes components and functions that may be implemented in particular embodiments with reference to particular standards and protocols, the invention is not limited to such standards and protocols. For example, standards for Internet and other packet switched network transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP) represent examples of the state of the art. Such standards are periodically superseded by faster or more efficient equivalents having essentially the same functions. Accordingly, replacement standards and protocols having the same or similar functions as those disclosed herein are considered equivalents thereof.