KR101632689B1 - 멀티미디어 조각파일의 복구방법 - Google Patents
멀티미디어 조각파일의 복구방법 Download PDFInfo
- Publication number
- KR101632689B1 KR101632689B1 KR1020140122746A KR20140122746A KR101632689B1 KR 101632689 B1 KR101632689 B1 KR 101632689B1 KR 1020140122746 A KR1020140122746 A KR 1020140122746A KR 20140122746 A KR20140122746 A KR 20140122746A KR 101632689 B1 KR101632689 B1 KR 101632689B1
- Authority
- KR
- South Korea
- Prior art keywords
- file
- header
- video
- format
- audio
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
- H04N21/4351—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reassembling additional data, e.g. rebuilding an executable program from recovered modules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
본 발명은 비트토렌트 등에 의해 잘려진 비디오 또는 오디오 조각 파일을 복원하는 방법과 이를 이용한 장치에 관한 것이다. 보다 상세하게는 잘린 비디오 또는 오디오 조각 파일을 복구하기 위하여 우선 조각 파일의 특징 패턴에 의하여 파일 포맷을 식별하고 식별한 포맷에 의하여 대응되는 최대 유사 헤더를 조각 파일 앞에 붙여주어 디코딩하는 방법에 관한 것이다.
Description
본 발명은 비트토렌트 등과 같이 동영상 공유프로그램에 의해 잘린 비디오 또는 오디오 조각 파일을 복구하는 방법에 관한 것으로서, 구체적으로는 잘린 비디오 또는 오디오 조각 파일을 복구하기 위하여 조각 파일의 특징 패턴에 의하여 파일 포맷을 식별하고, 식별한 포맷에 의하여 대응되는 최대 유사 헤더를 조각 파일을 앞에 붙여주어 디코딩하는 방법에 관한 것이다.
컴퓨터 및 인터넷 기술이 발달하면서 멀티미디어 데이터의 유통량이 많아지고 있고, 유통방법 역시도 다양해지고 있다. 최근에는 파일을 조각으로 잘라서 공유하는 비트토렌트(BitTorrent)로 대표되는 파일공유시스템을 이용한 유통이 많아지고 있으며, 비디오 파일 중에서는 AVI, MKV, MP4, RMVB 등 형식을 통한 영화 파일의 유통이 대부분을 차지하고, 오디오 파일 중에서는 MP3, AAC, FLAC 등 형식을 통한 음악 파일의 유통이 대부분을 차지하고 있다.
비트 토렌트(BitTorrent)는 P2P(peer-to-peer) 파일 전송 프로토콜의 이름이자 그것을 이용하는 응용 소프트웨어의 이름이다. 비트 토렌트를 이용하면 파일을 인터넷 상에 분산하여 저장하여 놓고 다수의 접속을 사용하여 여러 곳에서 동시에 파일을 가져오게 되어 전송 속도가 빨라진다. 비트 토렌트 프로토콜은 프로그래머 브램 코헨이 창안하였으며, 2001년 4월부터 설계되어 최초의 구현이 2001년 7월 2일 발표되었다. 현재는 코헨이 창립한 회사인 비트 토렌트 Inc. 가 이것을 유지보수하고 있다. 본래 비트 토렌트 프로그램은 분산 해시 테이블을 활용하여 파이썬으로 작성되었으며 오픈 소스 저작권하에서 배포되고 있다. 그 외에도 비트 토렌트 프로토콜과 호환되는 각종 비트 토렌트 클라이언트가 출시되어 있다.
이와 같은 비트 토렌트에서 유통되는 비디오 파일 중 AVI (Audio Video Interleave) 비디오 파일 포맷은 마이크로소프트에서 개발된 원도우 운영체제를 위한 멀티미디어 컨테이너 포맷이다. AVI 파일 포맷은 오디오/비디오 순서의 캡쳐, 편집, 재생을 실시하는 애플리케이션으로 사용되는 RIFF (Resource Interchange File Format) 파일 사양이다.
MKV 파일 포맷은 오픈 표준인 마트료시카 멀티미디어 컨테이너(Matroska Multimedia Container)포맷을 준수한다. 이러한 파일 포맷은 개수 제한 없이 비디오, 오디오, 그림 및 자막 트랙을 한 파일 안에 담을 수 있다. MKV 파일 구조는 XML을 기본으로 삼아 만든, 데이터 컨테이너 방식인 확장형 이진 메타 언어 (Extensible Binary Meta Language-EBML) 기초 상에서 구성된다.
MP4 (MPEG-4 Part 14)는 멀티미디어 컨테이너 포맷 표준이며, 디지털 비디오와 오디오 스트림을 저장하는데 사용하는 것이 일반적이며 자막 및 스틸 이미지 등 기타 데이터를 저장하는데 사용할 수도 있다. MP4 파일은 box 또는 atom 구조로 조성된다.
RMVB (RealMedia Variable Bitrate)는 리얼네트웍스가 개발한 리얼미디어 멀티미디어 컨테이너 포맷의 가변 비트레이트 확장이며 일반적으로 저장을 위한 멀티미디어 콘텐츠에 쓰인다. RMVB는 불법유통 비디오 파일 포맷에서 가장 높은 비율을 차지하고 있다.
MPEG-1 오디오 압축 표준인 MP3는 가장 널리 사용되고 있는 오디오 압축 표준 중 하나이며 비트토렌트에서 유통되고 있는 오디오 파일 중 가장 높은 비율을 차지하고 있다. MP3는 손실 압축 방법의 일종으로서 오디오 데이터에서 사람이 듣는데 중요하지 않은 부분을 버리는 압축방법을 이용하였다.
AAC(Advanced Audio Coding)도 손실 압축 방법으로 오디오 데이터를 압축한다. AAC는 MP3의 성공적인 후계자로써 애플의 아이튠즈, 아이팟, 아이폰 등에 사용되는 오디오 포맷이다. AAC는 작은 사이즈인 오디오 파일에서도 좋은 음질을 제공하며 높은 음 분해 능력을 지니고 있다.
FLAC(Free Lossless Audio Codec)는 오디오 데이터를 무 손실 압축하는 파일 형식이다. 즉 MP3, AAC 등 포맷과 달리 오디오 데이터에 손실이 발생하지 않는다. FLAC은 저장공간, 대역폭, 전송율 등을 절약할 수 있다. FLAC은 오디오 데이터를 원래 크기의 50%로 줄어들게 압축하고 디코드 하면 정확히 원래 모습으로 보전할 수 있다.
기존의 파일 포맷 분류 및 조각 파일 식별에 관한 많은 연구에서 주요 분석 대상인 포맷은 문서 포맷, 이미지 포맷, 압축 포맷, 실행 및 라이브러리 파일 포맷들이다.
하지만 저작권 침해 행위는 주로 비디오 또는 오디오 파일 불법 유통에서 일어나므로 전문 비디오 또는 오디오 파일 포맷 분류, 조각 파일 포맷 식별 및 조각 파일의 스트림 복구에 관한 방법이 절실하나, 잘라진 비디오 또는 오디오 조각 파일은 강한 압축, 정보의 부족 등으로 인해 복구하는데 여러 가지 어려운 문제점이 있다.
기존의 포맷 분류 및 식별에 사용되는 특징들로는 Histogram, Mean, Hamming weight, N-gram, Compressed length, Shannon entropy, Standard deviation 등이 있다. 하지만 모든 포맷의 비디오 또는 오디오 스트림은 강한 엔트로피 압축을 거쳐서 스트림 데이터 분포가 모두 유사한 랜덤 성질을 가지고 있으므로 이러한 특징들은 비디오 또는 오디오 조각 파일 식별에 좋은 효과를 일으키지 못한다. 또한 비트토렌트에서 유통되는 조각 파일을 분석 대상으로 할 경우에는 파일 헤더(header) 및 테일(tail)을 다운 받는데 많은 시간이 소모되므로 헤더 및 테일을 특징으로 이용하는 것도 효율적이지 못하다.
상기 문제점을 해결하기 위하여 본 발명에서는 각 비디오 또는 오디오 파일 포맷의 고유 sync 패턴을 특징으로 이용하여 포맷을 분류하고 조각 파일을 식별하고자 한다.
먼저, 잘라진 비디오 또는 오디오 조각 파일은 재생하는데 필요한 헤더 정보가 없으므로 복구하려면 우선 통계적 방법으로 분석한 헤더를 조각 파일 앞에 추가하고, 또한 정확한 포맷의 헤더를 추가하기 위하여 그 조각 파일 포맷을 먼저 식별하도록 하는 조각파일을 복구방법을 제공하고자 한다.
이를 위하여 조각 파일 포맷의 식별 정확도 및 식별 계산 속도를 높이기 위하여 먼저 비디오 또는 오디오 파일 포맷을 분류하는 방법을 제공하고자 한다.
또한, 본 발명은 비디오 또는 오디오 조각 파일을 복구하는 것을 목적으로 잘려진 비디오 또는 오디오 조각 파일 앞에 통계적으로 분석한 최대 유사 헤더를 추가하여 조각 파일 내 비디오 또는 오디오 스트림을 복구하는 방법을 제공하고자 한다.
상기 과제의 해결을 위하여 본 발명에서는, 파일포맷을 분류하는 클래스분포가 저장된 파일포맷분류DB 및 최대유사헤더가 저장된 최대유사헤더DB가 구축되어 있으며, 영상처리부, 음성처리부 및 중앙연산부를 포함하는 시스템을 통하여 네트워크상의 비디오 또는 오디오 조각파일을 복구하는 방법으로서, (A) 상기 중앙연산부가 네트워크상에서 조각파일을 수집하는 단계; (B) 상기 중앙연산부가 상기 파일포맷분류DB의 클래스분포를 분석하여 상기 조각파일의 파일포맷을 식별하는 단계; (C) 상기 중앙연산부가 상기 조각파일의 파일포맷에 해당하는 최대유사헤더를 상기 최대유사헤더DB에서 추출하여 상기 조각파일의 선단에 조합하는 단계; (D) 상기 영상처리부 또는 음성처리부가 상기 중앙연산부로부터 상기 최대유사헤더가 조합된 조각파일을 수신하여 디코딩하는 단계;의 단계를 포함하여 이루어지는 멀티미디어 비디오조각파일 복구방법을 제공함을 목적으로 한다.
본 발명에 의하면 다음과 같은 효과가 있다.
1. 본 발명은 비디오 또는 오디오 조각 파일의 포맷을 식별하고 포맷별로 압축을 풀어 복구하므로, 완전하지 않은 비디오 또는 오디오 파일에 부족한 정보를 추가하여 새로 헤더를 만들어 복구가 가능하여 종전에 비해 비디오 또는 오디오 조각 파일로부터 비디오 또는 오디오 데이터를 복구하는 정확도가 높아질 뿐만 아니라 복구속도가 향상되는 효과가 있다.
2. 또한, 본 발명은 비트토렌트 네트워크와 같은 온라인 상에서 유통되는 비디오 또는 오디오 전체 조각 파일을 다운로드하여 복구하는데 필요한 시간이 단축되는 효과가 있다.
3. 특히, 본 발명은 비트토렌트 클라이언트가 다운로드한 비디오 또는 오디오 조각 파일이 삭제되었거나 부족한 경우에 비디오 또는 오디오 데이터를 복구하기 어려운 점이 해결되는 장점이 있다.
[도 1]은 비디오 파일 포맷 중 AVI의 구조도이다.
[도 2]는 비디오 파일 포맷 중 MKV의 구조도이다.
[도 3]은 비디오 파일 포맷 중 MP4의 구조도이다.
[도 4]는 비디오 파일 포맷 중 RMVB의 구조도이다.
[도 5]는 오디오 파일 포맷 중 MP3의 구조도이다.
[도 6]은 오디오 파일 포맷 중 AAC의 구조도이다.
[도 7]은 오디오 파일 포맷 중 FLAC의 구조도이다.
[도 8]은 sync 패턴 카운팅 프로시져의 흐름도이다.
[도 9]는 비디오 또는 오디오 파일 포맷을 분류하여 파일포맷분류DB를 구축하는 과정의 흐름도이다.
[도 10]은 비디오 또는 오디오 조각 파일의 포맷을 식별하는 과정의 흐름도이다.
[도 11]는 최대 유사 헤더를 구성하는 과정의 흐름도이다.
[도 12]은 비디오 또는 오디오의 조각파일을 복구하는 과정의 흐름도이다.
[도 2]는 비디오 파일 포맷 중 MKV의 구조도이다.
[도 3]은 비디오 파일 포맷 중 MP4의 구조도이다.
[도 4]는 비디오 파일 포맷 중 RMVB의 구조도이다.
[도 5]는 오디오 파일 포맷 중 MP3의 구조도이다.
[도 6]은 오디오 파일 포맷 중 AAC의 구조도이다.
[도 7]은 오디오 파일 포맷 중 FLAC의 구조도이다.
[도 8]은 sync 패턴 카운팅 프로시져의 흐름도이다.
[도 9]는 비디오 또는 오디오 파일 포맷을 분류하여 파일포맷분류DB를 구축하는 과정의 흐름도이다.
[도 10]은 비디오 또는 오디오 조각 파일의 포맷을 식별하는 과정의 흐름도이다.
[도 11]는 최대 유사 헤더를 구성하는 과정의 흐름도이다.
[도 12]은 비디오 또는 오디오의 조각파일을 복구하는 과정의 흐름도이다.
본 발명은 파일포맷을 분류하는 클래스분포가 저장된 파일포맷분류DB 및 최대유사헤더가 저장된 최대유사헤더DB가 구축되어 있으며, 영상처리부, 음성처리부 및 중앙연산부를 포함하는 시스템을 통하여 네트워크상의 비디오 또는 오디오 조각파일을 복구하는 방법으로서, (A) 상기 중앙연산부가 네트워크상에서 조각파일을 수집하는 단계; (B) 상기 중앙연산부가 상기 파일포맷분류DB의 클래스분포를 분석하여 상기 조각파일의 파일포맷을 식별하는 단계; (C) 상기 중앙연산부가 상기 조각파일의 파일포맷에 해당하는 최대유사헤더를 상기 최대유사헤더DB에서 추출하여 상기 조각파일의 선단에 조합하는 단계; 및 (D) 상기 영상처리부 또는 음성처리부가 상기 중앙연산부로부터 상기 최대유사헤더가 조합된 조각파일을 수신하여 디코딩하는 단계; 의 단계를 포함하여 이루어지는 멀티미디어 비디오조각파일 복구방법을 제공한다.
또한 본 발명은 상기 중앙연산부가, (1) 수집된 N개 비디오 또는 오디오 샘플파일에서 헤더(header) 및 테일(tail)을 제외한 범위의 데이터에서 랜덤하게 길이가 L1인 데이터를 잘라내어 N개의 데이터를 생성하는 단계;(2) 잘라낸 각 데이터를 sync패턴 카운팅 프로시져에 따라 파일포맷별로 sync패턴 카운터값을 생성하는 단계; (3) 파일포맷별로 생성된 각 데이터의 sync패턴 카운터값을 조합하여 고차원 벡터집합을 구성하는 단계; 및 (4) 생성된 N개의 고차원 벡터집합들을 군집 알고리즘 또는 SVM(Support Vector Machine)을 이용하여 M개의 파일포맷별로 분류하여 M개의 클래스분포를 상기 파일포맷분류DB에 저장하는 단계;를 포함한 방법으로 파일포맷분류DB를 구축하는 것을 특징으로 하는 멀티미디어 조각파일 복구방법을 함께 제공한다.
또한 본 발명은 상기 (B)단계에서 상기 중앙연산부는, (B-1) 상기 조각 파일에 들어있는 sync패턴 카운터값을 sync패턴 카운팅 프로시져에 따라 생성하는 단계; (B-2) 각 포맷에 대응되는 sync패턴 카운터값으로부터 고차원 벡터 집합을 구성하는 단계; (B-3) 상기 조각파일의 사이즈를 L1으로 맞추기 위하여 상기 고차원 벡터집합에 벡터 정규화(vector normalization)를 수행하여 축소된 고차원 벡터집합을 생성하는 단계; 및 (B-4) 상기 축소된 고차원 벡터집합과 파일포맷분류DB의 각 클래스분포를 KNN기법(K-Nearest Neighbor 기법, 최소 유클리디안 거리를 측정하는 기법)로 비교하여 최근거리의 클래스의 포맷을 선택하여 상기 조각파일의 포맷으로 저장하는 단계;를 포함하는 과정을 거쳐 조각파일의 포맷을 식별하는 것을 특징으로 하는 멀티미디어 조각파일 복구방법을 함께 제공한다.
또한 본 발명은 상기 중앙연산부가, (ㄱ) 비트토렌트 네트워크에서 유통되는 비디오 또는 오디오 파일 헤더들을 수집하는 단계; (ㄴ) 상기 헤더에서 비디오 또는 오디오 속성이 나타나는 확률을 통계적 방법으로 계산하여 확률값에 따라 헤더를 재배열하는 단계; 및 (ㄷ) 가장 높은 확률값을 갖는 헤더를 최대유사헤더로 상기 최대유사헤더DB에 저장하는 단계; 의 단계를 포함하는 과정으로 최대유사헤더DB를 구축하는 것을 특징으로 하는 멀티미디어 조각파일의 복구방법을 함께 제공한다.
또한 본 발명은 상기 군집알고리즘은, 최적화한 판별 서브스페이스 클러스터링(Optimized Discriminative Subspace Clustering,ODiSC) 알고리즘인 것을 특징으로 하는 멀티미디어 조각파일의 복구방법을 함께 제공한다.
본 명세서에서는 가능한 한 현재 널리 사용되는 일반적인 용어가 사용되었지만, 출원인이 임의로 정한 용어도 일부 사용되었다. 임의로 선택한 용어에 대해서는 발명의 상세한 설명 부분에 기재된 바에 따라 그 의미를 해석할 수 있다.
이하 본 발명을 구체적 실시예와 함께 설명하지만, 본 발명이 이하의 실시예들에 의해 제한되거나 한정되는 것은 아니다.
본 발명은 파일포맷을 분류하는 클래스분포가 저장된 파일포맷분류DB 및 최대유사헤더가 저장된 최대유사헤더DB가 구축되어 있으며, 영상처리부 및 중앙연산부를 포함하는 시스템을 통하여 네트워크상의 비디오 조각파일을 복구하는 방법으로서, (A) 상기 중앙연산부가 네트워크상에서 조각파일을 수집하는 단계;(B) 상기 중앙연산부가 상기 파일포맷분류DB의 클래스분포를 분석하여 상기 조각파일의 파일포맷을 식별하는 단계;(C) 상기 중앙연산부가 상기 조각파일의 파일포맷에 해당하는 최대유사헤더를 상기 최대유사헤더DB에서 추출하여 상기 조각파일의 선단에 조합하는 단계; 및 (D) 상기 영상처리부가 상기 중앙연산부로부터 상기 최대유사헤더가 조합된 조각파일을 수신하여 디코딩하는 단계;의 단계를 포함하여 이루어지는 비디오조각파일 복구방법을 제공한다.
본 발명은 네트워크에서 유통되는 비디오 조각파일로부터 비디오 데이터를 복구하는 방법에 대한 것으로서 본 발명이 수행되기 위해서는 다수개의 샘플파일에서 추출한 다수개의 고차원 벡터집합들로부터 파일포맷을 분류하여 클래스분포정보를 생성, 저장한 파일포맷분류DB 및 최대유사헤더가 저장된 최대유사헤더DB가 사전에 구축되어 있는 것이 바람직하다. 이는 중앙연산부 및 영상처리부를 포함하여 구성된 시스템에 구축되어 있는 것이 바람직한데, 상기 중앙연산부는 상기 파일포맷분류DB 및 최대유사헤더DB를 구축하고, 복구하고자 하는 조각파일의 복구과정에 중심축이 된다. 상기 영상처리부 또는 영상처리부는 상기 중앙연산부에서 분석하여 최대유사헤더가 조합된 조각파일의 디코딩을 담당하는 것으로서, 상기 중앙연산부와 영상처리부는 개념적, 상대적인 구분이지 물리적 구분을 의미하는 것은 아니다.
이러한 비디오 및 오디오 복구방법은 [도 12]의 본 발명에 따라 비디오 및 오디오를 복구하는 과정의 흐름도에서 확인할 수 있다. [도 12]를 참조하면, 입력한 한 조각 파일(1210)의 포맷 식별(1220)이 끝나면 해당되는 포맷의 최대 유사 헤더(1250)를 그 조각 파일 앞부분에 추가하여 재구성된 조각 파일을 얻게 되며, (1230), 재구성된 조각 파일을 비디오 및 오디오 디코더에 입력하여 비디오 및 오디오를 재생하는(1240) 과정을 확인할 수 있다.
먼저 (A)단계 내지 (C) 단계는 상기 중앙연산부에서 처리되며, (D)단계는 상기 영상처리부에서 디코딩된다.
먼저 (A)단계는 상기 중앙연산부가 네트워크상에서 조각파일을 수집하는 단계이다. 비트 토렌트와 같이 네트워크상에서 유통되는 비디오 조각파일은 원본에 해당하는 비디오 파일을 다수개로 분할하여 조각파일을 다수개 생성하여 각 조각파일별로 다운을 받기 때문에 다운속도가 높을 수는 있으나 조각파일 자체의 파일포맷이 식별되지 않아 헤더가 다운되기 전까지는 디코딩이 난해할 수 있다. 따라서 각각 다운받는 조각파일들의 포맷을 식별하여 디코딩하기 위한 준비를 하는 과정에 해당한다.
(B)단계는 상기 중앙연산부가 상기 파일포맷분류DB의 클래스분포를 분석하여 상기 조각파일의 파일포맷을 식별하는 단계이다. 상기 조각파일의 디코딩을 위하여는 상기 조각파일의 파일포맷이 무엇인지를 확인할 필요가 있다.
이를 위하여 상기 파일포맷분류DB를 적용하는데, 먼저 파일포맷분류DB에는 각 파일포맷별로 클래스가 M개 분류되어 있으며, 각기 클래스에 분류저장된 다수개의 고차원 벡터집합이 저장되어 있어, 상기 조각파일로부터 생성되는 고차원벡터집합과의 비교분석이 이루어지는 비교대상이 된다.
먼저 네트워크상에서 다수 존재하는 비디오 또는 오디오 파일, 즉 멀티미디어 파일의 파일포맷은 avi, mkv,mp3, RMVB 등을 통한 비디오 파일과 MP3, AAC, FLAC 등을 통한 오디오 파일의 유통이 대부분이므로 이러한 파일 포맷을 실시예로 하여 설명하도록 한다.
[도 1]은 본 발명이 적용되는 비디오 파일 포맷 중 AVI의 구조도이다. [도 1]을 참조하면, AVI 파일은 chunk와 list 두 가지 데이터 컨테이너로 구성되었다. list는 또 다른 list거나 chunk를 포함할 수 있고 chunk는 헤더, 비디오 또는 오디오 데이터를 포함할 수 있다. RIFF AVI에는 파일 크기정보가 있고, hdrl에는 LIST hdrl의 크기정보가 있고, avih는 주로 한 프레임의 시간길이, 프레임의 총 개수, 스트림 개수, 비디오 너비 및 비디오 높이 등을 포함하고 있고, strl에는 LIST strl의 크기정보가 있다. strh의 fccType이 'vids'인 경우에는 비디오 스트림의 정보를 지정하고 'auds'인 경우에는 오디오 스트림의 정보를 지정한다. strh는 주로 코텍 아이디, 프레임 레이트, 샘플 레이트, 프레임의 시작 위치, 스트림의 길이, 스트림의 디코딩에 사용되는 품질 파라미터 및 샘플 사이즈 등을 포함하고 있다. strh가 비디오 정보를 포함하고 있을 경우에 strf는 BITMAPINFOHEADER 구조로 조성되고, 반면 strh가 오디오 정보를 포함하고 있을 경우에는 strf는 WAVEFORMATEX 구조로 조성된다.
BITMAPINFOHEADER 구조체는 주로 구조체 사이즈, 비트맵 너비 픽셀 수, 비트맵 높이 픽셀 수, 픽셀당 비트 수, 압축 방법 및 이미지 크기 등을 포함하고 있다. WAVEFORMATEX 구조체는 주로 오디오의 포맷 타입, 오디오 데이터에 포함되는 채널 수, 샘플 레이트, 평균 데이터 전송 레이트, 블록 얼라이먼트 및 샘플당 비트 수 등을 포함하고 있다.
LIST movi에 비디오 또는 오디오 스트림 데이터를 chunk 단위로 저장하고 idxl에는 각 chunk의 시작 위치와 길이를 저장한다. 비디오 데이터 chunk는 4 바이트 FourCC (Four Character Code) 즉 16 진수로 30 30 64 63으로 시작되고 오디오 데이터 chunk는 30 31 77 62로 시작된다. FourCC 다음 4 바이트 chunk 데이터의 사이즈가 따라온다. 어떠한 비디오 파일이든지 오디오 스트림과 비디오 스트림은 서로 교차적으로 저장된다. FourCC를 sync로 정하면 AVI 파일은 30 30 64 63 또는 30 31 77 62인 sync뒤에 4 바이트 값이 지정한 길이만큼 이동하면 그 위치에 또 sync가 있다는 sync 패턴을 가지고 있다.
[도 2]는 본 발명이 적용되는 비디오 파일 포맷 중 MKV의 구조도이다. [도 2]를 참조하면, MKV 파일은 Header 와 Segment 2가지 부분으로 분리될 수 있고 Segment는 또한 8개 부분으로 세분화할 수 있으므로 MKV 파일은 총 9개 부분으로 조성 되었다. Header에는 주로 EBML의 버전 정보, 파일 버전 정보, 아이디 최대 길이 및 사이즈의 최대 길이 등이 있다. Meta Seek Information는 데이터를 더욱 신속히 접근하기 위하여 기타 EMBL 원소의 ID와 위치 정보를 저장하고 있다. Segment Information에는 주로 파일을 식별하기 위한 정보 (Title, Segment unique ID 등) 및 Segment의 지속 시간이 들어있다. Tracks에는 주로 오디오 및 비디오의 코덱 정보, 비디오의 너비 및 높이, 오디오 샘플 레이트 및 채널 수 등이 들어있다. Chapters에는 모든 에디션 및 챕터 list가 들어있다. 한 에디션에는 한 세트의 챕터가 있다. 만약 챕터가 있을 경우 비디오는 한 챕터씩 재생 할 수 있다. Cueing Data에는 주로 키 프레임의 시간 및 위치 정보가 들어있다. Attachment에는 CD 커버 사진, 자막 폰트 또는 기타 첨부 파일 정보가 들어있다. Tagging에는 Tracks, Chapters 또는 앨범의 추가 정보가 들어있다. Clusters에는 오디오 및 비디오 데이터가 BlockGroup 또는 SimpleBlock 단위로 들어있다. BlockGroup의 Block과 SimpleBlock의 차이점은 키 프레임 플래그와 불필요한 프레임 플래그가 SimpleBlock에만 있고 BlockGroup의 Block에는 없다는 것이다. BlockGroup의 EBML ID는 16 진수 A0으로 시작되고 그 뒤로 사이즈가 따라오고 SimpleBlock의 EBML ID는 A3으로 시작되며 그 뒤로 사이즈가 따라온다. BlockGroup 및 SimpleBlock을 sync로 정하면 MKV 파일은 A0 또는 A3인 sync뒤 사이즈가 지정한 길이만큼 이동하였을 때 그 위치에 또 sync가 있다는 sync 패턴을 가지고 있다.
[도 3]은 본 발명이 적용되는 비디오 파일 포맷 중 MP4의 구조도이다. [도 3]을 참조하면, MP4 파일은 여러 가지 box (또는 atom) 구조로 조성되었다. ftyp는 파일의 호환성을 확인하는 파일 타입 박스이다. moov, trak, mdia, minf, stbl 등 박스는 컨테이너뿐이지 실질적인 데이터는 없다. moov는 미디어의 모든 메타 데이터 박스를 포함하는 박스이다. mvhd에는 주로 파일의 만들어진 시간, 수정된 시간 및 지속 시간 등이 들어있다. Trak은 특정 미디어, 즉 오디오 또는 비디오의 모든 메타 정보 박스를 포함한다. tkhd에는 주로 track의 만들어진 시간, 수정된 시간 및 지속 시간이 들어있다. mdhd에도 주로 미디어가 만들어진 시간, 수정된 시간 등이 들어있다. hdlr는 trak의 유형을 지정한다. stsd에는 트랙의 디코딩에 필요한 코덱의 정보가 들어있고, stts에는 샘플의 시간 정보가 들어있고, stsc에는 각 chunk 내 샘플의 개수가 들어있고, stsz에는 각 chunk 내 샘플의 크기가 들어있고, stss에는 키 프레임 샘플 번호가 들어있고, stco에는 각 chunk의 위치 정보가 들어있다. mdat는 실제 미디어 데이터를 샘플 단위로 저장하는 데이터 박스이다. 비디오 데이터 샘플은 4 바이트의 사이즈로 시작되고 그 다음 2 바이트를 sync라고 정하였다. 통계적 방법으로 자주 나타나는 sync 값 11개를 획득하였다. 오디오 데이터 샘플은 16 진수로 21로 시작하므로 이것도 sync로 정하였다. 그러므로 MP4 파일은 11개의 비디오 샘플 sync 전 4 바이트 값이 지정한 길이만큼 이동하면 그 위치에 12개 sync 중 한 sync는 있다는 sync 패턴을 가지고 있다.
[도 4]는 본 발명이 적용되는 비디오 파일 포맷 중 RMVB의 구조도이다. [도 4]를 참조하면, RMVB 파일은 RMF, PROP, MDPR, CONT, DATA 및 INDX 등 6가지 chunk로 구성되었다. RMF chunk는 주로 헤더의 개수를 지정하고 PROP chunk는 비트 레이트, 데이터 패킷 사이즈, 데이터 패킷 개수, 파일의 지속시간, 첫 번째 INDX chunk의 시작 지점, 첫 번째 DATA chunk의 시작 지점 및 스트림의 개수 등을 포함하고 MDPR chunk는 주로 스트림의 시작 시간, 스트림의 지속 시간, 코덱 정보, 프레임 사이즈, 샘플 레이트, 샘플사이즈 등을 포함하고 CONT chunk는 타이틀, 저자, 저작권 등 정보를 포함하고 있고 DATA chunk는 비디오 또는 오디오 데이터를 저장하고 INDX chunk는 스트림 넘버, 다음 INDX chunk의 위치, 패킷의 시작점 등을 포함한다. 모든 데이터 패킷은 2 바이트 패킷 버전으로 시작하고 그 뒤로 2 바이트 패킷 사이즈가 따라온다. 패킷 버전은 16 진수로 00 00 또는 00 01 두 가지 있다. 이러한 패킷 버전을 sync로 정하면 RMVB 파일은 다음과 같은 sync 패턴을 가지고 있다. 즉, 00 00 또는 00 01인 sync뒤에 2 바이트 값이 지정한 길이만큼 이동하면 그 위치에 또 sync가 있다는 것이다.
다음 네트워크상에서 다수 존재하는 오디오 파일의 파일포맷은 MP3, AAC, FLAC 등을 통한 오디오 파일의 유통이 대부분이므로 이러한 3개 파일 포맷에 대하여 설명하도록 한다.
[도 5]는 본 발명이 적용되는 MP3 파일의 프레임 헤더 내 각 파라미터의 구조도이다. [도 5]를 참조하면, 프레임 헤더는 12개 동기화 비트, 버전 아이디, 레이어, CRC 보호 비트, 비트 레이트, 주파수, 패딩 비트, 프라이빗 비트, 채널 모드, 확장 모드, 저작권 보호 비트, 원본 비트 및 엠퍼시스 비트 등으로 구성된다. 그 중 버전 아이디, 레이어, 비트 레이트, 주파수, 패딩 비트, 채널 모드 등 6개만 오디오 데이터 복구에 필요한 주요 파라미터들이다. MP3 프레임의 길이는 비트 레이트, 주파수, 패딩 비트 3가지 파라미터를 이용하여 다음과 같이 계산한다.
그러므로 12개 동기화 비트 111111111111를 sync로 정하면 MP3 파일은 다음과 같은 sync 패턴을 가지고 있다. 즉, 111111111111 뒤에 비트 레이트, 주파수, 패딩 비트가 대응되는 위치에서 수치를 추출하여 상기 공식에 대입하여 프레임 길이를 구한 후 그 길이만큼 이동하면 그 위치에 또 sync가 있다는 것이다.
[도 6]은 본 발명이 적용되는 AAC 파일의 프레임 헤더 내 각 파라미터의 구조도이다. AAC 파일의 프레임 헤더는 ADTS(Audio Data Transport Stream) 구조로 되였다. [도 6]을 참조하면, 프레임 헤더는 12개 동기화 비트, 버전 아이디, 레이어, CRC 보호 비트, 프로파일, 샘플링 주파수, 프라이빗 비트, 채널, 원본 비트, 홈, 저작권 보호 비트, 프레임 길이, 버퍼 풀니스, AAC 프레임 개수, CRC 등으로 구성된다.
그러므로 12개 동기화 비트 111111111111를 sync로 정하면 AAC 파일은 다음과 같은 sync 패턴을 가지고 있다. 즉, 111111111111 뒤 프레임 길이 파라미터가 차지하는 곳에서 수치를 추출한 후 그 길이만큼 이동하면 그 위치에 또 sync가 있다는 것이다.
[도 7]는 본 발명이 적용되는 FLAC 파일의 구조도이다. [도 7]를 참조하면, FLAC 파일스트림은 fLaC로 시작하고 뒤이어 하나 이상의 메타데이타 블록 및 하나 이상의 프레임들이 있다. 메타데이타 블록은 헤더와 데이타를 포함한다. 메타데이타 블록 헤더 뒤에는 메타데이타 블록 번호가 있으며 그 번호에 대응되는 메타데이타 블록이 붙는다. 메타데이타 블록 내의 정보로는 최소 또는 최대 블록 사이즈, 최소 또는 최대 프레임 사이즈, 샘플 레이트, 채널 수, 비트당 샘플수, 스트림에서의 총 샘플수, MD5 신호등 등이 있다. 프레임에는 프레임 헤더, 서브 프레임 및 프레임 풋터가 포함된다. 프레임 헤더는 동기화 비트 '11111111111110'으로 시작하고 샘플레이트 와 채널수 등 가장 기본적인 정보를 갖고 있다. FLAC 파일은 프레임 사이즈 정보를 따로 저장하지 않으므로 헤더 속의 모든 파라미터와 오디오 데이터를 디코딩하며 뒤로 이동하는 방법으로 한 프레임 끝 부분으로 이동한다.
그러므로 14개 동기화 비트 11111111111110을 sync로 정하면 FLAC 파일은 다음과 같은 sync 패턴을 가지고 있다. 즉, 11111111111110 뒤부터 파라미터와 오디오 데이터를 디코딩하며 프레임 끝 부분에 도착하였을 때 그 다음 위치에 sync가 존재 한다는 것이다.
상기 4가지의 비디오 파일포맷과 3가지의 오디오 파일포맷의 실시예를 중심으로 본 발명에 의한 파일포맷분류DB의 구축방법을 살펴보면 다음과 같다.
(1)단계는 네트워크상에서 수집된 N개 비디오 또는 오디오 샘플파일에서 헤더(header) 및 테일(tail)을 제외한 범위의 데이터에서 랜덤하게 길이가 L1인 데이터를 잘라내어 N개의 데이터를 생성하는 단계이다. 일반적으로 헤더와 테일은 다수개로 분할된 샘플파일 중에서 다운확률이 낮기 때문에 헤더와 테일을 제외하는 것이 일반데이터가 저장된 조각파일로부터 복구할 수 있는 방법을 개발하고자 하는 취지에 부합한다.
즉, 비트토렌트와 같은 다운로드 어플리케이션은 조각 파일을 랜덤한 순서로 전송하기 때문에 조각 파일 수의 대부분을 차지하는 비디오 또는 오디오 스트림 조각 파일을 먼저 받는 확률이 높으므로 헤더와 테일을 제외한 데이터에서 특징점을 추출하는 것이다. 또한 헤더와 테일의 정보를 이용하여 파일 포맷을 식별하는 방법은 이미 보편화 되었고 비트토렌트에서 유통되는 조각 파일의 원본 파일 포맷을 식별하는데 있어서 효율적이지도 못하므로 본 발명에서는 스트림 데이터를 이용한 패턴 분류 및 식별 방법을 제안하였다.
(2)단계는 잘라낸 각 데이터를 sync패턴 카운팅 프로시져에 따라 파일포맷별로 sync패턴 카운터값을 생성하는 단계이다.
[도 8]은 본 발명에 따라 sync 패턴 카운팅 프로시져의 흐름도이다. [도 8]을 참조하면, 우선 한 조각 파일의 데이터를 받아들이고(810) 각 파일 포맷에 대응되는 sync 값을 초기화 한다(820). 예를 들면 포맷이 RMVB인 경우에 sync는 00 00 또는 00 01이고 AVI인 경우에 sync는 30 30 64 63 또는 30 31 77 62 이다. sync가 나타난 모든 위치를 검색하여 offset 변수에 저장한다(830). 각 offset 변수에서 사이즈 정보가 지정한 길이만큼 이동(840)한 후 piece 끝 부분에 도달 하였는가를 판단(850)하고 그 위치에 sync가 존재하는지를 판단한다(860). 조각 파일에서 각 파일 포맷에 대응되는 sync가 나타난 차수를 sync_counter에 기록하는 방법(870)으로 본 조각 파일에 들어있는 각 파일 포맷의 특징 분량을 계산한다. 만약 M가지 파일 포맷에 적용시키면 M개의 sync패턴의 카운터값이 출력된다(880).
(3)단계는 파일포맷별로 생성된 각 데이터의 sync패턴 카운터값을 조합하여 고차원 벡터집합을 구성하는 단계이다.
네트워크상에서 유통되는 비디오 및 오디오 조각 파일의 파일포맷을 더욱 효율적이면서 신속히 식별하기 위하여, 데이터베이스에 각 파일 포맷의 패턴을 분류한 결과를 미리 저장한다. [도 9]는 본 발명에 따라 파일포맷분류DB를 구축하는 과정의 흐름도이다. [도 9]를 참조하면, 우선 N개의 비디오 및 오디오 파일로 구성된 샘플 스페이스(910)에서 각 샘플의 헤더와 테일을 잘라버린다(920). 비트토렌트와 같은 다운로드 어플리케이션은 조각 파일을 랜덤한 순서로 전송하기 때문에 조각 파일 수의 대부분을 차지하는 비디오 및 오디오 스트림 조각 파일을 먼저 받는 확률이 높으므로 헤더와 테일을 제외한 데이터에서 특징점을 추출하는 것이다. 또한 헤더와 테일의 정보를 이용하여 파일 포맷을 식별하는 방법은 이미 보편화 되었고 비트토렌트에서 유통되는 조각 파일의 원본 파일 포맷을 식별하는데 있어서 효율적이지도 못하다.
비디오 조각 파일 사이즈는 일반적으로 256KB에서 4MB 사이에 있고 LI=1MB인 조각 파일 사이즈 이용 확률이 제일 높으므로 스트림 데이터에서 램덤하게 1MB를 잘라내고 오디오 조각 파일 사이즈는 일반적으로 128KB에서 1MB 사이에 있고 LI=256KB인 조각 파일 사이즈 이용 확률이 제일 높으므로 스트림 데이터에서 램덤하게 256KB를 잘라낸다(930). 다음 잘라낸 데이터에 각 포맷 sync 패턴 카운팅 프로시져(940)를 실행시켜 M개 포맷에 대응되는 sync 패턴 카운터값을 구하고 이 카운터들을 조합하여 M차원 벡터, 즉 고차원 벡터집합을 구성한다(950).
(4)단계는 생성된 N개의 고차원 벡터집합들을 군집 알고리즘 또는 SVM(Support Vector Machine)을 이용하여 M개의 파일포맷별로 분류하여 M개의 클래스분포를 상기 파일포맷분류DB에 저장하는 단계이다.
상기 군집 알고리즘은 비디오 파일에 적용되고 SVM은 오디오 파일에 적용될 수 있다. SVM은 그룹의 경계에 있는 데이터에 촛점을 맞추는 판별분석방법으로 통상적인 이론이므로 그 설명을 생략한다.
특히 상기 군집 알고리즘은 최적화한 판별 서브스페이스 클러스터링(Optimized Discriminative Subspace Clustering,ODiSC) 알고리즘에 의해 클래스를 분류하는 것을 일 특징으로 할 수 있다.
보통 고차원 벡터집합만을 보고 어느 포맷에 해당하는지를 판단하기에는 정확도가 낮은 경우가 많다. 그 예로 4개의 포맷을 분석하는 경우(즉 M=4), 한 MP4 조각 파일을 분석 해봤더니 AVI sync 카운터는 10, RMVB sync 카운터는 10, MP4 sync 카운터는 15, MKV sync 카운터는 15면 벡터는 v=(10, 10, 15, 15)일 수 있다. 마찬가지로 두 번째 MP4 조각 파일을 분석 해봤더니 v=(5, 15, 15, 20)라는 결과가 나타나는 경우, 벡터의 수치만 봐서 어느 포맷에 속한다고 결정하기에는 정확하지 않으므로 많은 조각 파일 모집한 것을 ODiSC 알고리즘 등을 이용하여 분류하게 된다.
[참고도 1]
상기 [참고도 1]은 삼각형, 사각형, 원은 세 가지 포맷에 대한 벡터를 그림으로 표시한 것이다. X는 임의로 인터넷에서 다운 받은, 포맷을 모르는 조각 파일을 의미하며, X와 각 벡터사이 거리를 계산해봐서 제일 가까운 포맷에 속한다고 식별하는 것이 본 발명의 조각파일 식별방법의 내용이다. 이 때 사실 X는 사각형과 같은 포맷인데 [참고도 1]에서는 삼각형과 같은 포맷이라고 오인식할 가능성이 높다.
따라서 아래의 [참고도 2]와 같이 다수개의 샘플조각파일에 대한 고차원 벡터집합들을 생성하여 둔다.
[참고도 2]
[참고도 3]
[참고도 3]은 [참고도 2]와 같이 생성된 다수개의 고차원 벡터집합들을 ODiSC 군집 알고리즘을 이용하여 분류한 결과이다.
상기 최적화한 판별 서브스페이스 클러스터링 (Optimized Discriminative Subspace Clustering, ODiSC)은 N개 M차원 벡터들을 군집하여 M개 클래스로 분류하는 것으로서(960), ODiSC는 기존의 DiSC를 비디오 sync 패턴 특성에 맞게 개선하고 진화 알고리즘을 이용하여 더욱 최적화한 군집 알고리즘이다. 분류된 클래스분포정보를 상기 파일포맷분류DB에 저장하여(970) 나중에 비트토렌트 클라이언트에서 다운로드한 조각 파일의 원본 파일 포맷을 식별하는데 사용된다.
[참고도 4]
[참고도 4]의 빨간 색으로 된 삼각형, 사각형, 원은 무게중심입니다. X는 임의로 인터넷에서 다운 받은, 포맷을 모르는 조각 파일이라면 그것과 각 무게 중심사이 거리를 계산, 즉 KNN을 이용하여 거리를 계산하여 제일 가까운 거리의 클래스분포정보의 포맷에 속한다고 식별하게 된다.
상기 (B)단계에서 상기와 같이 구축된 파일포맷분류DB와 비교분석하여 파일포맷을 식별하는 방법은 아래와 같다.
(B-1)단계는 상기 조각 파일에 들어있는 sync패턴 카운터값을 sync패턴 카운터 프로시져를 통하여 생성하는 단계이며, (B-2)단계는 각 포맷에 대응되는 sync패턴 카운터값으로부터 고차원 벡터 집합을 구성하는 단계이다.
[도 10]은 본 발명에 따라 비디오 및 오디오 조각 파일의 포맷을 식별하는 과정의 흐름도이다. [도 10]을 참조하면, 비트토렌트(BT)에서 유통되는 비디오 및 오디오 조각 파일이 다운되면(1010) 비디오 및 오디오 파일 포맷 분류 프로시져와 마찬가지로 각 포맷 sync 패턴 카운팅 프로시져(1020)를 실행시켜 M개 포맷에 대응되는 sync패턴카운터값을 구하고 이 카운터값들을 조합하여 M차원 벡터를 구성한다(1030). sync카운터값을 sc라하고 고차원 벡터의 차원 수가 M차원이라면 고차원 벡터v는 다음과 같이 표현 할 수 있다.
(B-3)단계는 상기 조각파일의 사이즈를 LI인 데이터로 맞추기 위하여 상기 고차원 벡터집합에 벡터 정규화(vector normalization)를 수행하는 단계이다.
다운한 비디오 조각 파일 사이즈는 256KB에서 4MB 사이에 있고 오디오 조각 파일 사이즈는 128KB에서 1MB 사이에 있으므로 초기에 분류할 때 정의한 조각 파일 사이즈 LI에 맞추기 위하여 M차원 벡터를 정규화 한다(1040).
(B-4)단계는 상기 벡터정규화에 의하여 축소된 고차원 벡터집합과 파일포맷분류DB의 클래스 사이의 최소 유클리디안 거리를 측정하는 방법(K-Nearest Neighbor, KNN)으로 비교하여 상기 조각파일의 포맷을 식별하는 단계이다.
두 벡터사이 유클리디안 거리 dist를 측정하는 방법은 다음과 같다.
이와 같이 K개 최근접 이웃 (K-Nearest Neighbor, KNN) 기법을 이용하여 데이터베이스에 저장한 클래스 분포정보(1070)에서 본 조각파일에 대한 고차원벡터집합과 가장 가까운 거리의 클래스를 찾게 되면(1050), 그 클래스와 대응되는 포맷을 식별된 비디오 또는 오디오 파일 포맷으로 식별된 것으로 판단하게 된다(1060).
상기 조각파일이 상기의 단계에 의하여 상기 파일포맷분류DB의 고차원벡터집합에 대응되는 클래스분포정보를 추출하여 포맷을 식별하게 되면, 상기 조각파일의 파일포맷에 해당하는 헤더를 조합하는 과정이 다음의 (C) 단계에서 이루어지게 된다.
(C)단계는 상기 중앙연산부가 상기 조각파일의 파일포맷에 해당하는 최대유사헤더를 상기 최대유사헤더DB에서 추출하여 상기 조각파일의 선단에 조합하는 단계이다.
특히 상기 최대유사헤더는 상기 최대유사헤더DB에 저장되어 있는 바, 상기 최대유사헤더DB의 구축방법은 다음과 같은 순서에 의한다.
(ㄱ)단계는 네트워크에서 유통되는 비디오 또는 오디오 파일 헤더들을 수집하는 단계이다.
[도 11]은 본 발명에 따라 최대 유사 헤더를 구성하는 과정의 흐름도이다. [도 11]을 참조하면, 우선 네트워크상에서 유통되는 비디오 및 오디오 파일들의 헤더들을 모집한다(1110). 통계적 방법으로 헤더 속의 비디오 및 오디오 속성이(1120) 나타나는 확률을 계산하고(1130) 확률의 크기순서에 따라 헤더들을 재배열한다(1140).
(ㄴ)단계는 상기 헤더에서 비디오 또는 오디오 속성이 나타나는 확률을 통계적 방법으로 계산하여 확률값에 따라 헤더를 재배열하는 단계이다.
헤더 속의 비디오 및 오디오 속성이 나타나는 확률을 계산하는 통계적 방법은 다음과 같다. 헤더 속에는 여러 가지 파라미터가 있는데, S개 헤더를 모집하고 파리미터 Frame Rate=α 인 헤더의 개수를 FRα라면 이러한 헤더가 차지하는 확률은이다. 마찬가지로 Frame Rate=β 인 헤더의 확률은 이며, 가령 S개 헤더들의 Frame Rate가 α,β,γ 등 세 가지 값을 갖고 있으며 그 중 확률 가 가장 높으면 Frame Rate=γ인 헤더들을 선택하도록 하여 해당 헤더가 배열의 앞부분으로 이동하도록 한다. 이후 다음에 선택된 헤더 중 파라미터 Stream Length(AVI 포맷인 경우)가 α,β,γ 등 세 가지 값을 갖고 있으며 그 중 확률 가 가장 높으면 Stream Length=γ인 헤더들을 선택하여 배열의 앞부분으로 이동한다.
이러한 방법으로 또 다른 파라미터들의 확률을 계산하여 마지막 남은 헤더가 가장 높은 확률을 갖는 헤더인 최대유사헤더가 된다.
(ㄷ)단계는 가장 높은 확률값을 갖는 헤더를 최대유사헤더로 상기 최대유사헤더DB에 저장하는 단계인 바, 상기의 방법으로 추출된 최대유사헤더는 상기 최대유사헤더DB에 저장된다.
예로 들면, 비디오 속성인 프레임 레이트(Frame Rate)가 24인 값을 가진 헤더가 가장 많으므로 배열의 앞부분에 위치하고, 프레임 레이트(Frame Rate)가 30인 헤더가 적으므로 배열의 뒤 부분에 위치하게 되며 이를 반복하여 확률값이 가장 높은 헤더를 최대 유사 헤더로 결정한다. M가지 비디오 또는 오디오 파일 포맷을 모집하면 M개 최대 유사 헤더들을 얻을 수 있다. 이러한 최대유사 헤더들을 최대유사헤더DB에 저장한다(1150).
(D)단계는 상기 영상처리부 또는 음성처리부가 상기 최대유사헤더가 조합된 조각파일을 디코딩하는 단계이다. 상기 최대유사헤더가 조합된 조각파일을 디코딩하였을 때 본 발명에 의한 비디오 및 오디오 복구방법의 디코딩 정확도가 향상되는 효과가 있다.
이러한 비디오 및 오디오 복구방법은 [도 12]의 본 발명에 따라 비디오 및 오디오를 복구하는 과정의 흐름도에서 확인할 수 있다. [도 12]를 참조하면, 입력한 한 조각 파일(1210)의 포맷 식별(1220)이 끝나면 해당되는 포맷의 최대 유사 헤더(1250)를 그 조각 파일 앞부분에 추가하여 재구성된 조각 파일을 얻는다(1230). 다음 재구성된 조각 파일을 비디오 및 오디오 디코더에 입력하여 비디오 및 오디오를 재생한다(1240).
이상에서 본 발명에 따른 멀티미디어 조각파일 복구방법의 구체적인 실시예와 함께 살펴보았다. 그러나 상기의 실시예 이외에도 본 발명과 균등한 범위에 속하는 수정 및 변형이 가능하다. 따라서 본 발명의 청구범위는 이 건 발명의 진정한 범위 내에 속하는 수정 및 변형을 포함한다.
없음
Claims (5)
- 파일포맷을 분류하는 클래스분포가 저장된 파일포맷분류DB 및 최대유사헤더가 저장된 최대유사헤더DB가 구축되어 있으며, 영상처리부, 음성처리부 및 중앙연산부를 포함하는 시스템을 통하여 네트워크상의 비디오 또는 오디오 조각파일을 복구하는 방법으로서,
(A) 상기 중앙연산부가 네트워크상에서 조각파일을 수집하는 단계;
(B) 상기 중앙연산부가 상기 파일포맷분류DB의 클래스분포를 분석하여 상기 조각파일의 파일포맷을 식별하는 단계;
(C) 상기 중앙연산부가 상기 조각파일의 파일포맷에 해당하는 최대유사헤더를 상기 최대유사헤더DB에서 추출하여 상기 조각파일의 선단에 조합하는 단계; 및
(D) 상기 영상처리부 또는 음성처리부가 상기 중앙연산부로부터 상기 최대유사헤더가 조합된 조각파일을 수신하여 디코딩하는 단계;
를 포함하여 이루어지며,
상기 중앙연산부는,
(ㄱ) 네트워크에서 유통되는 비디오 또는 오디오 파일 헤더들을 수집하는 단계; (ㄴ) 상기 헤더에서 비디오 또는 오디오 속성이 나타나는 확률을 통계적 방법으로 계산하여 확률값에 따라 헤더를 재배열하는 단계; 및 (ㄷ) 가장 높은 확률값을 갖는 헤더를 최대유사헤더로 상기 최대유사헤더DB에 저장하는 단계;를 포함하는 방법으로 상기 최대유사헤더DB를 구축하는 것을 특징으로 하는 멀티미디어 조각파일의 복구방법.
- 제1항에서,
상기 중앙연산부는 하기의 단계를 포함하는 방법으로 파일포맷분류DB를 구축하는 것을 특징으로 하는 멀티미디어 조각파일의 복구방법.
(1) 수집된 N개 비디오 또는 오디오 샘플파일에서 헤더(header) 및 테일(tail)을 제외한 범위의 데이터 중 길이가 LI인 데이터를 랜덤하게 잘라내어 총 N개의 데이터를 생성하는 단계;
(2) 잘라낸 각 데이터를 sync패턴 카운팅 프로시져에 따라 파일포맷별로 sync패턴 카운터값을 생성하는 단계;
(3) 파일포맷별로 생성된 각 데이터의 sync패턴 카운터값을 조합하여 고차원 벡터집합을 구성하는 단계; 및
(4) 생성된 N개의 고차원 벡터집합들을 군집 알고리즘 또는 SVM(Support Vector Machine)을 이용하여 M개의 파일포맷별로 분류하여 M개의 클래스분포를 상기 파일포맷분류DB에 저장하는 단계;
- 제1항에서,
상기 (B)단계에서,
상기 중앙연산부는,
(B-1) 상기 조각 파일에 들어있는 sync패턴 카운터값을 sync패턴 카운팅 프로시져에 따라 생성하는 단계;
(B-2) 각 포맷에 대응되는 sync패턴 카운터값으로부터 고차원 벡터 집합을 구성하는 단계;
(B-3) 상기 조각파일의 사이즈를 LI으로 맞추기 위하여 상기 고차원 벡터집합에 벡터 정규화(vector normalization)를 수행하여 축소된 고차원 벡터집합을 생성하는 단계; 및
(B-4) 상기 축소된 고차원 벡터집합과 파일포맷분류DB의 각 클래스분포를 KNN기법(K-Nearest Neighbor 기법, 최소 유클리디안 거리를 측정하는 기법)로 비교하여 최근거리의 클래스의 포맷을 선택하여 상기 조각파일의 포맷으로 저장하는 단계;
를 포함하는 과정을 거쳐 조각파일의 포맷을 식별하는 것을 특징으로 하는 멀티미디어 조각파일의 복구방법.
- 삭제
- 제2항에서,
상기 군집알고리즘은,
최적화한 판별 서브스페이스 클러스터링(Optimized Discriminative Subspace Clustering,ODiSC) 알고리즘인 것을 특징으로 하는 멀티미디어 조각파일의 복구방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140122746A KR101632689B1 (ko) | 2014-09-16 | 2014-09-16 | 멀티미디어 조각파일의 복구방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140122746A KR101632689B1 (ko) | 2014-09-16 | 2014-09-16 | 멀티미디어 조각파일의 복구방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160032761A KR20160032761A (ko) | 2016-03-25 |
KR101632689B1 true KR101632689B1 (ko) | 2016-06-23 |
Family
ID=55645448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140122746A KR101632689B1 (ko) | 2014-09-16 | 2014-09-16 | 멀티미디어 조각파일의 복구방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101632689B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200088753A (ko) | 2019-01-15 | 2020-07-23 | 유홍준 | 네트워크상 정보 분해 조립 기반의 다차원 미디어 콘텐츠 제어 시스템 및 방법 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407492B (zh) * | 2021-06-18 | 2024-03-26 | 中国人民银行清算总中心 | 文件分片存储、分片文件重组方法及装置、文件保护*** |
CN113672423A (zh) * | 2021-08-18 | 2021-11-19 | 青岛海信移动通信技术股份有限公司 | 一种专辑文件的解析文件的修复方法和终端设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001111960A (ja) | 1999-10-12 | 2001-04-20 | Sharp Corp | データ記録方法及びデータ復旧方法 |
US7134039B2 (en) | 2004-07-06 | 2006-11-07 | Magnum Semiconductor, Inc. | Recovery of real-time video data after power loss |
KR101407166B1 (ko) | 2007-06-20 | 2014-06-13 | 엘지전자 주식회사 | 디지털 비디오 레코더에서의 데이터베이스 복구방법 |
KR101029112B1 (ko) * | 2008-12-15 | 2011-04-13 | 한국전자통신연구원 | Pe 파일의 실행압축 여부 판단방법 및 그 판단 프로그램이 기록된 기록매체 |
KR101090269B1 (ko) * | 2010-02-19 | 2011-12-07 | 연세대학교 산학협력단 | 특징 추출 방법 및 그 장치 |
KR101351795B1 (ko) * | 2012-01-10 | 2014-01-20 | 대한민국 | 클러스터 검색을 통한 동영상 복구 방법 및 그 기록매체 |
KR101378490B1 (ko) * | 2012-07-11 | 2014-03-27 | 주식회사 오마이데이터 | 영상 데이터 복구 장치 및 방법 |
-
2014
- 2014-09-16 KR KR1020140122746A patent/KR101632689B1/ko active IP Right Grant
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200088753A (ko) | 2019-01-15 | 2020-07-23 | 유홍준 | 네트워크상 정보 분해 조립 기반의 다차원 미디어 콘텐츠 제어 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20160032761A (ko) | 2016-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4481889B2 (ja) | データ記録装置及びその方法、プログラム、記録媒体 | |
JP4270379B2 (ja) | デジタル情報の効率的な伝送および再生 | |
US8019885B2 (en) | Discontinuous download of media files | |
CN103873860B (zh) | 文件传输方法及装置 | |
JP2006081146A (ja) | シーンチェンジ情報をビデオビットストリーム中に埋め込むシステムおよびその方法 | |
KR20060111904A (ko) | 메타-데이터 및 미디어-데이터를 포함하는 멀티미디어파일의 스트리밍 | |
EP3070947B1 (en) | Video frame decoding method and apparatus | |
US20090109298A1 (en) | Method of segmenting videos into a hierarchy of segments | |
KR20110134857A (ko) | 프래그먼트 기반의 멀티미디어 스트리밍 서비스 제공 방법과 그 장치, 그리고 프래그먼트 기반의 멀티미디어 스트리밍 서비스 수신 방법과 그 장치 | |
US20110222835A1 (en) | Application Tracks in Audio/Video Containers | |
JP7238948B2 (ja) | 情報処理装置および情報処理方法 | |
KR101632689B1 (ko) | 멀티미디어 조각파일의 복구방법 | |
US20060059509A1 (en) | System and method for embedding commercial information in a video bitstream | |
Hadi | Reviewing and evaluating existing file carving techniques for JPEG files | |
Altinisik et al. | Video source characterization using encoding and encapsulation characteristics | |
US10515092B2 (en) | Structured record compression and retrieval | |
JP6145748B2 (ja) | 映像再生装置および映像記録装置 | |
JP5648801B2 (ja) | コンテンツ再生制御システムと、その方法及びプログラム | |
JP4719506B2 (ja) | 端末装置、コンテンツ再生方法、及びコンピュータプログラム | |
Park et al. | Data fragment forensics for embedded DVR systems | |
CN108989905B (zh) | 媒体流控制方法、装置、计算设备及存储介质 | |
Alghafli et al. | Identification and recovery of video fragments for forensics file carving | |
KR102430177B1 (ko) | 대규모 동영상 고속 관리 시스템 및 그 방법 | |
CN112350986B (zh) | 一种音视频网络传输碎片化的整形方法及*** | |
CN106961626A (zh) | 一种视频元信息自动补全整理的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190613 Year of fee payment: 4 |