발명의 몇몇 필수 실시예는 아래에 나열되어 있다. 하나의 실시예에서, 멀티미디어 콘텐트로부터 멀티미디어 클립을 만드는 방법에 대한 발명은 다음의 단계를 포함할 수 있다 : 현재 재생된 멀티미디어 콘텐트를 버퍼에 저장하는 단계 ; 현재의 시간 또는 현재의 프레임을 멀티미디어 클립의 끝점으로 지정하는 단계 ; 멀티미디어 클립의 시작점을 산출하거나 수신하는 단계 ; 및 멀티미디어 클립의 저장된 부분에서 시작점과 끝점 사이를 버퍼로부터 추출하는 단계이다. 앞서 언급한 단계들은 멀티미디어 콘텐트의 재생을 인터럽트 하지 않으면서 수행된다.
하나의 실시예에서, 상기 방법은 현재의 시간 또는 현재의 프레임에서 멀티미디어 클립 제작을 위한 명령을 수신하는 단계를 더 포함할 수 있다.
하나의 실시예에서, 자동 클리핑 모드에서 적어도 하나 이상의 외부 또는 내부 센서를 통해서 끝점을 지정 받을 수 있다.
하나의 실시예에서, 자동 클리핑 모드에서 명령을 외부 또는 내부 센서를 통해서 수신할 수 있다.
하나의 실시예에서, 반자동 클리핑 모드에서 명령을 외부 센서, 내부 센서 또는 사용자 인터페이스를 통해서 수신할 수 있다.
하나의 실시예에서, 수동 클리핑 모드에서 명령을 사용자 인터페이스를 통해서 수신할 수 있다.
하나의 실시예에서, 상기 방법은 미리 설정된 위치 또는 사용자가 수시로 지정한 위치에 멀티미디어 클립을 저장할 수 있다.
하나의 실시예에서, 자동 클리핑 모드에서 시작점을 수신하는 것은 콘피규레이션 파일로부터 추출된 미리 설정된 지속기간을 이용하여 시작점을 지정하는 것을 포함할 수 있다.
하나의 실시예에서, 시작점을 산출하는 것은 자동 클리핑 모드에서 외부 또는 내부 센서로부터 수신한 멀티미디어 클립의 끝점과 지속시간을 이용하여 시작점을 산출하는 것을 포함할 수 있다.
하나의 실시예에서, 시작점을 산출하는 것은 반자동 클리핑 모드에서 멀티미디어 클립의 끝점과 미리 설정된 지속시간을 이용하여 시작점을 산출하는 것을 포함할 수 있다. 여기서 끝점은 사용자 인터페이스의 입력에 기초하여 지정된다.
하나의 실시예에서, 시작점을 수신하는 것은 반자동 클리핑 모드에서 후술하는 두 번째 규칙 세트에 기초하여 외부 또는 외부 센서로부터 시작점을 수신하는 것을 포함할 수 있다. 여기서 끝점은 외부 또는 내부 센서의 입력에 기초하여 정해진다.
하나의 실시예에서, 시작점을 산출하거나 수신하는 것은 반자동 클리핑 모드의 사용자 인터페이스 모드의 입력에 기초하여 시작점을 산출하거나 수신하는 것을 포함할 수 있다.
하나의 실시예에서, 시작점을 수신하는 것은 시작점을 입력으로서 수동 클리핑 모드의 사용자 인터페이스로부터 수신하는 것을 포함할 수 있고, 상기 입력은 그래픽 사용자 인터페이스에 기초한 입력의 하나로서, 텍스쳐 입력, 제스쳐 입력, 음성 입력, 또는 어떤 다른 적당한 입력 체계 등이 있을 수 있다.
하나의 실시예에서, 텍스쳐 입력은 지속시간, 시작점 또는 멀티미디어 클립의 시작 프레임 숫자의 입력일 수 있다.
하나의 실시예에서, 발명은 자동으로 멀티미디어 클립 콘텐트로부터 멀티미디어 클립을 제작하는 방법을 포함하는데, 방법은 다음의 단계를 포함할 수 있다 ; 현재 재생된 멀티미디어 클립 콘텐트를 버퍼에 저장하는 단계 ; 첫 번째 규칙 세트에 기초하여 멀티미디어 클립 생성을 위한 명령을 만들어 내는 단계 ; 명령을 수신하자마자 현재 시간 또는 현재 프레임을 멀티미디어 클립의 끝점으로서 지정하는 단계 ; 멀티미디어 클립의 시작점을 산출하거나 수신하는 단계 ; 및 멀티미디어 클립의 버퍼에 저장된 멀티미디어 클립 콘텐트의 시작점과 끝점 사이 부분을 추출해서 멀티미디어 클립을 생성하는 단계를 포함할 수 있다. 상기 단계들은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 수행된다.
하나의 실시예에서, 미리 설정된, 후술할 첫 번째 규칙 세트는 멀티미디어 클립의 시작점을 지정하기 위한 또는 멀티미디어 클립 제작을 위한 명령을 생성하기 위한 적어도 하나의 규칙들을 포함할 수 있다.
하나의 실시예에서, 미리 설정된, 후술할 두 번째 규칙 세트는 멀티미디어 클의 시작점 지정을 위한 적어도 하나의 규칙을 포함할 수 있다.
하나의 실시예에서, 발명은 멀티미디어 콘텐트로부터 멀티미디어 클립을 반자동적으로 생성하는 방법을 포함하고 있고, 다음의 단계들을 포함할 수 있다: 현재 재생된 멀티미디어 클립 콘텐트를 버퍼에 저장하는 단계 ; 현재 시간 또는 현재 프레임을 멀티미디어 클립의 끝점으로 지정하는 단계 ; 멀티미디어 클립의 시작점을 지정하는 단계 ; 및 버퍼로부터 지정된 시작점과 끝점 사이를 저장한 멀티미디어 콘텐트를 추출해서 멀티미디어 클립을 생성하는 단계를 포함할 수 있다. 상기 단계들은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 수행된다. 시작점이나 끝점의 수동 입력에 기초하여 지정되고 반면에 다른 것들은 수동 입력에 기초하지 않는다.
하나의 실시예에서, 발명은 멀티미디어 클립 콘텐트로부터 반자동적으로 멀티미디어 클립을 생성하는 방법을 포함하고, 방법은 다음의 단계들을 포함할 수 있다 : 현재 재생된 멀티미디어 콘텐트를 버퍼에 저장하는 단계 ; 멀티미디어 클립의 끝점으로서 현재 시간과 현재 프레임을 지정하는 단계 ; 미리 설정된 멀티미디어 클립의 지속시간과 끝점에 기초하여 시작점을 산출하는 단계 ; 및 멀티미디어 콘텐트의 시작점과 끝점의 사이 부분을 저장한 것을 버퍼에서 추출해서 멀티미디어 클립을 생성하는 단계를 포함할 수 있다. 여기서 상기 단계들은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 수행된다.
하나의 실시예에서, 상기 방법은 사용자 인터페이스의 현재 시간 또는 현재 프레임에서 멀티미디어 클립 생성을 위한 명령을 수신하는 것을 포함할 수 있다.
하나의 실시예에서, 상기 방법은 미리 설정된 멀티미디어 클립의 지속시간을 추출하기 위해 콘피규레이션 파일에 접근하는 것을 포함할 수 있다.
하나의 실시예에서, 발명은 멀티미디어 콘텐트로부터 반자동적으로 멀티미디어 클립을 생성하는 방법을 포함한다. 방법은 다음의 단계로 구성될 수 있다 : 현재 재생한 멀티미디어 콘텐트를 버퍼에 저장하는 단계 ; 첫 번째 규칙 세트에 기초하여 멀티미디어 클립 제작을 위한 명령을 생성하는 단계 ; 명령에 따라 현재 시간 또는 현재 프레임을 멀티미디어 클립의 끝점으로 지정하기 ; 사용자 인터페이스에 기초하여 멀티미디어 클립의 시작점을 산출 또는 수신하기 ; 및 버퍼에 저장된 멀티미디어 콘텐트의 시작점과 끝점 사이 부분을 추출해서 멀티미디어 클립을 생성하는 단계를 포함할 수 있다. 여기서 상기 단계들은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 수행된다.
하나의 실시예에서, 입력으로 지속시간, 시작 시간, 또는 멀티미디어 클립의 시작 프레임 숫자 등이 있을 수 있다.
하나의 실시예에서, 입력은 그래픽 사용자 인터페이스의 하나로서 입력, 텍스쳐 입력, 제스쳐 입력, 또는 음성 입력에 기초할 수 있다.
하나의 실시예에서, 발명은 반자동적으로 멀티미디어 콘텐트로부터 멀티미디어 클립을 생성하는 방법을 포함하고, 다음의 단계를 포함할 수 있다 : 현재 재생한 멀티미디어 콘텐트를 버퍼에 저장하는 단계 ; 사용자 입력에 기초하여 현재 시간 또는 현재 프레임을 멀티미디어 클립의 끝점으로서 지정하는 단계 ; 두 번째 규칙 세트에 기초하여 멀티미디어 클립의 시작점을 자동적으로 지정하는 단계 ; 및 버퍼에 저장된 멀티미디어 콘텐트의 시작과 끝점 사이 부분을 추출해서 멀티미디어 클립을 제작하는 단계를 포함할 수 있다. 여기서 상기 단계들은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 수행된다. 그리고 시작점 또는 끝점의 지정은 수동 입력에 기초하여 지정되고, 다른 부분은 수동 입력에 기초하지 않고 지정된다.
하나의 실시예에서, 방법은 사용자 인터페이스로부터의 현재 시간 또는 현재 프레임에서 멀티미디어 클립 제작을 위한 명령을 수신하는 것을 포함할 수 있다.
하나의 실시예에서, 입력으로 지속시간, 시작 시간 또는 멀티미디어 클립의 시작 프레임 숫자가 있을 수 있다.
하나의 실시예에서, 입력은 사용자 그래픽 인터페이스의 하나로서 입력, 텍스쳐 입력, 제스쳐 입력 또는 음성 입력에 기초할 수 있다.
하나의 실시예에서, 발명은 멀티미디어 콘텐트로부터 멀티미디어 클립을 생성하기 위한 시스템을 포함한다. 시스템은 시스템 작동을 조절하기 위한 콘트롤러, 버퍼에 현재 재생된 멀티미디어 콘텐트를 저장하기 위한 저장부, 현재 시간 또는 현재 프레임을 멀티미디어 클립의 끝점으로서 지정하기 위한, 멀티미디어 클립의 시작점을 산출하거나 수신하기 위한, 또 버퍼로부터 멀티미디어 클립 콘텐트의 시작점과 끝점 사이의 저장된 부분을 불러와서 멀티미디어 클립을 제작하기 위한, 멀티미디어 클리퍼로 구성될 수 있다. 상기 기능들은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 수행된다. 그리고 시작점과 끝점을 지정함에 있어서는 수동 입력에 기초하지만 다른 것에 있어서는 수동 입력에 기초하지 않는다.
하나의 실시예에서, 발명은 멀티미디어 콘텐트로부터 멀티미디어 클립을 수동적으로 만드는 방법을 포함한다. 방법은 다음과 같은 단계를 포함할 수 있다 : 현재 재생한 멀티미디어 콘텐트를 버퍼에 저장하는 단계 ; 현재 시간 또는 현재 프레임을 멀티미디어 클립의 끝점으로 지정하는 단계 ; 사용자 인터페이스로부터 받은 입력에 기초하여 멀티미디어 클립의 시작점을 산출 또는 수신하는 단계 ; 및 버퍼에 저장된 멀티미디어 콘텐트의 시작과 끝점 사이 부분을 추출해서 멀티미디어 클립을 생성하는 단계. 상기 단계들은 멀티미디어 콘텐트를 인터럽트 함이 없이 수행된다.
하나의 실시예에서, 상기 방법은 사용자 인터페이스에서 현재의 시간 또는 현재의 프레임에 멀티미디어 클립을 생성하는 것을 포함할 수 있다.
하나의 실시예에서, 상기 입력은 지속시간, 시작 시간 또는 멀티미디어 클립의 시작 프레임 숫자가 있을 수 있다.
하나의 실시예에서, 상기 입력은 입력, 텍스쳐 입력, 제스쳐 입력, 또는 음성 입력에 기초한 사용자 그래픽 인터페이스 중의 하나일 수 있다.
하나의 실시예에서, 발명은 멀티미디어 콘텐트로부터 멀티미디어 클립을 생성하는 시스템을 포함한다. 시스템은 다음으로 구성될 수 있다 : 시스템의 작동을 조절하기 위한 콘트롤러 ; 현재 재생한 멀티미디어 콘텐트를 버퍼에 저장하기 위한 저장부 ; 및 현재 시간 또는 현재 프레임을 멀티미디어 클립의 끝점으로 지정하기 위한, 멀티미디어 클립의 시작점을 산출 또는 수신하기 위한, 그리고 버퍼에 저장되어 있는 멀티미디어 콘텐트의 시작점과 끝점 사이 부분을 추출해서 멀티미디어 클립을 생성하기 위한 멀티미디어 클리퍼. 상기 기능들은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 수행된다.
하나의 실시예에서, 시스템은 현재의 시간 또는 현재의 프레임에서 멀티미디어 클립을 생성하기 위해 입력을 수신하는 입력부를 포함할 수 있다. 여기서 입력은 수동 모드의 사용자 인터페이스로부터 수신하거나 적어도 하나 이상의 자동 클리핑 모드의 외부 센서 또는 내부 센서에서 수신한다.
하나의 실시예에서, 시스템은 멀티미디어 콘텐트를 실행하기 위한 출력부를 더 포함할 수 있다.
하나의 실시예에서, 명령은 자동 클리핑 모드의 외부 센서 또는 내부 센서로부터 수신할 수 있다.
하나의 실시예에서, 명령은 반자동 클리핑 모드의 외부 센서, 내부 센서, 또는 사용자 인터페이스에서 수신할 수 있다.
하나의 실시예에서, 명령은 수동 클리핑 모드의 사용자 인터페이스로부터 수신할 수 있다.
하나의 실시예에서, 멀티미디어 클리퍼는 다음의 구성을 포함할 수 있다 : 멀티미디어 클립 생성을 위한 유발을 찾는 디텍션 모듈 ; 멀티미디어 클립의 시작점과 끝점을 다루도록 설정된 셀렉터 모듈 ; 사용자와의 상호작용을 위해 사용자 인터페이스를 제공하도록 설정된 프레젠테이션 모듈 ; 버퍼를 관리하도록 설정된 버퍼 모듈 ; 멀티미디어 클립을 생성하고 저장하도록 설정된 클리핑 모듈, 그리고 버퍼 모듈, 프레젠테이션 모듈 및 클리핑 모듈 사이에서 인터페이스로 동작하도록 설정된 프레임 그래버 모듈.
하나의 실시예에서, 멀티미디어 클리퍼를 위한 설정은 콘피규레이션 파일에 저장되어 있을 수 있고, 콘피규레이션 파일은 미리 설정된 멀티미디어 클립의 지속시간, 미리 설정된 시작시간, 미리 설정된 시작 프레임 숫자, 썸네일 크기, 보여지는 썸네일들의 숫자, 버퍼 크기, 버퍼 위치, 미리 설정된 위치, 그리고 소셜 네트워킹 웹사이트에 직접적인 업로드가 가능한 자격과 더불어 url을 포함할 수 있다.
하나의 실시예에서, 멀티미디어 클리퍼는 자동 클리핑 모드의 외부 센서 또는 내부 센서에서 시작점을 수신할 수 있다.
하나의 실시예에서, 멀티미디어 클리퍼는 시작점을 끝점과, 자동 클리핑 모드의 외부 센서 또는 내부 센서에서 수신한 멀티미디어 클립의 미리 설정된 지속시간을 이용하여 산출할 수 있다.
하나의 실시예에서, 멀티미디어 클리퍼는 반자동 클리핑 모드에서 시작점을 끝점과 멀티미디어 클립의 미리 설정된 지속시간을 가지고 산출할 수 있는데, 여기서 끝점은 사용자 인터페이스에서 수신한 입력을 기초로 지정될 수 있다.
하나의 실시예에서, 멀티미디어 클리퍼는 시작점을 반자동 클리핑 모드의 두 번째 규칙 세트를 이용하여 산출할 수 있다. 여기서 끝점은 사용자 인터페이스로부터 수신한 입력에 기초하여 지정될 수 있다.
하나의 실시예에서, 멀티미디어 클리퍼는 시작점을 반자동 클리핑 모드의 사용자 인터페이스로부터 수신한 입력에 기초하여 산출 또는 전달 받을 수 있는데, 여기서 끝점은 외부 센서 또는 내부 센서에 기초하여 지정될 수 있다.
하나의 실시예에서, 멀티미디어 클리퍼는 시작점을 끝점과 수동 클리핑 모드에서 사용자 인터페이스로부터 수신한 멀티미디어 클립의 지속시간을 이용하여 산출할 수 있다.
하나의 실시예에서, 멀티미디어 클리퍼는 사용자 인터페이스를 통해 시작점을 수동 클리핑 모드에서 입력으로서 수신할 수 있고, 상기 입력은 입력, 텍스쳐 입력, 제스쳐 입력, 음성 입력, 또는 다른 적당한 입력에 기초한 사용자 그래픽 인터페이스 중의 하나가 될 수 있다.
하나의 실시예에서, 텍스쳐 입력으로 지속시간, 시작 시간 또는 멀티미디어 클립의 시작 프레임 숫자 중 하나를 입력할 수 있다..
하나의 실시예에서, 발명은 멀티미디어 콘텐트로부터 자동적으로 멀티미디어 클립을 만드는 시스템을 포함하는데, 시스템은 다음으로 구성될 수 있다 : 시스템의 작동을 제어하기 위한 콘트롤러 ; 첫 번째 규칙 세트에 기초하여 멀티미디어 클립을 생성하기 위한 명령을 생성하기 위한 내부 센서 ; 버퍼에 있는 현재 재생된 멀티미디어 콘텐트를 저장하기 위한 저장부 ; 및 내부 센서로부터의 명령에 따라 현재 시간 또는 현재 프레임을 멀티미디어 클립의 끝점으로 지정하기 위한, 멀티미디어 클립의 시작점을 산출하기 위한, 그리고 버퍼에 저장된 멀티미디어 콘텐트의 시작점과 끝점 사이 부분을 추출해서 멀티미디어 클립을 생성하기 위한 멀티미디어 클리퍼. 여기서 상기 기능들은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 수행된다.
하나의 실시예에서, 시스템은 멀티미디어 클립을 현재의 시간 또는 현재의 프레임에서 생성하기 위해 내부 센서로부터 명령을 수신하기 위한 입력부를 포함할 수 있다.
하나의 실시예에서, 멀티미디어 클리퍼는 시작점을 지속시간, 시작시간, 또는 멀티미디어 클립의 시작 프레임 숫자를 두 번째 규칙 세트에 기초하여 산출할 수 있다.
하나의 실시예에서, 발명은 멀티미디어 콘텐트로부터 멀티미디어 클립을 반자동적으로 생성하기 위한 시스템을 포함한다. 시스템은 다음으로 구성될 수 있다 : 시스템의 작동을 제어하기 위한 콘트롤러 ; 버퍼에 현재 재생된 멀티미디어 콘텐트를 저장하기 위한 저장부 ; 그리고 현재 시간 또는 현재 프레임을 멀티미디어 클립의 끝점으로 지정하기 위한, 멀티미디어 클립의 시작점을 지정하기 위한, 그리고 멀티미디어 콘텐트의 시작점과 끝점 사이의 부분으로서 버퍼에 저장된 멀티미디어 클립 부분을 버퍼로부터 추출해서 멀티미디어 클립을 생성하기 위한 멀티미디어 클리퍼. 여기서 상기 기능들은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 수행되고, 시작점 또는 끝점의 지정은 수동 입력에 기초하고 반면에 다른 것은 수동 입력에 기초하지 않는다.
하나의 실시예에서, 발명은 반자동적으로 멀티미디어 콘텐트로부터 멀티미디어 클립을 생성하기 위한 시스템을 포함한다. 시스템은 다음으로 구성될 수 있다 : 시스템의 작동을 제어하기 위한 콘트롤러 ; 현재 재생된 멀티미디어 콘텐트를 버퍼에 저장하기 위한 저장부 ; 그리고 현재 시간 또는 현재 프레임을 멀티미디어 클립의 끝점으로 지정하기 위한, 미리 설정된 멀티미디어 클립의 지속시간과 끝점에 기초하여 멀티미디어 클립의 시작점을 산출하기 위한, 그리고 멀티미디어 콘텐트의 시작점과 끝점 사이 부분으로서 버퍼에 저장된 부분을 추출해서 멀티미디어 클립을 생성하기 위한 멀티미디어 클리퍼. 여기서 상기 기능들은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 수행된다.
하나의 실시예에서, 시스템은 사용자 인터페이스로부터의 현재 시간 또는 현재 프레임에서 멀티미디어 클립을 생성하기 위한 명령을 수신하기 위해 입력부를 포함할 수 있다.
하나의 실시예에서, 멀티미디어 클리퍼는 미리 설정된 멀티미디어 클립의 지속시간을 추출하기 위해 저장부에 저장되어 있는 콘피규레이션 파일에 접근(access)할 수 있다.
하나의 실시예에서, 발명은 반자동적으로 멀티미디어 콘텐트로부터 멀티미디어 클립을 생성하는 시스템을 포함한다. 시스템은 다음으로 구성될 수 있다 : 시스템의 작동을 제어하기 위한 콘트롤러 ; 내부 센서 또는 두 번째 규칙 세트에 기초하여 멀티미디어 클립을 생성하기 위한 명령을 발생하기 위한 것 ; 현재 재생한 멀티미디어 콘텐트를 버퍼에 저장하기 위한 저장부 ; 및 내부 센서로부터의 명령에 따라 현재 시간 또는 현재 프레임을 멀티미디어 클립의 끝점으로 지정하기 위한, 사용자 인터페이스 입력으로부터 받은 입력에 기초하여 멀티미디어 클립의 시작점을 산출 또는 수신하기 위한, 그리고 시작점과 끝점 사이의 멀티미디어 콘텐트 부분을 버퍼로부터 추출해서 멀티미디어 클립을 생성하기 위한 멀티미디어 클리퍼. 여기서 상기 기능들은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 수행된다.
하나의 실시예에서, 시스템은 멀티미디어 클립을 현재의 시간 또는 현재의 프레임에서 생성하기 위해 내부 센서로부터 명령을 수신하기 위한 입력부를 더 포함할 수 있다.
하나의 실시예에서, 입력은 지속시간, 시작 시간, 또는 멀티미디어 클립의 시작 프레임 숫자일 수 있다.
하나의 실시예에서, 입력은 입력, 텍스쳐 입력, 제스쳐 입력, 음성 입력 또는 다른 적당한 입력에 기초한 사용자 그래픽 인터페이스 중의 하나일 수 있다.
하나의 실시예에서, 발명은 멀티미디어 콘텐트로부터 멀티미디어 클립을 수동적으로 생성하는 시스템을 포함한다. 시스템은 다음으로 구성될 수 있다 : 시스템의 작동을 제어하기 위한 콘트롤러 ; 현재 재생한 멀티미디어 콘텐트를 버퍼에 저장하기 위한 저장부 ; 및 현재 시간 또는 현재 프레임을 멀티미디어 클립의 끝점으로 지정하기 위한, 사용자 인터페이스로부터 받은 입력에 기초하여 멀티미디의 클립의 시작점을 산출 또는 수신하기 위한, 그리고 멀티미디어 콘텐트의 시작점과 끝점 사이 부분으로서 버퍼에 저장된 부분을 추출해와 멀티미디어 클립을 생성하는 멀티미디어 클리퍼. 여기서 상기 기능들은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 수행된다.
하나의 실시예에서, 시스템은 사용자 인터페이스부로부터 현재의 시간 또는 현재의 프레임에서 멀티미디어 클립을 생성하기 위한 명령을 수신하기 위해 입력부를 포함할 수 있다.
하나의 실시예에서, 입력은 지속시간, 시작 시간, 또는 멀티미디어 클립의 시작 프레임 숫자를 포함할 수 있다.
하나의 실시예에서, 입력은 입력, 텍스쳐 입력, 제스쳐 입력, 음성 입력, 또는 다른 적당한 입력에 기초한 사용자 그래픽 인터페이스 중 하나일 수 있다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 또한, 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 개시에서 사용되는 용어는, 본 개시에서 언급되는 기능을 고려하여 현재 사용되는 일반적인 용어로 기재되었으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 다양한 다른 용어를 의미할 수 있다. 따라서 본 개시에서 사용되는 용어는 용어의 명칭만으로 해석되어서는 안되며, 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 해석되어야 한다.
또한, 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 이 용어들에 의해 한정되어서는 안 된다. 이 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용된다.
또한, 본 개시에서 사용된 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것이며, 본 개시를 한정하려는 의도로 사용되는 것이 아니다. 단수의 표현은 문맥상 명백하게 단수를 뜻하지 않는 한, 복수의 의미를 포함한다. 또한, 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
본 명세서, 특히, 특허 청구 범위에서 사용된 “상기” 및 이와 유사한 지시어는 단수 및 복수 모두를 지시하는 것일 수 있다. 또한, 본 개시에 따른 방법을 설명하는 단계들의 순서를 명백하게 지정하는 기재가 없다면, 기재된 단계들은 적당한 순서로 행해질 수 있다. 기재된 단계들의 기재 순서에 따라 본 개시가 한정되는 것은 아니다.
본 명세서에서 다양한 곳에 등장하는 "일부 실시예에서" 또는 "일 실시예에서" 등의 어구는 반드시 모두 동일한 실시예를 가리키는 것은 아니다.
본 개시의 일부 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단” 및 “구성”등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다.
또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
다음 설명은 사용자로부터 전혀 정보를 수신하지 않거나 또는 최소한으로 입력 정보를 수신함으로써 오디오, 비디오, 플래쉬, 기타 멀티미디어 콘텐트의 재생에 영향을 주지 않는 방법과 시스템에 대한 것으로서 도면과 함께 설명된다. 개시는, 예를 들어 시나리오로 이용되고, 여기서 사용자는 멀티미디어 콘텐트를 보면서 생성, 저장, 그리고/또는 재생되는 멀티미디어 콘텐트를 공유하고 싶어할 수 있다. 다른 시나리오에서, 외부 센서는 전적으로 자동적인 방법으로 멀티미디어 클립의 생성을 유발할 수 있다. 시나리오에서, 본 개시로 인해, 멀티미디어 클립은 전혀 없는 또는 최소한의 입력을 통해 최근 콘텐트의 재생을 인터럽트 함이 없이 생성될 수 있다.
대부분의 사례에서, 멀티미디어 콘텐트를 생성하고 보존하기 위한 결정은 사용자가 희망하는 멀티미디어 클립의 끝점 부근에서 이루어질 수 있다. 멀티미디어 클립은 시작점 및 끝점이 결정됨으로써 생성될 수 있다. 본 개시에서는, 사용자가 멀티미디어 콘텐트를 보고 있으면 외부 유발이 있거나 사용자의 동작으로 인해 현재의 프레임 혹은 현재의 시간이 멀티미디어 클립의 끝점으로 지정될 수 있다. 시작점은 자동 모드의 어떤 외부 센서로부터의 입력에 기초하여 산출될 수 있고, 또는 미리 설정된 클립 지속시간이 반자동 모드의 멀티미디어 클립의 시작점을 산출하는데 이용될 수 있다. 수동 모드에서, 사용자는 클립의 지속시간을 변경함으로써 시작점을 바꾸거나 시작점 또는 시작 프레임을 지정함으로써 시작점을 바꿀 수 있다. 사용자는 입력, 텍스쳐 입력, 제스쳐 입력, 음성 입력, 또는 적당한 입력에 기초한 사용자 인터페이스 중의 하나 이상을 통하여 입력을 제공할 수 있다. 시작점, 끝점 및 콘피규레이션 파일에 기초하여, 멀티미디어 클립은 사용자 특화된 또는 미리 설정된 저장 장소에 생성되고 저장될 수 있다. 이 과정에서 끝점은 알려져 있고, 시작점은 사용자로부터 입력을 수신하거나 또는 산출될 수 있고, 또는 센서로부터 산출되거나 수신될 수 있으므로 리버스 클리핑으로 불릴 수 있다. 센서는 시스템의 외부 또는 내부적으로 수행될 수 있다.
본 개시의 첫 번째 측면에 따라, 클리핑 과정은 완벽하게 그 자체로 동작하며 소프트웨어, 하드웨어 또는 이들의 조합으로 구성되며 검출, 분석 또는 상황 보고가 가능한 외부/내부 센서로부터 클립 생성이 유발될 수 있다. 외부/내부 센서는 하나 또는 그 이상의 무드(mood) 디텍터, 감시 카메라, 이미지 프로세서 등을 포함할 수 있는데, 이것은 첫 번째 규칙 세트와 두 번째 규칙 세트에 각각 기초하여 끝점 및/또는 시작점 및/또는 클립 생성 지속시간을 추적할 수 있다. 이러한 규칙들은 다음의 예시를 통해 이해가능 할 것이다. 보안시스템이 외부/내부 센서의 역할을 수행하고 있는 예시를 가정하자. 보안시스템은 감시카메라와, 감시카메라와 결합된 이미지 프로세서를 포함할 수 있다. 보안시스템은 미리 설정된 첫 번째 규칙 세트에 기초해서 멀티미디어 클립 생성을 유발하도록 설정되어 있을 수 있다. 미리 설정된 첫 번째 규칙 세트는 현재 콘텐트의 멀티미디어 클립 생성을 위하여 필요로 하는 어떤 미리 설정된 규칙을 포함할 수 있다. 그러한 미리 설정된 규칙들은 클립 생성을 유발하는 것에 제한되지 않고, (1) 어떤 비정상적인 행동이 어떤 주체(subject)에 의해 수행될 때, 또는 (2) 캡쳐된 장면이 임계 퍼센트 이상으로 변형될 때, 또는 (3) 장면에서 오디오가 정지되어 캡쳐 되었을 때를 포함할 수 있다. 첫 번째 규칙 세트는 기본적으로 멀티미디어 클립의 끝점을 지정하며 리버스 클리핑 과정 수행을 시작하기 위함에 있다. 비슷하게, 미리 설정된 두 번째 규칙 세트는 멀티미디어 클립의 시작점을 지정하도록 제공될 수 있다. 미리 설정된 두 번째 규칙 세트는 멀티미디어 클립의 시작점을 규정하기 위한 미리 설정된 규칙을 포함할 수 있다. 첫 번째 규칙을 위한 예시에 계속하여, 미리 설정된 두 번째 규칙을 위한 예시들은 소정 프레임 또는 소정 시간을 시작점으로 지정하는데 제한되지 않고 (1) 주체가 장면 안으로 들어올 때, 또는 (2) 캡쳐된 장면이 변하기 시작할 때, 또는 (3) 오디오의 캡쳐된 장면이 시작할 때와 같이 설정될 수 있다.
본 개시의 두 번째 측면에 따를 때, 지속시간이 미리 설정된 멀티미디어 클립은, 반자동적 방법으로 미리 설정된 위치 혹은 이용자 특화된 위치에 저장되는데, 여기서 멀티미디어 클립을 생성하라는 명령만이 유일한 사용자 입력이 될 수 있다. 멀티미디어 클립의 끝점은 사용자에 의해 제공되고, 시작점은 미리 설정된 지속시간 또는 두 번째 규칙 세트에 기초하여 산출될 수 있다. 또는, 멀티미디어 클립의 끝점은 첫 번째 규칙 세트에 기초해서 내부/외부 센서에 의해 제공되고, 반면에 시작점은 사용자 입력에 기초해서 산출되거나 수신될 수 있다. 이러한 예시들은 본 개시에 따른 멀티미디어 클립의 반자동적 생성의 범위에 포함될 수 있다.
개시의 세 번째 측면에 따라, 만약 사용자가 지속시간/시작시간/멀티미디어 클립의 시작 프레임을 바꾸기를 원한다면, 대응하는 지속시간의 입력은 수동 모드에서 획득될 수 있다. 멀티미디어 클립은 수동모드에서 지속 시간의 입력에 따라 생성되고, 미리 설정된 위치나 수시로 제공된 사용자 특화된 위치에 저장될 수 있다.
개시의 네 번째 측면에 따라, 사용자는 아마도 클립의 시작점을 수동적으로 미세조정하기를 원할 수 있다. 이를 위해 일련의 프레임 썸네일 시퀀스가 사용자에게 디스플레이 될 수 있다. 프레임 썸네일 시퀀스의 중간 썸네일은 시작 프레임으로서 강조되어 표시되고, 사용자는 원하는 시작 프레임을 고르기 위해 프레임 썸네일 시퀀스 내의 프레임 썸네일들 중 하나를 선택할 수 있다. 사용자는 터치스크린, 제스쳐, 음성 입력, 텍스쳐 입력, 또는 다른 적당한 입력 등과 같은 메커니즘을 이용하여 이러한 입력을 제공할 수 있다.
하나의 실시예에서, 본 개시는 멀티미디어 콘텐트로부터 멀티미디어 클립을 생성하는 시스템 내에서, 멀티미디어 클립의 생성 중에는 멀티미디어 재생을 인터럽트 하지 않고 수행될 수 있다.
도 1은 본 개시의 실시예에 따른 멀티미디어 클리핑 시스템(100)을 나타내는 도면이다. 시스템(100)은 멀티미디어 클립을 생성하는 디바이스를 포함할 수 있다. 시스템(100)은, 예를 들어, 텔레비전, 독립형의, 분리된 또는 웹 상의 컴퓨팅 시스템, 셋톱 박스, 및 멀티미디어 재생 도구를 포함할 수 있으나, 이에 한정되지 않는다. 멀티미디어 콘텐트는 방송 중인 또는 저장/기록된 멀티미디어일 수 있다. 도 1에서와 같이, 시스템(100)은 콘트롤러(101)를 포함한다. 콘트롤러(101)는 시스템(100)의 멀티미디어 클립을 생성하기 위한 전반적인 동작을 제어하고, 시스템의 다른 콤포넌트들과 통신한다. 콘트롤러(101)는 마이크로 콘트롤러(micro controller) 또는 센트럴 프로세싱 유닛(central processing unit)의 적어도 하나 이상의 형태로 구현될 수 있다. 콘트롤러(101)에 더해서, 시스템(100)은 입력부(102), 출력부(103), 저장부(104), 멀티미디어 클리퍼(105), 및 옵셔널 센서(106)를 포함한다.
입력부(102)는 사용자 입력, 외부 입력, 또는 센서 입력, 예를 들어 멀티미디어 콘텐트의 현재 시간 또는 현재 프레임에서 멀티미디어 클립을 생성하기 위한 명령을 수신할 수 있다. 예를 들어, 입력부(102)는 입력 포트, 터치스크린 디스플레이, 스타일러스, 디지털 펜, 마이크로폰, 및 카메라를 포함할 수 있으나, 이에 제한되지 않는다. 멀티미디어 콘텐트는 오디오 스피커 또는 디스플레이 스크린과 같은 출력부(103)에서 재생된다. 하나의 실시예에서, 출력 디바이스는 인식 가능한 입력을 취하는 것이 가능하다. 예를 들어, 출력 디바이스는 터치 스크린 디스플레이를 포함할 수 있으나, 이에 한정되지 않는다. 터치스크린 디스플레이는 입력부(102)와 출력부(103)로 동작할 수 있다. 하나의 실시예에서, 출력부(103)는, 예를 들어, 셋톱박스와 같이 시스템(100)에 제공되지 않을 수 있다. 그러한 경우에, 출력부(103)는 시스템(100)의 외부의 장치일 수 있다. 더욱이, 저장부(104)는 버퍼에 있는 멀티미디어 콘텐트의 현재 재생한 부분을 저장하는데, 그것은 필요에 따라 일시적으로 제공된 한정된 공간이고 미리 설정된 저장 위치이다.
입력부(102)는 완전 자동 클리핑 모드(자동 모드) 또는 반자동 클리핑 모드(반자동 모드)에서 외부 센서(나타나지 않음) 또는 부수적 내부 센서(106)로부터의 클리핑 명령 및 연관 입력들을 수신할 수 있다. 이런 외부 센서/내부 센서는 소프트웨어 모듈이거나 하드웨어 또는 그 조합일 수 있으며, 자동 또는 반자동 클리핑 모드에서 적어도 하나 이상의 클리핑 입력을 제공할 수 있다. 적어도 하나 이상의 클리핑 입력은 수동 클리핑 모드에서 사용자에 의해 제공될 수 있다. 그러한 입력들의 예시는 생성될 멀티미디어 클립의 끝점 그리고/또는 시작점을 지정하기 위한 입력을 포함한다. 소프트웨어/하드웨어 모듈에 대신하여, 적어도 하나 이상의 센서들은 같은 목적을 위해 제공된다. 한 예에서, 디지털 이미지 프로세서와 관련된 CCTV는 외부 센서 또는 내부 센서(106)로서 작동하도록 이용된다. 외부센서 그리고 내부 센서(106)의 다른 예시는, 무드 디텍터에 한정되지 않고, 감시카메라, 이미지 프로세서, 그리고 그들의 조합을 포함한다.
또는, 입력부(102)는 클리핑 명령을 수신하고 사용자 인터페이스로부터의 입력(나타나지 않음)과 연관한다. 현재 시간 또는 프레임은 클리핑 명령을 수신한 때이다. 멀티미디어 클리퍼(105)는 멀티미디어 클립의 시작점을 산출하거나 수신할 수 있다. 이러한 목적으로, 멀티미디어 클리퍼(105)는 외부 센서, 부수적인 내부 센서(106), 또는 사용자로부터 적어도 하나 이상의 클리핑 입력을 수신할 수 있다. 더불어, 멀티미디어 클리퍼(105)는 버퍼에 저장된 멀티미디어 콘텐트에서 시작점과 끝점 사이 부분을 추출함으로써 멀티미디어 클립을 생성할 수 있다. 멀티미디어 클립은 현재 재생하는 콘텐트를 인터럽트 함이 없이 생성될 수 있다. 하나의 실시예에서, 멀티미디어 클리퍼(105)는 프로그램의 조정 하에 멀티미디어 콘텐트로부터 멀티미디어 클립을 생성할 수 있다. 프로그램은 프로그래머블 칩/IC와 같은 섬세한 하드웨어, 또는 소프트웨어를 통해 실행될 수 있다. 또한, 도 1에서는 멀티미디어 클리퍼(105)가 콘트롤러(101)과 별개의 유닛인 것으로 설명되었지만, 이에 제한되지 않는다. 멀티미디어 클리퍼(105)의 일부 또는 전부의 기능은 콘트롤러(101)에 의해 구현될 수도 있다.
도 2는 시스템(100)의 멀티미디어 클리퍼(105)의 개시에 대한 실시예에 따른 블록다이어그램을 보여준다. 보이는 바와 같이, 멀티미디어 클리퍼(105)는 사용자 명령을 수신하고 클리핑 프로세스를 실행시키는 디텍션 모듈(200)을 포함하고, 클립 생성에 있어서 시작점과 끝점을 관리하는 셀렉터 모듈(201)을 포함하고, 클립 생성에 있어서 사용자 인터페이스를 제공하는 프레젠테이션 모듈(202)을 포함하고, 버퍼(클립 생성을 위한 멀티미디어 콘텐트의 일시적인 저장)를 다루는 버퍼모듈(203)을 포함하고, 버퍼모듈(203)과 다른 모듈과의 인터페이스 역할을 담당하는 프레임 그래버 모듈(204, frame grabber module)을 포함하고, 클립 생성과 저장에 관계된 클리핑모듈(205)을 포함하며, 사용자 우선순위와 관련된 설정을 제공하는 콘피규레이션 파일(206)을 포함할 수 있다. 또는, 콘피규레이션 파일(206)은 저장부(104)에 저장될 수 있으나, 이에 제한되지 않는다. 멀티미디어 클리퍼(105)의 각각의 요소들은 아래 자세히 설명된다.
디텍션모듈(200)은 클리핑 프로세스를 시작하기 위한 유발을 수신한다. 하나의 실시예에서, 디텍션모듈(200)은 유발을 수신하고 사용자로부터 연관 입력을 수신할 수 있다. 다른 실시예에서, 디텍션모듈(200)은 유발을 수신하고, 외부센서(207) 또는 내부센서(106)로부터 연관 입력을 수신할 수 있다. 또한, 디텍션모듈(200)은 셀렉터 모듈(201)에 내장될 수 있다.
셀렉터모듈(201)은 클립 생성에 있어서 시작점과 끝점을 다룬다(deal). 이러한 목적으로, 상기 디텍션 모듈(200)은 사용자, 외부 센서(207) 또는 내부 센서(106)로부터의 유발을 추적할 수 있다.
클리핑 프로세스를 위한 사용자 유발은 시스템(100)의 인터페이스를 통해 직접(directly) 주어지거나 또는 입력부(102)와 같은 몇몇 다른 입력 소스에 의해 주어질 수 있다. 클리핑 프로세스를 위한 사용자 유발은 디텍션 모듈(200)에 의해 인식되거나 단독으로 식별될 수 있다. 하나의 실시예에서, 이러한 인식 가능한 입력은 리모트, 터치스크린, 동작, 음성 입력, 또는 어떤 다른 호환이 되는 장치에 의해 수신할 수 있고 디텍션 모듈(200)에 의해 셀렉터 모듈(201)과 통신될 수 있다. 더불어, 셀렉터 모듈(201)은 사용자 입력을 수신 하기 위해, 클립 생성을 위한 사용자 요구에 따라 프레젠테이션 모듈(202)을 불러올 수 있다. 사용자 입력을 수신한 후에, 셀렉터 모듈(201)은 시작점을 산출하기 위한 디폴트 값을 불러오기 위해 콘피규레이션 파일(206)에 접근할 수 있다. 사용자에 의해 클리핑이 요구된 시간은 끝점으로서 취급될 수 있다. 만약 지속시간이 제공된다면 시작점은 끝점에서 지속시간을 뺌으로써 산출될 수 있다. 사용자에 의해 변경된 시작점은 셀렉터 모듈(201)에 의해서 추적되고 저장될 수 있다. 시작점이 결정되면 셀렉터 모듈(201)은 최종적으로 결정된 시작과 끝점을 통한 클립 생성을 위해 클리핑 모듈(205)을 불러(invoke)올 수 있다.
자동 모드에서, 외부 센서(207) 또는 내부 센서(106)는 클리핑 프로세스를 유발하고(trigger), 셀렉터 모듈(201)은 끝점과 함께 시작점 또는 지속 시간을 외부센서(207) 또는 내부센서(106)로부터 수신할 수 있다. 하나의 실시예에서, 센서는 오직 끝점만 제공할 수 있고, 미리 설정된 지속시간은 콘피규레이션 파일(206)로부터 수신될 수 있다. 셀렉터 모듈(201)은 시작점 및 끝점을 이용하여 멀티미디어 클립을 생성을 위한 클리핑 모듈(205)을 소환하고, 나머지 모든 요구되는 설정은 콘피규레이션 파일(206)로부터 추출될 수 있다.
반자동 모드의 하나의 실시예에서, 셀렉터 모듈(201)은 사용자로부터 끝점을 수신하고, 시작점은 콘피규레이션 파일로부터 수신하거나 두 번째 규칙 세트에 의한 센서로부터 획득될 수 있다.
반자동 모드의 다른 실시예에서, 끝점은 첫 번째 규칙 세트에 기초해서 센서로부터 수신되고 시작점은 사용자에 의해 정의될 수 있다.
프레젠테이션 모듈(202)는 다양한 사용자 인터페이스(UI)를 통한 모든 사용자 상호작용에 관련이 있다. 사용자 인터페이스는, 예를 들어, 반자동 또는 수동 클리핑을 위한 사용자 입력을 가져오기 위한 사용자 인터페이스를 포함할 수 있다. 또한, 사용자 인터페이스는, 예를 들어, 클립 지속시간이 콘피규레이션 파일(206)에 저장된 지속시간과 상이할 필요가 있는 경우 클립의 지속시간/시작시간/시작프레임의 사용자 입력을 수신하는, 수동 클리핑을 위한 사용자 인터페이스를 포함할 수 있다. 또한, 사용자 인터페이스는, 예를 들어, 시작점을 미세조정하기 위한 사용자 인터페이스가 있다. 프레젠테이션 모듈(202)은 셀렉터모듈(201)에 의해 호출되고, 사용자 인터페이스에 대한 입력은 리모트 입력, 터치 스크린을 통한 입력, 제스쳐 입력, 음성 입력, 양립 가능한 모바일 또는 다른 입력 디바이스를 통한 입력에 의해 제공될 수 있다.
수동 클리핑 모드(수동 모드)에서, 썸네일 스트립은 서로 다른 시간에 해당하는 썸네일 프레임을 보여준다. 썸네일 스트립은 시작점의 미세 조정을 위해서 필요하다. 썸네일 스트립을 보여주기 위해, 프레젠테이션 모듈(202)은 프레임 그래버 모듈(204)과 통신한다. 하나의 실시예에서, 정확한 시작 프레임 지점은 강조 표시되고, 썸네일 스트립의 중간에 위치할 수 있다. 썸네일 스트립을 통한 네비게이팅(navigating)을 위하여, 썸네일 스트립에서 시작점을 바꾸기 위한 입력은 화살표키, 터치 스크린, 또는 제스쳐 제어에 관한 사용자 그래픽 인터페이스를 통해 주어질 수 있다. 또한, 썸네일 스트립에서 시작점을 바꾸기 위한 입력은 시스템(100)에 의존할 수 있다. 이 경우, 썸네일은 네비게이팅 되고 새로운 시작점이 선택되며, 그리고 나서 프레임 그래버 모듈(204)이 새로운 선택점 주변의 프레임을 얻기 위해 다시 연결될 수 있다.
어떠한(any) 클리핑 모드에서, 시작 프레임(시작점)의 지정이 완료되면, 시작점은 프레젠테이션 모듈(202)로부터 셀렉터 모듈(201)로 통신된다. 이후 프레젠테이션 모듈(202)은 클립 생성 상태를 사용자에게 알려줄 수 있다.
버퍼모듈(203)은 멀티미디어 콘텐트가 재생될 때마다 멀티미디어 플레이어 또는 시스템(100)에 의해 호출될 수 있다. 버퍼모듈(203)은 버퍼와 관련된 모든 동작들을 관리할 수 있다. 버퍼모듈(203)은, 예를 들어, 버퍼 생성, 버퍼 파괴 및 버퍼 플러싱을 수행할 수 있다. 또한, 버퍼모듈(203)은, 예를 들어, 재생 중인 콘텐트와 동기화된 기록 중인 콘텐트의 타임 스탬프를 유지하는 동작을 수행할 수 있다. 콘피규레이션 파일(206)에 정의된 사용자 설정에 기초하여, 버퍼모듈(203)은 원본 콘텐트를 저장하기 위한 버퍼를 생성할 수 있다. 버퍼가 꽉 차면(fulled), First In First Out(FIFO)와 같은 삭제 규칙에 따라, 추가적인 기록을 위한 공간을 생성하기 위하여 버퍼의 적어도 일부는 비워질 수 있다. 또한, 만약 사용자가 기록 가능 시간의 범위를 초과하여 클립 지속시간을 요구한다면, 최대한 허용될 수 있는 클립 지속시간을 알려주는 알림 메시지가 제공될 수 있다.
프레임 그래버 모듈(204)은 버퍼모듈(203)과 상호작용하는 유일한 모듈일 수 있으며, 최종 클립 생성을 위하여 썸네일 스트립 또는 원본 멀티미디어를 위한 프레임을 되찾아 올 수 있다. 프레임 그래버 모듈(204)은 썸네일 생성을 위한 프레임 추출을 위해 요구되는 일련의 타임 스탬프를 버퍼 모듈(203)과 통신할 수 있다. 하나의 실시예에서, 버퍼 모듈(203)은 셋톱 박스, 텔레비전, 외부 저장공간, 또는 심지어 클라우드에서도 디바이스의 능력에 따라 실행될 수 있다. 버퍼를 위해 사용되는 메모리는 언제나 활성화 되어야 있어야 할 수 있다.
프레임 그래버 모듈(204)은 버퍼모듈(203)과 다른 모듈 사이의 인터페이스로 동작할 수 있다. 시작점을 미세 조절하기 위해, 프레임 그래버 모듈(204)은 버퍼모듈(203)로부터 멀티미디어 콘텐트의 일부를 추출한 후에 썸네일을 생성하여 프레젠테이션 모듈(202)에게 제공할 수 있다. 프레젠테이션 모듈(202)은 프레임 그래버 모듈(204)을 시작점과 함께 불러온다. 프레임 그래버 모듈(204)은 썸네일 크기, 썸네일 사이의 시간 차이, 그리고 디스플레이 될 썸네일 숫자와 같은 썸네일 관련 정보를 콘피규레이션 파일(206)로부터 획득할 수 있다. 프레임 그래버 모듈(204)은 시작점, 썸네일 사이의 시간 차이, 및 썸네일 숫자를 이용하여 썸네일 스트립을 위한 일련의 타임 스탬프를 산출할 수 있다. 시작점 주변에 보여진 몇 개의 프레임은 시작 프레임을 미세 조정하기 위하여 이용될 수 있다.
썸네일 스트립을 위한 일련의 타임 스탬프와 함께, 프래임 그래버 모듈(204)은 타임 스탬프의 시간들에서의 프레임을 제공하기 위해 버퍼 모듈(203)과 통신할 수 있다. 이후, 썸네일들이 이러한 프레임들로부터 생성되고, 디스플레이를 위해 프레젠테이션 모듈(202)에 제공될 수 있다.
시작점이 결정되면, 프레임 그래버 모듈(204)은 멀티 미디어 클립을 생성하는데 이용되는 시작점과 끝점 사이의 원본 멀티미디어를 제공하기 위하여 클리핑 모듈(205)과 연결될 수 있다. 프래임 그래버 모듈(204)은 원본 멀티미디어를 제공하기 위해 버퍼 모듈(203)과 컨택 하고, 원본 멀티미디어는 클리핑 모듈(205)에 제공될 수 있다.
클리핑 모듈(205)은 멀티미디어 클립을 생성하기 위해 시작점 및 끝점에 대한 정보와 함께 셀렉터 모듈(201)에 의해 불려진다. 클리핑 모듈(205)은 그 시작점과 끝점 사이의 시간에 대응되는 원본 멀티미디어를 제공하고 멀티미디어 클립을 생성하기 위하여, 시작점 및 끝점과 함께 프레임 그래버 모듈(204)과 통신할 수 있다. 멀티미디어 클립은 저장부(104)와 같은 저장매체에 저장될 수 있다. 저장 매체의 위치는 콘피규레이션 파일(206)에서 추출될 수 있다.
클리핑모듈(205)은 콘피규레이션 파일(206)로부터 경로를 획득하여 멀티미디어 클립을 저장하기 위한 저장 매체(104)를 호출하고, 저장 매체(104)에 멀티미디어 클립을 저장할 수 있다. 또는, 멀티미디어 클립은 사용자 특화된 저장 위치에 저장되고, 사용자로부터 수신될 수 있다. 저장 공간은, 클리핑이 수행되는 디바이스의 능력(capability)에 따라, 셋톱 박스, 텔레비전, 외부 저장공간, 클라우드 또는 소셜 사이트의 직접 업로드 가능한 저장 공간일 수 있다.
콘피규레이션 파일(206)은 클리핑 프로세스를 위한 다양한 콘피규레이션을 유지할 수 있다. 예를 들어, 콘피규레이션 파일(206)은 멀티미디어 클립의 미리 설정된 지속시간, 미리 설정된 시작 시간, 미리 설정된 시작 프레임 번호, 썸네일 사이즈, 보여질 썸네일들, 버퍼 사이즈, 버퍼 위치, 미리 설정된 저장 위치, 및 소셜 네트워킹 웹사이트에 대한 직접 업로드 자격을 포함하는 url에 관한 설정 값을 포함할 수 있다. 한편, 더 많은 파라미터들이 콘피규레이션 파일(206)에 저장 가능하다. 콘피규레이션 파일(206)은 모든 모듈들(201-205)들과 상호작용하는데, 이러한 모든 모듈들에 요구되는 설정 값을 저장하기 때문이다. 콘피규레이션 파일(206)은 사용자에 의해 제공되는 최근 값으로 업데이트 될 수 있다.
하나의 실시예에서, 최종적으로 생성된 멀티미디어 클립은 서버에도 저장될 수 있고, 소셜 네트워킹 사이트 상에서 직접적으로 공유될 수 있다. 모든 이러한 것은, 사용자의 UI 명령을 통해, 콘피규레이션 파일에 설정되거나 생성 시간에 업로드 될 수 있다.
외부 센서(207) 또는 내부 센서(106)는 시스템(100)에 유발(trigger) 신호를 제공하고 사용자의 개입 없이 클립 생성 프로세스를 자동적으로 수행하는데 이용될 수 있다. 외부 센서(207) 또는 내부 센서(106)는 멀티미디어 클립의 시작점과 끝점을 제공할 수 있다. 외부 센서(207) 또는 내부 센서(106)는 검출, 분석, 상황 보고 등이 가능한 어떠한 센서도 포함 가능하고, 이에 따라 유발을 발생시키는 것이 가능하다. 외부 센서(207) 또는 내부 센서(106)는, 예를 들어, 무드 센서, 이미지 프로세서, 그리고 그와 비슷한 것 일 수 있다. 시작과 끝점은 셀렉터 모듈(201)에 통신된다. 이러한 동작 모드에서는 프레젠테이션 모듈(202)은 자동적으로 시작하는 클립 생성과 클립 생성의 상태를 전달해 주는 사용자 인터페이스를 보여주는 역할 이외의 역할은 수행하지 않을 수 있다.
외부 센서(207) 또는 내부 센서(106)는 그 역할을 마무리하면서 첫 번째 규칙 세트에 기초해서 디텍션 모듈(200)에게 유발을 제공한다. 미리 설정된 규칙의 첫 번째 세트는 최근 콘텐트의 멀티미디어 클립이 생성되는 것을 요구하고, 멀티미디어 클립의 끝점을 지정하고 클리핑 프로세스를 시작하는 몇몇 미리 설정된 규칙을 포함할 수 있다. 그러한 규칙의 한 예로, 이미지 프로세서를 포함하는 CCTV 카메라는, 관찰되는 지역에서 사람이 비정상적인 행동을 했을 때, 비디오 클립의 생성을 유발(trigger)할 수 있다.
비디오 클립의 유발이 생성되었을 때, 시작점은, 두 번째 규칙 세트에 기초하여, 외부 센서(207) 또는 내부 센서(106)에 의해 통신될 수 있다. 위의 예에서, 관찰되는 지역에 사람이 등장한 시각은 비디오 클립의 시작점으로 지정될 수 있다. 미리 설정된 규칙의 두 번째 규칙 세트는 멀티미디어 클립의 시작점을 지정하는 그 어떠한 미리 설정된 규칙도 포함한다.
도 3은 멀티미디어 콘텐트에서 멀티미디어 클립을 생성하기 위한 방법의 플로우 차트에 대해서 설명한다. 단계 301에서, 현재 재생 중인 멀티미디어 콘텐트는 버퍼에 저장된다. 단계 302에서, 현재 시간 혹은 프레임에서 멀티미디어 클립을 생성하기 위한 명령이 수신되거나 생성될 수 있다. 명령은 자동 모드의 외부 센서 또는 내부 센서에서 제공될 수 있다. 또 다른 방법으로는, 명령은 반자동 모드 또는 수동 모드에서 사용자에 의해 제공될 수 있다. 단계 303에서, 현재 시간 또는 현재 프레임은 멀티미디어 클립의 끝점으로서 지정될 수 있다. 단계 304에서, 멀티미디어 클립의 시작점은 산출되거나 수신될 수 있다. 단계 305에서, 멀티미디어 클립은 버퍼에 저장된 멀티미디어 콘텐트의 시작점과 끝점 사이 부분을 추출함으로써 만들어지는데, 여기서 상기 단계들은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 수행될 수 있다. 단계 306에서, 멀티미디어 클립은 미리 설정된 저장 위치 또는 수시로 정해진 사용자 특화된 위치에 저장될 수 있다.
자동 클리핑 모드인 경우에, 단계 304에서, 시작점은 외부 센서/ 내부 센서에서 수신되거나 또는 외부 센서/내부 센서에서 제공된 멀티미디어 클립의 지속시간과 끝점을 이용하여 산출될 수 있다. 반자동 클리핑 모드인 경우에, 단계 304에서, 시작점은 미리 설정된 멀티미디어 클립모드의 지속시간과 끝점을 이용해서 산출될 수 있다. 수동 클리핑 모드인 경우에, 단계 304에서, 시작점은 사용자에 의해 제공된 멀티미디어 클립의 지속시간과 끝점을 이용하여 산출되거나, 또는 UI에 기반한 입력, 텍스쳐 입력, 제스쳐 입력 또는 음성 입력과 같은 사용자 입력으로부터 수신될 수 있다. 텍스쳐 입력은 지속시간, 시작 시간 또는 멀티미디어 클립의 시작 프레임 번호를 위한 입력일 수 있다.
하나의 실시예에서, 상기 방법은 멀티미디어 콘텐트로부터 자동적으로 멀티미디어 클립을 생성하기 위해 수행될 수 있다. 언급된 실시예에서, 상기 방법은 첫 번째 규칙 세트 및 멀티미디어 클립을 생성하기 위한 명령에 기초한 추가적인 단계(도 3에는 보이지 않음)를 포함할 수 있다. 또한, 단계 303에서, 끝점은 수신된 명령에 따라 지정될 수 있다. 또한, 지속시간, 시작 시간 또는 멀티미디어 클립의 시작 프레임 넘버는 두 번째 규칙 세트에 기초해서 멀티미디어 클립의 시작점을 산출하기 위해 산출될 수 있다.
하나의 실시예에서, 상기 방법은 멀티미디어 콘텐트로부터 멀티미디어 클립을 반자동적으로 생성하기 위해 수행될 수 있다. 언급한 실시예에서, 단계 302에서, 멀티미디어 콘텐트를 생성하기 위한 명령은 사용자 인터페이스로부터 수신되고 시작점은 단계 304의 멀티미디어 클립의 미리 설정된 또는 디폴트 지속시간과 끝점으로부터 산출된다. 또한, 이러한 멀티미디어 클립의 미리 설정된 또는 디폴트 지속시간은 콘피규레이션 파일로부터 획득될 수 있다.
다른 실시예에서, 상기 방법은 멀티미디어 콘텐트로부터 멀티미디어 클립을 반자동적으로 생성하기 위해 수행될 수 있다. 언급한 실시예에서, 상기 방법은 첫 번째 규칙 세트에 기초해서 멀티미디어 클립을 생성하기 위한 명령을 발생시키는 추가적인 단계(그림에 보이지 않음)를 포함할 수 있다. 더욱이, 단계303에서, 끝점은 수신된 명령에 따라 지정될 수 있다. 또한, 단계 304에서, 시작점은 사용자 입력에 기초해서 산출되거나 수신될 수 있다. 사용자 입력은 지속시간, 시작 시간 또는 멀티미디어 클립의 시작 프레임 넘버일 수 있다. 더욱이, 사용자 입력은 UI 기반의 입력, 문자 입력, 제스쳐 입력, 또는 음성 입력 일 수 있다.
하나의 실시예에서, 상기 방법은 최소한의 사용자 입력에 의해 멀티미디어 콘텐트로부터 수동적으로 멀티미디어 클립을 생성하기 위해 수행될 수 있다. 언급된 실시예에서, 멀티미디어 콘텐트를 생성하기 위한 명령은 사용자에 의해 단계 302에서 제공되고, 시작점은 단계 304의 사용자 입력에 기초하여 산출되거나 수신될 수 있다. 이런 사용자 입력은 지속시간, 시작 시간 또는 멀티미디어 클립의 시작 프레임 넘버일 수 있다. 더욱이, 사용자 입력은 UI 기반의 입력, 텍스쳐 입력, 제스쳐 입력, 음성 입력 또는 적당한 입력일 수 있다.
사용자 또는 외부센서(207)또는 내부센서(106)가 클리핑 프로세스를 유발할 때, 디텍션 모듈(200)이 시작(initiate)될 수 있다. 사용자가 클리핑 프로세스를 유발하면, 디텍터 모듈(200)은 프레젠테이션 모듈(202)을 호출하는 셀렉터 모듈(201)을 호출하고, 사용자는 반자동 모드와 수동모드 중에서 클리핑 모드를 선택할 것을 요청 받는다. 클리핑 모드는 세 카테고리로 분류될 수 있다 : (1) 자동 모드: 클립 생성 프로세스를 위해 사용자로부터 입력을 따로 요구하지 않고, 입력은 외부 센서(207)또는 내부 센서(106) 또는 콘피규레이션 파일(206)로부터 획득됨; (2) 반자동 클리핑 모드: 하나의 사용자 입력이 요구됨; (3) 수동 클리핑 모드: 수동 클리핑 모드는 다음의 5개의 모드로 더 세분화됨. (a) 하나의 입력에 의한 변경 - 클립 지속시간/ 시작시간/ 시작 프레임 ; (b) 시간 입력을 통한 시작점 변경 ; (c) 프레임 숫자 입력을 통한 시작점 변경 ; (d) 손 동작을 통한 시작점 변경 ; (e) 음성 입력을 통한 시작점 변경. 위에 언급된 모드들의 각각의 동작은 아래에 자세하게 설명되어 있다.
전체 클리핑 프로세스는 사용자로부터의 어떠한 입력을 요구함이 없이 자동적으로 수행될 수 있다. 클리핑 프로세스는 사용자에 의해 콘피규레이션 파일(206) 내에 설정된 정보, 끝점을 지정하기 위한 첫 번째 규칙 세트, 및 시작점/ 클립 지속시간을 지정하기 위한 두 번째 규칙 세트에 기초해서, 3개의 상이한 방법에 의해 수행될 수 있다. 세 개의 자동 모드에서 어떤 것이든, 클리핑 작동이 시작되고 완료된 때에 상태 알림은 사용자에게 보여질 수 있다.
이 모드에서, 외부 센서(207)또는 내부 센서(106)는 사용자로부터 어떠한 입력을 요구함이 없이 자동 클리핑 프로세스를 유발한다. 끝점은 첫 번째 규칙 세트에 기초해서 지정되고, 반면에 시작점은 콘피규레이션 파일(206)로부터 자동적으로 채워지는데, 클립의 지속시간이 미리 설정될 수 있다. 더욱이, 멀티미디어 클립은 콘피규레이션 파일(206) 내의 설정에 따라 미리 설정된 위치에 저장될 수 있다.
사용자는 사용자 인터페이스로부터 자동 클리핑이 시작되었다는 것을 확인할 수 있다. 사용자 인터페이스(400)는 도 4에 예시되어 있다. 클리핑 동작이 완료되면, 멀티미디어 클립의 상태가 사용자에게 보여진다. 도 5는 자동 클리핑 모드에서의 동작을 나타내는 플로우 차트(500)를 보여준다. 단계 501이 시작한 후에, 멀티미디어 플레이어 또는 시스템(100)으로부터의 명령에 기초하여 버퍼는 단계 502에서 버퍼의 용량에 따라 멀티 미디어 콘텐트의 현재 재생 중인 부분을 기록(record)한다. 멀티미디어 콘텐트가 재생되고 있지 않으면 버퍼는 비활성화될 수 있다. 동작 중 아무 때나 만약 시스템이 스위치 오프/셧다운 되거나 멀티미디어 플레이어가 꺼지면 (단계 503) 버퍼가 단계 504에서 닫히고(flushed), 클리핑 프로세스는 단계 505에서 종료된다. 단계 506에서, 자동화 클리핑은 첫 번째 규칙 세트에 기초하여 외부 센서(207)또는 내부 센서(106)로 인해 유발된다. 이후, 단계 507에서, 특정한 시각 또는 프레임이 멀티미디어 클립의 끝점으로 지정되고 클립의 시작점은 콘피규레이션 파일(206)에서 얻어진다 (이 경우, 사용자는 멀티미디어 클립의 지속시간을 미리 설정해 둘 수 있다). 그렇지 않으면, First In First Out (FIFO)와 같은 삭제 정책에 기초해서 버퍼는 현재 재생 중인 콘텐트를 기록하고 오래된 콘텐트를 삭제하는 것을 반복해야 한다. 시작점과 끝점에 기초해서, 시작점과 끝점 사이에 있는 멀티미디어 콘텐트의 저장된 부분은 멀티미디어 클립을 생성하기 위해 자동으로 불러와진다. 멀티미디어 클립은 콘피규레이션 파일에서 구체화된 미리 설정된 위치에 저장된다. 이러한 방법으로, 사용자 입력 없이 멀티미디어 클립은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 생성될 수 있다.
이 모드에서, 외부 센서(207) 또는 내부 센서(106)는 사용자로부터 어떠한 입력을 요구함이 없이 클리핑 프로세스를 유발한다. 시작점은 두 번째 규칙 세트에 기초하여 결정된다. 끝점은 콘피규레이션 파일(206)로부터 자동적으로 획득되며, 사용자는 클립의 지속시간을 미리 설정할 수 있다. 멀티미디어 클립은 콘피규레이션 파일(206) 내의 설정 값에 따른 미리 설정된 위치에 저장된다.
사용자는 사용자 인터페이스로부터 자동 클리핑이 시작되었다고 안내 받을 것이다. 그러한 사용자 인터페이스(400)는 도 4에 보여진다. 클리핑 동작이 완료되면, 멀티미디어 클립의 상태가 사용자에게 보여진다. 도 5는 자동 클리핑 모드에서의 동작을 묘사하는 플로우차트(500)를 보여준다. 단계 501이 시작한 후에, 단계 502에서 멀티미디어 플레이어 또는 시스템(100)으로부터의 명령에 기초하여 버퍼는 용량에 따라 멀티미디어 콘텐트의 현재 재생 중인 부분을 저장할 수 있다. 멀티미디어 콘텐트가 재생 되고 있 않을 때 버퍼는 비활성화 될 수 있다. 동작 중 아무 때나 만약 시스템이 꺼지거나 멀티미디어 플레이어가 종료되면 (단계 503), 버퍼가 단계 504에서 닫히고, 클리핑 프로세스는 단계 505에서 종료될 수 있다. 단계 506에서, 자동화 클리핑은 두 번째 규칙 세트에 기초하여 외부 센서(207)또는 내부 센서(106)로 인해 유발되고, 이후, 단계 507에서 특정한 시간 또는 프레임이 멀티미디어 클립의 끝점으로 지정되고 클립의 시작점은 콘피규레이션 파일(206)에서 얻어진다 (여기서 사용자는 이미 멀티미디어 클립의 지속시간을 설정하였다). 그렇지 않으면, First In First Out (FIFO)와 같은 삭제 정책에 의거해서 버퍼는 현재 재생 중인 콘텐트를 기록하고 오래된 콘텐트를 삭제하는 것을 반복해야 한다. 시작점과 끝점에 기초해서, 시작점과 끝점 사이에 있는 멀티미디어 콘텐트의 저장된 부분은 멀티미디어 클립을 생성하기 위해 불러와진다. 멀티미디어 클립은 콘피규레이션 파일에서 구체화된 미리 설정된 위치에 저장된다. 이러한 방법으로, 사용자 입력 없이 멀티미디어 클립은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 생성된다.
이 모드에서, 외부 센서(207) 또는 내부 센서(106)는 사용자로부터 어떠한 입력을 요구함이 없이 클리핑 프로세스를 유발한다. 시작점은 두 번째 규칙 세트에 기초하여 결정된다. 끝점은 콘피규레이션 파일(206)로부터 자동적으로 채워지고 여기서 사용자는 클립의 미리 설정된 지속시간을 가지고 있다. 멀티미디어 클립은 콘피규레이션 파일(206) 내의 설정에 따른 미리 설정된 위치에 저장된다.
사용자는 사용자 인터페이스로부터 자동 클리핑이 시작되었다고 안내 받을 것이다. 그러한 사용자 인터페이스(400)는 도 4에 보여진다. 클리핑 동작이 완료되면, 멀티미디어 클립의 상태는 사용자에게 보여진다. 도 5는 자동 클리핑 모드의 동작을 묘사하는 플로우차트(500)를 보여준다. 단계 501이 시작한 후에, 단계 502에서 멀티미디어 플레이어 또는 시스템(100)으로부터의 명령에 기초하여 버퍼는 용량에 따라 멀티미디어 콘텐트의 현재 재생 중인 부분을 저장할 수 있다. 멀티미디어 콘텐트가 재생되지 않을 때 버퍼는 비활성화 될 수 있다. 동작 중 아무때나 만약 시스템이 스위치 오프/셧다운 되거나 멀티미디어 플레이어가 꺼지면 (단계 503), 버퍼가 단계 504에서 닫히고, 클리핑 프로세스는 단계 505에서 종료된다. 단계 506에서, 자동화 클리핑은 첫 번째 규칙 세트에 기초하여 외부 센서(207)또는 내부 센서(106)로 인해 유발되고, 이후 단계 507에서 특정한 시간 또는 프레임이 멀티미디어 클립의 끝점으로 지정되고 클립의 시작점은 콘피규레이션 파일(206)에서 얻어진다 (여기서 사용자는 이미 멀티미디어 클립의 지속시간을 설정하였다). 그렇지 않으면, First In First Out (FIFO)와 같은 삭제 정책에 기초해서 버퍼는 현재 재생 중인 콘텐트를 기록하고 오래된 콘텐트를 삭제하는 것을 반복해야 한다. 시작점과 끝점에 기초해서, 시작점과 끝점 사이에 있는 멀티미디어 콘텐트의 저장된 부분은 멀티미디어 클립을 생성하기 위해 자동으로 불러와진다. 멀티미디어 클립은 콘피규레이션 파일에서 구체화된 미리 설정된 위치에 저장된다. 이러한 방법으로, 아무 입력도 사용자로부터 수신하지 않고 멀티미디어 클립은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 생성된다.
위에 제시된 자동 모드에서, 자동으로 생성된 멀티미디어 클립은 아마 콘피규레이션 파일(206)의 미리 설정된 특정 위치 또는 이를 대신하여 수시로 제공되는 사용자 특화된 위치에 저장된다.
이 모드에서, 사용자는 클리핑 프로세스를 유발한다. 이후, 디텍터 모듈(200)은 유발에 응답하며, 디텍터 모듈(200)은 반자동 클리핑 모드 옵션(601)과 수동 클리핑 모드 옵션(602)과 같은 클리핑 모드 셀렉션 옵션(600)을 디스플레이 하는 프레젠테이션 모듈(202)을 불러오는 셀렉터 모듈(201)을 불러온다. 만약 사용자가 반자동 클리핑 모드 옵션(601)을 선택하면, 그 때가 사용자가 한 번 상호작용할 필요가 있는 시간이고 이후 멀티미디어 클립이 자동적으로 생성되고 미리 설정된 위치 또는 추가적으로 수시로 지정된 사용자 특화 위치에 저장된다. 반자동 클리핑 모드에서, 다른 관련된 정보는 콘피규레이션 파일(206)로부터 추출된다. 프레젠테이션 모듈(202)을 통해 사용자 입력을 획득한 후에, 셀렉터 모듈(201)은 콘피규레이션 파일(206)에 접근하고 클립 지속시간을 추출해낸다. 또한, 셀렉터 모듈(201)은 시작점을 산출하고 클리핑모듈(205)은 클립 생성을 위한 시작과 끝점과 함께 호출된다. 클리핑 모듈(205)은 콘피규레이션 파일(206)로부터 미리 설정된 저장 위치를 추출하고 미리 설정된 저장 위치에 멀티미디어 클립을 저장한다. 또는, 멀티미디어 클립은 사용자로부터 수신된 사용자에 의해 특화된 저장 위치에 저장될 수 있다. 상태 알림은 반자동 클리핑 동작이 완료되면 사용자에게 보여진다.
언급한 반자동 실시예에서, 사용자 유발은 끝점을 제공하고 미리 설정된 콘피규레이션 파일(206)에 저장된 지속시간은 시작점을 산출하기 위해 이용될 수 있다. 다른 반자동 실시예에서, 센서는 첫 번째 규칙 세트에 기초해서 끝점을 제공하고, 반면에 사용자 유발은 시작점을 제공할 수 있다. 다른 반자동 실시예에서, 사용자는 끝점을 제공하고, 반면에 센서 유발은 두 번째 규칙 세트에 기초해서 시작점을 제공할 수 있다.
도 7은 반자동 클리핑 모드에서의 동작을 묘사하는 플로우차트(700)에 대해 보여준다. 단계 701이 시작한 후에, 버퍼는 단계 702에서 멀티미디어 플레이어 또는 시스템(100)으로부터의 명령에 기초해서, 버퍼의 용량에 기초하여 멀티미디어 콘텐트의 현재 재생 중인 부분에 대한 기록을 시작한다. 여기서 멀티미디어 콘텐트가 재생되지 않을 때 버퍼가 비활성화 될 수 있다. 단계 703에서 시스템이 꺼지거나 멀티미디어 플레이어가 종료되는 어떠한 때에나, 단계 704에서 버퍼는 닫히고 클리핑 프로세스는 단계 705에서 종료된다. 단계 706에서, 반자동 클리핑에 대한 유발(trigger)이 수신된다. 단계 707에서, 클립은 다음 세 가지 방법 중 하나로 생성 된다 : (1) 사용자 유발은 끝점을 지정하고, 반면에 미리 설정된 콘피규레이션 파일로부터 추출된 지속시간은 시작점을 산출하기 위해 사용된다 ; 또는 (2) 센서 유발은 첫 번째 규칙 세트에 기초하여 끝점을 지정하고, 반면에 사용자 유발/입력은 시작점 지정하기 위하여 요구된다 ; 또는 (3) 사용자 유발은 끝점을 지정하고, 반면에 센서 유발은 두 번째 규칙 세트에 기초하여 시작점을 지정한다. 반면에, 버퍼는 현재 재생 중인 콘텐트를 기록하고 오래된 콘텐트를 First In First Out(FIFO)과 같은 삭제 정책에 기초하여 제거하는 것을 반복한다. 시작점과 끝점에 기초하여, 멀티미디어 콘텐트의 시작점과 끝점 사이의 저장된 부분은 멀티미디어 클립을 생성하기 위해 추출된다. 멀티미디어 클립은 콘피규레이션 파일에 구체화된 미리 설정된 위치에 저장되거나 또는 수시로 제공되는 사용자 특화된 위치에 저장된다. 이러한 방법으로, 클리핑 프로세스를 시작하기 위한 오직 하나의 입력이 사용자로부터 수신되며, 멀티미디어 클립은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 생성되며 어떠한 더 이상의 사용자로부터의 입력을 요구하지 않는다.
사용자는 상호적인 클립 생성을 요청할 수 있다. 이것은 사용자로부터 제공된 입력에 기초하여 5가지 다른 방법으로 행해질 수 있다. 만약 사용자가 시작점을 미세조정하고 싶다면, 아래 언급된 단일의 입력 모드는 사용자에 의해 선택될 수 있고, 그렇지 않다면 다른 수동 모드 중에 어떤 것이나 골라질 수 있다. 수동 모드중의 어떤 것이나, 클리핑 동작이 완료되면 상태 알림이 사용자에게 보여진다.
이러한 수동 모드에서, 사용자는 클립 생성을 유발한다. 이후, 디텍터 모듈(200)은 유발에 응답하고, 반자동 클리핑 모드 옵션(601) 그리고 수동 클리핑 모드 옵션(602)과 같은 클리핑 모드의 선택 옵션(600)을 나타내는 프레젠테이션 모듈(202)을 불러오는 셀렉터 모듈(201)을 불러올 수 있다. 만약 사용자가 도 8에 보여지는 것과 같이 수동 클리핑 모드 옵션(602)을 고른다면, 셀렉터 모듈(201)은 수동 클리핑 모드의 선택을 주기 위해 프레젠테이션 모듈(202)을 다시 불러온다(re-invoke). 만약 사용자가 지속시간/시작시간/프레임 숫자를 변경하는 모드를 고른다면, 연관된 사용자 인터페이스(900)가, 도 9에 보이는 것과 같이, 지속시간/시작시간/프레임 숫자를 위한 단일 입력을 입력하기 위해 디스플레이 될 수 있다. 하나의 실시예에서, 사용자 인터페이스(900)는, 지속시간/시작시간/프레임 숫자를 수신하기 위한 텍스트박스(901), 지속시간/ 시작시간/ 프레임 숫자를 확정하기 위한 OK 버튼(902), 동작을 취소하기 위한 취소버튼(903), 및 지속시간, 시작시간, 프레임 숫자 입력 옵션 중에서 적어도 하나를 선택하기 위한 라디오 버튼(904)을 포함할 수 있다. 동작에 있어서, 지속시간/시작시간/프레임 숫자는 셀렉터 모듈(201)에 통신되고, 시작점은 수신한 지속시간/시작시간/프레임 숫자에 기초하여 산출된다. 그 이후, 클리핑 모듈(205)은 클립 생성을 위한 시작점, 끝점과 함께 불러와진다. 클리핑 모듈(205)은 미리 설정된 저장 위치를 콘피규레이션 파일(206)로부터 추출하고 미리 설정된 저장 위치에 멀티미디어 클립을 저장한다. 또는, 멀티미디어 클립은 사용자로부터 수신된 사용자 특화된 저장 위치에 저장된다.
도 10은 지속시간/시작시간/프레임 숫자 변경과 함께 수동 클리핑 모드를 위한 동작을 묘사하는 플로우차트(1000)에 대해 설명한다. 단계 1001을 시작한 후에, 단계 1002에서 버퍼가 멀티미디어 플레이어 또는 시스템(100)으로부터의 명령에 기초한, 멀티미디어 콘텐트의 현재 재생 중인 부분을 버퍼의 용량에 따라 기록하기 시작한다. 멀티미디어 콘텐트가 재생되지 않을 때 버퍼는 비활성화 될 수 있다. 동작 중 아무 때나 만약 시스템이 스위치 오프/셧다운 되거나 멀티미디어 플레이어가 꺼지면 (단계 1003), 버퍼가 단계 1004에서 닫히고, 클리핑 프로세스는 단계 1005에서 종료된다. 지속시간/시작시간/프레임 숫자 변경과 함께 클리핑은 단계 1006에서 사용자에 의해서만 유발될 수 있으며, 특정한 시간 또는 프레임이 멀티미디어 클립의 끝점으로 지정될 수 있다. 그렇지 않으면, First In First Out (FIFO)와 같은 삭제 정책에 기초해서 버퍼는 현재 재생 중인 콘텐트를 기록하고 오래된 콘텐트를 삭제하는 것을 반복해야 한다. 단계 1007에서, 클립의 시작점은 시스템(100)에 의해 제공된 다이얼로그(dialog)에서 사용자에 의해 새로이 입력된 지속시간/ 시작시간/ 멀티미디어 클립의 프레임 숫자에 기초하여 산출될 수 있다. 시스템(100)에 의해 제공된 다이얼로그(dialog)에는 최근에 입력된 지속시간/ 시작시간/ 멀티미디어 클립의 프레임 숫자가 표시될 수 있으며, 사용자는 지속시간/ 시작시간/ 멀티미디어 클립의 프레임 숫자를 변경하기 위하여 새로운 값을 입력할 수 있다. 시작점과 끝점에 기초해서, 시작점과 끝점 사이에 있는 멀티미디어 콘텐트의 저장된 부분은 멀티미디어 클립을 생성하기 위해 자동으로 불러와진다(단계 1008). 멀티미디어 클립은 콘피규레이션 파일에 구체화된 것과 같이 미리 설정된 위치에 저장되거나 수시로 제공되는 사용자 특화된 위치에 저장된다. 이러한 방법으로, 오직 두 입력이 사용자로부터 수신된다; 하나는 단지 클리핑 프로세스를 시작하기 위한 것이고, 다른 하나는 지속시간/ 시작프레임/ 멀티미디어 클립의 시작시간을 위한 것이다. 더욱이, 아무런 다른 입력도 사용자로부터 수신하지 않고 멀티미디어 클립은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이 생성될 수 있다.
이러한 수동모드에서, 사용자는 클립 생성을 유발한다. 그러고 나서, 디텍터 모듈(200)은 유발(trigger)에 응답하고, 반자동 클리핑 모드와 수동 클리핑 모드와 같은 옵션을 포함하는 클리핑 모드 선택 옵션을 나타내는 프레젠테이션 모듈(202)을 불러오는 셀렉터 모듈(201)을 불러올 수 있다. 만약 사용자가 수동 클리핑 모드를 고른다면, 셀렉터 모듈(201)은 도 11에 도시된 바와 같은 수동 클리핑 모드들 중에 하나를 선택하기 위한 항목(1100)을 제공하기 위해 프레젠테이션 모듈(202)을 다시 불러올 수 있다. 만약 사용자가 도 12에 보여지는 것과 같이 텍스쳐의 시간/지속시간을 입력하는 수동모드를 고른다면 프레젠테이션모듈(202)은 프레임 썸네일을 제공하기 위해 프래임 그래버 모듈(204)과 통신할 수 있다. 여기서 현재 시작점은 프레임 썸네일들의 중간에 강조 표시 될 수 있다. 프레임 그래버 모듈(204)은 콘피규레이션 파일(206)에 접근하며, 썸네일 사이즈 정보, 썸네일 사이의 시간 차이, 및 보여질 썸네일 숫자와 같은 썸네일 관련 정보를 획득한다. 프레임 그래버 모듈(204)은, 시작점 및 콘피규레이션 파일 정보에 기초하여, 프레임 썸네일들을 위하여 요구되는 타임스트립을 생성할 수 있다. 타임 스트립 상의 시간에 기초하여, 프레임 그래버 모듈(204)은 버퍼모듈(203)과 통신하고 타임 스탬프를 위한 프레임을 요청할 수 있다. 버퍼모듈(203)은 요청된 프레임들을 프레임 그래버 모듈(204)에 제공하는데, 프레임 그래버 모듈(204)에 제공된 프레임들은 썸네일로 변환될 수 있다. 썸네일은, 사용자가 원하는 시작점을 선택하는데 이용될 수 있으며, 썸네일은 사용자에게 디스플레이 되기 위하여 프레젠테이션 모듈(202)에게 제공될 수 있다.
도 12는 텍스쳐의 시간/지속기간 입력을 통해 시작점을 변경하는 수동 모드를 위한 사용자 그래픽 인터페이스(1200)를 나타낸다. 사용자 그래픽 인터페이스(1200)에서, 썸네일들(1201-1205)이 도 12에서와 같이 디스플레이 될 수 있다. 시작점 프레임(1203)이 썸네일 스트립의 중심에 위치하고 강조 표시될 수 있으며, 썸네일 스트립의 양쪽에는 네비게이션을 위한 화살표(1206)가 표시될 수 있다. 네비게이션을 위한 화살표와 더불어서, 시간 입력을 위한 입력 텍스트 박스(1207), 확인을 위한 버튼(1208) 및 취소를 위한 버튼(1209)이 디스플레이 될 수 있다. 사용자는 지속시간/시작시간을 텍스쳐 입력으로 입력하거나, 썸네일 스트립을 한 칸씩 이동시키고 썸네일의 사용자 그래픽 인터페이스를 이용하여 선택 입력을 함으로써, 자유롭게 입력을 제공할 수 있다.
사용자 입력에 기초해서, 선택된 프레임의 시간은 프레시(fresh) 타임 스트립이나 썸네일을 생성하기 위하여 프레임 그래버 모듈(204)에게 통신될 수 있다. 위의 과정은 반복되고 이러한 과정은 시작점이 고정되지 않거나 클리핑 동작이 사용자에 의해 취소되기 전까지 계속될 수 있다.
시작점을 고정하면, 시작시간 또는 클립 지속시간은 프레젠테이션 모듈(202)에 의해 셀렉터 모듈(201)로 통신된다. 셀렉터 모듈(201)은 시작점을 생성시키기 위해 입력을 조정하고, 클립 생성을 위해 시작점과 끝점과 함께 클리핑 모듈(205)을 불러온다. 클리핑 모듈(205)은 콘피규레이션 파일(206)로부터 미리 설정된 저장 위치를 알아내고, 미리 설정된 저장 위치에 있는 멀티미디어 클립을 저장한다. 또는, 멀티미디어 클립은 사용자에 의해 입력된 사용자 특화된 저장 위치에 저장된다. 만약 사용자가 클리핑 동작을 취소한다면, 콘피규레이션 파일(206)은 이전 값들을 유지한다.
이러한 수동 모드에서, 사용자는 클립 생성을 유발(trigger)한다. 다음으로, 디텍터 모듈(200)은 유발(trigger)에 응답하고, 반자동 클리핑 모드와 수동 클리핑 모드와 같은 옵션을 포함하는 클리핑 모드 선택 옵션을 나타내는 프레젠테이션 모듈(202)을 불러오는 셀렉터 모듈(201)을 불러올 수 있다. 만약 사용자가 수동 클리핑 모드를 선택한다면, 셀렉터 모듈(201)은 수동 클리핑 모드에서 선택옵션을 나타내는 프레젠테이션 모듈(202)을 불러온다. 만약 사용자가 도 13에서 보이는 것처럼 프레임 숫자 또는 썸네일 숫자 선택을 통해 시작점을 변화시키는 수동 모드를 선택한다면, 프레젠테이션 모듈(202)은 프레임 그래버 모듈(204)과 썸네일 숫자 1-5, 시작점 3을 제공하기 위해 통신한다. 프레임 그래버 모듈(204)은 콘피규레이션 파일(206)에 액세스(access)하고, 썸네일 사이즈 정보, 프레임 썸네일 시간 차이, 및 보여질 썸네일 숫자와 같은 썸네일 관련 정보를 추출한다. 시작점과 추출된 정보에 기초한 프레임 그래버 모듈(204)은 프레임 썸네일을 요구하는 타임 스트립을 생성한다. 타임스트립 상의 시간에 기초하여, 프레임 그래버 모듈(204)은 버퍼모듈(203)과 통신하고, 타임 스탬프를 위한 프레임을 요청할 수 있다. 버퍼모듈(203)은 요청된 프레임들을 프레임 그래버 모듈(204)에 제공하는데, 프레임 그래버 모듈(204)에 제공된 프레임들은 썸네일로 변환될 수 있다. 썸네일은 정확한 시작점 선택을 위해 사용자에게 보이기 위해 프레젠테이션 모듈(202)에 제공될 수 있다. 프레젠테이션 모듈(202)은 썸네일 숫자 1-5를 썸네일에 추가한다. 시작점 프레임 3은 썸네일 스트립의 중앙에 강조 표시되는 방식과 같이 썸네일이 디스플레이 될 수 있으며, 썸네일 스트립의 양 사이드에는 썸네일을 네비게이션하기 위한 화살표(1301)가 디스플레이 될 수 있다. 네비게이션을 위한 화살표(1301)의 옆에는 썸네일 숫자를 텍스트 입력으로 입력 받기 위한 입력 박스(1302)가 디스플레이 될 수 있으며, 확인을 위한 버튼(1303) 및 취소를 위한 버튼(1304)이 표시될 수 있다. 사용자는 썸네일 상에 주어진 썸네일 숫자를 입력하거나, 썸네일 스트립을 네비게이팅 하는 동안 화살표(1301)를 통한 입력에 기초한 사용자 그래픽 인터페이스를 통하여 시작 프레임을 선택할 수 있다. 사용자는 사용자 입력에 기초하여 텍스쳐 입력을 제공하거나 네비게이팅을 할 수 있으며, 선택된 프레임의 시간은 새로운 타임 스트립과 썸네일을 생성하기 위하여 프레임 그래버 모듈(204)에게 통신될 수 있다. 위의 과정은 반복되고 이런 프로세스는 시작점이 확정되지 않거나 클리핑 동작이 사용자에 의해 취소되기 전까지 계속될 수 있다.
하나의 예에서, 사용자는 희망하는 썸네일을 직접 제공하지 않을 수 있으며, 현재 재생 중인 멀티미디어 콘텐트의 희망하는 부분으로 가기 위한 임의의 썸네일 숫자를 제공할 수 있다. 상기 임의의 썸네일 숫자 주변의 썸네일 스트립이 디스플레이 될 때 상기 임의의 썸네일이 썸네일 스트립의 중간에서 강조되게 표시될 수 있으며, 사용자는 GUI에 기초한 선택 입력이나 희망하는 썸네일의 썸네일 숫자를 지정하는 텍스쳐 입력을 통하여 희망 썸네일을 선택할 수 있다. 하지만, 만약 상기 임의의 썸네일 숫자가 희망하는 썸네일이 아닌 경우에, 사용자는 희망하는 썸네일을 위치시키기 위해 썸네일 스트립에서 네비게이션을 위한 화살표를 이용하여 추가로 네비게이팅 하거나, 사용자의 직관에 기초한 다른 임의의 숫자를 입력할 수 있다.
시작점이 확정되면, 시작점은 프레젠테이션 모듈(202)로부터 셀렉터 모듈(201)로 전해진다. 셀렉터 모듈(201)은 클립 생성을 위하여 시작점, 끝점과 함께 클리핑 모듈(205)을 불러올 수 있다. 클리핑 모듈(205)은 콘피규레이션 파일(206)로부터 미리 설정된 저장 위치를 추출하고 미리 설정된 저장 위치에 있는 멀티미디어 클립을 저장한다. 또는, 멀티미디어 클립은 사용자 특화된 저장 위치에 저장된다. 만약 사용자가 클리핑 동작을 취소한다면, 콘피규레이션 파일(206)은 이전 값을 유지한다.
도 14는 수동 클리핑 모드에서 텍스쳐 시간 또는 프레임 입력을 위한 흐름을 묘사하는 플로우차트(1400)에 대해 보여준다. 단계 1401에서 시작한 후에, 단계 1402에서 버퍼는 시스템(100) 또는 멀티미디어 플레이어의 명령에 기초해서 현재 재생한 멀티미디어 콘텐트 부분을 버퍼의 용량에 따라 기록하기 시작한다. 멀티미디어 콘텐트가 재생되지 않을 때 버퍼는 비활성화 될 수 있다. 단계 1403에서 동작 중에 시스템이 스위치 오프/셧다운 되거나 멀티미디어 플레이어가 종료되면, 단계 1404에서 버퍼는 닫히고, 클리핑 프로세스는 단계 1405에서 종료될 수 있다. 단계 1406에서 클리핑이 사용자에 의해 유발 되었을 때 특정 시간 또는 프레임이 멀티미디어 클립의 끝점으로 지정된다. 단계 1407에서, 도 12 및 도 13에서와 같이 시작 시간 또는 지속 시간 또는 시작 프레임 숫자와 같은 형태로 사용자로부터 클립의 시작점을 수신하기 위하여, 최근 사용된 값 혹은 디폴트 값과 함께 셀렉션 윈도우가 표시될 수 있다. 단계 1408에서 사용자가 시작점에 만족하지 못할 때, 단계 1409에서 사용자는 시간 또는 프레임 숫자와 같은 텍스쳐 입력을 함으로써 시작점을 선택하거나 GUI 화살표를 이동시키면서 시작점을 선택할 수 있다. 단계 1408에서 사용자가 만족하면, 셀렉션 윈도우는 단계 1410에서 닫힌다. 이와 함께, 시작점과 끝점 사이에 있는 멀티미디어 콘텐트의 저장된 부분은 멀티미디어 클립을 생성하기 위해 추출되고, 멀티미디어 클립은 콘피규레이션 파일에서 구체화된 미리 설정된 위치에 저장되거나 또는 사용자 특화된 위치에 저장된다. 이러한 방법으로, 오직 세 가지 입력이 사용자로부터 수신될 수 있다; 첫 번째는 단지 클리핑 프로세스를 시작하는 것이고, 두 번째는 희망하는 수동모드를 선택하는 것이고, 세 번째는 멀티미디어 클립을 위한 시작점을 제공하는 것이다. 더욱이, 멀티미디어 클립은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이, 그리고 사용자로부터 어떤 다른 입력을 요구함이 없이 생성된다.
수동 모드에서, 사용자는 클립 생성을 유발한다. 그리고 나서, 디텍터 모듈(200)은 유발에 응답하고, 반자동 클리핑 모드와 수동 클리핑 모드와 같은 옵션을 포함하는 클리핑 모드 선택 옵션을 나타내는 프레젠테이션 모듈(202)을 불러오는 셀렉터모듈(201)을 불러올 수 있다. 만약 사용자가 수동 클리핑 모드를 선택한다면, 셀렉터모듈(201)은 수동 클리핑 모드에서 선택 옵션을 나타내는 프레젠테이션 모듈(202)을 불러온다. 하나의 실시예에서, 사용자는 제스쳐 입력을 통한 수동모드의 시작점 변화를 선택할 것이다. 상기 선택을 위한 사용자 인터페이스는 제스쳐 입력을 취하는 장치에서 요구되지 않는다. 그러고 나서, 프레젠테이션 모듈(202)은 도 15에 있는 것과 같이 시작점이 있는 프레임 썸네일을 제공하기 위해 프레임 그래버 모듈(204)과 통신한다. 프레임 그래버 모듈(204)은 콘피규레이션 파일(206)에 접근하고 썸네일 사이즈 정보, 썸네일 사이의 시간 차이, 보여질 썸네일 숫자와 같은 썸네일 관련된 정보를 획득한다. 프레임 그래버 모듈(204)은 시작점과 콘피규레이션 파일 정보에 기초해서 프레임 썸네일을 요구하는 타임 스트립을 생성한다. 타임 스트립에서의 시간에 기초해서, 프레임 그래버 모듈(204)은 버퍼 모듈(203)과 통신하고 타임스탬프를 위한 프레임을 요구한다. 버퍼모듈(203)은 상기 프레임을 프레임 그래버 모듈(204)에 제공하고 프레임은 썸네일로 변환된다. 이러한 썸네일은 희망하는 시작점의 선택을 위해 사용자에게 디스플레이 될 수 있도록 프레젠테이션 모듈(202)에 제공된다.
도 15는 수동모드에서 제스쳐를 통해 시작점을 변경하기 위한 사용자 그래픽 인터페이스(1500)에 대해 서술한다. 현재의 시작점 프레임(1503)이 썸네일 스트립의 중간에 강조되어 표시되는 방식으로 썸네일(1501-1505)이 디스플레이 되며, 스트립의 양 측면 위에 화살표(1506)가 디스플레이 된다. 사용자는 제스쳐를 통해 썸네일 스트립을 네비게이팅 하면서 시작 프레임을 선택하는 입력할 수 있다. 선택된 프레임의 시간은 현재의 타임 스트립과 썸네일을 발생시키기 위해 프레임 그래버 모듈(204)에 통신된다. 위의 과정은 반복되고 이러한 과정은 시작점이 확정되지 않거나 클리핑 동작이 사용자에 의해 취소되기까지 계속된다.
시작점이 확정되면, 시작점은 프레젠테이션 모듈(202)로부터 셀렉터 모듈(201)에 통신된다. 셀렉터 모듈(201)은 시작점을 발생시키기 위해 입력을 조작하고(만약 필요하다면), 또한 셀렉터 모듈(201)은 클립 생성을 위해 시작점 및 끝점과 함께 클리핑 모듈(205)을 불러온다. 클리핑 모듈(205)은 콘피규레이션 파일(206)로부터 미리 설정된 저장 위치를 추출하고, 미리 설정된 저장 위치에 멀티미디어 클립을 저장한다. 또는, 멀티미디어 클립은 사용자 특화된 저장 위치에 저장되는데, 사용자 특화된 위치는 사용자에 의해 수시로 수신된다. 만약 사용자가 클리핑 동작을 취소하면, 콘피규레이션 파일(206)은 이전의 값들을 유지한다.
수동모드에서 사용자는 클립 생성을 유발한다. 그러고 나서, 디텍터 모듈(200)은 유발에 응답하고, 반자동 클리핑 모드와 수동 클리핑 모드와 같은 옵션을 포함하는 클리핑 모드 선택 옵션을 나타내는 프레젠테이션 모듈(202)을 불러오는 셀렉터 모듈(201)을 불러올 수 있다. 만약 사용자가 수동 클리핑 모드를 고른다면, 셀렉터 모듈(201)은 수동 클리핑 모드에서 다양한 유형의 입력을 취하는 디바이스에 대한 선택권을 주기 위한 프레젠테이션 모듈(202)을 다시 불러온다. 하나의 실시예에서, 음성 입력을 통해 사용자는 수동 모드에서 시작점 변경을 선택할 수 있다. 상기 선택을 위한 사용자 인터페이스는 본질적으로 음성 입력을 취하는 디바이스에게는 필요하지 않다. 그리고 나서, 프레젠테이션 모듈(202)은 도 16에서 보여지는 것과 같이 시작점이 있는 프레임 썸네일을 제공하기 위해 프레임 그래버 모듈(204)과 통신한다. 프레임 그래버 모듈(204)은 콘피규레이션 파일(206)에 접근하고 가령 썸네일 사이즈, 썸네일 사이의 시간 차이, 그리고 보여지게 될 썸네일의 숫자와 같은 썸네일 관련된 정보를 획득할 수 있다. 프래임 그래버 모듈(204)은 시작점 및 콘피규레이션 파일 정보에 기초해서 프레임 썸네일이 요구되는 타임 스트립을 생성한다. 타임스트립 상의 시간에 기초해서, 프레임 그래버 모듈(204)은 버퍼 모듈(203)과 통신하고 시간 스탬프를 위한 프레임을 요구한다. 버퍼 모듈(203)은 상기 프레임을 프레임 그래버 모듈(204)에 제공하고, 프레임은 썸네일로 전환된다. 전환된 썸네일은 프레젠테이션 모듈(202)에 주어지는데, 희망하는 시작점의 선택을 위해 사용자에게 보여지도록 하기 위함이다.
도 16은 수동 모드에서 음성 입력을 통해 시작점을 변경하기 위한 사용자 그래픽 인터페이스(1600)를 설명한다. 현재의 시작점 프레임(1603)은 썸네일 스트립의 중간에 강조 표시되는 방식으로 썸네일(1601-1605)이 표시되고, 스트립의 양 옆에 화살표(1606)가 표시될 수 있다. 사용자는 썸네일 스트립을 검색하면서 시작 프레임을 선택하는데 있어서 마이크로폰을 통해 입력을 제공할 수 있고, 이것은 음성 입력 인터페이스(1607)를 통해 실현될 수 있다. 선택된 프레임의 시간은 새로운 타임 스트립과 썸네일을 생성시키기 위해 프레임 그래버 모듈(204)에 전달된다. 위의 과정은 반복되고 이 과정은 시작점이 고정되지 않거나 또는 클리핑 동작이 사용자에 의해 취소되기까지 계속된다.
시작점이 결정되면, 시작점은 프레젠테이션 모듈(202)에 의해 셀렉터 모듈(201)로 통신된다. 셀렉터 모듈(201)은 시작점을 생성시키기 위해 입력을 조정하고 클립 생성을 위해 시작점, 끝점과 함께 클리핑 모듈(205)을 불러온다. 클리핑 모듈(205)은 콘피규레이션 파일(206)로부터 미리 설정된 저장 위치를 알아내고, 미리 설정된 저장 위치에 멀티미디어 클립을 저장한다. 또는, 멀티미디어 클립은 사용자 특화된 저장 위치에 저장되고, 사용자 특화된 저장 위치는 사용자로부터 수시로 수신된다. 만약 사용자가 클리핑 동작을 취소한다면, 콘피규레이션 파일(206)은 지난 값들을 유지한다.
도 17은 수동 클리핑 모드에서 동작 또는 음성 입력의 흐름에 대해 묘사하는 플로우 차트(1700)에 대해 서술한다. 단계 1701에서 시작한 후에, 단계 1702에서 버퍼는 시스템(100) 또는 멀티미디어 플레이어의 명령에 기초해서 현재 재생한 멀티미디어 콘텐트 부분을 용량에 따라 기록하기 시작한다. 멀티미디어 콘텐트가 재생되지 않을 때 버퍼는 비활성화 될 수 있다. 동작 중에 단계 1703에서 시스템이 스위치 오프/셧다운 되거나 멀티미디어 플레이어가 닫히면, 단계 1704에서 버퍼는 닫히고 클리핑 프로세스는 단계 1705에서 끝난다. 단계 1706에서 클리핑이 사용자에 의해 유발 되었을 때 단계 1707에서 시스템은 최근 사용된 값 또는 디폴트 값과 함께 셀렉션 윈도우를 시작하고 시작프레임을 강조 표시한다. 유발(trigger)가 수신된 시간 또는 프레임은 멀티미디어 클립의 끝점으로 지정된다. 만약 사용자가 단계 1708에서의 디폴트 시작점에 만족하지 못한다면, 단계 1709에서 클립의 시작점은 도 15, 16과 관련하여 위에서 설명된 바와 같이 셀렉션 윈도우에 제스쳐 입력이나 음성 입력이 사용자에 의해 입력됨으로써 수신된다. 단계 1708에서 사용자가 시작점이나 프레임에 만족할 때까지, 사용자는 단계 1709에서 제스쳐 입력이나 음성 입력을 통해 시작점을 선택할 수 있다. 사용자가 단계 1708에서 만족한 경우, 단계 1710에서 셀렉션 윈도우는 닫힌다. 단계 1710에서 셀렉션 윈도우가 닫히고 멀티미디어 콘텐트의 시작점과 끝점 사이의 저장된 부분은 멀티미디어 클립을 생성하기 위해 추출된다. 멀티미디어 클립은 콘피규레이션 파일에서 구체화된 미리 설정된 위치에 저장되거나 또는 수시로 제공된 사용자 특화된 위치에 저장된다. 한편, 사용자로부터 수신되는 입력은 다음의 세 가지를 포함할 수 있다 ; 첫 번째 입력은 단지 클리핑 과정을 시작하는 것이고, 두 번째 입력은 수동 모드에서 희망하는 타입을 선택하는 것이고, 세 번째 입력은 제스쳐나 음성 입력을 통해 멀티미디어 클립을 위한 시작점을 제공하는 것이다. 더욱이, 멀티미디어 클립은 멀티미디어 콘텐트의 재생을 인터럽트 함이 없이, 또 사용자로부터 어떠한 다른 입력을 요구함이 없이 생성된다.
도 18은 사용자에게 클립 생성 상태를 알리기 위한 사용자 인터페이스(1800)에 대해 서술한다. 클립 생성 상태는 멀티미디어 콘텐트가 텔레비전과 같은 출력 디바이스에서 보여지는 동안 작은 다이얼로그 팝업(1801)을 통해 사용자에게 보여진다.
도 19는 클리핑 동작을 취소하는 과정을 위한 플로우차트(1900)에 대해 설명한다. 단계 1901에서 시작한 후에, 단계 1902에서 버퍼는 시스템(100) 또는 멀티미디어 플레이어에 기초하여 현재 재생한 멀티미디어 콘텐트 부분을 그 용량에 따라서 기록한다. 여기서, 멀티미디어 콘텐트가 재생되지 않을 때 버퍼는 비활성화 될 수 있다. 동작 중에 단계 1903에서 시스템이 스위치 오프/셧다운 되거나 멀티미디어 플레이어가 닫히면 버퍼는 단계 1904에서 닫히고, 클리핑 과정은 단계 1905에서 끝난다. 클리핑이 단계 1906에서 사용자, 외부 센서(207) 또는 내부 센서(106)에 의해 유발되면, 시스템은 단계 1907에서 사용자 인터페이스(UI)를 시작한다. 단계 1908에서, 사용자는 아무 때나 동작을 취소할 수 있고 이때 UI는 셀렉션 윈도우를 닫으나, 버퍼는 다른 멀티미디어 클립을 계속하여 생성하기 위해 멀티미디어 콘텐트의 현재 재생하는 부분을 계속 기록할 수 있다.
도 20은 콘피규레이션 파일(206)을 디스플레이하고 설정하기 위한 사용자 인터페이스에 대해 보여준다. 사용자 인터페이스(2000)를 통해, 사용자는 클리핑 과정을 위한 다양한 설정을 편집한다. 예를 들어, 사용자는 클립을 위한 기 설정된 지속시간(duration), 썸네일 크기, 썸네일 사이의 시간 차이, 보여질 썸네일 숫자, 버퍼 크기, 버퍼 위치, 미리 설정된 저장 위치, url, 그리고 소셜 네트워킹 웹사이트에서 직접적인 업로드를 위한 자격을 편집할 수 있다.
도 21은 버퍼 관리 과정에 대한 플로우차트(2100)에 대해 서술한다. 단계 2101에서 버퍼 관리 과정이 시작된 후에, 단계 2102에서 버퍼는 재생되는 멀티미디어 콘텐트를 버퍼 위치에 기록하기 시작하고, 멀티미디어 콘텐트의 기록은 콘피규레이션 파일(206)에서 구체화된 버퍼 크기에 의존할 수 있다. 버퍼링은 멀티미디어 플레이어의 명령에 기초하여, 또는 시스템(100)의 명령에 기초하여 시작된다. 단계 2103에서 만약 시스템이 스위치 오프/셧다운 되거나 멀티미디어 플레이어가 꺼져 있으면, 단계 2104에서 버퍼는 닫히고 버퍼 관리 과정은 단계 2105에서 종료된다. 시스템이 스위치 온 되어 있으면, 단계 2106에서 버퍼가 꽉 찼는지 계속 관찰된다. 만약 버퍼가 꽉 차면, 버퍼는 단계 2107에서 First In First Out(FIFO)과 같은 삭제 정책에 의해서 비워지고, 만약 버퍼가 꽉 차있지 않다면 버퍼는 단계 2102에서 버퍼에 남아 있는 공간에 멀티미디어 콘텐트를 계속 기록한다. 삭제 후에도 단계 2102에서 버퍼는 비어 있는 버퍼의 공간에 멀티미디어 콘텐트를 계속 기록한다.
본 개시는 멀티미디어 콘텐트를 만드는 것이 가능한 디지털 디바이스를 위한 멀티미디어 콘텐트에 이용될 수 있다. 디지털 디바이스는 태블릿, 모바일, TV와 같은 것들이 될 수 있다. 그리고 멀티미디어 콘텐트는 오디오나 비디오가 될 수 있다. 버퍼링 및 최종 저장을 목적으로 이용되는 메모리는 디바이스에 위치할 수 있고 또는 제 2 디바이스에 위치하면서 연결되어 사용되는 외부 메모리가 이용될 수도 있다. 제2 디바이스는 셋톱 박스, 펜 드라이브, 하드디스크 와 같은 것이 될 수 있다.
몇몇 선호되는 개시의 실시예는 여기에 설명 및 묘사되었는데, 개시는 개시 그 자체에 한정되지 않고 다양하게 포함되며 다음의 청구항의 범위에서 수행될 수 있다.
한편, 상술한 실시예는, 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터에 의해 판독 가능한 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 실시예에서 사용된 데이터의 구조는 컴퓨터 판독 가능 매체에 여러 수단을 통하여 기록될 수 있다. 또한, 상술한 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로 구현될 수 있다. 예를 들어, 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 컴퓨터가 읽고 실행할 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있다.
컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 기록 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 포함할 수 있다. 컴퓨터 판독 가능 매체는 마그네틱 저장매체, 예를 들면, 롬, 플로피 디스크, 하드 디스크 등을 포함하고,) 광학적 판독 매체, 예를 들면, 시디롬, DVD 등과 같은 저장 매체를 포함할 수 있으나, 이에 제한되지 않는다. 또한, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다.
또한, 컴퓨터가 읽을 수 있는 복수의 기록 매체가 네트워크로 연결된 컴퓨터 시스템들에 분산되어 있을 수 있으며, 분산된 기록 매체들에 저장된 데이터, 예를 들면 프로그램 명령어 및 코드가 적어도 하나의 컴퓨터에 의해 실행될 수 있다.
본 개시에서 설명된 특정 실행들은 일 실시예일 뿐이며, 어떠한 방법으로도 본 개시의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 및 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 개시에서 모든 예들 또는 예시적인 용어, 예들 들어, “등등”의 사용은 단순히 본 개시를 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 개시의 범위가 한정되는 것은 아니다.
또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 개시에 기재된 구성 요소들은 본 개시의 실행을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 개시의 실시예들과 관련된 기술 분야에서 통상의 지식을 가진 자는 상기 기재의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다.
본 개시는 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 본 개시는 명세서에 기재된 특정한 실시 형태에 의해 한정되는 것이 아니며, 본 개시의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물이 본 개시에 포함되는 것으로 이해되어야 한다. 그러므로, 개시된 실시예들은 한정적인 관점이 아닌 설명적 관점에서 이해되어야 한다.
본 개시의 범위는 발명의 상세한 설명보다는 특허 청구 범위에 의하여 나타나며, 특허 청구 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.
본 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다."부", "모듈"은 어드레싱 될 수 있는 저장 매체에 저장되며 프로세서에 의해 실행될 수 있는 프로그램에 의해 구현될 수도 있다.
예를 들어, “부”, "모듈" 은 소프트웨어 구성 요소들, 객체 지향 소프트웨어 구성 요소들, 클래스 구성 요소들 및 태스크 구성 요소들과 같은 구성 요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들에 의해 구현될 수 있다.
본 명세서에서, "A는 a1, a2 및 a3 중 하나를 포함할 수 있다"는 기재은, A라는 엘리먼트(element)에 포함될 수 있는 예시적인 엘리먼트가 a1, a2 또는 a3라는 넓은 의미이다.
상기 기재로 인해 엘리먼트 A를 구성할 수 있는 엘리먼트가 반드시 a1, a2 또는 a3로 국한된다는 것은 아니다. 따라서 A를 구성할 수 있는 엘리먼트가, a1, a2 및 a3 이외에 예시되지 않은 다른 엘리먼트들을 배제한다는 의미로, 배타적으로 해석되지 않음에 유의하여야 한다.
또한, 상기 기재는, A는 a1를 포함하거나, a2를 포함하거나, 또는 a3를 포함할 수 있다는 의미이다. 상기 기재가 A를 구성하는 엘리먼트들이 반드시 소정 집합 내에서 선택적으로 결정된다는 것을 의미하지는 않는다. 예를 들어 상기 기재가, 반드시 a1, a2 및 a3를 포함하는 집합으로부터 선택된 a1, a2, 또는 a3가 컴포넌트 A를 구성한다는 것으로, 제한적으로 해석되지 않음에 유의하여야 한다.
또한 본 명세서에서, "a1, a2 또는(및) a3 중 적어도 하나"는 기재는, "a1", "a2", "a3", "a1 및 a2", "a1 및 a3", "a2 및 a3", 및 "a1, a2 및 a3" 중에서 한 가지를 나타낸다.
따라서, "a1 중 적어도 하나, a2 중 적어도 하나 또는(및) a3 중 적어도 하나"라고 명시적으로 기재되지 않는 이상, "a1, a2 또는(및) a3 중 적어도 하나"는 기술이 "a1 중 적어도 하나", "a2 중 적어도 하나" 또는(및) "a3 중 적어도 하나"라고 해석되지 않음에 유의하여야 한다.