SERIALIZABLE VISUALLY UNOBTRUSIVE SCANNABLE VIDEO CODES
Systems, devices and methods are described for providing parallel content for a video. A database or collection of informational content is keyed to particular time segments of a video. An encoder generates links to the parallel content. Links are encoded into a series of visible video codes. Each visible video code is adapted to a respective frame of the video in at least one of hue, transparency and position. The visible video code may be a QR code or other machine-readable code. A visible video code provides a link to metadata, informational content, secondary content or other content associated with or about the primary video in which the visible video code is presented. Content is served to a secondary screen based at least on the visible video code and, alternatively, based on additional information available from a secondary device used to scan and interpret the visible video code in the primary video.
This patent application claims priority to U.S. Patent Application Ser. No. 62/406,863 filed on Oct. 11, 2016 titled “Visually Unobtrusive Scannable Video Codes,” the entirety of which are incorporated by reference herein.
BACKGROUND FieldThe present disclosure is generally related to including visible, machine-readable codes in a digital video by modifying the video based on the machine-readable codes.
Description of Related ArtAdvances in video technology have resulted in an ever increasing amount of video. The video is available on large and small screens. Advertising sometimes comes along with video. Commercial advertising has typically taken the form of still images and video interspersed between the actual produced video segments. Modern variations of commercials and modern advertising has allowed for clickable overlays. These overlays are embedded or enabled with links. However, while video advertising has enabled monetization of video, advertising and overlays of commercials are highly irritating and a nuisance to most viewers. Further, the overlays are not particularly targeted to the viewer and certainly not related to particular scenes or content of the video. Conventional advertising involves the push of stale information to viewers. Modern video consumers expect better ways to interact with video and expect the ability to interact with video in real time. To date, this is not possible.
Further, people increasingly want to interact with video of others, and react to and participate in social media with respect to the ever-increasing amount of available video. Video comes in many forms from recorded and edited video episodes of television and movies from studios to user-generated and user-shared (uploaded) video and to live-streamed video. Much of the video is consumed in a streaming format. Further, video comes in many file formats—encoded with one of various encoding algorithms—and in one of many possible file containers. Further, video is consumed on various types and sizes of displays and on a variety of platforms (e.g., hardware and operating system combinations) including in a web browser.
Generally, video consumers tune to or accept one stream at a time. In some conventional video broadcasts, there is an ability to receive and display multiple videos simultaneously such as by displaying a picture-in-picture (“PIP”) video. However, this is the exception rather than the rule. Even more rare is a display of information in the PIP video.
A chyron or lower third has been used for years to overlay primarily text-based information on top of an underlying video asset. Such composite videos are distracting to a typical media consumer because the overlays obscure a significant portion of the underlying image or video.
Conventional quick response (“QR”) codes and other machine-readable encodings can include information encoded therein, but are rarely seen in conventional video and video streams. While machine-readable codes and human readable codes can be overlaid on or composited with another image, the result is less than perfect and often obscures the underlying asset. For example, a single bright black and white QR code may be overlaid on top of an advertisement image to allow for a viewer to decode the QR code. For a modern audience, this type of composite has been very unsuccessful in terms of market adoption as an objective measure of success.
Further, when shown as part of a video, QR code acquisition and decoding are often impracticable because by the time a person or viewer is aware of a particular, static QR code, the viewer is not able to locate a smartphone or other device and then activate the device in time to capture and decode the QR code. Display of a QR code in such circumstances is effectively pausing of the advancement of the video and providing a commercial break for audience members to capture and decode the QR code. If a QR code is shown as part of an on-going, running or live video stream, a displayed QR code is displayed only for a short time and then is gone from an electronic display before a user is able to point a device at the electronic display and before the user can activate image capture and image scanning operations. Accordingly, there is a deficiency in the known art in terms of making QR codes and machine-readable codes available to viewers of video. Substantial opportunity exists to improve connection and interaction between video viewers, video producers, and video providers.
SUMMARYAccording to an illustrative aspect, a system provides parallel content for a video. The system could comprise a database or collection of informational content keyed to particular time segments of a video stream, wherein time segments include at least one frame of the video. The informational content can take any form including text, audio, video or other format. Links are generated to the informational content. While link is referred to herein, a link can mean a hyperlink such as transmitted over conventional HTTP-style mechanisms, or a link can be any mechanism to connect a second device to a first device through a visual interpretation as described more fully herein.
The links are converted into a series of visible video codes. Each visible video code is adapted and added to a respective frame the component. A visible video code is adapted by adjusting at least one visible aspect of the visible video code. Each visible video code is merged with or added to one or more respective frames of the video. Based on the particular format or encoding of the video, the visible video code may be added to the pixels of the respective raster-based images or frames of the video, or may be added as a layer or track in the video container that encapsulates the video. Preferably, the adapting or blending is done such that there is a visible machine-readable code included in a video, but that the presence of the visible video code is not obtrusive or distracting to a majority of a target audience for a video.
Such visible video codes may be used in commercial video screenings of movies shown in a theatre or on a television, computer display or tablet of a user. While the visible video codes are preferably used or usable while a video or video stream is running, the visible video codes may be used in the scenario where a user has the ability to pause the video and scan the code. For example, the visible video codes may be used during a live televised event (e.g., a concert, a political debate, a scientific conference presentation, a news broadcast). The visible video codes may also be used in or associated with a pre-recorded video such as a film studio movie, a game play capture, and so forth.
Each visible video code may be comprised of a two dimensional raster-based image. Each visible video code may include a time element for identifying a time or particular segment in a runtime of the video. Preferably, each visible video code includes modifying an aspect of the visible video code such as a transparency value or hue value. The visible video code may take the form of a QR code, a UPC-style bar code, or other machine-readable code. Alternatively, the visible video code may take the form of a human-readable code such as a link shortener for easy recollection when using the link. An area of the visible video code is placed in a region that is less than half of the video, and preferably in an area that is much less than half of the video.
According to an illustrative aspect, a system, a device, and a method are provided to generate composited video that includes machine- or human-readable codes or patterns. An initial code or pattern is changed on a second-by-second or other time-based step for a target video. Each second or other time unit of video is correlated or connected to a respective code or pattern. It is thereby possible to track when during play of a video that the code was scanned.
In order to make a video composited with a set of codes or patterns, the method first includes generating the codes or patterns. Next a processor type is chosen. For example, one of a central processing unit (CPU), a graphics processing unit (GPU), a field-programmable gate array (FPGA) or even a custom integrated circuit (ASIC) is chosen for compositing and/or processing of the source video based on the set of codes. The next step of the method includes choosing an algorithm for compositing, an algorithm that is available for the selected processor type. According to a first example where the starting code or codes are black and white, a simple algorithm is selected such as for each pixel in the original image, the simple algorithm iterates through pixels beneath the to-be-embedded code when processing the code. Where the code pixel is ordinarily black, the pixel brightness in the target video is decreased a pre-determined amount. Where the code pixel is ordinarily white, the pixel brightness in the target video is increased a pre-determined amount.
According to another illustrative aspect, brightness of code/image/video pixels can be shifted in one of multiple ways. According to a first way, a simple brightness color matrix is used to select and then increase or decrease R, G and B component values uniformly. According to a second way, an HSL (hue, saturation, and lightness or luminosity) or HSB (hue, saturation, and brightness) color transformation is performed whereby RGB values of code/image/video pixels are temporarily transformed into an HSL or HSB space, the luminosity or brightness values adjusted, and then the color space values are transformed back into the RGB space.
According to a third way, a brightness can be adjusted in a more complex way. In this third way, brightness of each pixel of the composited code/image/video is shifted a fixed, pre-determined amount and then an evaluation-feedback loop is performed whereby a brightness of composited code/image/video pixels is adjusted and a brightness contrast between composited code/image/video pixels and non-composited code/image/video pixels is evaluated. If the brightness contrast is not enough to have a code be adequately machine-readable, a further brightness change (e.g., fixed-size step) to each code/image/video pixel is performed and the brightness contrast is evaluated at an overall code-reading level for each frame. The goal for the third way is for just enough contrast to be evident for the purpose of machine-readability for each frame of the composited video, but to maximize blending (minimize of contrast) for the purpose of viewing by human observers. In these three ways, brightness of pixels are shifted for the code composited into frames of a source video.
According to another illustrative and optional aspect, a feedback loop adjusts (e.g., increases, decreases), in a variable step-size fashion, the brightness contrast between the code and non-code pixels, pixel by pixel, and then the completed, composited code/image/video is scanned by a code detector. Depending on an amount of difference, a step size is chosen and the feedback loop is adjusted, the code/image/video newly composited, and then the code tested for machine-readable accuracy. The detector determines whether a sufficient level of reading accuracy is met or exceeded. If so, the feedback loop is exited and the final video is generated by combining composited video frames. Otherwise, the loop is repeated until a sufficient level of accuracy is met or exceeded. This process is repeated on a frame by frame basis for an entire source video.
According to an alternative aspect, instead of a feedback loop that adjusts the brightness contrast based on a stepped new value for luminance, a luminance value of another pixel in the source frame is selected for the pixels of the code. The luminance values of the code are adjusted such as to the luminance value of the another pixel in the source frame. The code/image/video is composited and the code (e.g., frame of video) is tested for machine-readable accuracy. The luminance adjustment to the pixels of the code during the feedback loop is repeated if the accuracy level is not met or exceeded. In this alternative adjustment scheme, the luminance of the pixels of the code are adjusted to a value that is already associated with the frame of the video.
According to another illustrative and optional aspect, a filter (e.g., gaussian blur, box filter) is applied to the code prior to or after compositing the code with the video frame. By applying a filter, machine readability accuracy is increased.
According to another illustrative and optional aspect, each frame of the composited video is exposed to a neural network (NN). The NN learns based on the input video, the set of codes, and the composited video frames. The NN is able to produce improved compositing including, for example, step sizes for a feedback loop for finding a preferred, optimal or adequate level of luminance contrast relative to surrounding pixels in the composited video frames.
Other aspects, advantages, and features of the present disclosure will be apparent after review of the entire disclosure including the drawings and the claims.
The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the Office upon request and payment of the necessary fee.
The drawings, figures and pictures accompanying this application illustrate various features that serve as an additional basis for understanding the disclosure. In this disclosure, reference may be made to these visual depictions. The use of the same reference symbol in different drawings indicates similar or identical items.
There are few if any mechanisms for video consumers to respond in real time to particular conventional advertisements. Further, there are few if any mechanisms for viewers to obtain information about the scenes, products, actions and content of video at particular frames of the video—other than to perform a general search via a search engine. Searching through thousands of search results is often fruitless.
When an online advertisement for a video is presented on a user device, it typically takes the form of an opaque overlay of a static graphic or motion-based graphic on top of the video. These types of push advertisements are highly irritating and distracting to viewing of the video. A typical interaction with a user is for the user to briefly read the advertisement and to clear the overlay thereby missing a few seconds of the video content. These advertisements generally are not targeted to specific viewers, only to a particular (and likely) demographic. Further, these advertisements rarely include content that is up to the minute. Yet further, the advertisements are not based on an identification of the viewer. When there is interest in an online video advertisement, the advertisement is typically connected with a link. The user then clicks on the link of the advertisement. The online video content is paused and the user is presented with a Web page in a separate window.
Another form of conventional tool to reach viewers is a code (e.g., phone number, SMS number, website address, hashtag) that is either presented in a video or in an overlay accompanying the video. Rarely if ever is the code directly associated with the content of the video. Presenting the code is very obtrusive. A further drawback is that a user must take his or her eyes away from the video, obtain another device (e.g., mobile phone, laptop), and then enter the code. If the viewer cannot remember the code, the viewer misses an opportunity to obtain further information about the video or to otherwise interact with the content of the video.
A trend in video consumption is for viewers to interact with each other in real time as a video or live content is in being presented. For example, mobile device users often join social media sites like micro-blogging sites, and make and read posts in real time while simultaneously watching a same video in multiple locations. In this way, viewers can interact with others as part of an ad hoc community of realtime active participants.
What is needed is for content makers and providers to facilitate better and parallel means for viewers and participants to gain additional information in realtime about a particular video or event taking place. What is needed is a device, system, and method that is not highly obtrusive to others who wish to be more passive consumers. What is needed is a mechanism that can adapt in realtime, a device, system, and method that can be tailored to each participant and a parallel system and method for delivering content about a video or presentation. What is needed is a system for an enhanced informational stream that can be pushed to an additional device or screen.
Overview. Systems, devices and methods are described for providing parallel content for a video. Parallel content can take the form of text, video, audio or any other type of content. A database or collection of informational content is keyed to particular time segments of a video. An encoder generates links to the informational content. The links are encoded into a series of visible video codes. Each visible video code is adapted to a respective frame the video in terms of at least one of hue, transparency and position. The visible video code may be a QR code or other machine-readable code. A visible video code provides a link to metadata, informational content, secondary content or other content associated with or about the primary video in which the visible video code is presented. Content is served to a secondary screen based at least on the visible video code and, alternatively, based on additional information available from a secondary device used to scan and interpret the visible video code in the primary video. Such additional information may include a personal profile identifier or personal attribute associated with a user of the secondary device. Preferably, the visible video code is connected with particular video frames or video times of the primary video.
While a QR code is illustrated with respect to the figures, this type of code is just one example of many types of codes that may be used. The same technique described in reference to a QR code can be applied to other types of codes including both human-readable codes and machine-readable codes. It is possible to produce a graph that would be semi-transparent and yet still clearly visible to a human-eye. ISO/IEC 18004:2015 is one of the standards for QR codes and the official ISO/IEC 18004:2015 is incorporated by reference herein in its entirety.
In
However, in a preferred embodiment, the QR code in
As illustrated in
QR codes or video codes as described herein may be scanned and decoded by currently existing or yet-to-be developed devices. Currently, there are available a variety of portable personal computing devices, including wireless telephones such as mobile phones and smartphones, tablets, and laptop computers that are small, lightweight, and easily carried by users that can scan and decode the QR code 101 as shown in
Due to the limitations of space herein, only a few examples of application are provided. For example, in the context of a live broadcast of a political candidate debate, the techniques described herein can be used to generate and over-impose a graph of popularity of each candidate and plot the graph in real-time, getting the data from positive/negative data provided by a same or different source. For example, realtime viewers could scan a visually non-obtrusive code, which can then be used together in the aggregate to generate a graph of data from participants and viewers across a broadcast range of viewership and can do so in realtime. As a specific example, a realtime visible (and semi-transparent) graph could be added to a news video broadcast based on twitter comments about the particular event.
In
In
At step 1302, using a second device, the viewer scans the code-enhanced video at a scan time T with a code reader. If consuming a video on the second device, the scanning may be done by the viewer application itself without a need to activate a camera of the second device. At step 1303, the second device translates the QR code (or visible video code) into a Web address and, at step 1304, passes the Web address (and optionally other information available on or available to the second device such as tracking information) to a Web server at the address encoded in the QR code. At step 1305, the server (and allied components) serve content to the second device based on the encoded values and other information sent to the server. Those of ordinary skill would recognize that one or more of a variety of information available to the second device may be sent to the address of the server embedded in the visually enhanced QR code.
In general, according to one or more embodiments, at least a portion of the QR codes as generated and used herein changes from frame to frame as indicated by the lower right region 1401 of the QR code 1106 that designates, by way of example, a pre-determined region of the QR code that is programmatically allowed to be changed for the benefit of encoding a sequence or set of addresses, time tags, and the like within the sequence or set of QR codes.
In
Use of the QR code as described herein may require a modification to the colors of an underlying image or frame. For example, enhancing or changing one or more of the colors is performed. The colors or hues may be darker or lighter, depending on whether that part of the image that is used for the background for the QR code is dark or light. Each frame of the video is encoded following a similar pattern from frame to frame so that an observer sees little change as the QR code changes from frame to frame. At every specific time or interval of time, the QR code 1106 is dynamically changed such that not only a URL is encoded but also a timestamp parameter (e.g., time tag) corresponding to a time from a start time of the video.
A video which is encoded with this type of substantively transparent QR code becomes non-intrusive enough so that advertising and marketing companies are likely to consider putting this type of QR code into and onto media, especially dynamic media such as video, video clips, animated images and streaming content. As a result of use of QR codes having a timestamp keyed to frames or a time in the runtime of a video, media companies gain valuable analytics from those who scan the QR code with their smartphones or other type of secondary devices. The analytics include the timestamp of where the click-action took place relative to the start of the video. If a user opts in, data may be made available by a scanner application operative on the second device such that the analytics can also include a geographic location of the user who clicked (scanned) the QR code, and how many clicks the video received, both at the particular frames and at a particular time in realtime terms such as when any particular device scans the particular QR code of a particular frame of video. Other types of data sharable by the second device include device type, device model, device operating system, and the full range of data available from a smartphone as is known by those of ordinary skill in the art to share.
According to one illustrative embodiment, the QR code can be encoded in two parts: a first part that includes information about where to redirect, and an alpha-numeric digit following a “/” or other character as a divider. For example, the following can be used to encode a timestamp relative to the start of the video: 0-9, a-z and A-X for a total of 60 characters representing 1-60 seconds, minutes or hours. The QR encoding could be turned on or off if encoded into a DVD format similar to turning on subtitles or such as in the lower third or chyron formats and in those regions.
According to one example, a time is encoded according to the following scheme. A time in an HH:MM:SS format is encoded by minimizing a number of characters using this structure: 0-9 for the first 10 digits, a-z for the next 26 digits, and A-X for the next 24 digits—making the total 60 digits for each hour, minute, second and fractions of a second, respectively. Since most videos rarely run over 10 hours, an hour runtime is reduced to just a single digit of 0-9. So, by way of example, for a marker or runtime encoding for 1:23:11.5, the following encoding for the URL encoded in the QR code is the result: http://www.Website.com/path/1nb5. Other shortening schemes are possible.
Various illustrative components, blocks, configurations, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
The steps of a method or algorithm described in connection with the aspects disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in random access memory (RAM), graphical processing unit (GPU), flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disk, a removable disk, a compact disc read-only memory (CD-ROM), or any other form of storage medium known in the art. An exemplary non-transitory (e.g. tangible) storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an application-specific integrated circuit (ASIC). The ASIC may reside in a computing device or a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a computing device or user terminal.
The previous description of the disclosed aspects is provided to enable a person skilled in the art to make or use the disclosed aspects. Various modifications to these aspects will be readily apparent to those skilled in the art, and the principles defined herein may be applied to other aspects without departing from the scope of the disclosure. Thus, the present disclosure is not intended to be limited to the aspects shown and described herein but is to be accorded the widest scope possible consistent with the principles and novel features as defined by the following claims.
Claims
1. A system for providing parallel content for a video, the system comprising:
- a database of informational content keyed to particular time segments of a video stream, wherein time segments include at least one frame of the video;
- an encoder configured with instructions to generate links to the informational content;
- a video code generator configured with instructions to encode links into a series of visible video codes and to adapt each visible video code into a respective frame the component; and
- a video mixer that combines each visible video code with a respective frame of the video.
2. The system of claim 1, wherein each visible video code is comprised of a two dimensional raster based image and includes a time element for identifying a time in a runtime of the video, wherein adapting each visible video code includes modifying a transparency of each visible video code based on a brightness of at least one of three hue values of an underlying frame of the video.
3. The system of claim 2, wherein the transparency of each visible video code is at least 50% for each visible video code.
4. The system of claim 1, wherein the visible video code takes the form of a QR code.
5. The system of claim 1, wherein the visible video code takes the form of a machine-readable code having error correction built into the encoding.
6. The system of claim 1, wherein an area of the visible video code is directed to a region that is less than 22% of an area of the video.
7. A method comprising:
- identifying a series of discrete information to be associated with a primary video;
- creating a series of links corresponding to respective ones of the discrete information;
- encoding each of the links into a visible machine-readable code;
- adapting each visible machine-readable code to one or more frames of the primary video by adjusting at least one of a brightness value or a transparency value of each visible machine-readable code;
- combining the visible machine-readable codes with the primary video by adding each visible machine-readable code to at least one frame of the primary video.
8. The method of claim 7, wherein a portion of the discrete information for one of the visible machine-readable codes is exposition about a corresponding frame of the primary video to which the particular visible machine-readable code is combined.
9. The method of claim 7, wherein the discrete information includes a survey.
10. The method of claim 7, wherein the discrete information includes a second video with content associated with the primary video, wherein the link connecting the second video with the primary video includes a timestamp that coordinates in time the second video with a time of the primary video such that the primary video may be viewed concurrently with the second video with a single soundtrack.
11. The method of claim 7, wherein each visible machine-readable code is one hue selected from hues of a frame of the primary video into which the respective visible machine-readable code is added.
Type: Application
Filed: Oct 11, 2017
Publication Date: May 10, 2018
Inventor: Sasha Zabelin (Berkeley, CA)
Application Number: 15/730,725