Method for providing cloud streaming service using cache preloading based on search type and device therefor
By preloading caches tailored to user terminal search types and separating alpha and video data channels, the method addresses the challenges of response speed and resource usage in cloud streaming services, resulting in improved performance and user experience.
Patent Information
- Application Number
- PCT/KR2024/009295
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-05-20
- Filing Date
- 2024-07-02
- Publication Date
- 2025-05-22
AI Technical Summary
Existing cloud streaming services face challenges in improving response speed while minimizing CPU/GPU resource usage, and they struggle with efficient bandwidth utilization due to the transmission of video and alpha data through a single channel.
The method involves a cloud streaming server identifying the search type of a user terminal, preloading a matching cache tailored to that search type into the browser, and transmitting alpha data and video data through separate channels to optimize latency and bandwidth.
This approach enhances the loading speed and response speed of cloud streaming services, reduces CPU/GPU resource usage, and provides an excellent screen experience by effectively managing cache resources and optimizing data transmission.
Smart Images

Figure KR2024009295_22052025_PF_FP_ABST
Abstract
Description
Method for providing cloud streaming service using cache preloading based on search type and device therefor
[0001] The present invention relates to a method for providing a cloud streaming service using cache preloading based on a navigation type and a device therefor, and more particularly, to a technology for improving response speed while minimizing CPU / GPU resource occupancy by preloading a cache suitable for a navigation type of a user terminal, and a technology for transmitting alpha data and video data through separate channels in a cloud streaming service.
[0002] This invention claims the benefit of Korean Patent Application No. 10-2023-0157980, filed November 15, 2023, and Korean Patent Application No. 10-2024-0065013, filed May 20, 2024, 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] At this time, browsers on cloud streaming servers use cache to efficiently process repeatedly requested resources. However, this cache disappears when the browser process terminates. If the browser has a suitable cache, it can make a difference in web app loading speed or response time. However, if all caches are stored on cloud streaming servers, capacity issues arise, as well as increased CPU or GPU memory usage for the browser process.
[0006] Meanwhile, cloud streaming for user interfaces (UIs), such as menus or posters displayed on live channels, is primarily achieved through image encoding, as it facilitates transparency processing. However, image encoding has the disadvantage of incurring significant overhead when processing fast-changing screens, such as animations.
[0007] In the case of conventional technology, data corresponding to UI was transmitted as alpha data along with video data, but since the video data and alpha data were transmitted through one channel, alpha data may be omitted depending on the situation of the client or server.
[0008] Additionally, since video data and alpha data are sent together, it is difficult to use bandwidth efficiently.
[0009] The purpose of the present invention is to provide a more efficient and faster service by providing a cache tailored to the characteristics of the user's use of the cloud streaming service in a pre-loading manner.
[0010] In addition, an object of the present invention is to provide a cache with a fast loading speed and response speed while minimizing the use of CPU and GPU resources within a server when providing a cloud streaming service.
[0011] Additionally, it is an object of the present invention to effectively provide the cache required for a cloud streaming service without having to store all the cache.
[0012] Additionally, an object of the present invention is to improve the quality and reliability of cloud streaming services by enabling the use of optimal latency and bandwidth.
[0013] Additionally, it is an object of the present invention to provide users with an excellent screen experience.
[0014] The method for providing a cloud streaming service according to the present invention for achieving the above-described purpose includes a step in which a cloud streaming server identifies a search type of a user terminal; a step in which a matching cache corresponding to the search type of the user terminal is preloaded into a browser; and a step in which the browser and the user terminal are linked.
[0015] At this time, the cloud streaming server may further include a step of recording the loading speed, usage frequency, and consumption amount of cache resources used for each search type; and a step of the cloud streaming server setting the cache resource loading priority for each search type by referring to the record.
[0016] At this time, the matching cache can be determined by considering the cache resource loading order by the above search type.
[0017] At this time, the cloud streaming server may further include a step of searching for an idle browser in which the matching cache is loaded before performing preloading; and, if the idle browser exists, a step of linking the user terminal with the idle browser without performing the preloading.
[0018] At this time, the search type can be determined based on the previous search history of the user terminal.
[0019] In addition, the present invention includes a processor for identifying a search type of a user terminal according to the present invention, preloading a matching cache corresponding to the search type of the user terminal into a browser, and linking the browser with the user terminal; and a memory for storing a previous search history of the user terminal.
[0020] At this time, the processor records the loading speed, usage frequency, and consumption amount of the cache resources used for each search type, and can set the cache resource loading priority for each search type by referring to the records.
[0021] At this time, the matching cache can be determined by considering the cache resource loading order by the above search type.
[0022] At this time, the processor may search for an idle browser in which the matching cache is loaded before performing the preloading, and, if the idle browser exists, may link the idle browser with the user terminal without performing the preloading.
[0023] At this time, the search type can be determined based on the previous search history of the user terminal.
[0024] In addition, a method for providing a cloud streaming service using alpha data channel separation according to the present invention for achieving the above-described purpose includes a step in which a cloud streaming server measures real-time usage of video data and alpha data of an STB (Set Top Box); a step in which the cloud streaming server transmits the video data and alpha data to the STB as separate channels based on the real-time usage of the video data and alpha data; and a step in which the STB performs video decoding in the case of the video data and outputs the alpha data on a screen in the case of the alpha data.
[0025] At this time, the above measuring step can identify the congestion status of video data using the window size of TCP / IP.
[0026] At this time, the transmitting step can obtain pre-stored delay time information available in the STB.
[0027] At this time, the transmitting step can separate the transmission channels of video data and alpha data according to the bandwidth based on the pre-stored delay time information available in the STB.
[0028] At this time, the outputting step outputs the video data on which the video decoding has been performed to the screen in a preset minimum buffer unit, and can immediately output the UI (User Interface) to the screen based on the alpha data.
[0029] In addition, a cloud streaming server according to the present invention for achieving the above purpose includes a processor that measures real-time usage of video data and alpha data of an STB (SET TOP BOX), transmits the video data and alpha data to the STB through separate channels based on the real-time usage of the video data and alpha data, and a memory that stores the real-time usage of the video data and alpha data, and the STB performs video decoding in the case of the video data and outputs the alpha data to a screen.
[0030] At this time, the processor can determine the congestion status of video data using the window size of TCP / IP.
[0031] At this time, the processor can obtain pre-stored delay time information available in the STB from the memory.
[0032] At this time, the processor can separate the transmission channels of video data and alpha data according to the bandwidth based on the pre-stored delay time information available in the STB.
[0033] At this time, the STB can output the video data on which the video decoding has been performed to the screen in a preset minimum buffer unit, and immediately output the UI (User Interface) to the screen based on the alpha data.
[0034] According to the present invention, a more efficient and faster service can be provided by providing a cache tailored to the characteristics of the user's use of the cloud streaming service in a pre-loading manner.
[0035] In addition, the present invention can provide a cache with a fast loading speed and response speed while occupying a minimum of CPU and GPU resources within a server when providing a cloud streaming service.
[0036] Additionally, the present invention can effectively provide the cache required for a cloud streaming service without having to store all the cache.
[0037] Additionally, the present invention can improve the quality and reliability of cloud streaming services by enabling the use of optimal latency and bandwidth.
[0038] Additionally, the present invention can provide users with an excellent screen experience.
[0039] FIG. 1 is a block diagram illustrating a cloud streaming service system according to one embodiment of the present invention.
[0040] FIG. 2 is a flowchart illustrating a method for providing a cloud streaming service using cache preloading based on a search type according to one embodiment of the present invention.
[0041] FIG. 3 is a diagram illustrating an example of a cache preloading process based on a search type according to the present invention.
[0042] FIG. 4 is a flowchart illustrating a method for providing a cloud streaming service using cache preloading based on a search type according to another embodiment of the present invention.
[0043] FIG. 5 is a drawing showing in detail the process of providing a cloud streaming service using cache preloading based on a search type according to the present invention.
[0044] FIG. 6 is a drawing showing a cloud streaming server according to one embodiment of the present invention.
[0045] FIG. 7 is a diagram illustrating a cloud streaming server according to another embodiment of the present invention.
[0046] Figure 8 is a block diagram showing a cloud streaming service system according to one embodiment of the present invention.
[0047] FIG. 9 is a drawing showing an example of a compression target area among alpha data according to the present invention.
[0048] FIG. 10 is a block diagram illustrating a cloud streaming server according to one embodiment of the present invention.
[0049] FIG. 11 is a flowchart illustrating a method for providing a cloud streaming service using alpha data channel separation according to one embodiment of the present invention.
[0050] FIG. 12 is a block diagram illustrating a cloud streaming server according to one embodiment of the present invention.
[0051] Figure 13 is a block diagram showing a user terminal according to one embodiment of the present invention.
[0052] 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 by the same reference numerals throughout the drawings.
[0053] 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.
[0054] FIG. 1 is a block diagram illustrating a cloud streaming service system according to one embodiment of the present invention.
[0055] 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).
[0056] 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.
[0057] 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).
[0058] 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.
[0059] 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.
[0060] The cloud streaming server (110) identifies the navigation type of the user terminal (120-1 to 120-N).
[0061] At this time, the search type can be determined based on the previous search history of the user terminal.
[0062] For example, the user terminal's previous browsing history can be used to check the content or service used by the user terminal through a cloud streaming service, and the browsing type of the user terminal can be identified based on the browsing type that mainly uses the content or service.
[0063] At this time, the information referenced through the previous browsing history may include various information such as content, services, pages, and requested data that the user terminal uses or browses when accessing the cloud streaming service.
[0064] Therefore, by distinguishing and setting multiple search types in advance, it is possible to identify which search type corresponds to each user terminal using the cloud streaming service and use this to provide future services.
[0065] At this time, the user terminal may determine the similarity between the search history of a plurality of preset search types and identify the search type with the highest similarity.
[0066] For example, if the similarity between the user terminal and the navigation type is 75% with navigation type A and 25% with navigation type B, the user terminal can be identified as being of navigation type A.
[0067] Additionally, the cloud streaming server (110) records the loading speed, usage frequency, and consumption of cache resources used for each search type, and sets the cache resource loading ranking for each search type by referring to the records.
[0068] For example, it can be assumed that navigation type A loads and uses the data stored in cache a the most and loads and uses a portion of the data stored in cache b. In this case, the first priority for loading cache resources for navigation type A would be cache a, and cache b could be set as the second priority for loading cache resources.
[0069] For another example, navigation type B may load and use all data stored in caches a, b, and c, but may assume that the usage frequency is in the order of caches b, c, and a. In this case, the first priority for loading cache resources for navigation type B may be cache b, cache c may be set as the second priority for loading cache resources, and cache a may be set as the third priority for loading cache resources.
[0070] The example of setting the cache resource loading priority above is only a simple example, so an algorithm for setting the cache resource loading priority that takes into account the loading speed, usage frequency, and consumption of the cache resource can be applied in various ways.
[0071] Additionally, the cloud streaming server (110) preloads a matching cache corresponding to the search type of the user terminal into the browser.
[0072] At this time, data from the matching cache can be preloaded to the browser within the limits allowed by the cloud streaming system.
[0073] For example, if the size of the matching cache is smaller than what the cloud streaming system allows, all data in the matching cache can be preloaded to the browser.
[0074] For another example, if the size of the matching cache is larger than the limit allowed by the cloud streaming system, data stored in the matching cache can be preloaded to the browser in order of high frequency of use based on the user terminal's browsing type.
[0075] That is, the browser can load data within the matching cache according to importance, within the limits of the resources allowed.
[0076] At this time, the matching cache can be determined by considering the cache resource loading priority by search type.
[0077] For example, if the navigation type of the user terminal corresponds to navigation type A, and the cache resource loading priority of navigation type A is cache a, then cache a can be determined as a matching cache and preloaded into the browser.
[0078] For another example, if the navigation type of the user terminal corresponds to navigation type B, and the cache resource loading priority of navigation type B is cache b at the first rank and cache c at the first rank, caches b and c can be determined as matching caches, and data from caches b and c can be preloaded to the browser within the limit permitted by the cloud streaming system.
[0079] Additionally, the cloud streaming server (110) links the browser and user terminals (120-1 to 120-N).
[0080] Accordingly, user terminals (120-1 to 120-N) connected to a browser can use the cloud streaming service more quickly by using data from the matching cache that has been loaded in advance.
[0081] Additionally, the cloud streaming server (110) searches for an idle browser with a matching cache loaded before performing preloading, and if an idle browser exists, links the idle browser and the user terminal without performing preloading.
[0082] For example, let's assume that the navigation type of a user terminal connected to a cloud streaming server corresponds to navigation type A, the matching cache for navigation type A is cache a, and cache a is loaded in a first browser that is idle. In this case, by linking the user terminal to the first browser that already has cache a loaded, a fast connection and navigation service can be provided to the user terminal.
[0083] 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).
[0084] 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.
[0085] 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.
[0086] 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).
[0087] 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.
[0088] 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.
[0089] 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.
[0090] 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.
[0091] Through this system, cloud streaming services can provide more efficient and faster services by preloading caches tailored to the characteristics of users' service usage.
[0092] Additionally, when providing cloud streaming services, it is possible to provide cache with fast loading speed and response speed while minimizing the use of CPU and GPU resources within the server.
[0093] Additionally, it can effectively provide the cache required by cloud streaming services without having to store all the cache.
[0094] FIG. 2 is a flowchart illustrating a method for providing a cloud streaming service using cache preloading based on a search type according to one embodiment of the present invention.
[0095] Referring to FIG. 2, a method for providing a cloud streaming service using cache preloading based on a search type according to one embodiment of the present invention is such that a cloud streaming server identifies a search type of a user terminal (S210).
[0096] At this time, the search type can be determined based on the previous search history of the user terminal.
[0097] For example, the user terminal's previous browsing history can be used to check the content or service used by the user terminal through a cloud streaming service, and the browsing type of the user terminal can be identified based on the browsing type that mainly uses the content or service.
[0098] At this time, the information referenced through the previous browsing history may include various information such as content, services, pages, and requested data that the user terminal uses or browses when accessing the cloud streaming service.
[0099] Therefore, by distinguishing and setting multiple search types in advance, it is possible to identify which search type corresponds to each user terminal using the cloud streaming service and use this to provide future services.
[0100] At this time, the user terminal may determine the similarity between the search history of a plurality of preset search types and identify the search type with the highest similarity.
[0101] For example, if the similarity between the user terminal and the navigation type is 75% with navigation type A and 25% with navigation type B, the user terminal can be identified as being of navigation type A.
[0102] In addition, although not shown in FIG. 2, a method for providing a cloud streaming service using cache preloading based on a search type according to an embodiment of the present invention is such that a cloud streaming server records the loading speed, usage frequency, and consumption amount of cache resources used for each search type, and sets a cache resource loading priority for each search type by referring to the records.
[0103] For example, it can be assumed that navigation type A loads and uses the data stored in cache a the most and loads and uses a portion of the data stored in cache b. In this case, the first priority for loading cache resources for navigation type A would be cache a, and cache b could be set as the second priority for loading cache resources.
[0104] For another example, navigation type B may load and use all data stored in caches a, b, and c, but may assume that the usage frequency is in the order of caches b, c, and a. In this case, the first priority for loading cache resources for navigation type B may be cache b, cache c may be set as the second priority for loading cache resources, and cache a may be set as the third priority for loading cache resources.
[0105] The example of setting the cache resource loading priority above is only a simple example, so an algorithm for setting the cache resource loading priority that takes into account the loading speed, usage frequency, and consumption of the cache resource can be applied in various ways.
[0106] In addition, in a method for providing a cloud streaming service using cache preloading based on a search type according to one embodiment of the present invention, a cloud streaming server preloads a matching cache corresponding to the search type of a user terminal into a browser (S220).
[0107] At this time, data from the matching cache can be preloaded to the browser within the limits allowed by the cloud streaming system.
[0108] For example, if the size of the matching cache is smaller than what the cloud streaming system allows, all data in the matching cache can be preloaded to the browser.
[0109] For another example, if the size of the matching cache is larger than the limit allowed by the cloud streaming system, data stored in the matching cache can be preloaded to the browser in order of high frequency of use based on the user terminal's browsing type.
[0110] That is, the browser can load data within the matching cache according to importance, within the limits of the resources allowed.
[0111] At this time, the matching cache can be determined by considering the cache resource loading priority by search type.
[0112] For example, if the navigation type of the user terminal corresponds to navigation type A, and the cache resource loading priority of navigation type A is cache a, then cache a can be determined as a matching cache and preloaded into the browser.
[0113] For another example, if the navigation type of the user terminal corresponds to navigation type B, and the cache resource loading priority of navigation type B is cache b at the first rank and cache c at the first rank, caches b and c can be determined as matching caches, and data from caches b and c can be preloaded to the browser within the limit permitted by the cloud streaming system.
[0114] In addition, in a method for providing a cloud streaming service using cache preloading based on a search type according to one embodiment of the present invention, a cloud streaming server links a browser and a user terminal (S230).
[0115] Therefore, user terminals connected to a browser can use cloud streaming services more quickly by using data from the pre-loaded matching cache.
[0116] In addition, although not shown in FIG. 2, a method for providing a cloud streaming service using cache preloading based on a search type according to an embodiment of the present invention includes a cloud streaming server searching for an idle browser in which a matching cache is loaded before performing preloading, and, if an idle browser exists, linking the idle browser and the user terminal without performing preloading.
[0117] For example, let's assume that the navigation type of a user terminal connected to a cloud streaming server corresponds to navigation type A, the matching cache for navigation type A is cache a, and cache a is loaded in a first browser that is idle. In this case, by linking the user terminal to the first browser that already has cache a loaded, a fast connection and navigation service can be provided to the user terminal.
[0118] A user terminal can request a cloud streaming service from a cloud streaming server, and the cloud streaming server can then receive and provide the requested execution screen 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.
[0119] By utilizing a method of providing a cloud streaming service using cache preloading based on this type of search, a more efficient and faster service can be provided by providing a cache tailored to the characteristics of the user's use of the service in a preloading manner when using a cloud streaming service.
[0120] Additionally, when providing cloud streaming services, it is possible to provide cache with fast loading speed and response speed while minimizing the use of CPU and GPU resources within the server.
[0121] Additionally, it can effectively provide the cache required by cloud streaming services without having to store all the cache.
[0122] FIG. 3 is a diagram illustrating an example of a cache preloading process based on a search type according to the present invention.
[0123] Referring to FIG. 3, the cache preloading process based on the search type according to the present invention first allows the user terminal (301) to make a connection request to the cloud streaming server (300), and then the cloud streaming server (300) can identify the search type based on the previous search history of the user terminal (301).
[0124] After this, the cloud streaming server (300) can search for a matching cache corresponding to the search type of the user terminal (301).
[0125] If it is assumed that cache #2 (320-2) is a matching cache corresponding to the search type of the user terminal (301), the user terminal (301) can be linked with browser #1 (310-1) after preloading cache #2 (320-2) into browser #1 (310-1).
[0126] That is, by pre-loading the matching cache (320-2) expected to be used in the user terminal (301) into the browser (310-1) and then linking the browser (310-1) and the user terminal (301) to provide the service, an efficient service can be provided for each user.
[0127] FIG. 4 is a flowchart illustrating a method for providing a cloud streaming service using cache preloading based on a search type according to another embodiment of the present invention.
[0128] Referring to FIG. 4, a method for providing a cloud streaming service using cache preloading based on a search type according to another embodiment of the present invention first identifies the search type of a user terminal by a cloud streaming server (S410).
[0129] At this time, the search type can be determined based on the previous search history of the user terminal.
[0130] For example, the user terminal's previous browsing history can be used to check the content or service used by the user terminal through a cloud streaming service, and the browsing type of the user terminal can be identified based on the browsing type that mainly uses the content or service.
[0131] At this time, the information referenced through the previous browsing history may include various information such as content, services, pages, and requested data that the user terminal uses or browses when accessing the cloud streaming service.
[0132] Therefore, by distinguishing and setting multiple search types in advance, it is possible to identify which search type corresponds to each user terminal using the cloud streaming service and use this to provide future services.
[0133] At this time, the user terminal may determine the similarity between the search history of a plurality of preset search types and identify the search type with the highest similarity.
[0134] For example, if the similarity between the user terminal and the navigation type is 75% with navigation type A and 25% with navigation type B, the user terminal can be identified as being of navigation type A.
[0135] After this, it is determined whether there is an idle browser with a matching cache loaded corresponding to the search type of the user terminal (S415).
[0136] As a result of the judgment in step (S415), if there is an idle browser loaded with a matching cache corresponding to the search type of the user terminal, the idle browser and the user terminal can be linked to provide a cloud streaming service to the user terminal (S440).
[0137] For example, let's assume that the navigation type of a user terminal connected to a cloud streaming server corresponds to navigation type A, the matching cache for navigation type A is cache a, and cache a is loaded in a first browser that is idle. In this case, by linking the user terminal to the first browser that already has cache a loaded, a fast connection and navigation service can be provided to the user terminal.
[0138] In addition, if, as a result of the judgment in step (S415), there is no idle browser loaded with a matching cache corresponding to the search type of the user terminal, a matching cache corresponding to the search type of the user terminal can be preloaded into the browser (S420).
[0139] At this time, data from the matching cache can be preloaded to the browser within the limits allowed by the cloud streaming system.
[0140] For example, if the size of the matching cache is smaller than what the cloud streaming system allows, all data in the matching cache can be preloaded to the browser.
[0141] For another example, if the size of the matching cache is larger than the limit allowed by the cloud streaming system, data stored in the matching cache can be preloaded to the browser in order of high frequency of use based on the user terminal's browsing type.
[0142] That is, the browser can load data within the matching cache according to importance, within the limits of the resources allowed.
[0143] At this time, the matching cache can be determined by considering the cache resource loading priority by search type.
[0144] For example, if the navigation type of the user terminal corresponds to navigation type A, and the cache resource loading priority of navigation type A is cache a, then cache a can be determined as a matching cache and preloaded into the browser.
[0145] For another example, if the navigation type of the user terminal corresponds to navigation type B, and the cache resource loading priority of navigation type B is cache b at the first rank and cache c at the first rank, caches b and c can be determined as matching caches, and data from caches b and c can be preloaded to the browser within the limit permitted by the cloud streaming system.
[0146] After this, the browser loaded with the matching cache and the user terminal can be linked (S430).
[0147] Therefore, user terminals connected to a browser can use cloud streaming services more quickly by using data from the pre-loaded matching cache.
[0148] By utilizing a method of providing a cloud streaming service using cache preloading based on this type of search, a more efficient and faster service can be provided by providing a cache tailored to the characteristics of the user's use of the service in a preloading manner when using a cloud streaming service.
[0149] Additionally, when providing cloud streaming services, it is possible to provide cache with fast loading speed and response speed while minimizing the use of CPU and GPU resources within the server.
[0150] Additionally, it can effectively provide the cache required by cloud streaming services without having to store all the cache.
[0151] FIG. 5 is a drawing showing in detail the process of providing a cloud streaming service using cache preloading based on a search type according to the present invention.
[0152] Referring to FIG. 5, the process of providing a cloud streaming service using cache preloading based on a search type according to the present invention first includes: when a user terminal connects to a cloud streaming server and makes a service request (S502), the cloud streaming server searches the user terminal's previous search history (S504) to identify the user terminal's search type (S506).
[0153] At this time, the search type can be determined based on the previous search history of the user terminal.
[0154] For example, the user terminal's previous browsing history can be used to check the content or service used by the user terminal through a cloud streaming service, and the browsing type of the user terminal can be identified based on the browsing type that mainly uses the content or service.
[0155] At this time, the information referenced through the previous browsing history may include various information such as content, services, pages, and requested data that the user terminal uses or browses when accessing the cloud streaming service.
[0156] Therefore, by distinguishing and setting multiple search types in advance, it is possible to identify which search type corresponds to each user terminal using the cloud streaming service and use this to provide future services.
[0157] At this time, the user terminal may determine the similarity between the search history of a plurality of preset search types and identify the search type with the highest similarity.
[0158] For example, if the similarity between the user terminal and the navigation type is 75% with navigation type A and 25% with navigation type B, the user terminal can be identified as being of navigation type A.
[0159] At this time, the loading speed, usage frequency, and consumption of cache resources used for each search type can be recorded, and the cache resource loading priority for each search type can be set by referring to the records.
[0160] For example, it can be assumed that navigation type A loads and uses the data stored in cache a the most and loads and uses a portion of the data stored in cache b. In this case, the first priority for loading cache resources for navigation type A would be cache a, and cache b could be set as the second priority for loading cache resources.
[0161] For another example, navigation type B may load and use all data stored in caches a, b, and c, but may assume that the usage frequency is in the order of caches b, c, and a. In this case, the first priority for loading cache resources for navigation type B may be cache b, cache c may be set as the second priority for loading cache resources, and cache a may be set as the third priority for loading cache resources.
[0162] The example of setting the cache resource loading priority above is only a simple example, so an algorithm for setting the cache resource loading priority that takes into account the loading speed, usage frequency, and consumption of the cache resource can be applied in various ways.
[0163] After this, a matching cache corresponding to the search type of the user terminal is searched (S508), and it can be determined whether there is an idle browser loaded with a matching cache corresponding to the search type of the user terminal (S510).
[0164] If, as a result of the judgment in step (S510), there is no idle browser loaded with a matching cache corresponding to the search type of the user terminal, a matching cache corresponding to the search type of the user terminal can be preloaded into the browser (S512).
[0165] At this time, data from the matching cache can be preloaded to the browser within the limits allowed by the cloud streaming system.
[0166] For example, if the size of the matching cache is smaller than what the cloud streaming system allows, all data in the matching cache can be preloaded to the browser.
[0167] For another example, if the size of the matching cache is larger than the limit allowed by the cloud streaming system, data stored in the matching cache can be preloaded to the browser in order of high frequency of use based on the user terminal's browsing type.
[0168] That is, the browser can load data within the matching cache according to importance, within the limits of the resources allowed.
[0169] At this time, the matching cache can be determined by considering the cache resource loading priority by search type.
[0170] For example, if the navigation type of the user terminal corresponds to navigation type A, and the cache resource loading priority of navigation type A is cache a, then cache a can be determined as a matching cache and preloaded into the browser.
[0171] For another example, if the navigation type of the user terminal corresponds to navigation type B, and the cache resource loading priority of navigation type B is cache b at the first rank and cache c at the first rank, caches b and c can be determined as matching caches, and data from caches b and c can be preloaded to the browser within the limit permitted by the cloud streaming system.
[0172] After this, the browser loaded with the matching cache and the user terminal can be linked (S514).
[0173] Therefore, user terminals connected to a browser can use cloud streaming services more quickly by using data from the pre-loaded matching cache.
[0174] In addition, if, as a result of the judgment in step (S510), there is an idle browser loaded with a matching cache corresponding to the search type of the user terminal, the idle browser and the user terminal can be linked to provide a cloud streaming service to the user terminal (S516).
[0175] For example, let's assume that the navigation type of a user terminal connected to a cloud streaming server corresponds to navigation type A, the matching cache for navigation type A is cache a, and cache a is loaded in a first browser that is idle. In this case, by linking the user terminal to the first browser that already has cache a loaded, a fast connection and navigation service can be provided to the user terminal.
[0176] By providing a cloud streaming service using cache preloading based on this type of search, a more efficient and faster service can be provided by providing a cache preloaded according to the characteristics of the user's use of the service when using the cloud streaming service.
[0177] Additionally, when providing cloud streaming services, it is possible to provide cache with fast loading speed and response speed while minimizing the use of CPU and GPU resources within the server.
[0178] Additionally, it can effectively provide the cache required by cloud streaming services without having to store all the cache.
[0179] FIG. 6 is a drawing showing a cloud streaming server according to one embodiment of the present invention.
[0180] Referring to FIG. 6, a cloud streaming server according to one embodiment of the present invention includes a communication unit (610), a processor (620), and a memory (630).
[0181] The communication unit (610) 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 (610) 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.
[0182] Here, the network provides a path for transmitting data between the cloud streaming server and the user terminal, and is a concept encompassing both existing networks and networks that may be developed in the future. For example, the network 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 mobile devices and between mobile devices 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 these. Meanwhile, the network transmission method standard is not limited to existing transmission method standards and may include all transmission method standards that will be developed in the future.
[0183] The processor (620) identifies the navigation type of the user terminal.
[0184] At this time, the search type can be determined based on the previous search history of the user terminal.
[0185] For example, the user terminal's previous browsing history can be used to check the content or service used by the user terminal through a cloud streaming service, and the browsing type of the user terminal can be identified based on the browsing type that mainly uses the content or service.
[0186] At this time, the information referenced through the previous browsing history may include various information such as content, services, pages, and requested data that the user terminal uses or browses when accessing the cloud streaming service.
[0187] Therefore, by distinguishing and setting multiple search types in advance, it is possible to identify which search type corresponds to each user terminal using the cloud streaming service and use this to provide future services.
[0188] At this time, the user terminal may determine the similarity between the search history of a plurality of preset search types and identify the search type with the highest similarity.
[0189] For example, if the similarity between the user terminal and the navigation type is 75% with navigation type A and 25% with navigation type B, the user terminal can be identified as being of navigation type A.
[0190] Additionally, the processor (620) records the loading speed, usage frequency, and consumption amount of cache resources used for each search type, and sets the cache resource loading priority for each search type by referring to the record.
[0191] For example, it can be assumed that navigation type A loads and uses the data stored in cache a the most and loads and uses a portion of the data stored in cache b. In this case, the first priority for loading cache resources for navigation type A would be cache a, and cache b could be set as the second priority for loading cache resources.
[0192] For another example, navigation type B may load and use all data stored in caches a, b, and c, but may assume that the usage frequency is in the order of caches b, c, and a. In this case, the first priority for loading cache resources for navigation type B may be cache b, cache c may be set as the second priority for loading cache resources, and cache a may be set as the third priority for loading cache resources.
[0193] The example of setting the cache resource loading priority above is only a simple example, so an algorithm for setting the cache resource loading priority that takes into account the loading speed, usage frequency, and consumption of the cache resource can be applied in various ways.
[0194] Additionally, the processor (620) preloads a matching cache corresponding to the search type of the user terminal into the browser.
[0195] At this time, data from the matching cache can be preloaded to the browser within the limits allowed by the cloud streaming system.
[0196] For example, if the size of the matching cache is smaller than what the cloud streaming system allows, all data in the matching cache can be preloaded to the browser.
[0197] For another example, if the size of the matching cache is larger than the limit allowed by the cloud streaming system, data stored in the matching cache can be preloaded to the browser in order of high frequency of use based on the user terminal's browsing type.
[0198] That is, the browser can load data within the matching cache according to importance, within the limits of the resources allowed.
[0199] At this time, the matching cache can be determined by considering the cache resource loading priority by search type.
[0200] For example, if the navigation type of the user terminal corresponds to navigation type A, and the cache resource loading priority of navigation type A is cache a, then cache a can be determined as a matching cache and preloaded into the browser.
[0201] For another example, if the navigation type of the user terminal corresponds to navigation type B, and the cache resource loading priority of navigation type B is cache b at the first rank and cache c at the first rank, caches b and c can be determined as matching caches, and data from caches b and c can be preloaded to the browser within the limit permitted by the cloud streaming system.
[0202] Additionally, the processor (620) links the browser and the user terminal.
[0203] Therefore, user terminals connected to a browser can use cloud streaming services more quickly by using data from the pre-loaded matching cache.
[0204] Additionally, the processor (620) searches for an idle browser with a matching cache loaded before performing preloading, and if an idle browser exists, associates the idle browser with the user terminal without performing preloading.
[0205] For example, let's assume that the navigation type of a user terminal connected to a cloud streaming server corresponds to navigation type A, the matching cache for navigation type A is cache a, and cache a is loaded in a first browser that is idle. In this case, by linking the user terminal to the first browser that already has cache a loaded, a fast connection and navigation service can be provided to the user terminal.
[0206] The memory (630) stores the previous browsing history of the user terminal.
[0207] In addition, the memory (630) stores various information generated in the process of providing a cloud streaming service using cache preloading based on a search type according to an embodiment of the present invention as described above.
[0208] In some embodiments, the memory (630) may be configured independently from the cloud streaming server to support functions for providing cloud streaming services using cache preloading based on search type. In this case, the memory (630) may function as a separate large-capacity storage device and may include control functions for performing operations.
[0209] Through this type of cloud streaming server, a more efficient and faster service can be provided by preloading cache tailored to the characteristics of users using the cloud streaming service.
[0210] Additionally, when providing cloud streaming services, it is possible to provide cache with fast loading speed and response speed while minimizing the use of CPU and GPU resources within the server.
[0211] Additionally, it can effectively provide the cache required by cloud streaming services without having to store all the cache.
[0212] FIG. 7 is a diagram illustrating a cloud streaming server according to another embodiment of the present invention.
[0213] Referring to FIG. 7, a cloud streaming server according to another embodiment of the present invention includes a search type determination unit (710), a cache management unit (720), and a control unit (730).
[0214] The search type determination unit (710) identifies the search type of the user terminal.
[0215] At this time, the search type can be determined based on the previous search history of the user terminal.
[0216] For example, the user terminal's previous browsing history can be used to check the content or service used by the user terminal through a cloud streaming service, and the browsing type of the user terminal can be identified based on the browsing type that mainly uses the content or service.
[0217] At this time, the information referenced through the previous browsing history may include various information such as content, services, pages, and requested data that the user terminal uses or browses when accessing the cloud streaming service.
[0218] Therefore, by distinguishing and setting multiple search types in advance, it is possible to identify which search type corresponds to each user terminal using the cloud streaming service and use this to provide future services.
[0219] At this time, the user terminal may determine the similarity between the search history of a plurality of preset search types and identify the search type with the highest similarity.
[0220] For example, if the similarity between the user terminal and the navigation type is 75% with navigation type A and 25% with navigation type B, the user terminal can be identified as being of navigation type A.
[0221] The cache management unit (720) records the loading speed, usage frequency, and consumption of cache resources used for each search type, and sets the cache resource loading priority for each search type by referring to the records.
[0222] For example, it can be assumed that navigation type A loads and uses the data stored in cache a the most and loads and uses a portion of the data stored in cache b. In this case, the first priority for loading cache resources for navigation type A would be cache a, and cache b could be set as the second priority for loading cache resources.
[0223] For another example, navigation type B may load and use all data stored in caches a, b, and c, but may assume that the usage frequency is in the order of caches b, c, and a. In this case, the first priority for loading cache resources for navigation type B may be cache b, cache c may be set as the second priority for loading cache resources, and cache a may be set as the third priority for loading cache resources.
[0224] The example of setting the cache resource loading priority above is only a simple example, so an algorithm for setting the cache resource loading priority that takes into account the loading speed, usage frequency, and consumption of the cache resource can be applied in various ways.
[0225] The control unit (730) preloads a matching cache corresponding to the search type of the user terminal into the browser.
[0226] At this time, data from the matching cache can be preloaded to the browser within the limits allowed by the cloud streaming system.
[0227] For example, if the size of the matching cache is smaller than what the cloud streaming system allows, all data in the matching cache can be preloaded to the browser.
[0228] For another example, if the size of the matching cache is larger than the limit allowed by the cloud streaming system, data stored in the matching cache can be preloaded to the browser in order of high frequency of use based on the user terminal's browsing type.
[0229] That is, the browser can load data within the matching cache according to importance, within the limits of the resources allowed.
[0230] At this time, the matching cache can be determined by considering the cache resource loading priority by search type.
[0231] For example, if the navigation type of the user terminal corresponds to navigation type A, and the cache resource loading priority of navigation type A is cache a, then cache a can be determined as a matching cache and preloaded into the browser.
[0232] For another example, if the navigation type of the user terminal corresponds to navigation type B, and the cache resource loading priority of navigation type B is cache b at the first rank and cache c at the first rank, caches b and c can be determined as matching caches, and data from caches b and c can be preloaded to the browser within the limit permitted by the cloud streaming system.
[0233] Additionally, the control unit (730) links the browser and the user terminal.
[0234] Therefore, user terminals connected to a browser can use cloud streaming services more quickly by using data from the pre-loaded matching cache.
[0235] Additionally, the control unit (730) searches for an idle browser with a matching cache loaded before performing preloading, and if an idle browser exists, links the idle browser and the user terminal without performing preloading.
[0236] For example, let's assume that the navigation type of a user terminal connected to a cloud streaming server corresponds to navigation type A, the matching cache for navigation type A is cache a, and cache a is loaded in a first browser that is idle. In this case, by linking the user terminal to the first browser that already has cache a loaded, a fast connection and navigation service can be provided to the user terminal.
[0237] Through this type of cloud streaming server, a more efficient and faster service can be provided by preloading cache tailored to the characteristics of users using the cloud streaming service.
[0238] Additionally, when providing cloud streaming services, it is possible to provide cache with fast loading speed and response speed while minimizing the use of CPU and GPU resources within the server.
[0239] Additionally, it can effectively provide the cache required by cloud streaming services without having to store all the cache.
[0240] Figure 8 is a block diagram showing a cloud streaming service system according to one embodiment of the present invention.
[0241] Referring to FIG. 8, a cloud streaming service system according to an embodiment of the present invention includes a cloud streaming server (810), user terminals (820-1 to 820-N), and a network (830).
[0242] The cloud streaming server (810) receives decoding timing information from user terminals (820-1 to 820-N).
[0243] At this time, the decoding timing information may include the decoding time required for each of the video decoder and alpha decoder provided in the user terminal (820-1 to 820-N).
[0244] Additionally, the cloud streaming server (810) calculates the alpha delay time using the decoding timing information.
[0245] At this time, the alpha delay time may correspond to the difference time between the decoding time of the video decoder and the decoding time of the alpha decoder.
[0246] Additionally, the cloud streaming server (810) determines whether to apply the alpha delay process by considering the amount of data transmitted for each frame.
[0247] Additionally, when the cloud streaming server (810) applies an alpha delay process, it transmits alpha data corresponding to video data by delaying it by the alpha delay time.
[0248] At this time, the point in time when alpha data transmitted by delaying by the alpha delay time completes alpha decoding at the user terminal (820-1 to 820-N) and the point in time when video data completes video decoding at the user terminal (820-1 to 820-N) can coincide.
[0249] At this time, the alpha delay process can transmit alpha data by combining it with the next alpha data if the transmission time of the alpha data delayed corresponding to the alpha delay time overlaps with the transmission time of the next alpha data corresponding to the next video data.
[0250] At this time, the user terminal (820-1 to 820-N) can display the alpha data transmitted with a delay in synchronization with the video data.
[0251] This system separates the video and alpha data channels in the cloud streaming UI field, enabling optimal latency and bandwidth usage, improving the quality and reliability of cloud streaming services and providing users with an excellent screen experience.
[0252] FIG. 9 is a drawing showing an example of a compression target area among alpha data according to the present invention.
[0253] Referring to FIG. 9, a cloud streaming service method according to one embodiment of the present invention separates alpha data corresponding to transparency from an application execution screen captured through a cloud browser.
[0254] At this time, the captured application execution screen obtained from the cloud browser may correspond to RGBA data containing alpha data. RGBA may correspond to data that adds alpha, or transparency, to RGB, a color space designated based on the brightness of the three channels corresponding to red, green, and blue.
[0255] Therefore, in the present invention, alpha data can be separated from RGBA data to separately process transparency or translucency that cannot be provided through video encoding.
[0256] At this time, alpha data can be separated from the application execution screen by applying a technique for extracting an alpha channel in an image editing program or a video editing program, or a technique used in an editing program to separately extract only the alpha channel.
[0257] In addition, a cloud streaming service method according to one embodiment of the present invention generates alpha compressed data by compressing an area in alpha data that has a different transparency from a previous application execution screen.
[0258] At this time, the cloud streaming server according to one embodiment of the present invention may incur additional computational overhead and network data size overhead for compression processing of alpha data. Therefore, the size of the overhead must be adjusted to perform compression processing, taking into account the limited resources of the cloud streaming server.
[0259] Therefore, in the present invention, compressed data can be generated by compressing only the differences from previous data in order to minimize the processing time and overhead required for alpha data compression.
[0260] For example, in a cloud streaming server according to an embodiment of the present invention, a region with different transparency can be detected by comparing a previous application execution screen (931) and a current application execution screen (941) based on alpha data. If it is assumed that the transparency of regions corresponding to B', C', and D' among the regions of the application execution screen (941) illustrated in FIG. 9 is different from that of the previous application execution screen (931), alpha compressed data can be generated by compressing only the data of regions corresponding to B', C', and D' among the alpha data.
[0261] At this time, the layout shown in Fig. 9 is only for convenience of explanation and may not be limited to a layout that indicates the transparency of the application execution screen.
[0262] In this way, by compressing only the differences from previous data and providing transparency, processing time can be saved and the size of data to be transmitted can also be reduced.
[0263] At this time, a compression mode can be selected by considering at least one of the computational load and network status of the cloud streaming server, and an area with different transparency can be compressed corresponding to the selected compression mode.
[0264] At this time, the computational load of the cloud streaming server may be due to computations corresponding to video encoding or computations corresponding to the cloud streaming service process. In other words, the compression mode of the alpha data can be selected in response to the resource conditions of the cloud streaming server.
[0265] At this time, the network status may correspond to a network for data communication between the cloud streaming server and the user terminal.
[0266] At this time, the more computational load the cloud streaming server has, the lower the compression rate can be selected, and the higher the network load, the higher the compression rate can be selected.
[0267] That is, the more computational power a cloud streaming server has, the more computational power it has to compress alpha data. To reduce the computational power, it can select a compression mode with a lower compression ratio. To reduce the load on the network, it can select a compression mode with a higher compression ratio. To reduce the load on the network, it can compress the data size to a smaller size.
[0268] Additionally, if the cloud streaming server has a low computational load and the network condition is smooth, alpha compression data can be generated by selecting the compression mode with the highest compression ratio or the compression mode with the lowest compression ratio, depending on the system administrator's settings.
[0269] At this time, the compression mode selected depending on the situation is not limited to specific conditions, but can be selected in a way that provides the cloud streaming service to the user terminal most smoothly.
[0270] At this time, the compression mode can be set and saved in advance according to the compression ratio, and can be selected and used depending on the situation when using a cloud streaming service.
[0271] In addition, a cloud streaming service method using alpha data channel separation according to one embodiment of the present invention video encodes the remaining data from which alpha data has been separated on an application execution screen and transmits it to a user terminal together with alpha compression data.
[0272] That is, in the present invention, rather than transmitting encoded data containing transparency from a cloud streaming server, transparency information can be streamed as separate compressed data so that transparency can be applied to data decoded directly on a user terminal.
[0273] At this time, the user terminal may correspond to a device connected to a communication network and capable of communicating with a cloud streaming server. For example, the user terminal 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 terminal may be a mobile terminal with various mobile communication specifications, such as a mobile phone, a mobile phone, a portable multimedia player (PMP), a mobile internet device (MID), a smart phone, a desktop, a tablet computer (Tablet PC), a notebook, a netbook, a personal digital assistant (PDA), a smart TV, and an information and communication device.
[0274] At this time, the remaining data can correspond to RGB data corresponding to the application execution screen.
[0275] Accordingly, a cloud streaming server according to one embodiment of the present invention can generate encoded data by video encoding only RGB data of an application execution screen.
[0276] At this time, a data packet generated by packetizing RGB data and alpha data with synchronization information can be transmitted to a user terminal. That is, the data packet can include video-encoded RGB data, alpha compression data compressed in accordance with the compression mode, and synchronization information.
[0277] At this time, the synchronization information may correspond to time information, such as a time stamp, for matching the decoded RGB data and the decompressed alpha data on the user terminal. Accordingly, the synchronization information may be mapped to the video-encoded RGB data and the alpha compressed data, respectively, when the data packet is unpacked through the user terminal.
[0278] At this time, the user terminal can synthesize RGB data and alpha data based on synchronization information and output the synthesized data to a user interface plain overlaid on a live channel.
[0279] That is, a UI based on video encoding can be provided by displaying the RGB data decoded by the user terminal through the video decoder and the decompressed alpha data on the UI Plain based on synchronization information.
[0280] At this time, the user terminal can simultaneously perform video decoding for a live channel and video decoding for RGB data based on at least two video decoders.
[0281] In addition, a cloud streaming service method utilizing alpha data channel separation according to one embodiment of the present invention transmits and receives information related to multiple user terminals via a communication network such as the network illustrated in FIG. 1. In particular, a request for a cloud streaming service can be received from a user terminal, and a data packet corresponding to the cloud streaming service requested by the user terminal can be provided to the user terminal.
[0282] In addition, the cloud streaming service method using alpha data channel separation according to one embodiment of the present invention stores various information generated in the cloud streaming service process according to one embodiment of the present invention as described above.
[0283] In some embodiments, a storage module storing various information may be configured independently from the cloud streaming server to support functions for cloud streaming services. In this case, the storage module may function as a separate large-capacity storage device and may include control functions for performing operations.
[0284] Using this cloud streaming service method, a UI cloud streaming service such as a menu or poster can be provided based on video encoding.
[0285] Additionally, transparency data can be effectively processed in video-based cloud streaming services.
[0286] Additionally, it can provide smoother service for UIs with fast screen changes.
[0287] In addition, a method for providing a UI cloud streaming service based on video encoding can be provided that can reduce resource consumption of a cloud streaming server and also reduce network load.
[0288] FIG. 10 is a block diagram illustrating a cloud streaming server according to one embodiment of the present invention.
[0289] 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.
[0290] Previously, user terminals using cloud streaming services had only one video decoder capable of processing video, limiting their use to live channels. Furthermore, because video encoding techniques cannot provide transparency, cloud streaming for user interfaces (UIs), such as menu displays and posters, relied on image encoding techniques, which capture and process each frame as an image.
[0291] However, image encoding techniques have the disadvantage of being relatively slow compared to video encoding techniques, and the data size is bound to be large, which increases network load.
[0292] Meanwhile, with the recent performance improvements in user devices and the introduction of multiple video decoders, service providers are increasingly able to handle separate video streams, such as live channels or PIP (Picture in Picture). Consequently, the environment for video encoding has been established for UI cloud streaming.
[0293] The present invention aims to provide a cloud streaming service method capable of performing UI cloud streaming using a video encoding technique based on such an environment.
[0294] Furthermore, the present invention aims to improve the quality and reliability of cloud streaming services by separating video and alpha channels in the cloud streaming UI field to use optimal latency and bandwidth, and to provide users with an excellent screen experience.
[0295] Referring to FIG. 10, a cloud streaming server (810) according to one embodiment of the present invention can transmit alpha data and video data to a user terminal (820) through separate channels with optimized latency and bandwidth.
[0296] The cloud streaming server (810) may include a video data capacity measurement unit (1010), an alpha data capacity measurement unit (1020), and a server data transmission unit (1030).
[0297] The user terminal (820) may include a client decoder unit (1040).
[0298] The video data capacity measurement unit (1010) can measure the real-time usage of video data of an STB (SET TOP BOX).
[0299] At this time, TCP can be used for video data.
[0300] At this time, the video data capacity measurement unit (1010) can determine the congestion status of video data by using the TCP / IP window size along with real-time usage.
[0301] The alpha data capacity measurement unit (1020) can measure the real-time usage of alpha data of the STB (SET TOP BOX).
[0302] The server data transmission unit (1030) can efficiently transmit the entire data based on the real-time usage of video data and the real-time usage of alpha data.
[0303] At this time, the server data transmission unit (1030) can obtain delay time information available from the STB (SET TOP BOX) to efficiently transmit the entire data.
[0304] At this time, the server data transmission unit (1030) can separate the transmission channels of video data and alpha data according to the bandwidth based on the delay time information available in the STB.
[0305] The client decoder unit (1040) can transmit video data from the STB to the video decoder and output alpha data directly to the screen.
[0306] At this time, the client decoder unit (1040) can output the video data on which the video decoding has been performed to the screen in a preset minimum buffer unit, and immediately output the UI (User Interface) to the screen based on the alpha data.
[0307] At this time, the client decoder unit (1040) starts drawing the screen only when the minimum buffer amount of data is entered in the case of video data, so the cloud streaming server (110) can transmit alpha data that much later.
[0308] FIG. 11 is a flowchart illustrating a method for providing a cloud streaming service using alpha data channel separation according to one embodiment of the present invention.
[0309] Referring to FIG. 11, a method for providing a cloud streaming service using alpha data channel separation according to an embodiment of the present invention can first measure the usage of video data and alpha data (S1110).
[0310] That is, step (S1110) can measure the real-time usage of video data and alpha data of STB (SET TOP BOX).
[0311] At this time, TCP can be used for video data.
[0312] At this time, step (S1110) can identify the congestion status of video data by using the TCP / IP window size along with real-time usage.
[0313] In addition, a method for providing a cloud streaming service using alpha data channel separation according to one embodiment of the present invention can transmit the entire data (S1120).
[0314] That is, step (S1120) can efficiently transmit the entire data based on the real-time usage of video data and the real-time usage of alpha data.
[0315] At this time, step (S1120) can obtain pre-stored delay time information available in STB (SET TOP BOX) to efficiently transmit the entire data.
[0316] At this time, step (S1120) can separate the transmission channels of video data and alpha data according to the bandwidth based on the pre-stored delay time information available in the STB.
[0317] A method for providing a cloud streaming service using alpha data channel separation according to one embodiment of the present invention can perform client decoding (S1130).
[0318] That is, step (S1130) can perform video decoding by transmitting video data from the STB to a video decoder, and output alpha data directly to the screen.
[0319] At this time, step (S1130) outputs the video data on which the video decoding has been performed to the screen in a preset minimum buffer unit, and can immediately output the UI (User Interface) to the screen based on the alpha data.
[0320] At this time, step (S1130) starts drawing the screen only when the minimum buffer amount of data is entered in the case of video data, so the cloud streaming server (810) can transmit alpha data that much later.
[0321] FIG. 12 is a block diagram illustrating a cloud streaming server according to one embodiment of the present invention.
[0322] Referring to FIG. 12, a cloud streaming server according to one embodiment of the present invention includes a communication unit (1210), a processor (1220), and a memory (1230).
[0323] The communication unit (1210) 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 (1210) 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.
[0324] For example, a network is a concept that provides a path for transmitting data between a cloud streaming server and a user terminal, and encompasses both existing networks and networks that may be developed in the future. For example, a network 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 mobile devices and between mobile devices 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 these. Meanwhile, the transmission method standard of the network is not limited to the existing transmission method standard, and may include all transmission method standards that will be developed in the future.
[0325] The processor (1220) can measure real-time usage of video data.
[0326] At this time, TCP can be used for video data.
[0327] At this time, the processor (1220) can identify the congestion status using the TCP / IP window size along with real-time usage.
[0328] At this time, the processor (1220) can measure the real-time usage of alpha data.
[0329] At this time, the memory (1230) can store real-time usage of video data and alpha data.
[0330] The communication unit (1210) can efficiently transmit the entire data based on the real-time usage of video data and the real-time usage of alpha data.
[0331] At this time, the processor (1220) can obtain delay time information available from the STB (SET TOP BOX) to efficiently transmit the entire data.
[0332] At this time, the memory (1230) may store STB delay time information.
[0333] At this time, the communication unit (1210) can transmit video data and alpha data through separate channels according to the bandwidth based on the delay time information available in the STB.
[0334] The user terminal (820) can transmit video data to a video decoder in the STB and output alpha data directly to the screen.
[0335] At this time, the user terminal (820) starts drawing the screen only when the minimum buffer amount of data is entered in the case of video data, so the cloud streaming server (810) can transmit alpha data that much later.
[0336] 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.
[0337] In addition, the memory (1230) stores various information generated in the process of providing a cloud streaming service using alpha data channel separation according to an embodiment of the present invention as described above.
[0338] In some embodiments, the memory (1230) may be configured independently from the cloud streaming server to support functions for providing cloud streaming services utilizing alpha data channel separation. In this case, the memory (1230) may function as a separate large-capacity storage device and may include control functions for performing operations.
[0339] Additionally, the cloud streaming server configured as described above may be implemented with one or more servers.
[0340] 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.
[0341] Figure 13 is a block diagram showing a user terminal according to one embodiment of the present invention.
[0342] Referring to FIG. 13, a user terminal according to an embodiment of the present invention may be implemented in a computer system such as a computer-readable recording medium. As illustrated in FIG. 13, a computer system (1300) may include one or more processors (1310), a memory (1330), a user input device (1340), a user output device (1350), and storage (1360) that communicate with each other via a bus (1320). In addition, the computer system (1300) may further include a network interface (1370) connected to a network (1380). The processor (1310) may be a central processing unit or a semiconductor device that executes processing instructions stored in the memory (1330) or storage (1360). The memory (1330) and storage (1360) may be various types of volatile or non-volatile storage media. For example, the memory may include ROM (1331) or RAM (1332).
[0343] The processor (1310) can transmit video data from the STB to a video decoder and output alpha data directly to the screen.
[0344] At this time, the processor (1310) starts drawing the screen only when the minimum buffer amount of data is entered in the case of video data, so the cloud streaming server (810) can transmit alpha data that much later.
[0345] 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.
[0346] A 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.
[0347] As used herein, the term "system" or "device" encompasses any mechanism, device, or machine for processing data, including, for example, a programmable processor, a computer, or a multiprocessor or computer. In addition to hardware, a processing system may include code that forms an execution environment for a computer program upon request, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of these.
[0348] A computer program (also known as a program, software, software application, script, or code) may be written in any programming language, including compiled or interpreted languages, a priori or procedural languages, and may be deployed in any form, including as a standalone program, module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a single file provided to a requested program, in multiple interacting files (e.g., a file storing one or more modules, subprograms, or portions of code), or as part of a file containing other programs or data (e.g., one or more scripts stored within a markup language document). A computer program may be deployed to be executed on a single computer or on multiple computers located at a single site or distributed across multiple sites and interconnected by a communications network.
[0349] Meanwhile, computer-readable media suitable for storing computer program instructions and data may include all forms of non-volatile memory, media and memory devices, including semiconductor memory devices such as EPROM, EEPROM and flash memory devices, magnetic disks such as internal hard disks or external disks, magneto-optical disks and CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated into, special-purpose logic circuitry.
[0350] Implementations of the subject matter described herein may be implemented in a computing system that includes a back-end component, such as a data server, a middleware component, such as an application server, a front-end component, such as a user computer having a web browser or graphical user interface through which a user can interact with implementations of the subject matter described herein, or any combination of one or more of such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication, such as a communications network.
[0351] While this specification contains details of a number of specific implementations, these should not be construed as limitations on the scope of any invention or what may be claimed, but rather as descriptions of features that may be unique to particular embodiments of a particular invention. Likewise, certain features described herein in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments, either individually or in any suitable subcombination. Furthermore, although features may operate in a particular combination and may initially be described as being claimed as such, one or more features from a claimed combination may in some cases be excluded from that combination, and the claimed combination may be modified into a subcombination or variation of a subcombination.
[0352] Furthermore, while this specification depicts operations in the drawings in a particular order, this should not be construed as requiring that such operations be performed in the particular or sequential order depicted to achieve desired results, or that all depicted operations be performed. In certain instances, multitasking and parallel processing may be advantageous. Furthermore, the separation of the various system components of the embodiments described above should not be construed as requiring such separation in all embodiments, and it should be understood that the program components and systems described may generally be integrated together into a single software product or packaged into multiple software products.
[0353] As such, this specification is not intended to limit the invention to the specific terms presented. Accordingly, while the invention has been described in detail with reference to the examples described above, those skilled in the art will appreciate that modifications, variations, and variations may be made to these examples without departing from the scope of the invention. The scope of the invention is indicated by the claims below rather than the detailed description above, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be construed as being included within the scope of the invention.
[0354] As described above, the method for providing a cloud streaming service using cache preloading based on a search type according to the present invention and the device therefor are not limited to the configuration and method 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.
[0355] According to the present invention, a cloud streaming server can identify a user terminal's navigation type, preload a matching cache corresponding to the user terminal's navigation type into the browser, and link the browser and the user terminal. Accordingly, the server can effectively provide the cache required for the service without having to store all cache.
[0356] In addition, according to the present invention, a cloud streaming server includes a processor that measures real-time usage of video data and alpha data of an STB (SET TOP BOX), transmits the video data and alpha data to the STB through separate channels based on the real-time usage of the video data and alpha data, and a memory that stores the real-time usage of the video data and alpha data, and the STB can perform video decoding in the case of the video data and output the alpha data to a screen.
Claims
1. Cloud streaming server, A step for identifying the navigation type of the user terminal; A step of preloading a matching cache corresponding to the search type of the user terminal into the browser; and Step of linking the above browser and the above user terminal A method for providing a cloud streaming service, characterized by including:
2. In claim 1, The step of the cloud streaming server recording the loading speed, usage frequency and consumption amount of the cache resources used for each search type; and A method for providing a cloud streaming service, characterized in that the cloud streaming server further includes a step of setting a cache resource loading priority by search type by referring to the record.
3. In claim 2, The above matching cache is A method for providing a cloud streaming service, characterized in that the loading order of cache resources is determined by considering the above search type.
4. In claim 1, The step of the cloud streaming server searching for an idle browser in which the matching cache is loaded before performing the preloading; and A method for providing a cloud streaming service, characterized in that, if the idle browser exists, the cloud streaming server further includes a step of linking the idle browser and the user terminal without performing the preloading.
5. In claim 1, The above navigation types are A method for providing a cloud streaming service, characterized in that the method is determined based on the previous browsing history of the user terminal.
6. A processor that identifies the navigation type of the user terminal, preloads a matching cache corresponding to the navigation type of the user terminal into the browser, and links the browser and the user terminal; and Memory that stores the previous browsing history of the above user terminal A cloud streaming server comprising:
7. Cloud streaming server, Step of measuring real-time usage of video data and alpha data of STB (SET TOP BOX); A step of transmitting video data and alpha data to the STB as separate channels based on real-time usage of the video data and alpha data; and The step of the above STB performing video decoding in the case of the video data and outputting the alpha data to the screen; A method for providing a cloud streaming service, characterized by including:
8. In claim 7, The above measuring steps are A method for providing a cloud streaming service characterized by identifying the congestion status of video data using the window size of TCP / IP.
9. In claim 7, The above transmitting steps are A method for providing a cloud streaming service, characterized by obtaining pre-stored delay time information available in the above STB.
10. A processor that measures real-time usage of video data and alpha data of STB (SET TOP BOX) and transmits video data and alpha data to the STB through separate channels based on the real-time usage of the video data and alpha data; and Memory that stores real-time usage of the above video data and alpha data Including, A cloud streaming server, characterized in that the STB performs video decoding in the case of the video data and outputs the alpha data to the screen.
Citation Information
Patent Citations
Application-driven cdn pre-caching
KR101997305B1
Apparatus and method for caching web browser information based on resource type
KR1020140124192A
Cache server, media play device and cloud server for processing user interace
KR1020170033582A
SMR propulsion system ans vessel including the same
KR1020230036202A
Method for manufacturing bonded body and bonded body manufactured using the same
KR102674254B1