KR101352737B1 - 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법 및 컴퓨터로 판독가능한 기록매체 - Google Patents
동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법 및 컴퓨터로 판독가능한 기록매체 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
- code
- effect
- Prior art date
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
동영상 편집도구의 이펙트 설정을 위한 데이터 구조가 개시된다. 본 발명에 의한 동영상 편집도구의 이펙트 설정을 위한 데이터 구조는 텍스쳐 코드, 애니메이티드 밸류 코드 및 드로잉 함수가 적용되는 범위를 정의하는 유형코드; 이펙트가 렌더링 될 대상을 정의하는 텍스쳐 코드; 이펙트의 렌더링 시 시간의 변화에 따라 변화하는 값을 정의하는 애니메이티드 밸류 코드; 이펙트의 종류와 방법을 정의하는 드로잉 함수를 포함한다. 이때, 텍스쳐 코드는 텍스쳐 개시 태그; 텍스쳐 아이디; 속성 지시어; 값; 및 텍스쳐 종료 태그;를 순차 포함하며, 애니메이티드 밸류 태그는 애니메이티드 밸류 개시 태그; 애니메이티드 밸류 아이디; 하나 또는 그 이상의 키프레임 밸류 값; 및 애니메이티드 밸류 종료 태그;를 순차 포함하며, 드로잉 함수는 함수의 파라메타로 상기 텍스쳐 아이디 또는 애니메이티드 밸류 아이디의 포인터를 파라메타로 받는다. 한편, 애니메이티드 밸류 코드에는 큐빅 베지어 함수에 의하여 키프레임 밸류값이 시작값에서 종료값까지 변화하는 속도를 조절하기 위한 타이밍 펑션 태그 및 두 개의 콘트롤 포인트의 좌표에 해당하는 파라메타가 더 포함될 수 있다.
Description
본 발명은 모바일용 동영상 편집 소프트웨어 기술 분야에 속한다.
컴퓨팅 하드웨어 기술이 비약적으로 발전하고, 멀티미디어 컨텐츠의 생산과 유통구조가 사용자 중심으로 개편되면서 최근들어서는 사용자들이 동영상을 손쉽게 촬영하고 편집할 수 있게 되었다.
동영상의 편집을 위해서는 통상 동영상 편집 소프트웨어를 사용하게 되는데, 도 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) 개발사로 하여금 이펙트의 템플릿을 간단하고도 잘 정의할 수 있도록 환경을 조성할 필요성이 있다.
동영상의 편집을 위해서는 통상 동영상 편집 소프트웨어를 사용하게 되는데, 도 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) 개발사로 하여금 이펙트의 템플릿을 간단하고도 잘 정의할 수 있도록 환경을 조성할 필요성이 있다.
본 발명은 상기와 같은 종래기술의 문제점을 해소하기 위하여 개발된 것으로, 모바일용 동영상 편집 소프트웨어에 설치하여 간편하게 사용할 수 있는 이펙트 템플릿의 구조를 제시한다.
더 나아가, 동영상 편집 소프트웨어를 실행하는 모바일(1)이 이와 같은 구조를 갖는 이펙트 템플릿의 구조를 이용하여 이펙트를 설정하는 방법을 제시한다.
더 나아가, 동영상 편집 소프트웨어를 실행하는 모바일(1)이 이와 같은 구조를 갖는 이펙트 템플릿의 구조를 이용하여 이펙트를 설정하는 방법을 제시한다.
상기와 같은 목적을 달성하기 위하여, 본 발명에 의한 동영상 편집 도구의 이펙트 설정을 위한 데이터 구조는,
텍스쳐 코드, 애니메이티드 밸류 코드 및 드로잉 함수가 적용되는 범위를 정의하는 유형코드;
이펙트가 렌더링 될 대상을 정의하는 텍스쳐 코드;
*이펙트의 렌더링 시 시간의 변화에 따라 변화하는 값을 정의하는 애니메이티드 밸류 코드;
이펙트의 종류와 방법을 정의하는 드로잉 함수를 포함한다.
이때, 텍스쳐 코드는 텍스쳐 개시 태그; 텍스쳐 아이디; 속성 지시어; 값; 및 텍스쳐 종료 태그;를 순차 포함한다.
한편, 애니메이티드 밸류 태그는 애니메이티드 밸류 개시 태그; 애니메이티드 밸류 아이디; 하나 또는 그 이상의 키프레임 밸류 값; 및 애니메이티드 밸류 종료 태그;를 순차 포함하며,
드로잉 함수는 함수의 파라메타로 상기 텍스쳐 아이디 또는 애니메이티드 밸류 아이디의 포인터를 받는다.
한편, 텍스쳐 코드의 속성 지시어는 비디오, 이미지, 텍스트 가운데 어느 하나이며,
속성 지시어가 비디오를 지시하는 경우, 상기 텍스쳐 아이디에 대하여 사용자가 동적으로 선택한 클립을 가리키는 포인터 변수가 그 값으로 할당된다.
그리고, 속성 지시어가 이미지를 지시하는 경우, 상기 텍스쳐 아이디에 대하여 이미지 파일의 명칭 또는 사용자가 동적으로 선택한 이미지를 가리키는 포인터 변수가 그 값으로 할당되며,
속성 지시어가 텍스트를 지시하는 경우, 상기 텍스쳐 아이디에 대하여 텍스트 또는 사용자가 동적으로 입력한 텍스트를 가리키는 포인터 변수가 그 값으로 할당된다.
한편, 두 개의 텍스쳐 아이디가 포함되되, 각각의 속성 지시어가 비디오이며, 상기 드로잉 함수가 상기 두 개의 텍스쳐 아이디의 포인터를 받는 경우,
드로잉 함수는 제 1 값을 가진 텍스쳐 아이디에 의하여 지시되는 동영상 편집도구의 타임라인 상 클립의 종료 위치로부터 제 2 값을 가진 텍스쳐 아이디에 의하여 클립의 시작위치 사이에 적용되는 트랜지션 이펙트를 설정한다.
한편, 두 개의 키 프레임 밸류 값이 포함되며, 상기 드로잉 함수가 해당 애니메이티드 밸류 아이디의 포인터를 받는 경우,
상기 드로잉 함수는 상기 애니메이티드 밸류 아이디가 시간의 흐름에 따라 두 개의 키 프레임 밸류 값 가운데 앞의 값을 가진 상태에서, 뒤의 값을 가진 상태로 변화하도록 이펙트를 설정한다.
상기 애니메이티드 밸류 개시 태그 이후, 상기 애니메이티드 밸류 종료 태그 이전에 상기 애니메이티드 밸류 아이디에 할당된 값의 변화 속도를 조절하기 위한 베지어 함수를 정의하는 타이밍 펑션 태그가 더 포함될 수 있는데,
이때, 타이밍 펑션 태그는 애니메이티드 밸류의 변화 속도 조절을 위한 베지어 함수의 콘트롤 포인트의 좌표에 해당하는 4 개의 파라메타를 가진다.
제 1 파라메타는 첫번째 콘트롤 포인트의 x좌표,
제 2 파라메타는 첫번째 콘트롤 포인트의 y좌표,
제 3 파라메타는 두번째 콘트롤 포인트의 x좌표,
제 4 파라메타를 두번째 콘트롤 포인트의 y좌표를 각각 가리킨다.
텍스쳐 코드, 애니메이티드 밸류 코드 및 드로잉 함수가 적용되는 범위를 정의하는 유형코드;
이펙트가 렌더링 될 대상을 정의하는 텍스쳐 코드;
*이펙트의 렌더링 시 시간의 변화에 따라 변화하는 값을 정의하는 애니메이티드 밸류 코드;
이펙트의 종류와 방법을 정의하는 드로잉 함수를 포함한다.
이때, 텍스쳐 코드는 텍스쳐 개시 태그; 텍스쳐 아이디; 속성 지시어; 값; 및 텍스쳐 종료 태그;를 순차 포함한다.
한편, 애니메이티드 밸류 태그는 애니메이티드 밸류 개시 태그; 애니메이티드 밸류 아이디; 하나 또는 그 이상의 키프레임 밸류 값; 및 애니메이티드 밸류 종료 태그;를 순차 포함하며,
드로잉 함수는 함수의 파라메타로 상기 텍스쳐 아이디 또는 애니메이티드 밸류 아이디의 포인터를 받는다.
한편, 텍스쳐 코드의 속성 지시어는 비디오, 이미지, 텍스트 가운데 어느 하나이며,
속성 지시어가 비디오를 지시하는 경우, 상기 텍스쳐 아이디에 대하여 사용자가 동적으로 선택한 클립을 가리키는 포인터 변수가 그 값으로 할당된다.
그리고, 속성 지시어가 이미지를 지시하는 경우, 상기 텍스쳐 아이디에 대하여 이미지 파일의 명칭 또는 사용자가 동적으로 선택한 이미지를 가리키는 포인터 변수가 그 값으로 할당되며,
속성 지시어가 텍스트를 지시하는 경우, 상기 텍스쳐 아이디에 대하여 텍스트 또는 사용자가 동적으로 입력한 텍스트를 가리키는 포인터 변수가 그 값으로 할당된다.
한편, 두 개의 텍스쳐 아이디가 포함되되, 각각의 속성 지시어가 비디오이며, 상기 드로잉 함수가 상기 두 개의 텍스쳐 아이디의 포인터를 받는 경우,
드로잉 함수는 제 1 값을 가진 텍스쳐 아이디에 의하여 지시되는 동영상 편집도구의 타임라인 상 클립의 종료 위치로부터 제 2 값을 가진 텍스쳐 아이디에 의하여 클립의 시작위치 사이에 적용되는 트랜지션 이펙트를 설정한다.
한편, 두 개의 키 프레임 밸류 값이 포함되며, 상기 드로잉 함수가 해당 애니메이티드 밸류 아이디의 포인터를 받는 경우,
상기 드로잉 함수는 상기 애니메이티드 밸류 아이디가 시간의 흐름에 따라 두 개의 키 프레임 밸류 값 가운데 앞의 값을 가진 상태에서, 뒤의 값을 가진 상태로 변화하도록 이펙트를 설정한다.
상기 애니메이티드 밸류 개시 태그 이후, 상기 애니메이티드 밸류 종료 태그 이전에 상기 애니메이티드 밸류 아이디에 할당된 값의 변화 속도를 조절하기 위한 베지어 함수를 정의하는 타이밍 펑션 태그가 더 포함될 수 있는데,
이때, 타이밍 펑션 태그는 애니메이티드 밸류의 변화 속도 조절을 위한 베지어 함수의 콘트롤 포인트의 좌표에 해당하는 4 개의 파라메타를 가진다.
제 1 파라메타는 첫번째 콘트롤 포인트의 x좌표,
제 2 파라메타는 첫번째 콘트롤 포인트의 y좌표,
제 3 파라메타는 두번째 콘트롤 포인트의 x좌표,
제 4 파라메타를 두번째 콘트롤 포인트의 y좌표를 각각 가리킨다.
이러한 본 발명에 의할 때,
모바일의 엔드 유저 또는 모바일용 동영상 편집 소프트웨어의 서드파티 개발사는 명확하고 간단하게 이펙트의 템플릿을 설정할 수 있게 된다.
특히, 복잡한 루프를 코딩하는 번거로움 없이 본 발명에서 제공하는 플러그 인의 구조에 따라 단지 애니메이티드 밸류의 값을 간단히 설정하는 것만으로 시간의 흐름에 따라 시각적인 변화가 발생하는 이펙트를 정의할 수 있게 된다.
뿐만 아니라, 본 발명에서 제공하는 플러그 인의 구조에 따라 타이밍 펑션의 파라메타를 간단히 입력하는 것에 의하여 이펙트의 렌더링 시에 끊어지는 느낌 없이 부드럽게 이어질 수 있도록 이펙트의 템플릿을 정의할 수 있게 된다.
더 나아가 이와 같이 정의된 이펙트의 템플릿은 모바일용 동영상 편집 소프트웨어의 플러그 인의 형태로 용이하게 배포될 수 있으며, 모바일 사용자들은 자신에게 필요한 플러그 인을 간단히 검색하여 다운로드 함으로써 동영상의 편집시에 자유롭게 활용할 수 있게 된다.
모바일의 엔드 유저 또는 모바일용 동영상 편집 소프트웨어의 서드파티 개발사는 명확하고 간단하게 이펙트의 템플릿을 설정할 수 있게 된다.
특히, 복잡한 루프를 코딩하는 번거로움 없이 본 발명에서 제공하는 플러그 인의 구조에 따라 단지 애니메이티드 밸류의 값을 간단히 설정하는 것만으로 시간의 흐름에 따라 시각적인 변화가 발생하는 이펙트를 정의할 수 있게 된다.
뿐만 아니라, 본 발명에서 제공하는 플러그 인의 구조에 따라 타이밍 펑션의 파라메타를 간단히 입력하는 것에 의하여 이펙트의 렌더링 시에 끊어지는 느낌 없이 부드럽게 이어질 수 있도록 이펙트의 템플릿을 정의할 수 있게 된다.
더 나아가 이와 같이 정의된 이펙트의 템플릿은 모바일용 동영상 편집 소프트웨어의 플러그 인의 형태로 용이하게 배포될 수 있으며, 모바일 사용자들은 자신에게 필요한 플러그 인을 간단히 검색하여 다운로드 함으로써 동영상의 편집시에 자유롭게 활용할 수 있게 된다.
도 1은 종래기술에 의한 PC용 동영상 편집 소프트웨어의 GUI를 예시하는 도면이며,
도 2는 모바일용 동영상 편집도구의 GUI를 예시하는 화면 예시도이며,
도 3은 모바일을 이용하여 테마 서버로 이펙트 설정을 위한 플러그 인을 업로드 하거나 또는 다운로드 하는 관계를 설명하는 도면이며,
도 4는 플러그 인의 구조를 설명하는 도면이며,
도 5는 플러그 인이 프로젝트, 클립 또는 두 개의 클립 사이에 적용되는 것을 개념적으로 설명하는 도면이며,
도 6은 타이밍 펑션을 구현하기 위한 큐브 베지어 함수의 예를 설명하는 도면이며,
도 7은 본 발명에 의한 이펙트 설정을 위한 데이터 구조를 이용한 이펙트 설정 방법을 설명하는 플로우차트이다.
도 2는 모바일용 동영상 편집도구의 GUI를 예시하는 화면 예시도이며,
도 3은 모바일을 이용하여 테마 서버로 이펙트 설정을 위한 플러그 인을 업로드 하거나 또는 다운로드 하는 관계를 설명하는 도면이며,
도 4는 플러그 인의 구조를 설명하는 도면이며,
도 5는 플러그 인이 프로젝트, 클립 또는 두 개의 클립 사이에 적용되는 것을 개념적으로 설명하는 도면이며,
도 6은 타이밍 펑션을 구현하기 위한 큐브 베지어 함수의 예를 설명하는 도면이며,
도 7은 본 발명에 의한 이펙트 설정을 위한 데이터 구조를 이용한 이펙트 설정 방법을 설명하는 플로우차트이다.
이하에서는 본 발명의 바람직한 실시예 및 첨부하는 도면을 참조하여 본 발명을 상세히 설명하되, 도면의 동일한 참조부호는 동일한 구성요소를 지칭함을 전제하여 설명하기로 한다.
발명의 상세한 설명 또는 특허청구범위에서 어느 하나의 구성요소가 다른 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 당해 구성요소만으로 이루어지는 것으로 한정되어 해석되지 아니하며, 다른 구성요소들을 더 포함할 수 있는 것으로 이해되어야 한다.
또한, 발명의 상세한 설명 또는 특허청구범위에서 "~수단", "~부", "~모듈", "~블록"으로 명명된 구성요소들은 적어도 하나 이상의 기능이나 동작을 처리하는 단위를 의미하며, 이들 각각은 소프트웨어 또는 하드웨어, 또는 이들의 결합에 의하여 구현될 수 있다.
도 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) 이외에도 이의 균등물이 모바일에 포함될 수 있다.
본 발명은 첨부 도면 및 상기와 같은 실시예를 참조하여 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다.
발명의 상세한 설명 또는 특허청구범위에서 어느 하나의 구성요소가 다른 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 당해 구성요소만으로 이루어지는 것으로 한정되어 해석되지 아니하며, 다른 구성요소들을 더 포함할 수 있는 것으로 이해되어야 한다.
또한, 발명의 상세한 설명 또는 특허청구범위에서 "~수단", "~부", "~모듈", "~블록"으로 명명된 구성요소들은 적어도 하나 이상의 기능이나 동작을 처리하는 단위를 의미하며, 이들 각각은 소프트웨어 또는 하드웨어, 또는 이들의 결합에 의하여 구현될 수 있다.
도 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) 이외에도 이의 균등물이 모바일에 포함될 수 있다.
본 발명은 첨부 도면 및 상기와 같은 실시예를 참조하여 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다.
본 발명은 동영상 편집도구 기술분야에 적용될 수 있다.
특히, 모바일용 동영상 편집도구 기술분야에 적용될 수 있다.
특히, 모바일용 동영상 편집도구 기술분야에 적용될 수 있다.
1 : 모바일
2 : 테마 서버
3 : 서드파티 개발사
100 : 플러그 인
110 : 유형코드
120 : 텍스쳐 코드
121 : 텍스쳐 개시 태그
122 : 텍스쳐 아이디
123 : 텍스쳐 속성 지시어
124 : 텍스쳐 속성값
125 : 텍스쳐 종료 태그
130 : 애니메이티드 밸류 코드
131 : 애니메이티드 밸류 개시 태그
132 : 애니메이티드 밸류 아이디
133 : 키프레임 밸류
134 : 타이밍 펑션 태그
135 : 애니메이티드 밸류 종료 태그
140 : 드로잉 함수
150 : 좌표계 변환 코드
151 : 프로젝션 코드
152 : 종횡비 확장 코드
153 : 원점 이동 코드
2 : 테마 서버
3 : 서드파티 개발사
100 : 플러그 인
110 : 유형코드
120 : 텍스쳐 코드
121 : 텍스쳐 개시 태그
122 : 텍스쳐 아이디
123 : 텍스쳐 속성 지시어
124 : 텍스쳐 속성값
125 : 텍스쳐 종료 태그
130 : 애니메이티드 밸류 코드
131 : 애니메이티드 밸류 개시 태그
132 : 애니메이티드 밸류 아이디
133 : 키프레임 밸류
134 : 타이밍 펑션 태그
135 : 애니메이티드 밸류 종료 태그
140 : 드로잉 함수
150 : 좌표계 변환 코드
151 : 프로젝션 코드
152 : 종횡비 확장 코드
153 : 원점 이동 코드
Claims (15)
- 동영상 편집 도구의 이펙트 설정을 위한 데이터 구조에 있어서,
이펙트가 렌더링 될 대상을 정의하는 텍스쳐 코드;
이펙트의 렌더링 시 시간의 변화에 따라 변화하는 값을 정의하는 애니메이티드 밸류 코드;
이펙트의 종류와 방법을 정의하는 드로잉 함수를 포함하되,
상기 텍스쳐 코드는 텍스쳐 개시 태그; 텍스쳐 아이디; 속성 지시어; 값; 및 텍스쳐 종료 태그;를 순차 포함하며,
상기 애니메이티드 밸류 태그는 애니메이티드 밸류 개시 태그; 애니메이티드 밸류 아이디; 하나 또는 그 이상의 키프레임 밸류 값; 및 애니메이티드 밸류 종료 태그;를 순차 포함하고,
상기 드로잉 함수는 함수의 파라메타로 상기 텍스쳐 아이디 또는 애니메이티드 밸류 아이디의 포인터를 받는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체. - 제 1 항에 있어서,
상기 텍스쳐 코드, 애니메이티드 밸류 코드 및 드로잉 함수가 적용되는 범위를 정의하는 유형코드;를 더 포함하되,
상기 유형코드는 프로젝트 전체에 적용; 프로젝트의 타임 라인에 배열된 다수의 클립 가운데 어느 하나 또는 그 이상에 적용; 또는 프로젝트의 타임 라인에 배열된 다수의 클립 가운데 인접한 두 개 사이의 트랜지션에 적용; 가운데 어느 하나에 해당하는 값을 갖는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체. - 제 2 항에 있어서,
상기 유형코드, 상기 텍스쳐 코드, 상기 애니메이티드 밸류 코드 및 상기 드로잉 함수는, 유형코드, 텍스쳐 코드, 애니메이티드 밸류 코드 및 드로잉 함수의 순으로 포함되는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체. - 제 1 항에 있어서,
상기 텍스쳐 코드의 속성 지시어는 비디오, 이미지, 텍스트 가운데 어느 하나이며,
속성 지시어가 비디오를 지시하는 경우, 사용자가 동적으로 선택한 클립을 가리키는 포인터 변수가 상기 텍스쳐 아이디의 값으로 할당되며,
속성 지시어가 이미지를 지시하는 경우, 이미지 파일의 명칭 또는 사용자가 동적으로 선택한 이미지를 가리키는 포인터 변수가 상기 텍스쳐 아이디의 값으로 할당되며,
속성 지시어가 텍스트를 지시하는 경우, 텍스트 또는 사용자가 동적으로 입력한 텍스트를 가리키는 포인터 변수가 상기 텍스쳐 아이디의 값으로 할당되는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체. - 제 1 항에 있어서,
두 개의 텍스쳐 아이디가 포함되되, 각각의 속성 지시어가 비디오이며, 상기 드로잉 함수가 상기 두 개의 텍스쳐 아이디의 포인터를 파라메타로 받는 경우,
상기 드로잉 함수는 제 1 값을 가진 텍스쳐 아이디에 의하여 지시되는 동영상 편집도구의 타임라인 상 클립의 종료 위치로부터 제 2 값을 가진 텍스쳐 아이디에 의하여 클립의 시작위치 사이에 적용되는 트랜지션 이펙트를 설정하는 코드인 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체. - 제 1 항에 있어서,
두 개의 키 프레임 밸류 값이 포함되며, 상기 드로잉 함수가 해당 애니메이티드 밸류 아이디의 포인터를 파라메타로 받는 경우,
상기 드로잉 함수는 상기 애니메이티드 밸류 아이디가 시간의 흐름에 따라 두 개의 키 프레임 밸류 값 가운데 앞의 값을 가진 상태에서, 뒤의 값을 가진 상태로 변화하도록 이펙트를 설정하는 코드인 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체. - 제 1 항에 있어서,
상기 애니메이티드 밸류 개시 태그 이후, 상기 애니메이티드 밸류 종료 태그 이전에 상기 애니메이티드 밸류 아이디에 할당된 값의 변화 속도를 조절하기 위한 베지어 함수를 정의하는 타이밍 펑션 태그를 더 포함하는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체. - 제 7 항에 있어서,
상기 타이밍 펑션 태그는 애니메이티드 밸류의 변화 속도 조절을 위한 베지어 함수의 콘트롤 포인트의 좌표에 해당하는 4 개의 파라메타를 가지되,
제 1 파라메타는 첫번째 콘트롤 포인트의 x좌표,
제 2 파라메타는 첫번째 콘트롤 포인트의 y좌표,
제 3 파라메타는 두번째 콘트롤 포인트의 x좌표,
제 4 파라메타를 두번째 콘트롤 포인트의 y좌표를 각각 가리키는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체. - 제 1 항에 있어서,
상기 드로잉 함수 이전에 좌표계 변환 코드를 더 포함하되,
상기 좌표계 변환 코드는 좌표계를 z축을 갖는 3차원 좌표계로 변환하는 프로젝션 코드;
동영상 편집 도구가 표시되는 디스플레이의 가로세로 픽셀수에 의해 정의되는 종횡비에 맞추어 좌표계를 확장하는 종횡비 확장 코드;
원점을 변환된 3차원 좌표계의 소정 위치로 이동시키는 원점 이동 코드;를 더 포함하는 동영상 편집도구의 이펙트 설정 데이터를 갖는 컴퓨터로 판독가능한 기록매체. - 디스플레이 수단을 갖는 동영상 편집 장치에서 실행되는 방법에 있어서,
a) 사용자에 의하여 선택된 프로젝트에 다수의 클립을 타임라인에 배열하는 단계;
b) 사용자에 의하여 어느 하나의 플러그 인이 선택됨에 따라 선택된 플러그 인 파일에 포함된 스크립트를 독출하는 단계;
c) 상기 스크립트로부터 텍스쳐 개시 태그를 발견하면, 텍스쳐 개시 태그 직후의 텍스쳐 아이디에 대하여, 텍스쳐 아이디 직후의 속성 지시어에 해당하는 유형으로 값을 할당하는 단계;
d) 상기 스크립트로부터 애니메이티드 밸류 개시 태그를 발견하면, 해당 애니메이티드 밸류 종료 태그 이전에 포함된 키프레임 밸류 값을 애니메이티드 밸류 개시 태그 직후의 애니메이티드 밸류 아이디에 대하여 할당하되, 상기 키 프레임 밸류 값이 두 개인 경우 앞의 키 프레임 밸류 값을 시작 값으로, 나중의 키 프레임 밸류 값을 종료 값으로 할당하는 단계;
e) 상기 스크립트로부터 상기 텍스쳐 아이디 또는 애니메이티드 밸류 아이디의 포인터를 파라메타로 받는 드로잉 함수를 발견하면, 상기 드로잉 함수에 의한 이펙트를 렌더링하는 단계;를 포함하는 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법. - 제 10 항에 있어서,
상기 b) 단계에서는,
사용자에 의하여 어느 하나의 플러그 인이 선택됨에 따라 선택된 플러그 인 파일에 포함된 스크립트를 독출하되, 상기 스크립트로부터 해당 플러그 인이 프로젝트 전체에 적용되는 것인지, 클립에 적용되는 것인지, 클립 사이의 트랜지션에 적용되는 것인지 파악하되,
상기 e) 단계에서는,
상기 드로잉 함수에 의한 이펙트를 렌더링 함에 있어, 상기 선택된 플러그 인이 프로젝트 전체에 적용되는 것인지, 클립에 적용되는 것인지, 클립 사이의 트랜지션에 적용되는 것인지에 따라, 프로젝트 전체, 어느 하나의 클립 또는 클립 사이의 트랜지션에 렌더링하는 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법. - 제 10 항에 있어서,
상기 c) 단계에서, 두 개의 텍스쳐 아이디에 대하여 비디오 유형의 값이 각각 할당되면,
상기 e) 단계에서는, 상기 두 개의 텍스쳐 아이디의 포인터를 파라메타로 받는 드로잉 함수를 렌더링함에 있어,
제 1 값을 가진 텍스쳐 아이디에 의하여 지시되는 상기 타임라인 상 클립의 종료 위치로부터 제 2 값을 가진 텍스쳐 아이디에 의하여 지시되는 상기 타임라인 상 클립의 시작위치 사이에 상기 드로잉 함수에 의한 이펙트를 렌더링하는 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법. - 제 10 항에 있어서,
상기 d) 단계에서, 상기 키 프레임 밸류 값이 두 개인 경우,
상기 e) 단계에서는, 상기 애니메이티드 밸류 아이디의 포인터를 파라메타로 받는 드로잉 함수를 렌더링함에 있어,
상기 드로잉 함수의 렌더링 시작 시점의 상기 애니메이티드 밸류의 값을 상기 시작 값으로 하고, 상기 드로잉 함수의 렌더링 종료 시점의 상기 애니메이티드 밸류의 값을 상기 종료 값으로 하되, 시간의 진행에 따라 상기 애니메이티드 밸류 값이 상기 시작 값에서 상기 종료 값으로 변화하도록 처리하는 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법. - 제 13 항에 있어서,
상기 d) 단계에서, 상기 스크립트로부터 애니메이티드 밸류 개시 태그 이후, 해당 애니메이티드 밸류 종료 태그 이전에 타이밍 펑션 태그를 발견하면,
상기 e) 단계에서는,
상기 드로잉 함수의 렌더링을 수행함에 있어, 상기 타이밍 펑션 태그에 의해 상기 애니메이티드 밸류의 값이 상기 시작 값에서 상기 종료 값으로 변화하는 속도를 조절하는 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법. - 제 14 항에 있어서,
상기 e) 단계에서는 상기 타이밍 펑션 태그의 제 1 파라메타를 첫번째 콘트롤 포인트의 x좌표, 제 2 파라메타를 첫번째 콘트롤 포인트의 y좌표, 제 3 파라메타를 두번째 콘트롤 포인트의 x좌표, 제 4 파라메타를 두번째 콘트롤 포인트의 y좌표로 하여 정의되는 큐빅 베지어 함수에 의하여, 상기 큐빅 베지어 함수의 어느 한 축을 시간, 나머지 한 축을 상기 애니메이티드 밸류 값으로 함으로써 상기 애니메이티드 밸류의 변화 속도를 설정하는 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130094882A KR101352737B1 (ko) | 2013-08-09 | 2013-08-09 | 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법 및 컴퓨터로 판독가능한 기록매체 |
PCT/KR2014/007410 WO2015020495A1 (ko) | 2013-08-09 | 2014-08-08 | 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법 및 컴퓨터로 판독가능한 기록매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130094882A KR101352737B1 (ko) | 2013-08-09 | 2013-08-09 | 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법 및 컴퓨터로 판독가능한 기록매체 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101352737B1 true KR101352737B1 (ko) | 2014-01-27 |
Family
ID=50145862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130094882A KR101352737B1 (ko) | 2013-08-09 | 2013-08-09 | 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법 및 컴퓨터로 판독가능한 기록매체 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101352737B1 (ko) |
WO (1) | WO2015020495A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160115025A (ko) * | 2015-03-25 | 2016-10-06 | 네이버 주식회사 | 만화 데이터 생성 장치, 방법, 컴퓨터 프로그램 |
JP2022536233A (ja) * | 2019-06-11 | 2022-08-15 | テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド | 動画データ符号化/復号方法、装置、プログラム及びコンピュータ装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090058305A (ko) * | 2007-12-04 | 2009-06-09 | 삼성전자주식회사 | 동영상 촬영 편집 장치 및 방법 |
JP2010191634A (ja) | 2009-02-17 | 2010-09-02 | Nhn Corp | 動画作成プログラム、動画作成サービス提供システム、及び動画再生プログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4760111B2 (ja) * | 2005-04-26 | 2011-08-31 | 株式会社セガ | 映像オブジェクト表現用データ構造生成プログラム、映像オブジェクト表現用データ構造生成方法、映像ソフト開発装置、映像処理プログラム、映像処理方法、映像処理装置、映像オブジェクト表現用データ構造、および、記録媒体 |
KR101184876B1 (ko) * | 2010-02-11 | 2012-09-20 | 삼성전자주식회사 | 영상과 상호작용이 가능한 캐릭터의 동적 효과를 생성하는 방법 및 장치 |
-
2013
- 2013-08-09 KR KR1020130094882A patent/KR101352737B1/ko active IP Right Grant
-
2014
- 2014-08-08 WO PCT/KR2014/007410 patent/WO2015020495A1/ko active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090058305A (ko) * | 2007-12-04 | 2009-06-09 | 삼성전자주식회사 | 동영상 촬영 편집 장치 및 방법 |
JP2010191634A (ja) | 2009-02-17 | 2010-09-02 | Nhn Corp | 動画作成プログラム、動画作成サービス提供システム、及び動画再生プログラム |
Non-Patent Citations (2)
Title |
---|
홍영권, ‘UCC 동영상 편집 소프트웨어의 개선방향에 관한 연구: 기능 및 사용자 인터페이스를 중심으로’, 연세대학교 학위논문(석사), 2007.08 |
홍영권, 'UCC 동영상 편집 소프트웨어의 개선방향에 관한 연구: 기능 및 사용자 인터페이스를 중심으로', 연세대학교 학위논문(석사), 2007.08 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160115025A (ko) * | 2015-03-25 | 2016-10-06 | 네이버 주식회사 | 만화 데이터 생성 장치, 방법, 컴퓨터 프로그램 |
KR102009980B1 (ko) | 2015-03-25 | 2019-10-21 | 네이버 주식회사 | 만화 데이터 생성 장치, 방법, 컴퓨터 프로그램 |
JP2022536233A (ja) * | 2019-06-11 | 2022-08-15 | テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド | 動画データ符号化/復号方法、装置、プログラム及びコンピュータ装置 |
JP7165272B2 (ja) | 2019-06-11 | 2022-11-02 | テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド | 動画データ符号化/復号方法、装置、プログラム及びコンピュータ装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2015020495A1 (ko) | 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 (ru) | Создание презентации на бесконечном полотне и навигация по ней | |
CN104540028B (zh) | 一种基于移动平台的视频美化交互体验*** | |
KR102294134B1 (ko) | 하이브리드 슬라이드-캔버스 프리젠테이션을 합성하기 위한 저작 도구 | |
US10163244B2 (en) | Creating reusable and configurable digital whiteboard animations | |
CN107728905B (zh) | 一种弹幕显示方法、装置及存储介质 | |
US20080148153A1 (en) | System, method and medium organizing templates for generating moving images | |
KR100960504B1 (ko) | 감성표현이 적용된 디지털 스토리보드 생성 방법 및 시스템 | |
US9396575B2 (en) | Animation via pin that defines multiple key frames | |
CN111553967A (zh) | 一种基于Unity的动画资源文件制作方法、模块及存储介质 | |
KR101352203B1 (ko) | 모바일용 동영상 편집도구의 이펙트 설정을 위한 플러그인의 배포방법 | |
KR101352737B1 (ko) | 동영상 편집도구의 이펙트 설정 데이터를 이용한 이펙트 설정 방법 및 컴퓨터로 판독가능한 기록매체 | |
CN102572219A (zh) | 移动终端及其图像处理方法 | |
KR101720635B1 (ko) | 웹 기반의 3d 영상 컨텐츠 제작 방법 및 이를 운영하는 서버 | |
CN113711575A (zh) | 用于基于表现即时组装视频剪辑的***和方法 | |
CN102356407A (zh) | 动画编辑装置以及动画再现装置 | |
CN111242688A (zh) | 动画资源的制作方法、装置、移动终端和存储介质 | |
Van der Spuy | Learn Pixi. js | |
KR102092156B1 (ko) | 표시 장치의 영상 인코딩 방법 | |
Jackson | Digital image compositing fundamentals | |
KR20200110292A (ko) | 단말기 | |
JP2010191634A (ja) | 動画作成プログラム、動画作成サービス提供システム、及び動画再生プログラム | |
CN113935894B (zh) | 水墨风格的场景渲染方法、设备及存储介质 | |
KR20230167494A (ko) | 홍보 영상 켄텐츠 제작 방법 및 3d 영상 컨텐츠 제작 시스템 |
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 |