상기와 같은 목적을 달성하기 위하여 본 발명에 따른 미디어 재생가능시간 계산 방법은, (a) 미디어파일의 다운로드를 시작하는 단계; (b) 상기 미디어파일에서 시간당 데이터 크기를 추출하고, 현재 다운로드된 데이터 크기를 측정하는 단계; 및, (c) 상기 시간당 데이터 크기 및 현재 다운로드된 데이터크기를 근거로 재생가능시간을 계산하는 단계를 포함한다.
본 발명에 의하면, 상기 (a) 단계는, 프로그레시브 다운로드 서비스에 따른 미디어파일의 다운로드를 시작하는 단계일 수 있다.
본 발명에 의하면, 상기 (b) 단계는, 상기 미디어파일의 사용자데이터 박스에서 시간당 데이터 크기를 추출하고, 현재 다운로드된 데이터 크기를 측정하는 단계일 수 있다.
본 발명에 의하면, 상기 시간당 데이터 크기가 테이블로 구성되는 경우, 상기 (c) 단계는, 테이블에 해당하는 시간당 데이터 크기를 순차적으로 합산한 후 현재 다운로드된 데이터크기를 근거로 재생가능시간을 계산하는 단계일 수 있다.
본 발명의 또 다른 측면에 따르면, (a) 미디어파일을 인코딩하는 단계; (b) 상기 미디어파일에서 추출된 정보를 근거로 전체 재생시간을 계산하는 단계; (c) 상기 전체 재생시간, 및 상기 미디어파일에서 추출된 샘플 정보를 이용하여 시간당 데이터 크기를 계산하는 단계; 및, (d) 상기 시간당 데이터 크기를 상기 미디어파일에 기록하는 단계를 포함하는 미디어 재생가능시간 계산을 위한 미디어파일 제작 방법이 제공된다.
본 발명에 의하면, 상기 (a) 단계는, MPEG-4 표준방식으로 미디어파일을 인코딩하는 단계이고, 상기 미디어파일은, 프로그레시브 다운로드 서비스를 위한 3GPP(3rd Generation Partnership Project) 스펙에 따른 것일 수 있다.
본 발명에 의하면, 상기 (b) 단계는, (b1) 상기 미디어파일의 무비헤더 박스(movie header box)에서 시간크기(timescale) 및 주기(duration)를 추출하는 단계; 및, (b2) 상기 시간크기(timescale)를 상기 주기(duration)로 나누어 전체 재생시간(total running time)을 계산하는 단계;를 포함하는 단계일 수 있다.
본 발명에 의하면, 상기 (c) 단계에서의 상기 샘플 정보는, 미디어파일의 샘플 개수(sample count), 미디어파일의 샘플 크기(sample size)를 포함하고, 상기 미디어파일의 샘플 개수(sample count), 상기 미디어파일의 샘플 크기(sample size)는 상기 미디어파일의 샘플크기 박스(sample size box)에서 추출된 정보이며, 상기 샘플크기 박스(sample size box)는, 상기 미디어파일의 트랙 박스(track box)의 미디어 박스(media box)의 미디어정보 박스(media information box)의 샘플데이터 박스(sample table box)에 포함된 것이고, 상기 (c) 단계는, (c1) 상기 미디어파일에서 상기 미디어파일의 샘플 개수(sample count), 상기 미디어파일의 샘플 크기(sample size)를 추출하는 단계; (c2) 상기 미디어파일의 샘플개수(sample count)를 상기 전체 재생시간(total running time)으로 나누어 시간당 샘플개수 (sample count per sec)를 계산하는 단계; 및, (c3) 시간당 샘플개수(sample count per sec)만큼씩 상기 미디어파일의 샘플 크기(sample size)를 더하여 시간당 데이터 크기(data size per sec)를 계산하는 단계;를 포함하는 단계일 수 있다.
본 발명에 의하면, 상기 (c) 단계에서의 상기 미디어파일의 샘플 크기는, 여러 개의 순차적인 상수 값으로 구성되는 테이블 형태이며, 상기 (c) 단계 및 상기 (d) 단계에서의 상기 시간당 데이터 크기는, 여러 개의 순차적인 상수 값으로 구성되는 테이블 형태일 수 있다.
본 발명에 의하면, 상기 (d) 단계는, 상기 시간당 데이터 크기를 상기 미디어파일의 사용자데이터 박스에 기록하는 단계일 수 있다.
이하 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 1은 본 발명에 따른 미디어 재생가능 계산을 위한 미디어파일 제작 방법의 순서를 보여주는 도면이다. 도면을 참조하면, 우선, 미디어파일을 MPEG-4 표준 방법으로 특히 3GPP 파일 포맷으로 인코딩한다(S110 단계).
여기서 3GPP 파일 포맷이란, 다수의 박스(box)들을 포함하는 포맷으로서, 박스(Box)라는 여러 벌(series)의 객체들(Objects)로 형성되는데, 박스는 하나의 고유 형식의 식별자와 길이로 정의되는 객체지향-형성블록(object-oriented building block)이다. 여기서 박스는 다른 말로 아톰(atom)이라고도 지칭된다. 모든 데이터는 박스들에 포함된다.
한편, 3GPP 미디어파일에 포함되는 대표적인 박스들로는 무비 박스(movie box ; 이하, moov), 미디어데이터 박스(media data box ; 이하 mdat), 무비헤더 박스(movie header box ; 이하, mvhd), 및 트랙 박스(track box ; 이하, trak)가 있다.
- mvhd : moov의 특성을 특징짓는 전반적인 정보를 포함하는 박스이다. moov는 하나의 mvhd를 갖는다. mvhd가 포함하는 정보로는 moov의 생성시간(creation time)과 변경시간(modification time)과 시간크기(timescale)와 주기(duration)와 속도(rate)와 볼륨(volume) 등이다.
- trak : 하나 또는 그 이상의 트랙들을 포함하는 박스로써, 하나의 트랙은 한 시퀀스의 이미지들(a sequence of images) 또는 샘플된 오디오(sampled audio)에 해당한다. 따라서 trak는 비디오용과 오디오용으로 구분된다. moov는 적어도 하나의 trak을 포함한다.
한편 각 trak는 트랙헤더 박스(trhd : track header box)와 트랙레퍼런스 박스(tref : track reference box)와 미디어 박스(mdia : media box)와 에디트 박스 (edts : edit box)와 사용자데이터 박스(udta : user data box) 등을 포함한다.
상기한 미디어 박스(mdia)는 미디어헤더 박스(mdhd : media header box)와 핸들러레퍼런스 박스(hdlr : handler reference box)와 미디어정보 박스(minf : media information box) 등을 포함한다. 미디어헤더 박스(mdhd)는 해당 미디어들의 특성들을 특징짓는 전반적인 정보를 나타낸다. 그리고 미디어정보 박스(minf)는 해당 미디어의 특성 정보를 나타내는 모든 객체들(objects)을 포함한다.
한편 상기한 미디어정보 박스(minf)는 샘플테이블 박스(sample table box ; 이하, stbl)를 포함한다. stbl은 한 트랙 내의 미디어 샘플들의 시간과 데이터 인덱싱(time and data indexing)을 포함하는 박스로써, 그에는 샘플디스크립션 박스(sample description box ; 이하, stsd)와 샘플크기 박스(sample size box ; 이하, stsz)가 포함된다.
stsz는 샘플 개수와 각 샘플들의 크기(단위는 bytes)를 포함한다. 미디어의 총 샘플 수는 상기 샘플 개수에 해당한다.
한편 상기에서 언급한 샘플에 대해 설명하면, 하나의 샘플은 비디오의 하나의 프레임이거나 연속된 한 벌의 비디오 프레임이거나 연속된 한 압축부분(compressed section)의 오디오이다.
S110 단계에서 미디어파일을 MPEG4로 인코딩한 다음, 상기 미디어파일에서 추출된 정보를 근거로 전체 재생시간(total running time)을 계산한다(S120 단계). 구체적으로, 미디어파일의 무비헤더 박스(movie header box)에서 추출된 시간크기(timescale) 및 주기(duration)를 근거로 다음 수학식과 같이 전체 재생시간을 계 산한다.
그런 다음, 미디어파일에서 미디어파일의 샘플 개수(sample count) 및 미디어파일의 샘플 크기(sample size)를 추출한다(S130 단계). 구체적으로, 미디어파일의 샘플데이터 박스(sample table box)에서 미디어파일의 샘플 개수(sample count) 및 미디어파일의 샘플 크기(sample size)를 추출하는 것이다. 상기 샘플크기 박스(sample size box)는 미디어파일의 트랙 박스(track box)의 미디어 박스(media box)의 미디어정보 박스(media information box)에 포함되어 있는 것이다.
한편, 상기 샘플 크기는 1개의 상수 값이 될 수도 있고, 여러 개의 순차적인 상수 값으로 구성되는 테이블 형태가 될 수도 있다.
S130 단계에서 추출된 샘플 개수(sample count)를 상기 S120 단계에서 계산된 전체 재생시간(total running time)으로 나누어 다음 수학식과 같이 시간당 샘플개수(sample count per sec)를 계산한다.
그런 다음, S140 단계에서 계산된 시간당 샘플개수(sample count per sec)만큼씩 S120 단계에서 추출한 미디어 파일의 샘플 크기(sample size)를 더하여 다음 수학식과 같이 시간당 데이터 크기(data size per sec)를 계산한다(S150 단계).
예를 들어, 시간당 샘플개수(sample count per sec)가 3이고, 샘플 크기(sample size)가 여러 개의 순차적인 상수 값으로 구성되는 테이블 형태로서, 다음과 같다.
샘플크기(sample size) |
샘플크기 값 |
sample1 |
7 |
sample2 |
7 |
sample3 |
6 |
sample4 |
9 |
sample5 |
8 |
sample6 |
8 |
sample7 |
6 |
sample8 |
6 |
sample9 |
7 |
그러면, 각 샘플크기를 시간당 샘플개수인 3개 만큼씩 더해서 다음과 같이 시간당 샘플개수 테이블을 작성한다.
샘플크기(sample size) |
샘플크기 값 |
시간당 데이터 크기 (data size per sec) |
sample1 |
7 |
table[0]= 20 |
sample2 |
7 |
sample3 |
6 |
sample4 |
9 |
table[1]= 25 |
sample5 |
8 |
sample6 |
8 |
sample7 |
6 |
table[2]= 20 |
sample8 |
7 |
sample9 |
7 |
그런 다음 S150 단계에서 계산된 시간당 데이터 크기(data size per sec)를 상기 미디어파일의 사용자데이터 박스(udta:user data box)에 기록한다(S160 단계).
위와 같은 과정을 통해 미디어 재생가능시간 계산을 위한 미디어 파일의 제작이 완료된다.
도 2는 본 발명에 따른 미디어 재생가능시간 계산 방법의 순서도이다. 도 2 를 참조하면, 우선, 이동통신 단말기에서 프로그레시브 다운로드 서비스에 따른 미디어파일의 다운로드를 시작한다(S210 단계).
다운로드가 시작되면, 미디어파일의 사용자데이터 박스(udta: user data box)에서 시간당 데이터 크기를 추출하고, 현재 다운로드된 데이터 크기를 측정한다(S220 단계).
그런 다음, 시간당 데이터 크기 및 현재 다운로드된 데이터크기를 근거로 재생가능시간을 계산한다(S230 단계). 만약, 시간당 데이터 크기가 테이블 형태일 경우, 테이블에 해당하는 시간당 데이터 크기를 순차적으로 합산한 후 현재 다운로드된 데이터크기를 근거로 재생가능시간을 계산한다.
예를 들어, 미디어 파일의 시간당 데이터 크기가 다음 표와 같고, 현재 다운로드된 데이터 크기가 50Kbyte로 측정된 경우의 재생가능 시간을 계산하면, 1초동안의 데이터 크기는 20Kbyte이고, 2초 동안의 데이터 크기는 45Kbyte이므로, 3초 동안의 데이터 크기는 75Kbyte인데, 현재 다운로드된 데이터 크기는 50Kyte이므로, 현재 재생가능시간은 2초가 된다.
시간당 데이터 크기 (data size per sec) |
누적 데이터 크기 |
table[0]= 20 |
1초 20Kbyte |
table[1]= 25 |
2초 45Kbyte |
table[2]= 20 |
3초 75Kbyte |
상기 S240 단계에서 계산한 재생가능시간을 이동통신 단말기에 표시한다(S250 단계).
이상과 같이, 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지 식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.