Method, system, and computer program for providing an animation function using a sprite JPEG
Patent Information
- Application Number
- JP2021028191
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-02-26
- Filing Date
- 2021-02-25
- Publication Date
- 2025-06-02
- Estimated Expiration
- 2041-02-25
AI Technical Summary
Existing video thumbnail formats like GIF and PNG suffer from significant compression efficiency losses and quality deterioration when used for video animation, making them unsuitable for efficient video preview applications.
Utilizing sprite JPEG images to generate animated video thumbnails by compressing video frames vertically and incorporating custom headers for animation information, allowing partial decoding and DRI headers to optimize decoding efficiency.
Provides high-quality animation effects with reduced data size, enabling simultaneous preview of multiple video thumbnails and playback on various devices, even under low network conditions.
Smart Images

Figure 00000016_0000 
Figure 00000017_0000 
Figure 00000018_0000
Abstract
Description
Technical Field
[0001] The following description relates to a technique for providing an animated image.
Background Art
[0002] With the rapid increase in the number of users of ultra-high-speed communication networks, the development of new services using communication networks and the diversification of service items have been expanding. Among such services using communication networks, the most common service can be said to be the video providing service.
[0003] For example, Patent Document 1 (registration date: April 25, 2008), "Device and Method for Providing Video Link Service", discloses a technique for providing a video link service that allows a user to view a video linked on the Internet using a mobile communication terminal while on the move.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] An object is to realize an animated thumbnail of a video using a sprite JPEG (Joint Photographic Coding Experts Group).
[0006] An object is to provide a preview function of a video by utilizing an animation effect by sprite JPEG.
Means for Solving the Problems
[0007] A method for providing an animated image, which is performed by a computer device, wherein the computer device includes at least one processor configured to execute computer-readable instructions contained in memory, and the method for providing an animated image includes the step of providing an animated thumbnail of the video by representing a sprite JPEG image generated from the video in an animated format using the at least one processor.
[0008] In one aspect, the step of providing the video may include the step of generating the sprite JPEG image by concatenating at least some of the frames of the video in a vertical direction, which is from top to bottom.
[0009] In other respects, the generation step may include compressing the portion of frames arranged in a certain number of vertical columns into a single JPEG image, taking into account the maximum resolution.
[0010] From another perspective, the aforementioned provisioning step may include providing a header that explicitly contains the information necessary for playing the animation.
[0011] In other respects, the header may include the resolution, frame rate, and number of animation repetitions.
[0012] From another perspective, the aforementioned header may be included in the JPEG comment header, which does not affect decoding.
[0013] From another perspective, the client side may decode the sprite JPEG image and then crop at least a portion of it to match a predefined frame rate before displaying it.
[0014] In other respects, if the video is set on the profile of a particular user on the messenger platform, the step of providing the video may also provide the animated thumbnail for previewing the video to the electronic devices of other users who have established a relationship with the particular user.
[0015] In another aspect, if the video is uploaded to a video sharing service platform, the animated thumbnail may be provided to the electronic device of a user of the video sharing service for previewing the video.
[0016] An animated image provision method is provided, wherein the computer device includes at least one processor configured to execute computer-readable instructions contained in memory, and the animated image provision method includes the steps of: the at least one processor receiving a sprite JPEG represented in animated format from a server as a thumbnail of a video for a video profile set as a video among the profiles included in the friend list on the messenger; and the at least one processor providing a preview of the video profile using the animation effect of the sprite JPEG when displaying the video profile in the friend list.
[0017] An animation image provision method is provided, which is performed by a computer device, wherein the computer device includes at least one processor configured to execute computer-readable instructions contained in memory, and the animation image provision method includes the steps of: the at least one processor receiving a sprite JPEG represented in animation format from a server as a thumbnail for a video list containing at least one video on a video sharing service; and the at least one processor providing a preview of the video using the animation effect of the sprite JPEG when displaying the video list.
[0018] The present invention provides a computer program, which is recorded on a non-temporary computer-readable recording medium, for causing the computer system to execute the aforementioned animation image provisioning method.
[0019] The present invention provides a computer device comprising at least one processor implemented to execute computer-readable instructions contained in memory, wherein the at least one processor includes a thumbnail providing unit that provides an animated thumbnail of the video by representing sprite JPEG images generated from the video in an animated format. [Brief explanation of the drawing]
[0020] [Figure 1] This diagram shows an example of a network environment in one embodiment of the present invention. [Figure 2] This is a block diagram illustrating the internal configuration of an electronic device and a server in one embodiment of the present invention. [Figure 3] This figure shows an example of components that a server processor may include in one embodiment of the present invention. [Figure 4] A flowchart showing an example of a method that can be executed by a server in one embodiment of the present invention. [Figure 5] An exemplary diagram for explaining the process of generating a sprite JPEG image in one embodiment of the present invention. [Figure 6] A diagram showing an example of a data structure for providing information necessary for animation in one embodiment of the present invention. [Figure 7] A diagram showing an example of an interface screen for providing a preview of a video profile included in a messenger's friend list by utilizing an animation effect with a sprite JPEG in one embodiment of the present invention. [Figure 8] A diagram showing an example of an interface screen for providing a preview of a video profile included in a messenger's friend list by utilizing an animation effect with a sprite JPEG in one embodiment of the present invention. [Figure 9] A diagram showing an example of an interface screen for providing a preview of a video included in a video list by utilizing an animation effect with a sprite JPEG in one embodiment of the present invention.
Mode for Carrying Out the Invention
[0021] Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
[0022] Embodiments of the present invention relate to a technology for providing video-related services, and more particularly, to a technology for providing an animation function using sprite JPEG.
[0023] H Embodiments including the matters specifically disclosed in this specification can realize an animation thumbnail of a video using sprite JPEG, thereby achieving considerable advantages in terms of image quality, compression efficiency, and the like.
[0024] Figure 1 is a diagram showing an example of a network environment in one embodiment of the present invention. The network environment in Figure 1 shows an example that includes multiple electronic devices 110, 120, 130, 140, multiple servers 150, 160, and a network 170. Figure 1 is merely an example for the purpose of explaining the invention, and the number of electronic devices and servers is not limited to what is shown in Figure 1.
[0025] The multiple electronic devices 110, 120, 130, and 140 may be fixed or mobile terminals implemented by a computer system. Examples of the multiple electronic devices 110, 120, 130, and 140 include smartphones, mobile phones, navigation systems, PCs (personal computers), notebook PCs, digital broadcasting terminals, PDAs (Personal Digital Assistants), PMPs (Portable Multimedia Players), tablets, game consoles, wearable devices, IoT (Internet of Things) devices, VR (Virtual Reality) devices, and AR (Augmented Reality) devices. As an example, Figure 1 shows a smartphone as an example of electronic device 110, but in embodiments of the present invention, electronic device 110 may mean one of a variety of physical computer systems that can communicate with other electronic devices 120, 130, 140 and / or servers 150, 160 via a network 170 using substantially wireless or wired communication methods.
[0026] The communication method is not limited, and may include not only communication methods that utilize communication networks that can be included in network 170 (for example, mobile communication networks, wired internet, wireless internet, broadcasting networks, satellite networks, etc.), but also short-range wireless communication between devices. For example, network 170 may include one or more arbitrary networks such as PAN (personal area network), LAN (local area network), CAN (campus area network), MAN (metropolitan area network), WAN (wide area network), BBN (broadband network), and the Internet. Furthermore, network 170 may include, but is not limited to, one or more network topologies, including bus networks, star networks, ring networks, mesh networks, star-bus networks, tree or hierarchical networks.
[0027] Servers 150 and 160 may each be implemented by one or more computer devices that communicate with multiple electronic devices 110, 120, 130, and 140 via a network 170 to provide commands, code, files, content, services, etc. For example, server 150 may be a system that provides a first service to multiple electronic devices 110, 120, 130, and 140 connected via the network 170, and server 160 may also be a system that provides a second service to multiple electronic devices 110, 120, 130, and 140 connected via the network 170. As a more specific example, server 150 may provide the multiple electronic devices 110, 120, 130, and 140 as a first service through an application, which is a computer program installed and executed on the multiple electronic devices 110, 120, 130, and 140, with the service targeted by that application (for example, video-related services). As another example, server 160 may provide a second service that distributes files for installing and running the aforementioned application to multiple electronic devices 110, 120, 130, and 140.
[0028] Figure 2 is a block diagram illustrating the internal configuration of an electronic device and a server in one embodiment of the present invention. In Figure 2, the internal configuration of electronic device 110 and server 150 are described as examples of electronic devices. Other electronic devices 120, 130, 140 and server 160 may also have the same or similar internal configuration as the electronic device 110 or server 150 described above.
[0029] The electronic devices 110 and server 150 may include memories 211, 221, processors 212, 222, communication modules 213, 223, and input / output interfaces 214, 224. The memories 211, 221 are non-temporary computer-readable recording media and may include persistent mass storage devices such as RAM (random access memory), ROM (read-only memory), disk drives, SSDs (solid-state drives), and flash memory. Here, persistent mass storage devices such as ROM, SSDs, flash memory, and disk drives may be included in the electronic devices 110 and server 150 as separate persistent storage devices distinct from the memories 211, 221. The memories 211, 221 may also store an operating system and at least one program code (for example, code for a browser installed and run on the electronic device 110, or code for an application installed on the electronic device 110 to provide a specific service). Such software components may be loaded from a computer-readable recording medium separate from the memories 211, 221. Such other computer-readable recording media may include computer-readable recording media such as floppy® drives, disks, tapes, DVD / CD-ROM drives, and memory cards. In other embodiments, software components may be loaded into memories 211, 221 through communication modules 213, 223 which are not computer-readable recording media. For example, at least one program may be loaded into memories 211, 221 based on a computer program (for example, the application described above) that is installed by a file provided over the network 170 by a file distribution system (for example, the server 160 described above) that distributes installation files for a developer or application.
[0030] Processors 212 and 222 may be configured to process computer program instructions by performing basic arithmetic, logic, and input / output operations. Instructions may be provided to processors 212 and 222 by memory 211 and 221 or by communication modules 213 and 223. For example, processors 212 and 222 may be configured to execute instructions received according to program code recorded in a recording device such as memory 211 and 221.
[0031] Communication modules 213 and 223 may provide functionality for the electronic device 110 and the server 150 to communicate with each other via the network 170, or they may provide functionality for the electronic device 110 and / or the server 150 to communicate with other electronic devices (for example, electronic device 120) or other servers (for example, server 160). For example, a request generated by the processor 212 of the electronic device 110 according to program code recorded in a recording device such as memory 211 may be transmitted to the server 150 via the network 170 under the control of the communication module 213. Conversely, control signals, instructions, content, files, etc., provided under the control of the processor 222 of the server 150 may be received by the electronic device 110 via the communication module 223 and the network 170 through the communication module 213 of the electronic device 110. For example, control signals, commands, content, and files from the server 150 received through the communication module 213 may be transmitted to the processor 212 and memory 211, and the content and files may be recorded on a recording medium (the persistent recording device described above) that the electronic device 110 may further include.
[0032] The input / output interface 214 may be a means for interface with an input / output device 215. For example, an input device may include a keyboard, mouse, microphone, camera, etc., and an output device may include a display, speaker, haptic feedback device, etc. As another example, the input / output interface 214 may be a means for interface with a device that integrates input and output functions into one, such as a touchscreen. The input / output device 215 may consist of the electronic device 110 and one other device. Also, the input / output interface 224 of the server 150 may be a means for interface with an input or output device (not shown) that connects to or can be included in the server 150. As a more specific example, when the processor 212 of the electronic device 110 processes instructions for a computer program loaded into memory 211, a service screen or content configured using data provided by the server 150 or electronic device 120 may be displayed on the display via the input / output interface 214.
[0033] Furthermore, in other embodiments, the electronic device 110 and the server 150 may include more components than those shown in Figure 2. However, it is not necessary to explicitly show most of the conventional components in the figure. For example, the electronic device 110 may be implemented to include at least some of the input / output devices 215 described above, and may further include other components such as transceivers, GPS (Global Positioning System) modules, cameras, various sensors, and databases. As a more specific example, if the electronic device 110 is a smartphone, the electronic device 110 may be implemented to further include a variety of components that are generally included in smartphones, such as accelerometers, gyroscopes, camera modules, various physical buttons, touch panel buttons, input / output ports, and vibrators for vibration.
[0034] The following describes a method and specific implementations of a system that provides animation functionality using sprite JPEGs.
[0035] In video-related services, there is an increasing demand for animated images for use as video thumbnails.
[0036] Common animation formats include GIF (graphics interchange format) and PNG (portable network graphics).
[0037] GIF is a format for encoding graphics that are not true color. Because GIF uses a lookup table to subsample 256 colors during encoding, it inevitably degrades image quality. While it's possible to use multiple tables to support true color, this reduces compression efficiency. Essentially, GIF's structure makes it impossible to avoid significant degradation during the pre-processing stage.
[0038] PNG is an image compression method that, through lossless compression, reflects more consideration for video than GIF. PNG performs general entropy coding after a simple four-step filtering process to reduce data entropy. Additionally, it has the option of using a lookup table, similar to GIF. Like GIF, it shows excellent compression efficiency for graphics with simple patterns, but its compression efficiency is lower for general video with high video entropy.
[0039] GIF suffers from significant image quality loss, and PNG suffers from significant compression efficiency loss. Therefore, neither of the above formats is suitable for creating animated thumbnails for videos.
[0040] In this embodiment, the objective is to provide an animated image based on sprite JPEG for use as a video thumbnail.
[0041] Figure 3 is a block diagram showing an example of components that a server processor may include in one embodiment of the present invention, and Figure 4 is a flowchart showing an example of a method that a server may execute in one embodiment of the present invention.
[0042] In this embodiment, the server 150 plays the role of a platform that provides video-related services. For example, the server 150 may be a video platform that provides video sharing services, a messenger platform that provides video profiles, etc., and the server 150 may be configured with an animation image provision system implemented by a computer.
[0043] Server 150 provides video-related services to multiple electronic devices 110, 120, 130, and 140, which are clients. These services may be provided through dedicated applications installed on the electronic devices 110, 120, 130, and 140, or by connecting to a web / mobile site associated with Server 150.
[0044] In particular, server 150 provides animated images based on sprite images for use as video thumbnails when providing video-related services.
[0045] The processor 222 of the server 150 may include a thumbnail generation unit 310, a thumbnail provision unit 320, and a video provision unit 330 as components for executing the animation image provision method shown in Figure 4, as shown in Figure 3. Depending on the embodiment, the components of the processor 222 may be selectively included in or excluded from the processor 222. Also, depending on the embodiment, the components of the processor 222 may be separated or merged to represent the functions of the processor 222.
[0046] Such a processor 222 and its components may control the server 150 to execute steps 410 to 430 of the animation image provision method shown in Figure 4. For example, the processor 222 and its components may be implemented to execute instructions from the operating system code contained in the memory 221 and the code of at least one program.
[0047] Here, the components of the processor 222 may be representations of different functions that are executed by the processor 222 in accordance with instructions provided by the program code recorded in the server 150. For example, the thumbnail generation unit 310 may be used as a functional representation of the processor 222 that controls the server 150 in accordance with the above-mentioned instructions so that the server 150 generates video thumbnails.
[0048] The processor 222 may read necessary instructions from memory 221, which is loaded with instructions related to the control of the server 150. In this case, the instructions read may include instructions for controlling the processor 222 to execute steps 410 to 430, which are described below.
[0049] Steps 410-430, described below, may be performed in a different order than shown in Figure 4, and some steps from steps 410-430 may be omitted or additional steps may be included.
[0050] Referring to Figure 4, in step 410, the thumbnail generation unit 310 may generate a sprite JPEG as a thumbnail for the video. The thumbnail generation unit 310 may generate a sprite image using frames from the video.
[0051] The sprite image technique combines multiple individual image files into one, and when actually used, it utilizes CSS (cascading style sheets) attributes such as background image and background position to display only a specific part of the image.
[0052] Figure 5 is an illustrative diagram illustrating the process of generating a sprite JPEG image in one embodiment of the present invention.
[0053] Referring to Figure 5, the thumbnail generation unit 310 generates one large JPEG image by concatenating each frame of the video (Frame #0, ..., Frame #N) (hereinafter referred to as frames or tiles) from top to bottom in the order of playback.
[0054] JPEG decoding is performed from left to right, and then from top to bottom. When tiles are concatenated horizontally from left to right, it takes a lot of time to obtain the initial tile. Once the last tile of a row has been decoded from left to right, the next row can be decoded, and multiple rows can be combined to obtain a single complete tile.
[0055] Therefore, in order to obtain the tiles with minimal decoding, they must be configured as long as possible in the top-to-bottom direction, i.e., vertically.
[0056] The thumbnail generation unit 310 may generate a sprite JPEG image by vertically concatenating all the frames used for animation from the video at the raw image stage.
[0057] In the case of JPEG, the field representing the resolution is 2 bytes, so the maximum horizontal / vertical values are 65535. If there are many frames and they cannot be represented in a single vertical row (which may also be referred to as a column), the number of vertical rows (columns) is increased by a certain number (M) and arranged so that they fit within the maximum resolution.
[0058] For example, as shown in Figure 5, the thumbnail generation unit 310 may compress two vertically arranged raw images into a single JPEG image. The thumbnail generation unit 310 may generate a JPEG image in which N frames are arranged in two columns, taking into account the JPEG decoding order, and arranging the frames in a left-to-right and top-to-bottom direction, for example, by arranging the first row in the order of Frame #0, Frame #1, and then the next row in the order of Frame #3, Frame #4.
[0059] Referring again to Figure 4, in step 420, if the thumbnail provider 320 receives a video preview request from the client electronic device 110, it may provide an animated thumbnail using the sprite JPEG generated in step 410 as a response to the preview request.
[0060] On the client side, i.e., the electronic device 110, after decoding a single JPEG image generated for use as a video thumbnail, may crop and display the necessary portion to match a predefined frame rate.
[0061] The thumbnail provider unit 320 may include a custom header for representing the sprite JPEG in an animated format as an animated thumbnail for the video.
[0062] For example, the thumbnail provider 320 may include a custom header in the comment header, which does not affect decoding, and the custom header may provide information such as resolution, frame rate, and number of animation repetitions.
[0063] If the specifications are predetermined, information such as the size of the original video, the number of frames, and the frame rate is not necessary. However, if the application requires other specifications, the sprite JPEG file generated for video thumbnail use must explicitly include information such as the size of the original video, the number of frames, and the frame rate.
[0064] Therefore, processor 222 adopts a method in which it records the information necessary for animation playback in the comment header specified in JPEG, so that general JPEG decoders ignore this information, while animation image clients extract and use this information.
[0065] Figure 6 shows an example of a data structure for providing information necessary for animation in one embodiment of the present invention.
[0066] As shown in Figure 6, the sprite JPEG image will have a comment header. The comment header and header length are based on the basic JPEG standard. The tile width and tile height refer to the width (W) and height (H) of the frame shown in Figure 5, and the tile length refers to the number of frames. The frame rate is the same as {(Frame Numerator) / (Frame Denominator)}, and the flags are set bitwise for the required purpose, such as Progressive or AlphaComponent, depending on the embodiment. The iteration count indicates how many times the animation will be repeated; -1 means it will repeat indefinitely. The comment header can be inserted anywhere before the SOS (start of scan). For example, processor 222 inserts the comment header immediately after the SOI (0xFF D8), which is the beginning of the image.
[0067] To create animated thumbnails for videos, there is a problem in that all frames of the video must be stored in a buffer (for example, a YUV buffer) beforehand. However, the following method can be applied to circumvent this problem.
[0068] One method is to use partial decoding.
[0069] On the client side, a JPEG decoder that supports partial decoding may be used. Partially decoding scan lines in order can prevent additional overhead. The overhead problem can be solved by initializing the frame once and then partially decoding the desired scan lines in several steps, similar to using a video decoder.
[0070] A second method involves using the DRI (define restart interval) header.
[0071] Processor 222 may add a restart marker within the frame data to repair data lost in JPEG. The DRI header may specify an interval value that determines how many MCUs there are before adding a restart marker.
[0072] When using DRI, the encoding and decoding process is as follows:
[0073] 1. Encoder (1) The DRI header explicitly indicates the number of MCUs corresponding to one tile as an interval value. For example, in the case of 296 × 96, the total would be (6 MCUs) × (6 MCUs) = 36. (2) Insert an RST# (Restart Marker) for each MCU corresponding to one tile. (3) Generate a JPEG header for a single tile. For example, generate a JPEG header for a 96x96 image. In this case, information such as DQT and DHT will be generated in the same way as in the original JPEG. (4) The JPEG header is recorded together with the comment header.
[0074] 2. Decoder (1) Extract the JPEG header of the tile included in the comment header. (2) Use RST# to extract the bitstream of tiles in the desired order. (3) Generate a single JPEG file using (tile's JPEG header) + (extracted tile's bitstream) + (0xFF D9: End of Image Marker).
[0075] When using a DRI header, tiles can be bundled in groups of a fixed number (N tiles) rather than individually, and an RST# can be added to each group.
[0076] In this embodiment, by providing an animated image using sprite JPEG for video thumbnail purposes, animation effects can be achieved with less data than other animation-supporting formats, and the image quality is also far superior.
[0077] On the client side, using a JPEG decoder results in relatively smoother optimization and lighter operation compared to decoders for other formats that support animation.
[0078] In particular, when encoding with progressive JPEG, even in situations with extremely low network speeds, it is possible to provide a low-resolution animation image as a preview, and a single JPEG image arranged vertically can play animation images of many different resolutions.
[0079] Referring again to Figure 4, in step 430, if the video provision unit 330 receives a video playback request from the electronic device 110, it may provide the video in a predetermined playback file format (e.g., mp4) as a response to the playback request. If the video provision unit 330 receives a playback request for a video for which a preview has been provided using an animation effect using sprite JPEG, it may provide the electronic device 110 with a video in a format that can be played back.
[0080] Figures 7-9 illustrate an example of the process of providing animation functionality using sprite JPEGs in one embodiment of the present invention.
[0081] Figures 7 and 8 show examples of interface screens included in the messenger, which may be screens displayed on the display of the electronic device 110.
[0082] Referring to Figure 7, the messenger screen 700 may include a friends list 710, which may consist of profile information such as names and photos set by each party. In this case, the profile picture may be a still image profile 701 or a video profile 702.
[0083] The processor 212 of the electronic device 110 may receive thumbnails of profile pictures set by each user included in the friends list 710 from the server 150 and display them in the friends list 710.
[0084] Previously, it was not possible to display previews of multiple videos simultaneously on a single screen. In the case of the Friend List 710, dozens or more profile pictures can be displayed on one screen, but in the case of video profiles 702, only a predetermined maximum number (for example, 4 people) could be previewed, and the remaining video profiles could only display the first frame image or a static thumbnail image.
[0085] To solve these problems, in this embodiment, an animated thumbnail using sprite JPEG may be implemented for the video profile 702.
[0086] If a messenger user sets their profile picture to a video, the processor 222 of server 150 may generate a sprite JPEG as a thumbnail for the video using the frames of that video. The processor 222 may then transmit the generated sprite JPEG as a thumbnail for the video to the electronic devices of other users who are friends with the user who set their profile picture to a video.
[0087] The processor 212 of the electronic device 110 receives a sprite JPEG from the server 150 for the video profile 702 included in the friend list 710, decodes the received sprite JPEG, and then crops at least a portion of it to match a predefined frame rate before displaying it. In other words, the processor 212 may provide a preview function for the video profile 702 included in the friend list 710 by utilizing the animation effect of the sprite JPEG.
[0088] The processor 222 of server 150 may, when a messenger user changes their profile picture to a video, generate a sprite JPEG for use as a thumbnail for the video, and then transmit the sprite JPEG, along with a profile change notification, to the electronic devices of other users who are friends with the user who changed their profile picture.
[0089] When the processor 212 of the electronic device 110 receives a sprite JPEG from the server 150 along with a profile change notification, it may, as shown in Figure 8, display the profile change notification 81 for the friend whose profile has been changed in the friend list 710, and at the same time decode the sprite JPEG and provide a preview of the corresponding friend's video profile 702.
[0090] When a user of the electronic device 110 selects a specific friend's video profile 702 from the friend list 710 and requests video playback, the processor 212 may receive the video from the server 150 in a playback file in a predetermined format, decode it, and then play it.
[0091] Therefore, unlike conventional methods where the maximum number of video profile previews displayed on a single screen is predetermined, this embodiment utilizes animation effects using sprite JPEGs to simultaneously display previews of 702 video profiles without any limitations on the number.
[0092] Animated thumbnails using sprite JPEGs are applicable to messenger profiles and any environment that provides a video list containing at least one video.
[0093] Figure 9 shows an example of a video sharing service screen, which may be a screen displayed on the display of electronic device 110.
[0094] For example, server 150 may provide a video sharing service in which service users upload and share videos while watching them, and the processor 222 of server 150 may generate a sprite JPEG as a thumbnail for the video uploaded by the service user and provide a video preview function through animation effects using the sprite JPEG.
[0095] For example, as shown in Figure 9, when the processor 212 of the electronic device 110 displays a video sharing service screen 900 including a video list 910 in conjunction with the server 150, it may receive sprite JPEGs of each video (video1 to 3) included in the video list 910 from the server 150.
[0096] After decoding the sprite JPEG received from the server 150, the processor 212 crops at least a portion of it to match a predefined frame rate and displays it. In other words, the processor 212 may provide a preview of each video in the video list 910 by utilizing the animation effect of the sprite JPEG of that video.
[0097] For all videos displayed on a single screen of the video sharing service screen 900, a preview function may be provided simultaneously, utilizing animation effects using sprite JPEGs.
[0098] When a user of the electronic device 110 selects a specific video from the video list 910 and requests playback, the processor 212 may receive the video from the server 150 in a playback file in a predetermined format, decode it, and then play it.
[0099] Thus, according to the embodiments of the present invention, by realizing animated thumbnails of videos using sprite JPEG, a video preview function can be provided through the animation effect of sprite JPEG. According to the embodiments of the present invention, by generating animated images using sprite JPEG, it is possible to provide animated thumbnails with a smaller file size and better image quality for videos, and in particular, it is possible to provide animated thumbnails for many videos simultaneously without any limit on the number.
[0100] The above-described apparatus may be implemented by hardware components, software components, and / or combinations of hardware and software components. For example, the apparatus and components described in the embodiments may be implemented using one or more general-purpose or special-purpose computers, such as processors, controllers, ALUs (arithmetic logic units), digital signal processors, microcomputers, FPGAs (field programmable gate arrays), PLUs (programmable logic units), microprocessors, or various devices capable of executing and responding to instructions. The processing unit may execute an operating system (OS) and one or more software applications running on the OS. The processing unit may also respond to software execution, access data, record, manipulate, process, and generate data. For convenience of understanding, it may be described as if a single processing unit is used, but those skilled in the art will understand that the processing unit may include multiple processing elements and / or multiple types of processing elements. For example, the processing unit may include multiple processors or one processor and one controller. Other processing configurations, such as parallel processors, are also possible.
[0101] Software may include computer programs, code, instructions, or a combination of one or more of these, which may configure a processing unit to operate as desired, or which may instruct the processing unit independently or collectively. Software and / or data may be embodied in any kind of machine, component, physical device, computer recording medium, or device for interpretation based on the processing unit or for providing instructions or data to the processing unit. Software may be distributed across a networked computer system, and may be recorded or executed in a distributed manner. Software and data may be recorded on one or more computer-readable recording media.
[0102] The methods according to the embodiment may be implemented in the form of program instructions executable by various computer means and recorded on a computer-readable medium. Here, the medium may be one that continuously records computer-executable programs or one that temporarily records for execution or download. Furthermore, the medium may be a variety of recording or storage means in the form of one or more hardware combined, and is not limited to a medium directly connected to a computer system, but may be distributed on a network. Examples of mediums include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and ROMs, RAMs, flash memories, etc., which may be configured to record program instructions. Another example of a medium is a recording medium or storage medium managed by an application store that distributes applications or other sites, servers that supply or distribute various software.
[0103] As described above, embodiments have been explained based on limited embodiments and drawings, but those skilled in the art will be able to make various modifications and variations from the above description. For example, the described technique may be performed in a different order than described, and / or the components of the described system, structure, apparatus, circuit, etc. may be combined or assembled in a different manner than described, or opposed or replaced by other components or equivalents, and still achieve suitable results.
[0104] Therefore, even if the embodiment is different, if it is equivalent to the claims, it falls within the scope of the attached claims. [Explanation of symbols]
[0105] 222: Processor 310: Thumbnail generation unit 320: Thumbnail Provider 330: Video Provider
Claims
1. 1. A method for providing animation images executed by a computer device, comprising: the computing device includes at least one processor configured to execute computer-readable instructions contained in a memory; The animation image providing method includes: and rendering, by the at least one processor, sprite JPEG images generated from the video in an animated format to provide an animated thumbnail of the video. A method for providing animated images, including:
2. The providing step comprises: generating the sprite JPEG image by vertically connecting at least some of the frames of the video from top to bottom; 2. The method of claim 1, comprising:
3. The generating step includes: compressing the partial frames arranged in a certain number of vertical columns into one JPEG image, taking into consideration the maximum resolution; 3. The method of claim 2, comprising:
4. The providing step comprises: The step of providing a header containing the information necessary for animation playback 2. The method of claim 1, comprising:
5. The header includes the resolution, frame rate, and number of repetitions of the animation.
5. The method for providing an animation image according to claim 4.
6. The header is included in the JPEG comment header, which does not affect decoding.
5. The method for providing an animation image according to claim 4.
7. At the client side, after decoding the sprite JPEG image, crop at least a part of it to fit the predefined frame rate and display it.
2. The method for providing an animated image according to claim 1,
8. The providing step comprises: and providing the animated thumbnail for previewing the video on electronic devices of other users who have established a relationship with the particular user when the video is set in the profile of the particular user of a messenger platform.
2. The method for providing an animated image according to claim 1,
9. The providing step comprises: When the video is uploaded to a video-sharing service platform, providing the animated thumbnail to an electronic device of a user who uses the video-sharing service for previewing the video.
2. The method for providing an animated image according to claim 1,
10. 1. A method for providing animation images executed by a computer device, comprising: the computing device includes at least one processor configured to execute computer-readable instructions contained in a memory; The animation image providing method includes: receiving, by the at least one processor, sprite JPEGs represented in an animated format as thumbnails of the video for video profiles set as videos among the profiles included in the friend list on Messenger from a server; and providing, by the at least one processor, a preview of the video profile using an animation effect based on the sprite JPEG when displaying the video profile in the friends list. A method for providing animated images, including:
11. 1. A method for providing animation images executed by a computer device, comprising: the computing device includes at least one processor configured to execute computer-readable instructions contained in a memory; The animation image providing method includes: receiving, by the at least one processor, from a server, a sprite JPEG represented in an animated format as a thumbnail of at least one video on a video hosting service, for a video list including the video; and providing a preview of the video using the animation effect of the sprite JPEG when displaying the video list, by the at least one processor. A method for providing animated images, including:
12. A computer program causing a computer system to execute the animation image providing method according to any one of claims 1 to 11.
13. 1. A computer device comprising: At least one processor configured to execute computer-readable instructions contained in the memory Including, The at least one processor: A thumbnail providing unit that expresses sprite JPEG images generated from a video in an animation format and provides animated thumbnails of the video.
2. A computer device comprising:
14. The at least one processor: a thumbnail generating unit that generates the sprite JPEG image by vertically connecting at least some of the frames of the video from top to bottom; The computer device of claim 13 further comprising:
15. The thumbnail providing unit Provide a header that clearly states the information required to play the animation.
14. The computer device of claim 13,
16. The header includes the resolution, frame rate, and number of repetitions of the animation.
16. The computer device of claim 15.
17. The header is included in the JPEG comment header, which does not affect decoding.
16. The computer device of claim 15.
18. At the client side, after decoding the sprite JPEG image, crop at least a part of it to fit the predefined frame rate and display it.
14. The computer device of claim 13,
19. The thumbnail providing unit and providing the animated thumbnail for previewing the video on electronic devices of other users who have established a relationship with the particular user when the video is set in the profile of the particular user of a messenger platform.
14. The computer device of claim 13,
20. The thumbnail providing unit When the video is uploaded to a video-sharing service platform, providing the animated thumbnail to an electronic device of a user who uses the video-sharing service for previewing the video.
14. The computer device of claim 13,