Method and system for client device transformation of static images to be delivered via a distributed computer network
By rendering static images on end-user computing devices to generate animation images, the problems of data usage and computing device response time required for animation image transmission are solved, and efficient animation image rendering and transmission are achieved.
Patent Information
- Application Number
- CN201980101876.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-10-31
- Publication Date
- 2025-06-24
- Estimated Expiration
- 2039-10-31
AI Technical Summary
The prior art consumes a large amount of data usage when transmitting animation images, resulting in wasted transmission channel capacity and extended response time of computing equipment, and lacks effective solutions to reduce data transmission requirements and improve rendering efficiency.
By providing device-independent content on the end-user computing device, the computing device is enabled to receive a static image and render an animated image on the display device based on the static image. The specific implementation includes an image rendering command generator and a multimedia content wrapper, generating image rendering commands and packaging static images with these commands into multimedia content packages, and transmitting them to a computing device.
It significantly reduces the data usage rate required for animation image transmission and the response time of computing devices, improves the efficiency of animation image rendering, and maintains the high-quality display effect of animation images.
Smart Images

Figure CN114616593B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a method, system, and computer program for processing static images and rendering animated image transformations on a computing device. Background Art
[0002] In a computer networking environment such as the Internet, content providers supply content items for display on end-user computing devices. These content items can include logos, images, text, video, or audio content. The content items can be linked to web pages associated with the content providers.
[0003] Often, these content items can include content that can be displayed as animated images on end-user computing devices. However, the transmission of animated images may require significant data usage, which can consume valuable transmission channel capacity and slow down the operation of the receiving-end user computing device.
[0004] When compared with the prior art transmission systems and methods for delivering animated images to end-user computing devices, there is an unmet need for a technical solution that can facilitate the rendering of animated images on end-user computing devices while significantly reducing transmission channel usage and computing device response time. Summary of the Invention
[0005] The present disclosure provides a technical solution that meets the above unmet need. The technical solution can provide device-independent content to an end-user computing device such that each computing device can receive a static image and render an animated image on a display device based on the static image.
[0006] According to one aspect of the present disclosure, the technical solution includes a system for enabling an end-user computing device to render a motion image on a display device. The system includes: an image rendering command generator arranged to provide image rendering commands that can be executed by a web browser of the end-user computing device to cause the end-user computing device to render the motion image on a frame-by-frame basis from the static image by slicing a still image in multimedia content into a plurality of pixel rows or columns and modifying a subset of the plurality of pixel rows or columns between frames; and a multimedia content wrapper arranged to assemble a multimedia content package including the multimedia content and the image rendering commands, wherein the multimedia content includes the still image.
[0007] The system may further include a transmitter arranged to send the multimedia content package to the end-user computing device via a communication link.
[0008] Modifying the subset of the plurality of pixel rows or columns may include shifting the position of at least one pixel row or column relative to at least one additional pixel row or column in the frame.
[0009] The image rendering command may be arranged such that, when executed by the web browser, the end-user computing device loads the still image into a memory cache in the end-user computing device.
[0010] The image rendering command may be arranged such that, when executed by the web browser, the end-user computing device slices the still image into the plurality of pixel rows or columns.
[0011] The plurality of pixel rows or columns may include a plurality of pixel data rows and / or a plurality of pixel data columns.
[0012] Modifying the subset of the plurality of pixel rows or columns may include transforming the subset of the plurality of pixel rows or columns to shift, move, compress, or expand relative to each other.
[0013] The image rendering command may be arranged such that, when executed by the web browser, the end-user computing device generates a frame of the moving image based on the modified subset of the plurality of pixel rows or columns.
[0014] The image rendering command may be arranged such that, when executed by the web browser, the end-user computing device renders and displays a sequence of frames of the moving image on the end-user computing device based on the modified subset of the plurality of pixel rows or columns.
[0015] The image rendering command may be arranged such that, when executed by the web browser, the end-user computing device renders and displays a plurality of frames of the moving image on a frame-by-frame basis of the product.
[0016] The image rendering command may include JavaScript embedded in an HTML document that, when executed by a JavaScript engine in the web browser, renders a sequence of frames of the moving image from the still image.
[0017] According to another aspect of the present disclosure, the technical solution includes a computer-readable medium that contains computer-executable instructions which, when executed by a hardware processor of a first computing device, cause the processor to perform the following method for transmitting multimedia content having a still image to a final user computing device to render the still image as a moving image on a display device. The method may include: providing an image rendering command that can be executed by a web browser of the final user computing device to cause the final user computing device to render the moving image on a frame-by-frame basis from the still image by slicing the still image in the multimedia content into multiple pixel rows or columns and modifying a subset of the multiple pixel rows or columns between frames; and packaging the multimedia content and the image rendering command in a multimedia content package, wherein the multimedia content includes the still image.
[0018] Additional features, advantages, and embodiments of the present disclosure may be set forth or apparent from consideration of the specification including the detailed description, claims, and drawings. The summary of the present disclosure and the following detailed description and drawings may provide examples intended to provide further illustration without limiting the scope of the present disclosure as claimed. BRIEF DESCRIPTION OF THE DRAWINGS
[0019] The drawings, which are included to provide a further understanding of the present disclosure, are incorporated in and constitute a part of this specification, illustrate embodiments of the present disclosure, and together with the detailed description are used to explain the principles of the present disclosure. The structural details of the present disclosure are not shown in more detail than is necessary for a basic understanding of the various ways in which the present disclosure may be and can be practiced.
[0020] Figure 1 An example of an environment including a multimedia communication system constructed in accordance with the principles of the present disclosure is depicted.
[0021] Figure 2 A non-limiting embodiment of a multimedia content system constructed in accordance with the principles of the present disclosure is depicted.
[0022] Figure 3A and Figure 3B An example of a breathing effect of an article that can be rendered on a display screen of a final user computing device is depicted.
[0023] Figure 4 An example of a psychedelic effect of an article that can be rendered on a display screen of a final user computing device is depicted.
[0024] Figures 5 to 12 An example of a wave effect of an article that can be rendered on a display screen of a final user computing device is depicted.
[0025] Figure 13 depicts an example of an image rendering process in accordance with the principles of the present disclosure.
[0026] Figure 14 shows an example of an animation or moving image rendering process that can be performed at steps in the rendering process shown in Figure 13 the rendering process shown.
[0027] The present disclosure is further described in the following detailed description. Detailed Description
[0028] The present disclosure and various features and advantageous details are more fully illustrated by reference to non - limiting embodiments and examples described or illustrated in the accompanying drawings and detailed in the following description. It should be noted that the features illustrated in the drawings are not necessarily drawn to scale, and the features of one embodiment can be employed with other embodiments even if not explicitly stated. Descriptions of well - known components and processing techniques may be omitted so as not to unnecessarily obscure the embodiments of the present disclosure. The examples are merely intended to facilitate an understanding of the ways in which the present disclosure can be practiced and further enable those skilled in the art to practice the embodiments of the present disclosure. Therefore, the examples and embodiments should not be construed as limiting the scope of the present disclosure. Additionally, it should be noted that like reference numerals represent like parts throughout the several views of the drawings.
[0029] The Internet is a network of networks that hosts a vast amount of information resources and services on a global system of interconnected computer networks that use the Internet Protocol Suite (TCP / IP) to link computing devices worldwide. Information resources typically include the World Wide Web (WWW), email, telephony, and mutually - linked hypertext documents and applications for file sharing. Hypertext is one of the key fundamental concepts of the WWW, where web pages are often written in Hypertext Markup Language (HTML). Hypertext documents can be static or dynamic. Static documents are typically prepared and stored in advance, while dynamic documents typically change continuously, for example, in response to user input.
[0030] Client - side computing devices such as EUC device 40 (shown in Figure 1 and discussed below) typically use a web browser that includes a Web API to access information resources on the Internet. An Application Programming Interface (API) is a collection of subroutine definitions, protocols, and tools for building software and applications; and, a Web API is an API that can be accessed and interacted with using HTTP commands. The HTTP protocol defines what actions a client - side web browser should take on a computing device in response to various commands.
[0031] When a computing device, such as EUC device 40, accesses or otherwise accesses a website or web page, the device's web browser is capable of retrieving the web page from the web server hosting the website or web page. To graphically display the web page, the web browser may need to access multiple web resource elements, such as style sheets, scripts, and images, while rendering each web page. Typically, latency is not an issue, but it can become problematic when the web page includes moving images, such as, for example, streaming video. Since moving images typically require the transfer of many image data frames to the computing device, latency can become noticeable, especially in cases of low or intermittent signal strength.
[0032] The present disclosure provides a technical solution that can significantly reduce latency when displaying moving images while simultaneously reducing data traffic transmission and bandwidth requirements. The technical solution provides a system, method, and computer program for rendering moving images on a client-side computing device with very low data consumption and fast transfer rates compared to state-of-the-art technologies. The technical solution may include a client-side web browser that is capable of accessing, downloading, and processing static image data and then generating and rendering moving images frame by frame based on the static image data. The technical solution is capable of rendering moving images based on static image data when the computing device is offline.
[0033] Figure 1 FIG. 1 is a block diagram depicting an implementation of a multimedia communication (MC) system 10 in a communication environment 1. The communication environment 1 may include a network 20, a content providing computing (CPC) device 30, and multiple end user computing (EUC) devices 40. Components in the communication environment 1 are each capable of transmitting or receiving data traffic via a link 5.
[0034] The MC system 10 may include at least one server. For example, the MC system 10 may include multiple servers located in at least one data center or server farm. The MC system 10 may include one or more web servers.
[0035] The MC system 10 can be configured to provide multimedia content to the EUC device 40. The MC system 10 is capable of receiving multimedia content from the CPC device 30 and modifying the multimedia content to include image rendering commands for rendering static or moving image content in the multimedia content. Alternatively, the MC system 10 is capable of receiving or generating multimedia content locally and including image rendering commands, or modifying the multimedia content to include image rendering commands. The MC system 10 is capable of transmitting the multimedia content including the image rendering commands to the EUC device 40 via, for example, the network 20 and the communication link 5. The multimedia content can be provided in a web page, which can include static or moving image data that can be rendered as moving images on the EUC device 40 based on associated image rendering commands included in the multimedia content. For example, the multimedia content can include an HTML document assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScript. The image rendering commands can include JavaScript, which can be embedded in the HTML document to affect the behavior and content of the web page when the web page is rendered on the EUC device 40.
[0036] The MC system 10 can include one or more web servers (not shown) that can be accessed by the EUC device 40 via a client-side web browser. The web server (not shown) can be located locally within the MC system 10 or, for example, remotely within the network 20. The web server (not shown) is capable of hosting multiple websites, each of which can include multimedia content that can be accessed and rendered by the EUC device 40.
[0037] Alternatively, the multimedia content can be hosted by the CPC device 30 and accessed by the EUC device 40. The CPC device 30 can include one or more web servers (not shown) that can host a website containing the multimedia content.
[0038] The multimedia content can include primary content provided by the CPC device 30 or any other source (not shown). The CPC device 30 can be operated by a content provider or a publishing content provider. The primary content can include, for example, a web page or website, a result page or landing page of a search operator, a movie, a video, a television program or show, a photo, social media content, or any other visually perceivable content.
[0039] The CPC device 30 (or the MC system 10) can operate the website of the publishing content provider and can provide the primary content in, for example, one or more HTML documents for rendering and display as a web page. The web page can include content slots that can be configured to combine and display artifacts or content artifacts associated with the multimedia content.
[0040] The multimedia content may include static or moving image content provided by the CPC device 30 or any other source (not shown). The static image content may include static images of articles such as, for example, objects, people, animals, or any other visually perceivable thing. The static image content may include content artifacts such as, for example, source identifiers of the article or the content source provider. The content artifacts may include names, brands, trademarks, logos, images, or any other visually perceivable information capable of identifying the article or the content provider. The static image content may include static images of one or both of the article and the content artifacts. Figure 3A and Figure 3B A non-limiting example of an article 210 is shown, which may be rendered to display content artifacts such as, for example, a trademark (not shown) on the article 210.
[0041] The MC system 10 may insert, combine, or overlay static or moving image content within or on the primary content. For example, the MC system 10 may insert or overlay static or moving image content in one or more content insertion slots within the primary content, e.g., by inserting a static image of an article or a content artifact into a displayable portion of the primary content such that the static image content is rendered and displayed by the EUC device 40 together with the primary content. For example, the EUC device 40 may access a web page via a web browser and render the primary content within the web page, while rendering and displaying a moving image within, combined with, or overlaid on the primary content, where the moving image content can be rendered by the web browser on the EUC device 40 based on static image content data and image rendering commands received from the MC system 10 (or the CPC device 30). The primary content can be rendered by the EUC device 40 as, for example, a web page, a search results page, or a landing page. As previously noted, the multimedia content (including the primary content and the static image content) may include HTML documents that may include embedded CSS and JavaScript code to cause the EUC device 40 to render the primary content and the static image content on the display of the EUC device 40 when executed by the web browser, and to render an animation or a moving image on a frame-by-frame basis from the still images contained in the static image content.
[0042] Content slots for static or moving image content can be defined by the MC system 10, including the width, height, aspect ratio, shape, or position of the content slot on a display area such as a web page. The MC system 10 can provide image rendering commands that can include data and instructions defining the content slot and how it appears with or within the main content, including the width (or range of widths), height (or range of heights), shape (or range of shapes), or position (or range of positions) of the content slot and the manner in which an artifact or content artifact can be displayed with, within, or on top of the main content on a display screen.
[0043] Alternatively, the content slot can include a static or moving image within the main content. The static image can be selected by the MC system 10 along with the generated image rendering commands, where the generated image rendering commands define how the static image will be processed and rendered into an animation or moving image by a client-side web browser at the EUC device 40.
[0044] The CPC device 30 (or the MC system 10) can include a computing device of a search engine operator that operates a search engine website. The main content of the search engine website, such as, for example, a search results web page or a landing page, can include the results of a search, or the landing page can be displayed with static or moving image content. The static or moving image content can be rendered either separately or together with the main content, such as, for example, in a content slot on a search results web page or a landing page.
[0045] The EUC device 40 can include a display device. The EUC device 40 can be configured to communicate via the network 20 and, by executing the image rendering commands in a web browser, render and display frames of a moving image on a frame-by-frame basis and in real time based on the static image content in the received multimedia content. The EUC device 40 can interface with an end user to submit a request to receive multimedia content. The request can be a request for a search engine and the request can include a search query. The request can include a request to access a web page or website.
[0046] The EUC device 40 is capable of rendering and displaying main content or still image content received via the network 20. The EUC device 40 is capable of displaying the main content or still image content on a display screen. The still image content can be dynamic and automatically adjusted in terms of its position, layout, shape, size, texture, or any other visually perceivable characteristic on the display device of the EUC device 40 (e.g., based on a received image rendering command). The static or moving image content can be adjusted over time based on an image rendering command in the multimedia content. The image rendering command can be parsed from the multimedia content and processed locally at the EUC device 40 by, for example, a web browser. The image rendering command can include the following data or instructions (e.g., JavaScript) for generating / rendering an animation or moving image from a still image on a frame-by-frame basis and instantaneously based on the still image content on the EUC device 40.
[0047] The image rendering command can include markup language annotations for identifying the content and creating or modifying images, links, sounds, or other objects. The markup language annotations can include multiple tags for displaying static or moving image content such as, for example, Figures 3A to 12 as shown. The markup language can include, for example, one or more of the following: Standard Generalized Markup Language (SGML), Scalable Vector Graphics (SVG), Hypertext Markup Language (HTML), Extensible Markup Language (XHTML or XML), XML User Interface Language (XUL), LaTeX, or any other markup language that can be used by a web browser to render a still image as a moving image on the EUC device 40. The markup language annotations can be executed by, for example, a web browser running on the EUC device 40 to render an animated image from the still image content on its display device.
[0048] The rendering command can include style sheet language annotations for providing rules for styles and for describing the presentation of the still image content with the markup language annotations. The style sheet language annotations can include, for example, colors, fonts, layouts, or other style characteristics. The style sheet language can include, for example, one or more of the following: Cascading Style Sheets (CSS), Document Style Semantics and Specification Language (DSSSL), or Extensible Style Sheet Language (XSL). The style sheet language annotations can be provided as a style sheet language file. Alternatively, the style sheet language annotations can be incorporated into a file containing the markup language annotations.
[0049] Rendering commands can include scripting language instructions for creating interactive effects related to markup language annotations or style sheet language annotations. The scripting language can include, for example, Bash (e.g., for Unix operating systems), ECMAScript (or JavaScript) (e.g., for web browsers), Visual Basic (e.g., for Microsoft applications), Lua, or Python. The scripting language instructions can include the following instructions, which when executed by, for example, a web browser on the EUC device 40, implement rendering of animations or moving images such as Figures 3A to 12 shown on the display device of the EUC device 40 based on the static image data provided in the static image content. In a non-limiting embodiment, the scripting language instructions can include the CanvasRenderingContext2d.drawImage method of the Canvas 2D API that can be included in the EUC device 40 and called to provide different ways of drawing an image onto a canvas. The scripting language instructions can be provided as a scripting language file. Alternatively, the scripting language instructions can be incorporated into a file containing markup language annotations.
[0050] The scripting language instructions can rely on a runtime environment such as a web browser in the EUC device 40 to provide objects and methods through which the script can interact with the environment, such as, for example, the web page document object model (DOM) that can work with XML or HTML documents. The scripting language instructions can also rely on the runtime environment to provide including or importing such as, for example, HTML <script>元素的脚本的能力。脚本语言指令可以包括例如JavaScript指令,这些JavaScript指令能够实现由例如JavaScript引擎一次一个地从队列对静态图像内容进行处理。例如,JavaScript能够调用与每个新的静态图像内容相关联的函数,从而用该函数的变元和局部变量来创建调用堆栈帧。调用堆栈能够基于函数的需要来收缩和增长。当调用堆栈在函数完成时为空时,JavaScript可以进行到队列中的下一个静态图像内容。
[0051] 脚本语言指令能够由EUC设备40中的web浏览器使用以将静态图像数据切片成多个像素数据行或列,相对于彼此操纵行或列中的一个或多个以在逐帧基础上即时渲染动画或运动图像,这包括例如呼吸效果(在图3A和图3B中示出)、迷幻效果(在图4中示出)、波动效果(在图5至图12中示出),或静态图像的任何其它在视觉上可感知的动画。脚本语言指令可以包括以下指令,这些指令用于通过将多媒体内容中的静止图像切片成多个像素行或列并且在帧之间修改所述多个像素行或列的子集来从该静止图像在逐帧基础上渲染运动图像。所述子集可以包括帧中的所有或不到所有像素行或列。修改行或列的子集可以包括例如使帧中的所有或不到所有像素行或列相对于彼此移位,以在逐帧基础上渲染附加帧以提供例如波动效果(在例如图5和图6中示出)。
[0052] 修改行或列的子集可以包括例如丢弃或缩放帧中的像素行或列中的一个或多个像素的像素数据以沿着行或列的长度或宽度(在例如图3A中示出)创建挤压或吸气效果,从而相对于相邻行或列缩短行或列的长度或宽度。修改行或列的子集可以包括例如对相邻像素的像素数据进行插值以在帧中的像素行或列中生成并添加一个或多个像素以创建扩张或呼气效果(在例如图3B中示出)。例如,能够计算行或列中的一对相邻像素中的每一个的亮度(或像素或颜色)值的平均数以生成能够在所述一对相邻像素之间渲染并显示的像素的像素值,从而将图像扩张例如50%。
[0053] 取决于安装在EUC设备40中的计算资源,可以在EUC设备40上打开诸如例如SMS(短消息服务)消息或电子邮件消息的消息,并且根据脚本语言指令来处理消息中的静态图像以通过从静态图像数据生成多个连续帧并且以使这些帧被感知为运动图像的帧速率(诸如例如24帧 / 秒、30帧 / 秒或60帧 / 秒)显示这些帧来渲染制品或内容人工制品的动画或运动图像。
[0054] 图像渲染命令可以包括诸如用于HTML或XML(例如,DOM5HTML)的文档对象模型(DOM),其能够创建可以用脚本语言指令修改的静态图像内容的面向对象表示。DOM可以包括用于以HTML、XHTML / XML、SGML、SVG或XUL表示对象并与之交互的跨平台或语言无关约定。
[0055] EUC设备40可以包括一个或多个用户接口设备(未示出)。一般而言,用户接口设备可以是通过生成感觉信息(例如,显示器上的可视化、一个或多个声音、触觉产品(例如,在触觉显示器上产生的盲文或振动)或者将从用户接收到的感觉信息转换成电子信号来向用户传达数据的任何电子设备(例如,键盘、鼠标、指点设备、触摸屏显示器或麦克风)。所述一个或多个用户接口设备可以在EUC设备40的外壳内部(例如,内置显示器、键盘、麦克风或触摸板)或者在外壳外部(例如,连接到EUC设备40的显示设备、相机、扬声器或麦克风)。
[0056] EUC设备40可以包括以下电子显示设备,该电子显示设备使用从诸如CPC设备30的一个或多个内容源或者经由网络20从MC系统10接收到的网页数据和指令来在视觉上显示网页。
[0057] 图2是描绘根据本公开的原理构造的MC系统10的非限制性实施例的框图。如上面指出的,MC系统10可以包括一个或多个web服务器(未示出)。MC系统10可以被配置成实现本公开的各个方面。MC系统10可以包括处理器110、存储装置120、磁盘驱动器(DD)130、网络接口140、输入 / 输出(I / O)接口150、驱动器单元160、数据库170和系统总线105。MC系统10可以包括图像渲染命令生成器180。MC系统10可以包括多媒体内容包装器190。系统总线105可以通过通信链路通信地链接到MC系统10中的组件110至190中的每一个。组件120至190中的任何一个或多个可以包括以下设备或模块,该设备或模块如图2中看到的那样与处理器110分离或者集成或能够集成在诸如处理器110的设备中。MC系统10可以包括诸如例如扬声器的声音生成装置(未示出)或诸如显示设备(未示出)的视频生成装置。
[0058] MC系统10还可以包括一个或多个高速接口(未示出)、高速扩展端口(未示出)、低速接口(未示出)或大容量存储设备(未示出),它们可以使用各种总线来互连,并且可以被安装在公共母板上或者视情况以其它方式安装。
[0059] 系统总线105可以包括若干类型的总线结构中的任一种,这些总线结构可以使用各种可商购的总线架构中的任一种进一步互连到存储器总线(具有或不具有存储器控制器)、外围总线和局部总线。系统总线105可以包括主干网。
[0060] 处理器110可以包括各种可商购的图形处理单元设备中的任一种。可以在处理器110中包括双微处理器和其它多处理器架构。处理器110可以包括中央处理单元(CPU)或图形处理单元(GPU)。处理器110包括计算设备。
[0061] 处理器110能够处理用于在MC系统10内执行的指令,包括存储在存储装置120中的指令。处理器110能够处理指令以在外部输入 / 输出设备(诸如耦合到I / O接口150或高速接口(未示出)的显示设备)上显示用于图形用户接口(GUI)的图形信息。在其它实现方式中,可以视情况使用多个处理器和 / 或多个总线以及多个存储器和多种类型的存储器。
[0062] MC系统10可以包括计算机可读介质,该计算机可读介质能够保持可执行或可解释计算机代码(或指令),当由MC系统10中的处理器110或一个或多个组件(例如,设备或模块)执行时,这些可执行或可解释计算机代码(或指令)使本公开中的步骤、过程和方法得以执行。计算机可读介质可以设置在存储装置120或DD 130中。计算机可读介质可以包括计算机代码或指令的部分,当被执行时,这些部分使MC系统10或EUC设备40执行过程300(在图13或14中示出)以及本公开中描述或设想的所有其它过程步骤。
[0063] 存储装置120可以包括只读存储器(ROM)120A和随机存取存储器(RAM)120B。基本输入 / 输出系统(BIOS)可以被存储在非易失性存储器120A中,该非易失性存储器120A可以包括例如ROM、EPROM或EEPROM。BIOS能够包含帮助例如在启动期间在MC系统10中的组件之间转移信息的基本例程。RAM 120B可以包括高速RAM,诸如用于缓存数据的静态RAM。
[0064] DD 130可以包括硬盘驱动器(HDD)130A和光盘驱动器(ODD)130B。HDD 130A可以包括例如增强型集成驱动电子(EIDE)驱动器、串行高级技术附件(SATA)驱动器或任何其它硬盘驱动器设备;并且,ODD 130B可以包括例如从CD-ROM盘(未示出)读取 / 向CD-ROM盘(未示出)写入,或者,从诸如数字通用盘(DVD)的其它高容量光学介质读取或者向诸如数字通用盘(DVD)的其它高容量光学介质写入。HDD 130A可以被配置以用于在合适的机箱(未显示)中外部使用。DD 130可以分别通过硬盘驱动器接口(未示出)和光驱接口(未示出)连接到系统总线105。硬盘驱动器接口(未示出)可以包括通用串行总线(USB)(未示出)、IEEE 1394接口(未示出)或用于外部应用的任何其它合适的接口。
[0065] 包括计算机可读介质的存储装置120或DD 130能够提供对于数据、数据结构和计算机可执行指令的非易失性存储。存储装置120或DD 130能够以合适的数字格式容纳任何数据的存储。存储装置120或DD 130可以包括用于执行本文描述的架构的各方面的一个或多个应用程序。存储装置120或DD 130可以包括例如闪速存储器或NVRAM存储器。
[0066] 能够在存储装置120或DD 130中存储一个或多个程序模块,该一个或多个程序模块包括操作系统(未示出)、一个或多个应用程序(未示出)、一个或多个API和程序数据(未示出)。API可以包括例如Web API、简单对象访问协议(SOAP)API、远程过程调用(RPC)API、表示状态转移(REST)API或其它实用程序和服务API。操作系统、应用程序、程序模块和程序数据中的任何(或全部)能够作为计算机代码的可执行部分被缓存在RAM 120B中。
[0067] 网络接口140可以连接到诸如网络20(在图1中示出)的网络。网络接口140可以经由网络20和 / 或通信链路5连接到CPC设备30(在图1中示出)或者连接到一个或多个EUC设备40(在图1中示出)。网络接口140可以包括有线或无线通信网络接口(未示出)或调制解调器(未示出)。当用在局域网(LAN)中时,MC系统10可以通过有线或无线通信网络接口连接到局域网;以及,当用在广域网(WAN)中时,MC系统10可以通过调制解调器连接到WAN网络。网络20(在图1中示出)可以包括LAN、WAN、因特网或任何其它网络。调制解调器(未显示)可以是内部的或外部的和有线的或无线的。调制解调器可以经由例如串行端口接口(未示出)连接到系统总线105。
[0068] (I / O)接口150可以从操作者接收命令和数据。I / O接口150可以通信地耦合到一个或多个输入 / 输出设备(未示出),包括例如键盘(未示出)、鼠标(未示出)、指针(未示出)、麦克风(未示出)、扬声器(未示出)或显示器(未示出)。可以经由总线105将所接收到的命令和数据作为指令和数据信号从I / O接口150转发到MC系统10中的任何组件。
[0069] 驱动器单元160可以包括音频驱动器160A和视频驱动器160B。音频驱动器160A可以包括声卡、声音驱动器(未示出)、交互式语音响应(IVR)单元,或在声音产生设备(未示出)上渲染声音信号所必需的任何其它设备,诸如例如扬声器(未示出)。视频驱动器160B可以包括视频卡(未示出)、图形驱动器(未示出)、视频适配器(未示出),或在显示设备(未示出)上渲染图像信号所必需的任何其它设备。
[0070] 图像渲染命令(IRC)生成器180可以包括计算设备或模块,或者它可以被包括在计算设备或模块中。IRC生成器180可以包括一个或多个平台中立或平台无关API。IRC生成器180可以包括一个或多个图像渲染应用程序或API。图像渲染应用程序或API可以包括可能特定于EUC设备40(在图1中示出)中使用的计算资源的数据或指令。例如,数据或指令可以特定于计算资源,诸如例如使用JavaScript的web浏览器。图像渲染应用程序可以包括由发布内容提供者经由例如CPC设备30(在图1中示出)提供的数据或指令,或确保在EUC设备40上适当地显示和渲染动画图像的任何其它数据或指令。
[0071] IRC生成器180可以包括用于诸如例如SGML、SVG、HTML、XHTML / XML、XUL或LaTeX的标记语言的API。IRC生成器180可以包括图像渲染API,诸如例如CanvasAPI,该CanvasAPI包括CanvasRenderingContext2D接口从而为HTML画布元素的绘图表面或图像提供二维(2D)渲染内容,这可以允许实现2D形状和位图图像的动态可编写脚本的渲染。
[0072] 在非限制性实施例中,IRC生成器180能够对于静态图像内容的2D渲染上下文使用Canvas API中的CanvasRenderingContext2D接口来生成图像渲染命令。在此实施例中,可以将静态图像内容标识为HTML中的<canvas>元素。静态图像内容可以包括例如可缩放矢量图形(SVG)、便携式网络图形(PNG)、联合图片专家组(JPEG)、图形交换格式(GIF)、HTML5Canvas或任何其它合适的图像格式。
[0073] 图像渲染命令可以包括例如HTML、CSS和JavaScript指令和数据,它们可以被嵌入在例如包含多媒体内容的一个或多个HTML文档中。图像渲染命令能够由EUC设备40上的客户端侧Web API(诸如例如画布脚本API、JavaScript API或WebGL API)使用以基于静态图像内容渲染图形或动画。图像渲染命令可以包括用于静态图像内容(CanvasImageSource)的参数,诸如例如CSSImageValue、HTMLImageElement、SVGImageElement、HTMLVideoElement、HTMLCanvasElement、ImageBitmap或OffscreenCanvas。参数可以包括表示将在EUC设备40上渲染静态图像内容的显示屏幕的x-y平面中的x坐标或y坐标、表示静态图像内容的宽度的宽度w、以及表示静态图像内容的高度的高度h。参数可以作为时间的函数而变化,使得定义经渲染的图像的参数能够使经渲染的图像在EUC设备40的显示屏幕上的形状、大小或位置方面发生变化。
[0074] IRC生成器180可以包括用于诸如例如CSS、DSSSL或XSL的样式表语言的API。IRC生成器180可以包括Web API、操作系统API、数据库系统API、计算机硬件API或库API。IRC生成器180可以包括例如可在<<https: / / developers.google.com>>处获得的API中的一个或多个。IRC生成器180可以包括将网页连接到脚本或编程语言的一个或多个API,包括将(例如,SGML、SVG、HTML、XHTML / XML或XUL)文档建模为对象。
[0075] IRC生成器180可以包括诸如用于HTML或XML的文档对象模型(DOM)API,其能够创建可以用多媒体内容包装器190中的脚本模块来修改的网页的面向对象表示。DOM可以包括用于以HTML、XHTML / XML、SGML、SVG或XUL中的一种或多种来表示对象并与之交互的跨平台或语言无关约定。
[0076] IRC生成器180可以包括能够提供可以使任务的执行自动化的特殊运行时环境的脚本模块。该脚本模块可以包括能够从域特定语言到通用语言的一种或多种脚本语言,诸如例如Bash(例如,用于Unix操作系统)、ECMAScript(或JavaScript)(例如,用于Web浏览器)、Visual Basic(例如,用于Microsoft应用程序)、Lua或Python。IRC生成器180可以包括在例如<<https: / / developers.google.com / apps-script / >>处找到的脚本模块中的一个或多个。
[0077] 渲染脚本可以被包括在由IRC生成器180生成的图像渲染命令中并且与相关联的静态图像内容一起从MC系统10(或CPC设备30,在图1中示出)下载到EUC设备40,在该EUC设备处它能够由计算资源(诸如例如web浏览器)处理以在EUC设备40上渲染运动图像。静态图像内容可以被包括在在EUC设备40上被访问和渲染的网页中。
[0078] 渲染脚本可以被配置成使EUC设备40在由EUC设备40加载网页之后,在EUC设备40上诸如例如在逐帧基础上渲染静态图像的动画或运动图像。网页和图像渲染命令能够由EUC设备40从MC系统10接收。可以将图像渲染命令嵌入在网页中。当由客户端侧web浏览器调用时,图像渲染命令能够使EUC设备40基于静态图像内容来渲染运动图像。图像渲染命令可以被配置成使EUC设备40在其显示屏幕上适当地渲染静态图像内容的动画或运动图像。
[0079] 图像渲染命令可以包括计算机可执行代码或指令或指令集,当由EUC设备40中诸如web浏览器的计算资源执行时,这些计算机可执行代码或指令或指令集使EUC设备40以不同大小、形状、颜色、纹理、位置或布局基于静态图像数据渲染一个或多个动画图像。图像渲染命令能够定义如何随着时间的推移而修改静态图像内容以在EUC设备40上渲染动画或运动图像,包括例如基于单个静止图像帧的逐帧动画。
[0080] 在HTML5的情况下,图像渲染命令可以包括以下各项中的一个或多个:视频标签(例如,用于在所显示的屏幕中嵌入视频并且如何播放它的指令)、源标签(例如,与音频或视频一起使用以标识音频或视频的源)、嵌入标签(例如,用于为可能在其它媒体元素内缺少支持的内容嵌入指定媒体类型的指令)、画布标签(例如,用于留出显示屏幕的部分的指令)或svg标签(例如,用于嵌入用SVG标记语言编码的矢量图形以允许将图形动态缩放到显示屏幕的区域和形状而不丢失任何图形质量的指令)。在HTML文档中,能够创建img元素来用作用于静止图像的容器,其中所述静止图像将被渲染为动画或运动图像。在渲染动画或运动图像时,可能变得有必要在逐帧动画渲染中用下一个图像帧替换现有图像帧以便创建移动的视觉感知。这可以在HTML中使用例如setTimeout、requestAnimationFrame或任何其它合适的指令来完成。如本领域的技术人员将理解的,图像渲染命令可以包括其它标签,当被例如样式表语言引用时,这些其它标签使EUC设备40在有或没有主要内容的情况下渲染动画图像,以具有对特定EUC设备40来说最佳的位置、布局、大小、形状、颜色、纹理或特殊效果。
[0081] 例如,使用HTML5中的画布标签,EUC设备40上的显示屏幕的一部分可以被作为目标用于动画或运动图像(或新画布窗口)的渲染以进行动画或运动图像的插入,包括可能从显示屏幕的左上拐角起测量的画布的高度和宽度。画布窗口可以被布置成与静态图像内容的大小匹配。可以调用函数来将动画图像显示在EUC设备40显示屏幕上的新画布窗口中。
[0082] 根据技术解决方案的实现方式,在EUC设备40处接收到多媒体内容时,图像渲染命令可以从多媒体内容中解析并调用(例如,由web浏览器中的JavaScript引擎调用)以使EUC设备40将相关联的静态图像内容加载到高速缓存存储器中,将图像切片成多个像素行或列,对这些像素进行变换并且生成复合渲染。
[0083] 多媒体内容(MC)包装器190可以包括计算设备或模块,或者它可以被包括在计算设备或模块中。MC包装器190可以被配置成从IRC生成器180接收用于相关联的静态图像内容的图像渲染命令并且将这些图像渲染命令与静态图像内容一起组合成能够被传送到EUC设备40的多媒体内容包。MC包装器190还可以接收主要内容并且将该内容包括在多媒体内容包中。MC包装器190可以构建例如HTML文档并且在HTML文档中嵌入多媒体内容,包括主要内容、静态内容或图像渲染命令。MC包装器190可以在网页中嵌入静态图像内容(包括图像渲染命令),或者将静态图像内容作为辅助数据或指令来提供。MC包装器190能够将多媒体内容组装成多个数据包以供传输到EUC设备40。
[0084] 可以通过网络20(在图1中示出)将多媒体内容包传送到EUC设备40,其中能够解析包并且分离静态图像内容和相关联的图像渲染命令以及主要内容,如果被包括在多媒体内容包中的话。EUC设备40中诸如运行时环境(例如,web浏览器)的计算资源能够使包括网页数据和指令(例如,web页面代码)的网页由EUC设备40(在图1中示出)渲染,并且可以调用诸如JavaScript的渲染脚本来基于静态图像内容和相关联的图像渲染命令在逐帧基础上且即时地渲染动画或运动图像。
[0085] 当在EUC设备40上运行的web浏览器修改属性值时,匹配准则可以改变,这进而可以触发在<content>HTML元素处正在被渲染的内容的改变。EUC设备40能够基于单个静止帧来渲染逐帧动画或运动图像。可以操纵、修改和增强web应用程序的用户接口和用户接口的组件,而不需要改变web应用程序模型的文档标记的基本代码。
[0086] 数据库170能够存储由多媒体内容包装器190创建的多媒体内容,包括静态图像内容和相关联的图像渲染命令。多媒体内容可以作为多媒体文件被存储并且与CPC设备30或多媒体内容提供者相关联。
[0087] CPC设备30(或MC系统10)可以包括图形用户接口(GUI),该图形用户接口能够显示用于键入或上传静态图像内容的一个或多个字段。该一个或多个字段可以被配置成接收用于静态图像内容的图像渲染命令。图像渲染命令能够由用户通过用户接口或由CPC设备30或MC系统10自主地键入到字段中。所键入的图像渲染命令可以包括例如与用于静态图像内容的位置、布局、形状、大小、颜色、纹理或特殊效果相关的一个或多个指令。图像渲染命令能够定义将在EUC设备40上渲染静态图像内容的内容、地点、时间和方式,包括位置、布局、形状、大小、颜色、纹理或特殊效果,该特殊效果可以包括例如呼吸效果(在图3A和图3B中示出)、迷幻效果(在图4中示出)、波动效果(在图5至图12中示出),或静态图像内容的任何其它在视觉上可感知的动画。
[0088] 图3A和图3B示出了可以在EUC设备40的显示屏幕上渲染的制品210的呼吸效果的示例。制品210可以最初以其原始静态图像形式渲染,如最左帧210中看到的。可以将图像像素水平地切片成像素的多个行230,并且可以对像素进行变换,使得可以将制品210渲染为随着时间的推移向内收缩(或呼吸),从而渲染图像帧220的序列(例如,三个图像帧),该图像帧220的序列示出制品210从其最左图像帧220所示的形式收缩到中间图像帧220所示的形式、然后再到最右图像帧220所示的形式。
[0089] 例如,在图3A和图3B所示的非限制性示例中,某些行中的像素数据可以被丢弃、插值或以其它方式修改以与相邻行相比减小这些行的宽度,从而渲染具有这样的图像的图像帧,该图像看起来对于更靠近制品210的中间定位的行来说,其与从该行向上更高或向下更低的行相比似乎被愈加挤压或压缩。这被图示在三个渲染的图像帧220中,其中像素的行在宽度上减小,使得制品210在从最左帧220移动到最右帧220时被感知为吸气,或者在从最右帧220移动到最左帧220时被感知为呼气。
[0090] 在到达完全收缩位置(例如,最右图像帧220)时,制品210然后可以被渲染为向外扩张(呼吸),其中制品210被以从最右图像帧220起通过中间图像帧220到最左图像帧220示出的形式渲染。可以重复这个重复序列(吸气-呼气-吸气)持续一预定时间量,该预定时间量可以在图像渲染命令中或者由EUC设备40的用户定义。因此,在此示例中是汽水罐的制品210可以被渲染为示出制品210重复地吸气和呼气的运动图像。
[0091] 以下是可以被包括在图像渲染命令中以使EUC设备40中的web浏览器按呼吸效果渲染制品210的数据和指令的非限制性示例。如本领域的技术人员所理解的,取决于EUC设备40中的特定计算资源、静态图像内容的细节或所期望的效果,图像渲染命令可以包括与下列的完全不同的数据或指令。
[0092]
[0093]
[0094]
[0095]
[0096]
[0097]
[0098]
[0099]
[0100]
[0101]
[0102]
[0103]
[0104]
[0105]
[0106]
[0107]
[0108]
[0109]
[0110] 图4示出了可以在EUC设备40的显示屏幕上渲染的制品210的迷幻效果的示例。制品210可以最初以其原始静态图像形式渲染,如最左帧220中看到的。可以将图像像素竖直地切片成多个像素列240,并且可以对像素进行变换,使得制品210可以被渲染为随着时间的推移而扭曲,从而渲染图像帧220的序列(例如,两个图像帧),该图像帧220的序列示出制品210从其左图像帧220所示的形式变形为右图像帧220所示的形式。例如,可以使某些像素列240相对于相邻像素列240竖直地移位。在到达完全变形位置(例如,右图像帧220)时,然后可以将制品210渲染为校正到或反转到其原始形式,其中制品210被以从右图像帧220到左图像帧220示出的形式渲染。可以重复渲染的图像帧220的序列(例如,从左到右并且从右到左返回)持续一预定时间量,该预定时间量可以在图像渲染命令中或者由EUC设备40的用户定义。
[0111] 图5至图12示出了可以在EUC设备40的显示屏幕上渲染的静态图像的波动效果的各种示例。图5至图12中的每一个示出了可以从静态图像内容渲染的不同制品210。如每个图中看到的,制品210可以最初以其原始静态图像形式渲染,如最左帧220中看到的。可以将图像像素竖直地切片成多个像素列240,并且可以对像素列240进行变换,使得某些像素列相对于相邻列向上或向下移位,使得制品210可以被渲染为随着时间的推移而移位,使得当在图像帧220的序列中渲染时它看起来例如像在风中波动的旗帜。尽管这些图仅图示少量帧(例如,两个图像帧),但是应理解,可以生成许多帧(例如,数百个图像帧)来示出制品210随着时间的推移而波动。
[0112] 在图5和图6中,例如,制品210可以被感知为随着像素列240相对于彼此从左图像帧220所示的制品210的图像向上或向下移位为右图像帧220所示的形式而波动,然后移位回到其初始静态图像形式(左图像帧220)。可以重复这个重复序列(例如,向上波动-向下波动-向上波动)持续一预定时间量,该预定时间量可以在图像渲染命令中或者由EUC设备40的用户定义。
[0113] 尽管图3A至图12所示的示例被描述为包括被切片成多个像素行230或多个像素列240的制品210的静态图像,但是应注意,静态图像内容(包括制品210)可以按像素行230或像素列240或按像素行和像素列两者被切片,诸如例如在包括像素行和列的像素网格(未示出)或阵列(未示出)中被切片。
[0114] 图13示出了根据本公开的原理的图像渲染过程300的示例。过程300能够由MC系统10或CPC设备30(在图1和图2中示出)执行。过程30的一部分能够由EUC设备40(在图1中示出)执行。
[0115] 同时参考图1和图13,MC系统10可以从EUC设备40或CPC设备30接收对多媒体内容的请求(步骤305)。该请求可以作为以下请求被接收,所述请求例如是对统一资源定位符(URL)或网站地址的访问、对多媒体内容的访问、搜索查询或将多媒体内容传送到EUC设备40的指令。MC系统10能够例如基于多媒体内容或对多媒体内容的请求从数据库170(在图2中示出)或外部存储装置(未示出)中检索相关联的静态图像内容,或者MC系统10可以生成静态图像内容(步骤310)。根据非限制性实施例,可以在多媒体内容中包括或嵌入静态图像内容,在这种情况下可以在步骤310中标识并标记静态图像内容。
[0116] 可以做出静态图像内容中的静态图像是否将被渲染为动画或运动图像的确定(步骤315)。如果确定出静止图像将被渲染为动画或运动图像(在步骤315处为是(YES)),则可以检索或生成图像渲染命令(步骤320)并且包括静态图像内容和图像渲染命令的多媒体内容可以被包装(例如,由图2所示的多媒体内容包装器190包装)并且作为多媒体内容包传送到EUC设备40(步骤325)。可以从例如数据库170(在图2中示出)、CPC设备30或本地存储装置120(在图2中示出)检索图像渲染命令。可替代地,图像渲染命令能够由例如图像渲染命令生成器180(在图2中示出)生成。
[0117] 如果确定出静止图像不被渲染为动画或运动图像(在步骤315处为否(NO))而是替代地被再现为静止图像,则多媒体内容可以被包装并传送到EUC设备40(步骤325)而没有图像渲染命令。
[0118] 可以在EUC设备40处接收多媒体内容数据包(步骤330)并且从多媒体数据包中解析静态图像内容和图像渲染命令(步骤335)。可以基于图像渲染命令和根据图像渲染命令生成的动画或运动图像来处理静态图像内容(步骤340)。静态图像渲染命令可以包括例如JavaScript,当由Canvas 2D API执行时,该JavaScript使EUC设备40实现静止图像的缓存、将静止图像像素数据切片成多个行和 / 或列、修改像素的每个切片(或子集)并且从静止图像像素数据在逐帧基础上渲染运动图像的帧以显示可以被即时渲染的动画或运动图像。图像渲染命令可以包括定义图像的形状、大小、位置和修改的指令,包括例如在逐帧基础上使像素的切片相对于其它切片移位或移动以随着时间的推移而生成运动图像的感知。
[0119] 图14示出了可以在步骤340处执行的动画或运动图像渲染过程的示例。例如,动画或运动图像渲染过程能够由EUC设备40(在图1中示出)例如通过诸如包括诸如例如JavaScript API的脚本引擎的web浏览器的运行时环境来执行。
[0120] 参考图14,可以从自MC系统10接收到的多媒体内容包中解析静止图像帧数据(步骤341)并且将其加载到EUC设备40中的本地存储器高速缓存(未示出)中(步骤342)。可以从多媒体内容包中的静态图像内容中解析静止图像帧数据。
[0121] 在静止图像帧被加载到本地存储器高速缓存中之后,可以将图像像素数据划分(或"切片”)成x个水平行("切片”)(例如,在图3A和图3B中示出)和 / 或y个竖直列("切片”)(例如,在图4中示出)(步骤343),其中x是大于1的正整数并且y是大于1的正整数;x可以等于或不同于y。取决于可以包括例如呼吸效果(在图3A和图3B中示出)、迷幻效果(在图4中示出)、波动效果(在图5至图12中示出)或图像像素数据的任何其它在视觉上可感知的动画的图像渲染命令,图像帧中的每个切片可以由EUC设备40根据例如被包括在图像渲染命令中的JavaScript指令来修改(步骤344)和渲染(步骤345)。可以在EUC设备40的显示屏幕上在逐帧基础上显示运动图像的每个渲染帧(步骤346)。
[0122] 可以基于图像渲染命令做出所显示的帧是否是要在动画或运动图像渲染中显示的最后帧的确定(步骤347)。可以基于例如包括与所接收到的命令一起包括的参数来做出上述确定。可替代地,动画或运动图像可以无限重复,在这种情况下可以省略步骤346。如果确定出所显示的帧(步骤346)是要显示的最后帧(在步骤347处为是),则过程可以结束,否则(在步骤347处为否)经切片的图像帧数据可以被修改(步骤344),渲染(步骤345)并且在逐帧基础上作为运动图像的帧显示(步骤346)以生成在静态图像内容中接收到的静止图像的动画或运动图像渲染(步骤330,在图13中示出)。
[0123] 可以在数字电子电路系统、集成电路系统、专门地设计的ASIC(专用集成电路)、计算机硬件、固件、软件或它们的组合中实现本文描述的系统和技术的各种实施方式。这些各种实现方式可以包括在包括至少一个可编程计算资源的可编程系统上可执行或可解释的一个或多个计算资源中的实现方式,该至少一个可编程计算资源可以是专用或通用的,被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且向存储系统、至少一个输入设备和至少一个输出设备传送数据和指令。
[0124] 为了提供与用户的交互,可以在计算设备上实现本文描述的系统和技术,该计算设备具有用于向用户显示信息的显示设备,诸如例如CRT(阴极射线管)、LCD(液晶显示器)或LED(发光二极管)监视器,并且具有用户可以通过其向计算设备提供输入的键盘和指点设备,诸如鼠标或轨迹球。其它种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。
[0125] 可以能够在计算系统中实现这里描述的系统和技术,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用程序服务器),或者包括前端组件(例如,具有用户可以通过其与这里描述的系统和技术的实现方式交互的图形用户接口或Web浏览器的客户端计算机),或者包括此类后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。
[0126] 计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络来交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而出现。
[0127] 除非另外明确地指定明,否则如本公开中使用的术语"一”、"一个”和"该”意指"一个或多个”。
[0128] 如本公开中使用的术语"主干网”意指互连一个或多个计算设备或通信设备以提供在一个或多个计算设备或通信设备之间输送数据包和指令信号的路径的传输介质或基础设施。主干网可以包括总线或网络。主干网可以包括以太网TCP / IP。主干网可以包括分布式主干网、折叠主干网、并行主干网或串行主干网。
[0129] 如本公开中使用的术语"通信链路”意指在至少两个点之间输送数据或信息的有线和 / 或无线介质。有线或无线介质可以包括例如金属导体链路、射频(RF)通信链路、红外(IR)通信链路或光通信链路。RF通信链路可以包括例如GSM语音呼叫、SMS、EMS、MMS消息传送、CDMA、TDMA、PDC、WCDMA、CDMA2000、GPRS、WiFi、WiMAX、IEEE 802.11、DECT、0G、1G、2G、3G、4G或5G蜂窝标准或蓝牙。通信链路可以包括例如RS-232、RS-422、RS-485或任何其它合适的接口。
[0130] 如本公开中使用的术语"计算机”或"计算设备”意指任何机器、设备、电路、组件或模块,或能够根据一个或多个指令来处理数据的机器、设备、电路、组件、模块等的任何系统,诸如例如但不限于处理器、微处理器、中央处理单元、通用计算机、超级计算机、个人计算机、膝上型计算机、掌上计算机、笔记本计算机、智能电话、移动电话、平板、台式计算机、工作站计算机、服务器、服务器场、计算机云等,或处理器、微处理器、中央处理器、通用计算机、超级计算机、个人计算机、膝上型计算机、掌上计算机、笔记本计算机、台式计算机、工作站计算机或服务器的阵列。计算机或计算设备可以包括能够通过通信链路传送或接收数据包、指令信号或数据信号的硬件、固件或软件。计算机或计算设备可以是便携式的或固定的。
[0131] 如本公开中使用的术语"计算机可读介质”意指参与提供能够由计算机读取的数据(例如,指令)的任何存储介质。这样的介质可以采取许多形式,包括非易失性介质和易失性介质。非易失性介质可以包括例如光盘或磁盘和其它持久性存储器。易失性介质可以包括动态随机存取存储器(DRAM)。计算机可读介质的常见形式包括例如软盘、柔性盘、硬盘、磁带、任何其它磁性介质、CD-ROM、DVD、任何其它光学介质、穿孔卡、纸带、具有孔图案的任何其它物理介质、RAM、PROM、EPROM、FLASH-EEPROM、任何其它存储器芯片或盒、如在下文中描述的载波,或计算机能够从中读取的任何其它介质。计算机可读介质可以包括"云”,其包括跨越多个(例如,数千个)计算机上的多个(例如,数千个)存储器高速缓存的文件的分布。计算机可读介质可以包括磁盘、光盘、存储器或可编程逻辑器件(PLD)。
[0132] 各种形式的计算机可读介质可以涉及向计算机承载指令序列。例如,指令序列(i)可以从RAM递送到处理器,(ii)可以通过无线传输介质承载,并且 / 或者(iii)可以根据包括例如WiFi、WiMAX、IEEE 802.11、DECT、0G、1G、2G、3G、4G或5G蜂窝标准或蓝牙的许多格式、标准或协议被格式化。
[0133] 如本公开中使用的术语"计算资源”意指软件、软件应用程序、web应用程序、web页面、计算机应用程序、计算机程序、计算机代码、机器可执行指令或固件。计算资源可以包括用于可编程计算设备的机器指令,并且可以用高级过程或面向对象编程语言或者用汇编 / 机器语言加以实现。
[0134] 如本公开中使用的术语"内容人工制品”意指标识人、实体(例如,公司、制造商、服务提供者、分销商、供应商)、制品、产品、服务等的任何标记、符号、图像或声音或它们的任何组合,包括但不限于例如徽标、品牌、象征、标志、商标、商业外观、图像、图章或徽章。
[0135] 如本公开中使用的术语"数据库”意指软件和 / 或硬件的任何组合,包括至少一个应用程序和 / 或至少一个计算机。数据库可以包括根据诸如例如但不限于关系模型、层次模型或网络模型中的至少一个的数据库模型组织的记录或数据的结构化集合。数据库可以包括数据库管理系统应用(DBMS)。所述至少一个应用程序可以包括但不限于例如能够通过向客户端发送回响应来接受对来自客户端的服务请求的连接的应用程序。数据库可以被配置成运行所述至少一个应用程序,常常在重工作负载下、无人看管、在最少人类指导下持续延长时间段运行。
[0136] 除非另外明确地指定,否则如本公开中使用的术语"包含”、"包括”及其变化意指"包括但不限于”。
[0137] 如本公开中使用的术语"网络”意指但不限于例如以下各项中的至少一个:个域网(PAN)、局域网(LAN)、无线局域网(WLAN)、校园区域网(CAN)、城域网(MAN)、广域网(WAN)、城域网(MAN)、广域网(WAN)、全球区域网(GAN)、宽带区域网(BAN)、蜂窝网络、存储区域网(SAN)、系统区域网、无源光局域网(POLAN)、企业专用网(EPN)、虚拟专用网(VPN)、因特网等,或前述各项的任何组合,其中的任一个可以被配置成经由无线通信介质和 / 或有线通信介质传递数据。这些网络能够运行各种协议,包括但不限于例如以太网、IP、IPX、TCP、UDP、SPX、IP、IRC、HTTP、FTP、Telnet、SMTP、DNS、ARP、ICMP。
[0138] 如本公开中使用的术语"信息资源”意指但不限于使内容被显示在显示设备上或者调用函数来例如在包括主要内容或由搜索引擎提供的搜索结果登录页面的网站或网页上显示内容的计算机代码或计算机可执行指令。
[0139] 如本公开中使用的术语"服务器”意指软件和 / 或硬件的任何组合,包括至少一个应用程序和 / 或至少一个计算机,以作为客户端-服务器架构的一部分为连接的客户端执行服务。至少一个服务器应用程序可以包括但不限于例如可以通过向客户端发送回响应来接受对来自客户端的服务请求的连接的应用程序。服务器可以被配置成运行至少一个应用程序,常常在重工作负载下、无人看管、在最少人类指导下持续延长时间段运行。服务器可以包括配置的多个计算机,其中所述至少一个应用程序取决于工作负载被划分在计算机当中。例如,在轻负载下,所述至少一个应用程序可以在单个计算机上运行。然而,在重负载下,可能需要多个计算机来运行所述至少一个应用程序。服务器或其计算机中的任一个也可以被用作工作站。
[0140] 如本公开中使用的术语"传输”意指经由电、声波、光波和其它电磁发射如用射频(RF)或红外(IR)频谱中的通信生成的那些输送信号。用于此类传输的传输介质可以包括同轴电缆、铜电线和光纤,包括构成耦合到处理器的系统总线的电线。
[0141] 除非另外明确地指定,否则彼此通信的设备不需要彼此连续通信。另外,彼此通信的设备可以通过一个或多个中介直接或间接通信。
[0142] 尽管可以按顺序次序或并行次序描述过程步骤、方法步骤、算法等,但是此类过程、方法和算法可以被配置成按交替次序工作。换句话说,可以按顺序次序描述的步骤的任何序列或次序不一定指示按该次序执行步骤的要求;可以同时地执行一些步骤。类似地,如果按并行(或同时)次序描述步骤的序列或次序,则可以按顺序次序执行此类步骤。实际上可以按任何次序执行本文描述的过程、方法或算法的步骤。
[0143] 当在本文中描述单个设备或制品时,将容易地显而易见的是,可以使用不止一个设备或制品代替单个设备或制品。类似地,在本文中描述不止一个设备或制品的情况下,将容易地显而易见的是,可以使用单个设备或制品代替不止一个设备或制品。设备的功能性或特征可以替代地由未被显式地描述为具有此类功能性或特征的一个或多个其它设备来体现。
[0144] 上述主题仅通过图示来提供,而不应该被解释为限制性的。在不遵循所图示和描述的示例实施例和应用的情况下,并且在不脱离由本公开包含的本发明的真实精神和范围的情况下,可以对本文描述的主题做出各种修改和改变,本发明的真实精神和范围由所附权利要求中的叙述的集合限定并且由与这些叙述等效的结构和功能或步骤限定。< / script>
Claims
1. A system for enabling a end-user computing device to render a motion image on a display device, the system comprising: An image rendering command generator arranged to provide an image rendering command that can be executed by a web browser of the end-user computing device to cause the end-user computing device to render the motion image from the still image on a frame-by-frame basis by slicing the still image in the multimedia content into a plurality of pixel rows or columns and modifying a subset of the plurality of pixel rows or columns between frames; A multimedia content wrapper arranged to assemble a multimedia content packet including the multimedia content; A processor arranged to: Receive a content request from the end-user computing device; Obtain static image content responsive to the content request, the static image content including the still image; Determine whether the still image is to be rendered as the motion image responsive to the content request; When it is determined that the still image is to be rendered as the motion image responsive to the content request, cause the multimedia content wrapper to assemble the multimedia content packet to include the still image and the image rendering command; When it is determined that the still image is not to be rendered as the motion image responsive to the content request, cause the multimedia content wrapper to assemble the multimedia content packet to include the still image and not include the image rendering command; And In response to the content request, transmit the multimedia content packet to the end-user computing device, Wherein the image rendering command is arranged to cause the end-user computing device to load the still image into a memory cache in the end-user computing device and render the motion image on a frame-by-frame basis when executed by the web browser, and Wherein when the multimedia content packet includes the still image and does not include the image rendering command, the still image is rendered at the end-user computing device.
2. The system according to claim 1, wherein Modifying the subset of the plurality of pixel rows or columns includes shifting the position of at least one pixel row or column relative to at least one additional pixel row or column in the frame.
3. The system according to claim 1, wherein, The image rendering command is arranged to cause the end-user computing device to slice the still image into the plurality of pixel rows or columns when executed by the web browser.
4. The system according to claim 1, wherein, The plurality of pixel rows or columns includes a plurality of pixel data rows.
5. The system according to claim 1, wherein, The plurality of pixel rows or columns includes a plurality of pixel data columns.
6. The system according to claim 1, wherein Modifying the subset of the plurality of pixel rows or columns includes transforming the subset of the plurality of pixel rows or columns to shift, move, compress, or expand relative to each other.
7. The system according to claim 1, wherein The image rendering command is arranged to cause the end-user computing device to generate frames of the motion image based on the modified subset of the plurality of pixel rows or columns when executed by the web browser.
8. The system according to claim 1, wherein The image rendering command is arranged such that, when executed by the web browser, it causes the end-user computing device to render and display a sequence of frames of the moving image on the end-user computing device based on the modified subset of the plurality of pixel rows or columns.
9. The system according to claim 1, wherein The image rendering command is arranged such that, when executed by the web browser, it causes the end-user computing device to render and display multiple frames of the moving image on a frame-by-frame basis of the work in progress.
10. The system according to any one of claims 1 to 9, wherein, The image rendering command includes JavaScript embedded in an HTML document, which, when executed by a JavaScript engine in the web browser, renders a sequence of frames of the moving image from the still image.
11. A non-transitory computer-readable medium containing computer-executable instructions that, when executed by a hardware processor of a first computing device, cause the processor to perform a method for transmitting multimedia content having a still image to an end-user computing device to render the still image as a moving image on a display device, the method including: Receiving a content request from the end-user computing device; Obtaining static image content in response to the content request, the static image content including the still image; Determining whether the still image is to be rendered as the moving image in response to the content request; When it is determined that the still image is to be rendered as the moving image in response to the content request, assembling a multimedia content packet to include the still image and an image rendering command that can be executed by a web browser of the end-user computing device to cause the end-user computing device to render the moving image on a frame-by-frame basis by slicing the still image into a plurality of pixel rows or columns and modifying a subset of the plurality of pixel rows or columns between frames; When it is determined that the still image is not to be rendered as the moving image in response to the content request, assembling the multimedia content packet to include the still image and not including an image rendering command; And In response to the content request, transmitting the multimedia content packet to the end-user computing device, wherein the image rendering command is arranged to cause the end-user computing device to load the still image into a memory cache in the end-user computing device and render the moving image on a frame-by-frame basis when executed by the web browser, and wherein, when the multimedia content packet includes the still image and does not include an image rendering command, the still image is rendered at the end-user computing device.
12. The computer-readable medium according to claim 11, wherein, The image rendering command is arranged such that, when executed by the web browser, it causes the end-user computing device to slice the still image into the plurality of pixel rows or columns.
13. The computer-readable medium according to claim 11, wherein, Modifying the subset of the plurality of pixel rows or columns includes transforming the subset of the plurality of pixel rows or columns to shift, move, compress, or expand relative to each other.
14. The computer-readable medium according to claim 11, wherein, The image rendering command is arranged such that, when executed by the web browser, it causes the end-user computing device to generate a frame of the moving image based on the modified subset of the plurality of pixel rows or columns.
15. The computer-readable medium according to claim 11, wherein, The image rendering command is arranged such that, when executed by the web browser, it causes the end-user computing device to render and display a sequence of frames of the moving image on the end-user computing device based on the modified subset of the plurality of pixel rows or columns.
16. The computer-readable medium according to claim 11, wherein, The image rendering command is arranged such that, when executed by the web browser, it causes the end-user computing device to render and display a plurality of frames of the moving image on a frame-by-frame basis of the article.
17. The computer-readable medium according to any one of claims 11-16, wherein, The image rendering command includes JavaScript embedded in an HTML document, which, when executed by the JavaScript engine in the web browser, renders a sequence of frames of the moving image from the still image.
Citation Information
Patent Citations
Computer-implemented methods and systems for creating multimedia animation presentations
US20150130816A1
Method and apparatus for creating image and computer memory product
US6121977A