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 PDFInfo
- 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
- effect
- code
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
- G11B27/031—Electronic editing of digitised analogue information signals, e.g. audio or video signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation 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 setting effects of a video editing tool is disclosed. The data structure for effect setting of the video editing tool according to the present invention includes a type code defining a range to which a texture code, an animated value code, and a drawing function are applied; Texture code defining what the effect is rendered to; An animated value code defining a value that changes with time as the effect renders; 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; wherein the animated value tag comprises: 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 of the texture ID or an animated value ID as a parameter of a function. The animated value code may further include a parameter corresponding to the coordinates of two control points and a timing function tag for adjusting a speed at which a keyframe value changes from a start value to an end value by a cubic Bezier function. .
Description
본 발명은 모바일용 동영상 편집 소프트웨어 기술 분야에 속한다.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
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
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)이 이와 같은 구조를 갖는 이펙트 템플릿의 구조를 이용하여 이펙트를 설정하는 방법을 제시한다.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
상기와 같은 목적을 달성하기 위하여, 본 발명에 의한 동영상 편집 도구의 이펙트 설정을 위한 데이터 구조는,
텍스쳐 코드, 애니메이티드 밸류 코드 및 드로잉 함수가 적용되는 범위를 정의하는 유형코드;
이펙트가 렌더링 될 대상을 정의하는 텍스쳐 코드;
*이펙트의 렌더링 시 시간의 변화에 따라 변화하는 값을 정의하는 애니메이티드 밸류 코드;
이펙트의 종류와 방법을 정의하는 드로잉 함수를 포함한다.
이때, 텍스쳐 코드는 텍스쳐 개시 태그; 텍스쳐 아이디; 속성 지시어; 값; 및 텍스쳐 종료 태그;를 순차 포함한다.
한편, 애니메이티드 밸류 태그는 애니메이티드 밸류 개시 태그; 애니메이티드 밸류 아이디; 하나 또는 그 이상의 키프레임 밸류 값; 및 애니메이티드 밸류 종료 태그;를 순차 포함하며,
드로잉 함수는 함수의 파라메타로 상기 텍스쳐 아이디 또는 애니메이티드 밸류 아이디의 포인터를 받는다.
한편, 텍스쳐 코드의 속성 지시어는 비디오, 이미지, 텍스트 가운데 어느 하나이며,
속성 지시어가 비디오를 지시하는 경우, 상기 텍스쳐 아이디에 대하여 사용자가 동적으로 선택한 클립을 가리키는 포인터 변수가 그 값으로 할당된다.
그리고, 속성 지시어가 이미지를 지시하는 경우, 상기 텍스쳐 아이디에 대하여 이미지 파일의 명칭 또는 사용자가 동적으로 선택한 이미지를 가리키는 포인터 변수가 그 값으로 할당되며,
속성 지시어가 텍스트를 지시하는 경우, 상기 텍스쳐 아이디에 대하여 텍스트 또는 사용자가 동적으로 입력한 텍스트를 가리키는 포인터 변수가 그 값으로 할당된다.
한편, 두 개의 텍스쳐 아이디가 포함되되, 각각의 속성 지시어가 비디오이며, 상기 드로잉 함수가 상기 두 개의 텍스쳐 아이디의 포인터를 받는 경우,
드로잉 함수는 제 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
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
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
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
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
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
The
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
5A illustrates a case where an effect is applied to the entire project.
The theme may include two or
Meanwhile, when the value of the
5B illustrates a case where an effect is applied between two adjacent clips.
If the value of the
5C illustrates a case where an effect is applied between two adjacent clips.
This
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
Meanwhile, the
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
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
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
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
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
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
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
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
The
4,
<AnimatedValue id = "fade_in">
<KeyFrame value = "0"/>
<KeyFrame value = "1"/>
* </ AnimatedValue>
An
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
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
The
The
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
The
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
As shown in FIG. 4, it can be seen that the following two
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
The animated value ID 132 can also be pointed with @ in the same way.
That is, the
On the other hand, as shown in Figure 4,
<style alpha = "@ fade">
<rect bounds = "-1 1 1 -1" texture = "@ video_in"/>
</ style>
A
"<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
<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
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
The number of keyframe values 133 assigned to the animated value ID 132 depends on the
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
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
"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
Meanwhile, the
For example, when processing a fade in effect through the
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
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
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
<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
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
By including the
Therefore, even when the 3D effect is not used, it is preferable to include the coordinate system transformation code 150 before the
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
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
Thereafter, the mobile 1 reads the
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
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
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
At this time, according to the
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
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
Meanwhile, when the mobile 1 processes the animation using the
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
The second key frame value 133 is a value assigned to the animated value ID 132 at the end of rendering of the
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
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.
상기 텍스쳐 코드, 애니메이티드 밸류 코드 및 드로잉 함수가 적용되는 범위를 정의하는 유형코드;를 더 포함하되,
상기 유형코드는 프로젝트 전체에 적용; 프로젝트의 타임 라인에 배열된 다수의 클립 가운데 어느 하나 또는 그 이상에 적용; 또는 프로젝트의 타임 라인에 배열된 다수의 클립 가운데 인접한 두 개 사이의 트랜지션에 적용; 가운데 어느 하나에 해당하는 값을 갖는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체.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.
상기 유형코드, 상기 텍스쳐 코드, 상기 애니메이티드 밸류 코드 및 상기 드로잉 함수는, 유형코드, 텍스쳐 코드, 애니메이티드 밸류 코드 및 드로잉 함수의 순으로 포함되는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체.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.
상기 텍스쳐 코드의 속성 지시어는 비디오, 이미지, 텍스트 가운데 어느 하나이며,
속성 지시어가 비디오를 지시하는 경우, 사용자가 동적으로 선택한 클립을 가리키는 포인터 변수가 상기 텍스쳐 아이디의 값으로 할당되며,
속성 지시어가 이미지를 지시하는 경우, 이미지 파일의 명칭 또는 사용자가 동적으로 선택한 이미지를 가리키는 포인터 변수가 상기 텍스쳐 아이디의 값으로 할당되며,
속성 지시어가 텍스트를 지시하는 경우, 텍스트 또는 사용자가 동적으로 입력한 텍스트를 가리키는 포인터 변수가 상기 텍스쳐 아이디의 값으로 할당되는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체.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 값을 가진 텍스쳐 아이디에 의하여 지시되는 동영상 편집도구의 타임라인 상 클립의 종료 위치로부터 제 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.
두 개의 키 프레임 밸류 값이 포함되며, 상기 드로잉 함수가 해당 애니메이티드 밸류 아이디의 포인터를 파라메타로 받는 경우,
상기 드로잉 함수는 상기 애니메이티드 밸류 아이디가 시간의 흐름에 따라 두 개의 키 프레임 밸류 값 가운데 앞의 값을 가진 상태에서, 뒤의 값을 가진 상태로 변화하도록 이펙트를 설정하는 코드인 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체.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.
상기 애니메이티드 밸류 개시 태그 이후, 상기 애니메이티드 밸류 종료 태그 이전에 상기 애니메이티드 밸류 아이디에 할당된 값의 변화 속도를 조절하기 위한 베지어 함수를 정의하는 타이밍 펑션 태그를 더 포함하는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체.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.
상기 타이밍 펑션 태그는 애니메이티드 밸류의 변화 속도 조절을 위한 베지어 함수의 콘트롤 포인트의 좌표에 해당하는 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.
상기 드로잉 함수 이전에 좌표계 변환 코드를 더 포함하되,
상기 좌표계 변환 코드는 좌표계를 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.
상기 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.
상기 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.
상기 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.
상기 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.
상기 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.
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 Active 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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090058305A (en) * | 2007-12-04 | 2009-06-09 | 삼성전자주식회사 | Video recording editing device and method |
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)
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 |
-
2013
- 2013-08-09 KR KR1020130094882A patent/KR101352737B1/en active Active
-
2014
- 2014-08-08 WO PCT/KR2014/007410 patent/WO2015020495A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090058305A (en) * | 2007-12-04 | 2009-06-09 | 삼성전자주식회사 | Video recording editing device and method |
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)
Title |
---|
홍영권, ‘UCC 동영상 편집 소프트웨어의 개선방향에 관한 연구: 기능 및 사용자 인터페이스를 중심으로’, 연세대학교 학위논문(석사), 2007.08 |
홍영권, 'UCC 동영상 편집 소프트웨어의 개선방향에 관한 연구: 기능 및 사용자 인터페이스를 중심으로', 연세대학교 학위논문(석사), 2007.08 * |
Cited By (4)
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 | |
US8205159B2 (en) | System, method and medium organizing templates for generating moving images | |
CN104540028B (en) | A kind of video beautification interactive experience system based on mobile platform | |
CN107992246A (en) | Video editing method and device and intelligent terminal | |
KR100960504B1 (en) | Method and system for creating digital storyboard with emotional expression | |
CN111553967A (en) | Unity-based animation resource file production method, module and storage medium | |
US9396575B2 (en) | Animation via pin that defines multiple key frames | |
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 | |
CN102356407A (en) | Animation editing apparatus and animation reproduction apparatus | |
CN113711575A (en) | System and method for instantly assembling video clips based on presentation | |
CN111242688A (en) | Animation resource manufacturing method and device, mobile terminal and storage medium | |
JP2010191634A (en) | Moving image creation program, moving image creation service provision system, and moving image reproduction program | |
KR102092156B1 (en) | Encoding method for image using display device | |
KR20200110292A (en) | Device | |
KR102711306B1 (en) | Apparatus for Assets and Videos Sharing Service and Driving Method Thereof | |
CN116943158B (en) | Object information display method and related device | |
KR20230167494A (en) | Promotional Video Content Production Method and 3D Video Content Production System | |
CN116774902A (en) | Virtual camera configuration method, device, equipment and storage medium | |
Li et al. | A Taste of Multimedia | |
Jackson | Pro Android Graphics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20130809 |
|
PA0201 | Request for examination | ||
A302 | Request for accelerated examination | ||
PA0302 | Request for accelerated examination |
Patent event date: 20130814 Patent event code: PA03022R01D Comment text: Request for Accelerated Examination Patent event date: 20130809 Patent event code: PA03021R01I Comment text: Patent Application |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20130912 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20131121 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20140110 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20140110 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20170109 Year of fee payment: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20170109 Start annual number: 4 End annual number: 4 |
|
FPAY | Annual fee payment |
Payment date: 20181224 Year of fee payment: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20181224 Start annual number: 6 End annual number: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20241125 Start annual number: 12 End annual number: 12 |