Ⅰ. 서 론
최근, 디지털 카메라 및 캠코더가 보편화됨에 따라 개인 콘텐츠 생성이 수월해지고 있고, 인터넷을 통한 SNS(Social Media Service)와 개인 방송 서비스가 활성화됨에 따라 개인이 콘텐츠 생성 및 유통에 직접적으로 참여하는 서비스가 주목받고 있다. 이러한 흐름에 발맞추어, 국·내외 방송 사업자들도 일방적으로 시청자가 콘텐츠를 제공받던 기존의 서비스와는 차별화된 형태인 시청자 참여형 콘텐츠 서비스 기술 개발에 박차를 가하고 있다. 특히, 지금까지는 시청자들이 시청 의견을 온라인상에서 개진하거나 공유하는 서비스 기술 개발이 주를 이루었다면, 최근에는 방송사들이 제공하는 방송 콘텐츠와 시청자들이 보유하고 있는 개인 콘텐츠를 결합하고 유통시키기 위한 온라인 콘텐츠 편집 기술에 대한 관심이 증가하고 있다.
콘텐츠 편집 기술은 크게 선형 편집 기술(Linear editing technology)과 비선형 편집 기술(Non-linear editing technology)로 구분된다[1-4]. 선형 편집 기술은 VCR(Video Cassette Recorder)에 콘텐츠를 아날로그 형태로 저장한 후 저장된 콘텐츠 중 필요한 부분을 선택해 출력용 VCR에 복사 하는 편집 기술로서, 아날로그 형태의 콘텐츠를 저장 및 편집함으로 인해 데이터 복사에 따른 세대손실(Generation loss)이 발생한다. 반면에 비선형 편집 시스템은 하드디스크에 디지털 형태로 저장되어 있는 콘텐츠를 컴퓨터 모니터 상에서 편집하는 방식으로서 다양한 화면효과를 이용할 수 있으며 세대손실도 거의 발생하지 않는 장점을 가진다.
대표적인 비선형 콘텐츠 편집기로는 Windows Movie Maker, PotEncoder, VideoPad가 있다. Microsoft사가 개발한 Windows Movie Maker는 비디오 편집, 오디오 편집, 이미지 슬라이드 쇼 구성, 자막 구성과 같은 콘텐츠 편집 기능 뿐만 아니라, 편집된 콘텐츠를 Facebook, Youtube, Vimeo, Flickr와 같은 SNS 사이트에 실시간으로 공유하는 기능을 제공한다. 국내의 Daum Communications사가 개발한 Pot- Encoder는 초보자도 쉽게 이해할 수 있는 간단하면서도 편리한 사용자 인터페이스를 통해 비디오 편집, 오디오 및 자막 싱크 지원, 로고 삽입과 같은 콘텐츠 편집기능을 제공하는 한편, 편집된 콘텐츠를 자사의 Tvpot, Cafe, Blog에 업로드할 수 있는 기능을 제공한다. 준전문가용 콘텐츠 편집기인 NCH Software사의 VideoPad는 일반적인 편집 기능인 오디오 및 이미지 삽입, 자막 삽입과 같은 기능뿐만 아니라 정밀한 시간단위의 콘텐츠 편집 기능과 다양한 코덱을 이용한 인코딩 기능을 제공한다. 또한, 편집된 콘텐츠를 CD(Compact Disc), DVD(Digital Versatile Disk), 블루레이 디스크(Blu-ray disc)를 포함한 다종 저장매체에 저장하는 기능과 Youtube, Flicker, Facebook과 같은 SNS에 직접 업로드하는 기능을 제공한다.
기존의 비선형 콘텐츠 편집기는 편집 대상이 되는 콘텐츠를 편집자가 보유하고 있어야만 편집이 가능하기 때문에, 방송사와 같이 콘텐츠 제공자가 콘텐츠 다운로드 기능을 제한하는 경우에는 사용될 수 없다는 단점을 가진다. 이러한 문제점을 해결하기 위해서는 편집자의 저장장치에 편집 대상 콘텐츠를 다운로드하지 않으면서도 온라인상에서 콘텐츠를 손쉽게 편집할 수 있는 새로운 형태의 비선형 콘텐츠 편집 방법이 필요하다. 본 논문에서는 편집자가 콘텐츠를 보유하고 있지 않으면서도 온라인상에서 방송 콘텐츠와 개인 콘텐츠를 손쉽게 편집하고 유통시킬 수 있는 새로운 비선형 콘텐츠 편집 시스템을 제안한다. 제안하는 편집 시스템에서는 편집 대상이 되는 콘텐츠를 다운로드하여 편집을 수행하는 것이 아니라, 서버에 저장되어 있는 편집 대상 콘텐츠를 스트리밍 기술을 이용하여 재생하면서 편집을 수행한다. 이때, 긴 분량의 편집 대상 콘텐츠를 스트리밍 기술을 이용하여 재생하며 편집하는 것은 비효율적이므로, 편집 대상 콘텐츠를 씬(Scene) 단위로 구분한 후 검출된 씬 정보를 콘텐츠 재생 및 편집에 사용한다. 제안하는 편집 시스템에서는 콘텐츠의 씬 단위 정보와 편집 정보가 메타데이터 형태로만 존재하며, 씬 단위 혹은 편집 분절(Segment) 단위의 물리적인 콘텐츠 분할은 수행하지 않는다.
본 논문의 구성은 다음과 같다. 먼저 II장에서는 그동안 연구된 콘텐츠 편집 관련기술들을 살펴본다. III장에서는 본 논문에서 제안한 온라인 콘텐츠 편집 시스템에 대해 기술한다. 마지막으로 IV장 및 V장에서는 본 논문에서 제안한 편집 시스템의 성능을 평가하고 결론을 맺는다.
Ⅱ. 관련 연구
일반적으로 콘텐츠 편집 기술은 편집 대상 콘텐츠 검색, 콘텐츠의 편집영역 설정, 콘텐츠의 타임라인 배치, 타임라인에 배치된 콘텐츠들에 효과 설정, 편집 완료 콘텐츠 인코딩, 편집 완료 콘텐츠의 메타데이터 생성과 같은 일련의 기술들로 구성된다. 콘텐츠 편집을 위한 이러한 일련의 기술들은 콘텐츠에 대한 어느 정도의 지식을 요구하기 때문에 그동안에는 전문가의 영역으로 여겨졌으나, 최근에는 콘텐츠 편집 도구에서 편집에 필요한 일련의 행동들에 대한 가이드를 함께 제공함으로서 전문적인 지식이 없는 편집자도 손쉽게 콘텐츠 편집을 수행할 수 있도록 기술이 진화하고 있다[5]. 그럼에도 불구하고, 현재까지도 일반 사용자들이 편집 대상 콘텐츠를 검색하는 기술, 콘텐츠의 편집영역을 설정하는 기술 및 타임라인에 배치된 콘텐츠들에 효과를 설정하는 기술은 많은 시간과 노력이 드는 일로서, 이러한 문제점들을 해결하기위한 연구가 활발히 진행되고 있다.
V. Rajgopalan[6]은 여러 개의 편집 대상 비디오에서 편집자가 입력하는 이미지나 비디오 클립과 유사한 비디오를 검색할 수 있는 알고리즘을 제안했다. 제안된 알고리즘에서는 검색 대상 비디오에서 SIFT(Scale Invariant Feature Transform) 벡터를 추출하여 데이터베이스화한 후, 사용자에 의해 입력되는 이미지나 비디오 클립의 SIFT 벡터와 검색 대상 비디오들의 SIFT 벡터를 비교하여 유사 비디오를 검색하는 기술을 제안하고, 제안된 기술을 비디오 편집기에 적용했다. A. Yoshitaka[7]는 움직임 분석(Motion analysis) 및 음성 인식(Voice detection)을 이용해서 비디오를 씬 단위로 구분하고, 비디오 편집시에 사용자가 씬 단위로 구분된 비디오의 분할영역을 손쉽게 검색할 수 있는 알고리즘을 제안했다. 기존의 씬 단위 분할 기술과는 달리, 제안된 알고리즘에서는 비디오의 구문(Syntax) 분석과 필름 문법(Film grammar)을 적용하여 대상 비디오를 액션 씬(Action scene), 긴장 고조 씬(Tension rising scene), 대화 씬(Conversation scene), 잔잔한 씬(Calm scene), 긴장 해소 씬(Tension releasing scene)으로 구분하는 방법을 사용한다.
편집 대상 콘텐츠를 검색한 후, 검색된 콘텐츠에서 편집 영역을 손쉽게 설정하기 위한 기술들도 활발히 연구되고 있다. I. Song[8]과 M. Kumano[9]는 비디오에서 샷(Shot) 정보를 검출하고 검출된 샷 정보를 메타데이터로 표현하거나 편집영역 설정에 사용하는 방법을 제안했다. 특히, M. Kumano[9]가 제안한 방법에서는 기존의 샷 검출방법과 달리 비디오 분석을 통해 샷을 원거리 샷(Loose shot), 중간거리 샷(Medium shot), 근거리 샷(Tight shot)으로 보다 세밀하게 재구분하는 방법을 사용한다. 한편 A. Girgensohn[10]은 일반 사용자들이 디지털 카메라나 캠코더를 이용해서 생성한 홈 비디오(Home video)를 손쉽게 편집할 수 있는 Hitchcock이라는 편집시스템을 제안했다. 홈 비디오의 경우 일반 사용자가 디지털 카메라나 캠코더를 이용해서 비디오를 생성할 시에 흔들림이 너무 많거나 움직임 객체가 없는 영역을 포함하는 경우가 많은데, Hitchcock에서는 생성된 홈 비디오의 Fast pan, Slow zoom과 같은 카메라 모션을 분석한 후, 편집에 사용하기에 적당하지 않은 비디오 영역을 자동으로 제거하는 한편 편집하기에 적당한 비디오 영역을 자동으로 분할하는 방법을 사용한다. 비디오와 함께 저장되는 오디오나 오디오 전사(Audio transcription) 정보를 이용해서 비디오의 편집영역을 설정하는 기술들도 활발히 연구되고 있다. T. Takiguchi[11]는 홈 환경에서 녹화되고 있는 비디오 중, 음성 인식 알고리즘을 기반으로 사람들 이 대화하고 있는 장면의 비디오 클립을 자동으로 구분하여 이어붙이는 편집방법을 제안했다. A. Outtagarts[12]는 오디오 전사 정보를 이용해서 비디오 콘텐츠를 손쉽게 검색한 후, 사용자가 편집 대상 파일과 편집 길이를 지정하면 자동으로 비디오 편집이 수행되는 방법을 제안했다.
타임라인에 배치된 콘텐츠들에 효과를 주는 기술들도 활발히 연구되고 있다. 특히, 과거에는 비디오의 프레임 단위로 효과를 주는 방법들이 주로 연구되었던 것과는 달리, 최근에는 비디오에 포함되어 있는 객체(Object) 단위로 효과를 주는 기술들이 활발히 연구되고 있다. S. Lu[13]는 비디오에 포함되어 있는 개별 객체들의 시간별 움직임을 편집할 수 있는 알고리즘을 제안했다. 제안된 알고리즘에서는 움직임 객체들의 상호 상관관계를 유지하면서도 원본 비디오와 비교하여 다른 시간대에 움직임 객체들을 배치하는 기술을 사용한다. E. Bennett[14]은 비디오에 포함되어 있는 특정 객체를 삭제하거나 특정 객체의 카메라 모션을 변경할 수 있는 편집기인 Proscenium을 제안했다. Proscenium에서는 프레임 단위로 비디오를 표현하는 기존의 방법과는 달리, 비디오를 시공간 볼륨(Spatio-temporal volume)으로 표현하는 방법을 사용하여 객체를 손쉽게 검색하고 편집하는 방법을 사용한다. X. Guo[15]는 비디오에 포함되어 있는 특정 객체의 일부분에 광고 이미지를 삽입한다거나 형상을 변화시키는 것과 같이 비디오 객체의 특정 영역에 효과를 주는 알고리즘을 제안했다. 제안된 알고리즘은 비디오에 포함되어 있는 특정 객체 영역에 효과를 줌과 동시에 해당 효과를 비디오 전체에 일관되게 적용하기 위해서 시간적 정렬(Temporal alignment), 포즈 수정(Pose rectification), 객체 교차에 대한 정밀한 복구(Precise recovery of the occlusion) 문제를 해결하기 위한 새로운 알고리즘을 사용한다.
Ⅲ. 제안한 온라인 콘텐츠 편집 시스템
Ⅱ장에서 살펴본바와 같이, 기존에는 편집 대상이 되는 콘텐츠를 편집자가 보유하고 있는 경우에서의 콘텐츠 편집 방법들이 주로 연구되었다. 그러나 일반 사용자에 의한 방송 콘텐츠 편집의 경우와 같이, 편집 대상 콘텐츠를 보유하고 있는 주체와 편집을 수행하는 주체가 서로 다른 경우에는 기존에 연구되었던 기술들을 적용하기 어렵다. 이러한 문제점을 해결하기 위하여, 본 논문에서는 방송 콘텐츠와 개인 콘텐츠를 결합하여 새로운 콘텐츠를 생성하고 유통시키기 위한 온라인 콘텐츠 편집 시스템을 제안한다. 그림 1은 본 논문에서 제안한 온라인 콘텐츠 편집 시스템의 구조를 보여주고 있다. 제안한 편집 시스템은 크게 콘텐츠 관리 서버(Content management server)와 콘텐츠 편집기(Content editor)로 구성되며, 보다 세밀하게는 콘텐츠 메타데이터 생성 모듈(Content metadata generation module), 콘텐츠 검색 모듈(Content search module), 콘텐츠 스트리밍 모듈(Content streaming module), 타임라인 편집 모듈(Timeline editing module), 편집 메타데이터 생성 모듈(Edit metadata generation module), 편집 콘텐츠 재생 모듈(Edit content playback module)로 구성된다. 제안한 편집 시스템을 실제로 운용하기 위해서는 그림 1에 보인 모듈들과 더불어 사용자 관리 모듈, 콘텐츠 보안 모듈, 편집 콘텐츠 상품 등록/관리/유통 모듈 등이 필요하지만, 본 논문에서는 온라인 콘텐츠 편집과 관련된 핵심 모듈들만을 다룬다.
그림 1.제안한 온라인 콘텐츠 편집 시스템의 구조 Fig. 1. Structure of the proposed online content editing system
1. 콘텐츠 메타데이터 생성 모듈(Content Metadata Generation Module)
콘텐츠 메타데이터 생성 모듈은 씬 검출 모듈(Scene detection module), 콘텐츠 저장소(Content storage), 콘텐츠 메타데이터 저장소(Content metadata storage)로 구성된다. 그림 1에서 보듯이, 콘텐츠 메타데이터 생성 모듈은 방송 사업자나 사용자에 의해 제공되는 콘텐츠를 콘텐츠 저장소에 저장함과 동시에 씬 검출을 수행하며, 검출된 씬 정보를 콘텐츠와 함께 제공되는 메타데이터와 결합하여 콘텐츠 메타데이터를 생성하고 이를 메타데이터 저장소에 저장한다.
표 1은 콘텐츠 메타데이터의 핵심 요소를 보여준다. 표 1에서 보여주고 있는 핵심 요소 중, content_id, content_url, image_url 및 Scene은 콘텐츠 메타데이터 생성 모듈을 통해 새롭게 할당되는 요소들이며, 나머지 요소들은 콘텐츠를 제공한 방송 사업자나 사용자에 의해 제공되는 메타데이터를 기반으로 값이 할당되는 요소들이다. content_id는 콘텐츠 저장소에 저장된 콘텐츠의 고유 ID로서 콘텐츠 메타데이터 생성 모듈을 통해 자동으로 할당되며, content_url 및 image_url은 콘텐츠 저장소에 저장된 콘텐츠 및 대표 이미지의 위치 정보를 나타낸다. 콘텐츠의 대표 이미지는 썸네일 추출기(Thumbnail extractor)를 통해 추출된 후 콘텐츠 저장소에 저장되며, 저장된 이미지의 위치 정보가 image_ url에 할당된다.
표 1.콘텐츠 메타데이터의 핵심 요소 Table 1. Core elements of content metadata
Scene은 콘텐츠를 구성하는 다수개의 씬 정보를 리스트 형태로 표현하는 값으로서, 제안하는 편집 시스템에서 씬 단위의 콘텐츠 검색, 씬 단위의 콘텐츠 재생 및 편집에 사용된다. 리스트 형태로 표현되는 Scene에 포함되는 개별 씬은 개별 씬은 표 2와 같이 씬의 이름(scene_name), 씬의 시작 및 종료 시간(scene_start_time, scene_end_time), 씬이 발생한 장소(scene_place), 씬의 태그 정보(scene_tag), 씬의 대표 이미지 위치 정보(scene_image_url)로 구성된다. scene_ start_time 및 scene_end_time은 씬 검출 모듈을 통해 자동으로 할당된다. scene_image_url의 경우에는 scene_start_ time과 content_url을 썸네일 추출기에 전송하여 씬의 썸네일 이미지를 생성 및 저장한 후, 저장된 이미지의 위치 정보를 scene_image_url에 할당하는 방법을 사용한다. 한편, scene_name, scene_place, scene_tag는 씬 검출을 완료한 후 사용자 인터페이스를 통해 사용자가 직접 값을 할당하는 방법을 사용한다.
표 2.씬의 구성 요소 Table 2. Elements of Scene
2. 콘텐츠 검색 모듈(Content Retrieval Module)
제안하는 편집 시스템을 이용하여 편집자가 콘텐츠 편집을 수행할 때 가장 먼저 수행해야하는 것은 바로 편집 대상 콘텐츠를 검색하는 것이다. 제안하는 편집 시스템에서는 씬 단위 콘텐츠를 편집 대상 콘텐츠로 정의하며, 씬 검색 엔진(Scene search engine)과 씬 검색 모듈(Scene search module)로 구성되는 콘텐츠 검색 모듈을 이용하여 씬 단위 콘텐츠를 검색한다. 씬 검색 모듈은 검색을 위한 텍스트 질의어(Query)를 씬 검색 엔진에 전달하는 역할을 수행하며, 씬 검색 엔진은 질의어와 scene_name, scene_place, scene_ tag를 이용하여 씬 단위 검색을 수행한 후, 검색된 씬 정보를 씬 검색 모듈로 전달하는 역할을 수행한다. 콘텐츠 검색을 위한 질의 및 응답 형식으로는 MPEG-QF(Query Format) 표준에 정의된 형식이 사용되며, 검색 응답으로는 리 스트 형태의 씬 정보가 사용된다. 검색 응답에 사용되는 씬 정보에는 씬을 포함하고 있는 원본 콘텐츠의 ID 및 위치 정보인 content_id와 content_url을 포함하여 scene_name, scene_start_time, scene_end_time, scene_place, scene_image_ url이 사용된다. scene_name, scene_place, scene_image_ url은 검색된 씬 목록을 사용자 인터페이스를 통해 편집자에게 표시하기 위한 용도로 사용되며, content_id, content_ url, scene_start_time, scene_end_time은 씬 단위 콘텐츠 스트리밍 및 타임라인 편집에 사용된다.
3. 콘텐츠 스트리밍 모듈(Content Streaming Module)
스트리밍 서버(Streaming server)와 스트리밍 재생기(Streaming player)로 구성되는 콘텐츠 스트리밍 모듈은 편집을 위해 검색된 씬 단위 콘텐츠를 재생하거나 콘텐츠 편집을 수행하는 중에 현재까지의 편집 결과를 프리뷰(Preview) 하는 데에 사용된다. 제안한 편집 시스템의 콘텐츠 스트리밍에는 Apple사가 개발한 HLS(HTTP Live Streaming) 기술이 사용된다. HLS는 MPEG-2 TS(Transport Stream) 규격을 이용하여 스트리밍할 콘텐츠를 시간 단위로 잘게 분할한 후 전송하는 방식을 사용하며, 이때 시간 단위로 분할된 콘텐츠 정보를 표현하기 위해 m3u8을 사용한다.
그림 1에서 보듯이, 제안하는 편집 시스템에서는 씬 단위로 검색된 콘텐츠 정보와 씬 단위 콘텐츠를 이용한 편집 정보를 스트리밍 재생기가 가지게 된다. 따라서 스트리밍 재생기에서 m3u8 생성에 필요한 메타데이터를 스트리밍 서버에 전송한 후, 스트리밍 서버가 전송받은 메타데이터를 기반으로 m3u8을 생성하여 스트리밍 재생기로 전송하는 절차를 가진다. 스트리밍 재생기는 전송받은 m3u8을 이용하여 스트리밍 서버에 접속하고 스트리밍 재생을 시작한다.
그림 2는 m3u8 생성을 위해 스트리밍 재생기가 스트리밍 서버로 전송하는 메타데이터인 TimeLine 메타데이터의 구조를 보여준다. TimeLine 메타데이터는 편집에 사용되는 콘텐츠들의 목록을 표현하기 위한 ContentList와 콘텐츠들의 오디오 및 비디오 그룹의 편집 결과를 표현하기 위한 Group으로 구성된다. ContentList는 id, content_id, content_ url로 구성되는 다수개의 Content를 표현하는데, id에는 TimeLine 메타데이터에서의 고유 콘텐츠 ID 값이 할당되며, content_id에는 편집대상 씬 단위 콘텐츠를 포함하고 있는 원본 콘텐츠의 ID 값이, content_url에는 편집대상 씬 단위 콘텐츠를 포함하고 있는 원본 콘텐츠의 저장위치 값이 할당된다. 한편, Group은 오디오 혹은 비디오 그룹의 편집 결과를 표현하기 위한 값이므로 TimeLine 메타데이터에 최대 2개의 Group이 존재할 수 있다. group_type은 Group의 종류를 표현하기 위한 것으로서 'audio' 혹은 'video' 의 값을 가진다. 또한 Group은 여러 개의 Track으로 구성되는데, track_type을 이용하여 Track의 종류를 구분한다. track_type은 'main', 'overlay', 'background' 값을 가질 수 있으며, 'main'은 주 비디오 혹은 주 오디오 편집 결과를, ‘overlay'는 주 비디오와 함께 오버레이 되는 부가 비디오 삽입을, 그리고 'background'는 배경 음악 삽입을 각각 의미한다. start, stop, id, mstart로 구성되는 Clip은 Track에 포함되는 콘텐츠들의 편집 정보를 나타낸다. start 및 stop은 Clip이 타임라인 상에 배치된 시작 및 종료 시간을 나타내며, id는 Content의 id와 같은 값을 가짐으로서 Clip에 사용되는 콘텐츠를 구분하는데 사용된다. 또한 mstart는 id로 구분되는 편집대상 콘텐츠에서 편집을 위해 선택된 영역의 시작시간을 나타낸다. 그림 3은 TimeLine 메타데이터를 XML로 구성한 예를 보여주고 있다. 그림 3의 TimeLine 메타데이터 예는 id가 1인 콘텐츠가 49초에 해당되는 시점에서부터 21초간 편집에 사용되고, id가 2인 콘텐츠가 857초에 해당되는 시점에서부터 30초간 각각 비디오 및 오디오 그룹 편집에 사용됨으로서, 최종적으로 51초의 편집 콘텐츠가 생성된 예를 보여준다.
그림 2.TimeLine 메타데이터의 구조 Fig. 2. Structure of TimeLine metadata
그림 3.XML 형태의 TimeLine 메타데이터 예 Fig. 3. Example of TimeLine metadata in XML format
편집을 위해 검색된 씬 단위 콘텐츠를 재생할 때에는 해당 씬이 속해있는 하나의 원본 콘텐츠와 원본 콘텐츠를 기준으로 해당 씬의 시작 및 종료 시간을 이용해서 TimeLine 메타데이터를 생성한다. 또한, 콘텐츠 편집 중 프리뷰를 수행할 때에는 편집에 사용된 다수개의 콘텐츠 정보와, 편집 타임라인상에서의 시간정보를 기준으로 TimeLine메타데이터를 생성한다.
4. 타임라인 편집 모듈(Timeline Editing Module)
타임라인 편집 모듈은 검색된 씬 단위 콘텐츠를 콘텐츠 스트리밍 모듈을 통해 시청하면서 콘텐츠의 편집영역을 설정하고 설정된 편집영역을 타임라인에 배치하는 역할을 수행한다. 이때, 편집에 사용되는 씬 단위 콘텐츠 정보 및 편집 설정영역 정보는 그림 2와 같은 TimeLine 메타데이터 생성에 사용된다. 편집에 사용되는 씬 단위 콘텐츠 정보로는 씬 단위 콘텐츠가 속한 원본 콘텐츠의 ID(content_id) 및 URL(content_url), 원본 콘텐츠 대비 씬 단위 콘텐츠의 시작 시간(scene_start_time) 및 종료 시간(scene_end_time)이 해당된다. 또한, 편집 설정 영역 정보로는 씬의 시작시간을 기준으로 설정된 편집 영역의 시작 및 종료 시간, 타임라인 상에 배치된 시작 및 종료 시간이 해당된다.
5. 편집 메타데이터 생성 모듈(Edit Metadata Generation Module)
메타데이터 생성기(Metadata generator), 메타데이터 등록 모듈(Metadata registration module), 편집 메타데이터 저장소(Edit metadata storage)로 구성되는 편집 메타데이터 생성 모듈은 편집 완료된 콘텐츠의 상세 정보를 콘텐츠 관리서버에 저장하는 역할을 수행한다. 콘텐츠의 상세 정보는 사용자 인터페이스를 통해 편집자에 의해 수동으로 입력되는 정보 및 콘텐츠 편집기를 통해 자동으로 입력되는 정보를 바탕으로 표 3과 같이 구성된다. 표 3의 구성 요소 중 content_id는 메타데이터 등록 모듈에서 자동으로 할당되는 편집 콘텐츠의 고유 ID를 나타내며, title, subtitle, storyline, content_genre_code, Cast, keyword는 편집 콘텐츠의 제목, 부제목, 설명, 장르, 출연자, 키워드를 나타내며 사용자 인터페이스를 통해 편집자에 의해 수동으로 입력되는 정보를 바탕으로 값이 할당된다. 또한, Producer, SourceContent, production_date, duration, image_url, timeline_ metadata는 편집에 사용된 콘텐츠들의 ID, 편집 완료 날짜, 편집 콘텐츠의 길이, 편집 콘텐츠의 대표 이미지 URL, 편집 정보 메타데이터를 나타내며 편집기에 의해 자동으로 값이 할당된다. 특히, image_url에는 메타데이터 등록 모듈과 썸네일 추출기를 통해 추출 및 저장되는 대표 이미지의 위치 정보 값이 할당되며, timeline_metadata에는 그림 2와 같은 구조를 가지는 XML 형태의 TimeLine 메타데이터가 할당된다.
표 3.편집 메타데이터의 핵심 요소 Table 3. Core elements of edit metadata
6. 편집 콘텐츠 재생 모듈(Edit Content Playback Module)
편집 콘텐츠 재생 모듈은 편집 완료된 콘텐츠를 사용자가 검색하고 재생하기 위한 용도로 사용되며, 편집 완료된 콘텐츠를 검색하기 위한 모듈인 편집 콘텐츠 검색 모듈(Edited content search module) 및 편집 콘텐츠 검색 엔진(Edited content search engine)과 검색된 편집 콘텐츠를 재생하기 위한 모듈인 편집 콘텐츠 스트리밍 재생기(Edited content streaming player) 및 스트리밍 서버(Streaming server)로 구성된다. 편집 콘텐츠 검색에는 표 3에 정의된 편집 메타데이터 요소 중 title, subtitle, storyline, keyword 와 텍스트 질의어를 비교하여 검색하는 방법이 사용되며, 검색 질의 및 응답 형식으로는 MPEG-QF 표준에 정의된 형식이 사용된다. 검색 결과에 대한 응답으로는 표 3에 정의된 편집 메타데이터의 요소 중 content_id, title, storyline, image_url이 사용된다. 검색 응답의 요소 중 title, storyline, image_url은 검색 결과를 사용자 인터페이스에 표시하기 위한 용도로 사용되며, content_id는 검색 결과를 재생하는 데에 사용된다.
검색된 편집 콘텐츠 중 사용자 선택에 의해 특정콘텐츠를 재생할 때에는 HLS 기술이 사용된다. 먼저 편집 콘텐츠 스트리밍 재생기가 선택된 편집 콘텐츠의 content_id를 스트리밍 서버로 전송하면, 스트리밍 서버는 해당 콘텐츠의 timeline_ metadata를 분석하여 m3u8을 생성한다. 스트리밍 서버는 생성된 m3u8을 편집 콘텐츠 스트리밍 재생기로 전송하며, 편집 콘텐츠 스트리밍 재생기는 전송받은 m3u8을 이용하여 스트리밍 서버에 접속하고 스트리밍 재생을 시작한다.
Ⅳ. 구현 결과
표 4는 본 논문에서 제안한 편집 시스템과 기존의 대표적인 콘텐츠 편집기인 Windows Movie Maker, PotEncoder, VideoPad와의 콘텐츠 편집기능을 비교한 것이다. 표 4에서 보듯이, 제안한 편집 시스템은 개인 콘텐츠 편집 용도로 사용되는 기존의 편집기와 유사한 기능을 제공하는 한편 온라인상에서 방송 및 개인 콘텐츠를 편집하기 위한 추가적인 기능들을 지원한다.
표 4.편집기의 지원기능 비교 Table 4. Support function comparisons of editors
그림 4는 본 논문에서 제안한 편집 시스템을 이용해서 콘텐츠를 등록하고 씬 기반 콘텐츠 편집을 수행하는 구현 결과를 보여준다. 그림 4(a)는 사용자가 보유하고 있는 개인 콘텐츠를 제안하는 편집 시스템의 콘텐츠 관리 서버에 등록하기 위해 개인 콘텐츠 메타데이터를 생성하는 과정을 보여준다. 제안한 편집 시스템에서는 방송 사업자나 일반 사용자에 의해 제공되는 메타데이터에 콘텐츠에서 검출되는 씬 정보를 추가하여 콘텐츠 메타데이터를 생성하는데, 방송 콘텐츠의 경우에는 방송 사업자가 제공하는 메타데이터를 활용하며, 개인 콘텐츠의 경우에는 그림 4(a)와 같이 사용자에 의해 수동으로 입력되는 정보를 이용한다. 제안한 편집 시스템에서는 개인 콘텐츠 등록을 위해 수동으로 입력되는 정보로 제목(title), 설명(storyline), 장르(genre)가 사용되며, 장르는 ‘뉴스’, ‘시사교양’, ‘드라마’, ‘연예오락’, ‘스포츠’로 구분된다. 또한, 방송 사업자나 일반 사용자가 등록하는 콘텐츠의 씬 검출을 위해서는 기존에 연구된 다양한 방법들이 적용될 수 있으며[16-19], 제안한 편집 시스템에서는 장소 기반 씬 검출 방법[16]을 사용하였다. 그림 4(b) 및 4(c)는 제안한 편집 시스템을 이용해서 씬 단위 콘텐츠를 검색하고 재생하는 구현 결과를 보여준다. 그림 4(b)에서 보듯이, 제안한 편집 시스템은 텍스트 질의 기반 검색 방법을 사용하며, 검색 질의 및 응답 형식으로는 MPEGQF 표준 형식을 사용한다. 그림 4(c)에서 보듯이, 제안한 편집 시스템은 HLS 스트리밍 기술을 이용하여 씬 단위 콘텐츠를 재생하는데, HLS 스트리밍 기술을 이용하여 씬 단위 콘텐츠를 재생할 때에는 시간 단위로 썸네일 이미지를 추출하여 사용자에게 표시하는 기능을 제공한다. 또한, 콘텐츠를 재생할 때에는 상단의 재생 바와 함께 하단의 조그셔틀 재생 바를 제공함으로서, 상단의 재생 바를 통해서는 씬 단위 콘텐츠의 전체 재생길이 대비 재생중인 현재 위치를 손쉽게 알 수 있는 기능을 제공하며, 하단의 조그셔틀 재생 바를 통해서는 재생 타임라인을 확대 및 축소함으로서 편집을 수행하고자 하는 위치를 손쉽게 찾을 수 있는 기능을 제공한다. 그림 4(d)는 제안한 편집 시스템을 이용해서 씬 단위 콘텐츠의 타임라인 편집을 수행하는 구현 결과를 보여준다. 제안한 편집 시스템은 씬 단위 콘텐츠의 편집 구간을 타임라인에 배치하는 기능과 타임라인에 배치된 콘텐츠들의 위치를 이동시키거나 삭제하는 기능을 제공한다.
그림 4.씬 단위 콘텐츠 편집 Fig. 4. Scene-based content editing
그림 5는 타임라인 상에서 씬 단위 콘텐츠 편집을 완료한 후, 편집 메타데이터를 생성하여 등록하는 과정과 일반 사용자가 편집 콘텐츠를 검색하고 재생하는 과정을 보여준다. 먼저, 그림 5(a)는 편집 결과를 편집자가 확인할 수 있는 프리뷰 기능을 보여준다. 프리뷰 기능을 위해서는 씬 단위 콘텐츠 재생과 마찬가지로 HLS 기술이 사용되며, HLS를 위한 m3u8 생성에는 XML 기반 TimeLine 메타데이터가 사용된다. 그림 5(b)는 타임라인 상에서 편집이 완료된 후, 편집 메타데이터를 생성하는 과정을 보여준다. 편집 메타데이터는 편집기를 통해 자동으로 생성되는 정보와 편집자에 의해 수동으로 입력되는 정보를 이용하여 생성된다. 그림 5(b)에서 보듯이, 제안한 편집 시스템에서는 편집자에 의해 수동으로 입력되는 정보로서 제목(title), 설명(storyline), 출연자(cast), 키워드(keyword), 장르(genre)를 이용한다. 그림 5(c) 및 5(d)는 제안한 편집 시스템의 편집 콘텐츠 재생 모듈을 통해 일반 사용자가 편집 완료된 콘텐츠를 검색하고 시청하는 구현 결과를 보여준다. 구현된 편집 시스템은 텍스트 질의를 기반으로 편집 콘텐츠 검색을 수행하는 기능과 검색된 편집 콘텐츠를 HLS 기술을 이용해서 재생하는 기능을 제공한다.
그림 5.편집 메타데이터 등록 및 편집 콘텐츠 재생 Fig. 5. Edit metadata generation and playback of edited contents
Ⅴ. 결 론
본 논문에서는 편집자가 콘텐츠를 보유하고 있지 않으면서도 온라인상에서 방송 콘텐츠와 개인 콘텐츠를 손쉽게 편집하고 유통시킬 수 있는 새로운 콘텐츠 편집 시스템을 제안하였다. 콘텐츠를 다운로드하여 편집하는 기존의 편집방법과는 달리, 제안한 편집 시스템에서는 스트리밍 기술을 사용하여 콘텐츠를 재생하는 동시에 편집을 수행한다. 이때, 긴 분량의 콘텐츠를 스트리밍 기술을 이용해서 재생하며 편집하는 것은 비효율적이므로, 콘텐츠의 씬 검출을 수행한 후 씬 단위 콘텐츠를 편집에 사용한다. 제안하는 편집 시스템에서는 콘텐츠의 씬 단위 정보 및 편집 정보가 메타데이터 형태로만 존재할 뿐, 씬 단위 혹은 편집 분절 단위의 물리적인 콘텐츠 분할은 수행되지 않으므로 콘텐츠 편집에 따른 저장 공간에 대한 부담이 적은 장점을 가진다. 구현 결과는 제안한 편집 시스템이 편집 대상 콘텐츠를 다운로드한 후 편집하는 기존의 콘텐츠 편집 방법을 사용하지 않고서도 기존의 방법과 유사한 성능을 제공함을 보여준다.
본 논문에서 제안한 편집 시스템은 콘텐츠에 대한 다운로드를 제한하면서도 보유하고 있는 콘텐츠들을 활용하여 부가적인 수익을 창출하거나 시청자 참여를 유도하여 콘텐츠 소비를 활성화시키는 서비스에 효과적으로 활용될 수 있을 것이다.
References
- S. Owen, "The changing shape of on-line disc-based editing," Int'l Conference on Broadcasting Convention, pp. 73-78, Sep. 1996.
- M. Horton, "Beyond non linear editing," Int'l Conference on Broadcasting Convention, pp. 661-666, Sep. 1994.
- R. Jasinschi and J. Moura, "Nonlinear editing by generative video," Int'l Conference on Acoustics, Speech, and Signal Processing, vol. 2, pp. 1220-1223, May 1996.
- W. Aref, I. Kamel and S. Ghandeharizadeh, "Disk scheduling in video editing systems," IEEE Trans. on Knowledge and Data Engineering, vol. 13, no. 6, pp. 933-950, Nov. 2001. https://doi.org/10.1109/69.971188
- J. Casares, A. Long, B. Myers, R. Bhatnagar, S. Stevens, L. Dabbish, D. Yocum and A. Corbett, "Simplifying video editing using metadata," Conference on Designing Interactive Systems: Processes, Practices, Methods, and Techniques, pp. 157-166, June 2002.
- V. Rajgopalan, A. Ranganathan, R. Rajagopalan and S. Mudur, "Keyframe-guided automatic non-linear video editing," International Conference on Pattern Recognition, pp. 3236-3239, Aug. 2010.
- A. Yoshitaka and Y. Deguchi, "Rendition-based video editing for public contents authoring," IEEE International Conference on Image Processing, pp. 1825-1828, Nov. 2009.
- I. Song and J. Nang, "Design of a video metadata schema and implementation of an authoring tool for user edited contents creation," Journal of KIISE, vol. 42, no. 3, pp. 413-418, March 2015. https://doi.org/10.5626/JOK.2015.42.3.413
- M. Kumano, Y. Ariki, M. Amano, K. Uehara, K. Shunto and K. Tsukada, "Video editing support system based on video grammar and content analysis," Int'l Conference on Pattern Recognition, vol. 2, pp. 1031-1036, Aug. 2002.
- A. Girgensohn, J. Boreczky, P. Chiu, J. Doherty, J. Foote, G. Golovchinsky, S. Uchihashi and L. Wilcox, "A semi-automatic approach to home video editing," ACM Symposium on User Interface Software and Tech., pp. 81-89, Nov. 2000.
- T. Takiguchi, J. Adachi and Y. Ariki, "Audio-based video editing with two-channel microphone," Int'l Journal of Hybrid Information Technology, vol. 1, no. 3, pp. 71-80, July 2008.
- A. Outtagarts and A. Mbodj, "A cloud-based collaborative and automatic video editor," IEEE International Symposium on Multimedia, pp. 380-381, Dec. 2012.
- S. Lu, S. Zhang, J. Wei, S. Hu and R. Martin, "Timeline editing of objects in video," IEEE Trans. on Visualization and Computer Graphics, vol. 19, no. 7, pp. 1218-1227, July 2013. https://doi.org/10.1109/TVCG.2012.145
- E. Bennett and L. Mcmillan, "Proscenium: a framework for spatio-temporal video editing," ACM International Conference on Multimedia, pp. 177-184, Nov. 2003.
- X. Guo, X. Cao, X. Chen and Y. Ma, "Video editing with temporal, spatial and appearance consistency," IEEE Conference on Computer Vision and Pattern Recognition, pp. 2283-2290, June 2013.
- J. Ryu and J. Nang, "Video segmentation based on place for TV drama video," Korea Computer Congress, pp. 1364-1366, June 2014.
- H. Li, G. Liu, Z. Zhang and Y. Li, "Adaptive scene-detection algorithm for VBR video stream," IEEE Trans. on Multimedia, vol. 6, no. 4, pp. 624 - 633, Aug. 2004. https://doi.org/10.1109/TMM.2004.830812
- P. Panchal, S. Merchant and N. Patel, "Scene detection and retrieval of video using motion vector and occurrence rate of shot boundaries," Int'l Conference on Engineering, pp. 1-6, Dec. 2012.
- V. Chasanis, A. Likas and N. Galatsanos, "Scene detection in videos using shot clustering and sequence alignment," IEEE Trans. on Multimedia, vol. 11, no. 1, pp. 89-100, Jan. 2009. https://doi.org/10.1109/TMM.2008.2008924