# Patent

## Title
Using cluster computing for generating personalized dynamic videos

## Abstract

Embodiments of the present invention relate to a method of obtaining through a computing cloud, parameters of a digital video. The method further includes modifying by software generators of the computing cloud, one or more of the obtained parameters, such that the modification is based on information relating to segments of the users of the network. The method includes creating by rendering engines of the computing cloud a plurality of versions of the digital video. Each one of the plurality of versions comprises a digital video adapted to appeal to at least one of the segments of the users of the network. Further, the method includes determining a quality of at least one of the plurality of versions of the digital video, as well, as determining whether the at least one of the plurality of versions is viewable to the users of the network based on the determined quality.

## Background
BACKGROUND
This application is a continuation in part of an earlier filed U.S. application No. 13/368,037 filed on 7 Feb. 2012, claiming priority from U.S. Provisional patent application No. 61/545,211, filed on 10 Oct. 2011.


Technical Field
The present invention relates to a method and system for generating personalized digital videos over websites delivering advertisement content. The present invention also relates to methods and systems for verifying that such personalized videos meet certain quality assurance performance criteria.
Discussion of the Related Art
Wide spread digital mediums, such as the Internet; have provided digital providers an almost unlimited platform for reaching and distributing content to almost any region or any country in the world. Indeed, advertisers and vendors currently user the World Wide Web as an extensive marketing tool for disseminating information relating their products and services in a wide variety of digital forms and venues. One such venue that has become quite popular are digital videos, such as those that are intermittently downloaded during regularly watched web video including a wide variety of content, some of which may include advertizing ads and commercials appearing before, between or after the webpage and/or video the viewer is watching. Normally displayed on a computer screen, handheld device, a smart phone, or the like or a few minutes or so, a user usually views such ads as clips illustrating moving images, objects, actors and all elements typically involved in a movie video adapted to promote, enhance, or otherwise convey marketing and related information.
While technological advancement have been made in developing and distributing marketing videos to many users, such videos will always remain generic in nature and those may not provide specific content with which certain users located in certain region or users belonging to certain segments, i.e., genders, cultures can personally associate. For example, a commercial video adapted to promote items, such as an automobiles, household products, clothes, beverages and the like, may inherently include scenery, sounds, or other type of features to which certain users may not necessarily relate or have any personal affiliation. More specifically, as part of an advertisement, vendors can mass distribute commercial a video to a variety of locales, behavioral or demographic information dispersed over area such that those sceneries, sounds and images (i.e., weather condition, certain population segments) may not be part of the everyday life or experience of the viewer because watching such a videos. Thus, specific viewers may not connect on a personal level with the provided wide spread and generic commercial content. Consequently, vendors may miss out on promoting their products and/or services to a wide range of audience as would be desired for by any vendor for achieving a robust marketing effort. In addition, effective distribution of such videos over wide network may be computationally demanding and costly to the extent it may discourage distributing vendors from disseminating their promotional material to users over the network.
Still further, the production and distribution of advertizing videos over a network may involve rendering processes that may be very computationally demanding and rather complex. Indeed, intricate processing and execution of certain computer routines, such as those pertaining to digital videos, may be prone to significant errors that could harm or otherwise degrade the overall quality of rendered videos. This may become even more accentuated when the number of rendered videos becomes large such that it may diminish the feasibility of generating and distributing large amounts of videos over the network.
BRIEF SUMMARY
Exemplary embodiments of the present technique disclose a method and systems for personalizing video data generally provided in a digital medium like Internet and network connected devices. In some embodiments of the present technique, the processing, encoding and distributing of personalized videos is performed by a core rendering engine, such as one distributed over a computing cluster, or a computing cloud having multiple servers and/or dedicated processing devices adapted to efficiently and handle large amount of data. Such devices may include an orchestrating device for overseeing the retrieval of original ad information, as well as the dynamical processing, rendering (or partial rendering), and/or encoding of numerous personalized groups of which adapted to appeal and/or target various segments of network users in accordance with certain personalized, preferences and/or attributes of the users.
In further aspects of the present technique, the disclosed computing cluster operates to retrieve original data feeds, as well as voluminous ad information, such as webpages, movie ads, and so forth. The cluster is adapted to alter the retrieved information, in accordance with personalized data, to ultimately encode and distribute custom fitted videos intended for various users having various personal preferences and/or users located in different regions and places or using different devices/screens. In other aspects of the present technique, videos processed and rendered by the rendering engine of the computing cloud are custom fitted to appeal to certain users based on specific behavioral, demographic, and/or gender-based attributes with certain users may be associated. Accordingly, personalization of the videos may be based upon information provided by vendors or third party entities, or other entities wishing to promote or offer various products. In other aspects according to the present technique, the computing cluster may generate videos personalized in accordance to certain objective, or user independent criteria, such as those taking into account certain times of a day, days of a week, or those shown in certain time of a year such holidays and/or special commemorative occasions to which certain individuals accessing the network can relate. While the present technique may alter an original video ad to create multiple ad versions targeting the various dispersed users, nevertheless, the present technique is also adapted to preserve the substantive content the overall uniformity conveyed by the different ads ultimately created.
In so doing, the present technique makes use of certain software and/or hardware elements for defining dynamical templates of an advertisement to accommodate personalized user preferences, such certain local lifestyles, local weather conditions, gender, demographic make up, times of day, week, year, holidays, local prices and personalized visual, audible and/or textual features. Once the particular definitions are implemented for each template, the present technique renders multiple versions of the movie or commercials advertisement in accordance with the above preference. Thereafter, the disclosed systems provide an output, whereby the multiple movie versions distributed to various locales across the network. Ultimately, each of the different network locales receives an personalized advertisement having content similar to the content of the original ad, however, such a personalized may include various scenery, images, sounds, objects, texts and so forth, tailored to be personalized and specific to various users, for example, such as those located specific regions or those having a personal preference, relation, or liking, respectively, to certain features the ad may include. Thus, in accordance with the present technique, advertisers are better adapted to reach and target a consumer audiences for promoting information associated with their products and/or services.
Further, because of their personalized nature, the above described systems are adapted to generate and distribute a very large amount of videos whose quality meets acceptable viewing standards. Accordingly, the present technique utilizes a video quality verification module adapted to inspect the personalized videos as part of the rendering process of the videos. Thus, as part of the verification module, the present technique utilizes various algorithms adapted to inspect and detect defects and/or artifact with the personalized videos before those are distributed and become available to the users of the network. Accordingly, the verification module is further adapted to rectify any of the detected defects and artifacts so that such videos are rendered in compliance with acceptable standards for viewing.
More particularly, the present technique utilizes a copy of a correctly defined ad video, such as one chosen to meet certain quality criteria considered to be pristine, i.e., good quality video as prescribed for good and acceptable viewing purposes. According to the present technique, such pristine video can be determined amongst a plurality of videos based on certain statistical methods, such as maximal likelihood and similar probabilistic methods. Further, the chosen pristine video provides a base to which other generated videos are compared. In accordance with exemplary embodiments of the present technique, such comparison may be carried out using hash functions, as well as visual diff functions for determining whether a particular generated personalized ad is valid for viewing and distribution. Should the verification module determine that there exists some defect with the personalized video, such that the video does not comply with or is otherwise considered defective in accordance standards, the module directs the system to re-render the video so that it ultimately complies with acceptable viewing criteria.
Other aspects of the invention may include a system arranged to execute the aforementioned method. These, additional, and/or other aspects and/or advantages of the embodiments of the present invention are set forth in the detailed description which follows; possibly inferable from the detailed description; and/or learnable by practice of the embodiments of the present invention.



BRIEF DESCRIPTION OF THE DRAWINGS
For a better understanding of embodiments of the invention and to show how the same may be carried into effect, reference will now be made, purely by way of example, to the accompanying drawings in which like numerals designate corresponding elements or sections throughout.
In the accompanying drawings:
FIG. 1 illustrates a network, in accordance with an embodiment of the present technique.
FIG. 2 is a block diagram of a digital item, in accordance with an exemplary embodiment of the present technique.
FIG. 3 is a depiction of a video scene, in accordance with and exemplary embodiment of the present technique.
FIG. 4 is a depiction of another video scene, in accordance with an exemplary embodiment of the present technique.
FIG. 5 is a block diagram of a system for providing personalized video over a network, in accordance with an embodiment of the present technique.
FIG. 6 illustrates a system for rendering personalized video, in accordance with an embodiment of the present technique.
FIG. 7 is a block diagram describing a process, in accordance with an embodiment of the present technique.



DETAILED DESCRIPTION
With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of the preferred embodiments of the present invention only, and are presented in the cause of providing what is believed to be the most useful and readily understood description of the principles and conceptual aspects of the invention. In this regard, no attempt is made to show structural details of the invention in more detail than is necessary for a fundamental understanding of the invention, the description taken with the drawings making apparent to those skilled in the art how the several forms of the invention may be embodied in practice.
Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction and the arrangement of the components set forth in the following description or illustrated in the drawings. The invention is applicable to other embodiments or of being practiced or carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein is for the purpose of description and should not be regarded as limiting.
Turning now to the Figures, FIG. 1 illustrates a network 10, in accordance with an exemplary embodiment of the present technique. The network 10 is an exemplary embodiment of a platform on which personalized dynamic videos are created, processed, rendered, stored and provided to multiple users having access to the network 10. Accordingly, network 10 is a communications network adapted for connecting various nodes, such as servers, computer systems and end users, as well as for facilitating the transfer of data between the nodes and end users. Further more the network 10 may be formed of various dedicated computer system and/or servers, some of which may be functioning as a computer cluster and/or computing cloud for providing and distributing personalized videos in accordance with exemplary embodiments of the present technique.
More specifically, FIG. 1 illustrates, nodes/endpoints/end users 12 and 14, as well as, servers 16, and computing cloud system (CCS) 18. The user 12 and/or 14 may be client computers such as a home or office personal computer (PC), a remote client, a thin client or other type of computer and/or processing interface adapted for general data processing and for connecting to the network 10. Although not illustrated by FIG. 1, the client computers may further be coupled and/or connected to other peripheral devices, such as monitors, keyboards, mice, printers, routers, wireless devices, microphones, speakers, cameras, finger print identifiers, external memory devices, and other devices. The PC 12 may include software platforms and operating systems, such Windows, Linux-Red Hat, and other supporting programs. As will be discussed below, the CCS 18 may be part of a computing cloud having multiple servers, processors and the like, adapted to intake original ad digital video data and to perform considerable amount of processing for ultimately rendering creating multiple versions of the original ads so to conform to the personalized desires and preferences of users having access to such video ads. In certain exemplary embodiments, the cloud 18 may utilize various algorithm and techniques in perform parallel and/or other supercomputing operations for rendering, generating, verifying and correcting multiple versions of videos out of the originally obtained advertisement.
Thus, users having access to the network 10 may be provided with personalized videos as part of any general browsing or searching of the network 10. It should be borne in mind that the network 10 may be accessed by a plurality of users, such as the users 12 and 14, formed of various segments, locations, preferences, and/or other attributes characterizing the personal make up of the network users. For example, users accessing the network 10 may be dispersed over various geographical regions/segments of the network, or the users may make different demographical, gender and/or other segments. By further example, the users, i.e., users 12 and 14 may have different shopping habits, movie and/or music preferences, and/or other parameters varying in accordance with those users' personal attributes and characteristics. Accordingly, as further described herein, as part of their general browsing through the network for performing any of the above-mentioned network related tasks, the various user segments the network may download any otherwise generic advertisement made up a video personalized in accordance with the aforementioned user attributes. In other words, while, for example, both the users 12 and 14 may access a webpage having an advertisement showing a video of a particular vendor, each of the user will receive a version of the video custom tailored to that user personal, demographic and/or geographical preference and/or location, respectively.,
Returning to FIG. 1, the server 16 and CCS 18 may be adapted for storing, routing and/or communicating data within the network 10 and/or other networks to which the server 16 and CCS 18 may be connected. Thus, the server 16 may store information related to material included as part of vendor website, such as those belonging to certain vendors, advertisers, promoters, administrators and so forth. Alternatively, the server 16 may store originally created ads, as well as parameters specifying the manner by which personalized should be rendered. As will be described further below, the server 18 is further adapted to employ various algorithms, such as those based on statistical and probabilistic methods, for verifying large amount of personalized videos to ensure those are properly rendered for complying with certain criteria and in accordance with good quality viewing standards. Thus, the CCS 18 may be formed of multiple processors, servers, and/or other dedicated devices, such as those used for forming, processing, and/or encoding personalized videos, as implemented by the system 10 illustrated and discussed above.
Further, in an exemplary embodiment, the server 16 may be of the type available by Sun Microsystems, Hewlett Packard, Dell, International Business Machines (IBM), and/or other known server vendors and providers. Accordingly, the server 16 and the CCS 18 may include various hardware devices, such as microprocessors, memory cards, graphic cards, routers, wireless devices and other modules for receiving, transmitting and/or processing data. In addition, the servers may include various software platforms and packages, such as those providing code written in Java, Python, Ruby, and/or other computer languages, for facilitating the everyday operation and use of the server 14 and CCS 18 as part of the network 10. It should further be borne in mind that the user nodes 12 and 14 and the servers 16 and CCS 18 are exemplary, and that the network 10 may include many other additional user nodes similar to the users 12 and 14, as well as, multiple other servers similar to those discussed herein.
Further, the server 16 may be adapted to store data, such as websites, generally accessible to the user 12 and/or 14 via the network 10. Those skilled in the art will appreciate that each website accessible, for example, to the user may contain multiple web pages which may also be accessible to the users 12 and 14 upon request. For example, the server 14 may store websites of private companies and/or corporations, as well as government and/or other pubic organizations. Hence, the server 14 provides access to the user 12 of web pages provided by the above mentioned private or public entities so that the user, for example, can conduct business and/or manage various tasks through the network 10. For instance, the user 12 may access the server 14 for downloading a webpage belonging to a vendor through which the user 12 may perform financial transactions such as when purchasing consumer items or the like. By further example, the user 12 may access the server 14 for downloading webpages, such as those associated with various public institutions, through which the users 12 and 14 can provide personal and/or other type of information for conducting everyday personal and/or work-related business and so forth. Accordingly, the users 12 and 14 may generally form communication sessions during which the user 12 and server 14 exchange information through the network 10.
FIG. 2 is a block diagram a digital item 20, in accordance with an exemplary embodiment of the present technique. The digital item/template 20 may generally be part of a structured digital object, a form, or a combination of resources such as videos, audio tracks, images; or metadata, which may further include items such as descriptors and identifiers; and structures for describing the relationships between the resources the digital item/object, may include.
More specifically and in accordance with an embodiment of the present technique, the digital item 20 forms a digital movie and/or images part of an advertisement, commercial and/or other promotional material accessible to the users 12 and 14 through the network 10. Accordingly, those skilled in the art will appreciate that the depiction shown in FIG. 2 is more of a representation of digital components from which such digital items are formed and therefore, the depiction of such elements are exemplary for illustration purposes included herein to provide a general understating of the present technique.
Thus, the digital item 20 may form a digital movie part of an advertisement or commercial adapted to be displayed, viewed and/or heard on a computer, such as a home, office or any other type computing device, i.e., mobile device or a handheld device etc. Hence, movie advertisements formed by the digital item 20 may be provided over the Internet so that those may be downloadable by the users at various locales, regions and countries at their time of choosing or at designated times, as may be determined by a vendor, advertiser and/or other enterprises wishing to promote and/or disseminate information to the general public. Accordingly, such movie commercials may be made up of data forming substantive information and various contents that can be typically played on an Internet digital player, spanning a time duration that could last seconds, minutes or longer, depending on choice of the various providers making use digital items, such as the item 20.
As further illustrated by FIG. 2, the digital item 20 is made up of non-dynamical elements 22, as well as dynamical elements 24, including dynamic images 26, dynamic sounds 28 and dynamic texts 30. The dynamic elements 24 are further made up of dynamic animations elements 32 and dynamic look and feel elements 34. The non-dynamical elements/data 22 of the digital item 20 are elements that are usually static and are otherwise not personalized to the specific user to which the commercial formed by the item 20 is intended. In other words, the non-dynamical elements/data 22 form those features of an advertisement that would be provided to all users viewing the advertisement, regardless of the region, demographic, other personalized preference to which the various users belong. Thus, non-dynamical elements 22 may be associated with certain objects, features, or other attributes (see below FIGS. 3 and 4) shown in each and every version of an advertisement originating from the item 20, as provided to the user. For example, in one embodiment the elements 22 may form an image or movie of person whose depiction overtime would be identical regardless of where and how the commercial is shown. By further example, the elements 22 may form portions of landscape, trees, grass, buildings and/or other moving or static elements that would be displayed identically in all personalized video commercials.
By contrast, dynamical elements 24 are those elements within the commercial or ad intended to be varied and/or modified in accordance with preferences tailored for specific users, for example, located in various regions. Thus, dynamic images element 26 may form certain images or portions thereof of a commercial clip that could be specifically custom made to the user viewing the commercial. For example, the element 26 may form background sceneries, conditions or views, such as oceans, trees, roads, bridges and other scenery typifying the general location where certain users may reside, work, or those locations to which certain users may have some relation or affiliation. By further example, element 16 may emulate weather conditions i.e., sunshine, rain, snow, fall, winter and so forth, normally typifying conditions at a locale of a respective consumer who is viewing the advertisement. Hence, the dynamic image elements 16 may emulate various lighting, brightness, shading, and other visual effects and conditions and features to fit various settings in various regions. Still by further example, dynamical elements 16-24 may include features specific to a particular gender, that is, the elements 24 may incorporate in an otherwise generic videos features adapted to appeal to a specific gender in which certain attributes of the video could accentuate certain features to which the targeted gender can relate. For example, a video displaying an automobile commercial can be personalized to appeal to women by using the dynamic images 26, and or animation element 22 to form an automobile having color usually likeable to women, such as pink, red, etc. Hence, while the aforementioned automobile commercial may originally be created and widely distributed as a generic advertisement having a generic automobile color, i.e., a color not necessarily adapted to target an audience segment, the present technique may create multiple versions of the advertisement, whereby each version is adapted to accentuate a particular feature bound to appeal to certain users who may find such features interesting or at least worth noting.
Similarly, dynamic sounds element 28 forms an audible portion of the digital item 10 which can be changed and/or tailored in accordance to consumer location and/or other preferences. Thus, the elements 28 can form part of an audible portion adapted for specifying specific locations, such as streets, buildings, parks and/or other landmarks that could be of interest and are specific to the user's locations and other preferences, such various languages, gender voice, accents, dialects. Thus, for example, dynamical sounds element 28 can be used to alter a certain dialect or an accent of a speaker of generic-made commercial to include a dialect appealing to certain population groups. For example, a commercial, originally having an actor/speaker utilizing a particular accent (i.e., Anglo-American) can be personalized to show that same speaker talk in a different accent, i.e., such that shared by Spanish-American, so as to provide such a group similar informational content, yet more personalized and appealing to that group.
In addition, dynamic texts element 30 provides a portion of digital item 20 having textual portions which, too, can be changed to fit the location and other attributes with which the viewer is associated. Hence, the dynamic texts element can form any readable or otherwise viewable contexts such as titles and subtitles, product names, service names, street names, maps, satellite photography and the like. Thus, the digital item 20 can be part of a commercial ad advertized, for example, by a chain store or a franchise having multiple stores dispersed in different locations across a country or region, whereby the dynamic text elements 20 are adapted to display, for instance, a general map showing the store location in relation to where the ad or movie commercial is shown. For example, a viewer in Los Angeles, Calif. will view the commercial in which the element 30 is adapted to display a map of the store closest to the viewer located in the LA area. Similarly, a viewer in Miami, Fla. will be able to see the same commercial while being provided with substantive content similar to that of the ad shown in the LA area, however, the commercial provided to the viewer in the Miami area will include a map showing the user where the closest store in that area is located.
In so doing, the present technique contemplates using the digital item/template 20, particularly, the dynamic elements 24 to generate multiple versions of commercial videos, each having similar informational content, yet, each generated to custom fit user(s) preferences, such as user locations throughout a given region.
FIGS. 3 and 4 are depictions of video scenes, in accordance with and exemplary embodiment of the present technique. Hence, for example, FIG. 3 depicts a commercial scene 40, such as one provided by a vendor or chain store, for advertizing and promoting various products and/or services. As illustrated, the scene 40 includes various items and objects, such as a house 42, car 44, person 46 and ladder 47. Accordingly, the commercial seen 40 may be adapted to promote products, such roofing of the house 42, ladders (e.g., ladder 47), and/or services (e.g., roofing, landscape and other services). Further, the scene 40 also includes a background 48, for example, indicative of certain weather winter-like condition, i.e. rain, storms and so forth. As further shown, at the bottom of scene 40, the illustrated embodiment further includes a portion 50, including a text box 52 and a map portion 54. Accordingly, text box 52 and map portion 54 are adapted to provide a viewer with location and other details regarding specific stores located within the vicinity of the user. Hence, the scene 40 can be generated and custom fitted to include certain information, such as hours of operation, special products, special sales and discounts and other types of promotional material, all specific to the region in which the commercial movie is displayed, as well as specific to other personalized preferences that would enable vendors to appeal to certain segments of users having access to a network on which personalized videos are accessible.
In addition, in the illustrated embodiment of scene 40, the background 48 can be chosen to include weather-like conditions indicative of the conditions observed and experienced in accordance with the where the specific store is advertized. Thus, the winter-like conditions 48 of scene 40 can be tailored to fit places such as those located, for example, in the northeastern portions of the United States, where similar conditions may apply and where a consumer may be experiencing similar whether conditions. Hence, in providing consumers with video contents tailored to consumers' settings, vendors and/or advertisers can target and better appeal to consumer's preferences and/or locale conditions that are specific to where such consumers are located.
By further example, FIG. 4 shows a scene 70 that is almost identical to the scene 40 of FIG. 3 with exceptions of background 72, text box 74, and map portion 76, all providing similar content and information, yet, specific to a location different from that shown in FIG. 3. Accordingly, in the illustrated embodiment of FIG. 4, background 72 illustrates a clear, sunny-like day indicative of weather conditions that could otherwise present, for example, in the southwestern portions of the United States. Thus, while the scene 70 may be part of a commercial identical to the one provided by the scene 40, the scene 70 may include content and other information adapted for appealing to consumers located in the aforementioned part of the U.S., and where corresponding vendor stores and locations are located. Thus, text box 74 and map portion 76 correspondingly provide the consumer located in that part of the country information pertaining to location, store hours, products, special sales and other related material specific to where the consumer is located.
Still by further example, a chain store promoting certain home and related products can use specially tailored made commercials, such as the scene 40, for advertizing certain winter tools, such as snow plows, shovels and other winter items to those populations located in regions where the scene 40 experiencing a winter like-setting. Thus, to the extent the user of scene 70 is provided with substantive information similar to that provided in scene 40, the viewers of the sunny scene 70 will not provided with the winter-like background and related queues but, instead, the provided with corresponding products adapted for summer and sunny weather, in other words, shading fixtures, barbeques, pools, fountains, and the like.
By further example, while car 44 of FIG. 3 may be chosen to be that of a particular make, year, and color i.e., Volkswagen Beatle, 2005 flash-green, a favorite among females, the car of FIG. 4, may be illustrated in the commercial as a Corvette, or a Jeep, or another type of an automobile favorite among men. Thus, while the sense 40 and 70 may be adapted to promote a product (not necessarily related to the shown cars), nevertheless, each of the aforementioned scenes can appeal in a varied manner, respectively, to men and women. In other aspects, the two houses 42 of the scenes 40 and 70 can be shown such that their overall design and shape varies in accordance with different population groups. For example, the house of FIG. 3 can be personalized to have Victorian-type architecture, such as that appealable to certain conservative or old fashion population segments. By contrast, the house shown in the scene 70 may be personalized to have modem type architecture, thereby appealing to younger population groups.
FIG. 5 is a block diagram of a system 100 for providing personalized video over a network, in accordance with an embodiment of the present technique. Generally, the system 100 may be considered as a central computing system such as one forming a portion of a communications network, or computing cluster, a cloud computing structure, or a combination thereof. Accordingly the system 100 is adapted to connect various nodes, such as servers, computer systems and end users, as well as for facilitating the transfer of data between nodes/end users (e.g., users 12 or 14 of FIG. 1). Further, the system 100 may be part of and/or reside in a general network (e.g., network 10 of FIG. 1), including an Internet Network, an Intranet, or other types of local, wide and/or global area communications network, such as those formed of a wire line network, wireless network, satellite network, or a combination thereof.
As further illustrated, the system 100 includes a feed generator device 110, a software plug-in device 112, a rendering engine device 114, a video verification module 115, and ad server device 116. Those skilled in the will appreciate that the term device, as used herein, may encompass one, multiple, and/or an ensemble of devices, formed either as stand alone or a combination of hardware and/or software platforms, each adapted to store and/or execute various algorithms, routines, and various computational tasks for manipulating and configuring digital elements/templates (e.g., FIG. 2) to ultimately generate and verify personalized digital videos over the Internet or other networks, as described above by FIGS. 3 and 4.
Accordingly, those skilled in the art will appreciate that the system 100 and the devices 110-116 may include, either alone or in combination, various microprocessors, servers, such as those available, for example, by Sun Microsystems, Hewlett Packard, Dell, International Business Machines (IBM), and/or other known processor and server vendors and providers. In addition, the devices 110-116 may include, either alone or in combination, hardware devices, memory and storage devices, graphic cards, routers, wireless devices and other modules for receiving, transmitting and/or processing data.
In addition, the system 100, particularly, the devices 110-116 may be housed and/or run on a computing cloud, such as that available by Amazon.com and/or similar cloud-providing vendors. As such, the system 100 and its various components may be adapted to run various software platforms and packages, such as those providing code written in Java, Python, Ruby on Rails, and/or other computer languages, for facilitating the everyday operation and use of the system 100.
In accordance with one embodiment of the present technique, the feed generator 110 may form, for example, an RSS feed generator, adapted to intake information, such as a website URL, and or other related material included as part of a specific website 118 belonging to particular vendor(s). Such vendors having the website 118 may include firm(s), commercial companies, or any private or public organization interested in providing the general public with information and content regarding its various products, services, as well as any other general and/or specific information adapted to promote or otherwise enhance the company's image in the public eye. As will be discussed below, such information may include digital content in a form of a digital movie, such as one that can be downloaded and played by an average home or office user upon throughout a communication session, as may happen when a user generally browses the Internet.
Further, once the system 100 obtains a desired website and URL information via the generator 110, (that is, from where the URL information is stored) the software plugging device 112 obtains original ads 120 to further process such ads and provide personalized digital video ads adapted to appeal to specific segments, groups, locations, genders and so forth. As mentioned, such movies may include advertizing and other promotional material, as promulgated by the vendor of the website 118. Further, the device 112, particularly, software plug-ins employed therein are adapted to generally analyze digital items form which the digital movie is formed. In so doing, the device 112 finds and determines the position of dynamic elements, elements 16-20 (see FIG. 2) so that those can be modified and/or edited in accordance. Hence, an animator employing the plug-in device 112 can define and mange dynamic texts, visual animations, images, and voice to fit a specific ad that can be personalized and adapted for specific users segment located therein.
More specifically, the device 112 utilizes the non-dynamical elements in conjunction with dynamical elements of the ad, i.e., movie, whereby dummy texts may be inserted to the ad, via an editing software, ultimately determined by constraints are configured in accordance with a desired implementation. For example, certain portions of the movie including text messages may be designated for dynamic rendering, eventually determined according to the animator's choice and/or according to specified demands. By further example, the device 112 can be used to insert and configure certain desired images, as well as vary the properties of images existing in an otherwise distributed movie. This may also include designating and configuring dynamic image background features, such opacity, brightness, lighting, object views, text images and other related visual features.
These and other operations, as performed by the device 112, create what may be called a master ad that can be provided to core rendering engine device 114, adapted to compose all variations of the video ads in accordance with the specified regional and/or other types of preferences to where the ad is intended. In so doing, the rendering engine 114 receives personalized parameters 122 which determine the uniqueness of each ad, as well as the extent to which dynamic elements within each video are varied. Accordingly, the engine 114 inserts into the master ad provided by the software plug-ins 112 actual specific data values to create actual videos, where each video is uniquely created to reflect the various changes in an otherwise original ad, modified to create multiple ads that are each adapted to target a certain region, population and so forth. Once the rendering engine 114 creates the multiple ad movies, the engine 114 encodes each of the multiple movies according to certain accepted and usable image formats, such as .JPEG, .GIF, .MPEG, and other image and/or video well known and used in the industry.
In accordance with exemplary embodiments of the present technique, once the personalized digital video is rendered and encoded, as performed by the rendering engine 114, the personalized video undergoes a verification process by the video verification module 115. The verification module 115 is adapted to detect various failures and/or defects that may have occurred during the rendering and/or encoding processed. Such failures may stem, for example, from various multiple software or configuration “bugs,” causing images or texts to be displayed incorrectly, or rendering videos not in par with standard videos such as those available on the market.
To counter such failures, the verification module 115 employs various algorithms for detecting and rectifying the above-mentioned failures occurring in mass production of personalized videos. Accordingly, in an exemplary embodiment, the present technique utilizes a comparison procedure by which generated personalized videos are compared to a specifically chosen pristine standard video that provides a baseline against which other videos are compared. In so doing, for each set of mass produced personalized videos, a pristine version is chosen for that set by examining a subset of videos in that set and determining which personalized videos in the subset has features matching closest all other videos in the subset of personalized videos. Such determination may further involve, for example, utilizing maximum likelihood and/or Bayesian statistical methods, as well as other averaging methods.
Hence, the verification module 115 utilizes the aforementioned pristine copy of the personalized video for comparing other similar personalized rendered and encoded videos. More specifically, the comparison performed by the module 115 may be based on employing one or more functions providing a quantitative numerical measure for determining how well the personalized video matches the pristine video of that version of the ad. Hence, in one exemplary embodiment, the module 115 separates each of the personalized videos in to its image frames and corresponding soundtrack. Thereafter, the video verification module 115 applies, for example, a binary hash function (e.g., MD5 hash function) to the soundtrack of each personalized video to determine whether it matches a value provided by applying the hash function to a corresponding portion of soundtrack in the pristine video. Thus, for example, if the hash values of portions of a soundtrack of a personalized video undergoing verification do not match the hash values provided by the corresponding version of the pristine video, the module 115 returns a “FALSE” notification, thereby indicating the sound track of the personalized video undergoing verification may deviate significantly from the soundtrack of the pristine version in that corresponding portion of the video. Accordingly, this provides a further indication that the video undergoing verification may have certain defects, artifacts, or is otherwise corrupt to the extent it may fail to meet required criteria for being acceptable for viewing.
Similarly, by further example, a visual Diff function can be applied to one or more frames of the personalized video to determine and compare similar frames in the pristine videos of those corresponding frames. Thus, in an exemplary embodiment, the module 115 can employ a comparison algorithm defining that for each frame N in number of frames of the pristine video P, calculate a visual difference of Frame (N, P) versus Frame (N, T), where T indicates the personalized video undergoing verification. Thus, for example, when comparing matching frames of the pristine video to that of the video under going verification, then if visual Diff (Frame (FN, P), Frame (FN, T))>0.50, then the module 115 returns a “FALSE” indication, thereby indicating that the personalized video undergoing verification may be corrupt or is otherwise not in par with acceptable viewing standards. Hence, the Diff function, as employed above, evaluates the difference of pixel values between the nth frame of the pristine version and the nth frame of the video version undergoing verification. This may provide a rather standardized and accurate metric for evaluating whether the generated personalized videos meet desired standards.
In employing Diff functions for evaluating variations in frames between the video undergoing verification and the pristine version, visual differences of two images may be calculated using visual distance algorithm that divides the image, for example, into cells of 8 by 8 pixels. Hence, for each pixel cell, the module 115 can separates each pixel into its red, green and blue (RGB) values for determining a root-mean-square (RMS) for each pixel in the cell. Accordingly, a comparison between RMS values for each pixel in each cell of the verified video and corresponding pixel in the pristine video can be performed such that it is carried throughout all of the pixels in each and every cell of every frame. In so doing, a metric can be obtained having a numerical measure between 0 and 1, such that a value of 0 indicates that there is no difference between the verified video and the pristine video, while a value of 1 indicates no similarity between frames of the video undergoing verification and the pristine video.
After personalized video files are rendered, encoded and verified, as described above, such files are then provided to targeting server 116 adapted to receive request for the videos from multiple locations or with users segmentation parameters. Accordingly, upon such requests, the server 116 outputs personalized video ads to multiple end users 124, 126 and 128, including home, office, or other users having access to websites, such as the website 118. In this manner, each of the different users 124, 126 and 128 may individually receive a personalized video that accommodates and is made to fit the user's regional or geographical location and setting. Thus, while outputs 124-128 may generally be formed of the same ad (see FIGS. 3 and 4), each sharing similar content information and appearance, those outputs may differ to some extent according to the personalized preferences 122, defined above. For example, users viewing output 124 in one region may view a video that may be visually identical the output 126 viewed in another region, however, the video 124 may contain textual information (e.g., maps, location address, store names, etc.) indicative of the first region while the output 126 may contain textual information indicative of the second region, yet, different from the first region. As mentioned herein, the varied outs 124-126 may contain personalized attributes appealable to various user groups, such as gender, groups, demographic groups, cultural groups, age groups, employment groups, social groups, artistic and academic groups, fraternities, hobby and sport clubs, and/or other associations with which general users having access to the network can relate. Thus, personalized videos discusses herein can provide an otherwise generic advertisement while tweaking certain images, colors, sceneries, and/or voices, i.e., dialects, languages and the like to appeal to certain group segments who may find those particular colors and/or accent appealing. In so doing, the present technique creates a multitude of versions of the same ad, each having its own personalized features for targeting a certain population group, while preserving the overall content conveyed by the originally and previously created and distributed ad.
FIG. 6 illustrates a system 200 for rendering personalized video, in accordance with an embodiment of the present technique. The system 200 includes various components adapted to receive original webpage data having original ads, as well as components for processing such data for ultimately rendering and encoding personalized videos, such as those described above. Furthermore, because the rendering process of the personalized video can be quite computationally demanding, the system 200 may be implemented over a computing cloud or a computing cluster having servers and/or processors, dedicated for processing voluminous data, and adapted for executing and performing various computational tasks in parallel that could otherwise be too overwhelming for conventional computing systems. To the extent resources of the computing cloud are needed for rendering personalized videos, the amount of devices dedicated to such tasks within the cluster could expand or contract as the needs for using such resources changes with time. Thus, the disclosed computing cloud/cluster may be continually elastic and dynamic for efficiently accommodating the computational tasks at hand.
It should further be borne in mind that the term computing cloud and/or computing cluster as used herein refers to a consolidated remote data and processing system adapted for allocating and provisioning dynamical and scalable virtualized resources. Accordingly, computing resources located on the cloud may take a form of ease to access remote computing sites provided by a network, such as an Internet, and/or other forms of web-based tools or applications that users can easily attain and use through web browser. In such implementation, the cloud offers a real time emulation of programs and applications as if those were installed locally on the client's computer.
Returning to FIG. 6, the system 200 includes a feed generator 202 adapted to retrieve original ads through network 204 from webpages 206. From the acquired webpges 206, the feed generator 202 is further adapted to generate structured data, such as an XML file, including dynamical ad data that is prone to change as part of creating those portions of the video ad that ultimately become personalized and may appeal to certain segment of the network. Such data is then provided to the orchestrator 208 which, among other things, functions to oversee the entire rendering operations of the personalized videos generated by the system 208. Hence, the orchestrator 208 obtains from the original ad, those digital elements of the ad defined as static, as well as those elements defined as dynamic, as brought forth above by FIG. 2.
Upon receiving such information, the orchestrator 208 prompts change set manger (CSM) 210 to recognize and identify ongoing computational changes currently occurring or those about to occur in the cloud 200. Thus, if new ads originating from the webpages 206 are provided to the cluster 200, as may happen at any given moment, the CSM 210 provides a real time overview and assessment of resources available to the cluster 200 for performing the current required operations, as well as those resources that would be needed to performing processing and creating new personalized videos based on the newly acquired ads 206.
For example, the CSM 210 may identify that certain ads, previously acquired from webpages 206, are no longer running, outdated, or otherwise unavailable for further processing to create personalized video for distribution across the network. Alternatively the CSM 210 may recognize the emergence of new ad videos, as may be provided by one or more vendors, requiring processing and rendering for creating multiple versions of personalized videos. Thus, cessation or emergence of new videos available for processing in accordance with the present technique may be part of commercial and/or promotional campaigns conducted by one ore more vendors attempting to commercialize and bring forth products and/or services to various segments of network users.
Hence, orchestrator 208 obtains the real time assessment of resources available to the cloud 200, as provided by the CSM 210, to coordinate further rendering operations, as performed by rendering engine servers 212, for generating multiple versions of personalized videos. Thus, the orchestrator 208 is adapted to time and/or synchronize the operation of servers 212 in accordance with the needs specified to cloud for processing newly acquired ad videos from the webpages 206. Hence, rendering servers 212 may operate in parallel and in capacity that could vary at any point of time depending on varying loads experienced by the cloud 200. Hence, the ability of the computing cloud 200 to tap or release rendering servers 212 and/or other resources at will provides much flexibility for better facilitating a better, efficient and cost effective system for generating multiple versions of personalized videos. Furthermore, the ability of the cloud of the orchestrator to distribute and allocate the rendering operation of large scale data may significantly reduce the amount of rendering time allocated for generating each personalized videos. Thus, by utilizing the cloud 200, personalized ad movies normally taking hours to render may be rendered in minutes, thereby leading to substantial reduction of processing time and cost.
In further aspects of the present technique, the computer cloud 200 further includes servers, such as servers 214, adapted to fore encoding the personalized videos, as rendered by the servers 212. In so doing, orchestrator 208 prompts servers 214 to encode and videos rendered by the serves 212. Accordingly, those skilled in the art will appreciate that the personalized videos may be encoded in accordance with a variety of known digital video formats, such as MPEG, JPEG MMV, and/or other known formats. In so doing, orchestrator 208 may coordinate various operations of available encoding servers 214 so as to expand or contract the computing capacity of the cloud 200 with varying needs. Such needs may be specified by the amount of originally acquired videos ads from webpage 206, as well as by the urgency required to produce and/or make such videos available for distribution across the networks.
The cloud 200 further includes video verification module 216, made up of one or more processors such as those found in servers or other computing devices. The video verification module 216 is adapted to detect any failures or defects within the personalized videos, as rendered and encoded by the servers 212 and 214, respectively. Accordingly, as described above with reference to FIG. 5, the video verification module 216 within the cloud 200 is adapted to obtain the pristine video file of every version of the personalized videos, so as to form a baseline comparison copy to which other similar versions of the personalized are compared. Thus, the module 216 utilizes the above described statistical methods for selecting the pristine version, as well as employing the various hash and differential (Diff) function for comparing the other personalized videos to the pristine version. In so doing, the video verification module performs various mathematical and algorithmic operations for producing a comparative platform employing certain criteria (as describe above with reference to module 115 of FIG. 5) to determine whether rendered and encoded personalized videos are in par with acceptable viewing standards for users in a network.
Furthermore, upon receiving notice form the encoding server 214 that a personalized video has been encoded, the orchestrator 208 instructs the video verification module to commence video verification for that personalized video, in accordance with the operation described above. Accordingly, upon completing the video verification, the module 216 may return to the orchestrator 208 an indication on whether the personalized video can be released and is acceptable for viewing as or within a personalized advertisement. Thus, the module 216 may prove a Boolean value, such “TRUE” for a valid video which can be viewed and/or be accessed on the network, as apposed to a value of “FALSE,” indicating the personalized video is not proper is otherwise too defective for being placed on the network as a personalized ad.
It should be appreciated that having the video verification module 216 as an integral part of the computing cloud 200 and the video creation process effected by the cloud 200 provides a significant advantage for handling the verification process of a large number of personalized videos. Accordingly, because the present technique ensures that the verification process of each personalized video is embedded within the actual creation process of the personalized video, provides the cloud 200 a real time capacity to inspect frame by frame the personalized video as it is being generated. Such on-the-fly capability circumvents any post processing of the videos that would otherwise require reopening video files so as to decompress, decode while performing considerable amount of computation before any validation of the video may commence.
FIG. 7 is a block diagram 300 describing a process, in accordance with an embodiment of the present technique. Accordingly, the process 300 describes a method for generating personalized videos utilizing computer resources available within a computing cloud. The process begins at block 302 in whereby one or more feed generators of a computing cloud obtains through one and/or more feed generators of a computing cloud, parameters of a digital video. Such video may generally be provided to users having access to the network and its various applications. Further, the process 300 further includes step 304 whereby the obtained parameters are modified by one and/or more software generators located within the computing cloud. The modification, as obtained at step 304 is based on information relating to segments of the users of the network. Hence, this information may relate to various aspects of segments of network, including information on their personal preferences, geographical location, demographic and/or gender make up, and many other aspects.
The process 300 further includes step 306, in which a plurality of versions of the originally obtained video are created based in the modification of the parameters. Step 306 may generally be performed utilizing one or more rendering engines located within the computing cloud. In so doing, the present technique utilizes the cloud to perform a significant amount of rendering operations of numerous digital video frames belonging to various digital video ads. The use of the computing cloud provides a robust platform for performing heavy and laborious computing operations, thereby significantly shortening entire rendering operations. In accordance with other aspects of the present technique, the process 300 further includes step 308 whereby the cloud employs computing operations for determining a quality of one or more personalized videos. As described above, such a quality generally pertains to determining whether the personalized videos comply with acceptable viewing standards. Such a quality may depend and/or be derived from, for example, a numerical metric that defined a threshold or criteria on whether the video is acceptable for viewing. Accordingly, at step 310, based on the determined quality and its quantitative measure it is determined whether the video is acceptable for viewing.

## Claims

1. A method, comprising:
obtaining, through one and/or more processors, parameters of a digital video, wherein the video is adapted to be provided to users of a network;
modifying, by one or more processors, one or more of the obtained parameters, wherein the modification is based on information relating to segments of the users of the network;
creating, by one or more processors, based on the modification, a plurality of versions of the digital video, wherein each one of the plurality of versions comprises a digital video adapted to appeal to at least one of the segments of the users of the network;
determining, by one or more processors, a quality of at least one of the plurality of versions of the digital video, including detecting failures and/or defects in the rendering and/or encoding of the at least one of the plurality of versions of the digital video;
determining whether the at least one of the plurality of versions is viewable to the users of the network based on the determined quality, including the detected failures and/or defects in rendering and/or encoding;
wherein determining the quality of the at least one of the plurality of versions of the digital video comprises comparing the at least one of the plurality of videos to a baseline version of the digital video;
wherein the baseline version comprises a version, out of the plurality of the versions, having a closest similarity to a subset of versions out of the plurality of versions, than any other version in the subset, determined with an averaging method.

2. The method of claim 1, comprising separating the at least one version into a soundtrack portion and an image frame portion.

3. The method of claim 2, wherein comparing the at least one of the plurality of videos to a baseline version of the digital video comprises comparing the sound track portion to a sound track baseline, and comparing the image frame portion to a baseline image frame portion.

4. The method claim 2, wherein comparing comprises applying a hash function and/or a visual differential (Diff) function.

5. The method of claim 1, wherein the one or more processors are part of a computing cloud.

6. The method according to claim 1, wherein the information comprises at least one of location data, language data, weather data, marketing data, financial data, demographics data, social information data, consumer data, local data, and/or any combination thereof.

7. The method of claim 1, wherein the determining the quality of the at least one of the plurality of versions of the digital video is performed in real time during the creation of the plurality of versions of the digital video, avoiding the need for post-processing of the digital video versions and associated decompression and decoding.

8. A system for generating digital videos, comprising:
a feed generator adapted to obtain parameters of a digital video, wherein the video is adapted to be provided to users of a network;
at least one rendering processor coupled to the feed generator, wherein the at least one rendering processor is adapted to modify one or more of the obtained parameters, wherein the modification is based on information relating to segments of the users of the network, and wherein the at least one processor is adapted to render, based on the modification, a plurality of versions of the digital video, and wherein each one of the plurality of versions comprises a digital video adapted to appeal to at least one of the segments of the users of the network; and
a verification module adapted to determine a quality of at least one of the plurality of versions of the digital video, at least in part by detecting failures and/or defects in the rendering an/or encoding of the at least one of the plurality of versions of the digital video, and wherein the module is adapted to determine whether the at least one of the plurality of versions is viewable to the users of the network based on the determined quality, including the detected failures and/or defects in rendering and/or encoding;
wherein the verification module is adapted to compare the at least one of the plurality of videos to a baseline version of the digital video in determining the quality;
wherein the baseline version compares a version, out of the plurality of the versions, having a closest similarity to a subset of versions out of the plurality of versions, than any other version in the subset, determined with an average method.

9. The system of claim 8, wherein the verification module is adapted to separate the at least one version into a soundtrack portion and an image frame portion.

10. The system of claim 9, wherein the verification module is further adapted to compare the soundtrack portion to a sound track baseline and to compare the image frame portion to a baseline image frame portion, in determining whether the at least one of the plurality of versions of the digital video is viewable to the users.

11. The system of claim 9, wherein comparing comprises applying a hash function and/or a visual differential (Diff) function.

12. The system of claim 8, wherein the one or more processors are part of a computing cloud.

13. The system of claim 8, wherein the information comprises at least one of location data, language data, weather data, marketing data, financial data, demographics data, social information data, consumer data, local data, and/or any combination thereof.

14. The system of claim 8, further comprising encoding servers adapted to encode the rendered plurality of versions of the digital video, wherein the verification module is further adapted to determine the quality of the at least one of the plurality of versions of the digital video in real time as each of the at least one versions are encoded, avoiding the need for post-processing of the digital video versions and associated decompression and decoding.

15. A computer program product comprising:
a non-transitory computer readable storage medium having computer readable program embodied therewith and adapted to be executed by a computing cloud, the computer readable program comprising:
a computer readable program configured to obtain parameters of a digital video, wherein the video is adapted to be provided to users of a network;
a computer readable medium configured to modify the obtained parameters, wherein the modification is based on information relating to segments of the users of the network;
a computer readable medium configured to create a plurality of versions of the digital video, wherein each one of the plurality of versions comprises a digital video adapted to appeal to at least one of the segments of the users of the network; and
a computer readable medium configured to determine by one or more processors a quality of at least one of the plurality of versions of the digital video, at least in part by detecting failures an/or defects in the rendering an/or encoding of the at least one of the plurality of versions of the digital video; and
a computer readable medium configured to determining whether the at least one of the plurality of versions is viewable to the users of the network based on the determined quality, including the detected failures and/or defects in rendering and/or encoding;
wherein determining the quality comprises comparing the at least one of the plurality of videos to a baseline version of the digital video;
wherein the baseline version comprises a version, out of the plurality of the versions, having a closest similarity to a subset of versions out of the plurality of versions, than any other version in the subset, determined with an averaging method.

16. The computer program of claim 15, comprising a computer readable medium configured to determine to compare the at least one of the plurality of videos to a baseline version of the digital video.

17. The computer program of claim 15, wherein the one or more processors are part of a computing cloud.