WO2016017952A1 - 클라우드 스트리밍 서비스 시스템, 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 - Google Patents

클라우드 스트리밍 서비스 시스템, 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 Download PDF

Info

Publication number
WO2016017952A1
WO2016017952A1 PCT/KR2015/006950 KR2015006950W WO2016017952A1 WO 2016017952 A1 WO2016017952 A1 WO 2016017952A1 KR 2015006950 W KR2015006950 W KR 2015006950W WO 2016017952 A1 WO2016017952 A1 WO 2016017952A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
encoding
change
still image
processing unit
Prior art date
Application number
PCT/KR2015/006950
Other languages
English (en)
French (fr)
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 KR1020140133176A external-priority patent/KR102265419B1/ko
Priority claimed from KR1020140134512A external-priority patent/KR102247657B1/ko
Priority claimed from KR1020140137733A external-priority patent/KR102247887B1/ko
Priority claimed from KR1020140141983A external-priority patent/KR102225607B1/ko
Application filed by 엔트릭스 주식회사 filed Critical 엔트릭스 주식회사
Priority to EP15827254.2A priority Critical patent/EP3177024B1/en
Priority to CN201580049450.2A priority patent/CN106717007B/zh
Priority to JP2016575537A priority patent/JP2017529716A/ja
Publication of WO2016017952A1 publication Critical patent/WO2016017952A1/ko
Priority to US15/420,030 priority patent/US10652591B2/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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/241Operating system [OS] processes, e.g. server setup

Definitions

  • the present invention relates to a cloud streaming service system, a cloud streaming service method using a still image compression technique, and a device therefor (SYSTEM FOR CLOUD STREAMING SERVICE)
  • the service speed can be improved by applying a still image compression method only to the change region of the previous frame and the current frame, and the system resource for image processing is determined by determining the encoding method using the image characteristic information. It is possible to save and use the server's resources more efficiently by selecting and encoding the encoding processing unit according to the characteristics of the image, and by performing encoding by separating the encoding processing unit for each process according to the encoding process.
  • Cloud-streaming service system that can reduce the source, cloud-streaming service using a still image compression techniques, methods, and relates to a device for this purpose.
  • the present invention is Korean Patent Application No. 10-2014-0097322, filed July 30, 2014, Korea Patent Application No. 10-2014-0133176, filed October 2, 2014, Korea, filed October 6, 2014 Benefits of Patent Application No. 10-2014-0134512, Korean Patent Application No. 10-2014-0137733, filed October 13, 2014 and Korean Patent Application No. 10-2014-0141983, filed October 20, 2014 Claims, all of which are hereby incorporated by reference.
  • Cloud streaming service is basically applied to the video codec-based cloud streaming technique, even in the case of applying the menu display, such as capturing the entire screen unnecessarily to operate using the video codec cloud streaming service was inefficient.
  • an image-based cloud streaming service may be more effective than a cloud streaming service using a video codec when applying cloud streaming to a screen in which static screens slightly change according to a user input.
  • the still image codec when the still image codec is applied, the amount of data varies according to the image type of the image to be compressed, and the efficiency of the cloud streaming service may vary greatly according to the still image compression technique used for compression. Therefore, there is an urgent need for a new technique that can quickly and accurately classify image types and apply an image cloud adaptively.
  • the performance difference varies by set-top box, and more than 15 kinds of set-tops have been widely distributed in recent decades.
  • the performance difference between a good set-top and a bad set-top is so large that content cannot be supplied to the user in the manner desired by the content provider.
  • Korean Patent Application Publication No. 10-2014-0027040 published March 06, 2014 (name: Adaptive Image Compression System and Method), Korean Patent Application Publication No. 10-2014-0045013, 2014 04 Revealed on May 16 (Name: Encoding method and apparatus for cloud display screen using API information), Korean Patent Publication No. 10-2012-0105688, published on September 26, 2012 (Name: Heterogeneous server / client virtualization service System and method) and Korean Patent Application Publication No. 10-2014-0021388, published February 20, 2014 (name: JPEG2000 encoding / decoding apparatus and method based on graphic process unit).
  • An object of the present invention is to improve compression efficiency and cloud streaming service speed by using a still image compression technique suitable for a situation when providing a still image-based cloud streaming service.
  • an object of the present invention is to improve the compression efficiency and cloud streaming service speed by using a still image compression technique suitable for the image type when providing a still image-based cloud streaming service.
  • an object of the present invention is to provide a cloud streaming service for faster and more users through the same band by maximizing the streaming extrusion efficiency through a still image-based cloud streaming service.
  • an object of the present invention is to apply a still image compression method only to the change region of the previous frame and the current frame when providing a cloud streaming service using a still image compression technique, cloud streaming to faster and more users through the same band To provide services.
  • an object of the present invention is to detect a still image compression target faster by scanning the differential frame of the previous frame and the current frame to determine the change area when providing a cloud streaming service using a still image compression technique.
  • an object of the present invention is to determine the encoding method by using the application source code and the image characteristic information generated by the MPEG texture descriptor to save the resources of the cloud streaming server that was previously required to perform image processing more efficient cloud streaming To configure the server.
  • an object of the present invention is to provide a cloud streaming service to the user more quickly by saving the service time required for image processing by performing a still image encoding based on the image characteristic information.
  • an object of the present invention is to save the resource usage of the cloud streaming server by performing the encoding by separating the encoding processing unit for each process according to the encoding process when providing the cloud streaming service.
  • an object of the present invention is to reduce the delay that may occur due to the load of the server by processing the service using the graphics processing unit together with the central processing unit when providing the cloud streaming service.
  • a cloud streaming server including: a change area determiner configured to determine a change area of the current frame changed from the previous frame by comparing a previous frame with a current frame; A capture unit to capture the change area; An encoding unit for still image encoding the change area corresponding to one frame using a still image compression technique; And a sending unit configured to transmit the still image encoded change area to a user to perform a still image based cloud streaming service.
  • the change area determiner may calculate a difference frame between the previous frame and the current frame, and determine the change area using the difference frame.
  • the change area determiner may determine the change area by scanning the difference frame and detecting a change pixel of the current frame changed from the previous frame.
  • the change area determiner may determine the change area including the change pixels detected by horizontal scanning and vertical scanning of the difference frame.
  • the change area determiner horizontally scans in the row unit while moving downwardly from the top of the difference frame to obtain a first vertical coordinate element from the first detected change pixel, and moves horizontally in the row unit from the bottom to the upward direction. Scanning to obtain a second ordinate element from the first detected change pixel, and moving from left to right direction to obtain a first horizontal coordinate element from the first detected change pixel by scanning vertically in columns, and from right to left
  • the second horizontal coordinate element is obtained from the first detected change pixel by vertically scanning in column units while moving in the direction, and the coordinates constituted by pairing any one of the horizontal coordinate elements and one of the vertical coordinate elements
  • the change area determiner may determine a rectangular area having the minimum width including the change pixels as the change area.
  • the change area determiner may determine, as the change area, a rectangular area having four vertices constituted by a pair of any one of the abscissa elements and one of the ordinate elements.
  • the cloud streaming service method using a still image compression technique comparing the previous frame and the current frame to determine the change region of the current frame changed from the previous frame; Capturing the change area; Still image encoding the change region corresponding to one frame using a still image compression technique; And transmitting the still image encoded change area to a user to perform a still image based cloud streaming service.
  • the determining of the change area may include calculating a difference frame between the previous frame and the current frame and determining the change area by using the difference frame.
  • the determining of the change area may include determining the change area by scanning the difference frame to detect a change pixel of the current frame that is changed from the previous frame.
  • the determining of the change area may determine the change area including change pixels detected by horizontal scanning and vertical scanning of the difference frame.
  • the step of determining the change region is a horizontal scanning in a row unit while moving downwards from the top of the difference frame to obtain a first ordinate element from the first detected change pixel, and proceeds from the bottom to the top row Horizontal scanning in units to obtain a second vertical coordinate element from the first detected change pixels, and moving from left to right direction, vertical scanning in columns to obtain a first horizontal coordinate element from the first detected change pixels, right
  • the second horizontal coordinate element is obtained from the first detected change pixel by vertical scanning in column units while moving from the stage to the left direction, and one of the horizontal coordinate elements and one of the vertical coordinate elements are paired. Change the rectangular area including the change pixel corresponding to the coordinates It can be determined by area.
  • the determining of the change area may determine a rectangular area having the minimum width while including the change pixels as the change area.
  • the determining of the change area may determine a rectangular area having four vertices formed by pairing any one of the abscissa elements and one of the ordinate elements as a vertex as the change area. .
  • the capture unit for capturing the change region included in the changed frame;
  • An encoding unit for determining an encoding scheme in consideration of whether there is image characteristic information corresponding to the change region, and for still image encoding the change region using the encoding scheme;
  • a sending unit configured to transmit the still image encoded change area to a user to perform a still image based cloud streaming service.
  • the image characteristic information may be generated based on application source code or may be generated using an MPEG texture descriptor.
  • the encoding unit determines the encoding scheme based on the image characteristic information when the image characteristic information exists, and analyzes an image corresponding to the change area to determine the encoding scheme when the image characteristic information does not exist. You can decide.
  • the encoding scheme may correspond to any one of a portable network graphics (PNG), a portable network graphics (PNG) and a joint photography experts group (JPEG).
  • PNG portable network graphics
  • PNG portable network graphics
  • JPEG joint photography experts group
  • the encoding unit analyzes the image corresponding to the change area to divide the change area into one of a general area and a picture area, and considers at least one or more of an image processing result of the general area and an image type of the picture area.
  • the encoding scheme can be determined.
  • the image type may correspond to any one of a natural image and a composite image.
  • the capturer may capture the changed area as the change area in comparison with the screen area corresponding to the previous frame of the changed frame among the screen areas corresponding to the changed frame.
  • the capture unit may detect a section having a small frame change among the entire frame sections to be transmitted to the terminal device of the user, and capture the change region in the section having the small frame change.
  • the capture unit may detect an event type of an application generated from the terminal device of the user and detect a section having less frame change.
  • the cloud streaming service method using the source information according to the present invention capturing a change region included in the changed frame; Determining an encoding scheme in consideration of whether there is image characteristic information corresponding to the change region, and still image encoding the change region using the encoding scheme; And transmitting the still image encoded change area to a user to perform a still image based cloud streaming service.
  • the image characteristic information may be generated based on application source code or may be generated using an MPEG texture descriptor.
  • the step of encoding determines the encoding scheme based on the image characteristic information when the image characteristic information exists, and analyzes an image corresponding to the change area when the image characteristic information does not exist and encodes the encoding. You can decide how.
  • the encoding may correspond to any one of a portable network graphics (PNG), a portable network graphics (PNG), and a joint photography experts group (JPEG).
  • PNG portable network graphics
  • PNG portable network graphics
  • JPEG joint photography experts group
  • the encoding may include analyzing the image corresponding to the change area to divide the change area into one of a general area and a picture area, and at least one of an image processing result of the general area and an image type of the picture area. In consideration of this, the encoding scheme may be determined.
  • the image type may correspond to any one of a natural image and a composite image.
  • the capturing may capture the changed area as the change area in comparison with the screen area corresponding to the previous frame of the changed frame among the screen areas corresponding to the changed frame.
  • the capturing may detect a section having a small frame change among the entire sections of the frame to be transmitted to the user's terminal device, and capture the change region at the section having the small frame change.
  • the capturing may detect an event type of an application generated from the terminal device of the user and detect a section having less change in the frame.
  • the cloud streaming service system captures the change region included in the changed frame, determines the encoding scheme in consideration of whether there is image characteristic information corresponding to the change region, and the encoding
  • a cloud streaming server performing a still image-based cloud streaming service by transmitting a still image to the change region by using a method, and transmitting the still image encoded change region to a user;
  • a terminal receiving an application execution result screen corresponding to the cloud streaming service from the cloud streaming server.
  • the capture unit for capturing the change region included in the changed frame compared to the previous frame;
  • An encoding unit for selecting an encoding processing unit in consideration of at least one of an image characteristic and an image resolution corresponding to the change area, and still image encoding the change area corresponding to one frame using the encoding processing unit;
  • a sending unit configured to transmit the still image encoded change area to a user to perform a still image based cloud streaming service.
  • the encoding processing unit may correspond to any one of a central processing unit (CPU) and a graphics processing unit (GPU).
  • CPU central processing unit
  • GPU graphics processing unit
  • an encoding unit estimates an encoding processing cost for each of the central processing unit and the graphic processing unit in consideration of at least one of the image characteristic and the image resolution, and the encoding processing cost of the central processing unit and the graphic processing unit.
  • This low encoding processing unit can be selected to still image encode the change region.
  • the encoding unit may still image encode the change area by using the graphic processing unit.
  • the encoding unit may select the encoding processing unit in consideration of a still image compression scheme according to the image characteristic.
  • the still image compression technique may correspond to any one of a portable network graphics (PNG), a portable network graphics (PNG), and a joint photography experts group (JPEG).
  • PNG portable network graphics
  • PNG portable network graphics
  • JPEG joint photography experts group
  • the encoding unit may still image encode the change area using the graphic processing unit.
  • the capture unit may capture the changed area as the change area in comparison with the screen area corresponding to the previous frame among the screen areas corresponding to the changed frame.
  • the capture unit may detect a section having a small frame change among the entire frame sections to be transmitted to the terminal device of the user, and capture the change region in the section having the small frame change.
  • the capture unit may detect an event type of an application generated from the terminal device of the user and detect a section having less frame change.
  • the cloud streaming service method using the selective encoding processing unit comprises the steps of capturing a change region included in the changed frame compared to the previous frame; Selecting an encoding processing unit in consideration of at least one of an image characteristic and an image resolution corresponding to the change area, and still image encoding the change area corresponding to one frame using the encoding processing unit; And transmitting the still image encoded change area to a user to perform a still image based cloud streaming service.
  • the encoding processing unit may correspond to any one of a central processing unit (CPU) and a graphics processing unit (GPU).
  • CPU central processing unit
  • GPU graphics processing unit
  • the encoding step includes estimating an encoding processing cost for each of the central processing unit and the graphic processing unit in consideration of at least one of the image characteristic and the image resolution, wherein the central processing unit and the graphic processing A still image encoding of the change area may be performed by selecting an encoding processing unit having a low encoding processing cost among the units.
  • the encoding may be a still image encoding of the change area using the graphic processing unit when the image resolution corresponding to the change area is equal to or larger than a predetermined reference value.
  • the encoding may select the encoding processing unit in consideration of a still image compression scheme according to the image characteristic when the image resolution corresponding to the change area is less than a preset reference value.
  • the still image compression technique may correspond to any one of a portable network graphics (PNG), a portable network graphics (PNG), and a joint photography experts group (JPEG).
  • PNG portable network graphics
  • PNG portable network graphics
  • JPEG joint photography experts group
  • the encoding may include still image encoding the change area using the central processing unit when the image resolution is less than a predetermined reference value and the still image compression technique is the palletized PNG.
  • the capturing may capture the changed area as the change area in comparison with the screen area corresponding to the previous frame among the screen areas corresponding to the changed frame.
  • the capturing may detect a section having a small frame change among the entire sections of the frame to be transmitted to the user's terminal device, and capture the change region at the section having the small frame change.
  • the capturing may detect an event type of an application generated from the terminal device of the user and detect a section having less change in the frame.
  • the cloud streaming service system captures the change region included in the changed frame compared to the previous frame, encoding processing in consideration of one or more of the image characteristics and image resolution corresponding to the change region Select a unit, and use the encoding processing unit to perform still image encoding of the change region corresponding to one frame, and transmit the still image encoded change region to the user to perform a still image-based cloud streaming service.
  • Cloud streaming server And a terminal receiving an application execution result screen corresponding to the cloud streaming service from the cloud streaming server.
  • the capture unit for capturing the change region included in the changed frame is divided into a plurality of unit processes, and at least one or more of the unit processes are allocated to a graphics processing unit (GPU) and the remaining units not allocated to the graphics processing unit.
  • the processes may include an encoding unit for allocating a change region to a central processing unit (CPU) to perform the encoding process and to still image encode the change region; And a sending unit configured to transmit the still image encoded change area to a user to perform a still image based cloud streaming service.
  • the unit processes may correspond to any one of image analysis, still image compression technique determination, still image compression, and compressed data collection corresponding to the change area.
  • the encoding unit may allocate a unit process corresponding to the still image compression to the graphic processing unit based on a processing result corresponding to the image analysis and the determination of the still image compression technique.
  • the still image compression may include one or more processes of color histogram construction, palette generation, palette-based original color quantization, and palette-based encoding on an image corresponding to the change area.
  • the graphic processing unit may transmit a processing result corresponding to the still image compression to the central processing unit.
  • the central processing unit may perform a unit process corresponding to the compressed data collection by using the processing result corresponding to the still image compression.
  • the central processing unit may transfer the image data corresponding to the change area to the graphic processing unit when a unit process corresponding to the still image compression is assigned to the graphic processing unit.
  • the capturer may capture the changed area as the change area in comparison with the screen area corresponding to the previous frame of the changed frame among the screen areas corresponding to the changed frame.
  • the capture unit may detect a section having a small frame change among the entire frame sections to be transmitted to the terminal device of the user, and capture the change region in the section having the small frame change.
  • the capture unit may detect an event type of an application generated from the terminal device of the user and detect a section having less frame change.
  • a cloud streaming service method through job separation of an encoding processing unit may include capturing a change region included in a changed frame;
  • the encoding process for the change area is divided into a plurality of unit processes, and at least one or more of the unit processes are allocated to a graphics processing unit (GPU) and the remaining units not allocated to the graphics processing unit.
  • the processes may be assigned to a Central Processing Unit (CPU) to perform the encoding process to perform still image encoding of the change region; And transmitting the still image encoded change area to a user to perform a still image based cloud streaming service.
  • CPU Central Processing Unit
  • the unit processes may correspond to any one of image analysis, still image compression technique determination, still image compression, and compressed data collection corresponding to the change area.
  • the encoding may allocate a unit process corresponding to the still image compression to the graphic processing unit based on a processing result corresponding to the image analysis and the determination of the still image compression technique.
  • the still image compression may include one or more processes of color histogram construction, palette generation, palette-based original color quantization, and palette-based encoding on an image corresponding to the change area.
  • the graphic processing unit may transmit a processing result corresponding to the still image compression to the central processing unit.
  • the central processing unit may perform a unit process corresponding to the compressed data collection by using the processing result corresponding to the still image compression.
  • the central processing unit may transfer the image data corresponding to the change area to the graphic processing unit when a unit process corresponding to the still image compression is assigned to the graphic processing unit.
  • the capturing may capture the changed area as the change area in comparison with the screen area corresponding to the previous frame of the changed frame among the screen areas corresponding to the changed frame.
  • the capturing may detect a section having a small frame change among the entire sections of the frame to be transmitted to the user's terminal device, and capture the change region at the section having the small frame change.
  • the capturing may detect an event type of an application generated from the terminal device of the user and detect a section having less change in the frame.
  • the cloud streaming service system captures the change region included in the changed frame, separates the encoding process for the change region into a plurality of unit processes, at least one of the unit processes One or more are allocated to a graphics processing unit (GPU) and the remaining unit processes not allocated to the graphics processing unit are allocated to a central processing unit (CPU) to perform the encoding process to perform the change.
  • a cloud streaming server for encoding a still image of a region and transmitting the still image encoded change region to a user to perform 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.
  • the present invention can improve the compression efficiency and cloud streaming service speed by using a still image compression technique suitable for the image type when providing a still image-based cloud streaming service.
  • the present invention can maximize the streaming extrusion efficiency through the still image-based cloud streaming service can provide a cloud streaming service to a faster and more users through the same band.
  • the present invention applies a still image compression method only to the change region of the previous frame and the current frame when providing a cloud streaming service using a still image compression technique, thereby providing a faster and more cloud streaming service to more users through the same band Can provide.
  • the present invention can detect the still image compression target faster by scanning the differential frame of the previous frame and the current frame to determine the change area when providing a cloud streaming service using a still image compression technique.
  • the present invention saves the resources of the cloud streaming server that was previously required to perform image processing by determining the encoding method by using the application source code and the image characteristic information generated by the MPEG texture descriptor to more efficient cloud streaming server Can be configured.
  • the present invention saves the service time required for image processing by performing a still image encoding based on the image characteristic information can provide a cloud streaming service to the user more quickly.
  • the present invention can reduce the cloud streaming service processing cost by improving the efficiency of the cloud streaming service.
  • the present invention can save the resource usage of the cloud streaming server by performing the encoding by separating the encoding processing unit for each process according to the encoding process when providing the cloud streaming service.
  • the present invention can reduce the delay that may occur due to the load of the server by processing the service using the graphics processing unit together with the central processing unit when providing the cloud streaming service.
  • FIG. 1 is a block diagram showing a cloud streaming service system using a still image compression technique 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 an example of a cloud streaming system.
  • FIG. 4 is a diagram illustrating a process of capturing a change region in a cloud streaming service using a still image compression technique according to an embodiment of the present invention.
  • FIG. 5 is a diagram illustrating a process of determining a change region in a cloud streaming service using a still image compression technique according to an embodiment of the present invention.
  • FIG. 6 is a flowchart illustrating a cloud streaming service method using a still image compression technique according to an embodiment of the present invention.
  • FIG. 7 is a block diagram showing a cloud streaming service system according to an embodiment of the present invention.
  • FIG. 8 is a block diagram illustrating an example of a cloud streaming server of FIG. 7.
  • FIG. 9 is a diagram illustrating an example of a still image-based cloud streaming system.
  • FIG. 10 is a diagram illustrating a process of capturing a change area in a cloud streaming service according to an embodiment of the present invention.
  • FIG. 11 is a flowchart illustrating a cloud streaming service method using source information according to an embodiment of the present invention.
  • FIG. 12 is an operation flowchart showing in detail a cloud streaming service method using source information according to an embodiment of the present invention.
  • FIG. 13 is a block diagram showing a cloud streaming service system according to another embodiment of the present invention.
  • FIG. 14 is a block diagram illustrating an example of a cloud streaming server illustrated in FIG. 13.
  • 15 is a diagram illustrating another example of a still image-based cloud streaming system.
  • FIG. 16 illustrates an encoding processing unit according to an embodiment of the present invention.
  • 17 is a diagram illustrating a process of capturing a change area in a cloud streaming service according to another embodiment of the present invention.
  • FIG. 18 is a flowchart illustrating a cloud streaming service method using an optional encoding processing unit according to an embodiment of the present invention.
  • FIG. 19 is a flowchart illustrating a cloud streaming service method using a selective encoding processing unit according to an embodiment of the present invention in detail.
  • FIG. 20 is a block diagram showing a cloud streaming service system according to another embodiment of the present invention.
  • FIG. 21 is a block diagram illustrating an example of a cloud streaming server illustrated in FIG. 20.
  • FIG. 22 is a diagram illustrating another example of a still image-based cloud streaming system.
  • FIG. 23 is a diagram showing an encoding processing unit according to another embodiment of the present invention.
  • FIG. 24 is a diagram illustrating a process of capturing a change area in a cloud streaming service according to another embodiment of the present invention.
  • 25 is a flowchart illustrating a cloud streaming service method through job separation of an encoding processing unit according to an embodiment of the present invention.
  • FIG. 26 is a flowchart illustrating a cloud streaming service method through job separation of an encoding processing unit according to an embodiment of the present invention in detail.
  • a terminal according to an embodiment of the present invention will be described as a representative example of a mobile communication terminal that can be connected to a communication network to upload or download content based on a cloud computing system, but the terminal is not limited to the mobile communication terminal, and all information communication It can be applied to various terminals such as devices, multimedia terminals, wired terminals, fixed terminals, and IP (Internet Protocol) terminals.
  • the terminal may be a mobile phone, a portable multimedia player (PMP), a mobile internet device (MID), a smart phone, a desktop, a tablet computer, a notebook, a net book.
  • PMP portable multimedia player
  • MID mobile internet device
  • smart phone a desktop, a tablet computer, a notebook, a net book.
  • a mobile terminal having various mobile communication specifications, such as an information communication device.
  • content sharing may be a concept including content transmission.
  • data management may be a concept including data transmission.
  • FIG. 1 is a block diagram showing a cloud streaming service system using a still image compression technique according to an embodiment of the present invention.
  • a cloud streaming service system using a still image compression scheme includes a cloud streaming server 110, terminal devices 120-1,..., 120 -N, and a network 130. ).
  • the cloud streaming server 110 receives the cloud streaming service request from the terminal devices 120-1,..., 120 -N, executes the application, and displays the execution result screen corresponding to the execution result of the terminal devices 120-1. ,..., 120-N).
  • Cloud streaming service basically uses cloud codec based on video codec. Therefore, even if cloud streaming is applied to static screen such as menu display, it is an inefficient way to capture the entire screen and encode to video codec.
  • a cloud streaming service In order to solve this problem, the present invention provides a cloud streaming system in which a cloud streaming server detects a change between frames and encodes only the detected change region using a still image compression technique when the change between frames is not large, such as a menu display screen. do.
  • the cloud streaming server 110 compares a previous frame with a current frame to determine a change region of the current frame changed from the previous frame, and captures the change region.
  • a section having a small frame change among the entire frames to be transmitted to the terminal devices 120-1,..., And 120 -N may be detected, and a change region may be captured in a section having a small frame change.
  • an event type of an application generated from the terminal devices 120-1,..., 120 -N may be detected to detect a section having a small frame change.
  • the cloud streaming server 110 selects a still image compression method according to an image type determined by considering one or more of the number of colors of the image corresponding to the change area and the standard deviation of the image pixel values, and selects a still image.
  • the compression technique is used to still image encode a change region corresponding to one frame.
  • a still image compression technique may be selected according to one of the image types of the natural image and the synthetic image. In this case, when the number of colors of the image corresponding to the change area exceeds the preset reference number, the image type may be determined as the natural image.
  • the image type may be determined in consideration of the standard deviation of the image pixel values corresponding to the change area.
  • the image type may be determined as a composite image.
  • the image type may be determined as a natural image.
  • the change region may be still image encoded using a still image compression technique of one of portable network graphics (PNG) and joint photography experts group (JPEG) according to the image type.
  • the cloud streaming server 110 transmits a still image encoded change region to a user to perform a still image based cloud streaming service.
  • the terminal devices 120-1,..., 120 -N receive an application execution result screen corresponding to a 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, multimedia terminals, and wired devices.
  • Various terminals such as a terminal, a fixed terminal, and an Internet Protocol (IP) terminal.
  • IP Internet Protocol
  • the terminal devices 120-1,..., 120 -N are mobile phones, portable multimedia players (PMPs), mobile internet devices (MIDs), smart phones, desktops, and tablet computers, respectively. It may be a mobile terminal having various mobile communication specifications such as a PC, a notebook, a net book, a personal digital assistant (PDA), a smart TV, and an information communication device.
  • PDA personal digital assistant
  • the network 130 provides a path for transferring data between the cloud streaming server 110 and the terminal devices 120-1,..., 120 -N, and includes both a network used in the future and a network that can be developed in the future. It is a comprehensive concept.
  • 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 used between the terminal devices 120-1,..., 120 -N. It may be different from the network or may be the same.
  • FIG. 2 is a block diagram illustrating an example of the cloud streaming server 110 shown in FIG. 1.
  • the cloud streaming server 110 illustrated in FIG. 1 includes the change area determiner 205, the capture unit 210, the encoder 220, the sender 230, and the storage 240. Include.
  • Cloud streaming service basically uses cloud codec based on video codec. Therefore, even if cloud streaming is applied to static screen such as menu display, it is an inefficient way to capture the entire screen and encode to video codec.
  • the present invention provides a cloud streaming server 110 in which a cloud streaming server detects a change between frames and encodes only the detected change area using a still image compression technique when the change between frames is not large, such as a menu display screen. ).
  • the change area determiner 205 determines the change area of the current frame changed from the previous frame by comparing the previous frame with the current frame.
  • the video codec-based cloud streaming technique can perform encoding by capturing all frames corresponding to the screen on which the application operates. However, if the change between frames is not large on the screen on which the application is running, the still image encoding is performed by capturing only the change area of the changed frame compared to the previous frame, and the parts except for the change area when displaying on the user's terminal device are the same. It can be displayed in such a way that it is displayed in a simple manner and only the change area is changed.
  • the changed area may be determined as the change area in comparison with the screen area corresponding to the previous frame among the screen areas corresponding to the changed frame. For example, if the changed area is the A area compared to the screen area corresponding to the previous frame among the screen areas corresponding to the changed frame, only the A area of the screen area corresponding to the changed frame may be determined as the change area.
  • the change area may have various characteristics of an image corresponding to the size or the change area according to an input signal input from the user's terminal device.
  • the difference frame between the previous frame and the current frame may be calculated, and the change region may be determined using the difference frame.
  • the difference region may be determined by scanning the difference frame to detect the change pixel of the current frame changed from the previous frame.
  • a change region including change pixels detected by horizontal scanning and vertical scanning of the differential frame may be determined. For example, if a change pixel is detected by horizontal scanning in a row unit while moving from the top of the difference frame downward, the y0 element corresponding to the row is acquired, and the row is moved upward from the bottom.
  • the y1 element corresponding to the corresponding row is obtained, and when the change pixel is detected by vertical scanning by column while moving from the left end to the right direction,
  • an x1 element corresponding to the corresponding column is obtained to obtain (x0, y0), (x1, y0), (x1, y1) and (x0, y1), a rectangular region having four pixels as vertices can be determined as the change region.
  • the capture unit 210 captures the change area.
  • a section having a small frame change among the entire sections of the frame to be transmitted to the user's terminal device may be detected, and the change region may be captured at the section having a small frame change.
  • the event type of the application generated from the user's terminal device may be detected to detect a section having less frame change.
  • an event type of an application may be determined according to an input signal generated from a user terminal device.
  • an application is executed such as a menu, an option, or a guide window according to an input signal, a static event having a small change in a frame or a dynamic event in which a frame frequently changes such as a video play and a game play may occur. Therefore, when the user detects an event type with an input signal generated through the terminal device, and if the event type is a static event, a section having a small frame change can be detected among all frame sections corresponding to the corresponding event.
  • the encoder 220 selects a still image compression method according to an image type determined by considering at least one of the number of colors of the image corresponding to the change area and the standard deviation of the image pixel values, and selects a still image compression method.
  • an image type determined by considering at least one of the number of colors of the image corresponding to the change area and the standard deviation of the image pixel values.
  • a still image compression technique may be selected according to one of the image types of the natural image and the synthetic image.
  • the natural image may mean an image of a naturally occurring object. For example, it may mean not only an optical image such as a photograph or a picture, but also images of different wavelengths such as X-rays and infrared rays.
  • the synthesized image may mean an image generated or synthesized through computer or artificial means.
  • the image type may be determined as the natural image. Since the natural image may be an image of a naturally occurring object, the change in brightness and saturation applied to the color representing the image may be more sophisticated than the synthesized image. Therefore, since the number of colors represented by the pixels configured to represent the natural image may be more diverse than that of the composite image, the image type corresponding to the change area may be determined in consideration of the number of colors of the image corresponding to the change area. For example, if the preset reference number is set to 100,000, the image type is determined as a natural image when the number of colors constituting the image corresponding to the change area exceeds 100,000, and the image is set to 100,000 or less. The type can be determined as a composite image.
  • the image type may be determined in consideration of the standard deviation of the image pixel values corresponding to the change area.
  • the standard deviation of the pixel value may be a distribution of color values represented by pixels constituting an image corresponding to the change area. If the distribution of color values is 0, it may mean that all colors are the same value. Therefore, a small distribution of color values, that is, a small standard deviation of pixel values may correspond to a small number of colors constituting the image. have. Accordingly, the image type of the image corresponding to the change area may be determined in consideration of the standard deviation of the image pixel values.
  • the image type may be determined as a composite image.
  • the preset reference number is 100,000 for the number of colors in the image
  • the preset reference value is N for the standard deviation of the image pixel values.
  • the image corresponding to the change area is displayed.
  • the image type can be determined as a composite image.
  • the image type may be determined as a natural image. For example, if the standard deviation of the image pixel value corresponding to the change area exceeds a preset reference value, this may mean that the number of colors constituting the image is large. Therefore, if the standard deviation of the image pixel value exceeds a predetermined reference value, it may be determined that the image corresponding to the change area is a natural image composed of many colors.
  • the change region may be still image encoded using a still image compression technique of one of portable network graphics (PNG) and joint photography experts group (JPEG) according to the image type.
  • PNG portable network graphics
  • JPEG joint photography experts group
  • PNG still image compression is good for image quality during encoding, but the transmission speed may be reduced when the bandwidth of the transmission network is low due to the large data size.
  • JPEG still image compression technique is good for compressing data. Although the amount can be greatly reduced, it is a technique that can generate a lot of system load when encoding and decoding as the compression efficiency is large.
  • the JPEG still image compression technique may be more effective when compressing a natural image having similar colors gathered around one pixel. Therefore, when the image type corresponding to the change area is a natural image, the change area may be encoded by a JPEG still image compression technique.
  • a still image encoding of the change region may be performed by selecting a PNG still image compression technique that can improve the image quality of the image.
  • the change region when the change region is a composite image and the size of the change region is large and the data is large, the change region may be encoded using a paletted portable network graphics (PNG) still image compression technique that may reduce the size of the data.
  • 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 sending unit 230 transmits a still image encoded change region to a user to perform a still image based cloud streaming service.
  • the compressed change area is transmitted to the terminal device of the user, so that the cloud streaming service may be performed so that the user can feel the application running on the terminal device.
  • the storage unit 240 stores various information generated in the cloud streaming service process according to the embodiment of the present invention as described above.
  • the storage unit 240 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 240 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.
  • FIG. 3 is a diagram illustrating an example of a cloud streaming system.
  • the server 310 may perform a screen capture by executing a program screen 310 corresponding to a user input generated from a user terminal device.
  • the server 300 may be a server that collectively refers to a cloud streaming server and a web application server.
  • the process of executing the screen capture by executing the program screen 310 may correspond to the operation flow of the capture unit 210 shown in FIG. 2.
  • the server 300 may encode the screen captured program screen 310 through a still image compression technique (Image Encoding) 320.
  • Image Encoding a still image compression technique
  • the process of performing the image encoding 320 may correspond to the operation flow of the encoding unit 220 illustrated in FIG. 2.
  • the changed region may be encoded by the selected still image compression technique.
  • PNG portable network graphics
  • JPEG joint photography experts group
  • the server 300 may provide a still image-based cloud streaming service by streaming the still image-encoded changed region to the user's terminal device.
  • the process of performing the streaming 330 may correspond to the operation flow of the sender 230 shown in FIG. 2.
  • the user terminal device renders the received data (Image Rendering) 340 to the user as if the program screen 310 executed in the application by the user input (User Input) as if executed in the user terminal device. It can be displayed.
  • FIG. 4 is a diagram illustrating a process of capturing a change region in a cloud streaming service using a still image compression technique according to an embodiment of the present invention.
  • the cloud streaming service using the still image compression technique may compare and encode only the changed change region 430 by comparing the first frame 410 and the second frame 420. have.
  • the C area is different because the cursor is positioned in the C area.
  • the cursor is moved from the C region to the E region so that the E region can be shaded to be distinguished from other B, C, and D regions. Can be.
  • the still image compression scheme may be selected in consideration of the size of the change region 430 and the image property corresponding to the change region 430, and the change region 430 may be encoded using the selected still image compression technique.
  • the first frame 410 and the second frame 420 is a frame that is clearly changed, and in the existing cloud streaming service, it may be necessary to capture and encode all the frames corresponding to the frame rate including two frames. have.
  • the cloud streaming service using the still image compression technique captures only the change area 430 and encodes the still image compression technique, the service efficiency is higher than that of the conventional cloud streaming service method of capturing an unnecessary number of frames and the entire screen of the frame. Can improve.
  • FIG. 5 is a diagram illustrating a process of determining a change region in a cloud streaming service using a still image compression technique according to an embodiment of the present invention.
  • a cloud streaming service using a still image compression technique may include change pixels using a difference frame 510 of a first frame 410 and a second frame 420, and may include minimal pixels.
  • the change area 430 is determined as a rectangular area having an area.
  • a change pixel is detected by horizontal scanning in a row unit while moving downward from the top of the difference frame 510, a y0 element corresponding to the corresponding row is obtained, and the bottom to top direction is obtained.
  • the change element is detected by acquiring the y1 element corresponding to the corresponding row, and the vertical scanning in the column unit while moving from the left end to the right direction.
  • x0 elements corresponding to the corresponding columns are acquired and vertical pixels are detected by moving vertically from the right end to the left direction, and the change pixel is detected, x1 elements corresponding to the corresponding columns are acquired to obtain (x0, y0), (x1, The rectangular region having the vertices of y0), (x1, y1) and (x0, y1), and four pixels may be determined as the change region 430.
  • FIG. 6 is a flowchart illustrating a cloud streaming service method using a still image compression technique according to an embodiment of the present invention.
  • a change region of a current frame changed from a previous frame is determined by comparing a previous frame with a current frame (S605).
  • the video codec-based cloud streaming technique can perform encoding by capturing all frames corresponding to the screen on which the application operates. However, if the change between frames is not large on the screen on which the application is running, the still image encoding is performed by capturing only the change area of the changed frame compared to the previous frame, and the parts except for the change area when displaying on the user's terminal device are the same. It can be displayed in such a way that it is displayed in a simple manner and only the change area is changed.
  • the changed area may be determined as the change area in comparison with the screen area corresponding to the previous frame among the screen areas corresponding to the changed frame. For example, if the changed area is the A area compared to the screen area corresponding to the previous frame among the screen areas corresponding to the changed frame, only the A area of the screen area corresponding to the changed frame may be determined as the change area.
  • the change area may have various characteristics of an image corresponding to the size or the change area according to an input signal input from the user's terminal device.
  • the difference frame between the previous frame and the current frame may be calculated, and the change region may be determined using the difference frame.
  • the difference region may be determined by scanning the difference frame to detect the change pixel of the current frame changed from the previous frame.
  • a change region including change pixels detected by horizontal scanning and vertical scanning of the differential frame may be determined. For example, if a change pixel is detected by horizontal scanning in a row unit while moving from the top of the difference frame downward, the y0 element corresponding to the row is acquired, and the row is moved upward from the bottom.
  • the y1 element corresponding to the corresponding row is obtained, and when the change pixel is detected by vertical scanning by column while moving from the left end to the right direction,
  • an x1 element corresponding to the corresponding column is obtained to obtain (x0, y0), (x1, y0), (x1, y1) and (x0, y1), a rectangular region having four pixels as vertices can be determined as the change region.
  • the cloud streaming service method using a still image compression technique captures the change area (S610).
  • a section having a small frame change among the entire sections of the frame to be transmitted to the user's terminal device may be detected, and the change region may be captured at the section having a small frame change.
  • the event type of the application generated from the user's terminal device may be detected to detect a section having less frame change.
  • an event type of an application may be determined according to an input signal generated from a user terminal device.
  • an application is executed such as a menu, an option, or a guide window according to an input signal, a static event having a small change in a frame or a dynamic event in which a frame frequently changes such as a video play and a game play may occur. Therefore, when the user detects an event type with an input signal generated through the terminal device, and if the event type is a static event, a section having a small frame change can be detected among all frame sections corresponding to the corresponding event.
  • the cloud streaming service method using a still image compression method is a still image according to the image type determined in consideration of one or more of the number of colors of the image corresponding to the change region and the standard deviation of the image pixel value (still image)
  • a compression technique is selected, and a still image encoding is performed on the change region corresponding to one frame using the still image compression technique (S620).
  • the image type of the captured change zone can be a single photo or picture-like type, or an image created by combining several images, determine the image type and apply a still image compression technique suitable for each image type. By selecting and performing still image encoding, the compression efficiency of the change region can be increased.
  • a still image compression technique may be selected according to one of the image types of the natural image and the synthetic image.
  • the natural image may mean an image of a naturally occurring object. For example, it may mean not only an optical image such as a photograph or a picture, but also images of different wavelengths such as X-rays and infrared rays.
  • the synthesized image may mean an image generated or synthesized through computer or artificial means.
  • the image type may be determined as the natural image. Since the natural image may be an image of a naturally occurring object, the change in brightness and saturation applied to the color representing the image may be more sophisticated than the synthesized image. Therefore, since the number of colors represented by the pixels configured to represent the natural image may be more diverse than that of the composite image, the image type corresponding to the change area may be determined in consideration of the number of colors of the image corresponding to the change area. For example, if the preset reference number is set to 100,000, the image type is determined as a natural image when the number of colors constituting the image corresponding to the change area exceeds 100,000, and the image is set to 100,000 or less. The type can be determined as a composite image.
  • the image type may be determined in consideration of the standard deviation of the image pixel values corresponding to the change area.
  • the standard deviation of the pixel value may be a distribution of color values represented by pixels constituting an image corresponding to the change area. If the distribution of color values is 0, it may mean that all colors are the same value. Therefore, a small distribution of color values, that is, a small standard deviation of pixel values may correspond to a small number of colors constituting the image. have. Accordingly, the image type of the image corresponding to the change area may be determined in consideration of the standard deviation of the image pixel values.
  • the image type may be determined as a composite image.
  • the preset reference number is 100,000 for the number of colors in the image
  • the preset reference value is N for the standard deviation of the image pixel values.
  • the image corresponding to the change area is displayed.
  • the image type can be determined as a composite image.
  • the image type may be determined as a natural image. For example, if the standard deviation of the image pixel value corresponding to the change area exceeds a preset reference value, this may mean that the number of colors constituting the image is large. Therefore, if the standard deviation of the image pixel value exceeds a predetermined reference value, it may be determined that the image corresponding to the change area is a natural image composed of many colors.
  • the change region may be still image encoded using a still image compression technique of one of portable network graphics (PNG) and joint photography experts group (JPEG) according to the image type.
  • PNG portable network graphics
  • JPEG joint photography experts group
  • PNG still image compression is good for image quality during encoding, but the transmission speed may be reduced when the bandwidth of the transmission network is low due to the large data size.
  • JPEG still image compression technique is good for compressing data. Although the amount can be greatly reduced, it is a technique that can generate a lot of system load when encoding and decoding as the compression efficiency is large.
  • the JPEG still image compression technique may be more effective when compressing a natural image having similar colors gathered around one pixel. Therefore, when the image type corresponding to the change area is a natural image, the change area may be encoded by a JPEG still image compression technique.
  • a still image encoding of the change region may be performed by selecting a PNG still image compression technique that can improve the image quality of the image.
  • the change region when the change region is a composite image and the size of the change region is large and the data is large, the change region may be encoded using a paletted portable network graphics (PNG) still image compression technique that may reduce the size of the data.
  • 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 cloud streaming service method using the still image compression technique transmits a still image encoded change region to the user to perform a still image-based cloud streaming service (S630).
  • a still image-based cloud streaming service S630.
  • the compressed change area is transmitted to the terminal device of the user, so that the cloud streaming service may be performed so that the user can feel the application running on the terminal device.
  • the cloud streaming service method using the still image compression technique according to an embodiment of the present invention stores various information generated in a cloud streaming service process according to an embodiment of the present invention.
  • FIG. 7 is a block diagram showing a cloud streaming service system according to an embodiment of the present invention.
  • another cloud streaming service system includes a cloud streaming server 710, terminal devices 720-1,..., 720 -N, and a network 730.
  • the cloud streaming server 710 receives the cloud streaming service request from the terminal devices 720-1,..., 720 -N, executes the application, and displays the execution result screen corresponding to the execution result of the terminal devices 720-1. ,..., 720-N).
  • Cloud streaming service basically uses cloud codec based on video codec. Therefore, even if cloud streaming is applied to static screen such as menu display, it is an inefficient way to capture the entire screen and encode to video codec. We performed a cloud streaming service.
  • the encoding method can be determined by performing an image processing process using the resources of the server when encoding the image, it may cause a load on the server.
  • the cloud streaming server detects the change between frames, and encodes only the detected change area by using a still image compression technique.
  • a cloud streaming system for determining an encoding method using image characteristic information.
  • the cloud streaming server 710 captures the change area included in the changed frame compared to the previous frame.
  • the changed area may be captured as the change area in comparison with the screen area corresponding to the previous frame among the screen areas corresponding to the changed frame.
  • a section having a small frame change among the entire frames to be transmitted to the terminal devices 720-1,..., And 720 -N may be detected, and a change region may be captured in a section having a small frame change.
  • an event type of an application generated from the terminal devices 720-1,..., And 720 -N may be detected to detect a section having a small frame change.
  • the cloud streaming server 710 determines an encoding method in consideration of whether there is image characteristic information corresponding to the change area, and encodes the change area using the encoding method.
  • the image characteristic information may be generated based on application source code or may be generated using an MPEG texture descriptor.
  • the encoding scheme may be determined based on the image characteristic information.
  • the encoding scheme may be determined by analyzing an image corresponding to the change region.
  • the encoding scheme may correspond to any one of a portable network graphics (PNG), a portable network graphics (PNG) and a joint photography experts group (JPEG).
  • the image corresponding to the change area may be analyzed to classify the change area into one of the general area and the picture area, and the encoding method may be determined in consideration of at least one of the image processing result of the general area and the image type of the picture area.
  • the image type may correspond to any one of a natural image and a composite image.
  • the cloud streaming server 710 transmits a still image encoded change area to a user to perform a cloud image service based on a still image.
  • the terminal devices 720-1,..., 720 -N receive an application execution result screen corresponding to the cloud streaming service from the cloud streaming server 710 and provide the result to the user.
  • Terminal devices 720-1,..., 720 -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, multimedia terminals, and wired devices.
  • Various terminals such as a terminal, a fixed terminal, and an Internet Protocol (IP) terminal.
  • IP Internet Protocol
  • the terminal devices 720-1,..., 720 -N are mobile phones, portable multimedia players (PMPs), mobile internet devices (MIDs), smart phones, desktops, and tablet computers, respectively. It may be a mobile terminal having various mobile communication specifications such as a PC, a notebook, a net book, a personal digital assistant (PDA), a smart TV, and an information communication device.
  • PDA personal digital assistant
  • the network 730 provides a path for transferring data between the cloud streaming server 710 and the terminal devices 720-1,..., 720 -N, and includes both an existing network and a future network. It is a comprehensive concept.
  • the network 730 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 satellite 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 730 is not limited to the existing transmission standard, and may include all transmission standard that will be developed in the future.
  • the network used between the cloud streaming server 710 and the terminal devices 720-1, ..., 720-N in FIG. 7 is used between the terminal devices 720-1, ..., 720 -N. It may be different from the network or may be the same.
  • FIG. 8 is a block diagram illustrating an example of a cloud streaming server of FIG. 7.
  • the cloud streaming server 710 illustrated in FIG. 7 includes a capture unit 810, an encoder 820, a sender 830, and a storage 840.
  • the capture unit 810 captures a change area included in the changed frame.
  • the video codec-based cloud streaming technique can perform encoding by capturing all frames corresponding to the screen on which the application operates. However, if the change between frames is not large on the screen on which the application is running, the still image encoding is performed by capturing only the change area of the changed frame compared to the previous frame, and the parts except for the change area when displaying on the user's terminal device are the same. It can be displayed in such a way that it is displayed in a simple manner and only the change area is changed.
  • the changed area may be captured as the change area in comparison with the screen area corresponding to the previous frame of the changed frame among the screen areas corresponding to the changed frame. For example, if the changed area is the A area compared to the screen area corresponding to the previous frame among the screen areas corresponding to the changed frame, only the A area of the screen area corresponding to the changed frame may be captured as the change area.
  • the change area may have various characteristics of an image corresponding to the size or the change area according to an input signal input from the user's terminal device.
  • a section having a small frame change among the entire sections of the frame to be transmitted to the user's terminal device may be detected, and the change region may be captured at the section having a small frame change.
  • the event type of the application generated from the user's terminal device may be detected to detect a section having less frame change.
  • an event type of an application may be determined according to an input signal generated from a user terminal device.
  • an application is executed such as a menu, an option, or a guide window according to an input signal, a static event having a small change in a frame or a dynamic event in which a frame frequently changes such as a video play and a game play may occur. Therefore, when the user detects an event type with an input signal generated through the terminal device, and if the event type is a static event, a section having a small frame change can be detected among all frame sections corresponding to the corresponding event.
  • the encoding unit 820 determines an encoding scheme in consideration of whether there is image characteristic information corresponding to the change region, and encodes the change region using the determined encoding scheme.
  • the encoding scheme may be determined according to the characteristics of the image corresponding to the change area, and the characteristics of the image may be extracted based on the result analyzed through image processing.
  • the image processing may be performed using resources of the cloud streaming server 710 to increase the load of the system. Therefore, if there is image characteristic information that already includes information corresponding to the characteristics of the image corresponding to the change area, it is possible to save resources of the cloud streaming server 710 by determining the encoding scheme using this information.
  • the image characteristic information may be generated based on application source code or may be generated using an MPEG texture descriptor.
  • the application source code or MPEG texture descriptor may include descriptors for identifying configuration information on the application result screen output by a user request or characteristics of the elements constituting the application result screen. For example, in the case of application source code, a feature corresponding to an image file extension corresponding to a change area, such as JPG, GIF, and PNG, or a size corresponding to an image size using commands such as height and width may be extracted.
  • image characteristic information may be generated using a texture descriptor of the MPEG-7 standard visual field that handles important visual features such as color, outline, object or camera movement, and the like.
  • the image characteristic information may be characteristic and configuration information of the entire area of the corresponding frame, or may be characteristic and configuration information of the change area of the frame, or may be a characteristic of some areas of the change area, that is, a general area or a picture area And configuration information.
  • the encoding scheme may be determined based on the image characteristic information.
  • the encoding scheme may be determined by analyzing an image corresponding to the change region. For example, assuming that there is image characteristic information corresponding to the change region, image characteristics such as the size, image resolution, and image type of the image corresponding to the change region may be extracted using the image characteristic information. The extracted image characteristics may determine the encoding method.
  • an image processing process may be performed to extract image characteristics, such as an image size, an image resolution, and an image type, for an image corresponding to the change area.
  • the characteristics of the image extracted from the image characteristic information or extracted through image processing may exist in various kinds except for the size, image resolution, and image type of the image.
  • the encoding scheme may correspond to any one of a portable network graphics (PNG), a portable network graphics (PNG) and a joint photography experts group (JPEG).
  • PNG portable network graphics
  • PNG portable network graphics
  • JPEG joint photography experts group
  • 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.
  • 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. However, the high compression efficiency can cause a large system load when encoding and decoding.
  • the image corresponding to the change area may be analyzed to classify the change area into one of the general area and the picture area, and the encoding method may be determined in consideration of at least one of the image processing result of the general area and the image type of the picture area.
  • the picture area may be an area composed of files corresponding to image formats such as JPEG, PNG, and GIF
  • the general area may be regarded as an area excluding the picture area among the change areas. Therefore, in the case of a picture area, a property is already given based on an image type, and in the case of a general area, when it is determined that the area corresponding to the general area is a captured image, it is determined whether the property belongs to the image through image processing. Can be.
  • the image type may correspond to any one of a natural image and a composite image.
  • the natural image may mean an image such as a single picture or a picture
  • the composite image may be an image made by combining several images.
  • compression efficiency may be more effective when encoding using the JPEG encoding method, and when the image type is a composite image, a paletted PNG encoding method may be used to reduce the size of data. Encoding may be effective.
  • the sending unit 830 transmits a still image encoded change region to a user to perform a still image based cloud streaming service.
  • the compressed change area is transmitted to the terminal device of the user, so that the cloud streaming service may be performed so that the user can feel the application running on the terminal device.
  • the storage unit 840 stores various information generated in the cloud streaming service process according to the embodiment of the present invention as described above.
  • the storage unit 840 may be configured independently of the cloud streaming server 710 to support a function for a cloud streaming service.
  • the storage unit 840 may operate as a separate mass storage, and may include a control function for performing an operation.
  • cloud streaming server 710 configured as described above may be implemented as one or more servers.
  • the cloud streaming server 710 may have a memory and 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.
  • FIG. 9 is a diagram illustrating an example of a still image-based cloud streaming system.
  • the server 910 may perform a screen capture by executing a program screen 910 corresponding to a user input generated from a user terminal device.
  • the server 900 may be a server that collectively refers to a cloud streaming server and a web application server.
  • the process of executing the screen capture by executing the program screen 910 may correspond to the operation flow of the capture unit 810 illustrated in FIG. 8.
  • the server 900 may encode the screen captured program screen 910 through a still image compression technique.
  • the process of performing the encoding (Image Encoding) 920 may correspond to the operation flow of the encoding unit 820 illustrated in FIG. 8.
  • the changed frame may be compared with the previous frame to capture only the changed area.
  • one of the encoding schemes among portable network graphics (PNG), portable network graphics (PNG), and joint photography experts group (JPEG) is selected. You can still image-encode the region that has changed with your chosen encoding scheme.
  • the server 900 may provide a still image-based cloud streaming service by streaming the still image encoded changed region to the user's terminal device.
  • the process of performing streaming 930 may correspond to the operation flow of the sender 830 illustrated in FIG. 8.
  • the user terminal device renders the received data (Image Rendering) 940 to the user as if the program screen 910 executed in the application by the user input (User Input) as if executed in the user terminal device. It can be displayed.
  • FIG. 10 is a diagram illustrating a process of capturing a change area in a cloud streaming service according to an embodiment of the present invention.
  • the still image-based cloud streaming service may compare and capture only the changed change region 1030 by comparing the first frame 1010 and the second frame 1020.
  • the cursor in the first frame 1010, the cursor is located in the C area so that the C area is formed. Shaded to distinguish it from other B, D, and E regions, and in the second frame 1020, the cursor is moved from the C region to the D region so that the D region can be distinguished from other B, C, and E regions. Can be processed.
  • the change region 1030 when the first frame 1010 and the second frame 1020 are compared, only the changed regions C and D may be captured as the change region 1030.
  • an encoding method may be selected in consideration of whether there is image characteristic information corresponding to the change area 1030, and the change area 1030 may be still image encoded using the selected encoding method.
  • the first frame 1010 and the second frame 1020 are clearly changed frames, and in the existing cloud streaming service, both frames should be encoded to capture the number of frames corresponding to the frame rate. Can be.
  • the still image-based cloud streaming service captures only the change area 1030 and encodes it using a still image compression technique, it is possible to improve the efficiency of the service than the conventional cloud streaming service method of capturing an unnecessary number of frames and the entire screen of the frame. Can be.
  • FIG. 11 is a flowchart illustrating a cloud streaming service method using source information according to an embodiment of the present invention.
  • the cloud streaming service method using source information captures a change region included in a changed frame (S1110).
  • the video codec-based cloud streaming technique can perform encoding by capturing all frames corresponding to the screen on which the application operates. However, if the change between frames is not large on the screen on which the application is running, the still image encoding is performed by capturing only the change area of the changed frame compared to the previous frame, and the parts except for the change area when displaying on the user's terminal device are the same. It can be displayed in such a way that it is displayed in a simple manner and only the change area is changed.
  • the changed area may be captured as the change area in comparison with the screen area corresponding to the previous frame of the changed frame among the screen areas corresponding to the changed frame. For example, if the changed area is the A area compared to the screen area corresponding to the previous frame among the screen areas corresponding to the changed frame, only the A area of the screen area corresponding to the changed frame may be captured as the change area.
  • the change area may have various characteristics of an image corresponding to the size or the change area according to an input signal input from the user's terminal device.
  • a section having a small frame change among the entire sections of the frame to be transmitted to the user's terminal device may be detected, and the change region may be captured at the section having a small frame change.
  • the event type of the application generated from the user's terminal device may be detected to detect a section having less frame change.
  • an event type of an application may be determined according to an input signal generated from a user terminal device.
  • an application is executed such as a menu, an option, or a guide window according to an input signal, a static event having a small change in a frame or a dynamic event in which a frame frequently changes such as a video play and a game play may occur. Therefore, when the user detects an event type with an input signal generated through the terminal device, and if the event type is a static event, a section having a small frame change can be detected among all frame sections corresponding to the corresponding event.
  • the cloud streaming service method using the source information determines the encoding method in consideration of whether there is image characteristic information corresponding to the change region, and still change the change region using the determined encoding scheme Image encoding (S1120).
  • the encoding scheme may be determined according to the characteristics of the image corresponding to the change area, and the characteristics of the image may be extracted based on the result analyzed through image processing.
  • image processing is performed using the resources of the cloud streaming server, it can cause a load on the system. Therefore, if there is already image characteristic information that includes information corresponding to the characteristics of the image corresponding to the change area, it is possible to save resources of the cloud streaming server by determining the encoding scheme using this information.
  • the image characteristic information may be generated based on application source code or may be generated using an MPEG texture descriptor.
  • the application source code or MPEG texture descriptor may include descriptors for identifying configuration information on the application result screen output by a user request or characteristics of the elements constituting the application result screen.
  • a feature corresponding to an image file extension corresponding to a change area such as JPG, GIF, and PNG, or a size corresponding to an image size using commands such as height and width may be extracted.
  • image characteristic information may be generated using a texture descriptor of the MPEG-7 standard visual field that handles important visual features such as color, outline, object or camera movement, and the like.
  • the image characteristic information may be characteristic and configuration information of the entire area of the corresponding frame, or may be characteristic and configuration information of the change area of the frame, or may be a characteristic of some areas of the change area, that is, a general area or a picture area And configuration information.
  • the encoding scheme may be determined based on the image characteristic information.
  • the encoding scheme may be determined by analyzing an image corresponding to the change region. For example, assuming that there is image characteristic information corresponding to the change region, image characteristics such as the size, image resolution, and image type of the image corresponding to the change region may be extracted using the image characteristic information. The extracted image characteristics may determine the encoding method.
  • an image processing process may be performed to extract image characteristics, such as an image size, an image resolution, and an image type, for an image corresponding to the change area.
  • the characteristics of the image extracted from the image characteristic information or extracted through image processing may exist in various kinds except for the size, image resolution, and image type of the image.
  • the encoding scheme may correspond to any one of a portable network graphics (PNG), a portable network graphics (PNG) and a joint photography experts group (JPEG).
  • PNG portable network graphics
  • PNG portable network graphics
  • JPEG joint photography experts group
  • 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.
  • 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. However, the high compression efficiency can cause a large system load when encoding and decoding.
  • the image corresponding to the change area may be analyzed to classify the change area into one of the general area and the picture area, and the encoding method may be determined in consideration of at least one of the image processing result of the general area and the image type of the picture area.
  • the picture area may be an area composed of files corresponding to image formats such as JPEG, PNG, and GIF
  • the general area may be regarded as an area excluding the picture area among the change areas. Therefore, in the case of a picture area, a property is already given based on an image type, and in the case of a general area, when it is determined that the area corresponding to the general area is a captured image, it is determined whether the property belongs to the image through image processing. Can be.
  • the image type may correspond to any one of a natural image and a composite image.
  • the natural image may mean an image such as a single picture or a picture
  • the composite image may be an image made by combining several images.
  • compression efficiency may be more effective when encoding using the JPEG encoding method, and when the image type is a composite image, a paletted PNG encoding method may be used to reduce the size of data. Encoding may be effective.
  • the cloud streaming service method using the source information performs a still image-based cloud streaming service by transmitting a still image encoded change region to the user (S1130).
  • the cloud streaming service may be performed to receive a feeling of running an application on the user terminal device by transmitting a still image encoding the compressed change region to the user terminal device.
  • FIG. 12 is an operation flowchart showing in detail a cloud streaming service method using source information according to an embodiment of the present invention.
  • a change region included in a changed frame in a cloud streaming server is captured (S1210).
  • the changed area may be captured as the change area in comparison with the screen area corresponding to the previous frame of the changed frame among the screen areas corresponding to the changed frame.
  • a section having a small frame change among the entire sections of the frame to be transmitted to the user's terminal device may be detected, and the change region may be captured at the section having a small frame change.
  • the event type of the application generated from the user's terminal device may be detected to detect a section having less frame change.
  • the image characteristic information may be generated based on application source code or may be generated using an MPEG texture descriptor.
  • step S1215 If the determination result of step S1215 exists, an encoding method is determined based on the image characteristic information (S1220).
  • step S1215 If the result of the determination in step S1215 does not exist, an image corresponding to the change area is analyzed (S1230), and an encoding method is determined in consideration of the analyzed result (S1240).
  • the encoding scheme may correspond to any one of a portable network graphics (PNG), a portable network graphics (PNG) and a joint photography experts group (JPEG).
  • PNG portable network graphics
  • PNG portable network graphics
  • JPEG joint photography experts group
  • the still image-encoded change area is transmitted to the user to perform a still image based cloud streaming service (S1260).
  • FIG. 13 is a block diagram showing a cloud streaming service system according to another embodiment of the present invention.
  • another cloud streaming service system includes a cloud streaming server 1310, terminal devices 1320-1,..., 1320 -N, and a network 1330.
  • the cloud streaming server 1310 receives the cloud streaming service request from the terminal devices 1320-1,..., 1320 -N, executes the application, and displays the execution result screen corresponding to the execution result of the terminal devices 1320-1. , ..., 1320-N).
  • the cloud streaming server 1310 captures the change area included in the changed frame compared to the previous frame.
  • the changed area may be captured as the change area in comparison with the screen area corresponding to the previous frame among the screen areas corresponding to the changed frame.
  • a section having a small frame change among the entire sections of the frame to be transmitted to the terminal devices 1320-1,..., 1320 -N may be detected, and the change region may be captured in the section having a small frame change.
  • an event type of an application generated from the terminal devices 1320-1,..., 1320 -N may be detected to detect a section having a small frame change.
  • the cloud streaming server 1310 selects an encoding processing unit in consideration of at least one of an image characteristic and an image resolution corresponding to the change region, and encodes the change region corresponding to one frame using the encoding processing unit.
  • the encoding processing unit may be an encoding processing unit of any one of a central processing unit (CPU) and a graphics processing unit (GPU).
  • the encoding processing cost for each of the central processing unit and the graphics processing unit is estimated in consideration of one or more of the image characteristics and the image resolution, and the encoding processing unit having the low encoding processing cost is selected from the central processing unit and the graphics processing unit. You can still image change regions.
  • the change area when the image resolution corresponding to the change area is equal to or larger than a predetermined reference value, the change area may be still image encoded using the graphic processing unit.
  • the encoding processing unit when an image resolution corresponding to the change area is less than a predetermined reference value, the encoding processing unit may be selected in consideration of a still image compression technique according to an image characteristic corresponding to the change area.
  • the image resolution is less than a predetermined reference value and the still image compression technique is a paletted PNG
  • the change region may be still image encoded using the graphic processing unit.
  • the cloud streaming server 1310 transmits a still image encoded change area to a user to perform a cloud image service based on a still image.
  • the terminal devices 1320-1,..., 1320 -N receive an application execution result screen corresponding to the cloud streaming service from the cloud streaming server 1310 and provide the result to the user.
  • the terminal devices 1320-1,..., 1320 -N are devices connected to a communication network to execute applications based on a cloud computing system, and are not limited to mobile communication terminals.
  • Various terminals such as a terminal, a fixed terminal, and an Internet Protocol (IP) terminal.
  • IP Internet Protocol
  • the terminal devices 1320-1,..., 1320 -N are mobile phones, portable multimedia players (PMPs), mobile internet devices (MIDs), smart phones, desktops, and tablet computers, respectively. It may be a mobile terminal having various mobile communication specifications such as a PC, a notebook, a net book, a personal digital assistant (PDA), a smart TV, and an information communication device.
  • PDA personal digital assistant
  • the network 1330 provides a path for transferring data between the cloud streaming server 1310 and the terminal devices 1320-1,..., 1320 -N.
  • the network 1330 includes both an existing network and a future network. It is a comprehensive concept.
  • the network 1330 may be a wired / wireless local area network that provides communication of various information devices in a limited area, a mobile communication network that provides communication between each other, and a mobile device and the outside of the mobile device, and communication between earth stations and earth stations 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 method standard of the network 1330 is not limited to the existing transmission method standard and may include all transmission method standards to be developed in the future.
  • a network used between the cloud streaming server 1310 and the terminal devices 1320-1,..., 1320 -N is used between the terminal devices 1320-1,..., 1320 -N. It may be different from the network or may be the same.
  • FIG. 14 is a block diagram illustrating an example of a cloud streaming server illustrated in FIG. 13.
  • the cloud streaming server 1310 illustrated in FIG. 13 includes a capture unit 1410, an encoder 1420, a sender 1430, and a storage unit 1440.
  • Image cloud streaming which detects only the change area in the cloud streaming service and performs the cloud streaming service.
  • a central processing unit CPU
  • a graphics processing unit GPU
  • Encoding can be performed using.
  • a combination of a central processing unit and a graphic processing unit should be appropriately used in a situation.
  • the present invention is to propose a configuration that can provide an image cloud streaming service more efficiently by using the encoding processing unit appropriate to the situation by identifying the characteristics of the change region.
  • the capture unit 1410 captures the change area included in the changed frame compared to the previous frame.
  • the video codec-based cloud streaming technique can perform encoding by capturing all frames corresponding to the screen on which the application operates. However, if the change between frames is not large on the screen on which the application is running, the still image encoding is performed by capturing only the change area of the changed frame compared to the previous frame, and the parts except for the change area when displaying on the user's terminal device are the same. It can be displayed in such a way that it is displayed in a simple manner and only the change area is changed.
  • the changed area may be captured as the change area in comparison with the screen area corresponding to the previous frame among the screen areas corresponding to the changed frame.
  • the changed area is the A area compared to the screen area corresponding to the previous frame among the screen areas corresponding to the changed frame, only the A area of the screen area corresponding to the changed frame may be captured as the change area.
  • the change area may have various types of images corresponding to the resolution or the change area according to an input signal input from the user's terminal device.
  • a section having a small frame change among the entire sections of the frame to be transmitted to the user's terminal device may be detected, and the change region may be captured at the section having a small frame change.
  • the event type of the application generated from the user's terminal device may be detected to detect a section having less frame change.
  • an event type of an application may be determined according to an input signal generated from a user terminal device.
  • an application is executed such as a menu, an option, or a guide window according to an input signal, a static event having a small change in a frame or a dynamic event in which a frame frequently changes such as a video play and a game play may occur. Therefore, when the user detects an event type with an input signal generated through the terminal device, and if the event type is a static event, a section having a small frame change can be detected among all frame sections corresponding to the corresponding event.
  • the encoder 1420 selects an encoding processing unit in consideration of at least one of an image characteristic and an image resolution corresponding to the change area, and uses the encoding processing unit to still image encode the change area corresponding to one frame.
  • the encoding processing unit may be an encoding processing unit of any one of a central processing unit (CPU) and a graphics processing unit (GPU).
  • CPU central processing unit
  • GPU graphics processing unit
  • the central processing unit is the most important part of a computer and may be a device for decoding instructions and performing arithmetic logic operations or data processing. Therefore, the computational speed of a computer, the amount of data to be handled at one time, and the size of a main memory area that can be managed may depend on the performance of the central processing unit.
  • the change region is encoded using such a central processing unit (CPU)
  • since the encoding may be performed without transferring the data to be encoded to another unit, the cost of data transmission may not be incurred.
  • the resolution of the image corresponding to the change area is high, it may take a long time to perform the encoding.
  • encoding may take a long time if a lot of simple calculations are repeated, such as performing color quantization in a paletted portable network graphics (PNG) still image compression technique.
  • PNG paletted portable network graphics
  • a graphics processing unit is a processor dedicated to 3D graphics computation developed to process various light source effects and texture expression techniques for making a display screen more realistic after 3D graphics are introduced in earnest.
  • graphics processing unit GPU
  • additional transfer cost may be incurred because the data to be encoded is first received from the central processing unit, and the encoded data must be transferred back to the central processing unit even after the encoding is completed. Can be.
  • the encoding processing cost for each of the central processing unit and the graphics processing unit is estimated in consideration of one or more of the image characteristics and the image resolution, and the encoding processing unit having the low encoding processing cost is selected from the central processing unit and the graphics processing unit.
  • encoding processing cost statistics may be generated for encoding processing costs generated after encoding is performed. For example, a certain unit period may be set while the cloud streaming service is performed, and the encoding process cost statistics may be updated by using stored information about the encoding process cost for each set unit period. Such encoding processing cost statistics may be generated as detailed statistical information on each of image characteristics, image resolutions, and encoding processing units, and increase reliability of a cloud streaming service method using an optional encoding processing unit based on the generated statistical information. You can.
  • the change area may be still image encoded using the graphic processing unit.
  • the resolution may indicate how many pixels or dots are used to represent the image.
  • ppi pixel per inch
  • dpi dots per inch
  • the encoding processing time may be long, and the encoding processing cost may be high.
  • the encoding processing unit may be selected in consideration of a still image compression technique according to an image characteristic corresponding to the change area. If the image resolution corresponding to the change area is lower than the predetermined reference value, encoding may be performed in the central processing unit without transferring data to be encoded to the graphic processing unit. However, even if the image resolution is low, a simple calculation may need to be repeated by a still image compression technique selected according to the image characteristics corresponding to the change region, so that the encoding processing unit should be selected considering the image type of the change region once again. Can be.
  • Still image compression techniques may also be determined according to image characteristics such as the size of the image or the type of image corresponding to the change area.
  • the still image compression technique may correspond to any one of a portable network graphics (PNG), a portable network graphics (PNG), and a joint photography experts group (JPEG).
  • PNG still image compression is good in encoding, but the data size is large, resulting in a slow response when the bandwidth of the transmission network is low.
  • Palletized PNG still image compression reduces the size of the data but can result in deterioration of image quality, especially because of simple color calculations due to the color quantization process for data size reduction.
  • JPEG still image compression may have a good compression efficiency of data depending on the type of image to be transmitted, but a high compression efficiency may cause a heavy load in encoding and decoding.
  • the change region may be still image encoded using the graphic processing unit.
  • the encoding processing time may be long when encoding is performed using a paletted PNG still image compression technique due to the image characteristics of the change region because a simple calculation such as color quantization is repeated. Accordingly, in such a case, the cloud streaming service can be performed at a lower encoding processing cost than the encoding using the central processing unit by performing the encoding using the graphic processing unit.
  • the sending unit 1430 transmits the still image encoded change region to the user to perform a still image based cloud streaming service.
  • the compressed change area is transmitted to the terminal device of the user, so that the cloud streaming service may be performed so that the user can feel the application running on the terminal device.
  • the storage unit 1440 stores various information generated in the cloud streaming service process according to the embodiment of the present invention as described above.
  • the storage unit 1440 may be configured independently of the cloud streaming server 1310 to support a function for a cloud streaming service.
  • the storage unit 1440 may operate as a separate mass storage, and may include a control function for performing an operation.
  • cloud streaming server 1310 configured as described above may be implemented as one or more servers.
  • the cloud streaming server 1310 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.
  • 15 is a diagram illustrating another example of a still image-based cloud streaming system.
  • the server 1500 may perform a screen capture by executing a program screen 1510 corresponding to a user input generated from a user terminal device.
  • the server 1500 may be a server that collectively refers to a cloud streaming server and a web application server.
  • the process of executing the screen capture by executing the program screen 1510 may correspond to the operation flow of the capture unit 1410 illustrated in FIG. 14.
  • the server 1500 may encode the screen-captured program screen 1510 through a still image compression technique.
  • the process of performing the encoding (Image Encoding) 1520 may correspond to the operation flow of the encoding unit 1420 illustrated in FIG. 14.
  • the changed frame may be compared with the previous frame to capture only the changed area.
  • the encoding processing unit of either the central processing unit or the graphics processing unit may be selected in consideration of the image characteristics of the changed area and the image resolution corresponding to the changed area, and the still area may be encoded using the selected encoding processing unit. Can be.
  • the server 1500 may provide a still image-based cloud streaming service by streaming the still image encoded changed region to the user's terminal device 1530.
  • the process of performing the streaming 1530 may correspond to the operation flow of the sender 1430 illustrated in FIG. 14.
  • the user terminal device renders the received data (Image Rendering) 1540 to the user as if the program screen 1510 executed in the application by the user input (User Input) as if executed in the user terminal device. It can be displayed.
  • FIG. 16 illustrates an encoding processing unit according to an embodiment of the present invention.
  • an encoding processing unit may be divided into a central processing unit (CPU) 1610 and a graphics processing unit (GPU) 1620.
  • CPU central processing unit
  • GPU graphics processing unit
  • the central processing unit 1610 may be a device that decodes instructions and executes arithmetic logic or data processing as the most important part of the computer. Therefore, the computational speed of the computer, the amount of data to be handled at one time, the size of the main memory area that can be managed, and the like may depend largely on the performance of the central processing unit.
  • CPU central processing unit
  • the encoding may be performed without transferring the data to be encoded to another unit, the cost of data transmission may not be incurred.
  • the resolution of the image corresponding to the change area is high, it may take a long time to perform the encoding. In particular, encoding may take a long time if a lot of simple calculations are repeated, such as performing color quantization in a paletted portable network graphics (PNG) still image compression technique.
  • PNG paletted portable network graphics
  • the graphics processing unit 1620 is a processor dedicated to 3D graphics computation developed to process various light source effects and texture expression techniques for making the display screen more realistic after 3D graphics are introduced in earnest.
  • graphics processing unit GPU
  • additional transfer costs may be incurred because the data to be encoded is first received from the central processing unit, and the encoded data must be transferred back to the central processing unit even after the encoding is completed. Can be.
  • Such a central processing unit 1610 and the graphics processing unit 1620 may exist independently in the server 1600 as shown in FIG. Alternatively, unlike FIG. 16, the central processing unit 1610 and the graphic processing unit 1620 are mixed in one device, or the graphics processing unit 1620 is included in the central processing unit 1610. Can be.
  • central processing unit 1610 and the graphics processing unit 1620 may be connected to transmit and receive data.
  • 17 is a diagram illustrating a process of capturing a change area in a cloud streaming service according to another embodiment of the present invention.
  • the still image-based cloud streaming service may compare and capture only the changed change area 1730 by comparing the first frame 1710 and the second frame 1720.
  • the C area is different because the cursor is positioned in the C area.
  • the cursor is moved from the C area to the D area so that the D area can be shaded so as to be distinguished from other B, C, and E areas. Can be.
  • the encoding processing unit may be selected in consideration of the resolution of the change area 1730 and the image type corresponding to the change area 1730, and the change area 1730 may be encoded using the selected encoding processing unit.
  • the first frame 1710 and the second frame 1720 are clearly changed frames, and in the existing cloud streaming service, it may be necessary to capture and encode all the frames corresponding to the frame rate including two frames. have.
  • the still image-based cloud streaming service captures only the change area 1730 and encodes it with a still image compression technique, thereby improving the efficiency of the service than the conventional cloud streaming service method of capturing an unnecessary number of frames and the entire screen. Can be.
  • FIG. 18 is a flowchart illustrating a cloud streaming service method using an optional encoding processing unit according to an embodiment of the present invention.
  • the cloud streaming service method using the selective encoding processing unit captures the change region included in the changed frame in comparison with the previous frame (S1810).
  • the video codec-based cloud streaming technique can perform encoding by capturing all frames corresponding to the screen on which the application operates. However, if the change between frames is not large on the screen on which the application is running, the still image encoding is performed by capturing only the change area of the changed frame compared to the previous frame, and the parts except for the change area when displaying on the user's terminal device are the same. It can be displayed in such a way that it is displayed in a simple manner and only the change area is changed.
  • the changed area may be captured as the change area in comparison with the screen area corresponding to the previous frame among the screen areas corresponding to the changed frame.
  • the changed area is the A area compared to the screen area corresponding to the previous frame among the screen areas corresponding to the changed frame, only the A area of the screen area corresponding to the changed frame may be captured as the change area.
  • the change area may have various types of images corresponding to the resolution or the change area according to an input signal input from the user's terminal device.
  • a section having a small frame change among the entire sections of the frame to be transmitted to the user's terminal device may be detected, and the change region may be captured at the section having a small frame change.
  • the event type of the application generated from the user's terminal device may be detected to detect a section having less frame change.
  • an event type of an application may be determined according to an input signal generated from a user terminal device.
  • an application is executed such as a menu, an option, or a guide window according to an input signal, a static event having a small change in a frame or a dynamic event in which a frame frequently changes such as a video play and a game play may occur. Therefore, when the user detects an event type with an input signal generated through the terminal device, and if the event type is a static event, a section having a small frame change can be detected among all frame sections corresponding to the corresponding event.
  • the cloud streaming service method using the selective encoding processing unit selects the encoding processing unit in consideration of one or more of the image characteristics and image resolution corresponding to the change region, and using the encoding processing unit
  • the change region corresponding to one frame is still image encoded (S1820).
  • the encoding processing unit may be an encoding processing unit of any one of a central processing unit (CPU) and a graphics processing unit (GPU).
  • CPU central processing unit
  • GPU graphics processing unit
  • the central processing unit is the most important part of a computer and may be a device for decoding instructions and performing arithmetic logic operations or data processing. Therefore, the computational speed of the computer, the amount of data to be handled at one time, the size of the main memory area that can be managed, and the like may depend largely on the performance of the central processing unit.
  • the change region is encoded using such a central processing unit (CPU)
  • since the encoding may be performed without transferring the data to be encoded to another unit, the cost of data transmission may not be incurred.
  • the resolution of the image corresponding to the change area is high, it may take a long time to perform the encoding.
  • encoding may take a long time if a lot of simple calculations are repeated, such as performing color quantization in a paletted portable network graphics (PNG) still image compression technique.
  • PNG paletted portable network graphics
  • a graphics processing unit is a processor dedicated to 3D graphics computation developed to process various light source effects and texture expression techniques for making a display screen more realistic after 3D graphics are introduced in earnest.
  • graphics processing unit GPU
  • additional transfer costs may be incurred because the data to be encoded is first received from the central processing unit, and the encoded data must be transferred back to the central processing unit even after the encoding is completed. Can be.
  • the encoding processing cost for each of the central processing unit and the graphics processing unit is estimated in consideration of one or more of the image characteristics and the image resolution, and the encoding processing unit having the low encoding processing cost is selected from the central processing unit and the graphics processing unit.
  • encoding processing cost statistics may be generated for encoding processing costs generated after encoding is performed. For example, a certain unit period may be set while the cloud streaming service is performed, and the encoding process cost statistics may be updated by using stored information about the encoding process cost for each set unit period. Such encoding processing cost statistics may be generated as detailed statistical information on each of image characteristics, image resolutions, and encoding processing units, and increase reliability of a cloud streaming service method using an optional encoding processing unit based on the generated statistical information. You can.
  • the change area may be still image encoded using the graphic processing unit.
  • the resolution may indicate how many pixels or dots are used to represent the image.
  • ppi pixel per inch
  • dpi dots per inch
  • the encoding processing time may be long, and the encoding processing cost may be high.
  • the encoding processing unit may be selected in consideration of a still image compression technique according to an image characteristic corresponding to the change area. If the image resolution corresponding to the change area is lower than the predetermined reference value, encoding may be performed in the central processing unit without transferring data to be encoded to the graphic processing unit. However, even if the image resolution is low, a simple calculation may need to be repeated by a still image compression technique selected according to the image characteristics corresponding to the change region, so that the encoding processing unit should be selected considering the image type of the change region once again. Can be.
  • Still image compression techniques may also be determined according to image characteristics such as the size of the image or the type of image corresponding to the change area.
  • the still image compression technique may correspond to any one of a portable network graphics (PNG), a portable network graphics (PNG), and a joint photography experts group (JPEG).
  • PNG still image compression is good in encoding, but the data size is large, resulting in a slow response when the bandwidth of the transmission network is low.
  • Palletized PNG still image compression reduces the size of the data but can result in deterioration of image quality, especially because of simple color calculations due to the color quantization process for data size reduction.
  • JPEG still image compression may have a good compression efficiency of data depending on the type of image to be transmitted, but a high compression efficiency may cause a heavy load in encoding and decoding.
  • the change region may be still image encoded using the graphic processing unit.
  • the encoding processing time may be long when encoding is performed using a paletted PNG still image compression technique due to the image characteristics of the change region because a simple calculation such as color quantization is repeated. Accordingly, in such a case, the cloud streaming service can be performed at a lower encoding processing cost than the encoding using the central processing unit by performing the encoding using the graphic processing unit.
  • the cloud streaming service method using the selective encoding processing unit transmits a still image encoded change region to a user to perform a still image based cloud streaming service (S1830).
  • the compressed change area is transmitted to the terminal device of the user, so that the cloud streaming service may be performed so that the user can feel the application running on the terminal device.
  • the cloud streaming service method using the selective encoding processing unit may store various information generated in the cloud streaming service process.
  • FIG. 19 is a flowchart illustrating a cloud streaming service method using a selective encoding processing unit according to an embodiment of the present invention in detail.
  • the cloud streaming service method using the selective encoding processing unit first captures a change region included in a changed frame in comparison with a previous frame (S1910).
  • step S1915 If the determination result in step S1915 is equal to or greater than the reference value, the change area is encoded into the graphic processing unit (S1920).
  • step (S1915) If the determination result of the step (S1915) is less than the reference value, it is determined whether the still image compression technique for encoding the change area is a palletized PNG still image compression technique (S1925).
  • the change region is encoded into the graphic processing unit (S1920).
  • the change region is encoded into the central processing unit (S1930).
  • the still image compression technique for encoding the change region may correspond to any one of the PNG still image compression technique and the JPEG still image compression technique.
  • the still image encoded change area is transmitted to the user to perform a still image based cloud streaming service (S1940).
  • FIG. 20 is a block diagram showing a cloud streaming service system according to another embodiment of the present invention.
  • another cloud streaming service system includes a cloud streaming server 2010, terminal devices 2020-1,..., 2020 -N, and a network 2030.
  • the cloud streaming server 2010 receives an cloud streaming service request from the terminal devices 2020-1,..., 2020 -N, executes an application, and displays an execution result screen corresponding to the execution result of the terminal devices 2020-1. , ..., 2020-N).
  • the cloud streaming server 2010 captures the change area included in the changed frame.
  • the changed area may be captured as the change area in comparison with the screen area corresponding to the previous frame of the changed frame among the screen areas corresponding to the changed frame.
  • a section having a small frame change among the entire frames to be transmitted to the terminal devices 2020-1,..., And 2020 -N may be detected, and the change region may be captured in the section having a small frame change.
  • an event type of an application generated from the terminal devices 2020-1,..., 2020 -N may be detected to detect a section having a small frame change.
  • the cloud streaming server 2010 separates the encoding process for the change area into a plurality of unit processes, at least one of the unit processes is allocated to a graphics processing unit (GPU), and the graphics processing unit The remaining unit processes that are not allocated to the CPU are allocated to a central processing unit (CPU) to perform an encoding process to encode still regions of the change region.
  • the unit processes may correspond to any one of image analysis, still image compression technique determination, still image compression, and compressed data collection corresponding to the change area.
  • the unit process corresponding to the still image compression may be allocated to the graphic processing unit based on the processing result corresponding to the image analysis and the still image compression technique determination.
  • the still image compression may include one or more processes of color histogram construction, palette generation, palette-based original color quantization, and palette-based encoding on an image corresponding to the change area.
  • the graphics processing unit may deliver a processing result corresponding to the still image compression to the central processing unit.
  • the central processing unit may perform the unit process corresponding to the compressed data collection by using the processing result corresponding to the still image compression.
  • the central processing unit may transfer image data corresponding to the change area to the graphic processing unit when a unit process corresponding to still image compression is assigned to the graphic processing unit.
  • the cloud streaming server 2010 transmits a still image encoded change area to a user to perform a still image-based cloud streaming service.
  • the terminal devices 2020-1,..., 2020 -N receive an application execution result screen corresponding to the cloud streaming service from the cloud streaming server 2010 and provide the result to the user.
  • the terminal devices 2020-1,..., 2020 -N are devices connected to a communication network to execute applications based on a cloud computing system, and are not limited to mobile communication terminals.
  • Various terminals such as a terminal, a fixed terminal, and an Internet Protocol (IP) terminal.
  • IP Internet Protocol
  • the terminal devices 2020-1,..., 2020 -N are mobile phones, portable multimedia players (PMPs), mobile internet devices (MIDs), smart phones, desktops, and tablet computers, respectively. It may be a mobile terminal having various mobile communication specifications such as a PC, a notebook, a net book, a personal digital assistant (PDA), a smart TV, and an information communication device.
  • PDA personal digital assistant
  • the network 2030 provides a path for transferring data between the cloud streaming server 2010 and the terminal devices 2020-1,..., 2020 -N, and includes both an existing network and a future network. It is a comprehensive concept.
  • the network 2030 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 each other, and a mobile device and an external device, and 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 2030 is not limited to the existing transmission method standard, and may include all transmission method standards to be developed in the future.
  • a network used between the cloud streaming server 2010 and the terminal devices 2020-1,..., 2020 -N is used between the terminal devices 2020-1,..., 2020 -N. It may be different from the network or may be the same.
  • FIG. 21 is a block diagram illustrating an example of a cloud streaming server illustrated in FIG. 20.
  • the cloud streaming server 2010 illustrated in FIG. 20 includes a capture unit 2110, an encoder 2120, a sender 2130, and a storage 2140.
  • Image cloud streaming which detects only the change area in the cloud streaming service and performs the cloud streaming service.
  • a central processing unit CPU
  • a graphics processing unit GPU
  • Encoding can be performed using.
  • a central processing unit and a graphic processing unit should be used in combination with the granular encoding process.
  • the encoding process is divided into unit processes for the cloud streaming service, and the central processing unit and the graphic processing unit are processed for each unit process to propose a configuration that can provide an image cloud streaming service more efficiently. .
  • the capturer 2110 captures a change area included in the changed frame.
  • the video codec-based cloud streaming technique can perform encoding by capturing all frames corresponding to the screen on which the application operates. However, if the change between frames is not large on the screen on which the application is running, the still image encoding is performed by capturing only the changed area of the changed frame, and when the display is displayed on the user's terminal device, the parts except for the changed area are the same and the changed area You can only display it in a way that changes.
  • the changed area may be captured as the change area in comparison with the screen area corresponding to the previous frame of the changed frame among the screen areas corresponding to the changed frame. For example, if the changed area is the A area compared to the screen area corresponding to the previous frame of the changed frame among the screen areas corresponding to the changed frame, only the A area of the screen area corresponding to the changed frame may be captured as the change area.
  • the change area may have various types of images corresponding to the resolution or the change area according to an input signal input from the user's terminal device.
  • a section having a small frame change among the entire sections of the frame to be transmitted to the user's terminal device may be detected, and the change region may be captured at the section having a small frame change.
  • the event type of the application generated from the user's terminal device may be detected to detect a section having less frame change.
  • an event type of an application may be determined according to an input signal generated from a user terminal device.
  • an application is executed such as a menu, an option, or a guide window according to an input signal, a static event having a small change in a frame or a dynamic event in which a frame frequently changes such as a video play and a game play may occur. Therefore, when the user detects an event type with an input signal generated through the terminal device, and if the event type is a static event, a section having a small frame change can be detected among all frame sections corresponding to the corresponding event.
  • the encoding unit 2120 divides the encoding process for the change area into a plurality of unit processes, and assigns at least one or more of the unit processes to the graphics processing unit (GPU) and is not assigned to the graphics processing unit.
  • the remaining unit processes are allocated to a central processing unit (CPU) to perform an encoding process to encode still regions of the change regions.
  • the conventional method of performing the service using only the central processing unit does not use the entire available resources of the cloud streaming server, so the time of image encoding is delayed. As a result, service quality could be reduced. Accordingly, in the present invention, the encoding process can be subdivided into a plurality of unit processes, and each unit process can be appropriately assigned to the central processing unit and the graphics processing unit to perform encoding, thereby solving a problem that may occur in the conventional method.
  • the configuration can be presented.
  • the unit processes may correspond to any one of image analysis, still image compression technique determination, still image compression, and compressed data collection corresponding to the change area.
  • Image analysis may be a process of analyzing what characteristics an image corresponding to a change area has. For example, image characteristics such as size, resolution, and type of an image may be analyzed and used as data for efficient encoding.
  • the unit process corresponding to the still image compression may be allocated to the graphic processing unit based on the processing result corresponding to the image analysis and the still image compression technique determination.
  • a palletized portable network graphics (PNG) still image compression technique may be determined as a still image compression technique to encode a processing result change region corresponding to image analysis and still image compression technique determination.
  • the process of performing still image encoding by using the palletized PNG still image compression technique may include a simple repetition of a calculation or a calculation process that is easy to process in parallel. Therefore, in this case, by allocating a unit process that performs still image compression among the unit processes to the graphic processing unit, it is possible to save time used for encoding and efficiently use the resources of the cloud streaming server.
  • the graphic processing unit may be used to perform a unit process corresponding to still image compression.
  • the cloud streaming system is configured with only the central processing unit, since all processes must be performed using the central processing unit, latency delay may occur when providing the cloud streaming service to the user's terminal. Therefore, by providing one or more central processing units to perform the unit process corresponding to the still image compression to the graphics processing unit, and re-deliver the processing results to the central processing unit, reducing the management cost and latency delay of the cloud streaming system. Effect can be achieved.
  • the still image compression may include one or more processes of color histogram construction, palette generation, palette-based original color quantization, and palette-based encoding on an image corresponding to the change area.
  • Color histogram construction may be performed to generate a palette for the image corresponding to the change area.
  • the palette generation may be a process of generating a palette having a minimum loss compared to the original image, that is, the image corresponding to the change area using the color histogram.
  • original color quantization may be performed by substituting the color of the image corresponding to the change region with the color corresponding to the palette, and palette-based encoding may be performed.
  • the graphics processing unit may deliver a processing result corresponding to the still image compression to the central processing unit.
  • the central processing to perform a unit process corresponding to the still image compression in the graphics processing unit for the change regions included in the plurality of changed frames, and to perform the unit process corresponding to the compression data collection for each processing result.
  • the resource consumption cost of delivering the processing result may be additionally generated.
  • the resource efficiency gains obtained by subdividing and processing the encoding process may be increased. It may be a more efficient encoding method because it is larger than the resource consumption cost that may additionally occur.
  • the central processing unit may perform the unit process corresponding to the compressed data collection by using the processing result corresponding to the still image compression.
  • the respective processing results that is, the compressed data may be collected. Since an object of the present invention is to provide a still image-based cloud streaming service to a user terminal device by performing an encoding process, a plurality of compressed data are collected to provide a service to the user terminal device to perform an encoding process. can do.
  • the central processing unit may transfer image data corresponding to the change area to the graphic processing unit when a unit process corresponding to still image compression is assigned to the graphic processing unit.
  • the processing result of the unit process corresponding to the image analysis and the determination of the still image compression technique it may be determined whether the unit process corresponding to the still image compression is allocated to the graphic processing unit. For example, if you compress the image corresponding to the processing result change area of the unit process corresponding to the image analysis and the determination of the still image compression technique by using the palletized PNG still image compression technique, a good calculation to repeat the simple calculation and parallelize As such, performing still image compression with the graphics processing unit may be more efficient than performing still image compression with the central processing unit. Therefore, when the unit process corresponding to the still image compression is allocated in the graphic processing unit as described above, the image data to be compressed, that is, the image data corresponding to the change area, may be transferred to the graphic processing unit.
  • the sending unit 2130 transmits a still image encoded change area to a user to perform a still image based cloud streaming service.
  • the compressed change area is transmitted to the terminal device of the user, so that the cloud streaming service may be performed so that the user can feel the application running on the terminal device.
  • the storage unit 2140 stores various information generated in the cloud streaming service process according to the embodiment of the present invention as described above.
  • the storage unit 2140 may be configured independently of the cloud streaming server 2010 to support a function for a cloud streaming service.
  • the storage unit 2140 may operate as a separate mass storage, and may include a control function for performing an operation.
  • cloud streaming server 2010 configured as described above may be implemented as one or more servers.
  • the cloud streaming server 2010 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.
  • FIG. 22 is a diagram illustrating another example of a still image-based cloud streaming system.
  • the server 2210 may perform a screen capture by executing a program screen 2210 corresponding to a user input generated from a user terminal device.
  • the server 2200 may be a server that collectively refers to a cloud streaming server and a web application server.
  • the process of executing the screen capture by executing the program screen 2210 may correspond to the operation flow of the capture unit 2110 illustrated in FIG. 21.
  • the server 2200 may encode the screen captured program screen 2210 through a still image compression technique (Image Encoding) 2220.
  • Image Encoding a still image compression technique
  • the process of performing the encoding (Image Encoding) 2220 may correspond to the operation flow of the encoding unit 2120 illustrated in FIG. 21.
  • the changed frame may be compared with the previous frame to capture only the changed area.
  • the encoding process for the change area is divided into a plurality of unit processes, at least one of the unit processes is allocated to a graphics processing unit (GPU), and the remaining unit processes not allocated to the graphics processing unit. They may be assigned to a Central Processing Unit (CPU) to perform an encoding process to encode still regions of the change region.
  • GPU graphics processing unit
  • CPU Central Processing Unit
  • the server 2200 may provide a still image-based cloud streaming service by streaming the still image encoded changed region to the user's terminal device 2230.
  • the process of performing the streaming 2230 may correspond to the operation flow of the sender 2130 illustrated in FIG. 21.
  • the user terminal device renders the received data (Image Rendering) 2240 to the user as if the program screen 2210 executed in the application by the user input is executed on the user's terminal device. It can be displayed.
  • FIG. 23 is a diagram showing an encoding processing unit according to another embodiment of the present invention.
  • an encoding processing unit may be divided into a central processing unit (CPU) 2310 and a graphics processing unit (Graphics Processing Unit (GPU) 2320).
  • CPU central processing unit
  • GPU Graphics Processing Unit
  • the central processing unit 2310 may be a device that decodes instructions and performs arithmetic logic or data processing as the most important part of the computer. Therefore, the computational speed of the computer, the amount of data to be handled at one time, the size of the main memory area that can be managed, and the like may depend largely on the performance of the central processing unit.
  • the change region is encoded using such a central processing unit (CPU)
  • CPU central processing unit
  • the graphic processing unit 2320 is a processor dedicated to 3D graphics computation developed to process various light source effects and texture expression techniques for making the display screen more realistic after 3D graphics are introduced in earnest.
  • a graphics processing unit GPU
  • the encoding capability of the graphics processing unit may effectively perform encoding.
  • additional transfer costs may be incurred because the data to be encoded is first received from the central processing unit, and the encoded data must be transferred back to the central processing unit even after the encoding is completed. Can be.
  • the central processing unit 2310 and the graphic processing unit 2320 may be independently present in the server 2300 as shown in FIG. 23. Alternatively, unlike FIG. 23, the central processing unit 2310 and the graphic processing unit 2320 may be mixed in one device, or the graphics processing unit 2320 may be included in the central processing unit 2310. Can be.
  • central processing unit 2310 and the graphic processing unit 2320 may be connected to transmit and receive data.
  • FIG. 24 is a diagram illustrating a process of capturing a change area in a cloud streaming service according to another embodiment of the present invention.
  • the still image-based cloud streaming service may compare and capture only the changed change area 2430 by comparing the first frame 2410 and the second frame 2420.
  • the C area is different because the cursor is positioned in the C area.
  • the cursor is moved from the C area to the D area so that the D area can be shaded so as to be distinguished from other B, C, and E areas. Can be.
  • the encoding process for the change area 2430 is divided into a plurality of unit processes, and at least one or more of the unit processes are allocated to a graphics processing unit (GPU) and not allocated to the graphics processing unit. The remaining unit processes may be allocated to a central processing unit (CPU) to perform an encoding process to encode the change region 2430.
  • GPU graphics processing unit
  • CPU central processing unit
  • the first frame 2410 and the second frame 2420 are frames that are clearly changed, and in the existing cloud streaming service, both frames may be encoded and the number of frames corresponding to the frame rate may be encoded. have.
  • the still image-based cloud streaming service captures only the change area 2430 and encodes it using a still image compression technique, it is possible to improve the efficiency of the service than the conventional cloud streaming service method of capturing unnecessarily many frames and the entire screen of the frame. Can be.
  • 25 is a flowchart illustrating a cloud streaming service method through job separation of an encoding processing unit according to an embodiment of the present invention.
  • the cloud streaming service method through job separation of an encoding processing unit captures a change region included in a changed frame (S2510).
  • the video codec-based cloud streaming technique can perform encoding by capturing all frames corresponding to the screen on which the application operates. However, if the change between frames is not large on the screen on which the application is running, the still image encoding is performed by capturing only the changed area of the changed frame, and when the display is displayed on the user's terminal device, the parts except for the changed area are the same and the changed area You can only display it in a way that changes.
  • the changed area may be captured as the change area in comparison with the screen area corresponding to the previous frame of the changed frame among the screen areas corresponding to the changed frame. For example, if the changed area is the A area compared to the screen area corresponding to the previous frame of the changed frame among the screen areas corresponding to the changed frame, only the A area of the screen area corresponding to the changed frame may be captured as the change area.
  • the change area may have various types of images corresponding to the resolution or the change area according to an input signal input from the user's terminal device.
  • a section having a small frame change among the entire sections of the frame to be transmitted to the user's terminal device may be detected, and the change region may be captured at the section having a small frame change.
  • the event type of the application generated from the user's terminal device may be detected to detect a section having less frame change.
  • an event type of an application may be determined according to an input signal generated from a user terminal device.
  • an application is executed such as a menu, an option, or a guide window according to an input signal, a static event having a small change in a frame or a dynamic event in which a frame frequently changes such as a video play and a game play may occur. Therefore, when the user detects an event type with an input signal generated through the terminal device, and if the event type is a static event, a section having a small frame change can be detected among all frame sections corresponding to the corresponding event.
  • the cloud streaming service method through the separation of work of the encoding processing unit according to an embodiment of the present invention, the encoding process for the change area is divided into a plurality of unit processes, at least one or more of the unit processes are graphics processing unit
  • the remaining unit processes allocated to the (Graphics Processing Unit; GPU) and not allocated to the graphics processing unit are allocated to a central processing unit (CPU) to perform an encoding process to encode a change region in still images (S2520).
  • the conventional method of performing the service using only the central processing unit does not use the entire available resources of the cloud streaming server, so the time of image encoding is delayed. As a result, service quality could be reduced. Accordingly, in the present invention, the encoding process can be subdivided into a plurality of unit processes, and each unit process can be appropriately assigned to the central processing unit and the graphics processing unit to perform encoding, thereby solving a problem that may occur in the conventional method. Can present a plan.
  • the unit processes may correspond to any one of image analysis, still image compression technique determination, still image compression, and compressed data collection corresponding to the change area.
  • Image analysis may be a process of analyzing what characteristics an image corresponding to a change area has. For example, image characteristics such as size, resolution, and type of an image may be analyzed and used as data for efficient encoding.
  • the unit process corresponding to the still image compression may be allocated to the graphic processing unit based on the processing result corresponding to the image analysis and the still image compression technique determination.
  • a palletized portable network graphics (PNG) still image compression technique may be determined as a still image compression technique to encode a processing result change region corresponding to image analysis and still image compression technique determination.
  • the process of performing still image encoding by using the palletized PNG still image compression technique may include a simple repetition of a calculation or a calculation process that is easy to process in parallel. Therefore, in this case, by allocating a unit process that performs still image compression among the unit processes to the graphic processing unit, it is possible to save time used for encoding and efficiently use the resources of the cloud streaming server.
  • the graphic processing unit may be used to perform a unit process corresponding to still image compression.
  • the cloud streaming system is configured with only the central processing unit, since all processes must be performed using the central processing unit, latency delay may occur when providing the cloud streaming service to the user's terminal. Therefore, by providing one or more central processing units to perform the unit process corresponding to the still image compression to the graphics processing unit, and re-deliver the processing results to the central processing unit, reducing the management cost and latency delay of the cloud streaming system. Effect can be achieved.
  • the still image compression may include one or more processes of color histogram construction, palette generation, palette-based original color quantization, and palette-based encoding on an image corresponding to the change area.
  • Color histogram construction may be performed to generate a palette for the image corresponding to the change area.
  • the palette generation may be a process of generating a palette having a minimum loss compared to the original image, that is, the image corresponding to the change area using the color histogram.
  • original color quantization may be performed by substituting the color of the image corresponding to the change region with the color corresponding to the palette, and palette-based encoding may be performed.
  • the graphics processing unit may deliver a processing result corresponding to the still image compression to the central processing unit.
  • the central processing to perform a unit process corresponding to the still image compression in the graphics processing unit for the change regions included in the plurality of changed frames, and to perform the unit process corresponding to the compression data collection for each processing result.
  • the resource consumption cost of delivering the processing result may be additionally generated.
  • the resource efficiency gains obtained by subdividing and processing the encoding process may be increased. It may be a more efficient encoding method because it is larger than the resource consumption cost that may additionally occur.
  • the central processing unit may perform the unit process corresponding to the compressed data collection by using the processing result corresponding to the still image compression.
  • the respective processing results that is, the compressed data may be collected. Since an object of the present invention is to provide a still image-based cloud streaming service to a user terminal device by performing an encoding process, a plurality of compressed data are collected to provide a service to the user terminal device to perform an encoding process. can do.
  • the central processing unit may transfer image data corresponding to the change area to the graphic processing unit when a unit process corresponding to still image compression is assigned to the graphic processing unit.
  • the processing result of the unit process corresponding to the image analysis and the determination of the still image compression technique it may be determined whether the unit process corresponding to the still image compression is allocated to the graphic processing unit. For example, if you compress the image corresponding to the processing result change area of the unit process corresponding to the image analysis and the determination of the still image compression technique by using the palletized PNG still image compression technique, a good calculation to repeat the simple calculation and parallelize As such, performing still image compression with the graphics processing unit may be more efficient than performing still image compression with the central processing unit. Therefore, when the unit process corresponding to the still image compression is allocated in the graphic processing unit as described above, the image data to be compressed, that is, the image data corresponding to the change area, may be transferred to the graphic processing unit.
  • the cloud streaming service method through job separation of an encoding processing unit transmits a still image encoded change region to a user to perform a still image based cloud streaming service (S2530).
  • the compressed change area is transmitted to the terminal device of the user, so that the cloud streaming service may be performed so that the user can feel the application running on the terminal device.
  • the cloud streaming service method using the selective encoding processing unit may store various information generated in the cloud streaming service process.
  • FIG. 26 is a flowchart illustrating a cloud streaming service method through job separation of an encoding processing unit according to an embodiment of the present invention in detail.
  • the cloud streaming service method through job separation of an encoding processing unit first captures a change region included in a changed frame in comparison with a previous frame (S2610).
  • a unit process corresponding to the still image compression is allocated to the graphic processing unit according to the determined still image compression technique (S2650).
  • the central processing unit performs a unit process corresponding to the compressed data collection by using the processing result corresponding to the still image compression (S2680).
  • Computer-readable media suitable for storing computer program instructions and data include, for example, magnetic media such as hard disks, floppy disks, and magnetic tape, such as magnetic disks, compact disk read only memory (CD-ROM), and DVDs.
  • Optical Media such as Digital Video Disk, Magnetic-Optical Media such as Floppy Disk, and Read Only Memory, RAM, Random Semiconductor memories such as access memory (EPM), flash memory, erasable programmable ROM (EPROM), and electrically erasable programmable ROM (EEPROM).
  • the processor and memory can be supplemented by or integrated with special purpose logic circuitry.
  • 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 rectangular region having the minimum width and including the change pixels is determined and captured as the change region, and the number of colors and image pixel values of an image corresponding to the change region are captured.
  • Select a still image compression method based on the image type determined by considering one or more of the deviations, and use still image compression techniques to select the still image encoding region of change corresponding to one frame, and The change area can be transmitted to a user to perform a still image based cloud streaming service.
  • cloud streaming service providers need to expand bandwidth because cloud streaming services using still image compression techniques can maximize streaming compression efficiency and provide cloud streaming services to faster and more users through the same band. It can provide efficient services to users while saving resources.
  • the change region included in the changed frame is captured, the encoding scheme is determined in consideration of whether there is image characteristic information corresponding to the changed region, and the still region is encoded using the encoding scheme.
  • the still image-based change region may be transmitted to the user to perform a still image based cloud streaming service. Furthermore, by determining the encoding method using the image characteristic information when performing the encoding for the cloud streaming service, it is possible to save the resources of the cloud streaming server previously required for image processing, thereby providing a more efficient cloud streaming service It can bring an effect.
  • a change region included in a changed frame is captured in comparison with a previous frame, the encoding processing unit is selected in consideration of at least one of an image type and an image resolution corresponding to the changed region, and an encoding processing unit is used.
  • a still image encoding a change region corresponding to one frame may be performed, and the still image encoded change region may be transmitted to a user to perform a still image based cloud streaming service.
  • the change region included in the changed frame is captured, the change region is compressed using a graphics processing unit (GPU), and the encoding process for the change region is separated into a plurality of unit processes. At least one of the unit processes are allocated to a graphics processing unit (GPU), and the remaining unit processes not allocated to the graphics processing unit are allocated to a central processing unit (CPU) to encode the encoding process.
  • the still image encoding may be performed on the change region, and the still image encoded change region may be transmitted to the user to perform a cloud image service based on the still image.
  • it is possible to save the resources of the cloud streaming server through the cloud streaming service through the process separation of the encoding processing unit can be expected to reduce the overall cost for providing a cloud streaming service.

Abstract

본 발명은 클라우드 스트리밍 서비스 시스템, 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치에 관한 것으로, 특히, 이전 프레임과 현재 프레임을 비교하여 상기 이전 프레임으로부터 변화된 상기 현재 프레임의 변화 영역을 결정하여 변화 영역을 캡처하고, 스틸 이미지 압축 기법으로 인코딩한 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수 있다. 클라우드 스트리밍 서비스 제공 시 이미지 타입에 적합한 스틸 이미지 압축 기법을 사용함으로써 스틸 이미지의 압축 효율과 클라우드 스트리밍 서비스의 속도를 향상시키는 것이 가능하다.

Description

클라우드 스트리밍 서비스 시스템, 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
본 발명은 클라우드 스트리밍 서비스 시스템, 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치(SYSTEM FOR CLOUD STREAMING SERVICE, METHOD OF CLOUD STREAMING SERVICE USING STILL IMAGE COMPRESSION TECHNIQUE AND APPARATUS FOR THE SAME)에 관한 것으로, 더욱 상세하게는 클라우드 스트리밍 서비스 시 이전 프레임 및 현재 프레임의 변화 영역에 대해서만 스틸 이미지 압축 기법을 적용하여 서비스 속도를 향상시킬 수 있고, 이미지 특성 정보를 이용하여 인코딩 방식을 결정함으로써 이미지 프로세싱을 위한 시스템 자원을 절약할 수 있고, 이미지의 특성에 따라 인코딩 처리 유닛을 선택하여 인코딩함으로써 서버의 자원을 보다 효율적으로 사용할 수 있고, 인코딩 과정에 따라 인코딩 처리 유닛을 프로세스 별로 분리하여 인코딩을 수행함으로써 서버의 자원을 절감할 수 있는 클라우드 스트리밍 서비스 시스템, 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치에 관한 것이다.
본 발명은 2014년 7월 30일 출원된 한국특허출원 제10-2014-0097322호, 2014년 10월 2일 출원된 한국특허출원 제10-2014-0133176호, 2014년 10월 6일 출원된 한국특허출원 제10-2014-0134512호, 2014년 10월 13일 출원된 한국특허출원 제10-2014-0137733호 및 2014년 10월 20일 출원된 한국특허출원 제10-2014-0141983호의 출원일의 이익을 주장하며, 그 내용 전부는 본 명세서에 포함된다.
클라우드 스트리밍 서비스는 기본적으로 비디오 코덱 기반의 클라우드 스트리밍 기법이 적용되어, 메뉴 디스플레이 등을 적용하는 경우에도 불필요하게 화면 전체를 캡처하여 비디오 코덱을 이용하여 동작하여 클라우드 스트리밍 서비스가 비효율적이었다.
즉, 정적인 화면들이 사용자 입력에 따라 약간씩 변하는 화면에 대한 클라우드 스트리밍 적용시에는 비디오 코덱을 이용한 클라우드 스트리밍 서비스보다 이미지 기반 클라우드 스트리밍 서비스가 효과적일 수 있다.
다시 말해서, 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 경우, 프레임간 변화가 발생한 영역을 정확히 검출하여 최소 영역만 전송하면 보다 효과적인 클라우드 스트리밍 서비스가 가능하다.
그리고, 스틸 이미지 코덱을 적용하는 경우 압축 대상 이미지의 이미지 타입에 따라 그 데이터량이 천차만별이고, 압축에 사용되는 스틸 이미지 압축 기법에 따라 클라우드 스트리밍 서비스의 효율성이 크게 달라질 수 있다. 따라서, 이미지 타입을 신속하고 정확히 구분하여 적응적으로 이미지 클라우드를 적용할 수 있는 새로운 기법의 필요성이 절실하게 대두된다.
그리고, 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 경우, 프레임간 변화가 발생한 영역을 정확히 검출하는 것이 매우 중요한 문제이고 따라서 보다 간단하고 보다 효과적인 변화 영역 검출 기술이 필요하다.
나아가, 케이블이나 IPTV 사업자들이 긴 기간 동안 다양한 종류의 셋탑박스를 공급하다 보니 셋탑박스마다 성능차이가 천차만별이고, 실제로 최근 10여 년 동안 총 15종류 이상의 셋탑이 보급되어 왔다. 또한, 좋은 성능의 셋탑과 나쁜 성능의 셋탑 사이의 성능차이가 너무 커서 컨텐츠 공급자가 원하는 방식대로 컨텐츠가 사용자에게 공급되지 못하는 경우가 발생한다.
그리고, 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 경우, 웹앱을 위한 코드를 작성하는 웹앱 개발자들은 자신들이 기존에 사용하던 방식으로 코드를 작성하고자 하고, 클라우드 스트리밍 서버 입장에서는 되도록 애니메이션 등이 적용되지 않고, 캡처해야 하는 이미지 정보와 애니메이션의 속성에 해당하는 정보만을 포함하는 코드를 원하므로 서로 상충하는 면이 있다. 즉, 웹앱 개발자들이 CS 서버측에서 원하는 코드를 제공하기 위해서는 기존 자신들이 사용하던 방식이 아닌 새로운 코드를 제공하여야 하는 문제가 있다.
관련 선행기술로는, 한국 공개 특허 제10-2014-0027040호, 2014년 03월 06일 공개 (명칭: 적응 이미지 압축 시스템 및 그 방법), 한국 공개 특허 제10-2014-0045013호, 2014년 04월 16일 공개 (명칭: API 정보를 이용한 클라우드 디스플레이 화면의 부호화 방법 및 그 장치), 한국 공개 특허 제10-2012-0105688호, 2012년 09월 26일 공개 (명칭: 이기종 서버/클라이언트간 가상화 서비스 시스템 및 방법) 및 한국 공개 특허 제10-2014-0021388호, 2014년 02월 20일 공개 (명칭: 그래픽 프로세스 유닛 기반 JPEG2000 인코딩/디코딩 장치 및 방법)이 있다.
본 발명의 목적은, 스틸 이미지 기반 클라우드 스트리밍 서비스 제공 시 상황에 맞는 스틸 이미지 압축 기법을 사용함으로써 압축 효율과 클라우드 스트리밍 서비스 속도를 향상시키는 것이다.
또한, 본 발명의 목적은 스틸 이미지 기반 클라우드 스트리밍 서비스 제공 시 이미지 타입에 적합한 스틸 이미지 압축 기법을 사용함으로써 압축 효율과 클라우드 스트리밍 서비스 속도를 향상시키는 것이다.
또한, 본 발명의 목적은 스틸 이미지 기반 클라우드 스트리밍 서비스를 통해서 스트리밍 압출효율을 극대화하여 동일한 대역을 통해 보다 빠르고 보다 많은 사용자를 대상으로 클라우드 스트리밍 서비스를 제공하는 것이다.
또한, 본 발명의 목적은 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 제공 시 이전 프레임 및 현재 프레임의 변화 영역에 대해서만 스틸 이미지 압축 기법을 적용함으로써, 동일한 대역을 통해 보다 빠르고 보다 많은 사용자를 대상으로 클라우드 스트리밍 서비스를 제공하는 것이다.
또한, 본 발명의 목적은 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 제공 시 이전 프레임 및 현재 프레임의 차분 프레임을 스캐닝(scanning)하여 변화 영역을 결정함으로써, 스틸 이미지 압축 대상을 보다 빠르게 검출하는 것이다.
또한, 본 발명의 목적은 어플리케이션 소스코드 및 MPEG 텍스처 기술자로 생성한 이미지 특성 정보를 이용하여 인코딩 방식을 결정함으로써 기존에 이미지 프로세싱을 수행하기 위해 필요했던 클라우드 스트리밍 서버의 자원을 절약하여 보다 효율적인 클라우드 스트리밍 서버를 구성하는 것이다.
또한, 본 발명의 목적은 이미지 특성 정보를 기반으로 스틸 이미지 인코딩을 수행함으로써 이미지 프로세싱에 필요한 서비스 시간을 절약하여 사용자에게 보다 신속하게 클라우드 스트리밍 서비스를 제공하는 것이다.
또한, 본 발명의 목적은 클라우드 스트리밍 서비스의 효율성을 향상시킴으로써 클라우드 스트리밍 서비스 처리 비용을 절약하는 것이다.
또한, 본 발명의 목적은 클라우드 스트리밍 서비스 제공 시 인코딩 과정에 따른 프로세스 별로 인코딩 처리 유닛을 분리하여 인코딩을 수행함으로써 클라우드 스트리밍 서버의 자원 사용을 절약하는 것이다.
또한, 본 발명의 목적은 클라우드 스트리밍 서비스 제공 시 중앙 처리 유닛과 함께 그래픽 처리 유닛을 이용하여 서비스를 처리함으로써 서버의 부하로 발생할 수 있는 지연 상황을 감소시키는 것이다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 일실시예에 따른 클라우드 스트리밍 서버는, 이전 프레임과 현재 프레임을 비교하여 상기 이전 프레임으로부터 변화된 상기 현재 프레임의 변화 영역을 결정하는 변화 영역 결정부; 상기 변화 영역을 캡처하는 캡처부; 스틸 이미지(still image) 압축 기법을 이용하여 하나의 프레임에 상응하는 상기 변화 영역을 스틸 이미지 인코딩하는 인코딩부; 및 스틸 이미지 인코딩된 상기 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 센딩부를 포함한다.
이 때, 변화 영역 결정부는 상기 이전 프레임 및 상기 현재 프레임의 차분 프레임을 산출하고, 상기 차분 프레임을 이용하여 상기 변화 영역을 결정할 수 있다.
이 때, 변화 영역 결정부는 상기 차분 프레임을 스캐닝(scanning)하여 상기 이전 프레임으로부터 변화된 상기 현재 프레임의 변화 픽셀을 감지하여 상기 변화 영역을 결정할 수 있다.
이 때, 변화 영역 결정부는 상기 차분 프레임을 수평 스캐닝(horizontal scanning) 및 수직 스캐닝(vertical scanning)하여 감지되는 변화 픽셀들을 포함하는 상기 변화 영역을 결정할 수 있다.
이 때, 변화 영역 결정부는 상기 차분 프레임의 상단에서 아래 방향으로 나아가면서 행 단위로 수평 스캐닝하여 최초 감지되는 변화 픽셀로부터 제1 세로 좌표 요소를 획득하고, 하단에서 위 방향으로 나아가면서 행 단위로 수평 스캐닝하여 최초 감지되는 변화 픽셀로부터 제2 세로 좌표 요소를 획득하고, 좌측단에서 오른쪽 방향으로 나아가면 열 단위로 수직 스캐닝하여 최초로 감지되는 변화 픽셀로부터 제1 가로 좌표 요소를 획득하고, 우측단에서 왼쪽 방향으로 나아가면서 열 단위로 수직 스캐닝하여 최초로 감지되는 변화 픽셀로부터 제2 가로 좌표 요소를 획득하고, 상기 가로 좌표 요소들 중 어느 하나 및 상기 세로 좌표 요소들 중 어느 하나를 한 쌍으로 하여 구성되는 좌표에 상응하는 변화 픽셀을 포함하는 직사각형 영역을 상기 변화 영역으로 결정할 수 있다.
이 때, 변화 영역 결정부는 상기 변화 픽셀들을 포함하면서 최소 넓이를 가지는 직사각형 영역을 상기 변화 영역으로 결정할 수 있다.
이 때, 변화 영역 결정부는 상기 가로 좌표 요소들 중 어느 하나 및 상기 세로 좌표 요소들 중 어느 하나를 한 쌍으로 하여 구성되는 네 좌표를 꼭지점으로 하는 직사각형 영역을 상기 변화 영역으로 결정할 수 있다.
또한, 본 발명의 일실시예에 따른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법은, 이전 프레임과 현재 프레임을 비교하여 상기 이전 프레임으로부터 변화된 상기 현재 프레임의 변화 영역을 결정하는 단계; 상기 변화 영역을 캡처하는 단계; 스틸 이미지(still image) 압축 기법을 이용하여 하나의 프레임에 상응하는 상기 변화 영역을 스틸 이미지 인코딩하는 단계; 및 스틸 이미지 인코딩된 상기 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 단계를 포함한다.
이 때, 변화 영역을 결정하는 단계는 상기 이전 프레임 및 상기 현재 프레임의 차분 프레임을 산출하고, 상기 차분 프레임을 이용하여 상기 변화 영역을 결정할 수 있다.
이 때, 변화 영역을 결정하는 단계는 상기 차분 프레임을 스캐닝(scanning)하여 상기 이전 프레임으로부터 변화된 상기 현재 프레임의 변화 픽셀을 감지하여 상기 변화 영역을 결정할 수 있다.
이 때, 변화 영역을 결정하는 단계는 상기 차분 프레임을 수평 스캐닝(horizontal scanning) 및 수직 스캐닝(vertical scanning)하여 감지되는 변화 픽셀들을 포함하는 상기 변화 영역을 결정할 수 있다.
이 때, 변화 영역을 결정하는 단계는 상기 차분 프레임의 상단에서 아래 방향으로 나아가면서 행 단위로 수평 스캐닝하여 최초 감지되는 변화 픽셀로부터 제1 세로 좌표 요소를 획득하고, 하단에서 위 방향으로 나아가면서 행 단위로 수평 스캐닝하여 최초 감지되는 변화 픽셀로부터 제2 세로 좌표 요소를 획득하고, 좌측단에서 오른쪽 방향으로 나아가면 열 단위로 수직 스캐닝하여 최초로 감지되는 변화 픽셀로부터 제1 가로 좌표 요소를 획득하고, 우측단에서 왼쪽 방향으로 나아가면서 열 단위로 수직 스캐닝하여 최초로 감지되는 변화 픽셀로부터 제2 가로 좌표 요소를 획득하고, 상기 가로 좌표 요소들 중 어느 하나 및 상기 세로 좌표 요소들 중 어느 하나를 한 쌍으로 하여 구성되는 좌표에 상응하는 변화 픽셀을 포함하는 직사각형 영역을 상기 변화 영역으로 결정할 수 있다.
이 때, 변화 영역을 결정하는 단계는 상기 변화 픽셀들을 포함하면서 최소 넓이를 가지는 직사각형 영역을 상기 변화 영역으로 결정할 수 있다.
이 때, 변화 영역을 결정하는 단계는 상기 가로 좌표 요소들 중 어느 하나 및 상기 세로 좌표 요소들 중 어느 하나를 한 쌍으로 하여 구성되는 네 좌표를 꼭지점으로 하는 직사각형 영역을 상기 변화 영역으로 결정할 수 있다.
또한, 본 발명의 다른 실시예에 따른 클라우드 스트리밍 서버는, 변화된 프레임에 포함된 변화 영역을 캡처하는 캡처부; 상기 변화 영역에 상응하는 이미지 특성 정보가 존재하는지 여부를 고려하여 인코딩 방식을 결정하고, 상기 인코딩 방식을 이용하여 상기 변화 영역을 스틸 이미지 인코딩하는 인코딩부; 및 스틸 이미지 인코딩된 상기 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 센딩부를 포함한다.
이 때, 이미지 특성 정보는 어플리케이션 소스코드에 기반하여 생성되거나 MPEG 텍스처 기술자를 이용하여 생성될 수 있다.
이 때, 인코딩부는 상기 이미지 특성 정보가 존재하는 경우 상기 이미지 특성 정보에 기반하여 상기 인코딩 방식을 결정하고, 상기 이미지 특성 정보가 존재하지 않는 경우 상기 변화 영역에 상응하는 이미지를 분석하여 상기 인코딩 방식을 결정할 수 있다.
이 때, 인코딩 방식은 PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응할 수 있다.
이 때, 인코딩부는 상기 변화 영역에 상응하는 이미지를 분석하여 상기 변화 영역을 일반 영역 및 그림 영역 중 어느 하나로 구분하고, 상기 일반 영역의 이미지 프로세싱 결과 및 상기 그림 영역의 이미지 타입 중 적어도 하나 이상을 고려하여 상기 인코딩 방식을 결정할 수 있다.
이 때, 이미지 타입은 자연 이미지 및 합성 이미지 중 어느 하나에 상응할 수 있다.
이 때, 캡처부는 상기 변화된 프레임에 상응하는 화면 영역 중 상기 변화된 프레임의 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 상기 변화 영역으로 캡처할 수 있다.
이 때, 캡처부는 상기 사용자의 단말 장치로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 상기 프레임 변화가 적은 구간에서 상기 변화 영역을 캡처할 수 있다.
이 때, 캡처부는 상기 사용자의 단말 장치로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 상기 프레임 변화가 적은 구간을 검출할 수 있다.
또한, 본 발명에 따른 소스 정보를 이용한 클라우드 스트리밍 서비스 방법은, 변화된 프레임에 포함된 변화 영역을 캡처하는 단계; 상기 변화 영역에 상응하는 이미지 특성 정보가 존재하는지 여부를 고려하여 인코딩 방식을 결정하고, 상기 인코딩 방식을 이용하여 상기 변화 영역을 스틸 이미지 인코딩하는 단계; 및 스틸 이미지 인코딩된 상기 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 단계를 포함한다.
이 때, 이미지 특성 정보는 어플리케이션 소스코드에 기반하여 생성되거나 MPEG 텍스처 기술자를 이용하여 생성될 수 있다.
이 때, 인코딩하는 단계는 상기 이미지 특성 정보가 존재하는 경우 상기 이미지 특성 정보에 기반하여 상기 인코딩 방식을 결정하고, 상기 이미지 특성 정보가 존재하지 않는 경우 상기 변화 영역에 상응하는 이미지를 분석하여 상기 인코딩 방식을 결정할 수 있다.
이 때, 인코딩하는 단계는 PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응할 수 있다.
이 때, 인코딩하는 단계는 상기 변화 영역에 상응하는 이미지를 분석하여 상기 변화 영역을 일반 영역 및 그림 영역 중 어느 하나로 구분하고, 상기 일반 영역의 이미지 프로세싱 결과 및 상기 그림 영역의 이미지 타입 중 적어도 하나 이상을 고려하여 상기 인코딩 방식을 결정할 수 있다.
이 때, 이미지 타입은 자연 이미지 및 합성 이미지 중 어느 하나에 상응할 수 있다.
이 때, 캡처하는 단계는 상기 변화된 프레임에 상응하는 화면 영역 중 상기 변화된 프레임의 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 상기 변화 영역으로 캡처할 수 있다.
이 때, 캡처하는 단계는 상기 사용자의 단말 장치로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 상기 프레임 변화가 적은 구간에서 상기 변화 영역을 캡처할 수 있다.
이 때, 캡처하는 단계는 상기 사용자의 단말 장치로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 상기 프레임 변화가 적은 구간을 검출할 수 있다.
또한, 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템은 변화된 프레임에 포함된 변화 영역을 캡처하고, 상기 변화 영역에 상응하는 이미지 특성 정보가 존재하는지 여부를 고려하여 인코딩 방식을 결정하고, 상기 인코딩 방식을 이용하여 상기 변화 영역을 스틸 이미지 인코딩하고, 스틸 이미지 인코딩된 상기 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 클라우드 스트리밍 서버; 및 상기 클라우드 스트리밍 서버로부터 상기 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하는 단말을 포함한다.
또한, 본 발명의 또 다른 실시예에 따른 클라우드 스트리밍 서버는, 이전 프레임과 비교하여 변화된 프레임에 포함된 변화 영역을 캡처하는 캡처부; 상기 변화 영역에 상응하는 이미지 특성 및 이미지 해상도 중 하나 이상을 고려하여 인코딩 처리 유닛을 선택하고, 상기 인코딩 처리 유닛을 이용하여 하나의 프레임에 상응하는 상기 변화 영역을 스틸 이미지 인코딩하는 인코딩부; 및 스틸 이미지 인코딩된 상기 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 센딩부를 포함한다.
이 때, 인코딩 처리 유닛은 중앙 처리 유닛(Central Processing Unit; CPU) 및 그래픽 처리 유닛(Graphics Processing Unit; GPU) 중 어느 하나에 상응할 수 있다.
이 때, 인코딩부는 상기 이미지 특성 및 상기 이미지 해상도 중 하나 이상을 고려하여 상기 중앙 처리 유닛과 상기 그래픽 처리 유닛 각각에 대한 인코딩 처리 비용을 예측하고, 상기 중앙 처리 유닛 및 그래픽 처리 유닛 중 상기 인코딩 처리 비용이 낮은 인코딩 처리 유닛을 선택하여 상기 변화 영역을 스틸 이미지 인코딩할 수 있다.
이 때, 인코딩부는 상기 변화 영역에 상응하는 이미지 해상도가 기설정된 기준값 이상인 경우 상기 그래픽 처리 유닛을 이용하여 상기 변화 영역을 스틸 이미지 인코딩할 수 있다.
이 때, 인코딩부는 상기 변화 영역에 상응하는 이미지 해상도가 기설정된 기준값 미만인 경우 상기 이미지 특성에 따른 스틸 이미지 압축 기법을 고려하여 상기 인코딩 처리 유닛을 선택할 수 있다.
이 때, 스틸 이미지 압축 기법은 PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응할 수 있다.
이 때, 인코딩부는 상기 이미지 해상도가 기설정된 기준값 미만이고 상기 스틸 이미지 압축 기법이 상기 팔렛티드 PNG인 경우 상기 그래픽 처리 유닛을 이용하여 상기 변화 영역을 스틸 이미지 인코딩할 수 있다.
이 때, 캡처부는 상기 변화된 프레임에 상응하는 화면 영역 중 상기 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 상기 변화 영역으로 캡처할 수 있다.
이 때, 캡처부는 상기 사용자의 단말 장치로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 상기 프레임 변화가 적은 구간에서 상기 변화 영역을 캡처할 수 있다.
이 때, 캡처부는 상기 사용자의 단말 장치로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 상기 프레임 변화가 적은 구간을 검출할 수 있다.
또한, 본 발명에 따른 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법은, 이전 프레임과 비교하여 변화된 프레임에 포함된 변화 영역을 캡처하는 단계; 상기 변화 영역에 상응하는 이미지 특성 및 이미지 해상도 중 하나 이상을 고려하여 인코딩 처리 유닛을 선택하고, 상기 인코딩 처리 유닛을 이용하여 하나의 프레임에 상응하는 상기 변화 영역을 스틸 이미지 인코딩하는 단계; 및 스틸 이미지 인코딩된 상기 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 단계를 포함한다.
이 때, 인코딩 처리 유닛은 중앙 처리 유닛(Central Processing Unit; CPU) 및 그래픽 처리 유닛(Graphics Processing Unit; GPU) 중 어느 하나에 상응할 수 있다.
이 때, 인코딩하는 단계는 상기 이미지 특성 및 상기 이미지 해상도 중 하나 이상을 고려하여 상기 중앙 처리 유닛과 상기 그래픽 처리 유닛 각각에 대한 인코딩 처리 비용을 예측하는 단계를 포함하고, 상기 중앙 처리 유닛 및 그래픽 처리 유닛 중 상기 인코딩 처리 비용이 낮은 인코딩 처리 유닛을 선택하여 상기 변화 영역을 스틸 이미지 인코딩할 수 있다.
이 때, 인코딩하는 단계는 상기 변화 영역에 상응하는 이미지 해상도가 기설정된 기준값 이상인 경우 상기 그래픽 처리 유닛을 이용하여 상기 변화 영역을 스틸 이미지 인코딩할 수 있다.
이 때, 인코딩하는 단계는 상기 변화 영역에 상응하는 이미지 해상도가 기설정된 기준값 미만인 경우 상기 이미지 특성에 따른 스틸 이미지 압축 기법을 고려하여 상기 인코딩 처리 유닛을 선택할 수 있다.
이 때, 스틸 이미지 압축 기법은 PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응할 수 있다.
이 때, 인코딩하는 단계는 상기 이미지 해상도가 기설정된 기준값 미만이고 상기 스틸 이미지 압축 기법이 상기 팔렛티드 PNG인 경우 상기 중앙 처리 유닛을 이용하여 상기 변화 영역을 스틸 이미지 인코딩할 수 있다.
이 때, 캡처하는 단계는 상기 변화된 프레임에 상응하는 화면 영역 중 상기 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 상기 변화 영역으로 캡처할 수 있다.
이 때, 캡처하는 단계는 상기 사용자의 단말 장치로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 상기 프레임 변화가 적은 구간에서 상기 변화 영역을 캡처할 수 있다.
이 때, 캡처하는 단계는 상기 사용자의 단말 장치로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 상기 프레임 변화가 적은 구간을 검출할 수 있다.
또한, 본 발명의 다른 실시예에 따른 클라우드 스트리밍 서비스 시스템은 이전 프레임과 비교하여 변화된 프레임에 포함된 변화 영역을 캡처하고, 상기 변화 영역에 상응하는 이미지 특성 및 이미지 해상도 중 하나 이상을 고려하여 인코딩 처리 유닛을 선택하고, 상기 인코딩 처리 유닛을 이용하여 하나의 프레임에 상응하는 상기 변화 영역을 스틸 이미지 인코딩하고, 스틸 이미지 인코딩된 상기 변화 영역을 상기 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 클라우드 스트리밍 서버; 및 상기 클라우드 스트리밍 서버로부터 상기 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하는 단말을 포함한다.
또한, 본 발명의 또 다른 실시예에 따른 클라우드 스트리밍 서버는, 변화된 프레임에 포함된 변화 영역을 캡처하는 캡처부; 상기 변화 영역에 대한 인코딩 프로세스를 복수 개의 단위 프로세스들로 분리하고, 상기 단위 프로세스들 중 적어도 하나 이상은 그래픽 처리 유닛(Graphics Processing Unit; GPU)에 할당하고, 상기 그래픽 처리 유닛에 할당되지 아니한 나머지 단위 프로세스들은 중앙 처리 유닛(Central Processing Unit; CPU)에 할당하여 상기 인코딩 프로세스를 수행하여 상기 변화 영역을 스틸 이미지 인코딩하는 인코딩부; 및 스틸 이미지 인코딩된 상기 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 센딩부를 포함한다.
이 때, 단위 프로세스들은 상기 변화 영역에 상응하는 이미지 분석, 스틸 이미지 압축 기법 결정, 스틸 이미지 압축 및 압축 데이터 취합 중 어느 하나에 상응할 수 있다.
이 때, 인코딩부는 상기 이미지 분석 및 스틸 이미지 압축 기법 결정에 상응하는 프로세싱 결과에 기반하여 상기 그래픽 처리 유닛에 상기 스틸 이미지 압축에 상응하는 단위 프로세스를 할당할 수 있다.
이 때, 스틸 이미지 압축은 상기 변화 영역에 상응하는 이미지에 대하여 컬러 히스토그램 구성, 팔레트 생성, 팔레트 기반의 원본 컬러 양자화 및 팔레트 기반 인코딩 중 하나 이상의 과정을 포함할 수 있다.
이 때, 그래픽 처리 유닛은 상기 스틸 이미지 압축에 상응하는 프로세싱 결과를 상기 중앙 처리 유닛으로 전달할 수 있다.
이 때, 중앙 처리 유닛은 상기 스틸 이미지 압축에 상응하는 프로세싱 결과를 이용하여 상기 압축 데이터 취합에 상응하는 단위 프로세스를 수행할 수 있다.
이 때, 중앙 처리 유닛은 상기 스틸 이미지 압축에 상응하는 단위 프로세스가 상기 그래픽 처리 유닛에 할당된 경우 상기 변화 영역에 상응하는 이미지 데이터를 상기 그래픽 처리 유닛으로 전달할 수 있다.
이 때, 캡처부는 상기 변화된 프레임에 상응하는 화면 영역 중 상기 변화된 프레임의 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 상기 변화 영역으로 캡처할 수 있다.
이 때, 캡처부는 상기 사용자의 단말 장치로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 상기 프레임 변화가 적은 구간에서 상기 변화 영역을 캡처할 수 있다.
이 때, 캡처부는 상기 사용자의 단말 장치로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 상기 프레임 변화가 적은 구간을 검출할 수 있다.
또한, 본 발명에 따른 인코딩 처리 유닛의 작업 분리를 통한 클라우드 스트리밍 서비스 방법은, 변화된 프레임에 포함된 변화 영역을 캡처하는 단계; 상기 변화 영역에 대한 인코딩 프로세스를 복수 개의 단위 프로세스들로 분리하고, 상기 단위 프로세스들 중 적어도 하나 이상은 그래픽 처리 유닛(Graphics Processing Unit; GPU)에 할당하고, 상기 그래픽 처리 유닛에 할당되지 아니한 나머지 단위 프로세스들은 중앙 처리 유닛(Central Processing Unit; CPU)에 할당하여 상기 인코딩 프로세스를 수행하여 상기 변화 영역을 스틸 이미지 인코딩하는 단계; 및 스틸 이미지 인코딩된 상기 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 단계를 포함한다.
이 때, 단위 프로세스들은 상기 변화 영역에 상응하는 이미지 분석, 스틸 이미지 압축 기법 결정, 스틸 이미지 압축 및 압축 데이터 취합 중 어느 하나에 상응할 수 있다.
이 때, 인코딩하는 단계는 상기 이미지 분석 및 스틸 이미지 압축 기법 결정에 상응하는 프로세싱 결과에 기반하여 상기 그래픽 처리 유닛에 상기 스틸 이미지 압축에 상응하는 단위 프로세스를 할당할 수 있다.
이 때, 스틸 이미지 압축은 상기 변화 영역에 상응하는 이미지에 대하여 컬러 히스토그램 구성, 팔레트 생성, 팔레트 기반의 원본 컬러 양자화 및 팔레트 기반 인코딩 중 하나 이상의 과정을 포함할 수 있다.
이 때, 그래픽 처리 유닛은 상기 스틸 이미지 압축에 상응하는 프로세싱 결과를 상기 중앙 처리 유닛으로 전달할 수 있다.
이 때, 중앙 처리 유닛은 상기 스틸 이미지 압축에 상응하는 프로세싱 결과를 이용하여 상기 압축 데이터 취합에 상응하는 단위 프로세스를 수행할 수 있다.
이 때, 중앙 처리 유닛은 상기 스틸 이미지 압축에 상응하는 단위 프로세스가 상기 그래픽 처리 유닛에 할당된 경우 상기 변화 영역에 상응하는 이미지 데이터를 상기 그래픽 처리 유닛으로 전달할 수 있다.
이 때, 캡처하는 단계는 상기 변화된 프레임에 상응하는 화면 영역 중 상기 변화된 프레임의 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 상기 변화 영역으로 캡처할 수 있다.
이 때, 캡처하는 단계는 상기 사용자의 단말 장치로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 상기 프레임 변화가 적은 구간에서 상기 변화 영역을 캡처할 수 있다.
이 때, 캡처하는 단계는 상기 사용자의 단말 장치로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 상기 프레임 변화가 적은 구간을 검출할 수 있다.
또한, 본 발명의 또 다른 실시예에 따른 클라우드 스트리밍 서비스 시스템은 변화된 프레임에 포함된 변화 영역을 캡처하고, 상기 변화 영역에 대한 인코딩 프로세스를 복수 개의 단위 프로세스들로 분리하고, 상기 단위 프로세스들 중 적어도 하나 이상은 그래픽 처리 유닛(Graphics Processing Unit; GPU)에 할당하고, 상기 그래픽 처리 유닛에 할당되지 아니한 나머지 단위 프로세스들은 중앙 처리 유닛(Central Processing Unit; CPU)에 할당하여 상기 인코딩 프로세스를 수행하여 상기 변화 영역을 스틸 이미지 인코딩하고, 스틸 이미지 인코딩된 상기 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 클라우드 스트리밍 서버; 및 상기 클라우드 스트리밍 서버로부터 상기 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하는 단말을 포함한다.
또한, 본 발명의 과제 해결을 위한 또 다른 수단으로써, 상술한 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램을 제공한다.
본 발명에 따르면, 스틸 이미지 기반 클라우드 스트리밍 서비스 제공 시 상황에 맞는 스틸 이미지 압축 기법을 사용함으로써 압축 효율과 클라우드 스트리밍 서비스 속도를 향상시킬 수 있다.
또한, 본 발명은 스틸 이미지 기반 클라우드 스트리밍 서비스 제공 시 이미지 타입에 적합한 스틸 이미지 압축 기법을 사용함으로써 압축 효율과 클라우드 스트리밍 서비스 속도를 향상시킬 수 있다.
또한, 본 발명은 스틸 이미지 기반 클라우드 스트리밍 서비스를 통해서 스트리밍 압출효율을 극대화하여 동일한 대역을 통해 보다 빠르고 보다 많은 사용자를 대상으로 클라우드 스트리밍 서비스를 제공할 수 있다.
또한, 본 발명은 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 제공 시 이전 프레임 및 현재 프레임의 변화 영역에 대해서만 스틸 이미지 압축 기법을 적용함으로써, 동일한 대역을 통해 보다 빠르고 보다 많은 사용자를 대상으로 클라우드 스트리밍 서비스를 제공할 수 있다.
또한, 본 발명은 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 제공 시 이전 프레임 및 현재 프레임의 차분 프레임을 스캐닝(scanning)하여 변화 영역을 결정함으로써, 스틸 이미지 압축 대상을 보다 빠르게 검출할 수 있다.
또한, 본 발명은 어플리케이션 소스코드 및 MPEG 텍스처 기술자로 생성한 이미지 특성 정보를 이용하여 인코딩 방식을 결정함으로써 기존에 이미지 프로세싱을 수행하기 위해 필요했던 클라우드 스트리밍 서버의 자원을 절약하여 보다 효율적인 클라우드 스트리밍 서버를 구성할 수 있다.
또한, 본 발명은 이미지 특성 정보를 기반으로 스틸 이미지 인코딩을 수행함으로써 이미지 프로세싱에 필요한 서비스 시간을 절약하여 사용자에게 보다 신속하게 클라우드 스트리밍 서비스를 제공할 수 있다.
또한, 본 발명은 클라우드 스트리밍 서비스의 효율성을 향상시킴으로써 클라우드 스트리밍 서비스 처리 비용을 절약할 수 있다.
또한, 본 발명은 클라우드 스트리밍 서비스 제공 시 인코딩 과정에 따른 프로세스 별로 인코딩 처리 유닛을 분리하여 인코딩을 수행함으로써 클라우드 스트리밍 서버의 자원 사용을 절약할 수 있다.
또한, 본 발명은 클라우드 스트리밍 서비스 제공 시 중앙 처리 유닛과 함께 그래픽 처리 유닛을 이용하여 서비스를 처리함으로써 서버의 부하로 발생할 수 있는 지연 상황을 감소시킬 수 있다.
도 1은 본 발명의 일실시예에 따른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 2는 도 1에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.
도 3은 클라우드 스트리밍 시스템의 일 예를 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스에서 변화 영역을 캡처하는 과정을 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스에서 변화 영역을 결정하는 과정을 나타낸 도면이다.
도 6은 본 발명의 일실시예에 따른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.
도 7은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 8은 도 7에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.
도 9는 스틸 이미지 기반 클라우드 스트리밍 시스템의 일예를 나타낸 도면이다.
도 10은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스에서 변화 영역을 캡처하는 과정을 나타낸 도면이다.
도 11은 본 발명의 일실시예에 따른 소스 정보를 이용한 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.
도 12는 본 발명의 일실시예에 따른 소스 정보를 이용한 클라우드 스트리밍 서비스 방법을 상세하게 나타낸 동작 흐름도이다.
도 13은 본 발명의 다른 실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 14는 도 13에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.
도 15은 스틸 이미지 기반 클라우드 스트리밍 시스템의 다른 예를 나타낸 도면이다.
도 16은 본 발명의 일실시예에 따른 인코딩 처리 유닛을 나타낸 도면이다.
도 17은 본 발명의 다른 실시예에 따른 클라우드 스트리밍 서비스에서 변화 영역을 캡처하는 과정을 나타낸 도면이다.
도 18은 본 발명의 일실시예에 따른 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.
도 19는 본 발명의 일실시예에 따른 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법을 상세하게 나타낸 동작 흐름도이다.
도 20은 본 발명의 또 다른 실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 21은 도 20에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.
도 22는 스틸 이미지 기반 클라우드 스트리밍 시스템의 또 다른 예를 나타낸 도면이다.
도 23은 본 발명의 다른 실시예에 따른 인코딩 처리 유닛을 나타낸 도면이다.
도 24는 본 발명의 또 다른 실시예에 따른 클라우드 스트리밍 서비스에서 변화 영역을 캡처하는 과정을 나타낸 도면이다.
도 25는 본 발명의 일실시예에 따른 인코딩 처리 유닛의 작업 분리를 통한 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.
도 26은 본 발명의 일실시예에 따른 인코딩 처리 유닛의 작업 분리를 통한 클라우드 스트리밍 서비스 방법을 상세하게 나타낸 동작 흐름도이다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다. 또한 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다.
이하에서는 본 발명의 실시 예에 따른 단말기는 통신망에 연결되어 클라우드 컴퓨팅 시스템 기반으로 컨텐츠를 업로드 또는 다운로드 할 수 있는 이동통신단말기를 대표적인 예로서 설명하지만 단말기는 이동통신단말기에 한정된 것이 아니고, 모든 정보통신기기, 멀티미디어 단말기, 유선 단말기, 고정형 단말기 및 IP(Internet Protocol) 단말기 등의 다양한 단말기에 적용될 수 있다. 또한, 단말기는 휴대폰, PMP(Portable Multimedia Player), MID(Mobile Internet Device), 스마트폰(Smart Phone), 데스크톱(Desktop), 태블릿컴퓨터(Tablet PC), 노트북(Note book), 넷북(Net book) 및 정보통신 기기 등과 같은 다양한 이동통신 사양을 갖는 모바일(Mobile) 단말기일 때 유리하게 활용될 수 있다.
이하, 본 발명의 실시 예에 따른 클라우드 컴퓨팅 기반의 데이터 관리 시스템에 대해 설명하도록 한다. 이하에서, 컨텐츠 공유는 컨텐츠 전송을 포함하는 개념일 수 있다. 또한, 데이터 관리는 데이터 전송을 포함하는 개념일 수 있다.
도 1은 본 발명의 일실시예에 따른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 다른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 시스템은 클라우드 스트리밍 서버(110), 단말 장치들(120-1, …, 120-N) 및 네트워크(130)를 포함한다.
클라우드 스트리밍 서버(110)는 단말 장치들(120-1, …, 120-N)로부터 클라우드 스트리밍 서비스 요청을 받아 어플리케이션을 실행하고, 어플리케이션 실행 결과에 해당하는 실행 결과 화면을 단말 장치들(120-1, …, 120-N)에게 제공한다.
클라우드 스트리밍 서비스는 기본적으로 비디오 코덱 기반의 클라우드 스트리밍 기법을 적용하기 때문에 메뉴 디스플레이와 같은 정적인 화면에 대해서 클라우드 스트리밍 기법을 적용하는 경우에도 불필요하게 화면 전체를 캡처하여 비디오 코덱으로 인코딩하는 비효율적인 방법으로 클라우드 스트리밍 서비스를 수행하였다. 이러한 문제점을 해결하기 위해 본 발명은 메뉴 디스플레이 화면과 같이 프레임간 변화가 크지 않은 경우에는 클라우드 스트리밍 서버가 프레임간 변화를 검출하고, 검출된 변화 영역만을 스틸 이미지 압축 기법으로 인코딩하는 클라우드 스트리밍 시스템을 제공한다.
클라우드 스트리밍 서버(110)는 이전 프레임과 현재 프레임을 비교하여 이전 프레임으로부터 변화된 현재 프레임의 변화 영역을 결정하고, 변화 영역을 캡처한다. 이 때, 단말 장치들(120-1, …, 120-N)로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 프레임 변화가 적은 구간에서 변화 영역을 캡처할 수 있다. 이 때, 단말 장치들(120-1, …, 120-N)로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 프레임 변화가 적은 구간을 검출할 수 있다.
또한, 클라우드 스트리밍 서버(110)는 변화 영역에 상응하는 이미지의 컬러 개수 및 이미지 화소값의 표준 편차 중 하나 이상을 고려하여 결정한 이미지 타입에 따라 스틸 이미지(still image) 압축 기법을 선택하고, 스틸 이미지 압축 기법을 이용하여 하나의 프레임에 상응하는 변화 영역을 스틸 이미지 인코딩한다. 이 때, 자연 이미지(natural image) 및 합성 이미지(synthetic image) 중 어느 하나의 이미지 타입에 따라 스틸 이미지 압축 기법을 선택할 수 있다. 이 때, 변화 영역에 상응하는 이미지의 컬러 개수가 기설정된 기준 개수를 초과하는 경우 이미지 타입을 자연 이미지로 결정할 수 있다. 이 때, 변화 영역에 상응하는 이미지의 컬러 개수가 기설정된 기준 개수 이하인 경우 변화 영역에 상응하는 이미지 화소값의 표준 편차를 고려하여 이미지 타입을 결정할 수 있다. 이 때, 변화 영역에 상응하는 이미지의 컬러 개수가 기설정된 기준 개수 이하이고, 변화 영역에 상응하는 이미지 화소값의 표준 편차가 기설정된 기준 값 이하인 경우 이미지 타입을 합성 이미지로 결정할 수 있다. 이 때, 변화 영역에 상응하는 이미지 화소값의 표준 편차가 기설정된 기준 값을 초과하는 경우 이미지 타입을 자연 이미지로 결정할 수 있다. 이 때, 이미지 타입에 따라 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나의 스틸 이미지 압축 기법을 이용하여 변화 영역을 스틸 이미지 인코딩할 수 있다.
또한, 클라우드 스트리밍 서버(110)는 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다.
단말 장치들(120-1, …, 120-N)은 클라우드 스트리밍 서버(110)로부터 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하여 사용자에게 제공한다.
단말 장치들(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) 단말일 수 있다.
네트워크(130)는 클라우드 스트리밍 서버(110)및 단말 장치들(120-1, …, 120-N) 사이에 데이터를 전달하는 통로를 제공하는 것으로서, 기존에 이용되는 네트워크 및 향후 개발 가능한 네트워크를 모두 포괄하는 개념이다. 예를 들어, 네트워크(130)는 한정된 지역 내에서 각종 정보장치들의 통신을 제공하는 유무선근거리 통신망, 이동체 상호 간 및 이동체와 이동체 외부와의 통신을 제공하는 이동통신망, 위성을 이용해 지구국과 지구국간 통신을 제공하는 위성통신망이거나 유무선 통신망 중에서 어느 하나이거나, 둘 이상의 결합으로 이루어질 수 있다. 한편, 네트워크(130)의 전송 방식 표준은, 기존의 전송 방식 표준에 한정되는 것은 아니며, 향후 개발될 모든 전송 방식 표준을 포함할 수 있다. 또한, 도 1에서 클라우드 스트리밍 서버(110)와 단말 장치들(120-1, …, 120-N) 사이에 사용되는 네트워크는 단말 장치들(120-1, …, 120-N) 상호간에 사용되는 네트워크와 상이한 것일 수도 있고, 동일한 것일 수도 있다.
도 2는 도 1에 도시된 클라우드 스트리밍 서버(110)의 일 예를 나타낸 블록도이다.
도 2를 참조하면, 도 1에 도시된 클라우드 스트리밍 서버(110)는 변화 영역 결정부(205), 캡처부(210), 인코딩부(220), 센딩부(230) 및 저장부(240)를 포함한다.
클라우드 스트리밍 서비스는 기본적으로 비디오 코덱 기반의 클라우드 스트리밍 기법을 적용하기 때문에 메뉴 디스플레이와 같은 정적인 화면에 대해서 클라우드 스트리밍 기법을 적용하는 경우에도 불필요하게 화면 전체를 캡처하여 비디오 코덱으로 인코딩하는 비효율적인 방법으로 클라우드 스트리밍 서비스를 수행하였다. 이러한 문제점을 해결하기 위해 본 발명은 메뉴 디스플레이 화면과 같이 프레임간 변화가 크지 않은 경우에는 클라우드 스트리밍 서버가 프레임간 변화를 검출하고, 검출된 변화 영역만을 스틸 이미지 압축 기법으로 인코딩하는 클라우드 스트리밍 서버(110)를 제공한다.
변화 영역 결정부(205)는 이전 프레임과 현재 프레임을 비교하여 이전 프레임으로부터 변화된 현재 프레임의 변화 영역을 결정한다.
비디오 코덱 기반의 클라우드 스트리밍 기법은 어플리케이션이 동작하는 화면에 상응하는 모든 프레임을 캡처하여 인코딩을 수행할 수 있다. 그러나 어플리케이션이 동작하는 화면 상에서 프레임간 변화가 크지 않은 경우에는 이전 프레임과 비교하여 변화된 프레임의 변화 영역만을 캡처하여 스틸 이미지 인코딩을 수행하고, 사용자의 단말 장치에 디스플레이 할 때 변화 영역을 제외한 부분은 동일하게 보여주고 변화 영역만 변화를 주는 방식으로 디스플레이 할 수 있다.
이 때, 변화된 프레임에 상응하는 화면 영역 중 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 변화 영역으로 결정할 수 있다. 예를 들어 변화된 프레임에 상응하는 화면 영역 중 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역이 A 영역이라면, 변화된 프레임에 상응하는 화면 영역 중 A 영역만을 변화 영역으로 결정할 수 있다. 이러한 변화 영역은 사용자의 단말 장치에서 입력되는 입력 신호에 따라 사이즈나 변화 영역에 상응하는 이미지의 성질이 다양할 수 있다.
이 때, 이전 프레임 및 현재 프레임의 차분 프레임을 산출하고, 차분 프레임을 이용하여 변화 영역을 결정할 수 있다. 이 때, 차분 프레임을 스캐닝(scanning)하여 이전 프레임으로부터 변화된 현재 프레임의 변화 픽셀을 감지하여 변화 영역을 결정할 수 있다. 이 때, 차분 프레임을 수평 스캐닝(horizontal scanning) 및 수직 스캐닝(vertical scanning)하여 감지되는 변화 픽셀들을 포함하는 변화 영역을 결정할 수 있다. 예를 들어, 차분 프레임의 상단에서 아래 방향으로 나아가면서 행 단위로 수평 스캐닝(horizontal scanning)하여 변화 픽셀이 감지되는 경우, 해당 행에 상응하는 y0 요소를 획득하고, 하단에서 위 방향으로 나아가면서 행 단위로 수평 스캐닝하여 변화 픽셀이 감지되는 경우, 해당 행에 상응하는 y1 요소를 획득하고, 좌측단에서 오른쪽 방향으로 나아가면서 열 단위로 수직 스캐닝(vertical scanning)하여 변화 픽셀이 감지되는 경우, 해당 열에 상응하는 x0 요소를 획득하고, 우측단에서 왼쪽 방향으로 나아가면서 열 단위로 수직 스캐닝하여 변화 픽셀이 감지되는 경우, 해당 열에 상응하는 x1 요소를 획득하여 (x0, y0), (x1, y0), (x1, y1) 및 (x0, y1), 네 픽셀을 꼭지점으로 하는 직사각형 영역을 변화 영역으로 결정할 수 있다.
캡처부(210)는 변화 영역을 캡처한다. 이 때, 사용자의 단말 장치로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 프레임 변화가 적은 구간에서 변화 영역을 캡처할 수 있다.
이 때, 사용자의 단말 장치로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 프레임 변화가 적은 구간을 검출할 수 있다. 예를 들어, 사용자의 단말 장치로부터 발생하는 입력신호에 따라 어플리케이션의 이벤트 유형이 결정될 수 있다. 입력신호에 따라 메뉴, 옵션, 안내 창과 같이 어플리케이션을 실행하였을 때 프레임의 변화가 적은 정적인 이벤트 또는 동영상 재생 및 게임 플레이와 같이 프레임이 자주 변하는 동적인 이벤트가 발생할 수 있다. 따라서, 사용자가 단말 장치를 통해 발생시키는 입력신호로 이벤트 유형을 감지하고, 이벤트 유형이 정적인 이벤트라면, 해당 이벤트에 상응하는 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출할 수 있다.
인코딩부(220)는 변화 영역에 상응하는 이미지의 컬러 개수 및 이미지 화소값의 표준 편차 중 하나 이상을 고려하여 결정한 이미지 타입에 따라 스틸 이미지(still image) 압축 기법을 선택하고, 스틸 이미지 압축 기법을 이용하여 하나의 프레임에 상응하는 변화 영역을 스틸 이미지 인코딩한다. 예를 들어, 캡처된 변화 영역의 이미지 타입이 하나의 사진이나 그림과 같은 타입이거나 또는 여러 개의 이미지가 합쳐져서 만들어진 이미지일 수 있기 때문에, 이미지 타입을 결정하고 각각의 이미지 타입에 적합한 스틸 이미지 압축 기법을 선택하여 스틸 이미지 인코딩을 수행함으로써 변화 영역의 압축 효율을 상승시킬 수 있다.
이 때, 자연 이미지(natural image) 및 합성 이미지(synthetic image) 중 어느 하나의 이미지 타입에 따라 스틸 이미지 압축 기법을 선택할 수 있다. 자연 이미지는 자연적으로 발생한 객체의 이미지를 의미할 수 있다. 예를 들어, 하나의 사진이나 그림과 같은 광학 이미지뿐 아니라 엑스레이와 적외선 같은 다른 파장의 이미지들을 의미할 수도 있다. 합성 이미지는 자연 이미지와 다르게 컴퓨터나 인위적 수단을 통해 생성되거나 합성된 이미지를 의미할 수 있다.
이 때, 변화 영역에 상응하는 이미지의 컬러 개수가 기설정된 기준 개수를 초과하는 경우 이미지 타입을 자연 이미지로 결정할 수 있다. 자연 이미지의 경우 자연적으로 발생한 객체에 대한 이미지일 수 있기 때문에, 이미지를 표현하는 컬러에 적용된 명도와 채도의 변화가 합성 이미지보다 정교할 수 있다. 따라서, 자연 이미지를 나타내기 위해 구성된 화소들이 표현하는 컬러의 개수가 합성 이미지보다 다양할 수 있기 때문에, 변화 영역에 상응하는 이미지의 컬러 개수를 고려하여 변화 영역에 상응하는 이미지 타입을 결정할 수 있다. 예를 들어, 기설정된 기준 개수를 10만개라고 설정하였다면, 변화 영역에 상응하는 이미지를 구성하는 컬러의 개수가 10만개를 초과하는 경우에는 이미지 타입을 자연 이미지로 결정하고, 10만개 이하인 경우에는 이미지 타입을 합성 이미지로 결정할 수 있다.
이 때, 변화 영역에 상응하는 이미지의 컬러 개수가 기설정된 기준 개수 이하인 경우 변화 영역에 상응하는 이미지 화소값의 표준 편차를 고려하여 이미지 타입을 결정할 수 있다. 화소값의 표준 편차는 변화 영역에 상응하는 이미지를 구성하는 화소들이 나타내는 컬러값의 분포도일 수 있다. 만약 컬러값의 분포도가 0이라면 모든 컬러가 같은 값이라는 의미일 수 있기 때문에, 컬러값의 분포도, 즉 화소값의 표준 편차가 작다는 것은 이미지를 구성하는 컬러의 개수가 적다는 의미와 상통할 수 있다. 따라서, 이와 같은 이미지 화소값의 표준 편차를 고려하여 변화 영역에 상응하는 이미지의 이미지 타입을 결정할 수 있다.
이 때, 변화 영역에 상응하는 이미지의 컬러 개수가 기설정된 기준 개수 이하이고, 변화 영역에 상응하는 이미지 화소값의 표준 편차가 기설정된 기준 값 이하인 경우 이미지 타입을 합성 이미지로 결정할 수 있다. 예를 들어, 이미지의 컬러 개수에 대해서 기설정된 기준 개수가 10만개이고, 이미지 화소값의 표준 편차에 대해 기설정된 기준 값이 N이라고 가정할 수 있다. 이 때, 변화 영역에 상응하는 이미지를 구성하는 컬러의 개수가 10만개 이하이면서, 변화 영역에 상응하는 이미지를 구성하는 화소들이 나타내는 컬러값의 분포도가 N보다 작은 값일 경우 변화 영역에 상응하는 이미지의 이미지 타입을 합성 이미지로 결정할 수 있다.
이 때, 변화 영역에 상응하는 이미지 화소값의 표준 편차가 기설정된 기준 값을 초과하는 경우 이미지 타입을 자연 이미지로 결정할 수 있다. 예를 들어, 변화 영역을 상응하는 이미지 화소값의 표준 편차가 기설정된 기준값을 초과한다면 그만큼 이미지를 구성하는 컬러의 개수가 많다는 의미일 수 있다. 따라서, 이미지 화소값의 표준 편차가 기설정된 기준값을 초과한다면, 변화 영역에 상응하는 이미지가 많은 컬러로 구성된 자연 이미지라고 판단할 수 있다.
이 때, 이미지 타입에 따라 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나의 스틸 이미지 압축 기법을 이용하여 변화 영역을 스틸 이미지 인코딩할 수 있다.
PNG 스틸 이미지 압축 기법은 인코딩 시 이미지의 화질은 좋으나 데이터의 크기가 커져서 전송 망의 대역폭이 낮은 경우에는 전송 속도가 저하될 수 있는 기법이며, JPEG 스틸 이미지 압축 기법은 압축 효율이 좋아서 인코딩 시 전송 데이터 량을 대폭 줄일 수 있으나, 압축 효율이 큰 만큼 인코딩 및 디코딩을 수행할 때 시스템 부하를 많이 발생시킬 수 있는 기법이다. 또한, JPEG 스틸 이미지 압축 기법은 한 픽셀 주위에 서로 비슷한 색이 모여 있는 자연 이미지를 압축하였을 때 압축 효율이 더 효과적일 수 있다. 따라서, 변화 영역에 상응하는 이미지 타입이 자연 이미지인 경우에는 JPEG 스틸 이미지 압축 기법으로 변화 영역을 인코딩할 수 있다.
또한, 변화 영역이 합성 이미지인 경우에는 JPEG 스틸 이미지 압축 기법을 사용하더라도 자연 이미지처럼 압축 효율을 기대하기 어려울 수 있다. 따라서, 변화 영역에 상응하는 이미지의 이미지 타입이 합성 이미지인 경우에는 이미지의 화질을 높일 수 있는 PNG 스틸 이미지 압축 기법을 선택하여 변화 영역의 스틸 이미지 인코딩을 수행할 수 있다.
또한, 변화 영역이 합성 이미지이고 변화 영역의 사이즈가 커서 데이터가 큰 경우에는 데이터의 크기를 줄일 수 있는 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법을 이용하여 변화 영역을 인코딩할 수 있다. 팔렛티드 PNG 스틸 이미지 압축 기법은 인코딩 시 이미지의 데이터 크기가 줄어들어 전송 속도는 보장할 수 있지만, 8비트로 색상을 표현하기 때문에 이미지 화질에 열화를 가져올 수 있다.
센딩부(230)는 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다. 인코딩을 완료함으로써 압축된 변화 영역을 사용자의 단말 장치로 전송함으로써, 사용자의 단말 장치에서 어플리케이션을 실행되는 느낌을 받을 수 있도록 클라우드 스트리밍 서비스를 수행할 수 있다.
저장부(240)는 상술한 바와 같이 본 발명의 실시예에 따른 클라우드 스트리밍 서비스 과정에서 발생되는 다양한 정보를 저장한다.
실시예에 따라, 저장부(240)는 클라우드 스트리밍 서버(110)와 독립적으로 구성되어 클라우드 스트리밍 서비스를 위한 기능을 지원할 수 있다. 이 때, 저장부(240)는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수 있다.
또한, 상술한 바와 같이 구성되는 클라우드 스트리밍 서버(110)는 하나 이상의 서버로 구현될 수 있다.
한편, 클라우드 스트리밍 서버(110)는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
도 3은 클라우드 스트리밍 시스템의 일 예를 나타낸 도면이다.
도 3을 참조하면, 서버(310)에서는 사용자의 단말 장치로부터 발생되는 사용자 입력(User Input)에 상응하는 프로그램 화면(310)을 실행시켜 캡처(Screen Capture)를 수행할 수 있다. 이 때, 서버(300)는 클라우드 스트리밍 서버와 웹 어플리케이션 서버를 통칭하는 서버일 수 있다. 또한, 프로그램 화면(310)을 실행시켜 캡처(Screen Capture)를 수행하는 과정은 도 2에 도시된 캡처부(210)의 동작 흐름과 상응할 수 있다.
서버(300)는 캡처(Screen Capture)된 프로그램 화면(310)을 스틸 이미지 압축 기법을 통해 인코딩(Image Encoding)(320)할 수 있다. 이 때, 인코딩 (Image Encoding)(320)을 수행하는 과정은 도 2에 도시된 인코딩부(220)의 동작 흐름과 상응할 수 있다.
이 때, 이전 프레임과 현재 프레임을 비교하여 상기 이전 프레임으로부터 변화된 상기 현재 프레임의 변화 영역만을 캡처할 수 있다. 또한, 변화된 영역의 이미지 타입을 고려하여 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나의 스틸 이미지 압축 기법을 선택하고, 선택한 스틸 이미지 압축 기법으로 변화된 영역을 인코딩할 수 있다.
이 후, 서버(300)는 스틸 이미지 인코딩된 변화된 영역을 사용자의 단말 장치로 스트리밍(Streaming)(330)하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 제공할 수 있다. 이 때, 스트리밍(Streaming)(330)을 수행하는 과정은 도 2에 도시된 센딩부(230)의 동작 흐름과 상응할 수 있다.
이 후, 사용자의 단말 장치에서는 수신한 데이터를 렌더링(Image Rendering)(340)함으로써 사용자 입력(User Input)에 의해 어플리케이션에서 실행된 프로그램 화면(310)이 마치 사용자의 단말 장치에서 실행된 것처럼 사용자에게 디스플레이 할 수 있다.
도 4는 본 발명의 일실시예에 따른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스에서 변화 영역을 캡처하는 과정을 나타낸 도면이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스는 첫번째 프레임(410)과 두번째 프레임(420)을 비교하여 변화된 변화 영역(430)만을 캡처하여 인코딩할 수 있다.
예를 들어, 첫번째 프레임(410)과 두번째 프레임(420)에서 B, C, D 및 E의 영역을 메뉴 디스플레이라고 가정하였을 때, 첫번째 프레임(410)에서는 C 영역에 커서가 위치함으로써 C 영역이 다른 B, D, 및 E 영역과 구별될 수 있도록 음영처리 되었고, 두번째 프레임(420)에서는 C 영역에서 E 영역으로 커서가 이동함으로써 E 영역이 다른 B, C 및 D 영역과 구별될 수 있도록 음영처리 될 수 있다.
이 때, 첫번째 프레임(410)과 두번째 프레임(420)을 비교하였을 때 변화된 영역인 C와 E 영역을 포함하는 직사각형 영역(C, D 및 E)만을 변화 영역(430)으로 캡처할 수 있다. 또한, 변화 영역(430)의 사이즈와 변화 영역(430)에 상응하는 이미지 성질을 고려하여 스틸 이미지 압축 기법을 선택하고, 선택한 스틸 이미지 압축 기법을 이용하여 변화 영역(430)을 인코딩할 수 있다.
이와 같이 첫번째 프레임(410)과 두번째 프레임(420)은 분명 변화가 있는 프레임으로 기존의 클라우드 스트리밍 서비스 시에는 두 프레임을 포함하여 프레임 레이트에 상응하는 수의 프레임들을 모두 캡처하여 인코딩을 수행해야 할 수 있다. 하지만 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스는 변화 영역(430)만을 캡처하여 스틸 이미지 압축 기법으로 인코딩하기 때문에, 불필요하게 많은 프레임과 프레임의 화면 전체를 캡처하는 기존의 클라우드 스트리밍 서비스 방법보다 서비스의 효율성을 향상시킬 수 있다.
도 5는 본 발명의 일실시예에 따른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스에서 변화 영역을 결정하는 과정을 나타낸 도면이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스는 첫번째 프레임(410) 및 두번째 프레임(420)의 차분 프레임(510)을 이용하여 변화 픽셀들을 포함하면서 최소 넓이를 가지는 직사각형 영역을 변화 영역(430)을 결정한다.
예를 들어, 차분 프레임(510)의 상단에서 아래 방향으로 나아가면서 행 단위로 수평 스캐닝(horizontal scanning)하여 변화 픽셀이 감지되는 경우, 해당 행에 상응하는 y0 요소를 획득하고, 하단에서 위 방향으로 나아가면서 행 단위로 수평 스캐닝하여 변화 픽셀이 감지되는 경우, 해당 행에 상응하는 y1 요소를 획득하고, 좌측단에서 오른쪽 방향으로 나아가면서 열 단위로 수직 스캐닝(vertical scanning)하여 변화 픽셀이 감지되는 경우, 해당 열에 상응하는 x0 요소를 획득하고, 우측단에서 왼쪽 방향으로 나아가면서 열 단위로 수직 스캐닝하여 변화 픽셀이 감지되는 경우, 해당 열에 상응하는 x1 요소를 획득하여 (x0, y0), (x1, y0), (x1, y1) 및 (x0, y1), 네 픽셀을 꼭지점으로 하는 직사각형 영역을 변화 영역(430)으로 결정할 수 있다.
도 6은 본 발명의 일실시예에 따른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.
도 6을 참조하면, 본 발명의 일실시예에 따른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법은 이전 프레임과 현재 프레임을 비교하여 이전 프레임으로부터 변화된 현재 프레임의 변화 영역을 결정한다(S605).
비디오 코덱 기반의 클라우드 스트리밍 기법은 어플리케이션이 동작하는 화면에 상응하는 모든 프레임을 캡처하여 인코딩을 수행할 수 있다. 그러나 어플리케이션이 동작하는 화면 상에서 프레임간 변화가 크지 않은 경우에는 이전 프레임과 비교하여 변화된 프레임의 변화 영역만을 캡처하여 스틸 이미지 인코딩을 수행하고, 사용자의 단말 장치에 디스플레이 할 때 변화 영역을 제외한 부분은 동일하게 보여주고 변화 영역만 변화를 주는 방식으로 디스플레이 할 수 있다.
이 때, 변화된 프레임에 상응하는 화면 영역 중 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 변화 영역으로 결정할 수 있다. 예를 들어 변화된 프레임에 상응하는 화면 영역 중 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역이 A 영역이라면, 변화된 프레임에 상응하는 화면 영역 중 A 영역만을 변화 영역으로 결정할 수 있다. 이러한 변화 영역은 사용자의 단말 장치에서 입력되는 입력 신호에 따라 사이즈나 변화 영역에 상응하는 이미지의 성질이 다양할 수 있다.
이 때, 이전 프레임 및 현재 프레임의 차분 프레임을 산출하고, 차분 프레임을 이용하여 변화 영역을 결정할 수 있다. 이 때, 차분 프레임을 스캐닝(scanning)하여 이전 프레임으로부터 변화된 현재 프레임의 변화 픽셀을 감지하여 변화 영역을 결정할 수 있다. 이 때, 차분 프레임을 수평 스캐닝(horizontal scanning) 및 수직 스캐닝(vertical scanning)하여 감지되는 변화 픽셀들을 포함하는 변화 영역을 결정할 수 있다. 예를 들어, 차분 프레임의 상단에서 아래 방향으로 나아가면서 행 단위로 수평 스캐닝(horizontal scanning)하여 변화 픽셀이 감지되는 경우, 해당 행에 상응하는 y0 요소를 획득하고, 하단에서 위 방향으로 나아가면서 행 단위로 수평 스캐닝하여 변화 픽셀이 감지되는 경우, 해당 행에 상응하는 y1 요소를 획득하고, 좌측단에서 오른쪽 방향으로 나아가면서 열 단위로 수직 스캐닝(vertical scanning)하여 변화 픽셀이 감지되는 경우, 해당 열에 상응하는 x0 요소를 획득하고, 우측단에서 왼쪽 방향으로 나아가면서 열 단위로 수직 스캐닝하여 변화 픽셀이 감지되는 경우, 해당 열에 상응하는 x1 요소를 획득하여 (x0, y0), (x1, y0), (x1, y1) 및 (x0, y1), 네 픽셀을 꼭지점으로 하는 직사각형 영역을 변화 영역으로 결정할 수 있다.
또한, 본 발명의 일실시예에 따른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법은 변화 영역을 캡처한다(S610).
이 때, 사용자의 단말 장치로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 프레임 변화가 적은 구간에서 변화 영역을 캡처할 수 있다.
이 때, 사용자의 단말 장치로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 프레임 변화가 적은 구간을 검출할 수 있다. 예를 들어, 사용자의 단말 장치로부터 발생하는 입력신호에 따라 어플리케이션의 이벤트 유형이 결정될 수 있다. 입력신호에 따라 메뉴, 옵션, 안내 창과 같이 어플리케이션을 실행하였을 때 프레임의 변화가 적은 정적인 이벤트 또는 동영상 재생 및 게임 플레이와 같이 프레임이 자주 변하는 동적인 이벤트가 발생할 수 있다. 따라서, 사용자가 단말 장치를 통해 발생시키는 입력신호로 이벤트 유형을 감지하고, 이벤트 유형이 정적인 이벤트라면, 해당 이벤트에 상응하는 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출할 수 있다.
또한, 본 발명의 일실시예에 따른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법은 변화 영역에 상응하는 이미지의 컬러 개수 및 이미지 화소값의 표준 편차 중 하나 이상을 고려하여 결정한 이미지 타입에 따라 스틸 이미지(still image) 압축 기법을 선택하고, 스틸 이미지 압축 기법을 이용하여 하나의 프레임에 상응하는 변화 영역을 스틸 이미지 인코딩한다(S620). 예를 들어, 캡처된 변화 영역의 이미지 타입이 하나의 사진이나 그림과 같은 타입이거나 또는 여러 개의 이미지가 합쳐져서 만들어진 이미지일 수 있기 때문에, 이미지 타입을 결정하고 각각의 이미지 타입에 적합한 스틸 이미지 압축 기법을 선택하여 스틸 이미지 인코딩을 수행함으로써 변화 영역의 압축 효율을 상승시킬 수 있다.
이 때, 자연 이미지(natural image) 및 합성 이미지(synthetic image) 중 어느 하나의 이미지 타입에 따라 스틸 이미지 압축 기법을 선택할 수 있다. 자연 이미지는 자연적으로 발생한 객체의 이미지를 의미할 수 있다. 예를 들어, 하나의 사진이나 그림과 같은 광학 이미지뿐 아니라 엑스레이와 적외선 같은 다른 파장의 이미지들을 의미할 수도 있다. 합성 이미지는 자연 이미지와 다르게 컴퓨터나 인위적 수단을 통해 생성되거나 합성된 이미지를 의미할 수 있다.
이 때, 변화 영역에 상응하는 이미지의 컬러 개수가 기설정된 기준 개수를 초과하는 경우 이미지 타입을 자연 이미지로 결정할 수 있다. 자연 이미지의 경우 자연적으로 발생한 객체에 대한 이미지일 수 있기 때문에, 이미지를 표현하는 컬러에 적용된 명도와 채도의 변화가 합성 이미지보다 정교할 수 있다. 따라서, 자연 이미지를 나타내기 위해 구성된 화소들이 표현하는 컬러의 개수가 합성 이미지보다 다양할 수 있기 때문에, 변화 영역에 상응하는 이미지의 컬러 개수를 고려하여 변화 영역에 상응하는 이미지 타입을 결정할 수 있다. 예를 들어, 기설정된 기준 개수를 10만개라고 설정하였다면, 변화 영역에 상응하는 이미지를 구성하는 컬러의 개수가 10만개를 초과하는 경우에는 이미지 타입을 자연 이미지로 결정하고, 10만개 이하인 경우에는 이미지 타입을 합성 이미지로 결정할 수 있다.
이 때, 변화 영역에 상응하는 이미지의 컬러 개수가 기설정된 기준 개수 이하인 경우 변화 영역에 상응하는 이미지 화소값의 표준 편차를 고려하여 이미지 타입을 결정할 수 있다. 화소값의 표준 편차는 변화 영역에 상응하는 이미지를 구성하는 화소들이 나타내는 컬러값의 분포도일 수 있다. 만약 컬러값의 분포도가 0이라면 모든 컬러가 같은 값이라는 의미일 수 있기 때문에, 컬러값의 분포도, 즉 화소값의 표준 편차가 작다는 것은 이미지를 구성하는 컬러의 개수가 적다는 의미와 상통할 수 있다. 따라서, 이와 같은 이미지 화소값의 표준 편차를 고려하여 변화 영역에 상응하는 이미지의 이미지 타입을 결정할 수 있다.
이 때, 변화 영역에 상응하는 이미지의 컬러 개수가 기설정된 기준 개수 이하이고, 변화 영역에 상응하는 이미지 화소값의 표준 편차가 기설정된 기준 값 이하인 경우 이미지 타입을 합성 이미지로 결정할 수 있다. 예를 들어, 이미지의 컬러 개수에 대해서 기설정된 기준 개수가 10만개이고, 이미지 화소값의 표준 편차에 대해 기설정된 기준 값이 N이라고 가정할 수 있다. 이 때, 변화 영역에 상응하는 이미지를 구성하는 컬러의 개수가 10만개 이하이면서, 변화 영역에 상응하는 이미지를 구성하는 화소들이 나타내는 컬러값의 분포도가 N보다 작은 값일 경우 변화 영역에 상응하는 이미지의 이미지 타입을 합성 이미지로 결정할 수 있다.
이 때, 변화 영역에 상응하는 이미지 화소값의 표준 편차가 기설정된 기준 값을 초과하는 경우 이미지 타입을 자연 이미지로 결정할 수 있다. 예를 들어, 변화 영역을 상응하는 이미지 화소값의 표준 편차가 기설정된 기준값을 초과한다면 그만큼 이미지를 구성하는 컬러의 개수가 많다는 의미일 수 있다. 따라서, 이미지 화소값의 표준 편차가 기설정된 기준값을 초과한다면, 변화 영역에 상응하는 이미지가 많은 컬러로 구성된 자연 이미지라고 판단할 수 있다.
이 때, 이미지 타입에 따라 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나의 스틸 이미지 압축 기법을 이용하여 변화 영역을 스틸 이미지 인코딩할 수 있다.
PNG 스틸 이미지 압축 기법은 인코딩 시 이미지의 화질은 좋으나 데이터의 크기가 커져서 전송 망의 대역폭이 낮은 경우에는 전송 속도가 저하될 수 있는 기법이며, JPEG 스틸 이미지 압축 기법은 압축 효율이 좋아서 인코딩 시 전송 데이터 량을 대폭 줄일 수 있으나, 압축 효율이 큰 만큼 인코딩 및 디코딩을 수행할 때 시스템 부하를 많이 발생시킬 수 있는 기법이다. 또한, JPEG 스틸 이미지 압축 기법은 한 픽셀 주위에 서로 비슷한 색이 모여 있는 자연 이미지를 압축하였을 때 압축 효율이 더 효과적일 수 있다. 따라서, 변화 영역에 상응하는 이미지 타입이 자연 이미지인 경우에는 JPEG 스틸 이미지 압축 기법으로 변화 영역을 인코딩할 수 있다.
또한, 변화 영역이 합성 이미지인 경우에는 JPEG 스틸 이미지 압축 기법을 사용하더라도 자연 이미지처럼 압축 효율을 기대하기 어려울 수 있다. 따라서, 변화 영역에 상응하는 이미지의 이미지 타입이 합성 이미지인 경우에는 이미지의 화질을 높일 수 있는 PNG 스틸 이미지 압축 기법을 선택하여 변화 영역의 스틸 이미지 인코딩을 수행할 수 있다.
또한, 변화 영역이 합성 이미지이고 변화 영역의 사이즈가 커서 데이터가 큰 경우에는 데이터의 크기를 줄일 수 있는 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법을 이용하여 변화 영역을 인코딩할 수 있다. 팔렛티드 PNG 스틸 이미지 압축 기법은 인코딩 시 이미지의 데이터 크기가 줄어들어 전송 속도는 보장할 수 있지만, 8비트로 색상을 표현하기 때문에 이미지 화질에 열화를 가져올 수 있다.
또한, 본 발명의 일실시예에 따른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법은 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다(S630). 인코딩을 완료함으로써 압축된 변화 영역을 사용자의 단말 장치로 전송함으로써, 사용자의 단말 장치에서 어플리케이션을 실행되는 느낌을 받을 수 있도록 클라우드 스트리밍 서비스를 수행할 수 있다.
또한, 도 5에는 도시하지 아니하였으나 본 발명의 일실시예에 따른 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 과정에서 발생되는 다양한 정보를 저장한다.
도 7은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 7을 참조하면, 본 발명의 일실시예에 다른 클라우드 스트리밍 서비스 시스템은 클라우드 스트리밍 서버(710), 단말 장치들(720-1, …, 720-N) 및 네트워크(730)를 포함한다.
클라우드 스트리밍 서버(710)는 단말 장치들(720-1, …, 720-N)로부터 클라우드 스트리밍 서비스 요청을 받아 어플리케이션을 실행하고, 어플리케이션 실행 결과에 해당하는 실행 결과 화면을 단말 장치들(720-1, …, 720-N)에게 제공한다.
클라우드 스트리밍 서비스는 기본적으로 비디오 코덱 기반의 클라우드 스트리밍 기법을 적용하기 때문에 메뉴 디스플레이와 같은 정적인 화면에 대해서 클라우드 스트리밍 기법을 적용하는 경우에도 불필요하게 화면 전체를 캡처하여 비디오 코덱으로 인코딩하는 비효율적인 방법으로 클라우드 스트리밍 서비스를 수행하였다. 또한, 이미지에 대한 인코딩을 수행할 때에 서버의 자원을 활용한 이미지 프로세싱 과정을 수행하여 인코딩 방식을 결정할 수 있기 때문에 서버의 부하량을 증가시키는 원인이 될 수 있었다. 이러한 문제점을 해결하기 위해 본 발명은 메뉴 디스플레이 화면과 같이 프레임간 변화가 크지 않은 경우에는 클라우드 스트리밍 서버가 프레임간 변화를 검출하고, 검출된 변화 영역만을 스틸 이미지 압축 기법으로 인코딩하되 변화 영역에 상응하는 이미지 특성 정보를 이용하여 인코딩 방식을 결정하는 클라우드 스트리밍 시스템을 제공한다.
클라우드 스트리밍 서버(710)는 이전 프레임과 비교하여 변화된 프레임에 포함된 변화 영역을 캡처한다. 이 때, 변화된 프레임에 상응하는 화면 영역 중 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 변화 영역으로 캡처할 수 있다. 이 때, 단말 장치들(720-1, …, 720-N)로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 프레임 변화가 적은 구간에서 변화 영역을 캡처할 수 있다. 이 때, 단말 장치들(720-1, …, 720-N)로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 프레임 변화가 적은 구간을 검출할 수 있다.
또한, 클라우드 스트리밍 서버(710)는 변화 영역에 상응하는 이미지 특성 정보가 존재하는지 여부를 고려하여 인코딩 방식을 결정하고, 인코딩 방식을 이용하여 변화 영역을 스틸 이미지 인코딩한다. 이 때, 이미지 특성 정보는 어플리케이션 소스코드에 기반하여 생성되거나 MPEG 텍스처 기술자를 이용하여 생성될 수 있다. 이 때, 이미지 특성 정보가 존재하는 경우 이미지 특성 정보에 기반하여 인코딩 방식을 결정하고, 이미지 특성 정보가 존재하지 않는 경우 변화 영역에 상응하는 이미지를 분석하여 인코딩 방식을 결정할 수 있다. 이 때, 인코딩 방식은 PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응할 수 있다. 이 때, 변화 영역에 상응하는 이미지를 분석하여 변화 영역을 일반 영역 및 그림 영역 중 어느 하나로 구분하고, 일반 영역의 이미지 프로세싱 결과 및 그림 영역의 이미지 타입 중 적어도 하나 이상을 고려하여 인코딩 방식을 결정할 수 있다. 이 때, 이미지 타입은 자연 이미지 및 합성 이미지 중 어느 하나에 상응할 수 있다.
또한, 클라우드 스트리밍 서버(710)는 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다.
단말 장치들(720-1, …, 720-N)은 클라우드 스트리밍 서버(710)로부터 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하여 사용자에게 제공한다.
단말 장치들(720-1, …, 720-N)은 각각 통신망에 연결되어 클라우드 컴퓨팅 시스템 기반으로 어플리케이션을 실행할 수 있는 장치로, 이동통신단말기에 한정된 것이 아니고, 모든 정보통신기기, 멀티미디어 단말, 유선 단말, 고정형 단말 및 IP(Internet Protocol) 단말 등의 다양한 단말일 수 있다. 또한, 단말 장치들(720-1, …, 720-N)은 각각 휴대폰, PMP(Portable Multimedia Played), MID(Mobile Internet Device), 스마트폰(Smart Phone), 데스크톱(Desktop), 태블릿컴퓨터(Tablet PC), 노트북(Note book), 넷북(Net Book), 개인휴대용 정보단말(Personal Digital Assistant; PDA), 스마트 TV 및 정보통신 기기 등과 같은 다양한 이동통신 사양을 갖는 모바일(Mobile) 단말일 수 있다.
네트워크(730)는 클라우드 스트리밍 서버(710)및 단말 장치들(720-1, …, 720-N) 사이에 데이터를 전달하는 통로를 제공하는 것으로서, 기존에 이용되는 네트워크 및 향후 개발 가능한 네트워크를 모두 포괄하는 개념이다. 예를 들어, 네트워크(730)는 한정된 지역 내에서 각종 정보장치들의 통신을 제공하는 유무선근거리 통신망, 이동체 상호 간 및 이동체와 이동체 외부와의 통신을 제공하는 이동통신망, 위성을 이용해 지구국과 지구국간 통신을 제공하는 위성통신망이거나 유무선 통신망 중에서 어느 하나이거나, 둘 이상의 결합으로 이루어질 수 있다. 한편, 네트워크(730)의 전송 방식 표준은, 기존의 전송 방식 표준에 한정되는 것은 아니며, 향후 개발될 모든 전송 방식 표준을 포함할 수 있다. 또한, 도 7에서 클라우드 스트리밍 서버(710)와 단말 장치들(720-1, …, 720-N) 사이에 사용되는 네트워크는 단말 장치들(720-1, …, 720-N) 상호간에 사용되는 네트워크와 상이한 것일 수도 있고, 동일한 것일 수도 있다.
도 8은 도 7에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.
도 8을 참조하면, 도 7에 도시된 클라우드 스트리밍 서버(710)는 캡처부(810), 인코딩부(820), 센딩부(830) 및 저장부(840)를 포함한다.
캡처부(810)는 변화된 프레임에 포함된 변화 영역을 캡처한다. 비디오 코덱 기반의 클라우드 스트리밍 기법은 어플리케이션이 동작하는 화면에 상응하는 모든 프레임을 캡처하여 인코딩을 수행할 수 있다. 그러나 어플리케이션이 동작하는 화면 상에서 프레임간 변화가 크지 않은 경우에는 이전 프레임과 비교하여 변화된 프레임의 변화 영역만을 캡처하여 스틸 이미지 인코딩을 수행하고, 사용자의 단말 장치에 디스플레이 할 때 변화 영역을 제외한 부분은 동일하게 보여주고 변화 영역만 변화를 주는 방식으로 디스플레이 할 수 있다.
이 때, 변화된 프레임에 상응하는 화면 영역 중 변화된 프레임의 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 변화 영역으로 캡처할 수 있다. 예를 들어 변화된 프레임에 상응하는 화면 영역 중 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역이 A 영역이라면, 변화된 프레임에 상응하는 화면 영역 중 A 영역만을 변화 영역으로 캡처할 수 있다. 이러한 변화 영역은 사용자의 단말 장치에서 입력되는 입력 신호에 따라 사이즈나 변화 영역에 상응하는 이미지의 성질이 다양할 수 있다.
이 때, 사용자의 단말 장치로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 프레임 변화가 적은 구간에서 변화 영역을 캡처할 수 있다.
이 때, 사용자의 단말 장치로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 프레임 변화가 적은 구간을 검출할 수 있다. 예를 들어, 사용자의 단말 장치로부터 발생하는 입력신호에 따라 어플리케이션의 이벤트 유형이 결정될 수 있다. 입력신호에 따라 메뉴, 옵션, 안내 창과 같이 어플리케이션을 실행하였을 때 프레임의 변화가 적은 정적인 이벤트 또는 동영상 재생 및 게임 플레이와 같이 프레임이 자주 변하는 동적인 이벤트가 발생할 수 있다. 따라서, 사용자가 단말 장치를 통해 발생시키는 입력신호로 이벤트 유형을 감지하고, 이벤트 유형이 정적인 이벤트라면, 해당 이벤트에 상응하는 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출할 수 있다.
인코딩부(820)는 변화 영역에 상응하는 이미지 특성 정보가 존재하는지 여부를 고려하여 인코딩 방식을 결정하고, 결정된 인코딩 방식을 이용하여 변화 영역을 스틸 이미지 인코딩한다. 예를 들어, 인코딩 방식은 변화 영역에 상응하는 이미지의 특성에 따라 결정될 수 있는데, 이러한 이미지의 특성은 이미지 프로세싱을 통해 분석한 결과를 토대로 추출될 수 있다. 그러나 이미지 프로세싱을 수행하기 위해서는 클라우드 스트리밍 서버(710)의 자원을 사용하여 수행되기 때문에 시스템의 부하를 증가시키는 원인이 될 수 있다. 따라서, 이미 변화 영역에 상응하는 이미지의 특성에 상응하는 정보를 포함하고 있는 이미지 특성 정보가 존재한다면, 이 정보를 이용하여 인코딩 방식을 결정함으로써 클라우드 스트리밍 서버(710)의 자원을 절약할 수 있다.
이 때, 이미지 특성 정보는 어플리케이션 소스코드에 기반하여 생성되거나 MPEG 텍스처 기술자를 이용하여 생성될 수 있다.
어플리케이션 소스코드나 MPEG 텍스처 기술자에는 사용자의 요청에 의해 출력되는 어플리케이션 결과 화면에 대한 구성 정보나 어플리케이션 결과 화면을 구성하고 있는 구성 요소들에 대한 특징을 알 수 있는 서술자들이 포함될 수 있다. 예를 들어, 어플리케이션 소스코드의 경우에는 JPG, GIF 및 PNG와 같이 변화 영역에 상응하는 이미지 파일의 확장자나, height 및 width 등의 명령어를 이용한 이미지의 사이즈에 상응하는 특징을 추출할 수 있다. 또한, MPEG 텍스처 기술자의 경우에는 칼라, 윤곽, 객체나 카메라의 움직임 등과 함께 중요한 비주얼 특징을 다루는 MPEG-7 표준 비주얼 분야의 질감 기술자 등을 이용하여 이미지 특성 정보를 생성할 수 있다.
또한, 이미지 특성 정보는 해당하는 프레임 전체 영역에 대한 특성 및 구성 정보일 수 있으며, 또는 프레임 중 변화 영역에 대한 특성 및 구성 정보이거나, 또는 변화 영역 중에서 일부 영역, 즉 일반 영역이나 그림 영역에 대한 특성 및 구성 정보일 수 있다.
따라서, 이와 같은 이미지 특성 정보를 이용할 수 있다면 변화 영역에 상응하는 이미지를 분석하지 않고도 이미지 사이즈, 이미지 해상도 및 이미지 타입 등을 포함하는 다양한 특성들을 손쉽게 추출해낼 수 있다.
이 때, 이미지 특성 정보가 존재하는 경우 이미지 특성 정보에 기반하여 인코딩 방식을 결정하고, 이미지 특성 정보가 존재하지 않는 경우 변화 영역에 상응하는 이미지를 분석하여 인코딩 방식을 결정할 수 있다. 예를 들어, 변화 영역에 상응하는 이미지 특성 정보가 존재한다고 가정한다면, 이미지 특성 정보를 이용하여 변화 영역에 상응하는 이미지의 사이즈, 이미지 해상도 및 이미지 타입 등의 이미지 특성을 추출해 낼 수 있다. 이렇게 추출된 이미지 특성을 통해 인코딩 방식을 결정할 수 있다. 또한, 이미지 특성 정보가 존재하지 않는 경우에는 이미지 프로세싱 과정을 수행함으로써 변화 영역에 상응하는 이미지에 대하여 이미지의 사이즈, 이미지 해상도 및 이미지 타입 등의 이미지 특성을 추출해 낼 수 있다.
이 때, 이미지 특성 정보에서 추출하거나 이미지 프로세싱을 통해 추출되는 이미지의 특성은 이미지의 사이즈, 이미지 해상도 및 이미지 타입을 제외하고도 다양하게 종류가 존재할 수 있다.
이 때, 인코딩 방식은 PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응할 수 있다. PNG 스틸 이미지 압축 기법은 인코딩 시 이미지의 화질은 좋으나 데이터의 크기가 커져서 전송망의 대역폭이 낮은 경우에는 전송 속도가 저하될 수 있다. 팔렛티드 PNG 스틸 이미지 압축 기법은 인코딩 시 이미지의 데이터 크기가 줄어들어 전송 속도는 보장할 수 있지만, 8비트로 색상을 표현하기 때문에 이미지 화질에 열화를 가져올 수 있다. JPEG 스틸 이미지 압축 기법은 압축 효율이 좋아서 인코딩 시 전송 데이터 량을 대폭 줄일 수 있으나, 압축 효율이 큰 만큼 인코딩 및 디코딩을 수행할 때 시스템 부하를 많이 발생시킬 수 있다.
이 때, 변화 영역에 상응하는 이미지를 분석하여 변화 영역을 일반 영역 및 그림 영역 중 어느 하나로 구분하고, 일반 영역의 이미지 프로세싱 결과 및 그림 영역의 이미지 타입 중 적어도 하나 이상을 고려하여 인코딩 방식을 결정할 수 있다. 예를 들어, 그림 영역은 JPEG, PNG 및 GIF와 같은 이미지 형식에 상응하는 파일로 구성된 영역일 수 있고, 일반 영역은 변화 영역 중에서 그림 영역을 제외한 영역이라고 볼 수 있다. 따라서, 그림 영역의 경우에는 이미 이미지 형식에 기반하여 특성이 부여된 상태이고, 일반 영역의 경우에는 일반 영역에 상응하는 영역을 캡처된 이미지라고 판단하였을 때 이미지 프로세싱을 통해서 어떤 특성에 속하는지 판단할 수 있다.
이 때, 이미지 타입은 자연 이미지 및 합성 이미지 중 어느 하나에 상응할 수 있다. 자연 이미지는 하나의 사진이나 그림과 같은 이미지를 의미할 수 있고, 합성 이미지는 여러 개의 이미지를 합쳐서 만들어진 이미지일 수 있다.
또한, 이미지 타입이 자연 이미지일 경우에는 JPEG 인코딩 방식을 이용하여 인코딩할 경우에 압축 효율이 더 효과적일 수 있으며, 이미지 타입이 합성 이미지일 경우에는 데이터의 크기를 줄일 수 있는 팔렛티드 PNG 인코딩 방식을 이용하여 인코딩하는 것이 효과적일 수 있다.
센딩부(830)는 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다. 인코딩을 완료함으로써 압축된 변화 영역을 사용자의 단말 장치로 전송함으로써, 사용자의 단말 장치에서 어플리케이션을 실행되는 느낌을 받을 수 있도록 클라우드 스트리밍 서비스를 수행할 수 있다.
저장부(840)는 상술한 바와 같이 본 발명의 실시예에 따른 클라우드 스트리밍 서비스 과정에서 발생되는 다양한 정보를 저장한다.
실시예에 따라, 저장부(840)는 클라우드 스트리밍 서버(710)와 독립적으로 구성되어 클라우드 스트리밍 서비스를 위한 기능을 지원할 수 있다. 이 때, 저장부(840)는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수 있다.
또한, 상술한 바와 같이 구성되는 클라우드 스트리밍 서버(710)는 하나 이상의 서버로 구현될 수 있다.
한편, 클라우드 스트리밍 서버(710)는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
도 9는 스틸 이미지 기반 클라우드 스트리밍 시스템의 일예를 나타낸 도면이다.
도 9를 참조하면, 서버(910)에서는 사용자의 단말 장치로부터 발생되는 사용자 입력(User Input)에 상응하는 프로그램 화면(910)을 실행시켜 캡처(Screen Capture)를 수행할 수 있다. 이 때, 서버(900)는 클라우드 스트리밍 서버와 웹 어플리케이션 서버를 통칭하는 서버일 수 있다. 또한, 프로그램 화면(910)을 실행시켜 캡처(Screen Capture)를 수행하는 과정은 도 8에 도시된 캡처부(810)의 동작 흐름과 상응할 수 있다.
서버(900)는 캡처(Screen Capture)된 프로그램 화면(910)을 스틸 이미지 압축 기법을 통해 인코딩(Image Encoding)(920)할 수 있다. 이 때, 인코딩 (Image Encoding)(920)을 수행하는 과정은 도 8에 도시된 인코딩부(820)의 동작 흐름과 상응할 수 있다.
이 때, 변화된 프레임을 이전 프레임과 비교하여 변화된 영역만을 캡처할 수 있다. 또한, 변화된 영역에 상응하는 이미지 특성 정보가 존재하는지 여부를 고려하여 PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나의 인코딩 방식을 선택하고, 선택한 인코딩 방식으로 변화된 영역을 스틸 이미지 인코딩할 수 있다.
이 후, 서버(900)는 스틸 이미지 인코딩된 변화된 영역을 사용자의 단말 장치로 스트리밍(Streaming)(930)하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 제공할 수 있다. 이 때, 스트리밍(Streaming)(930)을 수행하는 과정은 도 8에 도시된 센딩부(830)의 동작 흐름과 상응할 수 있다.
이 후, 사용자의 단말 장치에서는 수신한 데이터를 렌더링(Image Rendering)(940)함으로써 사용자 입력(User Input)에 의해 어플리케이션에서 실행된 프로그램 화면(910)이 마치 사용자의 단말 장치에서 실행된 것처럼 사용자에게 디스플레이 할 수 있다.
도 10은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스에서 변화 영역을 캡처하는 과정을 나타낸 도면이다.
도 10을 참조하면, 본 발명의 일실시예에 따른 스틸 이미지 기반 클라우드 스트리밍 서비스는 첫번째 프레임(1010)과 두 번째 프레임(1020)을 비교하여 변화된 변화 영역(1030)만을 캡처하여 인코딩할 수 있다.
예를 들어, 첫번째 프레임(1010)과 두 번째 프레임(1020)에서 B, C, D 및 E의 영역을 메뉴 디스플레이라고 가정하였을 때, 첫번째 프레임(1010)에서는 C 영역에 커서가 위치함으로써 C 영역이 다른 B, D, 및 E 영역과 구별될 수 있도록 음영처리 되었고, 두 번째 프레임(1020)에서는 C 영역에서 D 영역으로 커서가 이동함으로써 D 영역이 다른 B, C 및 E 영역과 구별될 수 있도록 음영처리 될 수 있다.
이 때, 첫번째 프레임(1010)과 두 번째 프레임(1020)을 비교하였을 때 변화된 영역인 C와 D 영역만을 변화 영역(1030)으로 캡처할 수 있다. 또한, 변화 영역(1030)에 상응하는 이미지 특성 정보가 존재하는지 여부를 고려하여 인코딩 방식을 선택하고, 선택한 인코딩 방식을 이용하여 변화 영역(1030)을 스틸 이미지 인코딩할 수 있다.
이와 같이 첫번째 프레임(1010)과 두 번째 프레임(1020)은 분명 변화가 있는 프레임으로 기존의 클라우드 스트리밍 서비스 시에는 두 프레임을 포함하여 프레임 레이트에 상응하는 수의 프레임들을 모두 캡처하여 인코딩을 수행해야 할 수 있다. 하지만 스틸 이미지 기반 클라우드 스트리밍 서비스는 변화 영역(1030)만을 캡처하여 스틸 이미지 압축 기법으로 인코딩하기 때문에, 불필요하게 많은 프레임과 프레임의 화면 전체를 캡처하는 기존의 클라우드 스트리밍 서비스 방법보다 서비스의 효율성을 향상시킬 수 있다.
도 11은 본 발명의 일실시예에 따른 소스 정보를 이용한 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.
도 11를 참조하면, 본 발명의 일실시예에 따른 소스 정보를 이용한 클라우드 스트리밍 서비스 방법은 변화된 프레임에 포함된 변화 영역을 캡처한다(S1110). 비디오 코덱 기반의 클라우드 스트리밍 기법은 어플리케이션이 동작하는 화면에 상응하는 모든 프레임을 캡처하여 인코딩을 수행할 수 있다. 그러나 어플리케이션이 동작하는 화면 상에서 프레임간 변화가 크지 않은 경우에는 이전 프레임과 비교하여 변화된 프레임의 변화 영역만을 캡처하여 스틸 이미지 인코딩을 수행하고, 사용자의 단말 장치에 디스플레이 할 때 변화 영역을 제외한 부분은 동일하게 보여주고 변화 영역만 변화를 주는 방식으로 디스플레이 할 수 있다.
이 때, 변화된 프레임에 상응하는 화면 영역 중 변화된 프레임의 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 변화 영역으로 캡처할 수 있다. 예를 들어 변화된 프레임에 상응하는 화면 영역 중 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역이 A 영역이라면, 변화된 프레임에 상응하는 화면 영역 중 A 영역만을 변화 영역으로 캡처할 수 있다. 이러한 변화 영역은 사용자의 단말 장치에서 입력되는 입력 신호에 따라 사이즈나 변화 영역에 상응하는 이미지의 성질이 다양할 수 있다.
이 때, 사용자의 단말 장치로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 프레임 변화가 적은 구간에서 변화 영역을 캡처할 수 있다.
이 때, 사용자의 단말 장치로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 프레임 변화가 적은 구간을 검출할 수 있다. 예를 들어, 사용자의 단말 장치로부터 발생하는 입력신호에 따라 어플리케이션의 이벤트 유형이 결정될 수 있다. 입력신호에 따라 메뉴, 옵션, 안내 창과 같이 어플리케이션을 실행하였을 때 프레임의 변화가 적은 정적인 이벤트 또는 동영상 재생 및 게임 플레이와 같이 프레임이 자주 변하는 동적인 이벤트가 발생할 수 있다. 따라서, 사용자가 단말 장치를 통해 발생시키는 입력신호로 이벤트 유형을 감지하고, 이벤트 유형이 정적인 이벤트라면, 해당 이벤트에 상응하는 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출할 수 있다.
또한, 본 발명의 일실시예에 따른 소스 정보를 이용한 클라우드 스트리밍 서비스 방법은 변화 영역에 상응하는 이미지 특성 정보가 존재하는지 여부를 고려하여 인코딩 방식을 결정하고, 결정된 인코딩 방식을 이용하여 변화 영역을 스틸 이미지 인코딩한다(S1120). 예를 들어, 인코딩 방식은 변화 영역에 상응하는 이미지의 특성에 따라 결정될 수 있는데, 이러한 이미지의 특성은 이미지 프로세싱을 통해 분석한 결과를 토대로 추출될 수 있다. 그러나 이미지 프로세싱을 수행하기 위해서는 클라우드 스트리밍 서버의 자원을 사용하여 수행되기 때문에 시스템의 부하를 증가시키는 원인이 될 수 있다. 따라서, 이미 변화 영역에 상응하는 이미지의 특성에 상응하는 정보를 포함하고 있는 이미지 특성 정보가 존재한다면, 이 정보를 이용하여 인코딩 방식을 결정함으로써 클라우드 스트리밍 서버의 자원을 절약할 수 있다.
이 때, 이미지 특성 정보는 어플리케이션 소스코드에 기반하여 생성되거나 MPEG 텍스처 기술자를 이용하여 생성될 수 있다.
어플리케이션 소스코드나 MPEG 텍스처 기술자에는 사용자의 요청에 의해 출력되는 어플리케이션 결과 화면에 대한 구성 정보나 어플리케이션 결과 화면을 구성하고 있는 구성 요소들에 대한 특징을 알 수 있는 서술자들이 포함될 수 있다.
예를 들어, 어플리케이션 소스코드의 경우에는 JPG, GIF 및 PNG와 같이 변화 영역에 상응하는 이미지 파일의 확장자나, height 및 width 등의 명령어를 이용한 이미지의 사이즈에 상응하는 특징을 추출할 수 있다. 또한, MPEG 텍스처 기술자의 경우에는 칼라, 윤곽, 객체나 카메라의 움직임 등과 함께 중요한 비주얼 특징을 다루는 MPEG-7 표준 비주얼 분야의 질감 기술자 등을 이용하여 이미지 특성 정보를 생성할 수 있다.
또한, 이미지 특성 정보는 해당하는 프레임 전체 영역에 대한 특성 및 구성 정보일 수 있으며, 또는 프레임 중 변화 영역에 대한 특성 및 구성 정보이거나, 또는 변화 영역 중에서 일부 영역, 즉 일반 영역이나 그림 영역에 대한 특성 및 구성 정보일 수 있다.
따라서, 이와 같은 이미지 특성 정보를 이용할 수 있다면 변화 영역에 상응하는 이미지를 분석하지 않고도 이미지 사이즈, 이미지 해상도 및 이미지 타입 등을 포함하는 다양한 특성들을 손쉽게 추출해낼 수 있다.
이 때, 이미지 특성 정보가 존재하는 경우 이미지 특성 정보에 기반하여 인코딩 방식을 결정하고, 이미지 특성 정보가 존재하지 않는 경우 변화 영역에 상응하는 이미지를 분석하여 인코딩 방식을 결정할 수 있다. 예를 들어, 변화 영역에 상응하는 이미지 특성 정보가 존재한다고 가정한다면, 이미지 특성 정보를 이용하여 변화 영역에 상응하는 이미지의 사이즈, 이미지 해상도 및 이미지 타입 등의 이미지 특성을 추출해 낼 수 있다. 이렇게 추출된 이미지 특성을 통해 인코딩 방식을 결정할 수 있다. 또한, 이미지 특성 정보가 존재하지 않는 경우에는 이미지 프로세싱 과정을 수행함으로써 변화 영역에 상응하는 이미지에 대하여 이미지의 사이즈, 이미지 해상도 및 이미지 타입 등의 이미지 특성을 추출해 낼 수 있다.
이 때, 이미지 특성 정보에서 추출하거나 이미지 프로세싱을 통해 추출되는 이미지의 특성은 이미지의 사이즈, 이미지 해상도 및 이미지 타입을 제외하고도 다양하게 종류가 존재할 수 있다.
이 때, 인코딩 방식은 PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응할 수 있다. PNG 스틸 이미지 압축 기법은 인코딩 시 이미지의 화질은 좋으나 데이터의 크기가 커져서 전송망의 대역폭이 낮은 경우에는 전송 속도가 저하될 수 있다. 팔렛티드 PNG 스틸 이미지 압축 기법은 인코딩 시 이미지의 데이터 크기가 줄어들어 전송 속도는 보장할 수 있지만, 8비트로 색상을 표현하기 때문에 이미지 화질에 열화를 가져올 수 있다. JPEG 스틸 이미지 압축 기법은 압축 효율이 좋아서 인코딩 시 전송 데이터 량을 대폭 줄일 수 있으나, 압축 효율이 큰 만큼 인코딩 및 디코딩을 수행할 때 시스템 부하를 많이 발생시킬 수 있다.
이 때, 변화 영역에 상응하는 이미지를 분석하여 변화 영역을 일반 영역 및 그림 영역 중 어느 하나로 구분하고, 일반 영역의 이미지 프로세싱 결과 및 그림 영역의 이미지 타입 중 적어도 하나 이상을 고려하여 인코딩 방식을 결정할 수 있다. 예를 들어, 그림 영역은 JPEG, PNG 및 GIF와 같은 이미지 형식에 상응하는 파일로 구성된 영역일 수 있고, 일반 영역은 변화 영역 중에서 그림 영역을 제외한 영역이라고 볼 수 있다. 따라서, 그림 영역의 경우에는 이미 이미지 형식에 기반하여 특성이 부여된 상태이고, 일반 영역의 경우에는 일반 영역에 상응하는 영역을 캡처된 이미지라고 판단하였을 때 이미지 프로세싱을 통해서 어떤 특성에 속하는지 판단할 수 있다.
이 때, 이미지 타입은 자연 이미지 및 합성 이미지 중 어느 하나에 상응할 수 있다. 자연 이미지는 하나의 사진이나 그림과 같은 이미지를 의미할 수 있고, 합성 이미지는 여러 개의 이미지를 합쳐서 만들어진 이미지일 수 있다.
또한, 이미지 타입이 자연 이미지일 경우에는 JPEG 인코딩 방식을 이용하여 인코딩할 경우에 압축 효율이 더 효과적일 수 있으며, 이미지 타입이 합성 이미지일 경우에는 데이터의 크기를 줄일 수 있는 팔렛티드 PNG 인코딩 방식을 이용하여 인코딩하는 것이 효과적일 수 있다.
또한, 본 발명의 일실시예에 따른 소스 정보를 이용한 클라우드 스트리밍 서비스 방법은 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다(S1130). 스틸 이미지 인코딩하여 압축된 변화 영역을 사용자의 단말 장치로 전송함으로써, 사용자의 단말 장치에서 어플리케이션을 실행되는 느낌을 받을 수 있도록 클라우드 스트리밍 서비스를 수행할 수 있다.
도 12는 본 발명의 일실시예에 따른 소스 정보를 이용한 클라우드 스트리밍 서비스 방법을 상세하게 나타낸 동작 흐름도이다.
도 12를 참조하면, 본 발명의 일실시예에 따른 소스 정보를 이용한 클라우드 스트리밍 서비스 방법은 먼저 클라우드 스트리밍 서버에서 변화된 프레임에 포함된 변화 영역을 캡처한다(S1210).
이 때, 변화된 프레임에 상응하는 화면 영역 중 변화된 프레임의 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 변화 영역으로 캡처할 수 있다. 이 때, 사용자의 단말 장치로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 프레임 변화가 적은 구간에서 변화 영역을 캡처할 수 있다. 이 때, 사용자의 단말 장치로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 프레임 변화가 적은 구간을 검출할 수 있다.
이 후, 변화 영역에 상응하는 이미지 특성 정보가 존재하는지 여부를 판단한다(S1215).
이 때, 이미지 특성 정보는 어플리케이션 소스코드에 기반하여 생성되거나 MPEG 텍스처 기술자를 이용하여 생성될 수 있다.
단계(S1215)의 판단결과 존재하면, 이미지 특성 정보에 기반하여 인코딩 방식을 결정한다(S1220).
단계(S1215)의 판단결과 존재하지 않으면, 변화 영역에 상응하는 이미지를 분석하고(S1230), 분석한 결과를 고려하여 인코딩 방식을 결정한다(S1240).
이 때, 인코딩 방식은 PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응할 수 있다.
이 후, 결정된 인코딩 방식을 이용하여 변화 영역을 스틸 이미지 인코딩한다(S1250).
이 후, 스틸 이미지 인코딩된 변화 영역을 사용자에게 전달하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다(S1260).
도 13은 본 발명의 다른 실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 13을 참조하면, 본 발명의 다른 실시예에 다른 클라우드 스트리밍 서비스 시스템은 클라우드 스트리밍 서버(1310), 단말 장치들(1320-1, …, 1320-N) 및 네트워크(1330)를 포함한다.
클라우드 스트리밍 서버(1310)는 단말 장치들(1320-1, …, 1320-N)로부터 클라우드 스트리밍 서비스 요청을 받아 어플리케이션을 실행하고, 어플리케이션 실행 결과에 해당하는 실행 결과 화면을 단말 장치들(1320-1, …, 1320-N)에게 제공한다.
클라우드 스트리밍 서버(1310)는 이전 프레임과 비교하여 변화된 프레임에 포함된 변화 영역을 캡처한다. 이 때, 변화된 프레임에 상응하는 화면 영역 중 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 변화 영역으로 캡처할 수 있다. 이 때, 단말 장치들(1320-1, …, 1320-N)로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 프레임 변화가 적은 구간에서 변화 영역을 캡처할 수 있다. 이 때, 단말 장치들(1320-1, …, 1320-N)로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 프레임 변화가 적은 구간을 검출할 수 있다.
또한, 클라우드 스트리밍 서버(1310)는 변화 영역에 상응하는 이미지 특성 및 이미지 해상도 중 하나 이상을 고려하여 인코딩 처리 유닛을 선택하고, 인코딩 처리 유닛을 이용하여 하나의 프레임에 상응하는 변화 영역을 스틸 이미지 인코딩한다. 이 때, 인코딩 처리 유닛은 중앙 처리 유닛(Central Processing Unit; CPU) 및 그래픽 처리 유닛(Graphics Processing Unit; GPU) 중 어느 하나의 인코딩 처리 유닛일 수 있다. 이 때, 이미지 특성 및 이미지 해상도 중 하나 이상을 고려하여 중앙 처리 유닛과 그래픽 처리 유닛 각각에 대한 인코딩 처리 비용을 예측하고, 중앙 처리 유닛 및 그래픽 처리 유닛 중 인코딩 처리 비용이 낮은 인코딩 처리 유닛을 선택하여 변화 영역을 스틸 이미지 인코딩할 수 있다. 이 때, 변화 영역에 상응하는 이미지 해상도가 기설정된 기준값 이상인 경우 그래픽 처리 유닛을 이용하여 변화 영역을 스틸 이미지 인코딩할 수 있다. 이 때, 변화 영역에 상응하는 이미지 해상도가 기설정된 기준값 미만인 경우 변화 영역에 상응하는 이미지 특성에 따른 스틸 이미지 압축 기법을 고려하여 인코딩 처리 유닛을 선택할 수 있다. 이 때, 이미지 해상도가 기설정된 기준값 미만이고 스틸 이미지 압축 기법이 팔렛티드 PNG인 경우 그래픽 처리 유닛을 이용하여 변화 영역을 스틸 이미지 인코딩할 수 있다.
또한, 클라우드 스트리밍 서버(1310)는 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다.
단말 장치들(1320-1, …, 1320-N)은 클라우드 스트리밍 서버(1310)로부터 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하여 사용자에게 제공한다.
단말 장치들(1320-1, …, 1320-N)은 각각 통신망에 연결되어 클라우드 컴퓨팅 시스템 기반으로 어플리케이션을 실행할 수 있는 장치로, 이동통신단말기에 한정된 것이 아니고, 모든 정보통신기기, 멀티미디어 단말, 유선 단말, 고정형 단말 및 IP(Internet Protocol) 단말 등의 다양한 단말일 수 있다. 또한, 단말 장치들(1320-1, …, 1320-N)은 각각 휴대폰, PMP(Portable Multimedia Played), MID(Mobile Internet Device), 스마트폰(Smart Phone), 데스크톱(Desktop), 태블릿컴퓨터(Tablet PC), 노트북(Note book), 넷북(Net Book), 개인휴대용 정보단말(Personal Digital Assistant; PDA), 스마트 TV 및 정보통신 기기 등과 같은 다양한 이동통신 사양을 갖는 모바일(Mobile) 단말일 수 있다.
네트워크(1330)는 클라우드 스트리밍 서버(1310)및 단말 장치들(1320-1, …, 1320-N) 사이에 데이터를 전달하는 통로를 제공하는 것으로서, 기존에 이용되는 네트워크 및 향후 개발 가능한 네트워크를 모두 포괄하는 개념이다. 예를 들어, 네트워크(1330)는 한정된 지역 내에서 각종 정보장치들의 통신을 제공하는 유무선근거리 통신망, 이동체 상호 간 및 이동체와 이동체 외부와의 통신을 제공하는 이동통신망, 위성을 이용해 지구국과 지구국간 통신을 제공하는 위성통신망이거나 유무선 통신망 중에서 어느 하나이거나, 둘 이상의 결합으로 이루어질 수 있다. 한편, 네트워크(1330)의 전송 방식 표준은, 기존의 전송 방식 표준에 한정되는 것은 아니며, 향후 개발될 모든 전송 방식 표준을 포함할 수 있다. 또한, 도 13에서 클라우드 스트리밍 서버(1310)와 단말 장치들(1320-1, …, 1320-N) 사이에 사용되는 네트워크는 단말 장치들(1320-1, …, 1320-N) 상호간에 사용되는 네트워크와 상이한 것일 수도 있고, 동일한 것일 수도 있다.
도 14는 도 13에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.
도 14를 참조하면, 도 13에 도시된 클라우드 스트리밍 서버(1310)는 캡처부(1410), 인코딩부(1420), 센딩부(1430) 및 저장부(1440)를 포함한다.
클라우드 스트리밍 서비스 시 변화 영역만을 검출하여 클라우드 스트리밍 서비스를 수행하는 이미지 클라우드 스트리밍에 있어서, 이미지 인코딩을 수행할 때 중앙 처리 유닛(Central Processing Unit; CPU)을 이용하거나 그래픽 처리 유닛(Graphics Processing Unit; GPU)을 이용하여 인코딩을 수행할 수 있다. 이 때, 최적의 이미지 클라우드 스트리밍 서비스를 제공하기 위해서는 상황에 적절하게 중앙 처리 유닛과 그래픽 처리 유닛을 조합해서 사용해야 하지만 기존의 클라우드 스트리밍 서비스 제공 시에는 동일한 하나의 유닛으로만 인코딩이 처리되고 있는 실정이다. 따라서 본 발명에서는 변화 영역에 대한 특징을 파악하여 상황에 적절한 인코딩 처리 유닛을 이용하여 보다 효율적으로 이미지 클라우드 스트리밍 서비스를 제공할 수 있는 구성을 제안하고자 한다.
캡처부(1410)는 이전 프레임과 비교하여 변화된 프레임에 포함된 변화 영역을 캡처한다. 비디오 코덱 기반의 클라우드 스트리밍 기법은 어플리케이션이 동작하는 화면에 상응하는 모든 프레임을 캡처하여 인코딩을 수행할 수 있다. 그러나 어플리케이션이 동작하는 화면 상에서 프레임간 변화가 크지 않은 경우에는 이전 프레임과 비교하여 변화된 프레임의 변화 영역만을 캡처하여 스틸 이미지 인코딩을 수행하고, 사용자의 단말 장치에 디스플레이 할 때 변화 영역을 제외한 부분은 동일하게 보여주고 변화 영역만 변화를 주는 방식으로 디스플레이 할 수 있다.
이 때, 변화된 프레임에 상응하는 화면 영역 중 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 변화 영역으로 캡처할 수 있다. 예를 들어 변화된 프레임에 상응하는 화면 영역 중 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역이 A 영역이라면, 변화된 프레임에 상응하는 화면 영역 중 A 영역만을 변화 영역으로 캡처할 수 있다. 이러한 변화 영역은 사용자의 단말 장치에서 입력되는 입력 신호에 따라 해상도나 변화 영역에 상응하는 이미지의 타입이 다양할 수 있다.
이 때, 사용자의 단말 장치로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 프레임 변화가 적은 구간에서 변화 영역을 캡처할 수 있다.
이 때, 사용자의 단말 장치로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 프레임 변화가 적은 구간을 검출할 수 있다. 예를 들어, 사용자의 단말 장치로부터 발생하는 입력신호에 따라 어플리케이션의 이벤트 유형이 결정될 수 있다. 입력신호에 따라 메뉴, 옵션, 안내 창과 같이 어플리케이션을 실행하였을 때 프레임의 변화가 적은 정적인 이벤트 또는 동영상 재생 및 게임 플레이와 같이 프레임이 자주 변하는 동적인 이벤트가 발생할 수 있다. 따라서, 사용자가 단말 장치를 통해 발생시키는 입력신호로 이벤트 유형을 감지하고, 이벤트 유형이 정적인 이벤트라면, 해당 이벤트에 상응하는 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출할 수 있다.
인코딩부(1420)는 변화 영역에 상응하는 이미지 특성 및 이미지 해상도 중 하나 이상을 고려하여 인코딩 처리 유닛을 선택하고, 인코딩 처리 유닛을 이용하여 하나의 프레임에 상응하는 변화 영역을 스틸 이미지 인코딩한다.
이 때, 인코딩 처리 유닛은 중앙 처리 유닛(Central Processing Unit; CPU) 및 그래픽 처리 유닛(Graphics Processing Unit; GPU) 중 어느 하나의 인코딩 처리 유닛일 수 있다.
중앙 처리 유닛(Central Processing Unit; CPU)은 컴퓨터의 가장 중요한 부분으로서 명령을 해독하고 산술논리연산이나 데이터 처리를 실행하는 장치일 수 있다. 따라서 컴퓨터의 계산속도나 한번에 다루는 데이터량, 관리할 수 있는 주기억장치 영역의 크기 등은 중앙 처리 유닛의 성능에 의존하는 바가 클 수 있다. 이와 같은 중앙 처리 유닛(Central Processing Unit; CPU)을 이용하여 변화 영역을 인코딩하는 경우 인코딩할 데이터를 다른 유닛으로 전달하지 않고 바로 인코딩을 수행할 수 있기 때문에 데이터 전달에 따른 비용은 발생하지 않을 수 있다. 그러나, 변화 영역에 상응하는 이미지의 해상도가 높은 경우에는 인코딩을 수행하는데 시간이 오래 걸릴 수 있다. 특히, 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법에서 컬러 양자화 과정을 수행하는 것과 같이 단순한 계산을 많이 반복하는 경우에는 인코딩 시간이 오래 걸릴 수 있다.
그래픽 처리 유닛(Graphics Processing Unit; GPU)은 3D 그래픽이 본격적으로 도입된 후, 디스플레이 화면을 보다 현실적으로 만들기 위한 각종 광원 효과 및 질감 표현 기법을 처리하기 위해 개발된 3D 그래픽 연산 전용의 프로세서이다. 이와 같은 그래픽 처리 유닛(Graphics Processing Unit; GPU)을 이용하여 변화 영역을 인코딩하는 경우에는 오히려 단순 계산의 반복이나 해상도가 큰 이미지를 인코딩하는데 효과적일 수 있다. 그러나, 그래픽 처리 유닛을 이용하여 변화 영역의 인코딩을 수행하기 위해서는 먼저 중앙 처리 유닛으로부터 인코딩할 데이터를 전달받고, 인코딩이 완료된 후에도 인코딩된 데이터를 다시 중앙 처리 유닛으로 전달해야하기 때문에 추가적인 전달 비용이 발생할 수 있다.
이 때, 이미지 특성 및 이미지 해상도 중 하나 이상을 고려하여 중앙 처리 유닛과 그래픽 처리 유닛 각각에 대한 인코딩 처리 비용을 예측하고, 중앙 처리 유닛 및 그래픽 처리 유닛 중 인코딩 처리 비용이 낮은 인코딩 처리 유닛을 선택하여 변화 영역을 스틸 이미지 인코딩할 수 있다. 예를 들어, 변화 영역 A에 대해서 인코딩을 수행하기 위해, 변화 영역 A에 상응하는 이미지 특성과 이미지 해상도를 판단할 수 있다. 이 후, 판단된 변화 영역 A의 이미지 특성 및 이미지 해상도를 기반으로 각각 중앙 처리 유닛과 그래픽 처리 유닛으로 인코딩을 수행하였을 때 발생할 수 있는 인코딩 처리 비용을 예측할 수 있다. 두 개의 인코딩 처리 유닛 중에서 인코딩 처리 비용이 더 낮게 예측된 인코딩 처리 유닛을 선택하여 변화 영역 A의 인코딩을 수행할 수 있다.
또한, 인코딩이 수행된 후 발생한 인코딩 처리 비용에 대해서 인코딩 처리 비용 통계를 생성할 수 있다. 예를 들어, 클라우드 스트리밍 서비스가 수행되는 동안 일정한 단위기간을 설정하고, 설정된 단위기간마다 인코딩 처리 비용에 대한 저장된 정보를 이용하여 인코딩 처리 비용 통계를 업데이트할 수 있다. 이와 같은 인코딩 처리 비용 통계는 이미지 특성, 이미지 해상도 및 인코딩 처리 유닛 각각에 대한 세부적인 통계 정보로 생성될 수 있으며, 생성된 통계 정보를 기반으로 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법의 신뢰도를 상승시킬 수 있다.
이 때, 변화 영역에 상응하는 이미지 해상도가 기설정된 기준값 이상인 경우 그래픽 처리 유닛을 이용하여 변화 영역을 스틸 이미지 인코딩할 수 있다.
해상도는 이미지를 표현하는데 몇 개의 픽셀 또는 도트를 이용하여 나타냈는지 그 정도를 나타낼 수 있다. 단위로는 1인치당 몇 개의 픽셀(pixel)로 이루어졌는지를 나타내는 ppi(pixel per inch), 1인치당 몇 개의 점(dot)로 이루어졌는지를 나타내는 dpi(dot per inch)를 주로 사용한다. 픽셀 또는 도트의 수가 많을수록 고해상도의 정밀한 이미지를 표현할 수 있다. 해상도가 높을수록 이미지가 깨끗하고 선명하게 보이지만, 그만큼 1인치당 점의 수가 많아져서 해당 이미지를 처리하기 위해 많은 양의 메모리가 필요하고 결과적으로 컴퓨터 처리 속도가 느려지는 단점이 존재할 수 있다. 예를 들어, 해상도가 높은 이미지를 중앙 처리 유닛으로 인코딩하는 경우에 인코딩 처리 시간이 길어져 인코딩 처리 비용이 많이 발생할 수 있다.
따라서, 변화 영역에 상응하는 이미지 해상도가 사전에 설정된 기준값과 같거나 기준값보다 높은 경우에는 그래픽 처리 유닛을 이용하여 인코딩을 수행함으로써 중앙 처리 유닛을 이용하여 인코딩할 때보다 인코딩 처리 비용을 절약할 수 있다.
이 때, 변화 영역에 상응하는 이미지 해상도가 기설정된 기준값 미만인 경우 변화 영역에 상응하는 이미지 특성에 따른 스틸 이미지 압축 기법을 고려하여 인코딩 처리 유닛을 선택할 수 있다. 변화 영역에 상응하는 이미지 해상도가 기설정된 기준값보다 낮다면 인코딩할 데이터를 그래픽 처리 유닛으로 전달할 필요 없이 중앙 처리 유닛에서 인코딩을 수행할 수 있다. 그러나 이미지 해상도가 낮아도 변화 영역에 상응하는 이미지 특성에 따라 선택되는 스틸 이미지 압축 기법에 의해 단순 계산이 반복되어야 하는 경우가 발생할 수 있기 때문에, 변화 영역의 이미지 타입을 한번 더 고려하여 인코딩 처리 유닛을 선택할 수 있다.
또한, 스틸 이미지 압축 기법은 변화 영역에 상응하는 이미지의 사이즈나 이미지의 타입과 같은 이미지 특성에 따라 결정될 수 있다.
이 때, 스틸 이미지 압축 기법은 PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응할 수 있다. PNG 스틸 이미지 압축 기법은 인코딩의 경우 화질은 좋으나 데이터 크기가 커져서 전송망의 대역폭이 낮은 경우 반응 속도의 저하를 불러올 수 있다. 팔렛티드 PNG 스틸 이미지 압축 기법은 데이터의 크기를 줄어드나 화질의 열화를 가져올 수 있으며, 특히 데이터 크기 감소를 위한 컬러 양자화 과정 때문에 단순한 계산이 반복되는 과정이 포함될 수 있다. JPEG 스틸 이미지 압축 기법은 전송되는 이미지 타입에 따라서 데이터의 압축 효율이 좋을 수 있지만, 압축 효율이 좋은 만큼 인코딩 및 디코딩 시 부하가 클 수 있다.
이 때, 이미지 해상도가 기설정된 기준값 미만이고 스틸 이미지 압축 기법이 팔렛티드 PNG 인 경우 그래픽 처리 유닛을 이용하여 변화 영역을 스틸 이미지 인코딩할 수 있다. 예를 들어, 변화 영역의 이미지 특성 상 팔렛티드 PNG 스틸 이미지 압축 기법을 이용하여 인코딩을 수행할 때에는 컬러 양자화 같은 단순 계산을 반복하기 때문에 인코딩 처리 시간이 길어질 수 있다. 따라서 이와 같은 경우에는 그래픽 처리 유닛을 이용하여 인코딩을 수행함으로써 중앙 처리 유닛을 이용하여 인코딩할 때보다 적은 인코딩 처리 비용으로 클라우드 스트리밍 서비스를 수행할 수 있다.
센딩부(1430)는 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다. 인코딩을 완료함으로써 압축된 변화 영역을 사용자의 단말 장치로 전송함으로써, 사용자의 단말 장치에서 어플리케이션을 실행되는 느낌을 받을 수 있도록 클라우드 스트리밍 서비스를 수행할 수 있다.
저장부(1440)는 상술한 바와 같이 본 발명의 실시예에 따른 클라우드 스트리밍 서비스 과정에서 발생되는 다양한 정보를 저장한다.
실시예에 따라, 저장부(1440)는 클라우드 스트리밍 서버(1310)와 독립적으로 구성되어 클라우드 스트리밍 서비스를 위한 기능을 지원할 수 있다. 이 때, 저장부(1440)는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수 있다.
또한, 상술한 바와 같이 구성되는 클라우드 스트리밍 서버(1310)는 하나 이상의 서버로 구현될 수 있다.
한편, 클라우드 스트리밍 서버(1310)는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
도 15는 스틸 이미지 기반 클라우드 스트리밍 시스템의 다른 예를 나타낸 도면이다.
도 15를 참조하면, 서버(1500)에서는 사용자의 단말 장치로부터 발생되는 사용자 입력(User Input)에 상응하는 프로그램 화면(1510)을 실행시켜 캡처(Screen Capture)를 수행할 수 있다. 이 때, 서버(1500)는 클라우드 스트리밍 서버와 웹 어플리케이션 서버를 통칭하는 서버일 수 있다. 또한, 프로그램 화면(1510)을 실행시켜 캡처(Screen Capture)를 수행하는 과정은 도 14에 도시된 캡처부(1410)의 동작 흐름과 상응할 수 있다.
서버(1500)는 캡처(Screen Capture)된 프로그램 화면(1510)을 스틸 이미지 압축 기법을 통해 인코딩(Image Encoding)(1520)할 수 있다. 이 때, 인코딩 (Image Encoding)(1520)을 수행하는 과정은 도 14에 도시된 인코딩부(1420)의 동작 흐름과 상응할 수 있다.
이 때, 변화된 프레임을 이전 프레임과 비교하여 변화된 영역만을 캡처할 수 있다. 또한, 변화된 영역의 이미지 특성 및 변화된 영역에 상응하는 이미지 해상도를 고려하여 중앙 처리 유닛 및 그래픽 처리 유닛 중 어느 하나의 인코딩 처리 유닛을 선택하고, 선택한 인코딩 처리 유닛을 이용하여 변화된 영역을 스틸 이미지 인코딩할 수 있다.
이 후, 서버(1500)는 스틸 이미지 인코딩된 변화된 영역을 사용자의 단말 장치로 스트리밍(Streaming)(1530)하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 제공할 수 있다. 이 때, 스트리밍(Streaming)(1530)을 수행하는 과정은 도 14에 도시된 센딩부(1430)의 동작 흐름과 상응할 수 있다.
이 후, 사용자의 단말 장치에서는 수신한 데이터를 렌더링(Image Rendering)(1540)함으로써 사용자 입력(User Input)에 의해 어플리케이션에서 실행된 프로그램 화면(1510)이 마치 사용자의 단말 장치에서 실행된 것처럼 사용자에게 디스플레이 할 수 있다.
도 16은 본 발명의 일실시예에 따른 인코딩 처리 유닛을 나타낸 도면이다.
도 16을 참조하면, 본 발명의 일실시예에 따른 인코딩 처리 유닛은 중앙 처리 유닛(Central Processing Unit; CPU)(1610)과 그래픽 처리 유닛(Graphics Processing Unit; GPU)(1620)으로 구분할 수 있다.
중앙 처리 유닛(1610)은 컴퓨터의 가장 중요한 부분으로서 명령을 해독하고 산술논리연산이나 데이터 처리를 실행하는 장치일 수 있다. 따라서 컴퓨터의 계산속도나 한번에 다루는 데이터 량, 관리할 수 있는 주기억장치 영역의 크기 등은 중앙 처리 유닛의 성능에 의존하는 바가 클 수 있다. 이와 같은 중앙 처리 유닛(Central Processing Unit; CPU)을 이용하여 변화 영역을 인코딩하는 경우 인코딩할 데이터를 다른 유닛으로 전달하지 않고 바로 인코딩을 수행할 수 있기 때문에 데이터 전달에 따른 비용은 발생하지 않을 수 있다. 그러나, 변화 영역에 상응하는 이미지의 해상도가 높은 경우에는 인코딩을 수행하는데 시간이 오래 걸릴 수 있다. 특히, 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법에서 컬러 양자화 과정을 수행하는 것과 같이 단순한 계산을 많이 반복하는 경우에는 인코딩 시간이 오래 걸릴 수 있다.
그래픽 처리 유닛(1620)은 3D 그래픽이 본격적으로 도입된 후, 디스플레이 화면을 보다 현실적으로 만들기 위한 각종 광원 효과 및 질감 표현 기법을 처리하기 위해 개발된 3D 그래픽 연산 전용의 프로세서이다. 이와 같은 그래픽 처리 유닛(Graphics Processing Unit; GPU)을 이용하여 변화 영역을 인코딩하는 경우에는 오히려 단순 계산의 반복이나 해상도가 큰 이미지를 인코딩하는데 효과적일 수 있다. 그러나, 그래픽 처리 유닛을 이용하여 변화 영역의 인코딩을 수행하기 위해서는 먼저 중앙 처리 유닛으로부터 인코딩할 데이터를 전달받고, 인코딩이 완료된 후에도 인코딩된 데이터를 다시 중앙 처리 유닛으로 전달해야 하기 때문에 추가적인 전달 비용이 발생할 수 있다.
이와 같은 중앙 처리 유닛(1610)과 그래픽 처리 유닛(1620)은 도 16에서와 같이 서버(1600)내에서 독립적으로 존재할 수 있다. 또는 도 16과는 다르게 중앙 처리 유닛(1610)과 그래픽 처리 유닛(1620)이 하나의 장치 안에 혼합되어 존재하거나, 중앙 처리 유닛(1610)안에 그래픽 처리 유닛(1620)이 포함되는 등 다양한 형태로 구성될 수 있다.
또한, 중앙 처리 유닛(1610)과 그래픽 처리 유닛(1620)은 상호간에 데이터를 송수신할 수 있도록 연결되어 있을 수 있다.
도 17은 본 발명의 다른 실시예에 따른 클라우드 스트리밍 서비스에서 변화 영역을 캡처하는 과정을 나타낸 도면이다.
도 17을 참조하면, 본 발명의 일실시예에 따른 스틸 이미지 기반 클라우드 스트리밍 서비스는 첫번째 프레임(1710)과 두번째 프레임(1720)을 비교하여 변화된 변화 영역(1730)만을 캡처하여 인코딩할 수 있다.
예를 들어, 첫번째 프레임(1710)과 두번째 프레임(1720)에서 B, C, D 및 E의 영역을 메뉴 디스플레이라고 가정하였을 때, 첫번째 프레임(1710)에서는 C 영역에 커서가 위치함으로써 C 영역이 다른 B, D, 및 E 영역과 구별될 수 있도록 음영처리 되었고, 두번째 프레임(1720)에서는 C 영역에서 D 영역으로 커서가 이동함으로써 D 영역이 다른 B, C 및 E 영역과 구별될 수 있도록 음영처리 될 수 있다.
이 때, 첫번째 프레임(1710)과 두번째 프레임(1720)을 비교하였을 때 변화된 영역인 C와 D 영역만을 변화 영역(1730)으로 캡처할 수 있다. 또한, 변화 영역(1730)의 해상도와 변화 영역(1730)에 상응하는 이미지 타입을 고려하여 인코딩 처리 유닛을 선택하고, 선택한 인코딩 처리 유닛을 이용하여 변화 영역(1730)을 인코딩할 수 있다.
이와 같이 첫번째 프레임(1710)과 두번째 프레임(1720)은 분명 변화가 있는 프레임으로 기존의 클라우드 스트리밍 서비스 시에는 두 프레임을 포함하여 프레임 레이트에 상응하는 수의 프레임들을 모두 캡처하여 인코딩을 수행해야 할 수 있다. 하지만 스틸 이미지 기반 클라우드 스트리밍 서비스는 변화 영역(1730)만을 캡처하여 스틸 이미지 압축 기법으로 인코딩하기 때문에, 불필요하게 많은 프레임과 프레임의 화면 전체를 캡처하는 기존의 클라우드 스트리밍 서비스 방법보다 서비스의 효율성을 향상시킬 수 있다.
도 18은 본 발명의 일실시예에 따른 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.
도 18을 참조하면, 본 발명의 일실시예에 따른 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법은 이전 프레임과 비교하여 변화된 프레임에 포함된 변화 영역을 캡처한다(S1810). 비디오 코덱 기반의 클라우드 스트리밍 기법은 어플리케이션이 동작하는 화면에 상응하는 모든 프레임을 캡처하여 인코딩을 수행할 수 있다. 그러나 어플리케이션이 동작하는 화면 상에서 프레임간 변화가 크지 않은 경우에는 이전 프레임과 비교하여 변화된 프레임의 변화 영역만을 캡처하여 스틸 이미지 인코딩을 수행하고, 사용자의 단말 장치에 디스플레이 할 때 변화 영역을 제외한 부분은 동일하게 보여주고 변화 영역만 변화를 주는 방식으로 디스플레이 할 수 있다.
이 때, 변화된 프레임에 상응하는 화면 영역 중 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 변화 영역으로 캡처할 수 있다. 예를 들어 변화된 프레임에 상응하는 화면 영역 중 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역이 A 영역이라면, 변화된 프레임에 상응하는 화면 영역 중 A 영역만을 변화 영역으로 캡처할 수 있다. 이러한 변화 영역은 사용자의 단말 장치에서 입력되는 입력 신호에 따라 해상도나 변화 영역에 상응하는 이미지의 타입이 다양할 수 있다.
이 때, 사용자의 단말 장치로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 프레임 변화가 적은 구간에서 변화 영역을 캡처할 수 있다.
이 때, 사용자의 단말 장치로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 프레임 변화가 적은 구간을 검출할 수 있다. 예를 들어, 사용자의 단말 장치로부터 발생하는 입력신호에 따라 어플리케이션의 이벤트 유형이 결정될 수 있다. 입력신호에 따라 메뉴, 옵션, 안내 창과 같이 어플리케이션을 실행하였을 때 프레임의 변화가 적은 정적인 이벤트 또는 동영상 재생 및 게임 플레이와 같이 프레임이 자주 변하는 동적인 이벤트가 발생할 수 있다. 따라서, 사용자가 단말 장치를 통해 발생시키는 입력신호로 이벤트 유형을 감지하고, 이벤트 유형이 정적인 이벤트라면, 해당 이벤트에 상응하는 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출할 수 있다.
또한, 본 발명의 일실시예에 따른 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법은 변화 영역에 상응하는 이미지 특성 및 이미지 해상도 중 하나 이상을 고려하여 인코딩 처리 유닛을 선택하고, 인코딩 처리 유닛을 이용하여 하나의 프레임에 상응하는 변화 영역을 스틸 이미지 인코딩한다(S1820).
이 때, 인코딩 처리 유닛은 중앙 처리 유닛(Central Processing Unit; CPU) 및 그래픽 처리 유닛(Graphics Processing Unit; GPU) 중 어느 하나의 인코딩 처리 유닛일 수 있다.
중앙 처리 유닛(Central Processing Unit; CPU)은 컴퓨터의 가장 중요한 부분으로서 명령을 해독하고 산술논리연산이나 데이터 처리를 실행하는 장치일 수 있다. 따라서 컴퓨터의 계산속도나 한번에 다루는 데이터 량, 관리할 수 있는 주기억장치 영역의 크기 등은 중앙 처리 유닛의 성능에 의존하는 바가 클 수 있다. 이와 같은 중앙 처리 유닛(Central Processing Unit; CPU)을 이용하여 변화 영역을 인코딩하는 경우 인코딩할 데이터를 다른 유닛으로 전달하지 않고 바로 인코딩을 수행할 수 있기 때문에 데이터 전달에 따른 비용은 발생하지 않을 수 있다. 그러나, 변화 영역에 상응하는 이미지의 해상도가 높은 경우에는 인코딩을 수행하는데 시간이 오래 걸릴 수 있다. 특히, 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법에서 컬러 양자화 과정을 수행하는 것과 같이 단순한 계산을 많이 반복하는 경우에는 인코딩 시간이 오래 걸릴 수 있다.
그래픽 처리 유닛(Graphics Processing Unit; GPU)은 3D 그래픽이 본격적으로 도입된 후, 디스플레이 화면을 보다 현실적으로 만들기 위한 각종 광원 효과 및 질감 표현 기법을 처리하기 위해 개발된 3D 그래픽 연산 전용의 프로세서이다. 이와 같은 그래픽 처리 유닛(Graphics Processing Unit; GPU)을 이용하여 변화 영역을 인코딩하는 경우에는 오히려 단순 계산의 반복이나 해상도가 큰 이미지를 인코딩하는데 효과적일 수 있다. 그러나, 그래픽 처리 유닛을 이용하여 변화 영역의 인코딩을 수행하기 위해서는 먼저 중앙 처리 유닛으로부터 인코딩할 데이터를 전달받고, 인코딩이 완료된 후에도 인코딩된 데이터를 다시 중앙 처리 유닛으로 전달해야 하기 때문에 추가적인 전달 비용이 발생할 수 있다.
이 때, 이미지 특성 및 이미지 해상도 중 하나 이상을 고려하여 중앙 처리 유닛과 그래픽 처리 유닛 각각에 대한 인코딩 처리 비용을 예측하고, 중앙 처리 유닛 및 그래픽 처리 유닛 중 인코딩 처리 비용이 낮은 인코딩 처리 유닛을 선택하여 변화 영역을 스틸 이미지 인코딩할 수 있다. 예를 들어, 변화 영역 A에 대해서 인코딩을 수행하기 위해, 변화 영역 A에 상응하는 이미지 특성과 이미지 해상도를 판단할 수 있다. 이 후, 판단된 변화 영역 A의 이미지 특성 및 이미지 해상도를 기반으로 각각 중앙 처리 유닛과 그래픽 처리 유닛으로 인코딩을 수행하였을 때 발생할 수 있는 인코딩 처리 비용을 예측할 수 있다. 두 개의 인코딩 처리 유닛 중에서 인코딩 처리 비용이 더 낮게 예측된 인코딩 처리 유닛을 선택하여 변화 영역 A의 인코딩을 수행할 수 있다.
또한, 인코딩이 수행된 후 발생한 인코딩 처리 비용에 대해서 인코딩 처리 비용 통계를 생성할 수 있다. 예를 들어, 클라우드 스트리밍 서비스가 수행되는 동안 일정한 단위기간을 설정하고, 설정된 단위기간마다 인코딩 처리 비용에 대한 저장된 정보를 이용하여 인코딩 처리 비용 통계를 업데이트할 수 있다. 이와 같은 인코딩 처리 비용 통계는 이미지 특성, 이미지 해상도 및 인코딩 처리 유닛 각각에 대한 세부적인 통계 정보로 생성될 수 있으며, 생성된 통계 정보를 기반으로 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법의 신뢰도를 상승시킬 수 있다.
이 때, 변화 영역에 상응하는 이미지 해상도가 기설정된 기준값 이상인 경우 그래픽 처리 유닛을 이용하여 변화 영역을 스틸 이미지 인코딩할 수 있다.
해상도는 이미지를 표현하는데 몇 개의 픽셀 또는 도트를 이용하여 나타냈는지 그 정도를 나타낼 수 있다. 단위로는 1인치당 몇 개의 픽셀(pixel)로 이루어졌는지를 나타내는 ppi(pixel per inch), 1인치당 몇 개의 점(dot)로 이루어졌는지를 나타내는 dpi(dot per inch)를 주로 사용한다. 픽셀 또는 도트의 수가 많을수록 고해상도의 정밀한 이미지를 표현할 수 있다. 해상도가 높을수록 이미지가 깨끗하고 선명하게 보이지만, 그만큼 1인치당 점의 수가 많아져서 해당 이미지를 처리하기 위해 많은 양의 메모리가 필요하고 결과적으로 컴퓨터 처리 속도가 느려지는 단점이 존재할 수 있다. 예를 들어, 해상도가 높은 이미지를 중앙 처리 유닛으로 인코딩하는 경우에 인코딩 처리 시간이 길어져 인코딩 처리 비용이 많이 발생할 수 있다.
따라서, 변화 영역에 상응하는 이미지 해상도가 사전에 설정된 기준값과 같거나 기준값보다 높은 경우에는 그래픽 처리 유닛을 이용하여 인코딩을 수행함으로써 중앙 처리 유닛을 이용하여 인코딩할 때보다 인코딩 처리 비용을 절약할 수 있다.
이 때, 변화 영역에 상응하는 이미지 해상도가 기설정된 기준값 미만인 경우 변화 영역에 상응하는 이미지 특성에 따른 스틸 이미지 압축 기법을 고려하여 인코딩 처리 유닛을 선택할 수 있다. 변화 영역에 상응하는 이미지 해상도가 기설정된 기준값보다 낮다면 인코딩할 데이터를 그래픽 처리 유닛으로 전달할 필요 없이 중앙 처리 유닛에서 인코딩을 수행할 수 있다. 그러나 이미지 해상도가 낮아도 변화 영역에 상응하는 이미지 특성에 따라 선택되는 스틸 이미지 압축 기법에 의해 단순 계산이 반복되어야 하는 경우가 발생할 수 있기 때문에, 변화 영역의 이미지 타입을 한번 더 고려하여 인코딩 처리 유닛을 선택할 수 있다.
또한, 스틸 이미지 압축 기법은 변화 영역에 상응하는 이미지의 사이즈나 이미지의 타입과 같은 이미지 특성에 따라 결정될 수 있다.
이 때, 스틸 이미지 압축 기법은 PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응할 수 있다. PNG 스틸 이미지 압축 기법은 인코딩의 경우 화질은 좋으나 데이터 크기가 커져서 전송망의 대역폭이 낮은 경우 반응 속도의 저하를 불러올 수 있다. 팔렛티드 PNG 스틸 이미지 압축 기법은 데이터의 크기를 줄어드나 화질의 열화를 가져올 수 있으며, 특히 데이터 크기 감소를 위한 컬러 양자화 과정 때문에 단순한 계산이 반복되는 과정이 포함될 수 있다. JPEG 스틸 이미지 압축 기법은 전송되는 이미지 타입에 따라서 데이터의 압축 효율이 좋을 수 있지만, 압축 효율이 좋은 만큼 인코딩 및 디코딩 시 부하가 클 수 있다.
이 때, 이미지 해상도가 기설정된 기준값 미만이고 스틸 이미지 압축 기법이 팔렛티드 PNG 인 경우 그래픽 처리 유닛을 이용하여 변화 영역을 스틸 이미지 인코딩할 수 있다. 예를 들어, 변화 영역의 이미지 특성 상 팔렛티드 PNG 스틸 이미지 압축 기법을 이용하여 인코딩을 수행할 때에는 컬러 양자화 같은 단순 계산을 반복하기 때문에 인코딩 처리 시간이 길어질 수 있다. 따라서 이와 같은 경우에는 그래픽 처리 유닛을 이용하여 인코딩을 수행함으로써 중앙 처리 유닛을 이용하여 인코딩할 때보다 적은 인코딩 처리 비용으로 클라우드 스트리밍 서비스를 수행할 수 있다.
또한, 본 발명의 일실시예에 따른 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법은 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다(S1830). 인코딩을 완료함으로써 압축된 변화 영역을 사용자의 단말 장치로 전송함으로써, 사용자의 단말 장치에서 어플리케이션을 실행되는 느낌을 받을 수 있도록 클라우드 스트리밍 서비스를 수행할 수 있다.
또한, 도 18에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법은 클라우드 스트리밍 서비스 과정에서 발생되는 다양한 정보를 저장할 수 있다.
도 19는 본 발명의 일실시예에 따른 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법을 상세하게 나타낸 동작 흐름도이다.
도 19를 참조하면, 본 발명의 일실시예에 따른 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법은 먼저 이전 프레임과 비교하여 변화된 프레임에 포함된 변화 영역을 캡처한다(S1910).
이 후, 변화 영역에 상응하는 이미지의 해상도가 기설정된 기준값 이상인지 여부를 판단한다(S1915).
단계(S1915)의 판단결과 기준값 이상이면, 변화 영역을 그래픽 처리 유닛으로 인코딩한다(S1920).
단계(S1915)의 판단결과 기준값 미만이면, 변화 영역을 인코딩하는 스틸 이미지 압축 기법이 팔렛티드 PNG 스틸 이미지 압축 기법인지 여부를 판단한다(S1925).
단계(S1925)의 판단결과 팔렛티드 PNG 스틸 이미지 압축 기법이면, 변화 영역을 그래픽 처리 유닛으로 인코딩한다(S1920).
단계(S1925)의 판단결과 팔렛티드 PNG 스틸 이미지 압축 기법이 아니면, 변화 영역을 중앙 처리 유닛으로 인코딩한다(S1930). 이 때, 변화 영역을 인코딩하는 스틸 이미지 압축 기법은 PNG 스틸 이미지 압축 기법 및 JPEG 스틸 이미지 압축 기법 중 어느 하나에 상응할 수 있다.
이 후, 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다(S1940).
도 20은 본 발명의 또 다른 실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 20을 참조하면, 본 발명의 일실시예에 다른 클라우드 스트리밍 서비스 시스템은 클라우드 스트리밍 서버(2010), 단말 장치들(2020-1, …, 2020-N) 및 네트워크(2030)를 포함한다.
클라우드 스트리밍 서버(2010)는 단말 장치들(2020-1, …, 2020-N)로부터 클라우드 스트리밍 서비스 요청을 받아 어플리케이션을 실행하고, 어플리케이션 실행 결과에 해당하는 실행 결과 화면을 단말 장치들(2020-1, …, 2020-N)에게 제공한다.
클라우드 스트리밍 서버(2010)는 변화된 프레임에 포함된 변화 영역을 캡처한다. 이 때, 변화된 프레임에 상응하는 화면 영역 중 변화된 프레임의 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 변화 영역으로 캡처할 수 있다. 이 때, 단말 장치들(2020-1, …, 2020-N)로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 프레임 변화가 적은 구간에서 변화 영역을 캡처할 수 있다. 이 때, 단말 장치들(2020-1, …, 2020-N)로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 프레임 변화가 적은 구간을 검출할 수 있다.
또한, 클라우드 스트리밍 서버(2010)는 변화 영역에 대한 인코딩 프로세스를 복수 개의 단위 프로세스들로 분리하고, 단위 프로세스들 중 적어도 하나 이상은 그래픽 처리 유닛(Graphics Processing Unit; GPU)에 할당하고, 그래픽 처리 유닛에 할당되지 아니한 나머지 단위 프로세스들은 중앙 처리 유닛(Central Processing Unit; CPU)에 할당하여 인코딩 프로세스를 수행하여 변화 영역을 스틸 이미지 인코딩한다. 이 때, 단위 프로세스들은 변화 영역에 상응하는 이미지 분석, 스틸 이미지 압축 기법 결정, 스틸 이미지 압축 및 압축 데이터 취합 중 어느 하나에 상응할 수 있다. 이 때, 이미지 분석 및 스틸 이미지 압축 기법 결정에 상응하는 프로세싱 결과에 기반하여 그래픽 처리 유닛에 스틸 이미지 압축에 상응하는 단위 프로세스를 할당할 수 있다. 이 때, 스틸 이미지 압축은 변화 영역에 상응하는 이미지에 대하여 컬러 히스토그램 구성, 팔레트 생성, 팔레트 기반의 원본 컬러 양자화 및 팔레트 기반 인코딩 중 하나 이상의 과정을 포함할 수 있다. 이 때, 그래픽 처리 유닛은 스틸 이미지 압축에 상응하는 프로세싱 결과를 중앙 처리 유닛으로 전달할 수 있다. 이 때, 중앙 처리 유닛은 스틸 이미지 압축에 상응하는 프로세싱 결과를 이용하여 압축 데이터 취합에 상응하는 단위 프로세스를 수행할 수 있다. 이 때, 중앙 처리 유닛은 스틸 이미지 압축에 상응하는 단위 프로세스가 그래픽 처리 유닛에 할당된 경우 변화 영역에 상응하는 이미지 데이터를 그래픽 처리 유닛으로 전달할 수 있다.
또한, 클라우드 스트리밍 서버(2010)는 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다.
단말 장치들(2020-1, …, 2020-N)은 클라우드 스트리밍 서버(2010)로부터 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하여 사용자에게 제공한다.
단말 장치들(2020-1, …, 2020-N)은 각각 통신망에 연결되어 클라우드 컴퓨팅 시스템 기반으로 어플리케이션을 실행할 수 있는 장치로, 이동통신단말기에 한정된 것이 아니고, 모든 정보통신기기, 멀티미디어 단말, 유선 단말, 고정형 단말 및 IP(Internet Protocol) 단말 등의 다양한 단말일 수 있다. 또한, 단말 장치들(2020-1, …, 2020-N)은 각각 휴대폰, PMP(Portable Multimedia Played), MID(Mobile Internet Device), 스마트폰(Smart Phone), 데스크톱(Desktop), 태블릿컴퓨터(Tablet PC), 노트북(Note book), 넷북(Net Book), 개인휴대용 정보단말(Personal Digital Assistant; PDA), 스마트 TV 및 정보통신 기기 등과 같은 다양한 이동통신 사양을 갖는 모바일(Mobile) 단말일 수 있다.
네트워크(2030)는 클라우드 스트리밍 서버(2010)및 단말 장치들(2020-1, …, 2020-N) 사이에 데이터를 전달하는 통로를 제공하는 것으로서, 기존에 이용되는 네트워크 및 향후 개발 가능한 네트워크를 모두 포괄하는 개념이다. 예를 들어, 네트워크(2030)는 한정된 지역 내에서 각종 정보장치들의 통신을 제공하는 유무선근거리 통신망, 이동체 상호 간 및 이동체와 이동체 외부와의 통신을 제공하는 이동통신망, 위성을 이용해 지구국과 지구국간 통신을 제공하는 위성통신망이거나 유무선 통신망 중에서 어느 하나이거나, 둘 이상의 결합으로 이루어질 수 있다. 한편, 네트워크(2030)의 전송 방식 표준은, 기존의 전송 방식 표준에 한정되는 것은 아니며, 향후 개발될 모든 전송 방식 표준을 포함할 수 있다. 또한, 도 20에서 클라우드 스트리밍 서버(2010)와 단말 장치들(2020-1, …, 2020-N) 사이에 사용되는 네트워크는 단말 장치들(2020-1, …, 2020-N) 상호간에 사용되는 네트워크와 상이한 것일 수도 있고, 동일한 것일 수도 있다.
도 21은 도 20에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.
도 21을 참조하면, 도 20에 도시된 클라우드 스트리밍 서버(2010)는 캡처부(2110), 인코딩부(2120), 센딩부(2130) 및 저장부(2140)를 포함한다.
클라우드 스트리밍 서비스 시 변화 영역만을 검출하여 클라우드 스트리밍 서비스를 수행하는 이미지 클라우드 스트리밍에 있어서, 이미지 인코딩을 수행할 때 중앙 처리 유닛(Central Processing Unit; CPU)을 이용하거나 그래픽 처리 유닛(Graphics Processing Unit; GPU)을 이용하여 인코딩을 수행할 수 있다. 이 때, 최적의 이미지 클라우드 스트리밍 서비스를 제공하기 위해서는 세분화된 인코딩 프로세스에 적절하게 중앙 처리 유닛과 그래픽 처리 유닛을 조합해서 사용해야 하지만 기존의 클라우드 스트리밍 서비스 제공 시에는 동일한 하나의 유닛으로만 인코딩이 처리되고 있는 실정이다. 따라서 본 발명에서는 클라우드 스트리밍 서비스를 위해 인코딩 프로세스를 단위 프로세스들로 세분화하고, 단위 프로세스 별로 각각 중앙 처리 유닛과 그래픽 처리 유닛이 프로세싱함으로써 보다 효율적으로 이미지 클라우드 스트리밍 서비스를 제공할 수 있는 구성을 제안하고자 한다.
캡처부(2110)는 변화된 프레임에 포함된 변화 영역을 캡처한다. 비디오 코덱 기반의 클라우드 스트리밍 기법은 어플리케이션이 동작하는 화면에 상응하는 모든 프레임을 캡처하여 인코딩을 수행할 수 있다. 그러나 어플리케이션이 동작하는 화면 상에서 프레임간 변화가 크지 않은 경우에는 변화된 프레임의 변화 영역만을 캡처하여 스틸 이미지 인코딩을 수행하고, 사용자의 단말 장치에 디스플레이 할 때 변화 영역을 제외한 부분은 동일하게 보여주고 변화 영역만 변화를 주는 방식으로 디스플레이 할 수 있다.
이 때, 변화된 프레임에 상응하는 화면 영역 중 변화된 프레임의 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 변화 영역으로 캡처할 수 있다. 예를 들어 변화된 프레임에 상응하는 화면 영역 중 변화된 프레임의 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역이 A 영역이라면, 변화된 프레임에 상응하는 화면 영역 중 A 영역만을 변화 영역으로 캡처할 수 있다. 이러한 변화 영역은 사용자의 단말 장치에서 입력되는 입력 신호에 따라 해상도나 변화 영역에 상응하는 이미지의 타입이 다양할 수 있다.
이 때, 사용자의 단말 장치로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 프레임 변화가 적은 구간에서 변화 영역을 캡처할 수 있다.
이 때, 사용자의 단말 장치로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 프레임 변화가 적은 구간을 검출할 수 있다. 예를 들어, 사용자의 단말 장치로부터 발생하는 입력신호에 따라 어플리케이션의 이벤트 유형이 결정될 수 있다. 입력신호에 따라 메뉴, 옵션, 안내 창과 같이 어플리케이션을 실행하였을 때 프레임의 변화가 적은 정적인 이벤트 또는 동영상 재생 및 게임 플레이와 같이 프레임이 자주 변하는 동적인 이벤트가 발생할 수 있다. 따라서, 사용자가 단말 장치를 통해 발생시키는 입력신호로 이벤트 유형을 감지하고, 이벤트 유형이 정적인 이벤트라면, 해당 이벤트에 상응하는 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출할 수 있다.
인코딩부(2120)는 변화 영역에 대한 인코딩 프로세스를 복수 개의 단위 프로세스들로 분리하고, 단위 프로세스들 중 적어도 하나 이상은 그래픽 처리 유닛(Graphics Processing Unit; GPU)에 할당하고, 그래픽 처리 유닛에 할당되지 아니한 나머지 단위 프로세스들은 중앙 처리 유닛(Central Processing Unit; CPU)에 할당하여 인코딩 프로세스를 수행하여 변화 영역을 스틸 이미지 인코딩한다.
클라우드 스트리밍 서버에서 변화 영역에 상응하는 이미지를 인코딩할 때, 중앙 처리 유닛만을 사용하여 서비스를 수행하는 기존의 방식으로는 클라우드 스트리밍 서버의 전체 가용 자원을 사용하지 못하기 때문에 이미지 인코딩의 시간이 지연에 따라 서비스 품질이 저하될 수 있었다. 따라서, 본 발명에서는 인코딩 프로세스를 여러 개의 단위 프로세스들로 세분화하고, 각각의 단위 프로세스들을 중앙 처리 장치와 그래픽 처리 장치에 적절하게 할당하여 인코딩을 수행함으로써 기존의 방식에서 발생할 수 있었던 문제점을 해결할 수 있는 구성을 제시할 수 있다.
이 때, 단위 프로세스들은 변화 영역에 상응하는 이미지 분석, 스틸 이미지 압축 기법 결정, 스틸 이미지 압축 및 압축 데이터 취합 중 어느 하나에 상응할 수 있다. 이미지 분석은 변화 영역에 상응하는 이미지가 어떤 특성을 갖고 있는지 분석하는 과정일 수 있다. 예를 들어, 이미지의 사이즈나 해상도 및 타입 등의 이미지 특성을 분석하여 효율적인 인코딩을 수행하기 위한 데이터로 사용할 수 있다.
또한, 스틸 이미지 압축 기법 결정에 상응하는 단위 프로세스를 수행함으로써 변화 영역의 압축을 수행할 때 클라우드 스트리밍 서버의 자원을 보다 효율적으로 사용할 수 있다. 이 후, 변화 영역에 상응하는 적어도 하나 이상의 이미지들을 스틸 이미지 압축한 결과를 이용하여 최종적으로 압축 데이터 취합에 상응하는 프로세스를 수행할 수 있다.
이 때, 이미지 분석 및 스틸 이미지 압축 기법 결정에 상응하는 프로세싱 결과에 기반하여 그래픽 처리 유닛에 스틸 이미지 압축에 상응하는 단위 프로세스를 할당할 수 있다. 예를 들어, 이미지 분석 및 스틸 이미지 압축 기법 결정에 상응하는 프로세싱 결과 변화 영역을 인코딩할 스틸 이미지 압축 기법으로 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법이 결정될 수 있다. 이 때, 팔렛티드 PNG 스틸 이미지 압축 기법을 이용하여 스틸 이미지 인코딩을 수행하는 과정에는 단순한 계산의 반복이나 병렬로 처리하기 좋은 계산 과정이 포함될 수 있다. 따라서, 이와 같은 경우에는 단위 프로세스들 중 스틸 이미지 압축을 수행하는 단위 프로세스를 그래픽 처리 유닛에 할당함으로써 인코딩에 사용되는 시간을 절약하여 클라우드 스트리밍 서버의 자원을 효율적으로 사용할 수 있다.
또한, 이미지 분석 및 스틸 이미지 압축 기법 결정에 상응하는 프로세싱 결과에 상관하지 않고 시스템 설정에 따라, 그래픽 처리 유닛을 이용하여 스틸 이미지 압축에 상응하는 단위 프로세스를 수행할 수도 있다. 클라우드 스트리밍 시스템이 중앙 처리 유닛만으로 구성된 경우에는 중앙 처리 유닛을 이용하여 모든 프로세스를 수행해야 하기 때문에, 사용자의 단말로 클라우드 스트리밍 서비스를 제공할 때 레이턴시 지연이 발생할 가능성이 높을 수 있다. 따라서, 중앙 처리 유닛을 하나 또는 복수로 구비하여 스틸 이미지 압축에 상응하는 단위 프로세스를 그래픽 처리 유닛으로 수행하고, 프로세싱 결과를 중앙 처리 유닛으로 재전달함으로써 클라우드 스트리밍 시스템의 관리 비용 절감 및 레이턴시 지연 감소의 효과를 달성할 수 있다.
이 때, 스틸 이미지 압축은 변화 영역에 상응하는 이미지에 대하여 컬러 히스토그램 구성, 팔레트 생성, 팔레트 기반의 원본 컬러 양자화 및 팔레트 기반 인코딩 중 하나 이상의 과정을 포함할 수 있다. 컬러 히스토그램 구성은 변화 영역에 상응하는 이미지에 대한 팔렛트를 생성하기 위해 수행될 수 있다. 팔레트 생성은 컬러 히스토그램을 이용하여 원본 이미지, 즉 변화 영역에 상응하는 이미지 대비 최소 손실이 나는 팔레트를 생성하는 과정일 수 있다. 이렇게 생성한 팔레트를 기반으로 하여 변화 영역에 상응하는 이미지의 컬러를 팔레트에 상응하는 컬러로 치환하여 원본 컬러 양자화를 수행하고, 팔레트 기반 인코딩을 수행할 수 있다.
이 때, 그래픽 처리 유닛은 스틸 이미지 압축에 상응하는 프로세싱 결과를 중앙 처리 유닛으로 전달할 수 있다. 예를 들어, 복수 개의 변화된 프레임에 포함된 변화 영역들에 대해서 그래픽 처리 유닛에서 스틸 이미지 압축에 상응하는 단위 프로세스를 수행하고, 각각의 프로세싱 결과를 압축 데이터 취합에 상응하는 단위 프로세스를 수행할 중앙 처리 유닛으로 전달할 수 있다. 이와 같이 인코딩 프로세스를 복수 개로 세분화하여 중앙 처리 유닛 및 그래픽 처리 유닛 중 어느 하나로 수행함에 따라 프로세싱 결과를 전달하는 자원 소모비용이 추가적으로 발생할 수 있지만, 인코딩 프로세스를 세분화하여 처리함으로써 얻을 수 있는 자원 효율이득이 추가적으로 발생할 수 있는 자원 소모비용보다 크기 때문에 보다 효과적인 인코딩 방법일 수 있다.
이 때, 중앙 처리 유닛은 스틸 이미지 압축에 상응하는 프로세싱 결과를 이용하여 압축 데이터 취합에 상응하는 단위 프로세스를 수행할 수 있다. 예를 들어, 그래픽 처리 유닛을 통해 생성된 스틸 이미지 압축에 상응하는 프로세싱 결과가 복수일 경우에는 각각의 프로세싱 결과, 즉 압축 데이터들을 취합할 수 있다. 인코딩 프로세스를 수행하여 사용자의 단말 장치로 스틸 이미지 기반의 클라우드 스트리밍 서비스를 제공하는 것이 본 발명의 목적이기 때문에, 사용자의 단말 장치로 서비스를 제공할 수 있도록 복수의 압축 데이터를 취합하여 인코딩 프로세스를 수행할 수 있다.
이 때, 중앙 처리 유닛은 스틸 이미지 압축에 상응하는 단위 프로세스가 그래픽 처리 유닛에 할당된 경우 변화 영역에 상응하는 이미지 데이터를 그래픽 처리 유닛으로 전달할 수 있다. 이미지 분석 및 스틸 이미지 압축 기법 결정에 상응하는 단위 프로세스의 프로세싱 결과에 따라 스틸 이미지 압축에 상응하는 단위 프로세스가 그래픽 처리 유닛에 할당되는지 여부가 결정될 수 있다. 예를 들어, 이미지 분석 및 스틸 이미지 압축 기법 결정에 상응하는 단위 프로세스의 프로세싱 결과 변화 영역에 상응하는 이미지를 팔렛티드 PNG 스틸 이미지 압축 기법으로 압축하는 경우에는 단순 계산을 반복하고 병렬 처리하기 좋은 계산이 존재하므로 그래픽 처리 유닛으로 스틸 이미지 압축을 수행하는 것이 중앙 처리 유닛으로 스틸 이미지 압축을 수행하는 것보다 효율적일 수 있다. 따라서, 상기와 같이 그래픽 처리 유닛에서 스틸 이미지 압축에 상응하는 단위 프로세스가 할당된 경우에는 압축될 이미지 데이터, 즉 변화 영역에 상응하는 이미지 데이터를 그래픽 처리 유닛으로 전달할 수 있다.
센딩부(2130)는 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다. 인코딩을 완료함으로써 압축된 변화 영역을 사용자의 단말 장치로 전송함으로써, 사용자의 단말 장치에서 어플리케이션을 실행되는 느낌을 받을 수 있도록 클라우드 스트리밍 서비스를 수행할 수 있다.
저장부(2140)는 상술한 바와 같이 본 발명의 실시예에 따른 클라우드 스트리밍 서비스 과정에서 발생되는 다양한 정보를 저장한다.
실시예에 따라, 저장부(2140)는 클라우드 스트리밍 서버(2010)와 독립적으로 구성되어 클라우드 스트리밍 서비스를 위한 기능을 지원할 수 있다. 이 때, 저장부(2140)는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수 있다.
또한, 상술한 바와 같이 구성되는 클라우드 스트리밍 서버(2010)는 하나 이상의 서버로 구현될 수 있다.
한편, 클라우드 스트리밍 서버(2010)는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
도 22는 스틸 이미지 기반 클라우드 스트리밍 시스템의 또 다른 예를 나타낸 도면이다.
도 22를 참조하면, 서버(2210)에서는 사용자의 단말 장치로부터 발생되는 사용자 입력(User Input)에 상응하는 프로그램 화면(2210)을 실행시켜 캡처(Screen Capture)를 수행할 수 있다. 이 때, 서버(2200)는 클라우드 스트리밍 서버와 웹 어플리케이션 서버를 통칭하는 서버일 수 있다. 또한, 프로그램 화면(2210)을 실행시켜 캡처(Screen Capture)를 수행하는 과정은 도 21에 도시된 캡처부(2110)의 동작 흐름과 상응할 수 있다.
서버(2200)는 캡처(Screen Capture)된 프로그램 화면(2210)을 스틸 이미지 압축 기법을 통해 인코딩(Image Encoding)(2220)할 수 있다. 이 때, 인코딩 (Image Encoding)(2220)을 수행하는 과정은 도 21에 도시된 인코딩부(2120)의 동작 흐름과 상응할 수 있다.
이 때, 변화된 프레임을 이전 프레임과 비교하여 변화된 영역만을 캡처할 수 있다. 또한, 변화 영역에 대한 인코딩 프로세스를 복수 개의 단위 프로세스들로 분리하고, 단위 프로세스들 중 적어도 하나 이상은 그래픽 처리 유닛(Graphics Processing Unit; GPU)에 할당하고, 그래픽 처리 유닛에 할당되지 아니한 나머지 단위 프로세스들은 중앙 처리 유닛(Central Processing Unit; CPU)에 할당하여 인코딩 프로세스를 수행하여 변화 영역을 스틸 이미지 인코딩할 수 있다.
이 후, 서버(2200)는 스틸 이미지 인코딩된 변화된 영역을 사용자의 단말 장치로 스트리밍(Streaming)(2230)하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 제공할 수 있다. 이 때, 스트리밍(Streaming)(2230)을 수행하는 과정은 도 21에 도시된 센딩부(2130)의 동작 흐름과 상응할 수 있다.
이 후, 사용자의 단말 장치에서는 수신한 데이터를 렌더링(Image Rendering)(2240)함으로써 사용자 입력(User Input)에 의해 어플리케이션에서 실행된 프로그램 화면(2210)이 마치 사용자의 단말 장치에서 실행된 것처럼 사용자에게 디스플레이 할 수 있다.
도 23은 본 발명의 다른 실시예에 따른 인코딩 처리 유닛을 나타낸 도면이다.
도 23을 참조하면, 본 발명의 다른 실시예에 따른 인코딩 처리 유닛은 중앙 처리 유닛(Central Processing Unit; CPU)(2310)과 그래픽 처리 유닛(Graphics Processing Unit; GPU)(2320)으로 구분할 수 있다.
중앙 처리 유닛(2310)은 컴퓨터의 가장 중요한 부분으로서 명령을 해독하고 산술논리연산이나 데이터 처리를 실행하는 장치일 수 있다. 따라서 컴퓨터의 계산속도나 한번에 다루는 데이터 량, 관리할 수 있는 주기억장치 영역의 크기 등은 중앙 처리 유닛의 성능에 의존하는 바가 클 수 있다. 이와 같은 중앙 처리 유닛(Central Processing Unit; CPU)을 이용하여 변화 영역을 인코딩하는 경우 인코딩할 데이터를 다른 유닛으로 전달하지 않고 바로 인코딩을 수행할 수 있기 때문에 데이터 전달에 따른 비용은 발생하지 않을 수 있다. 그러나 변화 영역에 상응하는 이미지를 인코딩하기 위한 과정 중 단순 계산의 반복 및 병렬 처리하기 좋은 계산 중 하나 이상이 포함된 경우에는 중앙 처리 유닛(2310)을 이용하여 인코딩을 수행하는데 시간이 오래 걸릴 수 있다. 특히, 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법을 이용하여 인코딩을 수행하는 경우, 각각의 프레임 이미지에 대하여 컬러 히스토그램을 구성하고, 컬러 히스토그램을 기반으로 팔레트를 생성하여 컬러 양자화를 수행하기 때문에 인코딩 시간이 비효율적으로 길어질 수 있다.
그래픽 처리 유닛(2320)은 3D 그래픽이 본격적으로 도입된 후, 디스플레이 화면을 보다 현실적으로 만들기 위한 각종 광원 효과 및 질감 표현 기법을 처리하기 위해 개발된 3D 그래픽 연산 전용의 프로세서이다. 이와 같은 그래픽 처리 유닛(Graphics Processing Unit; GPU)을 이용하여 변화 영역을 인코딩하는 경우에는 단순 계산의 반복이나 병렬 처리하기 좋은 계산 과정이 포함되어 있어도 그래픽 처리 장치의 처리능력을 통해 효과적으로 인코딩을 수행할 수 있다. 그러나, 그래픽 처리 유닛을 이용하여 변화 영역의 인코딩을 수행하기 위해서는 먼저 중앙 처리 유닛으로부터 인코딩할 데이터를 전달받고, 인코딩이 완료된 후에도 인코딩된 데이터를 다시 중앙 처리 유닛으로 전달해야 하기 때문에 추가적인 전달 비용이 발생할 수 있다.
이와 같은 중앙 처리 유닛(2310)과 그래픽 처리 유닛(2320)은 도 23에서와 같이 서버(2300)내에서 독립적으로 존재할 수 있다. 또는 도 23과는 다르게 중앙 처리 유닛(2310)과 그래픽 처리 유닛(2320)이 하나의 장치 안에 혼합되어 존재하거나, 중앙 처리 유닛(2310)안에 그래픽 처리 유닛(2320)이 포함되는 등 다양한 형태로 구성될 수 있다.
또한, 중앙 처리 유닛(2310)과 그래픽 처리 유닛(2320)은 상호간에 데이터를 송수신할 수 있도록 연결되어 있을 수 있다.
도 24는 본 발명의 또 다른 실시예에 따른 클라우드 스트리밍 서비스에서 변화 영역을 캡처하는 과정을 나타낸 도면이다.
도 24를 참조하면, 본 발명의 또 다른 실시예에 따른 스틸 이미지 기반 클라우드 스트리밍 서비스는 첫번째 프레임(2410)과 두번째 프레임(2420)을 비교하여 변화된 변화 영역(2430)만을 캡처하여 인코딩할 수 있다.
예를 들어, 첫번째 프레임(2410)과 두번째 프레임(2420)에서 B, C, D 및 E의 영역을 메뉴 디스플레이라고 가정하였을 때, 첫번째 프레임(2410)에서는 C 영역에 커서가 위치함으로써 C 영역이 다른 B, D, 및 E 영역과 구별될 수 있도록 음영처리 되었고, 두번째 프레임(2420)에서는 C 영역에서 D 영역으로 커서가 이동함으로써 D 영역이 다른 B, C 및 E 영역과 구별될 수 있도록 음영처리 될 수 있다.
이 때, 첫번째 프레임(2410)과 두번째 프레임(2420)을 비교하였을 때 변화된 영역인 C와 D 영역만을 변화 영역(2430)으로 캡처할 수 있다. 또한, 변화 영역(2430)에 대한 인코딩 프로세스를 복수 개의 단위 프로세스들로 분리하고, 단위 프로세스들 중 적어도 하나 이상은 그래픽 처리 유닛(Graphics Processing Unit; GPU)에 할당하고, 그래픽 처리 유닛에 할당되지 아니한 나머지 단위 프로세스들은 중앙 처리 유닛(Central Processing Unit; CPU)에 할당하여 인코딩 프로세스를 수행하여 변화 영역(2430)을 스틸 이미지 인코딩할 수 있다.
이와 같이 첫번째 프레임(2410)과 두번째 프레임(2420)은 분명 변화가 있는 프레임으로 기존의 클라우드 스트리밍 서비스 시에는 두 프레임을 포함하여 프레임 레이트에 상응하는 수의 프레임들을 모두 캡처하여 인코딩을 수행해야 할 수 있다. 하지만 스틸 이미지 기반 클라우드 스트리밍 서비스는 변화 영역(2430)만을 캡처하여 스틸 이미지 압축 기법으로 인코딩하기 때문에, 불필요하게 많은 프레임과 프레임의 화면 전체를 캡처하는 기존의 클라우드 스트리밍 서비스 방법보다 서비스의 효율성을 향상시킬 수 있다.
도 25는 본 발명의 일실시예에 따른 인코딩 처리 유닛의 작업 분리를 통한 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.
도 25를 참조하면, 본 발명의 일실시예에 따른 인코딩 처리 유닛의 작업 분리를 통한 클라우드 스트리밍 서비스 방법은 변화된 프레임에 포함된 변화 영역을 캡처한다(S2510). 비디오 코덱 기반의 클라우드 스트리밍 기법은 어플리케이션이 동작하는 화면에 상응하는 모든 프레임을 캡처하여 인코딩을 수행할 수 있다. 그러나 어플리케이션이 동작하는 화면 상에서 프레임간 변화가 크지 않은 경우에는 변화된 프레임의 변화 영역만을 캡처하여 스틸 이미지 인코딩을 수행하고, 사용자의 단말 장치에 디스플레이 할 때 변화 영역을 제외한 부분은 동일하게 보여주고 변화 영역만 변화를 주는 방식으로 디스플레이 할 수 있다.
이 때, 변화된 프레임에 상응하는 화면 영역 중 변화된 프레임의 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역을 변화 영역으로 캡처할 수 있다. 예를 들어 변화된 프레임에 상응하는 화면 영역 중 변화된 프레임의 이전 프레임에 상응하는 화면 영역과 비교하여 변화된 영역이 A 영역이라면, 변화된 프레임에 상응하는 화면 영역 중 A 영역만을 변화 영역으로 캡처할 수 있다. 이러한 변화 영역은 사용자의 단말 장치에서 입력되는 입력 신호에 따라 해상도나 변화 영역에 상응하는 이미지의 타입이 다양할 수 있다.
이 때, 사용자의 단말 장치로 전송될 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출하고, 프레임 변화가 적은 구간에서 변화 영역을 캡처할 수 있다.
이 때, 사용자의 단말 장치로부터 발생하는 어플리케이션의 이벤트 유형을 감지하여 프레임 변화가 적은 구간을 검출할 수 있다. 예를 들어, 사용자의 단말 장치로부터 발생하는 입력신호에 따라 어플리케이션의 이벤트 유형이 결정될 수 있다. 입력신호에 따라 메뉴, 옵션, 안내 창과 같이 어플리케이션을 실행하였을 때 프레임의 변화가 적은 정적인 이벤트 또는 동영상 재생 및 게임 플레이와 같이 프레임이 자주 변하는 동적인 이벤트가 발생할 수 있다. 따라서, 사용자가 단말 장치를 통해 발생시키는 입력신호로 이벤트 유형을 감지하고, 이벤트 유형이 정적인 이벤트라면, 해당 이벤트에 상응하는 프레임 전체 구간 중 프레임 변화가 적은 구간을 검출할 수 있다.
또한, 본 발명의 일실시예에 따른 인코딩 처리 유닛의 작업 분리를 통한 클라우드 스트리밍 서비스 방법은 변화 영역에 대한 인코딩 프로세스를 복수 개의 단위 프로세스들로 분리하고, 단위 프로세스들 중 적어도 하나 이상은 그래픽 처리 유닛(Graphics Processing Unit; GPU)에 할당하고, 그래픽 처리 유닛에 할당되지 아니한 나머지 단위 프로세스들은 중앙 처리 유닛(Central Processing Unit; CPU)에 할당하여 인코딩 프로세스를 수행하여 변화 영역을 스틸 이미지 인코딩한다(S2520).
클라우드 스트리밍 서버에서 변화 영역에 상응하는 이미지를 인코딩할 때, 중앙 처리 유닛만을 사용하여 서비스를 수행하는 기존의 방식으로는 클라우드 스트리밍 서버의 전체 가용 자원을 사용하지 못하기 때문에 이미지 인코딩의 시간이 지연에 따라 서비스 품질이 저하될 수 있었다. 따라서, 본 발명에서는 인코딩 프로세스를 여러 개의 단위 프로세스들로 세분화하고, 각각의 단위 프로세스들을 중앙 처리 장치와 그래픽 처리 장치에 적절하게 할당하여 인코딩을 수행함으로써 기존의 방식에서 발생할 수 있었던 문제점을 해결할 수 있는 방안을 제시할 수 있다.
이 때, 단위 프로세스들은 변화 영역에 상응하는 이미지 분석, 스틸 이미지 압축 기법 결정, 스틸 이미지 압축 및 압축 데이터 취합 중 어느 하나에 상응할 수 있다. 이미지 분석은 변화 영역에 상응하는 이미지가 어떤 특성을 갖고 있는지 분석하는 과정일 수 있다. 예를 들어, 이미지의 사이즈나 해상도 및 타입 등의 이미지 특성을 분석하여 효율적인 인코딩을 수행하기 위한 데이터로 사용할 수 있다.
또한, 스틸 이미지 압축 기법 결정에 상응하는 단위 프로세스를 수행함으로써 변화 영역의 압축을 수행할 때 클라우드 스트리밍 서버의 자원을 보다 효율적으로 사용할 수 있다. 이 후, 변화 영역에 상응하는 적어도 하나 이상의 이미지들을 스틸 이미지 압축한 결과를 이용하여 최종적으로 압축 데이터 취합에 상응하는 프로세스를 수행할 수 있다.
이 때, 이미지 분석 및 스틸 이미지 압축 기법 결정에 상응하는 프로세싱 결과에 기반하여 그래픽 처리 유닛에 스틸 이미지 압축에 상응하는 단위 프로세스를 할당할 수 있다. 예를 들어, 이미지 분석 및 스틸 이미지 압축 기법 결정에 상응하는 프로세싱 결과 변화 영역을 인코딩할 스틸 이미지 압축 기법으로 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법이 결정될 수 있다. 이 때, 팔렛티드 PNG 스틸 이미지 압축 기법을 이용하여 스틸 이미지 인코딩을 수행하는 과정에는 단순한 계산의 반복이나 병렬로 처리하기 좋은 계산 과정이 포함될 수 있다. 따라서, 이와 같은 경우에는 단위 프로세스들 중 스틸 이미지 압축을 수행하는 단위 프로세스를 그래픽 처리 유닛에 할당함으로써 인코딩에 사용되는 시간을 절약하여 클라우드 스트리밍 서버의 자원을 효율적으로 사용할 수 있다.
또한, 이미지 분석 및 스틸 이미지 압축 기법 결정에 상응하는 프로세싱 결과에 상관하지 않고 시스템 설정에 따라, 그래픽 처리 유닛을 이용하여 스틸 이미지 압축에 상응하는 단위 프로세스를 수행할 수도 있다. 클라우드 스트리밍 시스템이 중앙 처리 유닛만으로 구성된 경우에는 중앙 처리 유닛을 이용하여 모든 프로세스를 수행해야 하기 때문에, 사용자의 단말로 클라우드 스트리밍 서비스를 제공할 때 레이턴시 지연이 발생할 가능성이 높을 수 있다. 따라서, 중앙 처리 유닛을 하나 또는 복수로 구비하여 스틸 이미지 압축에 상응하는 단위 프로세스를 그래픽 처리 유닛으로 수행하고, 프로세싱 결과를 중앙 처리 유닛으로 재전달함으로써 클라우드 스트리밍 시스템의 관리 비용 절감 및 레이턴시 지연 감소의 효과를 달성할 수 있다.
이 때, 스틸 이미지 압축은 변화 영역에 상응하는 이미지에 대하여 컬러 히스토그램 구성, 팔레트 생성, 팔레트 기반의 원본 컬러 양자화 및 팔레트 기반 인코딩 중 하나 이상의 과정을 포함할 수 있다. 컬러 히스토그램 구성은 변화 영역에 상응하는 이미지에 대한 팔렛트를 생성하기 위해 수행될 수 있다. 팔레트 생성은 컬러 히스토그램을 이용하여 원본 이미지, 즉 변화 영역에 상응하는 이미지 대비 최소 손실이 나는 팔레트를 생성하는 과정일 수 있다. 이렇게 생성한 팔레트를 기반으로 하여 변화 영역에 상응하는 이미지의 컬러를 팔레트에 상응하는 컬러로 치환하여 원본 컬러 양자화를 수행하고, 팔레트 기반 인코딩을 수행할 수 있다.
이 때, 그래픽 처리 유닛은 스틸 이미지 압축에 상응하는 프로세싱 결과를 중앙 처리 유닛으로 전달할 수 있다. 예를 들어, 복수 개의 변화된 프레임에 포함된 변화 영역들에 대해서 그래픽 처리 유닛에서 스틸 이미지 압축에 상응하는 단위 프로세스를 수행하고, 각각의 프로세싱 결과를 압축 데이터 취합에 상응하는 단위 프로세스를 수행할 중앙 처리 유닛으로 전달할 수 있다. 이와 같이 인코딩 프로세스를 복수 개로 세분화하여 중앙 처리 유닛 및 그래픽 처리 유닛 중 어느 하나로 수행함에 따라 프로세싱 결과를 전달하는 자원 소모비용이 추가적으로 발생할 수 있지만, 인코딩 프로세스를 세분화하여 처리함으로써 얻을 수 있는 자원 효율이득이 추가적으로 발생할 수 있는 자원 소모비용보다 크기 때문에 보다 효과적인 인코딩 방법일 수 있다.
이 때, 중앙 처리 유닛은 스틸 이미지 압축에 상응하는 프로세싱 결과를 이용하여 압축 데이터 취합에 상응하는 단위 프로세스를 수행할 수 있다. 예를 들어, 그래픽 처리 유닛을 통해 생성된 스틸 이미지 압축에 상응하는 프로세싱 결과가 복수일 경우에는 각각의 프로세싱 결과, 즉 압축 데이터들을 취합할 수 있다. 인코딩 프로세스를 수행하여 사용자의 단말 장치로 스틸 이미지 기반의 클라우드 스트리밍 서비스를 제공하는 것이 본 발명의 목적이기 때문에, 사용자의 단말 장치로 서비스를 제공할 수 있도록 복수의 압축 데이터를 취합하여 인코딩 프로세스를 수행할 수 있다.
이 때, 중앙 처리 유닛은 스틸 이미지 압축에 상응하는 단위 프로세스가 그래픽 처리 유닛에 할당된 경우 변화 영역에 상응하는 이미지 데이터를 그래픽 처리 유닛으로 전달할 수 있다. 이미지 분석 및 스틸 이미지 압축 기법 결정에 상응하는 단위 프로세스의 프로세싱 결과에 따라 스틸 이미지 압축에 상응하는 단위 프로세스가 그래픽 처리 유닛에 할당되는지 여부가 결정될 수 있다. 예를 들어, 이미지 분석 및 스틸 이미지 압축 기법 결정에 상응하는 단위 프로세스의 프로세싱 결과 변화 영역에 상응하는 이미지를 팔렛티드 PNG 스틸 이미지 압축 기법으로 압축하는 경우에는 단순 계산을 반복하고 병렬 처리하기 좋은 계산이 존재하므로 그래픽 처리 유닛으로 스틸 이미지 압축을 수행하는 것이 중앙 처리 유닛으로 스틸 이미지 압축을 수행하는 것보다 효율적일 수 있다. 따라서, 상기와 같이 그래픽 처리 유닛에서 스틸 이미지 압축에 상응하는 단위 프로세스가 할당된 경우에는 압축될 이미지 데이터, 즉 변화 영역에 상응하는 이미지 데이터를 그래픽 처리 유닛으로 전달할 수 있다.
또한, 본 발명의 일실시예에 따른 인코딩 처리 유닛의 작업 분리를 통한 클라우드 스트리밍 서비스 방법은 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다(S2530). 인코딩을 완료함으로써 압축된 변화 영역을 사용자의 단말 장치로 전송함으로써, 사용자의 단말 장치에서 어플리케이션을 실행되는 느낌을 받을 수 있도록 클라우드 스트리밍 서비스를 수행할 수 있다.
또한, 도 25에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법은 클라우드 스트리밍 서비스 과정에서 발생되는 다양한 정보를 저장할 수 있다.
도 26은 본 발명의 일실시예에 따른 인코딩 처리 유닛의 작업 분리를 통한 클라우드 스트리밍 서비스 방법을 상세하게 나타낸 동작 흐름도이다.
도 26을 참조하면, 본 발명의 일실시예에 따른 인코딩 처리 유닛의 작업 분리를 통한 클라우드 스트리밍 서비스 방법은 먼저 이전 프레임과 비교하여 변화된 프레임에 포함된 변화 영역을 캡처한다(S2610).
이 후, 변화 영역에 대한 인코딩 프로세스를 복수 개의 단위 프로세스들로 분리한다(S2620).
이 후, 중앙 처리 유닛을 이용하여 변화 영역에 상응하는 이미지를 분석한다(S2630).
이 후, 중앙 처리 유닛을 이용하여 변화 영역에 상응하는 스틸 이미지 압축 기법을 결정한다(S2640).
이 후, 결정된 스틸 이미지 압축 기법에 따라 그래픽 처리 유닛에 스틸 이미지 압축에 상응하는 단위 프로세스를 할당한다(S2650).
이 후, 중앙 처리 유닛을 이용하여 변화 영역에 상응하는 이미지 데이터를 그래픽 처리 유닛으로 전달한다(S2660).
이 후, 그래픽 처리 유닛을 이용하여 스틸 이미지 압축을 수행하고, 스틸 이미지 압축에 상응하는 프로세싱 결과를 중앙 처리 유닛으로 전달한다(S2670).
이 후, 중앙 처리 유닛은 스틸 이미지 압축에 상응하는 프로세싱 결과를 이용하여 압축 데이터 취합에 상응하는 단위 프로세스를 수행한다(S2680).
이 후, 스틸 이미지 인코딩된 변화 영역을 사용자에게 전달한다(S2690).
컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM)과 같은 반도체 메모리를 포함한다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.
본 발명에 의하면 이전 프레임 및 현재 프레임의 차분 프레임을 이용하여 변화 픽셀들을 포함하면서 최소 넓이를 가지는 직사각형 영역을 변화 영역으로 결정하여 캡처하고, 변화 영역에 상응하는 이미지의 컬러 개수 및 이미지 화소값의 표준 편차 중 하나 이상을 고려하여 결정한 이미지 타입에 따라 스틸 이미지(still image) 압축 기법을 선택하고, 선택한 스틸 이미지 압축 기법을 이용하여 하나의 프레임에 상응하는 변화 영역을 스틸 이미지 인코딩하고, 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수 있다. 나아가, 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스를 통해서 스트리밍 압축 효율을 극대화하고, 동일한 대역을 통해 보다 빠르고 보다 많은 사용자를 대상으로 클라우드 스트리밍 서비스를 제공할 수 있기 때문에 클라우드 스트리밍 서비스 제공자는 대역 확장이 필요한 자원을 절약하면서 사용자들에게 효율적인 서비스를 제공할 수 있다.
또한, 본 발명에 의하면 변화된 프레임에 포함된 변화 영역을 캡처하고, 변화 영역에 상응하는 이미지 특성 정보가 존재하는지 여부를 고려하여 인코딩 방식을 결정하고, 인코딩 방식을 이용하여 변화 영역을 스틸 이미지 인코딩하고, 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수 있다. 나아가, 클라우드 스트리밍 서비스를 위한 인코딩 수행 시 이미지 특성 정보를 이용하여 인코딩 방식을 결정함으로써, 기존에 이미지 프로세싱에 필요했던 클라우드 스트리밍 서버의 자원을 절약할 수 있고, 이로 인해 보다 효율적인 클라우드 스트리밍 서비스를 제공하는 효과를 가져올 수 있다.
또한, 본 발명에 의하면 이전 프레임과 비교하여 변화된 프레임에 포함된 변화 영역을 캡처하고, 변화 영역에 상응하는 이미지 타입 및 이미지 해상도 중 하나 이상을 고려하여 인코딩 처리 유닛을 선택하고, 인코딩 처리 유닛을 이용하여 하나의 프레임에 상응하는 변화 영역을 스틸 이미지 인코딩하고, 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수 있다. 나아가, 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스를 통해서 클라우드 스트리밍 서버의 자원 활용 효율을 상승시킬 수 있어 클라우드 스트리밍 서비스를 제공하기 위한 처리 비용을 절감하는 효과를 기대할 수 있다.
또한, 본 발명에 의하면 변화된 프레임에 포함된 변화 영역을 캡처하고, 그래픽 처리 유닛(Graphics Processing Unit; GPU)을 이용하여 변화 영역을 압축하고, 변화 영역에 대한 인코딩 프로세스를 복수 개의 단위 프로세스들로 분리하고, 단위 프로세스들 중 적어도 하나 이상은 그래픽 처리 유닛(Graphics Processing Unit; GPU)에 할당하고, 그래픽 처리 유닛에 할당되지 아니한 나머지 단위 프로세스들은 중앙 처리 유닛(Central Processing Unit; CPU)에 할당하여 인코딩 프로세스를 수행하여 변화 영역을 스틸 이미지 인코딩하고, 스틸 이미지 인코딩된 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수 있다. 나아가, 인코딩 처리 유닛의 프로세스 분리를 통한 클라우드 스트리밍 서비스를 통해서 클라우드 스트리밍 서버의 자원을 절약할 수 있어 클라우드 스트리밍 서비스를 제공하기 위한 전체적인 비용을 절감하는 효과를 기대할 수 있다.

Claims (20)

  1. 이전 프레임과 현재 프레임을 비교하여 상기 이전 프레임으로부터 변화된 상기 현재 프레임의 변화 영역을 결정하는 변화 영역 결정부;
    상기 변화 영역을 캡처하는 캡처부;
    스틸 이미지(still image) 압축 기법을 이용하여 하나의 프레임에 상응하는 상기 변화 영역을 스틸 이미지 인코딩하는 인코딩부; 및
    스틸 이미지 인코딩된 상기 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 센딩부
    를 포함하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  2. 청구항 1에 있어서,
    상기 변화 영역 결정부는
    상기 이전 프레임 및 상기 현재 프레임의 차분 프레임을 산출하고, 상기 차분 프레임을 이용하여 상기 변화 영역을 결정하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  3. 청구항 2에 있어서,
    상기 변화 영역 결정부는
    상기 차분 프레임을 스캐닝(scanning)하여 상기 이전 프레임으로부터 변화된 상기 현재 프레임의 변화 픽셀을 감지하여 상기 변화 영역을 결정하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  4. 청구항 3에 있어서,
    상기 변화 영역 결정부는
    상기 차분 프레임을 수평 스캐닝(horizontal scanning) 및 수직 스캐닝(vertical scanning)하여 감지되는 변화 픽셀들을 포함하는 상기 변화 영역을 결정하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  5. 청구항 4에 있어서,
    상기 변화 영역 결정부는
    상기 차분 프레임의 상단에서 아래 방향으로 나아가면서 행 단위로 수평 스캐닝하여 최초 감지되는 변화 픽셀로부터 제1 세로 좌표 요소를 획득하고, 하단에서 위 방향으로 나아가면서 행 단위로 수평 스캐닝하여 최초 감지되는 변화 픽셀로부터 제2 세로 좌표 요소를 획득하고, 좌측단에서 오른쪽 방향으로 나아가면 열 단위로 수직 스캐닝하여 최초로 감지되는 변화 픽셀로부터 제1 가로 좌표 요소를 획득하고, 우측단에서 왼쪽 방향으로 나아가면서 열 단위로 수직 스캐닝하여 최초로 감지되는 변화 픽셀로부터 제2 가로 좌표 요소를 획득하고, 상기 가로 좌표 요소들 중 어느 하나 및 상기 세로 좌표 요소들 중 어느 하나를 한 쌍으로 하여 구성되는 좌표에 상응하는 변화 픽셀을 포함하는 직사각형 영역을 상기 변화 영역으로 결정하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  6. 변화된 프레임에 포함된 변화 영역을 캡처하는 캡처부;
    상기 변화 영역에 상응하는 이미지 특성 정보가 존재하는지 여부를 고려하여 인코딩 방식을 결정하고, 상기 인코딩 방식을 이용하여 상기 변화 영역을 스틸 이미지 인코딩하는 인코딩부; 및
    스틸 이미지 인코딩된 상기 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 센딩부
    를 포함하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  7. 청구항 6에 있어서,
    상기 이미지 특성 정보는
    어플리케이션 소스코드에 기반하여 생성되거나 MPEG 텍스처 기술자를 이용하여 생성되는 것을 특징으로 하는 클라우드 스트리밍 서버.
  8. 청구항 7에 있어서,
    상기 인코딩부는
    상기 이미지 특성 정보가 존재하는 경우 상기 이미지 특성 정보에 기반하여 상기 인코딩 방식을 결정하고, 상기 이미지 특성 정보가 존재하지 않는 경우 상기 변화 영역에 상응하는 이미지를 분석하여 상기 인코딩 방식을 결정하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  9. 청구항 8에 있어서,
    상기 인코딩 방식은
    PNG(portable network graphics), 팔렛티드 PNG(portable network graphics) 및 JPEG(joint photography experts group) 중 어느 하나에 상응하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  10. 청구항 8에 있어서,
    상기 인코딩부는
    상기 변화 영역에 상응하는 이미지를 분석하여 상기 변화 영역을 일반 영역 및 그림 영역 주 어느 하나로 구분하고, 상기 일반 영역의 이미지 프로세싱 결과 및 상기 그림 영역의 이미지 타입 중 적어도 하나 이상을 고려하여 상기 인코딩 방식을 결정하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  11. 청구항 10에 있어서,
    상기 이미지 타입은
    자연 이미지(natural image) 및 합성 이미지(synthetic image) 중 어느 하나에 상응하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  12. 이전 프레임과 비교하여 변화된 프레임에 포함된 변화 영역을 캡처하는 캡처부;
    상기 변화 영역에 상응하는 이미지 특성 및 이미지 해상도 중 하나 이상을 고려하여 인코딩 처리 유닛을 선택하고, 상기 인코딩 처리 유닛을 이용하여 하나의 프레임에 상응하는 상기 변화 영역을 스틸 이미지 인코딩하는 인코딩부; 및
    스틸 이미지 인코딩된 상기 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 센딩부
    를 포함하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  13. 청구항 12에 있어서,
    상기 인코딩 처리 유닛은
    중앙 처리 유닛(Central Processing Unit; CPU) 및 그래픽 처리 유닛(Graphics Processing Unit; GPU) 중 어느 하나에 상응하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  14. 청구항 13에 있어서,
    상기 인코딩부는
    상기 이미지 특성 및 상기 이미지 해상도 중 하나 이상을 고려하여 상기 중앙 처리 유닛과 상기 그래픽 처리 유닛 각각에 대한 인코딩 처리 비용을 예측하고, 상기 중앙 처리 유닛 및 그래픽 처리 유닛 중 예측한 상기 인코딩 처리 비용이 낮은 인코딩 처리 유닛을 선택하여 상기 변화 영역을 스틸 이미지 인코딩하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  15. 청구항 14에 있어서,
    상기 인코딩부는
    상기 변화 영역에 상응하는 이미지 해상도가 기설정된 기준값 이상인 경우 상기 그래픽 처리 유닛을 이용하여 상기 변화 영역을 스틸 이미지 인코딩하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  16. 청구항 15에 있어서,
    상기 인코딩부는
    상기 변화 영역에 상응하는 이미지 해상도가 기설정된 기준값 미만인 경우 상기 이미지 특성에 따른 스틸 이미지 압축 기법을 고려하여 상기 인코딩 처리 유닛을 선택하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  17. 변화된 프레임에 포함된 변화 영역을 캡처하는 캡처부;
    상기 변화 영역에 대한 인코딩 프로세스를 복수 개의 단위 프로세스들로 분리하고, 상기 단위 프로세스들 중 적어도 하나 이상은 그래픽 처리 유닛(Graphics Processing Unit; GPU)에 할당하고, 상기 그래픽 처리 유닛에 할당되지 아니한 나머지 단위 프로세스들은 중앙 처리 유닛(Central Processing Unit; CPU)에 할당하여 상기 인코딩 프로세스를 수행하여 상기 변화 영역을 스틸 이미지 인코딩하는 인코딩부; 및
    스틸 이미지 인코딩된 상기 변화 영역을 사용자에게 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 센딩부
    를 포함하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  18. 청구항 17에 있어서,
    상기 단위 프로세스들은
    상기 변화 영역에 상응하는 이미지 분석, 스틸 이미지 압축 기법 결정, 스틸 이미지 압축 및 압축 데이터 취합 중 어느 하나에 상응하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  19. 청구항 18에 있어서,
    상기 인코딩부는
    상기 이미지 분석 및 스틸 이미지 압축 기법 결정에 상응하는 프로세싱 결과에 기반하여 상기 그래픽 처리 유닛에 상기 스틸 이미지 압축에 상응하는 단위 프로세스를 할당하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  20. 청구항 19에 있어서,
    상기 스틸 이미지 압축은
    상기 변화 영역에 상응하는 이미지에 대하여 컬러 히스토그램 구성, 팔레트 생성, 팔레트 기반의 원본 컬러 양자화 및 팔레트 기반 인코딩 중 하나 이상의 과정을 포함하고,
    상기 그래픽 처리 유닛은
    상기 스틸 이미지 압축에 상응하는 프로세싱 결과를 상기 중앙 처리 유닛으로 전달하는 는 것을 특징으로 하는 클라우드 스트리밍 서버.
PCT/KR2015/006950 2014-07-30 2015-07-06 클라우드 스트리밍 서비스 시스템, 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 WO2016017952A1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP15827254.2A EP3177024B1 (en) 2014-07-30 2015-07-06 Apparatus for cloud streaming service
CN201580049450.2A CN106717007B (zh) 2014-07-30 2015-07-06 云端流媒体服务器
JP2016575537A JP2017529716A (ja) 2014-07-30 2015-07-06 クラウドストリーミングサービスシステム、スチールイメージ圧縮技法を利用したクラウドストリーミングサービス方法及びそのための装置
US15/420,030 US10652591B2 (en) 2014-07-30 2017-01-30 System for cloud streaming service, method for same using still-image compression technique and apparatus therefor

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
KR10-2014-0097322 2014-07-30
KR20140097322 2014-07-30
KR10-2014-0133176 2014-10-02
KR1020140133176A KR102265419B1 (ko) 2014-10-02 2014-10-02 클라우드 스트리밍 서비스 시스템, 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR10-2014-0134512 2014-10-06
KR1020140134512A KR102247657B1 (ko) 2014-10-06 2014-10-06 클라우드 스트리밍 서비스 시스템, 인코딩 처리 유닛의 작업 분리를 통한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR1020140137733A KR102247887B1 (ko) 2014-10-13 2014-10-13 클라우드 스트리밍 서비스 시스템, 소스 정보를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR10-2014-0137733 2014-10-13
KR10-2014-0141983 2014-10-20
KR1020140141983A KR102225607B1 (ko) 2014-07-30 2014-10-20 클라우드 스트리밍 서비스 시스템, 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/420,030 Continuation US10652591B2 (en) 2014-07-30 2017-01-30 System for cloud streaming service, method for same using still-image compression technique and apparatus therefor

Publications (1)

Publication Number Publication Date
WO2016017952A1 true WO2016017952A1 (ko) 2016-02-04

Family

ID=55217789

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/006950 WO2016017952A1 (ko) 2014-07-30 2015-07-06 클라우드 스트리밍 서비스 시스템, 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치

Country Status (1)

Country Link
WO (1) WO2016017952A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100030833A (ko) * 2008-09-11 2010-03-19 (주) 엘지텔레콤 웹 뷰어 서버 및 그 제어방법과 웹 뷰어 서버를 포함하는 마크업 페이지 제공 시스템 및 그 제어방법
KR20130011714A (ko) * 2011-07-22 2013-01-30 에스케이플래닛 주식회사 화면 가상화 기반 어플리케이션 구동 시스템 및 방법
KR20130134623A (ko) * 2012-05-31 2013-12-10 에스케이플래닛 주식회사 클라우드 스트리밍을 이용한 데이터 공유 방법, 이를 위한 시스템, 이를 위한 단말기 및 이를 위한 서비스장치
KR20140034603A (ko) * 2012-09-12 2014-03-20 삼성전자주식회사 멀티 세션 관리 방법 및 장치
KR20140093849A (ko) * 2013-01-18 2014-07-29 한국과학기술원 Dom 변이 이벤트 기반 웹 화면 스트리밍 방법 및 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100030833A (ko) * 2008-09-11 2010-03-19 (주) 엘지텔레콤 웹 뷰어 서버 및 그 제어방법과 웹 뷰어 서버를 포함하는 마크업 페이지 제공 시스템 및 그 제어방법
KR20130011714A (ko) * 2011-07-22 2013-01-30 에스케이플래닛 주식회사 화면 가상화 기반 어플리케이션 구동 시스템 및 방법
KR20130134623A (ko) * 2012-05-31 2013-12-10 에스케이플래닛 주식회사 클라우드 스트리밍을 이용한 데이터 공유 방법, 이를 위한 시스템, 이를 위한 단말기 및 이를 위한 서비스장치
KR20140034603A (ko) * 2012-09-12 2014-03-20 삼성전자주식회사 멀티 세션 관리 방법 및 장치
KR20140093849A (ko) * 2013-01-18 2014-07-29 한국과학기술원 Dom 변이 이벤트 기반 웹 화면 스트리밍 방법 및 시스템

Similar Documents

Publication Publication Date Title
WO2021086016A2 (en) Apparatus and method for performing artificial intelligence (ai) encoding and ai decoding on image
WO2020080873A1 (en) Method and apparatus for streaming data
WO2020080765A1 (en) Apparatuses and methods for performing artificial intelligence encoding and artificial intelligence decoding on image
WO2021033867A1 (en) Decoding apparatus and operating method of the same, and artificial intelligence (ai) up-scaling apparatus and operating method of the same
WO2020080827A1 (en) Ai encoding apparatus and operation method of the same, and ai decoding apparatus and operation method of the same
WO2015133712A1 (ko) 영상 복호화 방법 및 그 장치, 영상 부호화 방법 및 그 장치
WO2017026681A1 (ko) 비디오 코딩 시스템에서 인터 예측 방법 및 장치
WO2016056787A1 (en) Display device and method of controlling the same
WO2021251611A1 (en) Apparatus and method for performing artificial intelligence encoding and decoding on image by using low-complexity neural network
WO2021107275A1 (en) Electronic apparatus, system and controlling method thereof
EP3811618A1 (en) Method and apparatus for streaming data
WO2017217656A1 (ko) 동영상 압축방법, 장치 및 이에 대한 컴퓨터 프로그램
WO2020190090A1 (ko) 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020055161A1 (ko) 영상 코딩 시스템에서 서브 블록 단위의 움직임 예측에 기반한 영상 디코딩 방법 및 장치
WO2021242066A1 (en) Apparatus and method for performing artificial intelligence encoding and artificial intelligence decoding on image
WO2021091178A1 (en) Artificial intelligence (ai) encoding apparatus and operating method thereof and ai decoding apparatus and operating method thereof
WO2020190097A1 (ko) 포인트 클라우드 데이터 수신 장치, 포인트 클라우드 데이터 수신 방법, 포인트 클라우드 데이터 처리 장치 및 포인트 클라우드 데이터 처리 방법
EP3868097A1 (en) Artificial intelligence (ai) encoding device and operating method thereof and ai decoding device and operating method thereof
WO2019031735A1 (en) IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD, AND IMAGE DISPLAY SYSTEM
WO2021162446A1 (en) Method and apparatus for streaming vr image
WO2020017936A1 (ko) 전자 장치 및 이미지의 전송 상태에 기반하여 이미지를 보정하는 방법
WO2021054697A1 (ko) 영상의 ai 부호화 방법 및 장치, 영상의 ai 복호화 방법 및 장치
WO2020080751A1 (ko) 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
EP3811617A1 (en) Apparatuses and methods for performing artificial intelligence encoding and artificial intelligence decoding on image
WO2021251658A1 (en) Method and apparatus for adaptive artificial intelligence downscaling for upscaling during video telephone call

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: 15827254

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016575537

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2015827254

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2015827254

Country of ref document: EP