KR20200111639A - Method and apparatus for providing 360 stitching workflow and parameter - Google Patents
Method and apparatus for providing 360 stitching workflow and parameter Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/161—Encoding, multiplexing or demultiplexing different image signal components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/111—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
- H04N13/117—Transformation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/156—Mixing image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/172—Processing image signals image signals comprising non-image signal components, e.g. headers or format information
- H04N13/178—Metadata, e.g. disparity information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/282—Image 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)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Description
본 개시는 고화질 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
미디어 처리 주체(110)는 설정 정보(102) 및 메타데이터(106)에 따라, 미디어 소스(104)의 영상을 스티칭한다. 도 1에는 영상 스티칭에 필요한 세부 단계들이 도시되어 있다. 상기 도 1에 따른 영상 스티칭에 따라 360도 VR 영상이 생성된다. 그리고 360도 VR 영상은 360도 VR 영상을 처리하는 어플리케이션(120)으로 전송될 수 있다.The media processing subject 110 stitches the image of the
미디어 처리 주체(110)는 이하 설명될 도 2의 워크플로우 관리자(202)에 의하여, 설정된다. 영상 스티칭 워크플로우가 단일 처리 주체에 의하여 처리될 수 없다고 판단되면, 미디어 처리 주체(110)는 2개 이상 설정될 수 있다. 만약 영상 스티칭 워크플로우가 단일 처리 주체에 의하여 처리될 수 있다고 판단되면, 미디어 처리 주체(110)는 1개만 설정될 수 있다. 상기 미디어 처리 주체(110)는 도 2의 워크플로우 관리자(202)에 의하여 도 2의 클라우드 플랫폼(210)에서 생성될 수 있다.The
만약 미디어 처리 주체(110)가 2개 이상 설정될 경우, 도 1의 단계 130 내지 단계 142에 따른 작업들이 복수의 미디어 처리 주체(110)에 할당될 수 있다. 따라서, 많은 컴퓨팅 리소스를 필요로 하는 영상 스티칭 작업이 복수의 미디어 처리 주체(110)에 의하여 빠르게 처리될 수 있다.If two or more media processing subjects 110 are set, the jobs according to
영상 스티칭 작업이 복수의 미디어 처리 주체(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 (
단계 130에서, 부호화된 영상이 복호화된다. 구체적으로, 단계 130에서 여러 스레드 또는 GPU의 연산에 따라, 미디어 소스(104)의 부호화된 미가공 영상이 복호화된다. 또한, 미디어 소스(104) 뿐만 아니라, 클라우드 파라미터부터 부호화된 미디어 데이터 피드가 단계 130의 복호화에 사용될 수 있다. 상기 미가공 영상은 후처리 등이 적용되지 않은 원본 영상을 나타낸다.In
단계 132에서, 단계 130에서 복호화된 미가공 영상으로부터 특징점이 추출된다. 상기 특징점은 복수의 영상에서 특정 물체를 추적하거나 인식할 때, 영상과 영상을 매칭하는 기준이 되는 지점을 의미한다. 특징점을 기준으로 분포하는 픽셀들의 값을 분석함으로써, 서로 다른 영상 간에 유사한 부분이 검출된다. 따라서, 단계 132에서 인접한 미가공 영상들 간의 특징점을 비교함으로써, 인접한 미가공 영상들 간의 대응점이 결정될 수 있다. 그리고 상기 대응점에 따라, 인접한 미가공 영상들 간에 스티칭 프로세스가 수행될 수 있다.In
단계 134에서, 특징점 및 대응점 세트에 따라, 외부 및 내부 카메라 파라미터가 계산된다. 상기 외부 카메라 파라미터는 카메라의 촬영 각도, 촬영 위치 등을 포함한다. 상기 내부 카메라 파라미터는 카메라의 초점거리, 주점, 비대칭 계수 등을 포함한다.In
일 실시 예에 따르면, 상기 특징점 및 대응점을 분석함으로써, 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
단계 136에서, 단계 134에서 결정된 카메라 파라미터에 기초하여, 구면, 큐브, 다면체 및 ERP(EquiRectangular Projection)에 단계 130에서 복호화된 미가공 영상들이 투사된다. 구체적으로, 카메라 파라미터 및 영상 프로젝션 면에 기초하여, 영상들이 기하학적으로 정렬된다. 그리고 기하학적으로 정렬된 영상들이 영상 프로젝션 면에 투사된다. 상기 영상 프로젝션의 결과, 360도 VR 영상이 생성된다.In
단계 138에서, 단계 136에서 생성된 360도 VR 영상으로부터 상기 인접한 영상들의 경계선에 대한 스티칭 파라미터가 추출된다. 상기 스티칭 파라미터는 상기 경계선의 위치에 대한 경계선 위치 파라미터 또는 영상에서 경계선에 해당되는 영역을 나타내는 경계선 마스크 파라미터를 포함할 수 있다. 상기 경계선에 대한 스티칭 파라미터는 단계 134로부터 결정된 카메라 파라미터에 기초하여 결정될 수 있다.In
단계 138에서, 상기 인접한 영상의 중복 영역에 이전 시점에 존재하지 않던 객체가 갑자기 나타날 때, 스티칭 파라미터 업데이트될 수 있다. 따라서, 중복 영역의 변화에 따라, 경계선 위치 파라미터 또는 경계선 마스크 파라미터가 변경될 수 있다.In
단계 140에서, 단계 136에서 생성된 360도 VR 영상의 중복 영역에 대하여 블렌딩, 색 보정 및 노이즈 필터링 프로세스 등이 수행될 수 있다. 상기 블렌딩, 색 보정 및 노이즈 필터링 프로세스 등은 단계 138에서 추출된 경계선 정보에 기초하여 수행될 수 있다.In
상기 블렌딩 프로세스는, 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
단계 142에서, 단계 140에서 처리된 360도 VR 영상이 부호화된다. 상기 단계 142의 부호화는 클라우드 파라미터에 따라 수행될 수 있다. 그리고 상기 부호화된 360도 VR 영상은 클라우드 플랫폼에 의하여 출력될 수 있다.In
상기 단계 130 내지 단계 142를 거쳐서, 부호화된 2차원 영상으로 구성된 비디오 스트림으로부터 부호화된 360도 VR 영상으로 구성된 비디오 스트림이 생성된다. 실시 예에 따라, 단계 130 내지 단계 142의 순서가 일부 변경될 수 있으며, 소정의 단계가 생략될 수 있다. 또한, 단계 130 내지 단계 142의 중간에, 영상 처리 분야에서 관용적인 영상 처리 기법이 적용될 수 있다. 단계 130 내지 단계 142에 대응되는 명령은 도 2의 클라우드 플랫폼(210)에서 수행될 수 있다. 이하, 표 1에서, 단계 130 내지 단계 142의 각 작업에 대한 설명, 입력 및 출력이 설명되어 있다.Through the
미디어 서비스 제공자는 상기의 단계 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
도 2는 본 개시의 일 실시 예에 따른 복수의 처리 주체에 따른 영상 스티칭을 위한 미디어 시스템(200)을 도시한다.2 illustrates a
미디어 시스템(200)은 워크플로우 관리자(202), 미디어 소스(204), 기능 레지스트리(206), 미디어 작업 관리자(208) 및 클라우드 플랫폼(210) 등을 포함한다. 도 2의 미디어 시스템(200)은 본 실시예를 설명하기 위해 필요한 일부 구성요소만을 도시할 뿐, 본 개시의 미디어 시스템(200)에 포함된 구성요소가 전술한 예에 한정되는 것은 아니다. 예컨대, 둘 이상의 구성요소가 하나의 구성요소 내에서 구현될 수도 있고, 하나의 구성요소에서 실행되는 동작이 분할되어 둘 이상의 구성요소에서 실행되도록 구현될 수도 있다. 또한, 일부 구성요소가 생략되거나 부가적인 구성요소가 추가될 수도 있다.The
워크플로우 관리자(202), 미디어 소스(204), 기능 레지스트리(206) 및 미디어 작업 관리자(208)는 각각 별도의 프로세서에 의하여 동작될 수 있다. 또는 워크플로우 관리자(202), 미디어 소스(204), 기능 레지스트리(206) 및 미디어 작업 관리자(208) 중 전부 또는 일부는 하나의 프로세서에 의하여 동작될 수 있다. 그리고 워크플로우 관리자(202), 미디어 소스(204), 기능 레지스트리(206) 및 미디어 작업 관리자(208)는 각각 영상 스티칭을 위한 정보를 저장하기 위한 메모리 디바이스를 포함할 수 있다.The
워크플로우 관리자(202)는 영상 스티칭을 위한 워크플로우를 생성할 수 있다. 그리고 워크플로우 관리자(202)는 클라우드 플랫폼(210)에 상기 워크플로우에 포함된 복수의 작업을 수행하기 위한 복수의 미디어 처리 주체를 생성할 수 있다.The
클라우드 플랫폼(210)은 복수의 프로세서를 포함한다. 그리고 클라우드 플랫폼(210)에 설정된 복수의 미디어 처리 주체에 의하여, 영상 스티칭을 위하여 필요한 작업들이 수행될 수 있다. 이하, 워크플로우 관리자(202)에 의한 영상 스티칭의 워크플로우 설정 방법이 이하 도 3에서 자세히 설명된다.The
도 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
워크플로우 설명 문서는 일반 설명자 파라미터, 입력 설명자 파라미터, 출력 설명자 파라미터, 프로세싱 설명자 파라미터, 요구사항 설명자 파라미터, 클라이언트 지원 설명자 파라미터, 대체 작동(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.
●●
명칭: 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
○○
미디어 설명자의 총 개수 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
○ 스트림 정보○ 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
●●
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
○○
지연 요구사항: 실시간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
●●
User-preferences: n/aUser-preferences: n/a
○○
ExecuteBackupDeploymentExecuteBackupDeployment
●●
FailoverDelay: 0FailoverDelay: 0
●●
상태 지속성 설명자:State persistence descriptor:
●●
BackupDeployment:BackupDeployment:
●●
변수: No needVariable: No need
●●
시스템: No needSystem: No need
●●
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
단계 306에서, 각 쿼리에 대하여, 기능 레지스트리(206)는 영상 스티칭에 사용될 수 있는 기능들, 그리고 그것들의 설명 및 구성 정보의 목록을 워크플로우 관리자(202)에 제공한다. 기능 레지스트리(206)는 미디어 시스템(200)에서 지원하는 기능들의 리스트와 쿼리 또는 쿼리 세트에 설명된 워크플로우의 기능들의 설명을 비교한다. 그리고 기능 레지스트리(206)는 미디어 시스템(200)에서 지원되는 기능들 중, 상기 워크플로우에 적용될 수 있는 기능들의 리스트를 워크플로우 관리자(202)에 제공할 수 있다.In step 306, for each query, the
단계 308에서, 워크플로우 관리자(202)는 단계 306에서 기능 레지스트리(206)로부터 제공된 기능들의 리스트로부터 상기 워크플로우에 필요한 기능들을 선택한다. 그리고, 워크플로우 관리자(202)는, 클라우드 플랫폼(210)에 접속하여, 상기 선택된 기능들의 요구 사항에 따라, 클라우드 플랫폼(210)에 하나 이상의 미디어 처리 주체들을 생성할 수 있다.In step 308, the
단계 310에서, 클라우드 플랫폼(210)은 하나 이상의 미디어 처리 주체의 생성을 확인한다. 그리고 클라우드 플랫폼(210)은 하나 이상의 미디어 처리 주체에 대한 네트워크 액세스 정보의 생성을 확인할 수 있다. 클라우드 플랫폼(210)은 하나 이상의 미디어 처리 주체의 생성되었음을 워크플로우 관리자(202)에 전달한다.In step 310, the
단계 312에서,
워크플로우 관리자(202)는 각 작업(task)에 대한 설정 정보를 생성한다. 그리고 워크플로우 관리자(202)는 작업 관리자(208)에게 각 작업마다 설정 정보를 전송한다. 상기 설정 정보를 작업 관리자(208)에게 전송하기 위하여, 작업 API가 사용될 수 있다. 작업 API는 설정 정보를 생성하기 위한 전용 API이다In step 312,
The
단계 314에서, 작업 관리자(208)는 각 작업에 대한 성공적인 설정이 이루어졌는지 확인한다. 만약 현재 작업에 대한 성공적인 설정이 이루어진 경우, 작업 관리자(208)는 워크플로우 관리자(202)가 다음 작업에 접근할 수 있도록 접근 정보를 생성한다. 그리고 작업 관리자(208)는 워크플로우 관리자(202)에게 접근 정보를 생성한다. 각 작업에 대하여 단계 312와 단계 314가 수행됨으로써, 전체 워크플로우에 대한 성공적인 설정이 이루어졌는지 확인될 수 있다.In step 314, the
단계 316에서, 워크플로우 관리자(202)는 워크플로우의 생성을 확인하고, 미디어 소스(204)에 영상 스티칭을 위한 미디어 처리가 시작될 수 있음을 알린다. 그리고 미디어 소스(204)에서 제공되는 미디어 소스(104)가 상기 워크플로우에 따라 처리됨으로써, 360도 VR 이미지가 생성될 수 있다.In step 316, the
일 실시 예에 따르면, 워크플로우 관리자(202)는 각 작업의 출력과 관련된 컨텐트-종속 파라미터를 지속적으로 모니터링할 수 있다. 컨텐트-종속 파라미터는 컨텐트에 따라 변경되는 파라미터를 의미한다. 비디오의 다음 세그먼트에 대해 각 작업의 일부 컨텐트-종속 파라미터를 변경해야 하는 경우, 워크플로우 관리자(202)는 작업 API를 사용하여 설정 정보를 업데이트할 수 있다. 그리고 워크플로우 관리자(202)는 업데이트된 설정 정보를 해당 작업으로 전송할 수 있다.According to an embodiment, the
일 실시 예에 따르면, 영상 스티칭에 대한 요청이 없을 경우 (또는 요청이 중단될 경우), 미디어 소스(204)는 DeleteWorkflow API 를 사용하여, 영상 스티칭을 중단할 수 있다.According to an embodiment, when there is no request for image stitching (or when the request is stopped), the
도 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
이상 설명된 바와 같이, 워크플로우에서 사용되는 기능(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.
●
스트림 개요: CMAF, OMAF, ISOBMFF
●
미디어 스트림 Id: n/a
●
코덱 타입: AVC, HEVC, VVC
●
미디어 타입: Video, Image
●
코덱 클럭 레이트: 24fps, 25fps, 30fps, 50fps, 60fps
●
프로토콜: n/a
●
발생점(origination): n/aImage 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
●
메타데이터 스트림 Id: n/a
●
메타데이터 사전: MORE, MPEG-V
●
프로토콜: n/a
●
메타 데이터 수집 포맷: JSON, ISOBMFF, XML
●
발생점(origination): URL of the Metadata streamInput 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
●
미디어 스트림 Id: n/a
●
코덱 타입: AVC, HEVC, VVC
●
미디어 타입: Video, Image
●
코덱 클럭 레이트: 24fps, 25fps, 30fps, 50fps, 60fps
●
프로토콜: MPEG-DASH, MPEG-MMT, MPEG2-TS
●
발생점(origination): n/aOutput 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
●
메타데이터 스트림 Id: n/a
●
메타데이터 사전 MPEG-I Metadata, MORE
●
프로토콜: n/a
●
메타 데이터 수집 포맷: JSON, ISOBMFF, XML
●
발생점(origination): URL of the Metadata streamOutput 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
·
"m-360 stitching"Number of keywords· "m-360vrstitching"
· "M-360 stitching"
●
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.inputFrameConnection 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
■
GPU: 4
■
CPU 코어: 8
○
배치 요구사항:
■
위치: <network-edge>● Processing requirements: ○ Hardware requirements:
■ GPU: 4
■ CPU core: 8
○ Deployment requirements:
■ Location: <network-edge>
● 특징 파라미터 (특징 추출 방법, 특징점 개수, 특징점 위치, 선택적 특징 대응점)
● 카메라 파라미터 (내부 및 외부 파라미터: 카메라의 초점거리, 주점, 비대칭 계수, 카메라의 이동 및 회전 파라미터)
● 프로젝션 파라미터 (프로젝션 타입)
● 스티칭 파라미터 (경계점 위치 및 경계점 마스크)
● 클라우드 파라미터(쓰레드의 개수, 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)
상기 표 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
예를 들어, ”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
표 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.
표 5은 특징 파라미터의 실시 예를 나타낸다.Table 5 shows an example of a feature parameter.
표 6은 카메라 파라미터의 실시 예를 나타낸다.Table 6 shows examples of camera parameters.
표 7은 프로젝션 파라미터의 실시 예를 나타낸다.Table 7 shows examples of projection parameters.
표 8는 스티칭 파라미터의 실시 예를 나타낸다.Table 8 shows examples of stitching parameters.
- 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)
도 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.
표 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)
상기 영상 스티칭 워크플로우에 적용될 수 있는 기능(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.
상기 영상 스티칭 워크플로우 생성 방법은,
상기 영상 스티칭 워크플로우를 구성하는 현재 작업에 대한 설정 정보를 결정하고, 상기 현재 작업에 대한 설정 정보를 작업 관리자에게 전송하는 단계; 및
상기 작업 관리자에 의하여 상기 현재 작업에 대한 설정이 확인되는 경우, 상기 작업 관리자로부터 상기 현재 작업 바로 후 수행되는 다음 작업에 대한 접근 정보를 획득하는 단계를 더 포함하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 방법.
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.
상기 영상 스티칭 워크플로우 생성 방법은,
상기 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.
상기 미디어 소스로부터, 상기 영상 스티칭에 대한 요청이 중단될 때, 상기 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.
상기 영상 스티칭 워크플로우를 구성하는 작업들은,
부호화된 미가공 영상을 복호화하는 단계;
상기 복호화된 미가공 영상의 특징점을 추출하는 단계;
상기 특징점에 기초하여, 카메라 파라미터를 추출하는 단계;
상기 카메라 파라미터에 기초하여, 상기 복호화된 미가공 영상을 투사체에 투사함으로써, 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.
상기 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.
상기 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.
상기 클라우드 파라미터는 상기 영상 스티칭 워크플로우를 수행하기 위하여 필요한 컴퓨팅 리소스를 나타내고,
상기 영상 스티칭 워크플로우를 구성하는 작업들을 처리하기 위하여 필요한 미디어 처리 주체의 개수를 결정하고, 상기 결정된 미디어 처리 주체의 개수에 따라, 복수의 미디어 처리 주체를 생성하는 단계는,
상기 클라우드 파라미터에 따라, 상기 미디어 처리 주체의 개수를 결정하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 방법.
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.
상기 하나 이상의 명령들은,
상기 영상 스티칭 워크플로우를 구성하는 현재 작업에 대한 설정 정보를 결정하고, 상기 현재 작업에 대한 설정 정보를 작업 관리자에게 전송하는 단계; 및
상기 작업 관리자에 의하여 상기 현재 작업에 대한 성공적인 설정이 확인되는 경우, 상기 작업 관리자로부터 상기 현재 작업 바로 후 수행되는 다음 작업에 대한 접근 정보를 획득하는 단계를 포함하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 장치.
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.
상기 하나 이상의 명령들은,
상기 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.
미디어 소스로부터, 영상 스티칭에 대한 요청이 중단될 때, 상기 하나 이상의 명령들의 수행이 중단되는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 장치.
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.
상기 영상 스티칭 워크플로우를 구성하는 작업들은,
부호화된 미가공 영상을 복호화하는 단계;
상기 복호화된 미가공 영상의 특징점을 추출하는 단계;
상기 특징점에 기초하여, 카메라 파라미터를 추출하는 단계;
상기 카메라 파라미터에 기초하여, 상기 복호화된 미가공 영상을 투사체에 투사함으로써, 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.
상기 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.
상기 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.
상기 클라우드 파라미터는 상기 영상 스티칭 워크플로우를 수행하기 위하여 필요한 컴퓨팅 리소스를 나타내고,
상기 하나 이상의 명령들은,
상기 클라우드 파라미터에 따라, 상기 미디어 처리 주체의 개수를 결정하는 것을 특징으로 하는 영상 스티칭 워크플로우 생성 장치.
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 영상 파라미터는 일반 설명자 파라미터, 입력 설명자 파라미터, 출력 설명자 파라미터, 프로세싱 설명자 파라미터, 요구사항 설명자 파라미터, 클라이언트 지원 설명자 파라미터, 대체 작동(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.
상기 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.
상기 클라우드 파라미터는 상기 영상 스티칭 워크플로우를 수행하기 위하여 필요한 컴퓨팅 리소스를 나타내고,
상기 클라우드 파라미터에 따라, 영상 스티칭 워크플로우의 처리를 위한 미디어 처리 주체의 개수를 결정되는 것을 특징으로 하는 컴퓨터로 판독가능한 기록 매체.
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.
상기 미디어 파라미터는 코덱 파라미터, 크로마 파라미터, 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.
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 | ||
KR1020190035223 | 2019-03-27 | ||
KR20190035223 | 2019-03-27 | ||
KR1020190080820 | 2019-07-04 | ||
KR20190080820 | 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)
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 |
-
2020
- 2020-03-18 KR KR1020200033089A patent/KR102461032B1/en active IP Right Grant
Patent Citations (2)
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 | |
WO2020057249A1 (en) | Image processing method, apparatus and system, and network device, terminal and storage medium | |
JP2017123503A (en) | Video distribution apparatus, video distribution method and computer program | |
US20200226716A1 (en) | Network-based image processing apparatus and method | |
KR102461032B1 (en) | Method and apparatus for providing 360 stitching workflow and parameter | |
US11706375B2 (en) | Apparatus and system for virtual camera configuration and selection | |
KR20220101565A (en) | Apparatus and Method for 360°Image Stitching | |
US11295541B2 (en) | Method and apparatus of 360 degree camera video processing with targeted view | |
KR102461031B1 (en) | Network-based image processing method and apparatus therefor | |
KR102658474B1 (en) | Method and apparatus for encoding/decoding image for virtual view synthesis | |
Niamut et al. | Immersive live event experiences-interactive UHDTV on mobile devices | |
CN118283287A (en) | Live broadcast method, device, medium and equipment for hundred million-level pixel video | |
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 | |
Macq et al. | Draft Specification of Generic Data Representation and Coding Scheme |
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 |