Determination of receiving live versus time-shifted media content at a communication device
Summary by NHIP
Media Content Timing Detection
The method determines whether received media is live or time-shifted by comparing content attributes against broadcast schedules. Distinctive elements include identifying the media content via attribute information and deciding status based on whether that identity corresponds to a scheduled program broadcast at the specific reception time.
Claim Score by NHIP
Abstract
A method of determining whether live media content or time-shifted media content is received at a computing device such as a server or media player is presented. Attribute information concerning media content received at a communication device at a specific time is received and compared schedule information. The received media content is determined to be live media content if the media content identity agrees with the schedule information. The received media content is determined to be time-shifted media content if the media content identity does not agree with the schedule information.

Term
Projected expiry 27 October 2029.
- Priority
- Filed
- Granted
- Today
- Projected expiry
20 claims: 2 independent, 18 dependent
- 1A method executable by a computing device to determine whether media content received at a specific time is live media content or time-shifted media content, the method comprising:receiving attribute information concerning the media content at the computing device, wherein the attribute information identifies the media content;comparing the attribute information identifying the media content with schedule information describing programs broadcast at the specific time, wherein the comparing is performed by the computing device;determining, using the computing device, that the received media content is live media content if the attribute information identifying the media content corresponds to a program described in the schedule information that is broadcast at the specific time;and determining, using the computing device, that the received media content is time-shifted media content if the attribute information identifying the media content does not correspond to a program described in the schedule information that is broadcast at the specific time.
- 16Broadest claimClaim Score 69, broad(NHIP)A computing device comprising:a communication interface configured to receive attribute information concerning media content received at a specific time, wherein the attribute information is derived from received media content, and wherein the attribute information identifies the received media content;and control circuitry configured to compare the identity of the attribute information with schedule information describing broadcast programming to thereby determine that the received media content is live media content if the attribute information corresponds to a program identified in the schedule information that is broadcast at the specific time, and to determine that the received media content is time-shifted media content if the attribute information does not correspond to the program identified in the schedule information that is broadcast at the specific time.
Independent claims2
150 paragraphs in 3 sections, as filed
BACKGROUND
0001Video place-shifting devices, including the Slingbox® by Sling Media Inc., allow users to access a video content source, such as a satellite or cable television set-top box, standalone digital video recorder (DVR), or digital video disc (DVD) player, from a remote location. For example, a user on a business trip far from home may use a desktop or laptop computer, cellular phone, personal digital assistant (PDA), or other communication device to communicate by way of the Internet, cellular network, or other communication network with a place-shifting device attached to a television set-top box located in the user's home. Through this communication, the user may control the set-top box to perform a variety of functions, including setting recording timers for an internal DVR, viewing audio/video programming being received live at the set-top box, and viewing programs previously recorded on the set-top box DVR. To view this programming, the set-top box transfers the programming over the communication network to the communication device, which presents the programming to the user by way of an output display, such as a computer screen.
0002In some cases, knowing whether a user is watching live or previously-recorded programming may provide desirable information regarding a user's viewing habits, the user's operation of the communication device, and other areas of interest. However, in the above example, since all programming viewed at the communication device is transmitted over the same communication network from the set-top box, determining whether a user is viewing live or recorded programming at any particular time may be problematic.
BRIEF DESCRIPTION OF THE DRAWINGS
0003Many aspects of the present disclosure may be better understood with reference to the following drawings. The components in the drawings are not necessarily depicted to scale, as emphasis is instead placed upon clear illustration of the principles of the disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views. Also, while several embodiments are described in connection with these drawings, the disclosure is not limited to the embodiments disclosed herein. On the contrary, the intent is to cover all alternatives, modifications, and equivalents.
0004<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram of a communication node according to an embodiment of the invention.
0005<figref idref="DRAWINGS">FIG. 2</figref> is a flow diagram of a method according to an embodiment of the invention for determining whether live media content or time-shifted media content is received at a communication device.
0006<figref idref="DRAWINGS">FIG. 3</figref> is a block diagram of a television content system according to an embodiment of the invention.
0007<figref idref="DRAWINGS">FIG. 4</figref> is a block diagram of the place-shifting device of the television content system of <figref idref="DRAWINGS">FIG. 3</figref> according to an embodiment of the invention.
0008<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram illustrating software components of the place-shifting device of <figref idref="DRAWINGS">FIG. 4</figref> according to an embodiment of the invention.
0009<figref idref="DRAWINGS">FIG. 6</figref> is an example of a screen display depicting an information banner according to an embodiment of the invention.
0010<figref idref="DRAWINGS">FIG. 7</figref> is a block diagram of the communication device of <figref idref="DRAWINGS">FIG. 3</figref> according to an embodiment of the invention.
0011<figref idref="DRAWINGS">FIG. 8</figref> is a block diagram of a storage module of the communication device of <figref idref="DRAWINGS">FIG. 7</figref> according to an embodiment of the invention.
0012<figref idref="DRAWINGS">FIG. 9</figref> is a block diagram illustrating transitions between media content items according to an embodiment of the invention.
0013<figref idref="DRAWINGS">FIG. 10</figref> is a block diagram of a transition detection module of the place-shifting device of <figref idref="DRAWINGS">FIG. 4</figref> according to an embodiment of the invention.
0014<figref idref="DRAWINGS">FIGS. 11A-11C</figref> are diagrams illustrating a technique for detecting changes in color components of images according to an embodiment of the invention.
0015<figref idref="DRAWINGS">FIG. 12</figref> is a diagram illustrating a process for capturing and buffering banner images according to an embodiment of the invention.
0016<figref idref="DRAWINGS">FIG. 13</figref> is a diagram illustrating a process for transmitting banner images according to an embodiment of the invention.
0017<figref idref="DRAWINGS">FIGS. 14A-14C</figref> depict a flow diagram of a method according to an embodiment of the invention for determining whether received media content is live or recorded.
0018<figref idref="DRAWINGS">FIG. 15</figref> is a block diagram of the communication device of the television content system of <figref idref="DRAWINGS">FIG. 3</figref> according to an embodiment of the invention.
DETAILED DESCRIPTION
0019The enclosed drawings and the following description depict specific embodiments of the invention to teach those skilled in the art how to make and use the best mode of the invention. For the purpose of teaching inventive principles, some conventional aspects have been simplified or omitted. Those skilled in the art will appreciate variations of these embodiments that fall within the scope of the invention. Those skilled in the art will also appreciate that the features described below can be combined in various ways to form multiple embodiments of the invention. As a result, the invention is not limited to the specific embodiments described below, but only by the claims and their equivalents.
0020<figref idref="DRAWINGS">FIG. 1</figref> provides a block diagram of a communication node <b>100</b> according to an embodiment of the invention. In one example, the communication node <b>100</b> is a component of a larger media content system in which media content is captured and transmitted over a communication link to a communication device configured to present the media content to a user. In one embodiment, the communication node <b>100</b> is communicatively coupled with the communication device, as well as a communication component configured to transmit the media content to the communication device. In other examples, the communication node <b>100</b> may be the communication device, the transmitting communication component, or both. Further, the communication node <b>100</b> may be one or more separate devices working cooperatively.
0021The media content being received may be any type of content of interest to a user. Examples include audio and/or visual content, such audio/video programs broadcast or otherwise distributed by way of a terrestrial (“over-the-air”), cable, satellite, or Internet television network. Other types of media content include, but are not limited to, video-only content, audio-only content (such as terrestrial or satellite radio) and textual content.
0022<figref idref="DRAWINGS">FIG. 2</figref> is a flow diagram of a method <b>200</b> for determining whether live media content or time-shifted content is received at a communication device. While the method <b>200</b> is discussed below in conjunction with the environment of the communication node <b>100</b> shown in <figref idref="DRAWINGS">FIG. 1</figref>, the method <b>200</b> may be utilized with other devices not explicitly discussed herein.
0023In the method <b>200</b>, the communication node <b>100</b> receives attribute information <b>102</b> concerning media content received at a communication device at a specific time (operation <b>202</b>). The attribute information <b>102</b> includes an identifier of a channel for carrying the received media content, and an identity of the received media content. The communication node <b>100</b> also receives schedule information <b>104</b> including an identity of media content carried at the specific time over the channel identified in the attribute information (operation <b>204</b>). The node <b>100</b> compares the media content identity from the attribute information <b>102</b> with the media content identity from the schedule information <b>104</b> (operation <b>206</b>). If the media content identity from the attribute information <b>102</b> and the media content identity from the schedule information <b>104</b> agree (operation <b>206</b>), the node <b>100</b> determines that the received media content is live media content (operation <b>208</b>). Otherwise, the node <b>100</b> determines that the received media content is time-shifted media content (operation <b>210</b>). In another embodiment, a computer-readable storage medium may have encoded thereon instructions for at least one processor or other control circuitry of the communication node <b>100</b> of <figref idref="DRAWINGS">FIG. 1</figref> to implement the method <b>200</b>.
0024Depending on the implementation, either or both of the attribute information <b>102</b> and the schedule information <b>104</b> may be received from a source external to the communication node <b>100</b>, as shown in <figref idref="DRAWINGS">FIG. 1</figref>, or generated within the node <b>100</b>. Similarly, the determination <b>106</b> as to whether the received media content is live or time-shifted may be transferred to another component external to the communication node <b>100</b>, or consumed internally within the node <b>100</b> for a subsequent operation or purpose.
0025As a result of at least some embodiments of the method <b>200</b>, the communication node <b>100</b> may determine whether a communication device receiving media content remotely from a media source via a communication link is receiving that content “live” (e.g., while being broadcast) or in a time-delayed manner (e.g., replayed from a recording on a storage medium, such as a DVR). The node <b>100</b> or another device may then employ such information to perform other functions, including, but not limited to, providing media content recommendations to a user of the receiving communication device, adjusting transmission of subsequent media content from the media content source, and controlling subsequent transmission of the received media content. Other advantages may be recognized from the various implementations of the invention discussed in greater detail below.
0026<figref idref="DRAWINGS">FIG. 3</figref> is a block diagram of a television content system <b>300</b> according to an embodiment of the invention. The television content system <b>300</b> includes a communication device <b>340</b>, a communication node <b>350</b>, a place-shifting device <b>310</b>, and a television receiver <b>320</b> coupled together via a communication network <b>330</b>. Coupled with the receiver <b>320</b> may be a television <b>333</b>. Also included in some implementations of the television content system <b>300</b> are an electronic program guide (EPG) server <b>355</b> and a video optical character recognition (video OCR, or VOCR) server <b>360</b>. Generally, the communication node <b>350</b> represents an example of the communication node <b>100</b> of <figref idref="DRAWINGS">FIG. 1</figref>.
0027Typically, the television receiver <b>320</b> provides one of a number of television channels <b>311</b>A, <b>311</b>B, . . . , <b>311</b>N, as selected by a user of a closely-located television <b>333</b>, to the television <b>333</b> over an audio/video connection <b>335</b> for viewing. Examples of the television receiver <b>320</b> may include, but are not limited to, a satellite, cable, or terrestrial (“over-the-air”) set-top box, and a standalone DVR unit. As a result, the television receiver <b>320</b> may provide television programming from at least one audio/video source, such as a satellite in geosynchronous orbit, a coaxial cable head-end, or a terrestrial antenna. In the example of <figref idref="DRAWINGS">FIG. 3</figref>, the television receiver <b>320</b> includes a DVR unit <b>332</b> so that programs received over one or more of the television channels <b>311</b> may be recorded on the DVR <b>332</b> for viewing at some point in the future.
0028The place-shifting device <b>310</b> of <figref idref="DRAWINGS">FIG. 3</figref> facilitates communication between the television receiver <b>320</b> and the communication device <b>340</b>. More specifically, the place-shifting device <b>310</b> may receive user commands <b>316</b> from the communication device <b>340</b> via the communication network <b>330</b> to perform various operations, including selecting one of the television channels <b>311</b> for viewing selected media content <b>312</b>. Further, the place-shifting device <b>310</b> may be coupled with the television receiver <b>320</b> by way of another audio/video connection <b>324</b> so that selected media content <b>312</b> captured by way of the receiver <b>320</b> may be forwarded to the communication device <b>340</b> over the communication network <b>330</b>. In another example, the place-shifting device <b>310</b> may provide an audio/video output (not shown in <figref idref="DRAWINGS">FIG. 3</figref>) to pass audio/video programming received from the television receiver <b>320</b> to the television <b>333</b>. Such an arrangement may be advantageous if the receiver <b>320</b> only provides a single audio/video output connection <b>324</b>.
0029In other arrangements, the place-shifting device <b>310</b> may incorporate the functionality of the television receiver <b>320</b>, or vice-versa, thus allowing a single device to receive the multiple channels <b>311</b> of television programming, select one of the channels <b>311</b> under the direction of the user of the communication device <b>340</b>, and transfer the content <b>312</b> of the selected channel <b>311</b> over the communication network <b>330</b> to the communication device <b>340</b>.
0030To allow the user of the communication device <b>340</b> to control the television receiver <b>320</b>, the place-shifting device <b>310</b>, such as one of several models of Slingbox® provided by Sling Media Inc., may also produce infrared remote control signals over a wireless connection <b>322</b> so that the place-shifting device <b>310</b> may transmit the user commands <b>316</b> received over the communication network <b>330</b> to the receiver <b>320</b> by way of an infrared remote control device input of the receiver <b>320</b>. Generally, these commands are the same as those transmitted by a remote control device that is normally supplied to the user with the receiver <b>320</b>. Thus, the place-shifting device <b>310</b> operates as a sort of remote control emulator under the control of the communication device <b>340</b>. In other examples, other forms of remote control signals, such as radio frequency (RF) signals or acoustic signals, may be employed in other implementations.
0031In addition, other devices not shown in <figref idref="DRAWINGS">FIG. 3</figref> that act as sources of television programming may be coupled with the place-shifting device <b>310</b> for ultimate transmission of the programming to the communication device <b>340</b>. These devices may include, but are not limited to, DVD players or jukeboxes, game consoles, music servers, satellite radio receivers, camcorders, and video cassette recorders (VCRs).
0032In <figref idref="DRAWINGS">FIG. 3</figref>, the communication device <b>340</b> may be any device capable of communicating with the place-shifting device <b>310</b> over the communication network <b>330</b>, including, but not limited to, desktop or laptop computers, cellular phones, and PDAs. The communication device <b>340</b> originates the user commands <b>316</b> intended for the television receiver <b>320</b> by transmitting such commands <b>316</b> over the communication network <b>330</b> to the place-shifting device <b>310</b>, which may then transform the commands <b>316</b> from a format compatible with the network <b>330</b> for use over the wireless connection <b>322</b>. In one example, the communication network <b>330</b> may be a wide-area network (WAN), such as the Internet. In that case, the commands transmitted by the communication device <b>340</b> to the place-shifting device <b>310</b> may be formatted as digital data in one or more data packets conforming to the Transmission Control Protocol/Internet Protocol (TCP/IP), although other communication protocols may be employed to similar end in other embodiments. The place-shifting device <b>310</b> then converts that data into a form acceptable to the receiver <b>320</b> as the user commands <b>316</b>. The commands <b>316</b> may direct the television receiver <b>320</b> to capture and transfer programming from one of the channels <b>311</b> to the place-shifting device <b>310</b>, store the captured programming on the DVR <b>332</b>, transfer programming currently residing on the DVR <b>332</b> to the place-shifting device <b>310</b>, and other functions. Similarly, the selected television content <b>312</b> may be transferred or streamed over the communication network <b>330</b> by way of these same or related communication protocols.
0033In some embodiments, the content system <b>300</b> of <figref idref="DRAWINGS">FIG. 3</figref> may include the EPG server <b>355</b>, which is configured to store schedule information regarding the programs that are to be broadcast over the channels <b>311</b>. This information may include the name or title of each program, the channel <b>311</b> over which each program is to be broadcast, and the time period during which the program is to be broadcast. Other information, such as viewer ratings, content ratings, brief descriptions of the content, and the like, may be included in the schedule information. In one implementation, the EPG server <b>355</b> may carry such information for programs for a predetermined period of time into the future, such as the next seven days. Additionally, the EPG server <b>355</b> may carry schedule information for programs that have already been broadcast within a predetermined period of time, such as the previous seven days. The EPG server <b>355</b> is also configured to provide this information to other devices, such as the communication node <b>350</b> of <figref idref="DRAWINGS">FIG. 3</figref>, via the communication network <b>330</b> upon request. More details concerning the use of the schedule information are provided below in conjunction with the operation of the communication node <b>350</b>.
0034The television content system <b>300</b> may also include the VOCR server <b>360</b> mentioned above. The VOCR server <b>360</b> is configured to capture text from visual information of the received content <b>312</b>. Such text may be gathered from, for example, an information “banner” provided by the television receiver <b>320</b>, such as when a user changes the selected channel <b>311</b> for receiving a particular program. More specifically, the VOCR server <b>360</b> may employ optical character recognition software to extract the text from the information banner. The banner may provide several items of information, including a channel call-sign (such as “CNN” or “TBS”), a channel number, and a name or title of the program currently being broadcast. More details concerning the receipt of the banner and generation of the displayed text are provided below.
0035In other implementations, the functionality of the VOCR server <b>360</b> and the EPG server <b>355</b> may be incorporated into one or more of the other components of the television content system <b>300</b>, such as the communication node <b>350</b>, the communication device <b>340</b>, and the place-shifting device <b>310</b>. In yet other embodiments, video OCR functionality may not be provided if attribute data indicating the identity, as well as possible other attributes, of the received content <b>312</b> is available. For example, attribute information in the form of content metadata, or attribute data transmitted separate from the received content <b>312</b>, may be available from the television receiver <b>320</b> or the place-shifting device <b>310</b>.
0036The communication network <b>330</b> may incorporate any suitable networking technology, including, but not limited to, cable or digital subscriber line (DSL) gateways, wide-area mobile networks (such as GPRS, EDGE, 1X-RTT, 1x-EVDO, and FOMA 2.5G and 3G cellular networks), Wi-Fi and other public broadband access locations, WiMAX networks, local-area networks (LANs), and other connections to the Internet or other wide-area networks (WANs).
0037<figref idref="DRAWINGS">FIG. 4</figref> is a block diagram illustrating the place-shifting device <b>310</b> according to one embodiment. The space-shifting device <b>310</b> suitably includes an input interface <b>405</b>, a tuner <b>410</b>, a decoder <b>415</b>, a memory <b>430</b>, a processor <b>420</b>, a controller interface <b>435</b>, and a network interface <b>425</b>.
0038<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram illustrating exemplary software components of the place-shifting device <b>310</b> that may be stored in the memory <b>430</b>, according to one embodiment. The software components of this embodiment can include, among other components, a transition detect module <b>552</b>, a banner processor module <b>556</b>, a network condition detector <b>560</b>, an attribute extractor <b>564</b>, an operating system <b>568</b>, and a video signal processor module <b>572</b>. These software components of the place-shifting device <b>310</b> may also be implemented as hardware or any combination of hardware and software. Also, two or more software components of the place-shifting device <b>310</b> may be combined into a single component.
0039The transition detect module <b>552</b> detects the transition in the media item received from the television receiver <b>320</b>, as described below in detail with reference to <figref idref="DRAWINGS">FIG. 8</figref>. The media item received from the television receiver <b>320</b> may change for various reasons, such as switching of the channel or termination of scheduled broadcasting time. When the transition in the media item occurs, the attribute data of the media item may be stale and no longer be valid for the new media item. Therefore, updated attribute data of the new media item is generally obtained after the transition of the media item. The transition detect module <b>552</b> detects the transition of the media item in the A/V signal from the television receiver <b>320</b>, and informs the banner processor module <b>556</b> and the attribute extractor <b>564</b> to obtain the updated attribute data of the new media item.
0040In one embodiment, the banner processor module <b>556</b> is responsible for processing the portion of the image including the banner information (“banner image”) for extracting the attribute data. The banner information is an on-screen display that may be embedded or otherwise presented by the television receiver <b>320</b> automatically upon certain events or in response to the user's inputs. Referring to <figref idref="DRAWINGS">FIG. 6</figref>, the banner information <b>620</b> of an image <b>610</b> includes information such as the channel name (e.g., “CNN”) or channel number (e.g., 8). In some media sources, such as the television receiver <b>320</b> or set-top box, such banner information is generated when the user changes the current channel of the television receiver <b>320</b> or requests generation of a menu screen. More specifically, the user may change the channel of the television receiver <b>320</b> using a remote command from the communication device <b>340</b> transmitted over the network <b>330</b> to the place-shifting device <b>310</b>. The place-shifting device <b>310</b> may relay the remote command to the television receiver <b>320</b> via the IR emitter or any other connection such as Ethernet, Universal Serial Bus (USB), or an RS-232 serial controller. In response, the television receiver <b>320</b> generates A/V signals that include the banner information <b>620</b>.
0041The text can typically be extracted more accurately when the banner image is in higher resolution. Therefore, high-resolution banner images may be provided, when practical, for accurate extraction of the text data (and, hence, generation of accurate attribute data) from the banner image. Referring back to <figref idref="DRAWINGS">FIG. 5</figref>, in one embodiment, the banner processor module <b>556</b> tags a portion of the banner image <b>610</b> including the banner information <b>620</b>. The tagged portion of the banner image <b>610</b> is then encoded at the video signal processor module <b>572</b> in higher quality of resolution compared to other portions of the image <b>610</b>. In another embodiment, the banner processor module <b>556</b> does not interrupt or otherwise modify its normal video encoding and transmission operation of the media item, but instead makes a copy of a portion of the video data containing the banner information <b>620</b> prior to encoding of the video data, and then encodes the copy a second time in a high quality, as described below in detail with reference to <figref idref="DRAWINGS">FIG. 14</figref>.
0042In various embodiments, the banner image <b>610</b> may not be sent to the communication device <b>340</b> or to the VOCR server <b>360</b>. Instead, the banner processor module <b>556</b> of the place-shifting device <b>310</b> processes the banner image <b>610</b> and extracts the attributes of the media item using optical character recognition technology. By processing the banner image <b>610</b> at the place-shifting device <b>310</b>, the banner images <b>610</b> need not be transmitted to the VOCR server <b>360</b> or the communication device <b>340</b>.
0043Extracting the attributes at the place-shifting device <b>310</b> is advantageous in some cases because transmission of the high-quality banner image <b>610</b> over the network <b>330</b> may no longer be needed, thereby reducing the network bandwidth used by the television content system <b>300</b>. In other embodiments, however, the VOCR function may be performed at the communication device <b>340</b> or at a separate VOCR server <b>360</b>, which may receive the banner from either the place-shifting device <b>310</b> or the communication device <b>340</b>. Such embodiments are described more fully below.
0044In one embodiment, the banner processor module <b>556</b> learns the layout of the banner information <b>620</b> within the banner image <b>610</b>. Before the layout of the banner is learned, all the text on the banner image <b>610</b> may be extracted and used for further processing at the outset. Over time, however, the banner processor module <b>556</b> may learn the layout of the banner, especially the location of the text of the key attributes. The banner processor module <b>556</b> may learn the layout of the banner information <b>620</b> based on consistent matching of the text in certain locations of the banner image and the attributes determined from other types of the attribute data. For example, the banner processor module <b>556</b> tracks the location of the banner information <b>620</b> that consistently matches the channel names in the EPG data, and then learns that the channel names are displayed at such location. Based on such learning, the banner processor module <b>556</b> selects a portion of the image that is predicted as including the banner information <b>620</b>. Only the predicted portion of the image may then be subject to further processing at the banner processor module <b>556</b> or sent to the communication device <b>340</b> to extract the attribute data, thereby conserving processing resources. In this way, the attribute data can be extracted efficiently and accurately without a priori knowledge about the location of the banner information <b>620</b> within the banner image <b>610</b>.
0045In one or more embodiments, the communication device <b>340</b> forces the television receiver <b>320</b> to generate the banner image <b>610</b> via the place-shifting device <b>310</b>. Alternately or additionally, the place-shifting device <b>310</b> may automatically generate the banner image <b>610</b> without additional instruction from the communication device <b>340</b> in certain circumstances (e.g., near the top or bottom of the hour, or at other times when programming changes are expected). In either case, the banner image <b>610</b> may be forced when the transition to a new media item is suspected. If the television receiver <b>320</b> does not automatically provide banner information after the suspected event or if the place-shifting device <b>310</b> cannot reliably capture a banner image <b>610</b> following the transition of the media item, a command <b>316</b> may be sent from the communication device <b>340</b> to the television receiver <b>320</b> via the place-shifting device <b>310</b> forcing the television receiver <b>320</b> to generate the banner image <b>610</b>. For example, an ‘info command’ may be sent from the place-shifting device <b>310</b> to the television receiver <b>320</b> via the IR emitter to force the banner image <b>610</b>. In one embodiment, the banner processing module <b>556</b> also performs preprocessing of the image for more accurate recognition of the text by the communication device <b>340</b> or the VOCR server <b>360</b>.
0046In one or more embodiments where the banner image <b>610</b> is transmitted to the communication device <b>340</b> or the VOCR server <b>360</b> to extract the attribute data, the network condition detector <b>560</b> operates in conjunction with the network interface <b>425</b> to determine the condition and bandwidth of the communication network <b>330</b>. If the condition and bandwidth of the network <b>330</b> allow simultaneous transfer of the datastream of the selected media content <b>312</b> from the television receiver <b>320</b> (as converted by the video signal processing module <b>572</b>) and the banner image data, the media item datastream and the banner image data are sent over the network <b>330</b> in the same channel. In contrast, if the condition and bandwidth of the network <b>330</b> does not allow simultaneous transfer of the media item datastream and the banner image data over the network <b>330</b>, the media item data is given priority over the banner image data. That is, the banner image data is sent over the network <b>330</b> in a separate channel using the bandwidth of the network <b>330</b> available after transmitting the media item data.
0047The attribute extractor <b>564</b> suitably extracts the attribute data from the A/V signals received from the television receiver <b>320</b>. The attribute data refers to data that can be used to identify the identity or any other attributes of the media content or item <b>312</b>. In one embodiment, the attribute extractor <b>564</b> extracts electronic program guide (EPG) data, closed caption data, and XDS (extended Data Services) data from the A/V signals from the television receiver <b>320</b>. The attribute data extracted by the attribute extractor <b>564</b> is sent to the communication device <b>340</b> over the network <b>330</b> to determine the attributes of the received media content <b>312</b>.
0048The operating system <b>568</b> manages resources of the place-shifting device <b>310</b>. The operating system <b>568</b> provides a platform on which other software components of the place-shifting device <b>310</b> may operate.
0049The video signal processor module <b>572</b> converts the A/V signals received from the television receiver <b>320</b> into a datastream suitable for transmission over the network <b>330</b>. The conversion includes scaling of the images, encoding of the video sequence, and compressing of the video sequence.
0050<figref idref="DRAWINGS">FIG. 7</figref> is a block diagram of an exemplary communication device <b>340</b> according to one embodiment. The communication device <b>340</b> includes, among other components, a processor <b>710</b>, a memory <b>740</b>, a storage module <b>720</b>, a communication interface <b>750</b>, an input module <b>730</b>, and a display module <b>760</b>. Not all components of the communication device <b>340</b> are shown in <figref idref="DRAWINGS">FIG. 7</figref>, and certain components not necessary for illustration are omitted herein. Each of the components of the communication device <b>340</b> may be communicatively coupled though a bus <b>770</b>.
0051The processor <b>710</b> may be any processing unit, such as a microprocessor or digital signal processor (DSP) capable of executing instructions to perform the functions described hereinafter. The memory <b>740</b> is digital memory such as a static or dynamic random access memory (RAM). The storage module <b>720</b> is nonvolatile storage media, such as, for example, a flash memory or a hard disk drive (e.g., magnetic hard drive). The storage module <b>720</b> typically stores software components, as described below with reference to <figref idref="DRAWINGS">FIG. 8</figref>, to be executed by the processor <b>710</b>. The input module <b>730</b> can be a keyboard, a touch-sensitive screen, or any other type of input device, and the display module <b>760</b> can be a flat panel display such as liquid crystal display (LCD) device or any other type of display device.
0052The communication interface <b>750</b> may include one or more wired or wireless communication interfaces used to communicate with the place-shifting device <b>310</b> or the communication node <b>350</b> over the network <b>330</b>. For example, the communication interface <b>750</b> may include an Ethernet (e.g., 10Base-T interface and/or a Wi-Fi interface (e.g., IEEE 802.11b/g)) for communication via the Internet.
0053<figref idref="DRAWINGS">FIG. 8</figref> illustrates the software components of the communication device <b>340</b> according to one embodiment. The storage module <b>720</b> in the communication device <b>340</b> includes, among other components, a media player/editor <b>810</b>, an operating system <b>820</b>, a media attribute processor <b>830</b>, a media buffer <b>850</b>, and a banner buffer <b>860</b>. In one embodiment, the storage module <b>820</b> further includes a banner text generator <b>870</b>. The media player/editor <b>810</b> allows the users to play, clip, or edit the media item received from the place-shifting device <b>310</b> over the network <b>330</b>. The media player/editor <b>810</b> operates in conjunction with the media buffer <b>850</b> so that the user may play, clip, or edit the portion of the received media content <b>312</b> that is buffered in the media buffer <b>850</b>. After selecting, clipping, or editing the received content <b>312</b>, the media player/editor <b>810</b> stores the content item <b>312</b> in the communication device <b>340</b> or uploads the media item <b>312</b> to another device for storing and sharing. The media item <b>312</b> may be further processed (e.g., transcoded or edited) before uploading.
0054In one embodiment, the media player/editor <b>810</b> receives user inputs for invoking operations at the television receiver <b>320</b>. For example, when the user wants to change the channel <b>311</b> of the television receiver <b>320</b>, the user may change the channel <b>311</b> of the receiver <b>320</b> currently being viewed using the user interface of the media player/editor <b>810</b> to send user commands <b>316</b> to the place-shifting device <b>310</b>. The place-shifting device <b>310</b> relays the commands <b>316</b> to the television receiver <b>320</b> via the IR emitter or other controllers, as described above with reference to <figref idref="DRAWINGS">FIG. 3</figref>.
0055The operating system <b>820</b> manages resources of the communication device <b>340</b>. Further, the operating system <b>820</b> provides a platform on which other software components of the communication device <b>340</b> may operate.
0056In one embodiment, the media attribute processor <b>830</b> functions to determine the identity or attributes of the media item based on the attribute data from one or more sources. The attribute data may include, among other data, EPG data, closed caption data, XDS (eXtended Data Services) data, and data filtered and extracted from the banner image <b>610</b> using the banner text generator <b>870</b>, VOCR server <b>360</b> and/or any other source as appropriate. As described below in detail, the banner text generator <b>870</b> or the VOCR server <b>360</b> recognizes the text included in the banner image <b>610</b> using, for example, optical character recognition technology or the like. Any of the various techniques described above with respect to banner processor module <b>556</b> could be equivalently deployed in banner text generator <b>870</b> in any number of alternate embodiments. The media attribute processor <b>830</b> uses one or more types of the attribute data to determine the identity or attributes of the media item.
0057In one embodiment, the media attribute processor <b>830</b> determines first candidate attributes based on first attribute data (e.g., EPG data, closed caption data, or XDS data). Subsequently, the media attribute processor <b>830</b> determines second candidate attributes based on second attribute data (e.g., text extracted from the banner information <b>620</b>). The media attribute processor <b>830</b> considers the first and second candidate attributes to produce final identity or attributes of the media item.
0058In one embodiment, the media attribute processor <b>830</b> generates a confidence score based on the matching of the first and second candidate attributes. The confidence score indicates likelihood that the final identity or attributes of the media item determined by the media attribute processor <b>830</b> are accurate. If the first and second candidate attributes do not match, a low confidence score may be assigned to the final attributes to indicate that the final attributes may be incorrect. In contrast, if the first and second candidate attributes match, a high confidence score may be assigned to the final identity or attributes to indicate that the final attributes are probably correct. The confidence score may then be stored on the communication node <b>350</b> or the communication device <b>340</b> together with the identity or final attributes of the media item.
0059In one embodiment, the media attribute processor <b>830</b> includes filters to obtain information relevant to determining the attributes of the received media content item <b>312</b>, as described below in greater detail. The media attribute processor <b>830</b> may learn the structure of the banner information <b>620</b> to obtain text data from only certain parts of the banner image <b>610</b>. The filtering functionality may also be implemented in the VOCR server <b>360</b> or the banner text generator <b>870</b> instead of the media attribute processor <b>830</b>.
0060In one embodiment, the media attribute processor <b>830</b> determines the attributes of the media item <b>312</b> only after the user selects, clips, or edits the media item <b>312</b>. The attribute data is stored in the media buffer <b>850</b> and the banner buffer <b>860</b>, and the attribute data is processed after the user selects, clips, or edits the media item. By deferring the processing of the attribute data until the media item <b>312</b> is selected, clipped, or edited by the user, processing resources of the communication device <b>340</b> or the VOCR system <b>360</b> need not be consumed on processing the attribute data for the media item <b>312</b> that the user does not want stored on the communication device <b>340</b>.
0061In one embodiment, the media attribute processor <b>830</b> may operate in conjunction with a communication node <b>350</b> or another device (not shown) via the network <b>330</b> to determine the attributes of the media item <b>312</b>. For example, the media attribute processor <b>830</b> obtains certain attributes (e.g., the channel number, name of the broadcaster, and time of the broadcast) of the media item <b>312</b> using one or more sources of the attribute data, and then accesses a database for storing broadcasted media items (such as Tribune or other program database) to determine additional attributes of the media item <b>312</b> (e.g., the name or episode of the program) or determine the identity of the media item <b>312</b>. The program database, such as the EPG database <b>355</b> of <figref idref="DRAWINGS">FIG. 3</figref>, may be, for example, a database managed by Tribune Media Services of Chicago, Ill., or any other party that contains information of channel line-ups for various satellite, broadcast and/or cable service providers. The media attribute processor <b>830</b> generates multiple candidate attributes of the media item <b>312</b>, and matches the candidate attributes with data stored on the Tribune database to determine the most likely identity and attributes of the media item.
0062The media buffer <b>850</b> temporarily stores a predetermined amount of the media item <b>312</b> received from the place-shifting device <b>310</b> so that the media item <b>312</b> may be accessed or edited in a time-shifted manner. In one embodiment, the media buffer <b>850</b> is a ring buffer that deletes older media items and updates it with newly-received media items.
0063The media buffer <b>850</b> allows the user to retrieve previously received portions of the media item <b>312</b> for playing, clipping, or editing of the media item <b>312</b> using, for example, the media player/editor <b>810</b>. In one embodiment, the media buffer <b>650</b> stores the attribute data received from sources other than the banner image <b>610</b>.
0064The banner buffer <b>860</b> stores the banner image <b>610</b> selected from a video sequence of the media item <b>312</b>. The banner buffer <b>860</b> may store a full screen image of the banner image <b>610</b> or a portion of the banner image <b>610</b> including the banner information <b>620</b>. As described above with reference to <figref idref="DRAWINGS">FIG. 5</figref>, the banner processor module <b>556</b> of the place-shifting device <b>310</b> may determine the portion of the banner image <b>610</b> including the banner information <b>620</b> and send only this portion of the banner image <b>610</b> in high resolution to the communication device <b>340</b>. The banner buffer <b>860</b> stores the banner image <b>610</b> for retrieval by the banner text generator <b>870</b> or the media attribute processor <b>830</b>. The media attribute processor <b>830</b> may retrieve and send the banner image <b>610</b> to the VOCR server <b>360</b> for extraction of the text data. In one embodiment, the banner buffer <b>860</b> is combined with the media buffer <b>850</b>.
0065In one embodiment, the communication device <b>340</b> includes a banner text generator <b>870</b>. The banner text generator <b>870</b> includes an optical character recognition engine that processes the banner image <b>610</b> stored in the banner buffer <b>860</b>. Specifically, the banner text generator <b>870</b> extracts text data included in the banner image <b>610</b>. The extracted text data is processed by the media attribute processor <b>830</b> to determine the attributes of the media item.
0066Alternatively, the communication device <b>340</b> does not include the banner text generator <b>870</b>. Instead, the text data is extracted using the VOCR server <b>360</b> located remotely from the communication device <b>340</b> and communicating with the communication device <b>340</b> over the network <b>330</b>. In this embodiment, the media attribute processor <b>830</b> sends the banner images <b>610</b> to the video optical recognition server <b>360</b> via the network <b>330</b> for processing. The VOCR server <b>360</b> extracts the text data from the banner information <b>620</b> and returns the extracted text data to the communication device <b>340</b>.
0067The processing of the banner image <b>610</b> to extract text data is generally considered to be relatively computation intensive; thus, the communication device <b>340</b> may not necessarily have sufficient capacity or capability to extract the text data using the optical character recognition algorithm. By delegating the text data extraction to the VOCR server <b>360</b>, the communication device <b>340</b> may perform other operations (e.g., receiving and decoding of the datastream from the place-shifting device <b>310</b>) without experiencing interruptions due to processes associated with extraction of the text data from the banner image <b>610</b>.
0068In one embodiment, the process of extracting the text data may be distributed between the communication device <b>340</b> and the VOCR server <b>360</b>. For example, the communication device <b>340</b> may “pre-process” portions of the banner image <b>610</b> by sending only relevant portions of the banner image <b>610</b> to the VOCR server <b>360</b> for text recognition. The recognized text may be sent from the VOCR server <b>360</b> to the communication device <b>340</b> for performing “post-processing” on the recognized text such as applying rules or syntax to extract certain attributes (e.g., date or time).
0069In one embodiment, the banner text generator <b>870</b> or the VOCR server <b>360</b> outputs the text data including characters recognized from the banner image <b>610</b>. The text data without further processing may be merely a string of characters that does not by itself indicate the identity or attributes of the media item. Referring to <figref idref="DRAWINGS">FIG. 6</figref>, for example, the text data may read “Channel 8—CNN.”
0070Unless the characters in such text are separated and filtered in a meaningful way (e.g., channel number on this set-top box is “8”, and the name of the broadcaster is “CNN”), the communication device <b>340</b> cannot typically determine the identity or attributes of the media item. Accordingly, filtering or post-processing of the text data can be applied to determine the identity or attributes of the media item from the text data. Further, the information extracted from the banner/VOCR process may be verified against program data obtained from any other available source (e.g, the program database) to further improve the reliability of such data.
0071In one embodiment, hardware or software components for filtering or post-processing the extracted text data from the banner image <b>610</b> may be implemented in the banner text generator <b>870</b>, the VOCR server <b>360</b>, or other components of the television content system <b>300</b>.
0072The attributes of the media item <b>312</b> that can be extracted from the text data may include, among other information, dates/times, the name of the channel broadcasting the media item, the channel number, and the title of the media item. In one embodiment, the banner text generator <b>870</b> or the VOCR server <b>360</b> outputs the locations of the characters within the image along with the extracted text data.
0073The locations of the characters may be used to take into account spatial correlations between the characters in determining the identity or attributes of the media item. For example, if two numbers appearing in the image (e.g., “1” and “5”) are adjacent to each other, the two numbers may be merged into a single number (e.g., “15”). By merging or grouping certain characters using spatial correlations between the characters, meaningful attribute data can be generated from the raw text data.
0074In one embodiment, to obtain dates and/or times in the banner information, the text data can be scanned for strings of characters and numbers matching predefined date-time formats. Examples of the predefined date formats include, without limitation, the following: m/d/yyyy, m/dd/yyyy, mm/d/yyyy, mm/dd/yyyy, m-d-yyyy, m-dd-yyyy, mm-dd-yyyy, mm-dd-yyyy, m/d/yy, m/dd/yy, mm/d/yy, mm/dd/yy, m-d-yy, m-dd-yy, mm-dd-yy, m/dd, mm/dd, m/d, mm/d, m-dd, mm-dd, m-d, mm-d and/or the like (where ‘m’ refers to a single digit number indicating month, ‘d’ refers to a single digit number indicating date, and ‘y’ refers to a single digit number indicating year). Likewise, examples of the predefined time formats could include, without limitation: h, h/nn, h, h/nn/(a or p), h/nn-h/lnn, hh/nn, and h/nn/(am or pm) (where ‘h’ refers to a single digit number indicating hour, ‘n’ refers to a single digit number indicating minute, ‘a’ refers to ante meridiem, ‘p’ refers to post meridiem). A string of alphanumeric characters matching such formats are classified as candidates for characters indicating dates or times.
0075To obtain channel names, the following exemplary rules may be used: (1) the length of the channel name is restricted (e.g., not less than two characters and not more than eight characters), (2) the first and last character are alphanumeric characters, (3) the channel name should not coincide with date-time format (as described above in detail), and (4) the channel should not include certain characters or certain strings of characters.
0076To obtain channel numbers, the numbers not matching the date-time formats are selected as candidates for channel numbers. Further, numbers closely located to the channel names are considered likely candidates for the channel numbers.
0077To obtain the candidate text for the title of the media item, the spatial correlation between candidate characters for the title of the media item and candidate characters for the channel name and/or the channel number may be considered. In one embodiment, the area of the image (e.g., text box) including the channel name or the channel number becomes a reference area for searching the title of the media item. Predefined areas in proximity to the reference area are searched for the title of the media item. The predefined area is, for example, an area above or below the area for the channel name or number having double the height of the text box for the channel name or number. If no candidate for the title of the media item is found within the predefined area, then the search can be expanded to other areas of the image for any alphanumeric characters that are likely to be the title of the media item. A filter may also be used to exclude alphanumeric characters that are unlikely to be the title of the media item.
0078In one embodiment, the algorithms and filters may be updated after deployment of the component including hardware or software components for filtering and post-processing of the text data. For example, the filters for excluding certain strings of characters from being classified as the title of the media item may be revised and updated dynamically to more accurately determine the attributes of the media item.
0079In one embodiment, the accuracy of extracted attributes may be improved gradually over time using a learning algorithm to learn the structure of banner information. Specifically, learning algorithm accumulates information on which area of the image generally includes information for certain attributes. During the learning process, the attribute data from other sources (e.g., XDS data) can be used to learn and confirm which areas of the image include which information. The banner processor module <b>556</b> suitably learns the layout of the banner information <b>620</b> based on consistent matching of the text in certain locations of the banner image <b>610</b> and the attributes determined from other types of the attribute data. For example, the banner processor module <b>556</b> may track the location of the banner information <b>620</b> that consistently matches the channel names in the EPG data, and then learn that the channel names are displayed at such location. In one embodiment, the confidence score may be considered in determining whether the channel names match with the text extracted from certain locations of the banner image. By automatically learning the structure of the banner information <b>620</b>, the attributes can be extracted accurately and efficiently without a priori knowledge of the banner information structure.
0080In one embodiment, the information of the learned layout of the banner information <b>620</b> is stored in a learning table where each entry within the table contains location information (e.g., x-coordinate, y-coordinate, width and height), success rate, and entry last updated time (ELUT).
0081In such embodiments, the text extracted from the banner information <b>620</b> can be first searched for results matching the attributes of the media item <b>312</b>. The text is determined as coinciding with certain attributes of the media item <b>312</b> when the confidence score for the attribute exceeds a certain threshold. In each learning cycle, the text from some or all of the regions of the banner image <b>610</b> can be processed. For each discrete region of the banner image <b>610</b> including the text, an entry is created in the learning table to keep track of the success count for matching of the text with attributes of the media item <b>312</b>.
0082Specifically, if the text from one region of the banner image <b>610</b> matches a certain attribute (as determined from the confidence score derived from matching with attributes from other sources), the success count can be incremented by one (or any other appropriate value). As described above, the text from the banner information <b>620</b> can be determined as matching the attribute when the confidence score for that attribute exceeds a threshold.
0083After the region provides a successful count for over a predetermined number (e.g., three (3)) of banner images <b>610</b>, the entry in the table is considered and flagged as having been learned successfully. Alternatively, if a different region in the next banner image <b>610</b> matches the attributes, the different region is newly added to the entry (if not previously added), and the success count for the attribute is increased (e.g., by one or another suitable value) for the newly added entry. For each banner image, the matching regions are identified, and the success count for each region is increased for matching attributes. By repeating the process over a number of banner images <b>610</b>, the learning table accumulates information on which regions of the banner image <b>610</b> includes the text on which attributes of the media item <b>312</b>.
0084Further, in various embodiments, aging may be introduced in the learning mechanism to update or relearn the banner information structure when the learning becomes outdated or invalid. For example, if a confidence score associated with the attributes determined from the banner information <b>620</b> drops and persists for a certain amount of time, previous learning can be discarded and a new learning process started. Specifically, the entries in the learning table may be monitored to track for increase in the success count. If the success count for an entry is not increased for a certain amount of time (e.g., seven (7) days or so) or for a certain number of banner images <b>610</b>, the entry may have been incorrectly learned or the entry may be outdated. After the success count for the entry is not increased for a certain amount of time or for a certain number of banner images <b>610</b>, the entry may be removed from the learning table or the success count for that entry may be decreased for each upcoming banner image <b>610</b>. After the success count reaches zero or another predetermined value, the entry can be removed from the learning table.
0085In one embodiment, vertically (or otherwise) shifted locations of the region as indicated by the entry are searched before removing the entry from the learning table. Some service providers shift the regions for displaying certain attributes of the media item vertically up or down in each banner image <b>610</b>. Therefore, to avoid removing entries for such cases, the attributes can be searched in the vertically shifted regions before removing the entry from the learning table. The entries may also be flagged to indicate that coinciding text is found at vertically shifted locations so that vertically shifted locations are searched in the subsequent banner images <b>610</b>.
0086<figref idref="DRAWINGS">FIG. 9</figref> is a diagram illustrating an exemplary transition of the media items provided by the television receiver <b>320</b> to the place-shifting device <b>310</b>. The A/V signals provided by the television receiver <b>320</b> may include data for media item A at a certain time. At a subsequent time, the A/V signals sent by the television receiver <b>320</b> may include data for media item B. Detecting the transition of the media item from the television receiver <b>320</b> can be important because the identity or attributes are typically updated as the A/V signals include a new media item.
0087The transition of the media item can occur for various reasons including, among other reasons, scheduled termination of a media item followed by another media item, user inputs (via either the communication device <b>340</b> or the television receiver <b>320</b>) commanding the television receiver <b>320</b> to change channels <b>311</b> or sources of input, and commands from a service provider prompting changes in the media item.
0088The transition detect module <b>552</b> of the place-shifting device <b>310</b> may therefore use one or more methods to detect the transition of the media item. As shown in <figref idref="DRAWINGS">FIG. 10</figref>, an exemplary transition detect module <b>552</b> may include, for example, a video analytic module <b>1010</b>, a command listener module <b>1020</b>, an XDS data listener module <b>1030</b>, and a sound analytic module <b>1040</b>. After detecting the transition of the media item using any of these modules, the transition detect module <b>552</b> may request the television receiver <b>320</b> to provide updated attribute data.
0089The video analytic module <b>1010</b> detects changes in the images received from the television receiver <b>320</b> indicative of the transition in the media item. In one embodiment, the video analytic module <b>1010</b> detects black screens, frozen screens, and transition from a menu screen (e.g., an electronic program guide (EPG) screen) to a non-menu screen and/or the like. In many media sources, such as the television receiver <b>320</b>, the black screens or the frozen screens can appear before transitioning to a different channel <b>311</b>. Also, the menu screens are often used by the user to find and switch to a channel <b>311</b> that the user wants to view. Therefore, the black screens, the frozen screens, and transition to or from the menu screen serves as cues for the transition in the media item <b>312</b>.
0090In one embodiment, the black screens can be detected by calculating the average luminance value of all the macroblocks in an image. For example, the image can be determined as a black screen if a certain number of macroblocks within the image are predominantly filled with black (or dark) pixels. In one embodiment, one macroblock may be a 16×16 or 8×8 or any such array of pixels in the image.
0091In one embodiment, frozen screens can be detected by calculating the absolute sum of motion vectors in the macroblocks in consecutive images of a video sequence. If the absolute sum of the motion vectors in the consecutive images is below a threshold value, the screen may be appropriately determined to be a frozen screen.
0092In one embodiment, the transition to or from a menu screen is detected using changes in the color components in the images. One method of detecting the transition is to use the U and V components of the YUV color data of pixels in the images. First, U values for some or all of the pixels may be obtained to generate a normalized histogram as illustrated in <figref idref="DRAWINGS">FIG. 11A</figref>. Then local maximum U values across a certain number of pixels (e.g., four pixels) can be obtained as illustrated in <figref idref="DRAWINGS">FIG. 11B</figref>.
0093From the local maximum U values, a predetermined number (e.g., four in the example of <figref idref="DRAWINGS">FIG. 11C</figref>) of highest U values are selected as illustrated in <figref idref="DRAWINGS">FIG. 11C</figref>. The rest of the local maximum U values can be discarded from further analysis, as appropriate. The selected local maximum U values are then considered to be signature U values for that image. Signature V values are obtained in the same manner as the signature U values except that V values of the pixels are used instead of the U values. After obtaining the signature U and V values, these signature values from a previous (or next) image are compared with a current image. If the differences in the signature U and V values between the current and the previous (or next) image exceed a threshold, it may be determined that the transition to or from a menu screen has occurred.
0094In one embodiment, the transition to or from a menu screen is detected using the presence or the amount of text present in the images. If the number of characters appearing in the image is below a threshold or if the image does not have any characters, the image can be determined to be a non-menu screen. In contrast, if the number of characters in the image is above the threshold, the screen can be determined as a menu screen. In order to reduce the computation required to detect the menu screen using the number of characters, a coarse determination of text lines may be used instead of extracting the text data using the computation-intensive optical character recognition algorithm. One example of coarsely determining the text lines is to determine areas occupied by text lines characterized by portions of image having high contrast horizontal edges.
0095In one embodiment, the transition to or from a menu screen is detected using motion vectors in the images. If the motions in the consecutive images are low, then the image is determined as a candidate for a menu screen. The frozen images also generally have low motions, and thus, the transition detect module <b>552</b> may include codes and algorithm to distinguish the frozen images and the menu screen.
0096With reference again to <figref idref="DRAWINGS">FIG. 10</figref>, the command listener <b>1020</b> suitably detects commands <b>316</b> from the communication device <b>340</b> for operating the television receiver <b>320</b> via the place-shifting device <b>310</b>. The television receiver <b>320</b> may be controlled remotely by the communication device <b>340</b> via the controller interface <b>435</b> of the place-shifting device <b>310</b>. The command listener <b>1020</b> detects commands from the communication device <b>340</b>. The commands <b>316</b> from the communication device <b>340</b> may include, among others, a channel change command, a volume change command, a device configuration command, and/or the like. Some commands may be context-sensitive and cause transition of the media item <b>312</b> under some circumstances but not in others. It may therefore be difficult to distinguish between commands <b>316</b> that cause transition in the media item <b>312</b> and commands that do not cause transition in the media item <b>312</b>. Accordingly, in some embodiments, some or all of the commands <b>316</b> received from the communication device <b>340</b> to operate the television receiver <b>320</b> can be treated as cues for changing the media item <b>312</b> at the television receiver <b>320</b>. After the commands <b>316</b> are detected at the command listener <b>1020</b>, the video analytic module <b>1010</b> can be activated to detect the transition between the media item A and the media item B of <figref idref="DRAWINGS">FIG. 9</figref>. Following the activation of the video analytic module <b>1010</b>, the banner processor module <b>556</b> and the attribute extractor <b>564</b> are notified of the suspected transition so that these modules may extract the new attribute data associated with the new media item.
0097The XDS data listener <b>1030</b> suitably detects changes in the XDS data received from the television receiver <b>320</b>. The XDS data includes, among other data, the title of the media item <b>312</b>, the name of the broadcaster, the category of the media item <b>312</b>, the episode number of the series, the rating of the media item <b>312</b>, and the program synopsis. The changes in the XDS data are often caused by changes in the media item <b>312</b>. Therefore, the changes in the XDS data may be monitored to detect the transition of the media item <b>312</b>.
0098The sound analytic module <b>1040</b> suitably detects whether the audio from the television receiver <b>320</b> is silent. In some media sources, such as the television receiver <b>320</b>, changes in the channel <b>311</b> are accompanied by silence in the audio. In one embodiment, the sound analytic module <b>1040</b> is used in conjunction with the video analytic module <b>1010</b> to determine the transition in the media item <b>312</b>.
0099The above modules of the transition detect module <b>552</b> are merely illustrative. Other methods and cues may also be used by the transition detect module <b>552</b> to determine the transition of the media item <b>312</b> received from the television receiver <b>320</b>. In one embodiment, more than one of the modules in the transition detect module <b>552</b> are cooperatively employed to improve the accuracy of the media item transition detection.
0100<figref idref="DRAWINGS">FIG. 12</figref> is a diagram illustrating an exemplary scheme for capturing and buffering of the banner image <b>610</b> in the place-shifting device <b>310</b>, according to various embodiments. After detecting transition of the media item <b>312</b> at the transition detect module <b>552</b>, the banner processor module <b>556</b> of the place-shifting device <b>310</b> suitably captures the banner image <b>610</b> from the television receiver <b>320</b>. In one embodiment, the banner image <b>610</b> is captured after a certain amount of time elapses from the time the transition is detected. This is because in some media sources, the banner information <b>620</b> is automatically displayed shortly after the channel <b>311</b> changes. Therefore, the banner image <b>610</b> can be captured shortly after an event indicative of the transition is detected. The amount of elapsed time for capturing the banner image <b>610</b> may be set differently depending on the type of the television receiver <b>320</b>.
0101In other media sources, the banner information <b>620</b> is not automatically displayed on the screen after the channel <b>311</b> changes. For such media sources, the place-shifting device <b>310</b> may force the television receiver <b>320</b> to display the banner information <b>620</b> by transmitting a command <b>316</b> requesting the banner image <b>610</b> to the television receiver <b>320</b> via the controller interface <b>435</b>.
0102The transition detect module <b>552</b>, however, may not detect all of the transitions in the media items. For example, the transition detect module <b>552</b> may not detect the transition of the media item <b>312</b> when a media item terminates after the scheduled time and no XDS data is available from the channel <b>311</b> broadcasting the media item <b>312</b>. Therefore, the place-shifting device <b>310</b> can periodically send commands <b>316</b> to the television receiver <b>320</b> to have the television receiver <b>320</b> provide the banner image <b>610</b>, and can also capture other attribute data (e.g., XDS data) included in the A/V signal from the television receiver <b>320</b>. The place-shifting device <b>310</b> then captures the banner image <b>610</b> as appropriate. In one embodiment, the place-shifting device <b>310</b> sends another command <b>316</b> removing the banner information <b>620</b> from the screen after capturing the image <b>610</b> to reduce the time during which the banner information <b>620</b> appears on the screen. By reducing the time during which the banner information <b>620</b> is displayed, the user may experience less inconvenience associated with banner information <b>620</b> appearing on the screen.
0103In one embodiment, the communication device <b>340</b> sends the commands <b>316</b> to force the banner image <b>610</b> consistent with the broadcasting schedule of the media items. For example, it is common for media items to start and end at regular time intervals, such as every thirty minutes or every hour. The communication device <b>340</b> may therefore keep track of the local time at the location where the place-shifting device <b>310</b> is located, and may send out the commands <b>316</b> to the television receiver <b>320</b> to force the banners <b>610</b> at or around the half-hour or one-hour boundaries. By capturing the banner images <b>610</b> in accordance with the broadcasting schedule, the likelihood of obtaining the updated attribute data is increased.
0104In various embodiments, the banner image <b>610</b> can be tagged with a time stamp indicating the time at which the image is captured. Using the tagged information, the communication device <b>340</b> may determine the attributes of the media item <b>312</b> using the banner image <b>610</b> by identifying and processing the one or more banner images <b>610</b> having the time stamp during which the media item was provided by the television receiver <b>320</b>.
0105<figref idref="DRAWINGS">FIG. 12</figref> illustrates capturing of the banner images <b>610</b> according to one embodiment. After the television receiver <b>320</b> is turned on, the television receiver <b>320</b> starts playing the media item A. After the media item A starts playing, the banner information <b>620</b> appears on the image <b>610</b> during time t<b>1</b>. The banner information <b>620</b> may appear automatically on the image <b>610</b> or in response to commands <b>316</b> from the place-shifting device <b>310</b> requesting the display of the banner image <b>610</b>. During the time t<b>1</b>, the place-shifting device <b>310</b> captures the banner image B<b>1</b> and buffers the banner image B<b>1</b> in the banner buffer <b>660</b>. Specifically, the banner processor module <b>556</b> of the place-shifting device <b>310</b> captures the banner image B<b>1</b>, processes the banner image B<b>1</b>, and then sends the processed banner image B<b>1</b> to the communication device <b>340</b> over the network <b>330</b> for temporarily storing in the banner buffer <b>860</b>.
0106In the example of <figref idref="DRAWINGS">FIG. 12</figref>, the user changes the channel <b>311</b> of the television receiver <b>320</b> either by operating a remote control unit of the television receiver <b>320</b> or by sending commands <b>316</b> via the communication device <b>340</b> and the place-shifting device <b>310</b>. In response, a sequence of black screens or frozen screens is generated by the television receiver <b>320</b> (illustrated as a thick black line between the media item A and the media item B in <figref idref="DRAWINGS">FIG. 12</figref>). The place-shifting device <b>310</b> detects the transition in the media item by listening to the commands <b>316</b> from the communication device <b>340</b> and by detecting changes in the video screen, as described above in detail with reference to <figref idref="DRAWINGS">FIG. 10</figref>.
0107After the transition to the media item B, the television receiver <b>320</b> provides the banner image B<b>3</b> during time t<b>3</b>. During time t<b>3</b>, the banner image B<b>3</b> is captured and sent to the communication device <b>340</b> along with other attribute data.
0108In the example of <figref idref="DRAWINGS">FIG. 12</figref>, the banner images <b>610</b> and other attribute data are also captured periodically by the place-shifting device <b>310</b>. After the banner image B<b>1</b> is captured at the time t<b>1</b>, a subsequent banner image B<b>2</b> is captured at the time t<b>2</b> (after elapse of time from the time t<b>1</b>) even though transition in the media item <b>312</b> is not detected. Likewise, at time t<b>4</b>, t<b>5</b>, t<b>6</b>, t<b>7</b>, and t<b>8</b>, the banner images B<b>4</b>, B<b>5</b>, B<b>6</b>, B<b>7</b>, and B<b>8</b> (not shown in <figref idref="DRAWINGS">FIG. 12</figref>) are generated by the television receiver <b>320</b>, and captured, processed, and sent to the communication device <b>340</b> via the network <b>330</b>. At these times, other attribute data are also captured and sent to the communication device <b>340</b>. Periodically obtaining the banner images B<b>4</b>, B<b>5</b>, B<b>6</b>, B<b>7</b>, and B<b>8</b> serves as a safeguard against transition to a new media item <b>312</b> without any events detectable by the transition detect module <b>552</b>.
0109In one embodiment, the period for capturing the banner image <b>610</b> is adjusted dynamically. In another embodiment, the period for forcing and capturing the banner image <b>610</b> is fixed (e.g., every ten minutes).
0110In one embodiment, other attribute data is relayed to the communication device <b>340</b> regardless of the detection of the transition in the media item <b>312</b>. The attribute data may be monitored by the communication device <b>340</b> to determine the transition of the media item <b>312</b>.
0111In one or more embodiments where the high resolution banner images are transmitted over the network <b>330</b>, the condition and bandwidth of the network <b>330</b> may be detected to decide whether the banner images <b>610</b> should be transmitted in the same channel as the datastream for the media item. If the bandwidth of the network <b>330</b> is sufficient to transmit sufficiently high resolution and high quality images of the media item, then the place-shifting device <b>310</b> identifies the banner images <b>610</b> by tagging. In this way, the banner image <b>610</b> is transmitted to the communication device <b>340</b> “in-band”, i.e., in the same datastream as the media item <b>312</b>.
0112In contrast, if the bandwidth of the network <b>330</b> is insufficient to transmit sufficiently high resolution and high quality images of the media item, then the banner image <b>610</b> is captured in the place-shifting device <b>310</b> and processed separately from the main datastream of the media item <b>312</b> and transmitted as an additional datastream to the communication device <b>340</b>. In this case, the banner image <b>610</b> is transmitted “out-of-band” to the communication device <b>340</b>. Such out-of-band transmission of the banner image <b>610</b> insures that the banner images <b>610</b> received at the communication device <b>340</b> are of sufficient resolution and quality for text data extraction while not interfering with the transmission of the media item datastream. In one embodiment, the resolution of 640×480 pixels is considered sufficiently high resolution and quality.
0113During the out-of-band transmission of the banner image <b>610</b>, priority is given to the datastream of the media item <b>312</b>. In one example, no more than 10% or so of the total capacity of the network <b>330</b> is allocated to the banner image <b>610</b>. In such case, the banner image <b>610</b> may be trickled to the communication device <b>340</b> over a period of time. In other words, the datastream of the media item <b>312</b> is sent over the network <b>330</b> in a main channel with minimum latency in order to allow real time access to the media item at the communication device <b>340</b>. In contrast, the banner images <b>610</b> are sent to the communication device <b>340</b> in an out-of-band (OOB) channel separate from the main channel having greater tolerance for latency.
0114The banner images <b>610</b> need not be sent to the media device <b>140</b> in real-time because the time at which the banner image <b>610</b> is received at the communication device <b>340</b> is not necessarily time-sensitive.
0115In one embodiment, the banner images <b>610</b> are transmitted to the communication device <b>340</b> using the bandwidth of the network <b>330</b> available after transmitting the datastream of the media item <b>312</b>. The banner images <b>610</b> can be packetized into multiple packets. The number of packets for the banner images <b>610</b> is restricted so that the packets for the datastream of the media item <b>312</b> are delivered to the communication device <b>340</b> without significant latency. The network condition detector <b>560</b> may detect the condition of the network <b>330</b> and control the transmission rate for the packets of the banner images <b>610</b> accordingly.
0116<figref idref="DRAWINGS">FIG. 13</figref> is a diagram illustrating the process of transmitting the banner image <b>610</b> in the OOB channel, according to one embodiment. In this example, the video signal processor module <b>572</b> of the place-shifting device <b>310</b> includes, among other components, a scaler <b>1310</b> and a first encoder <b>1320</b>. The banner processor module <b>556</b> of the place-shifting device <b>310</b> includes, among other components, an interleaver <b>1340</b> and a second encoder <b>1350</b>. In this example, the television receiver <b>320</b> provides interlaced video images including data for field(n) <b>1302</b> and field(n+1) <b>1304</b>. Field(n) <b>1302</b> includes odd lines of a video frame, and field(n+1) <b>1304</b> includes even lines of the video frame.
0117Both fields <b>1302</b>, <b>1304</b> can be fed to the scaler <b>1310</b> and converted to a frame <b>1314</b> scaled to have resolution lower than the original frame consisting of fields <b>1302</b>, <b>1304</b>. The converted frame <b>1314</b> is then fed to the first encoder <b>1320</b> to generate a datastream <b>1324</b>. The datastream <b>1324</b> is then fed to the multiplexer <b>1330</b> as appropriate.
0118In one embodiment, the fields <b>1302</b>, <b>1304</b> are also fed to the interleaver <b>1340</b> of the banner processor module <b>556</b>. The interleaver <b>1340</b> determines the portion of the banner image <b>610</b> including the banner information <b>620</b> (shown as hashed boxes in the fields <b>1302</b> and <b>1304</b>). The interleaver <b>1340</b> extracts the portion of the fields <b>1302</b>, <b>1304</b> including the banner information <b>620</b>, interleaves lines from both fields <b>1302</b>, <b>1304</b>, and generates a banner image <b>1344</b> in high resolution. The banner image <b>1344</b> is then fed to the second encoder <b>1350</b> which converts the banner image <b>1344</b> into packets <b>1354</b>. In one embodiment, the banner image <b>1344</b> is not scaled down to a lower resolution in the banner processor module <b>556</b>.
0119The second encoder <b>1350</b> receives commands from the network condition detector <b>560</b> so that the amount of the banner image packets <b>1354</b> from the second encoder <b>1350</b> does not delay the transmission of the media item datastream packets <b>1324</b>. To determine the bandwidths available to transmit the packets for the banner image <b>610</b>, the network condition detector <b>560</b> receives information from the first encoder <b>1320</b> indicating the amount of data the first encoder <b>1320</b> will be sent over the network <b>330</b>. The packets of the datastream <b>1324</b> and the packets of the banner image <b>1354</b> are both fed into a multiplexer <b>1330</b>. The multiplexer <b>1330</b> combines the datastream packets <b>1324</b> and the banner image packets <b>1354</b> for transmission over a communication line <b>1334</b> to the network <b>330</b>. As illustrated in <figref idref="DRAWINGS">FIG. 13</figref>, the packets of the datastream <b>1324</b> and the packets of the banner image <b>1354</b> are transmitted in two separate channels.
0120In one embodiment, the attribute data (e.g., XDS data) from other sources is included in either the packets for the datastream of the media item <b>1324</b> or the packets for the banner image <b>1354</b>. Alternatively, the attribute from other sources may be transmitted to the communication device <b>340</b> in a channel separate from the main channel for the datastream packets <b>1324</b> and the OOB channel for the banner image packets <b>1354</b>.
0121Different combinations of functionality and modules may be included in the components of the television content system <b>300</b>. For example, components of the place-shifting device <b>310</b> such as the transition detect module <b>552</b> may be implemented on the communication device <b>340</b>. In this example, the communication device <b>340</b> may send a command <b>316</b> to the place-shifting device <b>310</b> to force and capture the banner image <b>610</b> via the network <b>330</b> upon detecting the transition of the media item <b>312</b>.
0122Also, the entirety of a function implemented by a component of the television content system <b>300</b> may be incorporated into other components of the television content system <b>300</b>. For example, the VOCR server <b>360</b> may be incorporated into the communication device <b>340</b> or the communication node <b>350</b>.
0123In one embodiment, the communication node <b>350</b> further includes a server for verifying whether distribution of the media item <b>312</b> is restricted for any reason (e.g., copyright protection) using the identity or attributes of the media item <b>312</b> as determined by the communication device <b>340</b>. If the distribution of the media item is illegal or otherwise not permitted, the communication node <b>350</b> or another device may decline to store the media item <b>312</b>.
0124<figref idref="DRAWINGS">FIGS. 14A to 14C</figref> (collectively, <figref idref="DRAWINGS">FIG. 14</figref>) are flowcharts illustrating an exemplary method of determining the identity or attributes of the received media content <b>312</b>, and whether that content <b>312</b> was received live or not at the communication device <b>340</b>, according to one embodiment. According to <figref idref="DRAWINGS">FIG. 14</figref>, the television receiver <b>320</b> first sends the A/V signals containing the selected media content <b>312</b> to the place-shifting device <b>310</b> (operation <b>1404</b>). The place-shifting device <b>310</b> then captures and processes the A/V signal for transmission over the network <b>330</b> (operation <b>1408</b>). The processing of the A/V signal may include, among other operations, scaling of the images in the video sequence to a lower resolution, compressing, encoding, and/or packetizing of the video sequence for transmission over the network <b>330</b>. By processing the A/V signal, a datastream of the selected media item <b>312</b> is generated.
0125The datastream of the media item <b>312</b> is then sent to the communication device <b>340</b> (operation <b>1414</b>). The datastream of the media item <b>312</b> may be buffered in the media buffer <b>850</b> for selecting, clipping, editing, and/or any other features by the user (operation <b>1418</b>).
0126In one embodiment, the place-shifting device <b>310</b> copies and separately processes the banner image <b>610</b> or a portion of the banner image <b>610</b> (operation <b>1420</b>). In another embodiment, the place-shifting device <b>310</b> may tag the banner image <b>610</b> or a portion of the banner image <b>610</b> for encoding in a higher resolution without copying and separately processing the banner image <b>610</b>.
0127The processing (operation <b>1420</b>) of the banner image <b>610</b> may include learning the location and structure of the banner information <b>620</b>. The place-shifting device <b>310</b> may select a portion of the banner image <b>610</b> based on the learning of location and structure of the banner information <b>620</b>. As described above with reference to <figref idref="DRAWINGS">FIG. 5</figref>, the banner image <b>610</b> can be processed in high resolution and sent to the communication device <b>340</b> over the network <b>330</b> (operation <b>1422</b>). The higher resolution of the banner image <b>610</b> allows the text data included in the image <b>610</b> to be recognized more accurately by the VOCR server <b>360</b> or the communication device <b>340</b>. After the banner image <b>610</b> is received, the communication device <b>340</b> buffers the image <b>610</b> in the banner buffer <b>860</b> (operation <b>1426</b>), as described above in detail with reference to <figref idref="DRAWINGS">FIG. 8</figref>.
0128The television receiver <b>320</b> also sends first attribute data to the place-shifting device <b>310</b> (operation <b>1430</b>). The first attribute data may include, among others, EPG data, closed caption data, XDS data, and/or the like. The place-shifting device <b>310</b> captures the first attribute data (operation <b>1434</b>). The captured first attribute data is then relayed to the communication device <b>340</b> (operation <b>1438</b>). The first attribute data is buffered in the communication device <b>340</b> (operation <b>1440</b>).
0129The communication device <b>340</b> then determines the identity or attributes of the media item <b>312</b> based on the first attribute data and the second attribute data (operation <b>1454</b>). As described above in detail with reference to <figref idref="DRAWINGS">FIG. 8</figref>, the communication device <b>340</b> may reference a database (e.g., the EPG database server <b>355</b>) to verify or determine the identity or other attributes of the media item <b>312</b>. After determining the identity or attributes of the selected or edited media item <b>312</b>, the identity or attributes of the media item are sent to the communication node <b>350</b> (operation <b>1458</b>).
0130The identity or attributes of the media item <b>312</b> are then stored on the communication node <b>350</b> (operation <b>1462</b>). Alternatively, the identity or attributes of the media item <b>312</b> can be stored on the communication device <b>340</b> instead of being sent to the communication node <b>350</b>.
0131In another embodiment, the attributes of the received media content <b>312</b> are first determined using the first attribute data. Subsequently, the attributes of the media item <b>312</b> are updated and revised using the second attribute data derived from the banner image <b>610</b>. That is, the communication device <b>340</b> may preliminarily determine the identity or the attributes of the media item <b>312</b> using the first attribute data, and can update, correct, or revise the identity or the attributes according to the second attribute data if the preliminary identity or attributes is incorrect. This scheme of preliminarily determining the identity or the attributes is advantageous in some embodiments because the media item <b>312</b> can be uploaded or stored promptly using the identity or attributes as an index of the media item <b>312</b>.
0132In other implementations, either the first or the second attribute data may be unavailable. For example, a banner image <b>610</b> may not be available to determine the identify or other attributes of the media item <b>312</b>. In such cases, the remaining attribute data, such as XDS data, may be utilized to determine the identity of the media content item <b>312</b>.
0133In one embodiment, the attributes of the received media content <b>312</b> include an identity of the media content <b>312</b> and a channel <b>311</b> over which the television receiver <b>320</b> captured the media content <b>312</b> ultimately received at the communication device <b>340</b>. Further, in some implementations, the attribute information of the content <b>312</b> includes an indication of a specific time or time period during which the content <b>312</b> was received at the communication device <b>340</b>. In another example, the communication node <b>350</b> may presume that the time period of reception is approximately the current time.
0134Continuing with <figref idref="DRAWINGS">FIG. 14</figref>, the communication node <b>350</b> also receives schedule data, such as from the EPG server <b>355</b> of <figref idref="DRAWINGS">FIG. 3</figref> (operation <b>1466</b>). In other embodiments, the communication node <b>350</b> may receive such data directly from broadcast television sources associated with the channels <b>311</b> received at the television receiver <b>320</b>. More specifically, the communication node <b>350</b> receives the identity of the media content listed in the schedule data of the EPG server <b>355</b> that is associated with the time period specified in the attribute information received from the communication device <b>340</b> (or, alternately, with the current time).
0135The communication node <b>350</b> then compares the identity of the received content <b>312</b> as indicated in the attribute information from the communication device <b>340</b> with the content identity received from the EPG server <b>355</b> (operation <b>1470</b>). Based on this comparison, the communication node <b>350</b> determines whether the content identity from the communication device <b>340</b> and the content identity from the EPG server <b>355</b> indicate the same content or different content. In one example, the communication node <b>340</b> requires an exact match between the content identity from the EPG server <b>355</b> and the content identity from the communication device <b>340</b> to determine that the same television content is being indicated. In other embodiments, the content identities may differ to a degree while still indicating the same television content.
0136In one example, the communication node <b>350</b> may receive multiple media content identities from the attribute information delivered by the communication device <b>340</b>. For example, a first identity of the content <b>312</b> may be derived from the banner information <b>620</b> described above, while a second identity of the content <b>312</b> may be generated or extracted from metadata, such as XDS data, from the received media content <b>312</b>. The multiple media content identities may or may not indicate the same media content. As a result, the comparison operation undertaken by the communication node <b>350</b> may be configured to determine which of the multiple media content identities to take into account before comparing the resulting content identity with that provided in the schedule information from the EPG server <b>355</b>. In another example, the communication node <b>350</b> may compare each of the multiple identities from the attribute information to the media content identity from the schedule information, then determining which of the comparisons is valid.
0137Based on this comparison, the communication node <b>350</b> generates a determination as to whether the received content <b>312</b> is (or was) received live, or whether the content <b>312</b> is (or was) received in a delayed or time-shifted manner at the communication device <b>340</b> (operation <b>1474</b>). One example of the received content <b>312</b> being time-shifted is when a user instructs the television receiver <b>320</b> to record a program broadcast being transmitted over one of the television channels <b>311</b> to the DVR <b>332</b>, and later instructs the receiver <b>320</b> to deliver that program from the DVR <b>332</b> of the television receiver <b>320</b> via the place-shifting device <b>310</b> to the communication device <b>340</b>. To this end, the communication node <b>350</b> considers the received content item <b>312</b> as being received live at the communication device <b>340</b> if the compared content identities from the attribute information and the schedule information indicate the same television content or program. Oppositely, the communication node <b>350</b> considers the received content <b>312</b> as being received in a delayed manner if the compared content identities indicate different media content items.
0138After generating the determination of whether the received content <b>312</b> was received in a live or time-shifted manner, the communication node <b>350</b> may generate information for directing other operations involving the viewing of media content at the communication device <b>340</b> (operation <b>1478</b>). Such information may then be transferred to another device, such as the communication device <b>340</b> or the place-shifting device <b>310</b> (operation <b>1482</b>). In another example, the communication node <b>350</b> may transfer the generated indication to another electronic device, such as one coupled with the communication node <b>350</b> via the communication network <b>330</b> (operation <b>1482</b>), which may in turn be employed to direct other operations involving the viewing of media content at the communication device <b>340</b>. Examples of these operations are provided in greater detail below.
0139Each of the operations <b>1462</b>-<b>1482</b> discussed above is depicted in <figref idref="DRAWINGS">FIG. 14</figref> as involving the communication node <b>350</b>. In other implementations, another of the components coupled to the communication network <b>330</b>, such as the communication device <b>340</b> and the place-shifting device <b>310</b>, may perform some or all of these operations <b>1462</b>-<b>1482</b> to determine whether particular media content <b>312</b> is received live or not at the communication device <b>340</b>, and to use that determination for other operations. Devices other than those specifically illustrated in <figref idref="DRAWINGS">FIG. 3</figref> may be configured in a similar manner in other embodiments.
0140Given the determination of whether the media content <b>312</b> is received live at the communication device <b>340</b>, the communication node <b>350</b> may perform various functions on the basis of that determination. In one implementation, the communication node <b>350</b> may generate media content recommendations for the user of the communication device <b>340</b> based on the received media content <b>312</b> and on whether the received content <b>312</b> was viewed live or from a recording. For example, the node <b>350</b> may determine that content received in a time-shifted manner may rank higher in terms of user interest than programming viewed live since the user has likely recorded only programs of the highest interest to the user. Thus, subsequent viewing recommendations made by the communication node <b>350</b> may tend to more highly recommend programming or content similar to time-shifted programs over those viewed live.
0141In another implementation, the communication node <b>350</b> may control the ability of the communication device <b>350</b> to retransmit or record the received media content <b>312</b> based on the live-versus-time-shifted determination. For example, if the received content <b>312</b> was time-shifted, indicating the content <b>312</b> was viewed from a recording residing in the DVR <b>332</b> of the television receiver <b>320</b>, ownership rights involving the received content <b>312</b> may prohibit any further storage on, or subsequent transfer from, the communication device <b>340</b>. Oppositely, reception of live content <b>312</b> at the communication device <b>340</b> may indicate that storage on the device <b>340</b>, and/or transfer therefrom, of the content <b>312</b> may be permissible.
0142In another embodiment, the communication node <b>350</b> may employ the live-or-not determination to adjust subsequent content transfers to the communication device <b>340</b>. For example, while transfers of live media content from the television receiver <b>320</b> via the place-shifting device <b>310</b> to the communication device <b>340</b> may not be controllable due to their live nature, those transferred in a time-shifted manner from the DVR <b>332</b> of the television receiver <b>320</b> may be controlled more readily. As a result, the communication node <b>350</b> may receive transmission performance or reception performance information regarding the received content <b>312</b>, and generate transfer instructions to the television receiver <b>320</b> and/or the communication device <b>340</b> if the media content <b>312</b> was received in a time-shifted manner. These transfer instructions may pertain to the media content <b>312</b> stored at the DVR <b>332</b>, or to other media content to be transferred from the DVR <b>332</b> to the communication device <b>340</b>. Such instructions may affect various aspects of the subsequent transfer such as the number of frames between I-frames of an MPEG video stream, video and/or audio quantization rates, overall bit rates, and so on.
0143Further, the communication node <b>350</b> may use the live-versus-time-shifted determination to organize performance information according to that determination. For example, the node <b>350</b> may receive performance information from the communication device <b>340</b> indicating how often and over how much content <b>312</b> the user skipped or fast-forwarded. Organizing this information according to whether the program was received live or not may help advertisers determine the viewership of commercials interspersed throughout the content <b>312</b>. Other data, such as total viewing time, may be similarly quantified, thus providing insight into the effectiveness of the commercials, or even the received content <b>312</b> itself.
0144While several uses of the determination as to whether the received content <b>312</b> was viewed live or not are discussed above, other applications not specifically mentioned herein are also contemplated.
0145An example of the communication node <b>350</b> of <figref idref="DRAWINGS">FIG. 3</figref> is illustrated in the block diagram of <figref idref="DRAWINGS">FIG. 15</figref>. In that example, the communication node <b>350</b> includes a communication interface <b>1502</b>, control circuitry <b>1504</b>, and data storage <b>1506</b>. Other components, including, but not limited to, a power supply and a user interface, may also be included in the communication node <b>350</b>, but such components are not explicitly shown in <figref idref="DRAWINGS">FIG. 15</figref> nor described further below to simplify the following discussion.
0146The communication interface <b>1502</b> is configured to receive via the communication network <b>330</b> the attribute information and schedule information involving the media content <b>312</b> received at the communication device <b>340</b>, and to possibly transmit a determination of whether the content <b>312</b> was received live. The communication interface <b>1502</b> may be a WAN interface, such as an interface to communicate via the Internet, although other interfaces, such as a LAN interface or a wireless network adapter, may be employed in other arrangements. Specific examples of the communication interface <b>1502</b> include, but are not limited to, a cable or DSL interface, a Wi-Fi interface, and a cellular communication network interface.
0147The data storage <b>1506</b> is configured to store the received attribute and schedule information, as well as possibly the determination of whether the media content <b>312</b> was received live at the communication device <b>340</b>. The data storage <b>1506</b> may be any data storage capable of storing digital data, including volatile data storage, such as dynamic random-access memory (DRAM) or static random-access memory (SRAM), nonvolatile data storage, such as flash memory, magnetic disk drives, and optical disk drives, or combinations thereof.
0148The control circuitry <b>1504</b> of the node <b>350</b> is communicatively coupled with the communication interface <b>1502</b> and the data storage <b>1506</b> to perform the determination functions more particularly described above. In one example, the control circuitry <b>1504</b> may include one or more processors, such as microprocessors, microcontrollers, or digital signal processors (DSPs), configured to execute instructions designed to control the various components of the node <b>350</b>. These instructions may be stored in the data storage <b>1506</b> or another data storage or memory unit not specifically depicted in <figref idref="DRAWINGS">FIG. 15</figref>. In another implementation, the control circuitry <b>1504</b> may be composed of hardware circuitry not requiring software instructions, or of some combination of hardware and software elements.
0149In summary, at least some embodiments as described herein provide a system and method to determine whether a remote communication device receives media content as broadcast live or in a time-shifted manner, such as from a recording. Such information, while ordinarily difficult to determine, may be subsequently employed to perform such diverse operations as control of content transmission, presentation of programming recommendations, enforcement of content ownership rights, and organization of transmission and reception performance data.
0150While several embodiments of the invention have been discussed herein, other implementations encompassed by the scope of the invention are possible. For example, while specific examples discussed above focus primarily on audio/video media content, other types of content, such as radio content, textual content, and the like, may serve as the focus of other implementations. Further, aspects of one embodiment disclosed herein may be combined with those of alternative embodiments to create further implementations of the present invention. Thus, while the present invention has been described in the context of specific embodiments, such descriptions are provided for illustration and not limitation. Accordingly, the proper scope of the present invention is delimited only by the following claims and their equivalents.
Contents3
18 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2003017003A1 | Cites | United States of America | Applicant |
| US2003229528A1 | Cites | United States of America | Applicant |
| US2004158856A1 | Cites | United States of America | Applicant |
| US2005071219A1 | Cites | United States of America | Applicant |
| US2005204046A1 | Cites | United States of America | Applicant |
| US2006015903A1 | Cites | United States of America | Applicant |
| US2006059260A1 | Cites | United States of America | Applicant |
| US2006075457A1 | Cites | United States of America | Applicant |
| US2006095401A1 | Cites | United States of America | Applicant |
| US2007078712A1 | Cites | United States of America | Applicant |
| US2007104367A1 | Cites | United States of America | Applicant |
| US2007168543A1 | Cites | United States of America | Applicant |
| US2008098300A1 | Cites | United States of America | Applicant |
| US2008276289A1 | Cites | United States of America | Applicant |
| US2009106393A1 | Cites | United States of America | Applicant |
| US2009300673A1 | Cites | United States of America | Applicant |
| US2010040345A1 | Cites | United States of America | Applicant |
| US2011294483A1 | Cites | United States of America | Applicant |
| US6295092B1 | Cites | United States of America | Applicant |
| US6642939B1 | Cites | United States of America | Applicant |
| US6868447B1 | Cites | United States of America | Applicant |
| US7113972B2 | Cites | United States of America | Applicant |
| US7225142B1 | Cites | United States of America | Applicant |
| US7313809B1 | Cites | United States of America | Applicant |
| US7339992B2 | Cites | United States of America | Applicant |
| US7707614B2 | Cites | United States of America | Applicant |
| US7749756B2 | Cites | United States of America | Applicant |
| US7769756B2 | Cites | United States of America | Applicant |
| US7877776B2 | Cites | United States of America | Applicant |
| US8060609B2 | Cites | United States of America | Applicant |
| US8327407B2 | Cites | United States of America | Applicant |
| US20030017003A1 | Cites | United States of America | Applicant |
| US20030229528A1 | Cites | United States of America | Applicant |
| US20040158856A1 | Cites | United States of America | Applicant |
| US20050071219A1 | Cites | United States of America | Applicant |
| US20050204046A1 | Cites | United States of America | Applicant |
| US20060015903A1 | Cites | United States of America | Applicant |
| US20060059260A1 | Cites | United States of America | Applicant |
| US20060075457A1 | Cites | United States of America | Applicant |
| US20060095401A1 | Cites | United States of America | Applicant |
| US20070078712A1 | Cites | United States of America | Applicant |
| US20070104367A1 | Cites | United States of America | Applicant |
| US20070168543A1 | Cites | United States of America | Applicant |
| US20080098300A1 | Cites | United States of America | Applicant |
| US20080276289A1 | Cites | United States of America | Applicant |
| US20090106393A1 | Cites | United States of America | Applicant |
| US20090300673A1 | Cites | United States of America | Applicant |
| US20100040345A1 | Cites | United States of America | Applicant |
| US20110294483A1 | Cites | United States of America | Applicant |
| USPTO "Non-Final Office Action" mailed Mar. 29, 2012 for U.S. Appl. No. 13/295,873, filed Nov. 14, 2011. | Non-patent | – | Applicant |
| USPTO "Final Office Action" mailed Nov. 8, 2011 for U.S. Appl. No. 13/295,873, filed Nov. 14, 2011. | Non-patent | – | Applicant |
| USPTO, Notice of Allowance, dated Apr. 26, 2013 for U.S. Appl. No. 13/295,873. | Non-patent | – | Applicant |
| USPTO “Non-Final Office Action” mailed Mar. 29, 2012 for U.S. Appl. No. 13/295,873, filed Nov. 14, 2011. | Non-patent | – | Applicant |
| USPTO “Final Office Action” mailed Nov. 8, 2011 for U.S. Appl. No. 13/295,873, filed Nov. 14, 2011. | Non-patent | – | Applicant |
| USPTO, Notice of Allowance, dated Apr. 26, 2013 for U.S. Appl. No. 13/295,873. | Non-patent | – | Applicant |
4 members in 1 office
Priority claims1
| Document | Office | Kind | Date |
|---|---|---|---|
| 60673409 | United States of America | A |
Members4
| Document | Office | Kind | |
|---|---|---|---|
| US2011099571A1 | United States of America | A1 | |
| US8327407B2 | United States of America | B2 | |
| US2013167189A1 | United States of America | A1 | |
| US8661483B2This record | United States of America | B2 |
48 transactions on the USPTO file
Allowed without a rejection on record.
- Non-final rejections
- 0
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Expire PatentEXP. | EXP. | |
| Maintenance Fee Reminder MailedREM. | REM. | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Correspondence Address ChangeC.AD | C.AD | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Paralegal or electronic terminal disclaimer approvedP574 | P574 | |
| Terminal Disclaimer FiledDIST | DIST | |
| Interview Summary - Examiner InitiatedEXIE | EXIE | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Email NotificationEML_NTR | EML_NTR | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Application Is Now CompleteCOMP | COMP | |
| Filing Receipt - UpdatedFLRCPT.U | FLRCPT.U | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Payment of additional filing fee/PreexamFLFEE | FLFEE | |
| A statement by one or more inventors satisfying the requirement under 35 USC 115, Oath of the ApplicOATHDECL | OATHDECL | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Email NotificationEML_NTR | EML_NTR | |
| Notice Mailed--Application Incomplete--Filing Date AssignedINCD | INCD | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
11 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYLAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| Fee paymentFPAY | FPAY | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS |
Numbers
- Publication
- 8661483
- Application
- 13690943
Titles
- English
- Determination of receiving live versus time-shifted media content at a communication device
Patent term adjustment
- Net adjustment
- 0 days
Classification
- CPC, 2
- H04H60/72
- H04H60/31
- IPC, 1
- H04N7 173
- USPC, 4
- 725094000
- 725087000
- 725088000
- 725110000