KR100673093B1 - 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한리얼타임 멀티미디어 파일 재생 방법 - Google Patents

휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한리얼타임 멀티미디어 파일 재생 방법 Download PDF

Info

Publication number
KR100673093B1
KR100673093B1 KR1020050029404A KR20050029404A KR100673093B1 KR 100673093 B1 KR100673093 B1 KR 100673093B1 KR 1020050029404 A KR1020050029404 A KR 1020050029404A KR 20050029404 A KR20050029404 A KR 20050029404A KR 100673093 B1 KR100673093 B1 KR 100673093B1
Authority
KR
South Korea
Prior art keywords
file
multimedia
buffer
caching
buffered
Prior art date
Application number
KR1020050029404A
Other languages
English (en)
Other versions
KR20060046644A (ko
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 주식회사 텔레칩스
Publication of KR20060046644A publication Critical patent/KR20060046644A/ko
Application granted granted Critical
Publication of KR100673093B1 publication Critical patent/KR100673093B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/005Device type or category
    • G10H2230/015PDA [personal digital assistant] or palmtop computing devices used for musical purposes, e.g. portable music players, tablet computers, e-readers or smart phones in which mobile telephony functions need not be used
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10629Data buffering arrangements, e.g. recording or playback buffers the buffer having a specific structure
    • G11B2020/10666Ring buffers, e.g. buffers wherein an iteratively progressing read or write pointer moves back to the beginning of the buffer when reaching the last storage cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/1075Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
    • G11B2020/10759Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data content data
    • G11B2020/10768Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data content data by pre-caching the initial portion of songs or other recorded or downloaded data for starting playback instantly

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 멀티미디어 파일 재생 요청신호가 입력되면 멀티미디어 파일 재생 리스트를 확인하고, 버퍼를 상기 파일의 구조에 따라 다른 일정 개수의 파일 캐시로 나누고 상기 확인한 멀티미디어 파일 재생 리스트에 따라 해당되는 멀티미디어 파일들을 조각 단위로 상기 나누어진 캐시에 버퍼링 가능한 크기만큼 각각 순서대로 버퍼링하는 것으로서, 다중 파일 캐싱을 적용함으로써 저장 모듈의 접근을 최소한 줄이고, 여러 파일을 다중 파일 캐시하는 것과 재생하고자 하는 파일 구조에 따라 다중 파일 캐싱을 적용시킴으로써 시스템의 원활한 작동을 도울수 있다.
링 구조 버퍼, 다중 파일 버퍼링, 버퍼링 시작 임계치, 조각 복사

Description

휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법{Method for playing the real-time multimedia file using multiple file caching in mobile multimedia player}
도 1은 본 발명이 적용되는 휴대형 멀티미디어 재생기에 대한 일실시예 구성도.
도 2는 본 발명이 적용되는 링 구조의 버퍼에 대한 일실시예 설명도.
도 3은 본 발명이 적용되는 파일과 파일 캐시간의 관계에 대한 일실시예 설명도.
도 4는 본 발명에 따른 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법에 대한 일실시예 흐름도.
도 5a 내지 도 5c는 본 발명이 적용되는 한 파일에 대한 다중 파일 캐싱에 대한 일실시예 설명도.
도 6은 본 발명이 적용되는 파일 조각 단위의 버퍼링 방법에 대한 일실시예 흐름도.
도 7a 및 도 7b는 본 발명이 적용된 멀티미디어 파일이 버퍼링되는 버퍼의 상태에 대한 일실시예 설명도.
도 8은 본 발명이 적용된 버퍼로의 멀티미디어 파일 조각 복사에 대한 일실시예 설명도.
도 9는 본 발명이 적용된 버퍼 포인트의 위치 교환에 대한 일실시예 설명도.
* 도면의 주요 부분에 대한 부호 설명
10 : 저장모듈 11 : 버퍼
12 : 멀티미디어 재생모듈
본 발명은 버퍼를 파일의 구조에 따라 다중 파일 캐싱을 적용하여 일정 개수의 파일 캐시로 나누어서 각 캐시에 해당 데이터를 버퍼링 가능한 크기만큼 순서대로 버퍼링하여 재생하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법에 관한 것이다.
최근에 디지털 관련 기술 발전에 힘입어 사용자는 휴대형 멀티미디어 재생기(예; 영상/오디오 재생 기능이 탑재된 이동통신 단말기(휴대폰, PDA 등), 휴대형 MP3 플레이어, 휴대형 동영상 플레이어 등)를 통하여 영화, 음악 등을 감상할 수 있게 되었다.
한편, 영화 파일, 음악 파일 등과 같은 멀티미디어 파일은 용량이 매우 크기 때문에 휴대형 멀티미디어 재생기에서 재생 시에 소용량의 메모리에 파일을 이루는 모든 데이터가 캐싱되지 못하며, 그에 따라 비휘발성 저장매체 형태의 저장모듈(예; 하드 디스크(HDD), 부정 논리곱(NAND)형 메모리, 멀티미디어 카드(MMC, 컴팩트 플래시형 메모리), SD 메모리 카드(SD Memory Card), USB 플래시 메모리 기기(UFD; USB Flash memory Device) 등에 저장되었다가 재생 시마다 파일의 일부 데이터가 메모리에 캐싱된다.
일반적으로, 휴대형 멀티미디어 재생기에서는 메모리에 비해 저속의 저장모듈로부터 대용량 멀티미디어 파일을 직접 읽어 와서 재생하는 것으로 인한 재생 지연 및 반복적인 저장모듈 액세스(access)로 인한 전력 소모를 줄이기 위해 메모리에 버퍼를 구현하여 버퍼링 기법을 사용한다.
종래 방식에 따른 휴대형 멀티미디어 재생기에는 시스템 특성(예; 저용량의 메모리, 저속의 CPU, 배터리 전원 인가 방식 등)이 고려되지 않은 채로 컴퓨터, 영상/오디오 가전 기기 등과 같은 시스템 자원이 풍부(예; 대용량의 메모리, 고속의 CPU, 고정 외부 전원 인가 방식 등)한 장치에서 사용되던 버퍼링 기법이 그대로 적용되고 있는 형편이다.
한편, 종래 방식에 따른 휴대형 멀티미디어 재생기에서 저장모듈의 여러 영역에 산재되어 있는 멀티미디어 파일 관리를 용이하게 하기 위해서 컴퓨터에 적용된 파일 시스템 구조(예; 멀티미디어 파일명, 저장 폴더 명시 등)에 기반한 버퍼링 기법을 일부 휴대형 멀티미디어 재생기에 적용하고자 하는 시도가 있다.
즉, 상기와 같은 종래 방식의 버퍼링 기법은 멀티미디어 재생 리스트(예; " 윈앰프의 m3u 파일" 등)를 통하여 버퍼링할 멀티미디어 파일 정보 및 그 재생 순서를 결정하며, 멀티미디어 재생 리스트에 따라 하나의 음악, 즉 하나의 멀티미디어 파일을 버퍼링하여 해당 음악을 재생하고 나서 사전에 설정된 음악과 음악간의 소정 지연 시간동안 이후의 또 다른 음악을 버퍼링하여 다음 음악을 재생하는 방식을 취하고 있다.
그런데, 상기와 같은 종래 방식의 버퍼링 기법은 하나의 멀티미디어 파일에 대해 데이터 단위로 버퍼링을 수행하며, 하나의 멀티미디어 파일 재생이 끝난 후 다음 재생할 멀티미디어 파일 정보를 획득하고 나서 재생 준비를 위한 음악과 음악간의 소정 지연 시간동안 버퍼링을 수행하기 때문에 사용자에게 끊김없는 음악을 제공할 수 없는 문제점이 있다.
또한, 상기와 같은 종래 방식의 버퍼링 기법은 하나의 멀티미디어 파일에 대해 데이터 단위로 버퍼링을 수행한 후에 버퍼링했던 소정 데이터를 삭제(클리어)하기 때문에 사용자 또는 시스템으로부터의 재생모드 전환 요청에 즉시 대응할 수 없기 때문에 멀티미디어 재생 지연이 발생된다.
예를 들어, 멀티미디어 파일들을 멀티미디어 재생 리스트의 순서에 따라 재생하는 중에 현재 시점부터 이전 시점으로의 멀티미디어 파일 후진 재생 요청신호가 입력되거나 이전 시점에 재생되었던 특정 멀티미디어 파일 재생 요청신호가 입력되거나 현재 시점부터 이후 시점으로의 멀티미디어 파일 전진 재생 요청신호가 입력되거나 이후 시점에 재생될 특정 멀티미디어 파일 재생 요청신호가 입력되면 현재 재생을 중단하고 나서 해당 멀티미디어 파일을 저장모듈에서 확인한 후에 다 시 읽어와서 버퍼링해야 되므로, 멀티미디어의 재생 지연 및 기기의 전력 소모가 발생되는 문제점이 있다.
본 발명은, 상기와 같은 문제점을 해결하기 위하여 제안된 것으로, 재생하고자 하는 파일의 구조에 따라 다중 파일 캐싱을 적용하여 저장 모듈의 접근을 최소한 줄이고, 시스템의 원활한 작동을 돕는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 버퍼링으로 인한 멀티미디어의 재생 지연을 없애기 위해 멀티미디어 파일 재생 리스트에 따라 버퍼링 가능한 크기만큼 멀티미디어 파일들을 순서대로 버퍼링하여 멀티미디어 파일들을 재생하는 중에 현재 버퍼링된 파일들의 캐시를 합한 크기가 임계치 이하인 경우에 멀티미디어 파일 재생 리스트 중 기 버퍼링한 멀티미디어 파일들 이외의 멀티미디어 파일들을 순서대로 버퍼링하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법을 제공하는데 그 목적이 있다.
상기의 목적을 달성하기 위한 본 발명은, 링 구조의 버퍼에 현재 시점에 재생되는 포인트를 mUserBP, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트를 mEndBP, 버퍼링 시작 임계치를 mForwardTh로 정의한 상태에서, 멀티미 디어 파일 재생 요청신호가 입력되면 멀티미디어 파일 재생 리스트를 확인하는 제1 단계; 상기 버퍼를 상기 파일의 구조에 따라 다른 일정 개수의 파일 캐시로 나누고 상기 확인한 멀티미디어 파일 재생 리스트에 따라 해당되는 멀티미디어 파일들을 조각 단위로 상기 나뉘어진 캐시에 버퍼링 가능한 크기만큼 각각 순서대로 버퍼링하는 제2 단계; 및 상기 제2 단계에서 버퍼링한 멀티미디어 파일들을 재생하는 중에 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)가 상기 mForwardTh보다 작아지면 상기 멀티미디어 파일 재생 리스트 중 상기 제 2 단계에서 버퍼링한 멀티미디어 파일들 이외의 멀티미디어 파일에 대하여 상기 제2 단계를 수행하는 제3 단계를 포함한다.
이하 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명이 적용되는 휴대형 멀티미디어 재생기에 대한 일실시예 구성도이다.
도 1에 도시된 바와 같이, 본 발명이 적용되는 휴대형 멀티미디어 재생기는 멀티미디어 파일(예; 동영상 파일, 오디오 파일 등)이 저장되어 있는 비휘발성 저장매체 형태의 저장모듈(10)과 멀티미디어 파일 재생을 위해 저장모듈(10)에 저장되어 있는 멀티미디어 파일이 복사되어 일시 저장되는 휘발성 메모리 형태의 버퍼(11) 및 버퍼(11)에 일시 저장되어 있는 멀티미디어 파일을 재생하는 멀티미디어 재생모듈(12)을 포함한다.
또한, 상기 휴대형 멀티미디어 재생기는 도면에 도시되어 있지는 않으나 멀티미디어 재생모듈(12)에서 재생한 영상신호를 표시하기 위한 디스플레이부, 멀티미디어 재생모듈(12)에서 재생한 오디오신호를 출력하기 위한 스피커, 멀티미디어 재생모듈(12)로 전진 재생 요청신호, 고배속(예; 2배속, 4배속 등) 전진 재생 요청신호, 후진 재생 요청신호, 고배속(예; 2배속, 4배속 등) 후진 재생 요청신호, 이전 시점에 재생되었던 특정 멀티미디어 파일 재생 요청신호, 이후 시점에 재생될 특정 멀티미디어 파일 재생 요청신호 등을 입력하기 위한 키 입력부, 휴대형 멀티미디어 재생기 각 구성 요소로 전원을 공급하기 위한 배터리 등을 포함하며, 이외에도 멀티미디어 재생을 위한 기본적인 구성 요소를 더 포함한다.
한편, 본 발명에서 멀티미디어 재생모듈(12)은 휴대형 멀티미디어 재생기의 각 구성 요소를 제어할 수 있는 제어 기능이 탑재되어 있으며, 멀티미디어 칩(Multimedia Chip)이라고 불리우는 칩셋 형태로 구현되는 것이 바람직하다.
도 2는 본 발명이 적용되는 링 구조의 버퍼에 대한 일실시예 설명도이다.
본 발명이 적용되는 링(ring) 구조의 버퍼(11)는 환형 구조로 구현되며, 버퍼(11)의 End 영역까지 데이터가 채워지면 다음의 데이터가 Start 영역부터 다시 채워진다.
도 2에 도시된 바와 같이, Start는 버퍼(11)를 구성하는 메모리의 시작 주소이고, End는 버퍼(11)를 구성하는 메모리의 한계 지점 주소이고, mUserBP는 현재 시점에 재생되는 포인트, 즉 현재 멀티미디어 재생모듈(12)에서 사용되는 파일 캐시를 나타내고, mEndBP는 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트, 즉 멀티미디어 재생모듈(12)에서 미리 읽어내는 파일 캐시를 나타내고, 재생될 데이터가 남아있는 영역(mUserBP ~ mEndBP; mRemainSize)(200)은 버퍼링 시작을 위한 매개변수로 이용되어 기 설정된 버퍼링 시작 임계치인 mForwardTh보다 작은 경우에 버퍼링이 재개된다.
여기서, 멀티미디어 파일을 버퍼링하는데 이용되는 자료 구조(data structure)를 파일 캐시(file cache)라고 한다.
또한, 기 설정된 버퍼링 시작 임계치인 mForwardTh는 음악이 끊기질 않을 정도의 데이터 크기에 상응하는 버퍼링 여유 용량으로 설정되는 것이 바람직하다.
즉, 상기 mUserBP부터 mEndBP의 크기는 재생될 데이터가 남아있는 영역인데, 이 영역이 mForwardTh보다 작으면, 휴대형 멀티미디어 재생기는 이미 재생된 파일 캐시를 정리하고, 새로운 링 버퍼의 공간을 만들어 다음 파일을 캐시한다.
도 3은 본 발명이 적용되는 파일과 파일 캐시간의 관계에 대한 일실시예 설 명도이다.
도 3에서는 하나의 파일을 이루는 특정 데이터 일부가 버퍼(11)에 버퍼링된 상태에 대해서 도시하였으나, 본 발명에서는 다수의 파일, 즉 특정 파일을 이루는 모든 데이터 및 타 특정 파일을 이루는 특정 데이터 일부가 버퍼(11)에 버퍼링되는 것이 바람직하다.
본 발명에서는 파일 시스템 구조에 기반하여 멀티미디어 파일을 버퍼링한다(일명 파일 에뮬레이션).
저장모듈(10)에 저장되어 있는 멀티미디어 파일을 읽기 위해서는 멀티미디어 파일의 어느 부분부터 읽을 것인지에 대한 정보, 즉 파일 포인터(file pointer) 및 파일 크기 및 기존의 파일 입출력 관련 함수(file API)와 동일한 프로세스 처리가 이루어져야 된다.
멀티미디어 재생모듈(12), 특히 멀티미디어 재생 프로세스(어플리케이션)는 버퍼(11)에 버퍼링된 데이터의 위치값을 매개변수로 하여 멀티미디어 파일의 특정 데이터를 읽어서 재생하는 것이 아니라 선형적인 구조를 갖는 멀티미디어 파일로부터 특정 데이터를 읽어서 재생, 즉 파일 포인터를 매개변수로 하여 멀티미디어 파일로부터 특정 데이터를 읽어서 재생하는 과정을 거치므로, 사용자가 버퍼(11)의 순환 구조를 인식할 필요없이 파일을 다루듯이 해당 멀티미디어 파일을 재생시킬 수 있도록 할 수 있다.
즉, 버퍼(11)에는 현재 버퍼링 중인 멀티미디어 파일에 대한 정보가 기록되어 있으며, 멀티미디어 재생모듈(12)이 이러한 기록 정보를 이용하여 멀티미디어 파일을 저장모듈(10)로부터 직접 읽어서 재생하는 것과 같은 동일한 프로세스 처리를 할 수 있다.
도 3에 도시된 바와 같이, A 영역은 현재 재생되고 있는 멀티미디어 파일의 데이터부터 이후에 재생될 미래의 일부 데이터를 나타내고, B 영역은 현재 재생되고 있는 멀티미디어 파일의 데이터부터 이전에 재생된 과거의 일부 데이터를 나타낸다.
A와 B 영역을 합친 영역이 버퍼링되고 있는 하나의 멀티미디어 파일의 일부 또는 다수의 멀티미디어 파일을 나타낸다.
그리고, mMAXBufferSize는 버퍼(11)의 크기를 나타내며, 버퍼(11)의 크기는 파일 포인터 시작(StartFP) 부분부터 파일 포인터 끝(mEndFP) 부분까지의 크기와 동일하며, 현재 시점을 기준으로 파일 포인터 시작부분부터 파일 포인터 끝 부분까지의 데이터가 버퍼(11)에 버퍼링되어 있음을 알 수 있다.
그리고, mUserBP는 현재 재생되고 있는 부분, 즉 사용자가 읽는(시청하는) 부분을 나타내고, 파일 시스템 상의 파일 포인터의 위치를 버퍼(11)에서의 위치로 매핑된 정보를 의미하며, mEndBP는 현재 재생되고 있는 부분부터 미래에 재생될 데이터의 끝을 나타내며, 파일 캐시가 커버할 수 있는 파일의 영역은 mStartBP ~ mEndBP까지의 데이터이다.
그리고, 파일 캐시는 버퍼링 영역의 시작과 끝을 갖고 있으며, 저장모듈(10)로부터 데이터를 복사하는 방향성(Forward Direction 또는 Backward Direction)을 갖는다. 여기서, Forward Direction 방향성을 갖는 경우에는 멀티미디어 파일이 전 진 재생되는 경우를 의미하고, Backward Direction 방향성을 갖는 경우에는 멀티미디어 파일의 후진 재생되는 경우를 의미한다.
도 1 내지 도 3을 참조하여 전술한 바와 같이, 링 구조의 버퍼(11)에 현재 시점에 재생되는 포인트를 mUserBP, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트를 mEndBP, 버퍼링 시작 임계치를 mForwardTh로 정의할 수 있다.
도 4는 본 발명에 따른 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법에 대한 일실시예 흐름도이며, 도 5a 및 도 5b는 본 발명이 적용되는 한 파일에 대한 다중 파일 캐싱에 대한 일실시예 설명도, 도 6은 본 발명이 적용되는 파일 조각 단위의 버퍼링 방법에 대한 일실시예 흐름도, 도 7a 및 도 7b는 본 발명이 적용된 멀티미디어 파일이 버퍼링되는 버퍼의 상태에 대한 일실시예 설명도이며, 도 8은 본 발명이 적용된 버퍼로의 멀티미디어 파일 조각 복사에 대한 일실시예 설명도이며, 도 9는 본 발명이 적용된 버퍼 포인트의 위치 교환에 대한 일실시예 설명도이다.
도 4를 참조하면, 휴대형 멀티미디어 재생기는 사용자에 의해 멀티미디어 파일 재생 요청신호가 입력되면(S400), 멀티미디어 파일 재생 리스트를 확인한다(S401). 즉, 상기 사용자는 감상하고자 하는 멀티미디어 파일을 선곡하기 위해 멀 티미디어 파일 재생 리스트를 불러와서 해당 멀티미디어 파일을 선택하고 그 멀티미디어 파일의 재생을 요청하게 된다.
그러면, 상기 휴대형 멀티미디어 재생기는 상기 사용자가 불러온 멀티미디어 파일 재생 리스트를 확인하여 멀티미디어 파일명, 멀티미디어 파일 크기 및 멀티미디어 파일 속성(예; MP3 형식, WMA 형식, 가수명, 장르 등) 등을 파악하고 나서 멀티미디어 파일 재생 순서를 확인한다.
그리고 나서, 상기 휴대형 멀티미디어 재생기는 버퍼를 해당 파일의 구조에 따라 다른 일정 개수의 파일 캐시로 나누고 상기 확인한 멀티미디어 파일 재생 리스트에 따라 해당되는 멀티미디어 파일들을 조각 단위로 상기 나뉘어진 캐시에 버퍼링 가능한 크기만큼 각각 순서대로 버퍼링한다(S402).
예를 들어, 해당 파일이 싱글 파일이면, 상기 휴대형 멀티미디어 재생기는 도 5a와 같이 상기 버퍼를 하나의 캐시로 간주하여 상기 확인한 멀티미디어 파일 재생 리스트에 따라 해당하는 멀티미디어 파일들을 조각 단위로 상기 캐시에 버퍼링 가능한 크기만큼 각각 순서대로 버퍼링한다.
도 5a를 참조하면, 초기에 멀티미디어 파일 재생 리스트 중 재생 순서 1번을 갖는 "1.MP3" 파일을 이루는 모든 데이터를 버퍼에 버퍼링한 상태에서는 현재 시점에 재생되는 포인트인 mUserBP, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트인 mEndBP가 동일한 파일, 즉 "1.MP3" 파일을 가르키고 있다.
이후에 버퍼의 저장 용량이 타 멀티미디어 파일을 버퍼링할 정도로 충분하므로, 도 5a의 하측에 도시된 바와 같이, 멀티미디어 파일 재생 리스트에 따라 재생 순서 2번, 재생 순서 3번, 재생 순서 4번을 갖는 "2.WMA" 파일을 이루는 모든 데이터, "3.MP3" 파일을 이루는 모든 데이터 및 "4.WMA" 파일을 이루는 일부 데이터를 순서대로 버퍼링한다.
만약, 해당 파일이 인덱스 정보가 필수적인 멀티미디어 파일이면, 상기 휴대형 멀티미디어 재생기는 상기 버퍼를 데이터 영역 캐시와 인덱스 영역 캐시로 나누고 상기 확인한 멀티미디어 파일 재생 리스트에 따라 해당되는 멀티미디어 파일들을 일정 크기의 조각 단위로 상기 나뉘어진 캐시에 버퍼링 가능한 크기만큼 각각 순서대로 버퍼링한다.
이 때, 멀티미디어 재생 프로세스(어플리케이션), 특히 멀티미디어 파일 재생 리스트를 통하여 다음에 재생(연주)할 멀티미디어 파일의 정보를 얻고 이 멀티미디어 파일을 파일 캐시를 이용하여 버퍼(11)에 등록하고 나서 이 등록한 멀티미디어 파일들을 버퍼링 가능한 크기만큼 버퍼(11)에 순서대로 버퍼링하고, 버퍼링 시작한 멀티미디어 파일을 이루는 모든 데이터가 버퍼(11)에 복사되면 현재 어플리케이션에 의해 사용되는 파일 캐시를 제외한 나머지 영역이 채워질 때까지 다른 멀티미디어 파일을 이루는 데이터 버퍼링 과정을 반복적으로 수행한다.
그럼으로 해서, 사용자가 요구하는 파일이 버퍼안에 이미 캐시되어 있기 때문에 멀티미디어 재생 모듈은 저장 모듈에서 해당 파일을 다시 잃어오지 않고 버퍼안의 데이터를 넘겨준다.
이런 경우는 요구한 파일이 버퍼안에 존재하는 경우지만 버퍼안에 존재하지 않는 파일을 요구한다면 이를 캐시 미스(cache miss)라고 하며 링 버퍼의 내용을 모두 지우고 사용자가 원하는 파일을 처음으로 해서 다시 캐싱 작업을 수행해야한다.
즉, 인덱스 정보가 필수적인 멀티미디어 데이터를 재생하기 위해서는 파일뒤의 인덱스 정보가 필수적이기 때문에 인덱스에 대한 접근이 필수적이다. 하지만 버퍼의 크기는 전체 파일 크기에 비해 그 크기가 작기 때문에 멀티미디어 데이터를 접근할 때 캐시 미스가 일어나고 다시 인덱스를 접근할때 캐시 미스가 발생한다. 캐시 미스가 반복되는 경우 시스템의 정상 동작을 기대하기는 어렵고 재생하는 곡은 음이 끊기는 현상이 나타난다.
이런 경우를 위해 도 5b 및 도 5c와 같이 한 파일에 대하여 다중 파일 캐시를 할당한다.
먼저, 오디오 파일에 다중 파일 캐시를 할당하는 것에 대하여 도 5b를 참조하여 설명하기로 한다.
도 5b를 참조하면, 저장모듈에 저장된 오디오 파일(오디오 데이터와 인덱스)을 두번 오픈해서 오디오 데이터에 캐시를 할당하고 인덱스에 캐시를 할당한다.
그러면, 버퍼는 현재 두개의 파일 캐시가 설정되어 있고, 하나는 오디오 데이터의 일부를 캐시하고, 다른 하나는 인덱스의 일부를 캐시하고 있다.
즉, 저장모듈에 저장된 오디오 파일을 버퍼링함에 있어서, 버퍼에 두개의 캐시를 할당하여 제1 캐시(500)에는 오디오 데이터를 저장하고, 제2 캐시(510)에는 인덱스(512)를 저장한다. 이때, 제1 캐시(500)와 제2 캐시(510)로 나뉘어져 할당된 영역은 서로 독립적으로 버퍼를 구성한다.
상기와 같이 하나의 파일에 대해 두개의 캐시를 할당함으로써 캐시 미스의 반복 현상이 일어나지 않으며, 파일 크기보다 작은 링버퍼에서 저장 모듈 자원을 효율적으로 다룰수 있다.
다음으로 오디오 데이터와 비디오 데이터가 혼합된 멀티미디어 파일에 다중 파일 캐시를 할당하는 것에 대하여 도 5c를 참조하여 설명하기로 한다.
도 5c를 참조하면, 동영상과 같은 멀티미디어 파일은 오디오 데이터에 대한 인덱스1, 비디오 데이터에 대한 인덱스2로 이루어져있다.
따라서, 휴대형 멀티미디어 재생기가 동영상 파일을 재생하기 위해서는 인덱스1과 인덱스2의 접근이 필수적이기 때문에 다중 파일 캐시를 사용하지 않고서는 빈번한 저장모듈의 접근이 예상되기 때문에 도 5b에서의 확장으로 파일 캐시를 하나 더 할당한다.
즉, 버퍼에는 3개의 캐시가 설정되어 있고, 제1 캐시(550)는 멀티미디어 데이터의 일부를 저장하고, 제2 캐시(560)는 인덱스1의 일부를 저장하고, 제3 캐시(570)는 인덱스2의 일부를 저장한다. 즉, 링버퍼는 저장 모듈에 저장된 멀티미디어 데이터에 대하여 버퍼링 가능한 크기만큼 제1 캐시(550)에 저장, 상기 제1 캐시(550)에 저장된 오디오 데이터에 해당하는 인덱스1을 제2 캐시(560)에 저장, 상기 제1 캐시(550)에 저장된 비디오 데이터에 해당하는 인덱스2를 제3 캐시(570)에 저장한다.
상기와 같은 다중 파일 캐싱은 저장 모듈의 접근을 최소한 줄이는 효과적인 캐시 관리에 있으며 여러 파일을 다중 파일 캐시하는 것과 재생하고자 하는 파일 구조에 따라 멀티 파일 캐싱을 적용시킴으로써 시스템의 원활한 작동을 돕는다.
다시 도 4의 단계 402에서 연속된 멀티미디어 파일을 버퍼링 가능한 크기만큼 버퍼(11)에 순서대로 버퍼링하는 방법에 대하여 도 6을 참조하여 상세히 설명하기로 한다.
도 6을 참조하면, 휴대형 멀티미디어 재생기는 임의의 멀티미디어 파일이 캐싱중인지를 판단한다(S600).
단계 600의 판단결과 임의의 파일이 캐싱중이면, 상기 휴대형 멀티미디어 재생기는 버퍼에 해당 파일을 복사하고(S601), 상기 파일의 캐싱이 종료되었는지를 판단한다(S602).
단계 602의 판단결과 상기 파일의 캐싱이 종료되었으면, 상기 휴대형 멀티미디어 재생기는 해당 파일에 대하여 전체가 캐싱되었는지를 판단한다(S603).
단계 603의 판단결과 해당 파일에 대하여 전체가 캐싱되었으면 해당 파일의 전체가 캐싱되었음을 표시한다(S604).
만약, 단계 603의 판단결과 해당 파일에 대하여 전체가 캐싱되지 않았으면, 해당 파일의 부분이 캐싱되었음을 표시한다(S605).
즉, 모든 파일이 버퍼에 복사된 상태라면, 'full'로 표시하고, 대상 파일이 너무 커서 상기 버퍼안에 담을수 없는 경우에 파일의 일부분이 캐싱되었다면 'a part of file'를 표시한다.
만약, 단계 602의 판단결과 해당 파일의 캐싱이 종료되지 않았으면, 상기 휴대형 멀티미디어 재생기는 상기 버퍼에 공간이 존재하는지를 판단한다(S606).
단계 606의 판단결과 상기 버퍼에 공간이 존재하면, 상기 휴대형 멀티미디어 재생기는 단계 601부터 수행하고, 상기 버퍼에 공간이 존재하지 않으면, 단계 605를 수행한다.
만약, 단계 600의 판단결과 현재 파일 캐싱중이 아니면, 상기 휴대형 멀티미디어 재생기는 버퍼에 공간이 존재하는지를 판단한다(S607).
단계 607의 판단결과 버퍼에 공간이 존재하면, 상기 휴대형 멀티미디어 재생기는 저장 모듈에서 다음에 캐시할 파일 정보를 읽는다(S608).
그런다음 상기 휴대형 멀티미디어 재생기는 상기 읽은 파일이 상기 버퍼에 존재하는 파일인지를 판단한다(S609).
단계 609의 판단결과 상기 읽은 파일이 상기 버퍼에 존재하는 파일이면, 상기 휴대형 멀티미디어 재생기는 단계 608을 수행한다.
만약, 단계 609의 판단결과 상기 읽은 파일이 상기 버퍼에 존재하는 파일이 아니면, 상기 휴대형 멀티미디어 재생기는 상기 버퍼에 공간을 할당하여 해당 파일을 복사하고(S610), 단계 602부터 수행한다.
상기와 같이 현재 캐시의 자료 구조가 'full' 또는 'a part of file'일 경우 다음에 캐시할 파일의 정보를 얻어 캐싱할 준비를 한다. 하지만 느린 저장 장치의 접근을 최소화한다는 목적을 생각한다면 처음 시작시 링 버퍼를 모두 채우고 링 버퍼에서 마지막으로 캐싱 된 파일이 현재 재생중이고 그 재생중인 파일의 크기가 임계값보다 작으면 이전에 버퍼링한 멀티미디어 파일에서 현재 재생하는 버퍼의 일부를 남겨두고 이전에 버퍼링한 파일 이외의 파일을 버퍼링 가능한 크기만큼 순서대 로 다시 버퍼링한다.
상기 도 6에 대한 설명을 도 7a의 상태도를 이용하여 설명하기로 한다.
도 7a의 상측에 도시된 바와 같이, 초기에 멀티미디어 파일 재생 리스트 중 재생 순서 1번을 갖는 "1.MP3" 파일을 이루는 모든 데이터를 버퍼(11)에 버퍼링한 상태에서는 현재 시점에 재생되는 포인트인 mUserBP, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트인 mEndBP가 동일한 파일, 즉 "1.MP3" 파일을 가르키고 있다.
이후에 버퍼(11)의 저장 용량이 타 멀티미디어 파일을 버퍼링할 정도로 충분하므로, 도 7a의 하측에 도시된 바와 같이, 멀티미디어 파일 재생 리스트에 따라 재생 순서 2번, 재생 순서 3번, 재생 순서 4번을 갖는 "2.WMA" 파일을 이루는 모든 데이터, "3.MP3" 파일을 이루는 모든 데이터 및 "4.WMA" 파일을 이루는 일부 데이터를 순서대로 버퍼링한다.
여기서, "4.WMA" 파일을 이루는 일부 데이터를 버퍼(11)에 버퍼링한 상태에서는 현재 시점에 재생되는 포인트인 mUserBP가 "1.MP3" 파일을 가르키고 있으며, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트인 mEndBP가 "4.WMA" 파일을 가르키고 있다.
한편, 버퍼(11)에는 "4.WMA" 파일을 이루는 모든 데이터를 저장할만큼의 용량이 존재하지 않으므로 "4.WMA" 파일을 이루는 일부 데이터만을 버퍼링한다. 즉, 도 7a에서 "FULL"은 멀티미디어 파일을 이루는 모든 데이터를 의미하며, "A part of file"은 멀티미디어 파일을 이루는 일부 데이터를 의미한다.
한편, 상기 단계 402에서의 버퍼링 과정 및 후술할 단계 405에서의 버퍼링 과정에서는 특정 멀티미디어 파일에 대한 파일 포인터(File Pointer)가 지시하는 멀티미디어 파일의 특정 부분을 조각 복사하여 버퍼링한다. 여기서, 멀티미디어 파일의 특정 부분을 순차적으로 조각 복사하는 과정에 대해서 도 8을 참조하여 상세히 설명하기로 한다.
일반적으로, 버퍼(11)에 복사 가능한 만큼의 데이터 모두를 한꺼번에 복사하는 동안에 사용자 또는 시스템으로부터 요구, 즉 재생모드 전환 요청, 랜덤한 멀티미디어 파일 선곡 및 재생 요청, 전원 오프(OFF) 이벤트 발생 등이 발생되면 현재 진행 중인 버퍼링 과정을 모두 끝마친 뒤에야 해당 요청 사항을 처리하기 때문에 사용자가 지연된 처리 결과를 반환받고 있다.
본 발명에서는 도 8과 같이 버퍼링 단위를 멀티미디어 파일 조각 단위로 하여 한 번에 적당한 크기의 데이터를 버퍼(11)에 버퍼링시키고 매 버퍼링 순간마다 사용자 또는 시스템으로부터 특정 요청 사항이 발생되는지를 감지하여 처리 시간 지연없이 바로 해당 요청 사항을 처리할 수 있도록 한다.
다시 도 4를 참조하면, 단계 402에서 버퍼(11)에 버퍼링한 멀티미디어 파일들을 재생하는 중에는 별다른 버퍼링을 수행하지 않으며, 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)의 변화를 지속적으로 감지한다(S403).
그러면서, 상기 휴대형 멀티미디어 재생기는 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)가 상기 mForwardTh보다 작아지는지를 판단한다(S404).
단계 404의 판단결과, 상기 mUserBP부터 상기 mEndBP까지의 크기 (mRemainSize)가 상기 mForwardTh보다 작아지면, 상기 휴대형 멀티미디어 재생기는 상기 멀티미디어 파일 재생 리스트 중 단계 402에서 버퍼링한 멀티미디어 파일들 이외의 멀티미디어 파일들을 버퍼링 가능한 크기만큼 상기 버퍼(11)에 순서대로 버퍼링한다(405). 즉, 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)가 상기 mForwardTh보다 작아지면, 상기 휴대형 멀티미대어 재생기는 이전에 버퍼링한 멀티미디어 파일에서 현재 재생하는 버퍼의 일부를 남겨두고 이전에 버퍼링한 멀티미디어 파일을 버퍼링 가능한 크기만큼 순서대로 버퍼링한다. 상기 버퍼링하는 방법은 도 6에서 상세히 설명하였으므로 그 설명은 생략한다.
단계 405가 수행되는 중에도 멀티미디어 파일에 대한 재생을 계속 수행 중인 상태이며, 상기 단계 405에서 버퍼링한 멀티미디어 파일을 이전 곡에 이어서 끊김없이 재생한다.
이 때, 버퍼(11)의 상태, 즉 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)의 변화(특히 mUserBP의 위치 변화)를 감지하고 있다가 현재 버퍼링된 파일들의 캐시를 합한 크기가 임계치 이하인 경우, 즉 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)가 상기 mForwardTh보다 작아지는 경우에는 다음에 재생(연주)할 멀티미디어 파일의 정보를 얻고 이 멀티미디어 파일을 파일 캐시를 이용하여 버퍼(11)에 등록하고 나서 이 등록한 멀티미디어 파일들을 버퍼링 가능한 크기만큼 버퍼(11)에 순서대로 버퍼링한다.
도 7b에는 본 발명이 적용된 임계치 비교를 통해 다음에 재생될 멀티미디어 파일이 버퍼링되는 버퍼의 상태에 대해 도시되어 있다.
도 7b의 상측에는 도 7a에 도시된 버퍼(11)의 상태에서 "2.WMA" 파일이 재생되고 있는 버퍼(11)의 천이 상태를 나타내며, 도 7b의 가운데측에는 도 7b의 상측에 도시된 버퍼(11)의 상태에서 일정 시간이 경과하여 "4.WMA" 파일이 재생되고 있는 버퍼(11)의 천이 상태를 나타낸다.
도 7b의 가운데측에 도시된 바와 같이, 현재 시점에 재생되는 포인트인 mUserBP가 "4.WMA" 파일을 가르키고 있으며, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트인 mEndBP가 "4.WMA" 파일을 가르키고 있으며, 이러한 경우에는 mUserBP 및 mEndBP가 동일한 "4,WMA" 파일을 가르키고 있는 바 두 개의 파일 캐시가 겹쳐진 경우에는 미래에 재생(연주)할 멀티미디어 파일이 버퍼링되어 있지 않으므로, 도 7b의 하측에 도시된 바와 같이 다음에 재생이 예상되는 멀티미디어 파일을 멀티미디어 파일 재생 리스트에 따라 4.WMA를 이루는 일부 데이터, 5.MP3 파일을 이루는 모든 데이터, "6.MP3" 파일을 이루는 일부 데이터를 순서대로 버퍼링한다.
상기와 같이 파일이 재생되는 동안 휴대형 멀티미디어 재생기는 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)의 변화를 지속적으로 감지하고 있다가, 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)가 상기 mForwardTh보다 작아지면, 도 7b의 하측과 같이 현재 재생되고 있는 파일을 제외하고 이전에 버퍼링된 파일들 이외의 멀티미디어 파일들을 버퍼링 가능한 크기만큼 상기 버퍼에 순서대로 버퍼링한다. 이 때에도 멀티미디어 파일에 대한 재생을 계속 수행 중인 상태이며, 상기 버퍼링한 멀티미디어 파일을 이전 곡에 이어서 끊김없이 재생한다.
이 때, 버퍼의 상태, 즉 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)의 변화(특히 mUserBP의 위치 변화)를 감지하고 있다가 현재 버퍼링된 파일들의 캐시를 합한 크기가 임계치 이하인 경우, 즉 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)가 상기 mForwardTh보다 작아지는 경우에는 다음에 재생(연주)할 멀티미디어 파일의 정보를 얻고 이 멀티미디어 파일을 파일 캐시를 이용하여 버퍼에 등록하고 나서 이 등록한 멀티미디어 파일들을 버퍼링 가능한 크기만큼 버퍼에 순서대로 버퍼링한다.
도 7b의 하측에 도시된 바와 같이, 버퍼링 된 이후의 버퍼의 상태에서 mUserBP가 "4.WMA" 파일을 가르키고 있으며, 상기 버퍼에는 상기 "4.WMA"의 나머지 파일 "4.WMA(A part of file)", 5.MP3, 6.MP3 파일이 순차적으로 버퍼링된다.
그러므로, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트인 mEndBP는 "6.MP3" 파일을 가르키고 있다.
즉, 4.WMA(A part of file) 파일 캐시는 같은 파일이 링 버퍼이기 때문에 다시 start부터 복사된다. 이전에 재생된 파일들의 영역에 새로운 파일들이 캐시되어 있고, 4.WMA(A part of file)의 크기도 재조정으로 이전에 재생된 부분을 포기하고 앞으로 재생할 데이터를 채워 넣는다.
이처럼 한번 캐시하는 데이터를 읽어 들이는 순간에만 느린 저장모듈에서 읽어 들이기 때문에 캐시한 데이터가 남아있는 동안은 데이터를 저장모듈에서 읽어들이지 않는다. 이러한 캐시 작업은 OS를 이용해서 백그라운드 태스크 처리로 수행되 는 것이 유리하며 저장모듈을 사용하지 않는 동안에는 OS의 스케줄러 기능을 이용해 재생하는데 더 많은 CPU 자원을 할당함으로써 전체 수행 시간을 향상시켜 준다.
한편, 본 발명에서는 전술한 과정에 의해 버퍼(11)에 다수의 멀티미디어 파일을 버퍼링한 상태에서 멀티미디어 재생 리스트의 순서에 따라 재생하는 중에 현재 시점부터 이전 시점으로의 멀티미디어 파일 후진 재생 요청신호가 입력되거나 이전 시점에 재생되었던 특정 멀티미디어 파일 재생 요청신호가 입력되거나 현재 시점부터 이후 시점으로의 멀티미디어 파일 전진 재생 요청신호가 입력되거나 이후 시점에 재생될 특정 멀티미디어 파일 재생 요청신호가 입력되면 상기 mUserBP를 해당되는 멀티미디어 파일이 버퍼링된 버퍼 포인트로 설정(버퍼 포인트의 위치 교환)하여 재생을 시작함으로써, 저장모듈(10)에서 멀티미디어 파일을 읽어서 복사할 필요가 없으며, 그에 따라 버퍼링 접근 회수를 줄일 수 있다.
즉, 도 9의 상측에 도시된 바와 같이, 버퍼(11)에 현재 시점에 재생되는 포인트인 mUserBP가 "3.MP3" 파일을 가르키고 있으며, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트인 mEndBP가 "4.WMA" 파일을 가르키고 있는 상태에서 사용자로부터 이전에 재생되었던 "1.MP3" 파일 재생 요청이 있는 경우에는 도 9의 하측에 도시된 바와 같이, 현재 시점에 재생되는 포인트인 mUserBP를 "1.MP3"로 위치 교환만을 하고 나서 이 "1.MP3" 파일부터 재생을 시작하면 되기 때문에 별도의 버퍼링 과정을 수행하지 않아도 된다.
한편, 상기 mUserBP를 해당되는 멀티미디어 파일이 버퍼링된 버퍼 포인트로 설정하는 과정에서, 상기 해당되는 멀티미디어 파일이 버퍼(11)에 버퍼링되어 있지 않으면 상기 버퍼(11)를 초기화시킨 후에 해당 멀티미디어 파일을 버퍼링하는 것이 바람직하다.
이상 본 발명의 내용이 실시예를 들어 설명되었으나, 본 발명의 실시예는 본 발명의 예시에 불과하며 본 발명의 범위를 제한하는 것으로 해석되어서는 안 된다. 본 발명이 속하는 분야의 기술자는 본원의 특허청구범위에 기재된 원리 및 범위 내에서 본 발명을 여러 가지 형태로 변형 또는 변경할 수 있다.
상기와 같은 본 발명에 따르면, 파일 포인터를 이용하여 멀티미디어 파일의 특정 조각을 읽어서 복사하기 때문에 사용자가 링 구조 버퍼의 순환 구조를 인식할 필요없이 파일을 다루듯이 간편하게 해당 멀티미디어 파일을 재생시킬 수 있도록 하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법을 제공할 수 있다.
또한 본 발명에 따르면, 다중 파일 캐싱을 적용함으로써 저장 모듈의 접근을 최소한 줄이고, 여러 파일을 다중 파일 캐시하는 것과 재생하고자 하는 파일 구조에 따라 다중 파일 캐싱을 적용시킴으로써 시스템의 원활한 작동을 돕는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법을 제공할 수 있다.
또한, 본 발명에 따르면, 다중 파일 캐싱으로 효율적인 캐시 관리로 느린 저장 모듈의 빈번한 접근으로 인한 시스템 재생 지연을 방지하고 사용자가 필요로 하 는 데이터를 미리 속도가 빠른 메모리에 복사해두기 때문에 응답 속도가 빨라지는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법을 제공할 수 있다.
또한, 본 발명에 따르면, HDD와 같이 저장 장치의 구동에 많은 전력을 소비하는 기기의 경우 빈번한 구동을 막아주기 때문에 전류소비를 줄일 수 있는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법을 제공할 수 있다.
또한, 본 발명에 따르면, 대용량의 메모리에 하나의 파일이나 데이터의 일부만을 캐시하는 것은 낭비이기 때문에 여러 파일을 캐시하는 것이 유리하여 대용량의 메모리를 캐시로 컨트롤하는데 효과적인 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법을 제공할 수 있다.

Claims (11)

  1. 링(ring) 구조의 버퍼에 데이터를 버퍼링하는 방법에 있어서,
    상기 링 구조의 버퍼에 현재 시점에 재생되는 포인트를 mUserBP, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트를 mEndBP, 버퍼링 시작 임계치를 mForwardTh로 정의한 상태에서,
    멀티미디어 파일 재생 요청신호가 입력되면 멀티미디어 파일 재생 리스트를 확인하는 제1 단계;
    상기 버퍼를 상기 파일의 구조에 따라 다른 일정 개수의 파일 캐시로 나누고 상기 확인한 멀티미디어 파일 재생 리스트에 따라 해당되는 멀티미디어 파일들을 조각 단위로 상기 나뉘어진 캐시에 버퍼링 가능한 크기만큼 각각 순서대로 버퍼링하는 제2 단계; 및
    상기 제2 단계에서 버퍼링한 멀티미디어 파일들을 재생하는 중에 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)가 상기 mForwardTh보다 작아지면 상기 멀티미디어 파일 재생 리스트 중 상기 제 2 단계에서 버퍼링한 멀티미디어 파일들 이외의 멀티미디어 파일에 대하여 상기 제2 단계를 수행하는 제3 단계
    를 포함하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법.
  2. 제 1 항에 있어서,
    상기 버퍼를 상기 파일의 구조에 따라 다른 일정 개수의 파일 캐시로 나누는 것은 상기 파일이 인덱스 정보가 필요없는 싱글 파일이면, 상기 버퍼에 하나의 캐시를 할당하고, 상기 파일이 인덱스 정보가 필수적인 멀티미디어 파일이면, 상기 버퍼를 데이터 영역 캐시와 인덱스 영역 캐시로 나누는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법.
  3. 제2항에 있어서,
    상기 인덱스 정보가 필수적인 멀티미디어 파일이 오디오 파일인 경우, 상기 버퍼를 오디오 데이터 캐시와 인덱스 캐시로 나누고, 상기 파일이 오디오 데이터와 비디오 데이터가 합쳐진 파일인 경우, 멀티미디어 데이터 캐시, 오디오 데이터에 해당하는 인덱스 캐시, 비디오 데이터에 해당하는 인덱스 캐시로 나누는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법.
  4. 제3항에 있어서,
    상기 나뉘어진 캐시는 서로 독립적으로 링버퍼를 구성하는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법.
  5. 제1항에 있어서,
    상기 캐시에 해당 데이터를 버퍼링 가능한 크기만큼 각각 순서대로 버퍼링하는 것은
    제1 파일이 캐싱중이면, 상기 버퍼에 해당 파일을 복사하고, 해당 파일의 캐싱이 종료되면, 해당 파일의 전체가 캐싱되었는지를 판단하는 단계;
    상기 판단결과 해당 파일의 전체가 캐싱되었다면, 해당 파일의 전체가 캐싱되었음을 표시하고, 해당 파일의 전체가 캐싱되지 않았으면, 해당 파일의 부분이 캐싱되었음을 표시하는 단계를 포함하는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법.
  6. 제5항에 있어서,
    상기 제1 파일이 캐싱중이 아니면, 상기 버퍼에 공간이 존재하는지를 판단하는 단계;
    상기 판단결과 상기 버퍼에 공간이 존재하면, 다음에 캐시할 파일 정보를 읽어서 상기 버퍼에 복사하고, 해당 파일의 캐싱이 종료되면, 해당 파일의 전체가 캐 싱되었는지를 판단하는 단계;
    상기 판단결과 해당 파일의 전체가 캐싱되었다면, 해당 파일의 전체가 캐싱되었음을 표시하고, 해당 파일의 전체가 캐싱되지 않았으면, 해당 파일의 부분이 캐싱되었음을 표시하는 단계를 포함하는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법.
  7. 제6항에 있어서,
    상기 버퍼에 해당 파일을 복사하는 것은 상기 멀티미디어 파일에 대한 파일 포인터(File Pointer)를 이용하여 저장모듈에 저장되어 있는 멀티미디어 파일의 특정 조각을 읽어서 복사하는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법.
  8. 제 1항 내지 제7항 중 어느 한 항에 있어서,
    상기 멀티미디어 파일을 파일 조각 단위로 상기 링 구조의 버퍼에 복사하여 버퍼링하면서 매 버퍼링 때마다 사용자 또는 시스템으로부터 특정 요청 사항이 발생되는지를 감지하는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법.
  9. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 제 2 단계 및 상기 제 3 단계는,
    상기 버퍼링한 멀티미디어 파일들을 멀티미디어 재생 리스트의 순서에 따라 재생하는 중에 현재 시점부터 이전 시점으로의 멀티미디어 파일 후진 재생 요청신호가 입력되거나 이전 시점에 재생되었던 특정 멀티미디어 파일 재생 요청신호가 입력되거나 현재 시점부터 이후 시점으로의 멀티미디어 파일 전진 재생 요청신호가 입력되거나 이후 시점에 재생될 특정 멀티미디어 파일 재생 요청신호가 입력되면 상기 mUserBP를 해당되는 멀티미디어 파일이 버퍼링된 버퍼 포인트로 설정하는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법.
  10. 제 9 항에 있어서,
    상기 제 2 단계 및 상기 제 3 단계에서,
    상기 mUserBP를 해당되는 멀티미디어 파일이 버퍼링된 버퍼 포인트로 설정하는 과정에서, 상기 해당되는 멀티미디어 파일이 버퍼링되어 있지 않으면 상기 버퍼를 초기화시킨 후에 해당 멀티미디어 파일을 버퍼링하는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법.
  11. 상기 링 구조의 버퍼에 현재 시점에 재생되는 포인트를 mUserBP, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트를 mEndBP, 버퍼링 시작 임계치를 mForwardTh로 정의한 상태에서,
    멀티미디어 파일 재생 요청신호가 입력되면 멀티미디어 파일 재생 리스트를 확인하는 제1 단계;
    상기 버퍼를 상기 파일의 구조에 따라 다른 일정 개수의 파일 캐시로 나누고 상기 확인한 멀티미디어 파일 재생 리스트에 따라 해당되는 멀티미디어 파일들을 조각 단위로 상기 나뉘어진 캐시에 버퍼링 가능한 크기만큼 각각 순서대로 버퍼링하는 제2 단계; 및
    상기 제2 단계에서 버퍼링한 멀티미디어 파일들을 재생하는 중에 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)가 상기 mForwardTh보다 작아지면 상기 멀티미디어 파일 재생 리스트 중 상기 제 2 단계에서 버퍼링한 멀티미디어 파일들 이외의 멀티미디어 파일에 대하여 상기 제2 단계를 수행하는 제3 단계;
    를 포함하여 구성되는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020050029404A 2004-08-26 2005-04-08 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한리얼타임 멀티미디어 파일 재생 방법 KR100673093B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20040067459 2004-08-26
KR1020040067459 2004-08-26

Publications (2)

Publication Number Publication Date
KR20060046644A KR20060046644A (ko) 2006-05-17
KR100673093B1 true KR100673093B1 (ko) 2007-01-22

Family

ID=37149435

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050029404A KR100673093B1 (ko) 2004-08-26 2005-04-08 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한리얼타임 멀티미디어 파일 재생 방법

Country Status (1)

Country Link
KR (1) KR100673093B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100985617B1 (ko) * 2008-05-20 2010-10-05 주식회사 팬택 캐싱을 이용한 drm 파일 제공 방법 및 시스템

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100734397B1 (ko) * 2005-09-12 2007-07-02 엘지전자 주식회사 멀티미디어 파일을 제공하는 장치 및 그 방법, 그리고 그멀티미디어 파일을 제공받아 재생하는 장치 및 그 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020057813A (ko) * 2001-01-05 2002-07-12 추후제출 액체 및 기체 매체용 열교환기 튜브
KR20040004687A (ko) * 2001-06-04 2004-01-13 이스트만 케미칼 컴파니 방향족 디카복실산의 제조를 위한 2단계 산화 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020057813A (ko) * 2001-01-05 2002-07-12 추후제출 액체 및 기체 매체용 열교환기 튜브
KR20040004687A (ko) * 2001-06-04 2004-01-13 이스트만 케미칼 컴파니 방향족 디카복실산의 제조를 위한 2단계 산화 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
1020020057813
1020040004687

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100985617B1 (ko) * 2008-05-20 2010-10-05 주식회사 팬택 캐싱을 이용한 drm 파일 제공 방법 및 시스템

Also Published As

Publication number Publication date
KR20060046644A (ko) 2006-05-17

Similar Documents

Publication Publication Date Title
US8099548B2 (en) Power efficient media playback on general purpose portable devices
US8892520B2 (en) Storage device including a file system manager for managing multiple storage media
US8627029B2 (en) Methods for managing files according to application
US10572379B2 (en) Data accessing method and data accessing apparatus
CN105637470B (zh) 用于脏数据管理的方法和计算设备
JP5513381B2 (ja) 共有メモリー・プールを利用したデジタル・データ管理
KR20130055566A (ko) 데이터 저장 디바이스에서 사용자 컨텐츠와 보충 컨텐츠의 결합
KR20070024573A (ko) 최적의 성능을 위한 파일 관리 방법
JP4227931B2 (ja) 情報記憶装置、情報格納方法及び情報記憶処理プログラム
JPWO2008013227A1 (ja) 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP4634477B2 (ja) メディア・ファイルの中断のない再生方法
JP4754585B2 (ja) データ配信およびバッファリング
US10073851B2 (en) Fast new file creation cache
KR100673093B1 (ko) 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한리얼타임 멀티미디어 파일 재생 방법
US20060294315A1 (en) Object-based pre-fetching Mechanism for disc drives
US20060206896A1 (en) Allocation class selection for file storage
KR20200053052A (ko) 스토리지 장치 및 스토리지 장치로 전송되는 데이터를 관리하는 전자 장치
KR100458089B1 (ko) 휴대형 멀티미디어 재생기에서 파일 버퍼링 방법
US8565584B2 (en) Editing apparatus and editing method
US20110106861A1 (en) Interface Techniques Providing Contiguous Storage For Files
TWI553462B (zh) 可降低耗電之硬碟裝置以及降低硬碟裝置耗電之方法
US20070091736A1 (en) System and method for storing and managing digital content
US20040130814A1 (en) Data-processing apparatus, data-processing method and program
KR100644714B1 (ko) 디지털 오디오 재생 장치의 버퍼 관리 방법
JP2007293564A (ja) メモリデバイスおよび情報記憶システム

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20121207

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131210

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141218

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151207

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161227

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20171227

Year of fee payment: 12