# Patent

## Title
Transfer of metadata using video frames

## Abstract

An automated method of attaching metadata to a segment of content using a programmed processor consistent with certain embodiments involves retrieving metadata relating to the segment of content; rendering the metadata as visually perceptible text in one or more frames of video; appending the one or more frames of video to the video as the first one or more frames of the video to produce metadata enhanced video; and storing or transmitting the metadata enhanced video. This abstract is not to be considered limiting, since other embodiments may deviate from the features described in this abstract.

## Background
CROSS REFERENCE TO RELATED DOCUMENTS
This application is a continuation of currently allowed U.S. patent application Ser. No. 11/706,890 filed Feb. 14, 2007, to now U.S. Pat. No. 7,991,271 Candelore entitled “Transfer of Metadata Using Video Frames,” which is hereby incorporated herein by reference.


COPYRIGHT AND TRADEMARK NOTICE
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. All trademarks used herein are the property of their respective trademark owners.
BACKGROUND
The majority of US households receive television content through cable television systems. Such systems have traditionally used a few OEM suppliers of hardware (e.g., set top boxes) and have not provided for integration of non-security navigation functionality of set-top boxes directly into digital TV sets. Under the so called “Plug and Play” agreement, the CableCARDTM adapter card was standardized as a way to adapt consumer electronics (CE) “navigation” devices to cable networks. While CableCARDTM standardization had promise, it was crippled by a lack of cable operator support, access to only a 1-way, lower tier of service, and no service-supplied metadata. With the advent of Switch Digital service, cable operators are further depreciating 1-way service by eliminating access to even some of the “basic” content.
Cable television Multiple Service Operators (MSOs) are presently establishing a new digital TV standard referred to as Open Cable Application Platform (OCAP) which will provide access to enhanced, 2-way functionality with unrestricted access to premium and high-value interactive services. Under this scenario, metadata (and the user interface) will be managed by OCAP applets downloaded to set-top boxes sold at retail. There is discussion about downloading OCAP applets to devices connected to those set-top boxes—so called “endpoints” in the home network. In this way, the cable operators can be assured of the “proper display” of their user interface when playing back cable content.
Unfortunately, under the OCAP model, CE manufacturers remain stymied because there does not appear to be a way to gain access to the metadata in order to create an alternative user interface to that supplied via the OCAP application. It is currently not possible to manage content in new ways that the customer might find compelling. Hence, this standard may force consumer electronics companies to conform to the user interfaces (UIs), Electronic Program Guides (EPGs), download protocols, and feature sets, defined by the MSOs using the OCAP standard. Unless a television receiver device such as a TV conforms to the OCAP standard (and its associated restrictions), it will be unable, among other things, to receive the meta-data related to the digital content. Without this meta-data, the television receiver will be unable to display any information related to the content including EPG descriptive material. As a result, improvements in technology, improved user interfaces and other features developed by such consumer electronics companies that are incompatible with the MSO supplied OCAP interface may be unusable in an OCAP environment. Additionally, the consumer will be stuck with whatever user interface and EPG capabilities their cable television supplier wishes to provide.
Internet services exist that can provide the desired descriptive material, however, to use such services, it is generally necessary to know the service provider, the time, and the channel number of the program being viewed. In a configuration where the STB is simply streaming decoded video to the TV (i.e., the STB is used just as a tuner/decoder), the virtual channel number associated with the video is unknown. Without the virtual channel number, Internet services that provide meta-data or descriptive material cannot be used.



BRIEF DESCRIPTION OF THE DRAWINGS
Certain illustrative embodiments illustrating organization and method of operation, together with objects and advantages may be best understood by reference detailed description that follows taken in conjunction with the accompanying drawings in which:
FIG. 1 is a flow chart depicting an exemplary process for acquisition of an electronic program guide in a manner consistent with certain embodiments of the present invention.
FIG. 2 is an example of an EPG screen containing metadata that can be captured in a manner consistent with certain embodiments of the present invention.
FIG. 3 is another example of an EPG screen containing metadata that can be captured in a manner consistent with certain embodiments of the present invention.
FIG. 4 is an example of a detail page in an EPG with metadata that can be captured in a manner consistent with certain embodiments of the present invention.
FIG. 5 is a block diagram of an STB access device and a digital TV control device consistent with certain embodiments of the present invention.
FIG. 6 is an example set of special characters that can be recognized in a manner consistent with certain embodiments of the present invention.
FIG. 7 is a flow chart of a method consistent with certain embodiments of the present invention.
FIG. 8 is a state diagram depicting operation in a manner consistent with certain embodiments of the present invention.
FIG. 9 is a block diagram depicting content assembly in a control device consistent with certain embodiments of the present invention.
FIG. 10 illustrates a set of assembled content produced in a manner consistent with certain embodiments of the present invention.



DETAILED DESCRIPTION
While this invention is susceptible of embodiment in many different forms, there is shown in the drawings and will herein be described in detail specific embodiments, with the understanding that the present disclosure of such embodiments is to be considered as an example of the principles and not intended to limit the invention to the specific embodiments shown and described. In the description below, like reference numerals are used to describe the same, similar or corresponding parts in the several views of the drawings.
The terms “a” or “an”, as used herein, are defined as one, or more than one. The term “plurality”, as used herein, is defined as two, or more than two. The term “another”, as used herein, is defined as at least a second or more. The terms “including” and/or “having”, as used herein, are defined as comprising (i.e., open language). The term “coupled”, as used herein, is defined as connected, although not necessarily directly, and not necessarily mechanically. The term “program” or “computer program” or similar terms, as used herein, is defined as a sequence of instructions designed for execution on a computer system. A “program”, or “computer program”, may include a subroutine, a function, a procedure, an object method, an object implementation, in an executable application, an applet, a servlet, a source code, an object code, a shared library/dynamic load library and/or other sequence of instructions designed for execution on a computer system.
The term “program”, as used herein, may also be used in a second context (the above definition being for the first context). In the second context, the term is used in the sense of a “television program”. In this context, the term is used to mean any coherent sequence of audio video content such as those which would be interpreted as and reported in an electronic program guide (EPG) as a single television program, without regard for whether the content is a movie, sporting event, segment of a multi-part series, news broadcast, etc. The term may also be interpreted to encompass commercial spots and other program-like content which may not be reported as a program in an electronic program guide.
Reference throughout this document to “one embodiment”, “certain embodiments”, “an embodiment” or similar terms means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of such phrases or in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments without limitation.
The term “or” as used herein is to be interpreted as an inclusive or meaning any one or any combination. Therefore, “A, B or C” means “any of the following: A; B; C; A and B; A and C; B and C; A, B and C”. An exception to this definition will occur only when a combination of elements, functions, steps or acts are in some way inherently mutually exclusive.
Embodiments consistent with the present invention may be carried out using any number of control devices including television sets and other devices using or incorporating television receivers and/or the OCR functions described herein including digital television sets, set top boxes, set back boxes, digital video recorders, Blu-ray recorders, optical disc recorders, disc drive recorders and other devices without limitation. Any exemplary illustrations depicted herein using any one such receiver device (e.g., a digital TV) should be interpreted as inclusive of any such device. Moreover, while the embodiments discussed herein by way of example describe operation under cable television distribution systems, the technology can similarly be applied to content delivered by satellite or Telco operators. For purposes of the present discussion, the term “access device” is intended to mean a device such as a television set top box or other terminal that has direct access to the service provider's metadata through digital data communication, whereas the term receiver device is generally intended to represent the device that receives video content from the access device, but is unable to directly access the digital representation of the metadata. The receiver device, by virtue of becoming the master to the access device in accord with embodiments consistent with the present invention is also referred to as a control device.
One of the primary constraints to providing a CE company with the ability to provide their own control mechanism is the potential inability to access the metadata associated with digital television programming. Normally such metadata are provided by the MSO to an approved (e.g., leased) access device. There are three aspects to such metadata—navigation, scheduling and program information.
Navigation data are information that allows an application to know that a particular channel (e.g., channel “KPBS”) can be found on a particular logical channel (e.g., channel “15”). (In the case of interactive services such as VOD, there is no logical channel, and the program is launched by negotiating a number of on screen displays (OSDs) and finally selecting the appropriate field from a list of choices.)
Scheduling data are information that lets an application know that a particular program (e.g., the “Newshour” program) starts at a particular time and will last for a particular duration (e.g., starts at “7 pm” and will last 1 hour). (Impulse Pay Per View (IPPV) is broadcast and therefore has a dedicated start time, while VOD runs on individual sessions and can start anytime.)
Program data are information that provides other program related information. For example, program data lets an application know that the “Newshour” is classified as “News/Business”, contains Closed Captioning, and, like most news programs, is Not Rated. Program data may also include a short summary of the program's content.
An Optical Character Recognition (OCR) approach as described herein can be used to obtain all or portions of one or all three of the above metadata. If the OCR approach is not used for all of the metadata, then some type of other data source, back-channel or network connection might be used to supplement the information obtained by the OCR approach described herein. Many OCR software modules which operate on numerous operating systems can be used to carry out the OCR processes described herein, and therefore, they will not be described in great detail. By way of example, the commercially available BizcardreaderTM program can scan business cards and create a database from the information.
In accordance with certain embodiments consistent with the present invention, OCR and/or pattern recognition techniques are utilized to capture metadata and/or command information associated with digital television content from a television receiver device serving as an access device. By doing so, the control of operation of the access device and/or presentation of the metadata can be manipulated by another device (such as a television set or network server) without the constraints imposed by a cable or satellite or Telco based television service provider.
One example is depicted by flow chart 20 FIG. 1 starting at 24. Consistent with certain embodiments of the present invention, the metadata associated with the EPG that provides a schedule of the television programming (Additional reference to the example EPGs of FIGS. 2 and 3 may be helpful in readily grasping the present discussion.) can be acquired by a process wherein a device such as a television receiver (e.g., a digital TV set) instructs an access device (e.g., a cable, satellite or Telco service provider supplied set top box) to generate and communicate a signal suitable for driving a display (e.g., IEEE 1394, IP video or baseband video) at 28, wherein the signal contains a visual representation of a video frame of the metadata when displayed on a display such as the electronic program guide. This signal is received and stored in memory at 32 as a representation of the video frame containing the EPG. This video frame can then be processed at 36 using pattern matching and/or optical character recognition to extract the metadata from the video frame. As long as this data is newly displayed at 40 the process continues until all data have been displayed at which point the process ends at 44.
The extracted metadata can be stored in a metadata database at 48 for use in construction of an alternate EPG by the receiver device (i.e., one that is distinct from that of the access device). This process can be systematically repeated by repeatedly sending a paging or other incrementing command at 52 to page or step up or page step down or page or step left or page or step right (e.g., page, left arrow, right arrow, up arrow, down arrow, etc.) in order to sequence through a plurality of frames of video containing the metadata in order to access and store at least a subset of the metadata to the metadata database. Once a new page is sent, the process repeats at 32 to acquire the new page for storage in the metadata database. In this representation, the action depicted at 52 preferably pages through all available channels and all available times so that, for example the system pages to the right for all available times for a given set of channels, and then pages up or down to begin acquisition of programming information for the next set of channels (which will then be paged through all available times). In this manner a full set of program data can be acquired for all available channels and times.
It is noted that in the United States, there are a limited number of service providers available, each of which uses a more or less conventional style of electronic program guide. Two examples are provided in FIG. 2 and FIG. 3. FIG. 2 is an exemplary screen shot adapted from an EPG used by DISH NetworkTM (EchoStar Technologies Corporation) and FIG. 3 is an exemplary screen shot adapted from an EPG used by ComcastTM (Comcast Corporation). Actual screen shots and other attributes may be copyright or trademarks of their respective owners. It is noted that the metadata associated with the television programming schedule is, in both cases and indeed in most EPGs, presented in a spreadsheet-like format time and date increasing from left to right in half hour increments with the channel and its associated program content appearing in rows below or above the time information. Hence, all available data, usually extending out for a two week period of time, can be obtained by systematically paging right to obtain future programming content and paging up or down to obtain the content of another group of channels (usually about 5 channels per screen), with the channel and logical channel number being presented in the leftmost column.
By having prior knowledge of the service provider with which the access device is associated, the process can be simplified somewhat in that only specific portions of the captured screen image need be scanned for text data that can be acquired via the OCR process. Thus, if the programming information is to be acquired in FIG. 2 or 3 data from the lower section depicted as 60 can be scanned repeatedly, paging right to obtain programming out to any desired time in the future (so long as new data are available), and then the process can be repeated for the programming that appears after a page up or page down command in order to capture program scheduling information for the next five logical channels.
Commonly, the metadata also incorporates more detailed information about a particular program. Such information is commonly represented at least in part on the EPG screen itself for a program that is highlighted on the EPG. Examples of this are depicted as 64 in FIG. 2 or 3. This information may be complete as shown in FIG. 2 and represent the entire program detail, or may be abbreviated as shown in FIG. 3. Thus, if shown in total, the detailed information about each program can be captured by OCR processing region 64 while systematically stepping through all programs shown on the EPG. System data and time can be obtained from region 66 using similar OCR technology. Alternatively, as in the case of FIG. 3, the full program detail may not be available. In this case, an “information” command can be issued for each program in order to display a detail page 68 for the particular program such as that shown in FIG. 4. This detail page contains a more complete description of the program (i.e., full review) in region 70, system time in 74 and ratings information in region 78. It is noted that even in the case depicted in FIG. 3, it may be desirable and possible to go to a separate detail screen for each program which may have additional information that can be acquired above and beyond that which is displayed on the main EPG screen. In accordance with embodiments consistent with the present invention, the EPG may be explored to whatever depth further information is available by traversing whatever information tree is present for the particular service at issue.
Hence, in this manner a receiver device, such as a TV without access to the native EPG data, creates a database of information from the video output of the access device. This precludes the need for the TV to directly receive digital metadata in order to create its own EPG, timers, and content data screens. Periodically (for example, once every 2 or 3 days) the TV can manipulate the access device (cable, satellite, Telco, etc.) to go through all its EPG and content data screens. This can be done through remote control infrared (IR) or radio frequency (RF) or CEA-931-B commands. When each screen is rendered, the video is thus captured and Optical Character Recognition (OCR) is run. The information is then interpreted and a content database is created. During this process, the TV can also interpret the menus, EPG and on screen displays (OSDs), to take the next step in paging through all the EPG screens. This permits extraction of information such as the name of programs, obtaining the virtual numbers for channels, e.g. HBO or CNN, etc. as well ac the content. The information is stepped through and displayed to present all available current and future contents of the official guide rendered by the access device. This information is essentially a dump of all of the access device's metadata content.
The receiver device can then use the “info” command to access additional detail available for each program to collect that sub-menu data about each program. Once the TV has this information stored in its own metadata database, it can then carry out any number of actions such as create its own EPG and create timers for recording, etc. without need for direct access to the metadata and without need for any special service such as that provided by TivoTM for the scheduling data required. All the data comes from the video of the slaved access device such as a cable set-top box.
The TV receiver device can obtain its sense of time from the menus of the slave access device (such as a set-top box) by accessing the system time and date, e.g., from region 66 of FIG. 2, or by user entry. Also, since an actual human is not processing the screens, the menus can be robotically stepped through. It might take only minutes to display OCR process and capture the metadata from all the screens. The video screens can be interpreted one at a time or the images can be batched and processed all at one time (e.g., during an initial operation and then subsequently at periodic intervals of each day or each several days during a time that the TV is not in active use). The process would ideally, but not necessarily, be done “offline” so processing speed may not be an issue. However, only enough time is needed to briefly generate and capture each frame of the metadata in order to complete the metadata capture.
It is noted that no cooperation from the service provider is needed to carry out the processes described and no outside data source is needed (although use of an outside data source to augment the information captured as described is not precluded). Embodiments consistent with the invention display all the metadata on-screen in order to dump it from the access device receiver. All the metadata gets OCR processed and re-recorded by the controlling device, e.g. the digital TV. No other data source is needed so the limitations imposed by withholding access to the metadata are effectively circumvented. Moreover, embodiments may be utilized to communicate through video with no dedicated back channel. The embodiments disclosed does require a mechanism to control the operation of the access device, e.g. an IR transmitter to transmit commands, but then the information received is sent only as a video representation. Hence, in some embodiments, an unsightly set top box access device could even be totally hidden from view and controlled by a control device such as 102 using any suitable command mechanism.
Now consider the embodiment depicted in FIG. 5. Assume that the digital TV 102 is connected to a cable set-top box 106 serving as an access device to the MSO 110 via cable network 114. As described previously, the TV 102 tells the STB access device 106 to cycle through channels in the manner described above by sending IR or RF remote control commands or commands made by direct connection such as a CEC compliant HDMI command protocol or IEEE 1394 CEA 931-B compliant command protocol, such commands being issued as by remote command transmitter 118 that are received by a remote command interface 122. This results in STB 106 generating a display of the EPG that is sent via the video output interface 126 to a video decoder 130. The video frame representing the EPG is then displayed and captured in a frame memory 134 of the digital TV 102. An OCR function 138 is carried out on the stored frame stored in 134 under control of (or as a computer program running on) the digital TV's control processor 150. Once the OCR function has been carried out, the resulting information is stored in a metadata database 154, and can be used, for example, to present the viewer a different user interface (UI) via TV user interface function 158. Metadata database 154 may be embodied in a hard disc drive or other storage medium that is used to store the content. In other embodiments, the data can further be used to create timers for recording devices such as personal video recorders (PVR—also known as digital video recorder DVR), video tape recorders, optical disc recorders, disc drives, etc.
In accordance with embodiments consistent with the present invention, operation of the process is independent of the nature of the access device so long as the receiver device such as 102 can use some mechanism to cause the access device to cycle through its pages of EPG and other metadata. The STB 106, for example, may be enabled with an OCAP engine 162 and will generally have its own user interface function 164, but utilizing embodiments consistent with the present invention, such interface can be supplanted or supplemented by capture of the metadata that would otherwise be inaccessible to the digital TV 102.
In the event the access device is instructed to tune to a channel that is not authorized, the access device can generate an OSD stating that fact. In accord with preferred embodiments, the TV can interpret the OSD and tell the viewer that another channel needs to be tuned or the service provider needs to be contacted. When the service provider is known, such screens can be readily recognized and parsed by process 150.
In accordance with certain embodiments, the access device's UI can be totally replaced by a UI function 158 provided by the CE manufacturer without need to directly access the digital metadata. In such a scenario, the metadata stored in the metadata database are used to generate a TV UI. Commands sent to the TV, for example, from a remote commander that controls the UI can then be translated at processor 150 to an appropriate command that is then transmitted by remote command transmitter 118 to remote command interface 122 so that the user can be presented with the CE manufacturer's UI, yet the net effect is that the access device 106 becomes a slave to the digital TV which acts as a master.
Metadata captured from OSDs can thus allow the CE manufacturer's TV or other receiver device to manage and proxy the service provider set-top box (or other access device) into a home network with other devices conforming to more open standards, e.g. DLNA. The TV could further act as a gateway device to transform and stream content in IP format—allowing the TV or other interconnected devices to position itself as a home media server—aggregating content, from disparate sources, and presenting a uniform user friendly interface to play and manage content.
There are at least four scenarios currently envisioned for the OCR metadata capture approach described above: 1) Local UI with compressed content output; 2) Local UI with re-compression of content; 3) Remote UI; and 4) Metadata capture without content.
1) Local UI with Compressed Output (Cable Only)
Because most households receive content through Cable, it is appropriate to discuss solutions that might be applicable to just Cable. This OCR process exploits the FCC mandated, cable implemented IEEE 1394 interface to pass compressed, copy-controlled content from access devices such as STB 106 to a controlling device, e.g. the DTV 102.
Unfortunately, while many OEM set-top boxes fielded by the cable operators have the IEEE 1394 connector, the functionality is often not enabled despite by the FCC mandate. However, a set-back box designed to mount and work with a CE manufacturer's DTV could be assured to have this interface enabled. This will be described as the “Local UI with Compressed Output” approach and is expanded upon in the paragraphs below.
The approach assumes a 2 device—OCAP-enabled set-back box and TV—combination in order to properly receive all content, output content over IEEE1394, and capture metadata by OCR'ing the video.
The 2-way interactive set-back box will likely be OCAP and CableCARDTM enabled. But, not all cable systems will be required to implement OCAP or support CableCARDTM. In those systems, the following solution may be implemented:

    
    
        1. If there is a CableCARDTM, but no OCAP support provided, then the set-back box can render its own EPG. {The metadata that populates the set-back box guide will be similar to 1-way CableCARDTM-enabled receivers and may be problematic as discussed earlier in the Background.}
        2. The set-back box will not be used and a cable operator supplied set-top box will be supplied instead. In this case, “Local UI with Re-compression” or “Metadata capture without Content”, described below in the following sections, may be used.
    
    


The “Local UI with Compressed Output” approach exploits the IEEE 1394 interface for transmission and reception of the video as mandated by the FCC on all set-top boxes. This interface allows the TV 102 to access the compressed content. IEEE 1394 is a robust interface that solves many Quality-of-Service (QoS) issues that the service providers claim to have for their service. It has the usual compliance and robustness rules regarding its copy protection system—DTCP. However, so long as the content is safeguarded from illicit copying, the content can be shared with other devices. In this approach content can be shared without a service operator controlled application.
The approach would ideally have the TV use High Definition Multimedia Interface (HDMI) for the video screen capture and OCR operation, and pass-through of remote control commands. The on-screen display rendered by the HDMI interface is of a higher resolution than that of baseband video. And the Consumer Electronics Control (CEC) pathway which is part of that interface can be used to send remote control commands to the set-back box. Therefore, a single connector can provide both the video and set-top box control capability (i.e., serves the purpose depicted in FIG. 5 of elements 118, 122, 126 and 130 from the perspective of connection interface points for video and commands as used in accord with the above discussion). Baseband video can also be used as an alternative to HDMI for screen capture.
2) Local UI with Re-Compression
For Cable systems that do not support CableCARDTM and/or OCAP, as well as for the Satellite and Telco services, the customer will probably use a service provider supplied set-top box.
In this scenario, it will be difficult for the controlling device, e.g. the digital TV, to directly obtain content in digital form. About the only interface that is guaranteed is baseband video and audio. Such baseband video can be used in accord with the embodiments described above.
3) Remote UI
Soon, it is anticipated that content will be streaming into and around the home using IP packets. Eventually, all content might be shared this way. For bandwidth reasons, the content will likely be compressed.
Metadata may be delivered encrypted or in a proprietary format so that only certain licensed application, perhaps an OCAP applet, running on the endpoint can gain access to the native digital metadata. Standardization groups like Digital Living Network Alliance (DLNA) are trying to gain access to the metadata, but at this writing have not accomplished the goal of standardization.
In this scenario, the above-described video capture and OCR application running in the control device, e.g. the digital TV (DTV), can grab the text rendered on-screen as described. This situation will not require a “local converter” described below. The OCR application described above does not need to access any video/audio content which might be present on-screen and protected. Rather, only the “graphics plane” need be accessed.
Alternatively, another approach is to create an endpoint for the delivery of a service in a remote local set-top box. The control device would then manipulate the local converter. This problem then starts to look a lot like the “Local UI” approach described above.
4) Metadata Capture without Content
One possibility of the control device (e.g., DTV 102) is to capture metadata in order to simply be able to manipulate the service provider supplied set-top box without getting access to compressed (or re-compressed) content. In such a scenario, some of the service provider's screens may be re-rendered. The following are some examples:
PVR Content on Set-Top Box
PVR timers can still be managed by the control device, e.g. DTV, by using the active buttons [Record], and, if queried about recording to the end of the show, pressing [Select] over the (YES)—a default field.
Perusing content on the PVR is generally done using the set-top box's Content List because there is no other way to identify and retrieve content from the hard disk drive. The Content List could also be OCR processed and stored to the control device's metadata database 154 as further data so that the content might be shown as available in an aggregated list of content from many sources. However, when selecting this content, the set-top box PVR screens or equivalent thereof may need to be invoked using [PVR], and [Select] over (Recorded programs) field, and then the content list will scroll using [Arrow-down] to the program of interest (which will be become highlighted). After this, [Select], [Arrow-right], [Start-over] can be selected. This can be accomplished in an automated way wherein the control device sequences through the PVR screens to select the content. This type of functionality desirably uses rapid, real-time OCR capability in order to avoid undesirable lags in performance. Also, the service provider screen generated by the access device might be hidden behind the control device (media server) screens.
IPPV Content Stored on Set-Top Box
Impulse Pay-per-View (IPPV) content can also be managed by the control device such as DTV 102 in accord with certain embodiments. IPPV is a scheduled event using a logical channel and time. It is similar to a broadcast event, except that there is a purchase screen. After previously capturing the metadata from the EPG, the control device can simply enter the [Channel #], [Select] which would bring up the purchase screen. This screen can be presented to the User or auto-purchased by the control device. Purchasing typically means highlighting the (Yes) field and then selecting [Select].
Remote Control
The control device, e.g. the DTV 102, can manipulate the access device, e.g. the set-top 106 box using remote control commands just as a human would. If the remote control has a “hot key” to access a certain screen, the control device can use it. If broadcast content tuned using the 10-key numeric keypad to tune, the control device can do this as well. The problem arises when options are only provided in lists in which a user must highlight in order to select. In this instance, the control device recognizes the entry in order to be able to select it. As discussed later real-time OCR provides for this capability.
If a viewer can use the remote to display program and guide information, the control device can too. And then, all this information can be OCR'ed in to a database.
Remote control commands can be issued using any the following or any other suitable interface and control device:
1. IR or RF blaster
2. HDMI Consumer Electronics Control (CEC)
3. 1394 AVC using CEA 931B
4. Internet Protocol
The following are the minimum remote control Keycode set required by OCAP for Cable:
Hot Buttons: [Guide], [Cancel], [Select], [Select], [Power],
[Info], [Menu], [Exit], [Last], [Function 0-3][Favorite], [Next Favorite], [On Demand]
Tune: [Channel Up], [Channel Down], [RF Bypass]
Sound: [Volume Up], [Volume Down], [Mute]
Arrows: [Up], [Down], [Left], [Right]
Page: [Up], [Down], [Left], [Right]
10-key: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9 and multiple digit combinations]
Trick Play: [Fast forward], [Pause], [Rewind], [Skip Forward], [Skip Back], [Stop], [Play], [Record]
These are the basic set that most remote controls support. Not listed by the OCAP specification were: [Pip] and [Swap].
Special Symbols
When the various EPG and OSDs used by the various service providers are examined in detail, it is apparent that some of the metadata and certain symbols used for representation of commands and other functions are represented symbolically. It is desirable for such special symbols to be recognized in the OCR process. Accordingly, the OCR process may be augmented by either addition of certain special characters to the alphabet recognized by the OCR process or characters separately recognized using any suitable pattern matching and recognition algorithm in order to assure that the process does not mistake special characters for conventional alpha-numeric symbols.
An illustration of a partial listing of such special characters is depicted in FIG. 6. Other special characters are also used by various service providers and can be similarly addressed. The Optical Character Recognition (OCR) application is preferably enabled to process such symbols. Depicted are right arrow 202, left arrow 206, up arrow 210, down arrow 214, locked symbol 218, unlocked symbol 222, star 226 (note the stars used as ratings in FIG. 3-4), half star 230 (note the half star used as ratings in FIGS. 3-4) and pay symbol 234. Such symbols may be misidentified by a conventional OCR process unless modified to add them to its alphabet or unless identified by an augmenting pattern recognition process.
In the EPG display the star and half star are used for example with the key word “critique” to evaluate the quality of a program or movie, wherein more stars represent content of higher perceived quality (see area 64 of FIG. 3). The various arrows are used to show that the program entry in the EPG is off-screen before or after the current time (or both for a long program) or that there are follow-on EPG screens before or after the present one. The pay symbol 230 is used to indicate that a payment is required to view the content. The locked and unlocked symbols 222 and 218 respectively represent the state of parental control associated with a particular program. Other EPGs may further have other graphic symbols that can be represented to concisely convey various information, and detection of such symbols are contemplated hereby even if not expressly depicted.
In one embodiment, the OCR state machine is enabled to process pattern match graphics information with the rough shape of the characters depicted. The various sizes of the symbols should be considered and may vary among service providers. It is possible that once a determination has been made that a match has been found, that the graphics information can be saved. In subsequent searches, the exact pattern can be used to determine a match to accelerate the matching process. In other embodiments, the patterns can be predefined based upon a bitmap of the shapes to be detected. Thus graphics symbols are detected and the OCR and does not try to match the pattern to conventional “text”, but instead properly assigns the meaning intended in the native frame of video. Hence, the OCR program is enabled to look for these special symbols used in program and guide screens.
MSO Icon Recognition
In addition to returning special characters such as those discussed above, the OCR process consistent with certain embodiments of the present invention preferably are also able to use pattern matching or other techniques to identify, e.g., by comparison with a stored set of reference icons. The top 20 cable MSOs in the United States are the service providers for approximately 90% of all cable television customers. Hence, there are a limited number of icons that the process is to recognize, thus dramatically simplifying the task of recognition of the icons. Additionally, there are currently only two satellite DBS service providers. While the Telcos are starting to provide competing services, there are similarly very few of those as well. Hence, the icon database used for comparison could be relatively compact. By way of example, the DISH NetworkTM logo 302 of FIG. 3 and the ComcastTM logo 306 generally appear in one or more known locations of one or more known screens that can be displayed on command (e.g., the upper left corner of the EPG screen). The OCR process can therefore identify the content supplier by searching for its logo. Once identified, the layout and menu tree for the OSD and EPG functions can be known in advance. This factor can be used to limit searching for text and OCR recognition of text to locations where text and characters representing desired metadata are located. If there is no match, then a new icon, if one is identified, can be stored in the database.
Service provider icons are typically rendered using the top guide menu [Menu]. The location of the icon on screen should preferably be returned just as with regular text. Recognition (and also perhaps ignoring) these icons and other icons could not only help with installation of a control device with a set-top box under control but also help the state machine keep track of states. The name of the service provider may thus be used with the control device's local database when identifying the source of the programming and also to help the OCR state machine with the hierarchical menus of that particular service provider.
Where the icons used by service providers may vary somewhat in size but otherwise remain the same, the OCR process can “box-off” the icon on screen and compare it with stored icons. Various sizes of icons could be scaled and trialed to get a positive identification. In addition, the color of the icon is usually constant, thus, color matching can also be used to aid in identifying an MSO's particular icon. Additionally, the ratio of colors may also be used to assist in identification of the icon (for example 1⁄3 white, 1⁄3 Indigo, 1⁄6 Red, and 1⁄6 green). Generally, the top program scene when the [Menu] command is issued should display the service provider. If it doesn't, then the access device may have encountered a malfunction.
Icons for channels could be examined as well. Analysis might actually be to ignore them so that the rest of the text based channel content could be scanned. Other unusual graphics might be detected so that they can be ignored as well. For example, EchoStar has a stylized “star beam” at the beginning of each channel list in the EPG. Each such unique attribute can contribute to detection of a particular service provider or service provider's icon, and thus enhance the efficiency of the OCR process by limiting the regions of the frame that are searched for metadata, and identification of an alphabet of and location of special characters that appear in the video frames.
Access Device Recognition
It is possible for a device to use Optical Character Recognition (OCR) to examine the text in the On-Screen Display (OSD) for installation purposes of a device interfacing with another device. It is further possible, once a service provider is identified and the access device and associated software version is identified, to more readily traverse the device's command tree or menu hierarchy by use of commands from the control device.
For example, after sending the [Guide] remote control command, the following information can generally be obtained:
1) Service provider (e.g., EchoStar, DirecTV, Comcast, Cox, Time Warner, etc.—for example by the logo identification at 302 or 306)
2) System time (e.g., at 66, 74 or 374).
After sending the [Menu], the text on screen is OCR'ed. The [Down arrow] can be used to highlight {Installation} {install} or similar text. Then the [Select] command can be issued to enter the install screen. The install screen can be OCR processed. The [Down arrow] or other navigation command (as determined by the menu hierarchy and layout) can then be used to navigate to {System Set-up} or similar command. The setup screen can then be OCR processed. The [Down arrow] (or other navigation commands) can then be invoked until the following information is obtained by the OCR processing:
1) Model number of the access device (e.g., set-top box), and
2) Software version number for the access device's software.
Hence, embodiments consistent with the invention allow a control device to use OCR processing to learn the attributes of the access device it is controlling. It can learn the service that the set-top box is hooked up to as well as system time. The model # and software version number can be obtained. This allows the control device to readily navigate hierarchical menus, since once these features are known, the sequence of commands necessary to navigate to any given point in the OSD or EPG or other portion of the menu system can be known.
As a result, a Home Media Server can know what service a set-top box or other access device is hooked up to. The system time can be synchronized among the controlling device and any home network devices. The hierarchical menus of an access device (dependent on Model # and software version) can be determined so that further commands can more directly be issued in order to exercise control over the access device in a slave capacity. Also, by knowledge of this information, templating of the various display screens can be done from a template database to simplify the process of OCR capturing metadata as described above, since the whole frame need not be processed each time a new frame is displayed. In certain embodiments, another time source can be utilized if desired.
Color Processing
Color has become an important part of the information displayed in on-screen displays such as an EPG, and yet color is ignored by conventional OCR programs. Color is often used to convey various information such as the following: 1) highlighting a field (showing that the cursor is over a particular field—as illustrated by the shading of the program at channel 4 in FIG. 3 or 4); 2) authorization status in the guide (red is often used to reflect a channel with non-authorized status which would cause tuning to fail); 3) parental rating of the program; and 4) program type, e.g. movie is green, series is orange, etc.
In accordance with embodiments consistent with the invention, analysis of the frames of video stored will preferably also return the color of the background associated with each block of text found for which background color might be relevant. During installation, the highlight color of EPG data can be determined. Also, the highlight color of hierarchical menu field can be determined.
In order to extract metadata through OCR processing of an EPG, a hardware or software state machine can be created. The state machine uses up, down, page-up, page-down arrows (e.g., using an IR blaster) to step the access device set-top box through all its hierarchical menu, guide and program related screens. It would be very helpful to the state machine to confirm that a field has in fact been selected. Detection of this information can be used to assure that, the access device does not become out-of-sync with the OCR state machine of the control device, e.g. TV or Home Media Server. Once the field is selected the [Info] command or equivalent may be used with a program to get expanded information. If the field is a hierarchical menu choice, e.g. “movies” subset, then a [Select] command or equivalent would be used to transition to a screen list of movies.
Hence, in addition to conventional OCR functions, the OCR application used in preferred embodiments should also return a color code for the background of text. Care should be taken not to confuse shadowing or text highlights with the background color. Knowledge of the particular fonts used in a given service provider's access devices for a given model number and software revision can assist in assuring that the background color is actually identified.
In one embodiment, during the installation operation, a channel is selected from the guide menu. This can be accomplished in some environments by sending a channel number to the access device. The current program of the channel will then be highlighted. The background of this text can then be stored and interpreted as the “selected highlight” color. In addition, if the background color of a channel name is red, then the OCR state machine can confirm that it is a channel that is not subscribed and that the [Guide—All Channels] selection has been chosen (for example). The exact red color can be pinned down by deliberately selecting an unsubscribed channel (similar to highlighted color described above).
Also, during the installation operation, the highlight color of hierarchical menu fields can be determined. The way to do this is to compare the background colors of all the fields. The one that is different is the highlight color for hierarchical menu fields. This color will likely be different than those in the EPG.
Usually, the text itself changes color and not just the background. The color of the text while selected can also be recorded and used with the state machine to help identify selected menu elements. Knowledge of the letters can be used to make sure that pixel color from that making up a letter is chosen.
The OCR state machine can sequence through all the programs in the EPG as discussed previously. Some programs will be partially off screen as the start and stop times will not all be within the view of the EPG shown on screen. When the down arrow is used, the highlighted text can be confirmed to be that of interest.
As part of OCR processing, the location on screen is returned with the text from a particular OCR text block. The color of pixels slightly outside the block can be compared if found to be the same stored as the “background color”. The color scheme of the particular EPG is often changeable by the customer, so a determination of highlight color might have to be done whenever the OCR state machine believes it is out-of-sync with the access device set-top box unless it can be determined that the customer has changed or is changing the color scheme (through real-time OCR interpretation).
In another approach the OCR process can use knowledge of the letters in a particular block to find pixels around the text. For example, pixels from inside the “o”, “p” or “b” might be used. In the case the background and foreground colors can be readily distinguished upon identification of one of these characters and analysis of the colors of the pixels associated therewith.
OCR State Machine
In the present application, Optical Character Recognition (OCR) is preferably a software application running on a processor such as 150 of the control device, e.g. a DTV 102. The OCR process can operate on any suitable operating system such as for example Linux and can run, for example, on a MIPS CPU. The OCR capability translates video screen images of OSD text into a machine-editable text. Combined with an OCR State Machine cognizant of hierarchical menus of the target set-top box, all of the metadata may be displayed and captured into a new metadata database in the control device.
There are many commercially available versions of OCR software that can readily be adapted to the present application. The quality of OCR software has greatly improved over the years. There are modules for Linux as noted above as well as C/C++ versions that are available to allow tailoring to the present metadata capture requirements.
In order to use OCR, a video screen capture to frame memory 134 with the OSDs first takes place as described above. The capture can be BMP, JPEG or many other formats can be used. Most decoder ICs such as those commercially available from manufacturers including, but not limited to, ATI, Broadcom and Conexant have the ability to read the graphics buffer to capture what is present in the buffer to a separate file.
As previously noted, one possibility is for the controlling device to sequentially “batch” the process—go through and capture all the EPG and content data screens in separate files so that the OCR operation can be processed in the background in an off-line fashion. This would minimize the time between all the various screens.
There are a number of optimizations which may be implemented to configure the engine for the task at hand—no handwriting recognition, processing only one type of image (such as JPEG), limiting possible fonts, and limiting processing to one screen at a time. In addition, scanning might be performed only on certain sections of the screen and then verified against a relatively small list words in a database.
This approach re-creates a database of information from the video output or remote display of a “slaved” access device receiver. The video output or remote display is processed through Optical Character Recognition (OCR) technology which can recognize words. Periodically (e.g., once every 2 or 3 days) the controlling device manipulates the access device to go through all its EPG and content data screens. This can be done through remote control IR or Consumer Electronics Association Standard CEA-931-B compliant commands, for example. When each screen is rendered, the video screen is captured and the OCR process is run. The captured information is then interpreted and the metadata database is created or updated.
Example Process Overview
Below is an exemplary step by step process that can be used for an illustrative access device. Those skilled in the art will understand that other process details may be required to facilitate control of other access devices. First, it should be noted that the process will likely begin with some type installation process. However, preferably, the installation process should auto-detect the service provider and receiver from an OSD rendered thereby. This can be accomplished by manually or by trial issuing a [Menu] command and installation, the particular set-top box model number may be obtained. Knowing the particular set-top box helps with negotiating hierarchical menus and special PVR and IPPV screens.
The following example depicts the process used with a Comcast, Motorola Model #329 access device set top box. A similar process can be devised for other access devices.
0: Installation
The receiver will be made to periodically render all its EPG and related program data in order for it to be OCR'ed into a database. This can be done during late hours of the night, e.g. 3 am, and chosen by the user in accordance with certain embodiments.
1: Initialization [Cancel], [Cancel], [Cancel]
Eliminates any OSDs which might be on-screen
Menus can usually nest 3 levels deep; consequently 3 or more consecutive cancel Remote Control commands should generally suffice to return the set-top box to its top level—i.e., a known entry point from which the process is to proceed.
2: Top Menu: [Menu] {SCAN}
Should display the “Main Menu”—Main menu selections for example, may include those shown in the tables below.
All content menu paths should be noted:















TV Listings
Movies



ON DEMAND
Sports



HDTV
Kids









Configuration and info paths can be ignored















Search
Parental Locks



Favorites
Messages



Set-up
Help









Top menu item should be highlighted
OCR module should recognize not only the text “TV Listings” but also that it is selected (or permit navigation to TV Listings and verify that the item has been highlighted).
If correctly highlighted, then the [Select] command is issued.
From here the process can proceed to the television program listings to display a listing similar to that of FIG. 3.
3: Inside TV Listings: [1] [Enter]
Should display the top of “TV Listings” Menu
{SCAN}
The following should match the database of acceptable text:
Channel Names (most)
Date, Day, Time
Program Names (many)
Rating, Closed Captioning
If there is no match, then extra processing may be carried out to assure the accuracy of the text
A database template is filled in with data from the OCR operation
[Info] should bring up the expanded program information
At this point, the expanded information such as that appearing in FIG. 4 should appear.
4: Access other main menu content:
Re-initialize [Cancel][Cancel][Cancel] to get to the Top Menu.
Once at the Top Menu [Menu][page down] [page down] [select] commands will navigate to the “On Demand” pages.
Once On Demand pages are displayed
{SCAN}
All content menu paths can be noted to identify the command sequence that will permit later navigation thereto:















Movies
Sports & Fitness



Premiums
Kids & Teens



Cable Favorites
Music



Lifestyle
Help and Services



News & Info
Saved Programs









Fortunately, as mentioned above, OSDs generally comprise a limited vocabulary. The words obtained through OCR can be run through a program to correct errors and filter out artifacts.
The control device may also be able to key in on certain words to determine whether an error message has been placed on screen in order to take corrective action, if any. In other embodiments, the text may be compared with a stored collection of error messages that appear on OSDs in order to take corrective action.
State Diagram
A state diagram 350 depicting operation of the overall process is shown as FIG. 8. In this state diagram, the OCR process first initializes at 354. During this initialization, the following actions are carried out:
Auto-scan set-top box OSD
Installation:
Determine
Remote Control set
STB Model #, features
Service Provider, System Time
Control then passes to 354 where the following actions are carried out:
Initialize service provider channel database
Determine Channel Line-up (Tier of Service)
If already captured, any changes
Determine Local Line-up
Correct Local Channel Names
Determine HD/SD assignments
Control then passes to 358 where the following actions are carried out:
Determine where 2 week guide is out-of-date, and go get data to populate database:
Line-up beginning of guide
Acquire schedule, program name Info
Acquire [info] for each program
Inventory content on HDD, space available
The process then determines if the channel map has changed at 362 and if so, returns to 354. If not, the process sleeps until a designated or waits for a designated time period and then returns to 358.
Real Time OCR
It is possible for interactive programs, such as a VOD or programs recorded on the hard disk drive, to be selected from the list by the control device. The application running on the media server can sequence the set-top menus by invoking and traversing VOD screens, and finding the name of the program in the set-top box list and then sending [Select].
As an alternative to “real-time” OCR processing, a control device might attempt VOD or PVR screens to learn the index and position of the content in the various screens ahead of time, e.g. when the basic guide content is acquired. Upon selection by the user, the user provider screens must be re-invoked, but they would be mechanically stepped through without immediate interpretation.
Another possibility to real-time or prior OCR processing, is a mode where certain service provider screens are allowed to be rendered on the TV screen—a mix mode of operation. In this case, the “real-time” part might be simply the user scrolling through a list of VOD or recorded programs to find the program of interest and confirming purchase of the VOD program (if need be).
It is possible for the control device to hide the set-top box screens and only render its own screens, thus changing the look and feel of the user interface.
Installation
Ideally, installation would be a totally hands-off operation where things “just work” without user involvement. About the only thing the user need be concerned with is properly cabling the devices.
A. Trialing RC Commands
If directly connected to a set-top box, the control device can determine whether or not the set-top box is powered up or not by detecting sync signals over baseband video, Digital Visual Interface (DVI) or HDMI. The control device can trial remote control commands in order to turn on the set-top box. Confirmation will be that a sync signal is detected albeit possibly with a blank display. The RC command set can be confirmed by having the set-top box bring up the installation menu. If the menu does not render, then other possible RC codes can be trial until the menu finally renders.
B. Scanning Set-Top Box and Service
Once the installation menu renders, the control device can scan for the model ID and version of code. Next the guide menu can be rendered using [Guide]. From the guide menu, the service provider can be identified (e.g., by icon or logo 306 of FIGS. 3-4 and system time can be obtained from 374 of FIG. 3.
The model number can also often be obtained as well by invoking [Menu] and [System Information]. The following can be learned using information obtained by OCR scanning of the displayed information:
HD capable
DVR capable
Number of tuners
Hard disk drive space
By invoking [PVR], the list of programs stored on the hard disk drive may be scanned along with time remaining.
Limited Vocabulary
Program and guide information usually conforms to a limited vocabulary of text, numbers, punctuation, standard symbols, special symbols and contractions. The text for program information, e.g. plot synopsis, is limited to a 7th grade dictionary plus proper names. Table 1 below is a summary of the typical current vocabulary and certain symbols and is subject to change.







TABLE 1





Limited Vocabulary







Time


1:00 pm, 1:30 pm, 2:00 pm, 2:30 pm, 3:00 pm, 3:30 pm, 4:00 pm,


4:30 pm, 5:00 pm, 5:30 pm, 6:00 pm, 6:30 pm, 7:00 pm, 7:30 pm,


8:00 pm, 8:30 pm, 9:00 pm, 9:30 pm, 10:00 pm, 10:30 pm, 11:00 pm,


11:30 pm, 12:00 am, 12:30 am, 1:00 am, 1:30 am, 2:00 am, 2:30 am,


3:00 am, 3:30 am, 4:00 am, 4:30 am, 5:00 am, 5:30 am, 6:00 am, 6:30 am,


7:00 am, 7:30 am, 8:00 am, 8:30 am, 9:00 am, 9:30 am, 10:00 am,


10:30 am, 11:00 am, 11:30 am, 12:00 pm, 12:30 pm,


Times not on half hour use: ( ) {example (12:05), (01:40)}


Day


Mon, Tues, Wed, Thu, Fri, Sat, Sun


Date


Year: (range 1930 to present) Month/Day {example 8/14}


Program Information


Rating: NR, R, PG, PG13, R, X, TVY, TVY7, TVY7FV, TVPG, TV14,


TV MA, SC, L


Category: Serial/Special, News, Family Series/Special


Miscellaneous


Closed Captioning: (CC)


Audio: (Stereo)


Reruns: New, Repeat


Special Characters (also see FIG. 6


Program length off-screen:  ,  


Title is truncated: . . .


Comments: Critique:


Title


To Be Announced


Hot Screen Buttons


Done, Delete, Erase, Start-over, Resume













Channel Names















A&E
ESPN2
HN
MYST
SUNDw


ACT-E
ESPNC
HOTNT
NGEO
TBN


AMAX
ESPNN
HSN
NICK
TBS


AMC
FAM
IC
NOG/N
TCM


APL
FLIXe
IFC
NTOON
TDISP


BBC
FMC
ILIFE
NWI
TECH


BET
FNC
KBDI
OUTCN
TLC


BETJ
FOOD
KCEC
OUTLF
TMAX


BIO
FOXSP
KCNC
OVAT
TMCe


BLOOM
FSN
KDEN
OXGN
TMCXe


BRAVO
FS-RM
KDVR
PLAY
TNN


BSTZ
FUSE
KMAS
PLEX
TNT


CMT
FX-W
KMGH
SCICH
TOON


CNBC
G4
KPXC
SFC
TRAVL


CNN
GA
KRMA
SHOe
TRIO


COMW
GAC
KTVD
SHOFe
TRU-E


COURT
GAME
KUSA
SHONe
TVGC


CSPAN
GAS
KWGN
SHOTe
TVLND


CSPN2
GOLF
LIFE
SHOWCe
TWC


D-H&L
HBO2E
LMN
SHOWe
USA


D-HC
HBOCM
LOCAL
SHOWXe
VH1


DIS
HBO-E
LOVE
SNBC
VH1C


D-KID
HBOFE
MAX-E
SPCE2
VH1CR


DSC
HBOSE
MBC
SPEED
VH1SO


DTMS
HBOZN
MC
SPICE
WAM!


D-WNG
HGTV
MMX-E
STYLE
WE


E!
HIS-I
MSNBC
STZ
WGN


EDUC
HIST
MTV
STZe
WORD


ENCR
HLMRK
MTV2
STZf
WSDM


ESPN
HLTH
MTVH
STZT
WSTN










Local Channels











Affiliates



for



ABC



CBS



NBC



PBS



FOX
{These will vary for each locality} 041-


WB
00, 051-00, 006-00 039-00, 015-00, 010-00 069-00, 008-00









OCR Speed-Ups

The following are possible “procedural” improvements to the metadata collection operation:
1. The control device might take advantage of the viewing habits of the user so that the most frequently watched channels and programs have the highest priority of data collection.
2. Programs that are scheduled for repeated recording also have a high priority.
3. There are a number a limited number of EPG layouts. These can be templated to facilitate OCRing of only the information desired.
Transfer of Metadata Using Video Frames
Now consider the system of FIG. 9 wherein the control device 102 is a part of a home A/V network. In this example network, the control device 102 is connected to network devices 404 and 408 as well as access device 106. The exact mechanism of interconnection of the network devices is not significant, so long as it can handle the bandwidth of the video signals passed thereover and is depicted in this illustration as network bus 412. One example of such a network interconnection scheme is an IEEE 1394 interconnection or Ethernet system, but could equally well be a wireless network. In such a network, it may be desirable to be able to pass metadata among the various devices in the network.
One solution to this is for a source device such as control device 102 to transfer metadata with content being recorded by synthesizing one or more text screens displaying the metadata. In preferred implementations, a first, and optionally, a second screen of information with all the metadata displayed as keyword entries and text can be used. This is depicted in the content assembled by content assembly process 416 (which may be a program running on processor 150) to produce the metadata enhanced data stream or file 425 depicted in FIG. 10. The screens of information can last 1 to 2 seconds each and can be encoded as MPEG I-frames. The recording device, such as control device 102 records the first and, optionally, second screen of information along with the content. Content players such as devices 404 or 408 (e.g., a PVR or optical disc recorder) playing back the content in the future can access the metadata by simply using a similar OCR process to extract the first frame 430 and, if optionally sent, second frame 434 of the content 425. Hence, the content assembly process involves constructing metadata video frames that are conducive to transfer of the metadata. In certain embodiments, the metadata can also be made available for browsing by humans by pausing for appropriate time for each frame or permitting the viewer to view first the first frame and then upon issuance of a control signal viewing the second frame prior to proceeding to view the program. The metadata enhanced content 425 can be transmitted or stored in this form so that the metadata can be readily retrieved by OCR processing of the first one or more frames of the video content.
In addition to providing basic metadata, the technique can further be used to transfer technical parameters for proper playback of content. This technique has the advantage of embedding the metadata within the content and avoids need for separate files to be associated with the content.
In preferred embodiments, the metadata are recorded in the content itself as visible data appearing in the first I-frame and, optionally, the second I-frame. Recording begins prior to the content broadcast with a synthesized I-frame sent by the source device 102 using content assembly process 416. In preferred embodiments, keywords such as the following: Title, Producer, Actors, Channel, Time, First Broadcast, Duration, Rating, Critique, Recording Time, Closed Captioning, Subtitle, Release Year, Genre, and Description are used in the first I frame of video to convey the obviously associated metadata.
Further in accord with preferred embodiments, the second I-frame can include technical parameters such as: video codec, video format, video bit rate, frame rate, Interlace, audio codec, audio bit rate, DRM, Licensing Authority, Copyright Notice, etc. which a player might use for proper playback of content. If video codec is listed, the first and second I-frames can be standardized to a specified format that is widely available such as, for example, MPEG-2. These I frames travel with the program content 438 as file or stream 425 and can be readable by human as well as by machine with OCR capability. Since one or two I-frames of text constitute a trivial amount of bandwidth, there is minimal detrimental effect on the bandwidth required for storage of the content.
If a human is to view the data, then a screen of text would actually not likely last the time of a single I-frame, but would be held in view for perhaps several seconds each (e.g. 2 to 10 seconds each). There are approximately 2 I-frames per second so each screen might actually last 4 or more I-frames. The duration of the screen might be listed in the text, e.g. “screen duration”. The first screen can also signal the existence of a second screen, e.g. displaying “Second screen: Yes/no” to permit the viewer to view or skip the second screen. In the case were extensive metadata are available for a particular segment of program content, the number of I frames used to carry the content need not be limited to two, and each I frame can indicate (e.g., with “more” as the last word thereof) the existence of additional frames of metadata. Conversely, the last frame can be marked (e.g., by a final word “end” or “stop”) to signal the end of the metadata.
Thus, an automated method of attaching metadata to a segment of content using a programmed processor consistent with certain embodiments involves retrieving metadata relating to the segment of content; rendering the metadata as visually perceptible text in one or more frames of video; appending the one or more frames of video to the video as the first one or more frames of the video to produce metadata enhanced video; and storing or transmitting the metadata enhanced video.
In certain embodiments, the first one or more frames of video are rendered in MPEG-2 format. In certain embodiments, the first frame of video contains metadata representing one or more of the following: Title, Producer, Actors, Channel, Time, First Broadcast, Duration, Rating, Critique, Recording Time, Closed Captioning, Subtitle, Release Year, Genre, and Description. In certain embodiments, the metadata stored in the first frame is stored adjacent descriptive keywords. In certain embodiments, one or more of the following: Title, Producer, Actors, Channel, Time, First Broadcast, Duration, Rating, Critique, Recording Time, Closed Captioning, Subtitle, Release Year, Genre, and Description. In certain embodiments, the second frame of video contains metadata representing playback parameters In certain embodiments, the second frame of video contains metadata representing one or more of the following: video codec, video format, video bit rate, frame rate, Interlace, audio codec, audio bit rate, DRM, Licensing Authority and Copyright Notice. In certain embodiments, the metadata stored in the first frame is stored adjacent descriptive keywords. In certain embodiments, the keywords comprise one or more of the following: video codec, video format, video bit rate, frame rate, Interlace, audio codec, audio bit rate, DRM, Licensing Authority, Copyright Notice. In certain embodiments, the first frame provides information indicative of the existence of an additional frame. In certain embodiments, the metadata in the first frame is configured to be displayed visibly for a period of at least two seconds.
In other embodiments, an automated method of receiving metadata relating to a segment of content using a programmed processor consistent with the invention involves receiving video content, wherein the metadata is rendered as visually perceptible text in the first one or more frames of video in the content; and carrying out an OCR process on the first one or more frames of video in the content to extract the metadata.
In certain embodiments, the first one or more frames of video are rendered in MPEG-2 format. In certain embodiments, the first frame of video contains metadata representing one or more of the following: Title, Producer, Actors, Channel, Time, First Broadcast, Duration, Rating, Critique, Recording Time, Closed Captioning, Subtitle, Release Year, Genre, and Description. In certain embodiments, the metadata stored in the first frame is stored adjacent descriptive keywords. In certain embodiments, the keywords comprise one or more of the following: Title, Producer, Actors, Channel, Time, First Broadcast, Duration, Rating, Critique, Recording Time, Closed Captioning, Subtitle, Release Year, Genre, and Description. In certain embodiments, the second frame of video contains metadata representing playback parameters. In certain embodiments, the method further involves playing back the video content using the playback parameters. In certain embodiments, the second frame of video contains metadata representing one or more of the following: video codec, video format, video bit rate, frame rate, Interlace, audio codec, audio bit rate, DRM, Licensing Authority and Copyright Notice. In certain embodiments, the metadata stored in the first frame is stored adjacent descriptive keywords. In certain embodiments, the keywords comprise one or more of the following: video codec, video format, video bit rate, frame rate, Interlace, audio codec, audio bit rate, DRM, Licensing Authority, Copyright Notice. In certain embodiments, the first frame provides information indicative of the existence of an additional frame. In certain embodiments, the metadata in the first frame is configured to be displayed visibly for a period of at least two seconds.
In certain embodiments, a tangible computer readable storage medium carries a sequence of information containing a segment of A/V content; a first MPEG-2 I frame of video carrying of a first set of metadata associated with the A/V content, wherein the first set of metadata are readable by an optical character recognition process to reveal the metadata associated with the segment of A/V content; a second MPEG-2 I frame of video carrying a second set of metadata associated with the A/V content, wherein the second set of metadata are readable by an optical character recognition process to reveal the metadata associated with the segment of A/V content; and wherein the first MPEG-2 I frame appears as a first frame of video in the sequence of information, the second MPEG-2 I frame appears as a subsequent frame of video in the sequence of information, and wherein the segment of A/V content is subsequent to the second MPEG-I frame of video.
Issues with Interactive Content
Interactive content such as VOD is not found on a specific channel that can be tuned like broadcast content. There are no virtual channels which can be direct tuned. Real-time interactions between the server and the set-top box set-up unique stream sessions. Trick play commands such as pause, rewind, etc. are sent to the headend to control the play out of content.
VOD is typically “Copy Never” since the content is stored at the headend under user control. There is not much that a control device can do with this control since it cannot be archived. What would be desirable, however, is for the controlling device to be aware of this content in order to create unique selection screens advertising it. When a customer selects this content, the controlling device can sequence the service provider screens to arrive at the purchase screen. The customer can then confirm that it is his or her intent to purchase the VOD program.
The way menus are captured might allow VOD and PPV content information to be recorded as well. This information can then be re-rendered by the remote TV's EPG.
Thus, a method of obtaining metadata associated with television programming, wherein the method is carried out in a control device that does not have direct access to the metadata involves instructing an access device to generate and communicate a signal to the control device suitable for driving a display, wherein the signal contains a visual representation of a video frame of the metadata when displayed on a display; receiving the signal and storing a representation of the video frame; processing the video frame using optical character recognition (OCR) to extract the metadata from the video frame; storing the extracted metadata in a metadata database; and systematically repeating the instructing, receiving, processing and storing to sequence through a plurality of fields of video containing the metadata to access and store at least a subset of the metadata to the metadata database.
In certain embodiments, the method further involves retrieving the extracted metadata from the metadata database and generating a user interface display therefrom that incorporates at least a portion of the metadata. In certain embodiments, the metadata can be stored with the content, for example, wherein the subset of metadata can be stored with content that the metadata describes. In certain embodiments, the, the representation of the video frame can be one of a compressed representation and a bitmapped representation. In certain embodiments, the instructing comprises sending a guide display command or an information command to the access device. In certain embodiments, a subsequent instance of the instructing includes transmitting an incrementing command to either page up, page down, page left, page right, step up, step down, step left or step right, to sequence through the plurality of fields of information. In certain embodiments, a subsequent instance of the instructing includes issuing a command to enter an information screen associated with a television program identified in video frame. In certain embodiments, information for individual television programs is represented by hierarchical layers of video frames, and wherein in a subsequent instance of the instructing, the instructing includes issuing a command to display a frame representing a different layer in the hierarchy.
In certain embodiments, processing the video frame includes processing a selected segment of the video frame using optical character recognition to extract the metadata from the video frame. In certain embodiments, the method further involves the OCR process being enabled to detect special symbols in the video frames. In certain embodiments the special symbols include at least one of a right arrow symbol, a left arrow symbol, a up arrow symbol, a down arrow symbol, a locked symbol, a unlocked symbol, a star symbol, a half star symbol and a pay symbol. In certain embodiments, the OCR process is augmented by pattern matching to detect special symbols in the video frames. In certain embodiments, the special symbols include logos of one or more service providers or logos of channels. In certain embodiments, the frame further includes system time and the OCR process further extracts the system time. In certain embodiments, the OCR process is enabled to identify foreground and background colors of text in the video frames to identify attributes associated with the video frames. In certain embodiments, attributes include one of a highlighted field, an attribute of a virtual channel and an attribute of a program. Certain embodiments can be embodied by a computer readable storage medium storing instructions which, when executed on a programmed processor, carry out any of the above processes. In certain embodiments, the instructions are transmitted by transmitting of one of an infrared remote control command, an RF remote control command, a CEC compliant HDMI command or an IEEE 1394 CEA 931-B compliant command.
Thus, a control device that obtains metadata associated with television programming, wherein the control device does not have direct access to the metadata, has an instruction transmitter that transmits instructions to an access device to cause the access device to generate and communicate a signal to the control device suitable for driving a display, wherein the signal contains a visual representation of a video frame of the metadata when displayed on a display. A receiver receives the signal. A frame store stores a representation of the video frame. An optical character recognition (OCR) processor extracts the metadata from the video frame using character and symbol recognition. A storage device stores the extracted metadata in a metadata database. A control processor systematically causes the control device to repeats the transmitting of instructions, receives and stores the video frame, OCR processing and storing to the metadata database to sequence through a plurality of fields of video containing the metadata to access and store at least a subset of the metadata to the metadata database.
In certain embodiments, the control device further has a user interface generator that retrieves the extracted metadata from the metadata database and generates a user interface display therefrom that incorporates at least a portion of the metadata. The subset of metadata may be stored with content that the metadata describes. The instruction transmitter may transmits one of a guide display command, an information display command or navigation commands to the access device. The transmitter may transmit one of an infrared remote control command, an RF remote control command, a CEC compliant HDMI command or an IEEE 1394 CEA 931-B compliant command.
Those skilled in the art will recognize, upon consideration of the above teachings, that certain of the above exemplary embodiments are based upon use of a programmed processor. However, the invention is not limited to such exemplary embodiments, since other embodiments could be implemented using hardware component equivalents such as hard wired logic, special purpose hardware and/or dedicated processors. Similarly, general purpose computers, microprocessor based computers, micro-controllers, optical computers, analog computers, dedicated processors, application specific circuits and/or dedicated hard wired logic may be used to construct alternative equivalent embodiments.
Certain embodiments described herein, are or may be implemented using a programmed processor executing programming instructions that are broadly described above in flow chart form that can be stored on any suitable electronic or computer readable storage medium and/or can be transmitted over any suitable electronic communication medium. However, those skilled in the art will appreciate, upon consideration of the present teaching, that the processes described above can be implemented in any number of variations and in many suitable programming languages without departing from embodiments of the present invention. For example, the order of certain operations carried out can often be varied, additional operations can be added or operations can be deleted without departing from certain embodiments of the invention. Error trapping can be added and/or enhanced and variations can be made in user interface and information presentation without departing from certain embodiments of the present invention. Such variations are contemplated and considered equivalent.
While certain illustrative embodiments have been described, it is evident that many alternatives, modifications, permutations and variations will become apparent to those skilled in the art in light of the foregoing description.

## Claims

1. An automated method of attaching metadata to a segment of content using a programmed processor, comprising:
using a control device, receiving video content from an access device configured to receive the video content from a satellite or cable or Internet video content provider;
retrieving metadata relating to the video;
generating one or more frames of video representing the metadata as an image having visually perceptible metadata text in one or more video frames of metadata video, the visually perceptible metadata text being at least some of the metadata relating to the video;
combining the one or more frames of metadata video with the segment of video content to produce an enhanced segment of video content including the frames of visually perceptible metadata text,
processing the enhanced segment of video content by an ancillary device using optical character recognition (OCR) to thereby extract the metadata relating to the video from the enhanced segment of video content; and
supplying the enhanced segment of video content to the ancillary device for storage of the enhanced segment of video content by a network device.

2. The method according to claim 1, wherein the one or more frames of video representing metadata are rendered in MPEG-2 format.

3. The method according to claim 1, wherein a first of the one or more frames of video representing the metadata contains metadata representing one or more of the following: Title, Producer, Actors, Channel, Time, First Broadcast, Duration, Rating, Critique, Recording Time, Closed Captioning, Subtitle, Release Year, Genre, and Description.

4. The method according to claim 1, wherein metadata stored in a first of the one or more frames of video representing the metadata is stored adjacent descriptive keywords.

5. The method according to claim 4, wherein the keywords comprise one or more of the following: Title, Producer, Actors, Channel, Time, First Broadcast, Duration, Rating, Critique, Recording Time, Closed Captioning, Subtitle, Release Year, Genre, and Description.

6. The method according to claim 1, wherein a second of the one or more frames of video representing the metadata contains metadata representing playback parameters.

7. The method according to claim 6, wherein the second of the one or more frames represents one or more of the following: video codec, video format, video bit rate, frame rate, Interlace, audio codec, audio bit rate, DRM, Licensing Authority and Copyright Notice.

8. The method according to claim 6, wherein the metadata stored in the second of the one or more frames is stored adjacent descriptive keywords.

9. The method according to claim 8, wherein the keywords comprise one or more of the following: video codec, video format, video bit rate, frame rate, Interlace, audio codec, audio bit rate, DRM, Licensing Authority, Copyright Notice.

10. The method according to claim 1, wherein a first of the one or more frames of video representing the metadata provides information indicative of the existence of an additional frame of video representing metadata.

11. The method according to claim 1, wherein a first of the one or more frames of video representing the metadata is configured to be displayed visibly for a period of at least two seconds.

12. The method according to claim 1, where the one or more frames of video representing metadata comprise one or more video digital video frames.

13. The method according to claim 12, here the one or more digital video frames are rendered in MPEG-2 format.

14. An automated method of attaching metadata to a segment of content using a programmed processor, comprising:
using a control device, retrieving metadata relating to the segment of video content from an access device;
where the access device comprises a device that is configured to retrieve the segment of video content from a video content provider;
where the control device comprises a device that is configured to receive the segment of video content from the access device and to supply the segment of video content to a display device for visual presentation;
generating one or more frames of video representing the metadata as an image having visually perceptible metadata text in one or more video frames of MPEG formatted digital metadata video;
where a first frame of the one or more frames provides information indicative of whether or not a second frame exists;
appending the one or more frames of metadata video to the segment of video content as the first one or more frames of the segment of video content to produce an enhanced segment of video content starting with frames of visually perceptible metadata text; and
storing or transmitting the enhanced segment of content.

15. The method according to claim 14, where the first frame of video contains metadata representing one or more of the following: Title, Producer, Actors, Channel, Time, First Broadcast, Duration, Rating, Critique, Recording Time, Closed Captioning, Subtitle, Release Year, Genre, and Description.

16. The method according to claim 14, wherein the metadata stored in the first frame of video representing metadata is stored adjacent descriptive keywords.

17. The method according to claim 16, wherein the keywords comprise one or more of the following: Title, Producer, Actors, Channel, Time, First Broadcast, Duration, Rating, Critique, Recording Time, Closed Captioning, Subtitle, Release Year, Genre, and Description.

18. The method according to claim 16, wherein the keywords comprise one or more of the following: video codec, video format, video bit rate, frame rate, Interlace, audio codec, audio bit rate, DRM, Licensing Authority, Copyright Notice.

19. The method according to claim 14, wherein the second frame of video representing metadata contains metadata representing playback parameters.

20. The method according to claim 14, wherein the second frame of video contains metadata representing one or more of the following: video codec, video format, video bit rate, frame rate, Interlace, audio codec, audio bit rate, DRM, Licensing Authority and Copyright Notice.

21. The method according to claim 14, wherein the metadata in the first frame of video representing metadata is configured to be displayed visibly for a period of at least two seconds.

22. Apparatus comprising:
at least one computer memory that is not a transient signal and that comprises instructions executable by at least one processor to:
receive, from a control device, at least one enhanced segment of video content, the enhanced segment of video content including one or more frames of video representing metadata relating to video received by the control device from a video content source, the one or more frames of video representing metadata including visually perceptible metadata text;
process at least the one or more frames of video representing metadata in the enhanced segment of video content using optical character recognition (OCR) to thereby extract the metadata relating to the video from the enhanced segment of video content; and
store the metadata and/or present the metadata with the video content.

23. The apparatus of claim 22, wherein the apparatus is embodied in a personal video recorder (PCR).

24. The apparatus of claim 22, wherein the apparatus is embodied in an optical disk recorder.

25. The apparatus of claim 22, wherein the control device includes a television.