WO2016035995A1 - Cloud streaming service system, cloud streaming service method for saving system resources, and apparatus therefor - Google Patents

Cloud streaming service system, cloud streaming service method for saving system resources, and apparatus therefor Download PDF

Info

Publication number
WO2016035995A1
WO2016035995A1 PCT/KR2015/007263 KR2015007263W WO2016035995A1 WO 2016035995 A1 WO2016035995 A1 WO 2016035995A1 KR 2015007263 W KR2015007263 W KR 2015007263W WO 2016035995 A1 WO2016035995 A1 WO 2016035995A1
Authority
WO
WIPO (PCT)
Prior art keywords
still image
code
cloud streaming
information
key frame
Prior art date
Application number
PCT/KR2015/007263
Other languages
French (fr)
Korean (ko)
Inventor
이동수
윤홍서
김동국
Original Assignee
엔트릭스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020140115670A external-priority patent/KR102247889B1/en
Priority claimed from KR1020140170423A external-priority patent/KR102247892B1/en
Application filed by 엔트릭스 주식회사 filed Critical 엔트릭스 주식회사
Publication of WO2016035995A1 publication Critical patent/WO2016035995A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk

Definitions

  • Cloud streaming service system Cloud streaming service method for saving system resources, and a device for the same (SYSTEM FOR CLOUD STREAMING SERVICE, METHOD OF CLOUD STREAMING SERVICE TO SAVE SYSTEM RESOURCES AND APPARATUS FOR THE SAME)
  • streaming service Similar scenes are divided into key frames and subframes, and still image compression information corresponding to the key frames is generated and applied to the subframes to save system resources.
  • Cloud streaming service system that can generate application result screen with animation effect on user terminal by transmitting generated code with the captured image to user, cloud streaming to save system resources It relates to a service method and an apparatus therefor.
  • a cloud streaming technology which compresses and streams a screen into a video and provides the same to a user's terminal, and plays a streamed screen on the terminal as if an application is running on the terminal, has been in the spotlight.
  • Korean Patent Application Publication No. 10-2014-0041317 published April 04, 2014 (name: transmission of video using static content information from a video source)
  • Korean Patent Application Publication No. 10-2010-0113503 Issue, October 21, 2010 name: System and Method for Storing Program Code and Data in an Application Hosting Center
  • An object of the present invention is to increase the compression rate of data by using a still image compression technique when providing a still image-based cloud streaming service to prevent transmission delays that may occur when the still image-based cloud streaming.
  • an object of the present invention is to provide an improved cloud streaming service by omitting the process of comparing the frame difference in order to generate an image to be captured by the cloud streaming server, and by acquiring the image at the code stage.
  • an object of the present invention is to enable a web application developer to provide a cloud streaming service for performing the application of animation effects in the user terminal even if the application code of the desired format is written in the existing manner, not the new format code. .
  • the capture unit for capturing the execution screen of the application executed for the cloud streaming service;
  • a key frame extracting unit extracting a key frame of the execution screen; Generating still image compression information corresponding to the key frame, and applying a still image compression technique based on the still image compression information to one or more of the remaining frames other than the key frame and the key frame among the execution screens
  • An encoding unit for encoding a still image of the execution screen and a sending unit configured to transmit the still image encoded execution screen to a user's terminal device to perform a still image based cloud streaming service.
  • the encoder may extract a subframe having a change value of the frame less than a predetermined reference value from the remaining key frames, and compress the subframe using the still image compression technique.
  • the key frame may be a frame in which the change value of the frame is greater than or equal to the preset reference value in comparison with the previous frame of the execution screen.
  • the still image compression information may include one or more of a palette, a color substitution table, and an optimal filter.
  • the encoding unit may compress the subframe using the still image compression technique based on the still image compression information until the next key frame of the key frame appears.
  • the encoding unit may store the key frame and the still image compression information in a database in association.
  • the key frame extracting unit may calculate the change value of the frame in consideration of the change of the pixel value of the execution screen.
  • the key frame extracting unit may extract the key frame in consideration of at least one of the input signal of the application and the number of additional colors.
  • the encoding unit may encode a still image of the execution screen by using a paletted portable network graphics (PNG) still image compression method using the still image compression information.
  • PNG portable network graphics
  • the cloud streaming service method for saving system resources capturing an execution screen of an application executed for the cloud streaming service; Extracting a key frame from the execution screen; Generating still image compression information corresponding to the key frame, and applying a still image compression technique based on the still image compression information to one or more of the remaining frames other than the key frame and the key frame among the execution screens Encoding a still image of the execution screen; And performing a still image-based cloud streaming service by transmitting the still image encoded execution screen to a user's terminal device.
  • the encoding may include extracting a subframe having a change value of the frame less than a predetermined reference value from the remaining key frames, and compressing the subframe using the still image compression technique. can do.
  • the key frame can save the system resources, characterized in that the change value of the frame compared to the previous frame of the execution screen is a frame of more than the predetermined reference value.
  • the still image compression information may include one or more of a palette, a color substitution table, and an optimal filter.
  • the encoding may compress the subframe using the still image compression technique based on the still image compression information until the next key frame of the key frame appears.
  • the encoding may save system resources, wherein the key frame and the still image compression information are interlocked and stored in a database.
  • the extracting of the key frame may calculate the change value of the frame in consideration of the change of the pixel value of the execution screen.
  • the extracting of the key frame may extract the key frame in consideration of at least one of the input signal of the application and the number of additional colors.
  • the encoding may include still image encoding of the execution screen using a paletted portable network graphics (PNG) still image compression technique using the still image compression information.
  • PNG portable network graphics
  • the cloud streaming service system captures an execution screen of an application executed for the cloud streaming service, extracts a key frame of the execution screen, the remaining frames and the key other than the key frame of the execution screen Applying a still image compression technique based on still image compression information corresponding to the key frame to at least one of the frames, and still encoding the execution screen, and transmitting the still image encoded execution screen to a user terminal device.
  • Cloud streaming server for performing a still image-based cloud streaming service; And a terminal receiving an application execution result screen corresponding to the cloud streaming service from the cloud streaming server.
  • a cloud streaming server for achieving the above object, the code receiving unit for receiving a first code corresponding to the application result screen from the web application server; A capture unit to generate a captured image by using image area attribute information included in the first code; An encoding unit for still image encoding the captured image using a still image compression technique; And a still image-based cloud by transmitting the still image encoded capture image and the second code generated to include the animation information to the user terminal so as to generate the application result screen in the user terminal. It includes a sender for performing a streaming service.
  • the capture unit may generate the captured image by performing rendering on input information corresponding to the image region property information included in the first code.
  • the cloud streaming server may include a capture image information generation unit configured to generate capture image information by using the image area attribute information included in the first code; An animation information generator configured to generate the animation information by using the animation code included in the first code; And a code converter configured to convert the first code into the second code including the captured image information and animation information.
  • the capture unit may generate the captured image by performing the rendering only on a part of the application result screen.
  • the second code may include the animation information corresponding to at least one or more of an animation type, an animation application time, an animation repetition number, a start coordinate, an end coordinate, a start size, and an end size.
  • the second code may not include the animation code.
  • the encoding unit may encode still images of the captured image using a still image compression technique corresponding to any one of portable network graphics (PNG), palletized portable network graphics (PNG), and joint photography experts group (JPEG).
  • PNG portable network graphics
  • PNG palletized portable network graphics
  • JPEG joint photography experts group
  • the image cloud streaming service method using the application code the step of receiving a first code corresponding to the application result screen from the web application server; Generating a captured image by using image region attribute information included in the first code; Still image encoding the captured image using a still image compression technique; And converting the still image-encoded capture image and the first code to generate the application result screen in a user terminal, and transmitting a second code generated to include animation information to the user terminal to generate the application result screen.
  • the generating of the captured image may generate the captured image by rendering the input information corresponding to the image region attribute information included in the first code.
  • the cloud streaming service method may further include generating captured image information by using the image area attribute information included in the first code; Generating the animation information by using an animation code included in the first code; And converting the first code into the second code including the captured image information and animation information.
  • the generating of the captured image may generate the captured image by performing the rendering only on a part of the application result screen.
  • the second code may include the animation information corresponding to at least one or more of an animation type, an animation application time, an animation repetition number, a start coordinate, an end coordinate, a start size, and an end size.
  • the second code may not include the animation code.
  • the encoding of the still image may be performed by using a still image compression technique corresponding to any one of portable network graphics (PNG), paletted portable network graphics (PNG), and joint photography experts group (JPEG).
  • Image can be encoded.
  • the cloud streaming service system receives a first code corresponding to the application result screen from the web application server, and generates a captured image using the image area attribute information included in the first code And converting the still image encoded capture image and the first code using a still image compression technique to transmit a second code generated to include animation information to a user terminal to perform a still image-based cloud streaming service.
  • Cloud streaming server And a terminal receiving an application execution result screen corresponding to the still image-based cloud streaming service from the cloud streaming server.
  • the present invention can pre-configure still image compression information for important frames among similar parts of the service scene and reuse them when encoding frames similar to the important frames to save the system resources necessary for generating still image compression information as much as possible. Can be.
  • the present invention can provide an improved cloud streaming service by omitting the process of comparing the frame difference to generate an image to be captured by the cloud streaming server and acquires the image at the code end.
  • the present invention can increase the number of web containers that can be driven in the server by avoiding unnecessary animation processing when processing the application result screen.
  • the present invention can provide a cloud streaming service for performing the application of animation effects in the user terminal even if the web application developers write the application code of the desired format in a conventional manner rather than a new format code.
  • FIG. 1 is a block diagram showing a cloud streaming service system according to an embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating an example of a cloud streaming server of FIG. 1.
  • FIG. 3 is a diagram illustrating a key frame and a sub frame according to an embodiment of the present invention.
  • FIG. 4 is an operation flowchart illustrating a cloud streaming service method for saving system resources according to an embodiment of the present invention.
  • FIG. 5 is an operation flowchart showing in detail a cloud streaming service method for saving system resources according to an embodiment of the present invention.
  • FIG. 6 is a block diagram showing a cloud streaming service system according to another embodiment of the present invention.
  • FIG. 7 is a block diagram illustrating an example of a cloud streaming server of FIG. 6.
  • FIG. 8 is a diagram illustrating performing a still image-based cloud streaming service according to an embodiment of the present invention.
  • FIG 9 illustrates a first code and a second code according to an embodiment of the present invention.
  • FIG. 10 is a diagram illustrating code conversion according to an embodiment of the present invention.
  • FIG. 11 is a diagram illustrating code conversion according to another embodiment of the present invention.
  • FIG. 12 is a flowchart illustrating an image cloud streaming service method using an application code according to an embodiment of the present invention.
  • FIG. 13 is a flowchart illustrating a code conversion process according to an embodiment of the present invention.
  • FIG. 1 is a block diagram showing a cloud streaming service system according to an embodiment of the present invention.
  • a cloud streaming service system includes a cloud streaming server 110, terminal devices 120-1,..., 120 -N, and a network 130. .
  • the cloud streaming server 110 captures an execution screen of an application executed for the cloud streaming service.
  • the cloud streaming server 110 extracts a key frame of the execution screen.
  • the key frame may be a frame in which the change value of the frame is greater than or equal to a preset reference value in comparison with the previous frame in the execution screen.
  • the change value of the frame may be calculated in consideration of the change of the pixel value of the execution screen.
  • the key frame may be extracted in consideration of at least one of the input signal of the application and the number of additional colors.
  • the cloud streaming server 110 generates still image compression information corresponding to the key frame, and compresses the still image based on the still image compression information on one or more of the remaining frames and key frames except the key frame in the execution screen.
  • the technique is applied to still image encoding of the execution screen.
  • a subframe having a change value of a frame less than a predetermined reference value may be extracted from the remaining frames, and the subframe may be compressed using a still image compression technique.
  • the still image compression information may include one or more of a palette, a color substitution table, and an optimal filter.
  • the subframe may be compressed by using a still image compression technique based on still image compression information until the next key frame of the key frame appears.
  • the key frame and the still image compression information may be linked to and stored in the database.
  • a still image may be encoded using a paletted portable network graphics (PNG) still image compression technique using still image compression information.
  • PNG paletted portable network graphics
  • the cloud streaming server 110 transmits a still image encoded execution screen to the terminal devices 120-1,..., 120 -N of the user to perform a cloud image service based on a still image.
  • the terminal devices 120-1,..., 120 -N receive an application execution result screen corresponding to the cloud streaming service from the cloud streaming server 110 and provide the result to the user.
  • the terminal devices 120-1,..., 120 -N are devices connected to a communication network to execute an application based on a cloud computing system, and are not limited to mobile communication terminals, but all information communication devices and multimedia terminals. It may be a variety of terminals, such as a wired terminal, a fixed terminal and an IP (Internet Protocol) terminal.
  • the terminal devices 120-1,..., 120 -N are respectively mobile phones, portable multimedia players (PMPs), mobile internet devices (MIDs), smart phones, desktops, and tablet computers. Number of mobile terminals with various mobile communication specifications such as Tablet PC, Note book, Net Book, Personal Digital Assistant (PDA), Smart TV, and ICT devices have.
  • the network 130 provides a path for transferring data between the cloud streaming server 110 and the terminal devices 120-1,..., 120 -N, and is a network that can be used in the future and a network that can be developed in the future.
  • the network 130 is a wired or wireless local area network that provides communication of various information devices within a limited area, a mobile communication network that provides communication between each other and between the mobile and the outside of the mobile, and the communication between the earth station and the earth station using satellites. It may be made of a satellite communication network or a wired or wireless communication network providing a combination of two or more.
  • the transmission standard of the network 130 is not limited to the existing transmission method standard and may include all transmission method standards to be developed in the future.
  • the network used between the cloud streaming server 110 and the terminal devices 120-1,..., 120 -N is terminal devices 120-1,..., 120 -N. It may be different from the networks used mutually, or may be the same.
  • FIG. 2 is a block diagram illustrating an example of a cloud streaming server of FIG. 1.
  • the cloud streaming server 110 illustrated in FIG. 1 includes a capture unit 210, a key frame extractor 220, an encoder 230, a sender 240, and a storage 250. Include.
  • the capture unit 210 captures an execution screen of an application executed for the cloud streaming service. For example, when an application execution request is received by one or more terminal devices connected to the cloud streaming server 110 through a network, the application is executed in the cloud streaming server 110 in response to a request of the terminal device. An execution screen corresponding to an application execution result may be captured to be delivered to the terminal device.
  • the key frame extracting unit 220 extracts a key frame of the execution screen.
  • the execution screen may be composed of a plurality of frames, and a plurality of similar frames may exist because the change is not large among the plurality of frames.
  • all frames must be compressed and provided to a user terminal device using a still image compression technique, and still image compression information for each frame is configured according to the still image compression technique. Needs to be. If there are many similar frames, it may cause a problem to smoothly provide a service due to a large consumption of system resources for composing still image compression information for all frames. Accordingly, system resources may be saved by extracting a key frame among similar frames and compressing the still image compression information generated based on the key frame by applying the same to the remaining similar frames.
  • the key frame may be a frame in which the change value of the frame is greater than or equal to a preset reference value in comparison with the previous frame in the execution screen. For example, when about 60 percent of the entire area of a frame changes compared to the previous frame, the frame can be extracted as a key frame.
  • a preset reference value can be freely set and modified by a developer.
  • the reference value is set too low, too many key frames are extracted, so that the consumption of system resources may be severe. If the reference value is set too high, the extracted key picture may be less so that the image quality of the encoded execution screen may be severe. Therefore, in order to prevent such a problem, it is possible to set the maximum reference value and the minimum reference value and to make modifications within the range.
  • the change value of the frame may be calculated in consideration of the change of the pixel value of the execution screen. For example, the change value of all the pixels included in the frame may be calculated, and the change value of the frame may be calculated by determining the degree of change by comparing the pixel value of the previous frame. If it is assumed that there are 10000 pixels constituting the frame and the preset reference value is 60 percent, the frame may be determined as a key frame and extracted if it is changed by 6000 pixels or more compared with the previous frame.
  • the key frame may be extracted in consideration of at least one of the input signal of the application and the number of additional colors.
  • the input signal of the application may be a signal for changing the execution screen of the application
  • the input signal of the application may be sensed to determine the first frame of the execution screen generated by the input signal as a large key frame.
  • the frame may be determined as a key frame and extracted.
  • the encoding unit 230 generates still image compression information corresponding to the key frame, and applies a still image compression technique based on the still image compression information to one or more of the remaining frames and key frames except the key frame in the execution screen.
  • a still image compression technique based on the still image compression information to one or more of the remaining frames and key frames except the key frame in the execution screen.
  • the remaining frames are applied to the still image compression technique using the still image compression information that has already been generated.
  • the execution screen consisting of the key frame and the remaining frames can be still image encoded.
  • a subframe having a change value of a frame less than a predetermined reference value may be extracted from the remaining frames, and the subframe may be compressed using a still image compression technique.
  • a still image compression technique since a plurality of key frames may exist in the execution screen, similar frames corresponding to each key frame may exist among the remaining frames.
  • a change value of a frame is compared with each key frame, a similar frame having a lower value than a predetermined reference value is extracted as a subframe for the key frame, and the key frame is compressed using a still image compression technique.
  • the still image compression information may include one or more of a palette, a color substitution table, and an optimal filter.
  • a palette, a color substitution table, an optimal filter, and the like may be used to reduce the width of colors constituting the image.
  • the PNG format can express image color information in RGB and Indexed Color formats.
  • the RGB format can use red, green, and blue values for each pixel.
  • a color used to compose an image may be pre-written in a table called a palette, and information about which color on the palette table is used for each pixel may be included.
  • the RGB format requires 8 bits each for red, green, and blue, and 24 bits are required for each pixel.
  • the data size is 3 Can be reduced to one-third.
  • the indexed color format represents information using 8 bits, only up to 256 pieces of information can be represented.
  • the color substitution table can be used to replace the RGB format color with the color included in the Indexed Color format palette. In this case, since the number of colors that can be used is inevitably reduced than that in the RGB format, image quality may be degraded.
  • a filter for each row of pixels. For example, if a row consists of five pixels and all five pixels contain information that says red, the information in pixels is in the form of 'red, red, red, red, red'. It may be more succinct to express it as 'five red' than it does. Therefore, the optimum filter may be applied to each row of the pixel, thereby making the data more concise.
  • the subframe may be compressed using a still image compression technique based on still image compression information until the next key frame of the key frame appears.
  • the still image compression information for the first key frame extracted from the execution screen may be configured, and subsequent subframes may be still image encoded using the same.
  • the still image compression information is configured again for the second key frame, and the second subframes for the subsequent subframes.
  • Still image encoding may be performed by applying a still image compression method using still image compression information of a key frame.
  • the key frame and the still image compression information can be linked and stored in the database.
  • all key frames included in the execution screen may be extracted in advance, and still image compression information for each key frame may be generated and stored in a database.
  • still image compression information for each key frame may be generated and stored in a database.
  • a still image may be encoded using a paletted portable network graphics (PNG) still image compression technique using still image compression information.
  • PNG paletted portable network graphics
  • palletized PNG still image compression can cause image quality degradation, but can reduce the size of data to one-third, resulting in transmission delays in environments with limited network bandwidth. Can be prevented.
  • the sending unit 240 transmits a still image encoded execution screen to a user terminal device to perform a still image based cloud streaming service.
  • a still image encoded execution screen By completing the still image encoding and transmitting the compressed execution screen to the user's terminal device, the user may feel as if the application is executed in the user's terminal device.
  • the storage unit 250 stores various information generated in the cloud streaming service process according to the embodiment of the present invention as described above.
  • the storage 250 may be configured independently of the cloud streaming server 110 to support a function for a cloud streaming service.
  • the storage unit 250 may operate as a separate mass storage, and may include a control function for performing the operation.
  • cloud streaming server 110 configured as described above may be implemented as one or more servers.
  • the cloud streaming server 110 may be equipped with a memory to store information in the device.
  • the memory is a computer readable medium.
  • the memory may be a volatile memory unit, and for other implementations, the memory may be a nonvolatile memory unit.
  • the storage device is a computer readable medium.
  • the storage device may include, for example, a hard disk device, an optical disk device, or some other mass storage device.
  • the storage unit 250 may store the key frame and the still image compression information in association with the database of the present invention.
  • FIG. 3 is a diagram illustrating a key frame and a sub frame according to an embodiment of the present invention.
  • a plurality of frames constituting an execution screen of an application may be divided into key frames 310 and 320 and subframes 310-1, 310-2, 320-1, and 320-N.
  • the key frame may be a frame in which the change value of the frame is greater than or equal to a preset reference value in comparison with the previous frame in the execution screen.
  • the change value of the frame may be greater than or equal to a preset reference value when compared to the subframe 310-2 corresponding to the previous frame.
  • the key frames 310 and 320 and the subframes 310-1, 310-2, 320-1, and 320-N corresponding to the key frames 310 and 320 are likely to be sequentially arranged. Accordingly, when extracting the subframes 310-1, 310-2, 320-1, and 320 -N, frames located between the key frames 310 and 320 may be extracted.
  • a subframe may be applied by applying a still image compression method using the same still image compression information until the next key frame appears. It can be compressed.
  • the subframe 310-1 and the subframe 310-2 may be compressed using a still image compression technique using still image compression information on the key frame 310.
  • the next key frame 320 which is the next key frame
  • the sub image is extracted using the still image compression technique using the still image compression information on the key frame 320 without using the still image compression information on the key frame 310.
  • the frame 320-1 may be compressed. Thereafter, in the same manner as described above, compression may be performed using a still image compression technique using still image compression information of the key frame 320 until the next key frame appears.
  • FIG. 4 is an operation flowchart illustrating a cloud streaming service method for saving system resources according to an embodiment of the present invention.
  • the cloud streaming service method for conserving system resources captures an execution screen of an application executed for the cloud streaming service (S410). For example, when an application execution request is received by at least one terminal device connected to the cloud streaming server through a network, the application is executed in the cloud streaming server according to the request of the terminal device, and corresponds to the application execution result.
  • the execution screen may be captured for delivery to the terminal device.
  • the cloud streaming service method for saving system resources extracts a key frame of the execution screen (S420).
  • the execution screen may be composed of a plurality of frames, and a plurality of similar frames may exist because the change is not large among the plurality of frames.
  • all frames must be compressed and provided to a user terminal device using a still image compression technique, and still image compression information for each frame is configured according to the still image compression technique. Needs to be. If there are many similar frames, it may cause a problem to smoothly provide a service due to a large consumption of system resources for composing still image compression information for all frames. Accordingly, system resources may be saved by extracting a key frame among similar frames and compressing the still image compression information generated based on the key frame by applying the same to the remaining similar frames.
  • the key frame may be a frame in which the change value of the frame is greater than or equal to a preset reference value in comparison with the previous frame in the execution screen. For example, when about 60 percent of the entire area of a frame changes compared to the previous frame, the frame can be extracted as a key frame.
  • a preset reference value can be freely set and modified by a developer.
  • the reference value is set too low, too many key frames are extracted, so that the consumption of system resources may be severe. If the reference value is set too high, the extracted key picture may be less so that the image quality of the encoded execution screen may be severe. Therefore, in order to prevent such a problem, it is possible to set the maximum reference value and the minimum reference value and to make modifications within the range.
  • the change value of the frame may be calculated in consideration of the change of the pixel value of the execution screen. For example, the change value of all the pixels included in the frame may be calculated, and the change value of the frame may be calculated by determining the change degree by comparing the pixel value of the previous frame. If it is assumed that there are 10000 pixels constituting the frame and the preset reference value is 60 percent, the frame may be determined as a key frame and extracted if it is changed by 6000 pixels or more compared with the previous frame.
  • the key frame may be extracted in consideration of at least one of the input signal of the application and the number of additional colors.
  • the input signal of the application may be a signal for changing the execution screen of the application
  • the input signal of the application may be sensed to determine the first frame of the execution screen generated by the input signal as a large key frame.
  • the frame may be determined as a key frame and extracted.
  • the cloud streaming service method for saving system resources generates a still image compression information corresponding to the key frame, and at least one of the remaining frames and key frames other than the key frame of the execution screen
  • the still screen is encoded by applying a still image compression technique based on still image compression information. For example, after generating still image compression information for one or a plurality of key frames of the frames constituting the execution screen, the remaining frames are applied to the still image compression technique using the still image compression information that has already been generated. By performing the encoding, the execution screen consisting of the key frame and the remaining frames can be still image encoded.
  • a subframe having a change value of a frame less than a predetermined reference value may be extracted from the remaining frames, and the subframe may be compressed using a still image compression technique.
  • a still image compression technique since a plurality of key frames may exist in the execution screen, similar frames corresponding to each key frame may exist among the remaining frames.
  • a change value of a frame is compared with each key frame, a similar frame having a lower value than a predetermined reference value is extracted as a subframe for the key frame, and the key frame is compressed using a still image compression technique.
  • the still image compression information may include one or more of a palette, a color substitution table, and an optimal filter.
  • a palette, a color substitution table, an optimal filter, and the like may be used to reduce the width of colors constituting the image.
  • the PNG format can express image color information in RGB and Indexed Color formats.
  • the RGB format can use red, green, and blue values for each pixel.
  • a color used to compose an image may be pre-written in a table called a palette, and information about which color on the palette table is used for each pixel may be included.
  • the RGB format requires 8 bits each for red, green, and blue, and 24 bits are required for each pixel.
  • the size of the data is 3 when converting the RGB format to the Indexed Color format. Can be reduced to one-third.
  • the indexed color format represents information using 8 bits, only up to 256 pieces of information can be represented.
  • the color substitution table can be used to replace the RGB format color with the color included in the Indexed Color format palette. In this case, since the number of colors that can be used is inevitably reduced than that in the RGB format, image quality may be degraded.
  • a filter for each row of pixels. For example, if a row consists of five pixels and all five pixels contain information that says red, the information in pixels is in the form of 'red, red, red, red, red'. It may be more succinct to express it as 'five red' than it does. Therefore, the optimum filter may be applied to each row of the pixel, thereby making the data more concise.
  • the subframe may be compressed using a still image compression technique based on still image compression information until the next key frame of the key frame appears.
  • the still image compression information for the first key frame extracted from the execution screen may be configured, and subsequent subframes may be still image encoded using the same.
  • the still image compression information is configured again for the second key frame, and the second subframes for the subsequent subframes.
  • Still image encoding may be performed by applying a still image compression method using still image compression information of a key frame.
  • the key frame and the still image compression information can be linked and stored in the database.
  • all key frames included in the execution screen may be extracted in advance, and still image compression information for each key frame may be generated and stored in a database.
  • still image compression information for each key frame may be generated and stored in a database.
  • a still image may be encoded using a paletted portable network graphics (PNG) still image compression technique using still image compression information.
  • PNG paletted portable network graphics
  • palletized PNG still image compression can cause image quality degradation, but can reduce the size of data to one-third, resulting in transmission delays in environments with limited network bandwidth. Can be prevented.
  • the cloud streaming service method for saving system resources transmits a still image encoded execution screen to the user's terminal device to perform a still image-based cloud streaming service (S440).
  • a still image-based cloud streaming service S440
  • the user may feel as if the application is executed in the user's terminal device.
  • FIG. 5 is an operation flowchart showing in detail a cloud streaming service method for saving system resources according to an embodiment of the present invention.
  • the cloud streaming service method for saving system resources first captures an execution screen of an application executed for a cloud streaming service (S510).
  • a change value of the frame is calculated by comparing the previous frame with the current frame of the frames constituting the execution screen to extract the key frame (S520).
  • step S525 If the determination result in step S525 is equal to or greater than the preset reference value, the current frame is extracted as a key frame (S530).
  • step (S525) If the determination result of the step (S525) is less than the predetermined reference value, it is determined that the current frame as the remaining frames other than the key frame (S540).
  • the still image compression information may include one or more of a palette, a color substitution table, and an optimal filter.
  • the frame change value is calculated by comparing the key frame with the remaining frames (S560).
  • step S565 If the determination result in step S565 is less than the predetermined reference value, the corresponding remaining frame is extracted as a subframe of the key frame (S570).
  • step S565 If the determination result of step S565 is equal to or greater than the preset reference value, it may be determined again whether the corresponding remaining frame is a key frame, and may be divided into one of a key frame and a subframe of another key frame.
  • a still image encoding may be performed by compressing a subframe using a still image compression technique using still image compression information of a key frame.
  • the execution screen on which the still image encoding is completed is transmitted to the user's terminal device to perform a cloud streaming service based on the still image (S590).
  • FIG. 6 is a block diagram showing a cloud streaming service system according to another embodiment of the present invention.
  • a cloud streaming service system may include a web application server 605, a cloud streaming server 610, terminal devices 620-1,..., 620 -N, and a network. 630.
  • the web application server 605 is a server that receives and processes requests from the terminal devices 620-1,. Rather than processing all requests received from terminal devices 620-1, ..., 620-N, the web application server 605 structurally separates and processes the functions of the web application server 605 through web containers. Since the number of service requests from the terminal devices 620-1,..., And 620 -N increases, the method of serving using the web application server 605 may be more effective. For example, BEA's WEB LOGIC, IBM's Webspere, T-max's JEUS, Tomcat, RedHot's Jboss, etc. may correspond to the web application server 605.
  • the application server 605 may transmit the application code corresponding to the application result screen to the cloud streaming server 605 based on the service request received from the terminal devices 620-1, ..., 620-N. .
  • the cloud streaming server 610 receives a first code corresponding to the application result screen from the web application server 605.
  • the cloud streaming server 610 may generate the capture image information by using the image region property information included in the first code.
  • the cloud streaming server 610 may generate animation information using the animation code included in the first code.
  • the cloud streaming server 610 may convert the first code into a second code including captured image information and animation information.
  • the second code may include animation information corresponding to at least one or more of an animation type, an animation application time, an animation repetition number, a start coordinate, an end coordinate, a start size, and an end size. At this time, the second code may not include the animation code.
  • the cloud streaming server 610 generates a captured image using the image region attribute information included in the first code.
  • the capture image may be generated by rendering the input information corresponding to the image region attribute information included in the first code.
  • only a part of the application result screen may be rendered to generate a captured image.
  • the cloud streaming server 610 still image encodes the captured image using a still image compression technique.
  • the captured image may be still image encoded using a still image compression technique corresponding to any one of portable network graphics (PNG), palletized portable network graphics (PNG), and joint photography experts group (JPEG).
  • PNG portable network graphics
  • PNG palletized portable network graphics
  • JPEG joint photography experts group
  • the cloud streaming server 610 converts the still image-encoded captured image and the first code to generate the application result screen in the terminal devices 620-1,.
  • the second code generated to be included is transmitted to the user terminal to perform a still image based cloud streaming service.
  • the terminal devices 620-1,..., 620 -N receive an application execution result screen corresponding to the cloud streaming service from the cloud streaming server 610 and provide the result to the user.
  • the terminal devices 620-1,..., 620 -N are devices connected to a communication network to execute an application based on a cloud computing system, and are not limited to mobile communication terminals. It may be a variety of terminals, such as a wired terminal, a fixed terminal and an IP (Internet Protocol) terminal.
  • the terminal devices 620-1, ..., 620-N are mobile phones, portable multimedia players (PMPs), mobile internet devices (MIDs), smart phones, desktops, and tablet computers, respectively. Number of mobile terminals with various mobile communication specifications such as Tablet PC, Note book, Net Book, Personal Digital Assistant (PDA), Smart TV, and ICT devices have.
  • the network 630 provides a path for transferring data between the cloud streaming server 610 and the terminal devices 620-1,.
  • the network 630 may be a wired / wireless local area network that provides communication of various information devices within a limited area, a mobile communication network that provides communication between mobile devices, and a mobile device and an external device. It may be made of a satellite communication network or a wired or wireless communication network providing a combination of two or more.
  • the transmission method standard of the network 630 is not limited to the existing transmission method standard, and may include all transmission method standards to be developed in the future. 6, the network used between the cloud streaming server 610 and the terminal devices 620-1,..., 620 -N is terminal devices 620-1,..., 620 -N. It may be different from the networks used mutually, or may be the same.
  • FIG. 7 is a block diagram illustrating an example of a cloud streaming server of FIG. 6.
  • the cloud streaming server illustrated in FIG. 6 includes a code receiver 710, a capture image information generator 720, an animation information generator 730, a code converter 740, and a capture unit 750. , An encoding unit 760, a sending unit 770, and a storage unit 780.
  • the code receiving unit 710 receives a first code corresponding to the application result screen from the web application server.
  • the first code may include animation information about animation effects applied when an application is executed and image region property information on images to which animation effects are applied. It can also be written in the same way that web application developers used. For example, the first code may be written using a library such as jQuery that is widely used for animation.
  • the capture image information generator 720 generates capture image information by using image region attribute information included in the first code.
  • the image area attribute information may be coordinate information for the image to be captured.
  • the animation information generator 730 generates animation information using the animation code included in the first code.
  • the animation code included in the second code is a code for executing an animation. When executing the corresponding code, an unnecessary capture may occur. Therefore, the animation information can be generated using the information that can be checked and extracted from the content of the animation code.
  • the code converter 740 converts the first code into a second code including captured image information and animation information. Therefore, when the second code is checked, detailed information on the capture region and animation may be obtained.
  • the second code may include animation information corresponding to at least one or more of an animation type, an animation application time, an animation repetition number, a start coordinate, an end coordinate, a start size, and an end size.
  • the animation type is' effect type '
  • the animation application time is' duration'
  • the animation repetition number is' isRepeat '
  • the start coordinate is' start X, start Y'
  • the end coordinate is' end X, end Y '
  • the start size may be indicated as' start W, start H' and the end size as' end W, end H '.
  • the second code may not include the animation code.
  • the capturer 750 generates a captured image by using image region attribute information included in the first code.
  • the reading may be directly performed without performing a process of capturing an image corresponding to the image region attribute information.
  • an image corresponding to the image region attribute information may be read and generated among the information received from the web application server.
  • the capture image may be generated by rendering the input information corresponding to the image region attribute information included in the first code.
  • the captured image may be generated by rendering only a portion of the first code corresponding to the captured image using the image region attribute information.
  • the application result screen may be rendered to generate a captured image.
  • the entire portion of the application result screen may be rendered, and an operation of comparing the differences between the regions may be performed to detect a portion to be captured.
  • the capture image may be generated by rendering only a portion of the entire application result screen including the captured image.
  • the encoder 760 encodes the captured image by using a still image compression technique.
  • the captured image may be still image encoded using a still image compression technique corresponding to any one of portable network graphics (PNG), palletized portable network graphics (PNG), and joint photography experts group (JPEG).
  • PNG portable network graphics
  • PNG palletized portable network graphics
  • JPEG joint photography experts group
  • the image quality is good when encoding, but when the bandwidth of the transmission network is low due to the large data size, the transmission speed may be reduced.
  • Palletized PNG still image compression reduces the data size of the image during encoding, which guarantees transmission speed, but degrades image quality due to the 8-bit color representation.
  • the JPEG still image compression technique has a high compression efficiency and can greatly reduce the amount of data transmitted during encoding.
  • the high compression efficiency can cause a large system load when encoding and decoding.
  • the sending unit 770 converts a still image encoded capture image and a first code to generate an application result screen in the user terminal, and transmits a second code generated to include animation information to the user terminal to generate an application result screen.
  • Perform cloud streaming service For example, the cloud streaming server 610 may completely generate and stream the application result screen, but the load generated by the cloud streaming server 610 by transmitting the user terminal to generate the application result screen in the same manner as described above. Can be significantly reduced. As such, when the load of the cloud streaming server 610 is reduced, the number of services that can be simultaneously processed by the cloud streaming server 610 increases, so that more users can be provided with the service at the same time.
  • FIG. 8 is a diagram illustrating performing a still image-based cloud streaming service according to an embodiment of the present invention.
  • a process of performing a still image-based cloud streaming service may be classified into a process performed by the cloud streaming server 800 and the user terminal 805.
  • the cloud streaming server 800 may perform an application code reception 820 corresponding to the application result screen 810 generated according to a user request from the application server.
  • the application code may include image area attribute information, animation code, and the like as the first code.
  • the captured image may be generated using the image region attribute information included in the application code, and the generated captured image may be encoded 830.
  • the captured image may be acquired by reading immediately according to the type of the image included in the image region attribute information or by performing minimal rendering using the image region attribute information. For example, in the case of an image of PNG type, encoding may be performed by reading immediately.
  • the capture image information and the animation information may be generated using the image region attribute information and the application code included in the application code, respectively.
  • the application code may be converted to generate a conversion code 840 including captured image information and animation information.
  • the conversion code is a second code and may include information of an animation rather than an animation code.
  • the cloud streaming server 800 may send the encoded capture image 830 and the second code, which is a conversion code, to the user terminal 805 together 850.
  • the capture image and the conversion code may be included in one message and transmitted, or the message for each capture image and the conversion code may be generated and transmitted.
  • the user terminal 805 may generate an application result screen using the captured image and the conversion code received from the cloud streaming server 800. That is, the animation may be applied to the captured image based on the animation information and the captured image information included in the conversion code (860).
  • the animation information includes information such as animation type, animation application time, animation repetition count, start coordinates, end coordinates, start size and end size, so that the animation results can be applied to the captured image accurately and easily. Can be generated.
  • the user terminal 805 may render an image of the application result screen generated in this way and output the image to the user.
  • FIG 9 illustrates a first code and a second code according to an embodiment of the present invention.
  • a first code 910 includes image region property information 911 and an animation code 912
  • a second code 920 includes captured image information 921.
  • animation information 922 is included in a first code 910 according to an embodiment of the present invention.
  • the first code 910 may be an application code corresponding to the application result screen received from the web application server. Accordingly, the image region property information 911 may be information about an animated portion of the application result screen, and the animation code 912 is a code for animation effect applied to the portion corresponding to the image region property information 911. Can be.
  • the second code 920 may include captured image information 921 generated using the image region property information 911 and animation information 922 generated using the animation code 912. Accordingly, the second code 920 may be transmitted to the user terminal so that the user terminal may generate an application result screen corresponding to the first code 910.
  • FIG. 10 is a diagram illustrating code conversion according to an embodiment of the present invention.
  • the first code 1010 is converted into the form of the second code 1020.
  • the first code 1010 is written using a library such as jQuery that is used for animation, and the attributes of the area to be captured described in the first and second lines of the first code 1010, and the fourth and fifth. It contains the animation code listed in the first line. That is, when the first code 1010 is interpreted, it may refer to applying a SlideUp animation to 'img1.png'. Using the above information, the first code 1010 may be converted into the second code 1020 to include captured image information and animation information.
  • the animation type is' SlideUp '
  • the application time is' 8000'
  • the number of repetitions is' 0 '
  • the start coordinate is' 332,800 '
  • the start size is' 551, 191'
  • the end coordinate is' 332, 0 '
  • the end size is' 551, 191'.
  • the captured image to be delivered to the user terminal together with the second code 1020 may be directly extracted from the first code 1010.
  • 'img1.png' may be extracted from the first code 1010 and stored as a captured image, and the captured image may be delivered to the user terminal together with the generated second code 1020.
  • FIG. 11 is a diagram illustrating code conversion according to another embodiment of the present invention.
  • the first code 1110 may include a code area of test_1 including img1.png and img2.png, a code area of test_2 including img3.png and img4.png, and img5.png and img6.png. It can be seen that it is composed of a code region of test_3 that includes, and the animation corresponding to fadeout is applied to the code region of test_1 as in the 23rd and 24th lines of the first code 1110.
  • the first code 1110 When the first code 1110 is converted to the second code 1120, the first code 1110 may be generated as the second code 1120 using only the test_1 code area including img1.png and img2.png corresponding to the captured image. Can be.
  • the captured image to be transmitted to the user terminal together with the second code 1120 may be obtained by storing a result of rendering the partial code of the first code 1110 as an image.
  • the first code 1110 may render lines 5 through 8 to obtain capture images corresponding to 'img1.png' and 'img2.png', and obtain the captured images. 2 codes 1120 together with the user terminal can be delivered.
  • FIG. 12 is a flowchart illustrating an image cloud streaming service method using an application code according to an embodiment of the present invention.
  • the image cloud streaming service method using an application code receives a first code corresponding to an application result screen from a web application server (S1210).
  • the first code may include animation information about animation effects applied when an application is executed and image region property information on images to which animation effects are applied. It can also be written in the same way that web application developers used.
  • the first code may be written using a library such as jQuery that is widely used for animation.
  • the image cloud streaming service method using the application code generates a captured image using the image region attribute information included in the first code (S1220).
  • the reading may be directly performed without performing a process of capturing an image corresponding to the image region attribute information.
  • an image corresponding to the image region attribute information may be read and generated among the information received from the web application server.
  • the capture image may be generated by rendering the input information corresponding to the image region attribute information included in the first code.
  • the captured image may be generated by rendering only a portion of the first code corresponding to the captured image using the image region attribute information.
  • the application result screen may be rendered to generate a captured image.
  • the entire portion of the application result screen may be rendered, and an operation of comparing the differences between the regions may be performed to detect a portion to be captured.
  • the capture image may be generated by rendering only a portion of the entire application result screen including the captured image.
  • the image cloud streaming service method using the application code encodes the captured image still image using a still image compression technique (S1230).
  • the captured image may be still image encoded using a still image compression technique corresponding to any one of portable network graphics (PNG), palletized portable network graphics (PNG), and joint photography experts group (JPEG).
  • PNG portable network graphics
  • PNG palletized portable network graphics
  • JPEG joint photography experts group
  • the image quality is good when encoding, but when the bandwidth of the transmission network is low due to the large data size, the transmission speed may be reduced.
  • Palletized PNG still image compression reduces the data size of the image during encoding, which guarantees transmission speed, but degrades image quality due to the 8-bit color representation.
  • the JPEG still image compression technique has a high compression efficiency and can greatly reduce the amount of data transmitted during encoding.
  • the high compression efficiency can cause a large system load when encoding and decoding.
  • the image cloud streaming service method using the application code is generated to include the animation information by converting the still image-encoded capture image and the first code to generate the application result screen in the user terminal
  • the second code is transmitted to the user terminal to perform a cloud streaming service based on a still image (S1240).
  • a cloud streaming server can completely generate and stream an application result screen, but the load generated by the cloud streaming server can be significantly reduced by transmitting the application result screen to the user terminal in the same manner as described above. have.
  • the load of the cloud streaming server is reduced in this way, the number of services that can be simultaneously processed by the cloud streaming server increases, so that more users can be provided with the service at the same time.
  • the second code may include animation information corresponding to at least one or more of an animation type, an animation application time, an animation repetition number, a start coordinate, an end coordinate, a start size, and an end size.
  • the animation type is' effect type '
  • the animation application time is' duration'
  • the animation repetition number is' isRepeat '
  • the start coordinate is' start X, start Y'
  • the end coordinate is' end X, end Y '
  • the start size may be indicated as' start W, start H' and the end size as' end W, end H '.
  • the second code may not include the animation code.
  • the image cloud streaming service method using an application code generates capture image information by using image region attribute information included in the first code.
  • the image area attribute information may be coordinate information for the image to be captured.
  • the image cloud streaming service method using the application code generates animation information using the animation code included in the first code.
  • the animation code included in the second code is a code for executing an animation. When executing the corresponding code, an unnecessary capture may occur. Therefore, the animation information can be generated using the information that can be checked and extracted from the content of the animation code.
  • the image cloud streaming service method using the application code converts the first code into a second code including captured image information and animation information. Therefore, when the second code is checked, detailed information on the capture region and animation may be obtained.
  • FIG. 13 is a flowchart illustrating a code conversion process according to an embodiment of the present invention.
  • capture image information is generated using image region attribute information included in a first code received from a web application server (S1310).
  • the first code may include an animation code for the animation effect applied when the application is executed and image region property information for the images to which the animation effect is applied.
  • the first code may be written in a manner conventionally used by web application developers.
  • the first code may be written using a library such as jQuery that is widely used for animation.
  • the code conversion process generates animation information using the animation code included in the first code (S1320).
  • the animation code included in the first code is a code for executing an animation, and when executing the corresponding code, an unnecessary capture may occur. Therefore, animation information for transmission to the user terminal can be generated using the content of the animation code.
  • the code conversion process converts the first code into a second code including captured image information and animation information (S1330). Therefore, the user terminal may generate an application screen to which the captured image is animated using the second code.
  • the second code may include animation information corresponding to at least one or more of an animation type, an animation application time, an animation repetition number, a start coordinate, an end coordinate, a start size, and an end size.
  • the animation type is 'effect type'
  • the animation duration is 'duration'
  • the animation repeat count is 'isRepeat'
  • the start coordinate is 'start X, start Y'
  • the end coordinate is 'end X, end Y'
  • the start size may be described as an identifier such as 'start W, start H' and an end size such as 'end W and end H' to indicate animation information by assigning a value to each identifier.
  • the second code may not include the animation code.
  • the cloud streaming service method for saving system resources may be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
  • Magneto-optical media and any type of hardware device specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like.
  • Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter as well as machine code such as produced by a compiler.
  • Such hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
  • the cloud streaming service system according to the present invention, the cloud streaming service method for saving system resources, and the apparatus therefor are not limited to the configuration and method of the embodiments described as described above.
  • the embodiments may be configured by selectively combining all or part of the embodiments so that various modifications can be made.
  • the execution screen of an application executed for the cloud streaming service is captured, a key frame is extracted from the execution screen, still image compression information corresponding to the key frame is generated, and the remaining frames except the key frame among the execution screens.
  • a still image based cloud by applying a still image compression technique based on still image compression information to one or more of the field and key frame, and transmitting the still image encoded execution screen to a user's terminal device.
  • Streaming service can be performed.
  • the cloud streaming server can provide services to more users at the same time.
  • a first code corresponding to an application result screen is received from a web application server, a captured image is generated using image region attribute information included in the first code, and captured using a still image compression technique.
  • the still image-based cloud by encoding the image and converting the still image-encoded captured image and the first code to generate the application result screen on the user terminal, and transmitting the generated second code to include the animation information to the user terminal.
  • Streaming service can be performed.
  • a cloud streaming service for applying an animation effect to a user terminal may provide a convenience of a service provider. have.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Disclosed are a cloud streaming service system, a cloud streaming service method for saving system resources, and an apparatus therefor. An execution screen of an application which is executed for a cloud streaming service is captured, a key frame is extracted from the execution screen, still image compression information corresponding to the key frame is generated, still image encoding on the execution screen is performed by applying a still image compression information-based still image compression technique to at least one of the key frame and the remaining frames except for the key frame in the execution screen, the still image compression encoded execution screen is transmitted to a user's terminal device, and thereby a still image-based cloud streaming service can be carried out. It is possible to provide a cloud streaming service to more users by saving system resources for generating still image compression information of a subframe.

Description

클라우드 스트리밍 서비스 시스템, 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치Cloud streaming service system, cloud streaming service method for saving system resources, and apparatus therefor
클라우드 스트리밍 서비스 시스템, 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치(SYSTEM FOR CLOUD STREAMING SERVICE, METHOD OF CLOUD STREAMING SERVICE TO SAVE SYSTEM RESOURCES AND APPARATUS FOR THE SAME)에 관한 것으로, 더욱 상세하게는 클라우드 스트리밍 서비스 시 유사한 장면을 키 프레임과 서브 프레임으로 구분하고, 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하여 서브 프레임에도 적용하여 인코딩함으로써 시스템 자원을 절약할 수 있고, 어플리케이션 코드를 이용하여 캡처 이미지를 생성하고, 변환한 코드를 캡처 이미지와 함께 사용자에게 전송함으로써 사용자 단말에서 애니메이션 효과가 적용된 어플리케이션 결과 화면을 생성할 수 있는 클라우드 스트리밍 서비스 시스템, 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치에 관한 것이다.Cloud streaming service system, cloud streaming service method for saving system resources, and a device for the same (SYSTEM FOR CLOUD STREAMING SERVICE, METHOD OF CLOUD STREAMING SERVICE TO SAVE SYSTEM RESOURCES AND APPARATUS FOR THE SAME) In streaming service, similar scenes are divided into key frames and subframes, and still image compression information corresponding to the key frames is generated and applied to the subframes to save system resources. Cloud streaming service system that can generate application result screen with animation effect on user terminal by transmitting generated code with the captured image to user, cloud streaming to save system resources It relates to a service method and an apparatus therefor.
본 발명은 2014년 9월 1일 출원된 한국특허출원 제10-2014-0115670호 및 2014년 12월 2일 출원된 한국특허출원 제10-2014-0170423호의 출원일의 이익을 주장하며, 그 내용 전부는 본 명세서에 포함된다.The present invention claims the benefit of the date of application of Korean Patent Application No. 10-2014-0115670 filed September 1, 2014 and Korean Patent Application No. 10-2014-0170423 filed December 2, 2014, the contents of all Is included herein.
최근 스마트폰과 같은 이동통신 단말에서 구동되는 어플리케이션이 다양하게 개발되면서, 비교적 낮은 성능의 사용자 단말에서 실행을 위해 높은 성능을 필요로 하는 어플리케이션을 구동하기 위한 가상화 기술들이 많이 제안되고 있다. 그 중에서 화면을 비디오로 압축하고 스트리밍(Streaming)하여 사용자의 단말로 제공하고, 단말에서는 스트리밍된 화면을 재생함으로써 마치 단말에서 어플리케이션이 구동되는 것과 같은 효과를 내는 클라우드 스트리밍 기술이 각광받고 있는 추세이다.Recently, as a variety of applications driven in a mobile communication terminal such as a smartphone have been developed, a number of virtualization technologies for driving an application requiring high performance for execution in a relatively low performance user terminal have been proposed. Among them, a cloud streaming technology, which compresses and streams a screen into a video and provides the same to a user's terminal, and plays a streamed screen on the terminal as if an application is running on the terminal, has been in the spotlight.
이러한 클라우드 스트리밍 기반 서비스의 경우에는 동시에 많은 사용자의 요청을 처리해야 하고, 접속하고 있는 사용자 수만큼의 어플리케이션이 서버 측에서 구동되어야 하기 때문에 준비된 시스템의 자원을 최대한 효율적으로 활용하는 것이 클라우드 스트리밍 서비스를 원활하게 제공하는데 핵심적인 부분일 수 있다.In the case of such cloud streaming-based service, the requests of many users must be processed at the same time, and as many applications as the number of connected users must be run on the server side, utilizing the resources of the prepared system as efficiently as possible to use the cloud streaming service smoothly. It can be a key part of providing it.
또한, 사용자 요청에 의해 실행된 어플리케이션의 실행 결과 화면 중 필요한 최소 부분만 렌더링하고, 애니메이션과 같은 동적인 효과가 적용된 경우에도 불필요하게 많은 화면을 캡처하지 않도록 애니메이션과 관련된 정보를 이미지와는 별도로 사용자의 셋탑박스로 전송함으로써 셋탑박스에서 애니메이션 효과가 적용된 서비스 화면을 생성할 수 있는 기술이 절실하게 대두되고 있다.It also renders only the minimum required portion of the execution result screen of the application executed by the user's request, and provides information related to the animation separately from the image so that the screen does not need to be unnecessarily captured even when dynamic effects such as animation are applied. By transmitting to a set-top box, a technology that can create a service screen with an animated effect in the set-top box is urgently emerging.
관련 선행기술로는, 한국 공개 특허 제10-2014-0041317호, 2014년 04월 04일 공개 (명칭: 비디오 소스로부터의 정적 콘텐츠 정보를 사용한 비디오의 송신) 및 한국 공개 특허 제10-2010-0113503호, 2010년 10월 21일 공개 (명칭: 어플리케이션 호스팅 센터 내에 프로그램 코드 및 데이터를 저장하기 위한 시스템 및 방법)이 있다.Related prior arts include Korean Patent Application Publication No. 10-2014-0041317, published April 04, 2014 (name: transmission of video using static content information from a video source) and Korean Patent Application Publication No. 10-2010-0113503 Issue, October 21, 2010 (name: System and Method for Storing Program Code and Data in an Application Hosting Center).
본 발명의 목적은, 스틸 이미지 기반 클라우드 스트리밍 서비스 제공 시 적합한 스틸 이미지 압축 기법을 이용함으로써 데이터의 압축률을 상승시켜 스틸 이미지 기반 클라우드 스트리밍 시 발생할 수 있는 전송 지연을 방지하는 것이다.An object of the present invention is to increase the compression rate of data by using a still image compression technique when providing a still image-based cloud streaming service to prevent transmission delays that may occur when the still image-based cloud streaming.
또한, 본 발명의 목적은 서비스 장면의 유사한 부분 중 중요한 프레임에 대한 스틸 이미지 압축 정보를 미리 구성해 놓고, 중요한 프레임과 유사한 프레임을 인코딩할 때 재사용함으로써 스틸 이미지 압축 정보를 생성하는데 필요한 시스템 자원을 최대한 절약하는 것이다.It is also an object of the present invention to pre-configure still image compression information for important frames among similar parts of the service scene, and reuse the system resources necessary for generating still image compression information by reusing when encoding similar frames as important frames. To save.
또한, 발명의 목적은 클라우드 스트리밍 서버에서 캡처할 이미지를 생성하기 위해 프레임의 차이를 비교하는 과정을 생략하고 코드단에서 이미지를 획득함으로써 보다 향상된 클라우드 스트리밍 서비스를 제공하는 것이다.In addition, an object of the present invention is to provide an improved cloud streaming service by omitting the process of comparing the frame difference in order to generate an image to be captured by the cloud streaming server, and by acquiring the image at the code stage.
또한, 본 발명의 목적은 어플리케이션 결과 화면을 처리할 때 불필요한 애니메이션 처리를 수행하지 않도록 하여 서버에서 구동 가능한 웹 컨테이너의 수를 증가시키는 것이다.It is also an object of the present invention to increase the number of web containers that can be driven in a server by avoiding unnecessary animation processing when processing an application result screen.
또한, 본 발명의 목적은 웹 어플리케이션 개발자들이 새로운 형식의 코드가 아닌 기존의 방식대로 원하는 형식의 어플리케이션 코드를 작성하여도 애니메이션 효과 적용을 사용자 단말에서 수행하기 위한 클라우드 스트리밍 서비스를 제공할 수 있도록 하는 것이다.In addition, an object of the present invention is to enable a web application developer to provide a cloud streaming service for performing the application of animation effects in the user terminal even if the application code of the desired format is written in the existing manner, not the new format code. .
상기한 목적을 달성하기 위한 본 발명에 따른 클라우드 스트리밍 서버는, 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처하는 캡처부; 상기 실행 화면 중 키 프레임을 추출하는 키 프레임 추출부; 상기 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 상기 실행 화면 중 상기 키 프레임을 제외한 나머지 프레임들 및 상기 키 프레임 중 하나 이상에 상기 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 상기 실행 화면을 스틸 이미지 인코딩하는 인코딩부; 및 스틸 이미지 인코딩된 상기 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 센딩부를 포함한다.Cloud streaming server according to the present invention for achieving the above object, the capture unit for capturing the execution screen of the application executed for the cloud streaming service; A key frame extracting unit extracting a key frame of the execution screen; Generating still image compression information corresponding to the key frame, and applying a still image compression technique based on the still image compression information to one or more of the remaining frames other than the key frame and the key frame among the execution screens An encoding unit for encoding a still image of the execution screen; And a sending unit configured to transmit the still image encoded execution screen to a user's terminal device to perform a still image based cloud streaming service.
이 때, 인코딩부는 상기 나머지 프레임들 중 상기 키 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 미만인 서브 프레임을 추출하고, 상기 서브 프레임을 상기 스틸 이미지 압축 기법을 이용하여 압축할 수 있다.In this case, the encoder may extract a subframe having a change value of the frame less than a predetermined reference value from the remaining key frames, and compress the subframe using the still image compression technique.
이 때, 키 프레임은 상기 실행 화면 중 이전 프레임과 비교하여 상기 프레임의 변화값이 상기 기설정된 기준값 이상인 프레임일 수 있다.In this case, the key frame may be a frame in which the change value of the frame is greater than or equal to the preset reference value in comparison with the previous frame of the execution screen.
이 때, 스틸 이미지 압축 정보는 팔렛트, 컬러 치환 테이블 및 최적 필터 중 하나 이상을 포함할 수 있다.In this case, the still image compression information may include one or more of a palette, a color substitution table, and an optimal filter.
이 때, 인코딩부는 상기 키 프레임의 다음 키 프레임이 나타날 때까지 상기 서브 프레임을 상기 스틸 이미지 압축 정보를 기반으로 하는 상기 스틸 이미지 압축 기법을 이용하여 압축할 수 있다.In this case, the encoding unit may compress the subframe using the still image compression technique based on the still image compression information until the next key frame of the key frame appears.
이 때, 인코딩부는 상기 키 프레임과 상기 스틸 이미지 압축 정보를 연동하여 데이터베이스에 저장할 수 있다.In this case, the encoding unit may store the key frame and the still image compression information in a database in association.
이 때, 키 프레임 추출부는 상기 실행 화면의 픽셀값 변화를 고려하여 상기 프레임의 변화값을 산출할 수 있다.In this case, the key frame extracting unit may calculate the change value of the frame in consideration of the change of the pixel value of the execution screen.
이 때, 키 프레임 추출부는 상기 어플리케이션의 입력 신호 및 추가 컬러의 개수 중 하나 이상을 고려하여 상기 키 프레임을 추출할 수 있다.In this case, the key frame extracting unit may extract the key frame in consideration of at least one of the input signal of the application and the number of additional colors.
이 때, 인코딩부는 상기 스틸 이미지 압축 정보를 이용한 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법을 이용하여 상기 실행 화면을 스틸 이미지 인코딩할 수 있다.In this case, the encoding unit may encode a still image of the execution screen by using a paletted portable network graphics (PNG) still image compression method using the still image compression information.
또한, 본 발명에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법은, 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처하는 단계; 상기 실행 화면 중 키 프레임을 추출하는 단계; 상기 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 상기 실행 화면 중 상기 키 프레임을 제외한 나머지 프레임들 및 상기 키 프레임 중 하나 이상에 상기 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 상기 실행 화면을 스틸 이미지 인코딩하는 단계; 및 스틸 이미지 인코딩된 상기 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 단계를 포함한다.In addition, the cloud streaming service method for saving system resources according to the present invention, capturing an execution screen of an application executed for the cloud streaming service; Extracting a key frame from the execution screen; Generating still image compression information corresponding to the key frame, and applying a still image compression technique based on the still image compression information to one or more of the remaining frames other than the key frame and the key frame among the execution screens Encoding a still image of the execution screen; And performing a still image-based cloud streaming service by transmitting the still image encoded execution screen to a user's terminal device.
이 때, 인코딩하는 단계는 상기 나머지 프레임들 중 상기 키 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 미만인 서브 프레임을 추출하는 단계를 포함하고, 상기 서브 프레임을 상기 스틸 이미지 압축 기법을 이용하여 압축할 수 있다.In this case, the encoding may include extracting a subframe having a change value of the frame less than a predetermined reference value from the remaining key frames, and compressing the subframe using the still image compression technique. can do.
이 때, 키 프레임은 상기 실행 화면 중 이전 프레임과 비교하여 상기 프레임의 변화값이 상기 기설정된 기준값 이상인 프레임인 것을 특징으로 하는 시스템 자원을 절약할 수 있다.At this time, the key frame can save the system resources, characterized in that the change value of the frame compared to the previous frame of the execution screen is a frame of more than the predetermined reference value.
이 때, 스틸 이미지 압축 정보는 팔렛트, 컬러 치환 테이블 및 최적 필터 중 하나 이상을 포함할 수 있다.In this case, the still image compression information may include one or more of a palette, a color substitution table, and an optimal filter.
이 때, 인코딩하는 단계는 상기 키 프레임의 다음 키 프레임이 나타날 때까지 상기 서브 프레임을 상기 스틸 이미지 압축 정보를 기반으로 하는 상기 스틸 이미지 압축 기법을 이용하여 압축할 수 있다.In this case, the encoding may compress the subframe using the still image compression technique based on the still image compression information until the next key frame of the key frame appears.
이 때, 인코딩하는 단계는 상기 키 프레임과 상기 스틸 이미지 압축 정보를 연동하여 데이터베이스에 저장하는 것을 특징으로 하는 시스템 자원을 절약할 수 있다.In this case, the encoding may save system resources, wherein the key frame and the still image compression information are interlocked and stored in a database.
이 때, 키 프레임을 추출하는 단계는 상기 실행 화면의 픽셀값 변화를 고려하여 상기 프레임의 변화값을 산출할 수 있다.In this case, the extracting of the key frame may calculate the change value of the frame in consideration of the change of the pixel value of the execution screen.
이 때, 키 프레임을 추출하는 단계는 상기 어플리케이션의 입력 신호 및 추가 컬러의 개수 중 하나 이상을 고려하여 상기 키 프레임을 추출할 수 있다.In this case, the extracting of the key frame may extract the key frame in consideration of at least one of the input signal of the application and the number of additional colors.
이 때, 인코딩하는 단계는 상기 스틸 이미지 압축 정보를 이용한 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법을 이용하여 상기 실행 화면을 스틸 이미지 인코딩할 수 있다.In this case, the encoding may include still image encoding of the execution screen using a paletted portable network graphics (PNG) still image compression technique using the still image compression information.
또한, 본 발명의 과제 해결을 위한 또 다른 수단으로써, 상술한 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램을 제공한다.In addition, as another means for solving the problem of the present invention, there is provided a computer program stored in the medium for executing the above-described method.
또한, 본 발명에 따른 클라우드 스트리밍 서비스 시스템은 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처하고, 상기 실행 화면 중 키 프레임을 추출하고, 상기 실행 화면 중 상기 키 프레임을 제외한 나머지 프레임 및 상기 키 프레임 중 하나 이상에 상기 키 프레임에 상응하는 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 상기 실행 화면을 스틸 이미지 인코딩하고, 스틸 이미지 인코딩된 상기 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 클라우드 스트리밍 서버; 및 상기 클라우드 스트리밍 서버로부터 상기 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하는 단말을 포함한다.In addition, the cloud streaming service system according to the present invention captures an execution screen of an application executed for the cloud streaming service, extracts a key frame of the execution screen, the remaining frames and the key other than the key frame of the execution screen Applying a still image compression technique based on still image compression information corresponding to the key frame to at least one of the frames, and still encoding the execution screen, and transmitting the still image encoded execution screen to a user terminal device. Cloud streaming server for performing a still image-based cloud streaming service; And a terminal receiving an application execution result screen corresponding to the cloud streaming service from the cloud streaming server.
또한, 상기한 목적을 달성하기 위한 본 발명에 다른 실시예에 따른 클라우드 스트리밍 서버는, 웹 어플리케이션 서버로부터 어플리케이션 결과 화면에 상응하는 제1 코드를 수신하는 코드 수신부; 상기 제1 코드에 포함된 이미지 영역 속성 정보를 이용하여 캡처 이미지를 생성하는 캡처부; 스틸 이미지 압축 기법을 이용하여 상기 캡처 이미지를 스틸 이미지 인코딩하는 인코딩부; 및 사용자 단말에서 상기 어플리케이션 결과 화면을 생성할 수 있도록 스틸 이미지 인코딩된 상기 캡처 이미지 및 상기 제1 코드를 변환하여 애니메이션 정보를 포함하도록 생성한 제2 코드를 상기 사용자 단말로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 센딩부를 포함한다.In addition, a cloud streaming server according to another embodiment of the present invention for achieving the above object, the code receiving unit for receiving a first code corresponding to the application result screen from the web application server; A capture unit to generate a captured image by using image area attribute information included in the first code; An encoding unit for still image encoding the captured image using a still image compression technique; And a still image-based cloud by transmitting the still image encoded capture image and the second code generated to include the animation information to the user terminal so as to generate the application result screen in the user terminal. It includes a sender for performing a streaming service.
이 때, 캡처부는 상기 제1 코드에 포함된 상기 이미지 영역 속성 정보에 상응하는 입력 정보에 대해 렌더링을 수행하여 상기 캡처 이미지를 생성할 수 있다.In this case, the capture unit may generate the captured image by performing rendering on input information corresponding to the image region property information included in the first code.
이 때, 클라우드 스트리밍 서버는 상기 제1 코드에 포함된 상기 이미지 영역 속성 정보를 이용하여 캡처 이미지 정보를 생성하는 캡처 이미지 정보 생성부; 상기 제1 코드에 포함된 애니메이션 코드를 이용하여 상기 애니메이션 정보를 생성하는 애니메이션 정보 생성부; 및 상기 제1 코드를, 상기 캡처 이미지 정보 및 애니메이션 정보를 포함하는 상기 제2 코드로 변환하는 코드 변환부를 더 포함할 수 있다.In this case, the cloud streaming server may include a capture image information generation unit configured to generate capture image information by using the image area attribute information included in the first code; An animation information generator configured to generate the animation information by using the animation code included in the first code; And a code converter configured to convert the first code into the second code including the captured image information and animation information.
이 때, 캡처부는 상기 어플리케이션 결과 화면 중 일부에 대해서만 상기 렌더링을 수행하여 상기 캡처 이미지를 생성할 수 있다.In this case, the capture unit may generate the captured image by performing the rendering only on a part of the application result screen.
이 때, 제2 코드는 애니메이션 타입, 애니메이션 적용 시간, 애니메이션 반복 횟수, 시작 좌표, 종료 좌표, 시작 사이즈 및 종료 사이즈 중 적어도 하나 이상에 상응하는 상기 애니메이션 정보를 포함할 수 있다.In this case, the second code may include the animation information corresponding to at least one or more of an animation type, an animation application time, an animation repetition number, a start coordinate, an end coordinate, a start size, and an end size.
이 때, 제2 코드는 상기 애니메이션 코드를 포함하지 않을 수 있다.In this case, the second code may not include the animation code.
이 때, 인코딩부는 PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응하는 스틸 이미지 압축 기법을 이용하여 상기 캡처 이미지를 스틸 이미지 인코딩할 수 있다.In this case, the encoding unit may encode still images of the captured image using a still image compression technique corresponding to any one of portable network graphics (PNG), palletized portable network graphics (PNG), and joint photography experts group (JPEG). have.
또한, 본 발명에 따른 어플리케이션 코드를 이용한 이미지 클라우드 스트리밍 서비스 방법은, 웹 어플리케이션 서버로부터 어플리케이션 결과 화면에 상응하는 제1 코드를 수신하는 단계; 상기 제1 코드에 포함된 이미지 영역 속성 정보를 이용하여 캡처 이미지를 생성하는 단계; 스틸 이미지 압축 기법을 이용하여 상기 캡처 이미지를 스틸 이미지 인코딩하는 단계; 및 사용자 단말에서 상기 어플리케이션 결과 화면을 생성할 수 있도록 스틸 이미지 인코딩된 상기 캡처 이미지 및 상기 제1 코드를 변환하여 애니메이션 정보를 포함하도록 생성된 제2 코드를 상기 사용자 단말로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 단계를 포함한다.In addition, the image cloud streaming service method using the application code according to the present invention, the step of receiving a first code corresponding to the application result screen from the web application server; Generating a captured image by using image region attribute information included in the first code; Still image encoding the captured image using a still image compression technique; And converting the still image-encoded capture image and the first code to generate the application result screen in a user terminal, and transmitting a second code generated to include animation information to the user terminal to generate the application result screen. Performing a streaming service.
이 때, 캡처 이미지를 생성하는 단계는 상기 제1 코드에 포함된 상기 이미지 영역 속성 정보에 상응하는 입력 정보에 대해 렌더링을 수행하여 상기 캡처 이미지를 생성할 수 있다.In this case, the generating of the captured image may generate the captured image by rendering the input information corresponding to the image region attribute information included in the first code.
이 때, 클라우드 스트리밍 서비스 방법은 상기 제1 코드에 포함된 상기 이미지 영역 속성 정보를 이용하여 캡처 이미지 정보를 생성하는 단계; 상기 제1 코드에 포함된 애니메이션 코드를 이용하여 상기 애니메이션 정보를 생성하는 단계; 및 상기 제1 코드를, 상기 캡처 이미지 정보 및 애니메이션 정보를 포함하는 상기 제2 코드로 변환하는 단계를 포함할 수 있다.In this case, the cloud streaming service method may further include generating captured image information by using the image area attribute information included in the first code; Generating the animation information by using an animation code included in the first code; And converting the first code into the second code including the captured image information and animation information.
이 때, 캡처 이미지를 생성하는 단계는 상기 어플리케이션 결과 화면 중 일부에 대해서만 상기 렌더링을 수행하여 상기 캡처 이미지를 생성할 수 있다.In this case, the generating of the captured image may generate the captured image by performing the rendering only on a part of the application result screen.
이 때, 제2 코드는 애니메이션 타입, 애니메이션 적용 시간, 애니메이션 반복 횟수, 시작 좌표, 종료 좌표, 시작 사이즈 및 종료 사이즈 중 적어도 하나 이상에 상응하는 상기 애니메이션 정보를 포함할 수 있다.In this case, the second code may include the animation information corresponding to at least one or more of an animation type, an animation application time, an animation repetition number, a start coordinate, an end coordinate, a start size, and an end size.
이 때, 제2 코드는 상기 애니메이션 코드를 포함하지 않을 수 있다.In this case, the second code may not include the animation code.
이 때, 스틸 이미지 인코딩하는 단계는 PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응하는 스틸 이미지 압축 기법을 이용하여 상기 캡처 이미지를 스틸 이미지 인코딩할 수 있다.In this case, the encoding of the still image may be performed by using a still image compression technique corresponding to any one of portable network graphics (PNG), paletted portable network graphics (PNG), and joint photography experts group (JPEG). Image can be encoded.
또한, 본 발명의 과제 해결을 위한 또 다른 수단으로써, 상술한 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램을 제공한다.In addition, as another means for solving the problem of the present invention, there is provided a computer program stored in the medium for executing the above-described method.
또한, 본 발명의 다른 실시예에 따른 클라우드 스트리밍 서비스 시스템은 웹 어플리케이션 서버로부터 어플리케이션 결과 화면에 상응하는 제1 코드를 수신하고, 상기 제1 코드에 포함된 이미지 영역 속성 정보를 이용하여 캡처 이미지를 생성하고, 스틸 이미지 압축 기법을 이용하여 스틸 이미지 인코딩된 상기 캡처 이미지 및 상기 제1 코드를 변환하여 애니메이션 정보를 포함하도록 생성된 제2 코드를 사용자 단말로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 클라우드 스트리밍 서버; 및 상기 클라우드 스트리밍 서버로부터 상기 스틸 이미지 기반의 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하는 단말을 포함한다.In addition, the cloud streaming service system according to another embodiment of the present invention receives a first code corresponding to the application result screen from the web application server, and generates a captured image using the image area attribute information included in the first code And converting the still image encoded capture image and the first code using a still image compression technique to transmit a second code generated to include animation information to a user terminal to perform a still image-based cloud streaming service. Cloud streaming server; And a terminal receiving an application execution result screen corresponding to the still image-based cloud streaming service from the cloud streaming server.
본 발명에 따르면, 스틸 이미지 기반 클라우드 스트리밍 서비스 제공 시 적합한 스틸 이미지 압축 기법을 이용함으로써 데이터의 압축률을 상승시켜 스틸 이미지 기반 클라우드 스트리밍 시 발생할 수 있는 전송 지연을 방지할 수 있다.According to the present invention, by using an appropriate still image compression technique when providing a still image-based cloud streaming service to increase the compression rate of the data it is possible to prevent the transmission delay that may occur when the still image-based cloud streaming.
또한, 본 발명은 서비스 장면의 유사한 부분 중 중요한 프레임에 대한 스틸 이미지 압축 정보를 미리 구성해 놓고, 중요한 프레임과 유사한 프레임을 인코딩할 때 재사용함으로써 스틸 이미지 압축 정보를 생성하는데 필요한 시스템 자원을 최대한 절약할 수 있다.In addition, the present invention can pre-configure still image compression information for important frames among similar parts of the service scene and reuse them when encoding frames similar to the important frames to save the system resources necessary for generating still image compression information as much as possible. Can be.
또한, 본 발명은 클라우드 스트리밍 서버에서 캡처할 이미지를 생성하기 위해 프레임의 차이를 비교하는 과정을 생략하고 코드단에서 이미지를 획득함으로써 보다 향상된 클라우드 스트리밍 서비스를 제공할 수 있다.In addition, the present invention can provide an improved cloud streaming service by omitting the process of comparing the frame difference to generate an image to be captured by the cloud streaming server and acquires the image at the code end.
또한, 본 발명은 어플리케이션 결과 화면을 처리할 때 불필요한 애니메이션 처리를 수행하지 않도록 하여 서버에서 구동 가능한 웹 컨테이너의 수를 증가시킬 수 있다.In addition, the present invention can increase the number of web containers that can be driven in the server by avoiding unnecessary animation processing when processing the application result screen.
또한, 본 발명은 웹 어플리케이션 개발자들이 새로운 형식의 코드가 아닌 기존의 방식대로 원하는 형식의 어플리케이션 코드를 작성하여도 애니메이션 효과 적용을 사용자 단말에서 수행하기 위한 클라우드 스트리밍 서비스를 제공할 수 있다.In addition, the present invention can provide a cloud streaming service for performing the application of animation effects in the user terminal even if the web application developers write the application code of the desired format in a conventional manner rather than a new format code.
도 1은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.1 is a block diagram showing a cloud streaming service system according to an embodiment of the present invention.
도 2는 도 1에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.FIG. 2 is a block diagram illustrating an example of a cloud streaming server of FIG. 1.
도 3은 본 발명의 일실시예에 따른 키 프레임과 서브 프레임을 나타낸 도면이다.3 is a diagram illustrating a key frame and a sub frame according to an embodiment of the present invention.
도 4는 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.4 is an operation flowchart illustrating a cloud streaming service method for saving system resources according to an embodiment of the present invention.
도 5는 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법을 상세하게 나타낸 동작 흐름도이다.5 is an operation flowchart showing in detail a cloud streaming service method for saving system resources according to an embodiment of the present invention.
도 6은 본 발명의 다른 실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.6 is a block diagram showing a cloud streaming service system according to another embodiment of the present invention.
도 7는 도 6에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.FIG. 7 is a block diagram illustrating an example of a cloud streaming server of FIG. 6.
도 8은 본 발명의 일실시예에 따른 스틸 이미지 기반의 클라우드 스트리밍 서비스 수행을 나타낸 도면이다.8 is a diagram illustrating performing a still image-based cloud streaming service according to an embodiment of the present invention.
도 9는 본 발명의 일실시예에 따른 제1 코드 및 제2 코드를 나타낸 도면이다.9 illustrates a first code and a second code according to an embodiment of the present invention.
도 10은 본 발명의 일실시예에 따른 코드 변환을 나타낸 도면이다.10 is a diagram illustrating code conversion according to an embodiment of the present invention.
도 11은 본 발명의 다른 실시예에 따른 코드 변환을 나타낸 도면이다.11 is a diagram illustrating code conversion according to another embodiment of the present invention.
도 12는 본 발명의 일실시예에 따른 어플리케이션 코드를 이용한 이미지 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.12 is a flowchart illustrating an image cloud streaming service method using an application code according to an embodiment of the present invention.
도 13은 본 발명의 일실시예에 따른 코드 변환과정을 나타낸 동작 흐름도이다.13 is a flowchart illustrating a code conversion process according to an embodiment of the present invention.
이하 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, in the following description and the accompanying drawings, detailed descriptions of well-known functions or configurations that may obscure the subject matter of the present invention will be omitted. In addition, it should be noted that like elements are denoted by the same reference numerals as much as possible throughout the drawings.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다. 또한 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다.The terms or words used in the specification and claims described below should not be construed as being limited to ordinary or dictionary meanings, and the inventors are appropriate as concepts of terms for explaining their own invention in the best way. It should be interpreted as meanings and concepts in accordance with the technical spirit of the present invention based on the principle that it can be defined. Therefore, the embodiments described in the present specification and the configuration shown in the drawings are only the most preferred embodiments of the present invention, and do not represent all of the technical ideas of the present invention, and various alternatives may be substituted at the time of the present application. It should be understood that there may be equivalents and variations. In addition, terms such as “first” and “second” are used to describe various components, and are only used to distinguish one component from another component and are not used to limit the components.
도 1은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.1 is a block diagram showing a cloud streaming service system according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템은 클라우드 스트리밍 서버(110), 단말 장치들(120-1, ..., 120-N) 및 네트워크(130)를 포함한다.Referring to FIG. 1, a cloud streaming service system according to an exemplary embodiment of the present invention includes a cloud streaming server 110, terminal devices 120-1,..., 120 -N, and a network 130. .
클라우드 스트리밍 서버(110)는 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처한다.The cloud streaming server 110 captures an execution screen of an application executed for the cloud streaming service.
또한, 클라우드 스트리밍 서버(110)는 실행 화면 중 키 프레임을 추출한다. 이 때, 키 프레임은 실행 화면 중 이전 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 이상인 프레임일 수 있다. 이 때, 실행 화면의 픽셀값 변화를 고려하여 프레임의 변화값을 산출할 수 있다. 이 때, 어플리케이션의 입력 신호 및 추가 컬러의 개수 중 하나 이상을 고려하여 키 프레임을 추출할 수 있다. In addition, the cloud streaming server 110 extracts a key frame of the execution screen. In this case, the key frame may be a frame in which the change value of the frame is greater than or equal to a preset reference value in comparison with the previous frame in the execution screen. In this case, the change value of the frame may be calculated in consideration of the change of the pixel value of the execution screen. In this case, the key frame may be extracted in consideration of at least one of the input signal of the application and the number of additional colors.
또한, 클라우드 스트리밍 서버(110)는 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 실행 화면 중 키 프레임을 제외한 나머지 프레임들 및 키 프레임 중 하나 이상에 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 실행 화면을 스틸 이미지 인코딩한다. 이 때, 나머지 프레임들 중 키 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 미만인 서브 프레임을 추출하고, 서브 프레임을 스틸 이미지 압축 기법을 이용하여 압축할 수 있다. 이 때, 스틸 이미지 압축 정보는 팔렛트, 컬러 치환 테이블 및 최적 필터 중 하나 이상을 포함할 수 있다. 이 때, 키 프레임의 다음 키 프레임이 나타날 때가지 서브 프레임을 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 이용하여 압축할 수 있다. 이때, 키 프레임과 스틸 이미지 압축 정보를 연동하여 데이터베이스에 저장할 수 있다. 이 때, 스틸 이미지 압축 정보를 이용한 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법을 이용하여 실행 화면을 스틸 이미지 인코딩할 수 있다.In addition, the cloud streaming server 110 generates still image compression information corresponding to the key frame, and compresses the still image based on the still image compression information on one or more of the remaining frames and key frames except the key frame in the execution screen. The technique is applied to still image encoding of the execution screen. In this case, a subframe having a change value of a frame less than a predetermined reference value may be extracted from the remaining frames, and the subframe may be compressed using a still image compression technique. In this case, the still image compression information may include one or more of a palette, a color substitution table, and an optimal filter. At this time, the subframe may be compressed by using a still image compression technique based on still image compression information until the next key frame of the key frame appears. In this case, the key frame and the still image compression information may be linked to and stored in the database. In this case, a still image may be encoded using a paletted portable network graphics (PNG) still image compression technique using still image compression information.
또한, 클라우드 스트리밍 서버(110)는 스틸 이미지 인코딩된 실행 화면을 사용자의 단말 장치들(120-1, ..., 120-N)로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다.In addition, the cloud streaming server 110 transmits a still image encoded execution screen to the terminal devices 120-1,..., 120 -N of the user to perform a cloud image service based on a still image.
단말 장치들(120-1, ..., 120-N)은 클라우드 스트리밍 서버(110)로부터 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하여 사용자에게 제공한다.The terminal devices 120-1,..., 120 -N receive an application execution result screen corresponding to the cloud streaming service from the cloud streaming server 110 and provide the result to the user.
단말 장치들(120-1, ..., 120-N)은 각각 통신망에 연결되어 클라우드 컴퓨팅 시스템 기반으로 어플리케이션을 실행할 수 있는 장치로, 이동통신단말기에 한정된 것이 아니고, 모든 정보통신기기, 멀티미디어 단말, 유선 단말, 고정형 단말 및 IP(Internet Protocol) 단말 등의 다양한 단말일 수 있다. 또한, 단말 장치들(120-1, ..., 120-N)은 각각 휴대폰, PMP(Portable Multimedia Played), MID(Mobile Internet Device), 스마트폰(Smart Phone), 데스크톱(Desktop), 태블릿컴퓨터(Tablet PC), 노트북(Note book), 넷북(Net Book), 개인휴대용 정보단말(Personal Digital Assistant; PDA), 스마트 TV 및 정보통신 기기 등과 같은 다양한 이동통신 사양을 갖는 모바일(Mobile) 단말일 수 있다.The terminal devices 120-1,..., 120 -N are devices connected to a communication network to execute an application based on a cloud computing system, and are not limited to mobile communication terminals, but all information communication devices and multimedia terminals. It may be a variety of terminals, such as a wired terminal, a fixed terminal and an IP (Internet Protocol) terminal. In addition, the terminal devices 120-1,..., 120 -N are respectively mobile phones, portable multimedia players (PMPs), mobile internet devices (MIDs), smart phones, desktops, and tablet computers. Number of mobile terminals with various mobile communication specifications such as Tablet PC, Note book, Net Book, Personal Digital Assistant (PDA), Smart TV, and ICT devices have.
네트워크(130)는 클라우드 스트리밍 서버(110)및 단말 장치들(120-1, ..., 120-N) 사이에 데이터를 전달하는 통로를 제공하는 것으로서, 기존에 이용되는 네트워크 및 향후 개발 가능한 네트워크를 모두 포괄하는 개념이다. 예를 들어, 네트워크(130)는 한정된 지역 내에서 각종 정보장치들의 통신을 제공하는 유무선근거리 통신망, 이동체 상호 간 및 이동체와 이동체 외부와의 통신을 제공하는 이동통신망, 위성을 이용해 지구국과 지구국간 통신을 제공하는 위성통신망이거나 유무선 통신망 중에서 어느 하나이거나, 둘 이상의 결합으로 이루어질 수 있다. 한편, 네트워크(130)의 전송 방식 표준은, 기존의 전송 방식 표준에 한정되는 것은 아니며, 향후 개발될 모든 전송 방식 표준을 포함할 수 있다. 또한, 도 1에서 클라우드 스트리밍 서버(110)와 단말 장치들(120-1, ..., 120-N) 사이에 사용되는 네트워크는 단말 장치들(120-1, ..., 120-N) 상호간에 사용되는 네트워크와 상이한 것일 수도 있고, 동일한 것일 수도 있다.The network 130 provides a path for transferring data between the cloud streaming server 110 and the terminal devices 120-1,..., 120 -N, and is a network that can be used in the future and a network that can be developed in the future. This is a comprehensive concept. For example, the network 130 is a wired or wireless local area network that provides communication of various information devices within a limited area, a mobile communication network that provides communication between each other and between the mobile and the outside of the mobile, and the communication between the earth station and the earth station using satellites. It may be made of a satellite communication network or a wired or wireless communication network providing a combination of two or more. Meanwhile, the transmission standard of the network 130 is not limited to the existing transmission method standard and may include all transmission method standards to be developed in the future. In addition, in FIG. 1, the network used between the cloud streaming server 110 and the terminal devices 120-1,..., 120 -N is terminal devices 120-1,..., 120 -N. It may be different from the networks used mutually, or may be the same.
도 2는 도 1에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.FIG. 2 is a block diagram illustrating an example of a cloud streaming server of FIG. 1.
도 2를 참조하면, 도 1에 도시된 클라우드 스트리밍 서버(110)는 캡처부(210), 키 프레임 추출부(220), 인코딩부(230), 센딩부(240) 및 저장부(250)를 포함한다.Referring to FIG. 2, the cloud streaming server 110 illustrated in FIG. 1 includes a capture unit 210, a key frame extractor 220, an encoder 230, a sender 240, and a storage 250. Include.
캡처부(210)는 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행화면을 캡처한다. 예를 들어, 네트워크를 통해 클라우드 스트리밍 서버(110)에 접속한 하나 이상의 단말 장치에 의해 어플리케이션 실행 요청이 접수된 경우에, 단말 장치의 요청에 상응하여 클라우드 스트리밍 서버(110)에서 어플리케이션을 실행하고, 어플리케이션 실행 결과에 해당하는 실행 화면을 단말 장치에게 전달하기 위해 캡처할 수 있다.The capture unit 210 captures an execution screen of an application executed for the cloud streaming service. For example, when an application execution request is received by one or more terminal devices connected to the cloud streaming server 110 through a network, the application is executed in the cloud streaming server 110 in response to a request of the terminal device. An execution screen corresponding to an application execution result may be captured to be delivered to the terminal device.
키 프레임 추출부(220)는 실행 화면 중 키 프레임을 추출한다. The key frame extracting unit 220 extracts a key frame of the execution screen.
실행 화면은 여러 개의 프레임으로 구성될 수 있으며, 여러 개의 프레임들 중에서는 변화가 크지 않아 유사한 프레임이 다수 존재할 수 있다. 이 때, 스틸 이미지 기반 클라우드 스트리밍 서비스를 수행하기 위해서는 모든 프레임들을 스틸 이미지 압축 기법으로 압축하여 사용자의 단말 장치로 제공해야 하며, 스틸 이미지 압축 기법에 따라 모든 프레임들 각각에 대한 스틸 이미지 압축 정보를 구성할 필요가 있다. 만약, 유사한 프레임들이 많은 경우에는 모든 프레임에 대한 스틸 이미지 압축 정보를 구성하느라 시스템 자원의 소모율이 커져서 서비스를 원활하게 제공하는데 문제가 발생할 수 있다. 따라서, 유사한 프레임들 중 키 프레임을 추출하고, 키 프레임을 기준으로 생성한 스틸 이미지 압축 정보를 나머지 유사한 프레임들에 적용하여 압축함으로써 시스템 자원을 절약할 수 있다.The execution screen may be composed of a plurality of frames, and a plurality of similar frames may exist because the change is not large among the plurality of frames. In this case, in order to perform a still image-based cloud streaming service, all frames must be compressed and provided to a user terminal device using a still image compression technique, and still image compression information for each frame is configured according to the still image compression technique. Needs to be. If there are many similar frames, it may cause a problem to smoothly provide a service due to a large consumption of system resources for composing still image compression information for all frames. Accordingly, system resources may be saved by extracting a key frame among similar frames and compressing the still image compression information generated based on the key frame by applying the same to the remaining similar frames.
이 때, 키 프레임은 실행 화면 중 이전 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 이상인 프레임일 수 있다. 예를 들어, 한 프레임의 전체 영역을 기준으로 60퍼센트 정도가 이전 프레임에 비교하여 변화하였을 때, 해당 프레임을 키 프레임으로 추출할 수 있다. 이와 같은 기설정된 기준값은 개발자에 의해 자유롭게 설정 및 수정하는 것이 가능하다. In this case, the key frame may be a frame in which the change value of the frame is greater than or equal to a preset reference value in comparison with the previous frame in the execution screen. For example, when about 60 percent of the entire area of a frame changes compared to the previous frame, the frame can be extracted as a key frame. Such preset reference values can be freely set and modified by a developer.
또한, 기준값이 너무 낮게 설정되면 추출되는 키 프레임이 너무 많아져서 시스템 자원의 소비가 심해질 수 있고, 기준값이 너무 높게 설정되면 추출되는 키 프레임이 적어 인코딩된 실행 화면의 화질 저하가 심할 수 있다. 따라서, 이와 같은 문제점을 방지하기 위해 최대 기준값 및 최소 기준값을 설정하고 범위 내에서 수정이 가능하도록 할 수도 있다.In addition, if the reference value is set too low, too many key frames are extracted, so that the consumption of system resources may be severe. If the reference value is set too high, the extracted key picture may be less so that the image quality of the encoded execution screen may be severe. Therefore, in order to prevent such a problem, it is possible to set the maximum reference value and the minimum reference value and to make modifications within the range.
이 때, 실행 화면의 픽셀값 변화를 고려하여 프레임의 변화값을 산출할 수 있다. 예를 들어, 프레임에 포함된 모든 픽셀들의 변화를 계산하고, 이전 프레임의 픽셀값과 비교하여 변화된 정도를 판단하여 프레임의 변화 값을 산출할 수 있다. 만약 프레임을 구성하는 픽셀이 10000개이고 기설정된 기준값이 60퍼센트라고 가정한다면, 이전 프레임과 비교하여 6000픽셀이상 변화한 경우 해당 프레임을 키 프레임으로 판단하고 추출할 수 있다.In this case, the change value of the frame may be calculated in consideration of the change of the pixel value of the execution screen. For example, the change value of all the pixels included in the frame may be calculated, and the change value of the frame may be calculated by determining the degree of change by comparing the pixel value of the previous frame. If it is assumed that there are 10000 pixels constituting the frame and the preset reference value is 60 percent, the frame may be determined as a key frame and extracted if it is changed by 6000 pixels or more compared with the previous frame.
이 때, 어플리케이션의 입력 신호 및 추가 컬러의 개수 중 하나 이상을 고려하여 키 프레임을 추출할 수 있다. 예를 들어, 어플리케이션의 입력 신호는 어플리케이션의 실행 화면에 변화는 주는 신호일 수 있기 때문에, 어플리케이션의 입력 신호를 감지하여, 입력 신호에 의해 발생하는 실행 화면의 첫 프레임을 큰 키 프레임으로 판단할 수 있다. 또한, 이전 프레임에 비하여 추가 컬러가 기설정된 개수 이상 줄어드는 경우에 해당 프레임을 키 프레임으로 판단하고 추출할 수 있다.In this case, the key frame may be extracted in consideration of at least one of the input signal of the application and the number of additional colors. For example, since the input signal of the application may be a signal for changing the execution screen of the application, the input signal of the application may be sensed to determine the first frame of the execution screen generated by the input signal as a large key frame. . In addition, when the additional color is reduced by more than a predetermined number as compared with the previous frame, the frame may be determined as a key frame and extracted.
인코딩부(230)는 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 실행 화면 중 키 프레임을 제외한 나머지 프레임들 및 키 프레임 중 하나 이상에 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 실행 화면을 스틸 이미지 인코딩한다. 예를 들어, 실행 화면을 구성하는 프레임들 중 하나 또는 복수의 키 프레임에 대해서 스틸 이미지 압축 정보를 생성한 뒤에, 나머지 프레임들은 이미 생성한 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법을 적용하여 스틸 이미지 인코딩을 수행함으로써, 키 프레임과 나머지 프레임으로 구성된 실행 화면을 스틸 이미지 인코딩할 수 있다.The encoding unit 230 generates still image compression information corresponding to the key frame, and applies a still image compression technique based on the still image compression information to one or more of the remaining frames and key frames except the key frame in the execution screen. To encode a running image. For example, after generating still image compression information for one or a plurality of key frames of the frames constituting the execution screen, the remaining frames are applied to the still image compression technique using the still image compression information that has already been generated. By performing the encoding, the execution screen consisting of the key frame and the remaining frames can be still image encoded.
이 때, 나머지 프레임들 중 키 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 미만인 서브 프레임을 추출하고, 서브 프레임을 스틸 이미지 압축 기법을 이용하여 압축할 수 있다. 예를 들어, 실행 화면에는 복수의 키 프레임이 존재할 수 있기 때문에, 나머지 프레임들 중에는 각각의 키 프레임에 상응하는 유사한 프레임들이 존재할 수 있다. 이와 같이 각각의 키 프레임과 비교하였을 때 프레임의 변화값이 기설정된 기준값 미만의 유사한 프레임을 키 프레임에 대한 서브 프레임으로 추출하여 키 프레임을 압축한 스틸 이미지 압축 기법을 이용하여 압축할 수 있다.In this case, a subframe having a change value of a frame less than a predetermined reference value may be extracted from the remaining frames, and the subframe may be compressed using a still image compression technique. For example, since a plurality of key frames may exist in the execution screen, similar frames corresponding to each key frame may exist among the remaining frames. As described above, when a change value of a frame is compared with each key frame, a similar frame having a lower value than a predetermined reference value is extracted as a subframe for the key frame, and the key frame is compressed using a still image compression technique.
이 때, 스틸 이미지 압축 정보는 팔렛트, 컬러 치환 테이블 및 최적 필터 중 하나 이상을 포함할 수 있다. 예를 들어, 스틸 이미지 기반 클라우드 스트리밍 시 PNG 스틸 이미지 압축 기법을 적용하여 스틸 이미지 인코딩을 수행하는 경우 비디오 기반 클라우드 스트리밍과 비교하여 압축 효율이 떨어지기 때문에 네트워크의 대역폭이 제한된 경우에는 전송 지연이 발생할 수 있는 문제점이 있다. 따라서, 이와 같은 PNG 스틸 이미지 압축 기법의 압축 효율을 증가시키기 위해서 팔렛트, 컬러 치환 테이블 및 최적 필터 등을 이용하여 이미지를 구성하는 컬러의 폭을 축소할 수 있다.In this case, the still image compression information may include one or more of a palette, a color substitution table, and an optimal filter. For example, when performing still image encoding by applying PNG still image compression to still image-based cloud streaming, the compression efficiency is lower compared to video-based cloud streaming, which can cause transmission delays when the bandwidth of the network is limited. There is a problem. Therefore, in order to increase the compression efficiency of the PNG still image compression technique, a palette, a color substitution table, an optimal filter, and the like may be used to reduce the width of colors constituting the image.
일반적으로 PNG 포맷에서는 크게 RGB 형식과 Indexed Color 형식으로 이미지 색 정보를 표현할 수 있다. RGB 형식은 하나의 픽셀마다 빨강, 초록, 파랑의 값을 각각 사용할 수 있다. 그러나 Indexed Color 형식에서는 이미지를 구성하기 위해 사용하는 색을 팔렛트라는 테이블에 미리 작성하고, 각각의 픽셀에 팔레트 테이블 상의 몇 번째 색을 사용하는지 정보를 포함할 수 있다. 이 때, RGB 형식은 빨강, 초록, 파랑을 각각 8bit로 표현하여 하나의 픽셀당 24bit가 필요하지만, Indexed Color 형식에서는 8bit만 필요하기 때문에 RGB 형식을 Indexed Color 형식으로 변환시키는 경우 데이터의 크기를 3분의 1로 감소시킬 수 있다.In general, the PNG format can express image color information in RGB and Indexed Color formats. The RGB format can use red, green, and blue values for each pixel. However, in the Indexed Color format, a color used to compose an image may be pre-written in a table called a palette, and information about which color on the palette table is used for each pixel may be included. In this case, the RGB format requires 8 bits each for red, green, and blue, and 24 bits are required for each pixel. However, since only 8 bits are required for the Indexed Color format, when converting the RGB format to the Indexed Color format, the data size is 3 Can be reduced to one-third.
또한, Indexed Color 형식은 8bit를 이용하여 정보를 나타내기 때문에 최대 256개의 정보만을 표현할 수 있다. 그러나 RGB 형식에서는 Indexed Color 형식보다 더 많은 컬러를 표현할 수 있기 때문에, 컬러 치환 테이블을 이용하여 RGB 형식의 컬러를 Indexed Color 형식의 팔레트에 포함된 컬러로 치환할 수 있다. 이 때, RGB 형식으로 표현할 때보다 사용할 수 있는 컬러의 수가 감소할 수밖에 없기 때문에 이미지 화질의 열화를 발생시킬 수 있다.In addition, since the indexed color format represents information using 8 bits, only up to 256 pieces of information can be represented. However, since the RGB format can express more colors than the Indexed Color format, the color substitution table can be used to replace the RGB format color with the color included in the Indexed Color format palette. In this case, since the number of colors that can be used is inevitably reduced than that in the RGB format, image quality may be degraded.
또한, Indexed Color 형식에서 각각의 픽셀마다 어느 색을 말하는 정보인지 그대로 취급하는 것은 비효율적이기 때문에, 픽셀이 구성하는 행마다 필터라고 하는 데이터를 정리하는 구조를 적용할 수 있다. 예를 들어, 하나의 행이 5개의 픽셀로 구성되어 있고, 5개의 픽셀이 모두 빨간색을 말하는 정보를 포함하고 있는 경우에, 픽셀의 정보를 '빨강, 빨강, 빨강, 빨강, 빨강'의 형식으로 나타내는 것 보다는 '빨강 5개'로 나타내는 것이 더 간결하게 나타낼 수 있다. 따라서, 픽셀이 구성하는 각각의 행마다 최적 필터를 적용하여 데이터를 취급할 때 보다 간결하게 나타낼 수 있다.In addition, since it is inefficient to treat which color is the information for each pixel in the Indexed Color format as it is, it is possible to apply a structure for arranging data called a filter for each row of pixels. For example, if a row consists of five pixels and all five pixels contain information that says red, the information in pixels is in the form of 'red, red, red, red, red'. It may be more succinct to express it as 'five red' than it does. Therefore, the optimum filter may be applied to each row of the pixel, thereby making the data more concise.
이 때, 키 프레임의 다음 키 프레임이 나타날 때까지 서브 프레임을 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 이용하여 압축할 수 있다. 예를 들어, 실행 화면에서 추출된 첫 번째 키 프레임에 대한 스틸 이미지 압축 정보를 구성하고, 이를 이용하여 이 후의 서브 프레임들을 스틸 이미지 인코딩할 수 있다. 이 때, 첫 번째 키 프레임에 대한 서브 프레임들의 스틸 이미지 인코딩이 완료되고 두 번째 키 프레임이 추출되었다면, 두 번째 키 프레임에 대해서 다시 스틸 이미지 압축 정보를 구성하고, 이 후의 서브 프레임들에 대해서는 두 번째 키 프레임의 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법을 적용하여 스틸 이미지 인코딩을 수행할 수 있다.At this time, the subframe may be compressed using a still image compression technique based on still image compression information until the next key frame of the key frame appears. For example, the still image compression information for the first key frame extracted from the execution screen may be configured, and subsequent subframes may be still image encoded using the same. At this time, if the still image encoding of subframes for the first key frame is completed and the second key frame is extracted, the still image compression information is configured again for the second key frame, and the second subframes for the subsequent subframes. Still image encoding may be performed by applying a still image compression method using still image compression information of a key frame.
이 때, 키 프레임과 스틸 이미지 압축 정보를 연동하여 데이터베이스에 저장할 수 있다. 예를 들어, 스틸 이미지 인코딩을 수행하기 전에 미리 실행 화면에 포함된 모든 키 프레임을 추출하고, 각각의 키 프레임들에 대한 스틸 이미지 압축 정보를 생성하여 데이터베이스에 저장할 수 있다. 이 때, 키 프레임과 스틸 이미지 압축 정보를 연동하여 저장함으로써, 키 프레임 및 서브 프레임의 압축을 수행할 때 저장된 스틸 이미지 압축 정보를 쉽게 찾아 이용할 수 있다.At this time, the key frame and the still image compression information can be linked and stored in the database. For example, before performing still image encoding, all key frames included in the execution screen may be extracted in advance, and still image compression information for each key frame may be generated and stored in a database. In this case, by interlocking the key frame and the still image compression information, it is possible to easily find and use the stored still image compression information when compressing the key frame and the subframe.
이 때, 스틸 이미지 압축 정보를 이용한 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법을 이용하여 실행 화면을 스틸 이미지 인코딩할 수 있다. 팔렛티드 PNG 스틸 이미지 압축 기법은 PNG 스틸 이미지 압축 기법과 비교하였을 때 이미지의 화질 열화를 발생시킬 수는 있으나 데이터의 크기를 3분의 1로 줄일 수 있으므로, 네트워크 대역폭이 제한된 환경에서 전송 지연이 발생하는 것을 방지할 수 있다.In this case, a still image may be encoded using a paletted portable network graphics (PNG) still image compression technique using still image compression information. Compared to PNG still image compression, palletized PNG still image compression can cause image quality degradation, but can reduce the size of data to one-third, resulting in transmission delays in environments with limited network bandwidth. Can be prevented.
센딩부(240)는 스틸 이미지 인코딩된 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다. 스틸 이미지 인코딩을 완료하여 압축된 실행 화면을 사용자의 단말 장치로 전송함으로써, 사용자가 사용자의 단말 장치에서 어플리케이션이 실행되는 것처럼 느낄 수 있다.The sending unit 240 transmits a still image encoded execution screen to a user terminal device to perform a still image based cloud streaming service. By completing the still image encoding and transmitting the compressed execution screen to the user's terminal device, the user may feel as if the application is executed in the user's terminal device.
저장부(250)는 상술한 바와 같이 본 발명의 실시예에 따른 클라우드 스트리밍 서비스 과정에서 발생되는 다양한 정보를 저장한다.The storage unit 250 stores various information generated in the cloud streaming service process according to the embodiment of the present invention as described above.
실시예에 따라, 저장부(250)는 클라우드 스트리밍 서버(110)와 독립적으로 구성되어 클라우드 스트리밍 서비스를 위한 기능을 지원할 수 있다. 이 때, 저장부(250)는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수 있다.According to an embodiment, the storage 250 may be configured independently of the cloud streaming server 110 to support a function for a cloud streaming service. At this time, the storage unit 250 may operate as a separate mass storage, and may include a control function for performing the operation.
또한, 상술한 바와 같이 구성되는 클라우드 스트리밍 서버(110)는 하나 이상의 서버로 구현될 수 있다.In addition, the cloud streaming server 110 configured as described above may be implemented as one or more servers.
한편, 클라우드 스트리밍 서버(110)는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.Meanwhile, the cloud streaming server 110 may be equipped with a memory to store information in the device. In one embodiment, the memory is a computer readable medium. In one implementation, the memory may be a volatile memory unit, and for other implementations, the memory may be a nonvolatile memory unit. In one embodiment, the storage device is a computer readable medium. In various different implementations, the storage device may include, for example, a hard disk device, an optical disk device, or some other mass storage device.
또한, 저장부(250)는 본 발명의 데이터베이스를 대신하여 키 프레임과 스틸 이미지 압축 정보를 연동하여 저장할 수 있다.In addition, the storage unit 250 may store the key frame and the still image compression information in association with the database of the present invention.
도 3은 본 발명의 일실시예에 따른 키 프레임과 서브 프레임을 나타낸 도면이다.3 is a diagram illustrating a key frame and a sub frame according to an embodiment of the present invention.
도 3을 참조하면, 어플리케이션의 실행 화면을 구성하는 복수의 프레임들은 키 프레임(310, 320)과 서브 프레임(310-1, 310-2, 320-1, 320-N)으로 구분할 수 있다.Referring to FIG. 3, a plurality of frames constituting an execution screen of an application may be divided into key frames 310 and 320 and subframes 310-1, 310-2, 320-1, and 320-N.
이 때, 키 프레임은 실행 화면 중 이전 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 이상인 프레임일 수 있다. 예를 들어, 키 프레임(320)의 경우 이전 프레임에 상응하는 서브 프레임(310-2)과 비교하였을 때 프레임의 변화값이 기설정된 기준값 이상일 수 있다.In this case, the key frame may be a frame in which the change value of the frame is greater than or equal to a preset reference value in comparison with the previous frame in the execution screen. For example, in the case of the key frame 320, the change value of the frame may be greater than or equal to a preset reference value when compared to the subframe 310-2 corresponding to the previous frame.
이와 같이 키 프레임(310, 320)과 키 프레임(310, 320)에 상응하는 서브 프레임(310-1, 310-2, 320-1, 320-N)은 순차적으로 나열되어 있을 가능성이 높다. 따라서, 서브 프레임(310-1, 310-2, 320-1, 320-N)을 추출할 때에는 각각의 키 프레임(310, 320)을 기준으로 사이에 위치한 프레임들을 추출할 수 있다.As such, the key frames 310 and 320 and the subframes 310-1, 310-2, 320-1, and 320-N corresponding to the key frames 310 and 320 are likely to be sequentially arranged. Accordingly, when extracting the subframes 310-1, 310-2, 320-1, and 320 -N, frames located between the key frames 310 and 320 may be extracted.
또한, 키 프레임(310, 320)에 대한 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법을 적용할 때도, 다음 키 프레임이 나타날 때까지 동일한 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법을 적용하여 서브 프레임을 압축할 수 있다. 예를 들어, 키 프레임(310)에 대한 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법으로 서브 프레임(310-1)과 서브 프레임(310-2)을 압축할 수 있다. 이 후, 다음의 키 프레임인 키 프레임(320)이 나타나면 키 프레임(310)에 대한 스틸 이미지 압축 정보를 사용하지 않고, 키 프레임(320)에 대한 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법으로 서브 프레임(320-1)을 압축할 수 있다. 이 후, 상기의 방법과 동일하게 다음 키 프레임이 나타날 때까지 키 프레임(320)의 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법으로 압축을 수행할 수 있다.Also, when applying a still image compression method using still image compression information on key frames 310 and 320, a subframe may be applied by applying a still image compression method using the same still image compression information until the next key frame appears. It can be compressed. For example, the subframe 310-1 and the subframe 310-2 may be compressed using a still image compression technique using still image compression information on the key frame 310. When the next key frame 320, which is the next key frame, is displayed, the sub image is extracted using the still image compression technique using the still image compression information on the key frame 320 without using the still image compression information on the key frame 310. The frame 320-1 may be compressed. Thereafter, in the same manner as described above, compression may be performed using a still image compression technique using still image compression information of the key frame 320 until the next key frame appears.
도 4는 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.4 is an operation flowchart illustrating a cloud streaming service method for saving system resources according to an embodiment of the present invention.
도 4를 참조하면, 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법은 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처한다(S410). 예를 들어, 네트워크를 통해 클라우드 스트리밍 서버에 접속한 하나 이상의 단말 장치에 의해 어플리케이션 실행 요청이 접수된 경우에, 단말 장치의 요청에 상응하여 클라우드 스트리밍 서버에서 어플리케이션을 실행하고, 어플리케이션 실행 결과에 해당하는 실행 화면을 단말 장치에게 전달하기 위해 캡처할 수 있다.Referring to FIG. 4, the cloud streaming service method for conserving system resources according to an embodiment of the present invention captures an execution screen of an application executed for the cloud streaming service (S410). For example, when an application execution request is received by at least one terminal device connected to the cloud streaming server through a network, the application is executed in the cloud streaming server according to the request of the terminal device, and corresponds to the application execution result. The execution screen may be captured for delivery to the terminal device.
또한, 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법은 실행 화면 중 키 프레임을 추출한다(S420). In addition, the cloud streaming service method for saving system resources according to an embodiment of the present invention extracts a key frame of the execution screen (S420).
실행 화면은 여러 개의 프레임으로 구성될 수 있으며, 여러 개의 프레임들 중에서는 변화가 크지 않아 유사한 프레임이 다수 존재할 수 있다. 이 때, 스틸 이미지 기반 클라우드 스트리밍 서비스를 수행하기 위해서는 모든 프레임들을 스틸 이미지 압축 기법으로 압축하여 사용자의 단말 장치로 제공해야 하며, 스틸 이미지 압축 기법에 따라 모든 프레임들 각각에 대한 스틸 이미지 압축 정보를 구성할 필요가 있다. 만약, 유사한 프레임들이 많은 경우에는 모든 프레임에 대한 스틸 이미지 압축 정보를 구성하느라 시스템 자원의 소모율이 커져서 서비스를 원활하게 제공하는데 문제가 발생할 수 있다. 따라서, 유사한 프레임들 중 키 프레임을 추출하고, 키 프레임을 기준으로 생성한 스틸 이미지 압축 정보를 나머지 유사한 프레임들에 적용하여 압축함으로써 시스템 자원을 절약할 수 있다.The execution screen may be composed of a plurality of frames, and a plurality of similar frames may exist because the change is not large among the plurality of frames. In this case, in order to perform a still image-based cloud streaming service, all frames must be compressed and provided to a user terminal device using a still image compression technique, and still image compression information for each frame is configured according to the still image compression technique. Needs to be. If there are many similar frames, it may cause a problem to smoothly provide a service due to a large consumption of system resources for composing still image compression information for all frames. Accordingly, system resources may be saved by extracting a key frame among similar frames and compressing the still image compression information generated based on the key frame by applying the same to the remaining similar frames.
이 때, 키 프레임은 실행 화면 중 이전 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 이상인 프레임일 수 있다. 예를 들어, 한 프레임의 전체 영역을 기준으로 60퍼센트 정도가 이전 프레임에 비교하여 변화하였을 때, 해당 프레임을 키 프레임으로 추출할 수 있다. 이와 같은 기설정된 기준값은 개발자에 의해 자유롭게 설정 및 수정하는 것이 가능하다. In this case, the key frame may be a frame in which the change value of the frame is greater than or equal to a preset reference value in comparison with the previous frame in the execution screen. For example, when about 60 percent of the entire area of a frame changes compared to the previous frame, the frame can be extracted as a key frame. Such preset reference values can be freely set and modified by a developer.
또한, 기준값이 너무 낮게 설정되면 추출되는 키 프레임이 너무 많아져서 시스템 자원의 소비가 심해질 수 있고, 기준값이 너무 높게 설정되면 추출되는 키 프레임이 적어 인코딩된 실행 화면의 화질 저하가 심할 수 있다. 따라서, 이와 같은 문제점을 방지하기 위해 최대 기준값 및 최소 기준값을 설정하고 범위 내에서 수정이 가능하도록 할 수도 있다.In addition, if the reference value is set too low, too many key frames are extracted, so that the consumption of system resources may be severe. If the reference value is set too high, the extracted key picture may be less so that the image quality of the encoded execution screen may be severe. Therefore, in order to prevent such a problem, it is possible to set the maximum reference value and the minimum reference value and to make modifications within the range.
이 때, 실행 화면의 픽셀값 변화를 고려하여 프레임의 변화값을 산출할 수 있다. 예를 들어, 프레임에 포함된 모든 픽셀들의 변화를 계산하고, 이전 프레임의 픽셀값과 비교하여 변화된 정도를 판단하여 프레임의 변화 값을 산출할 수 있다. 만약 프레임을 구성하는 픽셀이 10000개이고 기설정된 기준값이 60퍼센트라고 가정한다면, 이전 프레임과 비교하여 6000픽셀이상 변화한 경우 해당 프레임을 키 프레임으로 판단하고 추출할 수 있다.In this case, the change value of the frame may be calculated in consideration of the change of the pixel value of the execution screen. For example, the change value of all the pixels included in the frame may be calculated, and the change value of the frame may be calculated by determining the change degree by comparing the pixel value of the previous frame. If it is assumed that there are 10000 pixels constituting the frame and the preset reference value is 60 percent, the frame may be determined as a key frame and extracted if it is changed by 6000 pixels or more compared with the previous frame.
이 때, 어플리케이션의 입력 신호 및 추가 컬러의 개수 중 하나 이상을 고려하여 키 프레임을 추출할 수 있다. 예를 들어, 어플리케이션의 입력 신호는 어플리케이션의 실행 화면에 변화는 주는 신호일 수 있기 때문에, 어플리케이션의 입력 신호를 감지하여, 입력 신호에 의해 발생하는 실행 화면의 첫 프레임을 큰 키 프레임으로 판단할 수 있다. 또한, 이전 프레임에 비하여 추가 컬러가 기설정된 개수 이상 줄어드는 경우에 해당 프레임을 키 프레임으로 판단하고 추출할 수 있다.In this case, the key frame may be extracted in consideration of at least one of the input signal of the application and the number of additional colors. For example, since the input signal of the application may be a signal for changing the execution screen of the application, the input signal of the application may be sensed to determine the first frame of the execution screen generated by the input signal as a large key frame. . In addition, when the additional color is reduced by more than a predetermined number as compared with the previous frame, the frame may be determined as a key frame and extracted.
또한, 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법은 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 실행 화면 중 키 프레임을 제외한 나머지 프레임들 및 키 프레임 중 하나 이상에 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 실행 화면을 스틸 이미지 인코딩한다(S430). 예를 들어, 실행 화면을 구성하는 프레임들 중 하나 또는 복수의 키 프레임에 대해서 스틸 이미지 압축 정보를 생성한 뒤에, 나머지 프레임들은 이미 생성한 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법을 적용하여 스틸 이미지 인코딩을 수행함으로써, 키 프레임과 나머지 프레임으로 구성된 실행 화면을 스틸 이미지 인코딩할 수 있다.In addition, the cloud streaming service method for saving system resources according to an embodiment of the present invention generates a still image compression information corresponding to the key frame, and at least one of the remaining frames and key frames other than the key frame of the execution screen In operation S430, the still screen is encoded by applying a still image compression technique based on still image compression information. For example, after generating still image compression information for one or a plurality of key frames of the frames constituting the execution screen, the remaining frames are applied to the still image compression technique using the still image compression information that has already been generated. By performing the encoding, the execution screen consisting of the key frame and the remaining frames can be still image encoded.
이 때, 나머지 프레임들 중 키 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 미만인 서브 프레임을 추출하고, 서브 프레임을 스틸 이미지 압축 기법을 이용하여 압축할 수 있다. 예를 들어, 실행 화면에는 복수의 키 프레임이 존재할 수 있기 때문에, 나머지 프레임들 중에는 각각의 키 프레임에 상응하는 유사한 프레임들이 존재할 수 있다. 이와 같이 각각의 키 프레임과 비교하였을 때 프레임의 변화값이 기설정된 기준값 미만의 유사한 프레임을 키 프레임에 대한 서브 프레임으로 추출하여 키 프레임을 압축한 스틸 이미지 압축 기법을 이용하여 압축할 수 있다.In this case, a subframe having a change value of a frame less than a predetermined reference value may be extracted from the remaining frames, and the subframe may be compressed using a still image compression technique. For example, since a plurality of key frames may exist in the execution screen, similar frames corresponding to each key frame may exist among the remaining frames. As described above, when a change value of a frame is compared with each key frame, a similar frame having a lower value than a predetermined reference value is extracted as a subframe for the key frame, and the key frame is compressed using a still image compression technique.
이 때, 스틸 이미지 압축 정보는 팔렛트, 컬러 치환 테이블 및 최적 필터 중 하나 이상을 포함할 수 있다. 예를 들어, 스틸 이미지 기반 클라우드 스트리밍 시 PNG 스틸 이미지 압축 기법을 적용하여 스틸 이미지 인코딩을 수행하는 경우 비디오 기반 클라우드 스트리밍과 비교하여 압축 효율이 떨어지기 때문에 네트워크의 대역폭이 제한된 경우에는 전송 지연이 발생할 수 있는 문제점이 있다. 따라서, 이와 같은 PNG 스틸 이미지 압축 기법의 압축 효율을 증가시키기 위해서 팔렛트, 컬러 치환 테이블 및 최적 필터 등을 이용하여 이미지를 구성하는 컬러의 폭을 축소할 수 있다.In this case, the still image compression information may include one or more of a palette, a color substitution table, and an optimal filter. For example, when performing still image encoding by applying PNG still image compression to still image-based cloud streaming, the compression efficiency is lower compared to video-based cloud streaming, which can cause transmission delays when the bandwidth of the network is limited. There is a problem. Therefore, in order to increase the compression efficiency of the PNG still image compression technique, a palette, a color substitution table, an optimal filter, and the like may be used to reduce the width of colors constituting the image.
일반적으로 PNG 포맷에서는 크게 RGB 형식과 Indexed Color 형식으로 이미지 색 정보를 표현할 수 있다. RGB 형식은 하나의 픽셀마다 빨강, 초록, 파랑의 값을 각각 사용할 수 있다. 그러나 Indexed Color 형식에서는 이미지를 구성하기 위해 사용하는 색을 팔렛트라는 테이블에 미리 작성하고, 각각의 픽셀에 팔레트 테이블 상의 몇 번째 색을 사용하는지 정보를 포함할 수 있다. 이 때, RGB 형식은 빨강, 초록, 파랑을 각각 8bit로 표현하여 하나의 픽셀당 24bit가 필요하지만, Indexed Color 형식에서는 8bit만 필요하기 때문에 RGB 형식을 Indexed Color 형식으로 변환시키는 경우 데이터의 크기를 3분의 1로 감소시킬 수 있다.In general, the PNG format can express image color information in RGB and Indexed Color formats. The RGB format can use red, green, and blue values for each pixel. However, in the Indexed Color format, a color used to compose an image may be pre-written in a table called a palette, and information about which color on the palette table is used for each pixel may be included. In this case, the RGB format requires 8 bits each for red, green, and blue, and 24 bits are required for each pixel. However, since 8 bits are required for the Indexed Color format, the size of the data is 3 when converting the RGB format to the Indexed Color format. Can be reduced to one-third.
또한, Indexed Color 형식은 8bit를 이용하여 정보를 나타내기 때문에 최대 256개의 정보만을 표현할 수 있다. 그러나 RGB 형식에서는 Indexed Color 형식보다 더 많은 컬러를 표현할 수 있기 때문에, 컬러 치환 테이블을 이용하여 RGB 형식의 컬러를 Indexed Color 형식의 팔레트에 포함된 컬러로 치환할 수 있다. 이 때, RGB 형식으로 표현할 때보다 사용할 수 있는 컬러의 수가 감소할 수밖에 없기 때문에 이미지 화질의 열화를 발생시킬 수 있다.In addition, since the indexed color format represents information using 8 bits, only up to 256 pieces of information can be represented. However, since the RGB format can express more colors than the Indexed Color format, the color substitution table can be used to replace the RGB format color with the color included in the Indexed Color format palette. In this case, since the number of colors that can be used is inevitably reduced than that in the RGB format, image quality may be degraded.
또한, Indexed Color 형식에서 각각의 픽셀마다 어느 색을 말하는 정보인지 그대로 취급하는 것은 비효율적이기 때문에, 픽셀이 구성하는 행마다 필터라고 하는 데이터를 정리하는 구조를 적용할 수 있다. 예를 들어, 하나의 행이 5개의 픽셀로 구성되어 있고, 5개의 픽셀이 모두 빨간색을 말하는 정보를 포함하고 있는 경우에, 픽셀의 정보를 '빨강, 빨강, 빨강, 빨강, 빨강'의 형식으로 나타내는 것 보다는 '빨강 5개'로 나타내는 것이 더 간결하게 나타낼 수 있다. 따라서, 픽셀이 구성하는 각각의 행마다 최적 필터를 적용하여 데이터를 취급할 때 보다 간결하게 나타낼 수 있다.In addition, since it is inefficient to treat which color is the information for each pixel in the Indexed Color format as it is, it is possible to apply a structure for arranging data called a filter for each row of pixels. For example, if a row consists of five pixels and all five pixels contain information that says red, the information in pixels is in the form of 'red, red, red, red, red'. It may be more succinct to express it as 'five red' than it does. Therefore, the optimum filter may be applied to each row of the pixel, thereby making the data more concise.
이 때, 키 프레임의 다음 키 프레임이 나타날 때까지 서브 프레임을 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 이용하여 압축할 수 있다. 예를 들어, 실행 화면에서 추출된 첫 번째 키 프레임에 대한 스틸 이미지 압축 정보를 구성하고, 이를 이용하여 이 후의 서브 프레임들을 스틸 이미지 인코딩할 수 있다. 이 때, 첫 번째 키 프레임에 대한 서브 프레임들의 스틸 이미지 인코딩이 완료되고 두 번째 키 프레임이 추출되었다면, 두 번째 키 프레임에 대해서 다시 스틸 이미지 압축 정보를 구성하고, 이 후의 서브 프레임들에 대해서는 두 번째 키 프레임의 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법을 적용하여 스틸 이미지 인코딩을 수행할 수 있다.At this time, the subframe may be compressed using a still image compression technique based on still image compression information until the next key frame of the key frame appears. For example, the still image compression information for the first key frame extracted from the execution screen may be configured, and subsequent subframes may be still image encoded using the same. At this time, if the still image encoding of subframes for the first key frame is completed and the second key frame is extracted, the still image compression information is configured again for the second key frame, and the second subframes for the subsequent subframes. Still image encoding may be performed by applying a still image compression method using still image compression information of a key frame.
이 때, 키 프레임과 스틸 이미지 압축 정보를 연동하여 데이터베이스에 저장할 수 있다. 예를 들어, 스틸 이미지 인코딩을 수행하기 전에 미리 실행 화면에 포함된 모든 키 프레임을 추출하고, 각각의 키 프레임들에 대한 스틸 이미지 압축 정보를 생성하여 데이터베이스에 저장할 수 있다. 이 때, 키 프레임과 스틸 이미지 압축 정보를 연동하여 저장함으로써, 키 프레임 및 서브 프레임의 압축을 수행할 때 저장된 스틸 이미지 압축 정보를 쉽게 찾아 이용할 수 있다.At this time, the key frame and the still image compression information can be linked and stored in the database. For example, before performing still image encoding, all key frames included in the execution screen may be extracted in advance, and still image compression information for each key frame may be generated and stored in a database. In this case, by interlocking the key frame and the still image compression information, it is possible to easily find and use the stored still image compression information when compressing the key frame and the subframe.
이 때, 스틸 이미지 압축 정보를 이용한 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법을 이용하여 실행 화면을 스틸 이미지 인코딩할 수 있다. 팔렛티드 PNG 스틸 이미지 압축 기법은 PNG 스틸 이미지 압축 기법과 비교하였을 때 이미지의 화질 열화를 발생시킬 수는 있으나 데이터의 크기를 3분의 1로 줄일 수 있으므로, 네트워크 대역폭이 제한된 환경에서 전송 지연이 발생하는 것을 방지할 수 있다.In this case, a still image may be encoded using a paletted portable network graphics (PNG) still image compression technique using still image compression information. Compared to PNG still image compression, palletized PNG still image compression can cause image quality degradation, but can reduce the size of data to one-third, resulting in transmission delays in environments with limited network bandwidth. Can be prevented.
또한, 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법은 스틸 이미지 인코딩된 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다(S440). 스틸 이미지 인코딩을 완료하여 압축된 실행 화면을 사용자의 단말 장치로 전송함으로써, 사용자가 사용자의 단말 장치에서 어플리케이션이 실행되는 것처럼 느낄 수 있다.In addition, the cloud streaming service method for saving system resources according to an embodiment of the present invention transmits a still image encoded execution screen to the user's terminal device to perform a still image-based cloud streaming service (S440). By completing the still image encoding and transmitting the compressed execution screen to the user's terminal device, the user may feel as if the application is executed in the user's terminal device.
도 5는 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법을 상세하게 나타낸 동작 흐름도이다.5 is an operation flowchart showing in detail a cloud streaming service method for saving system resources according to an embodiment of the present invention.
도 5를 참조하면, 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법은 먼저 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처한다(S510).Referring to FIG. 5, the cloud streaming service method for saving system resources according to an embodiment of the present invention first captures an execution screen of an application executed for a cloud streaming service (S510).
이 후, 키 프레임을 추출하기 위해 실행 화면을 구성하는 프레임들의 이전 프레임과 현재 프레임을 비교하여 프레임의 변화값을 산출한다(S520).Thereafter, a change value of the frame is calculated by comparing the previous frame with the current frame of the frames constituting the execution screen to extract the key frame (S520).
이 후, 프레임의 변화값이 기설정된 기준값 이상인지 여부를 판단한다(S525).Thereafter, it is determined whether the change value of the frame is equal to or greater than a predetermined reference value (S525).
단계(S525)의 판단결과 기설정된 기준값 이상이면, 현재 프레임을 키 프레임으로 추출한다(S530).If the determination result in step S525 is equal to or greater than the preset reference value, the current frame is extracted as a key frame (S530).
단계(S525)의 판단결과 기설정된 기준값 미만이면, 현재 프레임을 키 프레임이 아닌 나머지 프레임들로 판단한다(S540).If the determination result of the step (S525) is less than the predetermined reference value, it is determined that the current frame as the remaining frames other than the key frame (S540).
이 후, 추출한 키 프레임에 대한 스틸 이미지 압축 정보를 생성한다(S550). 이 때, 스틸 이미지 압축 정보는 팔렛트, 컬러 치환 테이블 및 최적 필터 중 하나 이상을 포함할 수 있다.Thereafter, still image compression information on the extracted key frame is generated (S550). In this case, the still image compression information may include one or more of a palette, a color substitution table, and an optimal filter.
이 후, 키 프레임과 나머지 프레임들을 비교하여 프레임 변화값을 산출한다(S560).Thereafter, the frame change value is calculated by comparing the key frame with the remaining frames (S560).
이 후, 키 프레임과 비교한 나머지 프레임들의 프레임 변화값이 기설정된 기준값 미만인지 여부를 판단한다(S565).Thereafter, it is determined whether the frame change value of the remaining frames compared with the key frame is less than the predetermined reference value (S565).
단계(S565)의 판단결과 기설정된 기준값 미만이면, 해당하는 나머지 프레임을 키 프레임의 서브 프레임으로 추출한다(S570).If the determination result in step S565 is less than the predetermined reference value, the corresponding remaining frame is extracted as a subframe of the key frame (S570).
단계(S565)의 판단결과 기설정된 기준값 이상이면, 해당하는 나머지 프레임이 키 프레임인지 다시 판단하여, 키 프레임 및 다른 키 프레임의 서브 프레임 중 어느 하나로 구분할 수 있다.If the determination result of step S565 is equal to or greater than the preset reference value, it may be determined again whether the corresponding remaining frame is a key frame, and may be divided into one of a key frame and a subframe of another key frame.
이 후, 키 프레임과 서브 프레임으로 구성된 실행 화면을 스틸 이미지 인코딩한다(S580). 예를 들어, 키 프레임의 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법으로 서브 프레임을 압축하여 스틸 이미지 인코딩을 수행할 수 있다.Thereafter, the execution screen consisting of the key frame and the sub frame is encoded in the still image (S580). For example, a still image encoding may be performed by compressing a subframe using a still image compression technique using still image compression information of a key frame.
이 후, 스틸 이미지 인코딩이 완료된 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다(S590).Thereafter, the execution screen on which the still image encoding is completed is transmitted to the user's terminal device to perform a cloud streaming service based on the still image (S590).
도 6은 본 발명의 다른 실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.6 is a block diagram showing a cloud streaming service system according to another embodiment of the present invention.
도 6을 참조하면 본 발명의 다른 실시예에 따른 클라우드 스트리밍 서비스 시스템은 웹 어플리케이션 서버(605), 클라우드 스트리밍 서버(610), 단말 장치들(620-1, ..., 620-N) 및 네트워크(630)를 포함한다.Referring to FIG. 6, a cloud streaming service system according to another exemplary embodiment of the present invention may include a web application server 605, a cloud streaming server 610, terminal devices 620-1,..., 620 -N, and a network. 630.
웹 어플리케이션 서버(605)는 단말 장치들(620-1, ..., 620-N)로부터의 요청을 전달받아 처리하는 서버이다. 웹 어플리케이션 서버(605)에서 단말 장치들(620-1, ..., 620-N)로부터 수신된 요청을 모두 처리하기보다 웹 컨테이너들을 통해 웹 어플리케이션 서버(605)의 기능을 구조적으로 분리하여 처리할 수 있기 때문에 단말 장치들(620-1, ..., 620-N)로부터의 서비스 요청이 많을수록 웹 어플리케이션 서버(605)를 이용하여 서비스하는 방법이 효과적일 수 있다. 예를 들어, BEA사의 WEB LOGIC, IBM사의 Web Spere, T-max사의 JEUS, Tomcat, RedHot사의 Jboss 등이 웹 어플리케이션 서버(605)에 해당할 수 있다.The web application server 605 is a server that receives and processes requests from the terminal devices 620-1,. Rather than processing all requests received from terminal devices 620-1, ..., 620-N, the web application server 605 structurally separates and processes the functions of the web application server 605 through web containers. Since the number of service requests from the terminal devices 620-1,..., And 620 -N increases, the method of serving using the web application server 605 may be more effective. For example, BEA's WEB LOGIC, IBM's Web Spere, T-max's JEUS, Tomcat, RedHot's Jboss, etc. may correspond to the web application server 605.
이러한 어플리케이션 서버(605)는 단말 장치들(620-1, ..., 620-N)로부터 수신된 서비스 요청에 기반하여 어플리케이션 결과 화면에 상응하는 어플리케이션 코드를 클라우드 스트리밍 서버(605)로 전송할 수 있다.The application server 605 may transmit the application code corresponding to the application result screen to the cloud streaming server 605 based on the service request received from the terminal devices 620-1, ..., 620-N. .
클라우드 스트리밍 서버(610)는 웹 어플리케이션 서버(605)로부터 어플리케이션 결과 화면에 상응하는 제1 코드를 수신한다. The cloud streaming server 610 receives a first code corresponding to the application result screen from the web application server 605.
또한, 클라우드 스트리밍 서버(610)는 제1 코드에 포함된 이미지 영역 속성 정보를 이용하여 캡처 이미지 정보를 생성할 수 있다. In addition, the cloud streaming server 610 may generate the capture image information by using the image region property information included in the first code.
또한, 클라우드 스트리밍 서버(610)는 제1 코드에 포함된 애니메이션 코드를 이용하여 애니메이션 정보를 생성할 수 있다. In addition, the cloud streaming server 610 may generate animation information using the animation code included in the first code.
또한, 클라우드 스트리밍 서버(610)는 제1 코드를, 캡처 이미지 정보 및 애니메이션 정보를 포함하는 제2 코드로 변환할 수 있다. 이 때, 제2 코드는 애니메이션 타입, 애니메이션 적용 시간, 애니메이션 반복 횟수, 시작 좌표, 종료 좌표, 시작 사이즈 및 종료 사이즈 중 적어도 하나 이상에 상응하는 애니메이션 정보를 포함할 수 있다. 이 때, 제2 코드는 애니메이션 코드를 포함하지 않을 수 있다.In addition, the cloud streaming server 610 may convert the first code into a second code including captured image information and animation information. In this case, the second code may include animation information corresponding to at least one or more of an animation type, an animation application time, an animation repetition number, a start coordinate, an end coordinate, a start size, and an end size. At this time, the second code may not include the animation code.
또한, 클라우드 스트리밍 서버(610)는 제1 코드에 포함된 이미지 영역 속성 정보를 이용하여 캡처 이미지를 생성한다. 이 때, 제1 코드에 포함된 이미지 영역 속성 정보에 상응하는 입력 정보에 대해 렌더링을 수행하여 캡처 이미지를 생성할 수 있다. 이 때, 어플리케이션 결과 화면 중 일부에 대해서만 렌더링을 수행하여 캡처 이미지를 생성할 수 있다.In addition, the cloud streaming server 610 generates a captured image using the image region attribute information included in the first code. In this case, the capture image may be generated by rendering the input information corresponding to the image region attribute information included in the first code. In this case, only a part of the application result screen may be rendered to generate a captured image.
또한, 클라우드 스트리밍 서버(610)는 스틸 이미지 압축 기법을 이용하여 캡처 이미지를 스틸 이미지 인코딩한다. 이 때, PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응하는 스틸 이미지 압축 기법을 이용하여 캡처 이미지를 스틸 이미지 인코딩할 수 있다.In addition, the cloud streaming server 610 still image encodes the captured image using a still image compression technique. At this time, the captured image may be still image encoded using a still image compression technique corresponding to any one of portable network graphics (PNG), palletized portable network graphics (PNG), and joint photography experts group (JPEG).
또한, 클라우드 스트리밍 서버(610)는 단말 장치들(620-1, ..., 620-N)에서 어플리케이션 결과 화면을 생성할 수 있도록 스틸 이미지 인코딩된 캡처 이미지 및 제1 코드를 변환하여 애니메이션 정보를 포함하도록 생성한 제2 코드를 사용자 단말로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다.In addition, the cloud streaming server 610 converts the still image-encoded captured image and the first code to generate the application result screen in the terminal devices 620-1,. The second code generated to be included is transmitted to the user terminal to perform a still image based cloud streaming service.
단말 장치들(620-1, ..., 620-N)은 클라우드 스트리밍 서버(610)로부터 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하여 사용자에게 제공한다.The terminal devices 620-1,..., 620 -N receive an application execution result screen corresponding to the cloud streaming service from the cloud streaming server 610 and provide the result to the user.
단말 장치들(620-1, ..., 620-N)은 각각 통신망에 연결되어 클라우드 컴퓨팅 시스템 기반으로 어플리케이션을 실행할 수 있는 장치로, 이동통신단말기에 한정된 것이 아니고, 모든 정보통신기기, 멀티미디어 단말, 유선 단말, 고정형 단말 및 IP(Internet Protocol) 단말 등의 다양한 단말일 수 있다. 또한, 단말 장치들(620-1, ..., 620-N)은 각각 휴대폰, PMP(Portable Multimedia Played), MID(Mobile Internet Device), 스마트폰(Smart Phone), 데스크톱(Desktop), 태블릿컴퓨터(Tablet PC), 노트북(Note book), 넷북(Net Book), 개인휴대용 정보단말(Personal Digital Assistant; PDA), 스마트 TV 및 정보통신 기기 등과 같은 다양한 이동통신 사양을 갖는 모바일(Mobile) 단말일 수 있다.The terminal devices 620-1,..., 620 -N are devices connected to a communication network to execute an application based on a cloud computing system, and are not limited to mobile communication terminals. It may be a variety of terminals, such as a wired terminal, a fixed terminal and an IP (Internet Protocol) terminal. In addition, the terminal devices 620-1, ..., 620-N are mobile phones, portable multimedia players (PMPs), mobile internet devices (MIDs), smart phones, desktops, and tablet computers, respectively. Number of mobile terminals with various mobile communication specifications such as Tablet PC, Note book, Net Book, Personal Digital Assistant (PDA), Smart TV, and ICT devices have.
네트워크(630)는 클라우드 스트리밍 서버(610)및 단말 장치들(620-1, ..., 620-N) 사이에 데이터를 전달하는 통로를 제공하는 것으로서, 기존에 이용되는 네트워크 및 향후 개발 가능한 네트워크를 모두 포괄하는 개념이다. 예를 들어, 네트워크(630)는 한정된 지역 내에서 각종 정보장치들의 통신을 제공하는 유무선근거리 통신망, 이동체 상호 간 및 이동체와 이동체 외부와의 통신을 제공하는 이동통신망, 위성을 이용해 지구국과 지구국간 통신을 제공하는 위성통신망이거나 유무선 통신망 중에서 어느 하나이거나, 둘 이상의 결합으로 이루어질 수 있다. 한편, 네트워크(630)의 전송 방식 표준은, 기존의 전송 방식 표준에 한정되는 것은 아니며, 향후 개발될 모든 전송 방식 표준을 포함할 수 있다. 또한, 도 6에서 클라우드 스트리밍 서버(610)와 단말 장치들(620-1, ..., 620-N) 사이에 사용되는 네트워크는 단말 장치들(620-1, ..., 620-N) 상호간에 사용되는 네트워크와 상이한 것일 수도 있고, 동일한 것일 수도 있다.The network 630 provides a path for transferring data between the cloud streaming server 610 and the terminal devices 620-1,. This is a comprehensive concept. For example, the network 630 may be a wired / wireless local area network that provides communication of various information devices within a limited area, a mobile communication network that provides communication between mobile devices, and a mobile device and an external device. It may be made of a satellite communication network or a wired or wireless communication network providing a combination of two or more. Meanwhile, the transmission method standard of the network 630 is not limited to the existing transmission method standard, and may include all transmission method standards to be developed in the future. 6, the network used between the cloud streaming server 610 and the terminal devices 620-1,..., 620 -N is terminal devices 620-1,..., 620 -N. It may be different from the networks used mutually, or may be the same.
도 7은 도 6에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.FIG. 7 is a block diagram illustrating an example of a cloud streaming server of FIG. 6.
도 7을 참조하면, 도 6에 도시된 클라우드 스트리밍 서버는 코드 수신부(710), 캡처 이미지 정보 생성부(720), 애니메이션 정보 생성부(730), 코드 변환부(740), 캡처부(750), 인코딩부(760), 센딩부(770) 및 저장부(780)를 포함한다.Referring to FIG. 7, the cloud streaming server illustrated in FIG. 6 includes a code receiver 710, a capture image information generator 720, an animation information generator 730, a code converter 740, and a capture unit 750. , An encoding unit 760, a sending unit 770, and a storage unit 780.
코드 수신부(710)는 웹 어플리케이션 서버로부터 어플리케이션 결과 화면에 상응하는 제1 코드를 수신한다. 이와 같은 제1 코드에는 어플리케이션을 실행할 때 적용된 애니메이션 효과에 대한 애니메이션 정보 및 애니메이션 효과가 적용된 이미지들에 대한 이미지 영역 속성 정보 등을 포함할 수 있다. 또한, 웹 어플리케이션 개발자들이 기존에 사용하던 방식으로 작성되어 있을 수 있다. 예를 들어, 제1 코드는 애니메이션 용도로 널리 사용되고 있는 jQuery 등의 라이브러리를 활용하여 작성될 수 있다. The code receiving unit 710 receives a first code corresponding to the application result screen from the web application server. The first code may include animation information about animation effects applied when an application is executed and image region property information on images to which animation effects are applied. It can also be written in the same way that web application developers used. For example, the first code may be written using a library such as jQuery that is widely used for animation.
캡처 이미지 정보 생성부(720)는 제1 코드에 포함된 이미지 영역 속성 정보를 이용하여 캡처 이미지 정보를 생성한다. 예를 들어, 이미지 영역 속성 정보는 캡처될 이미지에 대한 좌표 정보들일 수 있다. The capture image information generator 720 generates capture image information by using image region attribute information included in the first code. For example, the image area attribute information may be coordinate information for the image to be captured.
애니메이션 정보 생성부(730)는 제1 코드에 포함된 애니메이션 코드를 이용하여 애니메이션 정보를 생성한다. 제2 코드에 포함된 애니메이션 코드는 애니메이션을 실행시키기 위한 코드로써, 해당 코드를 실행시키는 경우 불필요한 캡처를 수행해야 하는 경우가 발생할 수 있다. 따라서, 애니메이션 코드의 내용을 확인하고, 추출할 수 있는 정보를 이용하여 애니메이션 정보를 생성할 수 있다.The animation information generator 730 generates animation information using the animation code included in the first code. The animation code included in the second code is a code for executing an animation. When executing the corresponding code, an unnecessary capture may occur. Therefore, the animation information can be generated using the information that can be checked and extracted from the content of the animation code.
코드 변환부(740)는 제1 코드를, 캡처 이미지 정보 및 애니메이션 정보를 포함하는 제2 코드로 변환한다. 따라서, 제2 코드를 확인하면 캡처 영역에 대한 정보 및 애니메이션에 대한 상세한 정보를 파악할 수 있다.The code converter 740 converts the first code into a second code including captured image information and animation information. Therefore, when the second code is checked, detailed information on the capture region and animation may be obtained.
이 때, 제2 코드는 애니메이션 타입, 애니메이션 적용 시간, 애니메이션 반복 횟수, 시작 좌표, 종료 좌표, 시작 사이즈 및 종료 사이즈 중 적어도 하나 이상에 상응하는 애니메이션 정보를 포함할 수 있다. 예를 들어, 제2 코드 상에서 애니메이션 타입은 'effect type', 애니메이션 적용 시간은 'duration', 애니메이션 반복 횟수는 'isRepeat', 시작 좌표는 'start X, start Y', 종료 좌표는 'end X, end Y', 시작 사이즈는 'start W, start H' 및 종료 사이즈는 'end W, end H'로 표시될 수 있다.In this case, the second code may include animation information corresponding to at least one or more of an animation type, an animation application time, an animation repetition number, a start coordinate, an end coordinate, a start size, and an end size. For example, in the second code, the animation type is' effect type ', the animation application time is' duration', the animation repetition number is' isRepeat ', the start coordinate is' start X, start Y', the end coordinate is' end X, end Y ', the start size may be indicated as' start W, start H' and the end size as' end W, end H '.
이 때, 제2 코드는 애니메이션 코드를 포함하지 않을 수 있다. At this time, the second code may not include the animation code.
캡처부(750)는 제1 코드에 포함된 이미지 영역 속성 정보를 이용하여 캡처 이미지를 생성한다. 이 때, 이미지 영역 속성 정보에 상응하는 이미지를 캡처하는 과정을 수행하지 않고 바로 리딩하여 획득할 수 있다. 예를 들어, 어플리케이션 결과 화면을 렌더링하고, 렌더링된 화면들 중 이미지 영역 속성 정보에 상응하는 부분을 캡처하는 경우에는 렌더링이나 캡처를 수행하기 위해 서버의 리소스를 사용하게 되므로 비효율적일 수 있다. 따라서, 이미지 영역 속성 정보에 상응하는 이미지를 웹 어플리케이션 서버로부터 수신된 정보들 중에서 리딩하여 생성할 수 있다.The capturer 750 generates a captured image by using image region attribute information included in the first code. In this case, the reading may be directly performed without performing a process of capturing an image corresponding to the image region attribute information. For example, when rendering an application result screen and capturing a portion corresponding to the image area attribute information among the rendered screens, it may be inefficient because the resources of the server are used to perform rendering or capturing. Therefore, an image corresponding to the image region attribute information may be read and generated among the information received from the web application server.
이 때, 제1 코드에 포함된 이미지 영역 속성 정보에 상응하는 입력 정보에 대해 렌더링을 수행하여 캡처 이미지를 생성할 수 있다. 예를 들어, 이미지 영역 속성 정보를 이용하여 제1 코드 중 캡처 이미지에 해당하는 부분만을 렌더링하여 캡처 이미지를 생성할 수 있다. In this case, the capture image may be generated by rendering the input information corresponding to the image region attribute information included in the first code. For example, the captured image may be generated by rendering only a portion of the first code corresponding to the captured image using the image region attribute information.
이 때, 어플리케이션 결과 화면 중 일부에 대해서만 렌더링을 수행하여 캡처 이미지를 생성할 수 있다. 예를 들어, 일반적인 렌더링 수행의 경우에는 어플리케이션 결과 화면의 전체를 렌더링하고, 각 영역들의 차이점을 비교하는 연산과정을 수행하여 캡처할 부분을 검출할 수 있다. 그러나 이와 같은 여러가지 과정을 수행함으로써 클라우드 스트리밍 서버(610)의 리소스가 소비되므로, 보다 많은 서비스 요청을 동시에 처리하는데 어려움이 발생할 수 있다. 따라서, 전체 어플리케이션 결과 화면 중 캡처 이미지가 포함된 일부 영역에 대해서만 렌더링을 수행하여 캡처 이미지를 생성할 수 있다.In this case, only a part of the application result screen may be rendered to generate a captured image. For example, in a general rendering operation, the entire portion of the application result screen may be rendered, and an operation of comparing the differences between the regions may be performed to detect a portion to be captured. However, since the resources of the cloud streaming server 610 are consumed by performing these various processes, it may be difficult to simultaneously process more service requests. Therefore, the capture image may be generated by rendering only a portion of the entire application result screen including the captured image.
인코딩부(760)는 스틸 이미지 압축 기법을 이용하여 캡처 이미지를 스틸 이미지 인코딩한다.The encoder 760 encodes the captured image by using a still image compression technique.
이 때, PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응하는 스틸 이미지 압축 기법을 이용하여 캡처 이미지를 스틸 이미지 인코딩할 수 있다.At this time, the captured image may be still image encoded using a still image compression technique corresponding to any one of portable network graphics (PNG), palletized portable network graphics (PNG), and joint photography experts group (JPEG).
PNG 스틸 이미지 압축 기법은 인코딩 시 이미지의 화질은 좋으나 데이터의 크기가 커져서 전송 망의 대역폭이 낮은 경우에는 전송 속도가 저하될 수 있다. In PNG still image compression, the image quality is good when encoding, but when the bandwidth of the transmission network is low due to the large data size, the transmission speed may be reduced.
팔렛티드 PNG 스틸 이미지 압축 기법은 인코딩 시 이미지의 데이터 크기가 줄어들어 전송 속도는 보장할 수 있지만, 8비트로 색상을 표현하기 때문에 이미지 화질에 열화를 가져올 수 있다. Palletized PNG still image compression reduces the data size of the image during encoding, which guarantees transmission speed, but degrades image quality due to the 8-bit color representation.
JPEG 스틸 이미지 압축 기법은 압축 효율이 좋아서 인코딩 시 전송 데이터 량을 대폭 줄일 수 있으나, 압축 효율이 큰 만큼 인코딩 및 디코딩을 수행할 때 시스템 부하를 많이 발생시킬 수 있다.The JPEG still image compression technique has a high compression efficiency and can greatly reduce the amount of data transmitted during encoding. However, the high compression efficiency can cause a large system load when encoding and decoding.
센딩부(770)는 사용자 단말에서 어플리케이션 결과 화면을 생성할 수 있도록 스틸 이미지 인코딩된 캡처 이미지 및 제1 코드를 변환하여 애니메이션 정보를 포함하도록 생성한 제2 코드를 사용자 단말로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다. 예를 들어, 클라우드 스트리밍 서버(610)에서 어플리케이션 결과 화면을 완벽하게 생성하여 스트리밍 할 수도 있지만, 상기와 같은 방법으로 사용자 단말에서 어플리케이션 결과 화면을 생성하도록 전송함으로써 클라우드 스트리밍 서버(610)에서 발생하는 부하를 현저하게 감소시킬 수 있다. 이와 같이 클라우드 스트리밍 서버(610)의 부하가 감소되면 클라우드 스트리밍 서버(610)에서 동시에 처리할 수 있는 서비스의 수가 늘어나므로 보다 많은 사용자들이 동시에 서비스를 제공받을 수 있는 효과가 있다.The sending unit 770 converts a still image encoded capture image and a first code to generate an application result screen in the user terminal, and transmits a second code generated to include animation information to the user terminal to generate an application result screen. Perform cloud streaming service. For example, the cloud streaming server 610 may completely generate and stream the application result screen, but the load generated by the cloud streaming server 610 by transmitting the user terminal to generate the application result screen in the same manner as described above. Can be significantly reduced. As such, when the load of the cloud streaming server 610 is reduced, the number of services that can be simultaneously processed by the cloud streaming server 610 increases, so that more users can be provided with the service at the same time.
도 8은 본 발명의 일실시예에 따른 스틸 이미지 기반의 클라우드 스트리밍 서비스 수행을 나타낸 도면이다.8 is a diagram illustrating performing a still image-based cloud streaming service according to an embodiment of the present invention.
도 8을 참조하면, 본 발명의 일실시예에 따른 스틸 이미지 기반의 클라우드 스트리밍 서비스 수행 과정은 크게 클라우드 스트리밍 서버(800)와 사용자 단말 (805)에서 수행되는 과정으로 분류하여 설명할 수 있다.Referring to FIG. 8, a process of performing a still image-based cloud streaming service according to an embodiment of the present disclosure may be classified into a process performed by the cloud streaming server 800 and the user terminal 805.
클라우드 스트리밍 서버(800)는 어플리케이션 서버에서 사용자 요청에 따라 생성한 어플리케이션 결과 화면(810)에 상응하는 어플리케이션 코드 수신(820)을 수행할 수 있다. 이 때, 어플리케이션 코드는 제1 코드로서, 이미지 영역 속성 정보와 애니메이션 코드 등을 포함할 수 있다. The cloud streaming server 800 may perform an application code reception 820 corresponding to the application result screen 810 generated according to a user request from the application server. In this case, the application code may include image area attribute information, animation code, and the like as the first code.
이 후, 어플리케이션 코드에 포함된 이미지 영역 속성 정보를 이용하여 캡처 이미지를 생성하고, 생성한 캡처 이미지를 인코딩(830)할 수 있다. 이 때, 캡처 이미지는 이미지 영역 속성 정보에 포함된 이미지의 타입에 따라 바로 리딩하여 획득하거나, 이미지 영역 속성 정보를 이용한 최소 렌더링을 수행하여 획득할 수 있다. 예를 들어, PNG타입의 이미지와 같은 경우 바로 리딩하여 인코딩을 수행할 수 있다.Thereafter, the captured image may be generated using the image region attribute information included in the application code, and the generated captured image may be encoded 830. In this case, the captured image may be acquired by reading immediately according to the type of the image included in the image region attribute information or by performing minimal rendering using the image region attribute information. For example, in the case of an image of PNG type, encoding may be performed by reading immediately.
또한, 어플리케이션 코드에 포함된 이미지 영역 속성 정보 및 어플리케이션 코드를 각각 이용하여 캡처 이미지 정보 및 애니메이션 정보를 생성할 수 있다. In addition, the capture image information and the animation information may be generated using the image region attribute information and the application code included in the application code, respectively.
이 후, 어플리케이션 코드를 변환하여 캡처 이미지 정보와 애니메이션 정보를 포함하는 변환코드 생성(840)을 수행할 수 있다. 이 때, 변환코드는 제2 코드로서, 애니메이션 코드가 아닌 애니메이션의 정보를 포함할 수 있다.Thereafter, the application code may be converted to generate a conversion code 840 including captured image information and animation information. In this case, the conversion code is a second code and may include information of an animation rather than an animation code.
클라우드 스트리밍 서버(800)는 인코딩(830)된 캡처 이미지와 변환코드인 제2 코드를 함께 사용자 단말(805)로 센딩(850)할 수 있다. 이 때, 하나의 메시지에 캡처 이미지와 변환코드를 포함하여 전송하거나, 캡처 이미지와 변환코드 각각에 대한 메시지를 생성하여 전송할 수도 있다.The cloud streaming server 800 may send the encoded capture image 830 and the second code, which is a conversion code, to the user terminal 805 together 850. In this case, the capture image and the conversion code may be included in one message and transmitted, or the message for each capture image and the conversion code may be generated and transmitted.
사용자 단말(805)에서는 클라우드 스트리밍 서버(800)로부터 수신된 캡처 이미지와 변환코드를 이용하여 어플리케이션 결과 화면을 생성할 수 있다. 즉, 변환코드에 포함된 애니메이션 정보 및 캡처 이미지 정보에 기반하여 캡처 이미지에 애니메이션을 적용(860)할 수 있다. 이 때, 애니메이션 정보에는 애니메이션 타입, 애니메이션 적용 시간, 애니메이션 반복 횟수, 시작 좌표, 종료 좌표, 시작 사이즈 및 종료 사이즈와 같은 정보가 포함되어 있으므로, 캡처 이미지에 애니메이션을 정확하고 수월하게 적용하여 어플리케이션 결과 화면을 생성할 수 있다.The user terminal 805 may generate an application result screen using the captured image and the conversion code received from the cloud streaming server 800. That is, the animation may be applied to the captured image based on the animation information and the captured image information included in the conversion code (860). At this time, the animation information includes information such as animation type, animation application time, animation repetition count, start coordinates, end coordinates, start size and end size, so that the animation results can be applied to the captured image accurately and easily. Can be generated.
사용자 단말(805)에서는 이와 같이 생성된 어플리케이션 결과 화면을 이미지 렌더링(870)하여 사용자에게 출력할 수 있다. The user terminal 805 may render an image of the application result screen generated in this way and output the image to the user.
도 9는 본 발명의 일실시예에 따른 제1 코드 및 제2 코드를 나타낸 도면이다.9 illustrates a first code and a second code according to an embodiment of the present invention.
도 9를 참조하면, 본 발명의 일실시예에 따른 제1 코드(910)는 이미지 영역 속성 정보(911) 및 애니메이션 코드(912)를 포함하고, 제2 코드(920)는 캡처 이미지 정보(921) 및 애니메이션 정보(922)를 포함한다.9, a first code 910 according to an embodiment of the present invention includes image region property information 911 and an animation code 912, and a second code 920 includes captured image information 921. ) And animation information 922.
제1 코드(910)는 웹 어플리케이션 서버로부터 수신된 어플리케이션 결과 화면에 상응하는 어플리케이션 코드일 수 있다. 따라서, 이미지 영역 속성 정보(911)는 어플리케이션 결과 화면에서 애니메이션이 적용된 부분에 대한 정보일 수 있으며, 애니메이션 코드(912)는 이미지 영역 속성 정보(911)에 해당하는 부분에 적용된 애니메이션 효과에 대한 코드일 수 있다.The first code 910 may be an application code corresponding to the application result screen received from the web application server. Accordingly, the image region property information 911 may be information about an animated portion of the application result screen, and the animation code 912 is a code for animation effect applied to the portion corresponding to the image region property information 911. Can be.
제2 코드(920)는 이미지 영역 속성 정보(911)를 이용하여 생성된 캡처 이미지 정보(921)와 애니메이션 코드(912)를 이용하여 생성된 애니메이션 정보(922)를 포함할 수 있다. 따라서, 제2 코드(920)를 사용자 단말로 전송하여 사용자 단말에서 제1 코드(910)에 상응하는 어플리케이션 결과 화면을 생성할 수 있도록 할 수 있다.The second code 920 may include captured image information 921 generated using the image region property information 911 and animation information 922 generated using the animation code 912. Accordingly, the second code 920 may be transmitted to the user terminal so that the user terminal may generate an application result screen corresponding to the first code 910.
도 10은 본 발명의 일실시예에 따른 코드 변환을 나타낸 도면이다.10 is a diagram illustrating code conversion according to an embodiment of the present invention.
도 10을 참조하면, 제1 코드(1010)를 제2 코드(1020)의 형태로 변환하는 것을 알 수 있다.Referring to FIG. 10, it can be seen that the first code 1010 is converted into the form of the second code 1020.
이 때, 제1 코드(1010)는 애니메이션 용도로 사용되고 있는 jQuery 등의 라이브러리를 활용하여 작성된 것으로, 제1 코드(1010)의 1번째 및 2번째 줄에 기재된 캡처할 영역의 속성과 4번째 및 5번째 줄에 기재된 애니메이션 코드를 포함하고 있다. 즉, 제1 코드(1010)를 해석하면 'img1.png'에 SlideUp 애니메이션을 적용하라는 내용일 수 있다. 이와 같은 내용을 이용하여 캡처 이미지 정보와 애니메이션 정보가 포함되도록 제1 코드(1010)를 제2 코드(1020)로 변환할 수 있다.In this case, the first code 1010 is written using a library such as jQuery that is used for animation, and the attributes of the area to be captured described in the first and second lines of the first code 1010, and the fourth and fifth. It contains the animation code listed in the first line. That is, when the first code 1010 is interpreted, it may refer to applying a SlideUp animation to 'img1.png'. Using the above information, the first code 1010 may be converted into the second code 1020 to include captured image information and animation information.
예를 들어, 제2 코드(1020)의 7번째 내지 9번째 줄에 포함된 내용을 확인해보면, 애니메이션 타입은 'SlideUp', 적용 시간은 '8000', 반복 횟수는 '0', 시작 좌표는 '332,800', 시작 사이즈는 '551, 191', 종료 좌표는 '332, 0', 종료 사이즈는 '551, 191'인 것을 알 수 있다. 이와 같이 캡처 이미지에 대한 좌표 정보와 애니메이션에 대한 타입, 적용 시간 및 반복 횟수와 같은 정보를 포함함으로써 사용자 단말에서 애니메이션을 포함하는 어플리케이션 결과 화면을 생성할 때 제2 코드(1020)를 이용하여 생성할 수 있도록 코드를 변환할 수 있다.For example, if the contents included in the seventh through ninth lines of the second code 1020 are checked, the animation type is' SlideUp ', the application time is' 8000', the number of repetitions is' 0 ', and the start coordinate is' 332,800 ', the start size is' 551, 191', the end coordinate is' 332, 0 ', the end size is' 551, 191'. As such, by including the coordinate information of the captured image and information such as the type, the application time, and the number of repetitions of the animation, the second terminal 1010 may be generated when the application result screen including the animation is generated in the user terminal. You can convert the code so that
이 때, 제2 코드(1020)와 함께 사용자 단말로 전달할 캡처 이미지는 제1 코드(1010)에서 바로 추출할 수 있다. 예를 들어, 제1 코드(1010)에서 'img1.png'를 추출하여 캡처 이미지로 저장하고, 생성된 제2 코드(1020)와 함께 캡처 이미지를 사용자 단말로 전달할 수 있다.In this case, the captured image to be delivered to the user terminal together with the second code 1020 may be directly extracted from the first code 1010. For example, 'img1.png' may be extracted from the first code 1010 and stored as a captured image, and the captured image may be delivered to the user terminal together with the generated second code 1020.
도 11은 본 발명의 다른 실시예에 따른 코드 변환을 나타낸 도면이다.11 is a diagram illustrating code conversion according to another embodiment of the present invention.
도 11을 참조하면, 제1 코드(1110)는 img1.png, img2.png가 포함된 test_1의 코드 영역, img3.png, img4.png가 포함된 test_2의 코드 영역 및 img5.png, img6.png가 포함된 test_3의 코드 영역으로 구성되어 있고, 제1 코드(1110)의 23번째 및 24번째 줄과 같이 test_1의 코드 영역에 fadeout에 해당하는 애니메이션을 적용하고 있는 것을 알 수 있다.Referring to FIG. 11, the first code 1110 may include a code area of test_1 including img1.png and img2.png, a code area of test_2 including img3.png and img4.png, and img5.png and img6.png. It can be seen that it is composed of a code region of test_3 that includes, and the animation corresponding to fadeout is applied to the code region of test_1 as in the 23rd and 24th lines of the first code 1110.
이와 같은 제1 코드(1110)를 제2 코드(1120)로 변환할 때에는 캡처 이미지에 해당하는 img1.png와 img2.png를 포함하는 test_1 코드 영역만을 이용하여 제2 코드(1120)와 같이 생성할 수 있다.When the first code 1110 is converted to the second code 1120, the first code 1110 may be generated as the second code 1120 using only the test_1 code area including img1.png and img2.png corresponding to the captured image. Can be.
이 때, 'div id="test_1"'만을 바로 이미지로 만들어서 캡처 이미지를 생성할 수 있다. 이와 같이 바로 캡처 이미지를 생성함으로써, 어플리케이션 결과 화면을 캡처하는 과정이나 다른 영역과 캡처된 화면을 비교하여 연산하는 과정을 생략할 수 있으므로 클라우드 스트리밍 서버의 리소스를 절약할 수 있다.At this time, only the 'div id = "test_1"' can be directly made an image to generate a captured image. By generating the captured image in this way, it is possible to skip the process of capturing the application result screen or comparing the captured screen with other regions, thereby saving resources of the cloud streaming server.
이 때, 제2 코드(1120)와 함께 사용자 단말로 전달할 캡처 이미지는 제1 코드(1110)의 부분 코드를 렌더링한 결과를 이미지로 저장해서 획득할 수 있다. 예를 들어, 제1 코드(1110)에서는 5번째 줄부터 8번째 줄까지를 렌더링하여 'img1.png' 및 'img2.png'에 상응하는 캡처 이미지를 획득할 수 있고, 획득한 캡처 이미지를 제2 코드(1120)와 함께 사용자 단말로 전달할 수 있다.In this case, the captured image to be transmitted to the user terminal together with the second code 1120 may be obtained by storing a result of rendering the partial code of the first code 1110 as an image. For example, the first code 1110 may render lines 5 through 8 to obtain capture images corresponding to 'img1.png' and 'img2.png', and obtain the captured images. 2 codes 1120 together with the user terminal can be delivered.
도 12는 본 발명의 일실시예에 따른 어플리케이션 코드를 이용한 이미지 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.12 is a flowchart illustrating an image cloud streaming service method using an application code according to an embodiment of the present invention.
도 12를 참조하면, 본 발명의 일실시예에 따른 어플리케이션 코드를 이용한 이미지 클라우드 스트리밍 서비스 방법은 웹 어플리케이션 서버로부터 어플리케이션 결과 화면에 상응하는 제1 코드를 수신한다(S1210). 이와 같은 제1 코드에는 어플리케이션을 실행할 때 적용된 애니메이션 효과에 대한 애니메이션 정보 및 애니메이션 효과가 적용된 이미지들에 대한 이미지 영역 속성 정보 등을 포함할 수 있다. 또한, 웹 어플리케이션 개발자들이 기존에 사용하던 방식으로 작성되어 있을 수 있다. 예를 들어, 제1 코드는 애니메이션 용도로 널리 사용되고 있는 jQuery 등의 라이브러리를 활용하여 작성될 수 있다.Referring to FIG. 12, the image cloud streaming service method using an application code according to an embodiment of the present invention receives a first code corresponding to an application result screen from a web application server (S1210). The first code may include animation information about animation effects applied when an application is executed and image region property information on images to which animation effects are applied. It can also be written in the same way that web application developers used. For example, the first code may be written using a library such as jQuery that is widely used for animation.
또한, 본 발명의 일실시예에 따른 어플리케이션 코드를 이용한 이미지 클라우드 스트리밍 서비스 방법은 제1 코드에 포함된 이미지 영역 속성 정보를 이용하여 캡처 이미지를 생성한다(S1220). 이 때, 이미지 영역 속성 정보에 상응하는 이미지를 캡처하는 과정을 수행하지 않고 바로 리딩하여 획득할 수 있다. 예를 들어, 어플리케이션 결과 화면을 렌더링하고, 렌더링된 화면들 중 이미지 영역 속성 정보에 상응하는 부분을 캡처하는 경우에는 렌더링이나 캡처를 수행하기 위해 서버의 리소스를 사용하게 되므로 비효율적일 수 있다. 따라서, 이미지 영역 속성 정보에 상응하는 이미지를 웹 어플리케이션 서버로부터 수신된 정보들 중에서 리딩하여 생성할 수 있다.In addition, the image cloud streaming service method using the application code according to an embodiment of the present invention generates a captured image using the image region attribute information included in the first code (S1220). In this case, the reading may be directly performed without performing a process of capturing an image corresponding to the image region attribute information. For example, when rendering an application result screen and capturing a portion corresponding to the image area attribute information among the rendered screens, it may be inefficient because the resources of the server are used to perform rendering or capturing. Therefore, an image corresponding to the image region attribute information may be read and generated among the information received from the web application server.
이 때, 제1 코드에 포함된 이미지 영역 속성 정보에 상응하는 입력 정보에 대해 렌더링을 수행하여 캡처 이미지를 생성할 수 있다. 예를 들어, 이미지 영역 속성 정보를 이용하여 제1 코드 중 캡처 이미지에 해당하는 부분만을 렌더링하여 캡처 이미지를 생성할 수 있다. In this case, the capture image may be generated by rendering the input information corresponding to the image region attribute information included in the first code. For example, the captured image may be generated by rendering only a portion of the first code corresponding to the captured image using the image region attribute information.
이 때, 어플리케이션 결과 화면 중 일부에 대해서만 렌더링을 수행하여 캡처 이미지를 생성할 수 있다. 예를 들어, 일반적인 렌더링 수행의 경우에는 어플리케이션 결과 화면의 전체를 렌더링하고, 각 영역들의 차이점을 비교하는 연산과정을 수행하여 캡처할 부분을 검출할 수 있다. 그러나 이와 같은 여러가지 과정을 수행함으로써 클라우드 스트리밍 서버의 리소스가 소비되므로, 보다 많은 서비스 요청을 동시에 처리하는데 어려움이 발생할 수 있다. 따라서, 전체 어플리케이션 결과 화면 중 캡처 이미지가 포함된 일부 영역에 대해서만 렌더링을 수행하여 캡처 이미지를 생성할 수 있다.In this case, only a part of the application result screen may be rendered to generate a captured image. For example, in a general rendering operation, the entire portion of the application result screen may be rendered, and an operation of comparing the differences between the regions may be performed to detect a portion to be captured. However, since the resources of the cloud streaming server are consumed by performing these various processes, it may be difficult to process more service requests at the same time. Therefore, the capture image may be generated by rendering only a portion of the entire application result screen including the captured image.
또한, 본 발명의 일실시예에 따른 어플리케이션 코드를 이용한 이미지 클라우드 스트리밍 서비스 방법은 스틸 이미지 압축 기법을 이용하여 캡처 이미지를 스틸 이미지 인코딩한다(S1230).In addition, the image cloud streaming service method using the application code according to an embodiment of the present invention encodes the captured image still image using a still image compression technique (S1230).
이 때, PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응하는 스틸 이미지 압축 기법을 이용하여 캡처 이미지를 스틸 이미지 인코딩할 수 있다.At this time, the captured image may be still image encoded using a still image compression technique corresponding to any one of portable network graphics (PNG), palletized portable network graphics (PNG), and joint photography experts group (JPEG).
PNG 스틸 이미지 압축 기법은 인코딩 시 이미지의 화질은 좋으나 데이터의 크기가 커져서 전송 망의 대역폭이 낮은 경우에는 전송 속도가 저하될 수 있다. In PNG still image compression, the image quality is good when encoding, but when the bandwidth of the transmission network is low due to the large data size, the transmission speed may be reduced.
팔렛티드 PNG 스틸 이미지 압축 기법은 인코딩 시 이미지의 데이터 크기가 줄어들어 전송 속도는 보장할 수 있지만, 8비트로 색상을 표현하기 때문에 이미지 화질에 열화를 가져올 수 있다. Palletized PNG still image compression reduces the data size of the image during encoding, which guarantees transmission speed, but degrades image quality due to the 8-bit color representation.
JPEG 스틸 이미지 압축 기법은 압축 효율이 좋아서 인코딩 시 전송 데이터 량을 대폭 줄일 수 있으나, 압축 효율이 큰 만큼 인코딩 및 디코딩을 수행할 때 시스템 부하를 많이 발생시킬 수 있다.The JPEG still image compression technique has a high compression efficiency and can greatly reduce the amount of data transmitted during encoding. However, the high compression efficiency can cause a large system load when encoding and decoding.
또한, 본 발명의 일실시예에 따른 어플리케이션 코드를 이용한 이미지 클라우드 스트리밍 서비스 방법은 사용자 단말에서 어플리케이션 결과 화면을 생성할 수 있도록 스틸 이미지 인코딩된 캡처 이미지 및 제1 코드를 변환하여 애니메이션 정보를 포함하도록 생성한 제2 코드를 사용자 단말로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다(S1240). 예를 들어, 클라우드 스트리밍 서버에서 어플리케이션 결과 화면을 완벽하게 생성하여 스트리밍 할 수도 있지만, 상기와 같은 방법으로 사용자 단말에서 어플리케이션 결과 화면을 생성하도록 전송함으로써 클라우드 스트리밍 서버에서 발생하는 부하를 현저하게 감소시킬 수 있다. 이와 같이 클라우드 스트리밍 서버의 부하가 감소되면 클라우드 스트리밍 서버에서 동시에 처리할 수 있는 서비스의 수가 늘어나므로 보다 많은 사용자들이 동시에 서비스를 제공받을 수 있는 효과가 있다.In addition, the image cloud streaming service method using the application code according to an embodiment of the present invention is generated to include the animation information by converting the still image-encoded capture image and the first code to generate the application result screen in the user terminal The second code is transmitted to the user terminal to perform a cloud streaming service based on a still image (S1240). For example, a cloud streaming server can completely generate and stream an application result screen, but the load generated by the cloud streaming server can be significantly reduced by transmitting the application result screen to the user terminal in the same manner as described above. have. As the load of the cloud streaming server is reduced in this way, the number of services that can be simultaneously processed by the cloud streaming server increases, so that more users can be provided with the service at the same time.
이 때, 제2 코드는 애니메이션 타입, 애니메이션 적용 시간, 애니메이션 반복 횟수, 시작 좌표, 종료 좌표, 시작 사이즈 및 종료 사이즈 중 적어도 하나 이상에 상응하는 애니메이션 정보를 포함할 수 있다. 예를 들어, 제2 코드 상에서 애니메이션 타입은 'effect type', 애니메이션 적용 시간은 'duration', 애니메이션 반복 횟수는 'isRepeat', 시작 좌표는 'start X, start Y', 종료 좌표는 'end X, end Y', 시작 사이즈는 'start W, start H' 및 종료 사이즈는 'end W, end H'로 표시될 수 있다.In this case, the second code may include animation information corresponding to at least one or more of an animation type, an animation application time, an animation repetition number, a start coordinate, an end coordinate, a start size, and an end size. For example, in the second code, the animation type is' effect type ', the animation application time is' duration', the animation repetition number is' isRepeat ', the start coordinate is' start X, start Y', the end coordinate is' end X, end Y ', the start size may be indicated as' start W, start H' and the end size as' end W, end H '.
이 때, 제2 코드는 애니메이션 코드를 포함하지 않을 수 있다.At this time, the second code may not include the animation code.
또한, 도 12에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 어플리케이션 코드를 이용한 이미지 클라우드 스트리밍 서비스 방법은 제1 코드에 포함된 이미지 영역 속성 정보를 이용하여 캡처 이미지 정보를 생성한다. 예를 들어, 이미지 영역 속성 정보는 캡처될 이미지에 대한 좌표 정보들일 수 있다.In addition, although not shown in FIG. 12, the image cloud streaming service method using an application code according to an embodiment of the present invention generates capture image information by using image region attribute information included in the first code. For example, the image area attribute information may be coordinate information for the image to be captured.
또한, 도 12에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 어플리케이션 코드를 이용한 이미지 클라우드 스트리밍 서비스 방법은 제1 코드에 포함된 애니메이션 코드를 이용하여 애니메이션 정보를 생성한다. 제2 코드에 포함된 애니메이션 코드는 애니메이션을 실행시키기 위한 코드로써, 해당 코드를 실행시키는 경우 불필요한 캡처를 수행해야 하는 경우가 발생할 수 있다. 따라서, 애니메이션 코드의 내용을 확인하고, 추출할 수 있는 정보를 이용하여 애니메이션 정보를 생성할 수 있다.In addition, although not shown in Figure 12, the image cloud streaming service method using the application code according to an embodiment of the present invention generates animation information using the animation code included in the first code. The animation code included in the second code is a code for executing an animation. When executing the corresponding code, an unnecessary capture may occur. Therefore, the animation information can be generated using the information that can be checked and extracted from the content of the animation code.
또한, 도 12에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 어플리케이션 코드를 이용한 이미지 클라우드 스트리밍 서비스 방법은 제1 코드를, 캡처 이미지 정보 및 애니메이션 정보를 포함하는 제2 코드로 변환한다. 따라서, 제2 코드를 확인하면 캡처 영역에 대한 정보 및 애니메이션에 대한 상세한 정보를 파악할 수 있다.In addition, although not shown in FIG. 12, the image cloud streaming service method using the application code according to an embodiment of the present invention converts the first code into a second code including captured image information and animation information. Therefore, when the second code is checked, detailed information on the capture region and animation may be obtained.
도 13은 본 발명의 일실시예에 따른 코드 변환과정을 나타낸 동작 흐름도이다.13 is a flowchart illustrating a code conversion process according to an embodiment of the present invention.
도 13을 참조하면, 본 발명의 일실시예에 따른 코드 변환과정은 웹 어플리케이션 서버로부터 수신한 제1 코드에 포함된 이미지 영역 속성 정보를 이용하여 캡처 이미지 정보를 생성한다(S1310).Referring to FIG. 13, in the code conversion process according to an embodiment of the present invention, capture image information is generated using image region attribute information included in a first code received from a web application server (S1310).
이 때, 제1 코드는 어플리케이션을 실행할 때 적용된 애니메이션 효과에 대한 애니메이션 코드 및 애니메이션 효과가 적용된 이미지들에 대한 이미지 영역 속성 정보 등을 포함할 수 있다. 또한, 제1 코드는 웹 어플리케이션 개발자들이 기존에 사용하던 방식으로 작성되어 있을 수 있다. 예를 들어, 제1 코드는 애니메이션 용도로 널리 사용되고 있는 jQuery 등의 라이브러리를 활용하여 작성될 수 있다.In this case, the first code may include an animation code for the animation effect applied when the application is executed and image region property information for the images to which the animation effect is applied. In addition, the first code may be written in a manner conventionally used by web application developers. For example, the first code may be written using a library such as jQuery that is widely used for animation.
또한, 본 발명의 일실시예에 따른 코드 변환과정은 제1 코드에 포함된 애니메이션 코드를 이용하여 애니메이션 정보를 생성한다(S1320). 이 때, 제1 코드에 포함된 애니메이션 코드는 애니메이션을 실행시키기 위한 코드로써, 해당 코드를 실행시키는 경우 불필요한 캡처를 수행해야 하는 경우가 발생할 수 있다. 따라서, 애니메이션 코드의 내용을 이용하여 사용자 단말로 전송하기 위한 애니메이션 정보를 생성할 수 있다.In addition, the code conversion process according to an embodiment of the present invention generates animation information using the animation code included in the first code (S1320). In this case, the animation code included in the first code is a code for executing an animation, and when executing the corresponding code, an unnecessary capture may occur. Therefore, animation information for transmission to the user terminal can be generated using the content of the animation code.
또한, 본 발명의 일실시예에 따른 코드 변환과정은 제1 코드를, 캡처 이미지 정보 및 애니메이션 정보를 포함하는 제2 코드로 변환한다(S1330). 따라서, 사용자 단말에서 제2 코드를 이용하여 캡처 이미지에 애니메이션을 적용한 어플리케이션 화면을 생성할 수 있다.In addition, the code conversion process according to an embodiment of the present invention converts the first code into a second code including captured image information and animation information (S1330). Therefore, the user terminal may generate an application screen to which the captured image is animated using the second code.
이 때, 제2 코드는 애니메이션 타입, 애니메이션 적용 시간, 애니메이션 반복 횟수, 시작 좌표, 종료 좌표, 시작 사이즈 및 종료 사이즈 중 적어도 하나 이상에 상응하는 애니메이션 정보를 포함할 수 있다. 예를 들어, 애니메이션 타입은 'effect type', 애니메이션 적용 시간은 'duration', 애니메이션 반복 횟수는 'isRepeat', 시작 좌표는 'start X, start Y', 종료 좌표는 'end X, end Y', 시작 사이즈는 'start W, start H' 및 종료 사이즈는 'end W, end H'와 같은 식별자로 기재되어 각각의 식별자에 값을 할당하여 애니메이션 정보를 나타낼 수 있다. 또한, 제2 코드는 애니메이션 코드를 포함하지 않을 수 있다.In this case, the second code may include animation information corresponding to at least one or more of an animation type, an animation application time, an animation repetition number, a start coordinate, an end coordinate, a start size, and an end size. For example, the animation type is 'effect type', the animation duration is 'duration', the animation repeat count is 'isRepeat', the start coordinate is 'start X, start Y', the end coordinate is 'end X, end Y', The start size may be described as an identifier such as 'start W, start H' and an end size such as 'end W and end H' to indicate animation information by assigning a value to each identifier. Also, the second code may not include the animation code.
본 발명에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 모든 형태의 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The cloud streaming service method for saving system resources according to the present invention may be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and any type of hardware device specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter as well as machine code such as produced by a compiler. Such hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
이상에서와 같이 본 발명에 따른 클라우드 스트리밍 서비스 시스템, 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, the cloud streaming service system according to the present invention, the cloud streaming service method for saving system resources, and the apparatus therefor are not limited to the configuration and method of the embodiments described as described above. The embodiments may be configured by selectively combining all or part of the embodiments so that various modifications can be made.
본 발명에 의하면 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처하고, 실행 화면 중 키 프레임을 추출하고, 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 실행 화면 중 키 프레임을 제외한 나머지 프레임들 및 키 프레임 중 하나 이상에 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 실행 화면을 스틸 이미지 인코딩하고, 스틸 이미지 인코딩된 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수 있다. 나아가, 키 프레임의 서브 프레임에 대해서 스틸 이미지 압축 정보를 생성하기 위한 시스템 자원을 절약함으로써, 클라우드 스트리밍 서버에서는 더 많은 사용자들에게 동시에 서비스를 제공할 수 있다.According to the present invention, the execution screen of an application executed for the cloud streaming service is captured, a key frame is extracted from the execution screen, still image compression information corresponding to the key frame is generated, and the remaining frames except the key frame among the execution screens. A still image based cloud by applying a still image compression technique based on still image compression information to one or more of the field and key frame, and transmitting the still image encoded execution screen to a user's terminal device. Streaming service can be performed. Furthermore, by saving system resources for generating still image compression information for subframes of a key frame, the cloud streaming server can provide services to more users at the same time.
또한, 본 발명에 의하면 웹 어플리케이션 서버로부터 어플리케이션 결과 화면에 상응하는 제1 코드를 수신하고, 제1 코드에 포함된 이미지 영역 속성 정보를 이용하여 캡처 이미지를 생성하고, 스틸 이미지 압축 기법을 이용하여 캡처 이미지를 인코딩하고, 사용자 단말에서 어플리케이션 결과 화면을 생성할 수 있도록 스틸 이미지 인코딩된 캡처 이미지 및 제1 코드를 변환하여 애니메이션 정보를 포함하도록 생성한 제2 코드를 사용자 단말로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수 있다. 나아가, 웹 어플리케이션 개발자들이 새로운 형식의 코드가 아닌 기존의 방식대로 원하는 형식의 어플리케이션 코드를 작성하여도 애니메이션 효과 적용을 사용자 단말에서 수행하기 위한 클라우드 스트리밍 서비스를 제공할 수 있으므로 서비스 제공자의 편의를 도울 수 있다.Also, according to the present invention, a first code corresponding to an application result screen is received from a web application server, a captured image is generated using image region attribute information included in the first code, and captured using a still image compression technique. The still image-based cloud by encoding the image and converting the still image-encoded captured image and the first code to generate the application result screen on the user terminal, and transmitting the generated second code to include the animation information to the user terminal. Streaming service can be performed. Furthermore, even if web application developers write application code of a desired type in a conventional manner rather than a new type of code, a cloud streaming service for applying an animation effect to a user terminal may provide a convenience of a service provider. have.

Claims (20)

  1. 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처하는 캡처부;A capture unit that captures an execution screen of an application executed for a cloud streaming service;
    상기 실행 화면 중 키 프레임을 추출하는 키 프레임 추출부;A key frame extracting unit extracting a key frame of the execution screen;
    상기 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 상기 실행 화면 중 상기 키 프레임을 제외한 나머지 프레임들 및 상기 키 프레임 중 하나 이상에 상기 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 상기 실행 화면을 스틸 이미지 인코딩하는 인코딩부; 및Generating still image compression information corresponding to the key frame, and applying a still image compression technique based on the still image compression information to one or more of the remaining frames other than the key frame and the key frame among the execution screens An encoding unit for encoding a still image of the execution screen; And
    스틸 이미지 인코딩된 상기 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 센딩부 Sending unit for transmitting the still image encoded execution screen to the user's terminal device to perform a still image-based cloud streaming service
    를 포함하는 것을 특징으로 하는 클라우드 스트리밍 서버.Cloud streaming server comprising a.
  2. 청구항 1에 있어서,The method according to claim 1,
    상기 인코딩부는The encoding unit
    상기 나머지 프레임들 중 상기 키 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 미만인 서브 프레임을 추출하고, 상기 서브 프레임을 상기 스틸 이미지 압축 기법을 이용하여 압축하는 것을 특징으로 하는 클라우드 스트리밍 서버.And extracting a subframe having a change value of a frame less than a predetermined reference value among the remaining frames, and compressing the subframe using the still image compression technique.
  3. 청구항 2에 있어서,The method according to claim 2,
    상기 키 프레임은The key frame is
    상기 실행 화면 중 이전 프레임과 비교하여 상기 프레임의 변화값이 상기 기설정된 기준값 이상인 프레임인 것을 특징으로 하는 클라우드 스트리밍 서버.Cloud streaming server, characterized in that the change value of the frame compared to the previous frame of the execution screen is a frame of more than the predetermined reference value.
  4. 청구항 3에 있어서,The method according to claim 3,
    상기 스틸 이미지 압축 정보는The still image compression information is
    팔렛트, 컬러 치환 테이블 및 최적 필터 중 하나 이상을 포함하는 것을 특징으로 하는 클라우드 스트리밍 서버.A cloud streaming server comprising at least one of a palette, a color substitution table and an optimal filter.
  5. 청구항 4에 있어서,The method according to claim 4,
    상기 인코딩부는The encoding unit
    상기 키 프레임의 다음 키 프레임이 나타날 때까지 상기 서브 프레임을 상기 스틸 이미지 압축 정보를 기반으로 하는 상기 스틸 이미지 압축 기법을 이용하여 압축하는 것을 특징으로 하는 클라우드 스트리밍 서버.And compressing the subframe by using the still image compression technique based on the still image compression information until the next key frame of the key frame appears.
  6. 청구항 5에 있어서,The method according to claim 5,
    상기 인코딩부는The encoding unit
    상기 키 프레임과 상기 스틸 이미지 압축 정보를 연동하여 데이터베이스에 저장하는 것을 특징으로 하는 클라우드 스트리밍 서버.And storing the key frame and the still image compression information in a database.
  7. 청구항 3에 있어서,The method according to claim 3,
    상기 키 프레임 추출부는The key frame extracting unit
    상기 실행 화면의 픽셀값 변화를 고려하여 상기 프레임의 변화값을 산출하는 것을 특징으로 하는 클라우드 스트리밍 서버.And a change value of the frame in consideration of the change in the pixel value of the execution screen.
  8. 청구항 7에 있어서,The method according to claim 7,
    상기 키 프레임 추출부는The key frame extracting unit
    상기 어플리케이션의 입력 신호 및 추가 컬러의 개수 중 하나 이상을 고려하여 상기 키 프레임을 추출하는 것을 특징으로 하는 클라우드 스트리밍 서버.And extracting the key frame in consideration of at least one of the input signal of the application and the number of additional colors.
  9. 청구항 1에 있어서,The method according to claim 1,
    상기 인코딩부는The encoding unit
    상기 스틸 이미지 압축 정보를 이용한 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법을 이용하여 상기 실행 화면을 스틸 이미지 인코딩하는 것을 특징으로 하는 클라우드 스트리밍 서버.And a still image encoding the execution screen using a paletted portable network graphics (PNG) still image compression technique using the still image compression information.
  10. 웹 어플리케이션 서버로부터 어플리케이션 결과 화면에 상응하는 제1 코드를 수신하는 코드 수신부;A code receiving unit which receives a first code corresponding to an application result screen from a web application server;
    상기 제1 코드에 포함된 이미지 영역 속성 정보를 이용하여 캡처 이미지를 생성하는 캡처부;A capture unit to generate a captured image by using image area attribute information included in the first code;
    스틸 이미지 압축 기법을 이용하여 상기 캡처 이미지를 스틸 이미지 인코딩하는 인코딩부; 및An encoding unit for still image encoding the captured image using a still image compression technique; And
    사용자 단말에서 상기 어플리케이션 결과 화면을 생성할 수 있도록 스틸 이미지 인코딩된 상기 캡처 이미지 및 상기 제1 코드를 변환하여 애니메이션 정보를 포함하도록 생성한 제2 코드를 상기 사용자 단말로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 센딩부 Still image-based cloud streaming by transmitting the still image-encoded capture image and the second code generated by converting the first code to include the animation information so as to generate the application result screen in the user terminal. Sending part performing service
    를 포함하는 것을 특징으로 하는 클라우드 스트리밍 서버.Cloud streaming server comprising a.
  11. 청구항 10에 있어서,The method according to claim 10,
    상기 캡처부는The capture unit
    상기 제1 코드에 포함된 상기 이미지 영역 속성 정보에 상응하는 입력 정보에 대해 렌더링을 수행하여 상기 캡처 이미지를 생성하는 것을 특징으로 하는 클라우드 스트리밍 서버.And generating the captured image by performing rendering on input information corresponding to the image region attribute information included in the first code.
  12. 청구항 11에 있어서,The method according to claim 11,
    상기 클라우드 스트리밍 서버는The cloud streaming server
    상기 제1 코드에 포함된 상기 이미지 영역 속성 정보를 이용하여 캡처 이미지 정보를 생성하는 캡처 이미지 정보 생성부Capture image information generation unit for generating capture image information by using the image area attribute information included in the first code.
    상기 제1 코드에 포함된 애니메이션 코드를 이용하여 상기 애니메이션 정보를 생성하는 애니메이션 정보 생성부; 및An animation information generator configured to generate the animation information by using the animation code included in the first code; And
    상기 제1 코드를, 상기 캡처 이미지 정보 및 애니메이션 정보를 포함하는 상기 제2 코드로 변환하는 코드 변환부A code converter for converting the first code into the second code including the captured image information and animation information
    를 더 포함하는 것을 특징으로 하는 클라우드 스트리밍 서버.Cloud streaming server further comprising.
  13. 청구항 12에 있어서,The method according to claim 12,
    상기 캡처부는The capture unit
    상기 어플리케이션 결과 화면 중 일부에 대해서만 상기 렌더링을 수행하여 상기 캡처 이미지를 생성하는 것을 특징으로 하는 클라우드 스트리밍 서버.Cloud capture server, characterized in that to generate the captured image by performing the rendering only on a portion of the application result screen.
  14. 청구항 12에 있어서,The method according to claim 12,
    상기 제2 코드는The second code is
    애니메이션 타입, 애니메이션 적용 시간, 애니메이션 반복 횟수, 시작 좌표, 종료 좌표, 시작 사이즈 및 종료 사이즈 중 적어도 하나 이상에 상응하는 상기 애니메이션 정보를 포함하는 것을 특징으로 하는 클라우드 스트리밍 서버.And the animation information corresponding to at least one of an animation type, an animation application time, an animation repetition number, a start coordinate, an end coordinate, a start size, and an end size.
  15. 청구항 14에 있어서,The method according to claim 14,
    상기 제2 코드는The second code is
    상기 애니메이션 코드를 포함하지 않는 것을 특징으로 하는 클라우드 스트리밍 서버.Cloud streaming server, characterized in that it does not include the animation code.
  16. 청구항 10에 있어서,The method according to claim 10,
    상기 인코딩부는The encoding unit
    PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응하는 스틸 이미지 압축 기법을 이용하여 상기 캡처 이미지를 스틸 이미지 인코딩하는 것을 특징으로 하는 클라우드 스트리밍 서버. Cloud streaming characterized by still image encoding of the captured image using a still image compression technique corresponding to any one of portable network graphics (PNG), palletized portable network graphics (PNG) and joint photography experts group (JPEG) server.
  17. 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처하는 단계;Capturing an execution screen of an application executed for the cloud streaming service;
    상기 실행 화면 중 키 프레임을 추출하는 단계;Extracting a key frame from the execution screen;
    상기 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 상기 실행 화면 중 상기 키 프레임을 제외한 나머지 프레임들 및 상기 키 프레임 중 하나 이상에 상기 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 상기 실행 화면을 스틸 이미지 인코딩하는 단계; 및Generating still image compression information corresponding to the key frame, and applying a still image compression technique based on the still image compression information to one or more of the remaining frames other than the key frame and the key frame among the execution screens Encoding a still image of the execution screen; And
    스틸 이미지 인코딩된 상기 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 단계Transmitting the still image encoded execution screen to a user's terminal device to perform a still image based cloud streaming service
    를 포함하는 것을 특징으로 하는 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법.Cloud streaming service method for saving system resources comprising a.
  18. 청구항 17에 있어서,The method according to claim 17,
    상기 인코딩하는 단계는The encoding step
    상기 나머지 프레임들 중 상기 키 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 미만인 서브 프레임을 추출하는 단계를 포함하고,Extracting a subframe in which the change value of the frame is less than a predetermined reference value, compared to the key frame among the remaining frames;
    상기 서브 프레임을 상기 스틸 이미지 압축 기법을 이용하여 압축하는 것을 특징으로 하는 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법.And compressing the subframe using the still image compression technique.
  19. 웹 어플리케이션 서버로부터 어플리케이션 결과 화면에 상응하는 제1 코드를 수신하는 단계;Receiving a first code corresponding to an application result screen from a web application server;
    상기 제1 코드에 포함된 이미지 영역 속성 정보를 이용하여 캡처 이미지를 생성하는 단계;Generating a captured image by using image region attribute information included in the first code;
    스틸 이미지 압축 기법을 이용하여 상기 캡처 이미지를 스틸 이미지 인코딩하는 단계; 및Still image encoding the captured image using a still image compression technique; And
    사용자 단말에서 상기 어플리케이션 결과 화면을 생성할 수 있도록 스틸 이미지 인코딩된 상기 캡처 이미지 및 상기 제1 코드를 변환하여 애니메이션 정보를 포함하도록 생성된 제2 코드를 상기 사용자 단말로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 단계The still image-based cloud streaming by converting the still image-encoded capture image and the first code so as to generate the application result screen in the user terminal and the second code generated to include the animation information to the user terminal Steps to Perform a Service
    를 포함하는 것을 특징으로 하는 어플리케이션 코드를 이용한 이미지 클라우드 스트리밍 서비스 방법.Image cloud streaming service method using an application code comprising a.
  20. 청구항 19에 있어서,The method according to claim 19,
    상기 캡처 이미지를 생성하는 단계는Generating the captured image
    상기 제1 코드에 포함된 상기 이미지 영역 속성 정보에 상응하는 입력 정보에 대해 렌더링을 수행하여 상기 캡처 이미지를 생성하는 것을 특징으로 하는 어플리케이션 코드를 이용한 이미지 클라우드 스트리밍 서비스 방법.The image cloud streaming service method using an application code, characterized in that for generating the captured image by performing rendering on the input information corresponding to the image area attribute information included in the first code.
PCT/KR2015/007263 2014-09-01 2015-07-13 Cloud streaming service system, cloud streaming service method for saving system resources, and apparatus therefor WO2016035995A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2014-0115670 2014-09-01
KR1020140115670A KR102247889B1 (en) 2014-09-01 2014-09-01 System for cloud streaming service, method of cloud streaming service to save system resources and apparatus for the same
KR10-2014-0170423 2014-12-02
KR1020140170423A KR102247892B1 (en) 2014-12-02 2014-12-02 System for cloud streaming service, method of image cloud streaming service using application code and apparatus for the same

Publications (1)

Publication Number Publication Date
WO2016035995A1 true WO2016035995A1 (en) 2016-03-10

Family

ID=55440017

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/007263 WO2016035995A1 (en) 2014-09-01 2015-07-13 Cloud streaming service system, cloud streaming service method for saving system resources, and apparatus therefor

Country Status (1)

Country Link
WO (1) WO2016035995A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004064156A (en) * 2002-07-24 2004-02-26 Monolith Co Ltd Contents server, and contents providing method by the server
KR20060015210A (en) * 2004-08-13 2006-02-16 (주)디노밴 An apparatus and a method for converting animated image, and a recording medium on which a computer program performing thereof is recorded
KR20090041169A (en) * 2007-10-23 2009-04-28 삼성디지털이미징 주식회사 Digital image processing apparatus, method for controlling the same, recording medium storing program to implement the method, and method of compressing digital image
US20130121573A1 (en) * 2011-11-15 2013-05-16 Microsoft Corporation Hybrid codec for compound image compression
KR20130134623A (en) * 2012-05-31 2013-12-10 에스케이플래닛 주식회사 Method for data sharing to cloud streaming, system thereof, terminal thereof and apparatus thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004064156A (en) * 2002-07-24 2004-02-26 Monolith Co Ltd Contents server, and contents providing method by the server
KR20060015210A (en) * 2004-08-13 2006-02-16 (주)디노밴 An apparatus and a method for converting animated image, and a recording medium on which a computer program performing thereof is recorded
KR20090041169A (en) * 2007-10-23 2009-04-28 삼성디지털이미징 주식회사 Digital image processing apparatus, method for controlling the same, recording medium storing program to implement the method, and method of compressing digital image
US20130121573A1 (en) * 2011-11-15 2013-05-16 Microsoft Corporation Hybrid codec for compound image compression
KR20130134623A (en) * 2012-05-31 2013-12-10 에스케이플래닛 주식회사 Method for data sharing to cloud streaming, system thereof, terminal thereof and apparatus thereof

Similar Documents

Publication Publication Date Title
WO2019098778A1 (en) Display apparatus, method for controlling the same and image providing apparatus
WO2015009107A1 (en) Method and apparatus for generating 3k-resolution display image for mobile terminal screen
WO2013055164A1 (en) Method for displaying contents, method for synchronizing contents, and method and device for displaying broadcast contents
WO2020116896A1 (en) Method and device for managing processing of media content, and computer-readable recording medium
WO2009126009A9 (en) Method and system for providing interactive content service of ubiquitous environment and computer-readable recording medium
WO2020141814A1 (en) Display apparatus, image providing apparatus, and methods of controlling the same
WO2015012605A1 (en) Method and apparatus for encoding three-dimensional content
WO2013157890A1 (en) Method and apparatus of processing data to support augmented reality
EP3036911A1 (en) Method, terminal, and system for reproducing content
WO2016010319A2 (en) Cloud streaming service system, data compressing method for preventing memory bottlenecking, and device for same
WO2021096057A1 (en) Image coding method on basis of entry point-related information in video or image coding system
WO2018070822A1 (en) Data processing method and device for adaptive image playing
WO2010036085A2 (en) Method and apparatus for providing rich media service
WO2015119361A1 (en) Cloud streaming service system, method for providing cloud streaming service, and device for same
WO2016080585A1 (en) System and method for providing cloud based user interfaces
WO2018097466A1 (en) Method and apparatus for allocating differential bandwidth for each screen region by using image complexity information
WO2016035995A1 (en) Cloud streaming service system, cloud streaming service method for saving system resources, and apparatus therefor
WO2016080586A1 (en) System and method for providing cloud based user interfaces
WO2021096252A1 (en) Image providing apparatus and image providing method thereof, and display apparatus and display method thereof
WO2020197281A1 (en) Method for recovering user interface session in cloud streaming service, and device therefor
WO2016099183A1 (en) Hybrid transmission protocol
WO2016200078A1 (en) Method and device for sharing multimedia content
WO2020209477A1 (en) Picture partitioning-based coding method and device
WO2020209478A1 (en) Method and device for partitioning picture into plurality of tiles
WO2018088592A1 (en) Cloud streaming service system, image cloud streaming service method based on transparency of image, and apparatus therefor

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15838401

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15838401

Country of ref document: EP

Kind code of ref document: A1