Patent Publication Number: US-2022222774-A1

Title: Apparatus and method for 360-degree video stitching

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application claims the benefit of Korean Patent Application Nos. 10-2021-0003576, filed Jan. 11, 2021, 10-2021-0006924, filed Jan. 18, 2021, and 10- 2022-0000265, filed Jan. 3, 2022, which are hereby incorporated by reference in their entireties into this application. 
     BACKGROUND OF THE INVENTION 
     1. Technical Field 
     The following embodiments relate generally to technology for creating a 360-degree panoramic image (video) by joining multiple images. 
     2. Description of the Related Art 
     Generally, a video-stitching function requires the intrinsic and extrinsic characteristics of capture devices such as cameras for capturing respective multiple input images in order to estimate the geometrical relationships between the capture devices. However, some gaps are inevitable, because multiple input images might have some inconsistencies that cannot be calculated based on intrinsic and extrinsic matrixes. Therefore, feature extraction and matching technologies are applied to most video-stitching functions in order to help improve accuracy of stitching quality. 
     Further, in most video-stitching algorithms, homography is calculated based on matching feature points randomly selected from a set of matching feature points, after which it is determined whether most of the feature points satisfy a desired homography transformation model. However, when matching feature points are randomly selected in this way, the selected feature points may appear at locally concentrated positions, so the calculated homography may not be global. Therefore, in this case, the matching feature points need to be reselected in order to update the homography transformation model so that the homography transformation model is more global. Therefore, in order to correct the above-described stitching errors, there is a need to define feature parameters as information required for post-processing, such as reselection of feature correspondences or adjustment of seam information caused by updating. 
     Meanwhile, in the current 360-degree stitching function, output coverage parameters are specified by parameters defined in OMAF (“ISO/IEC 23090-2:2019 Information technology—Coded representation of immersive media—Part 2: Omnidirectional media format”, January 2019.). However, OMAF deals with various projection formats such as equirectangular and cubemap projection, whereas the current 360-degree stitching function does not provide parameters for various projection formats. 
     SUMMARY OF THE INVENTION 
     An embodiment is intended to provide an apparatus and method for 360-degree video stitching, which define feature parameters as information for post-processing of stitching results for correcting errors in 360-degree video stitching and perform 360-degree video stitching based on the defined feature parameters. 
     An embodiment is intended to propose an apparatus and method for 360-degree video stitching, which define projection parameters for projecting an input stream having various projection formats and perform 360-degree video stitching based on the defined projection parameters. 
     In accordance with an aspect, there is provided an apparatus for 360-degree video stitching, including memory for storing at least one program, and a processor for executing the program, wherein the program is configured to stitch features of multiple input images based on at least one parameter included in a 360-degree stitching function description template, and then creating a single 360-degree video, wherein the 360-degree stitching function description template includes a configuration parameter that is an array of function parameters, the configuration parameter includes a stitching parameter, a camera parameter, a feature parameter, and a projection parameter, the feature parameter includes a method for extracting respective features from multiple input images, and the projection parameter includes a projection type that is a kind of a projection plane onto which the multiple input images are projected. 
     The program may be configured to detect keypoints from respective multiple input images using any one of one or more feature extraction methods and to extract descriptors for respective keypoints, and the feature extraction method may include at least one of feature detection methods using a Scale Invariant Feature Transform (SIFT), Speeded-Up Robust Features (SURF), a nonlinear diffusion filter, an accelerated KAZE algorithm, Oriented Features from Accelerated Segment Test (FAST) and Rotated Binary Robust Independent Elementary Feature (BRIEF) (ORB) based on fusion of an oriented FAST keypoint detector and a BRIEF descriptor, a Binary Robust Invariant Scalable Keypoints (BRISK) algorithm using scale space keypoint detection and a rotation-invariant keypoint descriptor, a feature descriptor using a BRIEF descriptor for matching points, and a feature detector using a Laplacian of Gaussian (LoG) filter of an image. 
     The feature extraction method may be a Uniform Resource Identifier (URI)-type method, wherein a Uniform Resource Name (URN) indicates the feature extraction method. 
     The feature parameter may further include a number of feature points, positions of feature points, and feature correspondence. 
     The program may be configured to perform decoding the multiple input images, extracting respective feature points of the decoded multiple input images, extracting a camera parameter based on the feature points, creating 360-degree images by projecting the decoded multiple input images onto a projection target based on the camera parameter, determining pieces of seam information of the 360-degree images based on the camera parameter, post-processing the 360-degree images based on the seam information, and encoding the post-processed 360-degree images, wherein extracting the respective feature points may include extracting the feature points based on the feature extraction method included in the feature parameter, and post-processing may be performed using the number of feature points, the positions of feature points, and the feature correspondence, which are included in the feature parameter. 
     The projection type may include a table-type omnidirectional projection format list including an equirectangular format and a cubemap format, and may be configured such that, when a value of Id in the table is ‘0’, the omnidirectional projection is an equirectangular projection, when a value of Id in the table is ‘1’, the omnidirectional projection is a cubemap projection, and when a value of Id in the table is ‘2’, the omnidirectional projection has an additional projection format. 
     The program may be configured to perform decoding the multiple input images, extracting respective feature points of the decoded multiple input images, extracting a camera parameter based on the feature points, creating 360-degree images by projecting the decoded multiple input images onto a projection target based on the camera parameter, determining pieces of seam information of the 360-degree images based on the camera parameter, post-processing the 360-degree images based on the seam information, and encoding the post-processed 360-degree images, wherein creating the 360-degree images may be performed based on a projection format included in the projection parameter. 
     In accordance with another aspect, there is provided a method for 360-degree video stitching, including an operation of decoding multiple input images, an operation of extracting respective feature points of the decoded multiple input images, an operation of extracting a camera parameter based on the feature points, an operation of creating 360-degree images by projecting the decoded multiple input images onto a projection target based on the camera parameter, an operation of determining pieces of seam information of the 360-degree images based on the camera parameter, an operation of post-processing the 360-degree images based on the seam information, and an operation of encoding the post-processed 360-degree images, wherein the operations are performed based on a 360-degree stitching function description template, the 360-degree stitching function description template includes a configuration parameter that is an array of function parameters, the configuration parameter includes a stitching parameter, a camera parameter, a feature parameter, and a projection parameter, the feature parameter includes a method for extracting respective features from multiple input images, and the projection parameter includes a projection type that is a kind of a projection plane onto which the multiple input images are projected. 
     The operation of extracting the respective feature points may include detecting keypoints from respective multiple input images using any one of one or more feature extraction methods included in the feature parameter and extracting descriptors for respective keypoints, and the feature extraction method may include at least one of feature detection methods using a Scale Invariant Feature Transform (SIFT), Speeded-Up Robust Features (SURF), a nonlinear diffusion filter, an accelerated KAZE algorithm, Oriented Features from Accelerated Segment Test (FAST) and Rotated Binary Robust Independent Elementary Feature (BRIEF) (ORB) based on fusion of an oriented FAST keypoint detector and a BRIEF descriptor, a Binary Robust Invariant Scalable Keypoints (BRISK) algorithm using scale space keypoint detection and a rotation-invariant keypoint descriptor, a feature descriptor using a BRIEF descriptor for matching points, and a feature detector using a Laplacian of Gaussian (LoG) filter of an image. 
     The feature extraction method may be a Uniform Resource Identifier (URI)-type method, wherein a Uniform Resource Name (URN) indicates the feature extraction method. 
     The feature parameter may further include a number of feature points, positions of feature points, and feature correspondence. 
     The operation of the post-processing may be performed using the number of feature points, the positions of feature points, and the feature correspondence, which are included in the feature parameter. 
     The projection type may include a table-type omnidirectional projection format list including an equirectangular format and a cubemap format, and may be configured such that, when a value of Id in the table is ‘0’, the omnidirectional projection is an equirectangular projection, when a value of Id in the table is ‘1’, the omnidirectional projection is a cubemap projection, and when a value of Id in the table is ‘2’, the omnidirectional projection has an additional projection format, and the operation of creating the 360-degree images may be performed based on a projection format included in the projection parameter. 
     In accordance with a further aspect, there is provided a method for creating a 360-degree video stitching workflow, including acquiring a request for 360-degree video stitching and 360-degree video parameters required for creation of a 360-degree video stitching workflow, acquiring a list of functions applicable to the 360-degree video stitching workflow, creating the 360-degree video stitching workflow based on functions selected from the function list, determining a number of multimedia processing entities required to process tasks constituting the 360-degree video stitching workflow and creating multiple multimedia processing entities depending on the determined number of multimedia processing entities, and allocating the tasks constituting the 360-degree video stitching workflow to the multiple multimedia processing entities, wherein the tasks constituting the 360-degree video stitching workflow are performed based on at least one parameter included in a 360-degree stitching function description template, the 360-degree stitching function description template includes a configuration parameter that is an array of function parameters, the configuration parameter includes a stitching parameter, a camera parameter, a feature parameter, and a projection parameter, the feature parameter includes a method for extracting respective features from multiple input images, and the projection parameter includes a projection type that is a kind of a projection plane onto which the multiple input images are projected. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The above and other objects, features, and advantages of the present invention will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings, in which: 
         FIG. 1  is a schematic block configuration diagram illustrating an apparatus for 360-degree video stitching according to an embodiment; 
         FIG. 2  is a diagram illustrating an image correction process according to an embodiment; 
         FIG. 3  is a diagram illustrating in detail a method for configuring a workflow for performing tasks in 360-degree video stitching according to an embodiment; and 
         FIG. 4  is a diagram illustrating the configuration of a computer system according to an embodiment. 
     
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Advantages and features of the present invention and methods for achieving the same will be clarified with reference to embodiments described later in detail together with the accompanying drawings. However, the present invention is capable of being implemented in various forms, and is not limited to the embodiments described later, and these embodiments are provided so that this invention will be thorough and complete and will fully convey the scope of the present invention to those skilled in the art. The present invention should be defined by the scope of the accompanying claims. The same reference numerals are used to designate the same components throughout the specification. 
     It will be understood that, although the terms “first” and “second” may be used herein to describe various components, these components are not limited by these terms. These terms are only used to distinguish one component from another component. Therefore, it will be apparent that a first component, which will be described below, may alternatively be a second component without departing from the technical spirit of the present invention. 
     The terms used in the present specification are merely used to describe embodiments, and are not intended to limit the present invention. In the present specification, a singular expression includes the plural sense unless a description to the contrary is specifically made in context. It should be understood that the term “comprises” or “comprising” used in the specification implies that a described component or step is not intended to exclude the possibility that one or more other components or steps will be present or added. 
     Unless differently defined, all terms used in the present specification can be construed as having the same meanings as terms generally understood by those skilled in the art to which the present invention pertains. Further, terms defined in generally used dictionaries are not to be interpreted as having ideal or excessively formal meanings unless they are definitely defined in the present specification. 
     Hereinafter, an apparatus and method for 360-degree video stitching according to embodiments will be described in detail with reference to  FIGS. 1 to 4 . 
       FIG. 1  is a schematic block configuration diagram illustrating an apparatus for 360-degree video stitching (hereinafter also referred to as a “360-degree video stitching apparatus”) according to an embodiment. 
     Referring to  FIG. 1 , a multimedia-processing entity  110 , corresponding to the 360-degree video stitching apparatus according to the embodiment, may provide a 360-degree stitched video, which is the result of performing a 360-degree stitching task on multiple images transmitted from a Network-Based Media Processing (NBMP) source (hereinafter referred to as a ‘media processing source’)  100 , based on parameters received together with the images, to an application  120  for processing a 360-degree video. 
     First, the media processing source  100  may include configuration information  102 , a media source  104 , and metadata  106 . 
     The configuration information  102  and the metadata  106  indicate information related to multiple input video streams. 
     The media source  104  includes raw images, which are contents of the 360-degree video. Here, the media source  104  may include both texture images and depth images, or may include only texture images. 
     The multimedia-processing entity  110  may be set by the workflow manager  204  of  FIG. 3 , which will be described later. Here, if it is determined that a video-stitching workflow cannot be processed by a single processing entity, two or more multimedia-processing entities  110  may be set. If it is determined that a video-stitching workflow can be processed by a single processing entity, only one multimedia-processing entity  110  may be set. The multimedia-processing entity  110  may be created in the cloud platform  208  of  FIG. 3  by the workflow manager  204  of  FIG. 3 . 
     When two or more multimedia-processing entities  110  are set, tasks corresponding to steps  130  to  142  of  FIG. 1  may be allocated to the multiple multimedia-processing entities  110 . Therefore, video-stitching tasks requiring a greater amount of computing resources may be processed by the multiple multimedia-processing entities  110  at high speed. 
     When the video-stitching tasks are processed by the multiple multimedia-processing entities  110 , configuration information of detailed tasks related to video stitching, such as image decoding, feature point extraction, camera parameter extraction, image projection, seam information extraction, blending, post-processing, and image encoding, input and output descriptors, and metadata are required in order to allocate the tasks. The information is used to process interfaces between various tasks in multiple processing entities. 
     In accordance with an embodiment, pieces of detailed information and parameters applied to respective detailed tasks in this way may be defined by a 360-degree video stitcher function description template, which will be described later. Thus, the multimedia-processing entity  110  may create a single 360-degree video by stitching the features of the multiple input images based on at least one parameter included in the 360-degree stitching function description template. A detailed description of the 360-degree stitching function description template according to the embodiment will be made later with reference to Tables 2 to 7, which will be described later. 
     Prior to the description thereof, detailed steps (steps  130  to  142 ) of a method for 360-degree video stitching will be described in detail. 
     At step  130 , an encoded video stream is decoded. In detail, at step  130 , through operations by several threads or Graphics Processing Units (GPUs), encoded raw images from the media source  104  are decoded. Also, as well as the media source  104 , an encoded media data feed from cloud parameters may be used in decoding at step  130 . The raw images are original images to which post-processing or the like is not applied. 
     At step  132 , feature points are extracted from the raw images decoded at step  130 . 
     The feature points are points which are references based on which respective images are caused to match each other when a specific object is tracked or recognized in multiple images. By analyzing the values of pixels distributed based on the feature points, similar portions in different images are detected. Therefore, at step  132 , feature points in neighboring raw images are compared with each other, and thus corresponding points between the neighboring raw images may be determined. Further, based on the corresponding points, a stitching process may be performed between the neighboring raw images. 
     Here, at step  132 , keypoints may be detected from respective multiple input images using one of the feature extraction methods included in the feature parameters (see Table  6 , which will be described later) defined in an embodiment, and descriptors for the keypoints may be extracted. Here, the feature extraction may be performed using a feature extraction method including at least one of feature detection methods using a Scale Invariant Feature Transform (SIFT), Speeded-Up Robust Features (SURF), a nonlinear diffusion filter, an accelerated KAZE algorithm, Oriented Features from Accelerated Segment Test (FAST) and Rotated Binary Robust Independent Elementary Feature (BRIEF) (ORB) based on fusion of an oriented FAST keypoint detector and a BRIEF descriptor, a Binary Robust Invariant Scalable Keypoints (BRISK) algorithm using scale space keypoint detection and a rotation-invariant keypoint descriptor, a feature descriptor using a BRIEF descriptor for matching points, and a feature detector using a Laplacian of Gaussian (LoG) filter of an image. 
     Here, the feature parameters defined at step  132  may be continuously used at subsequent steps if necessary. 
     At step  134 , extrinsic and intrinsic camera parameters are calculated based on the feature points and corresponding point sets. The extrinsic camera parameters include capture angles, capture locations, etc. of each camera. The intrinsic camera parameters include the focal length of each camera, principal point, a skew coefficient, etc. 
     In accordance with an embodiment, by analyzing the feature points and corresponding points, the difference between the capture angles and the difference between the capture locations of the two cameras used to capture two neighboring images may be calculated. Therefore, the extrinsic camera parameters may be determined based on the feature points and the corresponding points. 
     In accordance with an embodiment, by analyzing the feature points and corresponding points, the differences between the focal lengths, the principal points, the skew coefficients, etc. of the two cameras may be calculated. Therefore, the intrinsic camera parameters may be determined based on the feature points and the corresponding points. 
     Further, at step  134 , an image distortion correction process based on the camera parameters may be selectively performed. In an embodiment, the image distortion correction process may be a process for correcting image distortion depending on lens properties. 
     At step  136 , based on the camera parameters determined at step  134 , the raw images decoded at step  130  are projected onto an image projection plane. In detail, the images are geometrically aligned based on the camera parameters and the image projection plane. Further, the geometrically aligned images are projected onto the image projection plane. As a result of the image projection, 360-degree images are created. 
     Here, step  136  may be performed based on the projection parameters defined in an embodiment (see Table 7, which will be described later). That is, the decoded raw images may be projected into one of various types of projection planes including a sphere, a cube, a polyhedron, and an EquiRectangular Projection (ERP). 
     By means thereof, various types of input streams may be covered. That is, the range of output images of the stitching parameters (output-coverage) of Table 3, which will be described later, is defined as “Coverage of the output image may be specified by following parameters defined in OMAF 7.3.5, in the following order: [coverage_shape_type, centre_azimuth, centre_elevation, centre_tilt, azimuth_range, elevation_range]”. That is, the output coverage is specified by parameters defined in OMAF(“ISO/IEC 23090-2:2019 Information technology—Coded representation of immersive media—Part 2: Omnidirectional media format”, January 2019.) which deals with various projection formats such as equirectangular and cubemap projections. By means of protection parameters according to an embodiment, even the 360-degree stitching function may provide parameters for various projection formats, thus covering various types of input streams dealt with in OMAF. 
     At step  138 , the seams of neighboring images are extracted based on stitching parameters initially extracted from the 360-degree images created at step  136 . Here, the stitching parameters may include seam position parameters indicating the positions of seams, or seam mask parameters indicating areas corresponding to seams in the images. The stitching parameters for seams may be determined based on the camera parameters determined at step  134 . 
     At step  138 , the stitching parameters may be updated when an object that is not present at a previous time point suddenly appears in an overlapping region between neighboring images. Therefore, depending on a change in the overlapping region, the seam position parameters or the seam mask parameters may be changed. 
     At step  140 , blending, color correction, and noise filtering processes may be performed on the overlapping regions of the 360-degree images, created at step  136 . The blending, color correction, and noise filtering processes may be performed based on the seam information extracted at step  138 . 
     The blending process may be a process for processing images so that the 360-degree images are visually perceived as a single continuous video by blending two partial images corresponding to the overlapping regions of the 360-degree images. The color correction process may be a process for adjusting color parameters such as color, brightness, and saturation so that respective images constituting the 360-degree video are perceived as a single video. The noise-filtering process may be a process for removing noise from images. Based on the process at step  140 , the 360-degree images created from the multiple images may be visually perceived as a single video. 
       FIG. 2  is a diagram illustrating an image correction process according to an embodiment. 
     Referring to  FIG. 2 , in most video-stitching algorithms, homography is calculated using matching feature points randomly selected from sets of matching feature points, after which it is determined whether most feature points satisfy a homography transformation model. However, when the matching feature points are randomly selected in this way, the selected feature points appear at locally concentrated locations, and thus the calculated homography may not be global. Therefore, in this case, matching feature points may be reselected in order to update the homography transformation model so that the homography transformation model is more global. Therefore, in order to correct the above-described stitching errors, there is a need to define feature parameters as information required for post-processing, such as reselection of feature correspondences or adjustment of seam information caused by updating. 
     Accordingly, in an embodiment, the feature parameters may be defined as function parameters for configuration parameters, and at step  140 , the corresponding process may be performed based on the feature parameters defined in an embodiment. 
     Here, the feature parameters may further include the number of feature points (i.e., feature point number), the positions of the feature points (i.e., feature point positions), and correspondence between the feature points (i.e., feature point correspondence or feature correspondence). 
     At step  142 , the 360-degree images processed at step  140  are encoded. The encoding at step  142  may be performed based on cloud parameters. Further, the encoded 360-degree images may be output as a 360-degree video by a cloud platform. 
     Through steps  130  to  142 , a video stream composed of encoded 360-degree images is created from a video stream composed of encoded two-dimensional (2D) images. 
     In an embodiment, the order of steps  130  to  142  may be partially changed, and some steps may be skipped. Also, an image-processing technique, which is typical in image-processing fields, may be applied to intermediate steps between steps  130  to  142 . Commands corresponding to steps  130  to  142  may be executed by the cloud platform  208  of  FIG. 3 . 
     Hereinafter, descriptions, input, and output of respective tasks at steps  130  to  142  are explained in the following Table 1. 
     
       
         
           
               
               
               
               
             
               
                 TABLE 1 
               
               
                   
               
               
                 Task 
                 Description 
                 Input 
                 Output 
               
               
                   
               
             
            
               
                 Decoding 
                 Involves video type conversion from 
                 Encoded media data 
                 Decoded media 
               
               
                 (130) 
                 encoded video stream feed from media 
                 feed from media 
                 data such as raw 
               
               
                   
                 source to raw video stream using several 
                 source, and media and 
                 images 
               
               
                   
                 threads or GPUs. 
                 cloud parameters 
               
               
                 Feature 
                 Involves feature-point extraction and 
                 Raw images to be 
                 Extracted feature 
               
               
                 point 
                 corresponding-point-matching processes 
                 aligned(stitched), and 
                 points and 
               
               
                 extraction 
                 between neighboring raw images. 
                 feature extraction 
                 correspondence sets 
               
               
                 (132) 
                   
                 method 
               
               
                 Camera 
                 Involves extrinsic and intrinsic camera 
                 Extracted feature 
                 Extrinsic/intrinsic 
               
               
                 parameter 
                 parameter calculation using feature points 
                 points and 
                 camera parameters 
               
               
                 extraction 
                 and correspondence sets. Optionally, 
                 correspondence sets 
                 and images 
               
               
                 (134) 
                 involves image distortion correction 
                   
                 corrected for lens 
               
               
                   
                 process using camera parameters. 
                   
                 distortion 
               
               
                 Projection 
                 Involves image projection on a sphere, 
                 Images corrected for 
                 Projected 360- 
               
               
                 (136) 
                 cube, polyhedron, and ERP with geometric 
                 lens distortion, and 
                 degree images 
               
               
                   
                 alignment based on the camera parameters. 
                 projection and camera 
               
               
                   
                   
                 parameters 
               
               
                 Seam 
                 Involves seam extraction or update process 
                 Projected 360-degree 
                 Extracted or 
               
               
                 information 
                 required when object suddenly appears in 
                 images and initially 
                 updated stitching 
               
               
                 extraction 
                 overlapping region. 
                 extracted stitching 
                 parameters 
               
               
                 (138) 
                   
                 parameters including 
                 including seam 
               
               
                   
                   
                 seam position or seam 
                 position or seam 
               
               
                   
                   
                 mask 
                 mask 
               
               
                 Blending 
                 Involves blending, color correction, and 
                 Projected 360-degree 
                 Blended and post- 
               
               
                 and post- 
                 noise filtering in overlapping region of 
                 images and stitching 
                 processed 360- 
               
               
                 processing 
                 projected 360-degree images. 
                 parameters 
                 degree images 
               
               
                 (140) 
               
               
                 Encoding 
                 Involves video encoding of blended and 
                 Blended and post- 
                 Encoded 360- 
               
               
                 (142) 
                 post-processed 360-degree images using 
                 processed 360-degree 
                 degree video. 
               
               
                   
                 multiple threads or GPUs. 
                 images and media and 
                 This could be 
               
               
                   
                   
                 cloud parameters 
                 output of cloud 
               
               
                   
                   
                   
                 platform. 
               
               
                   
               
            
           
         
       
     
     The media service provider may provide a 360-degree video stitching service to the user by utilizing the workflow corresponding to the above-described steps  130  to  142 . 
     The task directory of the media service provider may include details of the respective tasks in Table 1. Further, the workflow manager  204  of  FIG. 3  may select respective tasks in Table 1 and may then prepare the workflow, described above with reference to  FIG. 1 . 
     Hereinafter, a workflow for performing video-stitching tasks in a media system for distributing the video stitching process based on steps  130  to  142  described above in  FIG. 1  to multiple multimedia-processing entities  110  will be described. 
       FIG. 3  illustrates in detail a method for configuring a workflow for performing tasks in 360-degree video stitching according to an embodiment. 
     The method of  FIG. 3  is performed through interworking between some components of a media system for video stitching depending on multiple multimedia processing entities according to an embodiment, and some components include a media source (NBMP Source)  202 , a workflow manager  204 , a function registry  206 , a cloud platform  208 , and a media task manager (NBMP Task)  210 . 
     Here, the media source  202 , the workflow manager  204 , the function registry  206 , and the media task manager  210  may be operated by different respective processors. Alternatively, all or some of the workflow manager  204 , the media source  202 , the function registry  206 , and the media task manager  210  may be operated by one processor. Further, each of the workflow manager  204 , the media source  202 , the function registry  206 , and the media task manager  210  may include a memory device for storing information for video stitching. 
     The workflow manager  204  may create a workflow for video stitching. Also, the workflow manager  204  may create multiple multimedia-processing entities for performing multiple tasks, included in the workflow, in the cloud platform  208 . 
     The cloud platform  208  includes multiple processors. Also, the tasks required for video stitching may be performed by the multiple multimedia-processing entities set in the cloud platform  208 . 
     Below, the workflow configuration method for video stitching performed by the workflow manager  204  will be described in detail. 
     Referring to  FIG. 3 , at step S 302 , the media source  202  creates a workflow for video stitching together with a video-stitching request using a CreateWorkflow Application Programming Interface (API). The CreateWorkflow API is a dedicated API for creating a workflow. Also, the media source  202  may create a workflow description document for describing the created workflow and transmit the workflow description document to the workflow manager  204 . 
     The workflow manager  204  creates the workflow based on the received workflow description document. 
     At step S 304 , the workflow manager  204  transmits a query or a query set to the function registry  206  so as to search for functions to be deployed in the workflow for video stitching. The query or query set describes the functions of the workflow required by the workflow description document created at step S 302 . Also, the function registry  206  stores a list of functions supported by the media system. 
     At step S 306 , for each query, the function registry  206  provides functions that are usable for video stitching, descriptions thereof, and a list of configuration information to the workflow manager  204 . The function registry  206  compares the description of the list of functions supported by the media system with the description of the functions of the workflow described in the query or query set. 
     Further, the function registry  206  may provide a list of functions applicable to the workflow, among the functions supported by the media system, to the workflow manager  204 . 
     At step S 308 , the workflow manager  204  selects the functions required for the workflow from the list of functions provided from the function registry  206  at step S 306 . Further, the workflow manager  204  may access the cloud platform  208  to create one or more multimedia-processing entities in the cloud platform  208  in accordance with the requirements of the selected functions. 
     At step S 310 , the cloud platform  208  confirms the creation of the one or more multimedia-processing entities. Further, the cloud platform  208  may confirm the creation of network access information related to the one or more multimedia-processing entities. The cloud platform  208  transfers information indicating that the one or more multimedia-processing entities are created to the workflow manager  204 . 
     At step S 312 , the workflow manager  204  creates information about the configuration of each task. Further, the workflow manager  204  transmits the configuration information of each task to the task manager  210 . In order to transmit the configuration information to the task manager  210 , a task API may be used. The task API may be a dedicated API for creating the configuration information. 
     At step S 314 , the task manager  210  determines whether configuration of each task has been successfully performed. If it is determined that configuration of the current task has been successfully performed, the task manager  210  generates access information to allow the workflow manager  204  to access the next task. Further, the task manager  210  generates access information for the workflow manager  204 . Steps  312  and  314  are performed for each task, and thus whether successful configuration of the entire workflow has been performed may be determined. 
     At step S 316 , the workflow manager  204  confirms the creation of the workflow, and notifies the media source  202  that media processing for video stitching can start. Further, the media source  104  provided by the media source  202  may be processed based on the workflow, and thus a 360-degree video can be created. 
     As described above, the functions to be used in the workflow may be configured, a suitable number of multimedia-processing entities for performing the tasks in the workflow may be created, and a large number of parameters for respective tasks in the workflow may be required in order to determine the configuration information of respective workflow tasks. 
     Table 2 below shows an example of a parameter list in a 360-degree stitching function description template. 
     
       
         
           
               
               
               
               
             
               
                 TABLE 2 
               
               
                   
               
               
                   
                 Parameter 
                   
                   
               
               
                 Descriptor 
                 Name 
                 Type 
                 Description 
               
               
                   
               
             
            
               
                 General 
                 Description 
                 string 
                 stitches multiple input frames into 360-degree 
               
               
                   
                   
                   
                 equirectangular projected output. 
               
               
                   
                 nbmp-brand 
                 String 
                 “urn:mpeg:mpegi:nbmp:2020:360-degree stitcher” 
               
               
                   
                 input-ports 
                 Array of 
                 Multiple input ports shall be defined for input media 
               
               
                   
                   
                 objects 
                 (e.g. images or videos). Specific media types supported 
               
               
                   
                   
                   
                 by the implementation shall be defined by Input 
               
               
                   
                   
                   
                 Descriptor (e.g. mime-type and the corresponding 
               
               
                   
                   
                   
                 media type parameters). 
               
               
                   
                 output-ports 
                 Array of 
                 One output port shall be defined for monoscopic output 
               
               
                   
                   
                 objects 
                 (image or video). Any other optional outputs for other 
               
               
                   
                   
                   
                 output types shall be defined if supported. Specific 
               
               
                   
                   
                   
                 media types supported by the implementation shall be 
               
               
                   
                   
                   
                 defined by Output Descriptor (e.g. mime-type and the 
               
               
                   
                   
                   
                 corresponding media type parameters). The output 
               
               
                   
                   
                   
                 media type shall be the same as the input media type. 
               
               
                 Processing 
                 Keywords 
                 Array of 
                 [ 
               
               
                   
                   
                 strings 
                 “360-degree panoramic stitcher”, 
               
               
                   
                   
                   
                 “360-degree stitcher” 
               
               
                   
                   
                   
                 ] 
               
               
                 Configuration 
                 Parameters 
                 Array of 
                 Function parameters: 
               
               
                   
                   
                 parameters 
                 stitching parameters 
               
               
                   
                   
                   
                 camera parameters 
               
               
                   
                   
                   
                 feature parameters 
               
               
                   
                   
                   
                 projection parameters 
               
               
                   
               
            
           
         
       
     
     Referring to Table 2, the 360-degree stitching function description template according to an embodiment may include a general descriptor, a processing descriptor, and a configuration descriptor. 
     The configuration descriptor indicates sub-parameters for the configuration information of respective tasks required for a video-stitching workflow, and includes various function parameters. 
     For example, stitching parameters may be represented by array-format data including sub-parameters related to seam positions, seam masks, etc. 
     Also, the camera parameters may be represented by array-format data including sub-parameters related to the focal length of each camera, the principal point, the skew coefficient, and the translation and rotation of each camera. 
     Further, the feature parameters proposed according to an embodiment may be represented by array-format data, including sub-parameters related to a feature extraction method, a feature point number, feature point positions, and feature correspondence. 
     Furthermore, the projection parameters proposed according to an embodiment may be represented by array-format data, including sub-parameters related to a projection type or the like. 
     Below, examples of parameters required for respective tasks in video stitching are described in the following Tables 3 to 7. 
     Table 3 shows examples of stitching parameters. 
     
       
         
           
               
               
               
               
               
             
               
                 TABLE 3 
               
               
                   
               
               
                   
                   
                   
                   
                 Valid 
               
               
                 Name 
                 Definition 
                 Unit 
                 Type 
                 Range 
               
               
                   
               
             
            
               
                 stitching- 
                 Output panoramic type, one of “monoscopic” and 
                 N/A 
                 String 
                 N/A 
               
               
                 type 
                 “stereoscopic”. 
               
               
                   
                 The default value is “monoscopic”. 
               
               
                 camera- 
                 Camera and capture-related parameters 
                 N/A 
                 Array of 
                 N/A 
               
               
                 parameters 
                   
                   
                 camera 
               
               
                   
                   
                   
                 objects 
               
               
                 v-seam- 
                 Interpolated vertical areas where overlapping fields of view 
                 degree 
                 Array of 
                 N/A 
               
               
                 positions 
                 occur between neighboring frames. The number of positions 
                   
                 numbers 
               
               
                   
                 is the same as the number of overlapping portions. Each 
               
               
                   
                 position can be represented by a pair of position numbers in 
               
               
                   
                 degrees (starting and ending degrees), and the total size of 
               
               
                   
                 the array equals the number of seams multiplied by 2. 
               
               
                 h-seam- 
                 Interpolated horizontal areas where overlapping fields of 
                 degree 
                 Array of 
                 N/A 
               
               
                 positions 
                 view occur between neighboring frames. The number of 
                   
                 numbers 
               
               
                   
                 positions is the same as the number of overlapping portions. 
               
               
                   
                 Each position can be represented by a pair of position 
               
               
                   
                 numbers in degrees (starting and ending degrees), and the 
               
               
                   
                 total size of the array equals the number of seams multiplied 
               
               
                   
                 by 2. 
               
               
                 seam-mask 
                 Interpolated area locations may be represented by a mask 
                 URL 
                 String 
                 N/A 
               
               
                   
                 image, which has a value of only 1 or 0. 
               
               
                   
                 This parameter is optional. 
               
               
                 stitching- 
                 A specific stitching algorithm may be specified for fast or 
                 N/A 
                 String 
                 N/A 
               
               
                 method 
                 fine stitching approaches. The value can be one of “fast”, 
               
               
                   
                 “normal”, and “fine”. The default value is “fast”. 
               
               
                 seam- 
                 The seam margin may be expanded in degree. The size of 
                 pixel 
                 Array of 
                 N/A 
               
               
                 extent- 
                 the array must be half of the seam position. 
                   
                 numbers 
               
               
                 freedom 
                 The default value for each seam is 0 (zero). 
               
               
                 convergence- 
                 Convergence distance selection criteria may be specified. 
                 N/A 
                 String 
                 N/A 
               
               
                 distance 
                 This determines the handling of near and far detail 
               
               
                   
                 reproduction around seam positions. 
               
               
                   
                 The value is one of “auto”, “near”, “far”. The default value is 
               
               
                   
                 “auto”. 
               
               
                 camera- 
                 The weighting value of the input to a stitching process. The 
                 N/A 
                 Array of 
                    0 . . . 100 
               
               
                 weighting 
                 higher the weighting value is, the more important the input 
                   
                 numbers 
               
               
                   
                 is. The value shall be normalized to a scale from 0 to 100. 
               
               
                   
                 The output quality changes when the value is changed. The 
               
               
                   
                 value for each input shall be ordered the same as the order of 
               
               
                   
                 the input ports, and the size of the array is equal to the 
               
               
                   
                 number of input media streams. 
               
               
                 output- 
                 Coverage of the output image may be specified by the 
                 degree 
                 Array of 
                 −360 . . . 360 
               
               
                 coverage 
                 following parameters, defined in OMAF 7.3.5, in the 
                   
                 numbers 
               
               
                   
                 following order: [coverage_shape_type, centre_azimuth, 
               
               
                   
                 centre_elevation, centre_tilt, azimuth_range, 
               
               
                   
                 elevation_range] 
               
               
                   
               
            
           
         
       
     
     Table 4 shows examples of camera parameters, specifically camera object parameters. 
     
       
         
           
               
               
               
               
               
             
               
                 TABLE 4 
               
               
                   
               
               
                   
                   
                   
                   
                 Valid 
               
               
                 Name 
                 Definition 
                 Unit 
                 Type 
                 Range 
               
               
                   
               
             
            
               
                 camera- 
                 Intrinsic camera lens parameters representing the optical 
                 N/A 
                 Object 
                 N/A 
               
               
                 intrinsic 
                 center and focal length of the camera, as well as the skew 
               
               
                   
                 coefficient 
               
               
                 camera- 
                 Camera transformation parameters representing a rigid 
                 N/A 
                 Array of 
                 N/A 
               
               
                 extrinsic 
                 transformation from a 3-D world coordinate system to 
                   
                 numbers 
               
               
                   
                 the camera&#39;s 3-D coordinate system. The structure is a 
               
               
                   
                 4 × 4 homogeneous transformation matrix in an array 
               
               
                   
                 form, and is in row major order. 
               
               
                 camera- 
                 Camera shutter type, one of “rolling” and “global”. 
                 N/A 
                 String 
                 N/A 
               
               
                 shutter- 
                 The default value is “rolling”. 
               
               
                 type 
               
               
                 camera- 
                 Camera shutter synchronization skew value with respect 
                 Millisecond 
                 Number 
                 N/A 
               
               
                 sync-skew 
                 to the first camera when multiple cameras are used. 
               
               
                   
                 The default value is 0. 
               
               
                 capture- 
                 Captured scene type, one of “indoor”, “outdoor”, and 
                 N/A 
                 String 
                 N/A 
               
               
                 environment 
                 “unknown/unspecified”. 
               
               
                   
                 The default is “unknown”. 
               
               
                 shooting- 
                 Capture shooting type, one of “long shoot”, “medium 
                 N/A 
                 String 
                 N/A 
               
               
                 type 
                 shoot”, “close up”, and “unspecified”. 
               
               
                   
                 The default is “unspecified”. 
               
               
                   
               
            
           
         
       
     
     Table 5 shows examples of camera parameters, especially intrinsic camera object parameters. 
     
       
         
           
               
               
               
               
               
             
               
                 TABLE 5 
               
               
                   
               
               
                   
                   
                   
                   
                 Valid 
               
               
                 Name 
                 Definition 
                 Unit 
                 Type 
                 Range 
               
               
                   
               
             
            
               
                 camera- 
                 Camera type, one of “pinhole”, “fisheye”, and 
                 N/A 
                 String 
                 N/A 
               
               
                 type 
                 “omnidirectional”. 
               
               
                   
                 The default value is “pinhole”. 
               
               
                 focal- 
                 Focal length (x, y) 
                 pixel 
                 Array of 
                 N/A 
               
               
                 length 
                   
                   
                 numbers 
               
               
                 principal- 
                 Principal point (optical center) (x, y) 
                 pixel 
                 Array of 
                 N/A 
               
               
                 point 
                   
                   
                 numbers 
               
               
                 distortion 
                 Coefficients of various radial and other distortions. The 
                 N/A 
                 Array of 
                 N/A 
               
               
                   
                 coefficient array follows the structure used by OpenCV, 
                   
                 numbers 
               
               
                   
                 such as a one-dimensional vector of (k 1 , k 2 , p 1 , p 2  [, k 3  [, k 4 , 
               
               
                   
                 k 5 , k 6  [, e1, e2 [, e3 . . . ]]]]), with lengths such as 4, 5, 8, 10 
               
               
                   
                 and higher. The “e” coefficients are parameters for Entrance 
               
               
                   
                 Pupil (EP) distortion correction, which is defined in MPEG-I 
               
               
                   
                 Part 7 and OMAF. 
               
               
                   
               
            
           
         
       
     
     Table 6 shows examples of feature parameters. 
     
       
         
           
               
               
               
               
               
             
               
                 TABLE 6 
               
               
                   
               
               
                   
                   
                   
                   
                 Valid 
               
               
                 Name 
                 Definition 
                 Unit 
                 Type 
                 Range 
               
               
                   
               
             
            
               
                 feature- 
                 URN indicates the feature extraction method and takes one 
                 N/A 
                 URI 
                 N/A 
               
               
                 extraction- 
                 of the following values according to the feature extraction 
               
               
                 method 
                 methods in OpenCV. 
               
               
                   
                 1. urn:opencv:cv:feature2d:sift 
               
               
                   
                 extracting keypoints and computing descriptors using the 
               
               
                   
                 Scale Invariant Feature Transform (SIFT) algorithm 
               
               
                   
                 2. urn:opencv:cv:feature2d:surf 
               
               
                   
                 extracting Speeded-Up Robust Features (SURF) from an 
               
               
                   
                 image 
               
               
                   
                 3. urn:opencv:cv:feature2d:kaze 
               
               
                   
                 keypoint detector and descriptor extractor using nonlinear 
               
               
                   
                 diffusion filter in the scale space 
               
               
                   
                 4. urn:opencv:cv:feature2d:akaze 
               
               
                   
                 keypoint detector and descriptor extractor using 
               
               
                   
                 accelerated KAZE algorithm 
               
               
                   
                 5. urn:opencv:cv:feature2d:orb 
               
               
                   
                 keypoint detector and descriptor extractor using ORB 
               
               
                   
                 (Oriented FAST and Rotated BRIEF) based on the fusion of 
               
               
                   
                 Oriented FAST keypoint detector and BRIEF descriptor 
               
               
                   
                 6. urn:opencv:cv:feature2d:brisk 
               
               
                   
                 keypoint detector and descriptor extractor using BRISK 
               
               
                   
                 (Binary Robust Invariant Scalable Keypoints) algorithm that 
               
               
                   
                 utilizes scale space keypoint detection and rotation invariant 
               
               
                   
                 keypoint descriptor 
               
               
                   
                 7. urn:opencv:cv:feature2d:brief 
               
               
                   
                 feature descriptor using Binary Robust Independent 
               
               
                   
                 Elementary Feature (BRIEF) descriptor for matching points 
               
               
                   
                 8. urn:opencv:cv:feature2d:log 
               
               
                   
                 feature detector using Laplacian of Gaussian(LoG) filter of 
               
               
                   
                 an image 
               
               
                   
                 9. ‘other URN’ 
               
               
                   
                 other URN indicating other feature extraction method 
               
               
                   
                 NOTE 
               
               
                   
                 Additional methods may become available. We 
               
               
                   
                 need an extensive mechanism to support them. 
               
               
                   
               
            
           
         
       
     
     Table 7 illustrates examples of projection parameters. 

 
     Table 8 shows an embodiment of a JSON schema in which various function parameters, as sub-parameters for the configuration information of tasks required for video-stitching workflow included in the configuration descriptor, are defined in a JavaScript language. Such a JSON schema may be transferred to the foregoing multimedia-processing entity and used for a 360-degree video stitching task. 
     
       
         
           
               
             
               
                 TABLE 8 
               
               
                   
               
             
            
               
                 { 
               
               
                  “parameters”: [ 
               
               
                   { 
               
               
                    “name”: “stitching-type”,  
               
               
                    “id”: 1,  
               
               
                    “datatype”: “string”,  
               
               
                    “values”: [ 
               
               
                     { 
               
               
                      “id”: 11,  
               
               
                      “restrictions”: [ 
               
               
                       “monoscopic”  
               
               
                      ] 
               
               
                     }, 
               
               
                     { 
               
               
                      “id”: 12,  
               
               
                      “restrictions”: [ 
               
               
                       “stereoscopic”  
               
               
                      ] 
               
               
                     } 
               
               
                    ] 
               
               
                   },  
               
               
                   { 
               
               
                    “name”: “camera-parameters”,  
               
               
                    “id”: 2,  
               
               
                    “datatype”: “array”,  
               
               
                    “schema”: { 
               
               
                     “type”: “object”,  
               
               
                     “properties”: { 
               
               
                      “camera-intrinsic”: { 
               
               
                       “type”: “object”,  
               
               
                       “$ref”: “#/definitions/camera-intrinsic”  
               
               
                      },  
               
               
                      “camera-extrinsic”: { 
               
               
                       “type”: “array”,  
               
               
                       “items”: { 
               
               
                        “type”: “number”,  
               
               
                        “minItems”: 16,  
               
               
                        “maxItems”: 16  
               
               
                       } 
               
               
                      },  
               
               
                      “camera-shutter-type”: { 
               
               
                       “type”: “string”,  
               
               
                       “desciption”: “The camera shutter type. One of ‘rolling’,  
               
               
                       and ‘global’. Default is ‘rolling’” 
               
               
                      },  
               
               
                      “camera-sync-skew”: { 
               
               
                       “type”: “number”  
               
               
                      },  
               
               
                      “capturing-environment”: { 
               
               
                       “type”: “string”  
               
               
                      },  
               
               
                      “shooting-type”: { 
               
               
                       “type”: “string”  
               
               
                      } 
               
               
                     } 
               
               
                    } 
               
               
                   },  
               
               
                   { 
               
               
                    “name”: “v-seam-positions”,  
               
               
                    “id”: 3,  
               
               
                    “datatype”: “array”,  
               
               
                    “schema”: { 
               
               
                     “type”: “number”  
               
               
                    } 
               
               
                   }, 
               
               
                   { 
               
               
                    “name”: “h-seam-positions”,  
               
               
                    “id”: 4,  
               
               
                    “datatype”: “array”,  
               
               
                    “schema”: { 
               
               
                     “type”: “number”  
               
               
                    } 
               
               
                   }, 
               
               
                   { 
               
               
                    “name”: “seam-mask”,  
               
               
                    “id”: 5,  
               
               
                    “datatype”: “string”  
               
               
                   }, 
               
               
                   { 
               
               
                    “name”: “stitching-method”,  
               
               
                    “id”: 6,  
               
               
                    “datatype”: “string”  
               
               
                   }, 
               
               
                   { 
               
               
                    “name”: “seam-extent-freedom”,  
               
               
                    “id”: 7,  
               
               
                    “datatype”: “array”,  
               
               
                    “schema”: { 
               
               
                     “type”: “number”  
               
               
                    } 
               
               
                   }, 
               
               
                   { 
               
               
                    “name”: “convergence-distance”,  
               
               
                    “id”: 8,  
               
               
                    “datatype”: “string”  
               
               
                   }, 
               
               
                   { 
               
               
                    “name”: “camera-weighting”,  
               
               
                    “id”: 9,  
               
               
                    “datatype”: “array”,  
               
               
                    “schema”: { 
               
               
                     “type”: “integer”  
               
               
                    } 
               
               
                   }, 
               
               
                   { 
               
               
                    “name”: “output-coverage”,  
               
               
                    “id”: 10,  
               
               
                    “datatype”: “array”,  
               
               
                    “schema”: { 
               
               
                     “type”: “number”  
               
               
                    } 
               
               
                   }, 
               
               
                   { 
               
               
                    “name”: “feature-parameter”,  
               
               
                    “id”: 11,  
               
               
                    “datatype”: “object”,  
               
               
                    “schema”: { 
               
               
                       “$ref”: “#/definitions/feature-parameter”  
               
               
                    } 
               
               
                   }, 
               
               
                   { 
               
               
                    “name”: “projection-parameters”,  
               
               
                    “id”: 12,  
               
               
                    “datatype”: “array”,  
               
               
                    “schema”: { 
               
               
                       “$ref”: “#/definitions/projection-parameter”  
               
               
                    } 
               
               
                   } 
               
               
                  ],  
               
               
                  “definitions”: { 
               
               
                   “camera-intrinsic”: { 
               
               
                    “type”: “object”,  
               
               
                    “properties”: { 
               
               
                     “camera-type”: { 
               
               
                      “type”: “string”,  
               
               
                      “description”: “Camera type. One of ‘pinhole’, ‘fisheye’,  
               
               
                      ‘omnidirectional’. Default is ‘pinhole’” 
               
               
                     },  
               
               
                     “focal-length”: { 
               
               
                      “type”: “array”,  
               
               
                      “items”: { 
               
               
                       “type”: “number”,  
               
               
                       “minItems”: 2,  
               
               
                       “maxItems”: 2  
               
               
                      }  
               
               
                     }, 
               
               
                     “principal-point”: { 
               
               
                      “type”: “array”,  
               
               
                      “items”: { 
               
               
                        “type”: “number”,  
               
               
                       “minItems”: 2,  
               
               
                       “maxItems”:2  
               
               
                      } 
               
               
                     }, 
               
               
                     “distortion”: { 
               
               
                      “type”: “array”,  
               
               
                      “items”: { 
               
               
                       “type”: “number”,  
               
               
                       “minItems”: 4  
               
               
                      } 
               
               
                     } 
               
               
                    } 
               
               
                   }, 
               
               
                   “feature-parameter”: { 
               
               
                    “type”: “object”,  
               
               
                    “properties”: { 
               
               
                     “feature-extraction-method”: { 
               
               
                       “type”: “string”,  
               
               
                       “format”: “uri”,  
               
               
                       “patternProperties”: { 
               
               
                         “{circumflex over ( )}urn:”: (“type”: “string”} 
               
               
                       }, 
               
               
                      “additionalProperties”: false  
               
               
                     } 
               
               
                    }  
               
               
                   }, 
               
               
                   “projection-parameter”: { 
               
               
                    “type”: “string”,  
               
               
                    “properties”: { 
               
               
                     “projection-type”: { 
               
               
                      “type”: “string”,  
               
               
                      “description”: “Projection type. One of Equirectangular,  
               
               
                      Cubemap, or other projection type. Default is  
               
               
                      Equirectangular.”  
               
               
                     } 
               
               
                    } 
               
               
                   } 
               
               
                  } 
               
               
                 } 
               
               
                   
               
            
           
         
       
     
       FIG. 4  is a diagram illustrating the configuration of a computer system according to an embodiment. 
     An apparatus for 360-degree video stitching according to an embodiment may be implemented in a computer system  1000 , such as a computer-readable storage medium. 
     The computer system  1000  may include one or more processors  1010 , memory  1030 , a user interface input device  1040 , a user interface output device  1050 , and storage  1060 , which communicate with each other through a bus  1020 . The computer system  1000  may further include a network interface  1070  connected to a network  1080 . Each processor  1010  may be a Central Processing Unit (CPU) or a semiconductor device for executing programs or processing instructions stored in the memory  1030  or the storage  1060 . Each of the memory  1030  and the storage  1060  may be a storage medium including at least one of a volatile medium, a nonvolatile medium, a removable medium, a non-removable medium, a communication medium, and an information delivery medium. For example, the memory  1030  may include Read-Only Memory (ROM)  1031  or Random Access Memory (RAM)  1032 . 
     In accordance with embodiments, 360-degree video stitching may be performed based on feature parameters defined as information for post-processing of stitching results required in order to correct errors in 360-degree video stitching, thus improving the quality of 360-degree stitched video. 
     Further, in accordance with embodiments, 360-degree video stitching may be performed in various types of projection formats, and thus 360-degree video stitching functions may be improved. 
     Although the embodiments of the present invention have been disclosed with reference to the attached drawing, those skilled in the art will appreciate that the present invention can be implemented in other concrete forms, without changing the technical spirit or essential features of the invention. Therefore, it should be understood that the foregoing embodiments are merely exemplary, rather than restrictive, in all aspects.