Method for providing cloud streaming service and apparatus therefor
The method enhances cloud streaming by comparing images to replace identical pixels and using multi-stage encoding for alpha data, addressing inefficiencies in image compression and reducing latency, thus improving service quality and data transmission efficiency.
Patent Information
- Application Number
- PCT/KR2024/007633
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-07-19
- Filing Date
- 2024-06-04
- Publication Date
- 2025-01-23
AI Technical Summary
Cloud streaming services face inefficiencies in image compression, leading to increased data transmission sizes and latency, particularly when transmitting video element streams and alpha data, which affects service quality and network costs.
A method that compares previous and current images to identify difference areas, replacing identical pixels with special pixels during efficient image encoding, and employing a two-stage encoding process for alpha data using RUN-LENGTH or HUFFMAN encoding followed by ZIP encoding to optimize compression and transmission.
This approach improves image compression efficiency, reduces data transmission, and optimizes latency, enabling higher service quality even on low-specification terminals by effectively managing alpha data transmission.
Smart Images

Figure KR2024007633_23012025_PF_FP_ABST
Abstract
Description
Method for providing cloud streaming service and device therefor
[0001] The present invention relates to a method for providing a cloud streaming service and an apparatus therefor, and more particularly, to a method for providing an image cloud streaming service based on efficient image encoding that improves compression efficiency during image encoding by replacing pixels identical to those of a previous frame with special pixels, and a device therefor, and to a method for providing a cloud streaming service based on efficient alpha encoding that efficiently transmits a video element stream and alpha data in a cloud streaming UI based on a two-step encoding process that takes alpha compression ratio into account, and a device therefor.
[0002] This invention claims the benefit of Korean Patent Application No. 10-2023-0093560, filed July 19, 2023, and Korean Patent Application No. 10-2023-0093563, filed July 19, 2023, the entire contents of which are incorporated herein by reference.
[0003] The rapid development of the Internet has resulted in a dramatic increase in personal communication speeds. This improvement has enabled users to access remote computers, download or upload large amounts of data, or use remote computer control programs to access remote computers as if logged in locally. Furthermore, with the development of diverse applications running on mobile devices like smartphones, virtualization technologies are increasingly being proposed to enable high-performance applications to run on relatively low-performance user devices.
[0004] Cloud streaming technology is a solution that runs applications or services requiring high-performance system resources on a cloud streaming server and delivers only the rendered results to the user's device. This allows high-performance video playback or 3D games even on low-performance devices.
[0005] Meanwhile, applications with rapid screen changes in cloud streaming services are provided with dedicated video cloud services, while UI applications with primarily slow screens or requiring alpha channels are provided with dedicated image cloud services. In this case, due to the nature of image codecs that compress a single frame in image cloud services, the size of the image compression data transmitted to the user terminal is larger than that of the video compression data.
[0006] However, when operating servers on cloud systems like AWS, data size is a crucial factor, as it directly impacts network costs. Furthermore, as data size increases, network transmission delays also increase, impacting service quality.
[0007] Additionally, when transmitting a video element stream in the cloud streaming UI, the screen's alpha data is also transmitted, and the alpha data can include the alpha value (0-255) of all screen pixels. For example, the alpha data of a 1920x1080 screen corresponds to approximately 2073600, which means that if 2MB of data is transmitted at 30fps, 60MB of data must be transmitted per second. This data size can cause latency during the transmission process.
[0008] The purpose of the present invention is to improve the efficiency of image compression by comparing similarity between before and after images during image cloud streaming.
[0009] In addition, an object of the present invention is to improve image compression efficiency during image cloud streaming, thereby reducing the amount of data to be transmitted to a terminal and improving service quality.
[0010] In addition, an object of the present invention is to efficiently transmit a video element stream and alpha data to a user terminal in a cloud streaming UI.
[0011] In addition, an object of the present invention is to optimize latency in the alpha data transmission process when providing a video cloud streaming service.
[0012] In addition, an object of the present invention is to effectively decompress alpha data even in low-spec terminals by providing compressed alpha data in a standard that takes into account the performance of the user terminal.
[0013] In order to achieve the above object, the method for providing an image cloud streaming service according to the present invention comprises the steps of: a cloud streaming server comparing a previous image captured from a web application with a current image to derive a difference area; a step of determining whether to perform an efficient image encoding process by considering the size and pixel value of the difference area; a step of replacing some pixels of the difference area with special pixels when performing the efficient image encoding process; and a step of image-encoding the current image replaced with the special pixels and streaming it to a user terminal together with execution information of the efficient image encoding process.
[0014] At this time, the efficient image encoding process can be performed when the size of the difference area is greater than or equal to a preset reference size, and the number of pixels within the difference area that are identical to the previous image is greater than or equal to a preset reference value.
[0015] At this time, the replacing step can replace the same pixel in the current image with the special pixel.
[0016] At this time, the replacing step may include a step of determining whether the alpha value of the difference area is 0; and a step of replacing the same pixel with a special pixel whose RGB values are all 0 if the alpha value of the difference area is 0, and a step of replacing the same pixel with a special pixel whose alpha value is 0 and RGB values are not 0 if the alpha value of the difference area is not 0.
[0017] In this case, the special pixel may correspond to a pixel not used in the above web application.
[0018] At this time, if the user terminal receives the execution information together with the encoding image, the user terminal can display the special pixel by replacing it with a pixel of the previous image by referring to the frame of the previous image.
[0019] At this time, if the size of the difference area is less than the preset reference size or the number of pixels within the difference area that are the same as the previous image is less than the preset reference value, the step of image encoding the current image and streaming it to the user terminal may be further included.
[0020] In addition, the cloud streaming server according to the present invention includes a processor that compares a previous image captured in a web application with a current image to derive a difference area, determines whether to perform an efficient image encoding process by considering the size and pixel value of the difference area, replaces some pixels of the difference area with special pixels when performing the efficient image encoding process, and image-encodes the current image replaced with the special pixels and streams it to a user terminal together with execution information of the efficient image encoding process; and a memory that stores the difference area.
[0021] At this time, the efficient image encoding process can be performed when the size of the difference area is greater than or equal to a preset reference size, and the number of pixels within the difference area that are identical to the previous image is greater than or equal to a preset reference value.
[0022] At this time, the processor can replace the same pixel in the current image with the special pixel.
[0023] At this time, the processor can determine whether the alpha value of the difference area is 0, and if the alpha value of the difference area is 0, replace the same pixel with a special pixel whose RGB values are all 0, and if the alpha value of the difference area is not 0, replace the same pixel with a special pixel whose alpha value is 0 and whose RGB values are not 0.
[0024] In this case, the special pixel may correspond to a pixel not used in the above web application.
[0025] At this time, if the user terminal receives the execution information together with the encoding image, the user terminal can display the special pixel by replacing it with a pixel of the previous image by referring to the frame of the previous image.
[0026] At this time, the processor can image encode the current image and stream it to the user terminal if the size of the difference area is less than the preset reference size or the number of pixels identical to the previous image within the difference area is less than the preset reference value.
[0027] In addition, a method for providing a cloud streaming service according to the present invention includes a step in which a cloud streaming server primarily encodes alpha data of an application execution screen using a first encoding method; a step in which the cloud streaming server secondarily encodes the first encoded alpha data using a second encoding method in consideration of a compression ratio of the first encoded alpha data; and a step in which the second encoded alpha data is streamed to a user terminal together with encoded video element stream data.
[0028] At this time, the first encoding method may correspond to a run-length encoding method or a HUFFMAN encoding method.
[0029] At this time, the second encoding method may correspond to the ZIP method.
[0030] At this time, if the compression ratio of the primary encoding alpha data is lower than or equal to the preset first compression ratio, the secondary encoding can be performed.
[0031] At this time, the preset first compression ratio can be set in consideration of the application execution screen and network performance.
[0032] At this time, the ZIP method can be operated by setting one of the maximum compression ratio and maximum speed options in consideration of the performance of the user terminal.
[0033] At this time, if the compression ratio of the primary encoding alpha data exceeds the preset first compression ratio, the method may further include a step of streaming the primary encoding alpha data together with the encoded video element stream data to the user terminal without performing the secondary encoding.
[0034] At this time, the primary encoding alpha data or the secondary encoding alpha data can be streamed in accordance with the transmission standard including the compression format, compression size, and compressed data.
[0035] At this time, the user terminal can decode the first encoded alpha data by applying the first encoding method according to the compression format included in the transmission standard, or can decode the second encoded alpha data by sequentially applying the second encoding method and the first encoding method.
[0036] In addition, the cloud streaming server according to the present invention includes a processor that encodes alpha data of an application execution screen in a first encoding manner, encodes the first encoded alpha data in a second encoding manner in consideration of the size of the first encoded alpha data, and streams the second encoded alpha data to a user terminal together with encoded video element stream data; and a memory that stores the alpha data.
[0037] At this time, the first encoding method may correspond to a run-length encoding method or a HUFFMAN encoding method.
[0038] At this time, the second encoding method may correspond to the ZIP method.
[0039] At this time, if the compression ratio of the primary encoding alpha data is lower than or equal to the preset first compression ratio, the secondary encoding can be performed.
[0040] At this time, the preset first compression ratio can be set in consideration of the application execution screen and network performance.
[0041] At this time, the ZIP method can be operated by setting one of the maximum compression ratio and maximum speed options in consideration of the performance of the user terminal.
[0042] At this time, the processor may stream the primary encoding alpha data to the user terminal together with the encoded video element stream data without performing the secondary encoding if the compression ratio of the primary encoding alpha data exceeds the preset first compression ratio.
[0043] At this time, the primary encoding alpha data or the secondary encoding alpha data can be streamed in accordance with the transmission standard including the compression format, compression size, and compressed data.
[0044] At this time, the user terminal can decode the first encoded alpha data by applying the first encoding method according to the compression format included in the transmission standard, or can decode the second encoded alpha data by sequentially applying the second encoding method and the first encoding method.
[0045] According to the present invention, the efficiency of image compression can be improved by comparing similarity between before and after images during image cloud streaming.
[0046] In addition, the present invention can improve image compression efficiency during image cloud streaming, thereby reducing the amount of data to be transmitted to a terminal and improving service quality.
[0047] In addition, the present invention can efficiently transmit video element streams and alpha data to user terminals in a cloud streaming UI.
[0048] In addition, the present invention can optimize latency in the alpha data transmission process when providing a video cloud streaming service.
[0049] In addition, the present invention provides compressed alpha data in a standard that takes into account the performance of the user terminal, thereby enabling effective decompression of alpha data even in terminals with low specifications.
[0050] FIG. 1 is a block diagram illustrating a cloud streaming service system according to one embodiment of the present invention.
[0051] FIG. 2 is a flowchart illustrating a method for providing an image cloud streaming service based on efficient image encoding according to one embodiment of the present invention.
[0052] FIG. 3 is a detailed flowchart illustrating a process for determining whether an efficient image encoding process is executed according to one embodiment of the present invention.
[0053] FIG. 4 is a drawing showing an example of replacing some pixels in a difference area with special pixels according to the present invention.
[0054] FIG. 5 is a diagram showing an example of a process for providing an image cloud streaming service based on efficient image encoding according to the present invention.
[0055] Figure 6 is a flowchart illustrating an example of a processing process in a user terminal according to the present invention.
[0056] FIG. 7 is a block diagram illustrating a cloud streaming server according to one embodiment of the present invention.
[0057] Figure 8 is a block diagram showing a cloud streaming service system according to one embodiment of the present invention.
[0058] FIG. 9 is a flowchart illustrating a method for providing a cloud streaming service based on efficient alpha encoding according to an embodiment of the present invention.
[0059] FIG. 10 is a diagram illustrating a process for providing a cloud streaming service based on efficient alpha encoding according to the present invention.
[0060] Figure 11 is an operation flow diagram showing an example of a case where a run length encoding method is used as the first encoding method according to the present invention.
[0061] Figure 12 is an operation flow diagram showing an example of using the Huffman encoding method as the first encoding method according to the present invention.
[0062] FIG. 13 is a block diagram illustrating a cloud streaming server according to one embodiment of the present invention.
[0063] Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, detailed descriptions of well-known functions or components that may obscure the gist of the present invention will be omitted in the following description and the accompanying drawings. It should also be noted that, where possible, identical components are indicated with the same reference numerals throughout the drawings.
[0064] The terms and words used in this specification and claims described below should not be interpreted as limited to their conventional or dictionary meanings, but should be interpreted with meanings and concepts that conform to the technical idea of the present invention based on the principle that the inventor can appropriately define the concept of the term to best describe his or her invention. Therefore, the embodiments described in this specification and the configurations illustrated in the drawings are only the most preferred embodiments of the present invention and do not represent all of the technical idea of the present invention. Therefore, it should be understood that there may be various equivalents and modified examples that can replace them at the time of this application. In addition, terms such as “first” and “second” are used to describe various components, and are used only for the purpose of distinguishing one component from another, and are not used to limit the components.
[0065] Typically, image compression data delivered to user terminals via image cloud streaming is larger than video compression data. This is due to the nature of image codecs, which compress only one frame.
[0066] However, when operating servers on cloud systems like AWS (Amazon Web Services), data size is a critical factor in determining network costs. Furthermore, larger data sizes increase network transmission delays, which impacts service quality.
[0067] In order to reduce the size of such data, the present invention proposes a method for increasing the efficiency of image compression through a similarity comparison between before and after images served through image cloud streaming.
[0068] FIG. 1 is a block diagram illustrating a cloud streaming service system according to one embodiment of the present invention.
[0069] Referring to FIG. 1, a cloud streaming service system according to one embodiment of the present invention includes a cloud streaming server (110), user terminals (120-1 to 120-N), and a network (130).
[0070] Cloud streaming service or cloud computing service is a service that allows users to store content in cloud storage on the Internet rather than in local storage, and access the cloud storage and use the content anytime, anywhere using an Internet-enabled device.
[0071] The cloud streaming server (110) may include a video cloud streaming engine for processing a cloud streaming service requested from a user terminal (120-1 to 120-N).
[0072] At this time, the cloud streaming server (110) can create a predefined number of browsers at the time the cloud streaming engine is executed, and the browser can download and execute HTML, CSS, JavaScript, etc. and render them on the screen.
[0073] At this time, HTML (Hyper Text Markup Language) provides the large framework of a web page, CSS (Cascading Style Sheets) manages design elements such as color and font, and JavaScript is a cross-platform, object-oriented scripting language that can be responsible for the operation of a web page.
[0074] The cloud streaming server (110) compares the previous image captured from the web application with the current image to calculate the difference area.
[0075] Additionally, the cloud streaming server (110) determines whether to perform an efficient image encoding process by considering the size and pixel values of the difference area.
[0076] At this time, an efficient image encoding process can be performed when the size of the difference region is greater than or equal to a preset reference size, and the number of pixels within the difference region that are identical to the previous image is greater than or equal to a preset reference value.
[0077] Additionally, when the cloud streaming server (110) performs an efficient image encoding process, it replaces some pixels in the difference area with special pixels.
[0078] At this time, identical pixels in the current image can be replaced with special pixels.
[0079] At this time, it is possible to determine whether the alpha value of the difference area is 0.
[0080] At this time, if the alpha value of the difference area is 0, the same pixel can be replaced with a special pixel whose RGB values are all 0, and if the alpha value of the difference area is not 0, the same pixel can be replaced with a special pixel whose alpha value is 0 and RGB values are not 0.
[0081] In this case, the special pixel may correspond to a pixel that is not used in the web application.
[0082] Additionally, the cloud streaming server (110) encodes the current image replaced with a special pixel and streams it to the user terminal (120-1 to 120-N) along with execution information of an efficient image encoding process.
[0083] At this time, if the user terminal (120-1 to 120-N) receives execution information together with the encoded image, it can display the special pixel by replacing it with the pixel of the previous image by referring to the frame of the previous image.
[0084] Additionally, the cloud streaming server (110) encodes the current image and streams it to the user terminal when the size of the difference area is less than a preset reference size or the number of pixels within the difference area that are identical to the previous image is less than a preset reference value.
[0085] User terminals (120-1 to 120-N) can request a cloud streaming service from a cloud streaming server (110), and receive an execution screen according to the request from the cloud streaming server (110) and provide it to the user. Accordingly, the user can feel as if a video or application corresponding to the requested service is running on the user terminal (120-1 to 120-N).
[0086] At this time, the user terminals (120-1 to 120-N) may correspond to devices that are each connected to a communication network and can communicate with the cloud streaming server (110). For example, the user terminals (120-1 to 120-N) may correspond to various terminals such as all information and communication devices, multimedia terminals, wired terminals, fixed terminals, mobile communication terminals, and IP (Internet Protocol) terminals. In addition, the user terminals (120-1 to 120-N) may be mobile terminals having various mobile communication specifications such as cell phones, mobile phones, portable multimedia players (PMPs), mobile Internet devices (MIDs), smart phones, desktops, tablet computers (Tablet PCs), notebooks, netbooks, personal digital assistants (PDAs), smart TVs, and information and communication devices.
[0087] In addition, the user terminals (120-1 to 120-N) can input various information such as number and character information, set various functions, and transmit signals input in relation to the control of the functions of the user terminals (120-1 to 120-N) to the control unit through the input unit. In addition, the input unit of the user terminals (120-1 to 120-N) can be configured to include at least one of a keypad and a touchpad that generate an input signal according to the user's touch or operation. In this case, the input unit of the user terminals (120-1 to 120-N) is configured in the form of a single touch panel (or touch screen) together with the display unit of the user terminals (120-1 to 120-N) so that input and display functions can be performed simultaneously. In addition to input devices such as a keyboard, keypad, mouse, joystick, etc., the input unit of the user terminals (120-1 to 120-N) can use any form of input means that may be developed in the future.
[0088] In addition, the display unit of the user terminal (120-1 to 120-N) can display information about a series of operation states and operation results that occur during the performance of the functions of the user terminal (120-1 to 120-N). In addition, the display unit of the user terminal (120-1 to 120-N) can display menus of the user terminal (120-1 to 120-N) and user data input by the user. Here, the display unit of the user terminal (120-1 to 120-N) can be composed of a liquid crystal display (LCD), a thin film transistor LCD (TFT-LCD), a light emitting diode (LED), an organic light emitting diode (OLED), an active matrix OLED (AMOLED), a retina display, a flexible display, a three-dimensional (3 Dimension) display, etc. At this time, if the display unit of the user terminal (120-1 to 120-N) is configured in the form of a touch screen, the display unit of the user terminal (120-1 to 120-N) can perform some or all of the functions of the input unit of the user terminal (120-1 to 120-N).
[0089] In addition, the storage unit of the user terminal (120-1 to 120-N) is a device for storing data, and includes a main memory device and an auxiliary memory device, and can store application programs required for the functional operation of the user terminal (120-1 to 120-N). The storage unit of the user terminal (120-1 to 120-N) can largely include a program area and a data area. Here, when the user terminal (120-1 to 120-N) activates each function in response to a user request, it executes the corresponding application programs under the control of the control unit to provide each function.
[0090] In addition, the communication unit of the user terminal (120-1 to 120-N) may perform a function for transmitting and receiving data through a network with the cloud streaming server (110). Here, the communication unit of the user terminal (120-1 to 120-N) may include an RF transmitting means for up-converting and amplifying the frequency of a transmitted signal, an RF receiving means for low-noise amplifying a received signal and down-converting the frequency, etc. The communication unit of the user terminal (120-1 to 120-N) may include a wireless communication module. In addition, the wireless communication module is a configuration for transmitting and receiving data according to a wireless communication method, and when the user terminal (120-1 to 120-N) uses wireless communication, any one of a wireless network communication module, a wireless LAN communication module, and a wireless fan communication module may be used to transmit and receive data to and from the cloud streaming server (110). That is, the user terminal (120-1 to 120-N) connects to the network using a wireless communication module and can transmit and receive data with the cloud streaming server (110) through the network.
[0091] In addition, the control unit of the user terminal (120-1 to 120-N) may be a process device that drives an operating system (OS) and each component. For example, the control unit may control the entire process of connecting to the cloud streaming server (110). At this time, when the user terminal (120-1 to 120-N) connects to the cloud streaming server (110), the entire process of executing content such as a video or an application according to the user's request may be controlled, and a service use request may be transmitted to the cloud streaming server (110) simultaneously with the execution. At this time, information of the user terminal (120-1 to 120-N) required for user authentication may also be controlled to be transmitted together.
[0092] The network (130) provides a path for transmitting data between the cloud streaming server (110) and the user terminals (120-1 to 120-N), and is a concept encompassing both existing networks and networks that can be developed in the future. For example, the network (130) may be a wired or wireless local area network that provides communication between various information devices within a limited area, a mobile communication network that provides communication between mobiles and between mobiles and the outside world, a satellite communication network that provides communication between earth stations using satellites, or a wired or wireless communication network, or a combination of two or more of them. Meanwhile, the transmission method standard of the network is not limited to the existing transmission method standard, and may include all transmission method standards to be developed in the future.
[0093] A system like this can improve the efficiency of image compression by comparing the similarity between before and after images during image cloud streaming.
[0094] Additionally, image cloud streaming can improve image compression efficiency, reduce the amount of data to be transmitted to the terminal, and improve service quality.
[0095] FIG. 2 is a flowchart illustrating a method for providing an image cloud streaming service based on efficient image encoding according to one embodiment of the present invention.
[0096] Referring to FIG. 2, in a method for providing an image cloud streaming service based on efficient image encoding according to one embodiment of the present invention, a cloud streaming server compares a previous image captured in a web application with a current image to calculate a difference area (S210).
[0097] At this time, the previous image may correspond to an image captured from the previous frame of the web application execution screen, and the current image may correspond to an image captured from the current frame of the web application execution screen.
[0098] Therefore, the difference area can mean the area where a change has occurred compared to the previous frame.
[0099] For example, the previous image and the current image can be compared pixel by pixel to determine the area where the pixel values have changed as the difference area.
[0100] In addition, in a method for providing an image cloud streaming service based on efficient image encoding according to one embodiment of the present invention, a cloud streaming server determines whether to perform an efficient image encoding process by considering the size and pixel value of a difference area (S220).
[0101] At this time, an efficient image encoding process may mean a process that can perform image encoding more efficiently than a general image encoding process.
[0102] For example, an efficient image encoding process can perform image encoding with fewer resources than conventional image encoding.
[0103] For another example, image encoding can be performed faster than conventional image encoding through an efficient image encoding process.
[0104] At this time, an efficient image encoding process can be performed when the size of the difference region is greater than or equal to a preset reference size, and the number of pixels within the difference region that are identical to the previous image is greater than or equal to a preset reference value.
[0105] At this time, if the size of the difference area is greater than the preset standard size, it may mean that the previous image and the current image are not similar images.
[0106] Additionally, if the number of pixels identical to the previous image within the difference area is greater than a preset reference value, it may mean that the image is not similar when compared to the previous image, but there is a certain level of pixels identical to the previous image within the difference area.
[0107] By performing an efficient image encoding process when these conditions are satisfied, the current image, which is not similar to the previous image but has a certain level of identical pixels, can be encoded more efficiently.
[0108] For example, assuming that the preset reference size is N and the preset reference value is M, an efficient image encoding process can be performed when the size of the difference area is N or more and the number of pixels identical to the previous image in the difference area is M or more.
[0109] At this time, the preset standard size and preset standard value can be set and changed depending on the situation.
[0110] For example, if the performance of the cloud streaming server is determined to be good, the preset reference size can be set small so that an efficient image encoding process can be performed even if the size of the difference region is small.
[0111] Conversely, if the performance of the cloud streaming server is judged to be poor, the preset reference size can be set to a large size so that the efficient image encoding process can be performed only when the size of the difference region is large.
[0112] In addition, in a method for providing an image cloud streaming service based on efficient image encoding according to one embodiment of the present invention, a cloud streaming server determines whether an efficient image encoding process is performed (S225), and if the efficient image encoding process is performed, replaces some pixels in a difference area with special pixels (S230).
[0113] In this case, the special pixels may correspond to a type of pixel that can improve the efficiency of color compression. Therefore, by replacing some pixels in the difference area with these special pixels, compression efficiency can be improved during color compression and image encoding, thereby reducing the data size to be transmitted to the user terminal.
[0114] At this time, identical pixels in the current image can be replaced with special pixels.
[0115] That is, even within the difference area of the current image where there is a difference when comparing the current image with the previous image, pixels that are identical to the previous image can be replaced with special pixels that can increase compression efficiency during image encoding.
[0116] At this time, it is possible to determine whether the alpha value of the difference area is 0.
[0117] At this time, if the alpha value of the difference area is 0, the same pixel can be replaced with a special pixel whose RGB values are all 0, and if the alpha value of the difference area is not 0, the same pixel can be replaced with a special pixel whose alpha value is 0 and RGB values are not 0.
[0118] For example, if the alpha value of the difference area is 0, the transparency is 100, so adjusting the RGB values may not matter because the image is invisible to the user's eyes. Therefore, if the alpha value of the difference area is 0, a special pixel with all RGB values of 0 can be used to replace the same pixel.
[0119] For another example, if the alpha value of the difference area is not 0, you can replace the same pixel using a special pixel with an alpha value of 0 but RGB values not 0, so that the transparency becomes 100.
[0120] In this case, the special pixel may correspond to a pixel that is not used in the web application.
[0121] If the special pixel is a pixel used in a web application, the special pixel value replaced in the difference area may exist in a part of the current image that does not correspond to the difference area. In such cases, errors may occur when restoring the special pixel on the user terminal. Therefore, the special pixel can be used as a pixel not used in the web application.
[0122] In addition, in a method for providing an image cloud streaming service based on efficient image encoding according to one embodiment of the present invention, a cloud streaming server encodes a current image replaced with a special pixel and streams it to a user terminal along with execution information of an efficient image encoding process (S240).
[0123] At this time, the execution information of the efficient image encoding process may correspond to information provided to the user terminal so that the user terminal can know that a special pixel was used during image encoding.
[0124] At this time, if the user terminal receives execution information together with the encoded image, it can display the special pixel by replacing it with the pixel of the previous image by referring to the frame of the previous image.
[0125] For example, when a user terminal receives information about the execution of an efficient image encoding process, it can determine that a special pixel has been used in the currently received encoded image. Accordingly, the pixel value at the location where the special pixel was used is expected to be identical to the pixel value of the previous image, and the pixel data of the previous image at the same location can be replaced and displayed.
[0126] Additionally, if the decision result of step (S225) indicates that an efficient image encoding process is not performed, the current image is image encoded and streamed to the user terminal (S250).
[0127] At this time, if the size of the difference area is less than a preset reference size or the number of pixels within the difference area that are identical to the previous image is less than a preset reference value, an efficient image encoding process may not be performed.
[0128] For example, if the size of the difference region is less than a preset reference size, this indicates that the previous and current images are similar images. Therefore, efficient image encoding can be performed without applying the efficient image encoding process according to the present invention. Therefore, in such cases, the current image can be encoded using a standard image encoding process and streamed to the user terminal.
[0129] At this time, the user terminal can request a cloud streaming service from the cloud streaming server, and the cloud streaming server can receive the requested execution screen and provide it to the user. Therefore, the user can feel as if the video or application corresponding to the requested service is running on the user terminal.
[0130] By providing an image cloud streaming service based on efficient image encoding, the efficiency of image compression can be improved by comparing the similarity between images before and after image cloud streaming.
[0131] Additionally, image cloud streaming can improve image compression efficiency, reduce the amount of data to be transmitted to the terminal, and improve service quality.
[0132] FIG. 3 is a detailed flowchart illustrating a process for determining whether an efficient image encoding process is executed according to one embodiment of the present invention.
[0133] Referring to FIG. 3, the process of determining whether an efficient image encoding process according to an embodiment of the present invention is executed first compares a previous image captured in a web application with a current image to calculate a difference area (S310).
[0134] At this time, the previous image may correspond to an image captured from the previous frame of the web application execution screen, and the current image may correspond to an image captured from the current frame of the web application execution screen.
[0135] Therefore, the difference area can mean the area where a change has occurred compared to the previous frame.
[0136] For example, the previous image and the current image can be compared pixel by pixel to determine the area where the pixel values have changed as the difference area.
[0137] After this, it is determined whether the size of the difference area is greater than or equal to a preset standard size (S315).
[0138] At this time, if the size of the difference area is greater than the preset standard size, it may mean that the previous image and the current image are not similar images.
[0139] If the size of the difference area is greater than or equal to a preset standard size as a result of the judgment in step (S315), it is determined whether the pixel identity of the difference area is greater than or equal to the preset standard (S325).
[0140] At this time, the fact that the number of pixels identical to the previous image within the difference area is greater than a preset reference value may mean that the image is not similar when compared to the previous image, but has a certain level of identical pixels to the previous image within the difference area.
[0141] If the pixel identity of the difference area is greater than a preset standard as a result of the judgment in step (S325), an efficient image encoding process is executed (S330).
[0142] By performing an efficient image encoding process when these conditions are satisfied, the current image, which is not similar to the previous image but has a certain level of identical pixels, can be encoded more efficiently.
[0143] For example, assuming that the preset reference size is N and the preset reference value is M, an efficient image encoding process can be performed when the size of the difference area is N or more and the number of pixels identical to the previous image in the difference area is M or more.
[0144] At this time, the preset standard size and preset standard value can be set and changed depending on the situation.
[0145] For example, if the performance of the cloud streaming server is determined to be good, the preset reference size can be set small so that an efficient image encoding process can be performed even if the size of the difference region is small.
[0146] Conversely, if the performance of the cloud streaming server is judged to be poor, the preset reference size can be set to a large size so that the efficient image encoding process can be performed only when the size of the difference region is large.
[0147] At this time, an efficient image encoding process may mean a process that can perform image encoding more efficiently than a general image encoding process.
[0148] For example, an efficient image encoding process can perform image encoding with fewer resources than conventional image encoding.
[0149] For another example, image encoding can be performed faster than conventional image encoding through an efficient image encoding process.
[0150] At this time, when performing an efficient image encoding process, some pixels in the difference area are replaced with special pixels.
[0151] In this case, the special pixels may correspond to a type of pixel that can improve the efficiency of color compression. Therefore, by replacing some pixels in the difference area with these special pixels, compression efficiency can be improved during color compression and image encoding, thereby reducing the data size to be transmitted to the user terminal.
[0152] At this time, identical pixels in the current image can be replaced with special pixels.
[0153] That is, even within the difference area of the current image where there is a difference when comparing the current image with the previous image, pixels that are identical to the previous image can be replaced with special pixels that can increase compression efficiency during image encoding.
[0154] At this time, it is possible to determine whether the alpha value of the difference area is 0.
[0155] At this time, if the alpha value of the difference area is 0, the same pixel can be replaced with a special pixel whose RGB values are all 0, and if the alpha value of the difference area is not 0, the same pixel can be replaced with a special pixel whose alpha value is 0 and RGB values are not 0.
[0156] For example, if the alpha value of the difference area is 0, the transparency is 100, so adjusting the RGB values may not matter because the image is invisible to the user's eyes. Therefore, if the alpha value of the difference area is 0, a special pixel with all RGB values of 0 can be used to replace the same pixel.
[0157] For another example, if the alpha value of the difference area is not 0, you can replace the same pixel using a special pixel with an alpha value of 0 but RGB values not 0, so that the transparency becomes 100.
[0158] In this case, the special pixel may correspond to a pixel that is not used in the web application.
[0159] If the special pixel is a pixel used in a web application, the special pixel value replaced in the difference area may exist in a part of the current image that does not correspond to the difference area. In such cases, errors may occur when restoring the special pixel on the user terminal. Therefore, the special pixel can be used as a pixel not used in the web application.
[0160] In addition, if the size of the difference area as a result of the judgment in step (S315) is less than a preset standard size, or if the pixel identity of the difference area as a result of the judgment in step (S325) is less than a preset standard, a general image encoding process can be executed (S320).
[0161] For example, if the size of the difference region is less than a preset reference size, this indicates that the previous and current images are similar images. Therefore, efficient image encoding can be performed without applying the efficient image encoding process according to the present invention. Therefore, in such cases, the current image can be encoded using a standard image encoding process and streamed to the user terminal.
[0162] FIG. 4 is a drawing showing an example of replacing some pixels in a difference area with special pixels according to the present invention.
[0163] Referring to FIG. 4, the difference area (420) according to the present invention can be calculated by comparing a previous image captured in a web application with a current image (410).
[0164] If the size of the difference area (420) calculated in this way is greater than or equal to a preset reference size, it can be determined whether the pixels within the difference area (420) that are identical to the previous image are greater than or equal to the preset reference value.
[0165] After this, if the pixel (430) identical to the previous image in the difference area (420) shown in FIG. 4 is greater than a preset reference value, the identical pixel (430) can be replaced with a special pixel (431).
[0166] FIG. 5 is a diagram showing an example of a process for providing an image cloud streaming service based on efficient image encoding according to the present invention.
[0167] Referring to FIG. 5, a process for providing an image cloud streaming service based on efficient image encoding according to the present invention can have a cloud streaming server render (S510) and capture (S520) the current frame of a web application. The captured current image can then be subjected to either a general image encoding (S530) or an efficient image encoding (S531) process, thereby streaming the encoded data to a user terminal (S540).
[0168] At this time, efficient image encoding (S531) can be performed when the size of the difference area between the previous image and the current image is greater than or equal to a preset reference size, and the number of pixels within the difference area that are identical to the previous image is greater than or equal to a preset reference value.
[0169] At this time, if the size of the difference area is greater than the preset standard size, it may mean that the previous image and the current image are not similar images.
[0170] Additionally, if the number of pixels identical to the previous image within the difference area is greater than a preset reference value, it may mean that the image is not similar when compared to the previous image, but there is a certain level of pixels identical to the previous image within the difference area.
[0171] By performing an efficient image encoding process when these conditions are satisfied, the current image, which is not similar to the previous image but has a certain level of identical pixels, can be encoded more efficiently.
[0172] At this time, some pixels in the difference area can be replaced with special pixels through efficient image encoding (S531).
[0173] In this case, the special pixels may correspond to a type of pixel that can improve the efficiency of color compression. Therefore, by replacing some pixels in the difference area with these special pixels, compression efficiency can be improved during color compression and image encoding, thereby reducing the data size to be transmitted to the user terminal.
[0174] At this time, identical pixels in the current image can be replaced with special pixels.
[0175] That is, even within the difference area of the current image where there is a difference when comparing the current image with the previous image, pixels that are identical to the previous image can be replaced with special pixels that can increase compression efficiency during image encoding.
[0176] At this time, it is possible to determine whether the alpha value of the difference area is 0.
[0177] At this time, if the alpha value of the difference area is 0, the same pixel can be replaced with a special pixel whose RGB values are all 0, and if the alpha value of the difference area is not 0, the same pixel can be replaced with a special pixel whose alpha value is 0 and RGB values are not 0.
[0178] For example, if the alpha value of the difference area is 0, the transparency is 100, so adjusting the RGB values may not matter because the image is invisible to the user's eyes. Therefore, if the alpha value of the difference area is 0, a special pixel with all RGB values of 0 can be used to replace the same pixel.
[0179] For another example, if the alpha value of the difference area is not 0, you can replace the same pixel using a special pixel with an alpha value of 0 but RGB values not 0, so that the transparency becomes 100.
[0180] In this case, the special pixel may correspond to a pixel that is not used in the web application.
[0181] If the special pixel is a pixel used in a web application, the special pixel value replaced in the difference area may exist in a part of the current image that does not correspond to the difference area. In such cases, errors may occur when restoring the special pixel on the user terminal. Therefore, the special pixel can be used as a pixel not used in the web application.
[0182] In addition, when efficient image encoding (S531) is performed, execution information of the efficient image encoding process together with the encoded image can be streamed to the user terminal, thereby allowing the user terminal to know that a special pixel was used during image encoding.
[0183] Figure 6 is a flowchart illustrating an example of a processing process in a user terminal according to the present invention.
[0184] Referring to FIG. 6, a user terminal according to the present invention receives streaming data from a cloud streaming server (S610).
[0185] After this, it is determined whether the streaming data contains execution information of an efficient image encoding process (S615).
[0186] If the streaming data includes execution information of an efficient image encoding process as a result of the judgment in step (S615), the replacement area can be restored by obtaining the pixel values of the replacement area from the previous image while decoding the encoded image.
[0187] At this time, the user terminal can determine that the currently received encoded image uses special pixels based on the execution information of the efficient image encoding process. Therefore, the pixel values of the replacement area where the special pixels are used are expected to be identical to those of the previous image, and the current image can be restored by replacing the pixel values of the replacement area with the pixel values of the previous image.
[0188] After this, the restored current image is displayed to the user (S640).
[0189] In addition, if the streaming data does not include execution information of an efficient image encoding process as a result of the judgment in step (S615), general decoding is performed (S620) and the acquired current image is displayed to the user (S640).
[0190] FIG. 7 is a block diagram illustrating a cloud streaming server according to one embodiment of the present invention.
[0191] Referring to FIG. 7, a cloud streaming server according to one embodiment of the present invention includes a communication unit (710), a processor (720), and a memory (730).
[0192] The communication unit (710) serves to transmit and receive information related to multiple user terminals via a communication network, such as the network illustrated in FIG. 1. In particular, the communication unit (710) according to one embodiment of the present invention may receive a request for a cloud streaming service from a user terminal and provide a data packet corresponding to the cloud streaming service requested by the user terminal to the user terminal.
[0193] The processor (720) compares the previous image captured from the web application with the current image to calculate the difference area.
[0194] At this time, the previous image may correspond to an image captured from the previous frame of the web application execution screen, and the current image may correspond to an image captured from the current frame of the web application execution screen.
[0195] Therefore, the difference area can mean the area where a change has occurred compared to the previous frame.
[0196] For example, the previous image and the current image can be compared pixel by pixel to determine the area where the pixel values have changed as the difference area.
[0197] Additionally, the processor (720) determines whether to perform an efficient image encoding process by considering the size and pixel values of the difference area.
[0198] At this time, an efficient image encoding process may mean a process that can perform image encoding more efficiently than a general image encoding process.
[0199] For example, an efficient image encoding process can perform image encoding with fewer resources than conventional image encoding.
[0200] For another example, image encoding can be performed faster than conventional image encoding through an efficient image encoding process.
[0201] At this time, an efficient image encoding process can be performed when the size of the difference region is greater than or equal to a preset reference size, and the number of pixels within the difference region that are identical to the previous image is greater than or equal to a preset reference value.
[0202] At this time, if the size of the difference area is greater than the preset standard size, it may mean that the previous image and the current image are not similar images.
[0203] Additionally, if the number of pixels identical to the previous image within the difference area is greater than a preset reference value, it may mean that the image is not similar when compared to the previous image, but there is a certain level of pixels identical to the previous image within the difference area.
[0204] By performing an efficient image encoding process when these conditions are satisfied, the current image, which is not similar to the previous image but has a certain level of identical pixels, can be encoded more efficiently.
[0205] For example, assuming that the preset reference size is N and the preset reference value is M, an efficient image encoding process can be performed when the size of the difference area is N or more and the number of pixels identical to the previous image in the difference area is M or more.
[0206] At this time, the preset standard size and preset standard value can be set and changed depending on the situation.
[0207] For example, if the performance of the cloud streaming server is determined to be good, the preset reference size can be set small so that an efficient image encoding process can be performed even if the size of the difference region is small.
[0208] Conversely, if the performance of the cloud streaming server is judged to be poor, the preset reference size can be set to a large size so that the efficient image encoding process can be performed only when the size of the difference region is large.
[0209] Additionally, the processor (720) determines whether an efficient image encoding process is performed, and if the efficient image encoding process is performed, replaces some pixels in the difference area with special pixels.
[0210] In this case, the special pixels may correspond to a type of pixel that can improve the efficiency of color compression. Therefore, by replacing some pixels in the difference area with these special pixels, compression efficiency can be improved during color compression and image encoding, thereby reducing the data size to be transmitted to the user terminal.
[0211] At this time, identical pixels in the current image can be replaced with special pixels.
[0212] That is, even within the difference area of the current image where there is a difference when comparing the current image with the previous image, pixels that are identical to the previous image can be replaced with special pixels that can increase compression efficiency during image encoding.
[0213] At this time, it is possible to determine whether the alpha value of the difference area is 0.
[0214] At this time, if the alpha value of the difference area is 0, the same pixel can be replaced with a special pixel whose RGB values are all 0, and if the alpha value of the difference area is not 0, the same pixel can be replaced with a special pixel whose alpha value is 0 and RGB values are not 0.
[0215] For example, if the alpha value of the difference area is 0, the transparency is 100, so adjusting the RGB values may not matter because the image is invisible to the user's eyes. Therefore, if the alpha value of the difference area is 0, a special pixel with all RGB values of 0 can be used to replace the same pixel.
[0216] For another example, if the alpha value of the difference area is not 0, you can replace the same pixel using a special pixel with an alpha value of 0 but RGB values not 0, so that the transparency becomes 100.
[0217] In this case, the special pixel may correspond to a pixel that is not used in the web application.
[0218] If the special pixel is a pixel used in a web application, the special pixel value replaced in the difference area may exist in a part of the current image that does not correspond to the difference area. In such cases, errors may occur when restoring the special pixel on the user terminal. Therefore, the special pixel can be used as a pixel not used in the web application.
[0219] Additionally, the processor (720) encodes the current image replaced with special pixels and streams it to the user terminal along with execution information of an efficient image encoding process.
[0220] At this time, the execution information of the efficient image encoding process may correspond to information provided to the user terminal so that the user terminal can know that a special pixel was used during image encoding.
[0221] At this time, if the user terminal receives execution information together with the encoded image, it can display the special pixel by replacing it with the pixel of the previous image by referring to the frame of the previous image.
[0222] For example, when a user terminal receives information about the execution of an efficient image encoding process, it can determine that a special pixel has been used in the currently received encoded image. Accordingly, the pixel value at the location where the special pixel was used is expected to be identical to the pixel value of the previous image, and the pixel data of the previous image at the same location can be replaced and displayed.
[0223] Additionally, the processor (720) encodes the current image and streams it to the user terminal when it does not perform an efficient image encoding process.
[0224] At this time, if the size of the difference area is less than a preset reference size or the number of pixels within the difference area that are identical to the previous image is less than a preset reference value, an efficient image encoding process may not be performed.
[0225] For example, if the size of the difference region is less than a preset reference size, this indicates that the previous and current images are similar images. Therefore, efficient image encoding can be performed without applying the efficient image encoding process according to the present invention. Therefore, in such cases, the current image can be encoded using a standard image encoding process and streamed to the user terminal.
[0226] At this time, the user terminal can request a cloud streaming service from the cloud streaming server, and the cloud streaming server can receive the requested execution screen and provide it to the user. Therefore, the user can feel as if the video or application corresponding to the requested service is running on the user terminal.
[0227] Memory (730) stores the difference area.
[0228] In addition, the memory (730) stores various information generated in the process of providing an image cloud streaming service based on efficient image encoding according to an embodiment of the present invention as described above.
[0229] In some embodiments, the memory (730) may be configured independently from the cloud streaming server to support functions for providing an image cloud streaming service based on efficient image encoding. In this case, the memory (730) may function as a separate large-capacity storage and may include control functions for performing operations.
[0230] Additionally, the cloud streaming server configured as described above may be implemented with one or more servers.
[0231] Meanwhile, the cloud streaming server is equipped with memory and can store information within the device. In one embodiment, the memory is a computer-readable medium. In one embodiment, the memory may be a volatile memory unit, and in another embodiment, the memory may be a non-volatile memory unit. In one embodiment, the storage device is a computer-readable medium. In various other embodiments, the storage device may include, for example, a hard disk drive, an optical disk drive, or any other mass storage device.
[0232] Through a cloud streaming server like this, the efficiency of image compression can be improved by comparing the similarity between before and after images during image cloud streaming.
[0233] Additionally, image cloud streaming can improve image compression efficiency, reduce the amount of data to be transmitted to the terminal, and improve service quality.
[0234] Figure 8 is a block diagram showing a cloud streaming service system according to one embodiment of the present invention.
[0235] Referring to FIG. 8, a cloud streaming service system according to one embodiment of the present invention includes a cloud streaming server (810), user terminals (820-1 to 820-N), and a network (830).
[0236] Cloud streaming service or cloud computing service is a service that allows users to store content in cloud storage on the Internet rather than in local storage, and access the cloud storage and use the content anytime, anywhere using an Internet-enabled device.
[0237] The cloud streaming server (810) may include a video cloud streaming engine for processing cloud streaming services requested from user terminals (120-1 to 120-N).
[0238] At this time, the cloud streaming server (810) can create a predefined number of browsers at the time the cloud streaming engine is executed, and the browser can download and execute HTML, CSS, JavaScript, etc. and render them on the screen.
[0239] At this time, HTML (Hyper Text Markup Language) provides the large framework of a web page, CSS (Cascading Style Sheets) manages design elements such as color and font, and JavaScript is a cross-platform, object-oriented scripting language that can be responsible for the operation of a web page.
[0240] The cloud streaming server (810) first encodes the alpha data of the application execution screen using the first encoding method.
[0241] At this time, the first encoding method may correspond to a run-length encoding method or a HUFFMAN encoding method.
[0242] Additionally, the cloud streaming server (810) encodes the primary encoding alpha data a second time using a second encoding method, taking into account the compression ratio of the primary encoding alpha data.
[0243] At this time, the second encoding method may correspond to the ZIP method.
[0244] At this time, the ZIP method can be operated by setting either the maximum compression ratio or the maximum speed option, taking into account the performance of the user terminal.
[0245] At this time, if the compression ratio of the primary encoding alpha data is lower than or equal to the preset first compression ratio, the secondary encoding can be performed.
[0246] At this time, the preset first compression ratio can be set considering the application execution screen and network performance.
[0247] Additionally, the cloud streaming server (810) streams secondary encoded alpha data together with encoded video element stream data to user terminals (820-1 to 820-N).
[0248] Additionally, the cloud streaming server (810) does not perform secondary encoding when the compression ratio of the primary encoding alpha data exceeds a preset first compression ratio, and streams the primary encoding alpha data together with the encoded video element stream data to the user terminal (820-1 to 820-N).
[0249] At this time, the primary encoding alpha data or the secondary encoding alpha data can be streamed in accordance with the transmission standard including the compression format, compression size, and compressed data.
[0250] At this time, the user terminal (820-1 to 820-N) can decode the first encoding alpha data by applying the first encoding method according to the compression format included in the transmission standard, or can decode the second encoding alpha data by sequentially applying the second encoding method and the first encoding method.
[0251] User terminals (820-1 to 820-N) can request a cloud streaming service from a cloud streaming server (810), and receive an execution screen according to the request from the cloud streaming server (810) and provide it to the user. Accordingly, the user can feel as if a video or application corresponding to the requested service is running on the user terminal (820-1 to 820-N).
[0252] At this time, the user terminals (820-1 to 820-N) may correspond to devices that are each connected to a communication network and can communicate with the cloud streaming server (810). For example, the user terminals (820-1 to 820-N) may correspond to various terminals such as all information and communication devices, multimedia terminals, wired terminals, fixed terminals, mobile communication terminals, and IP (Internet Protocol) terminals. In addition, the user terminals (120-1 to 120-N) may be mobile terminals having various mobile communication specifications such as cell phones, mobile phones, portable multimedia players (PMPs), mobile Internet devices (MIDs), smart phones, desktops, tablet computers (Tablet PCs), notebooks, netbooks, personal digital assistants (PDAs), smart TVs, and information and communication devices.
[0253] In addition, the user terminal (820-1 to 820-N) can input various information such as number and character information, set various functions, and transmit signals input in relation to the control of the function of the user terminal (820-1 to 820-N) to the control unit through the input unit. In addition, the input unit of the user terminal (820-1 to 820-N) can be configured to include at least one of a keypad and a touchpad that generate an input signal according to the user's touch or operation. In this case, the input unit of the user terminal (820-1 to 820-N) is configured in the form of a single touch panel (or touch screen) together with the display unit of the user terminal (820-1 to 820-N) so that input and display functions can be performed simultaneously. In addition to input devices such as a keyboard, keypad, mouse, joystick, etc., the input unit of the user terminal (820-1 to 820-N) can use any form of input means that may be developed in the future.
[0254] Such a system can efficiently transmit video element streams and alpha data from a cloud streaming UI to user terminals.
[0255] Additionally, latency during alpha data transmission can be optimized when providing video cloud streaming services.
[0256] Additionally, by compressing alpha data and providing it in a format that takes into account the performance of the user terminal, alpha data can be effectively decompressed even on low-spec terminals.
[0257] FIG. 9 is a flowchart illustrating a method for providing a cloud streaming service based on efficient alpha encoding according to an embodiment of the present invention.
[0258] Referring to FIG. 9, in a method for providing a cloud streaming service based on efficient alpha encoding according to one embodiment of the present invention, a cloud streaming server first encodes alpha data of an application execution screen using a first encoding method (S910).
[0259] At this time, the first encoding method may correspond to a run-length encoding method or a HUFFMAN encoding method.
[0260] At this time, the run-length encoding method reduces the amount of information when identical data is repeated continuously by expressing the corresponding information as a single data value and the number of times that a single data value is repeated. In other words, a run is a continuous sequence of identical data, and the length of that continuous sequence is the length. The original data can be reproduced using only this run and length information.
[0261] At this time, the Huffman coding method is a method of compressing data by assigning short codes to symbols that occur frequently in the data and relatively long codes to symbols that occur less frequently. For example, the size of the string 'ABCDABA' is 56 bits, and it can be assumed that a prefix code such as A=0, B=10, C=110, D=111 is assigned to each character symbol through the Huffman coding method. At this time, the string 'ABCDABA' can be compressed into a 13-bit bitset corresponding to '0101101101110100'. At this time, a shorter prefix code can be assigned as the frequency of occurrence is high, and a relatively longer prefix code can be assigned as the frequency of occurrence is low.
[0262] Run-length coding and Huffman coding are simple data compression methods that can be effectively decompressed even on low-spec devices. Furthermore, these simple compression methods offer the advantage of fast processing speeds, which helps prevent delays when encoding alpha data on cloud streaming servers.
[0263] In addition, in a method for providing a cloud streaming service based on efficient alpha encoding according to one embodiment of the present invention, a cloud streaming server secondarily encodes primary encoded alpha data using a second encoding method, taking into account the compression ratio of primary encoded alpha data (S920).
[0264] At this time, the second encoding method may correspond to the ZIP method.
[0265] At this time, run-length coding or Huffman coding, which correspond to the first encoding method, are most efficient when there is a lot of repetitive data, but efficiency may decrease when there is little repetitive data. Therefore, in the present invention, to compensate for the reduced compression efficiency when the alpha data is low-repetition data, additional compression can be performed using the ZIP method.
[0266] At this time, the ZIP method can be operated by setting either the maximum compression ratio or the maximum speed option, taking into account the performance of the user terminal.
[0267] For example, if the user terminal's performance is good, a high compression ratio can be expected to not incur any significant latency during decoding. Therefore, in such cases, the ZIP method can be set to BEST_COMPRESSION to perform encoding of the primary encoded alpha data at the maximum compression ratio.
[0268] For example, if the user's terminal performance is poor, it may be necessary to set the compression speed to a higher value rather than the compression ratio to ensure the fastest possible encoding. In this case, the ZIP method option can be set to BEST_SPEED to ensure the encoding of the primary encoded alpha data is completed at maximum speed.
[0269] At this time, if the compression ratio of the primary encoding alpha data is lower than or equal to the preset first compression ratio, the secondary encoding can be performed.
[0270] For example, assuming that the preset first compression ratio is 80%, secondary encoding can be performed in ZIP format if the compression ratio of the primary encoding alpha data is less than 80%.
[0271] At this time, the preset first compression ratio can be set considering the application execution screen and network performance.
[0272] For example, if the data size of the application execution screen itself to be transmitted to the user terminal is not very large, the preset first compression ratio can be set relatively low so that the screen can be streamed with only the first encoding.
[0273] For another example, if the application execution screen to be transmitted to a user terminal contains animations or other effects, resulting in a large data size, the data compression rate can be increased by setting the preset first compression rate relatively high. Furthermore, setting the preset first compression rate relatively high can also increase the likelihood of secondary encoding being performed.
[0274] For another example, if the network performance between the cloud streaming server and the user terminal is good and data transmission is smooth, the preset first compression ratio can be set relatively low so that data can be streamed with only the first encoding.
[0275] If the network performance between the cloud streaming server and the user terminal is poor and data transmission is not smooth, the preset first compression rate can be set high to minimize the size of the transmitted data, and if possible, secondary encoding can be performed to enable data streaming.
[0276] In addition, in a method for providing an efficient alpha encoding-based cloud streaming service according to one embodiment of the present invention, a cloud streaming server streams secondary encoded alpha data together with encoded video element stream data to a user terminal (S930).
[0277] At this time, the user terminal can display a screen with transparency applied to the user by combining the secondary encoded alpha data and the encoded video element stream data.
[0278] For example, a user terminal may receive secondary encoded alpha data and encoded video element stream data, and then decode each data. Thereafter, the decoded video element stream data and alpha data may be combined to display a video screen with transparency applied to the user.
[0279] In addition, although not shown in FIG. 9, a method for providing an efficient alpha encoding-based cloud streaming service according to an embodiment of the present invention allows a cloud streaming server to stream primary encoding alpha data together with encoded video element stream data to a user terminal without performing secondary encoding when the compression ratio of primary encoding alpha data exceeds a preset first compression ratio.
[0280] At this time, the primary encoding alpha data or the secondary encoding alpha data can be streamed in accordance with the transmission standard including the compression format, compression size, and compressed data.
[0281] At this time, the user terminal can decode the first encoding alpha data by applying the first encoding method according to the compression format included in the transmission standard, or can decode the second encoding alpha data by sequentially applying the second encoding method and the first encoding method.
[0282] For example, assuming that the compression format is REL ONLY or HUFFMAN ONLY, the received alpha data can be judged to have been subjected to only primary encoding, and the alpha data can be decompressed using the RLE method or the HUFFMAN method.
[0283] For another example, assuming the compression format is RLE+ZIP or HUFFMAN+ZIP, the received alpha data can be determined to have been encoded twice. In this case, the alpha data can be first decompressed using the ZIP format, and then decompressed again using the RLE or HUFFMAN format.
[0284] At this time, the user terminal can request a cloud streaming service from the cloud streaming server, and the cloud streaming server can receive the requested execution screen and provide it to the user. Therefore, the user can feel as if the video or application corresponding to the requested service is running on the user terminal.
[0285] This method of providing a cloud streaming service based on efficient alpha encoding enables efficient transmission of video element streams and alpha data from a cloud streaming UI to a user terminal.
[0286] Additionally, latency during alpha data transmission can be optimized when providing video cloud streaming services.
[0287] Additionally, by compressing alpha data and providing it in a format that takes into account the performance of the user terminal, alpha data can be effectively decompressed even on low-spec terminals.
[0288] FIG. 10 is a diagram illustrating a process for providing a cloud streaming service based on efficient alpha encoding according to the present invention.
[0289] Referring to FIG. 10, the process of providing an efficient alpha encoding-based cloud streaming service according to the present invention can be divided into an alpha encoding process (1010) and a video encoding process (1020) and performed when the cloud streaming server receives an application execution screen from a web application server.
[0290] The alpha encoding process (1010) can first obtain alpha data for the application execution screen (S1012).
[0291] After this, the alpha data of the application execution screen is first encoded using the first encoding method (S1014).
[0292] At this time, the first encoding method may correspond to a run-length encoding method or a HUFFMAN encoding method.
[0293] At this time, the run-length encoding method reduces the amount of information when identical data is repeated continuously by expressing the corresponding information as a single data value and the number of times that a single data value is repeated. In other words, a run is a continuous sequence of identical data, and the length of that continuous sequence is the length. The original data can be reproduced using only this run and length information.
[0294] At this time, the Huffman coding method is a method of compressing data by assigning short codes to symbols that occur frequently in the data and relatively long codes to symbols that occur less frequently. For example, the size of the string 'ABCDABA' is 56 bits, and it can be assumed that a prefix code such as A=0, B=10, C=110, D=111 is assigned to each character symbol through the Huffman coding method. At this time, the string 'ABCDABA' can be compressed into a 13-bit bitset corresponding to '0101101101110100'. At this time, a shorter prefix code can be assigned as the frequency of occurrence is high, and a relatively longer prefix code can be assigned as the frequency of occurrence is low.
[0295] Run-length coding and Huffman coding are simple data compression methods that can be effectively decompressed even on low-spec devices. Furthermore, these simple compression methods offer the advantage of fast processing speeds, which helps prevent delays when encoding alpha data on cloud streaming servers.
[0296] After this, the primary encoding alpha data is secondarily encoded using a second encoding method while taking into account the compression ratio of the primary encoding alpha data (S1016).
[0297] At this time, the second encoding method may correspond to the ZIP method.
[0298] At this time, run-length coding or Huffman coding, which correspond to the first encoding method, are most efficient when there is a lot of repetitive data, but efficiency may decrease when there is little repetitive data. Therefore, in the present invention, to compensate for the reduced compression efficiency when the alpha data is low-repetition data, additional compression can be performed using the ZIP method.
[0299] At this time, the ZIP method can be operated by setting either the maximum compression ratio or the maximum speed option, taking into account the performance of the user terminal.
[0300] For example, if the user terminal's performance is good, a high compression ratio is expected to not incur any significant latency during decoding. Therefore, in such cases, the ZIP method can be set to BEST_COMPRESSION to perform encoding of the primary encoded alpha data at the maximum compression ratio.
[0301] For example, if the user's terminal performance is poor, it may be necessary to set the compression speed to a higher value rather than the compression ratio to ensure the fastest possible encoding. In this case, the ZIP method option can be set to BEST_SPEED to ensure the encoding of the primary encoded alpha data is completed at maximum speed.
[0302] At this time, if the compression ratio of the primary encoding alpha data is lower than or equal to the preset first compression ratio, the secondary encoding can be performed.
[0303] For example, assuming that the preset first compression ratio is 80%, secondary encoding can be performed in ZIP format if the compression ratio of the primary encoding alpha data is less than 80%.
[0304] At this time, the preset first compression ratio can be set considering the application execution screen and network performance.
[0305] For example, if the data size of the application execution screen itself to be transmitted to the user terminal is not very large, the preset first compression ratio can be set relatively low so that the screen can be streamed with only the first encoding.
[0306] For another example, if the application execution screen to be transmitted to a user terminal contains animations or other effects, resulting in a large data size, the data compression rate can be increased by setting the preset first compression rate relatively high. Furthermore, setting the preset first compression rate relatively high can also increase the likelihood of secondary encoding being performed.
[0307] For another example, if the network performance between the cloud streaming server and the user terminal is good and data transmission is smooth, the preset first compression ratio can be set relatively low so that data can be streamed with only the first encoding.
[0308] If the network performance between the cloud streaming server and the user terminal is poor and data transmission is not smooth, the preset first compression rate can be set high to minimize the size of the transmitted data, and if possible, secondary encoding can be performed to enable data streaming.
[0309] The video encoding process (1020) captures a video element stream (S1022) and video encodes the captured video element stream (S1024).
[0310] After this, the secondary encoded alpha data and video encoding data obtained through the alpha encoding process (1010) and the video encoding process (1020) are streamed together to the user terminal (S1030).
[0311] Figure 11 is an operation flow diagram showing an example of a case where a run length encoding method is used as the first encoding method according to the present invention.
[0312] Referring to FIG. 11, when the run-length encoding method is used as the first encoding method according to the present invention, alpha data of the application execution screen can be obtained (S1110), and the alpha data can be first encoded using the run-length encoding method (S1120).
[0313] At this time, the run-length encoding method reduces the amount of information when identical data is repeated continuously by expressing the corresponding information as a single data value and the number of times that a single data value is repeated. In other words, a run is a continuous sequence of identical data, and the length of that continuous sequence is the length. The original data can be reproduced using only this run and length information.
[0314] After this, it can be determined whether the primary encoding alpha data exceeds the RLE threshold (S1125).
[0315] At this time, the RLE threshold value may correspond to a preset RLE compression ratio. Accordingly, it is possible to determine whether the compression ratio of the primary encoded alpha data exceeds the preset RLE compression ratio.
[0316] If the judgment result of step (S1125) shows that the primary encoding alpha data does not exceed the RLE threshold, i.e., if the compression ratio of the primary encoding alpha data is lower than or equal to the preset RLE compression ratio, the primary encoding alpha data can be secondary encoded using the ZIP method (S1130).
[0317] At this time, the run-length encoding method corresponding to the first encoding method is most efficient when there is a lot of repetitive data, but its efficiency may decrease when there is little repetitive data. Therefore, in the present invention, to compensate for the reduced compression efficiency when the alpha data is low-repetition data, additional compression can be performed using the ZIP method.
[0318] At this time, the ZIP method can be operated by setting either the maximum compression ratio or the maximum speed option, taking into account the performance of the user terminal.
[0319] For example, if the user terminal's performance is good, a high compression ratio can be expected to not incur any significant latency during decoding. Therefore, in such cases, the ZIP method can be set to BEST_COMPRESSION to perform encoding of the primary encoded alpha data at the maximum compression ratio.
[0320] For example, if the user's terminal performance is poor, it may be necessary to set the compression speed to a higher value rather than the compression ratio to ensure the fastest possible encoding. In this case, the ZIP method option can be set to BEST_SPEED to ensure the encoding of the primary encoded alpha data is completed at maximum speed.
[0321] After this, the secondary encoded alpha data can be streamed to the user terminal together with the encoded video element stream data (S1140).
[0322] At this time, the user terminal can display a screen with transparency applied to the user by combining the secondary encoded alpha data and the encoded video element stream data.
[0323] In addition, if the judgment result of step (S1125) is that the primary encoding alpha data exceeds the RLE threshold, i.e., if the compression ratio of the primary encoding alpha data exceeds the preset RLE compression ratio, the primary encoding alpha data can be streamed to the user terminal together with the encoded video element stream data (S1140).
[0324] Figure 12 is an operation flow diagram showing an example of using the Huffman encoding method as the first encoding method according to the present invention.
[0325] Referring to FIG. 12, when the Huffman encoding method is used as the first encoding method according to the present invention, alpha data of the application execution screen can be obtained (S1210), and the alpha data can be first encoded using the Huffman encoding method (S1220).
[0326] At this time, the Huffman coding method is a method of compressing data by assigning short codes to symbols that occur frequently in the data and relatively long codes to symbols that occur less frequently. For example, the size of the string 'ABCDABA' is 56 bits, and it can be assumed that a prefix code such as A=0, B=10, C=110, D=111 is assigned to each character symbol through the Huffman coding method. At this time, the string 'ABCDABA' can be compressed into a 13-bit bitset corresponding to '0101101101110100'. At this time, a shorter prefix code can be assigned as the frequency of occurrence is high, and a relatively longer prefix code can be assigned as the frequency of occurrence is low.
[0327] After this, it can be determined whether the primary encoded alpha data exceeds the Huffman threshold (S1225).
[0328] At this time, the Huffman threshold may correspond to a preset Huffman compression ratio. Accordingly, it is possible to determine whether the compression ratio of the primary encoded alpha data exceeds the preset Huffman compression ratio.
[0329] If the judgment result of step (S1225) shows that the primary encoding alpha data does not exceed the Huffman threshold, that is, if the compression ratio of the primary encoding alpha data is lower than or equal to the preset Huffman compression ratio, the primary encoding alpha data can be secondary encoded using the ZIP method (S1230).
[0330] At this time, the Huffman encoding method, which corresponds to the first encoding method, is most efficient when data contains a lot of repetitive data, but its efficiency may decrease when data contains less repetitive data. Therefore, in the present invention, to compensate for the reduced compression efficiency when alpha data contains less repetitive data, additional compression can be performed using the ZIP method.
[0331] At this time, the ZIP method can be operated by setting either the maximum compression ratio or the maximum speed option, taking into account the performance of the user terminal.
[0332] For example, if the user terminal's performance is good, a high compression ratio is expected to not incur any significant latency during decoding. Therefore, in such cases, the ZIP method can be set to BEST_COMPRESSION to perform encoding of the primary encoded alpha data at the maximum compression ratio.
[0333] For example, if the user's terminal performance is poor, it may be necessary to set the compression speed to a higher value rather than the compression ratio to ensure the fastest possible encoding. In this case, the ZIP method option can be set to BEST_SPEED to ensure the encoding of the primary encoded alpha data is completed at maximum speed.
[0334] After this, the secondary encoded alpha data can be streamed to the user terminal together with the encoded video element stream data (S1240).
[0335] At this time, the user terminal can display a screen with transparency applied to the user by combining the secondary encoded alpha data and the encoded video element stream data.
[0336] In addition, if the determination result of step (S1225) indicates that the primary encoding alpha data exceeds the Huffman threshold, i.e., if the compression ratio of the primary encoding alpha data exceeds the preset Huffman compression ratio, the primary encoding alpha data can be streamed to the user terminal together with the encoded video element stream data (S1240).
[0337] FIG. 13 is a block diagram illustrating a cloud streaming server according to one embodiment of the present invention.
[0338] Referring to FIG. 13, a cloud streaming server according to one embodiment of the present invention includes a communication unit (1310), a processor (1320), and a memory (1330).
[0339] The communication unit (1310) transmits and receives information related to multiple user terminals via a communication network, such as the network illustrated in FIG. 8. In particular, the communication unit (1310) according to one embodiment of the present invention may receive a request for a cloud streaming service from a user terminal and provide a data packet corresponding to the cloud streaming service requested by the user terminal to the user terminal.
[0340] The processor (1320) first encodes the alpha data of the application execution screen using the first encoding method.
[0341] At this time, the first encoding method may correspond to a run-length encoding method or a HUFFMAN encoding method.
[0342] At this time, the run-length encoding method reduces the amount of information when identical data is repeated continuously by expressing the corresponding information as a single data value and the number of times that a single data value is repeated. In other words, a run is a continuous sequence of identical data, and the length of that continuous sequence is the length. The original data can be reproduced using only this run and length information.
[0343] At this time, the Huffman coding method is a method of compressing data by assigning short codes to symbols that occur frequently in the data and relatively long codes to symbols that occur less frequently. For example, the size of the string 'ABCDABA' is 56 bits, and it can be assumed that a prefix code such as A=0, B=10, C=110, D=111 is assigned to each character symbol through the Huffman coding method. At this time, the string 'ABCDABA' can be compressed into a 13-bit bitset corresponding to '0101101101110100'. At this time, a shorter prefix code can be assigned as the frequency of occurrence is high, and a relatively longer prefix code can be assigned as the frequency of occurrence is low.
[0344] Run-length coding and Huffman coding are simple data compression methods that can be effectively decompressed even on low-spec devices. Furthermore, these simple compression methods offer the advantage of fast processing speeds, which helps prevent delays when encoding alpha data on cloud streaming servers.
[0345] Additionally, the processor (1320) performs a second encoding of the primary encoded alpha data using a second encoding method, taking into account the compression ratio of the primary encoded alpha data.
[0346] At this time, the second encoding method may correspond to the ZIP method.
[0347] At this time, run-length coding or Huffman coding, which correspond to the first encoding method, are most efficient when there is a lot of repetitive data, but efficiency may decrease when there is little repetitive data. Therefore, in the present invention, to compensate for the reduced compression efficiency when the alpha data is low-repetition data, additional compression can be performed using the ZIP method.
[0348] At this time, the ZIP method can be operated by setting either the maximum compression ratio or the maximum speed option, taking into account the performance of the user terminal.
[0349] For example, if the user terminal's performance is good, a high compression ratio is expected to not incur any significant latency during decoding. Therefore, in such cases, the ZIP method can be set to BEST_COMPRESSION to perform encoding of the primary encoded alpha data at the maximum compression ratio.
[0350] For example, if the user's terminal performance is poor, it may be necessary to set the compression speed to a higher value rather than the compression ratio to ensure the fastest possible encoding. In this case, the ZIP method option can be set to BEST_SPEED to ensure the encoding of the primary encoded alpha data is completed at maximum speed.
[0351] At this time, if the compression ratio of the primary encoding alpha data is lower than or equal to the preset first compression ratio, the secondary encoding can be performed.
[0352] For example, assuming that the preset first compression ratio is 80%, secondary encoding can be performed in ZIP format if the compression ratio of the primary encoding alpha data is less than 80%.
[0353] At this time, the preset first compression ratio can be set considering the application execution screen and network performance.
[0354] For example, if the data size of the application execution screen itself to be transmitted to the user terminal is not very large, the preset first compression ratio can be set relatively low so that the screen can be streamed with only the first encoding.
[0355] For another example, if the application execution screen to be transmitted to a user terminal contains animations or other effects, resulting in a large data size, the data compression rate can be increased by setting the preset first compression rate relatively high. Furthermore, setting the preset first compression rate relatively high can also increase the likelihood of secondary encoding being performed.
[0356] For another example, if the network performance between the cloud streaming server and the user terminal is good and data transmission is smooth, the preset first compression ratio can be set relatively low so that data can be streamed with only the first encoding.
[0357] If the network performance between the cloud streaming server and the user terminal is poor and data transmission is not smooth, the preset first compression rate can be set high to minimize the size of the transmitted data, and if possible, secondary encoding can be performed to enable data streaming.
[0358] Additionally, the processor (1320) streams secondary encoded alpha data to the user terminal together with encoded video element stream data.
[0359] At this time, the user terminal can display a screen with transparency applied to the user by combining the secondary encoded alpha data and the encoded video element stream data.
[0360] For example, a user terminal may receive secondary encoded alpha data and encoded video element stream data, and then decode each data. Thereafter, the decoded video element stream data and alpha data may be combined to display a video screen with transparency applied to the user.
[0361] Additionally, the processor (1320) does not perform secondary encoding when the compression ratio of the primary encoding alpha data exceeds a preset first compression ratio, and streams the primary encoding alpha data together with the encoded video element stream data to the user terminal.
[0362] At this time, the primary encoding alpha data or the secondary encoding alpha data can be streamed in accordance with the transmission standard including the compression format, compression size, and compressed data.
[0363] At this time, the user terminal can decode the first encoding alpha data by applying the first encoding method according to the compression format included in the transmission standard, or can decode the second encoding alpha data by sequentially applying the second encoding method and the first encoding method.
[0364] For example, assuming that the compression format is REL ONLY or HUFFMAN ONLY, the received alpha data can be judged to have been subjected to only primary encoding, and the alpha data can be decompressed using the RLE method or the HUFFMAN method.
[0365] For another example, assuming the compression format is RLE+ZIP or HUFFMAN+ZIP, the received alpha data can be determined to have been encoded twice. In this case, the alpha data can be first decompressed using the ZIP format, and then decompressed again using the RLE or HUFFMAN format.
[0366] At this time, the user terminal can request a cloud streaming service from the cloud streaming server, and the cloud streaming server can receive the requested execution screen and provide it to the user. Therefore, the user can feel as if the video or application corresponding to the requested service is running on the user terminal.
[0367] Memory (1330) stores alpha data.
[0368] In addition, the memory (1330) stores various information generated in the process of providing an efficient alpha encoding-based cloud streaming service according to an embodiment of the present invention as described above.
[0369] In some embodiments, the memory (1330) may be configured independently from the cloud streaming server to support functions for providing an efficient alpha encoding-based cloud streaming service. In this case, the memory (1330) may function as a separate large-capacity storage device and may include control functions for performing operations.
[0370] Additionally, the cloud streaming server configured as described above may be implemented with one or more servers.
[0371] Meanwhile, the cloud streaming server is equipped with memory and can store information within the device. In one embodiment, the memory is a computer-readable medium. In one embodiment, the memory may be a volatile memory unit, and in another embodiment, the memory may be a non-volatile memory unit. In one embodiment, the storage device is a computer-readable medium. In various other embodiments, the storage device may include, for example, a hard disk drive, an optical disk drive, or any other mass storage device.
[0372] Such a cloud streaming server can efficiently transmit video element streams and alpha data to user terminals from the cloud streaming UI.
[0373] Additionally, latency during alpha data transmission can be optimized when providing video cloud streaming services.
[0374] Additionally, by compressing alpha data and providing it in a format that takes into account the performance of the user terminal, alpha data can be effectively decompressed even on low-spec terminals.
[0375] The functional operations and implementations of the subject matter described herein may be implemented as digital electronic circuits, or may be implemented as computer software, firmware, or hardware that includes the structures disclosed herein and their structural equivalents, or a combination of one or more of these. The implementations of the subject matter described herein may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible program storage medium for controlling the operation of a processing system or for execution by the same.
[0376] The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter for affecting a machine-readable radio signal, or a combination of one or more of these.
[0377] As described above, the method for providing a cloud streaming service according to the present invention and the device therefor are not limited to the configurations and methods of the embodiments described above, but the embodiments may be configured by selectively combining all or part of each embodiment so that various modifications can be made.
[0378] According to the present invention, a cloud streaming server compares a previous image captured from a web application with a current image to derive a difference area, determines whether to perform an efficient image encoding process by considering the size and pixel values of the difference area, and, if the efficient image encoding process is performed, replaces some pixels in the difference area with special pixels, and image-encodes the current image replaced with the special pixels and streams it to a user terminal along with execution information of the efficient image encoding process. Accordingly, a cloud streaming service with a higher service quality can be provided to users.
[0379] In addition, according to the present invention, the cloud streaming server can first encode alpha data of an application execution screen using a first encoding method, second encode the first encoded alpha data using a second encoding method considering the compression ratio of the first encoded alpha data, and stream the second encoded alpha data together with the encoded video element stream data to a user terminal. Accordingly, latency can be optimized during the transmission process of the cloud streaming service.
Claims
1. Cloud streaming server, A step of comparing the previous image captured from a web application with the current image to derive the difference area; A step of determining whether to perform an efficient image encoding process by considering the size and pixel values of the above difference area; When performing the above efficient image encoding process, a step of replacing some pixels of the difference area with special pixels; and A step of encoding the current image replaced with the above special pixels and streaming it to the user terminal together with the execution information of the above efficient image encoding process. A method for providing an image cloud streaming service, characterized by including:
2. In claim 1, The above efficient image encoding process is A method for providing an image cloud streaming service, characterized in that it is performed when the size of the difference area is greater than or equal to a preset standard size and the number of pixels identical to the previous image within the difference area is greater than or equal to a preset standard value.
3. In claim 2, The above replacement steps are A method for providing an image cloud streaming service, characterized in that the same pixel in the current image is replaced with the special pixel.
4. In claim 3, The above replacement steps are A step of determining whether the alpha value of the above difference area is 0; and A method for providing an image cloud streaming service, characterized in that it comprises the step of replacing the same pixel with a special pixel having RGB values of all 0 when the alpha value of the difference area is 0, and replacing the same pixel with a special pixel having an alpha value of 0 and an RGB value of other than 0 when the alpha value of the difference area is not 0.
5. In claim 3, The above special pixels are A method for providing an image cloud streaming service characterized by corresponding pixels not used in the above web application.
6. In claim 1, The above user terminal A method for providing an image cloud streaming service, characterized in that when the execution information is received together with an encoding image, the special pixel is replaced with a pixel of the previous image by referring to the frame of the previous image and displayed.
7. In claim 2, A method for providing an image cloud streaming service, characterized in that it further comprises a step of encoding the current image and streaming it to the user terminal when the size of the difference area is less than the preset reference size or the number of pixels identical to the previous image within the difference area is less than the preset reference value.
8. A processor that compares a previous image captured in a web application with a current image to derive a difference area, determines whether to perform an efficient image encoding process by considering the size and pixel value of the difference area, and, if performing the efficient image encoding process, replaces some pixels in the difference area with special pixels, and image-encodes the current image replaced with the special pixels and streams it to a user terminal along with execution information of the efficient image encoding process; and Memory that stores the above difference area A cloud streaming server comprising:
9. Cloud streaming server, A step of first encoding alpha data of an application execution screen using a first encoding method; A step of secondarily encoding the primary encoding alpha data using a second encoding method, taking into account the compression ratio of the primary encoding alpha data; and A step of streaming the above secondary encoding alpha data to a user terminal together with encoded video element stream data. A method for providing a cloud streaming service, characterized by including:
10. A processor that encodes alpha data of an application execution screen for the first time using a first encoding method, encodes the first encoded alpha data for the second time using a second encoding method considering the size of the first encoded alpha data, and streams the second encoded alpha data to a user terminal together with encoded video element stream data; and Memory for storing the above alpha data A cloud streaming server comprising:
Citation Information
Patent Citations
Image compressing method and image compressing apparatus
JP2011103696A
Image transmission method
JP3038684B2
System for cloud streaming service, method of image cloud streaming service using alpha value of image type and apparatus for the same
KR102407477B1
System for cloud streaming service, method of image cloud streaming service based on detection of change area using operating system massage and apparatus for the same
KR102442698B1
Method and system for improving compression ratio through pixel conversion of image file
US20200244961A1