WO2017142354A1 - Gpu 기반의 가상 현실 비디오 스트리밍 서버를 위한 방법 및 시스템 - Google Patents
Gpu 기반의 가상 현실 비디오 스트리밍 서버를 위한 방법 및 시스템 Download PDFInfo
- Publication number
- WO2017142354A1 WO2017142354A1 PCT/KR2017/001790 KR2017001790W WO2017142354A1 WO 2017142354 A1 WO2017142354 A1 WO 2017142354A1 KR 2017001790 W KR2017001790 W KR 2017001790W WO 2017142354 A1 WO2017142354 A1 WO 2017142354A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image frame
- video
- gpu
- frame data
- fov
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 239000000872 buffer Substances 0.000 claims abstract description 75
- 230000004044 response Effects 0.000 claims abstract description 22
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000004891 communication Methods 0.000 claims description 31
- 238000009877 rendering Methods 0.000 claims description 31
- 230000008569 process Effects 0.000 claims description 19
- 238000006243 chemical reaction Methods 0.000 claims description 15
- 239000007788 liquid Substances 0.000 claims description 5
- 230000008859 change Effects 0.000 description 36
- 238000012805 post-processing Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000002156 mixing Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- BQSJTQLCZDPROO-UHFFFAOYSA-N febuxostat Chemical compound C1=C(C#N)C(OCC(C)C)=CC=C1C1=NC(C)=C(C(O)=O)S1 BQSJTQLCZDPROO-UHFFFAOYSA-N 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/194—Transmission of image signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/147—Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/391—Resolution modifying circuits, e.g. variable screen formats
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/111—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/161—Encoding, multiplexing or demultiplexing different image signal components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/698—Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2310/00—Command of the display device
- G09G2310/04—Partial updating of the display screen
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/045—Zooming at least part of an image, i.e. enlarging it or shrinking it
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2350/00—Solving problems of bandwidth in display systems
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2354/00—Aspects of interface with display user
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/18—Use of a frame buffer in a display terminal, inclusive of the display panel
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/022—Centralised management of display operation, e.g. in a server instead of locally
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Definitions
- the present invention relates to a system and method for virtual reality video streaming. More specifically, the present invention relates to a method and system for streaming and processing virtual reality video using a Graphic Processing Unit (GPU).
- GPU Graphic Processing Unit
- Virtual Reality (VR) video content generally has very high resolution to provide 360 degree video data.
- the 360 degree video data may include Ultra High Definition (UHD) video data having a Frame Per Second (FPS) of 30 to 60 and having a resolution of 4K (3840x1920) or more.
- UHD Ultra High Definition
- FPS Frame Per Second
- GPUs are specialized electronic circuits designed to quickly read and write memory to accelerate image generation in frame buffers for display output. Compared to central processing units (CPUs), GPUs can provide high speed real-time image processing at low power consumption (eg 25% of CPU) and low cost (eg $ 160 for GPUs with 768 cores as of 2016). . In addition, GPUs can provide parallel computing performance by utilizing multiple cores.
- the technical problem to be solved by the present invention is to provide a method and system for processing and streaming virtual reality video using a GPU.
- Another technical problem to be solved by the present invention is to provide a processing method for minimizing the encoding delay of the virtual reality video.
- Another technical problem to be solved by the present invention is to provide a method for effectively displaying virtual reality video at a client terminal.
- a virtual reality video streaming system includes a first processor, a first memory, a graphics processing unit (GPU), a second memory including a plurality of frame buffers, at least one of the first processor, or the GPU.
- a video server implemented by the first processor, wherein the video server obtains, by the first processor, source video data comprising a plurality of concrete image frame data from a video data source and converts the source video data into the first memory.
- the GPU In response to the first sphere image frame data being stored in a first frame buffer of the second memory, by the GPU, by the GPU to store the first sphere image frame data in the first sphere image.
- the first equirectangular tooth corresponding to the portion of the sphere image represented by the frame data Converted to whether the frame data, and the converted first encodes taenggyul multiple image frame data kwirek, and the encoded first may store taenggyul multiple image frame data kwirek the encoded frame buffer of the second memory.
- a streaming server implemented by at least one of the first processor or the GPU, the streaming server, by the first processor, establishes a first connection with a client terminal, the first Obtain the encoded first Equilegant image frame data from the encoded frame buffer of a second memory; and stream the encoded first Equiregular image frame data to the client terminal through the first connection.
- the streaming server by the first processor, establishes a first connection with a client terminal, the first Obtain the encoded first Equilegant image frame data from the encoded frame buffer of a second memory; and stream the encoded first Equiregular image frame data to the client terminal through the first connection.
- the video server and the streaming server may be executed in separate processes.
- further comprising a communication server implemented by at least one of the first processor or the GPU the communication server, by the first processor, establishes a second connection with the client terminal, Transmitting first information about a field of view (FOV) corresponding to first Equilegal tangential image frame data to the client terminal, receiving second information about a second FOV from the client terminal, and receiving the video server.
- the GPU may convert second sphere image frame data into second dichroic tangular image frame data corresponding to the second FOV of the sphere image represented by the second sphere image frame data.
- the communication server and the streaming server may be executed in a single process.
- the display apparatus of claim 4, wherein the first information about the first FOV and the second information about the second FOV may include viewing angle data indicating azimuth and pitch angles.
- a video processing method comprising: storing, by a GPU of a video server, first spherical image frame data representing a first spherical image frame of a video in a first frame buffer memory; Receiving, by a processor, first information about a first FOV from a client terminal, wherein the GPU of the video server indicates that the concrete image frame data represents the first concrete image frame data stored in the first buffer memory; Converting the first spherical image frame into first equalitangular image frame data corresponding to the first FOV and the GPU of the video server converting the converted first to generate first encoded image frame data.
- the method may include encoding one Equilegant image frame data.
- the GPU of the video server may further include parsing and decoding the video to generate the first sphere image frame data.
- the first information about the first FOV may include viewing angle data indicating azimuth and pitch angles.
- the converting to the first Equilegant image frame data may comprise: before the GPU starts converting the first Sphere image frame data to the first Equiregular image frame data. And determining that the 1 information has been received.
- the first processor of the video server receives second information regarding a second FOV from the client terminal, wherein the GPU of the video server is in the first specific image frame of the video.
- the GPU of the video server stores the first sphere image frame data in the first Equiregular.
- the video server In response to determining that the second information has been received between a time point after conversion to image frame data and a time point before storing the second concrete image frame data in the first frame buffer memory, (i) the video server The first sphere image frame data stored in the first frame buffer memory by the GPU of the first sphere Converting to second Equilegal tangular image frame data corresponding to the second FOV of the first spherical image frame indicated by the image frame data, and (ii) the GPU of the video server Encoding tangular image frame data into second encoded image frame data, and (iii) omitting conversion and encoding of the second specific image frame data stored in the first frame buffer memory.
- a computer program is executed by a GPU of a video server, where the GPU of the video server stores first concrete image frame data representing a first concrete image frame of a video in a first frame buffer memory. And receiving, by the first processor of the video server, first information regarding a first FOV from a client terminal, by the GPU of the video server, the first concrete image frame data stored in the first buffer memory. Converting the first image into the equivalent Equi- tangular image frame data corresponding to the first FOV of the first sphere image frame represented by the sphere image frame data, and the GPU of the video server converts the first encoded image frame. Encoding the transformed first Equiectangular image frame data to produce data. It may include a system.
- the GPU of the video server may be stored on a computer readable recording medium to execute the step of parsing and decoding the video to generate the first sphere image frame data.
- the first information about the first FOV may include viewing angle data indicating azimuth and pitch angles.
- the converting to the first Equilegant image frame data may comprise: before the GPU starts converting the first Sphere image frame data to the first Equiregular image frame data. And determining that the 1 information has been received.
- the first processor of the video server receives second information regarding a second FOV from the client terminal, wherein the GPU of the video server is in the first specific image frame of the video.
- the GPU of the video server stores the first sphere image frame data in the first Equiregular.
- the video server In response to determining that the second information has been received between a time point after conversion to image frame data and a time point before storing the second concrete image frame data in the first frame buffer memory, (i) the video server The first sphere image frame data stored in the first frame buffer memory by the GPU of the first sphere Converting to second Equilegal tangular image frame data corresponding to the second FOV of the first spherical image frame indicated by the image frame data, and (ii) the GPU of the video server Encoding tangular image frame data into second encoded image frame data, and (iii) omitting conversion and encoding of the second specific image frame data stored in the first frame buffer memory.
- a video display method comprising: receiving, by a first processor of a client terminal, first image frame data representing a first image frame of a video from a video streaming server, wherein the GPU of the client terminal is: Rendering a first area of the first image frame on a display of the client terminal having a size at least less than or equal to the size of the first image frame, in a first display area of the display, and displaying a second display of the display Rendering the remaining area of the first image frame hidden in an area and in response to the first processor of the client terminal receiving a user input pointing to a first FOV, the GPU of the client terminal causes the first FOV to be rendered.
- the hidden in the first image frame to may comprise the step of rendering the second region.
- the user input with respect to the first FOV may include viewing angle data indicating azimuth and pitch angles.
- the rendering of the second area of the first image frame may include: rendering, by the GPU of the client terminal, a rendering area of the display in the same shape as the first display area in the first display area. And relocating to a third display area that includes the second area of the first image frame.
- the first processor of the client terminal sends information indicating the first FOV to the video streaming server, wherein the first processor of the client terminal is configured to transmit the first from the video streaming server.
- the method may further include rendering a partial area of the second image frame and rendering the second area of the first image frame on the second display area of the display.
- the display is rectangular in shape
- the first display area of the display is rectangular in shape, positioned in the center of the display
- the second display area of the display is left margin, right margin of the display. It may include at least one of a top margin and a bottom margin.
- the first processor of the client terminal sends information indicating the first FOV to the video streaming server, wherein the first processor of the client terminal is configured to transmit the first from the video streaming server.
- Receiving second image frame data corresponding to an FOV and representing a second image frame of the video and the GPU of the client terminal moves the rendering area of the display from the third display area to the first display area;
- the method may further include relocating.
- a computer program is executed by a first processor or a GPU of a client terminal, wherein the first processor of the client terminal represents first image frame data representing a first image frame of video from a video streaming server.
- the GPU of the client terminal receives, the GPU of the client terminal, on the display of the client terminal having the same size or smaller size than the first image frame, the first area of the first image frame in the first display area of the display Rendering and rendering the remaining area of the first image frame hidden in a second display area of the display and in response to the first processor of the client terminal receiving a user input indicating a first FOV,
- the GPU of the client terminal is the first FOV
- the computer is located can be saved in a readable recording medium in order to execute the step of rendering the second area prior to the second frame, the first image display area on the hidden.
- the user input with respect to the first FOV may include viewing angle data indicating azimuth and pitch angles.
- the rendering of the second area of the first image frame may include: rendering, by the GPU of the client terminal, a rendering area of the display in the same shape as the first display area in the first display area. And relocating to a third display area that includes the second area of the first image frame.
- the first processor of the client terminal sends information indicating the first FOV to the video streaming server, wherein the first processor of the client terminal is configured to transmit the first from the video streaming server.
- the method may further include rendering a partial area of the second image frame and rendering the second area of the first image frame on the second display area of the display.
- the display is rectangular in shape
- the first display area of the display is rectangular in shape, positioned in the center of the display
- the second display area of the display is left margin, right margin of the display. It may include at least one of a top margin and a bottom margin.
- the first processor of the client terminal sends information indicating the first FOV to the video streaming server, wherein the first processor of the client terminal is configured to transmit the first from the video streaming server.
- Receiving second image frame data corresponding to an FOV and representing a second image frame of the video and the GPU of the client terminal moves the rendering area of the display from the third display area to the first display area;
- the method may further include relocating.
- the VR video streaming system can effectively utilize the computing power (e.g. parallel computing performance through multi-core) of the GPU when processing high-resolution VR video data.
- the cost of the streaming service can be reduced by transmitting only the video portion reflecting the FOV. This is because the provider of the streaming service needs to pay according to its network service usage.
- Partially streamed video data received as the FOV reflected video portion is transmitted may contain only a portion of the FOV reflected video that is dynamically changed, thereby preventing content of the video from being illegally copied.
- the client terminal can immediately provide the user with the video portion for the changed viewing angle without delay.
- FIG. 1 is a block diagram of a network environment including a client terminal and a VR video streaming system according to some embodiments of the invention.
- FIG. 2 is a block diagram illustrating a computing system in accordance with an embodiment of the present invention.
- FIG. 3 is a block diagram exemplarily illustrating a VR video streaming system according to an exemplary embodiment of the present invention.
- FIG. 4 is a diagram illustrating a frame image by way of example.
- FIG. 5 and 6 are flowcharts illustrating the operation of a FOV based post-processing method performed by a VR video streaming system, in accordance with some embodiments of the invention.
- FIG. 7, 8, and 9 are block diagrams illustrating an FOV based post-processing method performed in a VR video streaming system according to an embodiment of the present invention.
- FIGS. 10, 11 and 12 are block diagrams illustrating an FOV based post-processing method for reducing an encoding delay time in a VR video streaming system according to an embodiment of the present invention.
- FIG. 13 is a flowchart illustrating an operation of a video display method of a client terminal according to some embodiments of the present invention.
- 14, 15, and 16 are views illustrating a display screen of a client terminal displayed through a video display method in some embodiments of the present invention.
- a method and system for Virtual Reality (VR) video streaming More specifically, an invention is provided for a method and system for streaming and processing virtual reality video using a Graphic Processing Unit (GPU).
- the GPU of the video server included in the VR video streaming system may convert spherical image frame data into equirectangular image frame data corresponding to a portion of the first spherical image frame data. Can be.
- the VR video streaming system can effectively utilize the computing power of the GPU (e.g. parallel computing performance through multiple cores) when processing high resolution VR video data.
- the processor of the video server may receive information regarding a first field of view (FOV) from a client terminal, and the GPU of the video server may retrieve the first sphere image frame data from the first sphere image frame. It may be converted to the first Equilegal tangular image frame data corresponding to the first FOV of.
- the first sphere image frame refers to an image frame indicated by the first sphere image frame data.
- the GPU of the client terminal renders the first area of the image frame received from the video streaming server to the first display area of the display (eg, the center area of the display), while the remaining area of the image frame. Is hidden in the second display area of the display (eg the four-way margin of the rectangular display).
- the GPU In response to receiving input from a user pointing to a particular field of view (eg, viewing angle towards the upper left corner of the display), the GPU is previously hidden in the second display area and the first field of view (eg previously hidden near the top left corner of the display). The second area of the first image frame located within the area).
- the client terminal can immediately show a portion of the image frame previously hidden. Accordingly, the client terminal can immediately provide the user with the video portion of the changed viewing angle without the delay that may occur when providing a new video portion of the changed viewing angle after receiving the new video portion from the video streaming server.
- FIG. 1 is a block diagram illustrating a network environment 1000 including a VR video streaming system 100, client terminals 200A and 200B, and a VR content server 750.
- the network environment shown in FIG. 1 is a network (e.g., client terminal and VR video system) interconnected with network 650 for interconnected network nodes (eg VR video system and VR content server). 650 ').
- network 650 is the same network as network 650 ′.
- a network 650 or 650 ′ is used to facilitate interaction between devices participating in the network environment 1000.
- An illustrative example network 650 or 650 ′ is the Internet.
- the network 650 may be various kinds of networks, such as a local network in a data center, a network febric or other local area or wide area network.
- the network 650 or 650 ′ may consist of multiple connected sub-networks or autonomous networks.
- the network 650 or 650 ′ may be a local area network (LAN) such as an enterprise intranet, a metropolitan area network (MAN), a wide area network (WAN), or an inter-network network such as the Internet, or peer-to-peer. to-Peer network (eg an ad hoc WiFi P2P network). Any type and / or form of data network and / or communication network may be used for the network 650 or 650 ′.
- LAN local area network
- MAN metropolitan area network
- WAN wide area network
- inter-network network such as the Internet
- peer-to-peer. to-Peer network eg an ad hoc WiFi P2P network.
- the network 650 or 650 ' may be a public network, a private network, or a combination of public and private networks.
- a network 650 or 650 ′ is used to transfer information between computing devices. For example, it may be used to transfer information between client terminals 200A, 200B, VR video streaming system 100, and VR content server 750.
- the VR video streaming system 100 includes a video server 120 and a streamer 180.
- video server 120 stores VR video data locally (e.g. as a video file) or receives video data streamed from VR content server 750.
- the streamer 180 includes a communication server 130 and a streaming server 140.
- the communication server 130 communicates information (eg user login, VR video content selection, low latency video streaming, etc.) with each of the client terminals 200A, 200B about the service of the VR video streaming system 100. do.
- streaming server 140 streams VR video frame data to each client terminal 200A, 200B.
- the VR video streaming system 100 has a configuration similar to the computing system 300 shown in FIG. 2. Computing system 300 is described in more detail below with reference to FIG. In some embodiments of the VR video streaming system 100 shown in FIG. 1, some of the components of the computing system 300 shown in FIG. 2 may be omitted.
- each client terminal 200A, 200B receives video streaming data from the VR video streaming system 100.
- the video streaming data may be received from the streaming server 140 of the streamer 180.
- each of the client terminals 200A, 200B has a display (eg Head Mounted Display (HMD), optical HMD), an input device (eg camera, headset) and sensors (eg motion sensor, position / direction sensor, motion). Simulator, gesture tracking system, etc.).
- each of client terminals 200A, 200B may also communicate with communication server 130 to exchange information about services of VR video streaming system 100.
- each of the client terminals 200A and 200B may provide the communication server 130 with the user's current FOV in the form of viewing angle data indicating azimuth and pitch angles.
- client terminals 200A and 200B have a configuration similar to computing system 300 shown in FIG. 2.
- client terminals 200A and 200B shown in FIG. 1 some of the components of computing system 300 shown in FIG. 2 may be omitted.
- computing system 300 is suitable for use in implementing the computerized components described herein.
- computing system 300 includes at least one processor 310 for performing operations in accordance with an instruction and one or more memory devices 360 or 320 for storing instructions and data.
- Computing system 300 also includes at least one Graphic Processing Unit (GPU) and video memory 380 as described in the next section.
- GPU Graphic Processing Unit
- the illustrated computing system 300 is a network for connecting to one or more processors 310, a network (not shown) that communicates with the memory 350 via a communication system 340 (eg, a bus).
- a communication system 340 eg, a bus
- At least one network interface controller 330 having an interface port and other components such as an input / output (I / O) component 350.
- processor (s) 310 will execute instructions (or computer programs) received from memory 360.
- the illustrated processor 310 includes or is directly connected to the cache memory 320. In some cases, the cache memory 320 reads instructions from the memory 360, and the processor 310 reads the instructions from the cache memory 320 and executes the instructions.
- processor (s) 310 may be any logic circuit that processes instructions fetched from memory 360 or cache memory 320, for example.
- processor 310 is a microprocessor unit or special purpose processor.
- Computing system 300 may be based on any processor or set of processors that may operate as described herein.
- Processor (s) 310 may be a single core or a multi core processor.
- Processor (s) 310 may be a number of separate processors.
- Memory 360 may be any device suitable for storing computer readable data.
- the memory 360 may be a fixed storage device or a device for reading a removable storage medium.
- Examples of memory 360 include all forms of nonvolatile memory, media and memory devices, semiconductor memory devices (eg EPROM, EEPROM, SDRAM and flash memory devices), magnetic disks, magneto-optical disks and optical disks (eg CD ROM, DVD). -ROM or Blu-ray Disc).
- Computing system 300 may have any number of memory devices 360.
- Cache memory 320 is generally in the form of computer memory disposed proximate processor (s) 310 to provide fast access times.
- cache memory 320 may be part of processor (s) 310 or on the same chip as processor 310.
- the network interface controller 330 manages data exchange over a network interface (sometimes called a network interface port).
- the network interface controller 330 processes the physical layer and data link layer of the OSI model for network communication.
- some of the tasks of network interface controller 330 are handled by one or more processor (s) 310.
- network interface controller 330 may be part of processor 310.
- computing system 300 has multiple network interfaces controlled by a single controller 330.
- computing system 300 has multiple network interface controllers 330.
- each network interface is a connection point to a physical network link (e.g. cat-5 Ethernet link).
- network interface controller 330 supports a wireless network connection and the network interface port is a wireless (eg radio) transmitter / receiver (eg IEEE 802.11 protocol, Near Field Communication (NFC), Bluetooth, ANT or For any of the other wireless protocols).
- network interface controller 330 implements one or more network protocols, such as Ethernet.
- computing system 300 exchanges data with other computing devices over a physical or wireless link by using a network interface.
- the network interface may connect the computing system 300 directly to another device or connect the computing system 300 to another device through a relay device.
- the relay device may refer to a network device that connects the computing system 300 to a data network such as the Internet, for example, a hub, a bridge, a switch, or a router.
- Computing system 300 may include or provide an interface to one or more input or output (I / O) devices.
- I / O input or output
- Input devices may include, but are not limited to, keyboards, microphones, touch screens, foot pedals, sensors, MIDI devices, and pointing devices such as mice or trackballs.
- Output devices may include, but are not limited to, video displays, speakers, playable braille terminals, lighting, MIDI devices, and 2-D or 3-D printers.
- computing system 300 may include an interface (e.g. Universal Serial Bus (USB) interface) for connecting an input device, an output device or an additional memory device (e.g. portable flash drive or external media drive).
- interface e.g. Universal Serial Bus (USB) interface
- additional memory device e.g. portable flash drive or external media drive.
- computing system 300 may include additional devices, such as a coprocessor.
- computing system 300 may include a numerically operational coprocessor, which may assist processor 310 by performing high precision or complex calculations.
- GPU 370 may be a graphics accelerator chip, a processor, an application specific integrated circuit (ASIC), an analog circuit, a digital circuit, an accelerator card, or a combination thereof.
- GPU 370 may be a personal computer graphics accelerator card or component such as manufactured by nVidia, ATI or Matrox.
- the GPU 370 provides a hardware device for accelerating a volume rendering process, such as using an application programming interface (API) for 3D texture mapping.
- APIs include OpenGL and DirectX, but other APIs may be used independently of or in conjunction with GPU 370.
- Exemplary APIs for nVidia GPUs are described in a web document titled "CUDA Toolkit Documentation v.
- GPU 370 may transform, project and map to computer graphics (eg, spherical projection and coordinate system). To perform the transformation).
- the video memory 380 includes a video random access memory (VRAM), a random access memory (RAM), a RAM drive or a RAM disk, or another memory device for storing data or video information.
- video memory 380 is a VRAM for GPU 370.
- the driver or memory driver for the GPU 370 controls data storage by the video memory 380.
- Video memory 380 responds to the driver to store, transmit, and retrieve data.
- Video memory 380 may be operable to store a subset or block of data.
- the VR video streaming system 100 includes a first processor 101, a first memory 110, a GPU 102, and a second memory 150.
- the second memory 150 may include a plurality of frame buffers such as the decoded frame buffer 160, the first frame buffer 161, the second frame buffer 162, and the encoded frame buffer 164.
- the first processor 101 has a configuration similar to the processor 310 shown in FIG. 2.
- GPU 102 has a configuration similar to GPU 370 of FIG. 2.
- first memory 110 has a configuration similar to memory 360 shown in FIG. 2.
- the second memory 150 has a configuration similar to the video memory 380 shown in FIG. 2.
- the VR video streaming system 100 includes a source video memory 115 that may reside in the first memory 110 or the second memory 150.
- video server 120 may be executed or implemented by first processor 101 or GPU 102.
- the video server 120 may obtain source video data (eg, a video file stored locally of the video server 120 or video data streamed from the VR content server 750) through the first processor 101.
- the source video data includes a plurality of concrete image frame data (e.g. 360 degree 4K UHD frame data).
- video server 120 may store the source video data in source video memory 115.
- video server 120 may include a parser 121, a decoder 122, a post-processor 123, and an encoder 124 that may be executed or implemented by GPU 102. , encoder).
- parser 121 parses source video data stored in source video memory 115 via GPU 102 and identifies different concrete image frames from the source video data.
- decoder 122 decodes the parsed concrete image frames through GPU 102 and stores the decoded concrete image frames in decoded frame buffer 160.
- decoder 122 and encoder 124 may use an industry standard compression / decompression technique such as H.264, H.265 / High Efficiency Video Coding (HEVC).
- HEVC High Efficiency Video Coding
- decoder 122 decodes the first specific image frame data and stores the decoded data in decoded frame buffer 160.
- An example decoder is described in a document entitled “NVIDIA VIDEO DECODER (NVCUVID) INTERFACE Programming Guide” in November 2015. For details on how to configure the decoder to achieve the decoding functionality described in this patent application, see Incorporated herein by reference.
- postprocessor 123 performs color format conversion.
- the post processor 123 may convert frame data stored in the decoded frame buffer 160 from a luminance / chrominance format to an alpha red green blue (ARGB) color format.
- the post processor 123 stores the color format converted frame data in the first frame buffer 161.
- postprocessor 123 performs sphere-equiectangular transformation (using an e.g. sphere / equiectangular projection or mapping method) via GPU 102.
- sphere-equiectangular transformation using an e.g. sphere / equiectangular projection or mapping method
- Exemplary sphere / equiectangular projections are described in a document entitled "Transformations and projections" by Paul Bourke, for details of the projection, transformation, and mapping methods described in this patent application Included as.
- the postprocessor 123 in response to the first concrete image frame data being stored in the first frame buffer 161, the postprocessor 123 may be configured to display the first concrete image frame data via the GPU 102 in a first equalizing manner. To convert the image frame data.
- the post processor 123 converts the 360 degree 4K UHD image frame data through the GPU 102 to the corrected or undistorted Iquiretangular image frame data.
- the post processor 123 uses the GPU 102 to map the first sphere image frame data (eg 360 degrees 4K UHD image frame data) to a portion of the sphere image represented by the first sphere image frame data. 1 is converted to Equilegal tangular image frame data (eg, a portion of 360 degree 4K UHD image frame data corresponding to the current FOV of the user in the client terminal).
- 4 illustratively shows a sphere frame image 301 and a portion 302 of the sphere frame image 301 that corresponds to the current FOV.
- postprocessor 123 performs image processing for Augmented Reality (AR) via GPU 102.
- the post processor 123 may combine the converted first Equilegant image frame with graphic content (eg blending road image with vehicle image) or text / graphic information (eg blending street image with store image). Blending can be performed.
- the post-processor 123 in response to the completion of the post-processing operation (e.g. spherical-equiectural conversion), stores the post-processed frame data in the second frame buffer 162.
- encoder 124 encodes the post-processed frame data stored in second frame buffer 162 via GPU 102 and stores the encoded frame data in encoded frame buffer 164. .
- parser 121, decoder 122, postprocessor 123 and encoder 124 are executed by GPU 102 of VR video streaming system 100.
- some operations of parser 121, decoder 122, postprocessor 123, and encoder 124 are executed by first processor 101, and other operations are executed by GPU 102. do.
- the VR video streaming system 100 includes a communication server 130.
- the communication server 130 may be executed or implemented by at least one of the first processor 101 or the GPU 102.
- the communication server 130 establishes a connection with the client terminal (e.g. client terminal 200A) via the first processor 101.
- the established connection uses a full-duplex channel protocol, such as, for example, a web socket protocol. By doing so, latency can be reduced because the connection can be established using a few frames (e.g. web socket frames) without communicating a large amount of protocol headers (e.g. http headers).
- the communication server 130 may transmit, to the client terminal, first information about the first FOV corresponding to the first Equiectangular image frame data converted by the post processor 123.
- the communication server 130 may receive second information regarding a second FOV (e.g. current FOV of the user of the client terminal) from the client terminal.
- the initial FOV may be set by default to an angle that points straight to the center of the image frame the user is currently viewing.
- the information about the FOV includes viewing angle information indicating pitch angles and azimuth angles.
- upon request of a client terminal via e.g.
- communication server 130 may asynchronously update the user's current FOV via first processor 101.
- the update is performed while the GPU 102 processes operations of the video server 120 (eg, operations performed by the parser 121, the decoder 122, the postprocessor 123, and the encoder 124).
- asynchronously updated FOVs may be utilized to reduce encoding latency as described below with reference to FIGS. 4-6.
- the video server 120 immediately transfers the spherical image frame data through the GPU 102 into the Equiectangular spherical image frame data corresponding to the FOV asynchronously updated in the spherical image represented by the spherical image frame data.
- the client terminal may update the communication server with respect to the current viewing angle of the user of the client terminal using a stable connection method (e.g. jetty based web socket protocol) with the communication server 130. Doing so can provide a constant connection state and reduce security overhead and latency.
- a stable connection method e.g. jetty based web socket protocol
- the client terminal may request specific VR image / video data from the communication server 130.
- the client terminal may transmit a VR image request to the communication server 130 through the web socket protocol.
- the communication server 130 is stored by the VR content server 750 or stored in the source video data (eg local file) corresponding to the request via the first processor 101. Streamed source video data) and provide the corresponding source video data to the GPU 102.
- GPU 102 may perform the above-described decoding / post-processing / encoding operations on the corresponding source video data.
- the communication server 130 may provide a web service for managing a service of the VR video streaming system 100 (eg, user login and credential check management, user for the service).
- VR video content listing for account / profile management and allowing users to select the video content to watch.
- the VR video streaming system 100 may include a streaming server 140.
- the streaming server 140 may be executed or implemented by at least one of the first processor 101 or the GPU 102.
- the streaming server 140 establishes a first connection with the client terminal (e.g. client terminal 200A) via the first processor 101.
- the streaming server 140 uses a Real Time Streaming Protocol (RTSP) to deliver video data to the user of the client terminal in a timely manner.
- RTSP Real Time Streaming Protocol
- the streaming server 140 reads the encoded first Equiectangular image frame data from the encoded frame buffer 164 and concatenates the encoded first Equiectangular image frame data to a first concatenation. Streaming to the client terminal 200A through.
- video server 120 and streaming server 140 run as separate processes.
- communication server 130 streaming server 140 may be configured to run as a single process.
- communication server 130 interacts directly with the client terminal via a web socket protocol and runs on the same physical server as video server 120. By doing so, feedback and communication delay time can be reduced.
- streaming server 140 and communication server 130 (collectively "streamer" 180) run in the same single process, while video server 120 is started by streamer 180. Run as a separate process that can be managed and managed. This dual process configuration can improve network responsiveness (by reducing latency) and system stability.
- streaming server 140 and video server 120 may share video stream data (finally provided to a client terminal) via a RAM drive or RAM disk.
- RAM drives or RAM disks can be accessed as files while the actual data is in system RAM, eliminating hardware I / O overhead and latency.
- the FOV based post-processing method 400 begins at step 410, where the GPU of the video server (eg GPU 102 of FIG. 3) is configured to generate the source video to generate the first sphere image frame data. Parse and decode
- the GPU 102 may store first concrete image frame data representing a first concrete image frame of the video in a first frame buffer memory (eg, the first frame buffer 161).
- the first processor eg, the processor 101 of FIG. 3 of the video server may receive first information regarding the first FOV from the client terminal.
- the GPU 102 of the video server may convert the spherical image frame data stored in the first frame buffer memory into the equivalent liquid image data corresponding to the first FOV of the first spherical image frame. .
- the GPU 102 of the video server may stream only the encoded Equiectangular image frame data corresponding to the first FOV by the streaming server (eg, the streaming server 140 of FIG. 3) to the client terminal.
- the converted Equilegant image frame data may be encoded so that it can be encoded.
- encoded image frame data is generated according to the encoding. The flowchart shown in FIG. 5 will be described in more detail with reference to FIGS. 7 to 9.
- FIG. 7 is block diagrams illustrating an FOV based post-processing method performed in an exemplary VR video streaming system.
- 7 illustratively illustrates the timing of GPU processing for successive video frames (e.g. frame #N, frame # N + 1, and frame # N + 2).
- a typical video file's FPS is usually 24, 25, 29, or 30 frames per second.
- the time interval between completion of encoding of each frame may be 33ms
- the time stamp of frame #N from the decoder is N * 33ms days.
- the time stamp of frame # N + 1 may be (N + 1) * 33ms and so on.
- the time interval between completion of decoding / post-processing / encoding of frame #N 501 and frame # N + 1 502 is 33ms
- frame # N + 1 502 and The time interval between completion of decoding / post-processing / encoding of frame # N + 2 503 is also 33ms.
- each frame is encoded every 33ms to generate (and stream) 30 frames per second.
- FIG. 8 illustrates an example in which an FOV based post-processing method is performed when a FOV change input (e.g. azimuth and pitch angle) is received from a client terminal before post-processing frame #N.
- the GPU decodes (511) / post-processes 513 / encodes 514 frame #N, and then decodes 515 / post-processes 516 frame # N + 1. / Encode 518.
- a first FOV (relative to a first FOV) from the client terminal before the processor of the VR video streaming system 100 (eg, processor 101 of FIG. 3) postprocesses 513 frame #N.
- the GPU may reflect 517 the first FOV change input V1 during postprocessing 516 of frame # N + 1.
- the GPU converts the spherical image data associated with frame # N + 1 into the equivalent liquid image data corresponding to the first FOV of the spherical image frame represented by the spherical image frame data of frame # N + 1.
- the first FOV change input V1 may be reflected.
- the time interval between encoding completion of frame #N and encoding completion of frame # N + 1 may be maintained at 33 ms.
- FIG. 9 illustrates another example in which the FOV based post-processing method is performed when a FOV change input (e.g. changed azimuth and pitch angle) is received from a client terminal during post-processing of frame #N.
- a FOV change input e.g. changed azimuth and pitch angle
- the GPU decodes 521 / post-processes 523 / encodes 524 the frame #N, and then decodes 525 / post-processes 526 the frame # N + 1. Decode 528.
- the processor of the VR video streaming system 100 when the processor of the VR video streaming system 100 receives 522 a second FOV change input V2 (relative to a second FOV) from a client terminal after post-processing 523 of the frame #N, the The GPU reflects 527 the second FOV change input V2 during post-processing 526 of frame # N + 1.
- the GPU converts the spherical image data associated with frame # N + 1 into the equivalent liquid image data corresponding to the second FOV of the spherical image frame represented by the spherical image frame data of frame # N + 1.
- the second FOV change input V2 may be reflected.
- the time interval between encoding completion of frame #N and encoding completion of frame # N + 1 may be maintained at 33 ms.
- step 410 the GPU (eg GPU 102 shown in FIG. 3) of the video server (eg, video server 120 shown in FIG. 3) parses the source video to generate first concrete image frame data. And decode. For example, referring to FIG. 8, the GPU parses and decodes frame #N 511 to generate concrete image frame data for frame #N.
- the GPU of the video server stores the first concrete image frame data representing the first concrete image frame of the source video in a first frame buffer memory (eg, the first frame buffer 161 shown in FIG. 3). Can be stored in
- the GPU next reads the first concrete image frame data from the first frame buffer 161 and post-processes the first concrete image frame data. For example, referring to FIG. 8, the GPU reads the spherical image frame data for frame #N from the first frame buffer 161 and post-processes the first spherical image frame data for frame #N (513). do. Similarly, referring to FIG. 9, the GPU reads the spherical image frame data for frame #N from the first frame buffer 161 and post-processes 523 the first spherical image frame data for frame #N. do.
- the first processor 101 of the video server may receive first information about the first FOV from the client terminal (eg, the client terminal 200A illustrated in FIGS. 1 and 3). For example, referring to FIG. 8, the first processor receives the first FOV change input V1 512 from the client terminal before postprocessing 513 the frame #N. Similarly, referring to FIG. 9, the first processor 101 receives a second FOV change input V2 522 during or after post processing 523 frame #N from the client terminal. In some embodiments, the client terminal sends a FOV change input including viewing angle data indicating azimuth and pitch angles to the VR video streaming system (e.g. VR video streaming system 100 shown in FIGS. 1 and 3).
- the VR video streaming system e.g. VR video streaming system 100 shown in FIGS. 1 and 3
- the GPU 102 of the video server may display the spherical image frame data stored in the first frame buffer memory corresponding to the first FOV of the first spherical image frame represented by the spherical image frame data. Can be converted to frame data.
- the GPU of the video server may convert the spherical image frame data of frame # N + 1 (during post-processing 516) of frame # N + 1 corresponding to the first change input FOV V1. Convert to Equilegal tangential image frame data (to reflect the first FOV change input V1 in the spherical image frame data for frame # N + 1).
- FIG. 1 the GPU of the video server may convert the spherical image frame data of frame # N + 1 (during post-processing 516) of frame # N + 1 corresponding to the first change input FOV V1. Convert to Equilegal tangential image frame data (to reflect the first FOV change input V1 in the spherical image frame data for frame # N + 1).
- FIG. 1 the GPU of the
- the GPU of the video server sends the spherical image frame data of frame # N + 1 (during post-processing 526) to the equals of frame # N + 1 corresponding to a second FOV V2. Convert to Tangential image frame data (to reflect the second FOV change input V2 in the spherical image frame data for frame # N + 1).
- the modified operation of step 450 for reducing the encoding delay time will be described in more detail later with reference to FIGS. 6 and 10 to 12.
- the GPU 102 of the video server may convert the converted Equi-Lectangular image frame data so that the streaming server may stream only the encoded Equi-Lectangular image frame data corresponding to the first FOV to the client terminal.
- encoded image frame data can be generated.
- the GPU of the video server encodes 518 the converted Equiectangular image frame data for frame # N + 1 to encode encoded image frame data for frame # N + 1.
- the GPU of the video server encodes 528 the converted Equiectangular image frame data for frame # N + 1 to obtain encoded image frame data for frame # N + 1.
- FIG. 6 illustrates an FOV based post-processing method (eg, modified operation of step 450 shown in FIG. 6 to reduce encoding delay time) performed by the VR video streaming system 100 according to some embodiments of the invention.
- step 452 in response to determining that the first FOV information has been received from the client terminal, before the GPU starts converting the first concrete image frame data into the first equal-equaltangular image frame data, the GPU The first spherical image frame data may be converted into first equal-equaltangular image frame data corresponding to the first FOV of the first spherical image frame indicated by the first spherical image frame data.
- step 453 in response to determining that the first information about the first FOV has been received after the GPU begins converting the first concrete image frame data to the first Equilegant Tangular Image Frame data, the video server 120 further determines whether first FOV information has been received before the GPU stores second sphere image frame data (eg sphere image frame data subsequent to the first sphere image frame data) in a first frame buffer memory. can do.
- step 454 in response to determining that the first FOV information was received before the GPU stores the second sphere image frame data in the first frame buffer memory, the GPU sends the first sphere stored in the first frame buffer memory.
- the GPU may omit the conversion and encoding of the second concrete image frame data stored in the first frame buffer memory.
- FIG. 10 is block diagrams illustrating an FOV based post-processing method performed to reduce encoding delay time in an exemplary VR video streaming system.
- the GPU decodes frame #N (601) / converts spherical image frame data for frame #N to Equilegant image frame data (604) / encodes frame #N ( 606), and then decode 607, etc., frame # N + 1.
- the processor of video streaming system 100 eg, processor 101 shown in FIG. 3
- the GPU may then reflect the third FOV change input V3 during transform 604 of frame #N.
- the GPU may convert sphere image frame data associated with frame #N into a sphere of frame #N.
- the third FOV change input V3 may be reflected (605) by converting to the Equilegal regular image frame data corresponding to the third FOV of the concrete image frame indicated by the image frame data.
- the GPU decodes frame #N (610) / converts concrete image frame data of frame #N into equalitangular frame data (612) / encodes frame #N (615).
- the frame # N + 1 is decoded 617.
- a processor of video streaming system 100 receives a fourth FOV change input V4 (relative to a fourth FOV) from the client terminal during or after transforming frame #N (612) (613)
- the GPU may reflect 614 ′ a fourth FOV change input in a transform 614 and encoding 616 step for frame # N + 1.
- the GPU instead of waiting for decoding 617 for frame # N + 1 to complete, the GPU immediately uses frame #N stored in first frame buffer 161 for frame #N.
- the spherical image frame data may be converted into Equilegant tangential frame data corresponding to the fourth FOV of the spherical image frame indicated by the spherical image frame data for the frame #N.
- the GPU may encode 616 the converted Equilegant image for encoded frame # N + 1.
- the GPU may omit (eg not perform) further processing of frame # N + 1 (eg, conversion and encoding of frame # N + 1). (619).
- the encoded frame # N + 1 is already available (to be available) from other transform 614 and encoding 616 operations.
- the time interval between the completion of encoding of frame #N and the completion of encoding of frame # N + 1 may be less than 33 ms random time, thereby reducing the time required to encode the frame.
- the GPU decodes frame #N (620) / converts concrete image frame data of frame #N into equalitangular frame data (622) / encodes frame #N (623)
- frame 624 is decoded 624.
- the processor of video streaming system 100 receives a fifth FOV change input V5 (relative to a fifth FOV) from the client terminal during or after decoding (624) frame # N + 1 (625).
- the GPU may reflect 627 the fifth FOV change input in the transform 626 and encoding 628 step for the frame # N + 1.
- the GPU instead of waiting for decoding 624 for frame # N + 1 to complete, the GPU immediately uses frame #N stored in first frame buffer 161 for frame #N.
- the spherical image frame data may be converted into Equilegant frame data corresponding to a fifth FOV of the spherical image frame represented by the spherical image frame data of the frame #N (626).
- the GPU may then encode 628 the transformed Equilegant image for encoded frame # N + 1.
- the GPU may omit (eg not perform) further processing of frame # N + 1 (eg, conversion and encoding of frame # N + 1). 630. This is because the encoded frame # N + 1 is already available (to be available) from other transform 626 and encoding 628 operations. In this way, the time interval between the completion of encoding of frame #N and the completion of encoding of frame # N + 1 may be less than 33 ms random time, thereby reducing the time required to encode the frame.
- the first processor 101 or the GPU 102 may determine that the client before the GPU starts converting the first sphere image frame data into the first equilinear tangential image frame data. It may be determined whether first information regarding the first FOV is received from the terminal. For example, referring to FIG. 10, the first processor 101 or the GPU 102 may determine that the GPU 102 converts the spherical image frame data of the frame #N into the Equiectangular image frame data of the frame #N ( It is determined that the third FOV change input V3 has been received before beginning 604. On the other hand, referring to FIG. 11, the first processor 101 or the GPU 102 allows the GPU 102 to convert the spherical image frame data of frame #N into the Equilegant image frame data of frame #N ( 612, it determines that a fourth FOV change input V4 has been received.
- the GPU of the video server may include a first FOV of the first sphere image frame in which the first sphere image frame data represents the first sphere image frame data stored in the first frame buffer memory (eg, the frame buffer 161 shown in FIG. 3). It may be converted to the first Equiectangular image frame data corresponding to the. For example, referring to FIG. 10, before the GPU initiates conversion 604 of spherical image frame data for frame #N to Equilegant image frame data for frame #N, a third FOV change input.
- the GPU converts the spherical image frame data for frame #N into the Equiectangular image frame data of frame #N corresponding to the third FOV change input V3 (third FOV change). Input V3 to be reflected 605 in the spherical image frame data for frame #N).
- the GPU of the video server decodes the second sphere image frame data representing the second sphere image frame of the video following the first sphere image frame, and decodes the second sphere image frame data into the first sphere. It may be stored in the frame buffer (eg, the first frame buffer 161 of FIG. 3). For example, referring to FIG. 11, the GPU of the video server decodes frame # N + 1 (next frame of frame #N), and first outputs spherical image frame data representing the decoded frame # N + 1.
- the frame buffer 161 is stored.
- the GPU of the first processor 101 or the video server may determine that the first FOV information has been received before the GPU stores the second concrete image frame data in the first frame buffer memory.
- step 454 in response to determining that the first information regarding the first FOV has been received before the GPU of the video server stores the second sphere image frame data in the first frame buffer memory, the GPU of the video server
- the first spherical image frame data stored in the first frame buffer memory may be converted into second dichroic tangular image frame data corresponding to the second FOV of the first spherical image frame represented by the first spherical image frame data.
- the fourth FOV change input V4 is received before the GPU of the video server stores the spherical image frame data for frame # N + 1 in the first frame buffer 161, the fourth FOV change input V4 is received.
- the GPU converts the spherical image frame data for frame #N stored in the first frame buffer 161 into the equivalent liquid image data corresponding to the fourth FOV change input V4 at the time of transform 614 ( 614) (for the fourth FOV change input V4 to be reflected 614 ′ in the spherical image frame data for frame #N).
- the GPU in response to determining that a fifth FOV change input V5 has been received before the GPU stores concrete image frame data for frame # N + 1 in the first frame buffer 161, The GPU converts 626 the spherical image frame data for frame #N stored in the first frame buffer 161 into Equilegant image frame data corresponding to the fifth FOV change input V5 at the time of conversion 626.
- the streaming server (eg streaming server 140 shown in FIG. 3) is the encoded second image corresponding to the current FOV.
- the GPU may encode the converted equilegant image frame data into second encoded image frame data so as to stream only the Quirectural image frame data to the client terminal.
- the GPU converts the converted Equiectangular image frame data to the encoded image for frame # N + 1.
- the frame data is encoded (616).
- the GPU converts the converted Equilegant image frame data to an encoded image frame for frame # N + 1.
- the data is encoded (628).
- the GPU may omit the conversion and encoding on the second concrete image frame data stored in the first frame buffer memory. For example, referring to FIG. 11, after decoding 617 of frame # N + 1, the GPU no longer converts the spherical image frame data for frame # N + 1 stored in the first frame buffer 161. And do not encode. This is because the encoded frame # N + 1 is already available (to be available) from other transform 614 and encoding 616 operations. Similarly, referring to FIG. 12, after decoding 624 of frame # N + 1, the GPU is no longer capable of converting the spherical image frame data for frame # N + 1 stored in the first frame buffer 161. Do not encode. This is because the encoded frame # N + 1 is already available (to be available) from other transform 626 and encoding 628 operations.
- the video display method 700 begins at step 710, where the GPU (eg, the GPU shown in FIG. 2) of the client terminal (eg, client terminal 200A shown in FIGS. 1 and 3). 370) may render the first area of the first image frame on the first display area of the display, and render the remaining area of the first image frame on the second display area of the display in a hidden state.
- the GPU eg, the GPU shown in FIG. 2
- the GPU of the client terminal may previously displayed in the second display area.
- the processor of the client terminal may transmit information indicating the first FOV to a video streaming server (eg, the streamer 180 illustrated in FIG. 3).
- the second image frame data corresponding to the first FOV may be received from the server.
- the GPU in response to receiving second image frame data representing a second image frame of video from the video streaming server, the GPU replaces a portion of the second image frame with the first display area of the display. Render and render the hidden second area of the first image frame in the second display area of the display.
- FIGS. 1-3 and 14-16 are views illustrating a display screen of a client terminal displayed through a video display method according to some embodiments of the present invention.
- the GPU of the client terminal (eg, client terminal 200A shown in Figs. 1 and 3) (eg, GPU 370 shown in Fig. 2) is connected to a video streaming server (eg, shown in Fig. 3).
- the trimmer 180 may receive first image frame data representing the first image frame of the video.
- the GPU of the client terminal (eg, the GPU 370 illustrated in FIG. 2) places the first region of the first image frame on the first display region 810 of the display 800 of the client terminal.
- the display device may render the remaining area of the first image frame in a hidden state in the second display area 820 of the display.
- the display 800 of the client terminal may be at least the same size or smaller than the first image frame.
- display 800 may be rectangular in shape. In some embodiments, display 800 may be of other shapes, such as, for example, a circle shape, a polygon shape.
- the first display area 810 may be a rectangular shape area positioned in the center of the rectangular display 800.
- the second display area 820 of the display may include at least one of the left margin, the right margin, the top margin, and the bottom margin of the rectangular display 800.
- step 720 in response to the user's input pointing to a first FOV (not shown) being received by the processor of the client terminal (eg, processor 310 shown in FIG. 2),
- the GPU of the client terminal may render the second area 825 of the first image frame that is hidden in the second display area 820 and located in the first FOV.
- the user of the client terminal changes his viewing angle in the direction 830, whereby the changed viewing angle points to the first FOV.
- the client terminal can detect this change in viewing angle and provide an FOV change input to the GPU of the client terminal to render the second region 825 previously hidden by the GPU. have.
- the GPU of the client terminal when rendering the second region 825 of the first image frame, displays the rendering region of the display 800 in the third display region 810 (see FIG. 14). May be relocated to an area 840 (see FIG. 15).
- the third display area 840 may have the same shape as the first display area 810 and may include the second display area 825 of the first image frame.
- the processor of the client terminal may transmit information indicating the first FOV to the video streaming server (e.g. streamer 180 shown in FIG. 3).
- the processor of the client terminal may receive second image frame data corresponding to a first FOV from the video streaming server.
- the processor of the client terminal may receive second image frame data indicating a second image frame of video from the video streaming server and corresponding to the first FOV.
- the processor of the client terminal may also receive corrected FOV information of second image frame data from the video streaming server.
- the GPU renders a partial region of the second image frame on the first display region 810 of the display 800, and the second display region 820 of the display 800. ) May render the hidden second area of the first image frame.
- the GPU of the client terminal may rearrange the rendering area of the display from the third display area 840 (see FIG. 15) to the first display area 810 located at the center of the display. Repositioning the display area to the center of the display following the immediate rendering of the previously hidden display area 825 (see FIG. 15) is performed by the user of the client terminal in the third display area 840 in step 720.
- a difference between the frame image and the frame image rendered in the first display area 810 may not be recognized.
- the VR video streaming system can provide the following advantages.
- First, the VR video streaming system can effectively utilize the computing power of the GPU (e.g. parallel computing performance through multi-core) when processing high-resolution VR video data.
- Third, only the video portion reflecting the FOV can improve not only the user experience but also the streaming cost.
- the cost of the streaming service can also be reduced by transmitting only the video portion reflecting the FOV. This is because the provider of the streaming service needs to pay according to its network service usage.
- illegal transmission of contents can also be prevented by transmitting only the video portion reflecting the FOV.
- Partially streamed video data received as the FOV reflected video portion is transmitted may contain only a portion of the FOV reflected video that is dynamically changed, thereby preventing content of the video from being illegally copied.
- the client terminal can immediately provide the user with the video portion for the changed viewing angle without the changed delay. In this case, the delay may occur, for example, when receiving a new video portion from a video streaming server and then providing a new video portion for the changed viewing angle.
- Coupled refers to combining two components or components directly or indirectly with each other. Such coupling may be fixed (e.g. permanent) or removable (e.g. removable, releasable, etc.). This combination can be achieved by forming two components or two components and any additional intermediate components in a single body from each other or by attaching two components or two components and any additional intermediate components to each other. Can be.
- Embodiments of the present invention contemplates methods, systems, and program products on any machine readable medium to accomplish various operations.
- Embodiments of the present invention can be implemented using an existing computer processor. Or by a dedicated computer processor or hardwired system for a suitable system integrated for the purposes of the present invention or for other purposes.
- Embodiments within the scope of the present disclosure include program products that include a machine readable medium for conveying a machine executable instruction set or data structures.
- Such machine-readable media can be any available media that can be accessed by a general purpose or special purpose computer or other machine with a processor.
- Such machine readable media may include RAM, ROM, EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage, or any other nonvolatile media. .
- the machine-readable media described above may be used to store or deliver desired program code in the form of a set of machine executable instructions or a data structure.
- the machine-readable media described above may be accessed by a general purpose or special purpose computer or other machine having a processor.
- the machine regards the connection as a computer readable medium.
- a network or other communication connection a combination of wired, wireless or wired or wireless
- the machine regards the connection as a computer readable medium.
- a connection is suitably referred to as a machine readable medium.
- Combinations of the above are also included within the scope of machine-readable media.
- the set of machine executable instructions includes, for example, instructions and data that cause a general purpose computer, special purpose computers, or special purpose processing machines to perform particular functions or groups of functions.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
- Controls And Circuits For Display Device (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
Claims (17)
- 제1 프로세서;제1 메모리;GPU(Graphic Processing Unit);복수의 프레임 버퍼를 포함하는 제2 메모리;상기 제1 프로세서 또는 상기 GPU 중 적어도 하나에 의해 구현되는 비디오 서버를 포함하되,상기 비디오 서버는, 상기 제1 프로세서에 의해, 비디오 데이터 소스로부터 복수의 구체 이미지 프레임 데이터를 포함하는 소스 비디오 데이터를 얻어오고 상기 소스 비디오 데이터를 상기 제1 메모리에 저장하며,상기 비디오 서버는, 상기 제2 메모리의 제1 프레임 버퍼에 제1 구체 이미지 프레임 데이터가 저장되는 것에 응답하여, 상기 GPU에 의해, 상기 제1 구체 이미지 프레임 데이터를 상기 제1 구체 이미지 프레임 데이터가 나타내는 구체 이미지의 일부분에 대응되는 제1 이퀴렉탱귤러(equirectangular) 이미지 프레임 데이터로 변환하고, 상기 변환된 제1 이퀴렉탱귤러 이미지 프레임 데이터를 인코딩하며, 상기 인코딩 된 제1 이퀴렉탱귤러 이미지 프레임 데이터를 상기 제2 메모리의 인코딩 된 프레임 버퍼에 저장하는,가상 현실 비디오 스트리밍 시스템.
- 제1 항에 있어서,상기 제1 프로세서 또는 상기 GPU 중 적어도 하나에 의해 구현되는 스트리밍 서버를 더 포함하되,상기 스트리밍 서버는, 상기 제1 프로세서에 의해, 클라이언트 단말과 제1 연결을 설정하고, 상기 제2 메모리의 상기 인코딩 된 프레임 버퍼에서 상기 인코딩 된 제1 이퀴렉탱귤러 이미지 프레임 데이터를 얻어오며, 상기 인코딩 된 제1 이퀴렉탱귤러 이미지 프레임 데이터를 상기 제1 연결을 통해 상기 클라이언트 단말로 스트리밍하는,가상 현실 비디오 스트리밍 시스템.
- 제2 항에 있어서,상기 비디오 서버와 상기 스트리밍 서버는 별도의 프로세스로 실행되는,가상 현실 비디오 스트리밍 시스템.
- 제2 항에 있어서,상기 제1 프로세서 또는 상기 GPU 중 적어도 하나에 의해 구현되는 통신 서버를 더 포함하되,상기 통신 서버는, 상기 제1 프로세서에 의해, 상기 클라이언트 단말과 제2 연결을 설정하고, 상기 제1 이퀴렉탱귤러 이미지 프레임 데이터에 대응되는 FOV(Field of View)에 관한 제1 정보를 상기 클라이언트 단말로 전송하며, 상기 클라이언트 단말로부터 제2 FOV에 관한 제2 정보를 수신하고,상기 비디오 서버는, 상기 GPU에 의해, 제2 구체 이미지 프레임 데이터를 상기 제2 구체 이미지 프레임 데이터가 나타내는 구체 이미지의 상기 제2 FOV에 대응되는 제2 이퀴렉탱귤러 이미지 프레임 데이터로 변환하는,가상 현실 비디오 스트리밍 시스템.
- 제4 항에 있어서,상기 통신 서버와 상기 스트리밍 서버는 단일 프로세스로 실행되는,가상 현실 비디오 스트리밍 시스템.
- 제4 항에 있어서,상기 제1 FOV에 관한 상기 제1 정보와 상기 제2 FOV에 관한 상기 제2 정보는 방위각과 피치각을 가리키는 시야각 데이터를 포함하는,가상 현실 비디오 스트리밍 시스템.
- 비디오 서버의 GPU가, 비디오의 제1 구체 이미지 프레임을 나타내는 제1 구체 이미지 프레임 데이터를 제1 프레임 버퍼 메모리에 저장하는 단계;상기 비디오 서버의 제1 프로세서가, 클라이언트 단말로부터 제1 FOV에 관한 제1 정보를 수신하는 단계;상기 비디오 서버의 상기 GPU가, 상기 제1 버퍼 메모리에 저장된 상기 제1 구체 이미지 프레임 데이터를 상기 구체 이미지 프레임 데이터가 나타내는 상기 제1 구체 이미지 프레임의 상기 제1 FOV에 대응되는 제1 이퀴렉탱귤러 이미지 프레임 데이터로 변환하는 단계; 및상기 비디오 서버의 상기 GPU가, 제1 인코딩 된 이미지 프레임 데이터를 생성하기 위해 상기 변환된 제1 이퀴렉탱귤러 이미지 프레임 데이터를 인코딩하는 단계를 포함하는,비디오 처리 방법.
- 제7 항에 있어서,상기 비디오 서버의 상기 GPU가, 상기 제1 구체 이미지 프레임 데이터를 생성하기 위해 상기 비디오를 파싱하고 디코딩하는 단계를 더 포함하는,비디오 처리 방법.
- 제7 항에 있어서,상기 제1 FOV에 관한 상기 제1 정보는 방위각과 피치각을 가리키는 시야각 데이터를 포함하는,비디오 처리 방법.
- 제7 항에 있어서,상기 제1 이퀴렉탱귤러 이미지 프레임 데이터로 변환하는 단계는,상기 GPU가 상기 제1 구체 이미지 프레임 데이터에서 상기 제1 이퀴렉텡귤러 이미지 프레임 데이터로의 변환을 시작하기 전에 상기 제1 정보가 수신된 것으로 판정하는 단계를 포함하는,비디오 처리 방법.
- 제7 항에 있어서,상기 비디오 서버의 상기 제1 프로세서가, 상기 클라이언트 단말로부터 제2 FOV에 관한 제2 정보를 수신하는 단계;상기 비디오 서버의 상기 GPU가, 상기 비디오의 상기 제1 구체 이미지 프레임에 후속된 제2 구체 이미지 프레임을 나타내는 제2 구체 이미지 프레임 데이터를 상기 제1 프레임 버퍼 메모리에 저장하는 단계; 및상기 비디오 서버의 상기 GPU가, 상기 제1 구체 이미지 프레임 데이터를 상기 제1 이퀴렉탱귤러 이미지 프레임 데이터로 변환한 후의 시점과 상기 제1 프레임 버퍼 메모리에 상기 제2 구체 이미지 프레임 데이터를 저장하기 전의 시점 사이에 상기 제2 정보가 수신된 것으로 판정한 것에 응답하여, (i) 상기 비디오 서버의 상기 GPU가, 상기 제1 프레임 버퍼 메모리에 저장된 상기 제1 구체 이미지 프레임 데이터를 상기 제1 구체 이미지 프레임 데이터가 나타내는 상기 제1 구체 이미지 프레임의 상기 제2 FOV에 대응되는 제2 이퀴렉탱귤러 이미지 프레임 데이터로 변환하고, (ii) 상기 비디오 서버의 상기 GPU가, 상기 변환된 제2 이퀴렉탱귤러 이미지 프레임 데이터를 제2 인코딩 된 이미지 프레임 데이터로 인코딩하며, (iii) 상기 제1 프레임 버퍼 메모리에 저장된 상기 제2 구체 이미지 프레임 데이터의 변환 및 인코딩을 생략하는 단계를 포함하는,비디오 처리 방법.
- 클라이언트 단말의 제1 프로세서가, 비디오 스트리밍 서버로부터 비디오의 제1 이미지 프레임을 나타내는 제1 이미지 프레임 데이터를 수신하는 단계;상기 클라이언트 단말의 GPU가, 상기 제1 이미지 프레임의 크기보다 작거나 같은 크기를 갖는 상기 클라이언트 단말의 디스플레이 상에, 상기 디스플레이의 제1 디스플레이 영역에 상기 제1 이미지 프레임의 제1 영역을 렌더링하고, 상기 디스플레이의 제2 디스플레이 영역에 상기 제1 이미지 프레임의 나머지 영역을 숨겨진 상태로 렌더링하는 단계; 및상기 클라이언트 단말의 상기 제1 프로세서가 제1 FOV를 가리키는 사용자 입력의 수신에 응답하여, 상기 클라이언트 단말의 GPU가 상기 제1 FOV 내에 위치하고 이전에 상기 제2 디스플레이 영역에 숨겨진 상기 제1 이미지 프레임의 제2 영역을 렌더링하는 단계를 포함하는,비디오 디스플레이 방법.
- 제12 항에 있어서,상기 제1 FOV에 관한 상기 사용자 입력은 방위각 및 피치각을 가리키는 시야각 데이터를 포함하는,비디오 디스플레이 방법.
- 제12 항에 있어서,상기 제1 이미지 프레임의 상기 제2 영역을 렌더링하는 단계는,상기 클라이언트 단말의 상기 GPU가, 상기 디스플레이의 렌더링 영역을 상기 제1 디스플레이 영역에서 상기 제1 디스플레이 영역과 동일한 모양을 갖고 상기 제1 이미지 프레임의 상기 제2 영역을 포함하는 제3 디스플레이 영역으로 재배치하는 단계를 포함하는,비디오 디스플레이 방법.
- 제12 항에 있어서,상기 클라이언트 단말의 상기 제1 프로세서가, 상기 비디오 스트리밍 서버로 상기 제1 FOV를 가리키는 정보를 전송하는 단계;상기 클라이언트 단말의 상기 제1 프로세서가, 상기 비디오 스트리밍 서버로부터 상기 제1 FOV에 대응되는 상기 비디오의 제2 이미지 프레임을 나타내는 제2 이미지 프레임 데이터를 수신하는 단계; 및상기 클라이언트 단말의 상기 GPU가, 상기 클라이언트 단말의 상기 디스플레이 상에, 상기 디스플레이의 상기 제1 디스플레이 영역에 상기 제2 이미지 프레임의 일부를 렌더링하고, 상기 디스플레이의 상기 제2 디스플레이 영역에 상기 제1 이미지 프레임의 상기 제2 영역을 렌더링하는 단계를 더 포함하는,비디오 디스플레이 방법.
- 제12 항에 있어서,상기 디스플레이는 직사각형 모양이고,상기 디스플레이의 상기 제1 디스플레이 영역은 직사각형 모양이고, 상기 디스플레이의 중앙에 위치하며,상기 디스플레이의 상기 제2 디스플레이 영역은 상기 디스플레이의 왼쪽 여백, 오른쪽 여백, 위쪽 여백 및 아래쪽 여백 중 적어도 하나를 포함하는,비디오 디스플레이 방법.
- 제14 항에 있어서,상기 클라이언트 단말의 상기 제1 프로세서가, 상기 비디오 스트리밍 서버로 상기 제1 FOV를 가리키는 정보를 전송하는 단계;상기 클라이언트 단말의 상기 제1 프로세서가, 상기 비디오 스트리밍 서버로부터 상기 제1 FOV에 대응되고 상기 비디오의 제2 이미지 프레임을 나타내는 제2 이미지 프레임 데이터를 수신하는 단계; 및상기 클라이언트 단말의 상기 GPU가, 상기 디스플레이의 상기 렌더링 영역을 상기 제3 디스플레이 영역에서 상기 제1 디스플레이 영역으로 재배치하는 단계를 더 포함하는,비디오 디스플레이 방법.
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020207027413A KR102272859B1 (ko) | 2016-02-19 | 2017-02-17 | Gpu 기반의 가상 현실 비디오 스트리밍 서버를 위한 방법 및 시스템 |
CN201780013448.9A CN108702522B (zh) | 2016-02-19 | 2017-02-17 | 用于基于gpu的虚拟现实视频流式传输服务器的方法及系统 |
CN202110538794.7A CN113286168B (zh) | 2016-02-19 | 2017-02-17 | 用于处理视频的方法、系统以及存储介质 |
KR1020227003157A KR102502546B1 (ko) | 2016-02-19 | 2017-02-17 | Gpu 기반의 가상 현실 비디오 스트리밍 서버를 위한 방법 및 시스템 |
KR1020217013537A KR102358205B1 (ko) | 2016-02-19 | 2017-02-17 | Gpu 기반의 가상 현실 비디오 스트리밍 서버를 위한 방법 및 시스템 |
CN202110538787.7A CN113286167B (zh) | 2016-02-19 | 2017-02-17 | 用于基于gpu的虚拟现实视频流式传输服务器的方法及系统 |
JP2018562485A JP6663043B2 (ja) | 2016-02-19 | 2017-02-17 | Gpuベースの仮想現実ビデオストリーミングサーバのための方法およびシステム |
EP17753515.0A EP3419293B1 (en) | 2016-02-19 | 2017-02-17 | Method and system for gpu based virtual reality video streaming server |
KR1020187023908A KR102160992B1 (ko) | 2016-02-19 | 2017-02-17 | Gpu 기반의 가상 현실 비디오 스트리밍 서버를 위한 방법 및 시스템 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662297394P | 2016-02-19 | 2016-02-19 | |
US62/297,394 | 2016-02-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017142354A1 true WO2017142354A1 (ko) | 2017-08-24 |
Family
ID=59625327
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2017/001790 WO2017142354A1 (ko) | 2016-02-19 | 2017-02-17 | Gpu 기반의 가상 현실 비디오 스트리밍 서버를 위한 방법 및 시스템 |
PCT/KR2017/010197 WO2018052259A1 (ko) | 2016-02-19 | 2017-09-18 | 가상 현실 비디오 변환 및 스트리밍을 위한 시스템 및 방법 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2017/010197 WO2018052259A1 (ko) | 2016-02-19 | 2017-09-18 | 가상 현실 비디오 변환 및 스트리밍을 위한 시스템 및 방법 |
Country Status (6)
Country | Link |
---|---|
US (10) | US10334224B2 (ko) |
EP (1) | EP3419293B1 (ko) |
JP (3) | JP6663043B2 (ko) |
KR (7) | KR102272859B1 (ko) |
CN (5) | CN113286168B (ko) |
WO (2) | WO2017142354A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020004695A1 (ko) * | 2018-06-29 | 2020-01-02 | 주식회사 에이펀인터렉티브 | Gpu를 이용해 모션캡쳐 영상의 실시간 병렬 렌더링을 수행하는 시스템 |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170026659A1 (en) * | 2015-10-13 | 2017-01-26 | Mediatek Inc. | Partial Decoding For Arbitrary View Angle And Line Buffer Reduction For Virtual Reality Video |
WO2017068926A1 (ja) * | 2015-10-21 | 2017-04-27 | ソニー株式会社 | 情報処理装置及びその制御方法、並びにコンピュータ・プログラム |
US10334224B2 (en) | 2016-02-19 | 2019-06-25 | Alcacruz Inc. | Systems and method for GPU based virtual reality video streaming server |
EP3249928A1 (en) * | 2016-05-23 | 2017-11-29 | Thomson Licensing | Method, apparatus and stream of formatting an immersive video for legacy and immersive rendering devices |
CN105915990B (zh) * | 2016-05-25 | 2022-11-15 | 歌尔光学科技有限公司 | 一种虚拟现实头盔及其使用方法 |
DE102016213494A1 (de) * | 2016-07-22 | 2018-01-25 | Conti Temic Microelectronic Gmbh | Kameravorrichtung sowie Verfahren zur Erfassung eines Umgebungsbereichs eines eigenen Fahrzeugs |
DE102016213493A1 (de) * | 2016-07-22 | 2018-01-25 | Conti Temic Microelectronic Gmbh | Kameravorrichtung zur Aufnahme eines Umgebungsbereichs eines eigenen Fahrzeugs sowie Verfahren zur Bereitstellung einer Fahrerassistenzfunktion |
US10410320B2 (en) | 2016-09-30 | 2019-09-10 | Sony Interactive Entertainment Inc. | Course profiling and sharing |
US10679511B2 (en) | 2016-09-30 | 2020-06-09 | Sony Interactive Entertainment Inc. | Collision detection and avoidance |
US11125561B2 (en) | 2016-09-30 | 2021-09-21 | Sony Interactive Entertainment Inc. | Steering assist |
US10850838B2 (en) | 2016-09-30 | 2020-12-01 | Sony Interactive Entertainment Inc. | UAV battery form factor and insertion/ejection methodologies |
CN109362242B (zh) | 2016-10-10 | 2021-05-14 | 华为技术有限公司 | 一种视频数据的处理方法及装置 |
KR102498598B1 (ko) * | 2016-10-18 | 2023-02-14 | 삼성전자주식회사 | 영상 처리 장치 및 그 영상 처리 방법 |
US10306180B2 (en) * | 2016-10-21 | 2019-05-28 | Liquidsky Software, Inc. | Predictive virtual reality content streaming techniques |
KR102598082B1 (ko) * | 2016-10-28 | 2023-11-03 | 삼성전자주식회사 | 영상 표시 장치, 모바일 장치 및 그 동작방법 |
US10631012B2 (en) * | 2016-12-02 | 2020-04-21 | Centurylink Intellectual Property Llc | Method and system for implementing detection and visual enhancement of video encoding artifacts |
US10999602B2 (en) | 2016-12-23 | 2021-05-04 | Apple Inc. | Sphere projected motion estimation/compensation and mode decision |
CN108282449B (zh) * | 2017-01-06 | 2020-10-09 | 华为技术有限公司 | 一种应用于虚拟现实技术的流媒体的传输方法和客户端 |
WO2018131813A1 (en) * | 2017-01-10 | 2018-07-19 | Samsung Electronics Co., Ltd. | Method and apparatus for generating metadata for 3d images |
WO2018151977A1 (en) * | 2017-02-14 | 2018-08-23 | Axon Enterprise, Inc. | Systems and methods for determining a field of view |
US11259046B2 (en) | 2017-02-15 | 2022-02-22 | Apple Inc. | Processing of equirectangular object data to compensate for distortion by spherical projections |
US10924747B2 (en) | 2017-02-27 | 2021-02-16 | Apple Inc. | Video coding techniques for multi-view video |
CN108513119A (zh) * | 2017-02-27 | 2018-09-07 | 阿里巴巴集团控股有限公司 | 图像的映射、处理方法、装置和机器可读介质 |
US10467775B1 (en) * | 2017-05-03 | 2019-11-05 | Amazon Technologies, Inc. | Identifying pixel locations using a transformation function |
US11093752B2 (en) | 2017-06-02 | 2021-08-17 | Apple Inc. | Object tracking in multi-view video |
MX2019014416A (es) | 2017-06-02 | 2020-02-05 | Vid Scale Inc | Suministro de video en 360 grados a través de la red de próxima generación. |
US11107177B1 (en) * | 2017-06-16 | 2021-08-31 | Amazon Technologies, Inc. | Data/metadata synchronization using metadata queue statistics |
US10754242B2 (en) * | 2017-06-30 | 2020-08-25 | Apple Inc. | Adaptive resolution and projection format in multi-direction video |
US11521349B2 (en) | 2017-09-21 | 2022-12-06 | Faro Technologies, Inc. | Virtual reality system for viewing point cloud volumes while maintaining a high point cloud graphical resolution |
US10623791B2 (en) | 2018-06-01 | 2020-04-14 | At&T Intellectual Property I, L.P. | Field of view prediction in live panoramic video streaming |
US10812774B2 (en) | 2018-06-06 | 2020-10-20 | At&T Intellectual Property I, L.P. | Methods and devices for adapting the rate of video content streaming |
US10636118B2 (en) * | 2018-06-25 | 2020-04-28 | Microsoft Technology Licensing, Llc | Input scaling to keep controller inside field of view |
US10616621B2 (en) | 2018-06-29 | 2020-04-07 | At&T Intellectual Property I, L.P. | Methods and devices for determining multipath routing for panoramic video content |
US20200022632A1 (en) * | 2018-07-17 | 2020-01-23 | Limbix Health, Inc. | Digital content processing and generation for a virtual environment |
US10360713B1 (en) * | 2018-07-17 | 2019-07-23 | Disney Enterprises, Inc. | Event enhancement using augmented reality effects |
US11019361B2 (en) | 2018-08-13 | 2021-05-25 | At&T Intellectual Property I, L.P. | Methods, systems and devices for adjusting panoramic view of a camera for capturing video content |
US10708494B2 (en) | 2018-08-13 | 2020-07-07 | At&T Intellectual Property I, L.P. | Methods, systems and devices for adjusting panoramic video content |
US10735778B2 (en) | 2018-08-23 | 2020-08-04 | At&T Intellectual Property I, L.P. | Proxy assisted panoramic video streaming at mobile edge |
CN110876082B (zh) * | 2018-08-31 | 2020-12-29 | 网宿科技股份有限公司 | 一种视频帧的复杂度的确定方法及装置 |
US10560759B1 (en) | 2018-10-23 | 2020-02-11 | At&T Intellectual Property I, L.P. | Active network support on adaptive virtual reality video transmission |
US10536666B1 (en) * | 2019-01-22 | 2020-01-14 | Facebook Technologies, Llc | Systems and methods for transmitting aggregated video data |
US10742882B1 (en) * | 2019-05-17 | 2020-08-11 | Gopro, Inc. | Systems and methods for framing videos |
US11076158B2 (en) * | 2019-09-09 | 2021-07-27 | Facebook Technologies, Llc | Systems and methods for reducing WiFi latency using transmit opportunity and duration |
WO2021162446A1 (en) * | 2020-02-14 | 2021-08-19 | Samsung Electronics Co., Ltd. | Method and apparatus for streaming vr image |
KR20210107409A (ko) | 2020-02-24 | 2021-09-01 | 삼성전자주식회사 | 엣지 컴퓨팅 서비스를 이용한 영상 컨텐츠 전송 방법 및 장치 |
WO2021194483A1 (en) * | 2020-03-25 | 2021-09-30 | Alcacruz Inc. | Generating a representation of a spherical image |
US20210349308A1 (en) * | 2020-05-05 | 2021-11-11 | Szu Wen FAN | System and method for video processing using a virtual reality device |
US11188902B1 (en) * | 2020-05-20 | 2021-11-30 | Louise Dorothy Saulog Sano | Live time connection application method and devices |
CN113766272B (zh) * | 2020-06-04 | 2023-02-10 | 腾讯科技(深圳)有限公司 | 一种沉浸媒体的数据处理方法 |
JP7470387B2 (ja) * | 2020-06-08 | 2024-04-18 | 株式会社大一商会 | 遊技機 |
CN113839908B (zh) * | 2020-06-23 | 2023-07-11 | 华为技术有限公司 | 视频传输方法、装置、系统及计算机可读存储介质 |
US11494951B2 (en) | 2020-07-24 | 2022-11-08 | At&T Intellectual Property I, L.P. | Policy definition and enforcement for extended reality media sessions |
CN114071150B (zh) | 2020-07-31 | 2023-06-16 | 京东方科技集团股份有限公司 | 图像压缩方法及装置、图像显示方法及装置和介质 |
KR20220037617A (ko) * | 2020-09-18 | 2022-03-25 | 삼성전자주식회사 | 엣지 컴퓨팅 서비스를 이용한 동영상 처리 방법 및 장치 |
US11908364B2 (en) * | 2020-09-23 | 2024-02-20 | Samsung Electronics Co., Ltd. | Low-power display driving circuit performing internal encoding and decoding and operating method thereof |
CN112774193A (zh) * | 2021-01-14 | 2021-05-11 | 江苏卫健信息科技有限公司 | 一种云游戏的图像渲染方法 |
US11924393B2 (en) * | 2021-01-22 | 2024-03-05 | Valeo Comfort And Driving Assistance | Shared viewing of video among multiple users |
CN112954442B (zh) * | 2021-03-18 | 2023-07-18 | 北京字节跳动网络技术有限公司 | 视频播放方法、装置、设备和存储介质 |
CN113094019A (zh) * | 2021-04-30 | 2021-07-09 | 咪咕文化科技有限公司 | 交互方法、装置、电子设备及存储介质 |
GB2609013A (en) * | 2021-07-16 | 2023-01-25 | Sony Interactive Entertainment Inc | Video recording and playback systems and methods |
EP4120238A1 (en) * | 2021-07-16 | 2023-01-18 | Sony Interactive Entertainment Inc. | Video processing and playback systems and methods |
CN113676753B (zh) * | 2021-10-21 | 2022-02-15 | 北京拾音科技文化有限公司 | Vr场景中展示视频的方法、装置、电子设备和存储介质 |
US12112687B2 (en) * | 2021-12-07 | 2024-10-08 | Kyndryl, Inc. | Dynamic display for image-enabled clothing |
KR20230094587A (ko) | 2021-12-21 | 2023-06-28 | 서강대학교산학협력단 | 마이크로 배치 스트리밍 처리 시스템 및 상기 시스템에서의 동적 데이터 배치 및 쿼리 계획 방법 |
CN114938456A (zh) * | 2022-01-20 | 2022-08-23 | 上海瞳观智能科技有限公司 | Vr直播系统及方法 |
WO2023141313A2 (en) * | 2022-01-21 | 2023-07-27 | Arizona Board Of Regents On Behalf Of The University Of Arizona | Wavelength and diffractive multiplexed expansion of field of view for display devices |
US11983822B2 (en) | 2022-09-02 | 2024-05-14 | Valeo Comfort And Driving Assistance | Shared viewing of video with prevention of cyclical following among users |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000060869A1 (en) * | 1999-04-08 | 2000-10-12 | Internet Pictures Corporation | Perspective-corrected video presentations |
JP2005341093A (ja) * | 2004-05-26 | 2005-12-08 | Mitsubishi Electric Corp | コンテンツ適応化装置、コンテンツ適応化システム、コンテンツ適応化方法 |
US20120062444A1 (en) * | 2010-09-09 | 2012-03-15 | Cok Ronald S | Switchable head-mounted display transition |
US20120092348A1 (en) * | 2010-10-14 | 2012-04-19 | Immersive Media Company | Semi-automatic navigation with an immersive image |
US20160012855A1 (en) * | 2014-07-14 | 2016-01-14 | Sony Computer Entertainment Inc. | System and method for use in playing back panorama video content |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62168102A (ja) | 1986-12-30 | 1987-07-24 | Furukawa Electric Co Ltd:The | 光フアイバ融着接続用スリツプホルダ |
US5185667A (en) | 1991-05-13 | 1993-02-09 | Telerobotics International, Inc. | Omniview motionless camera orientation system |
US5880734A (en) | 1996-10-03 | 1999-03-09 | Intel Corporation | Peripheral vision simulator for immersive 3D virtual environments |
JPH10191355A (ja) * | 1996-12-26 | 1998-07-21 | Sony Corp | 映像信号切換装置およびその方法 |
US6043837A (en) * | 1997-05-08 | 2000-03-28 | Be Here Corporation | Method and apparatus for electronically distributing images from a panoptic camera system |
US6466254B1 (en) * | 1997-05-08 | 2002-10-15 | Be Here Corporation | Method and apparatus for electronically distributing motion panoramic images |
US6778211B1 (en) * | 1999-04-08 | 2004-08-17 | Ipix Corp. | Method and apparatus for providing virtual processing effects for wide-angle video images |
JP2003101989A (ja) * | 2001-09-25 | 2003-04-04 | Matsushita Electric Ind Co Ltd | 仮想鑑賞方法、鑑賞サーバ装置、端末、プログラム |
GB0230328D0 (en) * | 2002-12-31 | 2003-02-05 | British Telecomm | Video streaming |
KR100613752B1 (ko) | 2004-03-11 | 2006-08-22 | 경북대학교 산학협력단 | 파노라마 영상의 스트리밍 방법 |
KR100677142B1 (ko) * | 2004-08-13 | 2007-02-02 | 경희대학교 산학협력단 | 파노라마 영상의 움직임 추정 및 보상 |
US20060055807A1 (en) * | 2004-09-14 | 2006-03-16 | Pemer Frederick A | Imaging methods, image sensors, imaging systems, and articles of manufacture |
CN101000461B (zh) * | 2006-12-14 | 2010-09-08 | 上海杰图软件技术有限公司 | 一种鱼眼图像生成立方体全景的方法 |
JP5115150B2 (ja) * | 2007-11-02 | 2013-01-09 | ソニー株式会社 | 情報提示装置及び情報提示方法 |
US8747116B2 (en) | 2008-08-21 | 2014-06-10 | Lincoln Global, Inc. | System and method providing arc welding training in a real-time simulated virtual reality environment using real-time weld puddle feedback |
US8851896B2 (en) | 2008-08-21 | 2014-10-07 | Lincoln Global, Inc. | Virtual reality GTAW and pipe welding simulator and setup |
TW201044185A (en) | 2009-06-09 | 2010-12-16 | Zillians Inc | Virtual world simulation systems and methods utilizing parallel coprocessors, and computer program products thereof |
US8270473B2 (en) * | 2009-06-12 | 2012-09-18 | Microsoft Corporation | Motion based dynamic resolution multiple bit rate video encoding |
JP2012014676A (ja) | 2010-05-31 | 2012-01-19 | Sony Computer Entertainment Inc | 仮想現実空間提供システム、仮想現実空間提供方法およびそのプログラム |
US20120212491A1 (en) | 2011-02-22 | 2012-08-23 | Sony Computer Entertainment Inc. | Indirect lighting process for virtual environments |
WO2013038679A1 (ja) * | 2011-09-13 | 2013-03-21 | パナソニック株式会社 | 符号化装置、復号装置、再生装置、符号化方法、及び復号方法 |
CN202257030U (zh) * | 2011-10-19 | 2012-05-30 | 广东工业大学 | 大视场直接投影式激光光刻光学系统 |
EP2777273B1 (en) * | 2011-11-11 | 2019-09-04 | GE Video Compression, LLC | Efficient multi-view coding using depth-map estimate for a dependent view |
US9516225B2 (en) * | 2011-12-02 | 2016-12-06 | Amazon Technologies, Inc. | Apparatus and method for panoramic video hosting |
JP5861499B2 (ja) * | 2012-03-01 | 2016-02-16 | 大日本印刷株式会社 | 動画提示装置 |
EP2645713A1 (en) * | 2012-03-30 | 2013-10-02 | Alcatel Lucent | Method and apparatus for encoding a selected spatial portion of a video stream |
US10514541B2 (en) | 2012-12-27 | 2019-12-24 | Microsoft Technology Licensing, Llc | Display update time reduction for a near-eye display |
US20160205341A1 (en) * | 2013-08-20 | 2016-07-14 | Smarter Tv Ltd. | System and method for real-time processing of ultra-high resolution digital video |
US9774881B2 (en) * | 2014-01-08 | 2017-09-26 | Microsoft Technology Licensing, Llc | Representing motion vectors in an encoded bitstream |
JP6075889B2 (ja) * | 2014-06-10 | 2017-02-08 | 日本電信電話株式会社 | 映像配信装置及び映像再生装置 |
KR101953679B1 (ko) * | 2014-06-27 | 2019-03-04 | 코닌클리즈케 케이피엔 엔.브이. | Hevc-타일드 비디오 스트림을 기초로 한 관심영역 결정 |
US9917877B2 (en) * | 2014-10-20 | 2018-03-13 | Google Llc | Streaming the visible parts of a spherical video |
US10104361B2 (en) | 2014-11-14 | 2018-10-16 | Samsung Electronics Co., Ltd. | Coding of 360 degree videos using region adaptive smoothing |
GB2536025B (en) * | 2015-03-05 | 2021-03-03 | Nokia Technologies Oy | Video streaming method |
US9848212B2 (en) * | 2015-07-10 | 2017-12-19 | Futurewei Technologies, Inc. | Multi-view video streaming with fast and smooth view switch |
US10674205B2 (en) * | 2015-11-17 | 2020-06-02 | Rovi Guides, Inc. | Methods and systems for selecting a preferred viewpoint for media assets |
US20170147830A1 (en) * | 2015-11-24 | 2017-05-25 | Comcast Cable Communications, Llc | Adaptive Rights Management System |
US10334224B2 (en) | 2016-02-19 | 2019-06-25 | Alcacruz Inc. | Systems and method for GPU based virtual reality video streaming server |
-
2016
- 2016-04-08 US US15/094,336 patent/US10334224B2/en active Active
- 2016-09-16 US US15/268,111 patent/US9912717B2/en active Active
-
2017
- 2017-02-17 KR KR1020207027413A patent/KR102272859B1/ko active IP Right Grant
- 2017-02-17 WO PCT/KR2017/001790 patent/WO2017142354A1/ko active Application Filing
- 2017-02-17 JP JP2018562485A patent/JP6663043B2/ja active Active
- 2017-02-17 CN CN202110538794.7A patent/CN113286168B/zh active Active
- 2017-02-17 KR KR1020187023908A patent/KR102160992B1/ko active IP Right Grant
- 2017-02-17 CN CN201780013448.9A patent/CN108702522B/zh active Active
- 2017-02-17 KR KR1020217013537A patent/KR102358205B1/ko active IP Right Grant
- 2017-02-17 CN CN202110538787.7A patent/CN113286167B/zh active Active
- 2017-02-17 EP EP17753515.0A patent/EP3419293B1/en active Active
- 2017-02-17 KR KR1020227003157A patent/KR102502546B1/ko active IP Right Grant
- 2017-09-18 WO PCT/KR2017/010197 patent/WO2018052259A1/ko active Application Filing
- 2017-09-18 KR KR1020197013504A patent/KR102155681B1/ko active IP Right Grant
- 2017-09-18 KR KR1020217038744A patent/KR102506000B1/ko active IP Right Grant
- 2017-09-18 KR KR1020207025921A patent/KR102333398B1/ko active IP Right Grant
- 2017-09-18 CN CN201780071089.2A patent/CN110226316B/zh active Active
- 2017-09-18 CN CN202210587265.0A patent/CN115225882A/zh active Pending
-
2018
- 2018-01-23 US US15/877,799 patent/US20180152690A1/en not_active Abandoned
-
2019
- 2019-04-23 US US16/391,486 patent/US10904511B2/en active Active
- 2019-11-20 US US16/689,520 patent/US10939087B2/en active Active
-
2020
- 2020-02-13 JP JP2020022170A patent/JP7041440B2/ja active Active
- 2020-05-07 US US16/868,974 patent/US11050996B2/en active Active
-
2021
- 2021-01-26 US US17/158,654 patent/US11470301B2/en active Active
- 2021-05-10 US US17/315,995 patent/US11375172B2/en active Active
-
2022
- 2022-03-03 JP JP2022032850A patent/JP2022091767A/ja active Pending
- 2022-04-26 US US17/729,225 patent/US20220264069A1/en not_active Abandoned
- 2022-08-31 US US17/899,756 patent/US11843759B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000060869A1 (en) * | 1999-04-08 | 2000-10-12 | Internet Pictures Corporation | Perspective-corrected video presentations |
JP2005341093A (ja) * | 2004-05-26 | 2005-12-08 | Mitsubishi Electric Corp | コンテンツ適応化装置、コンテンツ適応化システム、コンテンツ適応化方法 |
US20120062444A1 (en) * | 2010-09-09 | 2012-03-15 | Cok Ronald S | Switchable head-mounted display transition |
US20120092348A1 (en) * | 2010-10-14 | 2012-04-19 | Immersive Media Company | Semi-automatic navigation with an immersive image |
US20160012855A1 (en) * | 2014-07-14 | 2016-01-14 | Sony Computer Entertainment Inc. | System and method for use in playing back panorama video content |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020004695A1 (ko) * | 2018-06-29 | 2020-01-02 | 주식회사 에이펀인터렉티브 | Gpu를 이용해 모션캡쳐 영상의 실시간 병렬 렌더링을 수행하는 시스템 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017142354A1 (ko) | Gpu 기반의 가상 현실 비디오 스트리밍 서버를 위한 방법 및 시스템 | |
TW202028928A (zh) | 用於分裂延展實境之交叉層流量優化 | |
US20060164328A1 (en) | Method and apparatus for wireless display monitor | |
JP2010091845A (ja) | 画像表示装置 |
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: 17753515 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 20187023908 Country of ref document: KR Kind code of ref document: A Ref document number: 2018562485 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020187023908 Country of ref document: KR |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2017753515 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2017753515 Country of ref document: EP Effective date: 20180919 |