WO2023101322A1 - 서버와 전자 장치 사이의 영상 콘텐트를 스트리밍하는 방법, 영상 콘텐트를 스트리밍하는 서버 및 전자 장치 - Google Patents

서버와 전자 장치 사이의 영상 콘텐트를 스트리밍하는 방법, 영상 콘텐트를 스트리밍하는 서버 및 전자 장치 Download PDF

Info

Publication number
WO2023101322A1
WO2023101322A1 PCT/KR2022/018762 KR2022018762W WO2023101322A1 WO 2023101322 A1 WO2023101322 A1 WO 2023101322A1 KR 2022018762 W KR2022018762 W KR 2022018762W WO 2023101322 A1 WO2023101322 A1 WO 2023101322A1
Authority
WO
WIPO (PCT)
Prior art keywords
frames
electronic device
video content
streaming data
prediction
Prior art date
Application number
PCT/KR2022/018762
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
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to US18/074,878 priority Critical patent/US11997326B2/en
Publication of WO2023101322A1 publication Critical patent/WO2023101322A1/ko

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
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4662Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4781Games

Definitions

  • the present disclosure relates to a method for streaming video content between a server and an electronic device, a server for transmitting streaming data by streaming video content, and an electronic device for receiving streaming data, and more particularly, a current state of video content Obtaining a plurality of frames based on , generating a plurality of prediction frames based on the plurality of frames and possibly a plurality of user inputs, obtaining meta data from the plurality of frames and the plurality of prediction frames, and obtaining a plurality of prediction frames
  • the present invention relates to a method for streaming video content, a server, and an electronic device for generating and transmitting streaming data of video content based on at least one of fields and meta data.
  • game streaming Users who register for a platform (e.g. Nvidia GeForce Now, PlayStation Now, Google Stadia) control characters in highly dynamic scenes in games that require specialized hardware. can do.
  • a user may sign up for a game streaming service, and the service provider may create a game stream that may be similar to a video stream.
  • the user can control the game by sending an input with a touch screen or mouse to the server of the service provider.
  • Such game streaming uses image upscaling technology to reduce bandwidth and improve quality, and technologies to improve the resolution and picture quality of old games designed with low resolution. For example, resolutions related to the Video Graphics Array (VGA) format and the Super VGA (SVGA) format may be used.
  • VGA Video Graphics Array
  • SVGA Super VGA
  • game streaming service providers can lower latency (20ms to 10ms ping is suitable for most games) to satisfy users.
  • both the client and the server using the game may want a bandwidth of 30 Mbps for uploading or downloading games having resolutions such as a minimum of 1 Mbps for low-resolution games to 4K resolution, and if the bandwidth is lowered, the game Streaming users may experience resolution drops intermittently. All communications to game streaming service users go directly to the service provider's data center or server, where the data center can recreate and deliver individual video streams to every single user.
  • a method of streaming video content by a server includes acquiring one or more frames of the video content being executed in an electronic device; identifying a plurality of user inputs inputtable by a user corresponding to the one or more frames; Generating a plurality of prediction frame sets respectively corresponding to the plurality of user inputs, wherein each prediction frame set of the plurality of prediction frame sets includes a plurality of prediction frames that can be displayed after the one or more frames step; obtaining metadata from the one or more frames and the plurality of prediction frame sets; generating streaming data of the image content to be provided to the electronic device based on at least one of the plurality of prediction frame sets and the metadata; Transmitting the generated streaming data to the electronic device; may include.
  • a method for streaming video content in an electronic device includes receiving streaming data of the video content from a server; displaying one or more frames of the video content currently being played in the electronic device from the received streaming data; identifying a delay time of a current network between the server and the electronic device; A plurality of predictions included in a prediction frame set corresponding to the current user input among a plurality of prediction frame sets corresponding to a plurality of possible user inputs, respectively, from the received streaming data according to the delay time and the current user input. determining whether to display frames; based on determining to display the plurality of predicted frames, displaying the plurality of predicted frames; and waiting for reception of second streaming data corresponding to the current user input based on determining not to display the plurality of predicted frames.
  • the server includes a communication interface for transmitting streaming data of video content to an electronic device; and at least one processor.
  • At least one processor may obtain one or more frames of the video content currently being executed in the electronic device.
  • At least one processor may identify a plurality of user inputs that can be input by a user corresponding to the one or more frames.
  • At least one processor generates a plurality of prediction frame sets respectively corresponding to the plurality of user inputs, wherein each prediction frame set of the plurality of prediction frame sets is a plurality of prediction frames that can be displayed after the one or more frames. may contain frames.
  • At least one processor may obtain metadata from the one or more frames and the plurality of prediction frame sets.
  • At least one processor may generate streaming data of the video content to be provided to the electronic device based on at least one of the plurality of prediction frame sets or the metadata.
  • At least one processor may transmit the generated streaming data to the electronic device.
  • the electronic device includes a communication interface for receiving streaming data of video content from a server; display; and at least one processor.
  • At least one processor may receive streaming data of the video content from a server.
  • At least one processor may restore one or more frames of the video content currently being executed in the electronic device from the received streaming data and display the one or more frames.
  • At least one processor may identify a delay time of a current network between the server and the electronic device.
  • At least one processor selects a prediction frame set corresponding to the current user input from among a plurality of prediction frame sets corresponding to a plurality of possible user inputs, from the received streaming data, according to the delay time and the current user input. It is possible to determine whether to display a plurality of included prediction frames.
  • the at least one processor restores the plurality of predicted frames, displays the plurality of predicted frames on the display, and determines not to display the plurality of predicted frames. Based on this, it is possible to provide an electronic device that waits for reception of the second streaming data corresponding to the current user input.
  • FIG. 1 is a diagram for explaining a process of streaming video content between a server and an electronic device according to an embodiment of the present disclosure.
  • FIG. 2 is a diagram for explaining an example in which a server generates a prediction frame according to an embodiment of the present disclosure.
  • FIG. 3 is a diagram for explaining how a server prepares a frame and a prediction frame according to an embodiment of the present disclosure.
  • FIG. 4 is a diagram for explaining examples of generating streaming data based on at least one of prediction frame sets or meta data in a server according to an embodiment of the present disclosure.
  • FIG. 5 is a diagram for explaining examples of restoring streaming data based on at least one of prediction frame sets or meta data in an electronic device according to an embodiment of the present disclosure.
  • 6A is a diagram for explaining an example of video streaming when a network condition is poor.
  • 6B is a diagram for explaining an example of video streaming according to an embodiment of the present disclosure.
  • FIG. 7 is a diagram for explaining an example of video content.
  • FIG. 8 is a flowchart of a method for a server to transmit streaming data of video content to an electronic device according to an embodiment of the present disclosure.
  • FIG. 9 is a block diagram of a server according to an embodiment of the present disclosure.
  • FIG. 10 is a flowchart of a method for an electronic device to receive streaming data of video content from a server according to an embodiment of the present disclosure.
  • FIG. 11 is a block diagram of an electronic device according to an embodiment of the present disclosure.
  • the expression “at least one of a, b, or c” means “a”, “b”, “c”, “a and b”, “a and c”, “b and c”, “a, b” and c”, or variations thereof.
  • one component when one component is referred to as “connected” or “connected” to another component, the one component may be directly connected or directly connected to the other component, but in particular Unless otherwise described, it should be understood that they may be connected or connected via another component in the middle.
  • components expressed as ' ⁇ unit (unit)', 'module', etc. are two or more components combined into one component, or one component is divided into two or more components for each more subdivided function. may be differentiated into.
  • each of the components to be described below may additionally perform some or all of the functions of other components in addition to its own main function, and some of the main functions of each component may be different from other components. Of course, it may be performed exclusively by a component.
  • 'image' or 'picture' may indicate a still image, a moving image composed of a plurality of continuous still images (or frames), or a video.
  • video content means game video content, VR (Virtual Reality) game video content, AR (Augmented Reality) game video content, video content, VR video content, AR video content, and the like.
  • 'Augmented Reality (AR)' means showing a virtual image together in a physical environment space of the real world or showing a real object and a virtual image together.
  • 'virtual reality (VR)' means that in an environment or situation created by computer graphics having an environment similar to reality, it is felt through human sensory organs and made as if it is actually interacting with it. .
  • a user can interact with VR in real time through manipulation of an electronic device, and can experience a sensory experience similar to reality.
  • 'DNN deep neural network
  • 'DNN deep neural network
  • FIG. 1 is a diagram for explaining a process of streaming video content between a server and an electronic device according to an embodiment of the present disclosure.
  • the server 100 first, in operation 105 , obtains N frames of video content currently being played in the electronic device 150 .
  • N may be an integer greater than zero.
  • the N frames correspond to the current image of video content being displayed on the screen of the electronic device 150 .
  • the server 100 transmits N frames and In relation to this, a plurality of user inputs that can be input by the user are identified, and K prediction frame sets respectively corresponding to the plurality of user inputs are generated in operation 115 .
  • K may be an integer greater than zero.
  • Each of the predictive frame sets includes M predictive frames that can be displayed N frames later.
  • M may be an integer greater than zero.
  • Server 100 generates prediction frames corresponding to each of the possible user inputs based on the N frames.
  • the server 100 extracts metadata from the N frames and K prediction frame sets in operation 120, and generates streaming data based on at least one of the K prediction frame sets or metadata in operation 125, In operation 130, streaming data is transmitted to the electronic device 150.
  • User input that can be input means a user input that is allowed in the currently running video content.
  • inputable user input may be referred to as possible user input.
  • the user input may include an input for up, down, left, and right directions, an input to increase the speed, and an input to decrease the speed.
  • a case of inputting nothing may be included in the user input.
  • the user input that can be input may be an action performed by another player.
  • Prediction frames included in the prediction frame set are frames predicted to be displayed after the N frames according to user input related to the N frames.
  • the prediction frame may be generated using an artificial intelligence model trained to generate a prediction frame subsequent to the frames, for example, a DNN, according to types of frames and user input.
  • the server 100 may provide the electronic device 150 with training data of an artificial intelligence model necessary for generating a prediction frame, and the electronic device 150 may provide the server 100 based on the training data. Generated prediction frames can be effectively restored.
  • the user input may be continuously pressing and holding a key, or continuously pressing and releasing a key.
  • predictions for user input may be prepared such as a prediction for pressing key_up, a prediction for pressing key_down, and a prediction for not pressing anything.
  • the number M of prediction frames in the prediction frame set may be determined according to a delay time of a current network between the server 100 and the electronic device 150 . For example, if the delay time is more than a certain amount of time, such as when the lag is severe (eg, when the ping is greater than a certain size), a large number of prediction frames are required, but when the lag is not severe ((eg, , when ping is less than a certain size), if the delay time is less than a certain amount of time, additional streaming data for the current input can be quickly received, and only a small number of prediction frames are required.
  • a certain amount of time such as when the lag is severe (eg, when the ping is greater than a certain size)
  • the delay time is less than a certain amount of time
  • additional streaming data for the current input can be quickly received, and only a small number of prediction frames are required.
  • the number M of predicted frames may be limited and defined by a service provider providing video content. This can reduce complexity and power consumption when preparing prediction data. This method is important because the number of predictable cases can be extremely large when a user input is input through a touch screen (eg, 1920*1080). In this case, by predicting user input for a predefined area (eg, a user interface area on the screen) or a low-scale grid area (eg, a grid area of 10*10 or 19*10), number can be reduced.
  • a predefined area eg, a user interface area on the screen
  • a low-scale grid area eg, a grid area of 10*10 or 19*10
  • Meta data may include information on at least one of an object, shape, and attribute within a frame.
  • the meta data may be areas such as faces, human bodies, walls, trees, cars, the sky, and other typical types of easy-to-predict objects in video content. These areas are described with shapes and properties.
  • the areas may be areas on the screen, eg, a human head, and the attribute may be a style of an object, eg, color information according to numerical values displayed in a graphic format, pattern information, and the like.
  • the attribute may represent how the shape changes from the first frame 1 to the last frame N+M, or how the style changes from the first frame 1 to the last frame N+M, and each possible user input It can show how the regions change according to .
  • the meta data may include information about prediction of each region and information about a display method of image content according to each prediction scenario. Accordingly, meta data may be applied to one or more predictive scenarios. For example, four frame predictions for four different user motions may be performed according to a user input through a controller in up, down, left, and right directions.
  • the method of generating streaming data based on at least one of the K prediction frame sets and metadata may include converting and generating video content in the following manner.
  • a prediction frame may be downscaled, and streaming data may be generated using the downscaled prediction frame.
  • information on the downscaling ratio and downscaling method may be added to the meta data.
  • the target of downscaling may be the entire prediction frame or only a part of the frame may be downscaled.
  • downscaling can be performed using an artificial intelligence model trained to effectively downscale input frames.
  • bandwidth capacity from a server to a user of video content can be saved, network latency can be lowered, and delay in video content can be eliminated.
  • streaming data may be generated by marking object information corresponding to objects within the prediction frame. For example, even if the sky area is not included in the streaming data, if object information indicating that the area is sky is marked and transmitted according to a predetermined rule, the electronic device 150 displays the corresponding area according to the object information when restoring the image. Knowing that this is the sky realm, it can be restored to the sky.
  • This method can be performed through a trained generative adversarial network (GAN). That is, a predetermined region may be reconstructed using object information marked using GAN.
  • GAN trained generative adversarial network
  • streaming data may be generated using some of the predicted frames.
  • the first frame, intermediate frame, final frame and metadata are transmitted through the trained GAN.
  • the electronic device 150 may reconstruct remaining frames through GAN using the first frame, the middle frame, the last frame, and metadata.
  • the electronic device 150 may reconstruct frames using meta data of regions.
  • This approach can also be performed through a trained artificial intelligence model. For example, in a service that streams game video content, a game engine running in the cloud maintains the world in the game and changes the positions of players and objects, their properties, etc. in response to player motions, The server transmits meta data used to generate 2D graphics displayed on the screen of the electronic device without rendering the video, and the electronic device completely renders the video displayed on the screen of the player in the electronic device using the meta data. . In this way, if only meta data is transmitted instead of video, bandwidth usage in the game streaming service can be reduced.
  • the server running the game engine can use relatively little computing power, so the usage of cloud hardware can be optimized.
  • one instance game streaming server can process the game and send the same metadata to all players.
  • the above methods may be mixed or combined in an arbitrary manner according to a service provider strategy such as bandwidth optimization, resolution optimization, frame rate optimization, and latency optimization.
  • the electronic device 150 receives streaming data from the server 100 in operation 155.
  • the electronic device 150 may restore a frame of video content based on at least one of frames and metadata included in the streaming data received from the server 100 .
  • the electronic device 150 first displays N frames of the video content currently being executed in the electronic device 150 from the streaming data received in operation 160 .
  • the N frames may be a response result of the server 100 to a user input previously input to the electronic device 150 .
  • the electronic device 150 identifies a delay time of a current network between the server 100 and the electronic device 150 in operation 165 .
  • the electronic device 150 determines, from the received streaming data, a prediction frame set corresponding to the current user input among K prediction frame sets corresponding to a plurality of possible user inputs according to the delay time and the current user input. Determines whether to display M prediction frames included in .
  • the current user input may be a click on a screen, a keyboard input, a mouse input, a controller input, a steering wheel input, and the like. If it is determined to display the M prediction frames in operation 175, the electronic device 150 displays the M prediction frames.
  • the prediction frame may be generated by inputting the streaming data transmitted from the server 100 by the electronic device 150 to a trained artificial intelligence model to generate the prediction frame. If it is determined not to display the M predicted frames in operation 180, the electronic device 150 waits to receive the second streaming data for the current user input.
  • the electronic device 150 will stop displaying the M prediction frames and display the frames of the received second streaming data.
  • the electronic device 150 stops displaying the prediction frames and transfers the prediction frames to the current user. It is possible to display N frames by replacing them with N frames corresponding to the input.
  • the electronic device 150 may reconstruct the second streaming data and the image in high resolution based on the streaming data.
  • the electronic device 150 may display the already received second streaming data and a predicted frame based on the streaming data if the delay time is equal to or greater than a predetermined time even if the second streaming data is received. For example, the electronic device 150 may generate and display new prediction frames based on frames of the second streaming data related to the current user input and prediction frames based on streaming data received prior to the second streaming data. .
  • the electronic device 150 may display video content based on a previous frame and a predicted frame based on a current user input. For example, when an area within a previous frame rotates according to a rotational input of a steering wheel from a user's point of view, the electronic device 150 may display prediction frames corresponding to the rotational input.
  • the electronic device 150 is a service for adjusting prediction and data to be transmitted to the user's electronic device 150 in order to optimize at least one of performance, bandwidth, delay elimination, and image quality of the server 100 and the electronic device 150.
  • Information on the graphic processing unit (GPU) and neural network processing unit (NPU) of the electronic device 150 and libraries and models supported by the electronic device 150 are provided to the server 100 of the provider. information can be transmitted.
  • GPU graphic processing unit
  • NPU neural network processing unit
  • Each of the GPU and NPU can be utilized in the most efficient way.
  • one of the GPU and NPU is designed to upscale an image
  • one of the GPU and NPU is utilized when upscaling, and the other of the GPU and NPU is also utilized according to its role, or a general-purpose processing unit It can be utilized as GPGPU (General-Purpose computing on Graphics Processing Units).
  • GPGPU General-Purpose computing on Graphics Processing Units
  • the electronic device 150 implements one of the two or more prediction strategies, or Some or all of two or more predictive strategies may be mixed or combined according to methods or formulas. In this case, the electronic device 150 may minimize an error rate between the actual result and the predicted result.
  • the electronic device 150 displays the last frame or selects one of the most probable prediction scenarios or the most preferred prediction scenarios to generate a new frame. can create Even if the current error rate is less than the threshold of the error rate that the electronic device 150 can tolerate, the electronic device 150 displays the last frame, or selects one of the most probable prediction scenarios or the most preferred prediction scenarios to send a new frame. can create
  • Restoration of streaming data received by the electronic device 150 may be performed according to a method of generating streaming data in the server 100 .
  • the video is uploaded in a manner corresponding to the downscale ratio and downscale method through information on the downscale ratio and downscale method included in the streaming data.
  • only a portion of the image is downscaled, only the portion of the image may be upscaled.
  • upscaling may be performed using an artificial intelligence model trained to effectively upscale frames based on downscaling information transmitted from the server 100 .
  • the electronic device 150 when streaming data is generated and transmitted by marking object information corresponding to objects in the prediction frame, the electronic device 150 generates a GAN in which the corresponding region is trained according to the object information included in the streaming data. area can be restored. For example, when object information is marked as indicating that a part of an area of an image is the sea, the area may be reconstructed as the sea through a trained GAN.
  • some of the prediction frames and meta data may be included in the streaming data and transmitted.
  • the electronic device 150 may restore the remaining frames through the GAN using the first frame, the middle frame, the last frame, and metadata.
  • streaming data may include only meta data about areas without a video frame and be transmitted.
  • the electronic device 150 may reconstruct frames using meta data for each area of the frame without a frame. This method can be performed through a trained artificial intelligence model.
  • an image may be restored according to each method.
  • FIG. 2 is a diagram for explaining a method of generating a predicted frame according to an embodiment of the present disclosure.
  • N frames for video content currently being executed in the electronic device 150 for example, frame 1 210 to frame N 220 are displayed, and the server 100 and the electronic device ( 150), if the server 100 can immediately respond to the current user input from the electronic device 150 because the delay time of the network is shorter than a predetermined time, M frames corresponding to the response to the current user input, eg For example, frame N+1 230 to frame N+M 240 are displayed.
  • M prediction frames corresponding to a plurality of user inputs possible in the electronic device 150 based on the frame that is, prediction frames N+1 (231) to prediction frames N corresponding to the first user input among the plurality of user inputs +M (241), ..., prediction frames N+1 (232) to prediction frames N+M (242) corresponding to the Kth user input among a plurality of user inputs may be generated.
  • the server 100 extracts metadata from the N frames and K prediction frame sets, generates streaming data based on at least one of the K prediction frame sets and metadata, and transmits it to the electronic device 150. do.
  • the electronic device 150 when the delay time is greater than or equal to a predetermined time, the electronic device 150 generates prediction frames corresponding to the current user input based on a set of prediction frames or at least one of metadata, and frames N+1 230 to Replace frame N+M 240 with generated prediction frames.
  • FIG. 3 is a diagram for explaining how a server prepares a frame and a prediction frame according to an embodiment of the present disclosure.
  • the server 100 prepares a frame based on the current state of video content (eg, game) in operation 330 . Then, in operation 310, the server 100 predicts next frames according to the list of currently possible content actions and states. Prediction frames are prepared according to prediction 1 (320), prediction 2 (321), ..., prediction K (322) in operations 331, 332, and 333 according to possible content operations.
  • the server 100 extracts meta data about the shape, description, pattern, and shift of regions of the frame based on the prepared prediction frame.
  • the server compresses data based on at least one of a prepared frame, a prepared prediction frame, and meta data.
  • FIG. 4 is a diagram for explaining examples of generating streaming data based on at least one of predicted frame sets and meta data in a server according to an embodiment of the present disclosure.
  • video content 400 in a racing game includes a sky area 440, a tree area 430, a house area 420, a sidewalk area 410 where people travel, and a driveway area where cars travel 450. , a car area 460, a grass area 470, and the like.
  • Properties for color, pattern, and transformation (movement, stretching, etc.) between frames of the video content 400 may be added to regions within the video content 400 .
  • This information is used to eliminate screen freeze when data latency is long.
  • the electronic device generates additional prediction frames (eg, prediction frames N+1 to N+M) based on previous frames (eg, frames 1 to N) and metadata and prediction data for each region. ) to create This avoids deteriorating the user experience by causing the screen to freeze due to long network delays in dynamic game streaming and giving the user a frustrating experience, and instead makes the user expect a smooth game without delay.
  • One of the methods for generating streaming data of video content in a server is to downscale the entire video content 400 based on an artificial intelligence model to generate streaming data, and information about the downscaling ratio is included in meta data. can include.
  • some of the areas included in the video content 400 for example, the sky area 440, the road area 450, and the grass area 470 are downscaled to obtain streaming data.
  • information about some areas and downscale ratios of some areas can be included in meta data.
  • object information corresponding to each object of the video content 400 may be marked.
  • objects in the video content 400 may be marked and the marked information may be transmitted as metadata.
  • some numerical value indicating that the sky area 440 is the sky for example, “0” indicates sky).
  • the electronic device 150 may create a corresponding area as a sky area using an artificial intelligence model according to a predetermined rule.
  • streaming data may be generated using some of frames of video content and metadata. For example, the first frame, the middle frame, and the last frame among the frames and meta data for each region of the video content may be transmitted as streaming data.
  • streaming data may be generated to include only metadata about image content.
  • streaming data may be generated by mixing or combining some or all of the methods described above.
  • FIG. 5 is a diagram for explaining examples of restoring streaming data based on at least one of predicted frame sets and meta data in an electronic device according to an embodiment of the present disclosure.
  • video content 540 may be restored according to an artificial intelligence model 530 based on at least one of metadata 510 and frame 520 included in an image.
  • video content may be restored by upscaling the downscaled frame according to an artificial intelligence model using the downscaled frame and meta data including downscale information.
  • the downscaled partial area is upscaled according to an artificial intelligence model using the downscaled partial area, information about the partial area, and information on downscaling, and image content is reproduced. can be restored
  • the image content may be restored according to an artificial intelligence model based on marked object information corresponding to each object of the image content.
  • video content may be restored according to an artificial intelligence model using metadata and some of frames of video content in streaming data.
  • video content may be restored according to an artificial intelligence model by using meta data of an initial frame, an intermediate frame, and a final frame among frames and each region of video content.
  • video content may be restored according to an artificial intelligence model using only metadata about video content included in streaming data.
  • the streaming data transmitted from the server when the streaming data transmitted from the server is generated by mixing or combining some or all of the various methods, the streaming data transmitted according to each method may be restored as video content.
  • 6A is a diagram for explaining an example of video streaming when an artificial intelligence model is not used and the streaming state is poor.
  • the quality of texts in the video content deteriorates, making it difficult to read.
  • the image quality of the text 620 representing the character's stamina gauge bar and the text 610 representing the speed in the game video content 600 is blurry and the user cannot read the text, which is inconvenient for users using the game streaming service.
  • 6B is a diagram for explaining an example of video streaming according to an embodiment of the present disclosure.
  • video content is converted to an artificial intelligence model (eg, GAN) based on metadata and predicted frames. It can be restored as high-quality video content that represents real numbers that can be read according to the video content.
  • an artificial intelligence model eg, GAN
  • the text 660 representing the character's health gauge bar and the text 670 representing the speed in the game video content 650 can be clearly restored according to the artificial intelligence model.
  • text may be rendered with a desired font, format, position, and background defined by the service provider using a special GAN, eg, a GAN specially trained to render the texts.
  • FIG. 7 is a diagram for explaining an example of video content.
  • video content may include not only game video content, but also VR game video content, AR game video content, VR video content, and AR video content.
  • a service provider may provide additional data such as prediction frames and meta data to allow the electronic device to create content. For example, as shown in scenario 710, when two players play a VR game, when the VR game video content 750 is displayed and the user moves his or her head, the electronic device provides an immediate response accordingly. In order to capture, new frames may be generated based on the already delivered content and meta data about areas within the content.
  • a motion of a user moving a head may be a user input. Then, when newly updated stream data according to the user's movement is received from the server to the electronic device worn by the user, the generated frame may be replaced with the frame received from the server.
  • FIG. 8 is a flowchart of a method for a server to transmit streaming data of video content to an electronic device according to an embodiment of the present disclosure.
  • step 810 the server 900 acquires N frames of video content being played on the electronic device 1100.
  • the server 900 identifies a plurality of user inputs inputtable by the user in relation to the N frames or based on the N frames.
  • N frames may correspond to a current image of video content being displayed on the screen of the electronic device 1100 .
  • step 830 the server 900 generates K prediction frame sets corresponding to a plurality of user inputs.
  • Each of the predictive frame sets includes M predictive frames that can be displayed N frames later.
  • the predicted frame may be a frame predicted to be displayed after N frames according to a user input related to the N frames.
  • the predicted frame may be generated using an artificial intelligence model trained to generate a predicted frame following the frames according to the types of frames and user input.
  • the number M of prediction frames in each prediction frame set may be determined according to a delay time of a current network between the server 900 and the electronic device 1100 .
  • step 840 the server 900 obtains metadata from the N frames and K prediction frame sets.
  • Metadata may include information on at least one of an object, shape, and attribute in a frame.
  • step 850 the server 900 generates streaming data of image content to be provided to the electronic device 1100 based on at least one of K prediction frame sets and metadata.
  • streaming data may be generated by downscaling a prediction frame and using the downscaled prediction frame.
  • the entire area of the predicted frame may be downscaled or a partial area of the frame may be downscaled.
  • Meta data may include information about a downscaling ratio.
  • streaming data may be generated by marking object information corresponding to objects within a prediction frame.
  • streaming data may be generated using some of the predicted frames.
  • streaming data may be generated using only meta data.
  • step 860 the server 900 transmits the generated streaming data to the electronic device 1100.
  • FIG. 9 is a block diagram of a server according to an embodiment of the present disclosure.
  • a server 900 may include a memory 910, a processor 920, and a communication interface 930.
  • the memory 910 may store programs to be executed by the processor 920 to be described later, and may store data input to or output from the server 900 .
  • the memory 910 may be a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (eg SD or XD memory, etc.), RAM (RAM, Random Access Memory) SRAM (Static Random Access Memory), ROM (Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory), magnetic memory, magnetic disk , an optical disk, and at least one type of storage medium.
  • RAM Random Access Memory
  • SRAM Static Random Access Memory
  • ROM Read-Only Memory
  • EEPROM Electrical Erasable Programmable Read-Only Memory
  • PROM Programmable Read-Only Memory
  • magnetic memory magnetic disk , an optical disk, and at least one type of storage medium.
  • Programs stored in the memory 910 can be classified into a plurality of modules according to their functions, for example, a frame acquisition module 911, a user input identification module 912, a predicted frame generation module 913, a meta It may include a data acquisition module 914 , a data generation module 915 , and a data transmission module 916 .
  • the processor 920 controls the overall operation of the server 900 .
  • the processor 920 may generally control the memory 910 and the communication interface 930 by executing programs stored in the memory 910 .
  • the processor 920 may obtain N frames of video content being executed in the electronic device 1100 by executing the frame acquisition module 911 stored in the memory 910 .
  • the processor 920 may identify a plurality of user inputs that can be input by the user in relation to the N frames by executing the user input identification module 912 stored in the memory 910 .
  • the processor 920 may generate K prediction frame sets corresponding to a plurality of user inputs by executing the prediction frame generating module 913 stored in the memory 910 .
  • the processor 920 may obtain metadata from N frames and K prediction frame sets by executing the metadata acquisition module 914 stored in the memory 910 .
  • the processor 920 executes the data generation module 915 stored in the memory 910 to generate streaming data of video content to be provided to the electronic device 1100 based on at least one of K prediction frame sets and metadata. can create
  • the processor 920 executes the data transmission module 916 stored in the memory 910 to transmit streaming data generated through the communication interface 930 to another device, for example, the electronic device 1100 described later in FIG. 11 . can be sent to
  • the communication interface 930 refers to a component capable of transmitting streaming data generated by the server 900 to the electronic device 1100 .
  • the communication interface 930 is a component through which the electronic device 1100 can receive information about user input received from the user from the server 900 .
  • FIG. 10 is a flowchart of a method for an electronic device to receive streaming data of video content from a server according to an embodiment of the present disclosure.
  • step 1010 the electronic device 1100 receives streaming data of video content from the server 900.
  • step 1020 the electronic device 1100 displays N frames of video content currently being played in the electronic device 1100 from the received streaming data.
  • step 1030 the electronic device 1100 identifies the delay time of the current network between the server 900 and the electronic device 1100.
  • step 1040 the electronic device 1100 determines a prediction frame set corresponding to the current user input among K prediction frame sets corresponding to a plurality of possible user inputs from the received streaming data according to the delay time and the current user input. Determines whether to display M prediction frames included in .
  • step 1050 the electronic device 1100 displays the M prediction frames when it is determined to display M prediction frames.
  • the display of the M prediction frames may be stopped, and the frames of the received second streaming data may be displayed.
  • the image content may be restored to a high resolution based on the second streaming data and the streaming data.
  • the second streaming data already received and the predicted frame based on the streaming data may be displayed.
  • step 1060 if it is determined that the electronic device 1100 does not display the M prediction frames, it waits to receive the second streaming data for the current user input.
  • the second streaming data may be streaming data generated by the server 900 in response to a current user input input to the electronic device 1100 .
  • FIG. 11 is a block diagram of an electronic device according to an embodiment of the present disclosure.
  • an electronic device 1100 may include a memory 1110, a processor 1120, a communication interface 1130, a display 1140, and an input interface 1150.
  • a memory 1110 may include a central processing unit (CPU) 1110, a central processing unit (GPU), a graphics processing unit (GPU), a graphics processing unit (GPU), a graphics processing unit (GPU), a graphics processing unit (GPU), a graphics processing unit (GPU), and a graphics processing unit.
  • the memory 1110 may store programs to be executed by the processor 1120 to be described later, and may store data input to or output from the electronic device 1100 .
  • the memory 1110 may include a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (eg SD or XD memory, etc.), RAM (RAM, Random Access Memory) SRAM (Static Random Access Memory), ROM (Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory), magnetic memory, magnetic disk , an optical disk, and at least one type of storage medium.
  • RAM Random Access Memory
  • SRAM Static Random Access Memory
  • ROM Read-Only Memory
  • EEPROM Electrical Erasable Programmable Read-Only Memory
  • PROM Programmable Read-Only Memory
  • magnetic memory magnetic disk , an optical disk, and at least one type of storage medium.
  • Programs stored in the memory 1110 may be classified into a plurality of modules according to their functions, and may include, for example, a receiving module 1111, a delay time identification module 1112, and a display decision module 1113. there is.
  • the processor 1120 controls overall operations of the electronic device 1100 .
  • the processor 1120 may generally control the memory 1110, the communication interface 1130, the display 1140, and the input interface 1150 by executing programs stored in the memory 1120.
  • the processor 1120 may receive streaming data of video content from the server 900 through the communication interface 1130 by executing the receiving module 1111 stored in the memory 1110 .
  • the processor 1120 may identify the delay time of the current network between the server 900 and the electronic device 1100 by executing the delay time identification module 1112 stored in the memory 1110 .
  • the processor 1120 restores N frames of video content being executed in the electronic device 1100 from the received streaming data by executing the display determination module 1113 stored in the memory 1110 and displays the images to the display unit 1140. can be displayed.
  • M predictions included in a prediction frame set corresponding to the current user input among K prediction frame sets corresponding to a plurality of possible user inputs are possible from the received streaming data according to the delay time and the current user input. You can decide whether or not to display frames. When it is determined to display the M predicted frames, the M predicted frames are restored and displayed on the display unit 1140, and when it is determined not to display the M predicted frames, the second streaming data for the current user input You can wait to receive.
  • the communication interface 1130 may receive streaming data generated by the server 900 from the electronic device 1100 . Also, the communication interface 1130 may transmit information about user input input by the user to the electronic device 1100 to the server 900 .
  • the display 1140 displays video content obtained by restoring streaming data received by the electronic device 1100 from the server 900 .
  • the input interface 1150 may be used for a user to input data for controlling the electronic device 1100 and may receive a user's input for image content.
  • the input interface 1150 may include a key pad, a dome switch, a touch pad (contact capacitance method, pressure resistive film method, infrared sensing method, surface ultrasonic conduction method, integral type It may include at least one of a tension measurement method, a piezo effect method, etc.), a jog wheel, or a jog switch, but is not limited thereto.
  • a method of streaming video content by a server includes obtaining one or more frames of the video content being executed in an electronic device; identifying a plurality of user inputs inputtable by a user corresponding to the one or more frames; Generating a plurality of prediction frame sets respectively corresponding to the plurality of user inputs, wherein each prediction frame set of the plurality of prediction frame sets includes a plurality of prediction frames that can be displayed after the one or more frames step; obtaining metadata from the one or more frames and the plurality of predicted frame sets; generating streaming data of the image content to be provided to the electronic device based on at least one of the plurality of prediction frame sets and the metadata; Transmitting the generated streaming data to the electronic device; may include.
  • the plurality of predicted frames may be predicted for display after the one or more frames according to a user input related to the one or more frames.
  • the plurality of predicted frames is an artificial intelligence model trained to generate predicted frames for display after the one or more frames according to the type of the one or more frames and user input. can be created using
  • the one or more frames may correspond to an image of the video content currently being displayed on the screen of the electronic device.
  • the number of the plurality of prediction frames in each prediction frame set may be determined according to a delay time of a current network between the server and the electronic device.
  • the metadata may include information on at least one of an object, shape, and attribute in a frame.
  • generating the streaming data may include downscaling a prediction frame of the plurality of prediction frames; Generating the streaming data using the downscaled prediction frame may be included.
  • only one region of the prediction frame may be downscaled.
  • generating the streaming data may include marking object information corresponding to objects within prediction frames of the plurality of prediction frames.
  • generating the streaming data may include generating the streaming data by using some of the plurality of prediction frames.
  • a method for streaming video content in an electronic device includes receiving streaming data of the video content from a server; displaying one or more frames of the video content currently being played in the electronic device from the received streaming data; identifying a delay time of a current network between the server and the electronic device; A plurality of predictions included in a prediction frame set corresponding to the current user input among a plurality of prediction frame sets corresponding to a plurality of possible user inputs, respectively, from the received streaming data according to the delay time and the current user input. determining whether frames are to be displayed; based on determining to display the plurality of predicted frames, displaying the plurality of predicted frames; and waiting for reception of second streaming data corresponding to the current user input based on determining not to display the plurality of predicted frames.
  • the second streaming data and the video content based on the streaming data have a second resolution higher than the first resolution. Can be upscaled.
  • the received second streaming data and a frame predicted based on the streaming data may be displayed on the basis that the delay time is greater than or equal to a predetermined time.
  • the server includes a communication interface for transmitting streaming data of video content to an electronic device; and at least one processor, wherein the at least one processor: obtains one or more frames of the video content currently being executed in the electronic device, and inputs a plurality of frames that can be input by a user corresponding to the one or more frames. Identify user inputs and generate a plurality of prediction frame sets respectively corresponding to the plurality of user inputs, wherein each prediction frame set of the plurality of prediction frame sets is a plurality of frames that can be displayed after the one or more frames.
  • Streaming data of the image content may be generated, and the generated streaming data may be transmitted to the electronic device.
  • an electronic device includes a communication interface for receiving streaming data of video content from a server; display; and at least one processor, wherein the at least one processor: receives streaming data of the video content from the server, and from the received streaming data, controls one or more of the video content currently being executed in the electronic device.
  • Reconstruct frames to display the one or more frames identify a delay time of a current network between the server and the electronic device, and according to the delay time and a current user input, from the received streaming data, a plurality of possible users Based on determining whether to display a plurality of prediction frames included in a prediction frame set corresponding to the current user input among a plurality of prediction frame sets corresponding to inputs, and displaying the plurality of prediction frames , Reconstructing the plurality of prediction frames to display the plurality of prediction frames on the display, and waiting for reception of the second streaming data corresponding to the current user input based on determining not to display the plurality of prediction frames can do.
  • prediction frames corresponding to possible user inputs for video content currently being played in a server are generated, and prediction frames corresponding to currently being played video content are generated.
  • Acquiring meta data based on frames for content and predicted frames transmitting streaming data generated using an artificial intelligence model based on at least one of the predicted frames and meta data, and transmitting the artificial intelligence model in an electronic device Restoring the received streaming data by using, and displaying the predicted frame by determining whether to display the restored predicted frame based on the delay time between the server and the electronic device and the current user input, thereby efficiently converting the streaming data, It responds quickly to user input and displays video content.
  • a plurality of prediction frame sets respectively corresponding to a plurality of possible user inputs, and metadata Even if a network delay occurs, the user's experience with video content can be improved and the video content can be smoothly displayed on the electronic device by responding immediately to the user's motion (input).
  • meta data bandwidth usage of video content streaming service can be greatly reduced.
  • the device-readable storage medium may be provided in the form of a non-transitory storage medium.
  • 'non-temporary storage medium' only means that it is a tangible device and does not contain signals (e.g., electromagnetic waves), and this term refers to the case where data is stored semi-permanently in the storage medium and temporary It does not discriminate if it is saved as .
  • a 'non-temporary storage medium' may include a buffer in which data is temporarily stored.
  • the method according to various embodiments disclosed in this document may be provided by being included in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • a computer program product is distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store or between two user devices (eg smartphones). It can be distributed (e.g., downloaded or uploaded) directly or online.
  • a computer program product eg, a downloadable app
  • a device-readable storage medium such as a memory of a manufacturer's server, an application store server, or a relay server. It can be temporarily stored or created temporarily.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

전자 장치에서 현재 실행 중인 영상 콘텐트의 하나 이상의 프레임들을 획득 하는 단계; 하나 이상의 프레임들에 대응하는 입력 가능한 복수의 사용자 입력들을 식별하는 단계; 복수의 사용자 입력들에 각각 대응되는 복수개의 예측 프레임 세트들을 생성하되, 복수개의 예측 프레임 세트들의 각 예측 프레임 세트는 하나 이상의 프레임들 이후에 디스플레이될 수 있는 복수개의 예측 프레임들을 포함하는 단계; 하나 이상의 프레임들 및 복수개의 예측 프레임 세트들로부터 메타 데이터를 획득하는 단계; 복수개의 예측 프레임 세트들 또는 메타 데이터 중 적어도 하나에 기초하여, 전자 장치에 제공될 영상 콘텐트의 스트리밍 데이터를 생성하는 단계; 생성된 스트리밍 데이터를 전자 장치에 전송하는 단계;를 포함하는, 서버가 영상 콘텐트를 스트리밍하는 방법을 제공한다.

Description

서버와 전자 장치 사이의 영상 콘텐트를 스트리밍하는 방법, 영상 콘텐트를 스트리밍하는 서버 및 전자 장치
본 개시는 서버와 전자 장치 사이의 영상 콘텐트를 스트리밍하는 방법, 영상 콘텐트를 스트리밍하여 스트리밍 데이터를 전송하는 서버, 및 스트리밍 데이터를 수신하는 전자 장치에 관한 것으로, 보다 상세하게는, 영상 콘텐트의 현재 상태에 기초하여 복수개의 프레임을 획득하고, 복수개의 프레임 및 가능한 복수의 사용자 입력에 기초하여 복수의 예측 프레임을 생성하고, 복수개의 프레임 및 복수의 예측 프레임들로부터 메타 데이터를 획득하고, 복수의 예측 프레임들 및 메타 데이터 중 적어도 하나에 기초하여 영상 콘텐트의 스트리밍 데이터를 생성하여 전송하는, 영상 콘텐트를 스트리밍하는 방법, 서버, 및 전자 장치에 관한 것이다.
관련 기술에서, 클라이언트 측의 렌더링이 있는 게임만 웹을 통해 사용할 수 있었지만, 낮은 네트워크 레이턴시(latency)와 데이터 센터의 높은 성능으로 온라인 게임 스트리밍과 같은 영상 콘텐트 서비스가 가능해짐에 따라, 현재는 게임 스트리밍 플랫폼(예를 들어, 엔비디아 지포스 나우 (Nvidia GeForce Now), 플레이스테이션 나우 (PlayStation Now), 구글 스타디아 (Google Stadia))에 등록한 사용자는 전문 하드웨어가 요구되는 게임의 매우 역동적인 장면에서 캐릭터를 제어할 수 있다. 예를 들어, 사용자는 게임 스트리밍 서비스에 등록하고, 서비스 제공자는 비디오 스트림과 유사할 수 있는 게임 스트림을 생성할 수 있다. 사용자는 터치스크린 또는 마우스 등으로 입력을 서비스 제공자의 서버에 전송하여 게임을 제어할 수 있다. 이러한 게임 스트리밍에는 대역폭을 줄이고 품질을 향상시키기 위해 이미지 업스케일링 기술과 저해상도로 설계된 오래된 게임의 해상도와 화질을 향상시키는 기술들이 이용된다. 예를 들어, Video Graphics Array(VGA) 포맷 및 Super VGA(SVGA) 포맷과 관련된 해상도들이 이용될 수 있다.
게임 스트리밍 서비스에서 높은 레이턴시는 게임의 리얼리티를 반영할 수 없기 때문에, 게임 스트리밍 서비스 제공자는 사용자를 만족시키기 위해 레이턴시(대부분의 게임에서 20ms 내지 10ms의 핑(ping)이 적합하다)를 낮출 수 있다. 또한, 게임을 이용하는 클라이언트와 서버 양측 모두 저해상도 게임에 대한 최소 1 Mbps 내지 4K 해상도와 같은 해상도들을 가지는 게임들의 업로딩 또는 다운로딩의 경우에 대한 30 Mbps의 대역폭을 원할 수 있고, 만약 대역폭이 저하되면 게임 스트리밍 사용자는 간헐적으로 해상도 드랍을 경험할 수 있다. 게임 스트리밍 서비스 사용자에 대한 모든 통신은 서비스 제공자의 데이터 센터 또는 서버로 직접 연결되어, 데이터 센터는 모든 단일 사용자에게 개별의 비디오 스트림을 다시 생성하여 전송할 수 있다.
최근의 스트리밍 관련 기술 및 인공지능(artificial intelligence) 관련 기술의 발달과 고해상도/고화질의 영상을 재생, 저장할 수 있는 하드웨어의 개발 및 보급에 따라, 영상 콘텐트의 스트리밍에 있어서, 전자 장치에서 서버로부터 전송되는 영상 콘텐트를 지연(예를 들어, 렉) 없이 사용자 입력에 대하여 즉각적으로 응답하여 재생할 수 있는 영상 스트리밍 방법, 영상 콘텐트를 스트리밍하는 서버, 및 전자 장치에 대한 필요성이 증대하고 있다.
본 개시의 일 실시에에 따른, 서버가 영상 콘텐트를 스트리밍하는 방법은, 전자 장치에서 실행 중인 상기 영상 콘텐트의 하나 이상의 프레임들을 획득 하는 단계; 상기 하나 이상의 프레임들에 대응하는 사용자에 의해 입력 가능한 복수의 사용자 입력들을 식별하는 단계; 상기 복수의 사용자 입력들에 각각 대응되는 복수개의 예측 프레임 세트들을 생성하되, 상기 복수개의 예측 프레임 세트들의 각각의 예측 프레임 세트는 상기 하나 이상의 프레임들 이후에 디스플레이될 수 있는 복수개의 예측 프레임들을 포함하는 단계; 상기 하나 이상의 프레임들 및 상기 복수개의 예측 프레임 세트들로부터 메타 데이터를 획득하는 단계; 상기 복수개의 예측 프레임 세트들 또는 상기 메타 데이터 중 적어도 하나에 기초하여, 상기 전자 장치에 제공될 상기 영상 콘텐트의 스트리밍 데이터를 생성하는 단계; 상기 생성된 스트리밍 데이터를 상기 전자 장치에 전송하는 단계;를 포함할 수 있다.
또한, 본 개시의 일 실시예에 따른, 전자 장치에서의 영상 콘텐트의 스트리밍 방법은 서버로부터 상기 영상 콘텐트의 스트리밍 데이터를 수신하는 단계; 상기 수신된 스트리밍 데이터로부터, 상기 전자 장치에서 현재 실행 중인 상기 영상 콘텐트의 하나 이상의 프레임들을 디스플레이하는 단계; 상기 서버와 상기 전자 장치 사이의 현재 네트워크의 지연 시간을 식별하는 단계; 상기 지연 시간과 현재 사용자 입력에 따라, 상기 수신된 스트리밍 데이터로부터, 가능한 복수의 사용자 입력들에 각각 대응하는 복수개의 예측 프레임 세트들 중 상기 현재 사용자 입력에 대응하는 예측 프레임 세트에 포함된 복수개의 예측 프레임들 의 디스플레이 여부를 결정하는 단계; 상기 복수개의 예측 프레임들을 디스플레이하는 것으로 결정한 것에 기초하여, 상기 복수개의 예측 프레임들을 디스플레이하는 단계; 및 상기 복수개의 예측 프레임들을 디스플레이하지 않는 것으로 결정한 것에 기초하여, 상기 현재 사용자 입력에 대응하는 제2 스트리밍 데이터의 수신을 대기하는 단계;를 포함할 수 있다.
또한, 본 개시의 일 실시예에 따른, 서버는 전자 장치에 영상 콘텐트의 스트리밍 데이터를 전송하기 위한 통신 인터페이스; 및 적어도 하나의 프로세서;를 포함할 수 있다. 적어도 하나의 프로세서는 상기 전자 장치에서 현재 실행 중인 상기 영상 콘텐트의 하나 이상의 프레임들을 획득할 수 있다. 적어도 하나의 프로세서는 상기 하나 이상의 프레임들에 대응하는 사용자에 의해 입력 가능한 복수의 사용자 입력들을 식별할 수 있다. 적어도 하나의 프로세서는 상기 복수의 사용자 입력들에 각각 대응되는 복수개의 예측 프레임 세트들을 생성하되, 상기 복수개의 예측 프레임 세트들의 각 예측 프레임 세트는 상기 하나 이상의 프레임들 이후에 디스플레이될 수 있는 복수개의 예측 프레임들을 포함할 수 있다. 적어도 하나의 프로세서는 상기 하나 이상의 프레임들 및 상기 복수개의 예측 프레임 세트들로부터 메타 데이터를 획득할 수 있다. 적어도 하나의 프로세서는 상기 복수개의 예측 프레임 세트들 또는 상기 메타 데이터 중 적어도 하나에 기초하여, 상기 전자 장치에 제공될 상기 영상 콘텐트의 스트리밍 데이터를 생성할 수 있다. 적어도 하나의 프로세서는 상기 생성된 스트리밍 데이터를 상기 전자 장치에 전송할 수 있다.
또한, 본 개시의 일 실시예에 따른, 전자 장치는 서버로부터 영상 콘텐트의 스트리밍 데이터를 수신하기 위한 통신 인터페이스; 디스플레이; 및 적어도 하나의 프로세서;를 포함할 수 있다. 적어도 하나의 프로세서는 서버로부터 상기 영상 콘텐트의 스트리밍 데이터를 수신할 수 있다. 적어도 하나의 프로세서는 상기 수신된 스트리밍 데이터로부터, 상기 전자 장치에서 현재 실행 중인 상기 영상 콘텐트의 하니 이상의 프레임들을 복원하여 상기 하나 이상의 프레임들을 디스플레이할 수 있다. 적어도 하나의 프로세서는 상기 서버와 상기 전자 장치 사이의 현재 네트워크의 지연 시간을 식별할 수 있다. 적어도 하나의 프로세서는 상기 지연 시간과 현재 사용자 입력에 따라, 상기 수신된 스트리밍 데이터로부터, 가능한 복수의 사용자 입력들에 각각 대응하는 복수개의 예측 프레임 세트들 중 상기 현재 사용자 입력에 대응하는 예측 프레임 세트에 포함된 복수개의 예측 프레임들의 디스플레이 여부를 결정할 수 있다. 적어도 하나의 프로세서는 상기 복수개의 예측 프레임들 디스플레이하는 것으로 결정한 것에 기초하여, 상기 복수개의 예측 프레임들을 복원하여 상기 디스플레이에 상기 복수개의 예측 프레임들 디스플레이하고, 상기 복수개의 예측 프레임들 디스플레이하지 않는 것으로 결정한 것에 기초하여, 상기 현재 사용자 입력에 대응하는 제2 스트리밍 데이터의 수신을 대기하는, 전자 장치를 제공할 수 있다.
도 1은 본 개시의 일 실시예에 따른 서버와 전자 장치 사이의 영상 콘텐트를 스트리밍하는 과정을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시예에 따른 서버가 예측 프레임을 생성하는 예시를 설명하기 위한 도면이다.
도 3은 본 개시의 일 실시예에 따른 서버가 프레임 및 예측 프레임을 준비하는 방법을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시예에 따른 서버에서 예측 프레임 세트들 또는 메타 데이터 중 적어도 하나에 기초하여 스트리밍 데이터를 생성하는 예시들을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시예에 따른 전자 장치에서 예측 프레임 세트들 또는 메타 데이터 중 적어도 하나에 기초하여 스트리밍 데이터를 복원하는 예시들을 설명하기 위한 도면이다.
도 6a는 네트워크 상태가 좋지 않은 경우 영상 스트리밍의 일 예를 설명하기 위한 도면이다.
도 6b는 본 개시의 일 실시예에 따른 영상 스트리밍의 일 예를 설명하기 위한 도면이다.
도 7은 영상 콘텐트의 일 예를 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시예에 따른 서버가 전자 장치에 영상 콘텐트의 스트리밍 데이터를 전송하는 방법의 흐름도이다.
도 9는 본 개시의 일 실시예에 따른 서버의 블록도이다.
도 10은 본 개시의 일 실시예에 따른 전자 장치가 서버로부터 영상 콘텐트의 스트리밍 데이터를 수신하는 방법의 흐름도이다.
도 11은 본 개시의 일 실시예에 따른 전자 장치의 블록도이다.
본 개시에서, "a, b 또는 c 중 적어도 하나" 표현은 " a", " b", " c", "a 및 b", "a 및 c", "b 및 c", "a, b 및 c 모두", 혹은 그 변형들을 지칭할 수 있다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 개시의 실시 형태에 대해 한정하려는 것이 아니며, 본 개시는 여러 실시예들의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.
또한, 본 명세서에서, '영상(image)' 또는 '픽처'는 정지영상, 복수의 연속된 정지영상(또는 프레임)으로 구성된 동영상, 또는 비디오를 나타낼 수 있다.
본 명세서에서, “영상 콘텐트”는 게임 영상 콘텐트, VR (Virtual Reality) 게임 영상 콘텐트, AR (Augmented Reality) 게임 영상 콘텐트, 영상 콘텐트, VR 영상 콘텐트, AR 영상 콘텐트 등을 의미한다.
본 개시에서, '증강 현실(AR: Augmented Reality)'은 현실 세계의 물리적 환경 공간 내에 가상 이미지를 함께 보여주거나 현실 객체와 가상 이미지를 함께 보여주는 것을 의미한다.
본 개시에서, '가상 현실(VR: Virtual Reality)'은 실제와 유사한 환경을 갖는 컴퓨터 그래픽으로 만들어진 환경 또는 상황에서, 사람의 감각 기관을 통해 느끼게 하고, 실제로 상호작용하고 있는 것처럼 만들어주는 것을 의미한다. 사용자는 전자 장치의 조작을 통하여 VR과 실시간 상호 작용할 수 있고, 실제와 유사한 감각적 체험을 할 수 있다.
또한, 본 명세서에서 'DNN(deep neural network)'은 뇌 신경을 모사한 인공신경망 모델의 대표적인 예시로써, 특정 알고리즘을 사용한 인공신경망 모델로 한정되지 않는다.
도 1은 본 개시의 일 실시예에 따른 서버와 전자 장치 사이의 영상 콘텐트를 스트리밍하는 과정을 설명하기 위한 도면이다.
도 1에서 도시된 바와 같이, 본 개시의 일 실시예에 따르면, 서버(100)는 먼저, 동작 105에서, 전자 장치(150)에서 현재 실행 중인 영상 콘텐트의 N개의 프레임들을 획득한다. 일 실시예에서, N은 0보다 큰 정수일 수 있다. N개의 프레임은 전자 장치(150)의 화면 상에 디스플레이 중인 영상 콘텐트의 현재 영상에 대응되는 것이다. 그리고, 서버(100)와 전자 장치(150) 사이의 네트워크의 지연 시간이 길어지는 경우, 예를 들어, 렉(lag)이 발생하는 상황에서, 서버(100)는 동작 110에서 N개의 프레임들과 관련하여 사용자에 의해 입력가능한 복수의 사용자 입력들을 식별하고, 동작 115에서 복수의 사용자 입력들에 각각 대응하는 K개의 예측 프레임 세트들을 생성한다. 일 실시예에서, K는 0보다 큰 정수일 수 있다. 예측 프레임 세트들 각각은 N개의 프레임들 이후에 디스플레이될 수 있는 M개의 예측 프레임들을 포함한다. 일 실시예에서, M은 0보다 큰 정수 일 수 있다. 서버(100)는 N개의 프레임들에 기초하여 가능한 사용자 입력들 각각에 대응하는 예측 프레임들을 생성한다. 서버(100)는 동작 120에서 N개의 프레임들과 K개의 예측 프레임 세트들로부터 메타 데이터를 추출하고, 동작 125에서 K개의 예측 프레임 세트들 또는 메타 데이터 중 적어도 하나에 기초하여 스트리밍 데이터를 생성하고, 동작 130에서 스트리밍 데이터를 전자 장치(150)에 전송한다.
“입력가능한 사용자 입력”은 현재 실행 중인 영상 콘텐트에서 허용되는 사용자 입력을 의미한다. 일 실시예에서, 입력가능한 사용자 입력은 가능한 사용자 입력으로 참조될 수 있다. 예를 들어, 영상 콘텐트가 카 레이싱 게임 영상 콘텐트인 경우, 사용자 입력은 상, 하, 좌, 우의 방향에 대한 입력, 속도를 높이는 입력, 속도를 줄이는 입력을 포함할 수 있다. 또한, 아무것도 입력하지 않는 경우도 사용자 입력에 포함될 수 있다. 또한, 멀티 플레이어 게임의 경우, 입력가능한 사용자 입력은 다른 플레이어에 의해 수행된 동작일 수도 있다.
예측 프레임 세트에 포함되는 예측 프레임은 N개의 프레임에 관련된 사용자 입력에 따라 상기 N개의 프레임 이후에 디스플레이될 것으로 예측되는 프레임이다. 또한, 예측 프레임은 프레임들 및 사용자 입력의 종류에 따라, 프레임들 이후의 예측 프레임을 생성하도록 훈련된 인공지능 모델, 예를 들어, DNN을 이용하여 생성되는 것일 수 있다. 예를 들어, 서버(100)는 예측 프레임을 생성하는데 필요한 인공지능 모델의 훈련 데이터를 전자 장치(150)에 제공할 수 있고, 전자 장치(150)는 이러한 훈련 데이터에 기초하여 서버(100)가 생성한 예측 프레임들을 효과적으로 복원할 수 있다.
게임에서 가능한 상태들 및 사용자의 동작들을 예측하는데 이용되는 인공지능 모델을 훈련함에 있어서, 가능한 사용자 입력이 무엇인지 명확하게 하는 것이 중요하다. 예를 들어, 사용자 입력은 계속해서 하나의 키를 누르고 있는 것, 계속 누르고 있다가 놓는 것일 수 있다. 또한, 사용자가 2개의 키를 함께 누를 가능성이 없는 경우에, 사용자 입력에 대한 예측은 key_up를 누르는 것에 대한 예측, key_down을 누르는 것에 대한 예측, 및 아무 것도 누르지 않는 것에 대한 예측이 준비될 수 있다.
이와 같이, 가능한 사용자 입력에 대한 정보를 명확히 함으로써, 이러한 정보에 기초하여 훈련되는 인공지능 모델을 이용하면 더 나은 프레임 예측이 수행되고, 사용자에게 전달되는 데이터의 양이 제한될 수 있다.
예측 프레임 세트 내의 예측 프레임들의 개수(M)는 서버(100) 및 전자 장치(150) 간의 현재 네트워크의 지연 시간에 따라 결정되는 것일 수 있다. 예를 들어, 렉이 심한 경우(예를 들면, ping이 일정 크기 이상인 경우)와 같이, 지연 시간이 일정 시간 이상이면, 많은 수의 예측 프레임들이 필요하지만, 렉이 심하지 않은 경우((예를 들면, ping이 일정 크기 미만인 경우)와 같이, 지연시간이 일정 시간 미만이면, 현재 입력에 대한 추가적인 스트리밍 데이터를 빨리 수신할 수 있어, 적은 수의 예측 프레임만이 필요하기 때문이다.
또한, 예측 프레임들의 개수(M)는 영상 콘텐트를 제공하는 서비스 제공자에 의해 제한되어 정의될 수도 있다. 이를 통해, 예측 데이터를 준비할 때, 복잡성과 전력 소비가 절감될 수 있다. 이러한 방식은 터치스크린 (예를 들어, 1920*1080)을 통해 사용자 입력이 입력되는 경우에, 예측 가능한 경우의 수가 극단적으로 커질 수 있기 때문에 중요하다. 이러한 경우에는 미리 정의된 영역(예를 들어, 화면 상의 유저 인터페이스 영역) 또는 로우 스케일 그리드 영역(예를 들어, 10*10, 19*10의 그리드 영역)에 대한 사용자 입력을 예측하여 예측의 경우의 수를 절감시킬 수 있다.
메타 데이터는 프레임 내의 오브젝트, 형태, 및 속성 중 적어도 하나에 대한 정보를 포함할 수 있다. 예를 들어,, 메타 데이터는 영상 콘텐트 내의 얼굴들, 사람의 신체, 벽들, 나무들, 차들, 하늘, 또 다른 전형적인 형태의 예측하기 쉬운 오브젝트들과 같은 영역들일 수 있다. 이러한 영역들은 형태들 및 속성들로 묘사된다. 영역들은 화면 상의 영역, 예를 들어, 사람의 머리 형태일 수 있고, 속성은 오브젝트의 스타일, 예를 들어, 그래픽 형식으로 표시되는 숫자 값에 따른 색상 정보, 패턴 정보 등일 수 있다. 또한, 속성은 최초 프레임 1부터 최종 프레임 N+M까지의 형태가 어떻게 변화하는지를 나타내는 것일 수 있고, 최초 프레임 1부터 최종 프레임 N+M까지의 스타일이 어떻게 변화하는지를 나타내는 것일 수 있고, 가능한 사용자 입력 각각에 따라 영역들이 어떻게 변화하는지를 나타낼 수 있다.
메타 데이터는 각 영역의 예측에 대한 정보와 각각의 예측 시나리오에 따라 영상 콘텐트가 디스플레이되는 방식에 대한 정보를 포함할 수 있다. 이에 따라, 메타 데이터는 하나 이상의 예측 시나리오에 적용될 수 있다. 예를 들어, 위, 아래, 왼쪽, 오른쪽으로의 컨트롤러를 통한 사용자 입력에 따라, 서로 다른 4개의 사용자 동작에 대한 4개의 프레임 예측이 수행될 수 있다.
동작 125에서 K개의 예측 프레임 세트들 및 메타 데이터 중 적어도 하나에 기초하여 스트리밍 데이터를 생성하는 방법은 아래와 같은 방식으로 영상 콘텐트를 변환하여 생성하는 것을 포함할 수 있다.
1번째로, 예측 프레임을 다운스케일링하고, 다운스케일된 예측 프레임을 이용해서 스트리밍 데이터를 생성할 수 있다. 여기서, 다운스케일의 비율 및 다운스케일 방법에 대한 정보가 메타 데이터에 추가될 수 있다. 또한, 다운스케일의 대상은 예측 프레임 전체이거나 프레임 중 일부 영역만이 다운스케일될 수 있다. 또한, 다운스케일은 입력된 프레임들을 효과적으로 다운스케일하도록 훈련된 인공지능 모델을 이용하여 수행될 수 있다.
다운스케일을 이용하여 이미지 또는 비디오의 크기가 감소됨으로써 서버에서 영상 콘텐트의 사용자까지의 대역폭 용량이 절감되고, 네트워크의 레이턴시가 낮아지고, 영상 콘텐트의 지연이 제거될 수 있다.
2번째로, 예측 프레임 내의 객체들에 대응되는 객체 정보를 마킹하여 스트리밍 데이터를 생성할 수 있다. 예를 들어, 하늘 영역이 스트리밍 데이터에 포함되어 있지 않더라도, 미리정해진 룰에 따라 해당 영역이 하늘임을 나타내는 객체 정보가 마킹되어 전송되면, 전자 장치(150)에서 영상 복원 시에 객체 정보에 따라 해당 영역이 하늘 영역임을 알고, 하늘로 복원될 수 있다. 이러한 방식은 훈련된 GAN(Generative Adversarial Network)를 통해 수행될 수 있다. 즉, GAN을 이용하여 마킹된 객체 정보를 이용하여 소정 영역을 복원할 수 있다.
3번째로, 예측 프레임들 중 일부를 이용해서 스트리밍 데이터를 생성할 수 있다. 예를 들어, 훈련된 GAN을 통해 최초 프레임, 중간 프레임, 최종 프레임과 메타 데이터들을 전송한다. 그 후, 전자 장치(150)에서, 최초 프레임, 중간 프레임, 최종 프레임과 메타 데이터들을 이용하여 GAN을 통해 나머지 프레임들을 복원할 수 있다.
4번째로, 비디오 프레임 없이 영역들에 대한 메타 데이터만을 제공할 수 있다. 전자 장치(150)는 영역들에 대한 메타 데이터들을 이용하여 프레임들을 복원할 수 있다. 이러한 방식 또한 훈련된 인공지능 모델을 통해 수행될 수 있다. 예를 들어, 게임 영상 콘텐트를 스트리밍하는 서비스에서, 클라우드(cloud)에서 실행된 게임 엔진은 게임 속 세계를 유지하고, 플레이어의 동작에 응답하여 플레이어들 및 개체의 위치, 그들의 속성 등을 변경하고, 서버는 영상을 렌더링하지 않고, 전자 장치에서 화면에 표시되는 2D 그래픽을 생성하는데 이용되는 메타 데이터를 전송하고, 전자 장치는 메타 데이터를 이용하여 전자 장치에서 플레이어의 화면에 디스플레이되는 영상을 완전히 렌더링한다. 이와 같이, 영상 대신 메타 데이터만을 전송하면, 게임 스트리밍 서비스에서의 대역폭 사용량이 절감될 수 있다. 또한, 영상을 렌더링하는 역할이 서버에서 전자 장치로 넘어가면 게임 엔진을 실행하는 서버가 상대적으로 적은 컴퓨팅 성능(computing power)을 이용할 수 있므로, 클라우드 하드웨어의 사용량을 최적화할 수 있다. 멀티 플레이어 게임의 경우, 하나의 인스턴스 게임 스트리밍 서버가 게임을 처리하고 동일한 메타 데이터를 모든 플레이어들에게 전송할 수 있다.
또한, 대역폭의 최적화, 해상도의 최적화, 프레임 속도의 최적화, 레이턴시 최적화 등의 서비스 제공자 전략에 따라 위의 방식들이 임의의 방식으로 혼합되거나 조합되어 적용될 수 있다.
본 개시의 일 실시예에 따르면, 전자 장치(150)는 동작 155에서 서버(100)로부터 스트리밍 데이터를 수신한다. 전자 장치(150)는 서버(100)로부터 수신된 스트리밍 데이터에 포함된 프레임들 및 메타데이터 중 적어도 하나에 기초하여 영상 콘텐트에 대한 프레임을 복원할 수 있다. 전자 장치(150)는 먼저, 동작 160에서 수신된 스트리밍 데이터로부터, 전자 장치(150)에서 현재 실행 중인 상기 영상 콘텐트의 N개의 프레임들을 디스플레이한다. N개의 프레임들은 전자 장치(150)에 이전에 입력된 사용자 입력에 대한 서버(100)의 응답 결과일 수 있다. 전자 장치(150)는 동작 165에서 서버(100)와 전자 장치(150) 사이의 현재 네트워크의 지연 시간을 식별한다. 전자 장치(150)는 동작 170에서 지연 시간과 현재 사용자 입력에 따라, 수신된 스트리밍 데이터로부터, 가능한 복수의 사용자 입력들에 대응하는 K개의 예측 프레임 세트들 중 상기 현재 사용자 입력에 대응하는 예측 프레임 세트에 포함된 M개의 예측 프레임들의 디스플레이 여부를 결정한다. 현재 사용자 입력은 스크린 상의 클릭, 키보드의 입력, 마우스의 입력, 컨트롤러의 입력, 스티어링 휠(steering wheel)의 입력 등일 수 있다. 전자 장치(150)는 동작 175에서 M개의 예측 프레임들을 디스플레이하는 것으로 결정되면, M개의 예측 프레임들을 디스플레이한다. 예측 프레임은 전자 장치(150)에 의해 서버(100)로부터 전송된 스트리밍 데이터가 예측 프레임을 생성하기 위해 훈련된 인공지능 모델에 입력됨으로써 생성될 수 있다. 전자 장치(150)는 동작 180에서 M개의 예측 프레임들을 디스플레이하지 않는 것으로 결정되면, 현재 사용자 입력에 대한 제2 스트리밍 데이터의 수신을 대기한다.
또한, M개의 예측 프레임들이 디스플레이되는 도중에 현재 사용자 입력에 대한 제2 스트리밍 데이터가 수신되면, 전자 장치(150)는 M개의 예측 프레임들의 디스플레이를 중단하고, 수신된 제2 스트리밍 데이터의 프레임들을 디스플레이할 수 있다. 예를 들어, 예측 프레임 N+1 내지 예측 프레임 N+M의 중간 프레임이 디스플레이되는 도중에, 제2 스트리밍 데이터가 수신되면, 전자 장치(150)는 예측 프레임들의 디스플레이를 중단하고, 예측 프레임들을 현재 사용자 입력에 대응하는 N개의 프레임들로 대체하여 N개의 프레임들을 디스플레이할 수 있다.
또한, 수신된 제2 스트리밍 데이터가 저해상도이면, 전자 장치(150)는 제2 스트리밍 데이터 및 스트리밍 데이터에 기초하여 영상을 고해상도로 복원할 수 있다. 또한, 전자 장치(150)는 제2 스트리밍 데이터가 수신되었더라도 지연 시간이 일정 시간 이상이면, 이미 수신된 제2 스트리밍 데이터 및 스트리밍 데이터에 기초하여 예측된 프레임을 디스플레이할 수 있다. 예를 들어, 전자 장치(150)는 현재 사용자 입력에 관련된 제2 스트리밍 데이터의 프레임들과 제2 스트리밍 데이터 이전에 수신된 스트리밍 데이터에 기초한 예측 프레임에 기초하여 새로운 예측 프레임들을 생성하여 디스플레이할 수 있다.
또한, 프레임 누락과 같은 지연이 감지되면, 전자 장치(150)는 현재 사용자 입력에 기초하여 이전 프레임과 예측 프레임에 기초하여 영상 콘텐트를 디스플레이할 수 있다. 예를 들어, 전자 장치(150)는 사용자의 시점에서 예를 들어, 스티어링 휠의 회전 입력에 따라, 이전 프레임 내의 영역이 회전하는 경우, 회전하는 입력에 대한 예측 프레임들을 디스플레이할 수 있다.
전자 장치(150)는 서버(100)와 전자 장치(150)의 성능, 대역폭, 지연 제거, 영상 품질 중 적어도 하나를 최적화하기 위해, 사용자의 전자 장치(150)에게 전송할 예측 및 데이터를 조정하는 서비스 제공자의 서버(100)에 전자 장치(150)의 그래픽 처리 장치(Graphic Processing Unit, GPU), 신경망 처리 장치(Neural Processing Unit, NPU)에 대한 정보 및 전자 장치(150)에서 지원하는 라이브러리 및 모델에 대한 정보를 전송할 수 있다. GPU 및 NPU 각각은 가장 효율적인 방식으로 활용될 수 있다. 예들 들어, GPU 및 NPU 중 하나가 이미지를 업스케일일하도록 설계된 경우, GPU 및 NPU 중 하나는 업스케일링하는 경우에 활용되고, GPU 및 NPU 중 나머지 하나도 자신의 역할에 따라 활용되거나, 범용 처리 장치인 GPGPU (General-Purpose computing on Graphics Processing Units)로 활용될 수 있다. 고해상도 딥 러닝 방법들은 모든 종류의 영상에 보편적으로 적용되지 않고, 각각의 장단점이 있기 때문에 각각의 설계에 맞는 역할에 따라 활용될 수 있다.
서버(100)에서 예측한 예측 전략들 중 둘 이상의 예측 전략이 현재 상황(예를 들어, 현재 사용자 입력)에 적절한 경우, 전자 장치(150)는 둘 이상의 예측 전략들 중 하나를 구현하거나, 정의된 방법들 또는 공식들에 따라 둘 이상의 예측 전략들의 일부 또는 전체를 혼합 또는 조합하여 구현할 수 있다. 이러한 경우, 전자 장치(150)는 실제 결과와 예측 결과 사이의 오류율(error rate)를 최소화할 수 있다.
전자 장치(150)가 서버(100)에서 예측한 예측을 사용할 수 없는 경우, 전자 장치(150)는 마지막 프레임을 표시하거나, 가장 가능한 예측 시나리오 또는 가장 선호하는 예측 시나리오 중 하나를 선택하여 새로운 프레임을 생성할 수 있다. 현재 오류율이 전자 장치(150)가 허용할 수 있는 오류율의 임계값 미만인 경우에도, 전자 장치(150)는 마지막 프레임을 표시하거나, 가장 가능한 예측 시나리오 또는 가장 선호하는 예측 시나리오 중 하나를 선택하여 새로운 프레임을 생성할 수 있다.
전자 장치(150)가 수신한 스트리밍 데이터의 복원은 서버(100)에서의 스트리밍 데이터의 생성 방법에 따라 수행될 수 있다.
1번째로, 스트리밍 데이터가 다운스케일되어 전송된 것인 경우, 스트리밍 데이터에 포함된 다운스케일의 비율 및 다운스케일 방법에 대한 정보를 통해 다운스케일의 비율 및 다운스케일 방법에 대응하는 방식으로 영상이 업스케일될 수 있다. 또한, 영상의 일부 영역만이 다운스케일된 경우, 영상의 일부 영역만이 업스케일될 수 있다. 또한, 업스케일은 서버(100)로부터 전송된 다운스케일 관련 정보에 기초하여, 프레임들을 효과적으로 업스케일하도록 훈련된 인공지능 모델을 이용하여 수행될 수 있다.
2번째로, 예측 프레임 내의 객체들에 대응되는 객체 정보를 마킹하여 스트리밍 데이터를 생성하여 전송된 것인 경우, 전자 장치(150)는 스트리밍 데이터에 포함된 객체 정보에 따라 해당 영역이 훈련된 GAN을 통해 해당 영역을 복원할 수 있다. 예를 들어, 영상의 일부 영역이 바다인 것으로 객체 정보가 마킹된 경우, 해당 영역이 훈련된 GAN을 통해 바다로 복원될 수 있다.
3번째로, 스트리밍 데이터에 예측 프레임들 중 일부와 메타 데이터들이 포함되어 전송된 것일 수 있다. 구체적으로, 최초 프레임, 중간 프레임, 최종 프레임과 메타 데이터들이 전송된 경우, 전자 장치(150)는 최초 프레임, 중간 프레임, 최종 프레임과 메타 데이터들 이용하여 GAN을 통해 나머지 프레임들이 복원될 수 있다.
4번째로, 스트리밍 데이터에 비디오 프레임 없이 영역들에 대한 메타 데이터만이 포함되어 전송될 수 있다. 전자 장치(150)는 프레임 없이 프레임의 각 영역들에 대한 메타 데이터들을 이용하여 프레임들을 복원할 수 있다. 이러한 방식은 훈련된 인공지능 모델을 통해 수행될 수 있다.
또한, 스트리밍 데이터가 위의 방식들의 일부 또는 전부가 혼합 또는 조합되어 전송된 경우, 각 방식에 맞게 영상이 복원될 수 있다.
이를 통해, 영상 콘텐트를 스트리밍하는 서버(100)와 전자 장치(150) 사이의 네트워크의 지연 시간이 일정 시간 이상인 경우, 서버(100)에서 준비된 예측 프레임 세트들 중 전자 장치(150)에 입력된 현재 사용자 입력에 대응하는 하나의 예측 프레임 세트를 디스플레이하여, 렉의 발생을 느끼지 못하게 하여 사용자의 영상 콘텐트에 대한 사용자 경험을 개선하고, 영상을 스무스하게 디스플레이할 수 있다. 예를 들어, 사용자 입력과 화면 상의 결과 사이의 긴 응답 시간이 없기 때문에, 동적인 게임 스트리밍(예를 들어, 레이싱 게임)에서 긴 지연 시간으로 인한 충돌 또는 잘못된 이동 경로로 인해 사용자 경험을 망치는 것을 방지할 수 있다. 또한, 영상 콘텐트를 스트리밍하기 위해 훈련된 인공지능 모델을 활용할 수 있는 스마트 TV 등과 같은 전자 장치에서 영상 콘텐트들이 효과적으로 스트리밍될 수 있다. 또한, 인공지능 모델을 이용하여 전자 장치에서 영상 콘텐트를 복원함으로써, 스트리밍 서버 측의 부담을 경감하여 영상 스트리밍 시의 대역폭을 절감시킬 수 있다.
도 2는 본 개시의 일 실시예에 따른 예측 프레임을 생성하는 방법을 설명하기 위한 도면이다.
도 2를 참고하면, 전자 장치(150)에서 현재 실행중인 영상 콘텐트에 대한 N개의 프레임, 예를 들어, 프레임 1 (210) 내지 프레임 N (220)이 디스플레이되고, 서버(100)와 전자 장치(150) 사이의 네트워크의 지연 시간이 일정 시간보다 짧아 서버(100)가 전자 장치(150)에서의 현재 사용자 입력에 즉각적으로 응답할 수 있다면, 현재 사용자 입력에 대한 응답에 대응하는 M개의 프레임, 예를 들어, 프레임 N+1 (230) 내지 프레임 N+M (240)이 디스플레이된다.
그러나, 서버(100)와 전자 장치(150) 사이의 지연 시간이 일정 시간 이상인 경우에는 서버(100)가 전자 장치에서의 현재 사용자 입력에 즉각적으로 응답할 수 없기 때문에, 서버(100)는 N개의 프레임에 기초하여 전자 장치(150)에서 가능한 복수의 사용자 입력 각각에 대응하는 M개의 예측 프레임, 즉, 복수의 사용자 입력 중 제1 사용자 입력에 대응하는 예측 프레임 N+1 (231) 내지 예측 프레임 N+M (241), ..., 복수의 사용자 입력 중 제K 사용자 입력에 대응하는 예측 프레임 N+1 (232) 내지 예측 프레임 N+M (242) 등을 생성할 수 있다. 서버(100)는 N개의 프레임들과 K개의 예측 프레임 세트들로부터 메타 데이터를 추출하고, K개의 예측 프레임 세트들 및 메타 데이터 중 적어도 하나에 기초하여 스트리밍 데이터를 생성하여 전자 장치(150)에 전송한다. 이에 따라, 전자 장치(150)는 지연 시간이 일정 시간 이상인 경우에, 예측 프레임들의 세트 또는 메타 데이터의 적어도 하나에 기초하여 현재 사용자 입력에 대응하는 예측 프레임들을 생성하여 프레임 N+1 (230) 내지 프레임 N+M (240)을 생성된 예측 프레임들로 대체한다.
도 3은 본 개시의 일 실시예에 따른 서버가 프레임 및 예측 프레임을 준비하는 방법을 설명하기 위한 도면이다.
도 3을 참고하면, 서버(100)는 동작 330에서 영상 콘텐트(예를 들어, 게임)의 현재 상태에 기초하여 프레임을 준비한다. 그 후, 서버(100)는 동작 310에서 현재 가능한 콘텐트 동작과 상태들의 리스트에 따라 다음 프레임들을 예측한다. 가능한 콘텐트 동작에 따라 동작 331, 332, 및 333에서 예측 1 (320), 예측 2 (321), ..., 예측 K (322)에 맞게 예측 프레임을 준비한다. 서버(100)는 준비된 예측 프레임에 기초하여 프레임의 영역들의 모양, 설명, 패턴, 시프트에 대한 메타 데이터를 추출한다. 서버는 동작 334에서 준비된 프레임, 준비된 예측 프레임, 메타 데이터 중 적어도 하나에 기초하여 데이터를 압축한다.
도 4는 본 개시의 일 실시예에 따른 서버에서 예측 프레임 세트들 및 메타 데이터 중 적어도 하나에 기초하여 스트리밍 데이터를 생성하는 예시들을 설명하기 위한 도면이다.
도 4를 참고하면, 레이싱 게임에서의 영상 콘텐트 (400)는 하늘 영역 (440), 나무 영역 (430), 집 영역 (420), 사람이 다니는 인도 영역 (410), 차가 다니는 차도 영역 (450), 차 영역 (460), 잔디 영역 (470) 등을 포함하고 있다.
영상 콘텐트(400)의 프레임들 사이의 색상, 패턴, 및 변형(이동, 늘이기 등)에 대한 속성이 영상 콘텐트(400) 내의 영역들에 추가될 수 있다. 이러한 정보들은 데이터 대기 시간이 길어지는 경우 화면 정지(screen freeze)를 제거하기 위해 사용된다. 전자 장치는 이전 프레임(예를 들어, 프레임 1 내지 프레임 N)과 각 영역들에 대한 메타 데이터 및 예측 데이터에 기초하여 추가적인 예측 프레임들(예를 들어, 예측 프레임 N+1 내지 예측 프레임 N+M)을 생성한다. 이를 통해 동적인 게임 스트리밍에서 긴 네트워크 지연으로 인해 화면이 정지되어 사용자에게 실망스러운 경험을 하게 하여, 사용자 경험을 악화시키는 것을 방지하고, 대신에 사용자에게 지연 없는 스무스한 게임을 기대하게 한다.
서버에서 영상 콘텐트의 스트리밍 데이터를 생성하는 방법 중 하나로 영상 콘텐트 (400)를 인공지능 모델에 기초하여 영상 콘텐트 (400) 전체를 다운스케일하여 스트리밍 데이터를 생성하면서, 메타 데이터에 다운스케일 비율에 대한 정보를 포함시킬 수 있다. 또한, 인공지능 모델에 기초하여 영상 콘텐트 (400)에 포함된 영역들 중 일부 영역, 예를 들어, 하늘 영역 (440), 차도 영역 (450), 잔디 영역 (470)만을 다운스케일하여 스트리밍 데이터를 생성하면서, 메타 데이터에 일부 영역과 일부 영역의 다운스케일 비율에 대한 정보를 포함시킬 수 있다. 다운스케일링을 이용함으로써, 서버(100)로부터 전자 장치(150)까지의 대역폭을 개선할 수 있고, 레이턴시를 줄여 영상 콘텐트의 렉을 제거할 수 있다.
스트리밍 데이터를 생성하는 방법 중 다른 하나로, 영상 콘텐트 (400)의 각 객체들에 대응되는 객체 정보를 마킹할 수 있다. 예를 들어, 영상 콘텐트 (400) 내의 객체들이 무엇인지 마킹하여 마킹된 정보를 메타 데이터로 전송할 수 있다. 예를 들어, 영상 콘텐트 (400) 내의 하늘 영역 (440)에 대하여 하늘에 대한 데이터가 스트리밍 데이터에 포함되지 않더라도, 하늘 영역(440)이 하늘 임을 나타내는 어떤 수치(예를 들어, "0"은 하늘)로 표시하고, 객체 정보로 마킹하여 메타 데이터에 포함시켜 전송할 수 있다. 이에 따라, 전자 장치(150)에서는, 미리 정해진 룰에 따라 인공지능 모델을 이용하여 해당 영역을 하늘 영역으로 생성할 수 있다.
스트리밍 데이터를 생성하는 방법 중 다른 하나로, 영상 콘텐트의 프레임들 중 일부와 메타 데이터를 이용하여 스트리밍 데이터를 생성할 수 있다. 예를 들어, 프레임들 중 최초 프레임, 중간 프레임, 및 최종 프레임과 영상 콘텐트의 각 영역들에 대한 메타 데이터를 포함하여 스트리밍 데이터로 전송할 수 있다.
스트리밍 데이터를 생성하는 방법 중 다른 하나로, 영상 콘텐트에 대한 메타데이터 만을 포함하도록 스트리밍 데이터를 생성할 수 있다.
또한, 전술된 방법들 중 일부 또는 전부를 혼합하거나 조합하여 스트리밍 데이터를 생성할 수 있다.
도 5는 본 개시의 일 실시예에 따른 전자 장치에서 예측 프레임 세트들 및 메타 데이터 중 적어도 하나에 기초하여 스트리밍 데이터를 복원하는 예시들을 설명하기 위한 도면이다.
도 5를 참고하면, 이미지 내의 포함된 메타 데이터(510)와 프레임(520) 중 적어도 하나에 기초하여 인공지능 모델(530)에 따라, 영상 콘텐트(540)를 복원할 수 있다.
일 예로, 다운스케일된 프레임과 다운스케일에 대한 정보를 포함하는 메타 데이터를 이용하여 인공지능 모델에 따라 다운스케일된 프레임을 업스케일하여 영상 콘텐트를 복원할 수 있다. 또한, 프레임 중 일부 영역만 다운스케일된 경우, 다운스케일된 일부 영역, 일부 영역에 대한 정보, 다운스케일에 대한 정보를 이용하여 인공지능 모델에 따라, 다운스케일된 일부 영역을 업스케일하고 영상 콘텐트를 복원할 수 있다.
다른 예로, 영상 콘텐트의 각 객체들에 대응되는 마킹된 객체 정보에 기초하여 인공지능 모델에 따라 영상 콘텐트를 복원할 수 있다.
다른 예로, 스트리밍 데이터 내의 영상 콘텐트의 프레임들 중 일부와 메타 데이터를 이용하여 인공지능 모델에 따라, 영상 콘텐트를 복원할 수 있다. 예를 들어, 프레임들 중 최초 프레임, 중간 프레임, 및 최종 프레임과 영상 콘텐트의 각 영역들에 대한 메타 데이터를 이용하여 인공지능 모델에 따라, 영상 콘텐트를 복원할 수 있다.
다른 예로, 스트리밍 데이터에 포함된 영상 콘텐트에 대한 메타데이터만을 이용하여 인공지능 모델에 따라, 영상 콘텐트를 복원할 수 있다.
또 다른 예로, 서버에서 전송된 스트리밍 데이터가 여러 방법들 중 일부 또는 전부가 혼합 또는 조합되어 생성된 경우, 각 방법에 맞게 전송된 스트리밍 데이터를 영상 콘텐트로 복원할 수 있다.
도 6a는 인공지능 모델을 이용하지 않고 스트리밍 상태가 좋지 않은 경우 영상 스트리밍의 일 예를 설명하기 위한 도면이다.
도 6a를 참고하면, 영상 콘텐트 스트리밍(예를 들어, 게임 스트리밍) 중에 영상 해상도 드랍이 발생하면, 영상 콘텐트 내의 텍스트들의 화질이 떨어져 읽기 힘들어질 수 있다. 예를 들어, 게임 영상 콘텐트(600) 내의 캐릭터의 체력 게이지 바를 나타내는 텍스트(620) 및 속도를 나타내는 텍스트 (610)의 화질이 흐릿해져 사용자가 텍스트를 읽을 수 없어, 게임 스트리밍 서비스를 이용하는 사용자에게 불편함을 줄 수 있다.
도 6b는 본 개시의 일 실시예에 따른 영상 스트리밍의 일 예를 설명하기 위한 도면이다.
도 6a와 달리, 도 6b를 참고하면, 인공지능 모델을 이용하면 네트워크 상태가 좋지 않아 해상도 드랍이 발생하더라도, 영상 콘텐트는 메타 데이터와 예측 프레임에 기초하여 인공지능 모델(예를 들어, GAN)에 따라 판독가능한 실제 수치를 나타내는 고품질 영상 콘텐트로 복원될 수 있다. 예를 들어, 네트워크 상태가 좋지 않아 해상도 드랍이 발생하더라도, 인공지능 모델에 따라 게임 영상 콘텐트(650) 내의 캐릭터의 체력 게이지 바를 나타내는 텍스트(660) 및 속도를 나타내는 텍스트 (670)가 뚜렷하게 복원될 수 있다. 또한, 특수한 GAN, 예를 들어, 텍스트들을 렌더링하기 위해 특별히 훈련된 GAN을 이용하여 서비스 제공자가 정의한 원하는 폰트, 포맷, 위치, 및 배경으로 텍스트가 렌더링될 수 있다.
도 7은 영상 콘텐트의 일 예를 설명하기 위한 도면이다.
도 7을 참고하면, 영상 콘텐트는 게임 영상 콘텐트 뿐만 아니라, VR 게임 영상 콘텐트, AR 게임 영상 콘텐트, VR 영상 콘텐트, AR 영상 콘텐트를 포함할 수 있다. AR 게임 또는 VR 게임을 스트리밍하는 경우에는 상당한 대역폭을 이용할 수 있지만, 다른 참가자의 얼굴이 스트리밍되는 경우에 콘텐트의 대역폭 및 화질을 줄이는 것은 허용될 수 없다. 따라서, 서비스 제공자(service provider)는 예측 프레임들 및 메타 데이터와 같은 추가 데이터를 제공하여 전자 장치에서 콘텐트를 생성하도록 할 수 있다. 예를 들어, 시나리오 710에 도시된 바와 같이, 2명의 플레이어가 VR 게임을 플레이하는 경우에, VR 게임 영상 콘텐트(750)가 디스플레이될 때, 사용자가 머리를 움직이면, 전자 장치는 그에 맞게 즉각적인 응답을 취하기 위해, 이미 전달된 콘텐트와 콘텐트 내의 영역들에 대한 메타 데이터를 기초로 하여 새로운 프레임들을 생성할 수 있다. 예를 들어, VR 게임 영상 콘텐트(750)에서는 사용자가 머리를 움직이는 동작이 사용자 입력이 될 수 있다. 그 후, 사용자의 움직임에 따른 새로 업데이트된 스트림 데이터가 서버로부터 사용자가 착용한 전자 장치에 수신되면, 생성된 프레임을 서버에서 수신된 프레임으로 교체할 수 있다.
도 8은 본 개시의 일 실시예에 따른 서버가 전자 장치에 영상 콘텐트의 스트리밍 데이터를 전송하는 방법의 흐름도이다.
도 8을 참고하면, 단계 810에서, 서버(900)는 전자 장치(1100)에서 실행 중인 영상 콘텐트의 N개의 프레임들을 획득한다.
단계 820에서, 서버(900)는 N개의 프레임들에 관련하여, 또는 N개의 프레임들에 기초하여, 사용자에 의해 입력 가능한 복수의 사용자 입력들을 식별한다.
일 실시예에 따라, N개의 프레임은, 전자 장치(1100)의 화면 상에 디스플레이 중인 영상 콘텐트의 현재 영상에 대응되는 것일 수 있다.
단계 830에서, 서버(900)는 복수의 사용자 입력들에 대응되는 K개의 예측 프레임 세트들을 생성한다. 예측 프레임 세트들 각각은 N개의 프레임들 이후에 디스플레이될 수 있는 M개의 예측 프레임들을 포함한다.
일 실시예에 따라, 예측 프레임은, N개의 프레임에 관련된 사용자 입력에 따라 N개의 프레임 이후에 디스플레이될 것으로 예측되는 프레임일 수 있다.
또한, 일 실시예에 따라, 예측 프레임은, 프레임들 및 사용자 입력의 종류에 따라, 프레임들 이후의 예측 프레임을 생성하도록 훈련된 인공지능 모델을 이용하여 생성되는 것일 수 있다.
일 실시예에 따라, 각 예측 프레임 세트 내의 상기 예측 프레임들의 개수 M은 상기 서버(900) 및 상기 전자 장치(1100) 간의 현재 네트워크의 지연 시간에 따라 결정될 수 있다.
단계 840에서, 서버(900)는 N개의 프레임들 및 K개의 예측 프레임 세트들로부터 메타 데이터를 획득한다.
일 실시예에 따라, 메타데이터는 프레임 내의 오브젝트, 형태, 및 속성 중 적어도 하나에 대한 정보를 포함할 수 있다.
단계 850에서, 서버(900)는 K개의 예측 프레임 세트들 및 메타 데이터 중 적어도 하나에 기초하여, 전자 장치(1100)에 제공될 영상 콘텐트의 스트리밍 데이터를 생성한다.
일 실시예에 따라, 스트리밍 데이터는 예측 프레임을 다운스케일링하고, 다운스케일된 예측 프레임을 이용해서 생성될 수 있다. 또한, 예측 프레임은 프레임 전체 영역이 다운스케일되거나 프레임 중 일부 영역이 다운스케일될 수 있다. 메타 데이터에는 다운스케일링 비율에 대한 정보가 포함될 수 있다.
일 실시예에 따라, 스트리밍 데이터는 예측 프레임 내의 객체들에 대응되는 객체 정보를 마킹하여 생성될 수 있다.
일 실시예에 따라, 스트리밍 데이터는 예측 프레임들 중 일부를 이용하여 생성될 수 있다.
일 실시예에 따라, 스트리밍 데이터는 메타 데이터만을 이용하여 생성될 수 있다.
단계 860에서, 서버(900)는 생성된 스트리밍 데이터를 전자 장치(1100)에 전송한다.
도 9는 본 개시의 일 실시예에 따른 서버의 블록도이다.
도 9를 참고하면, 본 개시의 일 실시예에 따른 서버(900)는 메모리(910), 프로세서(920), 및 통신 인터페이스(930)를 포함할 수 있다.
메모리(910)는 후술할 프로세서(920)에 의해 실행될 프로그램을 저장할 수 있고, 서버(900)로 입력되거나 서버(900)로부터 출력되는 데이터를 저장할 수 있다.
메모리(910)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
메모리(910)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, 프레임 획득 모듈(911), 사용자 입력 식별 모듈 (912), 예측 프레임 생성 모듈(913), 메타 데이터 획득 모듈 (914), 데이터 생성 모듈 (915), 및 데이터 전송 모듈 (916)를 포함할 수 있다.
프로세서(920)는 서버(900)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(920)는 메모리(910)에 저장된 프로그램들을 실행함으로써, 메모리(910) 및 통신 인터페이스(930)를 전반적으로 제어할 수 있다.
프로세서(920)는 메모리(910)에 저장된 프레임 획득 모듈(911)을 실행함으로써, 전자 장치(1100)에서 실행 중인 영상 콘텐트의 N개의 프레임들을 획득할 수 있다.
프로세서(920)는 메모리(910)에 저장된 사용자 입력 식별 모듈(912)을 실행함으로써, N개의 프레임들에 관련하여 사용자에 의해 입력 가능한 복수의 사용자 입력들을 식별할 수 있다.
프로세서(920)는 메모리(910)에 저장된 예측 프레임 생성 모듈(913)을 실행함으로써, 복수의 사용자 입력들에 대응되는 K개의 예측 프레임 세트들을 생성할 수 있다.
프로세서(920)는 메모리(910)에 저장된 메타 데이터 획득 모듈(914)을 실행함으로써, N개의 프레임들 및 K개의 예측 프레임 세트들로부터 메타 데이터를 획득할 수 있다.
프로세서(920)는 메모리(910)에 저장된 데이터 생성 모듈(915)을 실행함으로써, K개의 예측 프레임 세트들 및 메타 데이터 중 적어도 하나에 기초하여, 전자 장치(1100)에 제공될 영상 콘텐트의 스트리밍 데이터를 생성할 수 있다.
프로세서(920)는 메모리(910)에 저장된 데이터 전송 모듈(916)을 실행함으로써, 통신 인터페이스(930)를 통해 생성된 스트리밍 데이터를 다른 장치, 예를 들어, 도 11에서 후술되는 전자 장치(1100)에 전송할 수 있다.
통신 인터페이스(930)는 서버(900)가 생성한 스트리밍 데이터를 전자 장치(1100)에 전송할 수 있는 구성요소를 의미한다. 또한, 통신 인터페이스(930)는 전자 장치(1100)가 사용자로부터 수신한 사용자 입력에 대한 정보를 서버(900)에서 수신할 수 있는 구성요소이다.
도 10은 본 개시의 일 실시예에 따른 전자 장치가 서버로부터 영상 콘텐트의 스트리밍 데이터를 수신하는 방법의 흐름도이다.
도 10을 참고하면, 단계 1010에서, 전자 장치(1100)는 서버(900)로부터 영상 콘텐트의 스트리밍 데이터를 수신한다.
단계 1020에서, 전자 장치(1100)는 수신된 스트리밍 데이터로부터, 전자 장치(1100)에서 현재 실행 중인 영상 콘텐트의 N개의 프레임들을 디스플레이한다.
단계 1030에서, 전자 장치(1100)는 서버(900)와 전자 장치(1100) 사이의 현재 네트워크의 지연 시간을 식별한다.
단계 1040에서, 전자 장치(1100)는 지연 시간과 현재 사용자 입력에 따라, 수신된 스트리밍 데이터로부터, 가능한 복수의 사용자 입력들에 대응하는 K개의 예측 프레임 세트들 중 현재 사용자 입력에 대응하는 예측 프레임 세트에 포함된 M개의 예측 프레임들의 디스플레이 여부를 결정한다.
단계 1050에서, 전자 장치(1100)는 M개의 예측 프레임들을 디스플레이하는 것으로 결정되면, M개의 예측 프레임들을 디스플레이한다.
일 실시예에 따라, M개의 예측 프레임들을 디스플레이하는 도중에 상기 제2 스트리밍 데이터가 수신되면, M개의 예측 프레임들의 디스플레이가 중단되고, 수신된 제2 스트리밍 데이터의 프레임들이 디스플레이될 수 있다.
일 실시예에 따라, 상기 수신된 제2 스트리밍 데이터가 저해상도이면, 제2 스트리밍 데이터 및 상기 스트리밍 데이터에 기초하여 상기 영상 콘텐트가 고해상도로 복원될 수 있다.
일 실시예에 따라, 지연 시간이 미리정해진 시간 이상이면, 이미 수신된 제2 스트리밍 데이터 및 스트리밍 데이터에 기초하여 예측된 프레임이 디스플레이될 수 있다.
단계 1060에서, 전자 장치(1100)는 M개의 예측 프레임들을 디스플레이하지 않는 것으로 결정되면, 현재 사용자 입력에 대한 제2 스트리밍 데이터의 수신을 대기한다.
일 실시예에 따라, 제2 스트리밍 데이터는 서버(900)가 전자 장치(1100)에 입력된 현재 사용자 입력에 대한 응답으로 생성된 스트리밍 데이터일 수 있다.
도 11은 본 개시의 일 실시예에 따른 전자 장치의 블록도이다.
도 11를 참고하면, 본 개시의 일 실시예에 따른 전자 장치(1100)는 메모리(1110), 프로세서(1120), 통신 인터페이스 (1130), 디스플레이(1140), 및 입력 인터페이스(1150)를 포함할 수 있다.
메모리(1110)는 후술할 프로세서(1120)에 의해 실행될 프로그램을 저장할 수 있고, 전자 장치(1100)로 입력되거나 전자 장치(1100)로부터 출력되는 데이터를 저장할 수 있다.
메모리(1110)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
메모리(1110)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, 수신 모듈(1111), 지연시간 식별 모듈(1112), 디스플레이 결정 모듈(1113)을 포함할 수 있다.
프로세서(1120)는 전자 장치(1100)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(1120)는 메모리(1120)에 저장된 프로그램들을 실행함으로써, 메모리(1110), 통신 인터페이스(1130), 디스플레이(1140), 및 입력 인터페이스(1150)를 전반적으로 제어할 수 있다.
프로세서(1120)는 메모리(1110)에 저장된 수신 모듈(1111)을 실행함으로써, 통신 인터페이스(1130)를 통해 서버(900)로부터 영상 콘텐트의 스트리밍 데이터를 수신할 수 있다.
프로세서(1120)는 메모리(1110)에 저장된 지연시간 식별 모듈(1112)을 실행함으로써, 서버(900)와 전자 장치(1100) 사이의 현재 네트워크의 지연 시간을 식별할 수 있다.
프로세서(1120)는 메모리(1110)에 저장된 디스플레이 결정 모듈(1113)을 실행함으로써, 수신된 스트리밍 데이터로부터, 전자 장치(1100)에서 실행 중인 영상 콘텐트의 N개의 프레임들을 복원하여 디스플레이부(1140)에 디스플레이할 수 있다. 또한, 지연 시간과 현재 사용자 입력에 따라, 상기 수신된 스트리밍 데이터로부터, 가능한 복수의 사용자 입력들에 대응하는 K개의 예측 프레임 세트들 중 상기 현재 사용자 입력에 대응하는 예측 프레임 세트에 포함된 M개의 예측 프레임들의 디스플레이 여부를 결정할 수 있다. M개의 예측 프레임들을 디스플레이하는 것으로 결정되면, M개의 예측 프레임들을 복원하여 디스플레이부(1140)에 디스플레이하고, M개의 예측 프레임들을 디스플레이하지 않는 것으로 결정되면, 상기 현재 사용자 입력에 대한 제2 스트리밍 데이터의 수신을 대기할 수 있다.
통신 인터페이스(1130)는 서버(900)가 생성한 스트리밍 데이터를 전자 장치(1100)에서 수신할 수 있다. 또한, 통신 인터페이스(1130)는 전자 장치(1100)에 사용자가 입력한 사용자 입력에 대한 정보를 서버(900)에 전송할 수 있다.
디스플레이(1140)는 전자 장치(1100)가 서버(900)로부터 수신한 스트리밍 데이터를 복원함으로써 획득된 영상 콘텐트를 표시한다.
입력 인터페이스(1150)는 사용자가 전자 장치(1100)를 제어하기 위한 데이터를 입력하기 위해 이용될 수 있고, 영상 콘텐트에 대한 사용자의 입력을 수신할 수 있다. 예를 들어, 입력 인터페이스(1150)는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠 또는 조그 스위치 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.
본 개시의 일 실시예에 따라, 서버가 영상 콘텐트를 스트리밍하는 방법은 전자 장치에서 실행 중인 상기 영상 콘텐트의 하나 이상의 프레임들을 획득하는 단계; 상기 하나 이상의 프레임들에 대응하는 사용자에 의해 입력 가능한 복수의 사용자 입력들을 식별하는 단계; 상기 복수의 사용자 입력들에 각각 대응되는 복수개의 예측 프레임 세트들을 생성하되, 상기 복수개의 예측 프레임 세트들의 각각의 예측 프레임 세트는 상기 하나 이상의 프레임들 이후에 디스플레이될 수 있는 복수개의 예측 프레임들을 포함하는 단계; 상기 하나 이상의 프레임들 및 상기 복수개의 예측 프레임 세트들로부터 메타 데이터를 획득하는 단계; 상기 복수개의 예측 프레임 세트들 또는 상기 메타 데이터 중 적어도 하나에 기초하여, 상기 전자 장치에 제공될 상기 영상 콘텐트의 스트리밍 데이터를 생성하는 단계; 상기 생성된 스트리밍 데이터를 상기 전자 장치에 전송하는 단계;를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 복수개의 예측 프레임들은, 상기 하나 이상의 프레임에 관련된 사용자 입력에 따라 상기 하나 이상의 프레임 이후의 디스플레이를 위해 예측될 수 있다.
본 개시의 일 실시예에 따라, 상기 복수개의 예측 프레임들은, 상기 하나 이상의 프레임들 및 사용자 입력의 종류에 따라, 상기 하나 이상의 프레임들 이후의 디스플레이를 위해 예측된 프레임들을 생성하도록 훈련된 인공지능 모델을 이용하여 생성될 수 있다.
본 개시의 일 실시예에 따라, 상기 하나 이상의 프레임은, 상기 전자 장치의 화면 상에 현재 디스플레이 중인 상기 영상 콘텐트의 영상에 대응되는 것일 수 있다.
본 개시의 일 실시예에 따라, 상기 각각의 예측 프레임 세트 내의 상기 복수개의 예측 프레임들의 개수는 상기 서버 및 상기 전자 장치 간의 현재 네트워크의 지연 시간에 따라 결정될 수 있다.
본 개시의 일 실시예에 따라, 상기 메타데이터는 프레임 내의 오브젝트, 형태, 및 속성 중 적어도 하나에 대한 정보를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 스트리밍 데이터를 생성하는 단계는, 상기 복수개의 예측 프레임들의 예측 프레임을 다운스케일링하는 단계; 상기 다운스케일된 예측 프레임을 이용해서 상기 스트리밍 데이터를 생성하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 예측 프레임의 일 영역만이 다운스케일될 수 있다.
본 개시의 일 실시예에 따라, 상기 스트리밍 데이터를 생성하는 단계는 상기 복수개의 예측 프레임들의 예측 프레임 내의 객체들에 대응되는 객체 정보를 마킹하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 스트리밍 데이터를 생성하는 단계는, 상기 복수개의 예측 프레임들 중 일부 예측 프레임들을 이용해서 상기 스트리밍 데이터를 생성하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따라, 전자 장치에서의 영상 콘텐트의 스트리밍 방법은 서버로부터 상기 영상 콘텐트의 스트리밍 데이터를 수신하는 단계; 상기 수신된 스트리밍 데이터로부터, 상기 전자 장치에서 현재 실행 중인 상기 영상 콘텐트의 하나 이상의 프레임들을 디스플레이하는 단계; 상기 서버와 상기 전자 장치 사이의 현재 네트워크의 지연 시간을 식별하는 단계; 상기 지연 시간과 현재 사용자 입력에 따라, 상기 수신된 스트리밍 데이터로부터, 가능한 복수의 사용자 입력들에 각각 대응하는 복수개의 예측 프레임 세트들 중 상기 현재 사용자 입력에 대응하는 예측 프레임 세트에 포함된 복수개의 예측 프레임들의 디스플레이 여부를 결정하는 단계; 상기 복수개의 예측 프레임들을 디스플레이하는 것으로 결정한 것에 기초하여, 상기 복수개의 예측 프레임들을 디스플레이하는 단계; 및 상기 복수개의 예측 프레임들을 디스플레이하지 않는 것으로 결정한 것에 기초하여, 상기 현재 사용자 입력에 대응하는 제2 스트리밍 데이터의 수신을 대기하는 단계;를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 복수개의 예측 프레임들을 디스플레이하는 도중에 상기 제2 스트리밍 데이터가 수신되는 것에 기초하여, 상기 복수개의 예측 프레임들의 디스플레이하는 것을 중단하는 단계; 및 수신된 제2 스트리밍 데이터의 프레임들을 디스플레이하는 단계를 더 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 수신된 제2 스트리밍 데이터가 제1 해상도인 것에 기초하여, 상기 제2 스트리밍 데이터 및 상기 스트리밍 데이터에 기초하여 상기 영상 콘텐트가 제1 해상도 보다 높은 제2 해상도로 업스케일될 수 있다.
본 개시의 일 실시예에 따라, 상기 지연 시간이 미리정해진 시간 이상인 것에 기초하여, 수신된 제2 스트리밍 데이터 및 상기 스트리밍 데이터에 기초하여 예측된 프레임이 디스플레이될 수 있다.
본 개시의 일 실시예에 따라, 서버는 전자 장치에 영상 콘텐트의 스트리밍 데이터를 전송하기 위한 통신 인터페이스; 및 적어도 하나의 프로세서;를 포함하고, 상기 적어도 하나의 프로세서는: 상기 전자 장치에서 현재 실행 중인 상기 영상 콘텐트의 하나 이상의 프레임들을 획득하고, 상기 하나 이상의 프레임들에 대응하는 사용자에 의해 입력 가능한 복수의 사용자 입력들을 식별하고, 상기 복수의 사용자 입력들에 각각 대응되는 복수개의 예측 프레임 세트들을 생성하되, 상기 복수개의 예측 프레임 세트들의 각 예측 프레임 세트는 상기 하나 이상의 프레임들 이후에 디스플레이될 수 있는 복수개의 예측 프레임들을 포함하고, 상기 하나 이상의 프레임들 및 상기 복수개의 예측 프레임 세트들로부터 메타 데이터를 획득하고, 상기 복수개의 예측 프레임 세트들 또는 상기 메타 데이터 중 적어도 하나에 기초하여, 상기 전자 장치에 제공될 상기 영상 콘텐트의 스트리밍 데이터를 생성하고, 상기 생성된 스트리밍 데이터를 상기 전자 장치에 전송할 수 있다.
본 개시의 일 실시예에 따라, 전자 장치는 서버로부터 영상 콘텐트의 스트리밍 데이터를 수신하기 위한 통신 인터페이스; 디스플레이; 및 적어도 하나의 프로세서;를 포함하고, 상기 적어도 하나의 프로세서는: 상기 서버로부터 상기 영상 콘텐트의 스트리밍 데이터를 수신하고, 상기 수신된 스트리밍 데이터로부터, 상기 전자 장치에서 현재 실행 중인 상기 영상 콘텐트의 하나 이상의 프레임들을 복원하여 상기 하나 이상의 프레임들을 디스플레이하고, 상기 서버와 상기 전자 장치 사이의 현재 네트워크의 지연 시간을 식별하고, 상기 지연 시간과 현재 사용자 입력에 따라, 상기 수신된 스트리밍 데이터로부터, 가능한 복수의 사용자 입력들에 각각 대응하는 복수개의 예측 프레임 세트들 중 상기 현재 사용자 입력에 대응하는 예측 프레임 세트에 포함된 복수개의 예측 프레임들의 디스플레이 여부를 결정하고, 상기 복수개의 예측 프레임들을 디스플레이하는 것으로 결정한 것에 기초하여, 상기 복수개의 예측 프레임들을 복원하여 상기 디스플레이에 복수개의 예측 프레임들을 디스플레이하고, 상기 복수개의 예측 프레임들을 디스플레이하지 않는 것으로 결정한 것에 기초하여, 상기 현재 사용자 입력에 대응하는 제2 스트리밍 데이터의 수신을 대기할 수 있다.
본 개시의 일 실시예는, 서버와 전자 장치 간의 영상 콘텐트의 스트리밍에서 스트리밍 지연을 방지하기 위해, 서버에서 현재 실행 중인 영상 콘텐트에 대한 가능한 사용자 입력에 대응하는 예측 프레임들을 생성하고, 현재 실행 중인 영상 콘텐트에 대한 프레임들과 예측 프레임들에 기초하여 메타 데이터를 획득하고, 예측 프레임들과 메타 데이터 중 적어도 하나를 기초하여 인공지능 모델을 이용하여 생성된 스트리밍 데이터를 전송하고, 전자 장치에서 인공지능 모델을 이용하여 수신된 스트리밍 데이터를 복원하고, 서버와 전자 장치 사이의 지연 시간과 현재 사용자 입력에 기초하여 복원된 예측 프레임의 디스플레이 여부를 결정하여 예측 프레임을 디스플레이함으로써, 스트리밍 데이터를 효율적으로 변환하고, 사용자 입력에 대하여 빠르게 반응하여 영상 콘텐트를 디스플레이한다.
일 실시예에 따라, 전자 장치에서 현재 실행 중인 영상 콘텐트의 하나 이상의 프레임, 복수개의 가능한 사용자 입력들에 각각 대응하는 복수개의 예측 프레임 세트들, 및 메타 데이터에 기초하여 실시간으로 영상 콘텐트를 디스플레이함으로써, 네트워크의 지연이 발생하더라도 사용자의 동작(입력)에 즉각적으로 반응하여 영상 콘텐트에 대한 사용자의 경험을 개선하고 영상 콘텐트를 전자 장치에서 스무스하게 디스플레이할 수 있다. 또한, 메타 데이터를 이용함으로써 영상 콘텐트 스트리밍 서비스의 대역폭 사용량이 크게 절감될 수 있다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.

Claims (15)

  1. 서버가 영상 콘텐트를 스트리밍하는 방법에 있어서,
    전자 장치에서 실행 중인 상기 영상 콘텐트의 하나 이상의 프레임들을 획득(810)하는 단계;
    상기 하나 이상의 프레임들에 대응하는 사용자에 의해 입력 가능한 복수의 사용자 입력들을 식별(820)하는 단계;
    상기 복수의 사용자 입력들에 각각 대응되는 복수개의 예측 프레임 세트들을 생성(830)하되, 상기 복수개의 예측 프레임 세트들의 각각의 예측 프레임 세트는 상기 하나 이상의 프레임들 이후에 디스플레이될 수 있는 복수개의 예측 프레임들을 포함하는 단계;
    상기 하나 이상의 프레임들 및 상기 복수개의 예측 프레임 세트들로부터 메타 데이터를 획득(840)하는 단계;
    상기 복수개의 예측 프레임 세트들 또는 상기 메타 데이터 중 적어도 하나에 기초하여, 상기 전자 장치에 제공될 상기 영상 콘텐트의 스트리밍 데이터를 생성(850)하는 단계;
    상기 생성된 스트리밍 데이터를 상기 전자 장치에 전송(860)하는 단계;를 포함하는, 서버가 영상 콘텐트를 스트리밍하는 방법.
  2. 제1항에 있어서,
    상기 복수개의 예측 프레임들은, 상기 하나 이상의 프레임에 관련된 사용자 입력에 따라 상기 하나 이상의 프레임 이후의 디스플레이를 위해 예측되는, 서버가 영상 콘텐트를 스트리밍하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 복수개의 예측 프레임들은, 상기 하나 이상의 프레임들 및 사용자 입력의 종류에 따라, 상기 하나 이상의 프레임들 이후의 디스플레이를 위해 예측된 프레임들을 생성하도록 훈련된 인공지능 모델을 이용하여 생성되는 것인, 서버가 영상 콘텐트를 스트리밍하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 하나 이상의 프레임은, 상기 전자 장치의 화면 상에 현재 디스플레이 중인 상기 영상 콘텐트의 영상에 대응되는 것인, 서버가 영상 콘텐트를 스트리밍하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 각각의 예측 프레임 세트 내의 상기 복수개의 예측 프레임들의 개수는 상기 서버 및 상기 전자 장치 간의 현재 네트워크의 지연 시간에 따라 결정되는, 서버가 영상 콘텐트를 스트리밍하는 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 메타데이터는 프레임 내의 오브젝트, 형태, 및 속성 중 적어도 하나에 대한 정보를 포함하는, 서버가 영상 콘텐트를 스트리밍하는 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 스트리밍 데이터를 생성하는 단계는,
    상기 복수개의 예측 프레임들의 예측 프레임을 다운스케일링하는 단계;
    상기 다운스케일된 예측 프레임을 이용해서 상기 스트리밍 데이터를 생성하는 단계를 포함하는, 서버가 영상 콘텐트를 스트리밍하는 방법.
  8. 제7항에 있어서,
    상기 예측 프레임의 일 영역만이 다운스케일되는, 서버가 영상 콘텐트를 스트리밍하는 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 스트리밍 데이터를 생성하는 단계는
    상기 복수개의 예측 프레임들의 예측 프레임 내의 객체들에 대응되는 객체 정보를 마킹하는 단계를 포함하는, 서버가 영상 콘텐트를 스트리밍하는 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 스트리밍 데이터를 생성하는 단계는,
    상기 복수개의 예측 프레임들 중 일부 예측 프레임들을 이용해서 상기 스트리밍 데이터를 생성하는 단계를 포함하는, 서버가 영상 콘텐트를 스트리밍하는 방법.
  11. 전자 장치에서의 영상 콘텐트의 스트리밍 방법에 있어서,
    서버로부터 상기 영상 콘텐트의 스트리밍 데이터를 수신(1010)하는 단계;
    상기 수신된 스트리밍 데이터로부터, 상기 전자 장치에서 현재 실행 중인 상기 영상 콘텐트의 하나 이상의 프레임들을 디스플레이(1020)하는 단계;
    상기 서버와 상기 전자 장치 사이의 현재 네트워크의 지연 시간을 식별(1030)하는 단계;
    상기 지연 시간과 현재 사용자 입력에 따라, 상기 수신된 스트리밍 데이터로부터, 가능한 복수의 사용자 입력들에 각각 대응하는 복수개의 예측 프레임 세트들 중 상기 현재 사용자 입력에 대응하는 예측 프레임 세트에 포함된 복수개의 예측 프레임들의 디스플레이 여부를 결정(1040)하는 단계;
    상기 복수개의 예측 프레임들을 디스플레이하는 것으로 결정한 것에 기초하여, 상기 복수개의 예측 프레임들을 디스플레이(1050)하는 단계; 및
    상기 복수개의 예측 프레임들을 디스플레이하지 않는 것으로 결정한 것에 기초하여, 상기 현재 사용자 입력에 대응하는 제2 스트리밍 데이터의 수신을 대기(1060)하는 단계;를 포함하는, 전자 장치에서의 영상 콘텐트의 스트리밍 방법.
  12. 제11항에 있어서,
    상기 복수개의 예측 프레임들을 디스플레이하는 도중에 상기 제2 스트리밍 데이터가 수신되는 것에 기초하여,
    상기 복수개의 예측 프레임들의 디스플레이하는 것을 중단하는 단계; 및
    수신된 제2 스트리밍 데이터의 프레임들을 디스플레이하는 단계를 더 포함하는, 전자 장치에서의 영상 콘텐트의 스트리밍 방법.
  13. 제11항 또는 제12항에 있어서,
    상기 수신된 제2 스트리밍 데이터가 제1 해상도인 것에 기초하여,
    상기 제2 스트리밍 데이터 및 상기 스트리밍 데이터에 기초하여 상기 영상 콘텐트가 제1 해상도 보다 높은 제2 해상도로 업스케일되는, 전자 장치에서의 영상 콘텐트의 스트리밍 방법.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 지연 시간이 미리정해진 시간 이상인 것에 기초하여, 수신된 제2 스트리밍 데이터 및 상기 스트리밍 데이터에 기초하여 예측된 프레임이 디스플레이되는, 전자 장치에서의 영상 콘텐트의 스트리밍 방법.
  15. 전자 장치에 영상 콘텐트의 스트리밍 데이터를 전송하기 위한 통신 인터페이스(930); 및
    적어도 하나의 프로세서(920);를 포함하고,
    상기 적어도 하나의 프로세서는:
    상기 전자 장치에서 현재 실행 중인 상기 영상 콘텐트의 하나 이상의 프레임들을 획득하고,
    상기 하나 이상의 프레임들에 대응하는 사용자에 의해 입력 가능한 복수의 사용자 입력들을 식별하고,
    상기 복수의 사용자 입력들에 각각 대응되는 복수개의 예측 프레임 세트들을 생성하되, 상기 복수개의 예측 프레임 세트들의 각 예측 프레임 세트는 상기 하나 이상의 프레임들 이후에 디스플레이될 수 있는 복수개의 예측 프레임들을 포함하고,
    상기 하나 이상의 프레임들 및 상기 복수개의 예측 프레임 세트들로부터 메타 데이터를 획득하고,
    상기 복수개의 예측 프레임 세트들 또는 상기 메타 데이터 중 적어도 하나에 기초하여, 상기 전자 장치에 제공될 상기 영상 콘텐트의 스트리밍 데이터를 생성하고,
    상기 생성된 스트리밍 데이터를 상기 전자 장치에 전송하는, 서버(900).
PCT/KR2022/018762 2021-11-30 2022-11-24 서버와 전자 장치 사이의 영상 콘텐트를 스트리밍하는 방법, 영상 콘텐트를 스트리밍하는 서버 및 전자 장치 WO2023101322A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/074,878 US11997326B2 (en) 2021-11-30 2022-12-05 Method of streaming image content between server and electronic device, server for streaming image content, and electronic device for streaming image content

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210169438A KR20230081402A (ko) 2021-11-30 2021-11-30 서버와 전자 장치 사이의 영상 콘텐트를 스트리밍하는 방법, 영상 콘텐트를 스트리밍하는 서버 및 전자 장치
KR10-2021-0169438 2021-11-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/074,878 Continuation US11997326B2 (en) 2021-11-30 2022-12-05 Method of streaming image content between server and electronic device, server for streaming image content, and electronic device for streaming image content

Publications (1)

Publication Number Publication Date
WO2023101322A1 true WO2023101322A1 (ko) 2023-06-08

Family

ID=86612556

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/018762 WO2023101322A1 (ko) 2021-11-30 2022-11-24 서버와 전자 장치 사이의 영상 콘텐트를 스트리밍하는 방법, 영상 콘텐트를 스트리밍하는 서버 및 전자 장치

Country Status (2)

Country Link
KR (1) KR20230081402A (ko)
WO (1) WO2023101322A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160143778A (ko) * 2014-04-11 2016-12-14 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 게임에 있어서 관심 영역에 따른 힌트를 이용한 비디오 코딩
KR20190121407A (ko) * 2013-06-07 2019-10-25 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 두부 장착형 시스템과 연관된 홉을 감소시키기 위한 시스템 및 방법
KR20200019855A (ko) * 2017-04-21 2020-02-25 제니맥스 미디어 인크. 모션 벡터들 예측에 의한 플레이어 입력 모션 보상을 위한 시스템들 및 방법들
US20200396501A1 (en) * 2019-06-11 2020-12-17 Nvidia Corporation Re-encoding predicted picture frames in live video stream applications
KR20210128091A (ko) * 2020-04-16 2021-10-26 삼성전자주식회사 스트리밍 시스템 및 인터렉티브 스트리밍 서비스 제공 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190121407A (ko) * 2013-06-07 2019-10-25 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 두부 장착형 시스템과 연관된 홉을 감소시키기 위한 시스템 및 방법
KR20160143778A (ko) * 2014-04-11 2016-12-14 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 게임에 있어서 관심 영역에 따른 힌트를 이용한 비디오 코딩
KR20200019855A (ko) * 2017-04-21 2020-02-25 제니맥스 미디어 인크. 모션 벡터들 예측에 의한 플레이어 입력 모션 보상을 위한 시스템들 및 방법들
US20200396501A1 (en) * 2019-06-11 2020-12-17 Nvidia Corporation Re-encoding predicted picture frames in live video stream applications
KR20210128091A (ko) * 2020-04-16 2021-10-26 삼성전자주식회사 스트리밍 시스템 및 인터렉티브 스트리밍 서비스 제공 방법

Also Published As

Publication number Publication date
KR20230081402A (ko) 2023-06-07

Similar Documents

Publication Publication Date Title
RU2621644C2 (ru) Мир массового одновременного удаленного цифрового присутствия
CN113099298B (zh) 虚拟形象的改变方法、装置和终端设备
EP3691280A1 (en) Video transmission method, server, vr playback terminal and computer-readable storage medium
WO2019045473A1 (en) METHOD AND APPARATUS FOR CONTINUOUS DIFFUSION OF POINT CLOUD
US20070242066A1 (en) Virtual video camera device with three-dimensional tracking and virtual object insertion
WO2018169367A1 (en) Method and apparatus for packaging and streaming of virtual reality media content
WO2019172546A1 (en) Electronic apparatus and control method thereof
JPH08504306A (ja) デジタル・ビデオ編集システム、及び方法
WO2020235886A1 (en) Bitstream merger and extractor
CN111298427A (zh) 一种在虚拟现实云游戏系统中降低画面抖动的方法
CN113747227B (zh) 视频播放方法、装置、存储介质以及电子设备
WO2020235749A1 (ko) 실시간 몰입형 콘텐츠 제공 시스템 및 이의 햅틱 효과 전송 방법
WO2023101322A1 (ko) 서버와 전자 장치 사이의 영상 콘텐트를 스트리밍하는 방법, 영상 콘텐트를 스트리밍하는 서버 및 전자 장치
CN114374853A (zh) 内容展示方法、装置、计算机设备和存储介质
WO2020085549A1 (en) Method and device for adjusting resolution of hmd apparatus
KR20110099414A (ko) 휴대용 단말기에서 애니메이션 효과를 제공하기 위한 장치 및 방법
CN110719415B (zh) 一种视频图像处理方法、装置、电子设备及计算机可读介质
CN111667313A (zh) 广告展示方法、装置、客户端设备及存储介质
JP7427786B2 (ja) 拡張現実に基づく表示方法、機器、記憶媒体及びプログラム製品
US20020158895A1 (en) Method of and a system for distributing interactive audiovisual works in a server and client system
JPH08139994A (ja) 画像合成システム
JP2004325941A (ja) 描画処理装置、描画処理方法および描画処理プログラム、並びにそれらを備えた電子会議システム
US11997326B2 (en) Method of streaming image content between server and electronic device, server for streaming image content, and electronic device for streaming image content
TWI814318B (zh) 用於使用模擬角色訓練模型以用於將遊戲角色之臉部表情製成動畫之方法以及用於使用三維(3d)影像擷取來產生遊戲角色之臉部表情之標籤值之方法
WO2020213932A1 (en) Method and system for encoding, decoding and playback of video content in client-server architecture

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2022901680

Country of ref document: EP

Ref document number: 22901680.3

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022901680

Country of ref document: EP

Effective date: 20240325