Personalized video mechanism
The system allows for personalized video content creation by embedding personalized elements into video streams, addressing the lack of tailored advertisements in current streaming services and enhancing advertising revenue potential.
Patent Information
- Application Number
- JP2025041995
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-18
- Filing Date
- 2025-03-17
- Publication Date
- 2025-10-01
- Estimated Expiration
- 2045-03-17
AI Technical Summary
Current video streaming services lack the ability to provide personalized video advertisements tailored to individual viewers, limiting the potential for generating additional revenue from targeted advertising.
A system and method for incorporating personalized messages into video streams by capturing frames of personalized images and embedding them into video using video transitions, applying personalization elements such as bounding boxes, timestamps, and effects to generate a design file that includes these elements, which are then applied to the video frames.
Enables the creation of personalized video content that engages individual viewers, enhancing the advertising potential and revenue generation for streaming services by providing customized video experiences.
Smart Images

Figure 2025143234000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates generally to personalized video, and more particularly to generating video streams with personalized image elements within the video stream. [Background technology]
[0002] Video streaming services are adding more and more video advertisements to generate additional revenue streams. However, these advertisements are not tailored to the customer in a specific way. Therefore, there is a market demand for highly personalized videos for each individual viewer in order to drive commissions from advertisers that are due to streaming services. Summary of the Invention
[0003] In one embodiment, a system is disclosed that includes at least one physical memory device for storing a content editor, and one or more processors coupled to the at least one physical memory device for executing the content editor to receive a selection of video frames of a background video file displayed within a graphical user interface (GUI), generate one or more personalization elements indicative of personalization data that appears in a reference video associated with the background video file, apply the one or more personalization elements to the selected video frames, and generate a design file that includes the one or more personalization elements. [Brief explanation of the drawings]
[0004] In the following drawings, like reference numerals are used to denote like elements. The following drawings illustrate various examples, but one or more implementations are not limited to the examples shown in the drawings. [Figure 1A] 1 illustrates an embodiment of a personalized video system. [Figure 1B]1 illustrates an embodiment of a personalized video system. [Figure 2] 1 illustrates one embodiment of a content editor. [Figure 3A] 1 illustrates an embodiment of an image. [Figure 3B] 1 illustrates one embodiment of a graphical user interface. [Figure 4] FIG. 1 is a flow diagram illustrating one embodiment of an editing process. [Figure 5] 1 illustrates one embodiment of a personalization module. [Figure 6A] 1 illustrates an embodiment of an image frame. [Figure 6B] 1 illustrates an embodiment of an image frame. [Figure 6C] 1 shows an embodiment of a mask. [Figure 6D] 1 shows an embodiment of a mask. [Figure 7A] FIG. 1 is a flow diagram illustrating an embodiment of a video personalization process. [Figure 7B] FIG. 1 is a flow diagram illustrating an embodiment of a video personalization process. [Figure 7C] FIG. 1 is a flow diagram illustrating an embodiment of a video personalization process. [Figure 8] 1 illustrates one embodiment of a motion module. [Figure 9] 1 illustrates a computing device suitable for implementing embodiments of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0005] As noted above, there is a market for personalizing video advertisements provided by video streaming services. Opportunities exist for personalized video, especially as the need for personalized video creation by websites, video display sites, and consumers grows exponentially. Currently, design tools exist that are implemented to generate personalized images by importing still images and applying personalized messages to the images. However, this concept has not been implemented for streaming video.
[0006] According to one embodiment, a mechanism is provided for incorporating personalized messages into a video stream, in which frames of the video are captured for the background of one or more personalized images and embedded into the video by applying a video transition to subsequent frames.
[0007] In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid obscuring the underlying principles of the present invention.
[0008] References herein to "one embodiment" or "an embodiment" mean that a particular feature, structure, or characteristic described in connection with an embodiment is included in at least one embodiment of the present invention. The appearances of the phrase "in one embodiment" in various places in the specification are not necessarily all referring to the same embodiment.
[0009] Throughout this specification, terms such as "logic," "component," "module," "engine," "model," "interface," etc. may be referred to interchangeably and may include, by way of example, software, hardware, and / or any combination of software and hardware, such as firmware. Furthermore, any use of a particular brand, word, term, phrase, name, and / or acronym should not be read as limiting embodiments to the product or software or device bearing that label in literature other than this specification.
[0010] It is contemplated that any number and type of components may be added and / or removed to enable various embodiments, including adding, removing, and / or enhancing specific features. For the sake of brevity, clarity, and ease of understanding, many of the standard and / or well-known components, such as components of a computing device, are not shown or discussed herein. The embodiments described herein are not limited to any particular technology, topology, system, architecture, and / or standard, and are contemplated to be dynamic enough to adapt and accommodate any future changes.
[0011] FIG. 1A illustrates one embodiment of a personalized video system 100 including a content editor 110, a personalization module 120, and a content database 130. While shown as components within a single system 100, other embodiments may feature components of personalized video system 100 included within separate devices communicatively coupled via a network. For example, FIG. 1B illustrates an embodiment in which the components of personalized video system 100 are implemented in a network. As shown in FIG. 1B, content editor 110 is included within computing system 150, while personalization module 120 and content database 130 are included in computing device 160 coupled to computing system 150 via cloud network 190. However, in other embodiments, computing systems 150 and 160 may be coupled via other types of networks (e.g., local area networks).
[0012] In one embodiment, the content editor 110 is implemented as a design tool for applying formatting to one or more sets of video frames in a streaming video by tagging the frames with personalization elements and generating a design file that includes the personalization elements. The personalization elements may include static elements (e.g., background images) or dynamic elements (e.g., areas on frames where variables (or personalization data) appear in the video). The personalization data includes variable content data (not shown) that is customized for individuals viewing the video on a client system. For example, content viewed by a first individual viewer is different from content viewed by a second individual viewer. In one embodiment, the design file includes a FlashPix file. FlashPix files include a bitmap computer graphics file format in which images are stored at more than one resolution.
[0013] Figure 2 illustrates one embodiment of the content editor 110. As shown in Figure 2, the content editor 110 includes a video player 210 implemented to receive, open, and play a background video file (e.g., an MPEG-4 (MP4) file) in which one or more video frames are to be edited. In one embodiment, streaming video from the background video file is played within a graphical user interface (GUI) 220 and edited using editing tools 230 to apply personalization elements to frames of the video. One type of tool implemented includes a scrolling tool that facilitates scrolling through the video to determine frames in which personalization data should be displayed.
[0014] Using a beach video scene as an example where waves crash onto the shore and temporarily obscure the shoreline sand, a scrolling tool may be implemented to scroll through the video to identify the most suitable frame for displaying personalization data. Figure 3A shows one embodiment of an image from a beach video frame. In this example, a message containing personalization data (or a personalized message) appears as if written in the sand as the wave recedes and is hidden as another wave emerges. Each time the wave recedes, another personalized message may be displayed.
[0015] Another tool that may be implemented is a drawing tool for inserting a personalization element of an image layer (or personalization image layer) into a selected frame. In one embodiment, the personalization image layer includes a box indicating the boundary within the frame (or bounding box) where personalization data should be inserted. FIG. 3B illustrates one embodiment of a GUI 220 with an editing tool 230 and a video frame 301 to be edited. As shown in FIG. 3B, the video frame 301 includes a personalization image layer 302 with a sample personalization message. The personalization layer includes various attributes that indicate how the personalization is applied. In one embodiment, the system has the ability to apply an embossed effect to the background or apply a font to be drawn across the image. Another option is for the personalization text to define a mask that strips away pixels from the video to reveal an image representing what is behind. In this example, the personalization specifies an image whose content is revealed where the personalization text appears. This has the effect of a person writing their name on a foggy window, revealing the content behind it. Personalization can also be invoked by drawing text with shapes that follow the shape of letters, like text written in sand on a table or pebbles in a jelly bean. Personalization can also take the form of magnetic letters on a refrigerator that spell out text, or a bunch of clouds that spell out text.
[0016] A timestamp tool is implemented to create timestamps for personalization elements within the video to indicate the start and stop times when the personalization data should be generated and hidden, respectively. The timestamps allow the personalization module 120 to automatically detect when the personalization data within the personalization element in the image layer on which the video is rendered becomes obscured and hide the obscured portions. This allows waves to wash away the writing, hiding only the top of the writing until all of the text is obscured, at which point the text can be changed to something else. In one embodiment, a personalization effect tool may be implemented to add personalization effects to the personalization element that should be applied to the personalization data within the frame. For example, a personalization message may be written in a font that appears to change color as the text is carved into sand.
[0017] The file generator 240 is implemented to generate a design file that includes all personalization elements to be applied to a video in the personalization module 120. In one embodiment, the design file includes instructions regarding how the personalization data should be applied to a reference video. In such an embodiment, the design file includes a reference to the video to which the design file should be applied. However, in other embodiments, the video may be included within the design file.
[0018] 4 is a flow diagram illustrating one embodiment of an editing process 400. Process 400 may be performed by processing logic, which may include hardware (e.g., circuitry, dedicated logic, programmable logic, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. In one embodiment, process 400 may be performed by content editor 110. While process 400 is shown in a linear sequence for simplicity and clarity of presentation, it is contemplated that any number of these may be performed in parallel, asynchronously, or in a different order. For the sake of brevity, clarity, and ease of understanding, many of the details described with reference to FIGS. 1-3 will not be discussed or repeated here.
[0019] At processing block 410, a background video file containing streaming video to be edited is received. At processing block 420, one or more frames selected for editing are received. At processing block 430, personalization elements are generated. As described above, the generated personalization elements (e.g., image layers, timestamps, personalization effects, etc.) are applied to the selected video frames. At processing block 440, a design file containing the personalization elements is generated. At processing block 450, the design file is sent (e.g., to either personalization module 120 or content database 130).
[0020] The personalization module 120 is a video processing system that receives a design file, a video referenced by the design file (or a reference video), and personalization data, and applies the personalization data to the video based on instructions provided by a personalization element in the design file. Figure 5 illustrates one embodiment of the personalization module 120. As shown in Figure 5, the personalization module 120 includes an extractor 510 that opens the design file and the reference video file and extracts a video frame (or an optimal video frame, e.g., frame(n)) associated with a timestamp personalization element in the design file. Figure 6A illustrates an embodiment of frame(n).
[0021] The image generator 520 then applies personalization data to frame(n) based on the personalization elements in the design file to generate an output frame (or output image) of frame(n). The personalization data interacts with the background image frame in a manner set in the design file. If the design is set to emboss the personalization in the background, a embossing effect is applied to the background based on the personalization content. The effect can be any number of personalizations available in the system. As a result, the personalization data is applied within the personalization elements of the image layer (or bounding box) defined according to the personalization elements of any indicated effect.
[0022] The image generator 520 then advances one frame to a subsequent frame in the video (e.g., frame (n+1)) (FIG. 6B), and the frame comparator 530 performs a pixel-by-pixel comparison of frame (n) and frame (n+1) within an area corresponding to the bounding box in frame (n) to determine pixels that are identical between the two frames. In one embodiment, a pixel in frame (n+1) is considered identical if the pixel is determined to be within a predetermined threshold of the corresponding pixel in frame (n). The image generator 520 then applies the personalization data to frame (n+1). However, the output image for frame (n+1) is generated by applying the personalization data only to pixels determined by the comparison to be identical to pixels in frame (n). Thus, the output image associated with frame (n+1) does not include personalization data for pixels in frame (n+1) that are determined to be different from pixels in frame (n).
[0023] According to one embodiment, mask 540 is implemented to apply personalization data to frame (n+1) to generate an output image for frame (n+1). In this embodiment, the mask indicates which pixels in frame (n+1) should be copied to the associated output frame. The mask is calculated by the system by comparing source frame (n) with subsequent source frames to determine which portions of the original frame content are still present in the currently processed frame (n+1). If a portion of the original frame is obscured (such as by ocean waves in this example), the mask removes that portion from the background. FIG. 6C illustrates an embodiment of the results of implementing mask 540. As shown in FIG. 6C, the mask contains artifacts. In an alternative embodiment, an alpha channel may be implemented. In such an embodiment, subsequent frame pixels that are sufficiently close to the original pixel may have their output color blended with the frame's original output color at samples where the wave falls on the character. This is because the samples are useful for fading in and out the text based on the wave. Additionally, once a first pass is made with mask 540, a second pass is performed using pixel weighting. If a pixel is determined to be surrounded or nearly surrounded by other pixels that are being copied to the output image, the pixel is copied to the output image.
[0024] In a further embodiment, the mask of frame (n+1) is also compared to the mask from frame (n), and differences from frame (n+1) to frame (n) that exceed a mask difference threshold for personalization data are removed. In this embodiment, the degree of change between frames is video-dependent. Thus, the personalization module 120 may include an option to allow the user to adjust the mask difference threshold. The anti-aliasing logic 550 applies anti-aliasing to the edges of the mask, blurring the edges so that there is no sharp boundary between the personalization data portions and the static portions. Figure 6D shows one embodiment of the result of the mask after cleanup and anti-aliasing. If the alpha channel from step 650 is not applied, the center of the mask is filled, but the edges are partially transparent.
[0025] In one embodiment, the above process for generating an output image associated with frame (n+1) is repeated for all successive frames (e.g., frame (n+2), frame (n+3), etc.). In a further embodiment, the process is repeated again to generate an output image associated with a frame within a previous frame (n) of the video (e.g., frame (n-1), frame (n-2), etc.). The file generator 560 generates a video file containing the generated output images. In one embodiment, the video file comprises an MP4 file.
[0026] 7A-7C are flow diagrams illustrating one embodiment of a process 700 for generating a video file including personalized content. Process 700 may be performed by processing logic, which may include hardware (e.g., circuitry, dedicated logic, programmable logic, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. In one embodiment, process 700 may be performed by personalization module 120. Process 700 is shown in a linear sequence for simplicity and clarity of presentation, but it is contemplated that any number of these may be performed in parallel, asynchronously, or in a different order. For the sake of brevity, clarity, and ease of understanding, many of the details described with reference to FIGS. 1-6 will not be discussed or repeated here.
[0027] Process 700 begins at processing blocks 702, 704, and 706 (FIG. 7A), where a design file, a reference video, and personalization data are received, respectively. At processing block 710, an optimal frame (e.g., frame (n)) is retrieved from the video. At processing block 715, an output image of the optimal frame is generated (e.g., by applying personalization data to the optimal frame according to instructions provided by a personalization element in the design file). At processing block 720, a subsequent frame (e.g., frame (n+1)) is retrieved from the video.
[0028] At processing block 722 (FIG. 7B), pixels in frame (n+1) are compared with pixels in frame (n) associated with the bounding box of frame (n) to determine pixels in the personalization data in frame (n+1) that should be excluded from the output image associated with frame (n+1). At processing block 725, a mask is generated for the pixels of frame (n) and the pixels of frame (n+1) in the area corresponding to the bounding box. At processing block 730, the masks are compared to determine whether there is significance in frame (n+1) from frame (n). At processing block 735, anti-aliasing is performed on the edges of the mask. At processing block 740, an output image for frame (n+1) is generated.
[0029] At decision block 745 (FIG. 7C), a determination is made as to whether there are any subsequent frames to process. If so, control is returned to processing block 720, where the subsequent frame (e.g., frame (n+2)) is retrieved. Otherwise, at decision block 750, a determination is made as to whether there is a frame (e.g., frame (n-1)) preceding frame (n) to be processed. If so, control is returned again to processing block 720, where the preceding frame is retrieved. Otherwise, at processing block 755, a video file is generated that includes the generated output image with the personalized content. At processing block 760, the video file is stored (e.g., in content database 130). However, in other embodiments, the video file may be transmitted to another computer system for storage.
[0030] According to one embodiment, the optimal frame, represented by frame(n), may be selected by a user. In such an embodiment, the user may set multiple keyframes within the same personalization element (e.g., so that there are two or more frames(n) in the same sequence to smooth the composition) if they determine that the system's effect is undesirable. In a further embodiment, the user may apply sample personalization text to the system within the design tool to see feedback on one or more selections to adjust settings within the system. In such an embodiment, the design is sent to a server where batches of personalization data are input into the system, thus generating an output personalized video for each data set.
[0031] The above embodiment describes a basic personalization system in which the personalization component of the video does not move within the frame, but is obscured and revealed as the video plays. However, other embodiments may feature personalized videos that move within the frame. For example, in a video of a kite, a personalized message may appear in the sky, and the kite may float around the frame, with the camera moving to track the kite. As the camera moves, the personalization module 120 may detect the shift in the video and move the personalized image appropriately. In this embodiment, the content of the personalization bounding box is static; only its position shifts. However, neither the perspective (e.g., from a user looking up at the sky) nor the lighting toward the personalized data changes.
[0032] According to one embodiment, personalization module 120 includes a motion module 570 for adjusting the position of the personalization component relative to the background. FIG. 8 shows one embodiment of motion module 570, including pixel analysis logic 810 and pixel adjustment logic 820. Pixel analysis logic 810 locates areas within the optimal frame (e.g., frame (n+1)) to use as landmarks. In one embodiment, pixel analysis logic 810 locates landmarks by scanning the optimal frame and finding the set of pixels (or reference frame) that are most significantly different from their surrounding pixels. This might be a cloud or possibly a building in the background in the kite example above. In this embodiment, pixel analysis occurs after receiving the optimal frame and before generating an output image of the optimal frame (e.g., between processing blocks 710 and 715 of process 700).
[0033] The pixel adjustment logic 820 adjusts the position of the bounding box personalization element in each frame based on the reference frame. In one embodiment, the adjustment is performed based on the position of the reference frame in the subsequent frame and the position of the reference frame in the optimal frame. For example, the position of the bounding box in frame (n+1) is adjusted so that the distance and direction from the bounding box in frame (n) is displaced from frame (n) to frame (n+1) based on the distance and direction of the reference frame in the respective frame. In this embodiment, the adjustment process is performed upon receiving a subsequent frame (e.g., processing block 720 in process 700). Implementation of the motion module 570 results in personalization data contained in bounding boxes appearing in different positions in the output image associated with frame (n) and the output image associated with frame (n+1).
[0034] In a further embodiment, the personalization module 120 enables tracking of personalized moving objects. For example, the moving object may include a person carrying a box with a name printed on the side. In this example, the box is rotated, possibly moved in and out of frame. In another example, a "Do Not Disturb" sign is placed on a door handle and sways back and forth. In this example, a personalized message may sway along with the sign, possibly in and out of a shadow. Additionally, the message may be written on a piece of cloth or paper that is bent or crumpled.
[0035] According to one embodiment, the GUI 220 in the content editor 110 provides a grid that indicates the shape of the object to be processed by the personalization module 120. In such an embodiment, the grid is drawn in multiple frames to indicate the movement of the personalization object between frames. In a further embodiment, a keyframe system may be used to allow the user to mark only the transition points (e.g., a set of points where the sign changes direction with each swing). In such an embodiment, a keyframe personalization element is generated that includes the keyframe information.
[0036] The motion module 570 includes position calculation logic 830 for receiving key-frame personalization elements and processing the key-frame information to calculate new positions of the bounding box personalization elements within the moving object in each frame. In one embodiment, the position calculation logic 830 calculates the positions by extrapolating the positions of the bounding box personalization elements based on the key frames. In this embodiment, the personalization components contain similar graphical content behind them, and therefore only need to apply the appropriate transformations between frames. In a further embodiment, the position calculation logic 830 treats each key frame as a new optimal frame, applies transitions between optimal frames, and applies transformation matrices to the personalized frame images.
[0037] The transition may take the form of merging the differences between two adjacent image streams that are in the same sequence but have different optimal image frames. If a first optimal image frame has a sequence of differences between frame (n) and frame (n+x), and a second optimal image frame (e.g., frame (n2)) is in the sequence starting with frame (n2-y), then frame (n+x) and frame (n2-y) are the same frame. Thus, the personalization applied to that frame is an averaging of the image created by the personalization between the two frames. That is, the system applies pixel-by-pixel averaging and anti-aliasing to pixels that have personalization elements between the two frames. In some embodiments, there are multiple overlapping frames, which the user may specify in the content editor 110 to achieve optimal performance.
[0038] For personalization that moves over frames, such as a swinging sign on a door, the personalization frames are animated in the content editor 110 to indicate the start and end points at the key frames and the degree of rotation at the key frames. The personalization module 120 applies a rotation transformation as one skilled in the art would apply to calculate the angle of rotation at each frame along the timeline.
[0039] In a further embodiment, a lighting personalization element is provided to indicate that the background frame has not changed. The color difference of the background element surrounding the personalization element indicates the type of light / color change that is occurring. The position calculation logic 830 uses that information to apply the same color shift to the image generated by the personalization element.
[0040] 9 illustrates a computer system 900 on which personalized video system 100, computing system 150, and / or computing system 160 may be implemented. Computer system 900 includes a system bus 920 for communicating information and a processor 910 coupled to bus 920 for processing information.
[0041] Computer system 900 further includes a random-access memory (RAM) or other dynamic storage device 925 (herein referred to as main memory) coupled to bus 920 for storing instructions and information executed by processor 910. Main memory 925 may also be used for storing temporary variables or other intermediate information during execution of instructions by processor 910. Computer system 900 may also include a read only memory (ROM) and / or other static storage device 926 coupled to bus 920 for storing instructions and static information used by processor 910.
[0042] A data storage device 927, such as a magnetic or optical disk, and its corresponding drive may also be coupled to computer system 900 for storing information and instructions. Computer system 900 may also be coupled to a second I / O bus 950 via I / O interface 930. Multiple I / O devices may be coupled to I / O bus 950, including a display device 924, input devices (e.g., a keyboard (or alphanumeric input device) 923 and / or cursor control device 922). Communication device 921 is for accessing other computers (servers or clients). Communication device 921 may include a modem, a network interface card, or other well-known interface devices, such as interface devices used to couple to an Ethernet, token ring, or other type of network.
[0043] Embodiments may be implemented as any or a combination of one or more microchips or integrated circuits interconnected using a motherboard, hardwired logic, software stored by a memory device and executed by a microprocessor, firmware, application specific integrated circuits (ASICs), and / or field programmable gate arrays (FPGAs). The term "logic" may include, by way of example, software or hardware, and / or a combination of software and hardware.
[0044] Embodiments may be provided as a computer program product, which may include one or more machine-readable media storing machine-executable instructions that, when executed by one or more machines, such as, for example, a computer, a network of computers, or other electronic devices, may cause one or more machines to perform operations according to the embodiments described herein. Machine-readable media may include, but are not limited to, floppy disks, optical disks, CD-ROMs (compact disk-read-only memory) and magneto-optical disks, ROMs, RAMs, EPROMs (erasable programmable read-only memory), EEPROMs (electrically erasable programmable read-only memory), magnetic or optical cards, flash memory, or other types of media / machine-readable media suitable for storing machine-executable instructions.
[0045] Furthermore, embodiments may be downloaded as a computer program product, and the program may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) via a communications link (e.g., a modem and / or network connection) by one or more data signals embodied in and / or modulated by a carrier wave or other propagation medium.
[0046] The drawings and the above description provide examples of embodiments. Those skilled in the art will understand that one or more of the described elements may be combined into a single functional element. Alternatively, certain elements may be divided into multiple functional elements. Elements from one embodiment may be added to another embodiment. For example, the order of processes described herein may be changed and is not limited to the manner described herein. Furthermore, the operations in any flow diagram need not be performed in the order shown, and not all operations necessarily need to be performed. Also, operations that are independent of other operations may be performed in parallel with other operations. The scope of the embodiments is in no way limited by these specific examples. Numerous variations, such as differences in structure, dimensions, and use of materials, are possible, whether or not explicitly described herein. The scope of the embodiments is at least as broad as that provided by the following claims.
[0047] The embodiments of the present invention include the following.
[0048] (A1) at least one physical memory device for storing a content editor; one or more processors coupled to the at least one physical memory device for executing the content editor; A system comprising: the one or more processors: receiving a selection of video frames from the background video file for display within a graphical user interface (GUI); generating one or more personalization elements indicating personalization data to appear in a reference video associated with said background video file; applying the one or more personalization elements to the selected video frames; A system that generates a design file that includes the one or more personalization elements.
[0049] (A2) The system described in A1, wherein the first personalization element includes a bounding box indicating an area within the video frame into which personalization data should be inserted.
[0050] (A3) The system of A2, wherein the second personalization element includes timestamps indicating start and end times when the personalization data is displayed and hidden within the bounding box.
[0051] (A4) The system described in A3, wherein the third personalization element includes a personalization effect to be applied to the personalization data.
[0052] (A5) The system of A1, wherein the personalization data associated with the one or more personalization elements includes variable content data customized for an individual watching the video on the client system.
[0053] (A6) The system described in A5, wherein the one or more personalization elements in the design file provide instructions regarding how the personalization data should be applied to the reference video.
[0054] (A7) The system of A1, wherein the content editor further transmits the design file to a video processing system.
[0055] (A8) The system described in A1, wherein the design file includes a FlashPix file.
[0056] (A9) The system according to A1, further comprising a display device for displaying the GUI.
[0057] (A10) The system of A1, wherein the content editor receives one or more selected video frames as optimal frames, the optimal frames being implemented to determine different pixels within the optimal frames.
[0058] (A11) receiving a selection of a video frame of a background video file to be displayed within a graphical user interface (GUI); generating one or more personalization elements indicating personalization data to appear in a reference video associated with the background video file; applying the one or more personalization elements to the selected video frames; generating a design file including the one or more personalization elements; A method comprising:
[0059] (A12) The method of A11, wherein the first personalization element includes a bounding box indicating an area within the video frame into which personalization data should be inserted.
[0060] (A13) The method of A12, wherein the second personalization element includes timestamps indicating start and end times when the personalization data is displayed and hidden within the bounding box.
[0061] (A14) The method of A11, wherein the personalization data associated with the one or more personalization elements includes variable content data customized for an individual watching the video on the client system.
[0062] (A15) The method according to A14, wherein the one or more personalization elements in the design file provide instructions regarding how the personalization data should be applied to the reference video.
[0063] (A16) At least one computer-readable medium having instructions stored thereon, The instructions, when executed by one or more processors, cause the processors to: receiving a selection of video frames from the background video file for display within a graphical user interface (GUI); generating one or more personalization elements indicating personalization data to appear in a reference video associated with said background video file; applying the one or more personalization elements to the selected video frames; A computer-readable medium for generating a design file including the one or more personalization elements.
[0064] (A17) The computer-readable medium of A16, wherein the first personalization element includes a bounding box indicating an area within the video frame into which personalization data should be inserted.
[0065] (A18) The computer-readable medium of A17, wherein the second personalization element includes timestamps indicating start and end times when the personalization data is displayed and hidden within the bounding box.
[0066] (A19) The computer-readable medium of A16, wherein the personalization data associated with the one or more personalization elements includes variable content data customized for an individual watching the video on the client system.
[0067] (A20) The computer-readable medium of A19, wherein the one or more personalization elements in the design file provide instructions regarding how the personalization data should be applied to the reference video.
[0068] (B1) A video processing system including one or more processors, the one or more processors: deriving a first video frame from the reference video based on a design file including one or more personalization elements; applying personalization data to the first video frame within a bounding box personalization element included in the design file to generate a first output image; extracting a second video frame from the reference video; comparing pixels in the second video frame associated with pixels in a bounding box in the first video frame; applying the personalization data to the second video frame to generate a second output image that excludes personalization data at pixels in the second video frame that are determined to be different from pixels in the first video frame; A system that generates a video file that includes the first output image and the second output image.
[0069] (B2) The system described in B1, wherein the one or more processors generating the second output image further includes applying a first mask to the second video frame to determine the pixels in the second video frame to be included in the second output image.
[0070] (B3) The system described in B2, wherein the one or more processors generating the second output image further includes comparing the first mask to a second mask applied to the first video frame.
[0071] (B4) The system described in B3, wherein the one or more processors generating the second output image further includes removing from the second output image differences between the personalization data in the second video frame and the personalization data in the first video frame that exceed a mask difference threshold.
[0072] (B5) The system of B4, wherein the one or more processors generating the second output image further includes applying anti-aliasing to edges of the first mask.
[0073] (B6) The system of B1, wherein the second video frame comprises a video frame that appears after the first video frame.
[0074] (B7) The system of B1, wherein the second video frame comprises a video frame that appears before the first video frame.
[0075] (B8) The system described in B1, wherein the one or more personalization elements in the design file provide instructions regarding how the personalization data should be applied to the reference video.
[0076] (B9) The system of B1, wherein the one or more processors retrieve the first video frame based on a timestamp personalization element included in the design file.
[0077] (B10) The system of B1, wherein the personalization data associated with the one or more personalization elements includes variable content data customized for an individual viewing the video on the client system.
[0078] (B11) The one or more processors: receiving the personalized data; receiving the reference video; Receive the design file The system of B1, further comprising:
[0079] (B12) The system of B1, wherein the second output image does not exclude the personalization data in pixels in the second video frame that are determined to be different from pixels in the first video frame.
[0080] (B13) The system of B12, wherein the second output image applies an alpha channel to personalized image pixels where the background has changed from the optimal frame.
[0081] (B14) extracting a first video frame from the reference video based on a design file including one or more personalization elements; applying personalization data to the first video frame within a bounding box personalization element included in the design file to generate a first output image; retrieving a second video frame from the reference video; comparing pixels in the second video frame associated with pixels in a bounding box in the first video frame; applying the personalization data to the second video frame to generate a second output image that excludes personalization data at pixels in the second video frame that are determined to be different from pixels in the first video frame; generating a video file including the first output image and the second output image; A method comprising:
[0082] (B15) The step of generating the second output image includes: applying a first mask to the second video frame to determine the pixels in the second video frame to be included in the second output image; comparing the first mask to a second mask applied to the first video frame; removing, from the second output image, differences between the personalization data in the second video frame and the personalization data in the first video frame that exceed a mask difference threshold; The method of B14, further comprising:
[0083] (B16) The method of B15, wherein the one or more personalization elements in the design file provide instructions regarding how the personalization data should be applied to the reference video.
[0084] (B17) The method of B16, wherein the personalization data associated with the one or more personalization elements includes variable content data customized for an individual viewing the video on the client system.
[0085] (B18) at least one computer-readable medium having instructions stored thereon, The instructions, when executed by one or more processors, cause the processors to: deriving a first video frame from the reference video based on a design file including one or more personalization elements; applying personalization data to the first video frame within a bounding box personalization element included in the design file to generate a first output image; deriving a second video frame from the reference video; comparing pixels in the second video frame associated with pixels in a bounding box in the first video frame; applying the personalization data to the second video frame to generate a second output image that excludes personalization data at pixels in the second video frame that are determined to be different from pixels in the first video frame; A computer-readable medium for generating a video file including the first output image and the second output image.
[0086] (B19) generating the second output image applying a first mask to the second video frame to determine the pixels in the second video frame to be included in the second output image; comparing the first mask to a second mask applied to the first video frame; removing, from the second output image, differences between the personalization data in the second video frame and the personalization data in the first video frame that exceed a mask difference threshold; The computer-readable medium of B18, further comprising:
[0087] (B20) The computer-readable medium of B19, wherein the one or more personalization elements in the design file provide instructions regarding how the personalization data should be applied to the reference video.
[0088] (C1) A processing system including one or more processors, the one or more processors: deriving a first video frame from the reference video based on a design file including one or more personalization elements; locating a landmark area at a first location within the first video frame; applying personalization data within a bounding box personalization element included in the design file at a first location in the first video frame to generate a first output image; extracting a second video frame from the reference video; adjusting a position of the bounding box personalization element in the second video frame to a second position based on a position of the landmark area in the second video frame; applying the personalization data in the bounding box personalization element at the second location in the second video frame to generate a second output image; A system that generates a video file that includes the first output image and the second output image.
[0089] (C2) The system of C1, wherein the one or more processors locating the landmark area includes finding a reference frame within the first video frame.
[0090] (C3) The system of C2, wherein the reference frame comprises a set of pixels that are most different from their surrounding pixels in the first video frame.
[0091] (C4) The system of C2, wherein the location of the landmark area is different in the second video frame than in the first video frame.
[0092] (C5) The system described in C1, wherein the position of the bounding box personalization element in the second video frame is adjusted to a distance and direction from the bounding box personalization element in the first video frame based on the distance and direction a reference frame is displaced from the first video frame to the second video frame.
[0093] (C6) The system described in C1, wherein the one or more personalization elements in the design file provide instructions regarding how the personalization data should be applied to the reference video.
[0094] (C7) the one or more processors receive a keyframe personalization element included in the design file; calculating a first position of the bounding box personalization element within the first video frame based on keyframe information included in the keyframe personalization element; The system of C1, further comprising: calculating a second position of the bounding box personalization element within the second video frame based on the key-frame personalization element.
[0095] (C8) The system described in C1, wherein the one or more processors extract the first video frame based on a timestamp personalization element included in the design file.
[0096] (C9) The system of C1, wherein the personalization data associated with the one or more personalization elements includes variable content data customized for an individual watching the video on the client system.
[0097] (C10) extracting a first video frame from the reference video based on a design file including one or more personalization elements; locating a landmark area at a first location within the first video frame; applying personalization data within a bounding box personalization element included in the design file at a first location in the first video frame to generate a first output image; retrieving a second video frame from the reference video; adjusting a position of the bounding box personalization element in the second video frame to a second position based on a position of the landmark area in the second video frame; applying the personalization data in the bounding box personalization element at the second location in the second video frame to generate a second output image; generating a video file including the first output image and the second output image; A method comprising:
[0098] (C11) The method of C10, wherein the one or more processors locating the landmark area includes finding a reference frame within the first video frame.
[0099] (C12) The method of C11, wherein the reference frame comprises a set of pixels that are most different from their surrounding pixels in the first video frame.
[0100] (C13) The method of C12, wherein the location of the landmark area is different in the second video frame than in the first video frame.
[0101] (C14) The method described in C10, wherein the position of the bounding box personalization element in the second video frame is adjusted to a distance and direction from the bounding box personalization element in the first video frame based on the distance and direction a reference frame is displaced from the first video frame to the second video frame.
[0102] (C15) The method of C10, wherein the one or more personalization elements in the design file provide instructions regarding how the personalization data should be applied to the reference video.
[0103] (C16) at least one computer-readable medium having instructions stored thereon, The instructions, when executed by one or more processors, cause the processors to: deriving a first video frame from the reference video based on a design file including one or more personalization elements; locating a landmark area at a first location within the first video frame; applying personalization data within a bounding box personalization element included in the design file at a first location in the first video frame to generate a first output image; deriving a second video frame from the reference video; adjusting a position of the bounding box personalization element in the second video frame to a second position based on a position of the landmark area in the second video frame; applying the personalization data in the bounding box personalization element at the second location in the second video frame to generate a second output image; A computer-readable medium for generating a video file including the first output image and the second output image.
[0104] (C17) The computer-readable medium of C16, wherein the one or more processors locating the landmark area includes finding a reference frame within the first video frame.
[0105] (C18) The computer-readable medium of C17, wherein the reference frame comprises a set of pixels that are most different from their surrounding pixels in the first video frame.
[0106] (C19) The computer-readable medium of C18, wherein the position of the landmark area is different in the second video frame than in the first video frame.
[0107] (C20) The computer-readable medium of C16, wherein the position of the bounding box personalization element in the second video frame is adjusted to a distance and direction from the bounding box personalization element in the first video frame based on the distance and direction a reference frame is displaced from the first video frame to the second video frame.
Claims
1. at least one physical memory device for storing the content editor; one or more processors coupled to the at least one physical memory device for executing the content editor; A system comprising: the one or more processors: receiving a selection of video frames from the background video file for display within a graphical user interface (GUI); generating one or more personalization elements indicating personalization data to appear in a reference video associated with said background video file; applying the one or more personalization elements to the selected video frames; A system that generates a design file that includes the one or more personalization elements.
2. The system of claim 1 , wherein the first personalization element comprises a bounding box indicating an area within the video frame into which personalization data should be inserted.
3. The system of claim 2 , wherein the second personalization element includes timestamps indicating start and end times when the personalization data is to be displayed and hidden within the bounding box.
4. The system of claim 3 , wherein a third personalization element includes a personalization effect to be applied to the personalization data.
5. The system of claim 1 , wherein the personalization data associated with the one or more personalization elements comprises variable content data customized for an individual viewing a video on a client system.
6. 1. A video processing system including one or more processors, the one or more processors: deriving a first video frame from the reference video based on a design file including one or more personalization elements; applying personalization data to the first video frame within a bounding box personalization element included in the design file to generate a first output image; extracting a second video frame from the reference video; comparing pixels in the second video frame associated with pixels in a bounding box in the first video frame; applying the personalization data to the second video frame to generate a second output image that excludes personalization data at pixels in the second video frame that are determined to be different from pixels in the first video frame; A system that generates a video file that includes the first output image and the second output image.
7. 7. The system of claim 6, wherein the one or more processors generating the second output image further comprises applying a first mask to the second video frame to determine the pixels in the second video frame to be included in the second output image.
8. 8. The system of claim 7, wherein the one or more processors generating the second output image further comprises comparing the first mask to a second mask applied to the first video frame.
9. 9. The system of claim 8, wherein the one or more processors generating the second output image further comprises removing from the second output image differences between the personalization data in the second video frame and the personalization data in the first video frame that exceed a mask difference threshold.
10. 10. The system of claim 9, wherein the one or more processors generating the second output image further comprises applying anti-aliasing to edges of the first mask.
11. A processing system including one or more processors, the one or more processors: deriving a first video frame from the reference video based on a design file including one or more personalization elements; locating a landmark area at a first location within the first video frame; applying personalization data within a bounding box personalization element included in the design file at a first location in the first video frame to generate a first output image; extracting a second video frame from the reference video; adjusting a position of the bounding box personalization element in the second video frame to a second position based on a position of the landmark area in the second video frame; applying the personalization data in the bounding box personalization element at the second location in the second video frame to generate a second output image; A system that generates a video file that includes the first output image and the second output image.
12. The system of claim 11 , wherein the one or more processors locating the landmark area includes finding a reference frame within the first video frame.
13. The system of claim 12 , wherein the reference frame comprises a set of pixels that are most different from their surrounding pixels in the first video frame.
14. The system of claim 12 , wherein the location of the landmark area is different in the second video frame than in the first video frame.
15. 12. The system of claim 11, wherein the position of the bounding box personalization element in the second video frame is adjusted to a distance and direction from the bounding box personalization element in the first video frame based on a distance and direction a reference frame is displaced from the first video frame to the second video frame.
Citation Information
Patent Citations
System and method for real-time insertion into video using adaptive occlusion using synthetic reference image
JP1999507797A
Image insertion into video streams using a combination of physical sensors and pattern recognition
JP2001506819A
Image processor, image processing method, and program
JP2014016623A
Product placement in content
US8949889B1