KR20200111639A - Method and apparatus for providing 360 stitching workflow and parameter - Google Patents

Method and apparatus for providing 360 stitching workflow and parameter Download PDF

Info

Publication number
KR20200111639A
KR20200111639A KR1020200033089A KR20200033089A KR20200111639A KR 20200111639 A KR20200111639 A KR 20200111639A KR 1020200033089 A KR1020200033089 A KR 1020200033089A KR 20200033089 A KR20200033089 A KR 20200033089A KR 20200111639 A KR20200111639 A KR 20200111639A
Authority
KR
South Korea
Prior art keywords
parameter
image
workflow
image stitching
degree
Prior art date
Application number
KR1020200033089A
Other languages
Korean (ko)
Other versions
KR102461032B1 (en
Inventor
이희경
엄기문
서정일
임성용
윤정일
정원식
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US16/822,654 priority Critical patent/US11694303B2/en
Publication of KR20200111639A publication Critical patent/KR20200111639A/en
Application granted granted Critical
Publication of KR102461032B1 publication Critical patent/KR102461032B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • H04N13/117Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/156Mixing image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/172Processing image signals image signals comprising non-image signal components, e.g. headers or format information
    • H04N13/178Metadata, e.g. disparity information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/282Image signal generators for generating image signals corresponding to three or more geometrical viewpoints, e.g. multi-view systems

Landscapes

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

Abstract

Provided is a method for providing an image stitching workflow. The method comprises the steps of: making a request for image stitching and obtaining a 360 degree VR image parameter required to generate an image stitching workflow; obtaining a list of functions applicable to the image stitching workflow; generating the image stitching workflow based on the functions selected from the function list; determining the number of media processing subjects required to process tasks constituting the image stitching workflow, and generating a plurality of media processing subjects according to the determined number of media processing subjects; and allocating the tasks constituting the image stitching workflow to the plurality of media processing subjects. The method can provide a 3 degree of freedom experience to a user.

Description

영상 스티칭 워크플로우 및 파라미터 제공 방법 및 장치{METHOD AND APPARATUS FOR PROVIDING 360 STITCHING WORKFLOW AND PARAMETER}Video stitching workflow and parameter provision method and device {METHOD AND APPARATUS FOR PROVIDING 360 STITCHING WORKFLOW AND PARAMETER}

본 개시는 고화질 360도 VR 영상 처리 장치 및 방법에 관한 것이다. 보다 구체적으로, 본 개시는 고화질 360도 VR 방송 서비스에 관한 영상 스티칭 워크플로우가 클라우드 플랫폼의 복수의 미디어 처리 주체에 의하여 수행될 수 있도록, 워크플로우의 각 작업을 복수의 미디어 처리 주체에 분배하는 장치 및 방법을 제공한다. 또한 본 개시는 고화질 360도 VR 방송 서비스에 관한 영상 스티칭 워크플로우에 관한 파라미터를 제공한다.The present disclosure relates to a high-definition 360-degree VR image processing apparatus and method. More specifically, the present disclosure is an apparatus for distributing each task of the workflow to a plurality of media processing subjects so that a video stitching workflow for a high-definition 360 degree VR broadcasting service can be performed by a plurality of media processing subjects of a cloud platform. And a method. In addition, the present disclosure provides parameters related to a video stitching workflow for a high-definition 360-degree VR broadcasting service.

디지털 방송의 출현은 방송국에서 일방적으로 송출한 신호를 시청하던 전통적 방송 방식을 사용자가 원하는 시간에 원하는 콘텐츠만을 선택적으로 시청할 수 있는 형태로 변화시켰다. 또한 광대역 전송 기술의 발전은 대역폭 한계를 극복하면서 시청자에게 4K 이상의 고화질 실감 미디어(예를 들어, UHDTV, 3DTV 등)를 제공할 수 있는 실감형 방송서비스를 제공할 수 있게 되었다 The advent of digital broadcasting has changed the traditional broadcasting method, which used to unilaterally watch signals transmitted by broadcasting stations, into a form in which users can selectively watch only the desired content at the desired time. In addition, the development of broadband transmission technology has made it possible to provide a realistic broadcasting service that can provide high-definition realistic media (e.g., UHDTV, 3DTV, etc.) to viewers over 4K while overcoming bandwidth limitations.

360도 가상현실(virtual reality, VR) 미디어는 시청자에게 전방위 영상을 제공함으로써 원하는 뷰(view)를 선택하여 볼 수 있는 미디어로서, 최근 방송망 접목을 통해 360도 VR 미디어를 서비스하려는 노력이 가속화되고 있다. 현재 일반적으로 적용되고 있는 360도 VR 미디어의 경우 전체 4K 또는 FHD급 VR 미디어를 동시에 제공할 수 있는데, 시청자에게 시청자가 원하는 뷰 또는 관심 영역(Region of Interest, RoI)을 지연 없이 제공할 수 있는 장점이 있으나, 실제 시청자의 움직임에 따라 재생되는 뷰의 화질이 열화되는 문제가 있다. 또한, 다른 형태로써, 시청자의 움직임 또는 시청자가 선택한 뷰의 정보에 기초하여 해당 영역에 대해 스트리밍하는 360도 VR 서비스는, 상대적으로 고화질의 뷰를 제공할 수 있으나 사용자 움직임에 따라 그에 응답하여 고화질의 영상을 재생하기 위한 지연시간(Motion to Photon, MTP)이 길어지는 문제가 있다.360-degree virtual reality (VR) media is a media that allows viewers to select and view a desired view by providing an omnidirectional image. Recently, efforts to provide 360-degree VR media through broadcasting network are accelerating. . In the case of 360-degree VR media, which is currently generally applied, full 4K or FHD-level VR media can be provided at the same time. The advantage of providing viewers with a desired view or region of interest (RoI) without delay. However, there is a problem that the image quality of the reproduced view is deteriorated according to the actual viewer's movement. In addition, as another form, a 360-degree VR service that streams for a corresponding area based on the viewer's motion or the information of the view selected by the viewer can provide a relatively high-definition view, but in response to the user's movement, There is a problem that the delay time (Motion to Photon, MTP) for playing the video becomes longer.

360도 VR 미디어 관련 기술로서 파노라마 비디오 방송서비스 인식 및 관련 비디오 특성을 나타내기 위한 시그널링을 제공하는 기술, 썸네일(thumbnail) 영상을 우선 전송하고 수신기에서는 썸네일에 기초하여 요청된 특정 영역의 데이터를 전송하는 기술 또는 파노라마 비디오를 일정 영역의 타일로 분류하고 사용자가 선택한 영역에 대한 타일의 데이터만을 전송하는 기술 등이 있다. 이러한 기존의 기술들은 파노라마 방송서비스를 제공하기 위한 시그널링, 타일링 전송 및 동기화 방법 등을 제안하고 있으나, 고화질 360도 VR 영상에 대하여 방송망 환경 하에서 사용자의 움직임 또는 사용자의 선택에 기반한 360도 VR 방송서비스를 제공하기 어렵다는 문제가 있다.As a 360-degree VR media-related technology, a technology that provides signaling for recognizing a panoramic video broadcasting service and indicating related video characteristics, first transmits a thumbnail image, and transmits data of a specific area requested based on the thumbnail in the receiver. There is a technology or a technology that classifies a panoramic video into tiles of a certain area and transmits only data of a tile for an area selected by the user. These existing technologies propose signaling, tiling transmission, and synchronization methods to provide panoramic broadcasting services, but provide 360-degree VR broadcasting services based on user movement or user selection in a broadcasting network environment for high-definition 360-degree VR images. There is a problem that it is difficult to provide.

본 개시는 고화질 360도 VR 영상 처리 장치 및 방법에 관한 것이다. 본 개시에서, 영상 스티칭(stitching)의 워크플로우를 생성하기 위한 각종 파라미터가 제공된다. 그리고 영상 스티칭 프로세스에 많은 컴퓨팅 리소스가 필요한 바, 영상 스티칭에 필요한 작업(task)을 복수의 미디어 처리 주체에 할당하는 방법 및 장치가 제안된다.The present disclosure relates to a high-definition 360-degree VR image processing apparatus and method. In the present disclosure, various parameters are provided for creating the workflow of image stitching. In addition, since many computing resources are required for the image stitching process, a method and apparatus for allocating a task required for image stitching to a plurality of media processing subjects are proposed.

본 개시에서, 영상 스티칭에 대한 요청 및 영상 스티칭 워크플로우의 생성에 필요한 360도 VR 영상 파라미터를 획득하는 단계, 상기 영상 스티칭 워크플로우에 적용될 수 있는 기능(function) 리스트를 획득하는 단계, 상기 기능 리스트로부터 선택된 기능들에 기초하여, 상기 영상 스티칭 워크플로우를 생성하는 단계, 상기 영상 스티칭 워크플로우를 구성하는 작업들을 처리하기 위하여 필요한 미디어 처리 주체의 개수를 결정하고, 상기 결정된 미디어 처리 주체의 개수에 따라, 복수의 미디어 처리 주체를 생성하는 단계, 상기 영상 스티칭 워크플로우를 구성하는 작업들을 상기 복수의 미디어 처리 주체에 할당하는 단계를 포함하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 방법이 제공된다.In the present disclosure, obtaining a 360-degree VR image parameter required for a request for image stitching and generation of an image stitching workflow, obtaining a list of functions applicable to the image stitching workflow, the function list Generating the image stitching workflow based on the functions selected from, determining the number of media processing subjects required to process the tasks constituting the image stitching workflow, and determining the number of media processing subjects according to the determined number of media processing subjects. And generating a plurality of media processing subjects, and allocating tasks constituting the image stitching workflow to the plurality of media processing subjects. A method for generating an image stitching workflow is provided.

일 실시 예에 따르면, 상기 영상 스티칭 워크플로우 생성 방법은, 상기 영상 스티칭 워크플로우를 구성하는 현재 작업에 대한 설정 정보를 결정하고, 상기 현재 작업에 대한 설정 정보를 작업 관리자에게 전송하는 단계, 및 상기 작업 관리자에 의하여 상기 현재 작업에 대한 성공적인 설정이 확인되는 경우, 상기 작업 관리자로부터 상기 현재 작업 바로 후 수행되는 다음 작업에 대한 접근 정보를 획득하는 단계를 포함할 수 있다.According to an embodiment, the method for generating the image stitching workflow includes: determining setting information for a current job constituting the image stitching workflow, and transmitting setting information for the current job to a job manager, and the When the successful setting of the current task is confirmed by the task manager, acquiring access information for the next task performed immediately after the current task from the task manager.

일 실시 예에 따르면, 상기 영상 스티칭 워크플로우 생성 방법은, 상기 360도 VR 영상 파라미터 중 컨텐트에 따라 변경되는 컨텐트-종속 파라미터의 변경이 있는 경우, 상기 변경된 컨텐트-종속 파라미터에 관련된 작업에 대한 설정 정보를 업데이트하는 단계를 포함할 수 있다.According to an embodiment, the method of generating the video stitching workflow includes setting information on a task related to the changed content-dependent parameter when there is a change in a content-dependent parameter that is changed according to a content among the 360 degree VR video parameters. It may include the step of updating.

일 실시 예에 따르면, 미디어 소스로부터, 영상 스티칭에 대한 요청이 중단될 때, 상기 360도 VR 영상 파라미터를 획득하는 단계 내지 상기 영상 스티칭 워크플로우를 구성하는 작업들을 상기 복수의 미디어 처리 주체에 할당하는 단계의 수행이 중단될 수 있다.According to an embodiment, when a request for image stitching from a media source is stopped, acquiring the 360 degree VR image parameter or allocating tasks constituting the image stitching workflow to the plurality of media processing subjects The execution of the step may be interrupted.

일 실시 예에 따르면, 상기 영상 스티칭 워크플로우를 구성하는 작업들은, 부호화된 미가공 영상을 복호화하는 단계, 상기 복호화된 미가공 영상의 특징점을 추출하는 단계, 상기 특징점에 기초하여, 카메라 파라미터를 추출하는 단계, 상기 카메라 파라미터에 기초하여, 상기 복호화된 미가공 영상을 투사체에 투사함으로써, 360도 VR 영상을 생성하는 단계, 상기 카메라 파라미터에 기초하여, 상기 360도 VR 영상의 경계선 정보를 결정하는 단계, 상기 경계선 정보에 기초하여, 상기 360도 VR 영상을 후처리하는 단계, 및 상기 후처리된 360도 VR 영상을 부호화하는 단계를 포함할 수 있다. According to an embodiment, the operations constituting the image stitching workflow include: decoding an encoded raw image, extracting a feature point of the decoded raw image, and extracting a camera parameter based on the feature point. , Based on the camera parameter, generating a 360-degree VR image by projecting the decoded unprocessed image onto a projecting object, determining boundary information of the 360-degree VR image based on the camera parameter, the It may include post-processing the 360-degree VR image based on boundary line information, and encoding the post-processed 360-degree VR image.

일 실시 예에 따르면, 상기 360도 VR 영상 파라미터는, 일반 설명자 파라미터, 입력 설명자 파라미터, 출력 설명자 파라미터, 프로세싱 설명자 파라미터, 요구사항 설명자 파라미터, 클라이언트 지원 설명자 파라미터, 대체 작동(failover) 설명자 파라미터, 모니터링 설명자 파라미터, 및 보고 설명자 파라미터 중 적어도 하나를 포함할 수 있다.According to an embodiment, the 360-degree VR image parameter is a general descriptor parameter, an input descriptor parameter, an output descriptor parameter, a processing descriptor parameter, a requirement descriptor parameter, a client support descriptor parameter, a failover descriptor parameter, a monitoring descriptor. It may include at least one of a parameter and a report descriptor parameter.

일 실시 예에 따르면, 상기 360도 VR 영상 파라미터는, 설정 파라미터를 포함하고, 상기 설정 파라미터는 미디어 파라미터, 특징 파라미터, 카메라 파라미터, 프로젝션 파라미터, 스티칭 파라미터, 및 클라우드 파라미터 중 적어도 하나를 포함할 수 있다.According to an embodiment, the 360 degree VR image parameter includes a setting parameter, and the setting parameter may include at least one of a media parameter, a feature parameter, a camera parameter, a projection parameter, a stitching parameter, and a cloud parameter. .

일 실시 예에 따르면, 상기 미디어 파라미터는 코덱 파라미터, 크로마 파라미터, fps 파라미터, gop 파라미터, 해상도 파라미터 중 적어도 하나를 포함하고, 상기 특징 파라미터는 특징 추출 방법 파라미터, 특징점 개수 파라미터, 특징점 위치 파라미터, 선택적 특징 대응점 파라미터 중 적어도 하나를 포함하고, 상기 카메라 파라미터는 초점거리 파라미터, 주점 파라미터, 비대칭 계수 파라미터, 이동 파라미터, 및 회전 파라미터 중 적어도 하나를 포함하고, 상기 프로젝션 파라미터는 프로젝션 타입 파라미터를 포함하고, 상기 스티칭 파라미터는 경계점 위치 파라미터 및 경계점 마스크 파라미터 중 적어도 하나를 포함하고, 상기 클라우드 파라미터는 쓰레드 개수 파라미터 및 GPU 개수 파라미터 중 적어도 하나를 포함할 수 있다.According to an embodiment, the media parameter includes at least one of a codec parameter, a chroma parameter, an fps parameter, a gop parameter, and a resolution parameter, and the feature parameter is a feature extraction method parameter, a feature point number parameter, a feature point location parameter, and an optional feature. Including at least one of the corresponding point parameter, the camera parameter includes at least one of a focal length parameter, a main point parameter, an asymmetry coefficient parameter, a movement parameter, and a rotation parameter, the projection parameter includes a projection type parameter, and the stitching The parameter may include at least one of a boundary point position parameter and a boundary point mask parameter, and the cloud parameter may include at least one of a number of threads parameter and a number of GPUs parameter.

일 실시 예에 따르면, 상기 클라우드 파라미터는 상기 영상 스티칭 워크플로우를 수행하기 위하여 필요한 컴퓨팅 리소스를 나타내고, 상기 영상 스티칭 워크플로우를 구성하는 작업들을 처리하기 위하여 필요한 미디어 처리 주체의 개수를 결정하고, 상기 결정된 미디어 처리 주체의 개수에 따라, 복수의 미디어 처리 주체를 생성하는 단계는, 상기 클라우드 파라미터에 따라, 상기 미디어 처리 주체의 개수를 결정할 수 있다.According to an embodiment, the cloud parameter indicates a computing resource required to perform the image stitching workflow, determines the number of media processing subjects required to process tasks constituting the image stitching workflow, and the determined In the step of generating a plurality of media processing subjects according to the number of media processing subjects, the number of media processing subjects may be determined according to the cloud parameter.

본 개시에서, 하나 이상의 프로세서 및 하나 이상의 메모리 디바이스를 포함하는, 영상 스티칭 워크플로우를 생성하는 영상 스티칭 워크플로우 생성 장치에 있어서, 상기 하나 이상의 프로세서는 상기 하나 이상의 메모리 디바이스에 저장된 영상 스티칭 워크플로우 생성을 위한 프로그램의 하나 이상의 명령을 수행하고, 상기 하나 이상의 메모리 디바이스는 상기 영상 스티칭 워크플로우 생성을 위한 프로그램을 저장하며, 상기 하나 이상의 명령들은, 영상 스티칭에 대한 요청 및 영상 스티칭 워크플로우의 생성에 필요한 360도 VR 영상 파라미터를 획득하는 단계, 상기 영상 스티칭 워크플로우에 적용될 수 있는 기능(function) 리스트를 획득하는 단계, 상기 기능 리스트로부터 선택된 기능들에 기초하여, 상기 영상 스티칭 워크플로우를 생성하는 단계, 상기 영상 스티칭 워크플로우를 구성하는 작업들을 처리하기 위하여 필요한 미디어 처리 주체의 개수를 결정하고, 상기 결정된 미디어 처리 주체의 개수에 따라, 복수의 미디어 처리 주체를 생성하는 단계, 상기 영상 스티칭 워크플로우를 구성하는 작업들을 상기 복수의 미디어 처리 주체에 할당하는 단계를 포함하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 장치가 제공된다.In the present disclosure, in an image stitching workflow generating apparatus for generating an image stitching workflow, including one or more processors and one or more memory devices, the one or more processors generate an image stitching workflow stored in the one or more memory devices. Execute one or more commands of a program for, and the one or more memory devices store a program for generating the image stitching workflow, and the one or more commands are required to request for image stitching and to generate the image stitching workflow. Obtaining a VR image parameter, obtaining a list of functions applicable to the image stitching workflow, generating the image stitching workflow based on functions selected from the function list, the Determining the number of media processing subjects necessary to process the tasks constituting the image stitching workflow, generating a plurality of media processing subjects according to the determined number of media processing subjects, configuring the image stitching workflow An apparatus for generating an image stitching workflow is provided, comprising the step of allocating jobs to the plurality of media processing subjects.

일 실시 예에 따르면, 상기 하나 이상의 명령들은, 상기 영상 스티칭 워크플로우를 구성하는 현재 작업에 대한 설정 정보를 결정하고, 상기 현재 작업에 대한 설정 정보를 작업 관리자에게 전송하는 단계, 및 상기 작업 관리자에 의하여 상기 현재 작업에 대한 성공적인 설정이 확인되는 경우, 상기 작업 관리자로부터 상기 현재 작업 바로 후 수행되는 다음 작업에 대한 접근 정보를 획득하는 단계를 포함할 수 있다.According to an embodiment, the one or more commands determine setting information on a current job constituting the image stitching workflow, and transmit setting information on the current job to a job manager, and to the job manager Thus, when successful setting of the current task is confirmed, acquiring access information for a next task performed immediately after the current task from the task manager.

일 실시 예에 따르면, 상기 하나 이상의 명령들은, 상기 360도 VR 영상 파라미터 중 컨텐트에 따라 변경되는 컨텐트-종속 파라미터의 변경이 있는 경우, 상기 변경된 컨텐트-종속 파라미터에 관련된 작업에 대한 설정 정보를 업데이트하는 단계를 포함할 수 있다.According to an embodiment, the one or more commands update setting information on a task related to the changed content-dependent parameter when there is a change in a content-dependent parameter that is changed according to a content among the 360-degree VR video parameters. It may include steps.

일 실시 예에 따르면, 미디어 소스로부터, 영상 스티칭에 대한 요청이 중단될 때, 상기 하나 이상의 명령들의 수행이 중단될 수 있다.According to an embodiment, when a request for image stitching from a media source is stopped, execution of the one or more commands may be stopped.

본 개시에서, 360도 VR 영상의 영상 스티칭에 필요한 360도 VR 영상 파라미터가 포함된 비트스트림을 포함하는 컴퓨터로 판독가능한 기록 매체에 있어서, 상기 360도 VR 영상 파라미터는 일반 설명자 파라미터, 입력 설명자 파라미터, 출력 설명자 파라미터, 프로세싱 설명자 파라미터, 요구사항 설명자 파라미터, 클라이언트 지원 설명자 파라미터, 대체 작동(failover) 설명자 파라미터, 모니터링 설명자 파라미터, 및 보고 설명자 파라미터 중 적어도 하나를 포함하는 것을 특징으로 하는 컴퓨터로 판독가능한 기록 매체가 제공된다. In the present disclosure, in a computer-readable recording medium including a bitstream including a 360-degree VR image parameter required for image stitching of a 360-degree VR image, the 360-degree VR image parameter is a general descriptor parameter, an input descriptor parameter, A computer-readable recording medium comprising at least one of an output descriptor parameter, a processing descriptor parameter, a requirement descriptor parameter, a client support descriptor parameter, a failover descriptor parameter, a monitoring descriptor parameter, and a reporting descriptor parameter. Is provided.

카메라에서 동기화된 여러 영상을 하나의 스티칭된 360도 VR 영상으로 전환함으로써, 사용자에게 3DoF (Degree of Freedom) 경험이 제공될 수 있다. 그러나 3DoF 360 컨텐츠에 많은 양의 데이터가 있는 경우, 독립형 서버에서 3DoF 360 컨텐츠를 처리하기 어렵다. 그러므로, 복수의 처리 주체에 따른 네트워크 기반 영상 스티칭에 따라 상기 문제점이 해결될 수 있다.By converting multiple images synchronized by the camera into one stitched 360-degree VR image, a 3DoF (degree of freedom) experience can be provided to the user. However, when there is a large amount of data in 3DoF 360 content, it is difficult to process 3DoF 360 content in a standalone server. Therefore, the above problem can be solved by network-based image stitching according to a plurality of processing subjects.

도 1은 본 개시의 일 실시 예에 따른 카메라 영상 및 카메라 깊이 영상을 이용한 360도 VR 영상의 처리 방법을 나타내는 도면이다.
도 2는 본 개시의 일 실시 예에 따른 복수의 처리 주체에 따른 영상 스티칭을 위한 미디어 시스템을 도시한다.
도 3은 본 개시의 일 실시 예에 따른 영상 스티칭의 작업을 수행하기 위한 워크플로우를 자세히 설명한다.
도 4는 다중 경로 타입(Multi-path type)에 따른 중요 영역(Preserved Region)을 결정하는 방법을 나타낸다.
도 5는 본 개시의 일 실시 예에 따른, 영상 스티칭 워크플로우 생성 방법의 흐름도이다.
1 is a diagram illustrating a processing method of a 360 degree VR image using a camera image and a camera depth image according to an embodiment of the present disclosure.
2 is a diagram illustrating a media system for image stitching according to a plurality of processing subjects according to an embodiment of the present disclosure.
3 is a detailed description of a workflow for performing an image stitching operation according to an embodiment of the present disclosure.
4 shows a method of determining a Preserved Region according to a multi-path type.
5 is a flowchart illustrating a method of generating an image stitching workflow according to an embodiment of the present disclosure.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다. 후술하는 예시적 실시예들에 대한 상세한 설명은, 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 실시예를 실시할 수 있기에 충분하도록 상세히 설명된다. 다양한 실시예들은 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 실시예의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 예시적 실시예들의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다.In the present invention, various modifications may be made and various embodiments may be provided, and specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to a specific embodiment, it is to be understood to include all changes, equivalents, and substitutes included in the spirit and scope of the present invention. Like reference numerals in the drawings refer to the same or similar functions over several aspects. The shapes and sizes of elements in the drawings may be exaggerated for clearer explanation. For a detailed description of exemplary embodiments described below, reference is made to the accompanying drawings, which illustrate specific embodiments as examples. These embodiments are described in detail sufficient to enable a person skilled in the art to practice the embodiments. It should be understood that the various embodiments are different from each other but need not be mutually exclusive. For example, specific shapes, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the present invention in relation to one embodiment. In addition, it is to be understood that the location or arrangement of individual components within each disclosed embodiment may be changed without departing from the spirit and scope of the embodiment. Accordingly, the detailed description to be described below is not intended to be taken in a limiting sense, and the scope of exemplary embodiments, if properly described, is limited only by the appended claims, along with all scope equivalents to those claimed by the claims.

본 발명에서 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.In the present invention, terms such as first and second may be used to describe various components, but the components should not be limited by the terms. These terms are used only for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present invention, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element. The term and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.

본 발명의 어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component of the present invention is referred to as being “connected” or “connected” to another component, it may be directly connected or connected to the other component, but other components exist in the middle. It should be understood that it may be possible. On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in the middle.

본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.Components shown in the embodiments of the present invention are independently shown to represent different characteristic functions, and does not mean that each component is formed of separate hardware or a single software component. That is, each constituent part is listed and included as a constituent part for convenience of explanation, and at least two constituent parts of each constituent part are combined to form one constituent part, or one constituent part may be divided into a plurality of constituent parts to perform functions Integrated embodiments and separate embodiments of the components are also included in the scope of the present invention unless departing from the essence of the present invention.

본 발명에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 발명에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 즉, 본 발명에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.The terms used in the present invention are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present invention, terms such as "comprises" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof, does not preclude in advance. That is, in the present invention, the description of “including” a specific configuration does not exclude configurations other than the corresponding configuration, and means that additional configurations may be included in the scope of the implementation of the present invention or the technical idea of the present invention.

본 발명의 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.Some of the components of the present invention are not essential components that perform essential functions in the present invention, but may be optional components only for improving performance. The present invention can be implemented by including only the components essential to implement the essence of the present invention excluding components used for performance improvement, and a structure including only essential components excluding optional components used for performance improvement Also included in the scope of the present invention.

이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략하고, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In describing the embodiments of the present specification, if it is determined that a detailed description of a related known configuration or function may obscure the subject matter of the present specification, the detailed description thereof will be omitted, and the same reference numerals are used for the same elements in the drawings. Used and redundant descriptions for the same components are omitted.

본 개시에서 360도 VR 영상을 생성하기 위한 스티칭(stitching) 방법에 대한 다양한 실시 예가 설명된다. 본 개시에서 상기 스티칭 방법을 클라우드 환경에서 실시하기 위한 방법에 대한 다양한 실시 예가 설명된다.In the present disclosure, various embodiments of a stitching method for generating a 360 degree VR image will be described. In the present disclosure, various embodiments of a method for implementing the stitching method in a cloud environment will be described.

도 1은 본 개시의 일 실시 예에 따른 360도 VR 영상의 처리 방법을 나타내는 도면이다.1 is a diagram illustrating a method of processing a 360 degree VR image according to an embodiment of the present disclosure.

미디어 처리 소스(100)는 설정 정보(102), 미디어 소스(104), 및 메타데이터(106)를 포함한다. 설정 정보(102) 및 메타데이터(106)는 복수의 입력 비디오 스트림에 관련된 정보를 나타낸다. 미디어 소스(104)는 360도 VR 영상의 재료가 되는 미가공 영상을 포함한다. 일 실시 예에 따라, 미디어 소스(104)는 텍스쳐 영상 및 깊이 영상을 포함할 수 있다. 또는 일 실시 예에 따라, 미디어 소스(104)는 텍스쳐 영상만을 포함할 수 있다. 미디어 처리 소스(100)의 설정 정보(102), 미디어 소스(104), 및 메타데이터(106)는 미디어 처리 주체(110)로 전송된다.The media processing source 100 includes setting information 102, a media source 104, and metadata 106. The setting information 102 and metadata 106 represent information related to a plurality of input video streams. The media source 104 includes a raw image that becomes a material for a 360 degree VR image. According to an embodiment, the media source 104 may include a texture image and a depth image. Alternatively, according to an embodiment, the media source 104 may include only a texture image. The setting information 102, the media source 104, and the metadata 106 of the media processing source 100 are transmitted to the media processing subject 110.

미디어 처리 주체(110)는 설정 정보(102) 및 메타데이터(106)에 따라, 미디어 소스(104)의 영상을 스티칭한다. 도 1에는 영상 스티칭에 필요한 세부 단계들이 도시되어 있다. 상기 도 1에 따른 영상 스티칭에 따라 360도 VR 영상이 생성된다. 그리고 360도 VR 영상은 360도 VR 영상을 처리하는 어플리케이션(120)으로 전송될 수 있다.The media processing subject 110 stitches the image of the media source 104 according to the setting information 102 and the metadata 106. 1 shows detailed steps necessary for image stitching. A 360-degree VR image is generated according to the image stitching according to FIG. 1. In addition, the 360-degree VR image may be transmitted to the application 120 that processes the 360-degree VR image.

미디어 처리 주체(110)는 이하 설명될 도 2의 워크플로우 관리자(202)에 의하여, 설정된다. 영상 스티칭 워크플로우가 단일 처리 주체에 의하여 처리될 수 없다고 판단되면, 미디어 처리 주체(110)는 2개 이상 설정될 수 있다. 만약 영상 스티칭 워크플로우가 단일 처리 주체에 의하여 처리될 수 있다고 판단되면, 미디어 처리 주체(110)는 1개만 설정될 수 있다. 상기 미디어 처리 주체(110)는 도 2의 워크플로우 관리자(202)에 의하여 도 2의 클라우드 플랫폼(210)에서 생성될 수 있다.The media processing subject 110 is set by the workflow manager 202 of FIG. 2 to be described below. If it is determined that the image stitching workflow cannot be processed by a single processing subject, two or more media processing subjects 110 may be set. If it is determined that the image stitching workflow can be processed by a single processing subject, only one media processing subject 110 may be set. The media processing subject 110 may be created in the cloud platform 210 of FIG. 2 by the workflow manager 202 of FIG. 2.

만약 미디어 처리 주체(110)가 2개 이상 설정될 경우, 도 1의 단계 130 내지 단계 142에 따른 작업들이 복수의 미디어 처리 주체(110)에 할당될 수 있다. 따라서, 많은 컴퓨팅 리소스를 필요로 하는 영상 스티칭 작업이 복수의 미디어 처리 주체(110)에 의하여 빠르게 처리될 수 있다.If two or more media processing subjects 110 are set, the jobs according to steps 130 to 142 of FIG. 1 may be allocated to a plurality of media processing subjects 110. Accordingly, an image stitching operation requiring a large amount of computing resources can be quickly processed by the plurality of media processing subjects 110.

영상 스티칭 작업이 복수의 미디어 처리 주체(110)에 의하여 처리될 경우, 상기 작업들의 할당을 위하여, 영상 스티칭에 관련된, 예를 들어, 영상 복호화, 특징점 추출, 카메라 파라미터 추출, 영상 프로젝션, 경계선 정보 추출, 블렌딩, 후처리 및 영상 부호화 등과 같은 세부적인 작업에 대한 설정 정보, 인풋 및 아웃풋 설명자, 및 메타 데이터가 필요하다. 상기 정보는 복수의 처리 주체에서 여러 작업들 간의 인터페이스를 처리하기 위해 사용된다. 이를 위하여, 영상 스티칭 프로세스의 각 작업에 사용할 미디어, 기능, 카메라, 프로젝션, 스티칭 및 클라우드 매개 변수와 같은 세부 정보가 영상 스티칭의 각 세부 단계에 적용된다. 이하, 영상 스티칭의 세부 단계 (단계 130 내지 142)에 대하여 자세히 설명된다.When an image stitching task is processed by a plurality of media processing subjects 110, for the assignment of the tasks, for example, image decoding, feature point extraction, camera parameter extraction, image projection, boundary information extraction related to image stitching , Blending, post-processing, and video encoding, setting information for detailed operations, input and output descriptors, and metadata are required. The information is used by a plurality of processing entities to process interfaces between various tasks. To this end, detailed information such as media, functions, cameras, projections, stitching and cloud parameters to be used for each operation of the image stitching process is applied to each detailed step of image stitching. Hereinafter, detailed steps of image stitching (steps 130 to 142) will be described in detail.

단계 130에서, 부호화된 영상이 복호화된다. 구체적으로, 단계 130에서 여러 스레드 또는 GPU의 연산에 따라, 미디어 소스(104)의 부호화된 미가공 영상이 복호화된다. 또한, 미디어 소스(104) 뿐만 아니라, 클라우드 파라미터부터 부호화된 미디어 데이터 피드가 단계 130의 복호화에 사용될 수 있다. 상기 미가공 영상은 후처리 등이 적용되지 않은 원본 영상을 나타낸다.In step 130, the coded image is decoded. Specifically, in step 130, the encoded raw image of the media source 104 is decoded according to an operation of several threads or GPUs. In addition, not only the media source 104 but also a media data feed encoded from a cloud parameter may be used for decoding in step 130. The raw image represents an original image to which post-processing is not applied.

단계 132에서, 단계 130에서 복호화된 미가공 영상으로부터 특징점이 추출된다. 상기 특징점은 복수의 영상에서 특정 물체를 추적하거나 인식할 때, 영상과 영상을 매칭하는 기준이 되는 지점을 의미한다. 특징점을 기준으로 분포하는 픽셀들의 값을 분석함으로써, 서로 다른 영상 간에 유사한 부분이 검출된다. 따라서, 단계 132에서 인접한 미가공 영상들 간의 특징점을 비교함으로써, 인접한 미가공 영상들 간의 대응점이 결정될 수 있다. 그리고 상기 대응점에 따라, 인접한 미가공 영상들 간에 스티칭 프로세스가 수행될 수 있다.In step 132, feature points are extracted from the raw image decoded in step 130. The feature point refers to a point that becomes a reference point for matching an image and an image when tracking or recognizing a specific object in a plurality of images. By analyzing the values of the pixels distributed based on the feature points, similar portions between different images are detected. Accordingly, by comparing feature points between adjacent raw images in step 132, a corresponding point between adjacent raw images may be determined. In addition, a stitching process may be performed between adjacent raw images according to the corresponding point.

단계 134에서, 특징점 및 대응점 세트에 따라, 외부 및 내부 카메라 파라미터가 계산된다. 상기 외부 카메라 파라미터는 카메라의 촬영 각도, 촬영 위치 등을 포함한다. 상기 내부 카메라 파라미터는 카메라의 초점거리, 주점, 비대칭 계수 등을 포함한다.In step 134, according to the set of feature points and corresponding points, external and internal camera parameters are calculated. The external camera parameters include a camera's photographing angle and a photographing position. The internal camera parameters include a focal length of the camera, a main point, and an asymmetry coefficient.

일 실시 예에 따르면, 상기 특징점 및 대응점을 분석함으로써, 2개의 인접한 영상들의 촬영에 사용된 2개의 카메라 간의 촬영 각도 및 촬영 위치의 차이가 계산될 수 있다. 따라서, 상기 특징점 및 대응점에 따라, 카메라의 외부 파라미터가 결정될 수 있다.According to an embodiment, by analyzing the feature point and the corresponding point, a difference between a photographing angle and a photographing position between two cameras used for photographing two adjacent images may be calculated. Accordingly, the external parameters of the camera may be determined according to the feature points and corresponding points.

일 실시 예에 따르면, 상기 특징점 및 대응점을 분석함으로써, 상기 2개의 카메라의 초점거리, 주점, 비대칭 계수의 차이가 계산될 수 있다. 따라서, 상기 특징점 및 대응점에 따라, 카메라의 내부 파라미터가 결정될 수 있다.According to an embodiment, by analyzing the feature point and the corresponding point, a difference between a focal length, a main point, and an asymmetry coefficient of the two cameras may be calculated. Accordingly, the internal parameters of the camera may be determined according to the feature points and corresponding points.

또한, 단계 134에서, 선택적으로 카메라 파라미터에 기초한 영상 왜곡 보정 프로세스가 수행될 수 있다. 일 실시 예에 따르면, 상기 영상 왜곡 보정 프로세스는 렌즈 특성에 따른 영상 왜곡을 보정하는 프로세스일 수 있다.In addition, in step 134, an image distortion correction process may be optionally performed based on camera parameters. According to an embodiment, the image distortion correction process may be a process of correcting image distortion according to lens characteristics.

단계 136에서, 단계 134에서 결정된 카메라 파라미터에 기초하여, 구면, 큐브, 다면체 및 ERP(EquiRectangular Projection)에 단계 130에서 복호화된 미가공 영상들이 투사된다. 구체적으로, 카메라 파라미터 및 영상 프로젝션 면에 기초하여, 영상들이 기하학적으로 정렬된다. 그리고 기하학적으로 정렬된 영상들이 영상 프로젝션 면에 투사된다. 상기 영상 프로젝션의 결과, 360도 VR 영상이 생성된다.In step 136, the raw images decoded in step 130 are projected on a spherical surface, a cube, a polyhedron, and an ERP (EquiRectangular Projection) based on the camera parameter determined in step 134. Specifically, images are geometrically aligned based on the camera parameters and the image projection plane. And the images arranged geometrically are projected onto the image projection surface. As a result of the image projection, a 360 degree VR image is generated.

단계 138에서, 단계 136에서 생성된 360도 VR 영상으로부터 상기 인접한 영상들의 경계선에 대한 스티칭 파라미터가 추출된다. 상기 스티칭 파라미터는 상기 경계선의 위치에 대한 경계선 위치 파라미터 또는 영상에서 경계선에 해당되는 영역을 나타내는 경계선 마스크 파라미터를 포함할 수 있다. 상기 경계선에 대한 스티칭 파라미터는 단계 134로부터 결정된 카메라 파라미터에 기초하여 결정될 수 있다.In step 138, stitching parameters for the boundary lines of the adjacent images are extracted from the 360-degree VR image generated in step 136. The stitching parameter may include a boundary line position parameter with respect to the position of the boundary line or a boundary line mask parameter indicating an area corresponding to the boundary line in the image. The stitching parameter for the boundary line may be determined based on the camera parameter determined in step 134.

단계 138에서, 상기 인접한 영상의 중복 영역에 이전 시점에 존재하지 않던 객체가 갑자기 나타날 때, 스티칭 파라미터 업데이트될 수 있다. 따라서, 중복 영역의 변화에 따라, 경계선 위치 파라미터 또는 경계선 마스크 파라미터가 변경될 수 있다.In step 138, when an object that did not exist at a previous viewpoint suddenly appears in the overlapping region of the adjacent image, the stitching parameter may be updated. Accordingly, according to the change of the overlapping area, the boundary line position parameter or the boundary line mask parameter may be changed.

단계 140에서, 단계 136에서 생성된 360도 VR 영상의 중복 영역에 대하여 블렌딩, 색 보정 및 노이즈 필터링 프로세스 등이 수행될 수 있다. 상기 블렌딩, 색 보정 및 노이즈 필터링 프로세스 등은 단계 138에서 추출된 경계선 정보에 기초하여 수행될 수 있다.In step 140, blending, color correction, and noise filtering processes may be performed on the overlapped region of the 360-degree VR image generated in step 136. The blending, color correction, and noise filtering process may be performed based on the boundary information extracted in step 138.

상기 블렌딩 프로세스는, 360도 VR 영상의 중복 영역에 대응되는 2개의 부분 영상을 섞어서, 360도 VR 영상이 하나의 연속된 영상으로 시각적으로 인식될 수 있도록 처리하는 프로세스이다. 상기 색 보정 프로세스는 360도 VR 영상을 구성하는 영상들이 하나의 영상으로 인식될 수 있도록, 색상, 명도 및 채도 등과 같은 색 파라미터를 조절하는 프로세스를 의미한다. 노이즈 필터링 프로세스는 영상의 노이즈를 제거하는 프로세스를 의미한다. 단계 140의 프로세스에 따라, 복수의 영상으로부터 생성된 360도 VR 영상이 시각적으로 하나의 영상으로 인지될 수 있다.The blending process is a process of mixing two partial images corresponding to an overlapping area of a 360 degree VR image so that a 360 degree VR image can be visually recognized as a single continuous image. The color correction process refers to a process of adjusting color parameters such as hue, brightness and saturation so that images constituting a 360 degree VR image can be recognized as one image. The noise filtering process refers to a process of removing noise from an image. According to the process of step 140, a 360 degree VR image generated from a plurality of images may be visually recognized as one image.

단계 142에서, 단계 140에서 처리된 360도 VR 영상이 부호화된다. 상기 단계 142의 부호화는 클라우드 파라미터에 따라 수행될 수 있다. 그리고 상기 부호화된 360도 VR 영상은 클라우드 플랫폼에 의하여 출력될 수 있다.In step 142, the 360 degree VR image processed in step 140 is encoded. The encoding in step 142 may be performed according to a cloud parameter. In addition, the encoded 360-degree VR image may be output by a cloud platform.

상기 단계 130 내지 단계 142를 거쳐서, 부호화된 2차원 영상으로 구성된 비디오 스트림으로부터 부호화된 360도 VR 영상으로 구성된 비디오 스트림이 생성된다. 실시 예에 따라, 단계 130 내지 단계 142의 순서가 일부 변경될 수 있으며, 소정의 단계가 생략될 수 있다. 또한, 단계 130 내지 단계 142의 중간에, 영상 처리 분야에서 관용적인 영상 처리 기법이 적용될 수 있다. 단계 130 내지 단계 142에 대응되는 명령은 도 2의 클라우드 플랫폼(210)에서 수행될 수 있다. 이하, 표 1에서, 단계 130 내지 단계 142의 각 작업에 대한 설명, 입력 및 출력이 설명되어 있다.Through the steps 130 to 142, a video stream composed of an encoded 360 degree VR image is generated from a video stream composed of an encoded 2D image. Depending on embodiments, the order of steps 130 to 142 may be partially changed, and certain steps may be omitted. In addition, an image processing technique conventional in the image processing field may be applied between steps 130 and 142. Commands corresponding to steps 130 to 142 may be executed in the cloud platform 210 of FIG. 2. Hereinafter, in Table 1, descriptions, inputs, and outputs for each operation of steps 130 to 142 are described.

작업work 설명Explanation 입력input 출력Print 복호화Decryption 여러 스레드 또는 GPU를 사용한, 미디어 소스의 부호화된 비디오 스트림 피드를 미가공 비디오 스트림으로 변환하는 비디오 유형 변환이 포함됨. Includes video type conversion, using multiple threads or GPUs, to convert a feed of an encoded video stream from a media source into a raw video stream. 미디어 소스 및 미디어 및 클라우드 파라미터로부터 부호화된 미디어 데이터 피드 Media source and feed of encoded media data from media and cloud parameters 미가공 영상과 같은 복호화된 미디어 데이터 Decoded media data such as raw video 특징점 추출Feature point extraction 특징점 추출 및 인접한 미가공 영상들 간의 대응점 매칭 프로세스가 포함됨.The process of extracting feature points and matching corresponding points between adjacent raw images is included. 정렬(스티칭)할 미가공 영상 및 특징 추출 방법Raw image to be aligned (stitched) and feature extraction method 추출된 특징점 및 대응 세트Extracted feature points and corresponding set 카메라 파라미터 추출 Camera parameter extraction 특징점 및 대응 세트를 사용한 외부 및 내부 카메라 파라미터의 계산을 포함. 선택적으로, 카메라 파라미터를 사용한 영상 왜곡 보정 프로세스가 포함됨.Includes calculation of external and internal camera parameters using feature points and corresponding sets. Optionally, an image distortion correction process using camera parameters is included. 추출된 특징점 및 대응 세트 Extracted feature points and corresponding set 외부 및 내부 카메라 파라미터 및 렌즈 왜곡 보정 영상External and internal camera parameters and lens distortion correction video 프로젝션Projection 카메라 파라미터에 기초하여, 구면, 큐브, 다면체 및 ERP(EquiRectangular Projection)에 기하학적 정렬에 따른 영상 프로젝션이 포함됨.Based on camera parameters, image projection according to geometric alignment is included in spherical, cube, polyhedron and ERP (EquiRectangular Projection). 외부 및 내부 카메라 파라미터 및 렌즈 왜곡 보정 영상External and internal camera parameters and lens distortion correction video 360도 VR 영상360 degree VR video 경계선 정보 추출Extract border information 경계선 정보 추출 및 중복 영역에 객체가 갑자기 나타날 때 필요한 업데이트 프로세스가 포함됨.Includes the process of extracting boundary information and updating necessary when objects suddenly appear in overlapping areas. 360도 VR 영상 및 경계선 위치 및 경계선 마스크에 대한 최초 추출된 스티칭 파라미터The first extracted stitching parameters for 360 degree VR image and boundary line position and boundary line mask 경계선 위치 또는 경계선 마스크를 포함하는 추출 또는 업데이트된 스티칭 파라미터Extracted or updated stitching parameters including border position or border mask 블렌딩 및 후처리Blending and post processing 360도 VR 영상의 중복 영역의 블렌딩, 색 보정 및 노이즈 필터링이 포함됨.Includes blending, color correction, and noise filtering of overlapping areas of 360-degree VR images. 360도 VR 영상 및 스티칭 파라미터360 degree VR video and stitching parameters 블렌딩 및 후처리된 360도 VR 영상 Blended and post-processed 360 degree VR video 부호화encoding 여러 스레드 또는 GPU를 사용한, 블렌딩 및 후처리된 360도 VR 영상의 비디오 부호화가 포함됨.Includes video encoding of blended and post-processed 360 degree VR images using multiple threads or GPUs. 블렌딩 및 후처리된 360도 VR 영상과 클라우드 파라미터 Blended and post-processed 360 degree VR images and cloud parameters 부호화된 360 투사 영상 (클라우드 플랫폼의 출력일 수 있음)Coded 360 projection image (may be output from cloud platform)

미디어 서비스 제공자는 상기의 단계 130 내지 142에 따른 워크플로우를 사용하여, 사용자에게 영상 스티칭 서비스를 제공할 수 있다. 미디어 서비스 제공자의 작업 디렉토리는 표 1의 각 작업에 대한 세부 사항을 포함할 수 있다. 그리고 도 2의 워크플로우 관리자(202)는 표 1의 각 작업을 선택하여 도 1에 설명된 워크플로우를 준비할 수 있다. 이하, 도 1에서 설명된 단계 130 내지 단계 142에 따른 영상 스티칭 프로세스를 복수의 미디어 처리 주체(110)에 분배하는 미디어 시스템(200)이 설명된다.The media service provider may provide an image stitching service to a user by using the workflow according to steps 130 to 142 above. The media service provider's working directory may contain details for each job in Table 1. In addition, the workflow manager 202 of FIG. 2 may prepare the workflow described in FIG. 1 by selecting each task in Table 1. Hereinafter, the media system 200 for distributing the image stitching process according to steps 130 to 142 described in FIG. 1 to a plurality of media processing subjects 110 will be described.

도 2는 본 개시의 일 실시 예에 따른 복수의 처리 주체에 따른 영상 스티칭을 위한 미디어 시스템(200)을 도시한다.2 illustrates a media system 200 for image stitching according to a plurality of processing subjects according to an embodiment of the present disclosure.

미디어 시스템(200)은 워크플로우 관리자(202), 미디어 소스(204), 기능 레지스트리(206), 미디어 작업 관리자(208) 및 클라우드 플랫폼(210) 등을 포함한다. 도 2의 미디어 시스템(200)은 본 실시예를 설명하기 위해 필요한 일부 구성요소만을 도시할 뿐, 본 개시의 미디어 시스템(200)에 포함된 구성요소가 전술한 예에 한정되는 것은 아니다. 예컨대, 둘 이상의 구성요소가 하나의 구성요소 내에서 구현될 수도 있고, 하나의 구성요소에서 실행되는 동작이 분할되어 둘 이상의 구성요소에서 실행되도록 구현될 수도 있다. 또한, 일부 구성요소가 생략되거나 부가적인 구성요소가 추가될 수도 있다.The media system 200 includes a workflow manager 202, a media source 204, a function registry 206, a media task manager 208, a cloud platform 210, and the like. The media system 200 of FIG. 2 shows only some components necessary to describe the present embodiment, and components included in the media system 200 of the present disclosure are not limited to the above-described examples. For example, two or more components may be implemented within a single component, or an operation executed by one component may be divided and implemented to be executed by two or more components. In addition, some components may be omitted or additional components may be added.

워크플로우 관리자(202), 미디어 소스(204), 기능 레지스트리(206) 및 미디어 작업 관리자(208)는 각각 별도의 프로세서에 의하여 동작될 수 있다. 또는 워크플로우 관리자(202), 미디어 소스(204), 기능 레지스트리(206) 및 미디어 작업 관리자(208) 중 전부 또는 일부는 하나의 프로세서에 의하여 동작될 수 있다. 그리고 워크플로우 관리자(202), 미디어 소스(204), 기능 레지스트리(206) 및 미디어 작업 관리자(208)는 각각 영상 스티칭을 위한 정보를 저장하기 위한 메모리 디바이스를 포함할 수 있다.The workflow manager 202, the media source 204, the function registry 206, and the media task manager 208 may each be operated by separate processors. Alternatively, all or some of the workflow manager 202, media source 204, function registry 206, and media task manager 208 may be operated by a single processor. In addition, the workflow manager 202, the media source 204, the function registry 206, and the media task manager 208 may each include a memory device for storing information for image stitching.

워크플로우 관리자(202)는 영상 스티칭을 위한 워크플로우를 생성할 수 있다. 그리고 워크플로우 관리자(202)는 클라우드 플랫폼(210)에 상기 워크플로우에 포함된 복수의 작업을 수행하기 위한 복수의 미디어 처리 주체를 생성할 수 있다.The workflow manager 202 may create a workflow for image stitching. In addition, the workflow manager 202 may create a plurality of media processing subjects for performing a plurality of tasks included in the workflow on the cloud platform 210.

클라우드 플랫폼(210)은 복수의 프로세서를 포함한다. 그리고 클라우드 플랫폼(210)에 설정된 복수의 미디어 처리 주체에 의하여, 영상 스티칭을 위하여 필요한 작업들이 수행될 수 있다. 이하, 워크플로우 관리자(202)에 의한 영상 스티칭의 워크플로우 설정 방법이 이하 도 3에서 자세히 설명된다.The cloud platform 210 includes a plurality of processors. In addition, tasks necessary for image stitching may be performed by a plurality of media processing subjects set in the cloud platform 210. Hereinafter, a method of setting a workflow for image stitching by the workflow manager 202 will be described in detail with reference to FIG. 3.

도 3은 본 개시의 일 실시 예에 따른 영상 스티칭의 작업을 수행하기 위한 워크플로우를 자세히 설명한다.3 is a detailed description of a workflow for performing an image stitching operation according to an embodiment of the present disclosure.

단계 S302에서, 미디어 소스(204)는, CreateWorkflow API(Application Programming Interface)를 사용하여, 영상 스티칭에 대한 요청과 함께, 영상 스티칭을 위한 워크플로우를 생성한다. 상기 CreateWorkflow API는 워크플로우 생성을 위한 전용 API이다. 그리고 미디어 소스(204)는, 상기 생성된 워크플로우를 설명하는 워크플로우 설명 문서를 생성하고, 상기 워크플로우 설명 문서를 워크플로우 관리자(202)에 전송한다. 워크플로우 관리자(202)는 전송된 워크플로우 설명 문서에 따라, 워크플로우를 생성한다.In step S302, the media source 204 generates a workflow for image stitching together with a request for image stitching using a CreateWorkflow API (Application Programming Interface). The CreateWorkflow API is a dedicated API for creating a workflow. Then, the media source 204 generates a workflow description document describing the generated workflow, and transmits the workflow description document to the workflow manager 202. The workflow manager 202 creates a workflow according to the transmitted workflow description document.

워크플로우 설명 문서는 일반 설명자 파라미터, 입력 설명자 파라미터, 출력 설명자 파라미터, 프로세싱 설명자 파라미터, 요구사항 설명자 파라미터, 클라이언트 지원 설명자 파라미터, 대체 작동(failover) 설명자 파라미터, 모니터링 설명자 파라미터, 및 보고 설명자 파라미터 등을 포함할 수 있다.Workflow description documents include general descriptor parameters, input descriptor parameters, output descriptor parameters, processing descriptor parameters, requirements descriptor parameters, client support descriptor parameters, failover descriptor parameters, monitoring descriptor parameters, and reporting descriptor parameters. can do.

일반 설명자 파라미터는 워크플로우의 ID, 명칭, 설명자, 브랜드, 우선도 등을 포함한다. 입력 설명자 파라미터는 입력될 영상의 코덱 유형, 프레임 속도, 해상도, 입력 뷰 수, 메타데이터 스트림, 및 메타 데이터 수집 포맷 등과 같은 미디어 파라미터를 포함한다. 출력 설명자 파라미터 는 워크플로우에 의하여 출력될 스티칭 영상의 코덱 유형, 프레임 속도, 게시 포맷, 메타데이터 스트림, 및 메타 데이터 수집 포맷 등과 같은 미디어 파라미터를 포함한다. 처리 설명자 파라미터는, 영상 스티칭의 각 작업들의 처리 유형 및 각 작업들 간의 연결 정보에 대한 파라미터를 포함한다. 요구 사항 설명자 파라미터는, 지연 요구 사항 등의, 전체 워크플로우에 대한 요구 사항에 대한 파라미터를 포함한다. 클라이언트 지원 설명자 파라미터는 워크 플로우에 대한 클라이언트 지원에 대한 파라미터를 포함한다. 대체 작동 설명자 파라미터는 워크플로우의 시스템 대체 작동에 대한 파라미터를 포함한다. 모니터링 설명자 파라미터는 워크 플로우의 모니터링 유형에 대한 파라미터를 포함한다. 보고 설명자 파라미터는 워크플로우의 모니터링에 대한 결과를 보고하는 유형, 주기, 시작시간 등을 나타내는 파라미터를 포함한다.General descriptor parameters include the workflow ID, name, descriptor, brand, priority, etc. The input descriptor parameter includes media parameters such as codec type, frame rate, resolution, number of input views, metadata stream, and metadata collection format of an image to be input. The output descriptor parameter includes media parameters such as codec type, frame rate, posting format, metadata stream, and metadata collection format of the stitched image to be output by the workflow. The processing descriptor parameter includes a parameter for a processing type of each job of image stitching and connection information between each job. The requirements descriptor parameter contains parameters for requirements for the entire workflow, such as delay requirements. The client support descriptor parameter contains parameters for client support for the workflow. The alternate operation descriptor parameter contains parameters for the system alternate operation of the workflow. The monitoring descriptor parameter contains parameters for the monitoring type of the workflow. The report descriptor parameter includes parameters indicating the type, period, and start time of reporting the results of the monitoring of the workflow.

이하, 표 2에 워크플로우 설명 문서의 각 설명자 파라미터와 설명자 파라미터에 포함된 하위 파라미터들의 일 실시 예가 설명되어 있다.Hereinafter, an embodiment of each descriptor parameter of the workflow description document and sub-parameters included in the descriptor parameter is described in Table 2.

번호number 파라미터parameter 추가 설명Further explanation 1One General DescriptorGeneral Descriptor 요구되는 워크플로우의 세부사항이 제공됨. 이하 파라미터의 리스트가 설명됨:●Details of the required workflow are provided. The following list of parameters is described: ID: m-360VR stitchingID: m-360VR stitching
명칭: m-360VR stitchingName: m-360VR stitching
설명자: 복수의 처리 주체에 따른 360VR 스티칭 워크플로우Descriptor: 360VR stitching workflow across multiple processing subjects
브랜드: urn:mpeg:nbmp:2019:functions: m-360VRStitcherBrand: urn:mpeg:nbmp:2019:functions: m-360VRStitcher
우선도:2Priority:2
22 InputDescriptorInputDescriptor 미디어 소스가 상기 워크플로우에 사용하려 하는 입력을 설명하는 정보가 제공됨.●Information is provided describing the input that the media source intends to use in the workflow. 미디어 파라미터:Media parameters:
미디어 설명자의 총 개수 N. 각 미디어 설명자는 아래의 미디어 파라미터를 포함함.Total number of media descriptors N. Each media descriptor contains the following media parameters.
■ 미디어 스트림 Id: 미디어 스트림의 MediaStreamId■ Media Stream Id: MediaStreamId of the media stream
■ 코덱 타입: HEVC■ Codec Type: HEVC
■ 미디어 타입: Video■ Media Type: Video
■ 코덱 클럭 레이트: 60fps■ Codec clock rate: 60fps
■ 프로토콜: MMT■ Protocol: MMT
■ 발생점(origination): 미디어 스트림의 URL■ Origin: URL of media stream
메타데이터 파라미터:Metadata parameters:
메타데이터 스트림 Id: 관심있는 뷰 스트림에 대한 메타 데이터 설명의 MetadataStreamIdMetadata Stream Id: MetadataStreamId of the metadata description for the view stream of interest
메타데이터 사전: MOREMetadata Dictionary: MORE
프로토콜: <ingest-protocol>Protocol: <ingest-protocol>
메타 데이터 수집 포맷: JSONMeta data collection format: JSON
발생점(origination): 메타데이터 스트림의 URLOrigin: URL of the metadata stream
33 OutputDescriptorOutputDescriptor 미디어 소스가 상기 워크플로우에 사용하려 하는 출력을 설명하는 정보가 제공됨.●Information is provided describing the output the media source intends to use for the workflow. 미디어 파라미터:Media parameters:
○ 스트림 정보○ Stream information
■ 미디어 스트림 Id: MediaStreamId of output media stream■ Media stream Id: MediaStreamId of output media stream
■ 스트림 태그: stream-tag■ Stream tag: stream-tag
■ 대역폭: Bandwidth■ Bandwidth: Bandwidth
■ 코덱 타입: AVC, HEVC, VVC■ Codec type: AVC, HEVC, VVC
■ 미디어 타입: Video■ Media Type: Video
■ 클럭 레이트: 60fps■ Clock rate: 60fps
■ 프로토콜: <protocol>■ Protocol: <protocol>
■ 목적지: <destination-location>■ Destination: <destination-location>
■ 게시 포맷: OMAF■ Publication format: OMAF
메타데이터 파라미터:Metadata parameters:
메타데이터 스트림 Id: n/aMetadata Stream Id: n/a
메타데이터 사전: MPEG-I MetadataMetadata Dictionary: MPEG-I Metadata
프로토콜: n/aProtocol: n/a
메타 데이터 수집 포맷: JSONMeta data collection format: JSON
발생점(origination): URL of the Metadata streamOrigination: URL of the Metadata stream
44 ProcessingDescriptorProcessingDescriptor 미디어 소스에서 설정하려는 처리 유형에 대한 세부 정보가 제공됨.●Details on the type of processing you want to set up in the media source are provided.● Keyword Search for Tasks: 360VR stitching, multiple processing entitiesKeyword Search for Tasks: 360VR stitching, multiple processing entities
TaskConnectionMap: 정적 워크플로우의 서로 다른 작업들 간의 연결 정보 TaskConnectionMap: Connection information between different tasks in a static workflow
<OutputTask.OutputPort,InputTask.InputPort><OutputTask.OutputPort,InputTask.InputPort>

· · Decoding[0..n].outputFrame, FeaturepointExtraction[0..n].inputFrameDecoding[0..n].outputFrame, FeaturepointExtraction[0..n].inputFrame
· · FeaturepointExtraction[0..n].outputFeatureArray, CameraParameterExtraction.inputFeatureArrayFeaturepointExtraction[0..n].outputFeatureArray, CameraParameterExtraction.inputFeatureArray
· · CameraParameterExtraction.outputCameraParameters, Projection.inputCameraParametersCameraParameterExtraction.outputCameraParameters, Projection.inputCameraParameters
· · Decoding[0..n].outputFrame, Projection[0..n].inputFrameDecoding[0..n].outputFrame, Projection[0..n].inputFrame
· · CameraParameterExtraction.outputCameraParameters, SeamInformationExtraction.inputCameraParametersCameraParameterExtraction.outputCameraParameters, SeamInformationExtraction.inputCameraParameters
· · Projection[0..n].outputFrame, SeamInformationExtraction.inputFrameProjection[0..n].outputFrame, SeamInformationExtraction.inputFrame
· · SeamInformationExtraction.outputSeamMasks, BlendingandPostProcessing.inputSeamMasksSeamInformationExtraction.outputSeamMasks, BlendingandPostProcessing.inputSeamMasks
· · Projection[0..n].outputFrame, BlendingandPostProcessing.inputFrameProjection[0..n].outputFrame, BlendingandPostProcessing.inputFrame
BlendingandPostProcessing.outputFrame, Encoding.inputFrameBlendingandPostProcessing.outputFrame, Encoding.inputFrame
55 RequirementDescriptorRequirementDescriptor 전체 워크 플로우에 대한 요구 사항 정보가 지정됨. 상기 정보는 이하의 사항을 포함함.●Requirements information for the entire workflow is specified. The above information includes the following: QoS 요구사항: end-to-end 워크플로우를 위한 자세한 QoS 요구사항QoS requirements: Detailed QoS requirements for end-to-end workflow
지연 요구사항: 실시간Delay requirements: real time
프로세싱 요구사항:Processing requirements:
하드웨어 요구사항:Hardware requirements:
GPU: 4GPU: 4
CPU 코어: 8CPU core: 8
배치 요구사항:Deployment requirements:
위치: <network-edge>Location: <network-edge>
보안 요구사항: 불필요Security requirements: not required
66 ClientAssistanceClientAssistance 워크 플로우에 대한 클라이언트 지원 정보가 제공됨.●Client support information is provided for the workflow. Device-capabilities: n/aDevice-capabilities: n/a
User-preferences: n/aUser-preferences: n/a
77 FailoverDescriptorFailoverDescriptor 상기 워크플로우의 시스템 대체 작동(failover) 케이스의 정보가 제공됨.●Information on failover cases of the above workflow is provided. FailoverMode:FailoverMode:
ExecuteBackupDeploymentExecuteBackupDeployment
FailoverDelay: 0FailoverDelay: 0
상태 지속성 설명자:State persistence descriptor:
BackupDeployment:BackupDeployment:
88 MonitoringDescriptorMonitoringDescriptor 상기 워크 플로우의 모니터링 유형에 대한 정보가 제공됨. 상기 정보는 이하의 사항을 포함함:●Information about the type of monitoring of the above workflow is provided. The above information includes the following:● 이벤트: CRITICAL eventEvent: CRITICAL event
변수: No needVariable: No need
시스템: No needSystem: No need
99 ReportingDescriptorReportingDescriptor Report-type: <Consumption, QoS>●Report-type: <Consumption, QoS>● Reporting-Interval: 120Reporting-Interval: 120
Reporting-start-time: <start-time>Reporting-start-time: <start-time>
URL: <reporting-server-URL>URL: <reporting-server-URL>

단계 304에서, 워크플로우 관리자(202)는 영상 스티칭을 위한 워크플로우에 배치될 기능을 찾기 위하여, 쿼리 또는 쿼리 세트를 기능 레지스트리(206)에 전송한다. 상기 쿼리 또는 쿼리 세트는, 단계 302의 워크플로우 설명 문서에 의하여 요구되는 워크플로우의 기능을 설명한다. 그리고 기능 레지스트리(206)는 미디어 시스템(200)에서 지원하는 기능들의 리스트를 보관한다.In step 304, the workflow manager 202 transmits a query or set of queries to the function registry 206 in order to find a function to be placed in the workflow for image stitching. The query or set of queries describes the function of the workflow required by the workflow description document of step 302. In addition, the function registry 206 stores a list of functions supported by the media system 200.

단계 306에서, 각 쿼리에 대하여, 기능 레지스트리(206)는 영상 스티칭에 사용될 수 있는 기능들, 그리고 그것들의 설명 및 구성 정보의 목록을 워크플로우 관리자(202)에 제공한다. 기능 레지스트리(206)는 미디어 시스템(200)에서 지원하는 기능들의 리스트와 쿼리 또는 쿼리 세트에 설명된 워크플로우의 기능들의 설명을 비교한다. 그리고 기능 레지스트리(206)는 미디어 시스템(200)에서 지원되는 기능들 중, 상기 워크플로우에 적용될 수 있는 기능들의 리스트를 워크플로우 관리자(202)에 제공할 수 있다.In step 306, for each query, the function registry 206 provides the workflow manager 202 with a list of functions that can be used for image stitching, and their description and configuration information. The function registry 206 compares a list of functions supported by the media system 200 with a description of the functions of the workflow described in the query or query set. In addition, the function registry 206 may provide a list of functions applicable to the workflow among functions supported by the media system 200 to the workflow manager 202.

단계 308에서, 워크플로우 관리자(202)는 단계 306에서 기능 레지스트리(206)로부터 제공된 기능들의 리스트로부터 상기 워크플로우에 필요한 기능들을 선택한다. 그리고, 워크플로우 관리자(202)는, 클라우드 플랫폼(210)에 접속하여, 상기 선택된 기능들의 요구 사항에 따라, 클라우드 플랫폼(210)에 하나 이상의 미디어 처리 주체들을 생성할 수 있다.In step 308, the workflow manager 202 selects functions required for the workflow from the list of functions provided from the function registry 206 in step 306. In addition, the workflow manager 202 may access the cloud platform 210 and create one or more media processing subjects in the cloud platform 210 according to the requirements of the selected functions.

단계 310에서, 클라우드 플랫폼(210)은 하나 이상의 미디어 처리 주체의 생성을 확인한다. 그리고 클라우드 플랫폼(210)은 하나 이상의 미디어 처리 주체에 대한 네트워크 액세스 정보의 생성을 확인할 수 있다. 클라우드 플랫폼(210)은 하나 이상의 미디어 처리 주체의 생성되었음을 워크플로우 관리자(202)에 전달한다.In step 310, the cloud platform 210 confirms the creation of one or more media processing subjects. In addition, the cloud platform 210 may check the generation of network access information for one or more media processing subjects. The cloud platform 210 communicates to the workflow manager 202 that one or more media processing entities have been created.

단계 312에서, 워크플로우 관리자(202)는 각 작업(task)에 대한 설정 정보를 생성한다. 그리고 워크플로우 관리자(202)는 작업 관리자(208)에게 각 작업마다 설정 정보를 전송한다. 상기 설정 정보를 작업 관리자(208)에게 전송하기 위하여, 작업 API가 사용될 수 있다. 작업 API는 설정 정보를 생성하기 위한 전용 API이다In step 312, The workflow manager 202 generates setting information for each task. Then, the workflow manager 202 transmits the setting information for each job to the job manager 208. In order to transmit the setting information to the task manager 208, a task API may be used. Operation API is a dedicated API for creating configuration information.

단계 314에서, 작업 관리자(208)는 각 작업에 대한 성공적인 설정이 이루어졌는지 확인한다. 만약 현재 작업에 대한 성공적인 설정이 이루어진 경우, 작업 관리자(208)는 워크플로우 관리자(202)가 다음 작업에 접근할 수 있도록 접근 정보를 생성한다. 그리고 작업 관리자(208)는 워크플로우 관리자(202)에게 접근 정보를 생성한다. 각 작업에 대하여 단계 312와 단계 314가 수행됨으로써, 전체 워크플로우에 대한 성공적인 설정이 이루어졌는지 확인될 수 있다.In step 314, the task manager 208 checks whether successful settings for each task have been made. If successful setting of the current task is made, the task manager 208 generates access information so that the workflow manager 202 can access the next task. And the task manager 208 generates access information to the workflow manager 202. Steps 312 and 314 are performed for each task, so that it can be confirmed whether or not the entire workflow has been successfully set.

단계 316에서, 워크플로우 관리자(202)는 워크플로우의 생성을 확인하고, 미디어 소스(204)에 영상 스티칭을 위한 미디어 처리가 시작될 수 있음을 알린다. 그리고 미디어 소스(204)에서 제공되는 미디어 소스(104)가 상기 워크플로우에 따라 처리됨으로써, 360도 VR 이미지가 생성될 수 있다.In step 316, the workflow manager 202 confirms the creation of the workflow, and informs the media source 204 that media processing for image stitching can be started. In addition, by processing the media source 104 provided from the media source 204 according to the workflow, a 360 degree VR image may be generated.

일 실시 예에 따르면, 워크플로우 관리자(202)는 각 작업의 출력과 관련된 컨텐트-종속 파라미터를 지속적으로 모니터링할 수 있다. 컨텐트-종속 파라미터는 컨텐트에 따라 변경되는 파라미터를 의미한다. 비디오의 다음 세그먼트에 대해 각 작업의 일부 컨텐트-종속 파라미터를 변경해야 하는 경우, 워크플로우 관리자(202)는 작업 API를 사용하여 설정 정보를 업데이트할 수 있다. 그리고 워크플로우 관리자(202)는 업데이트된 설정 정보를 해당 작업으로 전송할 수 있다.According to an embodiment, the workflow manager 202 may continuously monitor a content-dependent parameter related to output of each job. The content-dependent parameter means a parameter that changes according to the content. When it is necessary to change some content-dependent parameters of each job for the next segment of the video, the workflow manager 202 may update the setting information using the job API. Further, the workflow manager 202 may transmit the updated setting information to the corresponding job.

일 실시 예에 따르면, 영상 스티칭에 대한 요청이 없을 경우 (또는 요청이 중단될 경우), 미디어 소스(204)는 DeleteWorkflow API 를 사용하여, 영상 스티칭을 중단할 수 있다.According to an embodiment, when there is no request for image stitching (or when the request is stopped), the media source 204 may stop image stitching by using the DeleteWorkflow API.

도 2 및 도 3에서, 단계 302 내지 단계 316에서 스티칭 워크플로우의 생성 및 스티칭 워크플로우의 프로세스가 복수의 주체가 상호작용하여 실시되는 것으로 설명되었다. 그러나 일 실시 예에 따르면, 도 2 및 도 3과 달리, 워크플로우 관리자(202), 미디어 소스(204), 기능 레지스트리(206), 미디어 작업 관리자(208)의 기능이 모두 클라우드 플랫폼(210)에서 처리될 수 있다. 따라서 일 실시 예에 따르면, 클라우드 플랫폼(210)에서 스티칭에 대한 워크플로우 생성에 필요한 모든 작업이 수행될 수 있다.In FIGS. 2 and 3, it has been described that in steps 302 to 316, the process of creating a stitching workflow and a process of the stitching workflow is performed by interacting with a plurality of subjects. However, according to an embodiment, unlike FIGS. 2 and 3, the functions of the workflow manager 202, the media source 204, the function registry 206, and the media task manager 208 are all in the cloud platform 210. Can be processed. Therefore, according to an embodiment, all tasks necessary for creating a workflow for stitching may be performed in the cloud platform 210.

이상 설명된 바와 같이, 워크플로우에서 사용되는 기능(function)을 설정하고, 워크플로우의 작업을 수행하기 위한 적절한 개수의 미디어 처리 주체를 생성하고, 워크플로우의 각 작업의 설정 정보를 결정하기 위하여, 워크플로우의 작업들에 대한 많은 파라미터들이 필요하다.As described above, in order to set the function used in the workflow, create an appropriate number of media processing subjects for performing the work of the workflow, and determine the setting information of each work of the workflow, Many parameters are required for the tasks of the workflow.

이하, 표 3는 영상 스티칭 기능 참조 템플릿의 파라미터 리스트의 일 실시 예를 나타낸다. 표 3에서 워크플로우에 대한 파라미터의 타입과 설명이 더 구체적으로 설명된다.Hereinafter, Table 3 shows an embodiment of a parameter list of an image stitching function reference template. In Table 3, the types and descriptions of parameters for the workflow are described in more detail.

설명자explainer 파라미터 명칭Parameter name 타입type 설명Explanation GeneralGeneral IDID 스트링String 기능 저장소로부터 제공됨Provided from the feature store NameName 스트링String "m-360VRStitcher""m-360VRStitcher" DescriptionDescription 스트링String "360 VR stitcher with multiple processing entities""360 VR stitcher with multiple processing entities" BrandBrand 스트링String "urn:mpeg:nbmp:2019:functions:m-360VRStitcher""urn:mpeg:nbmp:2019:functions:m-360VRStitcher" InputPortsInputPorts Map 적어도 하나의 입력 미디어와 함께, 선택적으로 입력 메타데이터가 포함될 수 있음.Input metadata may be optionally included along with at least one input media. OutputPortsOutputPorts Map 적어도 하나의 출력 미디어와 함께, 선택적으로 출력 메타데이터가 포함될 수 있음.Output metadata may be optionally included along with at least one output media. InputInput Media ParametersMedia Parameters 오브젝트Object 스티칭 할 (인코딩 된) 영상 또는 비디오.m-360VRstitcher의 입력 미디어 능력이 제공됨
● 스트림 개요: CMAF, OMAF, ISOBMFF
● 미디어 스트림 Id: n/a
● 코덱 타입: AVC, HEVC, VVC
● 미디어 타입: Video, Image
● 코덱 클럭 레이트: 24fps, 25fps, 30fps, 50fps, 60fps
● 프로토콜: n/a
● 발생점(origination): n/a
Image or video to be stitched (encoded). Input media capabilities of m-360VRstitcher provided
● Stream overview: CMAF, OMAF, ISOBMFF
● Media Stream Id: n/a
● Codec type: AVC, HEVC, VVC
● Media Type: Video, Image
● Codec clock rate: 24fps, 25fps, 30fps, 50fps, 60fps
● Protocol: n/a
● Origination: n/a
Metadata ParametersMetadata parameters 오브젝트Object m-360VRstitcher의 입력 메타데이터 능력이 제공됨● 스트림 개요: MORE, MPEG-V[W사1]
● 메타데이터 스트림 Id: n/a
● 메타데이터 사전: MORE, MPEG-V
● 프로토콜: n/a
● 메타 데이터 수집 포맷: JSON, ISOBMFF, XML
● 발생점(origination): URL of the Metadata stream
Input metadata capability of m-360VRstitcher is provided ● Stream overview: MORE, MPEG-V [Company W1]
● Metadata Stream Id: n/a
● Metadata dictionary: MORE, MPEG-V
● Protocol: n/a
● Meta data collection format: JSON, ISOBMFF, XML
● Origination: URL of the Metadata stream
OutputOutput Media ParametersMedia Parameters 오브젝트Object m-360VRstitcher의 출력 미디어 능력이 제공됨● 스트림 개요: OMAF
● 미디어 스트림 Id: n/a
● 코덱 타입: AVC, HEVC, VVC
● 미디어 타입: Video, Image
● 코덱 클럭 레이트: 24fps, 25fps, 30fps, 50fps, 60fps
● 프로토콜: MPEG-DASH, MPEG-MMT, MPEG2-TS
● 발생점(origination): n/a
Output media capabilities of the m-360VRstitcher are provided ● Stream overview: OMAF
● Media Stream Id: n/a
● Codec type: AVC, HEVC, VVC
● Media Type: Video, Image
● Codec clock rate: 24fps, 25fps, 30fps, 50fps, 60fps
● Protocol: MPEG-DASH, MPEG-MMT, MPEG2-TS
● Origination: n/a
Metadata ParametersMetadata parameters 오브젝트Object m-360VRstitcher의 출력 메타데이터 능력이 제공됨● 메타데이터 개요: MPEG-I Metadata, MORE
● 메타데이터 스트림 Id: n/a
● 메타데이터 사전 MPEG-I Metadata, MORE
● 프로토콜: n/a
● 메타 데이터 수집 포맷: JSON, ISOBMFF, XML
● 발생점(origination): URL of the Metadata stream
Output metadata capability of m-360VRstitcher is provided ● Metadata overview: MPEG-I Metadata, MORE
● Metadata Stream Id: n/a
● Metadata dictionary MPEG-I Metadata, MORE
● Protocol: n/a
● Meta data collection format: JSON, ISOBMFF, XML
● Origination: URL of the Metadata stream
ProcessingProcessing KeywordsKeywords 어레이Array 키워드의 개수· "m-360vrstitching"
· "m-360 stitching"
Number of keywords· "m-360vrstitching"
· "M-360 stitching"
TaskConnectionMapTaskConnectionMap 정적 워크플로우의 다른 작업들 간의 연결 정보 <OutputTask.OutputPort,InputTask.InputPort>
● Decoding[0..n].outputFrame, FeaturepointExtraction[0..n].inputFrame
● FeaturepointExtraction[0..n].outputFeatureArray, CameraParameterExtraction.inputFeatureArray
● CameraParameterExtraction.outputCameraParameters, Projection.inputCameraParameters
● Decoding[0..n].outputFrame, Projection[0..n].inputFrame
● CameraParameterExtraction.outputCameraParameters, SeamInformationExtraction.inputCameraParameters
● Projection[0..n].outputFrame, SeamInformationExtraction.inputFrame
● SeamInformationExtraction.outputSeamMasks, BlendingandPostProcessing.inputSeamMasks
● Projection[0..n].outputFrame, BlendingandPostProcessing.inputFrame
● BlendingandPostProcessing.outputFrame, Encoding.inputFrame
Connection information between different tasks in static workflow <OutputTask.OutputPort,InputTask.InputPort>
● Decoding[0..n].outputFrame, FeaturepointExtraction[0..n].inputFrame
● FeaturepointExtraction[0..n].outputFeatureArray, CameraParameterExtraction.inputFeatureArray
● CameraParameterExtraction.outputCameraParameters, Projection.inputCameraParameters
● Decoding[0..n].outputFrame, Projection[0..n].inputFrame
● CameraParameterExtraction.outputCameraParameters, SeamInformationExtraction.inputCameraParameters
● Projection[0..n].outputFrame, SeamInformationExtraction.inputFrame
● SeamInformationExtraction.outputSeamMasks, BlendingandPostProcessing.inputSeamMasks
● Projection[0..n].outputFrame, BlendingandPostProcessing.inputFrame
● BlendingandPostProcessing.outputFrame, Encoding.inputFrame
RequirementsRequirements QoS RequirementsQoS requirements 오브젝트Object ● 모든 입력 비디오는 MORE 에 기초하여 동기화되어야 함● All input video must be synchronized based on MORE Processing RequirementsProcessing Requirements 오브젝트Object ● 프로세싱 요구사항:○ 하드웨어 요구사항:
■ GPU: 4
■ CPU 코어: 8
○ 배치 요구사항:
■ 위치: <network-edge>
● Processing requirements: ○ Hardware requirements:
■ GPU: 4
■ CPU core: 8
○ Deployment requirements:
■ Location: <network-edge>
Security RequirementsSecurity Requirements 오브젝트Object n/an/a ConfigurationConfiguration ParametersParameters 어레이Array 기능 파라미터● 미디어 파라미터 (코덱, 크로마, fps, gop, 해상도)
● 특징 파라미터 (특징 추출 방법, 특징점 개수, 특징점 위치, 선택적 특징 대응점)
● 카메라 파라미터 (내부 및 외부 파라미터: 카메라의 초점거리, 주점, 비대칭 계수, 카메라의 이동 및 회전 파라미터)
● 프로젝션 파라미터 (프로젝션 타입)
● 스티칭 파라미터 (경계점 위치 및 경계점 마스크)
● 클라우드 파라미터(쓰레드의 개수, GPU의 개수)
Function parameters Media parameters (codec, chroma, fps, gop, resolution)
● Feature parameters (feature extraction method, number of feature points, feature point location, optional feature correspondence points)
● Camera parameters (internal and external parameters: camera focal length, main point, asymmetry coefficient, camera movement and rotation parameters)
● Projection parameters (projection type)
● Stitching Parameters (Border Point Position and Boundary Point Mask)
● Cloud parameters (number of threads, number of GPUs)
ClientAssistanceClientAssistance clientAssistanceFlagclientAssistanceFlag 부울 계수Boolean coefficient Device CapabilitiesDevice Capabilities 스트링String User PreferencesUser Preferences 스트링String MonitoringMonitoring VariableVariable 어레이Array AssertionAssertion AssertionsAssertions 오브젝트Object

상기 표 3의 처리(processing) 설명자 파라미터의 TaskConnectionMap 파라미터에는 단계 130 내지 142에서 설명된 영상 스티칭의 워크플로우의 각 작업에 대한 연결 정보가 포함된다. TaskConnectionMap에 대한 설명에 따르면, 상기 연결 정보는 “<OutputTask.OutputPort,InputTask.InputPort>”의 형태로 제공된다. OutputTask는 출력 작업을 나타내고, InputTask는 입력 작업을 나타낸다. 그리고 OutputPort는 출력 작업에 따른 출력 정보의 형태를 나타내고, InputPort는 입력 작업을 위한 입력 정보의 형태를 나타낸다.The TaskConnectionMap parameter of the processing descriptor parameter of Table 3 includes connection information for each task of the workflow of image stitching described in steps 130 to 142. According to the description of TaskConnectionMap, the connection information is provided in the form of “<OutputTask.OutputPort,InputTask.InputPort>”. OutputTask represents an output task, and InputTask represents an input task. In addition, OutputPort represents the type of output information according to the output operation, and InputPort represents the type of input information for the input operation.

예를 들어, ”Decoding[0..n].outputFrame, FeaturepointExtraction[0..n].inputFrame” 출력 작업은 복호화이고, 복호화 작업의 종결에 따라 출력 프레임이 생성됨을 나타낸다. 또한, 상기 구문은 입력 작업은 특징점 추출이며, 특징점 추출 작업을 위하여 입력 프레임이 입력됨을 나타낸다. 또한 상기 구문에 따라, 복호화 작업의 출력 정보가 특징점 추출 작업에 입력됨을 알 수 있다.For example, ”Decoding[0..n].outputFrame, FeaturepointExtraction[0..n].inputFrame” indicates that the output operation is decoding, and an output frame is generated according to the end of the decoding operation. Further, the syntax indicates that the input operation is feature point extraction, and an input frame is input for the feature point extraction operation. In addition, according to the above syntax, it can be seen that output information of the decoding operation is input to the feature point extraction operation.

표 3의 TaskConnectionMap에 따른 연결 정보에 따라 영상 스티칭 워크플로우를 구현할 때, 영상 스티칭의 세부 단계가 도 1의 단계 130 내지 142와 마찬가지로 구현됨을 알 수 있다.When implementing the image stitching workflow according to the connection information according to the TaskConnectionMap in Table 3, it can be seen that detailed steps of image stitching are implemented in the same manner as steps 130 to 142 of FIG. 1.

표 3에는 설정 파라미터(Configuration parameter)가 정의되어 있다. 설정 파라미터에는 영상 스티칭 워크플로우에 필요한 작업들의 설정 정보를 위한 하위 파라미터가 포함된다. 예를 들어, 미디어 파라미터는 코덱, 크로마, fps(frame per second), gop(group of pictures), 해상도에 관한 하위 파라미터를 포함하는 어레이 형태의 데이터로 표현될 수 있다. 특징 파라미터는 특징 추출 방법, 특징점 개수, 특징점 위치, 선택적 특징 대응점 에 관한 하위 파라미터를 포함하는 어레이 형태의 데이터로 표현될 수 있다. 카메라 파라미터는 카메라의 초점거리(focal length), 주점(principal point), 비대칭 계수(skew coefficient), 카메라의 이동 및 회전(translation and rotation) 등에 관한 하위 파라미터를 포함하는 어레이 형태의 데이터로 표현될 수 있다. 프로젝션 파라미터는 프로젝션 타입 등에 관한 하위 파라미터를 포함하는 어레이 형태의 데이터로 표현될 수 있다. 스티칭 파라미터는 경계점 위치 및 경계점 마스크 등에 관한 하위 파라미터를 포함하는 어레이 형태의 데이터로 표현될 수 있다. 클라우드 파라미터는 쓰레드의 개수, GPU의 개수 등에 관한 하위 파라미터를 포함하는 어레이 형태의 데이터로 표현될 수 있다.Table 3 defines configuration parameters. The setting parameters include sub-parameters for setting information on tasks necessary for the image stitching workflow. For example, the media parameter may be expressed as data in the form of an array including sub-parameters related to codec, chroma, frame per second (fps), group of pictures (gop), and resolution. The feature parameter may be expressed as data in the form of an array including sub-parameters related to the feature extraction method, the number of feature points, the feature point location, and the optional feature correspondence point. The camera parameter can be expressed as data in the form of an array including sub-parameters related to the focal length of the camera, the principal point, the skew coefficient, and the translation and rotation of the camera. have. The projection parameter may be expressed as data in the form of an array including sub-parameters related to the projection type. The stitching parameter may be expressed as data in the form of an array including sub-parameters related to a boundary point position and a boundary point mask. The cloud parameter may be expressed as data in the form of an array including sub-parameters related to the number of threads and the number of GPUs.

이하, 표 4 내지 표 9에서 영상 스티칭의 각 작업에 필요한 파라미터들의 실시 예들이 설명된다. Hereinafter, embodiments of parameters required for each operation of image stitching are described in Tables 4 to 9.

표 4는 미디어 파라미터의 실시 예를 나타낸다.Table 4 shows examples of media parameters.

파라미터 명칭Parameter name 타입type 파라미터 설명Parameter description CodecCodec 스트링String 비디오 코덱 타입. 예) h.264/avc, h.265/hevc 등 영상 코덱 타입. 예) png, jpg 등.Video codec type. Ex) Video codec type such as h.264/avc, h.265/hevc. Ex) png, jpg, etc. ChromaChroma 스트링String 크로마 서브샘플링 타입 yuv420, yuv422, yuv444 etc.Chroma subsampling types yuv420, yuv422, yuv444 etc. FpsFps 숫자number Frame 초당 프레임, 30, 60 등.Frame Frames per second, 30, 60, etc. GopGop 숫자number GOP 크기, 15, 30 등.GOP size, 15, 30, etc. ResolutionResolution 스트링String 해상도 3840x2160, 7680 x 4320 등.Resolution 3840x2160, 7680 x 4320, etc.

표 5은 특징 파라미터의 실시 예를 나타낸다.Table 5 shows an example of a feature parameter.

파라미터 명칭Parameter name 타입type 파라미터 설명Parameter description Feature extraction methodFeature extraction method 스트링String 특징점 검출 방법 예)SIFT, SURF, KAZE, AKAZE, ORB, BRISK, BRIEF, LoG 등.Feature point detection method ex) SIFT, SURF, KAZE, AKAZE, ORB, BRISK, BRIEF, LoG, etc. Feature point numberFeature point number 숫자number 특징점의 개수Number of feature points Feature point positionsFeature point positions 어레이Array x, y 좌표들에 따라 특정되는 특징점의 위치The location of the feature point specified according to x and y coordinates Feature correspondenceFeature correspondence 스트링String 각 특징점의 대응점Correspondence point of each feature point

표 6은 카메라 파라미터의 실시 예를 나타낸다.Table 6 shows examples of camera parameters.

파라미터 명칭Parameter name 타입type 파라미터 설명Parameter description Camera_shutter_typeCamera_shutter_type 스트링String "rolling" 또는 "global""rolling" or "global" Camera_sync_skewCamera_sync_skew 숫자number 0 if in synch, milliseconds for out of synch, -1 if not known0 if in synch, milliseconds for out of synch, -1 if not known Capturing_settingsCapturing_settings 오브젝트Object 장면 타입 (실내 또는 실외), 주변 조명의 노출도 등.Scene type (indoor or outdoor), exposure of ambient lighting, etc. Camera_extrinsicsCamera_extrinsics 오브젝트Object 3D 공간에서 영상을 정렬하기 위한 카메라 변환 파라미터 (카메라의 이동 및 회전 파라미터)Camera conversion parameters for aligning images in 3D space (camera movement and rotation parameters) Camera_intrinsicsCamera_intrinsics 오브젝트Object 3D 공간에서 영상을 정렬하기 카메라 내부 파라미터 (카메라의 초점거리, 주점, 비대칭 계수)Aligning images in 3D space Camera internal parameters (focal length of camera, main point, asymmetry coefficient)

표 7은 프로젝션 파라미터의 실시 예를 나타낸다.Table 7 shows examples of projection parameters.

파라미터 명칭Parameter name 타입type 파라미터 설명Parameter description Projection_typeProjection_type 스트링String 프로젝션 타입 예) 등장방형, 정방형, 원형 실린더형 등.Projection type ex) equirectangular, square, circular cylinder type, etc.

표 8는 스티칭 파라미터의 실시 예를 나타낸다.Table 8 shows examples of stitching parameters.

파라미터 명칭Parameter name 타입type 파라미터 설명Parameter description Seam_positionsSeam_positions 어레이Array 최종 스티칭 품질에 영향을 미치는 보간 영역. 영역 구조는 일련의 픽셀 포인트 (시작점, 교차점, 끝점)로 표시될 수 있음.Interpolation area affecting the final stitching quality. The area structure can be represented as a series of pixel points (start point, intersection point, end point). Seam_maskSeam_mask 오브젝트Object 선택적으로, 보간된 영역 위치는 보다 정교한 스티칭 프로세스를 위해 1 또는 0 값 만을 갖는 마스크 이미지로 표현될 수 있음. URL 또는 URI로 마스크 이미지를 배치할 수도 있음.Optionally, the interpolated region position can be represented as a mask image with only 1 or 0 values for a more sophisticated stitching process. You can also place a mask image by URL or URI. Preserved_regionsPreserved_regions 어레이Array 복수의 미디어가 아래의 타입들 중 하나의 타입으로 처리될 때, 중요 영역이 제공됨.- Input media stream id
- RectangleType{left, right, top, bottom}
- RegionMask{Mask_image}
-DepthMask{Mask_Grey_image}
-MultipathType(Array of 2D Points)

When multiple media are processed as one of the following types, an important area is provided:-Input media stream id
-RectangleType{left, right, top, bottom}
-RegionMask{Mask_image}
-DepthMask{Mask_Grey_image}
-MultipathType(Array of 2D Points)

Stitching_methodStitching_method 스트링String 부분 또는 전부 스티칭 접근으로 특정되는 특정 스티칭 알고리즘.A specific stitching algorithm that is specified as a partial or full stitching approach. Seam_extent_of_freedomSeam_extent_of_freedom 숫자number 경계 영역이 움직일 수 있는 자유도, 예. 수평 방향The degrees of freedom the boundary area can move, eg Horizontal direction

도 4는 다중 경로 타입(Multi-path type)에 따른 중요 영역(Preserved Region)을 결정하는 방법을 나타낸다. 도 4에 따르면, (x1, y1) 내지 (x5, y5)에 따른 5개의 지점에 따라 중요 영역이 결정될 수 있다. 실시 예에 따라, 중요 영역을 결정하기 위한 지점의 개수는 다르게 설정될 수 있다.4 shows a method of determining a Preserved Region according to a multi-path type. Referring to FIG. 4, an important area may be determined according to five points corresponding to (x1, y1) to (x5, y5). Depending on the embodiment, the number of points for determining the important area may be set differently.

표 9은 클라우드 파라미터의 실시 예를 나타낸다.Table 9 shows examples of cloud parameters.

파라미터parameter 타입type 파라미터 설명Parameter description Thread numberThread number 숫자number 사용되는 쓰레드의 개수Number of threads used GPU numberGPU number 숫자number 사용되는 GPU의 개수Number of GPUs used

표 4 내지 표 9에서 설명된 실시 예들의 파라미터에 따라, 영상 스티칭의 각 작업이 설정될 수 있다.According to the parameters of the embodiments described in Tables 4 to 9, each operation of image stitching may be set.

도 5는 본 개시의 일 실시 예에 따른, 영상 스티칭 워크플로우 생성 방법의 흐름도이다.5 is a flowchart illustrating a method of generating an image stitching workflow according to an embodiment of the present disclosure.

단계 502에서, 영상 스티칭에 대한 요청 및 영상 스티칭 워크플로우의 생성에 필요한 360도 VR 영상 파라미터가 획득된다.In step 502, a request for image stitching and a 360 degree VR image parameter necessary for generating an image stitching workflow are obtained.

단계 504에서, 영상 스티칭 워크플로우에 적용될 수 있는 기능(function) 리스트가 획득된다.In step 504, a list of functions that can be applied to the image stitching workflow is obtained.

단계 506에서, 기능 리스트로부터 선택된 기능들에 기초하여, 영상 스티칭 워크플로우가 생성된다.In step 506, based on the functions selected from the function list, an image stitching workflow is generated.

단계 508에서, 영상 스티칭 워크플로우를 구성하는 작업들을 처리하기 위하여 필요한 미디어 처리 주체의 개수를 결정하고, 결정된 미디어 처리 주체의 개수에 따라, 복수의 미디어 처리 주체가 생성된다.In step 508, the number of media processing subjects required for processing the tasks constituting the image stitching workflow is determined, and a plurality of media processing subjects are generated according to the determined number of media processing subjects.

단계 510에서, 영상 스티칭 워크플로우를 구성하는 작업들이 복수의 미디어 처리 주체에 할당된다.In step 510, tasks constituting the image stitching workflow are assigned to a plurality of media processing subjects.

상기 영상 스티칭 워크플로우 생성 방법은, 영상 스티칭 워크플로우를 구성하는 현재 작업에 대한 설정 정보를 결정하고, 현재 작업에 대한 설정 정보를 작업 관리자에게 전송하는 단계 및 작업 관리자에 의하여 현재 작업에 대한 설정이 확인되는 경우, 작업 관리자로부터 현재 작업 바로 후 수행되는 다음 작업에 대한 접근 정보를 획득하는 단계를 더 포함할 수 있다.The video stitching workflow generation method includes determining setting information on a current job constituting the video stitching workflow, transmitting setting information on the current job to a job manager, and setting the current job by the job manager. When it is confirmed, the step of obtaining access information for a next task performed immediately after the current task from the task manager may be further included.

상기 영상 스티칭 워크플로우 생성 방법은, 360도 VR 영상 파라미터 중 컨텐트에 따라 변경되는 컨텐트-종속 파라미터의 변경이 있는 경우, 변경된 컨텐트-종속 파라미터에 관련된 작업에 대한 설정 정보를 업데이트하는 단계를 더 포함할 수 있다.The video stitching workflow generation method further includes updating setting information on a task related to the changed content-dependent parameter when there is a change in a content-dependent parameter that is changed according to a content among 360 degree VR video parameters. I can.

상기 영상 스티칭 워크플로우 생성 방법은, 미디어 소스로부터, 영상 스티칭에 대한 요청이 중단될 때, 상기 도 5의 각 단계들의 수행이 중단되도록 설정될 수 있다.The method of generating the image stitching workflow may be set such that when a request for image stitching is stopped from a media source, execution of each of the steps of FIG.

상기 영상 스티칭 워크플로우를 구성하는 작업들은 부호화된 미가공 영상을 복호화하는 단계, 복호화된 미가공 영상의 특징점을 추출하는 단계, 특징점에 기초하여, 카메라 파라미터를 추출하는 단계, 카메라 파라미터에 기초하여, 복호화된 미가공 영상을 투사체에 투사함으로써, 360도 VR 영상을 생성하는 단계, 카메라 파라미터에 기초하여, 360도 VR 영상의 경계선 정보를 결정하는 단계, 경계선 정보에 기초하여, 360도 VR 영상을 후처리하는 단계, 후처리된 360도 VR 영상을 부호화하는 단계를 포함할 수 있다. The tasks constituting the image stitching workflow include: decoding the encoded raw image, extracting feature points of the decoded raw image, extracting camera parameters based on the feature points, and decoded based on camera parameters. Generating a 360-degree VR image by projecting the raw image onto the projectile, determining boundary line information of the 360-degree VR image based on camera parameters, and post-processing the 360-degree VR image based on the boundary line information. The step may include encoding the post-processed 360-degree VR image.

상기 360도 VR 영상 파라미터는, 일반 설명자 파라미터, 입력 설명자 파라미터, 출력 설명자 파라미터, 프로세싱 설명자 파라미터, 요구사항 설명자 파라미터, 클라이언트 지원 설명자 파라미터, 대체 작동(failover) 설명자 파라미터, 모니터링 설명자 파라미터, 및 보고 설명자 파라미터 중 적어도 하나를 포함할 수 있다.The 360-degree VR video parameters include: general descriptor parameters, input descriptor parameters, output descriptor parameters, processing descriptor parameters, requirements descriptor parameters, client support descriptor parameters, failover descriptor parameters, monitoring descriptor parameters, and reporting descriptor parameters. It may include at least one of.

상기 360도 VR 영상 파라미터는, 설정 파라미터를 포함하고, 상기 설정 파라미터는 미디어 파라미터, 특징 파라미터, 카메라 파라미터, 프로젝션 파라미터, 스티칭 파라미터, 및 클라우드 파라미터 중 적어도 하나를 포함할 수 있다. 상기 클라우드 파라미터는 상기 영상 스티칭 워크플로우를 수행하기 위하여 필요한 컴퓨팅 리소스를 나타내고, 상기 클라우드 파라미터에 따라, 상기 미디어 처리 주체의 개수를 결정될 수 있다.The 360 degree VR image parameter includes a setting parameter, and the setting parameter may include at least one of a media parameter, a feature parameter, a camera parameter, a projection parameter, a stitching parameter, and a cloud parameter. The cloud parameter represents a computing resource required to perform the image stitching workflow, and the number of media processing subjects may be determined according to the cloud parameter.

상술한 실시 예들에서, 방법들은 일련의 단계 또는 유닛으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다. In the above-described embodiments, the methods are described on the basis of a flow chart as a series of steps or units, but the present invention is not limited to the order of steps, and certain steps may occur in a different order or concurrently with those described above. have. In addition, those of ordinary skill in the art understand that the steps shown in the flowchart are not exclusive, other steps are included, or one or more steps in the flowchart may be deleted without affecting the scope of the present invention. You can understand.

상술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.The above-described embodiments include examples of various aspects. Although not all possible combinations for representing the various aspects can be described, those of ordinary skill in the art will recognize that other combinations are possible. Accordingly, the present invention will be said to cover all other replacements, modifications and changes falling within the scope of the following claims.

이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The embodiments according to the present invention described above may be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded in the computer-readable recording medium may be specially designed and configured for the present invention, or may be known and usable to those skilled in the computer software field. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magnetic-optical media such as floptical disks. media), and a hardware device specially configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform processing according to the present invention, and vice versa.

이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.In the above, the present invention has been described by specific matters such as specific elements and limited embodiments and drawings, but this is provided only to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , Anyone with ordinary knowledge in the technical field to which the present invention pertains can make various modifications and variations from these descriptions.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위 뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention is limited to the above-described embodiments and should not be defined, and all modifications that are equivalently or equivalent to the claims as well as the claims to be described later fall within the scope of the spirit of the present invention. I would say.

Claims (20)

영상 스티칭에 대한 요청 및 영상 스티칭 워크플로우의 생성에 필요한 360도 VR 영상 파라미터를 획득하는 단계;
상기 영상 스티칭 워크플로우에 적용될 수 있는 기능(function) 리스트를 획득하는 단계;
상기 기능 리스트로부터 선택된 기능들에 기초하여, 상기 영상 스티칭 워크플로우를 생성하는 단계;
상기 영상 스티칭 워크플로우를 구성하는 작업들을 처리하기 위하여 필요한 미디어 처리 주체의 개수를 결정하고, 상기 결정된 미디어 처리 주체의 개수에 따라, 복수의 미디어 처리 주체를 생성하는 단계; 및
상기 영상 스티칭 워크플로우를 구성하는 작업들을 상기 복수의 미디어 처리 주체에 할당하는 단계를 포함하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 방법.
Obtaining a 360-degree VR image parameter required to request for image stitching and to create an image stitching workflow;
Obtaining a list of functions applicable to the image stitching workflow;
Generating the image stitching workflow based on functions selected from the function list;
Determining the number of media processing subjects necessary to process tasks constituting the image stitching workflow, and generating a plurality of media processing subjects according to the determined number of media processing subjects; And
And allocating tasks constituting the image stitching workflow to the plurality of media processing subjects.
제1항에 있어서,
상기 영상 스티칭 워크플로우 생성 방법은,
상기 영상 스티칭 워크플로우를 구성하는 현재 작업에 대한 설정 정보를 결정하고, 상기 현재 작업에 대한 설정 정보를 작업 관리자에게 전송하는 단계; 및
상기 작업 관리자에 의하여 상기 현재 작업에 대한 설정이 확인되는 경우, 상기 작업 관리자로부터 상기 현재 작업 바로 후 수행되는 다음 작업에 대한 접근 정보를 획득하는 단계를 더 포함하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 방법.
The method of claim 1,
The image stitching workflow generation method,
Determining setting information on a current job constituting the image stitching workflow, and transmitting setting information on the current job to a job manager; And
When the setting of the current task is confirmed by the task manager, the step of obtaining access information for a next task executed immediately after the current task from the task manager, further comprising: creating an image stitching workflow. Way.
제2항에 있어서,
상기 영상 스티칭 워크플로우 생성 방법은,
상기 360도 VR 영상 파라미터 중 컨텐트에 따라 변경되는 컨텐트-종속 파라미터의 변경이 있는 경우, 상기 변경된 컨텐트-종속 파라미터에 관련된 작업에 대한 설정 정보를 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 방법.
The method of claim 2,
The image stitching workflow generation method,
If there is a change in a content-dependent parameter that is changed according to a content among the 360-degree VR video parameters, updating setting information on a job related to the changed content-dependent parameter. How to create a flow.
제1항에 있어서,
상기 미디어 소스로부터, 상기 영상 스티칭에 대한 요청이 중단될 때, 상기 360도 VR 영상 파라미터를 획득하는 단계 내지 상기 영상 스티칭 워크플로우를 구성하는 작업들을 상기 복수의 미디어 처리 주체에 할당하는 단계의 수행이 중단되는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 방법.
The method of claim 1,
When the request for the image stitching is stopped from the media source, performing the step of acquiring the 360-degree VR image parameter or the step of allocating tasks constituting the image stitching workflow to the plurality of media processing subjects are performed. A method of creating an image stitching workflow, characterized in that it is stopped.
제1항에 있어서,
상기 영상 스티칭 워크플로우를 구성하는 작업들은,
부호화된 미가공 영상을 복호화하는 단계;
상기 복호화된 미가공 영상의 특징점을 추출하는 단계;
상기 특징점에 기초하여, 카메라 파라미터를 추출하는 단계;
상기 카메라 파라미터에 기초하여, 상기 복호화된 미가공 영상을 투사체에 투사함으로써, 360도 VR 영상을 생성하는 단계;
상기 카메라 파라미터에 기초하여, 상기 360도 VR 영상의 경계선 정보를 결정하는 단계;
상기 경계선 정보에 기초하여, 상기 360도 VR 영상을 후처리하는 단계; 및
상기 후처리된 360도 VR 영상을 부호화하는 단계를 포함하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 방법.
The method of claim 1,
Tasks constituting the image stitching workflow,
Decoding the encoded raw image;
Extracting feature points of the decoded raw image;
Extracting a camera parameter based on the feature point;
Generating a 360 degree VR image by projecting the decoded raw image onto a projectile based on the camera parameter;
Determining boundary information of the 360 degree VR image based on the camera parameter;
Post-processing the 360 degree VR image based on the boundary line information; And
And encoding the post-processed 360-degree VR image.
제1항에 있어서,
상기 360도 VR 영상 파라미터는, 일반 설명자 파라미터, 입력 설명자 파라미터, 출력 설명자 파라미터, 프로세싱 설명자 파라미터, 요구사항 설명자 파라미터, 클라이언트 지원 설명자 파라미터, 대체 작동(failover) 설명자 파라미터, 모니터링 설명자 파라미터, 및 보고 설명자 파라미터 중 적어도 하나를 포함하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 방법.
The method of claim 1,
The 360-degree VR video parameters include: general descriptor parameters, input descriptor parameters, output descriptor parameters, processing descriptor parameters, requirements descriptor parameters, client support descriptor parameters, failover descriptor parameters, monitoring descriptor parameters, and reporting descriptor parameters. An image stitching workflow generation method comprising at least one of.
제1항에 있어서,
상기 360도 VR 영상 파라미터는, 설정 파라미터를 포함하고,
상기 설정 파라미터는 미디어 파라미터, 특징 파라미터, 카메라 파라미터, 프로젝션 파라미터, 스티칭 파라미터, 및 클라우드 파라미터 중 적어도 하나를 포함하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 방법.
The method of claim 1,
The 360 degree VR video parameter includes a setting parameter,
The setting parameter includes at least one of a media parameter, a feature parameter, a camera parameter, a projection parameter, a stitching parameter, and a cloud parameter.
제7항에 있어서,
상기 클라우드 파라미터는 상기 영상 스티칭 워크플로우를 수행하기 위하여 필요한 컴퓨팅 리소스를 나타내고,
상기 영상 스티칭 워크플로우를 구성하는 작업들을 처리하기 위하여 필요한 미디어 처리 주체의 개수를 결정하고, 상기 결정된 미디어 처리 주체의 개수에 따라, 복수의 미디어 처리 주체를 생성하는 단계는,
상기 클라우드 파라미터에 따라, 상기 미디어 처리 주체의 개수를 결정하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 방법.
The method of claim 7,
The cloud parameter represents a computing resource required to perform the image stitching workflow,
Determining the number of media processing subjects required to process the tasks constituting the image stitching workflow, and generating a plurality of media processing subjects according to the determined number of media processing subjects,
The number of media processing subjects is determined according to the cloud parameter.
하나 이상의 프로세서 및 하나 이상의 메모리 디바이스를 포함하는, 영상 스티칭 워크플로우를 생성하는 영상 스티칭 워크플로우 생성 장치에 있어서,
상기 하나 이상의 프로세서는 상기 하나 이상의 메모리 디바이스에 저장된 영상 스티칭 워크플로우 생성을 위한 프로그램의 하나 이상의 명령을 수행하고,
상기 하나 이상의 메모리 디바이스는 상기 영상 스티칭 워크플로우 생성을 위한 프로그램을 저장하며,
상기 하나 이상의 명령들은,
영상 스티칭에 대한 요청 및 영상 스티칭 워크플로우의 생성에 필요한 360도 VR 영상 파라미터를 획득하는 단계;
상기 영상 스티칭 워크플로우에 적용될 수 있는 기능(function) 리스트를 획득하는 단계;
상기 기능 리스트로부터 선택된 기능들에 기초하여, 상기 영상 스티칭 워크플로우를 생성하는 단계;
상기 영상 스티칭 워크플로우를 구성하는 작업들을 처리하기 위하여 필요한 미디어 처리 주체의 개수를 결정하고, 상기 결정된 미디어 처리 주체의 개수에 따라, 복수의 미디어 처리 주체를 생성하는 단계; 및
상기 영상 스티칭 워크플로우를 구성하는 작업들을 상기 복수의 미디어 처리 주체에 할당하는 단계를 포함하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 장치.
In the image stitching workflow generating apparatus for generating an image stitching workflow, comprising at least one processor and at least one memory device,
The one or more processors execute one or more instructions of a program for generating an image stitching workflow stored in the one or more memory devices,
The at least one memory device stores a program for generating the image stitching workflow,
The one or more commands,
Obtaining a 360 degree VR image parameter required for a request for image stitching and generation of an image stitching workflow;
Obtaining a list of functions applicable to the image stitching workflow;
Generating the image stitching workflow based on functions selected from the function list;
Determining the number of media processing subjects necessary to process the tasks constituting the image stitching workflow, and generating a plurality of media processing subjects according to the determined number of media processing subjects; And
And allocating tasks constituting the image stitching workflow to the plurality of media processing subjects.
제9항에 있어서,
상기 하나 이상의 명령들은,
상기 영상 스티칭 워크플로우를 구성하는 현재 작업에 대한 설정 정보를 결정하고, 상기 현재 작업에 대한 설정 정보를 작업 관리자에게 전송하는 단계; 및
상기 작업 관리자에 의하여 상기 현재 작업에 대한 성공적인 설정이 확인되는 경우, 상기 작업 관리자로부터 상기 현재 작업 바로 후 수행되는 다음 작업에 대한 접근 정보를 획득하는 단계를 포함하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 장치.
The method of claim 9,
The one or more commands,
Determining setting information on a current job constituting the image stitching workflow, and transmitting setting information on the current job to a job manager; And
When the successful setting of the current task is confirmed by the task manager, obtaining access information for a next task executed immediately after the current task from the task manager is generated. Device.
제10항에 있어서,
상기 하나 이상의 명령들은,
상기 360도 VR 영상 파라미터 중 컨텐트에 따라 변경되는 컨텐트-종속 파라미터의 변경이 있는 경우, 상기 변경된 컨텐트-종속 파라미터에 관련된 작업에 대한 설정 정보를 업데이트하는 단계를 포함하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 장치.
The method of claim 10,
The one or more commands,
If there is a change in a content-dependent parameter that is changed according to a content among the 360-degree VR video parameters, updating setting information on a task related to the changed content-dependent parameter. Generating device.
제9항에 있어서,
미디어 소스로부터, 영상 스티칭에 대한 요청이 중단될 때, 상기 하나 이상의 명령들의 수행이 중단되는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 장치.
The method of claim 9,
An apparatus for generating an image stitching workflow, wherein when a request for image stitching from a media source is stopped, execution of the one or more commands is stopped.
제9항에 있어서,
상기 영상 스티칭 워크플로우를 구성하는 작업들은,
부호화된 미가공 영상을 복호화하는 단계;
상기 복호화된 미가공 영상의 특징점을 추출하는 단계;
상기 특징점에 기초하여, 카메라 파라미터를 추출하는 단계;
상기 카메라 파라미터에 기초하여, 상기 복호화된 미가공 영상을 투사체에 투사함으로써, 360도 VR 영상을 생성하는 단계;
상기 카메라 파라미터에 기초하여, 상기 360도 VR 영상의 경계선 정보를 결정하는 단계;
상기 경계선 정보에 기초하여, 상기 360도 VR 영상을 후처리하는 단계; 및
상기 후처리된 360도 VR 영상을 부호화하는 단계를 포함하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 장치.
The method of claim 9,
Tasks constituting the image stitching workflow,
Decoding the encoded raw image;
Extracting feature points of the decoded raw image;
Extracting a camera parameter based on the feature point;
Generating a 360 degree VR image by projecting the decoded raw image onto a projectile based on the camera parameter;
Determining boundary information of the 360 degree VR image based on the camera parameter;
Post-processing the 360 degree VR image based on the boundary line information; And
And encoding the post-processed 360-degree VR image.
제9항에 있어서,
상기 360도 VR 영상 파라미터는, 일반 설명자 파라미터, 입력 설명자 파라미터, 출력 설명자 파라미터, 프로세싱 설명자 파라미터, 요구사항 설명자 파라미터, 클라이언트 지원 설명자 파라미터, 대체 작동(failover) 설명자 파라미터, 모니터링 설명자 파라미터, 및 보고 설명자 파라미터 중 적어도 하나를 포함하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 장치.
The method of claim 9,
The 360-degree VR video parameters include: general descriptor parameters, input descriptor parameters, output descriptor parameters, processing descriptor parameters, requirements descriptor parameters, client support descriptor parameters, failover descriptor parameters, monitoring descriptor parameters, and reporting descriptor parameters. An image stitching workflow generating apparatus comprising at least one of.
제9항에 있어서,
상기 360도 VR 영상 파라미터는, 설정 파라미터를 포함하고,
상기 설정 파라미터는 미디어 파라미터, 특징 파라미터, 카메라 파라미터, 프로젝션 파라미터, 스티칭 파라미터, 및 클라우드 파라미터 중 적어도 하나를 포함하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 장치.
The method of claim 9,
The 360 degree VR video parameter includes a setting parameter,
The setting parameter includes at least one of a media parameter, a feature parameter, a camera parameter, a projection parameter, a stitching parameter, and a cloud parameter.
제15항에 있어서,
상기 클라우드 파라미터는 상기 영상 스티칭 워크플로우를 수행하기 위하여 필요한 컴퓨팅 리소스를 나타내고,
상기 하나 이상의 명령들은,
상기 클라우드 파라미터에 따라, 상기 미디어 처리 주체의 개수를 결정하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 장치.
The method of claim 15,
The cloud parameter represents a computing resource required to perform the image stitching workflow,
The one or more commands,
An apparatus for generating an image stitching workflow, characterized in that the number of media processing subjects is determined according to the cloud parameter.
360도 VR 영상의 영상 스티칭에 필요한 360도 VR 영상 파라미터가 포함된 비트스트림을 포함하는 컴퓨터로 판독가능한 기록 매체에 있어서,
상기 360도 VR 영상 파라미터는 일반 설명자 파라미터, 입력 설명자 파라미터, 출력 설명자 파라미터, 프로세싱 설명자 파라미터, 요구사항 설명자 파라미터, 클라이언트 지원 설명자 파라미터, 대체 작동(failover) 설명자 파라미터, 모니터링 설명자 파라미터, 및 보고 설명자 파라미터 중 적어도 하나를 포함하는 것을 특징으로 하는 컴퓨터로 판독가능한 기록 매체.
A computer-readable recording medium comprising a bitstream including a 360 degree VR image parameter required for image stitching of a 360 degree VR image, comprising:
The 360-degree VR video parameter is one of a general descriptor parameter, an input descriptor parameter, an output descriptor parameter, a processing descriptor parameter, a requirement descriptor parameter, a client support descriptor parameter, a failover descriptor parameter, a monitoring descriptor parameter, and a reporting descriptor parameter. Computer-readable recording medium comprising at least one.
제17항에 있어서,
상기 360도 VR 영상 파라미터는, 설정 파라미터를 포함하고,
상기 설정 파라미터는 미디어 파라미터, 특징 파라미터, 카메라 파라미터, 프로젝션 파라미터, 스티칭 파라미터, 및 클라우드 파라미터 중 적어도 하나를 포함하는 것을 특징으로 하는 컴퓨터로 판독가능한 기록 매체.
The method of claim 17,
The 360 degree VR video parameter includes a setting parameter,
The setting parameter comprises at least one of a media parameter, a feature parameter, a camera parameter, a projection parameter, a stitching parameter, and a cloud parameter.
제18항에 있어서,
상기 클라우드 파라미터는 상기 영상 스티칭 워크플로우를 수행하기 위하여 필요한 컴퓨팅 리소스를 나타내고,
상기 클라우드 파라미터에 따라, 영상 스티칭 워크플로우의 처리를 위한 미디어 처리 주체의 개수를 결정되는 것을 특징으로 하는 컴퓨터로 판독가능한 기록 매체.
The method of claim 18,
The cloud parameter represents a computing resource required to perform the image stitching workflow,
According to the cloud parameter, the number of media processing subjects for processing the image stitching workflow is determined.
제18항에 있어서,
상기 미디어 파라미터는 코덱 파라미터, 크로마 파라미터, fps 파라미터, gop 파라미터, 해상도 파라미터 중 적어도 하나를 포함하고,
상기 특징 파라미터는 특징 추출 방법 파라미터, 특징점 개수 파라미터, 특징점 위치 파라미터, 선택적 특징 대응점 파라미터 중 적어도 하나를 포함하고,
상기 카메라 파라미터는 초점거리 파라미터, 주점 파라미터, 비대칭 계수 파라미터, 이동 파라미터, 및 회전 파라미터 중 적어도 하나를 포함하고,
상기 프로젝션 파라미터는 프로젝션 타입 파라미터를 포함하고,
상기 스티칭 파라미터는 경계점 위치 파라미터 및 경계점 마스크 파라미터 중 적어도 하나를 포함하고,
상기 클라우드 파라미터는 쓰레드 개수 파라미터 및 GPU 개수 파라미터 중 적어도 하나를 포함하는 것을 특징으로 하는 컴퓨터로 판독가능한 기록 매체.
The method of claim 18,
The media parameter includes at least one of a codec parameter, a chroma parameter, an fps parameter, a gop parameter, and a resolution parameter,
The feature parameter includes at least one of a feature extraction method parameter, a feature point number parameter, a feature point location parameter, and an optional feature correspondence point parameter,
The camera parameter includes at least one of a focal length parameter, a main point parameter, an asymmetric coefficient parameter, a movement parameter, and a rotation parameter,
The projection parameter includes a projection type parameter,
The stitching parameter includes at least one of a boundary point position parameter and a boundary point mask parameter,
The cloud parameter comprises at least one of a number of threads parameter and a number of GPUs parameter.
KR1020200033089A 2019-03-19 2020-03-18 Method and apparatus for providing 360 stitching workflow and parameter KR102461032B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/822,654 US11694303B2 (en) 2019-03-19 2020-03-18 Method and apparatus for providing 360 stitching workflow and parameter

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR1020190031415 2019-03-19
KR20190031415 2019-03-19
KR20190035223 2019-03-27
KR1020190035223 2019-03-27
KR20190080820 2019-07-04
KR1020190080820 2019-07-04

Publications (2)

Publication Number Publication Date
KR20200111639A true KR20200111639A (en) 2020-09-29
KR102461032B1 KR102461032B1 (en) 2022-10-31

Family

ID=72661147

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200033089A KR102461032B1 (en) 2019-03-19 2020-03-18 Method and apparatus for providing 360 stitching workflow and parameter

Country Status (1)

Country Link
KR (1) KR102461032B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160115466A (en) * 2015-03-27 2016-10-06 한국전자통신연구원 Apparatus and method for panoramic video stiching
KR20180010493A (en) * 2016-07-21 2018-01-31 삼성전자주식회사 Electronic device and method for editing video thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160115466A (en) * 2015-03-27 2016-10-06 한국전자통신연구원 Apparatus and method for panoramic video stiching
KR20180010493A (en) * 2016-07-21 2018-01-31 삼성전자주식회사 Electronic device and method for editing video thereof

Also Published As

Publication number Publication date
KR102461032B1 (en) 2022-10-31

Similar Documents

Publication Publication Date Title
US11694303B2 (en) Method and apparatus for providing 360 stitching workflow and parameter
US10674185B2 (en) Enhancing a region of interest in video frames of a video stream
US20180204381A1 (en) Image processing apparatus for generating virtual viewpoint image and method therefor
US8953079B2 (en) System and method for generating 360 degree video recording using MVC
US20170323423A1 (en) Method and Apparatus for Mapping Omnidirectional Image to a Layout Output Format
EP3549333A1 (en) View-dependent operations during playback of panoramic video
RU2718118C2 (en) Information processing device and information processing method
CN111727605B (en) Method and apparatus for transmitting and receiving metadata regarding multiple viewpoints
WO2016199608A1 (en) Information processing device and information processing method
EP3434021B1 (en) Method, apparatus and stream of formatting an immersive video for legacy and immersive rendering devices
US20070242240A1 (en) System and method for multi-projector rendering of decoded video data
JP2017123503A (en) Video distribution apparatus, video distribution method and computer program
CN110933461A (en) Image processing method, device, system, network equipment, terminal and storage medium
KR102461032B1 (en) Method and apparatus for providing 360 stitching workflow and parameter
US20200226716A1 (en) Network-based image processing apparatus and method
US11706375B2 (en) Apparatus and system for virtual camera configuration and selection
US11295541B2 (en) Method and apparatus of 360 degree camera video processing with targeted view
US10580167B1 (en) Excluding masked regions of virtual reality (VR) frames from encoder processing
KR102461031B1 (en) Network-based image processing method and apparatus therefor
KR102658474B1 (en) Method and apparatus for encoding/decoding image for virtual view synthesis
KR102337699B1 (en) Method and apparatus for image processing
Niamut et al. Immersive live event experiences-interactive UHDTV on mobile devices
KR20220101565A (en) Apparatus and Method for 360°Image Stitching
Macq et al. Application Scenarios and Deployment Domains
Niamut et al. Advanced visual rendering, gesture-based interaction and distributed delivery for immersive and interactive media services

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant