KR20060046644A - Method for playing the real-time multimedia file using multiple file caching in mobile multimedia player - Google Patents

Method for playing the real-time multimedia file using multiple file caching in mobile multimedia player Download PDF

Info

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

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

Abstract

본 발명은 멀티미디어 파일 재생 요청신호가 입력되면 멀티미디어 파일 재생 리스트를 확인하고, 버퍼를 상기 파일의 구조에 따라 다른 일정 개수의 파일 캐시로 나누고 상기 확인한 멀티미디어 파일 재생 리스트에 따라 해당되는 멀티미디어 파일들을 조각 단위로 상기 나누어진 캐시에 버퍼링 가능한 크기만큼 각각 순서대로 버퍼링하는 것으로서, 다중 파일 캐싱을 적용함으로써 저장 모듈의 접근을 최소한 줄이고, 여러 파일을 다중 파일 캐시하는 것과 재생하고자 하는 파일 구조에 따라 다중 파일 캐싱을 적용시킴으로써 시스템의 원활한 작동을 도울수 있다. The present invention checks the multimedia file play list when the multimedia file play request signal is input, divides the buffer into a predetermined number of file caches according to the structure of the file, and segments corresponding multimedia files according to the checked multimedia file play list. By buffering each of the divided caches in the order of size, the multi-file caching reduces the access of the storage module at least, multi-file caching of multiple files, and multi-file caching according to the file structure to be played. Application can help the system run smoothly.

링 구조 버퍼, 다중 파일 버퍼링, 버퍼링 시작 임계치, 조각 복사 Ring structure buffer, multiple file buffering, buffering start threshold, fragment copy

Description

휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법{Method for playing the real-time multimedia file using multiple file caching in mobile multimedia player}Method for playing the real-time multimedia file using multiple file caching in mobile multimedia player}

도 1은 본 발명이 적용되는 휴대형 멀티미디어 재생기에 대한 일실시예 구성도.1 is a configuration diagram of an embodiment of a portable multimedia player to which the present invention is applied.

도 2는 본 발명이 적용되는 링 구조의 버퍼에 대한 일실시예 설명도.2 is a diagram illustrating an embodiment of a buffer of a ring structure to which the present invention is applied.

도 3은 본 발명이 적용되는 파일과 파일 캐시간의 관계에 대한 일실시예 설명도.3 is a diagram illustrating an embodiment of a relationship between a file and a file cache to which the present invention is applied.

도 4는 본 발명에 따른 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법에 대한 일실시예 흐름도.4 is a flowchart illustrating a method of playing a real-time multimedia file using multiple file caching in a portable multimedia player according to the present invention.

도 5a 내지 도 5c는 본 발명이 적용되는 한 파일에 대한 다중 파일 캐싱에 대한 일실시예 설명도.5A-5C illustrate one embodiment of multiple file caching for a file to which the present invention is applied.

도 6은 본 발명이 적용되는 파일 조각 단위의 버퍼링 방법에 대한 일실시예 흐름도.6 is a flowchart illustrating a method of buffering a file fragment unit to which the present invention is applied.

도 7a 및 도 7b는 본 발명이 적용된 멀티미디어 파일이 버퍼링되는 버퍼의 상태에 대한 일실시예 설명도.7A and 7B are diagrams illustrating an exemplary embodiment of a buffer in which a multimedia file to which the present invention is applied is buffered.

도 8은 본 발명이 적용된 버퍼로의 멀티미디어 파일 조각 복사에 대한 일실시예 설명도.8 is a diagram illustrating an embodiment of copying a multimedia file fragment into a buffer to which the present invention is applied.

도 9는 본 발명이 적용된 버퍼 포인트의 위치 교환에 대한 일실시예 설명도.9 is a diagram illustrating an embodiment of a position exchange of a buffer point to which the present invention is applied.

* 도면의 주요 부분에 대한 부호 설명* Explanation of symbols on the main parts of the drawing

10 : 저장모듈 11 : 버퍼10: storage module 11: buffer

12 : 멀티미디어 재생모듈12: multimedia playback module

본 발명은 버퍼를 파일의 구조에 따라 다중 파일 캐싱을 적용하여 일정 개수의 파일 캐시로 나누어서 각 캐시에 해당 데이터를 버퍼링 가능한 크기만큼 순서대로 버퍼링하여 재생하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법에 관한 것이다. The present invention is a real-time using multi-file caching in a portable multimedia player that divides the buffer into a certain number of file caches by applying a multi-file caching according to the structure of the file and buffers and reproduces the corresponding data in the order of a bufferable size in each cache A method of playing a multimedia file.

최근에 디지털 관련 기술 발전에 힘입어 사용자는 휴대형 멀티미디어 재생기(예; 영상/오디오 재생 기능이 탑재된 이동통신 단말기(휴대폰, PDA 등), 휴대형 MP3 플레이어, 휴대형 동영상 플레이어 등)를 통하여 영화, 음악 등을 감상할 수 있게 되었다.Recently, with the development of digital technology, users can use movies and music through portable multimedia players (e.g., mobile communication terminals (mobile phones, PDAs, etc.), portable MP3 players, portable video players, etc. with video / audio playback functions). You can enjoy it.

한편, 영화 파일, 음악 파일 등과 같은 멀티미디어 파일은 용량이 매우 크기 때문에 휴대형 멀티미디어 재생기에서 재생 시에 소용량의 메모리에 파일을 이루는 모든 데이터가 캐싱되지 못하며, 그에 따라 비휘발성 저장매체 형태의 저장모듈(예; 하드 디스크(HDD), 부정 논리곱(NAND)형 메모리, 멀티미디어 카드(MMC, 컴팩트 플래시형 메모리), SD 메모리 카드(SD Memory Card), USB 플래시 메모리 기기(UFD; USB Flash memory Device) 등에 저장되었다가 재생 시마다 파일의 일부 데이터가 메모리에 캐싱된다.On the other hand, since multimedia files such as movie files and music files are very large, all data constituting files in a small memory cannot be cached when played in a portable multimedia player, and thus a storage module in a nonvolatile storage medium type (eg Storage in hard disk (HDD), NAND-type memory, multimedia card (MMC, compact flash memory), SD memory card, USB flash memory device (UFD) Each time it is played back, some data in the file is cached in memory.

일반적으로, 휴대형 멀티미디어 재생기에서는 메모리에 비해 저속의 저장모듈로부터 대용량 멀티미디어 파일을 직접 읽어 와서 재생하는 것으로 인한 재생 지연 및 반복적인 저장모듈 액세스(access)로 인한 전력 소모를 줄이기 위해 메모리에 버퍼를 구현하여 버퍼링 기법을 사용한다.In general, the portable multimedia player implements a buffer in the memory to reduce the playback delay caused by directly reading and playing a large multimedia file from a slower storage module than the memory and the power consumption due to repeated access to the storage module. Use buffering techniques.

종래 방식에 따른 휴대형 멀티미디어 재생기에는 시스템 특성(예; 저용량의 메모리, 저속의 CPU, 배터리 전원 인가 방식 등)이 고려되지 않은 채로 컴퓨터, 영상/오디오 가전 기기 등과 같은 시스템 자원이 풍부(예; 대용량의 메모리, 고속의 CPU, 고정 외부 전원 인가 방식 등)한 장치에서 사용되던 버퍼링 기법이 그대로 적용되고 있는 형편이다.Conventional portable multimedia players have abundant system resources such as computers, video / audio home appliances, etc. without considering system characteristics (e.g., low memory capacity, low speed CPU, battery powered methods, etc.) Memory, high-speed CPU, fixed external power supply, etc.) is the same buffering technique used in devices.

한편, 종래 방식에 따른 휴대형 멀티미디어 재생기에서 저장모듈의 여러 영역에 산재되어 있는 멀티미디어 파일 관리를 용이하게 하기 위해서 컴퓨터에 적용된 파일 시스템 구조(예; 멀티미디어 파일명, 저장 폴더 명시 등)에 기반한 버퍼링 기법을 일부 휴대형 멀티미디어 재생기에 적용하고자 하는 시도가 있다.Meanwhile, in the portable multimedia player according to the conventional method, some buffering techniques based on a file system structure (eg, multimedia file name, storage folder specification, etc.) applied to a computer are used to facilitate the management of multimedia files scattered in various areas of the storage module. There is an attempt to apply it to a portable multimedia player.

즉, 상기와 같은 종래 방식의 버퍼링 기법은 멀티미디어 재생 리스트(예; " 윈앰프의 m3u 파일" 등)를 통하여 버퍼링할 멀티미디어 파일 정보 및 그 재생 순서를 결정하며, 멀티미디어 재생 리스트에 따라 하나의 음악, 즉 하나의 멀티미디어 파일을 버퍼링하여 해당 음악을 재생하고 나서 사전에 설정된 음악과 음악간의 소정 지연 시간동안 이후의 또 다른 음악을 버퍼링하여 다음 음악을 재생하는 방식을 취하고 있다.That is, the above conventional buffering technique determines multimedia file information to be buffered through a multimedia playlist (for example, "m3u file of Winamp," etc.) and the playback order thereof. After buffering one multimedia file to play the corresponding music, the next music is played by buffering another music after a predetermined delay time between the preset music and the music.

그런데, 상기와 같은 종래 방식의 버퍼링 기법은 하나의 멀티미디어 파일에 대해 데이터 단위로 버퍼링을 수행하며, 하나의 멀티미디어 파일 재생이 끝난 후 다음 재생할 멀티미디어 파일 정보를 획득하고 나서 재생 준비를 위한 음악과 음악간의 소정 지연 시간동안 버퍼링을 수행하기 때문에 사용자에게 끊김없는 음악을 제공할 수 없는 문제점이 있다.However, the conventional buffering technique performs buffering for one multimedia file in data units, and after the playback of one multimedia file is completed, after acquiring multimedia file information to be played, the music is prepared for playback. Since buffering is performed for a predetermined delay time, there is a problem in that seamless music cannot be provided to the user.

또한, 상기와 같은 종래 방식의 버퍼링 기법은 하나의 멀티미디어 파일에 대해 데이터 단위로 버퍼링을 수행한 후에 버퍼링했던 소정 데이터를 삭제(클리어)하기 때문에 사용자 또는 시스템으로부터의 재생모드 전환 요청에 즉시 대응할 수 없기 때문에 멀티미디어 재생 지연이 발생된다. In addition, since the conventional buffering technique deletes (clears) predetermined data that has been buffered after buffering one multimedia file in data units, it cannot immediately respond to a playback mode switch request from a user or a system. Due to the multimedia playback delay occurs.

예를 들어, 멀티미디어 파일들을 멀티미디어 재생 리스트의 순서에 따라 재생하는 중에 현재 시점부터 이전 시점으로의 멀티미디어 파일 후진 재생 요청신호가 입력되거나 이전 시점에 재생되었던 특정 멀티미디어 파일 재생 요청신호가 입력되거나 현재 시점부터 이후 시점으로의 멀티미디어 파일 전진 재생 요청신호가 입력되거나 이후 시점에 재생될 특정 멀티미디어 파일 재생 요청신호가 입력되면 현재 재생을 중단하고 나서 해당 멀티미디어 파일을 저장모듈에서 확인한 후에 다 시 읽어와서 버퍼링해야 되므로, 멀티미디어의 재생 지연 및 기기의 전력 소모가 발생되는 문제점이 있다. For example, while the multimedia files are being played in the order of the multimedia playlist, the multimedia file backward play request signal from the current time point to the previous time point is inputted, or the specific multimedia file play request signal that was played back from the previous time point is inputted or from the current time point. If a multimedia file forward play request signal is input to a later time or a specific multimedia file play request signal to be played later, the current file must be stopped and read and buffered again after checking the multimedia file in the storage module. There is a problem in that a playback delay of multimedia and power consumption of a device are generated.

본 발명은, 상기와 같은 문제점을 해결하기 위하여 제안된 것으로, 재생하고자 하는 파일의 구조에 따라 다중 파일 캐싱을 적용하여 저장 모듈의 접근을 최소한 줄이고, 시스템의 원활한 작동을 돕는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법을 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above problems, and according to the structure of the file to be reproduced by applying a multi-file caching at least to reduce the access of the storage module, the multi-file in the portable multimedia player to help the smooth operation of the system An object of the present invention is to provide a method for playing a real-time multimedia file using caching.

또한, 본 발명은 버퍼링으로 인한 멀티미디어의 재생 지연을 없애기 위해 멀티미디어 파일 재생 리스트에 따라 버퍼링 가능한 크기만큼 멀티미디어 파일들을 순서대로 버퍼링하여 멀티미디어 파일들을 재생하는 중에 현재 버퍼링된 파일들의 캐시를 합한 크기가 임계치 이하인 경우에 멀티미디어 파일 재생 리스트 중 기 버퍼링한 멀티미디어 파일들 이외의 멀티미디어 파일들을 순서대로 버퍼링하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법을 제공하는데 그 목적이 있다.In addition, the present invention is to buffer the multimedia files in order of the bufferable size according to the multimedia file play list in order to eliminate the playback delay of the multimedia due to buffering, the size of the sum of the cache of the currently buffered files is less than the threshold value In this case, an object of the present invention is to provide a real-time multimedia file reproducing method using multiple file caching in a portable multimedia player that sequentially buffers multimedia files other than the buffered multimedia files in the multimedia file play list.

상기의 목적을 달성하기 위한 본 발명은, 링 구조의 버퍼에 현재 시점에 재생되는 포인트를 mUserBP, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트를 mEndBP, 버퍼링 시작 임계치를 mForwardTh로 정의한 상태에서, 멀티미 디어 파일 재생 요청신호가 입력되면 멀티미디어 파일 재생 리스트를 확인하는 제1 단계; 상기 버퍼를 상기 파일의 구조에 따라 다른 일정 개수의 파일 캐시로 나누고 상기 확인한 멀티미디어 파일 재생 리스트에 따라 해당되는 멀티미디어 파일들을 조각 단위로 상기 나뉘어진 캐시에 버퍼링 가능한 크기만큼 각각 순서대로 버퍼링하는 제2 단계; 및 상기 제2 단계에서 버퍼링한 멀티미디어 파일들을 재생하는 중에 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)가 상기 mForwardTh보다 작아지면 상기 멀티미디어 파일 재생 리스트 중 상기 제 2 단계에서 버퍼링한 멀티미디어 파일들 이외의 멀티미디어 파일에 대하여 상기 제2 단계를 수행하는 제3 단계를 포함한다.The present invention for achieving the above object, mUserBP to read the point to be reproduced at the current time point in the ring structure buffer, the point to read in advance at the current time point for playback at a later time point mEndBP, the buffering start threshold is defined as mForwardTh A first step of checking a multimedia file play list when a multimedia file play request signal is input; A second step of dividing the buffer into a predetermined number of file caches according to the structure of the file, and buffering corresponding multimedia files in order of a size that can be buffered in the divided caches in pieces unit according to the checked multimedia file play list; ; And if the size mRemainSize from mUserBP to mEndBP becomes smaller than mForwardTh while playing the multimedia files buffered in the second step, multimedia other than the multimedia files buffered in the second step of the multimedia file play list. And a third step of performing the second step on the file.

이하 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, detailed descriptions of well-known functions or configurations will be omitted if it is determined that the detailed description of the present invention may unnecessarily obscure the subject matter of the present invention. Terms to be described later are terms defined in consideration of functions in the present invention, and may be changed according to intentions or customs of users or operators. Therefore, the definition should be made based on the contents throughout the specification.

도 1은 본 발명이 적용되는 휴대형 멀티미디어 재생기에 대한 일실시예 구성도이다.1 is a configuration diagram of an embodiment of a portable multimedia player to which the present invention is applied.

도 1에 도시된 바와 같이, 본 발명이 적용되는 휴대형 멀티미디어 재생기는 멀티미디어 파일(예; 동영상 파일, 오디오 파일 등)이 저장되어 있는 비휘발성 저장매체 형태의 저장모듈(10)과 멀티미디어 파일 재생을 위해 저장모듈(10)에 저장되어 있는 멀티미디어 파일이 복사되어 일시 저장되는 휘발성 메모리 형태의 버퍼(11) 및 버퍼(11)에 일시 저장되어 있는 멀티미디어 파일을 재생하는 멀티미디어 재생모듈(12)을 포함한다.As shown in FIG. 1, a portable multimedia player to which the present invention is applied is provided for the storage module 10 in the form of a nonvolatile storage medium in which a multimedia file (eg, a video file, an audio file, etc.) is stored and for playing a multimedia file. The multimedia file stored in the storage module 10 includes a buffer 11 in the form of a volatile memory that is copied and temporarily stored, and a multimedia playback module 12 that plays the multimedia file temporarily stored in the buffer 11.

또한, 상기 휴대형 멀티미디어 재생기는 도면에 도시되어 있지는 않으나 멀티미디어 재생모듈(12)에서 재생한 영상신호를 표시하기 위한 디스플레이부, 멀티미디어 재생모듈(12)에서 재생한 오디오신호를 출력하기 위한 스피커, 멀티미디어 재생모듈(12)로 전진 재생 요청신호, 고배속(예; 2배속, 4배속 등) 전진 재생 요청신호, 후진 재생 요청신호, 고배속(예; 2배속, 4배속 등) 후진 재생 요청신호, 이전 시점에 재생되었던 특정 멀티미디어 파일 재생 요청신호, 이후 시점에 재생될 특정 멀티미디어 파일 재생 요청신호 등을 입력하기 위한 키 입력부, 휴대형 멀티미디어 재생기 각 구성 요소로 전원을 공급하기 위한 배터리 등을 포함하며, 이외에도 멀티미디어 재생을 위한 기본적인 구성 요소를 더 포함한다.In addition, although not shown in the drawing, the portable multimedia player is a display unit for displaying a video signal played by the multimedia play module 12, a speaker for outputting an audio signal played by the multimedia play module 12, and multimedia play. Forward playback request signal, high speed (e.g., 2x, 4x, etc.) forward playback request signal, backward playback request signal, high speed (e.g., 2x, 4x, etc.) backward playback request signal, Key input unit for inputting a specific multimedia file playback request signal that has been played, a specific multimedia file playback request signal to be played later, a battery for supplying power to each component of the portable multimedia player, and the like. It further includes the basic components.

한편, 본 발명에서 멀티미디어 재생모듈(12)은 휴대형 멀티미디어 재생기의 각 구성 요소를 제어할 수 있는 제어 기능이 탑재되어 있으며, 멀티미디어 칩(Multimedia Chip)이라고 불리우는 칩셋 형태로 구현되는 것이 바람직하다.On the other hand, in the present invention, the multimedia playback module 12 is equipped with a control function for controlling each component of the portable multimedia player, it is preferable to be implemented in the form of a chipset called a multimedia chip (Multimedia Chip).

도 2는 본 발명이 적용되는 링 구조의 버퍼에 대한 일실시예 설명도이다.2 is a diagram illustrating an embodiment of a buffer of a ring structure to which the present invention is applied.

본 발명이 적용되는 링(ring) 구조의 버퍼(11)는 환형 구조로 구현되며, 버퍼(11)의 End 영역까지 데이터가 채워지면 다음의 데이터가 Start 영역부터 다시 채워진다.A ring structure buffer 11 to which the present invention is applied is implemented in an annular structure. When data is filled up to the end region of the buffer 11, the next data is filled up again from the start region.

도 2에 도시된 바와 같이, Start는 버퍼(11)를 구성하는 메모리의 시작 주소이고, End는 버퍼(11)를 구성하는 메모리의 한계 지점 주소이고, mUserBP는 현재 시점에 재생되는 포인트, 즉 현재 멀티미디어 재생모듈(12)에서 사용되는 파일 캐시를 나타내고, mEndBP는 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트, 즉 멀티미디어 재생모듈(12)에서 미리 읽어내는 파일 캐시를 나타내고, 재생될 데이터가 남아있는 영역(mUserBP ~ mEndBP; mRemainSize)(200)은 버퍼링 시작을 위한 매개변수로 이용되어 기 설정된 버퍼링 시작 임계치인 mForwardTh보다 작은 경우에 버퍼링이 재개된다.As shown in Fig. 2, Start is a start address of the memory constituting the buffer 11, End is a limit point address of the memory constituting the buffer 11, and mUserBP is a point played at the present time, that is, the present The file cache used in the multimedia player module 12 represents a file cache, and mEndBP represents a point read ahead at the present time point, that is, the file cache read in advance from the multimedia player module 12 for playback at a later time point, and the data to be reproduced. The remaining area (mUserBP to mEndBP; mRemainSize) 200 is used as a parameter for starting buffering and buffering is resumed when it is smaller than mForwardTh which is a preset buffering start threshold.

여기서, 멀티미디어 파일을 버퍼링하는데 이용되는 자료 구조(data structure)를 파일 캐시(file cache)라고 한다.Here, the data structure used to buffer the multimedia file is called a file cache.

또한, 기 설정된 버퍼링 시작 임계치인 mForwardTh는 음악이 끊기질 않을 정도의 데이터 크기에 상응하는 버퍼링 여유 용량으로 설정되는 것이 바람직하다.In addition, mForwardTh, which is a preset buffering start threshold, is preferably set to a buffering spare capacity corresponding to a data size such that music does not end.

즉, 상기 mUserBP부터 mEndBP의 크기는 재생될 데이터가 남아있는 영역인데, 이 영역이 mForwardTh보다 작으면, 휴대형 멀티미디어 재생기는 이미 재생된 파일 캐시를 정리하고, 새로운 링 버퍼의 공간을 만들어 다음 파일을 캐시한다. That is, the size of mUserBP to mEndBP is an area in which data to be played remains, and if this area is smaller than mForwardTh, the portable multimedia player cleans up the already-played file cache and makes a space for a new ring buffer to cache the next file. do.

도 3은 본 발명이 적용되는 파일과 파일 캐시간의 관계에 대한 일실시예 설 명도이다. 3 is a diagram illustrating an embodiment of a relationship between a file and a file cache to which the present invention is applied.

도 3에서는 하나의 파일을 이루는 특정 데이터 일부가 버퍼(11)에 버퍼링된 상태에 대해서 도시하였으나, 본 발명에서는 다수의 파일, 즉 특정 파일을 이루는 모든 데이터 및 타 특정 파일을 이루는 특정 데이터 일부가 버퍼(11)에 버퍼링되는 것이 바람직하다.Although FIG. 3 illustrates a state in which a part of specific data constituting one file is buffered in the buffer 11, in the present invention, a plurality of files, that is, all data constituting a specific file and a part of specific data constituting another specific file, are buffered. It is preferable to buffer at (11).

본 발명에서는 파일 시스템 구조에 기반하여 멀티미디어 파일을 버퍼링한다(일명 파일 에뮬레이션).In the present invention, the multimedia file is buffered based on the file system structure (aka file emulation).

저장모듈(10)에 저장되어 있는 멀티미디어 파일을 읽기 위해서는 멀티미디어 파일의 어느 부분부터 읽을 것인지에 대한 정보, 즉 파일 포인터(file pointer) 및 파일 크기 및 기존의 파일 입출력 관련 함수(file API)와 동일한 프로세스 처리가 이루어져야 된다.In order to read the multimedia file stored in the storage module 10, information on which part of the multimedia file is to be read, namely, a file pointer and a file size and the same process as the existing file input / output related functions (file API) Should be done.

멀티미디어 재생모듈(12), 특히 멀티미디어 재생 프로세스(어플리케이션)는 버퍼(11)에 버퍼링된 데이터의 위치값을 매개변수로 하여 멀티미디어 파일의 특정 데이터를 읽어서 재생하는 것이 아니라 선형적인 구조를 갖는 멀티미디어 파일로부터 특정 데이터를 읽어서 재생, 즉 파일 포인터를 매개변수로 하여 멀티미디어 파일로부터 특정 데이터를 읽어서 재생하는 과정을 거치므로, 사용자가 버퍼(11)의 순환 구조를 인식할 필요없이 파일을 다루듯이 해당 멀티미디어 파일을 재생시킬 수 있도록 할 수 있다.The multimedia playing module 12, in particular, the multimedia playing process (application) does not read and play specific data of the multimedia file by using the position value of the data buffered in the buffer 11 as a parameter, but from the multimedia file having a linear structure. Since specific data is read and played back, that is, a specific data is read and played back from the multimedia file using the file pointer as a parameter, the multimedia file is played as if the user handles the file without having to recognize the circular structure of the buffer 11. You can make it play.

즉, 버퍼(11)에는 현재 버퍼링 중인 멀티미디어 파일에 대한 정보가 기록되어 있으며, 멀티미디어 재생모듈(12)이 이러한 기록 정보를 이용하여 멀티미디어 파일을 저장모듈(10)로부터 직접 읽어서 재생하는 것과 같은 동일한 프로세스 처리를 할 수 있다.That is, the information about the multimedia file currently being buffered is recorded in the buffer 11, and the same process as the multimedia playback module 12 reads and reproduces the multimedia file directly from the storage module 10 using the recording information. You can do it.

도 3에 도시된 바와 같이, A 영역은 현재 재생되고 있는 멀티미디어 파일의 데이터부터 이후에 재생될 미래의 일부 데이터를 나타내고, B 영역은 현재 재생되고 있는 멀티미디어 파일의 데이터부터 이전에 재생된 과거의 일부 데이터를 나타낸다.As shown in Fig. 3, the area A represents some future data to be reproduced later from the data of the multimedia file currently being reproduced, and the area B represents a part of the past previously reproduced from the data of the multimedia file currently being reproduced. Represents the data.

A와 B 영역을 합친 영역이 버퍼링되고 있는 하나의 멀티미디어 파일의 일부 또는 다수의 멀티미디어 파일을 나타낸다.An area where the A and B areas are combined represents a part or a plurality of multimedia files of one multimedia file being buffered.

그리고, mMAXBufferSize는 버퍼(11)의 크기를 나타내며, 버퍼(11)의 크기는 파일 포인터 시작(StartFP) 부분부터 파일 포인터 끝(mEndFP) 부분까지의 크기와 동일하며, 현재 시점을 기준으로 파일 포인터 시작부분부터 파일 포인터 끝 부분까지의 데이터가 버퍼(11)에 버퍼링되어 있음을 알 수 있다.In addition, mMAXBufferSize represents the size of the buffer 11, the size of the buffer 11 is equal to the size from the start of the file pointer (StartFP) to the end of the file pointer (mEndFP), the file pointer start based on the current time It can be seen that the data from the portion to the end of the file pointer is buffered in the buffer 11.

그리고, mUserBP는 현재 재생되고 있는 부분, 즉 사용자가 읽는(시청하는) 부분을 나타내고, 파일 시스템 상의 파일 포인터의 위치를 버퍼(11)에서의 위치로 매핑된 정보를 의미하며, mEndBP는 현재 재생되고 있는 부분부터 미래에 재생될 데이터의 끝을 나타내며, 파일 캐시가 커버할 수 있는 파일의 영역은 mStartBP ~ mEndBP까지의 데이터이다.In addition, mUserBP represents a portion currently being played, that is, a portion read (viewed) by the user, and means information mapped to a position in the buffer 11 of a file pointer on the file system, and mEndBP is currently played. It indicates the end of data to be reproduced in the future from the portion that exists, and the file area that the file cache can cover is data from mStartBP to mEndBP.

그리고, 파일 캐시는 버퍼링 영역의 시작과 끝을 갖고 있으며, 저장모듈(10)로부터 데이터를 복사하는 방향성(Forward Direction 또는 Backward Direction)을 갖는다. 여기서, Forward Direction 방향성을 갖는 경우에는 멀티미디어 파일이 전 진 재생되는 경우를 의미하고, Backward Direction 방향성을 갖는 경우에는 멀티미디어 파일의 후진 재생되는 경우를 의미한다.The file cache has a start and an end of the buffering area, and has a direction (Forward Direction or Backward Direction) for copying data from the storage module 10. In this case, the forward direction direction means that the multimedia file is played forward, and the reverse direction direction means that the multimedia file is played backward.

도 1 내지 도 3을 참조하여 전술한 바와 같이, 링 구조의 버퍼(11)에 현재 시점에 재생되는 포인트를 mUserBP, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트를 mEndBP, 버퍼링 시작 임계치를 mForwardTh로 정의할 수 있다.As described above with reference to FIGS. 1 to 3, mUserBP reads a point reproduced at the present time in the ring structure buffer 11, and mEndBP reads a point pre-read at the present time for replay at a later time, and a buffering start threshold. Can be defined as mForwardTh.

도 4는 본 발명에 따른 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법에 대한 일실시예 흐름도이며, 도 5a 및 도 5b는 본 발명이 적용되는 한 파일에 대한 다중 파일 캐싱에 대한 일실시예 설명도, 도 6은 본 발명이 적용되는 파일 조각 단위의 버퍼링 방법에 대한 일실시예 흐름도, 도 7a 및 도 7b는 본 발명이 적용된 멀티미디어 파일이 버퍼링되는 버퍼의 상태에 대한 일실시예 설명도이며, 도 8은 본 발명이 적용된 버퍼로의 멀티미디어 파일 조각 복사에 대한 일실시예 설명도이며, 도 9는 본 발명이 적용된 버퍼 포인트의 위치 교환에 대한 일실시예 설명도이다.4 is a flowchart illustrating a method of playing a real-time multimedia file using multiple file caching in a portable multimedia player according to the present invention, and FIGS. 5A and 5B illustrate multiple file caching of a file to which the present invention is applied. 6 is a flowchart illustrating a method of buffering a file fragment unit to which the present invention is applied, and FIGS. 7A and 7B are diagrams illustrating a state of a buffer in which a multimedia file to which the present invention is applied is buffered. 8 is an explanatory diagram for copying a multimedia file fragment into a buffer to which the present invention is applied, and FIG. 9 is an explanatory diagram for exchanging a position of a buffer point to which the present invention is applied.

도 4를 참조하면, 휴대형 멀티미디어 재생기는 사용자에 의해 멀티미디어 파일 재생 요청신호가 입력되면(S400), 멀티미디어 파일 재생 리스트를 확인한다(S401). 즉, 상기 사용자는 감상하고자 하는 멀티미디어 파일을 선곡하기 위해 멀 티미디어 파일 재생 리스트를 불러와서 해당 멀티미디어 파일을 선택하고 그 멀티미디어 파일의 재생을 요청하게 된다.Referring to FIG. 4, when the multimedia file playing request signal is input by the user (S400), the portable multimedia player checks the multimedia file playing list (S401). That is, the user selects a multimedia file playlist to select a multimedia file to be listened to, selects the corresponding multimedia file, and requests playback of the multimedia file.

그러면, 상기 휴대형 멀티미디어 재생기는 상기 사용자가 불러온 멀티미디어 파일 재생 리스트를 확인하여 멀티미디어 파일명, 멀티미디어 파일 크기 및 멀티미디어 파일 속성(예; MP3 형식, WMA 형식, 가수명, 장르 등) 등을 파악하고 나서 멀티미디어 파일 재생 순서를 확인한다.Then, the portable multimedia player checks the multimedia file play list loaded by the user to determine the multimedia file name, the multimedia file size and the multimedia file properties (eg, MP3 format, WMA format, artist name, genre, etc.), and then the multimedia file. Check the playback order.

그리고 나서, 상기 휴대형 멀티미디어 재생기는 버퍼를 해당 파일의 구조에 따라 다른 일정 개수의 파일 캐시로 나누고 상기 확인한 멀티미디어 파일 재생 리스트에 따라 해당되는 멀티미디어 파일들을 조각 단위로 상기 나뉘어진 캐시에 버퍼링 가능한 크기만큼 각각 순서대로 버퍼링한다(S402).Then, the portable multimedia player divides the buffer into a predetermined number of file caches according to the structure of the corresponding file, and according to the checked multimedia file play list, the corresponding multimedia files are divided into pieces by the size that can be buffered in the divided cache. Buffer in order (S402).

예를 들어, 해당 파일이 싱글 파일이면, 상기 휴대형 멀티미디어 재생기는 도 5a와 같이 상기 버퍼를 하나의 캐시로 간주하여 상기 확인한 멀티미디어 파일 재생 리스트에 따라 해당하는 멀티미디어 파일들을 조각 단위로 상기 캐시에 버퍼링 가능한 크기만큼 각각 순서대로 버퍼링한다. For example, if the file is a single file, the portable multimedia player regards the buffer as one cache and buffers the corresponding multimedia files in pieces in accordance with the checked multimedia file playlist as shown in FIG. 5A. Buffer each in order by size.

도 5a를 참조하면, 초기에 멀티미디어 파일 재생 리스트 중 재생 순서 1번을 갖는 "1.MP3" 파일을 이루는 모든 데이터를 버퍼에 버퍼링한 상태에서는 현재 시점에 재생되는 포인트인 mUserBP, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트인 mEndBP가 동일한 파일, 즉 "1.MP3" 파일을 가르키고 있다.Referring to FIG. 5A, mUserBP, which is a point played back at the current time point, when all data constituting the "1.MP3" file having the playback order 1 in the multimedia file play list is buffered in the buffer, is played back at a later time point. For this, mEndBP, the point that is read ahead at the present time, points to the same file, "1.MP3".

이후에 버퍼의 저장 용량이 타 멀티미디어 파일을 버퍼링할 정도로 충분하므로, 도 5a의 하측에 도시된 바와 같이, 멀티미디어 파일 재생 리스트에 따라 재생 순서 2번, 재생 순서 3번, 재생 순서 4번을 갖는 "2.WMA" 파일을 이루는 모든 데이터, "3.MP3" 파일을 이루는 모든 데이터 및 "4.WMA" 파일을 이루는 일부 데이터를 순서대로 버퍼링한다.Since the storage capacity of the buffer is sufficient to buffer other multimedia files, as shown in the lower portion of FIG. 5A, the playback order 2, the playback sequence 3, and the playback sequence 4 according to the multimedia file playback list are displayed. 2. All the data constituting the "WMA" file, all the data constituting the "3.MP3" file, and some data constituting the "4.WMA" file are buffered in order.

만약, 해당 파일이 인덱스 정보가 필수적인 멀티미디어 파일이면, 상기 휴대형 멀티미디어 재생기는 상기 버퍼를 데이터 영역 캐시와 인덱스 영역 캐시로 나누고 상기 확인한 멀티미디어 파일 재생 리스트에 따라 해당되는 멀티미디어 파일들을 일정 크기의 조각 단위로 상기 나뉘어진 캐시에 버퍼링 가능한 크기만큼 각각 순서대로 버퍼링한다.If the file is a multimedia file for which index information is essential, the portable multimedia player divides the buffer into a data area cache and an index area cache, and the corresponding multimedia files are divided into pieces of a predetermined size according to the checked multimedia file play list. Each of them is buffered in order of the size that can be buffered in the divided cache.

이 때, 멀티미디어 재생 프로세스(어플리케이션), 특히 멀티미디어 파일 재생 리스트를 통하여 다음에 재생(연주)할 멀티미디어 파일의 정보를 얻고 이 멀티미디어 파일을 파일 캐시를 이용하여 버퍼(11)에 등록하고 나서 이 등록한 멀티미디어 파일들을 버퍼링 가능한 크기만큼 버퍼(11)에 순서대로 버퍼링하고, 버퍼링 시작한 멀티미디어 파일을 이루는 모든 데이터가 버퍼(11)에 복사되면 현재 어플리케이션에 의해 사용되는 파일 캐시를 제외한 나머지 영역이 채워질 때까지 다른 멀티미디어 파일을 이루는 데이터 버퍼링 과정을 반복적으로 수행한다.At this time, the information of the multimedia file to be played back (played) is obtained through the multimedia playback process (application), in particular, the multimedia file play list, and the multimedia file is registered in the buffer 11 using the file cache, and then the registered multimedia is received. If files are buffered in the buffer 11 in order as much as possible, and all the data constituting the multimedia file that has started buffering are copied to the buffer 11, other multimedia files are filled until the remaining area is filled except for the file cache used by the current application. Iteratively performs the data buffering process of the file.

그럼으로 해서, 사용자가 요구하는 파일이 버퍼안에 이미 캐시되어 있기 때문에 멀티미디어 재생 모듈은 저장 모듈에서 해당 파일을 다시 잃어오지 않고 버퍼안의 데이터를 넘겨준다.Thus, because the file that the user requires is already cached in the buffer, the multimedia playback module passes the data in the buffer without losing the file again from the storage module.

이런 경우는 요구한 파일이 버퍼안에 존재하는 경우지만 버퍼안에 존재하지 않는 파일을 요구한다면 이를 캐시 미스(cache miss)라고 하며 링 버퍼의 내용을 모두 지우고 사용자가 원하는 파일을 처음으로 해서 다시 캐싱 작업을 수행해야한다.In this case, if the requested file exists in the buffer but requests a file that does not exist in the buffer, this is called a cache miss. It clears all the contents of the ring buffer and re-caches the file for the first time. Should be done.

즉, 인덱스 정보가 필수적인 멀티미디어 데이터를 재생하기 위해서는 파일뒤의 인덱스 정보가 필수적이기 때문에 인덱스에 대한 접근이 필수적이다. 하지만 버퍼의 크기는 전체 파일 크기에 비해 그 크기가 작기 때문에 멀티미디어 데이터를 접근할 때 캐시 미스가 일어나고 다시 인덱스를 접근할때 캐시 미스가 발생한다. 캐시 미스가 반복되는 경우 시스템의 정상 동작을 기대하기는 어렵고 재생하는 곡은 음이 끊기는 현상이 나타난다. In other words, in order to play multimedia data for which index information is necessary, access to an index is essential because index information behind a file is essential. However, because the size of the buffer is smaller than the total file size, a cache miss occurs when accessing multimedia data, and a cache miss occurs when accessing an index again. If the cache miss is repeated, it is difficult to expect the system to operate normally, and the playing music is broken.

이런 경우를 위해 도 5b 및 도 5c와 같이 한 파일에 대하여 다중 파일 캐시를 할당한다. For this case, multiple file caches are allocated to one file as shown in FIGS. 5B and 5C.

먼저, 오디오 파일에 다중 파일 캐시를 할당하는 것에 대하여 도 5b를 참조하여 설명하기로 한다. First, the allocation of a multi-file cache to an audio file will be described with reference to FIG. 5B.

도 5b를 참조하면, 저장모듈에 저장된 오디오 파일(오디오 데이터와 인덱스)을 두번 오픈해서 오디오 데이터에 캐시를 할당하고 인덱스에 캐시를 할당한다. Referring to FIG. 5B, an audio file (audio data and an index) stored in a storage module is opened twice to allocate a cache to audio data and a cache to an index.

그러면, 버퍼는 현재 두개의 파일 캐시가 설정되어 있고, 하나는 오디오 데이터의 일부를 캐시하고, 다른 하나는 인덱스의 일부를 캐시하고 있다. The buffer is then currently set up with two file caches, one for caching part of the audio data and the other for caching part of the index.

즉, 저장모듈에 저장된 오디오 파일을 버퍼링함에 있어서, 버퍼에 두개의 캐시를 할당하여 제1 캐시(500)에는 오디오 데이터를 저장하고, 제2 캐시(510)에는 인덱스(512)를 저장한다. 이때, 제1 캐시(500)와 제2 캐시(510)로 나뉘어져 할당된 영역은 서로 독립적으로 버퍼를 구성한다. That is, in buffering the audio file stored in the storage module, two caches are allocated to the buffer to store audio data in the first cache 500 and the index 512 is stored in the second cache 510. At this time, the allocated area divided into the first cache 500 and the second cache 510 constitutes a buffer independently of each other.

상기와 같이 하나의 파일에 대해 두개의 캐시를 할당함으로써 캐시 미스의 반복 현상이 일어나지 않으며, 파일 크기보다 작은 링버퍼에서 저장 모듈 자원을 효율적으로 다룰수 있다. By allocating two caches for one file as described above, the cache miss repetition does not occur, and the storage module resource can be efficiently handled in a ring buffer smaller than the file size.

다음으로 오디오 데이터와 비디오 데이터가 혼합된 멀티미디어 파일에 다중 파일 캐시를 할당하는 것에 대하여 도 5c를 참조하여 설명하기로 한다.Next, the allocation of the multiple file cache to the multimedia file mixed with the audio data and the video data will be described with reference to FIG. 5C.

도 5c를 참조하면, 동영상과 같은 멀티미디어 파일은 오디오 데이터에 대한 인덱스1, 비디오 데이터에 대한 인덱스2로 이루어져있다. Referring to FIG. 5C, a multimedia file such as a video includes an index 1 for audio data and an index 2 for video data.

따라서, 휴대형 멀티미디어 재생기가 동영상 파일을 재생하기 위해서는 인덱스1과 인덱스2의 접근이 필수적이기 때문에 다중 파일 캐시를 사용하지 않고서는 빈번한 저장모듈의 접근이 예상되기 때문에 도 5b에서의 확장으로 파일 캐시를 하나 더 할당한다. Therefore, since the access of the index 1 and the index 2 is essential for the portable multimedia player to play the video file, the access to the storage module is frequently expected without using the multi-file cache. Allocate more.

즉, 버퍼에는 3개의 캐시가 설정되어 있고, 제1 캐시(550)는 멀티미디어 데이터의 일부를 저장하고, 제2 캐시(560)는 인덱스1의 일부를 저장하고, 제3 캐시(570)는 인덱스2의 일부를 저장한다. 즉, 링버퍼는 저장 모듈에 저장된 멀티미디어 데이터에 대하여 버퍼링 가능한 크기만큼 제1 캐시(550)에 저장, 상기 제1 캐시(550)에 저장된 오디오 데이터에 해당하는 인덱스1을 제2 캐시(560)에 저장, 상기 제1 캐시(550)에 저장된 비디오 데이터에 해당하는 인덱스2를 제3 캐시(570)에 저장한다. That is, three caches are set in the buffer, the first cache 550 stores a part of the multimedia data, the second cache 560 stores a part of the index 1, and the third cache 570 is an index. Save part of 2. That is, the ring buffer is stored in the first cache 550 in a size that can buffer the multimedia data stored in the storage module, and the index 1 corresponding to the audio data stored in the first cache 550 is stored in the second cache 560. The index 2 corresponding to the video data stored in the first cache 550 is stored in the third cache 570.

상기와 같은 다중 파일 캐싱은 저장 모듈의 접근을 최소한 줄이는 효과적인 캐시 관리에 있으며 여러 파일을 다중 파일 캐시하는 것과 재생하고자 하는 파일 구조에 따라 멀티 파일 캐싱을 적용시킴으로써 시스템의 원활한 작동을 돕는다. Such multi-file caching is in effective cache management to at least reduce the access of the storage module. The multi-file caching supports the smooth operation of the system by applying the multi-file caching according to the multi-file caching and the file structure to be played.

다시 도 4의 단계 402에서 연속된 멀티미디어 파일을 버퍼링 가능한 크기만큼 버퍼(11)에 순서대로 버퍼링하는 방법에 대하여 도 6을 참조하여 상세히 설명하기로 한다. A method of buffering the continuous multimedia file in the buffer 11 in order as much as the bufferable size will be described in detail with reference to FIG. 6 again in step 402 of FIG. 4.

도 6을 참조하면, 휴대형 멀티미디어 재생기는 임의의 멀티미디어 파일이 캐싱중인지를 판단한다(S600). Referring to FIG. 6, the portable multimedia player determines whether any multimedia file is being cached (S600).

단계 600의 판단결과 임의의 파일이 캐싱중이면, 상기 휴대형 멀티미디어 재생기는 버퍼에 해당 파일을 복사하고(S601), 상기 파일의 캐싱이 종료되었는지를 판단한다(S602).As a result of the determination in step 600, if any file is caching, the portable multimedia player copies the file to the buffer (S601), and determines whether the caching of the file is finished (S602).

단계 602의 판단결과 상기 파일의 캐싱이 종료되었으면, 상기 휴대형 멀티미디어 재생기는 해당 파일에 대하여 전체가 캐싱되었는지를 판단한다(S603). If the caching of the file is terminated as a result of the determination of step 602, the portable multimedia player determines whether the entire file has been cached (S603).

단계 603의 판단결과 해당 파일에 대하여 전체가 캐싱되었으면 해당 파일의 전체가 캐싱되었음을 표시한다(S604).If it is determined in step 603 that the entire file has been cached, it is indicated that the whole file has been cached (S604).

만약, 단계 603의 판단결과 해당 파일에 대하여 전체가 캐싱되지 않았으면, 해당 파일의 부분이 캐싱되었음을 표시한다(S605).If it is determined in step 603 that the entire file has not been cached, it indicates that a portion of the file has been cached (S605).

즉, 모든 파일이 버퍼에 복사된 상태라면, 'full'로 표시하고, 대상 파일이 너무 커서 상기 버퍼안에 담을수 없는 경우에 파일의 일부분이 캐싱되었다면 'a part of file'를 표시한다. That is, if all files have been copied to the buffer, it is marked as 'full', and if a part of the file is cached if the target file is too large to be contained in the buffer, 'a part of file' is displayed.

만약, 단계 602의 판단결과 해당 파일의 캐싱이 종료되지 않았으면, 상기 휴대형 멀티미디어 재생기는 상기 버퍼에 공간이 존재하는지를 판단한다(S606).If the caching of the file is not terminated as a result of the determination of step 602, the portable multimedia player determines whether space exists in the buffer (S606).

단계 606의 판단결과 상기 버퍼에 공간이 존재하면, 상기 휴대형 멀티미디어 재생기는 단계 601부터 수행하고, 상기 버퍼에 공간이 존재하지 않으면, 단계 605를 수행한다. If there is space in the buffer as a result of the determination in step 606, the portable multimedia player performs from step 601, and if there is no space in the buffer, step 605 is performed.

만약, 단계 600의 판단결과 현재 파일 캐싱중이 아니면, 상기 휴대형 멀티미디어 재생기는 버퍼에 공간이 존재하는지를 판단한다(S607).If it is determined in step 600 that the file is not currently being cached, the portable multimedia player determines whether space exists in the buffer (S607).

단계 607의 판단결과 버퍼에 공간이 존재하면, 상기 휴대형 멀티미디어 재생기는 저장 모듈에서 다음에 캐시할 파일 정보를 읽는다(S608).If there is space in the buffer as a result of the determination in step 607, the portable multimedia player reads file information to be cached next from the storage module (S608).

그런다음 상기 휴대형 멀티미디어 재생기는 상기 읽은 파일이 상기 버퍼에 존재하는 파일인지를 판단한다(S609).Then, the portable multimedia player determines whether the read file is a file existing in the buffer (S609).

단계 609의 판단결과 상기 읽은 파일이 상기 버퍼에 존재하는 파일이면, 상기 휴대형 멀티미디어 재생기는 단계 608을 수행한다. If it is determined in step 609 that the read file exists in the buffer, the portable multimedia player performs step 608.

만약, 단계 609의 판단결과 상기 읽은 파일이 상기 버퍼에 존재하는 파일이 아니면, 상기 휴대형 멀티미디어 재생기는 상기 버퍼에 공간을 할당하여 해당 파일을 복사하고(S610), 단계 602부터 수행한다.If it is determined in step 609 that the read file is not a file existing in the buffer, the portable multimedia player allocates space to the buffer to copy the file (S610), and starts from step 602.

상기와 같이 현재 캐시의 자료 구조가 'full' 또는 'a part of file'일 경우 다음에 캐시할 파일의 정보를 얻어 캐싱할 준비를 한다. 하지만 느린 저장 장치의 접근을 최소화한다는 목적을 생각한다면 처음 시작시 링 버퍼를 모두 채우고 링 버퍼에서 마지막으로 캐싱 된 파일이 현재 재생중이고 그 재생중인 파일의 크기가 임계값보다 작으면 이전에 버퍼링한 멀티미디어 파일에서 현재 재생하는 버퍼의 일부를 남겨두고 이전에 버퍼링한 파일 이외의 파일을 버퍼링 가능한 크기만큼 순서대 로 다시 버퍼링한다.As described above, when the data structure of the current cache is 'full' or 'a part of file', information about a file to be cached next is prepared and cached. However, if you consider the goal of minimizing access to slow storage devices, if you fill all the ring buffers at the first startup and the last cached file in the ring buffer is currently playing and the size of the playing file is less than the threshold, the previously buffered multimedia Leave a portion of the buffer currently playing in the file and re-buffer files other than the previously buffered file in order as much as possible.

상기 도 6에 대한 설명을 도 7a의 상태도를 이용하여 설명하기로 한다.The description of FIG. 6 will be described using the state diagram of FIG. 7A.

도 7a의 상측에 도시된 바와 같이, 초기에 멀티미디어 파일 재생 리스트 중 재생 순서 1번을 갖는 "1.MP3" 파일을 이루는 모든 데이터를 버퍼(11)에 버퍼링한 상태에서는 현재 시점에 재생되는 포인트인 mUserBP, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트인 mEndBP가 동일한 파일, 즉 "1.MP3" 파일을 가르키고 있다.As shown in the upper side of FIG. 7A, in the state in which all data constituting the " 1.MP3 " file having the playback order number 1 of the multimedia file play list is buffered in the buffer 11, mUserBP, mEndBP, which is a point read ahead at the current time point for playback at a later time point, points to the same file, that is, a "1.MP3" file.

이후에 버퍼(11)의 저장 용량이 타 멀티미디어 파일을 버퍼링할 정도로 충분하므로, 도 7a의 하측에 도시된 바와 같이, 멀티미디어 파일 재생 리스트에 따라 재생 순서 2번, 재생 순서 3번, 재생 순서 4번을 갖는 "2.WMA" 파일을 이루는 모든 데이터, "3.MP3" 파일을 이루는 모든 데이터 및 "4.WMA" 파일을 이루는 일부 데이터를 순서대로 버퍼링한다.After that, since the storage capacity of the buffer 11 is sufficient to buffer other multimedia files, as shown in the lower side of FIG. 7A, the playback order 2, the playback order 3, and the playback order 4 are made according to the multimedia file play list. All data constituting the "2.WMA" file having, and all the data constituting the "3.MP3" file and some data constituting the "4.WMA" file are sequentially buffered.

여기서, "4.WMA" 파일을 이루는 일부 데이터를 버퍼(11)에 버퍼링한 상태에서는 현재 시점에 재생되는 포인트인 mUserBP가 "1.MP3" 파일을 가르키고 있으며, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트인 mEndBP가 "4.WMA" 파일을 가르키고 있다.Here, in the state in which some data constituting the "4.WMA" file is buffered in the buffer 11, mUserBP, which is a point played back at the present time, points to the "1.MP3" file, and the current time point for playback at a later time point is shown. MEndBP points to the "4.WMA" file.

한편, 버퍼(11)에는 "4.WMA" 파일을 이루는 모든 데이터를 저장할만큼의 용량이 존재하지 않으므로 "4.WMA" 파일을 이루는 일부 데이터만을 버퍼링한다. 즉, 도 7a에서 "FULL"은 멀티미디어 파일을 이루는 모든 데이터를 의미하며, "A part of file"은 멀티미디어 파일을 이루는 일부 데이터를 의미한다.On the other hand, since there is no capacity in the buffer 11 to store all data constituting the "4.WMA" file, only some data constituting the "4.WMA" file is buffered. That is, in FIG. 7A, "FULL" means all data constituting the multimedia file, and "A part of file" means some data constituting the multimedia file.

한편, 상기 단계 402에서의 버퍼링 과정 및 후술할 단계 405에서의 버퍼링 과정에서는 특정 멀티미디어 파일에 대한 파일 포인터(File Pointer)가 지시하는 멀티미디어 파일의 특정 부분을 조각 복사하여 버퍼링한다. 여기서, 멀티미디어 파일의 특정 부분을 순차적으로 조각 복사하는 과정에 대해서 도 8을 참조하여 상세히 설명하기로 한다.Meanwhile, in the buffering process in step 402 and the buffering process in step 405 to be described later, a specific part of the multimedia file indicated by a file pointer for a specific multimedia file is fragmented and buffered. Herein, a process of sequentially copying specific portions of the multimedia file will be described in detail with reference to FIG. 8.

일반적으로, 버퍼(11)에 복사 가능한 만큼의 데이터 모두를 한꺼번에 복사하는 동안에 사용자 또는 시스템으로부터 요구, 즉 재생모드 전환 요청, 랜덤한 멀티미디어 파일 선곡 및 재생 요청, 전원 오프(OFF) 이벤트 발생 등이 발생되면 현재 진행 중인 버퍼링 과정을 모두 끝마친 뒤에야 해당 요청 사항을 처리하기 때문에 사용자가 지연된 처리 결과를 반환받고 있다.In general, a request from a user or a system, i.e., a play mode switch request, a random multimedia file selection and play request, a power off event, etc. occur while copying all the data that can be copied to the buffer 11 at once. If the request is processed only after the current buffering process is completed, the user is returned with the delayed processing result.

본 발명에서는 도 8과 같이 버퍼링 단위를 멀티미디어 파일 조각 단위로 하여 한 번에 적당한 크기의 데이터를 버퍼(11)에 버퍼링시키고 매 버퍼링 순간마다 사용자 또는 시스템으로부터 특정 요청 사항이 발생되는지를 감지하여 처리 시간 지연없이 바로 해당 요청 사항을 처리할 수 있도록 한다.In the present invention, as shown in Fig. 8, the buffering unit is a multimedia file fragment unit, and buffers data of a suitable size at a time in the buffer 11 and detects whether a specific request is generated from the user or the system at every instant of buffering, thereby processing time. Allows the request to be processed immediately without delay.

다시 도 4를 참조하면, 단계 402에서 버퍼(11)에 버퍼링한 멀티미디어 파일들을 재생하는 중에는 별다른 버퍼링을 수행하지 않으며, 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)의 변화를 지속적으로 감지한다(S403).Referring back to FIG. 4, during the playback of the multimedia files buffered in the buffer 11 in step 402, no buffering is performed, and a change in the size mRemainSize from mUserBP to mEndBP is continuously detected (S403). ).

그러면서, 상기 휴대형 멀티미디어 재생기는 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)가 상기 mForwardTh보다 작아지는지를 판단한다(S404).In operation S404, the portable multimedia player determines whether the size mRemainSize from mUserBP to mEndBP is smaller than mForwardTh.

단계 404의 판단결과, 상기 mUserBP부터 상기 mEndBP까지의 크기 (mRemainSize)가 상기 mForwardTh보다 작아지면, 상기 휴대형 멀티미디어 재생기는 상기 멀티미디어 파일 재생 리스트 중 단계 402에서 버퍼링한 멀티미디어 파일들 이외의 멀티미디어 파일들을 버퍼링 가능한 크기만큼 상기 버퍼(11)에 순서대로 버퍼링한다(405). 즉, 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)가 상기 mForwardTh보다 작아지면, 상기 휴대형 멀티미대어 재생기는 이전에 버퍼링한 멀티미디어 파일에서 현재 재생하는 버퍼의 일부를 남겨두고 이전에 버퍼링한 멀티미디어 파일을 버퍼링 가능한 크기만큼 순서대로 버퍼링한다. 상기 버퍼링하는 방법은 도 6에서 상세히 설명하였으므로 그 설명은 생략한다. As a result of the determination in step 404, when the size mRemainSize from mUserBP to mEndBP is smaller than mForwardTh, the portable multimedia player is capable of buffering multimedia files other than the multimedia files buffered in step 402 of the multimedia file playlist. The buffer 11 is sequentially buffered as much as the size (405). That is, when the size mRemainSize from mUserBP to mEndBP is smaller than mForwardTh, the portable multimedia player plays back a previously buffered multimedia file while leaving a part of a buffer currently playing in a previously buffered multimedia file. Buffer in order as much as possible. Since the buffering method has been described in detail with reference to FIG. 6, the description thereof will be omitted.

단계 405가 수행되는 중에도 멀티미디어 파일에 대한 재생을 계속 수행 중인 상태이며, 상기 단계 405에서 버퍼링한 멀티미디어 파일을 이전 곡에 이어서 끊김없이 재생한다.While step 405 is being performed, playback of the multimedia file is still being performed, and the multimedia file buffered in step 405 is continuously played after the previous song.

이 때, 버퍼(11)의 상태, 즉 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)의 변화(특히 mUserBP의 위치 변화)를 감지하고 있다가 현재 버퍼링된 파일들의 캐시를 합한 크기가 임계치 이하인 경우, 즉 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)가 상기 mForwardTh보다 작아지는 경우에는 다음에 재생(연주)할 멀티미디어 파일의 정보를 얻고 이 멀티미디어 파일을 파일 캐시를 이용하여 버퍼(11)에 등록하고 나서 이 등록한 멀티미디어 파일들을 버퍼링 가능한 크기만큼 버퍼(11)에 순서대로 버퍼링한다.At this time, when the state of the buffer 11, that is, the change of the size (mRemainSize) from the mUserBP to the mEndBP (in particular, a change in the position of the mUserBP) is detected, and the size of the sum of the caches of the currently buffered files is less than or equal to the threshold, That is, when the size (mRemainSize) from the mUserBP to the mEndBP becomes smaller than the mForwardTh, information of a multimedia file to be played back (played) is obtained and the multimedia file is registered in the buffer 11 by using a file cache. The registered multimedia files are buffered in the buffer 11 in order as much as the bufferable size.

도 7b에는 본 발명이 적용된 임계치 비교를 통해 다음에 재생될 멀티미디어 파일이 버퍼링되는 버퍼의 상태에 대해 도시되어 있다.FIG. 7B shows the state of a buffer in which a multimedia file to be played next is buffered through a threshold comparison to which the present invention is applied.

도 7b의 상측에는 도 7a에 도시된 버퍼(11)의 상태에서 "2.WMA" 파일이 재생되고 있는 버퍼(11)의 천이 상태를 나타내며, 도 7b의 가운데측에는 도 7b의 상측에 도시된 버퍼(11)의 상태에서 일정 시간이 경과하여 "4.WMA" 파일이 재생되고 있는 버퍼(11)의 천이 상태를 나타낸다.The upper side of FIG. 7B shows the transition state of the buffer 11 in which the " 2.WMA " file is being reproduced in the state of the buffer 11 shown in FIG. 7A, and the buffer shown on the upper side of FIG. 7B in the middle side of FIG. The transition state of the buffer 11 in which the " 4.WMA " file is being reproduced after a predetermined time has elapsed in the state of (11).

도 7b의 가운데측에 도시된 바와 같이, 현재 시점에 재생되는 포인트인 mUserBP가 "4.WMA" 파일을 가르키고 있으며, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트인 mEndBP가 "4.WMA" 파일을 가르키고 있으며, 이러한 경우에는 mUserBP 및 mEndBP가 동일한 "4,WMA" 파일을 가르키고 있는 바 두 개의 파일 캐시가 겹쳐진 경우에는 미래에 재생(연주)할 멀티미디어 파일이 버퍼링되어 있지 않으므로, 도 7b의 하측에 도시된 바와 같이 다음에 재생이 예상되는 멀티미디어 파일을 멀티미디어 파일 재생 리스트에 따라 4.WMA를 이루는 일부 데이터, 5.MP3 파일을 이루는 모든 데이터, "6.MP3" 파일을 이루는 일부 데이터를 순서대로 버퍼링한다.As shown in the middle of FIG. 7B, mUserBP, a point played at the present time point, points to the file "4.WMA", and mEndBP, a point previously read at the present time point, for playback at a later time point is "4. WMA "file, and in this case, mUserBP and mEndBP point to the same" 4, WMA "file. When two file caches overlap, the multimedia file to be played (played) is not buffered in the future. As shown below, the multimedia file that is expected to be played next is selected according to the multimedia file play list. The data forming part of 4.WMA, all the data forming part of the 5.MP3 file, and the part of the data forming part of the "6.MP3" file. Buffer them in order.

상기와 같이 파일이 재생되는 동안 휴대형 멀티미디어 재생기는 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)의 변화를 지속적으로 감지하고 있다가, 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)가 상기 mForwardTh보다 작아지면, 도 7b의 하측과 같이 현재 재생되고 있는 파일을 제외하고 이전에 버퍼링된 파일들 이외의 멀티미디어 파일들을 버퍼링 가능한 크기만큼 상기 버퍼에 순서대로 버퍼링한다. 이 때에도 멀티미디어 파일에 대한 재생을 계속 수행 중인 상태이며, 상기 버퍼링한 멀티미디어 파일을 이전 곡에 이어서 끊김없이 재생한다.As described above, the portable multimedia player continuously detects a change in the size (mRemainSize) from the mUserBP to the mEndBP while the file is being played. 7B, multimedia files other than previously buffered files are buffered in the buffers in order, except for the file currently being played as shown in FIG. 7B. At this time, the multimedia file is still being played, and the buffered multimedia file is continuously played after the previous song.

이 때, 버퍼의 상태, 즉 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)의 변화(특히 mUserBP의 위치 변화)를 감지하고 있다가 현재 버퍼링된 파일들의 캐시를 합한 크기가 임계치 이하인 경우, 즉 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)가 상기 mForwardTh보다 작아지는 경우에는 다음에 재생(연주)할 멀티미디어 파일의 정보를 얻고 이 멀티미디어 파일을 파일 캐시를 이용하여 버퍼에 등록하고 나서 이 등록한 멀티미디어 파일들을 버퍼링 가능한 크기만큼 버퍼에 순서대로 버퍼링한다.At this time, the state of the buffer, i.e., the change of the size (mRemainSize) from the mUserBP to the mEndBP (in particular, the position change of the mUserBP) is detected, and the sum of the caches of the currently buffered files is less than or equal to the threshold, that is, the mUserBP If the size from mEndBP to mEndBP becomes smaller than the mForwardTh, the information of the multimedia file to be played (played) is obtained, the multimedia file is registered in the buffer using the file cache, and the registered multimedia files are buffered. Buffer the buffers in order as much as possible.

도 7b의 하측에 도시된 바와 같이, 버퍼링 된 이후의 버퍼의 상태에서 mUserBP가 "4.WMA" 파일을 가르키고 있으며, 상기 버퍼에는 상기 "4.WMA"의 나머지 파일 "4.WMA(A part of file)", 5.MP3, 6.MP3 파일이 순차적으로 버퍼링된다. As shown in the lower part of FIG. 7B, in the state of the buffer after being buffered, mUserBP points to the "4.WMA" file, and the buffer includes the remaining file "4.WMA" (A part of "4.WMA"). file) ", 5.MP3, 6.MP3 files are buffered sequentially.

그러므로, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트인 mEndBP는 "6.MP3" 파일을 가르키고 있다.Therefore, mEndBP, which is a point read ahead at the current time point for playback at a later time point, points to a "6.MP3" file.

즉, 4.WMA(A part of file) 파일 캐시는 같은 파일이 링 버퍼이기 때문에 다시 start부터 복사된다. 이전에 재생된 파일들의 영역에 새로운 파일들이 캐시되어 있고, 4.WMA(A part of file)의 크기도 재조정으로 이전에 재생된 부분을 포기하고 앞으로 재생할 데이터를 채워 넣는다. That is, the 4.WMA file cache is copied from start again because the same file is a ring buffer. New files are cached in the area of previously played files, and the resizing of the 4.WMA (A part of file) relinquishes the previously played part and fills up the data to be played back.

이처럼 한번 캐시하는 데이터를 읽어 들이는 순간에만 느린 저장모듈에서 읽어 들이기 때문에 캐시한 데이터가 남아있는 동안은 데이터를 저장모듈에서 읽어들이지 않는다. 이러한 캐시 작업은 OS를 이용해서 백그라운드 태스크 처리로 수행되 는 것이 유리하며 저장모듈을 사용하지 않는 동안에는 OS의 스케줄러 기능을 이용해 재생하는데 더 많은 CPU 자원을 할당함으로써 전체 수행 시간을 향상시켜 준다. In this case, the data is not read from the storage module while the cached data remains, because the slow storage module reads the data once cached. This cache operation is advantageously performed as background task processing using the OS and improves the overall execution time by allocating more CPU resources to play back using the OS scheduler function when the storage module is not in use.

한편, 본 발명에서는 전술한 과정에 의해 버퍼(11)에 다수의 멀티미디어 파일을 버퍼링한 상태에서 멀티미디어 재생 리스트의 순서에 따라 재생하는 중에 현재 시점부터 이전 시점으로의 멀티미디어 파일 후진 재생 요청신호가 입력되거나 이전 시점에 재생되었던 특정 멀티미디어 파일 재생 요청신호가 입력되거나 현재 시점부터 이후 시점으로의 멀티미디어 파일 전진 재생 요청신호가 입력되거나 이후 시점에 재생될 특정 멀티미디어 파일 재생 요청신호가 입력되면 상기 mUserBP를 해당되는 멀티미디어 파일이 버퍼링된 버퍼 포인트로 설정(버퍼 포인트의 위치 교환)하여 재생을 시작함으로써, 저장모듈(10)에서 멀티미디어 파일을 읽어서 복사할 필요가 없으며, 그에 따라 버퍼링 접근 회수를 줄일 수 있다.Meanwhile, in the present invention, the multimedia file backward playback request signal from the current time point to the previous time point is inputted while the multimedia file is being buffered in the buffer 11 according to the order of the multimedia play list. When a specific multimedia file play request signal, which has been played at a previous time, is input or a multimedia file forward play request signal is input from a current time point to a later time, or a specific multimedia file play request signal to be played at a later time is input, the mUserBP is applied to the corresponding multimedia. By setting the file to a buffered buffer point (switching the position of the buffer point) and starting playback, it is not necessary to read and copy the multimedia file from the storage module 10, thereby reducing the number of buffering accesses.

즉, 도 9의 상측에 도시된 바와 같이, 버퍼(11)에 현재 시점에 재생되는 포인트인 mUserBP가 "3.MP3" 파일을 가르키고 있으며, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트인 mEndBP가 "4.WMA" 파일을 가르키고 있는 상태에서 사용자로부터 이전에 재생되었던 "1.MP3" 파일 재생 요청이 있는 경우에는 도 9의 하측에 도시된 바와 같이, 현재 시점에 재생되는 포인트인 mUserBP를 "1.MP3"로 위치 교환만을 하고 나서 이 "1.MP3" 파일부터 재생을 시작하면 되기 때문에 별도의 버퍼링 과정을 수행하지 않아도 된다.That is, as shown in the upper side of Fig. 9, the mUserBP, which is the point played back at the present time in the buffer 11, points to the "3.MP3" file, and the point read in advance at the present time point for playback at a later time point. If there is a request to play the "1.MP3" file previously played by the user while the mEndBP is pointing to the "4.WMA" file, as shown in the lower side of FIG. Does not need to perform a separate buffering process because only after exchanging the position to "1.MP3", playback starts from this "1.MP3" file.

한편, 상기 mUserBP를 해당되는 멀티미디어 파일이 버퍼링된 버퍼 포인트로 설정하는 과정에서, 상기 해당되는 멀티미디어 파일이 버퍼(11)에 버퍼링되어 있지 않으면 상기 버퍼(11)를 초기화시킨 후에 해당 멀티미디어 파일을 버퍼링하는 것이 바람직하다.Meanwhile, in the process of setting the mUserBP as a buffer point buffered with the corresponding multimedia file, if the corresponding multimedia file is not buffered in the buffer 11, after initializing the buffer 11, the corresponding multimedia file is buffered. It is preferable.

이상 본 발명의 내용이 실시예를 들어 설명되었으나, 본 발명의 실시예는 본 발명의 예시에 불과하며 본 발명의 범위를 제한하는 것으로 해석되어서는 안 된다. 본 발명이 속하는 분야의 기술자는 본원의 특허청구범위에 기재된 원리 및 범위 내에서 본 발명을 여러 가지 형태로 변형 또는 변경할 수 있다.While the content of the present invention has been described by way of examples, the embodiments of the present invention are merely illustrative of the present invention and should not be construed as limiting the scope of the present invention. Those skilled in the art to which the present invention pertains may modify or alter the present invention in various forms within the principles and scope described in the claims herein.

상기와 같은 본 발명에 따르면, 파일 포인터를 이용하여 멀티미디어 파일의 특정 조각을 읽어서 복사하기 때문에 사용자가 링 구조 버퍼의 순환 구조를 인식할 필요없이 파일을 다루듯이 간편하게 해당 멀티미디어 파일을 재생시킬 수 있도록 하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법을 제공할 수 있다. According to the present invention as described above, since a specific piece of the multimedia file is read and copied using the file pointer, the user can play the multimedia file as easily as the file is handled without the user having to recognize the circular structure of the ring structure buffer. A portable multimedia player can provide a real-time multimedia file playback method using multiple file caching.

또한 본 발명에 따르면, 다중 파일 캐싱을 적용함으로써 저장 모듈의 접근을 최소한 줄이고, 여러 파일을 다중 파일 캐시하는 것과 재생하고자 하는 파일 구조에 따라 다중 파일 캐싱을 적용시킴으로써 시스템의 원활한 작동을 돕는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법을 제공할 수 있다. In addition, according to the present invention, by applying multiple file caching to reduce the access of the storage module at least, the portable multimedia player to help the smooth operation of the system by applying multiple file caching according to the file structure to be multi-file caching of multiple files and to play Can provide a real-time multimedia file playback method using multi-file caching.

또한, 본 발명에 따르면, 다중 파일 캐싱으로 효율적인 캐시 관리로 느린 저장 모듈의 빈번한 접근으로 인한 시스템 재생 지연을 방지하고 사용자가 필요로 하 는 데이터를 미리 속도가 빠른 메모리에 복사해두기 때문에 응답 속도가 빨라지는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법을 제공할 수 있다. In addition, according to the present invention, multiple file caching prevents system replay delay due to frequent access of a slow storage module through efficient cache management, and responds quickly because data required by a user is copied to a fast memory in advance. A fast portable multimedia player can provide a real-time multimedia file playback method using multiple file caching.

또한, 본 발명에 따르면, HDD와 같이 저장 장치의 구동에 많은 전력을 소비하는 기기의 경우 빈번한 구동을 막아주기 때문에 전류소비를 줄일 수 있는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법을 제공할 수 있다. In addition, according to the present invention, since a device that consumes a lot of power to drive a storage device such as an HDD prevents frequent driving, a real-time multimedia file playing method using multiple file caching in a portable multimedia player that can reduce current consumption. Can be provided.

또한, 본 발명에 따르면, 대용량의 메모리에 하나의 파일이나 데이터의 일부만을 캐시하는 것은 낭비이기 때문에 여러 파일을 캐시하는 것이 유리하여 대용량의 메모리를 캐시로 컨트롤하는데 효과적인 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법을 제공할 수 있다. In addition, according to the present invention, caching a single file or a part of data in a large memory is wasteful, so it is advantageous to cache several files, so that multi-file caching is effective in a portable multimedia player effective for controlling a large memory as a cache. It is possible to provide a real-time multimedia file playback method.

Claims (11)

링(ring) 구조의 버퍼에 데이터를 버퍼링하는 방법에 있어서,In the method of buffering data in a ring structure buffer, 상기 링 구조의 버퍼에 현재 시점에 재생되는 포인트를 mUserBP, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트를 mEndBP, 버퍼링 시작 임계치를 mForwardTh로 정의한 상태에서,With mUserBP defining a point to be reproduced at the present time in the buffer of the ring structure, mEndBP as a point to read in advance at the present time for reproducing at a later time, and a buffering start threshold value as mForwardTh, 멀티미디어 파일 재생 요청신호가 입력되면 멀티미디어 파일 재생 리스트를 확인하는 제1 단계;A first step of checking a multimedia file play list when a multimedia file play request signal is input; 상기 버퍼를 상기 파일의 구조에 따라 다른 일정 개수의 파일 캐시로 나누고 상기 확인한 멀티미디어 파일 재생 리스트에 따라 해당되는 멀티미디어 파일들을 조각 단위로 상기 나뉘어진 캐시에 버퍼링 가능한 크기만큼 각각 순서대로 버퍼링하는 제2 단계; 및A second step of dividing the buffer into a predetermined number of file caches according to the structure of the file, and buffering corresponding multimedia files in order of a size that can be buffered in the divided caches in pieces unit according to the checked multimedia file play list; ; And 상기 제2 단계에서 버퍼링한 멀티미디어 파일들을 재생하는 중에 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)가 상기 mForwardTh보다 작아지면 상기 멀티미디어 파일 재생 리스트 중 상기 제 2 단계에서 버퍼링한 멀티미디어 파일들 이외의 멀티미디어 파일에 대하여 상기 제2 단계를 수행하는 제3 단계If the size mRemainSize from mUserBP to mEndBP becomes smaller than mForwardTh while playing the multimedia files buffered in the second step, multimedia files other than the multimedia files buffered in the second step of the multimedia file play list. A third step of performing the second step with respect to 를 포함하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법.Real-time multimedia file playback method using multiple file caching in a portable multimedia player comprising a. 제 1 항에 있어서,The method of claim 1, 상기 버퍼를 상기 파일의 구조에 따라 다른 일정 개수의 파일 캐시로 나누는 것은 상기 파일이 인덱스 정보가 필요없는 싱글 파일이면, 상기 버퍼에 하나의 캐시를 할당하고, 상기 파일이 인덱스 정보가 필수적인 멀티미디어 파일이면, 상기 버퍼를 데이터 영역 캐시와 인덱스 영역 캐시로 나누는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법.Dividing the buffer into a predetermined number of file caches according to the structure of the file may include assigning one cache to the buffer if the file is a single file that does not require index information, and if the file is a multimedia file for which index information is essential. And dividing the buffer into a data area cache and an index area cache. 제2항에 있어서, The method of claim 2, 상기 인덱스 정보가 필수적인 멀티미디어 파일이 오디오 파일인 경우, 상기 버퍼를 오디오 데이터 캐시와 인덱스 캐시로 나누고, 상기 파일이 오디오 데이터와 비디오 데이터가 합쳐진 파일인 경우, 멀티미디어 데이터 캐시, 오디오 데이터에 해당하는 인덱스 캐시, 비디오 데이터에 해당하는 인덱스 캐시로 나누는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법.When the multimedia file for which the index information is essential is an audio file, the buffer is divided into an audio data cache and an index cache. When the file is a file in which audio data and video data are combined, the multimedia data cache and an index cache corresponding to the audio data are included. And real-time multimedia file playing method using multi-file caching in a portable multimedia player, characterized in that divided into index cache corresponding to the video data. 제2항 또는 제3항에 있어서, The method according to claim 2 or 3, 상기 나뉘어진 캐시는 서로 독립적으로 링버퍼를 구성하는 것을 특징으로 하 는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법.The divided cache comprises a ring buffer independently from each other, Real-time multimedia file playback method using multiple file caching in a portable multimedia player. 제1항에 있어서, The method of claim 1, 상기 캐시에 해당 데이터를 버퍼링 가능한 크기만큼 각각 순서대로 버퍼링하는 것은 Buffering the data in the cache in order as much as the bufferable size 제1 파일이 캐싱중이면, 상기 버퍼에 해당 파일을 복사하고, 해당 파일의 캐싱이 종료되면, 해당 파일의 전체가 캐싱되었는지를 판단하는 단계;If the first file is being cached, copying the file to the buffer, and if caching of the file is terminated, determining whether the entire file is cached; 상기 판단결과 해당 파일의 전체가 캐싱되었다면, 해당 파일의 전체가 캐싱되었음을 표시하고, 해당 파일의 전체가 캐싱되지 않았으면, 해당 파일의 부분이 캐싱되었음을 표시하는 단계를 포함하는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법.And if the entirety of the file is cached as a result of the determination, indicating that the entirety of the file is cached, and if the entirety of the file is not cached, indicating that the portion of the file is cached. Real-time multimedia file playback using multi-file caching in the player. 제5항에 있어서, The method of claim 5, 상기 제1 파일이 캐싱중이 아니면, 상기 버퍼에 공간이 존재하는지를 판단하는 단계;If the first file is not caching, determining if space exists in the buffer; 상기 판단결과 상기 버퍼에 공간이 존재하면, 다음에 캐시할 파일 정보를 읽어서 상기 버퍼에 복사하고, 해당 파일의 캐싱이 종료되면, 해당 파일의 전체가 캐 싱되었는지를 판단하는 단계;If there is a space in the buffer as a result of the determination, reading file information to be cached next and copying it to the buffer, and when caching of the file is terminated, determining whether the entire file is cached; 상기 판단결과 해당 파일의 전체가 캐싱되었다면, 해당 파일의 전체가 캐싱되었음을 표시하고, 해당 파일의 전체가 캐싱되지 않았으면, 해당 파일의 부분이 캐싱되었음을 표시하는 단계를 포함하는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법.And if the entirety of the file is cached as a result of the determination, indicating that the entirety of the file is cached, and if the entirety of the file is not cached, indicating that the portion of the file is cached. Real-time multimedia file playback using multi-file caching in the player. 제5항 또는 제6항에 있어서, The method according to claim 5 or 6, 상기 버퍼에 해당 파일을 복사하는 것은 상기 멀티미디어 파일에 대한 파일 포인터(File Pointer)를 이용하여 저장모듈에 저장되어 있는 멀티미디어 파일의 특정 조각을 읽어서 복사하는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한 리얼타임 멀티미디어 파일 재생 방법. Copying the file to the buffer is performed by multi-file caching in the portable multimedia player, characterized in that by reading a specific piece of the multimedia file stored in the storage module using a file pointer (File Pointer) for the multimedia file. Real-time multimedia file playback using. 제 1항 내지 제7항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 7, 상기 멀티미디어 파일을 파일 조각 단위로 상기 링 구조의 버퍼에 복사하여 버퍼링하면서 매 버퍼링 때마다 사용자 또는 시스템으로부터 특정 요청 사항이 발생되는지를 감지하는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 파일 버퍼링 방법.And copying and buffering the multimedia file into a buffer of the ring structure in units of file fragments, and detecting whether a specific request is generated from a user or a system at every buffering. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 8, 상기 제 2 단계 및 상기 제 3 단계는,The second step and the third step, 상기 버퍼링한 멀티미디어 파일들을 멀티미디어 재생 리스트의 순서에 따라 재생하는 중에 현재 시점부터 이전 시점으로의 멀티미디어 파일 후진 재생 요청신호가 입력되거나 이전 시점에 재생되었던 특정 멀티미디어 파일 재생 요청신호가 입력되거나 현재 시점부터 이후 시점으로의 멀티미디어 파일 전진 재생 요청신호가 입력되거나 이후 시점에 재생될 특정 멀티미디어 파일 재생 요청신호가 입력되면 상기 mUserBP를 해당되는 멀티미디어 파일이 버퍼링된 버퍼 포인트로 설정하는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 파일 버퍼링 방법.During playback of the buffered multimedia files in the order of the multimedia play list, a multimedia file backward play request signal is input from the current time point to the previous time point or a specific multimedia file play request signal that has been played at the previous time point is inputted from or after the current time point. When the multimedia file forward play request signal is input to the viewpoint or a specific multimedia file play request signal to be played later is input, the mUserBP is set as a buffer point at which the corresponding multimedia file is buffered. Buffering method. 제 9 항에 있어서,The method of claim 9, 상기 제 2 단계 및 상기 제 3 단계에서,In the second step and the third step, 상기 mUserBP를 해당되는 멀티미디어 파일이 버퍼링된 버퍼 포인트로 설정하는 과정에서, 상기 해당되는 멀티미디어 파일이 버퍼링되어 있지 않으면 상기 버퍼를 초기화시킨 후에 해당 멀티미디어 파일을 버퍼링하는 것을 특징으로 하는 휴대형 멀티미디어 재생기에서 파일 버퍼링 방법.In the process of setting the mUserBP as a buffer point in which the corresponding multimedia file is buffered, if the corresponding multimedia file is not buffered, the multimedia file is buffered after initializing the buffer. Way. 프로세서를 구비한 휴대형 멀티미디어 재생기에,In a portable multimedia player with a processor, 상기 링 구조의 버퍼에 현재 시점에 재생되는 포인트를 mUserBP, 이후 시점에서의 재생을 위해 현재 시점에 미리 읽어내는 포인트를 mEndBP, 버퍼링 시작 임계치를 mForwardTh로 정의한 상태에서,With mUserBP defining a point to be reproduced at the present time in the buffer of the ring structure, mEndBP as a point to read in advance at the present time for reproducing at a later time, and a buffering start threshold value as mForwardTh, 멀티미디어 파일 재생 요청신호가 입력되면 멀티미디어 파일 재생 리스트를 확인하는 제1 단계;A first step of checking a multimedia file play list when a multimedia file play request signal is input; 상기 버퍼를 상기 파일의 구조에 따라 다른 일정 개수의 파일 캐시로 나누고 상기 확인한 멀티미디어 파일 재생 리스트에 따라 해당되는 멀티미디어 파일들을 조각 단위로 상기 나뉘어진 캐시에 버퍼링 가능한 크기만큼 각각 순서대로 버퍼링하는 제2 단계; 및 A second step of dividing the buffer into a predetermined number of file caches according to the structure of the file, and buffering corresponding multimedia files in order of a size that can be buffered in the divided caches in pieces unit according to the checked multimedia file play list; ; And 상기 제2 단계에서 버퍼링한 멀티미디어 파일들을 재생하는 중에 상기 mUserBP부터 상기 mEndBP까지의 크기(mRemainSize)가 상기 mForwardTh보다 작아지면 상기 멀티미디어 파일 재생 리스트 중 상기 제 2 단계에서 버퍼링한 멀티미디어 파일들 이외의 멀티미디어 파일에 대하여 상기 제2 단계를 수행하는 제3 단계If the size mRemainSize from mUserBP to mEndBP becomes smaller than mForwardTh while playing the multimedia files buffered in the second step, multimedia files other than the multimedia files buffered in the second step of the multimedia file play list. A third step of performing the second step with respect to 를 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for realizing this.
KR1020050029404A 2004-08-26 2005-04-08 Method for playing the real-time multimedia file using multiple file caching in mobile multimedia player KR100673093B1 (en)

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 true KR20060046644A (en) 2006-05-17
KR100673093B1 KR100673093B1 (en) 2007-01-22

Family

ID=37149435

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050029404A KR100673093B1 (en) 2004-08-26 2005-04-08 Method for playing the real-time multimedia file using multiple file caching in mobile multimedia player

Country Status (1)

Country Link
KR (1) KR100673093B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100734397B1 (en) * 2005-09-12 2007-07-02 엘지전자 주식회사 apparatus and method for providing multimedia file, and apparatus and method for reproducing the download multimedia file

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100985617B1 (en) * 2008-05-20 2010-10-05 주식회사 팬택 Method and system for providing digital rights management file using caching

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10100241A1 (en) * 2001-01-05 2002-07-18 Hde Metallwerk Gmbh Heat exchanger tube for liquid or gaseous media
US7485747B2 (en) * 2001-06-04 2009-02-03 Eastman Chemical Company Two stage oxidation process for the production of aromatic dicarboxylic acids

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100734397B1 (en) * 2005-09-12 2007-07-02 엘지전자 주식회사 apparatus and method for providing multimedia file, and apparatus and method for reproducing the download multimedia file

Also Published As

Publication number Publication date
KR100673093B1 (en) 2007-01-22

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
CN101689137B (en) Use the digital data management in shared storage pond
CN105637470B (en) Method and computing device for dirty data management
KR20130055566A (en) Combining user content with supplemental content at a data storage device
KR20060132756A (en) Background transcoding
JP4227931B2 (en) Information storage device, information storage method, and information storage processing program
JP4634477B2 (en) Media file playback without interruption
JP4754585B2 (en) Data distribution and buffering
KR100673093B1 (en) Method for playing the real-time multimedia file using multiple file caching in mobile multimedia player
US20060294315A1 (en) Object-based pre-fetching Mechanism for disc drives
US20060206896A1 (en) Allocation class selection for file storage
KR20200053052A (en) Storage device and electronic device managing data transmitted to storage device
KR100458089B1 (en) Method of buffering the multimedia file in mobile multimedia player
US7552299B2 (en) Data-processing apparatus, data-processing method and program
TWI553462B (en) Hard disk device and method for decreasing power consumption
US20110106861A1 (en) Interface Techniques Providing Contiguous Storage For Files
US20070091736A1 (en) System and method for storing and managing digital content
KR100644714B1 (en) Method for managing buffer memory of reproducing apparatus for digital audio data
KR100592688B1 (en) Method of buffering for playing a mass storage audio file
JP2010015385A (en) Information processing apparatus, information processing method, and program
US20070140069A1 (en) Method and apparatus for reproducing data from an optical storage device
JP2008301479A (en) Wireless portable multimedia player and method thereof
JP2000347810A (en) File device
WO2012011235A1 (en) Recording and playback control device, recording and playback control method, program, and integrated circuit

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