KR20170124839A - 고정 크기 블록 암호화를 위한 디지털 컨텐츠의 분할 방법 및 시스템 - Google Patents

고정 크기 블록 암호화를 위한 디지털 컨텐츠의 분할 방법 및 시스템 Download PDF

Info

Publication number
KR20170124839A
KR20170124839A KR1020160054776A KR20160054776A KR20170124839A KR 20170124839 A KR20170124839 A KR 20170124839A KR 1020160054776 A KR1020160054776 A KR 1020160054776A KR 20160054776 A KR20160054776 A KR 20160054776A KR 20170124839 A KR20170124839 A KR 20170124839A
Authority
KR
South Korea
Prior art keywords
block
gop
content
size
fixed size
Prior art date
Application number
KR1020160054776A
Other languages
English (en)
Inventor
김장호
이재웅
이정상
권주호
김종주
송정원
송창훈
문현도
안재철
신현붕
Original Assignee
네이버 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 네이버 주식회사 filed Critical 네이버 주식회사
Priority to KR1020160054776A priority Critical patent/KR20170124839A/ko
Publication of KR20170124839A publication Critical patent/KR20170124839A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2541Rights Management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44236Monitoring of piracy processes or activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Virology (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

고정 크기 블록 암호화를 위한 디지털 컨텐츠의 분할 방법 및 시스템이 개시된다. 본 발명의 실시예들에 따른 컨텐츠 분할 방법을 통해 동영상과 같은 디지털 컨텐츠에서 GOP(Group of Pictures)를 훼손하지 않으면서도 디지털 컨텐츠를 고정 크기의 블록으로 암호화할 수 있다.

Description

고정 크기 블록 암호화를 위한 디지털 컨텐츠의 분할 방법 및 시스템{METHOD AND SYSTEM FOR DIVIDING DIGITAL CONTENT FOR FIXED-LENGTH BLOCK ENCRYPTION}
아래의 설명은 고정 크기 블록 암호화를 위한 디지털 컨텐츠의 분할 방법 및 시스템에 관한 것이다.
디지털 워터마킹(watermarking)이란 디지털 컨텐츠에 지각적으로 인지되지 않는 특정마크(이하 '워터마크')를 은닉하는 기술로, 예를 들어 한국공개특허 제10-2011-0101577호는 접근 불가능 컨텐츠를 위한 오버레이채널을 이용한 동영상 워터마킹 시스템 및 그 방법에 대해 개시하고 있다.
한편, 서버-클라이언트 환경에서, 동영상과 같은 디지털 컨텐츠는 스트리밍이나 다운로드를 통해 서버에서 클라이언트로 제공될 수 있다. 이때, 스트리밍은 서버에서 디지털 컨텐츠를 복수의 조각난 파일들로 관리하고, 스트리밍 프로토콜에 따라 복수의 파일들을 클라이언트로 순차적으로 전송함에 따라 클라이언트가 전송되는 파일들을 재생하는 방식으로 디지털 컨텐츠를 클라이언트로 제공된다. 이러한 스트리밍 방식으로 디지털 컨텐츠를 제공하는 종래기술에서는 서로 다른 워터마크가 삽입된 파일들의 조합을 통해 사용자 각각에게 제공되는 디지털 컨텐츠를 사용자별로 식별할 수 있게 된다. 이때, 스트리밍 방식에서는 클라이언트가 현 시점에서 디지털 컨텐츠의 재생이 가능한 데이터만 수신할 수 있다면 별다른 문제가 없기 때문에 다운로드 속도에 대한 이슈가 크지 않다.
반면, 디지털 컨텐츠의 다운로드 방식에서는 디지털 컨텐츠에 대한 완성된 하나의 파일이 클라이언트에 저장되어야 한다. 따라서 디지털 컨텐츠의 다운로드 방식에서는 클라이언트가 전체 파일을 최대한 빠르게 다운로드 받아야 한다는 다운로드 속도에 대한 이슈가 존재한다. 예를 들어, 재생 시간이 1시간인 동영상을 고려할 수 있다. 이때 스트리밍 방식으로 동영상을 제공하는 경우에는 재생 시간인 1시간 이내에서 동영상의 재생이 끊기지 않는 수준의 속도로 파일들을 제공하면 되는 반면, 다운로드 방식에서는 재생 시간이 1시간인 동영상의 전체 파일을 가능한 한 빠르게 제공해야 한다.
또한, 동영상과 같은 디지털 컨텐츠는 일반적으로 다수의 프레임들이 모여서 묶인 복수의 GOP(Group of Pictures)로 구성된다. 이러한 GOP는 재생 가능한 최소 단위로 사용되며, 프레임들간의 선후 연관관계를 갖고 있기 때문에 GOP가 훼손되거나 중간에 끊기면 영상 자체가 깨지게 된다. 따라서 일반적으로 DRM(Digital Rights Management)을 이용하여 이러한 디지털 컨텐츠를 암호화할 때는 상술한 이유로 인해 GOP 단위로 암호화를 수행한다.
그러나, 특별한 이유나 요구사항으로 인해, GOP 단위의 암호화가 아닌 고정 크기(fixed-length)의 블록으로 암호화를 진행해야 할 필요성이 존재한다. GOP는 각각의 크기가 서로 다르기 때문에 고정 크기의 블록으로 암호화를 진행하는 경우 GOP가 손상되는 문제점이 있다.
서버-클라이언트 환경에서 사용자 고유 식별자가 은닉된 디지털 컨텐츠를 다운로드 방식으로 빠르게 제공할 수 있는 방법 및 시스템을 제공한다.
동영상과 같은 디지털 컨텐츠에서 GOP(Group of Pictures)를 훼손하지 않으면서도 디지털 컨텐츠를 고정 크기의 블록으로 암호화할 수 있는 방법 및 시스템을 제공한다.
컨텐츠 분할 방법에 있어서, 복수의 GOP(Group of Pictures) 블록으로 구성된 비디오 데이터와 오디오 데이터를 포함하는 디지털 컨텐츠를 확인하는 단계; 및 상기 디지털 컨텐츠를 고정 크기(fixed-length)를 갖는 복수의 컨텐츠 블록들로 분할하는 단계를 포함하고, 상기 복수의 GOP 블록 각각은 상기 고정 크기 이하의 크기를 갖고, 상기 분할하는 단계는, 상기 복수의 GOP 블록 중 제1 GOP 블록의 크기가 상기 고정 크기 미만인 경우, 상기 제1 GOP 블록에 상기 오디오 데이터의 제1 부분을 결합하여 상기 고정 크기의 제1 컨텐츠 블록을 생성하는 것을 특징으로 하는 컨텐츠 분할 방법을 제공한다.
컴퓨터로 구현된 컨텐츠 분할 시스템에 있어서, 상기 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 복수의 GOP(Group of Pictures) 블록으로 구성된 비디오 데이터와 오디오 데이터를 포함하는 디지털 컨텐츠를 확인하고, 상기 디지털 컨텐츠를 고정 크기(fixed-length)를 갖는 복수의 컨텐츠 블록들로 분할하며, 상기 복수의 GOP 블록 각각은 상기 고정 크기 이하의 크기를 갖고, 상기 적어도 하나의 프로세서는, 상기 디지털 컨텐츠를 분할하기 위해, 상기 복수의 GOP 블록 중 제1 GOP 블록의 크기가 상기 고정 크기 미만인 경우, 상기 제1 GOP 블록에 상기 오디오 데이터의 제1 부분을 결합하여 상기 고정 크기의 제1 컨텐츠 블록을 생성하는 것을 특징으로 하는 컨텐츠 분할 시스템을 제공한다.
서버-클라이언트 환경에서 사용자 고유 식별자가 은닉된 디지털 컨텐츠를 다운로드 방식으로 빠르게 제공할 수 있다.
동영상과 같은 디지털 컨텐츠에서 GOP(Group of Pictures)를 훼손하지 않으면서도 디지털 컨텐츠를 고정 크기의 블록으로 암호화할 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일실시예에 있어서, 서버의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이다.
도 4는 본 발명의 일실시예에 따른 서버가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
도 5는 본 발명의 일실시예에 있어서, 전자 기기의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이다.
도 6은 본 발명의 일실시예에 따른 전자 기기가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
도 7은 본 발명의 일실시예에 있어서, 서로 다른 코드값이 삽입된 복수의 복사본들의 예를 도시한 도면이다.
도 8은 본 발명의 일실시예에 있어서, 사용자별로 구성된 가상 파일의 예들을 도시한 도면이다.
도 9는 본 발명의 일실시예에 있어서, 동일한 코드값의 연속된 조각들을 병합하는 예를 도시한 도면이다.
도 10은 본 발명의 일실시예에 있어서, 사용자별 옵셋 정보의 예를 도시한 도면이다.
도 11은 본 발명의 일실시예에 있어서, 서버의 프로세서가 포함할 수 있는 구성요소의 다른 예를 도시한 블록도이다.
도 12는 본 발명의 일실시예에 따른 서버가 수행할 수 있는 방법의 다른 예를 도시한 흐름도이다.
도 13은 일반적인 MP4 컨텐츠의 예를 도시한 도면이다.
도 14는 본 발명의 일실시예에 있어서, 디지털 컨텐츠의 분할 예를 도시한 도면이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다.
복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 도 1에서는 전자 기기 1(110)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서는 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140) 및/또는 서버(150, 160)와 통신할 수 있는 다양한 기기들 중 하나를 의미할 수 있다.
통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.
서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다.
예를 들어, 서버(160)는 메신저 기능을 위한 어플리케이션이나 디지털 컨텐츠의 재생을 위한 어플리케이션의 설치 파일을 복수의 전자 기기들(110, 120, 130, 140)로 배포하는 파일 배포 시스템일 수 있다. 이 경우, 서버(150)는 어플리케이션이 설치된 클라이언트들에게 디지털 컨텐츠를 제공하기 위한 컨텐츠 제공 시스템일 수 있다. 예를 들어, 전자 기기 1(110)의 사용자는 전자 기기 1(110)에 설치된 어플리케이션을 이용하여 네트워크(170)를 통해 서버(150)에 접속할 수 있고, 서버(150)로 디지털 컨텐츠의 다운로드를 요청할 수 있다. 이 경우, 서버(150)는 요청된 디지털 컨텐츠를 전자 기기 1(110)로 전송할 수 있다.
도 2는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다. 도 2에서는 전자 기기에 대한 예로서 전자 기기 1(110), 그리고 서버(150)의 내부 구성을 설명한다. 다른 전자 기기들(120, 130, 140)이나 서버(160) 역시 동일한 또는 유사한 내부 구성을 가질 수 있다.
전자 기기 1(110)과 서버(150)는 메모리(211, 221), 프로세서(212, 222), 통신 모듈(213, 223) 그리고 입출력 인터페이스(214, 224)를 포함할 수 있다. 메모리(211, 221)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 비소멸성 대용량 기록장치는 메모리(211, 221)와 분리되어 별도의 영구 저장 장치로서 포함될 수도 있다. 또한, 메모리(211, 221)에는 운영체제와 적어도 하나의 프로그램 코드(일례로 전자 기기 1(110)에 설치되어 구동되는 브라우저나 특정 서비스의 제공을 위해 전자 기기 1(110)에 설치된 어플리케이션 등을 위한 코드)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(211, 221)와는 별도의 컴퓨터에서 판독 가능한 기록 매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록 매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록 매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 통신 모듈(213, 223)을 통해 메모리(211, 221)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템(일례로 상술한 서버(160))이 네트워크(170)를 통해 제공하는 파일들에 의해 설치되는 프로그램(일례로 상술한 어플리케이션)에 기반하여 메모리(211, 221)에 로딩될 수 있다.
프로세서(212, 222)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(211, 221) 또는 통신 모듈(213, 223)에 의해 프로세서(212, 222)로 제공될 수 있다. 예를 들어 프로세서(212, 222)는 메모리(211, 221)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 모듈(213, 223)은 네트워크(170)를 통해 전자 기기 1(110)과 서버(150)가 서로 통신하기 위한 기능을 제공할 수 있으며, 다른 전자 기기(일례로 전자 기기 2(120)) 또는 다른 서버(일례로 서버(160))와 통신하기 위한 기능을 제공할 수 있다. 일례로, 전자 기기 1(110)의 프로세서(212)가 메모리(211)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청(일례로 영상 통화 서비스를 위한 요청)이 통신 모듈(213)의 제어에 따라 네트워크(170)를 통해 서버(150)로 전달될 수 있다. 역으로, 서버(150)의 프로세서(222)의 제어에 따라 제공되는 제어 신호나 명령, 컨텐츠, 파일 등이 통신 모듈(223)과 네트워크(170)를 거쳐 전자 기기 1(110)의 통신 모듈(213)을 통해 전자 기기 1(110)로 수신될 수 있다. 예를 들어 통신 모듈(213)을 통해 수신된 서버(150)의 제어 신호나 명령 등은 프로세서(212)나 메모리(211)로 전달될 수 있고, 컨텐츠나 파일 등은 전자 기기 1(110)가 더 포함할 수 있는 저장 매체로 저장될 수 있다.
입출력 인터페이스(214, 224)는 입출력 장치(215)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 어플리케이션의 통신 세션을 표시하기 위한 디스플레이와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(214)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 보다 구체적인 예로, 전자 기기 1(110)의 프로세서(212)는 메모리(211)에 로딩된 컴퓨터 프로그램의 명령을 처리함에 있어서 서버(150)나 전자 기기 2(120)가 제공하는 데이터를 이용하여 구성되는 서비스 화면이나 컨텐츠가 입출력 인터페이스(214)를 통해 디스플레이에 표시될 수 있다.
또한, 다른 실시예들에서 전자 기기 1(110) 및 서버(150)는 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 전자 기기 1(110)은 상술한 입출력 장치(215) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다. 보다 구체적인 예로, 전자 기기 1(110)이 스마트폰인 경우, 일반적으로 스마트폰이 포함하고 있는 가속도 센서나 자이로 센서, 카메라, 각종 물리적인 버튼, 터치패널을 이용한 버튼, 입출력 포트, 진동을 위한 진동기 등의 다양한 구성요소들이 전자 기기 1(110)에 더 포함되도록 구현될 수 있음을 알 수 있다.
도 3은 본 발명의 일실시예에 있어서, 서버의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이고, 도 4는 본 발명의 일실시예에 따른 서버가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
서버(150)는 본 발명의 일실시예에 따른 컨텐츠 제공 시스템을 구현할 수 있으며, 도 3에 도시된 바와 같이 서버(150)에 포함된 프로세서(222)는 구성요소들로서 컨텐츠 관리부(310), 송수신 제어부(320), 가상 파일 구성부(330) 및 정보 생성부(340)를 포함할 수 있다. 이러한 프로세서(222) 및 프로세서(222)의 구성요소들은 도 4의 컨텐츠 제공 방법이 포함하는 단계들(410 내지 480)을 수행하도록 서버(150)를 제어할 수 있다. 이때, 프로세서(222) 및 프로세서(222)의 구성요소들은 메모리(221)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(222)의 구성요소들은 서버(150)에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서(222)에 의해 수행되는 프로세서(222)의 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 프로세서(222)가 상술한 제어 명령에 따라 디지털 컨텐츠를 관리하도록 서버(150)를 제어하는 프로세서(222)의 기능적 표현으로 컨텐츠 관리부(310)가 사용될 수 있다.
단계(410)에서 프로세서(222)는 서버(150)의 제어와 관련된 명령이 로딩된 메모리(221)로부터 필요한 명령을 읽어드릴 수 있다. 이 경우, 상기 읽어드린 명령은 프로세서(222)가 이후 설명될 단계들(420 내지 480)을 실행하도록 제어하기 위한 명령을 포함할 수 있다.
단계(420)에서 컨텐츠 관리부(310)는 디지털 컨텐츠에 대해, 각각 서로 다른 코드값이 삽입된 복수의 복사본을 관리할 수 있다. 예를 들어, 컨텐츠 관리부(310)는 디지털 컨텐츠의 복수의 복사본들을 서버(150)의 스토리지(storage)에 저장 및 관리하도록 서버(150)를 제어할 수 있다. 이때, 복수의 복사본들에는 각각 서로 다른 코드값들이 워터마킹(watermarking) 기술을 이용하여 시청각적으로 인지할 수 없도록 삽입되어 있을 수 있다. 이러한 워터마킹 기술은 디지털-아날로그나 아날로그-디지털 변형, 사이즈 변환, 일부 영역 잘라내기 등과 같이 디지털 컨텐츠의 변형 시에도 워터마크의 검출이 가능하다는 특징을 갖고 있다. 여기서, 코드값을 어떻게 디지털 컨텐츠에 삽입하는 가에 대한 워터마킹 기술은 이미 잘 알려져 있는 관계로 구체적인 설명은 생략한다. 코드값은 하나의 숫자, '123', '456'과 같은 숫자의 조합, 알파벳과 같은 문자, 문자들의 조합, 문자와 숫자의 조합 등과 같이 필요에 따라 선택된 다양한 형태의 값으로 구성될 수 있다. 간단한 예로, '0'의 코드값이 삽입된 제1 복사본과 '1'의 코드값이 삽입된 제2 복사본이 하나의 디지털 컨텐츠에 대해 관리될 수 있다.
단계(430)에서 송수신 제어부(320)는 디지털 컨텐츠에 대한 클라이언트의 다운로드 요청을 수신할 수 있다. 여기서, 클라이언트는 네트워크(170)를 통해 서버(150)에 접근하는 전자 기기 1(110)나 전자 기기 1(110)에 설치된 어플리케이션을 의미할 수 있다. 예를 들어, 사용자는 전자 기기 1(110)를 이용하여 서버(150)에 접근할 수 있고, 서버(150)가 제공하는 사용자 인터페이스(일례로, 서버(150)가 제공하는 웹페이지의 특정 링크)를 통해 디지털 컨텐츠의 다운로드를 서버(150)로 요청할 수 있다. 이 경우, 송수신 제어부(320)는 네트워크(170)를 통해 접근한 전자 기기 1(110)로부터 다운로드 요청 신호를 수신하도록 서버(150)를 제어할 수 있다.
단계(440)에서 가상 파일 구성부(330)는 디지털 컨텐츠에 대한 클라이언트의 다운로드 요청에 따라 서로 다른 코드값의 조합이 클라이언트와 연관하여 식별되는 사용자의 고유 식별자와 매칭되도록 복수의 복사본의 부분들을 조합하여 디지털 컨텐츠에 대한 가상 파일을 구성할 수 있다. 이때, 각각의 가상 파일을 구성하는 부분들은 서로 동일한 크기를 가질 수 있다. 또한, 이후 설명되는 조건에 따라 일부 부분들은 서로 병합될 수도 있다.
일실시예로, 가상 파일 구성부(330)는 서로 다른 코드값의 조합이 상기 가상 파일의 적어도 일부의 위치에서 상기 사용자의 고유 식별자에 대응하는 값을 갖도록 상기 복수의 복사본의 부분들을 조합할 수 있다. 예를 들어, 사용자의 고유 식별자를 2진 숫자열로 나타내었을 때의 값이 "010100010001"이라 가정한다. 이 경우, 가상 파일을 구성하기 위한 첫 번째 부분에는 2진 숫자열의 첫 번째 값인 '0'을 코드값으로 갖는 복사본의 첫 번째 조각이 이용될 수 있다. 또한, 가상 파일을 구성하기 위한 두 번째 부분에는 2진 숫자열의 두 번째 값인 '1'을 코드값으로 갖는 복사본의 두 번째 조각이 이용될 수 있으며, 이와 유사하게 가상 파일을 구성하기 위한 세 번째 부분에는 2진 숫자열의 세 번째 값인 '0'을 코드값으로 갖는 복사본의 세 번째 조각이 이용될 수 있다. 이때, 가상 파일은 2진 숫자열의 숫자의 개수만큼의 부분들로 구성될 수 있다. 또는, 가상 파일이 2진 숫자열의 숫자의 개수보다 더 많은 수의 부분들로 구성될 수도 있다. 예를 들어, 가상 파일은 2진 숫자열의 자리수의 배수의 부분들로 구성될 수도 있다. 이 경우, 2진 숫자열로 나타낸 고유 식별자가 반복적으로 활용될 수 있다. 또는, 가상 파일의 기설정된 부분의 코드값들이 사용자의 고유 식별자에 대응되도록 가상 파일이 생성될 수도 있다.
다른 실시예로, 가상 파일 구성부(330)는 서로 다른 코드값을 조합하여 다운로드 요청에 대한 고유값을 생성하고, 고유값을 사용자의 고유 식별자와 매칭하여 관리할 수도 있다. 예를 들어, 가상 파일 구성부(330)는 가상 파일의 코드값들의 조합이 항상 유일한 값을 갖도록 가상 파일을 구성할 수 있다. 이때, 유일한 값인 고유값과 사용자의 고유 식별자를 매칭하여 저장 및 관리함으로써 가상 파일을 통해 사용자가 식별될 수 있다.
단계(450)에서 정보 생성부(340)는 구성된 가상 파일의 위치정보와 복수의 복사본에서 조합된 부분들 각각을 식별하기 위한 옵셋(offset) 정보를 생성할 수 있다. 위치정보는 클라이언트가 네트워크 상에서 가상 파일을 찾기 위한 위치에 대한 정보를 포함할 수 있으며, 일례로 가상 파일을 위해 생성된 유니폼 리소스 로케이터(Uniform Resource Locator, URL)를 포함할 수 있다.
옵셋 정보는 일실시예로, 사용자의 고유 식별자와 매칭된 부분들이 해당 복사본에서 어느 부분인가를 식별하기 위한 정보를 포함할 수 있다. 예를 들어, 복사본의 전체 바이트들 중 특정 바이트-범위(byte-range)를 통해 고유 식별자와 매칭된 부분들이 식별될 수 있다. 보다 구체적인 예로, 디지털 컨텐츠가 200 바이트의 크기를 갖는다고 가정할 수 있다. 이때, 옵셋 정보는 제1 복사본의 0-99 바이트-범위의 부분 및 제2 복사본의 100-199 바이트 범위의 부분 등과 같이 바이트-범위를 이용하여 사용자의 고유 식별자와 매칭된 부분들이 해당 복사본에서 어느 부분인가를 식별하기 위한 정보를 포함할 수 있다.
옵셋 정보는 다른 실시예로, 청크 넘버(chunk number)를 포함하도록 구성될 수도 있다. 예를 들어, 복수의 복사본들 각각은 복수의 청크(chunk)들로 나뉘어 구분될 수 있다. 이때, 옵셋 정보는 사용자의 고유 식별자와 매칭된 부분들이 해당 복사본에서 어느 부분인가를 식별하기 위한 정보로서 해당 부분의 청크 넘버를 포함할 수 있다.
또한, 앞서 설명한 가상 파일 구성부(330)는 단계(440)에서 조합된 부분들 중 동일한 코드값을 가진 서로 연속된 부분들을 병합하여 하나의 부분으로 조합할 수도 있다. 예를 들어, '0'의 코드값을 가진 세 개의 조각들이 연속적으로 배치된 경우, 가상 파일 구성부(330)는 세 개의 조각을 '0'의 코드값을 가진 하나의 조각으로 병합할 수 있다. 이 경우, 옵셋 정보는 병합된 부분을 하나의 부분으로 식별하기 위한 정보를 포함할 수 있다. 예를 들어, '0'의 코드값을 가진 세 개의 조각들이 각각 '0-99', '100-199', '200-299'의 바이트-범위로 식별되는 경우, 병합된 하나의 조각은 '0-299'의 바이트-범위로 식별될 수 있다. 다시 말해, 동일한 코드값을 가진 서로 연속된 부분들을 병합하여 하나의 조각으로 전송함으로써, 전자 기기 1(110)이 한번에 다운로드하는 조각들을 최대한 크게 유지함으로써 조각들의 요청 수를 줄일 수 있어 다운로드 속도를 향상시킬 수 있다.
단계(460)에서 송수신 제어부(320)는 생성된 위치정보와 옵셋 정보를 클라이언트로 제공할 수 있다. 예를 들어 송수신 제어부(320)는 위치정보와 옵셋 정보를 포함하는 데이터를 네트워크(170)를 통해 전자 기기 1(110)로 전송하도록 서버(150)를 제어할 수 있다.
단계(470)에서 송수신 제어부(330)는 클라이언트로부터 위치정보에 기반하고, 옵셋 정보를 포함하는 다운로드 요청을 수신할 수 있다. 예를 들어, 송수신 제어부(320)는 위치정보에 기반하여 네트워크(170)를 통해 접근하는 전자 기기 1(110)로부터 옵셋정보를 포함하는 다운로드 요청 신호를 수신하도록 서버(150)를 제어할 수 있다. 이때, 전자 기기 1(110)은 실제로는 복수의 복사본 파일들에 대해 일부분의 데이터를 요청하는 것이기 때문에 전자 기기 1(110)은 각각의 조각별로 다운로드를 요청할 수 있다. 따라서, 가상 파일이 포함하는 조각의 수만큼의 다운로드 요청이 발생할 수 있다. 앞서 설명한 바와 같이 동일한 코드값을 가진 서로 연속된 부분들은 병합되어 하나의 조각으로 전송될 수 있다. 따라서 이 경우에는 다운로드 요청의 수를 줄일 수 있어 다운로드 속도를 증가시킬 수 있다.
단계(480)에서 송수신 제어부(330)는 복수의 복사본에서 옵셋 정보에 대응하는 부분들을 위치정보를 통해 식별되는 가상 파일로서 클라이언트로 전송할 수 있다. 예를 들어, 서버(150)는 전자 기기 1(110)이 접근하는데 이용한 위치정보에 기반하여 가상 파일을 식별할 수 있으며, 다운로드 요청에 포함된 옵셋 정보를 이용하여 복수의 복사본들 각각에서 전자 기기 1(110)로 전송해야 할 부분들을 식별할 수 있다. 이때, 송수신 제어부(330)는 식별되는 복수의 복사본들의 각 부분들을 가상 파일로서 네트워크(170)를 통해 전자 기기 1(110)로 전송하도록 서버(150)를 제어할 수 있다.
전자 기기 1(110)로 전송된 가상 파일은 전자 기기 1(110)에 하나의 파일의 형태로 저장될 수 있으며, 전자 기기 1(110)에서 재생되거나 다른 장치로 전송될 수 있다. 이때, 가상 파일에는 전자 기기 1(110)의 사용자에 대한 고유 식별자를 인식하기 위한 정보가 포함되어 있기 때문에 해당 디지털 컨텐츠에 대한 소유권 증명이나 최초 유포자와 같은 사용자 추적이 가능해진다.
도 5는 본 발명의 일실시예에 있어서, 전자 기기의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이고, 도 6은 본 발명의 일실시예에 따른 전자 기기가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
전자 기기 1(110)은 본 발명의 일실시예에 따른 컨텐츠 제공 시스템을 구현할 수 있으며, 도 5에 도시된 바와 같이 전자 기기 1(110)에 포함된 프로세서(212)는 구성요소들로서 다운로드 요청부(510), 송수신 제어부(520) 및 재생 제어부(530)를 포함할 수 있다. 이러한 프로세서(212) 및 프로세서(212)의 구성요소들은 도 6의 컨텐츠 제공 방법이 포함하는 단계들(610 내지 660)을 수행하도록 전자 기기 1(110)을 제어할 수 있다. 이때, 프로세서(212) 및 프로세서(212)의 구성요소들은 메모리(211)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(212)의 구성요소들은 전자 기기 1(110)에 저장된 프로그램 코드가 제공하는 명령에 따라 프로세서(212)에 의해 수행되는 프로세서(212)의 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 프로세서(212)가 상술한 명령에 따라 다운로드를 요청하도록 전자 기기 1(110)을 제어하는 프로세서(212)의 기능적 표현으로 다운로드 요청부(510)가 사용될 수 있다.
단계(610)에서 프로세서(212)는 전자 기기 1(110)의 제어와 관련된 명령이 로딩된 메모리(211)로부터 필요한 명령을 읽어드릴 수 있다. 이 경우, 상기 읽어드린 명령은 프로세서(212)가 이후 설명될 단계들(620 내지 660)을 실행하도록 제어하기 위한 명령을 포함할 수 있다.
단계(620)에서 다운로드 요청부(510)는 디지털 컨텐츠에 대해, 각각 서로 다른 코드값이 삽입된 복수의 복사본을 관리하는 서버(150)로 디지털 컨텐츠의 다운로드를 요청할 수 있다. 예를 들어, 다운로드 요청부(510)는 전자 기기 1(110)이 네트워크(170)를 통해 서버(150)에 접근하여 서버(150)가 제공하는 인터페이스를 통해 특정 디지털 컨텐츠의 다운로드를 요청하도록 전자 기기 1(110)을 제어할 수 있다. 서버(150)는 도 3 및 도 4를 통해 설명한 바와 같이 서로 다른 코드값이 삽입된 복수의 복사본을 관리하고, 전자 기기 1(110)의 사용자의 고유 식별자를 인식하기 위한 정보가 포함된 가상 파일을 전자 기기 1(110)로 제공할 수 있다.
단계(630)에서 송수신 제어부(520)는 다운로드의 요청에 따라 서버(150)로부터 복수의 복사본의 부분들이 조합된 가상 파일의 위치정보 및 복수의 복사본에서 조합된 부분들 각각을 식별하기 위한 옵셋 정보를 수신할 수 있다. 예를 들어, 송수신 제어부(520)는 서버(150)로부터 위치정보가 옵셋 정보가 포함된 데이터를 수신하도록 전자 기기 1(110)을 제어할 수 있다.
앞서 설명한 바와 같이 가상 파일은 이미 설명한 바와 같이 서버에서 서로 다른 코드값의 조합이 사용자의 고유 식별자와 매칭되도록 복수의 복사본의 부분들을 조합하여 생성될 수 있다. 또한, 위치정보는 클라이언트가 네트워크 상에서 가상 파일을 찾기 위한 위치에 대한 정보를 포함할 수 있으며, 일례로 가상 파일을 위해 생성된 유니폼 리소스 로케이터(Uniform Resource Locator, URL)를 포함할 수 있다. 옵셋 정보는 사용자의 고유 식별자와 매칭된 부분들이 해당 복사본에서 어느 부분인가를 식별하기 위한 정보로서 바이트-범위나 청크 넘버를 포함할 수 있다.
단계(640)에서 다운로드 요청부(510)는 옵셋 정보를 포함하는 다운로드 요청을 위치정보에 기반하여 전송할 수 있다. 예를 들어, 다운로드 요청부(510)는 위치정보에 따라 다운로드 요청 신호를 네트워크(170)를 통해 전송하도록 전자 기기 1(110)을 제어할 수 있다. 이때 앞서 설명한 바와 같이 가상 파일이 포함하는 조각들은 실질적으로 서로 다른 복수의 복사본들에 포함된 것이기 때문에 다운로드 요청은 가상 파일이 포함하는 조각들의 수만큼 이루어질 수 있다.
다운로드 요청을 수신한 서버(150)는 도 3 및 도 4를 통해 설명한 바와 같이, 위치정보에 대응하는 가상 파일을 전자 기기 1(110)로 전송함에 있어서, 옵셋 정보에 대응하는 부분들을 복수의 복사본에서 각각 추출하여 전자 기기 1(110)로 전송함으로써 가상 파일을 전송할 수 있다.
단계(650)에서 송수신 제어부(520)는 복수의 복사본에서 옵셋 정보에 대응하는 부분들의 조합을 위치정보를 통해 식별되는 가상 파일로서 수신할 수 있다. 예를 들어, 송수신 제어부(520)는 서버(150)가 네트워크(170)를 전송하는 가상 파일을 수신하도록 전자 기기 1(110)을 제어할 수 있다. 옵셋 정보에 대응하는 모든 조각들을 조합하면, 하나의 디지털 컨텐츠에 대응하는 데이터가 가상 파일로서 얻어질 수 있으며, 전자 기기 1(110)은 수신된 가상 파일은 하나의 파일로서 전자 기기 1(110)의 스토리지에 저장할 수 있다.
단계(660)에서 재생 제어부(530)는 저장된 가상 파일을 재생할 수 있다. 예를 들어, 재생 제어부(530)는 스토리지에 저장된 가상 파일을 찾아 재생하여 전자 기기 1(110)의 디스플레이를 통해 표시하도록 전자 기기 1(110)을 제어할 수 있다.
이하에서는 사용자의 고유 식별자에 대응하는 정보가 삽입된 디지털 컨텐츠를 다운로드 방식으로 제공하기 위한 보다 구체적인 예들을 설명한다.
도 7은 본 발명의 일실시예에 있어서, 서로 다른 코드값이 삽입된 복수의 복사본들의 예를 도시한 도면이다. 도 7은 하나의 디지털 컨텐츠에 대한 n개의 복사본들(C1, C2, C3, …, Cn)을 나타내고 있다. 디지털 컨텐츠는 1200 바이트의 크기(0-1199 바이트-범위)를 갖고 있고, 따라서 n개의 복사본들(C1, C2, C3, …, Cn) 역시 각각 1200 바이트의 크기를 갖고 있다고 가정한다. 또한, n개의 복사본들(C1, C2, C3, …, Cn) 각각에 코드값 '0', 코드값 '1', 코드값 '2', 코드값 'n-1'과 같이 서로 다른 코드값이 삽입되어 있다고 가정한다. 앞서 설명한 바와 같이 코드값은 숫자나 문자, 숫자의 조합, 문자의 조합 또는 숫자와 문자의 조합과 같이 다양한 형태로 구현될 수 있다.
앞서 설명한 컨텐츠 관리부(310)는 단계(420)에서 이러한 복사본들을 관리할 수 있다. 복사본들은 서버(150)에 저장될 수도 있으나, 필요에 따라서는 서버(150)와 네트워크(170)를 통해 통신하는 별도의 장치에 저장될 수도 있다.
도 8은 본 발명의 일실시예에 있어서, 사용자별로 구성된 가상 파일의 예들을 도시한 도면이다. 도 8은 세 명의 사용자들(U1, U2, U3) 각각의 고유 식별자에 매칭되도록 세 개의 복사본들(C1, C2, C3)을 이용하여 가상 파일들을 구성한 예를 나타내고 있다. 이때, 도 7을 통해 사용자 U1의 고유 식별자가 "012220022011"이거나 고유값 "012220022011"와 매칭되어 서버(150)에 저장된 값임을 알 수 있다. 또한, 사용자 U2의 고유 식별자는 "111022211100"이거나 "111022211100"와 매칭되어 서버(150)에 저장된 값임을 알 수 있다. 마찬가지로, 사용자 U3의 고유 식별자는 "221122012000"이거나 "221122012000"와 매칭되어 서버(150)에 저장된 값임을 알 수 있다.
예를 들어, 사용자 U1의 고유 식별자가 "012220022011"라 가정하자. 이때, 서버(150)는 3개의 복사본들(C1, C2, C3)로부터 사용자 U1의 고유 식별자 "012220022011"에 매칭되는 부분들을 조합할 수 있다. 다시 말해, 서버(150)는 사용자 U1의 고유 식별자의 첫 번째 값인 '0'에 따라 코드값 '0'을 갖는 복사본 C1로부터 0-99 바이트-범위의 부분을 가상 파일의 첫 번째 조각(810)으로 매칭할 수 있다. 또한, 서버(150)는 사용자 U1의 고유 식별자의 두 번째 값인 '1'에 따라 코드값 '1'을 갖는 복사본 C2로부터 100-199 바이트-범위의 부분을 가상 파일의 두 번째 조각(820)으로 매칭할 수 있다. 다시 서버(150)는 사용자 U1의 고유 식별자의 세 번째 값인 '2'에 따라 코드값 '2'를 갖는 복사본 C3으로부터 200-299 바이트-범위의 부분을 가상 파일의 세 번째 조각(830)으로 매칭할 수 있다. 이러한 과정을 사용자 U1의 고유 식별자가 "012220022011"의 모든 값들에 대해 반복함으로써 사용자 U1을 위한 고유 식별자가 삽입된 가상 파일이 구성될 수 있다. 사용자 U2를 위한 가상 파일과 사용자 U3을 위한 가상 파일 역시 유사한 방법으로 구성될 수 있다.
실시예에 따라서는 이미 설명한 바와 같이, 동일한 코드값을 갖고 연속된 조각들이 하나의 조각으로 병합될 수도 있다. 예를 들어, 도 8에서 사용자 U1의 가상 파일은 세 번째 조각(830), 네 번째 조각(840) 및 다섯 번째 조각(850)의 세 개의 조각이 동일한 코드값 '2'를 가짐을 알 수 있다.
도 9는 본 발명의 일실시예에 있어서, 동일한 코드값의 연속된 조각들을 병합하는 예를 도시한 도면이다. 도 9는 도 8의 가상 파일들에서 동일한 코드값을 갖고 서로 연속된 부분들을 하나의 부분으로 병합한 예를 나타내고 있다. 예를 들어, 사용자 U1을 위한 가상 파일에 첫 번째 조각(910)과 두 번째 조각(920)은 동일한 코드값을 갖고 연속된 조각들이 존재하지 않기 때문에 각각 하나의 조각으로 존재한다. 반면, 도 8에서 설명한 세 개의 조각들(830, 840, 850)은 코드값 '2'를 동일하게 갖는 연속된 조각들로서 도 9에 도시된 바와 같이 하나의 조각(930)으로 병합될 수 있다. 도 8의 가상 파일을 이용하는 경우 사용자 U1이 12번의 다운로드 요청과 12번의 다운로드를 진행해야 하지만, 도 8의 가상 파일을 이용하는 경우 사용자 U1은 7번의 다운로드 요청과 7번의 다운로드만 진행하면 되기 때문에 사용자의 가상 파일에 고유 식별자를 삽입함과 동시에 다운로드 속도를 향상시킬 수 있다.
도 10은 본 발명의 일실시예에 있어서, 사용자별 옵셋 정보의 예를 도시한 도면이다. 예를 들어, 도 10에서 사용자 U1의 가상 파일을 구성하는 첫 번째 조각(910)은 0~99의 바이트-범위를 갖고, 두 번째 조각(920)은 100~199의 바이트-범위를 가지며, 세 번째 조각(930)은 200~499의 바이트-범위를 가짐을 알 수 있다. 이러한 조각들 각각에 대한 바이트-범위가 옵셋 정보로서 해당 사용자들에게 제공될 수 있다. 역으로 사용자들은 제공된 옵셋 정보에 기초하여 서버(150)로부터 필요한 조각을 다운로드 받을 수 있게 된다. 예를 들어, 사용자 U1이 '0~99'의 바이트-범위의 옵셋 정보가 포함된 조각의 다운로드를 서버(150)로 요청하면, 서버(150)는 사용자의 고유 식별자 "012220022011"의 첫 번째 값이 '0'임을 알기 때문에 코드값 '0'의 복사본 C1에서 '0~99' 바이트-범위의 데이터를 사용자 U1에게 제공할 수 있다. 다시 사용자 U1이 '100~199'의 바이트-범위의 옵셋 정보가 포함된 조각의 다운로드를 서버(150)로 요청하면, 서버(150)는 사용자의 고유 식별자 "012220022011"의 두 번째 값이 '1'임을 알기 때문에 코드값 '1'의 복사본 C2에서 '100~199'의 바이트-범위의 데이터를 사용자 U1에게 제공할 수 있다. 이와 유사하게, 사용자 U1이 '200~499'의 바이트-범위의 옵셋 정보가 포함된 조각의 다운로드를 서버(150)로 요청하면, 서버(150)는 사용자의 고유 식별자 "012220022011"의 두 번째 값, 세 번째 값 및 네 번째 값이 '2'임을 알기 때문에 코드값 '2'의 복사본 C3에서 '200~499'의 바이트-범위의 데이터를 사용자 U1에게 제공할 수 있다. 이와 같은 과정의 반복을 통해 사용자 U1을 위한 가상 파일이 사용자 U1에게 제공될 수 있다.
앞서 설명한 실시예들에서와 같이 디지털 컨텐츠가 동일한 크기의 조각들로 분할될 필요성이 존재한다. 그러나, 복수의 GOP(Group of Pictures) 블록으로 구성된 비디오 데이터를 포함하는 디지털 컨텐츠를 고정 크기(fixed-length)로 분할하는 경우 이미 설명한 바와 같이 GOP가 훼손될 가능성이 존재한다. 또한, 상술한 실시예들 외에도 특별한 요구사항에 따라 디지털 컨텐츠를 고정 크기로 분할하여 암호화해야 하는 필요성도 존재한다. 이후에서는, GOP의 훼손 없이 디지털 컨텐츠를 고정 크기로 분할하기 위한 컨텐츠 분할 시스템 및 컨텐츠 분할 방법에 대해 설명한다.
도 11은 본 발명의 일실시예에 있어서, 서버의 프로세서가 포함할 수 있는 구성요소의 다른 예를 도시한 블록도이고, 도 12는 본 발명의 일실시예에 따른 서버가 수행할 수 있는 방법의 다른 예를 도시한 흐름도이다.
본 실시예에서 서버(150)는 컨텐츠 분할 시스템을 구현할 수 있으며, 도 11에 도시된 바와 같이 서버(150)에 포함된 프로세서(222)는 구성요소들로서 디지털 컨텐츠 확인부(1110), 컨텐츠 분할부(1120) 및 컨텐츠 암호화부(1130)를 포함할 수 있다. 또한, 실시예에 따라 도 3 및 도 4를 통해 설명한 컨텐츠 관리부(310), 송수신 제어부(320), 가상 파일 구성부(330) 및 정보 생성부(340)를 선택적으로 더 포함할 수 있다. 이러한 프로세서(222) 및 프로세서(222)의 구성요소들은 도 12의 컨텐츠 분할 방법이 포함하는 단계들(1210 내지 1240)을 수행하도록 서버(150)를 제어할 수 있다. 이때, 프로세서(222) 및 프로세서(222)의 구성요소들은 메모리(221)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 이미 설명한 바와 같이, 프로세서(222)의 구성요소들은 서버(150)에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서(222)에 의해 수행되는 프로세서(222)의 서로 다른 기능들(different functions)의 표현들일 수 있다.
단계(1210)에서 프로세서(222)는 서버(150)의 제어와 관련된 명령이 로딩된 메모리(221)로부터 필요한 명령을 읽어드릴 수 있다. 이 경우, 상기 읽어드린 명령은 프로세서(222)가 이후 설명될 단계들(1220 내지 1240)을 실행하도록 제어하기 위한 명령을 포함할 수 있다.
단계(1220)에서 디지털 컨텐츠 확인부(1110)는 복수의 GOP(Group of Pictures) 블록으로 구성된 비디오 데이터와 오디오 데이터를 포함하는 디지털 컨텐츠를 확인할 수 있다. 이미 설명한 바와 같이, 동영상과 같은 디지털 컨텐츠는 일반적으로 다수의 프레임들이 모여서 묶인 복수의 GOP(Group of Pictures)로 구성될 수 있으며, 오디오 재생을 위한 오디오 데이터를 더 포함할 수 있다. 디지털 컨텐츠 확인부(1110)는 이러한 디지털 컨텐츠 중 분할하고자 하는 디지털 컨텐츠를 확인할 수 있다. 예를 들어, 디지털 컨텐츠 확인부(1110)는 서버(150)의 스토리지에 저장된 디지털 컨텐츠들 중 분할하고자 하는 디지털 컨텐츠를 탐색하도록 서버(150)를 제어할 수 있다.
단계(1230)에서 컨텐츠 분할부(1120)는 디지털 컨텐츠를 고정 크기(fixed-length)를 갖는 복수의 컨텐츠 블록들로 분할할 수 있다. 이때, 복수의 GOP 블록들 중 적어도 일부의 블록들은 서로 다른 크기를 가질 수 있으며, 복수의 GOP 블록들 각각은 상기 고정 크기 이하의 크기를 가질 수 있다. 다시 말해, 컨텐츠 블록이 갖게 되는 고정 크기는 복수의 GOP 블록 중 가장 큰 GOP 블록보다 더 큰 크기를 갖도록 설정될 수 있다. 이때, 컨텐츠 분할부(1120)는 복수의 GOP 블록 중 제1 GOP 블록의 크기가 고정 크기 미만인 경우, 제1 GOP 블록에 오디오 데이터의 제1 부분을 결합하여 고정 크기의 제1 컨텐츠 블록을 생성할 수 있다. 동영상과 같은 비디오 컨텐츠에서 오디오는 여러 개의 패킷으로 구성되고, 패킷들간의 선후 연관관계가 없기 때문에, 오디오 블록은 중간에 분할되어도 전체적인 재생에 영향이 없다. 또한, 중간에 분할되더라도 손상되는 패킷의 크기가 매우 작기 때문에 디지털 컨텐츠를 재생하는 사용자의 입장에서는 큰 차이가 없다. 다시 말해, 본 실시예에서는 하나의 컨텐츠 블록에 GOP 블록을 먼저 채우고, 완전한 GOP 블록이 들어갈 수 없는 컨텐츠 블록의 나머지 부분에 오디오 블록의 적어도 일부인 제1 부분을 결합함으로써 서로 다른 크기의 GOP 블록들이 훼손되지 않도록 디지털 컨텐츠를 분할할 수 있다.
만약, 제1 블록의 크기가 고정 크기인 경우, 컨텐츠 분할부(1120)는 단계(1230)에서 제1 GOP 블록을 고정 크기의 제1 컨텐츠 블록으로 생성할 수 있다. 다시 말해, 분할에 의해 훼손되지 않을 GOP 블록의 경우에는 GOP 블록을 그대로 컨텐츠 블록으로 활용할 수 있다.
오디오 데이터는 복수의 오디오 블록들로 구성될 수 있다. 이 경우, 상술한 오디오 데이터의 제1 부분은 제1 GOP 블록에 대응하는 제1 오디오 블록의 적어도 일부일 수 있다. 예를 들어, 일반적인 MP4 오디오/비디오 블록들은 GOP 블록들과 각각의 GOP 블록들에 대응하는 오디오 블록들이 순차적으로 배치되어 디지털 컨텐츠를 구성할 수 있다. 이때, 제1 GOP 블록의 크기가 고정 크기 미만인 경우에는 제1 GOP 블록과 제1 오디오 블록의 일부인 제1 부분의 결합을 통해 고정 크기의 컨텐츠 블록이 생성될 수 있다.
이때, 컨텐츠 분할부(1120)는 제1 오디오 블록에서 제1 부분을 제외한 나머지 부분인 제2 부분과 복수의 GOP 블록 중 제2 GOP 블록을 결합하여 제2 블록을 생성하되, 제2 부분과 제2 GOP 블록이 결합된 크기가 고정 크기 미만인 경우, 오디오 데이터의 제3 부분을 더 결합하여 고정 크기의 제2 블록을 생성할 수 있다. 이때, 오디오 데이터의 제3 부분은 제2 GOP 블록에 대응하는 오디오 블록의 적어도 일부일 수 있다.
만약, 제2 부분과 제2 GOP 블록이 결합된 크기가 고정 크기 이상인 경우, 컨텐츠 분할부(1120)는 제2 GOP 블록에 제2 부분의 일부분인 제2-1 부분을 결합하여 고정 크기의 제2 블록을 생성할 수 있다.
이처럼, 서버(150)는 GOP 블록과 오디오 데이터의 결합을 통해 고정 크기의 컨텐츠 블록들로 디지털 컨텐츠를 분할할 수 있다.
단계(1240)에서 컨텐츠 암호화부(1130)는 고정 크기로 분할된 컨텐츠 블록의 단위로 디지털 컨텐츠를 암호화할 수 있다. 예를 들어, 앞선 실시예들에서는 디지털 컨텐츠를 동일한 크기의 조각들의 조합으로 구성함으로써 서버-클라이언트 환경에서 사용자 고유 식별자가 은닉된 디지털 컨텐츠를 제공하였다. 이 경우, 각 동일한 크기의 조각들, 다시 말해 고정 크기(일례로, N-byte)의 컨텐츠 블록의 단위로 DRM 등을 위한 암호화가 진행될 필요가 있다. 따라서, 서버(150)는 상술한 컨텐츠 분할 방법에 따라 디지털 컨텐츠를 분할함으로써 GOP가 손상되지 않으면서도 고정 크기로 디지털 컨텐츠를 분할하여 암호화할 수 있다.
도 13은 일반적인 MP4 컨텐츠의 예를 도시한 도면이다. 도 13은 복수의 오디오 블록들(1310, 1330, 1350)과 복수의 GOP 블록들(1320, 1340, 1360)이 순차적으로 배열되어 구성된 디지털 컨텐츠의 일부의 예를 나타내고 있다. 이때, 복수의 오디오 블록들(1310, 1330, 1350)과 복수의 GOP 블록들(1320, 1340, 1360)의 크기(byte 단위)가 서로 다름을 알 수 있다. 이때, 점선박스들(1370, 1380, 1390)은 디지털 컨텐츠를 고정 크기(200 byte)로 분할하고, 이러한 분할에 따라 제1 GOP 블록(1320)과 제2 GOP 블록(1340)이 손상될 수 있음을 나타내고 있다. 이미 설명한 바와 같이 GOP 블록이 훼손되는 경우에는 디지털 컨텐츠의 재생 시 영상 자체가 깨질 수 있다.
도 14는 본 발명의 일실시예에 있어서, 디지털 컨텐츠의 분할 예를 도시한 도면이다. 도 14는 제1 GOP 블록(1320)의 180 byte와 제1 오디오 블록(1310)의 일부인 제1 부분(1410)의 20 byte의 결합에 의해 제1 점선박스(1370)로 구분되는 제1 컨텐츠 블록이 생성되는 예를 나타내고 있다.
또한, 도 14는 제1 오디오 블록(1310)의 나머지인 제2 부분(1420)의 30 byte와 제2 GOP 블록(1340)의 105 byte의 결합을 통해 제2 점선박스(1380)로 구분되는 제2 컨텐츠 블록이 생성되는 예를 나타내고 있다. 이때, 제2 부분(1420)의 30 byte와 제2 GOP 블록(1340)의 105 byte를 결합해도 고정 크기인 200 byte 미만이기 때문에 제2 오디오 블록(1330)의 제3 부분(1430)이 더 결합되어 제2 컨텐츠 블록이 완성될 수 있다.
이와 유사하게, 제2 오디오 블록(1330)의 나머지인 제4 부분(1440)의 12 byte와 제3 GOP 블록(1360)의 82 byte의 결합을 통해 제3 점선박스(1390)로 구분되는 제3 컨텐츠 블록의 생성이 시도될 수 있다. 이때, 제4 부분(1440)의 12 byte와 제3 GOP 블록(1360)의 82 byte를 결합해도 고정 크기인 200 byte 미만이기 때문에 제3 GOP 블록(1360)에 대응하는 제3 오디오 블록(1350)의 44 byte가 제3 컨텐츠 블록의 생성을 위해 더 결합될 수 있다. 그러나 제4 부분(1440)의 12 byte, 제3 GOP 블록(1360)의 82 byte, 그리고 제3 오디오 블록(1350)의 44 byte를 모두 결합해도 고정 크기 200 byte 미만이기 때문에 다음 GOP 블록이나 다음 오디오 블록의 적어도 일부에 대한 결합이 고려될 수 있다. 예를 들어 다음 GOP 블록의 크기가 62(200-(12+82+44)) byte 이하인 경우에는 다음 GOP 블록이 제3 컨텐츠 블록의 생성을 위해 더 결합될 수 있다. 그러나 다음 GOP 블록의 크기가 62 byte를 초과하는 경우에는 다음 오디오 블록의 적어도 일부가 제3 컨텐츠 블록의 생성을 위해 더 결합될 수 있다.
이처럼, 서버(150)는 하나의 GOP 블록이 훼손되지 않도록 디지털 컨텐츠(또는 디지털 컨텐츠의 복수의 복사본들 각각)를 고정 크기의 컨텐츠 블록들로 분할할 수 있다. 분할된 컨텐츠 블록들에는 코드값이 삽입되어 사용자의 고유 식별자를 은닉하기 위해 활용될 수 있으며, 디지털 컨텐츠의 복수의 복사본들 각각에 대해 분할된 컨텐츠 블록들은 가상 파일을 구성하기 위해 조합될 수 있다. 또한, DRM 등을 위한 암호화가 고정 크기의 컨텐츠 블록 단위로 수행될 수 있다.
또한, 앞서 설명한 실시예들은 GOP 블록이 훼손되지 않도록 디지털 컨텐츠를 고정 크기의 컨텐츠 블록들로 분할함을 설명하고 있다. 이때, 디지털 컨텐츠는 고정 크기의 배수로 분할될 수도 있다. 예를 들어, 도 13 및 도 14의 실시예에서는 200 byte의 고정 크기로 디지털 컨텐츠를 분할하는 실시예를 설명하였으나, 고정 크기인 200 byte의 배수인 400 byte, 600 byte, 800 byte 등으로 디지털 컨텐츠가 분할될 수도 있다. 예를 들어, 특정 컨텐츠 블록이 512 byte 이상으로 분할될 것이 강제되어 있다면, 서버(150)는 (512*N)의 고정 크기(여기서, N은 자연수)로 디지털 컨텐츠를 분할하여 (512*N)의 고정 크기를 갖는 컨텐츠 블록들을 얻을 수 있다. 다시 말해, 본 발명의 실시예들에서 컨텐츠 블록의 크기는 기설정된 고정 크기의 배수가 될 수 있다. 이 경우에도 컨텐츠 블록에는 GOP가 훼손되지 않도록 비디오 블록들이 포함된 후에 나머지 영역에 오디오 블록들이 포함될 수 있다.
이처럼 본 발명의 실시예들에 따르면, 서버-클라이언트 환경에서 사용자 고유 식별자가 은닉된 디지털 컨텐츠를 다운로드 방식으로 빠르게 제공할 수 있다. 또한, 동영상과 같은 디지털 컨텐츠에서 GOP(Group of Pictures)를 훼손하지 않으면서도 디지털 컨텐츠를 고정 크기의 블록으로 암호화할 수 있다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 컨텐츠 분할 방법에 있어서,
    복수의 GOP(Group of Pictures) 블록으로 구성된 비디오 데이터와 오디오 데이터를 포함하는 디지털 컨텐츠를 확인하는 단계; 및
    상기 디지털 컨텐츠를 고정 크기(fixed-length)를 갖는 복수의 컨텐츠 블록들로 분할하는 단계
    를 포함하고,
    상기 복수의 GOP 블록 각각은 상기 고정 크기 이하의 크기를 갖고,
    상기 분할하는 단계는,
    상기 복수의 GOP 블록 중 제1 GOP 블록의 크기가 상기 고정 크기 미만인 경우, 상기 제1 GOP 블록에 상기 오디오 데이터의 제1 부분을 결합하여 상기 고정 크기의 제1 컨텐츠 블록을 생성하는 것
    을 특징으로 하는 컨텐츠 분할 방법.
  2. 제1항에 있어서,
    상기 분할하는 단계는,
    상기 제1 GOP 블록의 크기가 상기 고정 크기인 경우, 상기 제1 GOP 블록을 상기 고정 크기의 제1 컨텐츠 블록으로 생성하는 것
    을 특징으로 하는 컨텐츠 분할 방법.
  3. 제1항에 있어서,
    상기 오디오 데이터는 복수의 오디오 블록들로 구성되고,
    상기 제1 부분은 상기 제1 GOP 블록에 대응하는 제1 오디오 블록의 적어도 일부인 것을 특징으로 하는 컨텐츠 분할 방법.
  4. 제3항에 있어서,
    상기 분할하는 단계는,
    상기 제1 오디오 블록에서 제1 부분을 제외한 나머지 부분인 제2 부분과 상기 복수의 GOP 블록 중 제2 GOP 블록을 결합하여 제2 블록을 생성하되, 상기 제2 부분과 상기 제2 GOP 블록이 결합된 크기가 상기 고정 크기 미만인 경우, 상기 오디오 데이터의 제3 부분을 더 결합하여 상기 고정 크기의 제2 블록을 생성하는 것
    을 특징으로 하는 컨텐츠 분할 방법.
  5. 제4항에 있어서,
    상기 분할하는 단계는,
    상기 제2 부분과 상기 제2 GOP 블록이 결합된 크기가 상기 고정 크기 이상인 경우, 상기 제2 GOP 블록에 상기 제2 부분의 일부분인 제2-1 부분을 결합하여 상기 고정 크기의 제2 블록을 생성하는 것
    을 특징으로 하는 컨텐츠 분할 방법.
  6. 제1항에 있어서,
    상기 고정 크기로 분할된 컨텐츠 블록의 단위로 상기 디지털 컨텐츠를 암호화하는 단계
    를 더 포함하는 것을 특징으로 하는 컨텐츠 분할 방법.
  7. 제1항에 있어서,
    상기 디지털 컨텐츠에 대해, 각각 서로 다른 코드값이 삽입된 복수의 복사본을 관리하는 단계;
    상기 디지털 컨텐츠에 대한 클라이언트의 다운로드 요청에 따라 상기 서로 다른 코드값의 조합이 상기 클라이언트와 연관하여 식별되는 사용자의 고유 식별자와 매칭되도록 상기 복수의 복사본의 부분들을 조합하여 상기 디지털 컨텐츠에 대한 가상 파일을 구성하는 단계; 및
    상기 구성된 가상 파일의 위치정보와 상기 복수의 복사본에서 상기 조합된 부분들 각각을 식별하기 위한 옵셋(offset) 정보를 생성하여 상기 클라이언트로 제공하는 단계
    를 더 포함하고,
    상기 가상 파일은, 상기 복수의 복사본들 각각을 상기 고정 크기로 분할하여 생성된 복수의 컨텐츠 블록들의 조합으로 구성되는 것을 특징으로 하는 컨텐츠 분할 방법.
  8. 제7항에 있어서,
    상기 클라이언트로부터 상기 위치정보에 기반하고, 상기 옵셋 정보를 포함하는 다운로드 요청을 수신하는 단계; 및
    상기 복수의 복사본에서 상기 옵셋 정보에 대응하는 부분들을 상기 위치정보를 통해 식별되는 상기 가상 파일로서 상기 클라이언트로 전송하는 단계
    를 더 포함하는 것을 특징으로 하는 컨텐츠 분할 방법.
  9. 제7항에 있어서,
    상기 옵셋 정보는, 상기 복수의 복사본에서 상기 조합된 부분들을 식별하기 위한 정보로서, 복사본에서 대응하는 부분이 차지하는 바이트-범위(byte-range)를 포함하는 것을 특징으로 하는 컨텐츠 분할 방법.
  10. 제7항에 있어서,
    상기 복수의 복사본 각각은 복수의 청크(chunk)들로 나뉘고,
    상기 옵셋 정보는, 상기 복수의 복사본에서 상기 조합된 부분들을 식별하기 위한 정보로서, 복사본에서 대응하는 부분의 청크 넘버(chunk number)를 포함하는 것을 특징으로 하는 컨텐츠 분할 방법.
  11. 제7항에 있어서,
    상기 가상 파일을 구성하는 단계는,
    상기 서로 다른 코드값의 조합이 상기 가상 파일의 적어도 일부의 위치에서 상기 사용자의 고유 식별자에 대응하는 값을 갖도록 상기 복수의 복사본의 부분들을 조합하는 것을 특징으로 하는 컨텐츠 분할 방법.
  12. 제7항에 있어서,
    상기 가상 파일을 구성하는 단계는,
    상기 서로 다른 코드값을 조합하여 상기 다운로드 요청에 대한 고유값을 생성하고, 상기 고유값을 상기 사용자의 고유 식별자와 매칭하여 관리하는 것을 특징으로 하는 컨텐츠 분할 방법.
  13. 제7항에 있어서,
    상기 가상 파일을 구성하는 단계는,
    상기 조합된 부분들 중 동일한 코드값을 가진 서로 연속된 부분들을 병합하여 하나의 부분으로 조합하고,
    상기 옵셋 정보는 상기 병합된 부분을 하나의 부분으로 식별하기 위한 정보를 포함하는 것을 특징으로 하는 컨텐츠 분할 방법.
  14. 제1항 내지 제13항 중 어느 한 항의 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
  15. 컴퓨터로 구현된 컨텐츠 분할 시스템에 있어서,
    상기 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    복수의 GOP(Group of Pictures) 블록으로 구성된 비디오 데이터와 오디오 데이터를 포함하는 디지털 컨텐츠를 확인하고,
    상기 디지털 컨텐츠를 고정 크기(fixed-length)를 갖는 복수의 컨텐츠 블록들로 분할하며,
    상기 복수의 GOP 블록 각각은 상기 고정 크기 이하의 크기를 갖고,
    상기 적어도 하나의 프로세서는, 상기 디지털 컨텐츠를 분할하기 위해,
    상기 복수의 GOP 블록 중 제1 GOP 블록의 크기가 상기 고정 크기 미만인 경우, 상기 제1 GOP 블록에 상기 오디오 데이터의 제1 부분을 결합하여 상기 고정 크기의 제1 컨텐츠 블록을 생성하는 것
    을 특징으로 하는 컨텐츠 분할 시스템.
  16. 제15항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 디지털 컨텐츠를 분할하기 위해,
    상기 제1 GOP 블록의 크기가 상기 고정 크기인 경우, 상기 제1 GOP 블록을 상기 고정 크기의 제1 컨텐츠 블록으로 생성하는 것
    을 특징으로 하는 컨텐츠 분할 시스템.
  17. 제15항에 있어서,
    상기 오디오 데이터는 복수의 오디오 블록들로 구성되고,
    상기 제1 부분은 상기 제1 GOP 블록에 대응하는 제1 오디오 블록의 적어도 일부인 것을 특징으로 하는 컨텐츠 분할 시스템.
  18. 제17항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 디지털 컨텐츠를 분할하기 위해,
    상기 제1 오디오 블록에서 제1 부분을 제외한 나머지 부분인 제2 부분과 상기 복수의 GOP 블록 중 제2 GOP 블록을 결합하여 제2 블록을 생성하되, 상기 제2 부분과 상기 제2 GOP 블록이 결합된 크기가 상기 고정 크기 미만인 경우, 상기 오디오 데이터의 제3 부분을 더 결합하여 상기 고정 크기의 제2 블록을 생성하는 것
    을 특징으로 하는 컨텐츠 분할 시스템.
  19. 제18항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 디지털 컨텐츠를 분할하기 위해,
    상기 제2 부분과 상기 제2 GOP 블록이 결합된 크기가 상기 고정 크기 이상인 경우, 상기 제2 GOP 블록에 상기 제2 부분의 일부분인 제2-1 부분을 결합하여 상기 고정 크기의 제2 블록을 생성하는 것
    을 특징으로 하는 컨텐츠 분할 시스템.
  20. 제15항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 디지털 컨텐츠에 대해, 각각 서로 다른 코드값이 삽입된 복수의 복사본을 관리하고,
    상기 디지털 컨텐츠에 대한 클라이언트의 다운로드 요청에 따라 상기 서로 다른 코드값의 조합이 상기 클라이언트와 연관하여 식별되는 사용자의 고유 식별자와 매칭되도록 상기 복수의 복사본의 부분들을 조합하여 상기 디지털 컨텐츠에 대한 가상 파일을 구성하며,
    상기 구성된 가상 파일의 위치정보와 상기 복수의 복사본에서 상기 조합된 부분들 각각을 식별하기 위한 옵셋(offset) 정보를 생성하여 상기 클라이언트로 제공하고,
    상기 가상 파일은, 상기 복수의 복사본들 각각을 상기 고정 크기로 분할하여 생성된 복수의 컨텐츠 블록들의 조합으로 구성되는 것을 특징으로 하는 컨텐츠 분할 시스템.
KR1020160054776A 2016-05-03 2016-05-03 고정 크기 블록 암호화를 위한 디지털 컨텐츠의 분할 방법 및 시스템 KR20170124839A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160054776A KR20170124839A (ko) 2016-05-03 2016-05-03 고정 크기 블록 암호화를 위한 디지털 컨텐츠의 분할 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160054776A KR20170124839A (ko) 2016-05-03 2016-05-03 고정 크기 블록 암호화를 위한 디지털 컨텐츠의 분할 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20170124839A true KR20170124839A (ko) 2017-11-13

Family

ID=60386095

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160054776A KR20170124839A (ko) 2016-05-03 2016-05-03 고정 크기 블록 암호화를 위한 디지털 컨텐츠의 분할 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20170124839A (ko)

Similar Documents

Publication Publication Date Title
CN103403712B (zh) 基于内容的文件组块
US8688991B1 (en) Media player embodiments and secure playlist packaging
CN103583051B (zh) 用于实时或近实时流传输的播放列表
US10136098B2 (en) Integrity verification of an audio-visual data stream
US8001608B2 (en) Secure streaming container
US10972807B2 (en) Dynamic watermarking of digital media content at point of transmission
US8595492B2 (en) On-demand protection and authorization of playback of media assets
KR20170056613A (ko) 하드웨어로 보호되는 디지털 권한 관리를 구비한 미디어 디코딩 제어
US8638935B2 (en) System and method for key space division and sub-key derivation for mixed media digital rights management content
US10673975B2 (en) Content streaming service method for reducing communication cost and system therefor
US20200029114A1 (en) Method, system, and non-transitory computer-readable record medium for synchronization of real-time live video and event data
KR20050042377A (ko) 저속채널의 스트리밍 서비스를 위한 데이터 분할 전송방법 및 시스템
US10262115B2 (en) Secure connected digital media platform
Senthilnathan et al. An enhancing reversible data hiding for secured data using shuffle block key encryption and histogram bit shifting in cloud environment
KR101998303B1 (ko) 타임머신 기능을 위한 슬라이딩 윈도우 관리 방법 및 시스템
US11881940B2 (en) Method and system for providing secure message
KR102134250B1 (ko) 스트리밍 콘텐츠의 재생 방법 및 시스템
CN109040087B (zh) 一种文件加、解密方法及装置
KR20170124839A (ko) 고정 크기 블록 암호화를 위한 디지털 컨텐츠의 분할 방법 및 시스템
KR101564731B1 (ko) 다운로드된 디지털 매체 파일을 추적하기 위한 시스템 및 방법
KR101833386B1 (ko) 사용자의 고유 식별자가 삽입된 디지털 컨텐츠의 다운로드를 위한 컨텐츠 제공 방법 및 시스템
CN113127891A (zh) 一种智能媒体桌面的模板文件加密方法和装置
KR20170008514A (ko) 암호화된 컨텐츠의 복호화 키를 안전하게 획득하여 컨텐츠를 재생하기 위한 방법 및 시스템
KR101771348B1 (ko) 패키지 파일에 대한 패킹 방법 및 시스템
CN116702218B (zh) 小程序中三维模型的渲染方法、装置、终端及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2018101001107; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20180312

Effective date: 20190802