KR101352737B1 - Method of setting up effect on mobile movie authoring tool using effect configuring data and computer-readable meduim carring effect configuring data - Google Patents

Method of setting up effect on mobile movie authoring tool using effect configuring data and computer-readable meduim carring effect configuring data Download PDF

Info

Publication number
KR101352737B1
KR101352737B1 KR1020130094882A KR20130094882A KR101352737B1 KR 101352737 B1 KR101352737 B1 KR 101352737B1 KR 1020130094882 A KR1020130094882 A KR 1020130094882A KR 20130094882 A KR20130094882 A KR 20130094882A KR 101352737 B1 KR101352737 B1 KR 101352737B1
Authority
KR
South Korea
Prior art keywords
value
texture
animated
code
effect
Prior art date
Application number
KR1020130094882A
Other languages
Korean (ko)
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 KR1020130094882A priority Critical patent/KR101352737B1/en
Application granted granted Critical
Publication of KR101352737B1 publication Critical patent/KR101352737B1/en
Priority to PCT/KR2014/007410 priority patent/WO2015020495A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

A data structure for effect settings of a video editing tool is disclosed. The data structure for effect settings of a video editing tool according to the present invention comprises: a type code for defining a range in which a texture code, an animated value code, and a drawing function are applied; the texture code for defining an object for which effects are rendered; the animated value code for defining a value varying according to the change of time during the effect rendering; and the drawing function for defining types and methods of effects, wherein the texture code sequentially includes a texture start tag, texture ID, property directives, a value, and a texture end tag, the animated value code sequentially includes an animated value start tag, animated value ID, one or more key frame values, and an animated value end tag, and the drawing function receives the pointer of the texture ID or the animated value ID as parameter. On the other end, the animated value code may additionally include a timing function tag for adjusting rate at which a key frame value varies from a start value to an end value by a cubic Bezier function, and parameters corresponding to the coordinates of two control points.

Description

동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법 및 컴퓨터로 판독가능한 기록매체{METHOD OF SETTING UP EFFECT ON MOBILE MOVIE AUTHORING TOOL USING EFFECT CONFIGURING DATA AND COMPUTER-READABLE MEDUIM CARRING EFFECT CONFIGURING DATA}TECHNICAL SETTING METHOD AND METHOD OF SETTING UP EFFECT ON MOBILE MOVIE AUTHORING TOOL USING EFFECT CONFIGURING DATA AND COMPUTER-READABLE MEDUIM CARRING EFFECT CONFIGURING DATA}

본 발명은 모바일용 동영상 편집 소프트웨어 기술 분야에 속한다.The present invention belongs to the field of mobile video editing software technology.

컴퓨팅 하드웨어 기술이 비약적으로 발전하고, 멀티미디어 컨텐츠의 생산과 유통구조가 사용자 중심으로 개편되면서 최근들어서는 사용자들이 동영상을 손쉽게 촬영하고 편집할 수 있게 되었다.
동영상의 편집을 위해서는 통상 동영상 편집 소프트웨어를 사용하게 되는데, 도 1은 이와 같은 공지의 PC(Personal Computer)용 동영상 편집 소프트웨어의 일반적인 사용자 인터페이스를 도시한다.
일반적인 동영상 편집 과정을 살펴보면, 사용자는 도 1의 화면 좌측에 도시된 바와 같은 파일 선택창을 통해 로컬에 저장된 파일 가운데 어느 하나를 선택하여 메모리에 적재한 다음 해당 동영상의 일부분을 선택하여 선택된 부분에 해당하는 동영상 클립을 타임라인에 삽입하게 된다.
타임라인이란 동영상의 편집 결과물이 렌더링되는 시간순서를 의미하며, 통상 화면 일측에 시각적으로 시간의 진행방향을 알 수 있도록 표시된다.
사용자는 타임라인 상의 원하는 위치에 클립들을 배열한다.
클립이란 편집을 위해 임시로 생성된 동영상의 일부를 의미한다.
이와 같이 타임라인에 다수의 동영상 클립을 삽입한 다음에는, 타임라인 상의 소정 위치에 자막을 추가하거나, 특수효과를 추가하거나, 어느 하나의 클립이 끝나고 다른 클립이 시작되는 위치에 소정의 효과를 설정한다.
이러한 효과들은 통상 이펙트라 지칭된다.
이후, 최종결과물을 얻기 위해 렌더링을 실행하면, 동영상 편집 소프트웨어는 타임라인에 배열된 각 동영상 클립이 시간순으로 재생하되 사용자가 설정한 각종 이펙트를 각각 렌더링함으로써 최종 동영상 편집 결과물을 생성한다.
이와 같이 동영상의 편집과정은 타임라인에 배치된 다수의 클립들의 위치를 배열하고, 각 클립마다, 또는 둘 이상의 클립 사이에 다양한 이펙트를 설정하는 과정을 포함하는데, 이러한 편집작업의 용이성과 사용자 편의성을 확보하기 위해서는 타임라인에 배열된 많은 수의 클립들이 한 화면에 표시될 수 있어야 하며, 많은 수의 클립들을 정교하게 선택하고 이펙트를 설정할 수 있도록 충분한 크기의 화면과 최적화된 사용자 인터페이스가 제공되어야 한다.
한편, 최근 스마트폰(Smartphone)이 전세계적으로 빠른 속도로 보급되면서, 모바일을 이용한 동영상 편집 소프트웨어들이 출시되고 있다.
그런데, 스마트폰 또는 타블렛 컴퓨터(Tablet Computer)와 같은 모바일 디바이스들은 작게는 3, 4인치에서부터 최대 10인치 정도에 불과한 다소 작은 크기의 화면을 가지고 있을 뿐이어서 많은 정보를 한 화면에 모두 표시해야만 하는 동영상 편집 작업에는 태생적으로 매우 불리한 환경이라 할 수 있다.
도 2는 본 출원인에 의하여 개발된 바 있는 모바일에서 실행되는 동영상 편집 소프트웨어의 GUI(Graphic User Interface)를 예시한다.
사용자는 모바일을 이용하여 동영상 편집 소프트웨어를 실행시킨 다음 새로운 프로젝트를 만든다. 프로젝트란 통상 동영상 편집을 위한 환경을 지칭한다.
이와 같이 새로운 프로젝트가 시작되면 모바일은 도 1에 도시된 바와 같은 동영상 편집도구의 GUI를 화면에 표시한다.
도 2에 예시된 바와 같은 모바일용 동영상 편집 소프트웨어 또한 도 1에 도시된 바와 같은 PC환경과 마찬가지로 통상 동영상 클립을 선택하기 위한 선택창과 타임라인을 포함한다.
사용자는 동영상 클립 선택창을 통해 로컬에 저장된 동영상을 불러와 그 전체 또는 일부를 선택하여, 타임라인으로 드래그하는 등의 방식에 의해 타임라인 상에 배열한다.
한편, 이와 같이 클립들을 배열한 다음에는 자막을 추가하거나, 하나 이상의 클립에 각종 이펙트를 설정한다.
그리고, 렌더링을 함으로써 최종 동영상 편집 결과물을 얻게 되는 과정은 공지의 PC환경의 동영상 편집 소프트웨어와 같다.
그러나, 모바일(1)의 협소한 화면 크기를 이용하여 사용자가 원하는 클립의 특정 구간을 정확하게 선택하고, 또 선택된 구간에 원하는 이펙트를 선택한 다음, 이펙트의 각종 설정값을 정하는 등의 복잡한 조작은 쉽지 않다.
따라서, PC환경에서 실행되는 동영상 편집 소프트웨어와는 달리 모바일(1)용 동영상 편집 소프트웨어가 지원하는 "미리 잘 정의된 이펙트의 템플릿"을 단순히 골라서 이를 적용할 하나 또는 두 개의 클립을 선택하는 지극히 단순한 조작만으로 편집과정을 마칠 수 있도록 함이 바람직하다.
그러나, 모바일(1)용 동영상 편집 소프트웨어 개발사가 수많은 모바일(1) 사용자의 입맛에 맞는 "잘 정의된 이펙트의 템플릿"을 무한정 공급하는 것은 어려운 일이다.
따라서, 엔드 유저 또는 서드파티(Third Party) 개발사로 하여금 이펙트의 템플릿을 간단하고도 잘 정의할 수 있도록 환경을 조성할 필요성이 있다.
With the rapid development of computing hardware technology and the reorganization of the production and distribution structure of multimedia contents, users have recently been able to easily shoot and edit video.
In order to edit a video, video editing software is usually used. FIG. 1 illustrates a general user interface of such a video editing software for a personal computer (PC).
In the general video editing process, the user selects one of the locally stored files into the memory through a file selection window as shown on the left side of the screen of FIG. 1, and then selects a part of the video to correspond to the selected part. You will insert a movie clip into the timeline.
The timeline refers to a time sequence in which the edited result of the video is rendered, and is usually displayed on one side of the screen so as to visually know the direction of time.
The user arranges the clips in the desired position on the timeline.
A clip refers to a part of a movie temporarily created for editing.
After inserting a number of movie clips in the timeline like this, you can add subtitles, add special effects, or set a certain effect at the position where one clip ends and another clip starts. do.
These effects are commonly referred to as effects.
Then, when rendering is performed to obtain the final result, the video editing software generates the final video editing result by rendering each video clip arranged in the timeline in chronological order but rendering various effects set by the user.
As such, the process of editing a video includes arranging positions of a plurality of clips arranged in a timeline and setting various effects for each clip or between two or more clips. To ensure this, a large number of clips arranged on the timeline must be able to be displayed on one screen, and a large enough screen and an optimized user interface should be provided to allow for the fine selection and setting of effects.
Meanwhile, as smartphones are rapidly spreading worldwide, video editing software using mobiles is being released.
By the way, mobile devices such as smartphones or tablet computers only have slightly smaller screens, ranging from 3 to 4 inches up to 10 inches in size, so that a lot of information must be displayed on one screen. This is a very adverse environment inherently in editing.
2 illustrates a graphical user interface (GUI) of video editing software executed on a mobile developed by the applicant.
A user uses mobile to run video editing software and then create a new project. A project generally refers to an environment for editing a video.
As such, when a new project is started, the mobile displays a GUI of the video editing tool as shown in FIG. 1.
The video editing software for mobile as illustrated in FIG. 2 also includes a selection window and a timeline for selecting a video clip as in the PC environment as shown in FIG.
The user loads a locally stored video through the video clip selection window, selects all or part of the video, and drags the video to the timeline to arrange the video on the timeline.
On the other hand, after arranging the clips as described above, subtitles are added or various effects are set to one or more clips.
The process of obtaining the final video editing result by rendering is the same as the video editing software of the known PC environment.
However, complicated operations such as accurately selecting a specific section of a clip desired by the user using a narrow screen size of the mobile 1, selecting a desired effect in the selected section, and then setting various settings of the effect are not easy. .
Thus, unlike video editing software running in a PC environment, it is a very simple operation to simply select a "template of predefined effects" supported by video editing software for mobile 1 and select one or two clips to apply it. It is desirable to be able to finish the editing process by itself.
However, it is difficult for a video editing software developer for mobile 1 to supply an unlimited number of "templates of well-defined effects" to suit the tastes of many mobile 1 users.
Therefore, there is a need to create an environment so that end users or third party developers can simply and well define the template of the effect.

문헌 1. 대한민국특허청, 등록특허 제10-0386779호 "무선 인터넷 환경에서의 동영상 제작 및 재생 시스템과 그 방법"Document 1. Korea Patent Office, Registration No. 10-0386779 "Video Production and Playback System and Method in Wireless Internet Environment" 문헌 2. 대한민국특허청, 등록특허 제10-0710674호 "휴대 단말기의 동영상 인코딩 방법 및 상기 방법을 수행하는 휴대 단말기"Document 2. Korean Patent Office, Registration No. 10-0710674 "Video encoding method of a mobile terminal and a mobile terminal performing the method" 문헌 3. 대한민국특허청, 특허공개 제10-2006-0134557호 "이동 통신 단말기의 동영상 효과 처리 방법 및 그 장치"Document 3. Korea Patent Office, Patent Publication No. 10-2006-0134557 "Video effect processing method and apparatus for mobile communication terminal" 문헌 4. 대한민국특허청, 특허공개 제10-2010-0070942호 "스토리보드 기반 동영상 제작 시스템"Document 4. Korea Patent Office, Patent Publication No. 10-2010-0070942 "storyboard based video production system" 문헌 5. 대한민국특허청, 특허공개 제10-2009-0078198호 "스크립트를 기반으로 하는 동영상 부가정보 처리 장치 및 방법"Document 5. Korean Intellectual Property Office, Korean Patent Publication No. 10-2009-0078198 "A system and method for processing video additional information based on script" 문헌 6. 대한민국특허청, 등록특허 제10-0771264호 "스크립트 파일이 포함 기록된 기록매체와, 그 재생장치 및 방법"Document 6. Korean Patent Office, Registered Patent No. 10-0771264 "Recording medium including a script file, reproducing apparatus and method thereof"

본 발명은 상기와 같은 종래기술의 문제점을 해소하기 위하여 개발된 것으로, 모바일용 동영상 편집 소프트웨어에 설치하여 간편하게 사용할 수 있는 이펙트 템플릿의 구조를 제시한다.
더 나아가, 동영상 편집 소프트웨어를 실행하는 모바일(1)이 이와 같은 구조를 갖는 이펙트 템플릿의 구조를 이용하여 이펙트를 설정하는 방법을 제시한다.
The present invention was developed to solve the above problems of the prior art, and proposes a structure of an effect template that can be installed and used easily in a mobile video editing software.
Furthermore, the mobile 1, which executes the video editing software, proposes a method of setting an effect using the structure of an effect template having such a structure.

상기와 같은 목적을 달성하기 위하여, 본 발명에 의한 동영상 편집 도구의 이펙트 설정을 위한 데이터 구조는,
텍스쳐 코드, 애니메이티드 밸류 코드 및 드로잉 함수가 적용되는 범위를 정의하는 유형코드;
이펙트가 렌더링 될 대상을 정의하는 텍스쳐 코드;

*이펙트의 렌더링 시 시간의 변화에 따라 변화하는 값을 정의하는 애니메이티드 밸류 코드;
이펙트의 종류와 방법을 정의하는 드로잉 함수를 포함한다.
이때, 텍스쳐 코드는 텍스쳐 개시 태그; 텍스쳐 아이디; 속성 지시어; 값; 및 텍스쳐 종료 태그;를 순차 포함한다.
한편, 애니메이티드 밸류 태그는 애니메이티드 밸류 개시 태그; 애니메이티드 밸류 아이디; 하나 또는 그 이상의 키프레임 밸류 값; 및 애니메이티드 밸류 종료 태그;를 순차 포함하며,
드로잉 함수는 함수의 파라메타로 상기 텍스쳐 아이디 또는 애니메이티드 밸류 아이디의 포인터를 받는다.
한편, 텍스쳐 코드의 속성 지시어는 비디오, 이미지, 텍스트 가운데 어느 하나이며,
속성 지시어가 비디오를 지시하는 경우, 상기 텍스쳐 아이디에 대하여 사용자가 동적으로 선택한 클립을 가리키는 포인터 변수가 그 값으로 할당된다.
그리고, 속성 지시어가 이미지를 지시하는 경우, 상기 텍스쳐 아이디에 대하여 이미지 파일의 명칭 또는 사용자가 동적으로 선택한 이미지를 가리키는 포인터 변수가 그 값으로 할당되며,
속성 지시어가 텍스트를 지시하는 경우, 상기 텍스쳐 아이디에 대하여 텍스트 또는 사용자가 동적으로 입력한 텍스트를 가리키는 포인터 변수가 그 값으로 할당된다.
한편, 두 개의 텍스쳐 아이디가 포함되되, 각각의 속성 지시어가 비디오이며, 상기 드로잉 함수가 상기 두 개의 텍스쳐 아이디의 포인터를 받는 경우,
드로잉 함수는 제 1 값을 가진 텍스쳐 아이디에 의하여 지시되는 동영상 편집도구의 타임라인 상 클립의 종료 위치로부터 제 2 값을 가진 텍스쳐 아이디에 의하여 클립의 시작위치 사이에 적용되는 트랜지션 이펙트를 설정한다.
한편, 두 개의 키 프레임 밸류 값이 포함되며, 상기 드로잉 함수가 해당 애니메이티드 밸류 아이디의 포인터를 받는 경우,
상기 드로잉 함수는 상기 애니메이티드 밸류 아이디가 시간의 흐름에 따라 두 개의 키 프레임 밸류 값 가운데 앞의 값을 가진 상태에서, 뒤의 값을 가진 상태로 변화하도록 이펙트를 설정한다.
상기 애니메이티드 밸류 개시 태그 이후, 상기 애니메이티드 밸류 종료 태그 이전에 상기 애니메이티드 밸류 아이디에 할당된 값의 변화 속도를 조절하기 위한 베지어 함수를 정의하는 타이밍 펑션 태그가 더 포함될 수 있는데,
이때, 타이밍 펑션 태그는 애니메이티드 밸류의 변화 속도 조절을 위한 베지어 함수의 콘트롤 포인트의 좌표에 해당하는 4 개의 파라메타를 가진다.
제 1 파라메타는 첫번째 콘트롤 포인트의 x좌표,
제 2 파라메타는 첫번째 콘트롤 포인트의 y좌표,
제 3 파라메타는 두번째 콘트롤 포인트의 x좌표,
제 4 파라메타를 두번째 콘트롤 포인트의 y좌표를 각각 가리킨다.
In order to achieve the above object, the data structure for setting the effect of the video editing tool according to the present invention,
A type code defining a range to which the texture code, animated value code, and drawing function are applied;
Texture code defining what the effect is rendered to;

An animated value code that defines a value that changes over time when the effect is rendered;
Contains drawing functions that define the type and method of effects.
At this time, the texture code is a texture start tag; Texture ID; Attribute directive; value; And a texture end tag.
Meanwhile, the animated value tag may include an animated value start tag; Animated value ID; One or more keyframe value values; And an animated value end tag;
The drawing function receives a pointer to the texture ID or animated value ID as a function parameter.
On the other hand, the property directive of the texture code is one of video, image, and text.
When an attribute directive indicates a video, a pointer variable pointing to the clip that the user has dynamically selected for the texture ID is assigned that value.
When the attribute directive indicates an image, a pointer variable indicating an image file name or a user dynamically selected image is assigned to the texture ID as the value.
When an attribute directive indicates text, a pointer variable indicating text or text dynamically input by a user is assigned to the texture ID.
Meanwhile, if two texture IDs are included, each property directive is a video, and the drawing function receives a pointer to the two texture IDs.
The drawing function sets a transition effect applied between the start position of the clip by the texture ID having the second value and the end position of the clip on the timeline of the video editing tool indicated by the texture ID having the first value.
Meanwhile, when two key frame value values are included and the drawing function receives a pointer of the corresponding animated value ID,
The drawing function sets an effect such that the animated value ID changes from a state having a previous value among two key frame value values to a state having a later value as time passes.
A timing function tag may be further defined after the animated value start tag and before the animated value end tag, defining a Bezier function for adjusting a change rate of a value assigned to the animated value ID.
In this case, the timing function tag has four parameters corresponding to the coordinates of the control point of the Bezier function for adjusting the rate of change of the animated value.
The first parameter is the x coordinate of the first control point,
The second parameter is the y coordinate of the first control point,
The third parameter is the x coordinate of the second control point,
The fourth parameter points to the y coordinate of the second control point, respectively.

이러한 본 발명에 의할 때,
모바일의 엔드 유저 또는 모바일용 동영상 편집 소프트웨어의 서드파티 개발사는 명확하고 간단하게 이펙트의 템플릿을 설정할 수 있게 된다.
특히, 복잡한 루프를 코딩하는 번거로움 없이 본 발명에서 제공하는 플러그 인의 구조에 따라 단지 애니메이티드 밸류의 값을 간단히 설정하는 것만으로 시간의 흐름에 따라 시각적인 변화가 발생하는 이펙트를 정의할 수 있게 된다.
뿐만 아니라, 본 발명에서 제공하는 플러그 인의 구조에 따라 타이밍 펑션의 파라메타를 간단히 입력하는 것에 의하여 이펙트의 렌더링 시에 끊어지는 느낌 없이 부드럽게 이어질 수 있도록 이펙트의 템플릿을 정의할 수 있게 된다.
더 나아가 이와 같이 정의된 이펙트의 템플릿은 모바일용 동영상 편집 소프트웨어의 플러그 인의 형태로 용이하게 배포될 수 있으며, 모바일 사용자들은 자신에게 필요한 플러그 인을 간단히 검색하여 다운로드 함으로써 동영상의 편집시에 자유롭게 활용할 수 있게 된다.
According to this invention,
Mobile end users or third-party developers of mobile video editing software will be able to set up templates for effects clearly and simply.
In particular, according to the structure of the plug-in provided by the present invention without the hassle of coding complex loops, it is possible to define an effect in which a visual change occurs over time by simply setting an animated value. .
In addition, by simply inputting the parameters of the timing function according to the structure of the plug-in provided by the present invention, it is possible to define a template of the effect so that the effect can be smoothly rendered without being interrupted during rendering of the effect.
Furthermore, the templates of the effects defined as described above can be easily distributed in the form of plug-ins of mobile video editing software, and mobile users can freely use them when editing videos by simply searching for and downloading the plug-ins necessary for them. do.

도 1은 종래기술에 의한 PC용 동영상 편집 소프트웨어의 GUI를 예시하는 도면이며,
도 2는 모바일용 동영상 편집도구의 GUI를 예시하는 화면 예시도이며,
도 3은 모바일을 이용하여 테마 서버로 이펙트 설정을 위한 플러그 인을 업로드 하거나 또는 다운로드 하는 관계를 설명하는 도면이며,
도 4는 플러그 인의 구조를 설명하는 도면이며,
도 5는 플러그 인이 프로젝트, 클립 또는 두 개의 클립 사이에 적용되는 것을 개념적으로 설명하는 도면이며,
도 6은 타이밍 펑션을 구현하기 위한 큐브 베지어 함수의 예를 설명하는 도면이며,
도 7은 본 발명에 의한 이펙트 설정을 위한 데이터 구조를 이용한 이펙트 설정 방법을 설명하는 플로우차트이다.
1 is a diagram illustrating a GUI of video editing software for a PC according to the prior art,
2 is a screen example illustrating a GUI of a video editing tool for mobile.
FIG. 3 is a diagram illustrating a relationship of uploading or downloading a plug-in for setting an effect to a theme server using mobile.
4 is a view for explaining the structure of the plug-in,
5 is a diagram conceptually illustrating that a plug-in is applied between a project, a clip, or two clips.
6 is a view for explaining an example of a cube Bezier function for implementing a timing function,
7 is a flowchart for explaining an effect setting method using a data structure for effect setting according to the present invention.

이하에서는 본 발명의 바람직한 실시예 및 첨부하는 도면을 참조하여 본 발명을 상세히 설명하되, 도면의 동일한 참조부호는 동일한 구성요소를 지칭함을 전제하여 설명하기로 한다.
발명의 상세한 설명 또는 특허청구범위에서 어느 하나의 구성요소가 다른 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 당해 구성요소만으로 이루어지는 것으로 한정되어 해석되지 아니하며, 다른 구성요소들을 더 포함할 수 있는 것으로 이해되어야 한다.
또한, 발명의 상세한 설명 또는 특허청구범위에서 "~수단", "~부", "~모듈", "~블록"으로 명명된 구성요소들은 적어도 하나 이상의 기능이나 동작을 처리하는 단위를 의미하며, 이들 각각은 소프트웨어 또는 하드웨어, 또는 이들의 결합에 의하여 구현될 수 있다.
도 3은 모바일을 이용하여 테마 서버로 이펙트 설정을 위한 플러그 인을 업로드 하거나 또는 다운로드 하는 관계를 설명하는 도면이다.
테마 서버(2)는 네트워크를 통해 접속한 모바일(1)로 이펙트 설정을 위한 플러그 인의 목록을 제공하며, 모바일(1) 사용자가 그 가운데 어느 하나를 선택함에 따라, 사용자가 선택한 플러그 인을 다운로드 할 수 있도록 한다.
한편, 모바일(1) 사용자는 테마 서버(2)로부터 제공받은 플러그 인의 목록을 보면서, 자신에게 필요한 플러그 인을 선택한다.

*플러그 인의 목록은 바람직하게는 각 플러그 인에 의한 이펙트의 렌더링 결과를 나타내는 썸네일과 간단한 설명이 포함되며, 사용자는 이를 보면서 자신에게 필요한 것을 선택하여 다운로드 함으로써 자신의 모바일(1)에 설치한다.
그리고, 모바일(1)을 이용하여 동영상 편집 소프트웨어를 실행한 상태에서 타임라인에 클립들을 배열하고, 기 다운로드하여 설치한 플러그 인 가운데 적당한 것을 선택하여 플러그 인에 의해 제공되는 이펙트를 설정하게 된다.
한편, 도 3에는 테마 서버(2)로부터 플러그 인을 다운로드 받는 것으로 도시되어 있으나, 이외에도 안드로이드 OS용 "마켓"이나 IOS용 "앱스토어" 등을 경유하여 다운로드 하여 설치하는 경우를 배제하지 아니한다.
한편, 다른 모바일(1)의 사용자는 이러한 플러그 인을 직접 정의하여 테마 서버(2)에 업로드 할 수도 있다.

*서드파티 개발사(3) 또한 모바일(1)용 동영상 편집 소프트웨어를 위한 플러그 인을 정의하여 테마 서버(2)에 업로드할 수 있다.
본 발명에서 플러그 인(100)은 각각 미리 정의된 이펙트 템플릿에 해당한다.
이펙트란 임의의 클립 또는 인접한 두 클립 사이 구간에 적용될 수 있는 각종 효과를 의미하는데, 자막, 타이틀, 도형 그리기 등 클립 내에 렌더링되어 표시될 수 있는 클립 이펙트와 어느 하나의 클립이 종료된 후 다음 클립이 시작되는 사이 구간에 설정되어 두 개의 클립이 자연스럽게 이어질 수 있도록 하는 트랜지션 이펙트를 포함한다.
공지의 트랜지션 이펙트로는 페이드 인, 페이드 아웃, 아래에서 올라오기, 중앙에서부터 확대하기 등이 있다.
템플릿이란 이펙트 설정을 위한 요소들이 미리 정의된 데이터를 의미한다.
한편, 이외에도 플러그 인(100)은 전체 프로젝트에 적용되는 클립 이펙트와 트랜지션 이펙트들의 조합인 테마일 수도 있다.
이러한 플러그 인(100)들은 하나의 플러그 인(100)이 하나의 클립 이펙트 또는 트랜지션 이펙트, 또는 테마를 정의한다.
클립 이펙트를 적용하는 경우를 살펴보면, 사용자는 모바일(1)의 동영상 편집 소프트웨어의 소정 경로에 설치된 다수의 플러그 인 가운데 클립 이펙트에 해당하는 플러그 인을 선택한 다음, 타임라인에 배열된 다수의 클립 가운데서 해당 클립 이펙트를 적용할 클립을 간단히 선택하는 것만으로 해당 클립 이펙트에 의해 정의되는 이펙트를 선택한 클립에 적용할 수 있다.
트랜지션 이펙트의 경우를 살펴보면, 기 설치된 다수의 플러그 인 가운데 트랜지션 이펙트에 해당하는 플러그 인을 선택한 다음, 타임라인에 배열된 다수의 클립 가운데서 인접하는 두 개의 클립을 간단히 선택하는 것만으로 해당 두 클립이 전환될 때의 효과를 간단히 설정할 수 있게 된다.
한편, 테마의 경우를 살펴보면, 기 설치된 다수의 플러그 인 가운데 테마에 해당하는 플러그 인을 선택하는 것만으로 현재 프로젝트 전체에 클립 이펙트와 트랜지션 이펙트를 적용할 수 있다.
트랜지션 이펙트, 클립 이펙트, 테마에 해당하는 플러그 인(100)들은 바람직하게는 모바일(1)의 동영상 편집 소프트웨어의 설치 경로의 하위 경로에 저장되되, 서로 각각 다른 경로에 저장될 수 있다.
한편, 이들은 각각 다른 파일 확장자로 저장될 수도 있으며, 플러그 인(100)에 의해 사용되는 이미지 등의 리소스와 함께 저장될 수 있다.
도 4는 이러한 플러그 인의 구조를 설명한다.
도 4에 도시된 바에 의할 때, 플러그 인(100)은 유형코드(110), 텍스쳐 코드(120), 애니메이티드 밸류 코드(130) 및 드로잉 함수(140)를 포함한다.
모든 코드는 시작 태그에 의하여 시작되어 종료 태그로 끝난다. 종료 태그는 종료 슬래쉬로 대체될 수도 있다.
바람직하게는 플러그 인(100)은 도 4에 도시된 바와 같이 유형코드(110), 텍스쳐 코드(120), 애니메이티드 밸류 코드(130) 및 드로잉 함수(140)을 순서대로 포함한다.
즉, 플러그 인(100)은 도 4에 도시된 바와 같은 코드들을 갖는 파일의 형태일 수 있다. 바람직하게는 이러한 코드들이 바이너리 형태로 컴파일되지 않은 상태로 암호화되어 저장되는 파일의 형태일 수 있다.
모바일(1)은 이러한 플러그 인(100)을 복호화하되, 플러그 인(100)에 포함된 코드들을 동적으로 해석하여 플러그 인(100)에 의해 정의되는 이펙트를 프로젝트, 또는 프로젝트의 타임라인에 배열된 클립에 적용하게 된다.
유형코드(110)는 해당 플러그 인(110)이 적용되는 범위를 정의한다.
이러한 유형코드(110)는 테마, 트랜지션 이펙트, 클립 이펙트 가운데 어느 하나에 해당하는 값을 가질 수 있다.
도 5는 플러그 인이 프로젝트, 클립 또는 두 개의 클립 사이에 적용되는 것을 개념적으로 설명하는 도면이다.
유형코드(110)의 값이 테마인 경우 해당 플러그 인(110)에 포함된 나머지 텍스쳐 코드(120), 애니메이티드 밸류 코드(130) 및 드로잉 함수(140)들은 프로젝트 전체에 적용된다.
도 5의 (a)는 이펙트가 프로젝트 전체에 적용되는 경우를 설명한다.
테마의 경우 둘 또는 그 이상의 텍스쳐 코드(120), 애니메이티드 밸류 코드(130) 및 드로잉 함수(140)들을 포함할 수도 있다.
한편, 유형코드(110)의 값이 트랜지션 이펙트인 경우, 해당 플러그 인(110)의 코드들은 프로젝트의 타임 라인에 배열된 다수의 클립 가운데 사용자에 의하여 선택된 인접한 두 개 사이의 트랜지션에 적용된다.
도 5의 (b)는 이펙트가 인접한 두 개의 클립의 사이에 적용되는 경우를 설명한다.
만일, 유형코드(110)의 값이 클립 이펙트인 경우에는 프로젝트의 타임 라인에 배열된 다수의 클립 가운데 사용자에 의해 선택된 어느 하나 또는 그 이상에 적용된다.
도 5의 (c)는 이펙트가 인접한 두 개의 클립의 사이에 적용되는 경우를 설명한다.
이러한 유형코드(110)는 바람직하게는 플러그 인(100)의 맨 앞에 위치한다.
플러그 인(100)이 클립 이펙트이거나 트랜지션 이펙트인 경우 <Effect />와 같은 최상위 요소(Root Element)로 이루어질 수 있다.
한편, 플러그 인(100)이 테마인 경우 유형코드(110)는 <Theme />와 같은 최상위 요소(Root Element)를 가지며, 그 아래에 다수의 <Effect /> 요소를 가질 수 있다.
한편, 텍스쳐 코드(120)는 이펙트가 렌더링 될 대상을 정의한다.
이러한 텍스쳐 코드는 도 4에 도시된 바와 같이 텍스쳐 개시 태그(121); 텍스쳐 아이디(122); 속성 지시어(123); 텍스쳐 속성값(124); 및 텍스쳐 종료 태그(125);를 순차 포함한다.
도 4에 도시된 바에 의할 때,
<Texture id="video_out" video="1" />와 같은 텍스쳐 코드(120)가 표시된 것을 알 수 있다.
이때, 텍스쳐 개시 태그(121)는 <texutre 이며,
텍스쳐 아이디(122)는 id = "video_out",
속성 지시어(123)는 video, 텍스쳐 속성값(124)은 "1"이다.
그리고, 텍스쳐 종료 태그(125)는 />에 해당한다. 텍스쳐 종료 태그는 </texture>와 같이 기술함이 원칙이나, 위와 같이 종료 슬래쉬로 대체하여도 무방하다.
텍스쳐 개시 태그(121)는 텍스쳐 코드가 시작됨을 지시하는 태그에 해당한다.
텍스쳐 아이디(122)는 드로잉 함수(140)에서 호출할 객체의 이름에 해당하며, 임의로 정할 수 있다.
속성 지시어(123)는 video, src, text 가운데 하나의 값을 가진다.
video는 직전에 정의된 텍스쳐 아이디의 유형이 비디오임을 의미한다.
이와 같이 속성 지시어(123)가 비디오인 경우, 상기 텍스쳐 아이디(122)는 클립을 가리키는 변수로 사용될 수 있다.
예컨대, 상기 <Texture id="video_out" video="1" />의 예에서,
사용자가 모바일(1)의 동영상 편집 소프트웨어를 실행시켜 타임라인 상의 임의의 클립을 선택함에 따라, video_out에 해당 클립을 가리키는 값 또는 포인터가 할당될 수 있을 것이다.
텍스쳐 속성값(124)이 가질 수 있는 값의 형태나 의미는 텍스쳐 속성 지시어(123)에 따라서 달라진다.
예컨대, 트랜지션 이펙트의 경우에, 속성 지시어(123)가 video라면, 속성값 "1"은 트랜지션 이펙트가 적용되는 앞의 클립(Outgoing Clip), 속성값 "2"는 트랜지션 이펙트가 적용되는 뒤의 클립(Incoming Clip)을 의미한다.
도 4에 도시된 바에 의할 때,
<Texture id="video_out" video="1" />
<Texture id="video_in" video="2" />와 같이 두 개의 텍스쳐 코드(120)가 연이어 도시되어 있는데,
"video_out"과 "video_in" 두 개의 텍스쳐 아이디(122)는 모두 그 속성 지시어(123)가 video이며, 텍스쳐 속성값으로 각각 "1"과 "2"의 값을 갖는다.
즉, 도 4의 예에 의한 텍스쳐 코드(120)가 포함된 플러그 인(100)이 트랜지션 이펙트를 정의하는 것이라면, "video_out"과 "video_in"은 각각 트랜지션 이펙트가 적용되는 앞의 클립과 인접한 뒤의 클립을 각각 지시한다.
한편, 속성 지시어(123)가 src인 경우, 직전에 정의된 텍스쳐 아이디(122)의 유형이 이미지임을 의미한다.
예컨대, <Texture id="snowflake" src="snowflake.png" />
와 같은 텍스쳐 코드(120)에서,
텍스쳐 속성 지시어(123)는 src이며,
텍스쳐 속성값(124)는 "snowflake.png"이다. 즉, 파일의 이름이 속성값으로 직접 입력될 수 있다.
즉, 텍스쳐 속성 지시어(123)가 이미지를 지시하는 경우, 상기 텍스쳐 아이디(122)에 대하여 이미지 파일의 이름 및/또는 경로가 그 값으로 할당될 수 있다.
한편, 속성 지시어(123)가 text인 경우, 직전에 정의된 텍스쳐 아이디(122)의 유형이 텍스트임을 의미한다.
예컨대,
<Texture id="title_text"
text="%1"
typeface="asset:knewave.ttf"
textsize="80"
fillcolor="#FFFFFF"
fill />
와 같은 텍스쳐 코드(120)에서, 텍스쳐 아이디(122)는 "title_text"이며,
텍스쳐 속성 지시어(123)는 text, 텍스쳐 속성값(124)는 "%1"이다.
상기 텍스쳐 속성값(124)의 뒤에 연이어 표시되는 typeface, textsize, fillcolor 등의 속성지시어는 텍스트 유형의 "title_text"의 폰트, 글자크기, 색상 등을 정의하기 위한 것으로, 필요에 따라서 사용될 수도 또는 생략될 수도 있다.
즉, 텍스쳐 속성 지시어(123)가 텍스트를 지시하는 경우, 상기 텍스쳐 아이디(122)에 대하여 텍스트 자체 또는 사용자가 동적으로 입력한 텍스트를 가리키는 포인터 변수가 그 값으로 할당될 수 있다.
한편, 위와 같은 텍스쳐 코드(120)의 구조에 의할 때, 변수의 유형을 먼저 정의하고서, 후에 해당 변수에 값을 할당하지 않는다.
즉, 텍스쳐 아이디(122)를 먼저 정의하고, 그 다음에 텍스쳐 속성지시어(123)를 기술함으로써 텍스쳐 아이디(122)의 유형을 뒤에서 한정한다. 그리고, 연이어 텍스쳐 속성값(124)를 기술하는 방식을 취한다. 이에 의할 때 코드의 길이가 매우 짧아지며 가독성이 향상된다.
한편, 애니메이티드 밸류 코드(130)는 이펙트의 렌더링 시 시간의 변화에 따라 변화하는 값을 정의한다.
이러한 애니메이티드 밸류 코드(130)는 애니메이티드 밸류 개시 태그(131)와 애니메이티드 밸류 종료 태그(135)를 가지며, 그 사이에 애니메이티드 밸류 아이디(132), 키프레임 밸류(133), 타이밍 펑션 태그(134)를 갖는다.
도 4에 의할 때,
<AnimatedValue id="fade_in">
<KeyFrame value="0" />
<KeyFrame value="1" />

*</AnimatedValue>
와 같은 애니메이티드 밸류 코드(130)가 도시되어 있다.
이때, 애니메이티드 밸류 개시 태그(131)는 "<AnimatedValue"이며,
애니메이티드 밸류 아이디(132)는 "fade_in"이다.
그리고, 애니메이티드 밸류 아이디(132)의 다음에, 두 개의 키 프레임 태그 "<KeyFrame"의 각각에 value="0", value="1"이라 정의되어 있는 것을 알 수 있다.
즉, "fade_in"에 "0"의 값을 갖는 키프레임 밸류(133)와 "1"의 값을 갖는 키프레임 밸류(133)가 할당된다.
그리고, 애니메이티드 밸류 종료 태그(135) "</AnimatedValue>"에 의하여 종료된다.
애니메이티드 밸류 개시 태그(131)는 애니메이티드 밸류 코드(130)의 시작을 지시한다.
그 직후 id="fade_in">를 통해 애니메이티드 밸류 아이디(132)를 정의하고,
두 개의 키 프레임 밸류(133)를 해당 애니메이티드 밸류 아이디(132)에 할당한다.
키 프레임 밸류(133)는 하나 또는 그 이상일 수 있다.
키 프레임 밸류(133)가 드로잉 함수(140)에서 호출되는 방식과 타이밍 펑션(134)에 의해 프레임 밸류(133) 값의 변화속도를 조절하는 구성은 본 발명의 특징적인 구성에 해당하며, 이에 대해서는 드로잉 함수(140)를 살펴본 다음 다시 설명하기로 한다.
드로잉 함수(140)는 이펙트의 종류와 방법을 정의한다.
드로잉 함수(140)는 동영상 편집 소프트웨어에서 클립, 인접한 두 개의 클립 사이 또는 전체 프로젝트에 적용될 수 있는 다양한 이펙트를 설정하기 위한 함수에 해당하며, 이펙트를 설정하기 위한 다양한 함수들이 사용될 수 있다.
예컨대, 화면에 도형을 그리거나, 클립간 트랜지션 이펙트를 정의하거나, 타이틀이 표시되는 이펙트를 처리하는 등의 다양한 기능이 드로잉 함수(140)를 통해 정의될 수 있다.
드로잉 함수(140)는 공지기술에 의한 각종 화면 처리 함수에 대응된다.
다수의 드로잉 함수(140)가 사용될 수 있으며, 각 함수는 명칭과 파라메타를 달리할 수 있다.
이때, 중요한 점은 이러한 드로잉 함수(140)가 텍스쳐 아이디(122)와 애니메이티드 밸류 아이디(132)를 호출하여 처리하는 방식에 있다.
도 4에 도시된 바에 의할 때, 다음과 같은 두 개의 드로잉 함수(140)가 도시된 것을 알 수 있다.
첫 번째는,
<rect bounds="-1 1 1 -1" texture="@video_out" />
이다.
"<rect"는 화면에 사각형을 그리는 드로잉 함수이다.
이때, 첫 번째 파라메타로 두 개의 좌표값 (-1,1), (1,-1)을 가지며, 두 번째 파라메타로 "@video_out"이라는 값을 갖는다.
"video_out"은 상기에서 살펴본 바와 같이 아웃고잉 클립을 가리키는 텍스쳐 아이디(122)이며, @을 붙여 호출한다.
즉, 드로잉 함수(140)는 함수의 파라메타로 텍스쳐 아이디(122)의 포인터를 받을 수 있다.
애니메이티드 밸류 아이디(132) 또한 동일한 방식에 의해 @를 붙여 포인팅 할 수 있다.
즉, 위 드로잉 함수(140)는 트랜지션 이펙트가 적용되는 인접한 두 클립 가운데 앞의 클립에 (-1,1), (1,-1)을 지나는 사각형을 그리는 코드에 해당한다.
한편, 도 4에 도시된 바에 의할 때,
<style alpha="@fade">
<rect bounds="-1 1 1 -1" texture="@video_in" />
</style>
와 같은 드로잉 함수(140)가 표시되어 있다.
"<style alpha"는 알파값을 설정하는 함수이다.
그리고, 파라메타로 "@fade_in"를 갖는다.
"fade_in"는 상기에서 언급한 애니메이티드 밸류 아이디(132)에 해당하며, 마찬가지로 @을 붙여 호출한다.
그리고, <style alpha="@fade_in">와 </style>의 사이에서
<rect bounds="-1 1 1 -1" texture="@video_in" />와 같이 "<rect"함수를 한번 더 호출하고 있다.
두 번째 <rect 함수는 인커밍 클립인 video_in의 시작 지점까지 화면에 (-1, 1)과 (1, -1)를 지나는 사각형을 그린다.
이때, 중요한 것은 "fade_in"이 애니메이티드 밸류라는 점이다.
도 4의 애니메이티드 밸류 코드(130)를 다시 살펴보면,
<AnimatedValue id="fade_in">
<KeyFrame value="0" />
<KeyFrame value="1" />
</AnimatedValue>
와 같다.
이는 애니메이티드 밸류 아이디(132)인 "fade_in"의 시작값이 "0"이며, 종료값이 "1"임을 의미한다.
그리고, 애니메이티드 밸류 아이디(132) "fade_in"를 호출하는 드로잉 함수(140)는 일정시간(상기 예에서는 아웃고잉 클립의 종료 지점에서 인커밍 클립의 시작 지점까지)동안 사각형을 그리는 등의 이펙트를 처리함에 있어, 이펙트의 시작시 애니메이티드 밸류 아이디(132) "fade_in"의 값이 "0"에서부터 시작하여 이펙트의 종료시에는 애니메이티드 밸류 아이디(132) "fade_in"의 값이 "1"이 되도록 점차적으로 변화시키면서 이펙트를 처리하는 것이다.
도 4에 도시된 드로잉 함수(140)는
아웃고잉 클립의 종료 지점에서 인커밍 클립의 시작 지점까지)동안 화면을 가득 채우는 RGB 색상값이 (1, 0, 0)인 사각형을 그리되, 알파값을 0 에서 1로 점차 바꿔줌으로써 화면에 서서히 페이드인 되는 이펙트를 처리한다.
즉, 도 4에 도시된 코드는 실상은 다음과 같은 슈도코드(Pseudo-Code)로 표현되는 루프(Loop)에 해당하는 것이다.
{initial value of t = end of outgoing clip;
initial value of fade_in = 0;
while t =| start of incoming clip
{draw rectangle using alpha value = fade_in;
t=t+1;
fade_in=fade_in+increment;}
end;}
이때, fade_in이 0 에서 1이 되는데 소요되는 시간과, 아웃고잉 클립의 종료 지점에서 인커밍 클립의 시작 지점까지 소요되는 시간을 일치시켜야 하기 때문에 실제로 이를 구현하기 위해서는 보다 복잡한 코딩이 필요하게 된다.
그러나, 텍스쳐 아이디(122)와 애니메이티드 밸류 아이디(132)의 속성과 값을 이펙트의 종류, 유형에 적절한 형태로 미리 정의하는 것만으로 이러한 복잡한 루프의 코딩을 생략하고 간단히 표현할 수 있게 된다.
애니메이티드 밸류 코드(130)에 대하여 부연하자면,
애니메이티드 밸류 아이디(132)에 할당되는 키프레임 밸류(133)는 이를 호출하는 드로잉 함수(140)에 따라, 또는 플러그 인(100)이 클립 이펙트인지, 트랜지션 이펙트인지 또는 테마인지에 따라서 그 개수나 형태가 달라질 수 있다.
도 4의 예에서는 두 개의 키프레임 밸류(133)가 할당되며, 앞의 것이 시작값, 뒤의 것이 종료값으로 사용되었다. 그러나, 드로잉 함수(140)에 따라서는 한 개의 키프레임 밸류(133)가 할당되는 경우도 있다.
한편, 경우에 따라서는 하나의 키프레임 밸류(133)에 둘 이상의 값이 동시에 할당될 수도 있다.
<AnimatedValue id="box_color">
<KeyFrame value="1.0 0.0 0.0" />
<KeyFrame value="0.5 1.0 1.0" />
</AnimatedValue>
와 같은 애니메이티드 밸류 코드(130)를 가정할 때,
"box_color"는 시작값으로 1.0, 0.0, 0.0의 세 개의 값을,
종료값으로는 0.5, 1.0, 1.0의 세 개의 값을 가질 수 있다.
즉, 이 경우 "box_color"는 3개의 항목을 갖는 1차원 행렬 구조의 변수가 된다.
한편, 가독성을 향상시키기 위하여,
.r = [0]
.g = [1]
.b = [2]
와 같이 미리 정의한 다음,
<Rect bounds="-0.5 -0.5 0.5 0.5" color="@box_color.g @box_color.r @box_color.b" />
와 같이 드로잉 함수(140)를 통해 호출할 수도 있다.
한편, 애니메이티드 밸류 코드(130)는 타이밍 펑션 태그(134)를 더 포함할 수 있다.
예컨대, 도 4에 도시된 바와 같이 드로잉 함수(140)를 통해 페이드 인 이펙트를 처리할 때, 애니메이티드 밸류 아이디 "fade_in"의 값이 0 에서 1 까지 선형적으로 변화(Linear Interpolation)한다면, 이펙트의 시작과 끝 부분이 매끄럽지 못하고 어색한 느낌을 주는 문제가 있다.
타이밍 펑션 태그(134)는 이러한 리니어 인터폴레이션의 매끄럽지 못한 문제 해결을 위해 큐빅 베지어 함수(Cubic Bezier Function)를 사용하여 애니메이티드 밸류 아이디(132)에 할당된 값의 변화 속도를 조절한다.
이러한 타이밍 펑션 태그(134)는 애니메이티드 밸류 개시 태그(131) 이후, 애니메이티드 밸류 종료 태그(135) 이전에 위치한다.
즉, 중요한 점은 타이밍 펑션 태그(134)가 드로잉 함수(140)를 통해 정의되는 것이 아니라 애니메이티드 밸류 아이디(132)의 속성의 일부라는 것이다.
이러한 구조 역시 별도의 복잡한 루프의 코딩 없이 간단히 애니메이티드 밸류 아이디(132)에 할당된 키프레임 밸류(133)의 변화속도를 설정할 수 있도록 한다.
타이밍 펑션 태그(134)는 예컨대 <TimingFunction /> or <Const />와 같은 태그를 통해 표현될 수 있다.
한편, 이러한 타이밍 펑션 태그(134)는 바람직하게는 4개의 연속된 숫자로 이루어진 파라메타를 갖는다.
이때, 4개의 연속된 파라메타는 각각 애니메이티드 밸류 아이디(132)에 할당된 키프레임 밸류(133)의 변화 속도 조절을 위한 베지어 함수의 콘트롤 포인트의 좌표를 나타낸다.
가장 앞의 파라메타인 제 1 파라메타는 첫번째 콘트롤 포인트의 x좌표, 두 번째인 제 2 파라메타는 첫번째 콘트롤 포인트의 y좌표, 세 번째인 제 3 파라메타는 두번째 콘트롤 포인트의 x좌표, 마지막 제 4 파라메타를 두번째 콘트롤 포인트의 y좌표를 각각 가리킨다.
예를 들어, 파라메타가 0.25 0.10 0.25 1.00인 경우, 두 개의 콘트롤 포인트(0.25, 0.10) 및 (0.25, 1.00)를 갖는 베지어 곡선을 그릴 수 있다.
이때, 베지어 곡선의 시작점은 (0,0), 종료점은 (1,1)이다.
도 6은 타이밍 펑션을 구현하기 위한 큐브 베지어 함수의 예를 설명하는 도면인데, 도 6의 (a)는 0.25 0.10 0.25 1.00인 경우의 베지어 곡선을 나타낸다.
x축은 시간변화, y축은 애니메이티드 밸류 아이디(132)에 할당된 키프레임 밸류(133)값이다.
즉, 키프레임 밸류(133)값이 시작시에 서서히 증가하고, 종료시에도 서서히 증가하는 형태이다.
애니메이션의 시작과 끝 부분이 서서히 시작하고 끝나게 된다.
도 6의 (b)는 4개의 파라메타가 0.42 0.00 1.00 1.00인 경우의 베지어 곡선을 나타낸다.
이 경우 애니메이션이 서서히 시작하되, 종료시에는 선형적으로 종료한다.
도 6의 (c)는 4개의 파라메타가 0.00 0.00 0.58 1.00인 경우의 베지어 곡선을 나타낸다.
이 경우 애니메이션이 선형적으로 시작하되, 종료시에는 서서히 종료한다.
도 6의 (d)는 4개의 파라메타가 0.00 0.00 1.00 1.00인 경우의 베지어 곡선을 나타낸다.
이 경우 애니메이션이 선형적으로 시작하여 선형적으로 종료한다.
키프레임 밸류(133)값이 선형적으로 일정하게 증가하는 것이다.
한편, 드로잉 함수(140)를 호출하기에 앞서 좌표계 변환 코드(150)가 더 포함될 수 있다.
좌표계 변환 코드(150)는 프로젝션 코드(151), 종횡비 확장 코드(152) 및 원점 이동 코드(153)을 갖는다.
좌표계 변환 코드(150)는 예컨대 다음과 같다.
<projection type="perspective" aspect="1.777777" fov="45" near="0.01" far="60000">
<translate offset="-640 -360 -870">
<-- drawing function 140 -->
</translate>
</projection>
프로젝션 코드(151)는 좌표계를 z축을 갖는 3차원 좌표계로 프로젝션한다.
이때, 시점(Veiwpoint)로부터의 각도를 설정할 수 있다.
종횡비 확장 코드(152)는 동영상 편집 도구가 표시되는 디스플레이의 가로세로 픽셀수에 의해 정의되는 종횡비에 맞추어 좌표계를 확장한다.
상기 <projection type="perspective" aspect="1.777777" fov="45" near="0.01" far="60000"> 코드(151, 152)에서,
<projection type="perspective"와 같이 3차원 좌표계로 프로젝션 하되,
fov="45"와 같이 설정함으로써 시점에서의 각도를 45도로 한다.

*그리고, aspect="1.777777"와 같이 설정함으로써 1 대 1 비율의 좌표계를 모바일(1)의 화면 비율 1.77777에 맞춰 확장한다. 이에 의해 각 픽셀이 정사각형의 모양을 갖게 되며, 드로잉 함수(140)에 의한 이펙트 렌더링 시에 종횡비에 따른 형상 왜곡을 제거할 수 있다.
<translate offset="-640 -360 -870"> 코드(153)는 화면 중심의 원점을 720p 좌표계 기준으로 일측 끝단으로 이동시킨다. 그리고, z축으로 870 만큼 이동하는 것은 z=0 평면의 물체가 시야에서 표시되지 않는 것을 방지하기 위함이다.
한편, 이와 같은 프로젝션 코드(151), 종횡비 확장 코드(152) 및 원점 이동 코드(153) 이후, <-- drawing function 140 --> 부분에서 드로잉 함수(140)를 호출한다.
이후, </translate> 태그를 통해 원점 이동 코드(153)를 종료하고, </projection> 태그를 통해 프로젝션 코드(151) 및 종횡비 확장 코드(152)를 종료한다.
이러한 좌표계 변환 코드(150)는 앞서 유형코드(110), 텍스쳐 코드(120), 애니메이티드 밸류 코드(130) 및 드로잉 함수(140)와 같이 플러그 인(100)에 반드시 포함되어야 하는 것은 아니나,
드로잉 함수(140)의 호출 전에 포함시키는 것에 의하여 각종 드로잉 함수(예컨대, 화면 회전 등)의 렌더링 시 화면 종횡비에 따른 오브젝트의 왜곡을 방지할 수 있다.
따라서, 3D 이펙트를 사용하지 않는 경우라고 하여도, 이러한 좌표계 변환 코드(150)를 드로잉 함수(140)의 호출 전에 포함시키는 것이 바람직하다.
이하에서는 도 7을 참조하여 모바일(1)이 상기와 같은 구조를 갖는 플러그 인(100)을 이용하여 동영상 편집 소프트웨어 상에서 이펙트를 설정하는 과정을 설명한다.
도 7은 본 발명에 의한 이펙트 설정을 위한 데이터 구조를 이용한 이펙트 설정 방법을 설명하는 플로우차트이다.
모바일(1) 사용자는 테마 서버(2) 또는 안드로이드 OS용 "마켓"이나 IOS용 "앱스토어" 등을 경유하여 다수의 플러그 인(100)을 다운로드 하여 동영상 편집 소프트웨어의 경로 상에 설치한다.
또는, 본 발명에 의하여 제시되는 플러그 인(100)의 데이터 구조에 따라 직접 플러그 인(100)을 정의하여 직접 설치할 수도 있을 것이다.
한편, 모바일(1) 사용자는 동영상 편집 소프트웨어를 실행한 다음, 기존 프로젝트를 열거나 새로운 프로젝트를 시작하여 타임라인에 다수의 클립을 배열한다.
이에 따라 모바일(1)은 사용자에 의하여 선택된 클립이 타임라인에 배열되도록 처리한다(a 단계).
한편, 사용자가 도 2에 도시된 바와 같은 GUI 상에서 모바일(1)에 기 설치된 다수의 플러그 인(100) 가운데 어느 하나를 선택함에 따라,
선택된 플러그 인(100)으로부터 유형 코드(110)를 독출하되, 유형 코드(110)에 따라 해당 플러그 인이 프로젝트 전체에 적용되는 것(유형 코드(110)가 테마를 가리키는 경우)인지, 클립에 적용되는 것인지(유형 코드(110)가 클립 이펙트를 가리키는 경우), 클립 사이의 트랜지션에 적용되는 것(유형 코드(110)가 트랜지션 이펙트를 가리키는 경우)인지 파악한다(b 단계).
이후, 모바일(1)은 플러그 인(100)으로부터 텍스쳐 코드(120)를 독출한다.
모바일(1)은 우선, 텍스쳐 개시 태그(121)를 발견하면, 텍스쳐 개시 태그(121) 직후의 텍스쳐 아이디(122)에 대하여,
텍스쳐 아이디(122) 직후의 텍스쳐 속성 지시어(123)에 해당하는 유형으로 텍스쳐 속성값(124)을 할당한다(c 단계);
텍스쳐 코드(120)에 텍스쳐 속성값(124)이 상수값으로 기술되어 있는 경우라면 텍스쳐 속성 지시어(123)에 해당하는 유형의 변수를 동적으로 생성하고, 텍스쳐 아이디(122)에 해당하는 상기 변수에 상기 상수값을 할당할 수 있으며.
또는, 변수값으로 기술되어 있는 경우라면 동영상 편집 소프트웨어의 실행 과정에서의 사용자의 선택에 따라 텍스쳐 아이디(122)에 사용자의 선택에 해당하는 값을 - 물론 그 값은 텍스쳐 속성 지시어(123)에 의해 정의되는 유형과 일치하여야 한다. - 할당한다.
이후, 모바일(1)은 플러그 인(100)으로부터 애니메이티드 밸류 코드(130)를 발견하면, 애니메이티드 밸류 개시 태그(131) 직후의 애니메이티드 밸류 아이디(132)에 대하여,
키프레임 밸류(133), 타이밍 펑션 태그(134)에 의한 속성값을 할당한다.
이때, 키프레임 밸류(133)가 두 개인 경우에는 그 가운데 첫 번째는 드로잉 함수(140)에 의한 애니메이티드 밸류 아이디(132)의 호출시 시작값, 두 번째는 종료값으로 각각 할당한다(d 단계).
한편, 모바일(1)은 텍스쳐 아이디(122) 또는 애니메이티드 밸류 아이디(132)의 포인터를 파라메타로 받는 드로잉 함수(140)를 발견하면, 상기 드로잉 함수(140)에 의한 이펙트를 렌더링한다(e 단계).
이때, 유형코드(110)에 따라, 이펙트를 프로젝트 전체에 적용할 것인지, 사용자가 선택한 어느 하나의 클립에 적용할 것인지, 사용자가 선택한 인접한 두 개의 클립 사이의 트랜지션에 적용할 것인지를 결정하고 이에 따라 프로젝트 전체, 어느 하나의 클립 또는 클립 사이의 트랜지션에 이펙트를 렌더링한다.
한편, 모바일(1)이 트랜지션 이펙트를 처리하는 경우를 상세히 살펴보면, 상기 c 단계에서 두 개의 텍스쳐 아이디(122)에 비디오 유형의 텍스쳐 속성값(124)이 각각 할당되고, 상기 e 단계에서 상기 두 개의 텍스쳐 아이디(122)의 포인터를 파라메타로 받는 드로잉 함수(140)를 렌더링할 때에,
모바일(1)은 "1"의 텍스쳐 속성값(124)을 갖는 클립을 아웃고잉 클립으로, "2"의 텍스쳐 속성값(124)을 갖는 클립을 인커밍 클립으로 하여 상기 드로잉 함수(140)에 의한 이펙트를 렌더링함으로써 인접한 두 개의 클립 사이의 트랜지션을 처리한다.
한편, 모바일(1)이 애니메이티드 밸류 코드(130)를 이용하여 애니메이션을 처리하는 과정을 상세히 살펴보면, 상기 d 단계에서 하나의 애니메이티드 밸류 아이디(132)에 두 개의 키 프레임 밸류(133)가 할당되는 경우 상기 e 단계에서 상기 애니메이티드 밸류 아이디(132)의 포인터를 파라메타로 받는 드로잉 함수(140)를 렌더링할 때에,
모바일(1)은 첫 번째 키 프레임 밸류(133)를 상기 드로잉 함수(140)의 렌더링 시작 시점의 상기 애니메이티드 밸류 아이디(132)에 할당된 값으로 하되,
두 번째 키 프레임 밸류(133)를 상기 드로잉 함수(140)의 렌더링 종료 시점의 상기 애니메이티드 밸류 아이디(132)에 할당된 값으로 하여 시간의 진행에 따라 상기 키프레임 밸류(133)가 시작 값에서 종료 값으로 점차 변화하도록 처리함으로써 애니메이션 이펙트를 렌더링 한다.
한편, 애니메이티드 밸류 개시 태그(131) 이후, 해당 애니메이티드 밸류 종료 태그(135) 이전에 타이밍 펑션 태그(134)를 발견하면 모바일(1)은 e 단계에서 드로잉 함수(140)의 렌더링을 할 때에, 타이밍 펑션 태그(134)의 파라메타에 따라 상기 애니메이티드 밸류 아이디(132)에 할당된 값이 변화하는 속도를 조절한다.
타이밍 펑션 태그(134)는 바람직하게는 4개의 연이어 표기된 숫자 형태의 파라메타를 가지는데, 모바일(1)은 시작점이 (0, 0) 종료점을 (1, 1)로 하되, 상기 4 개의 파라메타에 의해 정의되는 두 개의 콘트롤 포인트에 의해 큐빅 베지어 함수를 그리고, 이에 따라 상기 애니메이티드 밸류 아이디(132)에 할당된 값이 변화하는 속도를 조절한다.
상기 타이밍 펑션 태그(134)의 제 1 파라메타를 첫번째 콘트롤 포인트의 x좌표, 제 2 파라메타를 첫번째 콘트롤 포인트의 y좌표, 제 3 파라메타를 두번째 콘트롤 포인트의 x좌표, 제 4 파라메타를 두번째 콘트롤 포인트의 y좌표로 하여 큐빅 베지어 함수를 정의할 수 있다.
그리고, 이와 같이 정의되는 큐빅 베지어 함수의 x 축을 시간, y 축을 상기 애니메이티드 밸류 값으로 함으로써 상기 애니메이티드 밸류 아이디(132)에 할당 된 값의 변화 속도를 설정할 수 있다.
한편, 이상과 같이 모바일(1)에서 실행되는 동영상 편집도구의 이펙트 설정을 위한 데이터 구조를 이용한 이펙트 설정 방법은 컴퓨터 - 특히, 모바일(1)이 판독할 수 있는 명령어의 집합인 소프트웨어의 형태로 구현되어 기록 매체에 수록될 수 있다.
이때, 기록매체는 컴퓨터에 의하여 읽을 수 있는 모든 종류의 매체를 포함할 수 있으며, 그 예로는 DVD-ROM, CD-ROM, 하드 디스크, USB 메모리, 플래쉬 메모리와 같은 유형물을 들 수 있다.
한편, 기록매체에 수록된다는 표현은 이와 같은 유형의 기록매체에 수록되는 경우는 물론, 무형의 반송파(Carrier Wave)의 형태로 통신회선을 통해 제공되는 경우를 포함한다.
한편, 상기에서는 "모바일"이라는 표현을 사용하였으나 상대적으로 작은 크기의 화면을 가지며 사용자가 휴대하면서 동영상 편집 소프트웨어를 실행시켜, 동영상을 편집할 수 있는 수단이라면 본 발명에서 지칭하는 "모바일"의 정의를 만족하는 것으로 이해되어야 한다.
즉, IOS 또는 안드로이드 OS를 탑재한 스마트폰(Smart Phone)이나 타블렛 컴퓨터(Tablet Computer) 이외에도 이의 균등물이 모바일에 포함될 수 있다.
본 발명은 첨부 도면 및 상기와 같은 실시예를 참조하여 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT Hereinafter, the present invention will be described in detail with reference to preferred embodiments of the present invention and the accompanying drawings, wherein like reference numerals refer to like elements.
It is to be understood that when an element is referred to as being "comprising" another element in the description of the invention or in the claims, it is not to be construed as being limited to only that element, And the like.
Also, in the description of the invention or the claims, the components named as "means", "parts", "modules", "blocks" refer to units that process at least one function or operation, Each of which may be implemented by software or hardware, or a combination thereof.
3 is a diagram illustrating a relationship of uploading or downloading a plug-in for setting an effect to a theme server using a mobile.
The theme server 2 provides a list of plug-ins for setting effects to the mobile 1 connected via a network, and as the user of the mobile 1 selects one of them, the user can download the plug-in selected by the user. To help.
On the other hand, the user of the mobile 1 selects the plug-in necessary for the user while looking at the list of plug-ins provided from the theme server 2.

The list of plug-ins preferably includes thumbnails and brief descriptions indicating the rendering result of the effect by each plug-in, and the user installs on his mobile 1 by selecting and downloading the ones he needs.
Then, the clips are arranged on the timeline while the video editing software is executed using the mobile 1, and an appropriate one is selected from previously downloaded and installed plug-ins to set the effects provided by the plug-in.
On the other hand, Figure 3 is shown to download the plug-in from the theme server 2, in addition to the case of downloading and installing via the "market" for Android OS, "app store" for IOS, etc. are not excluded.
On the other hand, the user of the other mobile (1) can also directly define the plug-in and upload it to the theme server (2).

Third-party developers (3) can also define and upload plug-ins for video editing software for mobile (1) to theme server (2).
In the present invention, each plug-in 100 corresponds to a predefined effect template.
An effect means various effects that can be applied to an arbitrary clip or a section between two adjacent clips. Clip effects that can be rendered and displayed in a clip, such as subtitles, titles, or drawing shapes, and the next clip after one of the clips is finished It contains a transition effect that is set in the interval between beginnings to allow two clips to follow naturally.
Known transition effects include fade in, fade out, climb down, and zoom in from the center.
A template means data in which elements for effect setting are predefined.
Meanwhile, the plug-in 100 may be a theme that is a combination of clip effects and transition effects applied to the entire project.
These plug-ins 100 have one plug-in 100 defining one clip effect or transition effect, or theme.
In the case of applying a clip effect, the user selects a plug-in corresponding to a clip effect from among a plurality of plug-ins installed in a predetermined path of the mobile video editing software, and then selects among the plurality of clips arranged in the timeline. Simply select the clip you want to apply the clip effect to and apply the effect defined by the clip effect to the selected clip.
In the case of transition effects, you can switch between two clips simply by selecting a plug-in corresponding to the transition effect from among a number of pre-installed plug-ins, and then simply selecting two adjacent clips from among the multiple clips arranged in the timeline. You can easily set the effect when
On the other hand, in the case of the theme, it is possible to apply clip effects and transition effects to the entire project by simply selecting a plug-in corresponding to a theme among a plurality of pre-installed plug-ins.
Plug-ins 100 corresponding to transition effects, clip effects, and themes are preferably stored in a sub path of the installation path of the video editing software of the mobile 1, but may be stored in different paths.
On the other hand, they may be stored with different file extensions, respectively, and may be stored together with resources such as an image used by the plug-in 100.
4 illustrates the structure of such a plug-in.
As shown in FIG. 4, the plug-in 100 includes a type code 110, a texture code 120, an animated value code 130, and a drawing function 140.
All code begins with a start tag and ends with an end tag. The end tag may be replaced with an end slash.
Preferably, the plug-in 100 includes a type code 110, a texture code 120, an animated value code 130, and a drawing function 140 in order as shown in FIG. 4.
That is, the plug-in 100 may be in the form of a file having codes as shown in FIG. 4. Preferably, these codes may be in the form of a file that is encrypted and stored without being compiled in a binary form.
The mobile 1 decodes the plug-in 100, but dynamically interprets the codes included in the plug-in 100 so that the effect defined by the plug-in 100 is arranged in the project or the timeline of the project. To the clip.
The type code 110 defines the range to which the plug-in 110 applies.
The type code 110 may have a value corresponding to any one of a theme, a transition effect, and a clip effect.
5 is a diagram conceptually illustrating the application of a plug-in between a project, a clip or two clips.
When the value of the type code 110 is a theme, the remaining texture code 120, the animated value code 130, and the drawing function 140 included in the plug-in 110 are applied to the entire project.
5A illustrates a case where an effect is applied to the entire project.
The theme may include two or more texture codes 120, animated value codes 130, and drawing functions 140.
Meanwhile, when the value of the type code 110 is a transition effect, the codes of the plug-in 110 are applied to a transition between two adjacent ones selected by the user among a plurality of clips arranged in the timeline of the project.
5B illustrates a case where an effect is applied between two adjacent clips.
If the value of the type code 110 is a clip effect, it is applied to any one or more selected by the user among a plurality of clips arranged in the timeline of the project.
5C illustrates a case where an effect is applied between two adjacent clips.
This typecode 110 is preferably located at the front of the plug-in 100.
When plug-in 100 is a clip effect or transition effect It may consist of a root element such as <Effect />.
On the other hand, when the plug-in 100 is a theme, the type code 110 is It has a root element, such as <Theme />, under which a number of Can have an <Effect /> element.
Meanwhile, the texture code 120 defines a target to which the effect is to be rendered.
This texture code includes a texture start tag 121 as shown in FIG. 4; Texture ID 122; Attribute directive 123; Texture attribute value 124; And texture end tag 125 in sequence.
As shown in FIG. 4,
It can be seen that the texture code 120 is displayed, such as <Texture id = "video_out" video = "1"/>.
At this time, the texture start tag 121 <texutre
The texture ID 122 is id = "video_out",
The attribute directive 123 is video, and the texture attribute value 124 is "1".
The texture end tag 125 corresponds to />. The texture end tag </ texture> is the principle, but it can be replaced with an ending slash as above.
The texture start tag 121 corresponds to a tag indicating that the texture code starts.
The texture ID 122 corresponds to a name of an object to be called by the drawing function 140 and may be arbitrarily determined.
The attribute directive 123 has one of video, src, and text.
video means the type of texture ID defined just before is video.
As such, when the attribute directive 123 is a video, the texture ID 122 may be used as a variable indicating a clip.
For example, In the example of <Texture id = "video_out" video = "1"/>,
As the user executes the video editing software of the mobile 1 to select any clip on the timeline, a value or pointer pointing to the clip may be assigned to video_out.
The type or meaning of the value that the texture attribute value 124 may have depends on the texture attribute directive 123.
For example, in the case of a transition effect, if the attribute directive 123 is video, the attribute value "1" is an outgoing clip to which the transition effect is applied, and the attribute value "2" is a clip after the transition effect is applied. (Incoming Clip).
As shown in FIG. 4,
<Texture id = "video_out" video = "1"/>
Two texture codes 120 are shown in sequence, such as <Texture id = "video_in" video = "2"/>.
Both texture ID 122 of "video_out" and "video_in" have the attribute directive 123 as video, and have texture values of "1" and "2", respectively.
That is, if the plug-in 100 including the texture code 120 according to the example of FIG. 4 defines a transition effect, "video_out" and "video_in" are respectively adjacent to the preceding clip to which the transition effect is applied. Instruct each clip.
On the other hand, when the attribute directive 123 is src, it means that the type of the texture ID 122 defined immediately before is an image.
for example, <Texture id = "snowflake" src = "snowflake.png"/>
In texture code 120, such as
The texture attribute directive 123 is src,
The texture attribute value 124 is "snowflake.png". That is, the name of the file can be directly input as an attribute value.
That is, when the texture attribute directive 123 indicates an image, a name and / or a path of an image file may be assigned to the texture ID 122 as its value.
On the other hand, when the attribute directive 123 is text, it means that the type of the texture ID 122 defined immediately before is text.
for example,
<Texture id = "title_text"
text = "% 1"
typeface = "asset: knewave.ttf"
textsize = "80"
fillcolor = "# FFFFFF"
fill />
In texture code 120, such as texture ID 122 is " title_text "
The texture attribute directive 123 is text, and the texture attribute value 124 is "% 1".
Attribute directives such as typeface, textsize, fillcolor, etc. that are displayed after the texture attribute value 124 are used to define the font, font size, color, etc. of the title type "title_text", and may be used or omitted as necessary. It may be.
That is, when the texture attribute directive 123 indicates text, a pointer variable indicating the text itself or the text dynamically input by the user with respect to the texture ID 122 may be allocated as the value.
On the other hand, according to the structure of the texture code 120 as described above, the type of the variable is defined first, and then does not assign a value to the variable.
That is, by defining the texture ID 122 first, and then describing the texture attribute indicator 123, the type of the texture ID 122 is defined later. Then, the texture attribute value 124 is described in succession. This makes the code very short and improves readability.
On the other hand, the animated value code 130 defines a value that changes with the change of time at the time of rendering the effect.
The animated value code 130 has an animated value start tag 131 and an animated value end tag 135, between which an animated value ID 132, a keyframe value 133, and a timing function tag. Has 134.
4,
<AnimatedValue id = "fade_in">
<KeyFrame value = "0"/>
<KeyFrame value = "1"/>

* </ AnimatedValue>
An animated value code 130 is shown.
At this time, the animated value start tag 131 is "<AnimatedValue",
The animated value ID 132 is "fade_in".
Then, after the animated value ID 132, two key frame tags " It can be seen that each of <KeyFrame "is defined as value =" 0 "and value =" 1 ".
That is, a keyframe value 133 having a value of "0" and a keyframe value 133 having a value of "1" are assigned to "fade_in".
And animated value end tag 135 "</AnimatedValue>".
The animated value start tag 131 indicates the start of the animated value code 130.
Immediately thereafter, you define an animated value ID (132) with id = "fade_in">,
Two key frame values 133 are assigned to the corresponding animated value IDs 132.
The key frame value 133 may be one or more.
The manner in which the key frame value 133 is called by the drawing function 140 and the configuration of adjusting the change rate of the frame value 133 value by the timing function 134 correspond to the characteristic configurations of the present invention. The drawing function 140 will be described and then described again.
The drawing function 140 defines the type and method of the effect.
The drawing function 140 corresponds to a function for setting various effects that may be applied to a clip, two adjacent clips, or the entire project in the video editing software, and various functions for setting the effect may be used.
For example, various functions, such as drawing a figure on the screen, defining a transition effect between clips, or processing an effect in which a title is displayed, may be defined through the drawing function 140.
The drawing function 140 corresponds to various screen processing functions according to the known art.
Multiple drawing functions 140 may be used, and each function may have a different name and parameters.
In this case, an important point is in the manner in which the drawing function 140 calls the texture ID 122 and the animated value ID 132 to process them.
As shown in FIG. 4, it can be seen that the following two drawing functions 140 are shown.
at first,
<rect bounds = "-1 1 1 -1" texture = "@ video_out"/>
to be.
"<rect"is a drawing function that draws a rectangle on the screen.
At this time, the first parameter has two coordinate values (-1,1) and (1, -1), and the second parameter has a value of "@video_out".
"video_out" is a texture ID 122 that indicates an outgoing clip as described above, and is called with @.
That is, the drawing function 140 may receive a pointer of the texture ID 122 as a parameter of the function.
The animated value ID 132 can also be pointed with @ in the same way.
That is, the drawing function 140 corresponds to a code for drawing a rectangle passing (-1,1) and (1, -1) to the clip in front of two adjacent clips to which the transition effect is applied.
On the other hand, as shown in Figure 4,
<style alpha = "@ fade">
<rect bounds = "-1 1 1 -1" texture = "@ video_in"/>
</ style>
A drawing function 140 is shown.
"<style alpha "is a function that sets the alpha value.
And it has "@fade_in" as a parameter.
"fade_in" corresponds to the animated value ID 132 mentioned above, and is similarly called with @.
And, <style alpha = "@ fade_in"> between </ style>
<rect bounds = "-1 1 1 -1" texture = "@ video_in"/> You are calling the <rect "function again.
second The <rect function draws a rectangle passing (-1, 1) and (1, -1) on the screen to the beginning of the incoming clip video_in.
It is important to note that "fade_in" is an animated value.
Looking back at the animated value code 130 of FIG.
<AnimatedValue id = "fade_in">
<KeyFrame value = "0"/>
<KeyFrame value = "1"/>
</ AnimatedValue>
Same as
This means that the start value of the animated value ID 132 "fade_in" is "0" and the end value is "1".
Then, the drawing function 140 calling the animated value ID 132 "fade_in" may draw an effect such as drawing a rectangle for a predetermined time (in the example, from the end point of the outgoing clip to the start point of the incoming clip). In processing, the value of the animated value ID 132 "fade_in" starts at "0" at the start of the effect and gradually increases to the value of "fade_in" of the animated value ID 132 at the end of the effect. Is to process the effect while changing to.
Drawing function 140 shown in FIG.
From the end of the outgoing clip to the start of the incoming clip, draw a rectangle with an RGB color value of (1, 0, 0) that fills the screen, gradually changing the alpha value from 0 to 1. Processes the effect that fades in.
That is, the code illustrated in FIG. 4 actually corresponds to a loop represented by the following pseudo-code.
{initial value of t = end of outgoing clip;
initial value of fade_in = 0;
while t = | start of incoming clip
{draw rectangle using alpha value = fade_in;
t = t + 1;
fade_in = fade_in + increment;}
end;}
In this case, since the time required for fade_in to be 0 to 1 and the time required from the end point of the outgoing clip to the start point of the incoming clip must be matched, more complicated coding is required to actually implement this.
However, simply defining the attributes and values of the texture ID 122 and the animated value ID 132 in a form suitable for the type and type of the effect can omit coding of such a complex loop and simply express them.
In detail about the animated value code 130,
The number of keyframe values 133 assigned to the animated value ID 132 depends on the drawing function 140 that calls them, or whether the plug-in 100 is a clip effect, transition effect, or theme. The form may vary.
In the example of FIG. 4, two key frame values 133 are assigned, the former being used as a start value and the latter being used as an end value. However, depending on the drawing function 140, one keyframe value 133 may be allocated.
In some cases, two or more values may be simultaneously assigned to one keyframe value 133.
<AnimatedValue id = "box_color">
<KeyFrame value = "1.0 0.0 0.0"/>
<KeyFrame value = "0.5 1.0 1.0"/>
</ AnimatedValue>
Assuming an animated value code 130 such as
"box_color" is the starting value of three values: 1.0, 0.0, 0.0,
The end value may have three values, 0.5, 1.0, and 1.0.
That is, in this case, "box_color" becomes a variable of the one-dimensional matrix structure having three items.
On the other hand, to improve readability,
.r = [0]
.g = [1]
.b = [2]
Predefined as
<Rect bounds = "-0.5 -0.5 0.5 0.5" color = "@ box_color.g @ box_color.r @ box_color.b"/>
It may be called through the drawing function 140 as shown.
Meanwhile, the animated value code 130 may further include a timing function tag 134.
For example, when processing a fade in effect through the drawing function 140 as shown in FIG. 4, if the value of the animated value ID "fade_in" varies linearly from 0 to 1 (Linear Interpolation), The problem is that the beginning and the end are not smooth and feel awkward.
The timing function tag 134 adjusts the rate of change of the value assigned to the animated value ID 132 by using a cubic bezier function to solve the problem of the linear interpolation.
The timing function tag 134 is located after the animated value start tag 131 and before the animated value end tag 135.
In other words, the important point is that the timing function tag 134 is not defined through the drawing function 140 but is part of an attribute of the animated value ID 132.
This structure also allows the user to simply set the rate of change of the keyframe value 133 assigned to the animated value ID 132 without coding a separate complex loop.
The timing function tag 134 may be, for example <TimingFunction /> or Can be expressed through tags such as <Const />.
On the other hand, this timing function tag 134 preferably has a parameter consisting of four consecutive numbers.
In this case, the four consecutive parameters represent the coordinates of the control point of the Bezier function for adjusting the change rate of the keyframe value 133 assigned to the animated value ID 132.
The first parameter, the first parameter, is the x coordinate of the first control point, the second, the second parameter, the y coordinate of the first control point, the third, the third parameter, the x coordinate of the second control point, and the last, fourth parameter, the second. Points to the y coordinate of the control point, respectively.
For example, if the parameter is 0.25 0.10 0.25 1.00, a Bezier curve with two control points (0.25, 0.10) and (0.25, 1.00) can be drawn.
At this time, the start point of the Bezier curve is (0,0) and the end point is (1,1).
FIG. 6 is a view for explaining an example of a cube Bezier function for implementing a timing function. FIG. 6 (a) shows a Bezier curve in the case of 0.25 0.10 0.25 1.00.
The x-axis is time-varying, and the y-axis is the keyframe value 133 value assigned to the animated value ID 132.
In other words, the value of the key frame value 133 gradually increases at the start and gradually increases at the end.
The beginning and end of the animation will slowly start and end.
6B shows a Bezier curve when four parameters are 0.42 0.00 1.00 1.00.
In this case, the animation starts slowly, but ends linearly.
FIG. 6C shows a Bezier curve when four parameters are 0.00 0.00 0.58 1.00.
In this case, the animation starts linearly, but slowly ends.
FIG. 6D shows a Bezier curve when four parameters are 0.00 0.00 1.00 1.00.
In this case, the animation starts linearly and ends linearly.
The keyframe value 133 increases linearly and uniformly.
Meanwhile, the coordinate system conversion code 150 may be further included before calling the drawing function 140.
The coordinate system conversion code 150 has a projection code 151, an aspect ratio extension code 152, and an origin movement code 153.
The coordinate system conversion code 150 is, for example, as follows.
<projection type = "perspective" aspect = "1.777777" fov = "45" near = "0.01" far = "60000">
<translate offset = "-640 -360 -870">
<-drawing function 140->
</ translate>
</ projection>
The projection code 151 projects the coordinate system into a three-dimensional coordinate system having a z axis.
At this time, the angle from the viewpoint (Veiwpoint) can be set.
The aspect ratio extension code 152 extends the coordinate system to fit the aspect ratio defined by the number of pixels in the aspect of the display on which the video editing tool is displayed.
remind <projection type = "perspective" aspect = "1.777777" fov = "45" near = "0.01" far = "60000"> In code (151, 152),
Project in a 3D coordinate system like <projection type = "perspective"
By setting fov = "45", the angle at the view point is 45 degrees.

* Then, by setting aspect = "1.777777", the one-to-one ratio coordinate system is extended to the mobile aspect ratio 1.77777. As a result, each pixel may have a square shape, and shape distortion due to an aspect ratio may be removed when rendering the effect by the drawing function 140.
<translate offset = "-640 -360 -870"> The code 153 moves the origin of the screen center to one end of the 720p coordinate system. And, moving by 870 in the z-axis is to prevent the object of the z = 0 plane is not displayed in the field of view.
On the other hand, after the projection code 151, the aspect ratio extension code 152 and the origin movement code 153, Call the drawing function 140 in the <-drawing function 140-> section.
after, </ translate> tag to end the homing code (153), The projection code 151 and the aspect ratio extension code 152 are terminated through the </ projection> tag.
The coordinate system conversion code 150 is not necessarily included in the plug-in 100, such as the type code 110, the texture code 120, the animated value code 130, and the drawing function 140.
By including the drawing function 140 before the call, the distortion of the object due to the screen aspect ratio during rendering of various drawing functions (eg, screen rotation) may be prevented.
Therefore, even when the 3D effect is not used, it is preferable to include the coordinate system transformation code 150 before the drawing function 140 is called.
Hereinafter, a process of setting an effect on the video editing software by the mobile 1 using the plug-in 100 having the above structure will be described with reference to FIG. 7.
7 is a flowchart for explaining an effect setting method using a data structure for effect setting according to the present invention.
The mobile 1 user downloads and installs a plurality of plug-ins 100 via the theme server 2 or the "market" for the Android OS or the "app store" for IOS and the like on the path of the video editing software.
Alternatively, the plug-in 100 may be directly installed according to the data structure of the plug-in 100 proposed by the present invention.
On the other hand, the mobile 1 user executes video editing software and then opens an existing project or starts a new project to arrange a plurality of clips in the timeline.
Accordingly, the mobile 1 processes the clip selected by the user to be arranged in the timeline (step a).
On the other hand, as the user selects any one of the plurality of plug-ins 100 previously installed in the mobile 1 on the GUI as shown in FIG.
Read the type code 110 from the selected plug-in 100, and if the plug-in is applied to the entire project according to the type code 110 (if the type code 110 points to a theme), Determine if it is applied (if type code 110 points to a clip effect) or if it is applied to transitions between clips (if type code 110 points to a transition effect) (step b).
Thereafter, the mobile 1 reads the texture code 120 from the plug-in 100.
When the mobile 1 first finds the texture start tag 121, the mobile 1 first recognizes the texture ID 122 immediately after the texture start tag 121.
Assigning the texture attribute value 124 to the type corresponding to the texture attribute directive 123 immediately after the texture ID 122 (step c);
If the texture attribute value 124 is described as a constant value in the texture code 120, a variable of a type corresponding to the texture attribute directive 123 is dynamically generated, and the variable corresponding to the texture ID 122 may be dynamically generated. The constant value can be assigned.
Or, if it is described as a variable value, according to the user's selection in the execution process of the video editing software, the value corresponding to the user's selection in the texture ID 122-the value is of course by the texture attribute directive 123 It must match the type that is defined. -Allocate
Subsequently, when the mobile 1 discovers the animated value code 130 from the plug-in 100, for the animated value ID 132 immediately after the animated value start tag 131,
Attribute values by the key frame value 133 and the timing function tag 134 are assigned.
In this case, when there are two key frame values 133, the first of them is assigned as a start value and a second as an end value when the animated value ID 132 is called by the drawing function 140 (step d). ).
On the other hand, if the mobile 1 finds the drawing function 140 that receives the pointer of the texture ID 122 or the animated value ID 132 as a parameter, it renders the effect by the drawing function 140 (step e). ).
At this time, according to the type code 110, it is determined whether to apply the effect to the entire project, to which clip selected by the user, or to a transition between two adjacent clips selected by the user, and accordingly Render effects in the entire project, in one clip, or in transitions between clips.
Meanwhile, when the mobile 1 processes the transition effect in detail, in the step c, the texture attribute values 124 of the video type are respectively assigned to the two texture IDs 122, and in the e step, the two texture IDs are assigned. When rendering the drawing function 140 that receives a pointer to the texture ID 122 as a parameter,
The mobile 1 uses the clip having the texture attribute value 124 of "1" as an outgoing clip and the clip having the texture attribute value 124 of "2" as an incoming clip to the drawing function 140. By rendering an effect, you handle the transition between two adjacent clips.
Meanwhile, when the mobile 1 processes the animation using the animated value code 130 in detail, two key frame values 133 are assigned to one animated value ID 132 in step d. When rendering the drawing function 140 receives the pointer of the animated value ID 132 as a parameter in step e,
The mobile 1 sets the first key frame value 133 to a value assigned to the animated value ID 132 at the start of the rendering function 140,
The second key frame value 133 is a value assigned to the animated value ID 132 at the end of rendering of the drawing function 140, and thus the key frame value 133 is set at a starting value. Render the animation effect by processing it to change gradually to the end value.
On the other hand, if the timing function tag 134 is found after the animated value start tag 131 and before the animated value end tag 135, the mobile 1 renders the drawing function 140 in step e. According to the parameter of the timing function tag 134, the speed at which the value assigned to the animated value ID 132 changes is adjusted.
The timing function tag 134 preferably has four consecutive numerical parameters, wherein the mobile 1 has a starting point of (0, 0) and an ending point of (1, 1). The two control points are defined to draw a cubic Bezier function, thereby controlling the rate at which the value assigned to the animated value ID 132 changes.
The first parameter of the timing function tag 134 is the x coordinate of the first control point, the second parameter is the y coordinate of the first control point, the third parameter is the x coordinate of the second control point, and the fourth parameter is y of the second control point. You can define cubic Bezier functions using coordinates.
The rate of change of the value assigned to the animated value ID 132 may be set by using the x-axis of the cubic Bezier function defined above as the time and the y-axis as the animated value.
On the other hand, the effect setting method using the data structure for setting the effect of the video editing tool executed on the mobile 1 as described above is implemented in the form of a computer-in particular, a software that is a set of instructions that can be read by the mobile (1) And recorded on the recording medium.
In this case, the recording medium may include any type of medium readable by a computer, such as DVD-ROM, CD-ROM, hard disk, USB memory, and flash memory.
On the other hand, the expression to be recorded on the recording medium includes not only the case of being recorded on the recording medium of this type but also the case of being provided through a communication line in the form of an intangible carrier wave (Carrier Wave).
On the other hand, although the expression "mobile" is used in the above, if the user has a relatively small screen and has a means for editing a video by executing a video editing software while being carried by a user, the definition of "mobile" referred to in the present invention is defined. It should be understood as satisfying.
That is, in addition to a smart phone or a tablet computer equipped with IOS or Android OS, an equivalent thereof may be included in the mobile.
While the present invention has been described with reference to the accompanying drawings and embodiments thereof, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims. .

본 발명은 동영상 편집도구 기술분야에 적용될 수 있다.
특히, 모바일용 동영상 편집도구 기술분야에 적용될 수 있다.
The present invention can be applied to the video editing tool technology.
In particular, it can be applied to the field of mobile video editing tool technology.

1 : 모바일
2 : 테마 서버
3 : 서드파티 개발사
100 : 플러그 인
110 : 유형코드
120 : 텍스쳐 코드
121 : 텍스쳐 개시 태그
122 : 텍스쳐 아이디
123 : 텍스쳐 속성 지시어
124 : 텍스쳐 속성값
125 : 텍스쳐 종료 태그
130 : 애니메이티드 밸류 코드
131 : 애니메이티드 밸류 개시 태그
132 : 애니메이티드 밸류 아이디
133 : 키프레임 밸류
134 : 타이밍 펑션 태그
135 : 애니메이티드 밸류 종료 태그
140 : 드로잉 함수
150 : 좌표계 변환 코드
151 : 프로젝션 코드
152 : 종횡비 확장 코드
153 : 원점 이동 코드
1: Mobile
2: theme server
3: Third Party Developer
100: plug-in
110: type code
120: texture code
121: texture start tag
122: Texture ID
123: texture attribute directive
124 texture value
125: texture end tag
130: animated value code
131: animated value start tag
132: animated value ID
133: keyframe value
134: Timing Function Tag
135: animated value end tag
140: drawing function
150: coordinate system conversion code
151: projection code
152: aspect ratio extension code
153: homing code

Claims (15)

동영상 편집 도구의 이펙트 설정을 위한 데이터 구조에 있어서,
이펙트가 렌더링 될 대상을 정의하는 텍스쳐 코드;
이펙트의 렌더링 시 시간의 변화에 따라 변화하는 값을 정의하는 애니메이티드 밸류 코드;
이펙트의 종류와 방법을 정의하는 드로잉 함수를 포함하되,
상기 텍스쳐 코드는 텍스쳐 개시 태그; 텍스쳐 아이디; 속성 지시어; 값; 및 텍스쳐 종료 태그;를 순차 포함하며,
상기 애니메이티드 밸류 태그는 애니메이티드 밸류 개시 태그; 애니메이티드 밸류 아이디; 하나 또는 그 이상의 키프레임 밸류 값; 및 애니메이티드 밸류 종료 태그;를 순차 포함하고,
상기 드로잉 함수는 함수의 파라메타로 상기 텍스쳐 아이디 또는 애니메이티드 밸류 아이디의 포인터를 받는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체.
In the data structure for setting the effects of the video editing tool,
Texture code defining what the effect is rendered to;
An animated value code defining a value that changes with time as the effect renders;
Include drawing functions that define the type and method of the effect,
The texture code includes a texture start tag; Texture ID; Attribute directive; value; And a texture end tag;
The animated value tag includes an animated value start tag; Animated value ID; One or more keyframe value values; And an animated value end tag;
The drawing function is a computer-readable recording medium having effect setting data of a video editing tool that receives a pointer of the texture ID or an animated value ID as a parameter of a function.
제 1 항에 있어서,
상기 텍스쳐 코드, 애니메이티드 밸류 코드 및 드로잉 함수가 적용되는 범위를 정의하는 유형코드;를 더 포함하되,
상기 유형코드는 프로젝트 전체에 적용; 프로젝트의 타임 라인에 배열된 다수의 클립 가운데 어느 하나 또는 그 이상에 적용; 또는 프로젝트의 타임 라인에 배열된 다수의 클립 가운데 인접한 두 개 사이의 트랜지션에 적용; 가운데 어느 하나에 해당하는 값을 갖는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체.
The method of claim 1,
And a type code defining a range to which the texture code, animated value code, and drawing function are applied.
The type code is applied to the entire project; Apply to any one or more of a number of clips arranged in the timeline of the project; Or apply to transitions between two adjacent ones of a plurality of clips arranged in a timeline of a project; A computer-readable recording medium having effect setting data of a video editing tool having a value corresponding to any one of them.
제 2 항에 있어서,
상기 유형코드, 상기 텍스쳐 코드, 상기 애니메이티드 밸류 코드 및 상기 드로잉 함수는, 유형코드, 텍스쳐 코드, 애니메이티드 밸류 코드 및 드로잉 함수의 순으로 포함되는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체.
3. The method of claim 2,
The type code, the texture code, the animated value code and the drawing function are computer readable with effect setting data of the video editing tool included in the order of the type code, the texture code, the animated value code and the drawing function. Record carrier.
제 1 항에 있어서,
상기 텍스쳐 코드의 속성 지시어는 비디오, 이미지, 텍스트 가운데 어느 하나이며,
속성 지시어가 비디오를 지시하는 경우, 사용자가 동적으로 선택한 클립을 가리키는 포인터 변수가 상기 텍스쳐 아이디의 값으로 할당되며,
속성 지시어가 이미지를 지시하는 경우, 이미지 파일의 명칭 또는 사용자가 동적으로 선택한 이미지를 가리키는 포인터 변수가 상기 텍스쳐 아이디의 값으로 할당되며,
속성 지시어가 텍스트를 지시하는 경우, 텍스트 또는 사용자가 동적으로 입력한 텍스트를 가리키는 포인터 변수가 상기 텍스쳐 아이디의 값으로 할당되는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체.
The method of claim 1,
The attribute directive of the texture code is any one of video, image, text,
If the attribute directive points to video, a pointer variable pointing to the clip that the user has dynamically selected is assigned as the value of the texture ID,
If the attribute directive points to an image, then the name of the image file or a pointer variable pointing to the image dynamically selected by the user is assigned as the value of the texture ID,
A computer-readable recording medium having effect setting data of a video editing tool, when a property directive indicates text, a pointer variable pointing to text or text dynamically input by a user is assigned as the value of the texture ID.
제 1 항에 있어서,
두 개의 텍스쳐 아이디가 포함되되, 각각의 속성 지시어가 비디오이며, 상기 드로잉 함수가 상기 두 개의 텍스쳐 아이디의 포인터를 파라메타로 받는 경우,
상기 드로잉 함수는 제 1 값을 가진 텍스쳐 아이디에 의하여 지시되는 동영상 편집도구의 타임라인 상 클립의 종료 위치로부터 제 2 값을 가진 텍스쳐 아이디에 의하여 클립의 시작위치 사이에 적용되는 트랜지션 이펙트를 설정하는 코드인 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체.
The method of claim 1,
If two texture IDs are included, each attribute directive is a video, and the drawing function receives a pointer to the two texture IDs as parameters.
The drawing function is a code for setting a transition effect applied between the start position of the clip by the texture ID having the second value and the end position of the clip on the timeline of the video editing tool indicated by the texture ID having the first value. A computer-readable recording medium having the effect setting data of the video editing tool.
제 1 항에 있어서,
두 개의 키 프레임 밸류 값이 포함되며, 상기 드로잉 함수가 해당 애니메이티드 밸류 아이디의 포인터를 파라메타로 받는 경우,
상기 드로잉 함수는 상기 애니메이티드 밸류 아이디가 시간의 흐름에 따라 두 개의 키 프레임 밸류 값 가운데 앞의 값을 가진 상태에서, 뒤의 값을 가진 상태로 변화하도록 이펙트를 설정하는 코드인 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체.
The method of claim 1,
If two key frame value values are included and the drawing function receives a pointer to the animated value ID as a parameter,
The drawing function is a code for setting an effect such that the animated value ID changes from a state having a value in front of two key frame value values to a state having a later value as time passes. A computer readable recording medium having configuration data.
제 1 항에 있어서,
상기 애니메이티드 밸류 개시 태그 이후, 상기 애니메이티드 밸류 종료 태그 이전에 상기 애니메이티드 밸류 아이디에 할당된 값의 변화 속도를 조절하기 위한 베지어 함수를 정의하는 타이밍 펑션 태그를 더 포함하는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체.
The method of claim 1,
And a timing function tag defining a Bezier function for controlling a change rate of a value assigned to the animated value ID after the animated value start tag and before the animated value end tag. A computer readable recording medium having configuration data.
제 7 항에 있어서,
상기 타이밍 펑션 태그는 애니메이티드 밸류의 변화 속도 조절을 위한 베지어 함수의 콘트롤 포인트의 좌표에 해당하는 4 개의 파라메타를 가지되,
제 1 파라메타는 첫번째 콘트롤 포인트의 x좌표,
제 2 파라메타는 첫번째 콘트롤 포인트의 y좌표,
제 3 파라메타는 두번째 콘트롤 포인트의 x좌표,
제 4 파라메타를 두번째 콘트롤 포인트의 y좌표를 각각 가리키는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체.
The method of claim 7, wherein
The timing function tag has four parameters corresponding to the coordinates of the control point of the Bezier function for adjusting the rate of change of the animated value.
The first parameter is the x coordinate of the first control point,
The second parameter is the y coordinate of the first control point,
The third parameter is the x coordinate of the second control point,
A computer-readable recording medium having effect setting data of a motion picture editing tool, each indicating a fourth parameter of the y coordinate of the second control point.
제 1 항에 있어서,
상기 드로잉 함수 이전에 좌표계 변환 코드를 더 포함하되,
상기 좌표계 변환 코드는 좌표계를 z축을 갖는 3차원 좌표계로 변환하는 프로젝션 코드;
동영상 편집 도구가 표시되는 디스플레이의 가로세로 픽셀수에 의해 정의되는 종횡비에 맞추어 좌표계를 확장하는 종횡비 확장 코드;
원점을 변환된 3차원 좌표계의 소정 위치로 이동시키는 원점 이동 코드;를 더 포함하는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체.
The method of claim 1,
Further comprising a coordinate system conversion code before the drawing function,
The coordinate system conversion code includes a projection code for converting the coordinate system into a three-dimensional coordinate system having a z-axis;
An aspect ratio extension code for extending a coordinate system to an aspect ratio defined by an aspect ratio pixel number of a display on which a video editing tool is displayed;
And a homing code for moving the origin to a predetermined position of the converted three-dimensional coordinate system. The computer-readable recording medium having the effect setting data of the video editing tool.
디스플레이 수단을 갖는 동영상 편집 장치에서 실행되는 방법에 있어서,
a) 사용자에 의하여 선택된 프로젝트에 다수의 클립을 타임라인에 배열하는 단계;
b) 사용자에 의하여 어느 하나의 플러그 인이 선택됨에 따라 선택된 플러그 인 파일에 포함된 스크립트를 독출하는 단계;
c) 상기 스크립트로부터 텍스쳐 개시 태그를 발견하면, 텍스쳐 개시 태그 직후의 텍스쳐 아이디에 대하여, 텍스쳐 아이디 직후의 속성 지시어에 해당하는 유형으로 값을 할당하는 단계;
d) 상기 스크립트로부터 애니메이티드 밸류 개시 태그를 발견하면, 해당 애니메이티드 밸류 종료 태그 이전에 포함된 키프레임 밸류 값을 애니메이티드 밸류 개시 태그 직후의 애니메이티드 밸류 아이디에 대하여 할당하되, 상기 키 프레임 밸류 값이 두 개인 경우 앞의 키 프레임 밸류 값을 시작 값으로, 나중의 키 프레임 밸류 값을 종료 값으로 할당하는 단계;
e) 상기 스크립트로부터 상기 텍스쳐 아이디 또는 애니메이티드 밸류 아이디의 포인터를 파라메타로 받는 드로잉 함수를 발견하면, 상기 드로잉 함수에 의한 이펙트를 렌더링하는 단계;를 포함하는 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법.
In a method executed in a video editing device having display means,
a) arranging a plurality of clips in a timeline in a project selected by the user;
b) reading a script included in the selected plug-in file as one plug-in is selected by the user;
c) if a texture start tag is found from the script, assigning a value to the texture ID immediately after the texture start tag to a type corresponding to an attribute directive immediately after the texture ID;
d) If an animated value start tag is found from the script, the keyframe value value included before the animated value end tag is assigned to the animated value ID immediately after the animated value start tag, but the key frame value value In both cases, assigning a previous key frame value as a start value and a later key frame value as an end value;
e) if it finds a drawing function that receives a pointer of the texture ID or animated value ID as a parameter from the script, rendering an effect by the drawing function; setting an effect using effect setting data of a video editing tool Way.
제 10 항에 있어서,
상기 b) 단계에서는,
사용자에 의하여 어느 하나의 플러그 인이 선택됨에 따라 선택된 플러그 인 파일에 포함된 스크립트를 독출하되, 상기 스크립트로부터 해당 플러그 인이 프로젝트 전체에 적용되는 것인지, 클립에 적용되는 것인지, 클립 사이의 트랜지션에 적용되는 것인지 파악하되,
상기 e) 단계에서는,
상기 드로잉 함수에 의한 이펙트를 렌더링 함에 있어, 상기 선택된 플러그 인이 프로젝트 전체에 적용되는 것인지, 클립에 적용되는 것인지, 클립 사이의 트랜지션에 적용되는 것인지에 따라, 프로젝트 전체, 어느 하나의 클립 또는 클립 사이의 트랜지션에 렌더링하는 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법.
11. The method of claim 10,
In step b),
As a plug-in is selected by a user, a script included in the selected plug-in file is read out, and the script is applied to the entire project, to a clip, or to a transition between clips. Determine if this applies,
In the step e)
In rendering the effect by the drawing function, depending on whether the selected plug-in is applied to the entire project, to a clip, or to a transition between clips, the entire project, any one clip, or between clips How to set the effect using the effect setting data of the video editing tool to render the transition.
제 10 항에 있어서,
상기 c) 단계에서, 두 개의 텍스쳐 아이디에 대하여 비디오 유형의 값이 각각 할당되면,
상기 e) 단계에서는, 상기 두 개의 텍스쳐 아이디의 포인터를 파라메타로 받는 드로잉 함수를 렌더링함에 있어,
제 1 값을 가진 텍스쳐 아이디에 의하여 지시되는 상기 타임라인 상 클립의 종료 위치로부터 제 2 값을 가진 텍스쳐 아이디에 의하여 지시되는 상기 타임라인 상 클립의 시작위치 사이에 상기 드로잉 함수에 의한 이펙트를 렌더링하는 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법.
11. The method of claim 10,
In step c), if a value of a video type is assigned to each of two texture IDs,
In the step e), in rendering a drawing function that receives the pointers of the two texture IDs as parameters,
Rendering an effect by the drawing function between the end position of the clip on the timeline indicated by the texture ID with the first value and the start position of the clip on the timeline indicated by the texture ID with the second value How to set the effect using the effect setting data of the movie editing tool.
제 10 항에 있어서,
상기 d) 단계에서, 상기 키 프레임 밸류 값이 두 개인 경우,
상기 e) 단계에서는, 상기 애니메이티드 밸류 아이디의 포인터를 파라메타로 받는 드로잉 함수를 렌더링함에 있어,
상기 드로잉 함수의 렌더링 시작 시점의 상기 애니메이티드 밸류의 값을 상기 시작 값으로 하고, 상기 드로잉 함수의 렌더링 종료 시점의 상기 애니메이티드 밸류의 값을 상기 종료 값으로 하되, 시간의 진행에 따라 상기 애니메이티드 밸류 값이 상기 시작 값에서 상기 종료 값으로 변화하도록 처리하는 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법.
11. The method of claim 10,
In step d), if the key frame value is two,
In the step e), in rendering a drawing function that receives a pointer of the animated value ID as a parameter,
The animated value at the start of rendering of the drawing function is set as the starting value, and the animated value at the end of rendering of the drawing function is set as the ending value. An effect setting method using the effect setting data of the video editing tool to process a value value is changed from the start value to the end value.
제 13 항에 있어서,
상기 d) 단계에서, 상기 스크립트로부터 애니메이티드 밸류 개시 태그 이후, 해당 애니메이티드 밸류 종료 태그 이전에 타이밍 펑션 태그를 발견하면,
상기 e) 단계에서는,
상기 드로잉 함수의 렌더링을 수행함에 있어, 상기 타이밍 펑션 태그에 의해 상기 애니메이티드 밸류의 값이 상기 시작 값에서 상기 종료 값으로 변화하는 속도를 조절하는 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법.
The method of claim 13,
In step d), if the timing function tag is found after the animated value start tag and before the animated value end tag from the script,
In the step e)
In the rendering of the drawing function, an effect setting method using the effect setting data of the video editing tool that adjusts the speed at which the value of the animated value changes from the start value to the end value by the timing function tag.
제 14 항에 있어서,
상기 e) 단계에서는 상기 타이밍 펑션 태그의 제 1 파라메타를 첫번째 콘트롤 포인트의 x좌표, 제 2 파라메타를 첫번째 콘트롤 포인트의 y좌표, 제 3 파라메타를 두번째 콘트롤 포인트의 x좌표, 제 4 파라메타를 두번째 콘트롤 포인트의 y좌표로 하여 정의되는 큐빅 베지어 함수에 의하여, 상기 큐빅 베지어 함수의 어느 한 축을 시간, 나머지 한 축을 상기 애니메이티드 밸류 값으로 함으로써 상기 애니메이티드 밸류의 변화 속도를 설정하는 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법.


15. The method of claim 14,
In step e), the first parameter of the timing function tag is the x coordinate of the first control point, the second parameter is the y coordinate of the first control point, the third parameter is the x coordinate of the second control point, and the fourth parameter is the second control point. The effect of the video editing tool, which sets the rate of change of the animated value by using a cubic Bezier function defined as the y coordinate of, by setting one axis of the cubic bezier function as the animated value and the other axis as the animated value. How to set the effect using the setting data.


KR1020130094882A 2013-08-09 2013-08-09 Method of setting up effect on mobile movie authoring tool using effect configuring data and computer-readable meduim carring effect configuring data KR101352737B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130094882A KR101352737B1 (en) 2013-08-09 2013-08-09 Method of setting up effect on mobile movie authoring tool using effect configuring data and computer-readable meduim carring effect configuring data
PCT/KR2014/007410 WO2015020495A1 (en) 2013-08-09 2014-08-08 Method for setting effect using effect setting data of video editing tool and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130094882A KR101352737B1 (en) 2013-08-09 2013-08-09 Method of setting up effect on mobile movie authoring tool using effect configuring data and computer-readable meduim carring effect configuring data

Publications (1)

Publication Number Publication Date
KR101352737B1 true KR101352737B1 (en) 2014-01-27

Family

ID=50145862

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130094882A KR101352737B1 (en) 2013-08-09 2013-08-09 Method of setting up effect on mobile movie authoring tool using effect configuring data and computer-readable meduim carring effect configuring data

Country Status (2)

Country Link
KR (1) KR101352737B1 (en)
WO (1) WO2015020495A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160115025A (en) * 2015-03-25 2016-10-06 네이버 주식회사 Apparatus, method, and computer program for generating catoon data
JP2022536233A (en) * 2019-06-11 2022-08-15 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド Video data encoding/decoding method, device, program and computer device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090058305A (en) * 2007-12-04 2009-06-09 삼성전자주식회사 Apparatus for photographing moving image and method thereof
JP2010191634A (en) 2009-02-17 2010-09-02 Nhn Corp Moving image creation program, moving image creation service provision system, and moving image reproduction program

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4760111B2 (en) * 2005-04-26 2011-08-31 株式会社セガ Data structure generation program for video object representation, data structure generation method for video object representation, video software development device, video processing program, video processing method, video processing device, data structure for video object representation, and recording medium
KR101184876B1 (en) * 2010-02-11 2012-09-20 삼성전자주식회사 Apparatus and method for creating character's dynamic effect related to image contents

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090058305A (en) * 2007-12-04 2009-06-09 삼성전자주식회사 Apparatus for photographing moving image and method thereof
JP2010191634A (en) 2009-02-17 2010-09-02 Nhn Corp Moving image creation program, moving image creation service provision system, and moving image reproduction program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
홍영권, ‘UCC 동영상 편집 소프트웨어의 개선방향에 관한 연구: 기능 및 사용자 인터페이스를 중심으로’, 연세대학교 학위논문(석사), 2007.08
홍영권, 'UCC 동영상 편집 소프트웨어의 개선방향에 관한 연구: 기능 및 사용자 인터페이스를 중심으로', 연세대학교 학위논문(석사), 2007.08 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160115025A (en) * 2015-03-25 2016-10-06 네이버 주식회사 Apparatus, method, and computer program for generating catoon data
KR102009980B1 (en) 2015-03-25 2019-10-21 네이버 주식회사 Apparatus, method, and computer program for generating catoon data
JP2022536233A (en) * 2019-06-11 2022-08-15 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド Video data encoding/decoding method, device, program and computer device
JP7165272B2 (en) 2019-06-11 2022-11-02 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド Video data encoding/decoding method, device, program and computer device

Also Published As

Publication number Publication date
WO2015020495A1 (en) 2015-02-12

Similar Documents

Publication Publication Date Title
US20130097552A1 (en) Constructing an animation timeline via direct manipulation
US7752548B2 (en) Features such as titles, transitions, and/or effects which vary according to positions
RU2506629C2 (en) Creating presentation on infinite canvas and navigation thereon
KR102294134B1 (en) Authoring tools for synthesizing hybrid slide-canvas presentations
CN107728905B (en) Bullet screen display method and device and storage medium
US20080148153A1 (en) System, method and medium organizing templates for generating moving images
KR100960504B1 (en) System and method for making emotion based digital storyboard
US9396575B2 (en) Animation via pin that defines multiple key frames
CN111553967A (en) Unity-based animation resource file production method, module and storage medium
KR101352203B1 (en) Method of distributing plug-in for configuring effect on mobile movie authoring tool
KR101352737B1 (en) Method of setting up effect on mobile movie authoring tool using effect configuring data and computer-readable meduim carring effect configuring data
CN102572219A (en) Mobile terminal and image processing method thereof
KR101720635B1 (en) Method for web-based producing 3d video contents and server implementing the same
US20160202882A1 (en) Method and apparatus for animating digital pictures
CN113711575A (en) System and method for instantly assembling video clips based on presentation
CN102356407A (en) Animation editing apparatus and animation reproduction apparatus
US11435886B1 (en) Graphical object manipulation via paths and easing
Van der Spuy Learn Pixi. js
KR20200110292A (en) Device
Jackson Digital image compositing fundamentals
JP2010191634A (en) Moving image creation program, moving image creation service provision system, and moving image reproduction program
CN111242688A (en) Animation resource manufacturing method and device, mobile terminal and storage medium
CN113935894B (en) Ink and wash style scene rendering method and equipment and storage medium
KR20120108550A (en) Method and apparatus for providing richmedia contents authoring
KR20230167494A (en) Promotional Video Content Production Method and 3D Video Content Production System

Legal Events

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

Payment date: 20170109

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181224

Year of fee payment: 6