WO2022191070A1 - 3dオブジェクトのストリーミング方法、装置、及びプログラム - Google Patents

3dオブジェクトのストリーミング方法、装置、及びプログラム Download PDF

Info

Publication number
WO2022191070A1
WO2022191070A1 PCT/JP2022/009411 JP2022009411W WO2022191070A1 WO 2022191070 A1 WO2022191070 A1 WO 2022191070A1 JP 2022009411 W JP2022009411 W JP 2022009411W WO 2022191070 A1 WO2022191070 A1 WO 2022191070A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
client
server
geometry
alpha
Prior art date
Application number
PCT/JP2022/009411
Other languages
English (en)
French (fr)
Inventor
ソロルサノ ルイス オスカー ラミレス
アレキサンダー ミハイロビッチ ボリソフ
Original Assignee
株式会社Mawari
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社Mawari filed Critical 株式会社Mawari
Priority to KR1020237034136A priority Critical patent/KR20230153468A/ko
Priority to CN202280019625.5A priority patent/CN117063473A/zh
Priority to US18/549,458 priority patent/US20240177354A1/en
Priority to EP22767027.0A priority patent/EP4290868A1/en
Publication of WO2022191070A1 publication Critical patent/WO2022191070A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/56Extraction of image or video features relating to colour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23412Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/08Bandwidth reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation

Definitions

  • the present disclosure relates to a 3D (three-dimensional) object streaming method, device, and program.
  • Patent Document 1 a technique of transmitting a 3D image from a server to a client and displaying it, but in this case, for example, a technique of converting the 3D image into a 2D image on the server side was used.
  • the conventional problem to be solved is to reduce the bandwidth used for data transmission while maintaining image quality in the transmission of 3D images.
  • a method which is one aspect of the present disclosure, is a method of transmitting a 3D object generated based on location information of the client from a server to a client, wherein from the 3D object on the server color information, alpha information and extracting geometry information; simplifying the geometry information; and encoding and sending a stream containing the color information, the alpha information and the simplified geometry information from the server to the client. and including.
  • a method which is one aspect of the present disclosure, is a method of reproducing a 3D object generated based on position information of a client on a server on the client, wherein color information, alpha information, and receiving an encoded stream containing geometry information; decoding said stream and extracting said color information, said alpha information and said geometry information therefrom; reconstructing a shape; and reconstructing the 3D object by projecting the combined information of the color information and the alpha information onto the shape of the reconstructed 3D object.
  • a server which is one aspect of the present disclosure, is a server including one or more processors and a memory, wherein the one or more processors execute instructions stored in the memory to cause a client on the server to extracting alpha information and geometry information from a 3D object generated based on the position information of, simplifying the geometry information, and encoding a stream containing the alpha information and the simplified geometry information from the server to the client to send.
  • a client which is one aspect of the present disclosure, is a client including one or more processors and a memory, wherein the one or more processors execute instructions stored in the memory to cause a server to perform processing of the client.
  • receiving an encoded stream containing color information, alpha information and geometry information of a 3D object generated based on position information decoding said stream and extracting said color information, said alpha information and said geometry information therefrom; and reproducing the shape of the 3D object based on the geometry information, and projecting information obtained by synthesizing the color information and the alpha information onto the shape of the reproduced 3D object, thereby reproducing the 3D object.
  • a program according to one aspect of the present disclosure includes instructions for executing any of the methods described above by a processor.
  • FIG. 2 is a functional block diagram of a server and client according to the present disclosure
  • FIG. FIG. 2 is a flow chart illustrating processing on the server side in the flow of data between the server and the client illustrated in FIG. 1
  • FIG. FIG. 2 is a flowchart illustrating data processing on the client side in the data flow between the server and the client illustrated in FIG. 1
  • FIG. FIG. 2 is a flowchart illustrating command processing on the client side in the data flow between the server and the client illustrated in FIG. 1
  • FIG. 1 is a diagram describing a data flow for displaying a 3D scene or a 3D object on the client side in a client-server system to which the present disclosure is applied;
  • FIG. 3 illustrates the process of encoding and decoding geometry information according to this disclosure
  • FIG. 3 illustrates the process of encoding and decoding color/texture information according to this disclosure
  • FIG. 10 illustrates data synchronization between geometry, color packets, metadata, and commands according to this disclosure
  • FIG. 3 illustrates a decurling method according to the present disclosure
  • 2 is a schematic diagram showing an example hardware configuration of a client according to the present disclosure
  • FIG. 1 is a schematic diagram showing an example hardware configuration of a server according to the present disclosure
  • FIG. 1 is a schematic diagram showing an example of a configuration of an information processing system according to the present disclosure
  • FIG. 1 is a schematic diagram representing a flow of server-side processing according to the present disclosure
  • FIG. 1 is a schematic diagram representing a flow of server-side processing according to the present disclosure
  • FIG. 1 is a schematic diagram representing the flow of client-side processing according to the present disclosure
  • FIG. Fig. 2 is a diagram representing the arrangement of cameras used in the present disclosure
  • FIG. 3 shows pixel configurations in the ARGB system used in this disclosure
  • FIG. 10 is a diagram showing changes in position information when a client moves
  • FIG. 4 is an explanatory diagram of motion estimation and error detection in an image view;
  • FIG. 1 is a functional block diagram of a server and client according to the present disclosure.
  • the 3D streaming server 100 includes functional components within a three-dimensional (3D) streaming server, and the 3D streaming client 150 includes functional components within a 3D streaming client.
  • Network 120 represents a wired or wireless network between server 100 and client 150 .
  • One system that is the subject of the present disclosure generates a 3D image on the server side, and reconstructs and displays the 3D image on the client side based on the feature amount of the 3D image received from the server.
  • Client devices include smartphones, mobile phones, tablets, laptops, smart glasses, head-mounted displays, headsets, and any other devices that have display and communication functions.
  • the feature amount includes color information, alpha information, or geometry information of the 3D image.
  • FIG. 1 is a functional block diagram explaining processing in the 3D streaming server 100.
  • Network packet receiving unit 108 receives packets containing instructions and/or data from client 150 via wired or wireless network 120 .
  • the network packet receiving unit 108 extracts the instructions and/or data received from the client from the packets and sends the extracted data to the reception data processing unit 101 which processes the instructions and/or data from the client.
  • the receiving data processing unit 101 having received the extracted instructions and/or data from the client further extracts the necessary instructions and/or data from the received data and sends them to the 3D scene data generating unit 102 .
  • the 3D scene data generation unit 102 processes, corrects, etc., the 3D scene (or 3D object) data held by the server corresponding to the request from the client, according to the request sent from the client 150 .
  • the extraction unit 103 having received the instructions and/or data from the 3D scene data generation unit 102, extracts the necessary data from the updated 3D scene data according to the instructions from the client, and converts them to the 3D stream conversion/encoding unit. 104.
  • the 3D stream conversion/encoding unit 104 converts the data received from the extraction unit 103 into a 3D stream and encodes it to generate a 3D stream 105 .
  • the 3D stream 105 is then sent to the network packet construction unit 106, which generates network packets.
  • Network packets are sent to the network packet transmission unit 107 .
  • Network packet transmission unit 107 transmits received network packets to one or more clients 150 via wired or wireless network 120 .
  • FIG. 1 is a functional block diagram illustrating processing in the 3D streaming client 150.
  • a network packet receiving unit 152 that receives packets from the server 100 over a wired or wireless network 120 extracts the encoded 3D stream from the packets and sends it to a 3D stream decoding unit 154 .
  • 3D stream decoding unit 154 Upon receiving the encoded 3D stream, 3D stream decoding unit 154 decodes the 3D stream and sends the decoded 3D stream to 3D scene reconstruction unit 155 .
  • a 3D scene reconstruction unit 155 that receives the decoded 3D stream reconstructs a 3D scene (or 3D object) from the decoded 3D stream received from the server 100 and presents the reconstructed 3D scene to a display unit 156 . send to A display unit 156 displays and presents the reconstructed 3D scene to the user.
  • a 3D display (update) request from the 3D streaming client 150 is sent from the application data output unit 153 to the network packet transmission unit 151 .
  • the 3D display (update) request data generated by the application data output unit 153 may be, for example, a user input or a camera/device position change, or a command requesting display update.
  • the network packet transmission unit 151 that has received the 3D display request sends the 3D display (update) request that has undergone necessary processing such as encoding and packetization to the 3D streaming server 100 via the wired or wireless network 120 .
  • the network packet configuration unit 106 and network packet transmission unit 107 included in the server 100 described above, and the network packet reception unit 152 and network packet transmission unit 151 included in the client 150 described above are compatible with, for example, existing open source software. The necessary improvements may be made based on the transmitting and receiving module to be used, or it may be created from scratch.
  • FIG. 2 is a flow chart explaining the processing on the server side in the data flow between the server and the client explained in FIG.
  • the processing is started at START (901).
  • the network packet receiving unit 108 described with reference to FIG. 1 receives a packet including a 3D scene rewriting command etc. from the client (902).
  • the received data processing unit 101 described in FIG. 1 processes the received command and outputs the result (903).
  • the 3D scene data generation unit 102 described in FIG. 1 generates 3D scene data according to the received command (904).
  • the extraction unit 103 of FIG. 1 extracts the features of the 3D scene (905).
  • the feature amount refers to data such as geometry, color, metadata, sound, and command included in a container stream, which will be described later.
  • 3D stream transform/encode unit 104 of FIG. 1 then transforms and encodes the data containing the 3D features into a 3D stream (906).
  • network packet construction unit 106 of FIG. 1 constructs network packets from the 3D stream (907).
  • network packet transmission unit 107 of FIG. 1 transmits the network packet (908). This completes a series of data transmission processing on the server side (909).
  • step 904 the processing from steps 902 to 903 and the processing from steps 904 to 908 are described to be executed sequentially. may be executed in parallel, or the process of step 904 may be started.
  • position information received from the client can be described and used to update the geometry information of the mesh on the server. Prediction and motion model updates for the next frame may then be implemented at this stage.
  • Motion/location information may be received from the client.
  • Pose information can be used to accumulate a history of poses and predict the motion of vertex data in the next frame. This updated pose may then be compared to a client-provided dataset to verify predictions and, if necessary, modify the estimated motion model.
  • FIG. 3 is a flow chart explaining data processing on the client side in the data flow between the server and the client explained in FIG.
  • the processing is started at START (1001).
  • the network packet receiving unit 152 explained in FIG. 1 receives a packet sent from the server 100 (1002).
  • the packets received by the 3D stream decoding unit 154 described in FIG. 1 are decoded (1003) to extract the feature quantity of the 3D scene.
  • the 3D scene reconstruction unit 155 described in FIG. 1 reconstructs the 3D scene on the client (1004) using the feature values of the 3D scene and generates 3D scene data (1005).
  • the display unit 156 described in FIG. 1 then displays the reconstructed 3D scene for presentation to the user (1006). This completes the data processing on the client side (1007).
  • steps 1002 to 1004 and the processing from steps 1005 to 1006 are described to be executed sequentially. may be executed in parallel, or the process of step 1005 may be started.
  • FIG. 4 is a flow chart explaining command processing on the client side in the data flow between the server and the client explained in FIG.
  • the processing is started with Start (1101).
  • the application data output unit 153 described with reference to FIG. 1 outputs a 3D scene rewrite command or the like from an image processing application or the like (1102).
  • the network packet transmission unit 151 described in FIG. 1 receives commands and the like from the application data output unit 153, converts them into packets, and transmits the converted packets to the wired or wireless network 120 (1103). This completes the data processing on the client side (1104).
  • step 1102 and the process of step 1103 are described to be executed sequentially, but the process of step 1102 and the process of step 1103 may be executed in parallel.
  • 3D stream format of the present disclosure The main features of the 3D stream format according to the present disclosure are as follows. The significance of the present disclosure is that these are achieved using limited network bandwidth without degrading the quality of the 3D image displayed on the client side.
  • Target devices are, for example, devices that can use Unity (Android, Windows, iOS), WebGL, UE4 or 5 (Android, iOS, Windows).
  • a unique container stream as a 3D stream to be transmitted between the server and client.
  • This unique container stream contains some of the following: geometry, color, metadata, sounds, and commands.
  • the stream may further include location information of the server and/or client.
  • Geometry simplified 3D data about the outline of streamed objects in the 3D scene on the server. Geometry data is, for example, an array of polygon vertices used to represent the shape of an object.
  • Color color data of an object captured by a camera at a specific position.
  • Metadata data describing 3D scenes, environments, individual objects, data in streams, and the like.
  • Sound Sound (audio) data generated in a 3D scene on the server side or client side. Sound can be bidirectionally communicated between the server and the client.
  • Commands are instructions including server-side or client-side 3D scenes, system events, status messages, camera and user inputs, client application events, and the like. Commands can be bi-directionally communicated between the server and the client.
  • a container stream is a block of data transferred between a server and a client, and is also called a data stream.
  • a container stream is transferred over a network as a packet stream.
  • FIG. 5 is a diagram describing a data flow for displaying a 3D scene or a 3D object on the client side in a client server system to which the present disclosure is applied.
  • a terminal device 1221 such as a smartphone is described, and the terminal device 1221 and smart glasses 1210 are connected via wireless or wired communication 1222 via a wireless LAN, Bluetooth (registered trademark), or the like.
  • Smart glasses 1210 represent a view from the front side of the user.
  • a person 1211-1 and a cursor 1212-1 are projected to the left eye of the client's smart glasses, and a person 1211-2 and a cursor 1212-2 are projected to the right eye of the smart glasses.
  • a user of the smart glasses sees a three-dimensional person 1214 at a distance with overlapping right and left eye images.
  • a user of the client-side smart glasses 1210 can use a cursor 1212 or other input means to move, rotate, zoom in/out, color, and color the person 1214 displayed in the client-side smart glasses 1210 . ⁇ You can change the texture or operate the sound.
  • a command (or sound) 1213 or the like is transmitted from the client to the server via the network 120 .
  • the server that has received commands and the like from the client via the network 120 performs an operation according to the received commands and the like on the image of the corresponding person 1202 on the virtual screen 1201 within the application within the server.
  • the server usually does not need to have a display device and handles virtual images in a virtual space.
  • the server generates 3D scene data (or 3D object data) after performing operations such as this command, and transmits feature amounts extracted therefrom as a container stream 1203 to the client via the network 120 .
  • the client that receives the container stream 1203 sent from the server rewrites the data of the corresponding person 1214 on the client's virtual screen according to the geometry, color texture, metadata, sound, and command contained in the container stream 1203. , redisplay, etc.
  • the object is a person, but the object could be other than a person, such as a building, car, animal, or still life, and a scene contains one or more objects.
  • FIG. 6 is a diagram illustrating the process of encoding and decoding geometry data according to this disclosure.
  • processes 201 to 205 are performed by the server, and processes 207 to 211 are performed by the client.
  • FIGS. 7 and 8 are executed by a processor such as a CPU and/or GPU using related programs.
  • a system to which the present disclosure is directed may include only either a CPU or a GPU, but hereinafter, the CPU and the GPU are collectively referred to as a CPU for the sake of simplicity of explanation.
  • a depth camera is a camera with a built-in depth sensor that acquires depth information.
  • a depth camera can be used to add depth information to a two-dimensional (2D) image acquired by a normal camera to acquire 3D stereoscopic information.
  • 2D two-dimensional
  • 6 depth cameras are used to acquire the complete geometry data of the scene. The configuration of the camera during shooting will be described later.
  • a streamed 3D object is generated from the image captured on the server side, and the depth information of the camera is output (201).
  • the camera depth information is then processed to generate a point cloud and an array of points is output (202).
  • This point cloud is transformed into triangles (an array of triangle vertices) representing the actual geometry of the object, and a triangle cloud is generated by the server (203).
  • a triangle is used as a figure representing geometry as an example, but polygons other than triangles may be used.
  • the geometry data is then added to the stream using the array data for each vertex of the group of triangles and compressed (204).
  • the server sends the container stream containing the compressed geometry data over network 120 (205).
  • the client receives (207) from the server over the network 120 the container stream containing the compressed data sent by the server, ie the geometry data.
  • the client decompresses the received compressed data and extracts an array of vertices (208).
  • the client puts the decompressed data vertex array into a managed geometry data queue and correctly aligns the frame sequence (209) that was scrambled while being transferred over the network.
  • the client reconstructs 210 the objects of the scene based on the correctly aligned sequence of frames.
  • the client displays the reconstructed client-side 3D object on the display (211).
  • the geometry data is stored in a managed geometry data queue and synchronized with other data received in the stream (209). This synchronization will be described later using FIG.
  • a client to which this disclosure is applied generates a mesh based on the received array of vertices.
  • the amount of data per hour for the array of vertices is usually much smaller than that of video data and frame data.
  • Another conventional option is to apply a large number of triangles to the data of a given mesh, which is problematic because it requires a large amount of client-side processing.
  • a server to which the present disclosure is applied sends only data of a part of a scene (usually containing one or more objects) that needs to be changed (for example, a specific object) to the client, and the scene is not changed. Since partial data is not sent to the client, it is also possible to reduce the amount of data transmitted from the server to the client when the scene is changed.
  • the system and method to which the present disclosure is applied are premised on transmitting an array of polygon mesh vertices from the server to the client.
  • the polygon is assumed to be a triangular polygon, the shape of the polygon is not limited to a triangle, and may be a quadrangle or another shape.
  • FIG. 7 is a diagram illustrating the process of encoding and decoding color/texture information according to this disclosure.
  • processes 301-303 are performed by the server, and processes 305-308 are performed by the client.
  • alpha data is a numerical value indicating additional information provided for each pixel (pixel) separately from color information.
  • Alpha data is often used especially for transparency.
  • a set of alpha data is also called an alpha channel.
  • the server then adds each of the color data, alpha data, and depth data to the stream and compresses them (302-1, 302-2, 302-3).
  • the server sends (303) the compressed camera data to the client via network 120 as part of a container stream.
  • the client receives 305 the container stream containing the compressed camera data stream via network 120 .
  • the client decompresses the received camera data (306) as well as prepares the set of frames.
  • the client then processes the color, alpha and depth data of the video stream from the decompressed camera data (306-1, 306-2, 306-3) respectively. These raw feature data are now prepared and queued for application to the reconstructed 3D scene.
  • the color data is used to wrap the textured reconstructed 3D scene mesh.
  • the client synchronizes (309) the color, alpha, and depth data of the video stream.
  • the client queues synchronized color, alpha, and depth data and manages the color data queue (307).
  • the client then projects 308 the color/texture information onto the geometry.
  • FIG. 8 is a diagram illustrating data synchronization between geometry packets, color packets, metadata, and commands according to the present disclosure.
  • a 3D stream 410 transmitted from the server side includes geometry packets, color packets, metadata, and commands.
  • the geometry packets, color packets, metadata, and commands contained in the 3D stream are synchronized with each other as shown in frame sequence 410 at the time the 3D stream was created on the server.
  • the 3D stream 401 received at the client is processed back to original synchronization by the packet queue manager 402 and a frame sequence 403 is generated.
  • frame sequence 403 with synchronization restored by packet queue manager 402 and with different delays resolved, geometry packets 1, 2, 3 are in the correct order and alignment, and color packets 1, 2, 3, 4, 5 are in the correct order. are in the correct order and arrangement, metadata 1, 2, 3, 4, and 5 are in the correct order and arrangement, and commands 1 and 2 are in the correct order and arrangement. That is, the frame sequence 403 after sorting in the client is arranged in the same order as the frame sequence 410 created in the server.
  • the scene is then reconstructed (404) using the synchronized data for the current frame.
  • the reconstructed frames are then rendered (405) and the client displays the scene on the display (406).
  • FIG. 9 shows an example of a sequence update flow 500.
  • FIG. 9 time progresses from left to right.
  • the geometry is updated (501).
  • the colors/textures are updated synchronously (ie, laterally aligned) (505).
  • the colors/textures are then updated (506), but the geometry is not (eg, if the colors have changed but there is no motion).
  • the geometry is then updated (502) and synchronously the colors/textures are updated (507).
  • the colors/textures are then updated (508), but not the geometry.
  • the geometry is then updated (503) and synchronously the colors/textures are updated (509).
  • the geometry need not be updated every time the color/texture is updated, and conversely, the color/texture need not be updated every time the geometry is updated.
  • Geometry updates and color/texture updates may be synchronized.
  • updating color/texture does not necessarily mean updating color and texture, but may be updating either color or texture.
  • the frequency of color/texture update is two and geometry update is one.
  • FIG. 10 is a schematic diagram showing a hardware configuration example of a client according to the present disclosure.
  • the client 150 may be a terminal such as a smartphone or mobile phone.
  • the client 150 typically includes a CPU/GPU 601, a display unit 602, an input/output unit 603, a memory 604, a network interface 605, and a storage device 606. These components communicate with each other via a bus 607. connected as possible.
  • the CPU/GPU 601 may be a single CPU or a single GPU, or may be composed of one or more components in which the CPU and GPU work together.
  • the display unit 602 is a device for displaying images in normal color, and displays and presents a 3D image according to the present disclosure to the user.
  • the client may be a combination of a client terminal and smart glasses, in which case the smart glasses have the functionality of the display unit 602, as described above.
  • the input/output unit 603 is a device for interacting with the outside, such as a user, and may be connected to a keyboard, speaker, button, or touch panel inside or outside the client 150 .
  • a memory 604 is a volatile memory for storing software and data necessary for the operation of the CPU/GPU 601 .
  • a network interface 605 has a function for the client 150 to connect to and communicate with an external network.
  • Storage device 606 is a non-volatile memory for storing software, firmware, data, etc. required by client 150 .
  • FIG. 11 is a schematic diagram showing a hardware configuration example of a server according to the present disclosure.
  • the server 100 usually has a CPU with higher functionality than the client, has a faster communication speed, and has a larger capacity storage device.
  • the server 100 normally comprises a CPU/GPU 701, an input/output unit 703, a memory 704, a network interface 705, and a storage device 706, and these components are communicatively connected to each other via a bus 707. there is
  • the CPU/GPU 701 may be a single CPU or a single GPU, or may be composed of one or more components in which the CPU and GPU work together.
  • the client device shown in FIG. 10 has the display unit 602, the display unit is not essential for the server.
  • the input/output unit 703 is a device for interacting with a user or the like, and may be connected to a keyboard, a speaker, buttons, or a touch panel.
  • a memory 704 is a volatile memory for storing software and data necessary for the operation of the CPU/GPU 701 .
  • a network interface 705 has a function for the client to connect to and communicate with an external network.
  • the storage device 706 is a non-volatile storage device for storing software, firmware, data, etc. required by the client.
  • FIG. 12 is a schematic diagram showing an example of the configuration of an information processing system according to the present disclosure.
  • a server 100, a client 150-1, and a client 150-2 are connected by a network 120 so as to be able to communicate with each other.
  • the server 100 is, for example, a computer device such as a server, and operates in response to image display requests from the clients 150-1 and 150-2 to display images on the clients 150-1 and 150-2. to generate and transmit information related to the image of Although two clients are shown in this example, the number of clients may be one or more.
  • the network 120 may be a wired or wireless LAN (Local Area Network), and the clients 150-1 and 150-2 may be smartphones, mobile phones, slate PCs, game terminals, or the like.
  • LAN Local Area Network
  • FIG. 13A is a schematic diagram representing the flow of server-side processing according to the present disclosure.
  • color information 1303 is extracted (1310) using an RGB camera.
  • Alpha information 1304) is extracted (1320) from an object 1302 in a scene 1301 on the server side using an RGB camera.
  • the depth camera is used to extract (1330) the information of the point cloud (1305).
  • the information of the point cloud (1305) is simplified to obtain geometry information (1306) (1331).
  • the resulting color information (1303), alpha information (1304) and geometry information (1306) are then processed (1307) into a stream data format and sent over the network to the client as a container stream for the 3D stream. (1340).
  • FIG. 13B is a schematic diagram representing the flow of server-side processing according to the present disclosure.
  • Diagrams 1305 and 1306 in FIG. 13B illustrate the concept of lowering the spatial frequency of meshes representing low frequency components.
  • the coarse mesh (1306) is associated with high frequency component information (1308, 1309) that can represent details of its surface.
  • high frequency component information 1308, 1309) that can represent details of its surface.
  • a z-buffer can be used to select a surface to render.
  • the z-buffer can also be used to extract the alpha (transparency) channel, since the rendered surface is effectively at infinity.
  • a high resolution mesh (or point cloud) can be decomposed into a low resolution mesh along with the high frequency components. Note that a smoothed low resolution mesh (1306) can be obtained by removing high frequency components from the high resolution mesh (1305).
  • FIG. 14 is a schematic diagram representing the flow of client-side processing according to the present disclosure.
  • FIG. 14 relates to the decurling method according to the present disclosure.
  • a decal is a process of pasting a texture or material onto an object.
  • texture refers to data used to represent the texture, pattern, unevenness, etc. of a 3D (three-dimensional) CG model.
  • a material is the material of an object and the like, and in 3DCG, for example, refers to the optical characteristics and texture of an object.
  • UV is a coordinate system used for specifying the pasting position, direction, size, etc., when mapping a texture onto a 3DCG model.
  • U is the horizontal axis
  • V is the vertical axis. Texture mapping using the UV coordinate system is called UV mapping.
  • the client-side processing shown in FIG. 14 is basically the reverse of the server-side processing shown in FIG. First, the client receives a container stream, which is a 3D stream sent by the server via the network. The data is then decoded from the received 3D stream to recover the color, alpha and geometry information (1410) in order to reconstruct the object.
  • a container stream which is a 3D stream sent by the server via the network.
  • the data is then decoded from the received 3D stream to recover the color, alpha and geometry information (1410) in order to reconstruct the object.
  • the color information 1431 and the alpha information 1432 are combined, resulting in texture data generation.
  • This texture data is then applied 1420 to the geometry data 1433 .
  • the objects that were on the server are reconstructed on the client (1440). If there are multiple objects in the server-side scene, apply such processing to each object.
  • FIG. 15 is a diagram representing the arrangement of cameras used in the present disclosure.
  • One or more depth cameras are used to obtain geometry information of objects in the scene of interest 1510 .
  • a depth camera acquires depth maps every frame, and these depth maps are then processed into point clouds.
  • the point cloud is then divided into a predetermined triangular mesh for simplification.
  • By changing the resolution of the depth camera it is possible to control the degree of detail (level of detail, granularity) of the triangulated mesh.
  • an assumed standard setup uses 6 depth cameras with 256 ⁇ 256 resolution (1521-1526).
  • the number of required depth cameras and the resolution of each camera can be further optimized and reduced, and the number of depth cameras and their resolutions change the performance, ie the image quality and the amount of transmitted data.
  • FIG. 15 shows, as an example, a configuration in which six depth cameras (1521 to 1526) and one normal camera (1530) are arranged.
  • a regular camera ie, RGB camera
  • RGB camera ie, RGB camera
  • the geometry information is created by estimating the position of the object from the image acquired by the RGB camera.
  • FIG. 16 is a diagram showing pixel configurations in the ARGB system used in this disclosure.
  • the ARGB system adds alpha information (A) representing transparency to conventional RGB (red, green, blue) color information.
  • alpha information A
  • each of alpha, blue, green, and red is represented by 8 bits (that is, 256 levels), that is, the entire ARGB has a configuration of 32 bits.
  • 1601 in FIG. 16 indicates the number of bits for each color or alpha
  • 1602 indicates each color or alpha
  • 1603 indicates a 32-bit configuration as a whole.
  • this example describes an overall 32-bit ARGB system with each color and alpha consisting of 8 bits, these number of bits can be changed according to the desired image quality and amount of data to be transmitted.
  • Alpha information can be used as a mask/secondary layer for color images. Due to the limitations of current hardware encoders, encoding a video stream for color information with alpha information is time consuming. Also, color and alpha software encoders for video streams cannot currently be an alternative to the present disclosure, as they cannot be encoded in real-time, introduce delays, and fail to achieve the objectives of the present disclosure.
  • the client gets the information from the stream, it is ready to put each triangle in the right place to create the shape of the 3D scene. Since less data is transferred from the server to the client in the method of the present disclosure, the advantage of this method is that the power and time required for processing can be reduced. Reposition existing geometry rather than the traditional method of generating a mesh every frame. However, by changing the position of the existing geometry, we can change the position of the group of triangles once generated in the scene. The geometry data thus provides the coordinates of each triangle, and changes in this position of the object are dynamic.
  • An advantage of the 3D streaming of the present disclosure is lower network latency even with 6 degrees of freedom (DoF).
  • One advantage of the 3D streaming format is that the client side also has a 3D scene.
  • MR mixed reality
  • an important part is how the 3D content is connected to the real world and how it 'feels real'. It is possible.
  • the human brain has the illusion that this object is really there.
  • client-side devices target 70-90 FPS (frames per second) and update the 3D content on the display to make the user feel that this is "real".
  • FPS frames per second
  • AR device sensors are providing more than 1,000 FPS of information.
  • the method of the present disclosure allows synchronizing 3D content on the client side. Therefore, after reconstructing the 3D scene, it is the job of the client to process the location information of the extended content on the client side, and any reasonable network issues (e.g., transmission delays) that do not affect reality ), you can solve it.
  • FIG. 17 is a diagram showing changes in location information when the client moves.
  • FIG. 10 is a diagram illustrating correction between an estimated position and an actual position when the client has moved;
  • the server receives motion/location information from the client terminal.
  • the movement of the client is as shown in FIG. Since the motion of the client can be represented as the inverse motion of the target, the positions of the features of the target can be estimated (see Figure 17 and Figure 18 below). By accumulating a history of positions using this position information, it is possible to predict the movement of vertex data in the next frame. This updated position is compared to the next set of data provided by the client to verify predictions and, if necessary, modify the estimated motion model. It can be seen in FIG.
  • a straight line PP' viewed at a point X is mapped to a straight line aa' when viewed at a position X', and a straight line bb' when viewed at a position X''.
  • This trajectory Pab defines a history trajectory P(t), where P is the position of a feature point at time t, and defines a vertex motion model. By estimating P(t+1) using this model, points c and c' can be predicted.
  • FIG. 18 is an explanatory diagram of motion estimation and error detection in an image view. Since the method described in FIG. 17 allows the client to change direction rather than just position, this estimate may be subject to error. Therefore, the error between P(t+1) and the actual detected position (arrows 1801, 1802) is calculated to derive an error ⁇ P(t) that can be used to update P(t).
  • FIG. 17 shows how points on the image plane move, focusing on the movement of the client around the target (cube).
  • FIG. 18 shows that the same motion can be predicted by assuming motion of a rotating/translating target (rather than an observer).
  • a method of transmitting a 3D object from a server to a client comprising: extracting color, alpha and geometry information from the 3D object on the server; simplifying the geometry information; encoding and transmitting to the client a stream containing the color information, the alpha information and the simplified geometry information.
  • a method according to the present disclosure wherein simplifying said geometry information is converting from a point cloud extracted from said 3D object to triangular vertex information.
  • the stream further includes at least one of metadata, sound data, and commands.
  • a method according to the present disclosure wherein said server receives from said client a command to rewrite a 3D object on said server.
  • the server When the server receives a command to rewrite a 3D object from the client, the server rewrites the 3D object on the server, extracts the color information, the alpha information and the geometry information from the rewritten 3D object, and A method according to the present disclosure, simplifying geometry information and encoding and transmitting a stream containing the color information, the alpha information and the simplified geometry information from the server to the client.
  • a method according to the present disclosure wherein the color information and the alpha information are obtained with an RGB camera, and the geometry information is obtained with a depth camera.
  • a method of reproducing a 3D object residing on a server on a client comprising: receiving from the server an encoded stream containing color, alpha and geometry information of the 3D object; and decoding the stream. , extracting the color information, the alpha information and the geometry information therefrom; reconstructing the shape of the 3D object based on the geometry information; reconstructing the 3D object by projecting information that combines color information and the alpha information.
  • a server comprising one or more processors and memory, wherein the one or more processors extract alpha and geometry information from 3D objects on the server by executing instructions stored in the memory.
  • the server according to the present disclosure, simplifying the geometry information and encoding and transmitting a stream containing the alpha information and the simplified geometry information from the server to a client.
  • a client comprising one or more processors and memory, said one or more processors receiving color, alpha and geometry information of a 3D object from a server by executing instructions stored in said memory. receiving an encoded stream, decoding said stream, extracting said color information, said alpha information and said geometry information therefrom, reconstructing a shape of said 3D object based on said geometry information; A client according to the present disclosure that reconstructs the 3D object by projecting the combined information of the color information and the alpha information onto the shape of the 3D object.
  • a program comprising instructions for executing the method according to the present disclosure by a processor.
  • a method of transmitting a 3D object generated based on location information of said client from a server to a client comprising: extracting color information, alpha information and geometry information from said 3D object on said server;
  • a method according to the present disclosure comprising simplifying information, and encoding and transmitting a stream including the color information, the alpha information and the simplified geometry information from the server to the client.
  • a method according to the present disclosure, wherein simplifying the geometry information includes removing high frequency components from the geometry information.
  • the stream further includes at least one of location information, metadata, sound data, and commands of the client.
  • a method wherein said server receives from said client a command to rewrite a 3D object on said server, said command including location information of said client.
  • the server When the server receives a command to rewrite the 3D object from the client, the server rewrites the 3D object on the server based on the position information of the client included in the command, and converts the rewritten 3D object to the color information. extracting the alpha information and the geometry information, simplifying the geometry information, and encoding and sending a stream containing the color information, the alpha information and the simplified geometry information from the server to the client; A method according to the present disclosure.
  • a method according to the present disclosure wherein the color information, the alpha information, and the geometry information are generated based on images acquired by an RGB camera.
  • a method of reproducing a 3D object on a client generated based on client position information on a server comprising: receiving from the server an encoded stream containing color, alpha and geometry information of the 3D object; decoding the stream and extracting the color information, the alpha information and the geometry information therefrom; reconstructing the shape of the 3D object based on the geometry information; reconstructing the 3D object by projecting the combined information of the color information and the alpha information onto the shape of the 3D object.
  • a server comprising one or more processors and memory, wherein the one or more processors generate a 3D object based on location information of a client on the server by executing instructions stored in the memory.
  • a server according to the present disclosure, extracting alpha information and geometry information from, simplifying the geometry information, and encoding and transmitting a stream containing the alpha information and the simplified geometry information from the server to a client.
  • a client comprising one or more processors and memory, wherein the one or more processors execute instructions stored in the memory to generate a 3D object generated based on the location information of the client from a server.
  • receiving an encoded stream comprising color information, alpha information and geometry information; decoding said stream; extracting said color information, said alpha information and said geometry information therefrom;
  • a client according to the present disclosure that reproduces the shape of an object and reconstructs the 3D object by projecting the combined information of the color information and the alpha information onto the shape of the reproduced 3D object.
  • a program of the present disclosure including instructions for executing any of the methods of the present disclosure by a processor.
  • the present disclosure can be realized by software, hardware, or software linked to hardware.
  • the present disclosure is applicable to software, programs, systems, devices, client-server systems, terminals, and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Architecture (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)

Abstract

サーバからクライアントへ、前記クライアントの位置情報に基づいて生成された3Dオブジェクトを送信する本開示による方法は、前記サーバ上の前記3Dオブジェクトからカラー情報、アルファ情報及びジオメトリ情報を抽出することと、前記ジオメトリ情報を単純化することと、前記サーバから前記クライアントへ、前記カラー情報、前記アルファ情報及び前記単純化されたジオメトリ情報を含むストリームを符号化して送信することと、を含む。

Description

3Dオブジェクトのストリーミング方法、装置、及びプログラム
 本開示は、3D(3次元)オブジェクトのストリーミング方法、装置及びプログラムに関する。
 従来から3D画像をサーバからクライアントへ送信して表示するという技術はあるが、この場合、例えば、サーバ側で、3D画像を2D画像へ変換するという手法を使っていた(特許文献1)。
米国特許出願公開2010/0134494号明細書
 解決しようとする従来の問題点は、3D画像の伝送において、画質を維持しながら、データ伝送に使用する帯域幅を減少することである。
 本開示の一態様である方法は、サーバからクライアントへ、前記クライアントの位置情報に基づいて生成された3Dオブジェクトを送信する方法であって、前記サーバ上の前記3Dオブジェクトからカラー情報、アルファ情報及びジオメトリ情報を抽出することと、前記ジオメトリ情報を単純化することと、前記サーバから前記クライアントへ、前記カラー情報、前記アルファ情報及び前記単純化されたジオメトリ情報を含むストリームを符号化して送信することと、を含む。
 本開示の一態様である方法は、サーバ上のクライアントの位置情報に基づいて生成された3Dオブジェクトを前記クライアント上で再現する方法であって、前記サーバから前記3Dオブジェクトのカラー情報、アルファ情報及びジオメトリ情報を含む符号化されたストリームを受信することと、前記ストリームを復号し、そこから前記カラー情報、前記アルファ情報及び前記ジオメトリ情報を抽出することと、前記ジオメトリ情報に基づいて前記3Dオブジェクトの形状を再現することと、前記再現された3Dオブジェクトの形状の上に、前記カラー情報と前記アルファ情報を合成した情報を投影することにより前記3Dオブジェクトを再構成することと、を含む。
 本開示の一態様であるサーバは、1つ以上のプロセッサ及びメモリを含むサーバであって、前記1つ以上のプロセッサが、前記メモリに記憶された命令を実行することによって、前記サーバ上のクライアントの位置情報に基づき生成された3Dオブジェクトからアルファ情報及びジオメトリ情報を抽出し、前記ジオメトリ情報を単純化し、前記サーバからクライアントへ、前記アルファ情報及び前記単純化されたジオメトリ情報を含むストリームを符号化して送信する。
 本開示の一態様であるクライアントは、1つ以上のプロセッサ及びメモリを含むクライアントであって、前記1つ以上のプロセッサが、前記メモリに記憶された命令を実行することによって、サーバから前記クライアントの位置情報に基づき生成された3Dオブジェクトのカラー情報、アルファ情報及びジオメトリ情報を含む符号化されたストリームを受信し、前記ストリームを復号し、そこから前記カラー情報、前記アルファ情報及び前記ジオメトリ情報を抽出し、前記ジオメトリ情報に基づいて前記3Dオブジェクトの形状を再現し、前記再現された3Dオブジェクトの形状の上に、前記カラー情報と前記アルファ情報を合成した情報を投影することにより前記3Dオブジェクトを再構成する。
 本開示の一態様によるプログラムは、上述のいずれかの方法をプロセッサによって実行するための命令を含む。
 なお、これらの包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム、又は、記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
 クライアント上で3D画像を表示するためにサーバからクライアントへビデオデータ又はピクセルを送信する代わりに本開示によるコンテナストリームを送信することにより、サーバからクライアントへ送信される時間当たりのデータ量が減り、クライアント上での3D画像の表示品質及び応答性が向上する。
 本開示の一実施例における更なる利点及び効果は、明細書及び図面から明らかにされる。かかる利点及び/又は効果は、いくつかの実施形態並びに明細書及び図面に記載された特徴によってそれぞれ提供されるが、1つ又はそれ以上の同一の特徴を得るために必ずしも全てが提供される必要はない。
 本明細書において、説明の都合上サーバとクライアント間での3D画像(動画及び/又は静止画を含む)伝送を例に説明したが、本開示の適用は、クライアントサーバシステムに限定されず、1台のコンピュータから他のコンピュータへの伝送に適用可能であり、他のコンピュータは、単数であっても複数であってもよい。
本開示によるサーバ及びクライアントの機能ブロック図である。 図1で説明したサーバとクライアント間のデータの流れのうちサーバ側での処理を説明したフローチャートである。 図1で説明したサーバとクライアント間のデータの流れのうちクライアント側でデータの処理を説明したフローチャートである。 図1で説明したサーバとクライアント間のデータの流れのうちクライアント側でコマンドの処理を説明したフローチャートである。 本開示を適用したクライアントサーバシステムで、3Dシーン又は3Dオブジェクトをクライアント側で表示するためのデータの流れを記載した図である。 本開示によるジオメトリ情報の符号化及び復号のプロセスを示す図である。 本開示によるカラー情報/テクスチャ情報の符号化及び復号のプロセスを示す図である。 本開示によるジオメトリ、カラーパケット、メタデータ、及びコマンドの間のデータ同期を示す図である。 本開示によるデカール方法を示す図である。 本開示によるクライアントのハードウェア構成例を示す概略図である。 本開示によるサーバのハードウェア構成例を示す概略図である。 本開示にかかる情報処理システムの構成の一例を示す概略図である。 本開示によるサーバ側の処理のフローを表す概略図である。 本開示によるサーバ側の処理のフローを表す概略図である。 本開示によるクライアント側の処理のフローを表す概略図である。 本開示に使用されるカメラの配置を表す図である。 本開示で使用されるARGBシステムにおけるピクセル構成を示す図である。 クライアントが移動した場合の位置情報の変化について示した図である。 画像ビューにおける動き予測と誤差検出の説明図である。
<1. 3Dストリーミング・システム・アーキテクチャ>
 図1は、本開示によるサーバ及びクライアントの機能ブロック図である。3Dストリーミングサーバ100は、3次元(3D)ストリーミングサーバ内の機能構成を含み、3Dストリーミングクライアント150は、3Dストリーミングクライアント内の機能構成を含む。ネットワーク120は、サーバ100とクライアント150との間にある有線又は無線のネットワークを表す。
 本開示の対象となる1つのシステムは、サーバ側で3D画像を生成し、クライアント側でサーバから受信した3D画像の特徴量に基づいて3D画像を再構成し、表示する。クライアント機器としては、スマホ、携帯、タブレット、ノートパソコン、スマートグラス、ヘッドマウントディスプレイ、ヘッドセットなどの表示及び通信機能を有するあらゆる機器が対象となる。ここで、特徴量は、3D画像のカラー(色)情報、アルファ情報又はジオメトリ情報を含む。
<1.2 3Dストリーミングサーバ側の処理>
 図1の上半分は、3Dストリーミングサーバ100での処理を説明する機能ブロック図である。ネットワークパケット受信ユニット108は、有線又は無線のネットワーク120を介して、クライアント150から命令及び/又はデータを含むパケットを受信する。ネットワークパケット受信ユニット108は、クライアントから受信した命令及び/又はデータをパケットから抽出し、クライアントからの命令及び/又はデータを処理する受信データ処理ユニット101に抽出したデータを送信する。抽出されたクライアントから命令及び/又はデータを受信した受信データ処理ユニット101は、受信したデータから必要な命令及び/又はデータをさらに抽出し、それらを3Dシーンデータ生成ユニット102に送る。次に、3Dシーンデータ生成ユニット102は、クライアント150から送られてきた要求にしたがって、サーバが有するそのクライアントからの要求に対応する3Dシーン(又は3Dオブジェクト)のデータを加工・修正などする。次に、3Dシーンデータ生成ユニット102から命令及び/又はデータを受け取った抽出ユニット103は、クライアントからの命令に従って更新した3Dシーンデータから必要なデータを抽出し、それらを3Dストリーム変換/符号化ユニット104へ送る。3Dストリーム変換/符号化ユニット104は、抽出ユニット103から受け取ったデータを3Dストリームに変換し、符号化することによって3Dストリーム105を生成する。3Dストリーム105は、次にネットワークパケット構成ユニット106に送られ、ネットワークパケット構成ユニット106によってネットワークパケットが生成される。ネットワークパケットは、ネットワークパケット伝送ユニット107へ送信される。ネットワークパケット伝送ユニット107は、受信したネットワークパケットを有線又は無線ネットワーク120を介して、1つ以上のクライアント150へ送信する。
<1.3 3Dストリーミングクライアント側の処理>
 図1の下半分は、3Dストリーミングクライアント150での処理を説明する機能ブロック図である。有線又は無線ネットワーク120を介してサーバ100からパケットを受信したネットワークパケット受信ユニット152は、パケットから符号化された3Dストリームを抽出し、それを3Dストリーム復号ユニット154へ送る。符号化3Dストリームを受信した3Dストリーム復号ユニット154は、3Dストリームを復号し、復号された3Dストリームを3Dシーン再構成ユニット155へ送る。復号された3Dストリームを受信した3Dシーン再構成ユニット155は、サーバ100から受信して復号された3Dストリームから3Dシーン(又は3Dオブジェクト)を再構成し、再構成された3Dシーンを表示ユニット156へ送る。表示ユニット156は、再構成された3Dシーンを表示し、ユーザに提示する。
 一方、3Dストリーミングクライアント150からの3D表示(更新)要求は、アプリデータ出力ユニット153からネットワークパケット伝送ユニット151へ送られる。アプリデータ出力ユニット153で生成される3D表示(更新)要求データとしては、例えば、ユーザ入力又はカメラ/デバイスのポジション変更、又は表示の更新を要求するなどのコマンドが考えられる。3D表示要求を受信したネットワークパケット伝送ユニット151は、符号化及びパケット化などの必要な処理を行った3D表示(更新)要求を有線又は無線ネットワーク120を介して、3Dストリーミングサーバ100に送る。
 上述のサーバ100に含まれるネットワークパケット構成ユニット106、及びネットワークパケット伝送ユニット107、上述のクライアント150に含まれるネットワークパケット受信ユニット152、及びネットワークパケット伝送ユニット151は、例えば、既存のオープンソースソフトウェアの対応する送受信モジュールに基づいて必要な改良を施してもよいし、一から専用に作成してもよい。
 図2は、図1で説明したサーバとクライアント間のデータの流れのうちサーバ側での処理を説明したフローチャートである。スタート(901)で処理を開始する。先ず、図1で説明したネットワークパケット受信ユニット108が、クライアントから3Dシーンの書き換えコマンドなどを含むパケットを受信する(902)。次に、図1で説明した受信データ処理ユニット101が、受信したコマンドなどを処理して、その結果を出力する(903)。次に、図1で説明した3Dシーンデータ生成ユニット102が、受信したコマンドなどに従った3Dシーンデータを生成する(904)。次に、図1の抽出ユニット103が、3Dシーンの特徴量を抽出する(905)。ここで、特徴量とは、後述するコンテナストリームに含まれる、ジオメトリ、カラー、メタデータ、サウンド、コマンドなどのデータのことを指す。次に、図1の3Dストリーム変換/符号化ユニット104が、3D特徴量を含むデータを3Dストリームに変換し、符号化する(906)。次に、図1のネットワークパケット構成ユニット106が、3Dストリームからネットワークパケットを構成する(907)。次に、図1のネットワークパケット伝送ユニット107が、ネットワークパケットを送信する(908)。これでサーバ側の一連のデータ送信処理は、終了する(909)。
 図2では、一例として、ステップ902から903までの処理とステップ904から908までの処理が逐次実行されるように記載されているが、ステップ902から903までの処理とステップ904から908までの処理が並行して実行されてもよいし、ステップ904の処理から開始されてもよい。ここで、クライアントから受信した位置情報を記述し、サーバ上でメッシュのジオメトリ情報を更新するために使用することができる。そして、この段階で次のフレームに対する予測及び動きモデルの更新を実装してもよい。動き情報/位置情報をクライアントから受信してもよい。ポーズ情報を使ってポーズの履歴を蓄積し、次のフレームでの頂点データの動きを予測することができる。この更新されたポーズは、次にクライアントから提供されるデータセットと比較され、予測を検証し、必要に応じて、推定された動きモデルを修正してもよい。
 図3は、図1で説明したサーバとクライアント間のデータの流れのうちクライアント側でのデータの処理を説明したフローチャートである。スタート(1001)で処理を開始する。先ず、図1で説明したネットワークパケット受信ユニット152が、サーバ100から送られてきたパケットを受信する(1002)。次に、図1で説明した3Dストリーム復号ユニット154が受信したパケットを復号し(1003)、3Dシーンの特徴量を抽出する。次に、図1で説明した3Dシーン再構成ユニット155が、3Dシーンの特徴量などを使用して、クライアント上で3Dシーンを再構成し(1004)、3Dシーンデータを生成する(1005)。次に、図1で説明した表示ユニット156が、再構成された3Dシーンを表示して、ユーザに提示する(1006)。これでクライアント側でのデータ処理は、終了する(1007)。
 図3では、一例として、ステップ1002から1004までの処理とステップ1005から1006までの処理が逐次実行されるように記載されているが、ステップ1002から1004までの処理とステップ1005から1006までの処理が並行して実行されてもよいし、ステップ1005の処理から開始されてもよい。
 図4は、図1で説明したサーバとクライアント間のデータの流れのうちクライアント側でコマンドの処理を説明したフローチャートである。スタート(1101)で処理を開始する。図1で説明したアプリデータ出力ユニット153が、画像処理アプリなどからの3Dシーンの書き換えコマンドなどを出力する(1102)。図1で説明したネットワークパケット伝送ユニット151は、アプリデータ出力ユニット153からコマンドなどを受け取り、パケットに変換し、変換したパケットを有線又は無線ネットワーク120へ伝送する(1103)。これでクライアント側でのデータ処理は、終了する(1104)。
 図4では、一例として、ステップ1102の処理とステップ1103の処理が逐次実行されるように記載されているが、ステップ1102の処理とステップ1103の処理が並行して実行されてもよい。
<2. 本開示の3Dストリームフォーマット>
 本開示による3Dストリームのフォーマットの特徴としては、主に以下のものがある。クライアント側で表示される3D画像の品質を落とさずに、限られたネットワークの帯域幅を使用して、これらを実現しているところに本開示の意義がある。
(1)サーバ側で3Dストリームを生成する。
 サーバ側で3Dストリームを生成する際に、UE4又はUnityなどの利用可能なエンジンを使用する。ここで、UEとは、Epic Games社によって開発されているゲームエンジン、アンリアル・エンジン(Unreal Engine)のことであり、2020年5月にはUR5がアナウンスされている。
(2)ネットワークを介した効率的な伝送がサポートされている。
 従って、従来の方法に比べて、サーバからクライアントへ転送されるデータ量が少ない。これを実現するために、本開示では、コンテナストリームを使用する。
(3)様々なデバイスで動作可能である。
 対象とする装置は、例えば、Unity(Android、Windows、iOS)、WebGL、UE4又は5(Android、iOS、Windows)が利用できる装置である。
(4)現代のAR(拡張現実)デバイスに対して比較的軽量である。
 すなわち、従来の方法と比べて、クライアント側での処理の負荷が小さい。これは、本開示のコンテナストリームの使用による。
(5)インタラクション(すなわち、双方向通信)をサポートする。
 すなわち、ストリーミングがインタラクティブである。これは、コマンドがクライアントとサーバ相互間で送受信可能であることによる。
 上述の特徴を実現するために、本開示はサーバとクライアント間で伝送する3Dストリームとして独自のコンテナストリームを開発した。この独自のコンテナストリームは、以下のような、ジオメトリ、カラー、メタデータ、サウンド、及びコマンドのうちのいくつかを含む。ストリームは、サーバ及び/又はクライアントの位置情報をさらに含んでもよい。
 (1)ジオメトリ:サーバ上での3Dシーンのストリーミングされたオブジェクトの外形に関する単純化された3Dデータである。ジオメトリのデータは、例えば、オブジェクトの形状を表すために使用されるポリゴンの頂点のアレイである。
 (2)カラー:特定の位置にあるカメラで撮影したオブジェクトの色データである。
 (3)メタデータ:3Dシーン、環境、個別のオブジェクト、ストリーム中のデータなどを説明するデータである。
 (4)サウンド:サーバ側又はクライアント側の3Dシーンで発生するサウンド(音声)データである。サウンドは、サーバとクライアント相互間で双方向通信可能である。
 (5)コマンド:コマンドは、サーバ側又はクライアント側の3Dシーン、システムイベント、ステータスメッセージ、カメラ及びユーザインプット、並びにクライアントのアプリケーションイベントなどを含む命令などである。コマンドは、サーバとクライアント相互間で双方向通信可能である。
 従来のシステムでは、本開示による上述のコンテナストリームの代わりに、ビデオデータ自体又は各フレームのピクセルデータを送っていた。ここでコンテナストリームとは、サーバとクライアントとの間で転送されるデータの一塊のことを言い、データストリームとも言われる。コンテナストリームは、パケットストリームとしてネットワークを経由して転送される。
 従来から使用されているこれらビデオデータ自体又は各フレームのピクセルデータは、たとえ圧縮されていたとしても、時間当たりの転送される容量が非常に大きく、サーバとクライアント間のネットワークの帯域幅が大きくないと伝送が遅れ、レイテンシが発生し、クライアント側での3D画像の再生がスムーズに行えないという問題点があった。一方、本開示のシステムで、サーバとクライアント間での転送で使用されるデータコンテナは、データサイズが従来のシステムよりも十分小さいので、サーバとクライアント間のネットワークの帯域幅を余り気にせずに、単位時間当たりのフレーム数を最低限確保できるので、クライアント側でのなめらか3D画像の再生が可能となる。
 図5は、本開示を適用したクライアントサーバシステムで、3Dシーン又は3Dオブジェクトをクライアント側で表示するためのデータの流れを記載した図である。クライアント側は、スマホなどの端末装置1221が記載されており、端末装置1221とスマートグラス1210が無線LAN又はブルートゥース(登録商標)などで無線通信又は有線通信1222を経由して接続されている。スマートグラス1210は、ユーザが手前側から見た図を表している。クライアントのスマートグラスの左眼には人1211-1とカーソル1212-1が投影されており、スマートグラスの右眼には人1211-2とカーソル1212-2が投影されている。スマートグラスのユーザには、右眼及び左眼の像が重なって立体的な人1214が少し離れたところに見えている。クライアント側のスマートグラス1210のユーザは、カーソル1212又は他の入力手段を使用して、クライアント側のスマートグラス1210中に表示された人1214に対して移動、回転、縮小・拡大、色(カラー)・テクスチャの変更、又はサウンドなどの操作を行うことができる。このようなクライアント上のオブジェクト(又はシーン)に対する操作が行われると、クライアントからサーバにネットワーク120経由でコマンド(又はサウンド)1213などが送信される。
 クライアントからネットワーク120経由でコマンドなどを受信したサーバは、サーバ内のアプリ内の仮想的な画面1201上の対応する人1202の画像に対して、受信したコマンドなどに従った操作を行う。ここで、サーバは、通常表示装置を持っている必要がなく、仮想的な空間内の仮想的な画像を扱う。次に、サーバは、このコマンドなどの操作を行った後の3Dシーンデータ(又は3Dオブジェクトデータ)を生成し、そこから抽出した特徴量をコンテナストリーム1203としてネットワーク120経由でクライアントへ送信する。サーバから送られたコンテナストリーム1203を受信したクライアントは、コンテナストリーム1203に含まれるジオメトリ、カラー・テクスチャ、メタデータ、サウンド、及びコマンドに従って、クライアントの仮想画面中の対応する人1214のデータを書き換えて、再表示などする。この例において、オブジェクトは人であるが、オブジェクトは、ビル、自動車、動物、又は静物などの人以外でもよく、シーンは、1つ以上のオブジェクトを含む。
 以下で図6~8を参照して、上述のコンテナストリームに含まれる「ジオメトリ」データと「カラー」データがどのように処理されるかを説明する。
<3. ジオメトリの符号化及び復号プロセス>
 図6は、本開示による、ジオメトリデータの符号化及び復号のプロセスを示す図である。図6において、201~205の処理は、サーバによって行われ、207~211の処理は、クライアントによって行われる。
 図6及び後述の図7及び8に記載の各処理は、CPU及び/又はGPUなどのプロセッサなどによって関連するプログラムを使用して実行される。本開示の対象となるシステムは、CPU又はGPUのいずれか一方のみを備えていてもよいが、以下では、説明の簡単化のため、CPUとGPUをまとめてCPUと記載する。
<3.1 サーバ側の処理>
 ここでオブジェクトを有するシーンがあると仮定する。各オブジェクトは、1つ以上のデプスカメラで撮影されている。ここで、デプスカメラとは、奥行き情報を取得する深度(デプス)センサを内蔵したカメラのことを言う。デプスカメラを使用すると、通常のカメラが取得する2次元(2D)の画像に、奥行き情報を追加して、3Dの立体的な情報を取得することができる。ここでは、シーンの完全なジオメトリデータを取得するために、例えば6台のデプスカメラが使用される。撮影時のカメラの構成については、後述する。
 サーバ側で撮影した画像からストリーム化3Dオブジェクトを生成し、カメラのデプス(深度)情報を出力する(201)。次に、カメラのデプス情報を処理して点群を生成し、点のアレイを出力する(202)。この点群は、オブジェクトの実際のジオメトリを表す三角形(三角形の頂点のアレイ)に変換され、三角形の群がサーバによって生成される(203)。ここでは、一例としてジオメトリを表す図形として三角形を使用したが、三角形以外の多角形を使用してもよい。
 そして、三角形の群の各頂点のアレイのデータを使用してジオメトリデータをストリームに追加して、圧縮する(204)。
 サーバは、圧縮されたジオメトリデータを含むコンテナストリームを、ネットワーク120を介して送信する(205)。
<3.2 クライアント側の処理>
 クライアントは、サーバから送信された圧縮されたデータ、すなわちジオメトリデータを含むコンテナストリームを、ネットワーク120を介してサーバから受信する(207)。クライアントは、受信された圧縮されたデータを解凍し、頂点のアレイを抽出する(208)。
 クライアントは、解凍されたデータの頂点のアレイを、管理されたジオメトリデータキューに入れ、ネットワーク経由で転送されている間に崩れたフレームシーケンスの順番を正しく整列させる(209)。クライアントは、正しく整列されたフレームシーケンスに基づいて、シーンのオブジェクトを再構成する(210)。クライアントは、再構成されたクライアント側の3Dオブジェクトをディスプレイに表示する(211)。
 ジオメトリデータは、管理されたジオメトリデータキューに保存され、ストリーム中で受信した他のデータと同期される(209)。この同期については、図8を使って後述する。
 本開示が適用されたクライアントは、受信した頂点のアレイに基づいてメッシュを生成する。言い換えれば、サーバからクライアントには、ジオメトリデータとして、頂点のアレイのみが送信されるので、通常、頂点のアレイの時間当たりのデータ量はビデオデータ及びフレームデータと比較してかなり少ない。一方、従来の他のオプションは、大量の三角形を所定のメッシュのデータに適用することであり、この方法はクライアント側での大量の処理を必要とするものであり、問題があった。
 本開示が適用されるサーバは、シーン(通常は1つ以上のオブジェクトを含む)のうち変更が必要な部分(例えば、特定のオブジェクト)のデータをのみをクライアントへ送り、シーンのうち変更がない部分のデータをクライアントへ送らないので、この点でもシーン変更に伴うサーバからクライアントへの伝送データの量を削減することが可能となる。
 本開示を適用したシステム及び方法では、ポリゴンメッシュの頂点のアレイをサーバからクライアントへ送信することを前提としている。そして、このポリゴンとして三角形のポリゴンを前提として説明したが、ポリゴンの形状は、三角形に限定されず四角形又は他の形状であってもよい。
<4. カラー/テクスチャの符号化及び復号処理>
 図7は、本開示による、カラー情報/テクスチャ情報の符号化及び復号のプロセスを示す図である。図7において、301~303の処理は、サーバによって行われ、305~308の処理は、クライアントによって行われる。
<4.1 カラーのサーバ側の処理>
 オブジェクトを有するシーンがあると仮定する。カメラからのビューを使用して、サーバは、シーンのカラーデータ、アルファデータ、及びデプスデータを抽出する(301)。ここで、アルファデータ(又はアルファ値)は、カラー情報とは別に、画素(ピクセル)ごとに設けられた付加情報を示す数値である。アルファデータは、特に透明度として利用されることが多い。また、アルファデータの集合は、アルファチャネルとも呼ばれる。
 次に、サーバは、カラーデータ、アルファデータ、及びデプスデータのそれぞれをストリームに追加し、圧縮する(302-1、302―2、302-3)。サーバは、圧縮したカメラデータをコンテナストリームの一部として、ネットワーク120を経由してクライアントへ送信する(303)。
<4.2 カラーのクライアント側の処理>
 クライアントは、ネットワーク120を経由して圧縮されたカメラデータ・ストリームを含むコンテナストリームを受信する(305)。クライアントは、フレームのセットを準備するのと同様に、受信したカメラデータを解凍する(306)。次に、クライアントは、解凍したカメラデータからビデオストリームのカラーデータ、アルファデータ、及びデプスデータをそれぞれ処理する(306-1、306-2、306-3)。ここで、これらの生の特徴量データは、再構成された3Dシーンに適用するために準備され、キューに入れられる。カラーデータは、テクスチャを有する再構成された3Dシーンのメッシュをラップ(wrap:包む)するために使用される。
 また、デプスデータ及びアルファデータを有する追加の詳細情報が使用される。次に、クライアントは、ビデオストリームのカラーデータ、アルファデータ、及びデプスデータを同期させる(309)。クライアントは、同期したカラーデータ、アルファデータ、及びデプスデータをキューに保存し、カラーデータキューを管理する(307)。次に、クライアントは、カラー/テクスチャ情報をジオメトリへ投射する(308)。
 図8は、本開示によるジオメトリパケット、カラーパケット、メタデータ、及びコマンドの間のデータ同期を示す図である。
 クライアント側でデータを利用できるようにするためには、クライアント側で受信した3D画像を再生しながらストリーム中のデータの正しい内容を提供する方法でデータを管理する必要がある。ネットワークを経由するデータパケットは必ずしも信頼性の高い方法で転送されるわけではなく、パケットの遅延及び/又はパケットの順番の変更が発生する可能性がある。したがって、データのコンテナストリームをクライアントで受信している間、クライアントのシステムはどのようにデータの同期を管理するかを考える必要がある。本開示のジオメトリ、カラー、メタデータ、及びコマンドを同期するための基本的なスキームは、以下の通りである。このスキームは、ネットワーク・アプリケーションやストリーム用に作成されたデータ・フォーマットに対して標準的なものであってもよい。
 図8を参照して、サーバ側から送信される3Dストリーム410は、ジオメトリパケット、カラーパケット、メタデータ、及びコマンドを含んでいる。3Dストリームに含まれるジオメトリパケット、カラーパケット、メタデータ、及びコマンドは、サーバ上で3Dストリームが作成された時点では、フレームシーケンス410に示されるように相互に同期が取れている。
 このフレームシーケンス410において、時間は左から右に流れる。ところが、サーバから送信されたフレームシーケンス410が、クライアントで受信されたときには、ネットワークを経由する間に相互の同期が取れなくなる場合やランダムな遅延が発生する場合があり、そのことがクライアント側で受信された3Dストリーム401に示されている。すなわち、クライアントで受信された3Dストリーム401内では、ジオメトリパケット、カラーパケット、メタデータ、及びコマンドが、クライアントで作成されたときの3Dストリーム410とは、シーケンス内の順序又は位置が異なっている場所があることが分かる。
 クライアントで受信された3Dストリーム401は、パケットキューマネージャ402によって本来の同期に戻るように処理され、フレームシーケンス403が生成される。パケットキューマネージャ402によって同期が復活され、且つ相互に異なる遅延が解消されたフレームシーケンス403では、ジオメトリパケット1、2、3が正しい順序・配置になり、カラーパケット1、2、3、4、5が正しい順序・配置になり、メタデータ1、2、3、4、5が正しい順序・配置になり、コマンド1、2が正しい順序・配置になる。すなわち、クライアント内で整列後のフレームシーケンス403は、サーバ内で作成されたフレームシーケンス410と同じ並びになる。
 次に、同期された現在のフレームに対するデータを使用して、シーンが再構成される(404)。次に、再構成されたフレームをレンダリングし(405)、クライアントはシーンを表示装置上に表示する(406)。
 図9は、シーケンス更新フロー500の例を示す。図9では、時間は左から右に進んでいく。図9を参照して、先ずジオメトリが更新される(501)。ここでは、それと同期して(すなわち、横方向の位置が一致して)カラー/テクスチャが更新される(505)。次に、カラー/テクスチャが更新される(506)が、ジオメトリは、更新されない(例えば、カラーは変わったが、動きがない場合)。次に、ジオメトリが更新され(502)、それと同期してカラー/テクスチャが更新される(507)。次に、カラー/テクスチャが更新される(508)が、ジオメトリは、更新されない。次に、ジオメトリが更新され(503)、それと同期してカラー/テクスチャが更新される(509)。
 図9から分かる通り、カラー/テクスチャが更新される度に、ジオメトリが更新される必要はなく、逆に、ジオメトリが更新される度に、カラー/テクスチャが更新される必要もない。ジオメトリの更新とカラー/テクスチャの更新とが同期してもよい。また、カラー/テクスチャの更新は、必ずしもカラー及びテクスチャが更新される必要はなく、カラー又はテクスチャのいずれか一方の更新であってもよい。この図では、カラー/テクスチャ更新が2回に対して、ジオメトリ更新が1回の頻度で記載されているが、これは一例であって、他の頻度であってもよい。
 図10は、本開示によるクライアントのハードウェア構成例を示す概略図である。クライアント150は、スマホや携帯電話などの端末であってもよい。クライアント150は、CPU/GPU601と、表示部602と、入出力部603と、メモリ604と、ネットワークインタフェース605と、記憶装置606を通常備えており、これらの構成要素は、バス607で相互に通信可能に接続されている。
 CPU/GPU601は、CPU単体又はGPU単体であってもよいし、CPUとGPUが協働して動作するようになっている1つ又は複数の部品から構成されてもよい。表示部602は、通常カラーで画像を表示するための装置であり、本開示による3D画像を表示し、ユーザに提示する。図5を参照して、上述したように、クライアントは、クライアント端末とスマートグラスの組合せでもよく、その場合は、スマートグラスが表示部602の機能を有する。
 入出力部603は、ユーザなどの外部とのインタラクションを行うための装置であり、クライアント150の内部又は外部にあるキーボード、スピーカー、ボタン、タッチパネルに接続されてもよい。メモリ604は、CPU/GPU601の動作に必要なソフトウェア及びデータを記憶するための揮発性メモリである。ネットワークインタフェース605は、クライアント150が外部のネットワークに接続し、通信するための機能を有する。記憶装置606は、クライアント150で必要なソフトウェア、ファームウェア、データなどを記憶するための不揮発性メモリである。
 図11は、本開示によるサーバのハードウェア構成例を示す概略図である。サーバ100は、通常は、クライアントより高機能なCPUを備え、通信速度も速く、より大容量の記憶装置を備える。サーバ100は、CPU/GPU701と、入出力部703と、メモリ704と、ネットワークインタフェース705と、記憶装置706を通常備えており、これらの構成要素は、バス707で相互に通信可能に接続されている。
 CPU/GPU701は、CPU単体又はGPU単体であってもよいし、CPUとGPUが協働して動作するようになっている1つ又は複数の部品から構成されてもよい。図10に記載のクライアント装置は、表示部602を備えていたが、サーバの場合は、表示部は必須ではない。入出力部703は、ユーザなどとのインタラクションを行うための装置であり、キーボード、スピーカー、ボタン、タッチパネルに接続されてもよい。メモリ704は、CPU/GPU701の動作に必要なソフトウェア及びデータを記憶するための揮発性メモリである。ネットワークインタフェース705は、クライアントが外部のネットワークに接続し、通信するための機能を有する。記憶装置706は、クライアントで必要なソフトウェア、ファームウェア、データなどを記憶するための不揮発性記憶装置である。
 図12は、本開示にかかる情報処理システムの構成の一例を示す概略図である。サーバ100と、クライアント150-1と、クライアント150-2とがネットワーク120によって互いに通信可能に接続されている。
 サーバ100は、例えば、サーバなどのコンピュータ装置であり、クライアント150-1とクライアント150-2からの画像表示要求などに応じて、動作して、クライアント150-1とクライアント150-2で表示するための画像に関連する情報を生成し、送信する。この例では、クライアントは2台記載されているが、1台以上であれば何台でもよい。
 ネットワーク120は、有線又は無線のLAN(Local Area Network)であってもよく、クライアント150-1とクライアント150-2は、スマホ、携帯電話、スレートPC、又はゲーム端末などであってもよい。
 図13Aは、本開示によるサーバ側の処理のフローを表す概略図である。サーバ側のシーン1301にあるオブジェクト1302から、RGBカメラを使用してカラー情報(1303)を抽出する(1310)。サーバ側のシーン1301にあるオブジェクト1302から、RGBカメラを使用してアルファ情報(1304)を抽出する(1320)。サーバ側のシーン1301にあるオブジェクト1320から、デプスカメラを使用して点群(1305)の情報を抽出する(1330)。次に、点群(1305)の情報を簡略化して、ジオメトリ情報(1306)を得る(1331)。
 次に、得られたカラー情報(1303)、アルファ情報(1304)及びジオメトリ情報(1306)は、ストリームデータフォーマットへ処理され(1307)、3Dストリームのコンテナストリームとしてネットワークを経由してクライアントへ送信される(1340)。
 図13Bは、本開示によるサーバ側の処理のフローを表す概略図である。図13Bの図の1305及び1306は、低い周波数成分を表すメッシュの空間周波数を下げるという概念を示している。粗いメッシュ(1306)は、その表面の詳細を表すことができる高周波成分情報(1308、1309)と関連付けられる。デプスカメラの必要性を回避するために、zバッファは、レンダリングする面を選択するために使用することができる。レンダリングされる表面は事実上無限遠にあるため、zバッファはアルファ(透明)チャネルを抽出するためにも使用できる。高解像度メッシュ(又は点群)は、高周波数成分とともに低解像度メッシュに分解可能である。高解像度メッシュ(1305)から高周波数成分を除去することによって平滑化された低解像度メッシュ(1306)を得ることができることに留意されたい。
 図14は、本開示によるクライアント側の処理のフローを表す概略図である。図14は、本開示によるデカール方法に関連する。ここで、デカールとは、オブジェクト上にテクスチャやマテリアルを貼り付ける処理である。ここで、テクスチャとは、3D(3次元)CGモデルの質感、模様、凹凸などを表現するために用いるデータなどのことを指す。また、マテリアルとは、オブジェクトの材質などのことであり、3DCGでは、例えば、物体の光学的特性、材質感のことを指す。
 本開示のデカール方法が、従来のUVマッピングよりもプロセッサの処理として軽い理由を以下で説明する。現時点で、メッシュに色を設定するにはいくつかの方法がある。ここで、UVとは、3DCGモデルにテクスチャをマッピングするとき、貼り付ける位置や方向、大きさなどを指定するために使う座標系のことである。2次元の直交座標系で、横方向の軸がU、縦方向の軸がVとなる。UV座標系を使ったテクスチャマッピングのことをUVマッピングとよぶ。
<5.1 各頂点に色を設定する方法(従来の方法1)>
 対象となるクラウド内のすべての三角形に対して、色の値を頂点に保存する。しかしながら、頂点の密度が低い場合、解像度の低いテクスチャリングとなり、ユーザ・エクスペリエンスが低下する。逆に、頂点の密度が高い場合、画面上のすべてのピクセルに色を送るのと同じことになり、サーバからクライアントへ転送するデータ量が増える。一方、これは追加/基本カラーリングのステップとして使用することができる。
<5.2 メッシュのUVに正しいテクスチャを設定する方法(従来の方法2)>
 正しいテクスチャをUVマッピングで設定するには、三角形の群のテクスチャを生成する必要がある。その後、現在のメッシュのUVマップを生成し、ストリームに追加する必要がある。モデルのオリジナルテクスチャは、シーンの雷などの情報が含まれておらず、高品質で詳細な3Dモデルのためには、大量のテクスチャが必要になるため、実質的に使用できない。この方法が採用されないもう一つの理由は、サーバ上でレンダリングされた3Dモデルで作成されたUVでオリジナルテクスチャが動作することである。一般的には、三角形の群を使い、異なるビューからカラーリングテクスチャを投影し、受信したUVテクスチャを保存して送信する。さらに、UVテクスチャと同じ頻度でメッシュのジオメトリやトポロジーを更新する必要があるため、サーバとクライアント間で送受信するデータ量が増える。
<5.3 メッシュにテクスチャを投影する(デカール)方法(本開示による方法)>
 ストリームの特定の位置からのカラー/テクスチャが、その位置に関するメタ情報とともにサーバからクライアントに送信される。クライアントは、このテクスチャを指定された位置からメッシュに投影する。この場合、UVマップは不要である。この方法では、ストリーミングされた側(すなわち、クライアント側)にはUV生成がロードされない。このデカールによるアプローチは、データフローの最適化の余地を提供できる(例えば、ジオメトリとカラーの更新は、異なる頻度で連続して行うことができる)。
 図14に記載のクライアント側の処理は、基本的に、図13に記載のサーバ側の処理と逆の処理を行う。先ず、クライアントは、ネットワークを介してサーバが送信した3Dストリームであるコンテナストリームを受信する。次に、受信した3Dストリームからデータを復号し、オブジェクトを再構成するために、カラー情報、アルファ情報、ジオメトリ情報を復元する(1410)。
 次に、先ず、カラー情報1431とアルファ情報1432が結合され、その結果としてテクスチャデータ生成される。次に、このテクスチャデータをジオメトリデータ1433に適用する(1420)。こうすることによって、サーバ上にあったオブジェクトがクライアント上で再構成される(1440)。サーバ側のシーンに複数のオブジェクトがある場合は、オブジェクト毎にこのような処理を適用する。
 図15は、本開示に使用されるカメラの配置を表す図である。対象となるシーン1510にあるオブジェクトのジオメトリ情報を取得するためには、1台以上のデプスカメラが使用される。デプスカメラは、毎フレーム、デプスマップを取得し、次に、これらのデプスマップは、点群に処理される。次に、点群は、単純化のため所定の三角形のメッシュに分割される。デプスカメラの解像度を変更することによって、三角形に分割されたメッシュの詳細度(細かさのレベル、粒度)を制御することが可能である。例えば、想定する標準的な設定では、256×256解像度の6台のデプスカメラを使用する(1521~1526)。しかしながら、必要なデプスカメラの台数と各カメラの解像度は、さらに最適化して、減らすことも可能であり、デプスカメラの台数及びその解像度によって、パフォーマンス、すなわち画質及び伝送データ量が変化する。
 図15には、一例として、6台のデプスカメラ(1521~1526)と1台の通常のカメラ(1530)を配置した構成が記載されている。通常のカメラ(すなわちRGBカメラ)(1530)は、対象となるシーン1510にあるオブジェクトのカラー情報及びアルファ情報を取得するために使用される。
 代替案として、デプスカメラを使わないで通常のRGBカメラのみを使用する方法もあり得る。この場合は、RGBカメラで取得した画像からオブジェクトの位置を推定し、ジオメトリ情報を作成する。さらに、仮想カメラの概念をバイパスして、メッシュを直接処理する方法もある。すなわち、データキャプチャステップ、点群処理、及びテッセレーションをバイパスし、テッセレーションされたデータを直接使用して、グラフィックスエンジン固有のシェーダーを利用してジオメトリ情報を管理する方法である。
 図16は、本開示で使用されるARGBシステムにおけるピクセル構成を示す図である。ARGBシステムは、従来のRGB(赤、緑、青)の色情報に、透明度を表すアルファ情報(A)を追加したものである。図16に示した例では、アルファ、青、緑、赤のそれぞれが、8ビット(すなわち、256段階)で示され、すなわち、ARGB全体で、32ビットの構成となっている。図16の1601が各色又はアルファのビット数を示し、1602がそれぞれの色又はアルファを示し、1603は、全体として32ビットの構成を示している。この例では、各色及びアルファが8ビット構成で、全体として32ビットのARGBシステムを説明しているが、これらのビット数は、所望の画質及び伝送データ量に従って、変更することができる。
 アルファ情報は、カラーイメージに対して、マスク/セカンダリレイヤとして、使用することができる。現在のハードウェアエンコーダの制約により、アルファ情報を持つカラー情報に対してビデオストリームを符号化することは時間が掛かる。また、ビデオストリームに対するカラー及びアルファのソフトウェアエンコーダは、リアルタイムで符号化できず遅延が発生し、本開示の目的を達成できないので、現時点では本開示の代替案とはなり得ない。
<6.1 本開示による3Dストリーム・シーンのジオメトリの再構成の利点>
 本開示の方法を用いた3Dストリーム・シーンのジオメトリ再構成の利点は以下の通りである。本開示の方法は、「三角形の群(cloud of triangles)」を用いてシーンを再構成することによって、クライアント側で各シーンを再構成する。この革新的なアイデアの重要な点は、クライアント側で大量の三角形を使用する準備ができていることである。この場合、三角形の群に含まれる三角形の数は、数十万個でもよい。
 クライアントは、ストリームから情報を取得するとすぐに3Dシーンの形状を作るために各三角形を適切な場所に配置する準備ができている。本開示の方法では、サーバからクライアントに、従来よりも少ないデータしか転送しないので、この方法の利点は、処理に必要な電力と時間を削減できることである。フレーム毎にメッシュを生成するという従来の方法ではなく、既存のジオメトリの位置を変更する。しかしながら、既存のジオメトリの位置を変更することで、シーン内で一度生成された三角形の群の位置を変更することができる。したがって、ジオメトリデータは、各三角形の座標を提供し、オブジェクトのこの位置の変更は、動的である。
<6.2 本開示による3Dストリーミングの利点>
 本開示の3Dストリーミングの利点は、6つの自由度(DoF:Degree of Freedom)でもネットワークの遅延がより少ないことである。3Dストリーミング・フォーマットの利点の一つは、クライアント側にも3Dシーンがあることである。ミックス・リアリティ(MR)でナビゲートし、又は画像内を見て回るとき、重要な部分は、どのように3Dコンテンツが現実世界と接続されているか、そしてどのように「それに実際の位置が感じられる」である。言い換えれば、ユーザがいくつかの表示されたオブジェクトの周りを回っているときに、デバイスによる位置更新の遅れを認識しない場合、人間の脳はこのオブジェクトが本当にその場所にあると錯覚する。
 現在、クライアント側のデバイスは70~90FPS(1秒当たりのフレーム数)を目標にして、ユーザにこれを「本物」と思わせるために、ディスプレイ上の3Dコンテンツを更新する。今日では、12ms以下の待ち時間で、リモートサーバー上でフレーム更新のフルサイクルを提供することは不可能である。実際、ARデバイスのセンサは、1,000FPS以上の情報を提供している。そして、クライアント側で3Dコンテンツを同期させることは、現代のデバイスではすでに可能なので、本開示の方法では、クライアント側で3Dコンテンツを同期させることができる。そのため、3Dシーンを再構成した後、クライアント側で拡張コンテンツの位置情報を処理するのはクライアント側の仕事であり、リアリティに影響を与えないような合理的なネットワーク上の問題(例えば、伝送遅延)があれば、それを解決することができる。
 図17は、クライアントが移動した場合の位置情報の変化について示した図である。クライアントが移動した場合の推定位置と実際の位置との間の補正を説明する図である。サーバは、クライアント端末から動き・位置情報を受信する。クライアントの動きは、図17に示す通りである。クライアントの動きはターゲットの逆運動として表現できるため、ターゲットの特徴の位置を推定することができる(図17及び後述する図18参照)。この位置情報を用いて位置の履歴を蓄積することで、次のフレームでの頂点データの動きを予測することができる。この更新された位置は、クライアントから提供される次のデータセットと比較され、予測を検証し、必要であれば、推定された動きモデルを修正する。図17において観察者(クライアント)の位置の変化が、検出された頂点の位置の変化につながることが分かる。点Xで見た直線PP’は、位置X’で見ると直線aa’に写像され、位置X’’で見るとbb’に写像される。この軌跡P-a-bは、時刻tにおける特徴点の位置をPとすると、履歴軌跡P(t)を定義し、頂点の動きのモデルを定義するものである。このモデルを用いてP(t+1)を推定することで、点c,c’を予測することができる。
 図18は、画像ビューにおける動き予測と誤差検出の説明図である。図17に記載の方法では、クライアントは位置にのみではなく方向を変えることができるため、この推定値には誤差が生じる可能性がある。そこで、P(t+1)と実際の検出位置(矢印1801、1802)との誤差を計算し、P(t)の更新に利用できる誤差δP(t)を導く。
 図17は、ターゲット(立方体)の周りのクライアントの動きに着目し、画像平面上の点がどのように移動するかを示したものである。そして、図18では、(観察者ではなく)回転・並進するターゲットの動きを想定することで、同じ動きが予測されることを示す。
 <本開示のまとめ>
 以下に本開示のまとめとしていくつかの実施例を付記する。
 サーバからクライアントへ、3Dオブジェクトを送信する方法であって、前記サーバ上の前記3Dオブジェクトからカラー情報、アルファ情報及びジオメトリ情報を抽出することと、前記ジオメトリ情報を単純化することと、前記サーバから前記クライアントへ、前記カラー情報、前記アルファ情報及び前記単純化されたジオメトリ情報を含むストリームを符号化して送信することと、を含む、本開示による方法。
 前記ジオメトリ情報を単純化することは、前記3Dオブジェクトから抽出された点群から三角形の頂点の情報に変換することである、本開示による方法。
 前記ストリームは、さらに、メタデータ、サウンドデータ、及びコマンドのうちの少なくとも1つを含む、本開示による方法。
 前記サーバが、前記クライアントから、前記サーバ上の3Dオブジェクトを書き換えるコマンドを受信する、本開示による方法。
 前記サーバが前記クライアントから3Dオブジェクトを書き換えるコマンドを受信した場合、前記サーバは前記サーバ上の3Dオブジェクトを書き換え、前記書き換えた3Dオブジェクトから前記カラー情報、前記アルファ情報及び前記ジオメトリ情報を抽出し、前記ジオメトリ情報を単純化し、前記サーバから前記クライアントへ前記カラー情報、前記アルファ情報及び前記単純化されたジオメトリ情報を含むストリームを符号化して送信する、本開示による方法。
 前記カラー情報及び前記アルファ情報は、RGBカメラで取得され、前記ジオメトリ情報は、デプスカメラで取得される、本開示による方法。
 サーバ上にある3Dオブジェクトをクライアント上で再現する方法であって、前記サーバから前記3Dオブジェクトのカラー情報、アルファ情報及びジオメトリ情報を含む符号化されたストリームを受信することと、前記ストリームを復号し、そこから前記カラー情報、前記アルファ情報及び前記ジオメトリ情報を抽出することと、前記ジオメトリ情報に基づいて前記3Dオブジェクトの形状を再現することと、前記再現された3Dオブジェクトの形状の上に、前記カラー情報と前記アルファ情報を合成した情報を投影することにより前記3Dオブジェクトを再構成することと、を含む、本開示による方法。
 前記再構成された3Dオブジェクトを表示装置上に表示する、本開示による方法。
 前記表示装置がスマートグラスである、本開示による方法。
 1つ以上のプロセッサ及びメモリを含むサーバであって、前記1つ以上のプロセッサが、前記メモリに記憶された命令を実行することによって、前記サーバ上の3Dオブジェクトからアルファ情報及びジオメトリ情報を抽出し、前記ジオメトリ情報を単純化し、前記サーバからクライアントへ、前記アルファ情報及び前記単純化されたジオメトリ情報を含むストリームを符号化して送信する、本開示によるサーバ。
 1つ以上のプロセッサ及びメモリを含むクライアントであって、前記1つ以上のプロセッサが、前記メモリに記憶された命令を実行することによって、サーバから3Dオブジェクトのカラー情報、アルファ情報及びジオメトリ情報を含む符号化されたストリームを受信し、前記ストリームを復号し、そこから前記カラー情報、前記アルファ情報及び前記ジオメトリ情報を抽出し、前記ジオメトリ情報に基づいて前記3Dオブジェクトの形状を再現し、前記再現された3Dオブジェクトの形状の上に、前記カラー情報と前記アルファ情報を合成した情報を投影することにより前記3Dオブジェクトを再構成する、本開示によるクライアント。
 本開示よる前記方法をプロセッサによって実行するための命令を含む、プログラム。
 サーバからクライアントへ、前記クライアントの位置情報に基づいて生成された3Dオブジェクトを送信する方法であって、前記サーバ上の前記3Dオブジェクトからカラー情報、アルファ情報及びジオメトリ情報を抽出することと、前記ジオメトリ情報を単純化することと、前記サーバから前記クライアントへ、前記カラー情報、前記アルファ情報及び前記単純化されたジオメトリ情報を含むストリームを符号化して送信することと、を含む、本開示による方法。
 前記ジオメトリ情報を単純化することは、前記ジオメトリ情報から高周波数成分を取り除くことを含む、本開示による方法。
 前記ストリームは、さらに、前記クライアントの位置情報、メタデータ、サウンドデータ、及びコマンドのうちの少なくとも1つを含む、本開示による方法。
 前記サーバが、前記クライアントから、前記サーバ上の3Dオブジェクトを書き換えるコマンドを受信し、前記コマンドは前記クライアントの位置情報を含む、本開示による方法。
 前記サーバが前記クライアントから3Dオブジェクトを書き換えるコマンドを受信した場合、前記サーバは、前記コマンドに含まれる前記クライアントの位置情報に基づき前記サーバ上の3Dオブジェクトを書き換え、前記書き換えた3Dオブジェクトから前記カラー情報、前記アルファ情報及び前記ジオメトリ情報を抽出し、前記ジオメトリ情報を単純化し、前記サーバから前記クライアントへ前記カラー情報、前記アルファ情報及び前記単純化されたジオメトリ情報を含むストリームを符号化して送信する、本開示による方法。
 前記カラー情報、前記アルファ情報、及び前記ジオメトリ情報は、RGBカメラによって取得された画像に基づいて生成される、本開示による方法。
 サーバ上のクライアントの位置情報に基づいて生成された3Dオブジェクトを前記クライアント上で再現する方法であって、前記サーバから前記3Dオブジェクトのカラー情報、アルファ情報及びジオメトリ情報を含む符号化されたストリームを受信することと、前記ストリームを復号し、そこから前記カラー情報、前記アルファ情報及び前記ジオメトリ情報を抽出することと、前記ジオメトリ情報に基づいて前記3Dオブジェクトの形状を再現することと、前記再現された3Dオブジェクトの形状の上に、前記カラー情報と前記アルファ情報を合成した情報を投影することにより前記3Dオブジェクトを再構成することと、を含む、本開示による方法。
 前記再構成された3Dオブジェクトを表示装置上に表示する、本開示による方法。
 前記表示装置がスマートグラスである、本開示による方法。
 1つ以上のプロセッサ及びメモリを含むサーバであって、前記1つ以上のプロセッサが、前記メモリに記憶された命令を実行することによって、前記サーバ上のクライアントの位置情報に基づき生成された3Dオブジェクトからアルファ情報及びジオメトリ情報を抽出し、前記ジオメトリ情報を単純化し、前記サーバからクライアントへ、前記アルファ情報及び前記単純化されたジオメトリ情報を含むストリームを符号化して送信する、本開示よるサーバ。
 1つ以上のプロセッサ及びメモリを含むクライアントであって、前記1つ以上のプロセッサが、前記メモリに記憶された命令を実行することによって、サーバから前記クライアントの位置情報に基づき生成された3Dオブジェクトのカラー情報、アルファ情報及びジオメトリ情報を含む符号化されたストリームを受信し、前記ストリームを復号し、そこから前記カラー情報、前記アルファ情報及び前記ジオメトリ情報を抽出し、前記ジオメトリ情報に基づいて前記3Dオブジェクトの形状を再現し、前記再現された3Dオブジェクトの形状の上に、前記カラー情報と前記アルファ情報を合成した情報を投影することにより前記3Dオブジェクトを再構成する、本開示によるクライアント。
 本開示のいずれかの方法をプロセッサによって実行するための命令を含む、本開示のプログラム。
 本開示はソフトウェア、ハードウェア、又は、ハードウェアと連携したソフトウェアで実現することが可能である。
 2021年3月9日出願の特願2021-037507の日本出願に含まれる明細書、図面及び要約書の開示内容は、全て本願に援用される。
 本開示は、ソフトウェア、プログラム、システム、装置、クライアントサーバシステム、端末などに適用可能である。
100 サーバ
101 受信データ処理ユニット
102 3Dシーンデータ生成ユニット
103 抽出ユニット
104 3Dストリーム変換/符号化ユニット
105 3Dストリーム
106 ネットワークパケット構成ユニット
107 ネットワークパケット伝送ユニット
108 ネットワークパケット受信ユニット
120 有線又は無線ネットワーク
150 クライアント
150-1 クライアント
150-2 クライアント
151 ネットワークパケット伝送ユニット
152 ネットワークパケット受信ユニット
153 アプリデータ出力ユニット
154 3Dストリーム復号ユニット
155 3Dシーン再構成ユニット
156 表示ユニット
602 表示部
603 入出力部
604 メモリ
605 ネットワークインタフェース
606 記憶装置
607 バス
703 入出力部
704 メモリ
705 ネットワークインタフェース
706 記憶装置
707 バス
1201 画面
1202 人
1203 コンテナストリーム
1210 スマートグラス
1211-1 人
1211-2 人
1212-1 カーソル
1212-2 カーソル
1213 コマンド
1214 人
1221 端末装置
1521~1526 デプスカメラ
1530 RGBカメラ

Claims (12)

  1.  サーバからクライアントへ、前記クライアントの位置情報に基づいて生成された3Dオブジェクトを送信する方法であって、
     前記サーバ上の前記3Dオブジェクトからカラー情報、アルファ情報及びジオメトリ情報を抽出することと、
     前記ジオメトリ情報を単純化することと、
     前記サーバから前記クライアントへ、前記カラー情報、前記アルファ情報及び前記単純化されたジオメトリ情報を含むストリームを符号化して送信することと、を含む、方法。
  2.  前記ジオメトリ情報を単純化することは、前記ジオメトリ情報から高周波数成分を取り除くことを含む、請求項1に記載の方法。
  3.  前記ストリームは、さらに、前記クライアントの位置情報、メタデータ、サウンドデータ、及びコマンドのうちの少なくとも1つを含む、請求項1又は2に記載の方法。
  4.  前記サーバが、前記クライアントから、前記サーバ上の3Dオブジェクトを書き換えるコマンドを受信し、前記コマンドは前記クライアントの位置情報を含む、請求項1又は2に記載の方法。
  5.  前記サーバが前記クライアントから3Dオブジェクトを書き換えるコマンドを受信した場合、前記サーバは、前記コマンドに含まれる前記クライアントの位置情報に基づき前記サーバ上の3Dオブジェクトを書き換え、前記書き換えた3Dオブジェクトから前記カラー情報、前記アルファ情報及び前記ジオメトリ情報を抽出し、前記ジオメトリ情報を単純化し、前記サーバから前記クライアントへ前記カラー情報、前記アルファ情報及び前記単純化されたジオメトリ情報を含むストリームを符号化して送信する、請求項1又は2に記載の方法。
  6.  前記カラー情報、前記アルファ情報、及び前記ジオメトリ情報は、RGBカメラによって取得された画像に基づいて生成される、請求項1又は2に記載の方法。
  7.  サーバ上のクライアントの位置情報に基づいて生成された3Dオブジェクトを前記クライアント上で再現する方法であって、
     前記サーバから前記3Dオブジェクトのカラー情報、アルファ情報及びジオメトリ情報を含む符号化されたストリームを受信することと、
     前記ストリームを復号し、そこから前記カラー情報、前記アルファ情報及び前記ジオメトリ情報を抽出することと、
     前記ジオメトリ情報に基づいて前記3Dオブジェクトの形状を再現することと、
     前記再現された3Dオブジェクトの形状の上に、前記カラー情報と前記アルファ情報を合成した情報を投影することにより前記3Dオブジェクトを再構成することと、を含む、方法。
  8.  前記再構成された3Dオブジェクトを表示装置上に表示する、請求項7に記載の方法。
  9.  前記表示装置がスマートグラスである、請求項8に記載の方法。
  10.  1つ以上のプロセッサ及びメモリを含むサーバであって、
     前記1つ以上のプロセッサが、前記メモリに記憶された命令を実行することによって、
     前記サーバ上のクライアントの位置情報に基づき生成された3Dオブジェクトからアルファ情報及びジオメトリ情報を抽出し、
     前記ジオメトリ情報を単純化し、
     前記サーバからクライアントへ、前記アルファ情報及び前記単純化されたジオメトリ情報を含むストリームを符号化して送信する、サーバ。
  11.  1つ以上のプロセッサ及びメモリを含むクライアントであって、
     前記1つ以上のプロセッサが、前記メモリに記憶された命令を実行することによって、
     サーバから前記クライアントの位置情報に基づき生成された3Dオブジェクトのカラー情報、アルファ情報及びジオメトリ情報を含む符号化されたストリームを受信し、
     前記ストリームを復号し、そこから前記カラー情報、前記アルファ情報及び前記ジオメトリ情報を抽出し、
     前記ジオメトリ情報に基づいて前記3Dオブジェクトの形状を再現し、
     前記再現された3Dオブジェクトの形状の上に、前記カラー情報と前記アルファ情報を合成した情報を投影することにより前記3Dオブジェクトを再構成する、クライアント。
  12.  請求項1、2、7、8、又は9に記載のいずれかの方法をプロセッサによって実行するための命令を含む、プログラム。
PCT/JP2022/009411 2021-03-09 2022-03-04 3dオブジェクトのストリーミング方法、装置、及びプログラム WO2022191070A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020237034136A KR20230153468A (ko) 2021-03-09 2022-03-04 3d 오브젝트의 스트리밍 방법, 장치, 및 프로그램
CN202280019625.5A CN117063473A (zh) 2021-03-09 2022-03-04 3d对象的流传输方法、装置和程序
US18/549,458 US20240177354A1 (en) 2021-03-09 2022-03-04 3d object streaming method, device, and non-transitory computer-readable recording medium
EP22767027.0A EP4290868A1 (en) 2021-03-09 2022-03-04 3d object streaming method, device, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021037507A JP2022137826A (ja) 2021-03-09 2021-03-09 3dオブジェクトのストリーミング方法、装置、及びプログラム
JP2021-037507 2021-03-09

Publications (1)

Publication Number Publication Date
WO2022191070A1 true WO2022191070A1 (ja) 2022-09-15

Family

ID=83226770

Family Applications (3)

Application Number Title Priority Date Filing Date
PCT/JP2021/016202 WO2022190398A1 (ja) 2021-03-09 2021-04-21 3dオブジェクトのストリーミング方法、装置、及びプログラム
PCT/JP2022/009411 WO2022191070A1 (ja) 2021-03-09 2022-03-04 3dオブジェクトのストリーミング方法、装置、及びプログラム
PCT/JP2022/010053 WO2022191200A1 (ja) 2021-03-09 2022-03-08 3dオブジェクトに関するユーザ入力の解析方法、装置、及びプログラム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/016202 WO2022190398A1 (ja) 2021-03-09 2021-04-21 3dオブジェクトのストリーミング方法、装置、及びプログラム

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/010053 WO2022191200A1 (ja) 2021-03-09 2022-03-08 3dオブジェクトに関するユーザ入力の解析方法、装置、及びプログラム

Country Status (6)

Country Link
US (3) US20230401785A1 (ja)
EP (3) EP4290465A1 (ja)
JP (3) JP2022137826A (ja)
KR (3) KR20230153467A (ja)
CN (3) CN117043824A (ja)
WO (3) WO2022190398A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09200599A (ja) * 1996-01-22 1997-07-31 Sanyo Electric Co Ltd 画像撮影方法
US20100134494A1 (en) 2008-12-02 2010-06-03 Electronics And Telecommunications Research Institute Remote shading-based 3d streaming apparatus and method
WO2019003953A1 (ja) * 2017-06-29 2019-01-03 ソニー株式会社 画像処理装置および画像処理方法
WO2019039282A1 (ja) * 2017-08-22 2019-02-28 ソニー株式会社 画像処理装置および画像処理方法
US10497180B1 (en) * 2018-07-03 2019-12-03 Ooo “Ai-Eksp” System and method for display of augmented reality
JP2020536300A (ja) * 2017-09-29 2020-12-10 インターデジタル ヴイシー ホールディングス, インコーポレイテッド 3dシーンの点の属性を修正するための方法及び装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4229398B2 (ja) * 2003-03-28 2009-02-25 財団法人北九州産業学術推進機構 3次元モデリング・プログラム、3次元モデリング制御プログラム、3次元モデリング・データ伝送プログラム、記録媒体および3次元モデリング方法
JP2005259097A (ja) 2004-03-15 2005-09-22 Katsunori Kondo 3次元cgインタラクティブバナー
JP5103590B2 (ja) 2007-12-05 2012-12-19 倫也 佐藤 情報処理装置および情報処理方法
KR101660721B1 (ko) 2009-06-15 2016-09-29 엘지전자 주식회사 발광 다이오드 패키지 및 이를 포함하는 백라이트 유닛과 디스플레이장치
EP2461587A1 (en) * 2010-12-01 2012-06-06 Alcatel Lucent Method and devices for transmitting 3D video information from a server to a client
US8860717B1 (en) * 2011-03-29 2014-10-14 Google Inc. Web browser for viewing a three-dimensional object responsive to a search query
JP5864474B2 (ja) * 2013-05-01 2016-02-17 株式会社ディジタルメディアプロフェッショナル 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法
JP6802393B2 (ja) 2017-06-09 2020-12-16 株式会社ソニー・インタラクティブエンタテインメント 中心窩レンダリングシステムにおける、遅延ライティングの最適化、パーティクルの中心窩適応、及びシミュレーションモデル
US11290758B2 (en) 2017-08-30 2022-03-29 Samsung Electronics Co., Ltd. Method and apparatus of point-cloud streaming
JP6778163B2 (ja) 2017-08-31 2020-10-28 Kddi株式会社 オブジェクト情報の複数面への投影によって視点映像を合成する映像合成装置、プログラム及び方法
CN111316650A (zh) 2017-10-27 2020-06-19 松下电器(美国)知识产权公司 三维模型编码装置、三维模型解码装置、三维模型编码方法、以及三维模型解码方法
US10529129B2 (en) 2018-04-20 2020-01-07 Hulu, LLC Dynamic selection mechanism for interactive video
WO2020050222A1 (ja) * 2018-09-07 2020-03-12 シャープ株式会社 画像再生装置、画像生成装置、画像生成方法、制御プログラム及び記録媒体
JP2020113094A (ja) * 2019-01-15 2020-07-27 株式会社シーエスレポーターズ 拡張現実空間に配置される3dオブジェクトを生成する方法
JP6647433B1 (ja) * 2019-02-19 2020-02-14 株式会社メディア工房 点群データ通信システム、点群データ送信装置および点群データ送信方法
JP7500896B2 (ja) 2019-08-29 2024-06-18 日本国土開発株式会社 濾過用カートリッジ

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09200599A (ja) * 1996-01-22 1997-07-31 Sanyo Electric Co Ltd 画像撮影方法
US20100134494A1 (en) 2008-12-02 2010-06-03 Electronics And Telecommunications Research Institute Remote shading-based 3d streaming apparatus and method
WO2019003953A1 (ja) * 2017-06-29 2019-01-03 ソニー株式会社 画像処理装置および画像処理方法
WO2019039282A1 (ja) * 2017-08-22 2019-02-28 ソニー株式会社 画像処理装置および画像処理方法
JP2020536300A (ja) * 2017-09-29 2020-12-10 インターデジタル ヴイシー ホールディングス, インコーポレイテッド 3dシーンの点の属性を修正するための方法及び装置
US10497180B1 (en) * 2018-07-03 2019-12-03 Ooo “Ai-Eksp” System and method for display of augmented reality

Also Published As

Publication number Publication date
WO2022191200A1 (ja) 2022-09-15
CN117121493A (zh) 2023-11-24
KR20230153468A (ko) 2023-11-06
JP7430411B2 (ja) 2024-02-13
JP2024045258A (ja) 2024-04-02
EP4290869A1 (en) 2023-12-13
US20230401785A1 (en) 2023-12-14
JP2022137826A (ja) 2022-09-22
WO2022190398A1 (ja) 2022-09-15
KR20230153469A (ko) 2023-11-06
KR20230153467A (ko) 2023-11-06
JP2022138158A (ja) 2022-09-22
EP4290465A1 (en) 2023-12-13
EP4290868A1 (en) 2023-12-13
CN117063473A (zh) 2023-11-14
US20240169595A1 (en) 2024-05-23
CN117043824A (zh) 2023-11-10
US20240177354A1 (en) 2024-05-30

Similar Documents

Publication Publication Date Title
WO2021083176A1 (zh) 数据交互方法及系统、交互终端、可读存储介质
CN113099204B (zh) 一种基于vr头戴显示设备的远程实景增强现实方法
WO2021083174A1 (zh) 虚拟视点图像生成方法、系统、电子设备及存储介质
CN113891117B (zh) 沉浸媒体的数据处理方法、装置、设备及可读存储介质
CN115802076A (zh) 一种三维模型分布式云端渲染方法、系统及电子设备
KR20220113772A (ko) 이종 클라이언트 엔드 포인트들로 스트리밍하기 위한 2d 비디오의 적응을 위한 뉴럴 네트워크 모델의 참조
WO2022191070A1 (ja) 3dオブジェクトのストリーミング方法、装置、及びプログラム
EP3540696A1 (en) A method and an apparatus for volumetric video rendering
JP7472298B2 (ja) 没入型メディアの設置、及び没入型メディアから異種クライアントエンドポイントへの配信
KR102598603B1 (ko) 이기종 클라이언트 종단점에 대한 스트리밍을 위한 2d 비디오의 적응
CN116075860A (zh) 信息处理装置、信息处理方法、视频分发方法和信息处理系统
CN112738646B (zh) 数据处理方法、设备、系统、可读存储介质及服务器
TWI817273B (zh) 即時多視像視訊轉換方法和系統
KR102674577B1 (ko) 이종 클라이언트 엔드 포인트들로 스트리밍하기 위한 미디어의 적응을 위한 몰입형 미디어에 의한 뉴럴 네트워크 모델의 참조
CN117456113B (zh) 一种云端离线渲染交互应用实现方法及系统
US20230370666A1 (en) Streaming scene prioritizer for immersive media
KR20230141816A (ko) 자산 포맷들의 변환을 위한 몰입형 미디어 데이터 복잡도 분석기

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202280019625.5

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 18549458

Country of ref document: US

Ref document number: 2022767027

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20237034136

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1020237034136

Country of ref document: KR

ENP Entry into the national phase

Ref document number: 2022767027

Country of ref document: EP

Effective date: 20230907

NENP Non-entry into the national phase

Ref country code: DE