KR101501858B1 - 리소스들을 보존하기 위한 전자 디바이스에 대한 미디어 파일 캐싱 - Google Patents

리소스들을 보존하기 위한 전자 디바이스에 대한 미디어 파일 캐싱 Download PDF

Info

Publication number
KR101501858B1
KR101501858B1 KR1020137013147A KR20137013147A KR101501858B1 KR 101501858 B1 KR101501858 B1 KR 101501858B1 KR 1020137013147 A KR1020137013147 A KR 1020137013147A KR 20137013147 A KR20137013147 A KR 20137013147A KR 101501858 B1 KR101501858 B1 KR 101501858B1
Authority
KR
South Korea
Prior art keywords
media file
electronic device
media
file
requests
Prior art date
Application number
KR1020137013147A
Other languages
English (en)
Other versions
KR20130082164A (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 KR20130082164A publication Critical patent/KR20130082164A/ko
Application granted granted Critical
Publication of KR101501858B1 publication Critical patent/KR101501858B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4332Content storage operation, e.g. storage operation in response to a pause request, caching operations by placing content in organized collections, e.g. local EPG data repository
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44204Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4436Power management, e.g. shutting down unused components of the receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4135Peripherals receiving signals from specially adapted client devices external recorder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6131Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via a mobile phone network

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스가 기술된다. 전자 디바이스는 프로세서 및 메모리에 저장된 명령들을 포함한다. 전자 디바이스는 미디어 파일에 대한 요청들을 모니터링하고, 미디어 파일 정보를 저장하며 그리고 미디어 파일 정보에 기초하여 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정한다. 미디어 파일이 저장되어야 한다고 결정된다면, 전자 디바이스는 미디어 파일을 세이브하고 그리고 미디어 파일을 제시한다.

Description

리소스들을 보존하기 위한 전자 디바이스에 대한 미디어 파일 캐싱{MEDIA FILE CACHING FOR AN ELECTRONIC DEVICE TO CONSERVE RESOURCES}
본 개시물은 일반적으로 전자 디바이스들에 관련한다. 좀 더 구체적으로는, 본 개시물은 리소스들을 보존하기 위한 미디어 파일 캐싱에 관련한다.
지난 수 십 년 동안 전자 디바이스들의 사용이 일반화되어 왔다. 특히, 전자 기술의 발전은 점점 더 복잡해지고 유용해지는 전자 디바이스의 비용을 절감시켜 왔다. 원가 절감 및 소비자 수요는 전자 디바이스의 사용을 확산시킴으로써, 이들이 현대 사회에서 실질적으로 편재 (ubiquitous) 하도록 해 왔다. 전자 디바이스의 이용이 확대되면서, 전자 디바이스의 새롭고 향상된 기능에 대한 수요도 역시 확대되어 왔다. 좀 더 구체적으로는, 더 빨리, 더 효율적으로 또는 더 높은 품질로써 기능들을 수행하는 전자 디바이스들이 자주 모색된다.
최근에, 네트워크들의 이용도 역시 크게 증가해 왔다. 많은 전자 디바이스들이 이러한 네트워크를 이용하여 데이터를 획득한다. 예를 들어, 많은 전자 디바이스들이 네트워크에 연결된 다른 전자 디바이스들로부터 데이터를 다운로드하거나 또는 스트리밍한다. 예를 들어, 전자 디바이스는 인터넷을 이용하여 원격 서버로부터 파일을 다운로드할 수도 있다. 몇 개의 전자 디바이스들은 무선 통신 디바이스들과 같은, 네트워크로의 무선 연결을 이용하여 데이터를 획득한다. 개인용 컴퓨터들과 같은 다른 전자 디바이스들은 네트워크로의 유선 연결을 이용할 수도 있다.
전자 디바이스들 및 네트워크들의 증가된 이용은 더 큰 데이터 액세스를 야기하였다. 전자 디바이스들 및 네트워크들의 많은 이용자들이 빈번하게 네트워크를 통해서 데이터에 액세스한다. 사실, 어떤 이용자들은 전자 디바이스들 및 네트워크들을 이용하여 네트워크 상의 동일하거나 유사한 데이터에 반복적으로 액세스한다. 네트워크 상의 동일하거나 유사한 데이터를 반복적으로 액세스하는 것은 비효율적일 수도 있으며, 전자 디바이스 및 네트워크 리소스들의 상대적으로 많은 양을 소비한다. 이러한 논의가 예시하는 바와 같이, 데이터 액세스 비효율성들을 감소시키기 위한 개선된 시스템들 및 방법들이 도움이 될 수도 있다.
리소스를 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스가 개시된다. 전자 디바이스는 프로세서 및 메모리에 저장된 명령들을 포함한다. 전자 디바이스는 미디어 파일에 대한 요청들을 모니터링하고, 미디어 파일 정보를 저장하며, 그리고 미디어 파일 정보에 기초하여 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정한다. 미디어 파일이 저장되어야 한다고 결정되는 경우, 전자 디바이스는 미디어 파일을 세이브 (save) 하고 그 미디어 파일을 제시한다.
미디어 파일은 네이티브 포맷 (native format) 으로 저장될 수도 있다. 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 것은, 요청들의 횟수에 기초할 수도 있다. 미디어 파일을 국지적으로 저장되어야 하는지 여부를 결정하는 것은, 원본 포맷 디코딩 비용에 기초할 수도 있다. 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 것은, 네이티브 포맷 디코딩 비용에 기초할 수도 있다. 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 것은, 트랜스코딩 비용에 기초할 수도 있다.
또한, 전자 디바이스는 미디어 파일에 대한 후속 요청들을 검출할 수도 있고, 그리고 미디어 파일에 대한 후속 요청들이 검출되면, 미디어 파일을 상기 네이티브 포맷으로 제시할 수도 있다. 미디어 파일은 전자 디바이스 상의 로컬 메모리에 세이브될 수도 있다. 미디어 파일은 로컬 네트워크 내의 다른 전자 디바이스 상의 로컬 메모리에 세이브될 수도 있다.
미디어 파일을 세이브하는 것은, 미디어 파일을 원본 포맷으로부터 네이티브 포맷으로 트랜스코딩하는 것을 포함할 수도 있다. 전자 디바이스는 또한 카운트 임계치를 결정할 수도 있다. 미디어 파일은, 만일 요청 카운트가 카운트 임계치 이상이라면, 저장되어야 한다고 결정될 수도 있다. 미디어 파일은, 만일 요청 레이트가 레이트 임계치 이상이라면, 저장되어야 한다고 결정될 수도 있다. 미디어 파일은 하나 이상의 미디어 스트림들을 포함할 수도 있다.
전자 디바이스는 무선 통신 디바이스일 수도 있다. 미디어 파일은 네이티브 포맷으로 제시될 수도 있다. 매니페스트 파일은 원본 포맷으로 제시될 수도 있다.
또한, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법이 개시된다. 이러한 방법은 미디어 파일에 대한 요청들을 모니터링하는 단계, 미디어 파일 정보를 저장하는 단계, 및 미디어 파일 정보에 기초하여 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 단계를 포함한다. 만일 미디어 파일이 저장되어야 한다고 결정된다면, 이러한 방법은 미디어 파일을 세이브하는 단계 및 미디어 파일을 전자 디바이스 상에 제시하는 단계를 포함한다.
또한, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 컴퓨터 프로그램 제품이 개시된다. 이러한 컴퓨터 프로그램 제품은 명령들을 가지는 비일시성 컴퓨터 판독가능 매체를 포함한다. 이러한 명령들은 전자 디바이스가 상기 미디어 파일에 대한 요청들을 모니터링하게 하고, 미디어 파일 정보를 저장하게 하며, 미디어 파일 정보에 기초하여 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하게 하기 위한 코드를 포함한다. 이러한 명령들은, 만일 상기 미디어 파일이 저장되어야 한다고 결정된다면, 전자 디바이스에게 상기 미디어 파일을 세이브하게 하고 미디어 파일을 제시하게 하기 위한 코드를 포함한다.
또한, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 장치가 개시된다. 이러한 장치는 미디어 파일에 대한 요청들을 모니터링하는 수단, 미디어 파일 정보를 저장하는 수단, 및 미디어 파일 정보에 기초하여 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 수단을 포함한다. 또한, 이러한 장치는 미디어 파일이 저장되어야 한다고 결정된다면, 미디어 파일을 세이브하고 그리고 미디어 파일을 제시하는 수단을 포함한다.
도 1 은 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 시스템들 및 방법들이 구현될 수도 있는 전자 디바이스들의 일 구성을 도시하는 블록도이다;
도 2 는 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 시스템들 및 방법들이 구현될 수도 있는 전자 디바이스들의 다른 구성을 도시하는 블록도이다;
도 3 은 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 시스템들 및 방법들이 구현될 수도 있는 무선 통신 디바이스, 기지국 및 다른 전자 디바이스들의 구성들을 도시하는 블록도이다;
도 4 는 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법의 일 구성을 도시하는 흐름도이다;
도 5 는 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법의 더욱 상세한 구성을 도시하는 흐름도이다;
도 6 은 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 시스템들 및 방법들이 구현될 수도 있는 전자 디바이스들의 더욱 상세한 구성을 도시하는 블록도이다;
도 7 은 네이티브 포맷을 결정하기 위하여 전자 디바이스에 의하여 이용될 수도 있는 정보의 일 예를 도시하는 도면이다;
도 8 은 미디어 파일을 네이티브 포맷 미디어 파일로서 로컬 메모리 캐시 내에 저장할지 여부를 결정하기 위하여 전자 디바이스에 의하여 이용될 수도 있는 미디어 파일 정보의 일 예를 도시하는 도면이다;
도 9 는 리소스들을 보존하기 위한 미디어 파일 캐싱의 하나의 예를 도시하는 블록도이다;
도 10 은 리소스들을 보존하기 위한 미디어 파일 캐싱의 다른 예를 도시하는 블록도이다;
도 11 은 전자 디바이스에서 사용될 수도 있는 다양한 컴포넌트들을 도시한다;
도 12 는 무선 통신 디바이스 내에 포함될 수도 있는 특정 컴포넌트들을 도시한다; 그리고
도 13 은 기지국 내에 포함될 수도 있는 특정 컴포넌트들을 도시한다.
본 명세서에서 사용될 때, 용어 "기지국" 은 일반적으로 통신 네트워크로의 액세스를 제공할 수 있는 통신 디바이스를 의미한다. 통신 네트워크들의 예들은 전화기 네트워크 (예를 들어, "육상 (land-line)" 네트워크, 예컨대 공용-교환 전화기 네트워크 (Public-Switched Telephone Network; PSTN) 또는 셀룰러 폰 네트워크), 인터넷, 근거리 네트워크 (Local Area Network; LAN), 광역 네트워크 (Wide Area Network; WAN), 거대도시 네트워크 (Metropolitan Area Network; MAN) 등을 포함하지만, 이것에 한정되는 것은 아니다. 기지국의 예들은, 예를 들어 셀룰러 전화기 기지국들 또는 노드들, 액세스 포인트들, 무선 게이트웨이들 및 무선 라우터들을 포함한다. 기지국은 특정 산업 표준들, 예컨대 미국 전기전자 학회 (Institute of Electrical and Electronics Engineers; IEEE) 802.11a, 802.11b, 802.11g, 802.11n, 802.11ac (예를 들어, 무선 충실도 (Wireless Fidelity) 또는 "Wi-Fi") 표준들에 따라서 동작할 수도 있다. 기지국이 호환될 수도 있는 표준들의 다른 예들은 IEEE 802.16 (예를 들어, 마이크로파 액세스를 위한 전세계적 상호운용 가능성 (Worldwide Interoperability for Microwave Access) 또는 "WiMAX"), 제 3 세대 파트너십 프로젝트 (Third Generation Partnership Project; 3GPP), 3GPP 장기 진화 (Long Term Evolution; LTE) 및 (예를 들어, 기지국이 노드B, 진화된 노드B (eNB) 등으로 지칭될 수 있는) 다른 것들을 포함한다. 비록 본 명세서에서 개시되는 시스템들 및 방법들 중 일부가 하나 이상의 표준들의 관점에서 기술될 수도 있지만, 이것은 본 개시물의 범위를 한정하여서는 안 되는데, 그 이유는 이러한 시스템들 및 방법들이 많은 시스템들 및/또는 표준들에 적용가능할 수도 있기 때문이다.
본 명세서에서 사용될 때, 용어 "무선 통신 디바이스"는 일반적으로, 기지국에 무선으로 접속할 수도 있는 전자 디바이스 (예를 들어, 액세스 단말, 클라이언트 디바이스, 클라이언트 국 (client station) 등) 의 한 종류를 의미한다. 무선 통신 디바이스는 대안적으로는 모바일 디바이스, 이동국, 가입자국, 사용자 장비 (UE), 원격국, 액세스 단말, 모바일 단말, 단말, 사용자 단말, 가입자 유닛 등으로 지칭될 수도 있다. 무선 통신 디바이스들의 예들은 랩탑 또는 데스크탑 컴퓨터들, 셀룰러 폰들, 스마트 폰들, 무선 모뎀들, e-리더기들, 태블릿 디바이스들, 게이밍 시스템들 등을 포함한다. 무선 통신 디바이스들은 기지국들과 연계하여 위에서 설명된 바와 같은 하나 이상의 산업 표준들에 따라서 동작할 수도 있다. 따라서, 통칭적 용어 "무선 통신 디바이스"는 산업 표준들에 따르는 변동하는 전문 용어들로써 기술된 무선 통신 디바이스들 (예를 들어, 액세스 단말, 사용자 장비 (UE), 원격 단말 등) 을 포함할 수도 있다.
전자 디바이스 (예를 들어, 무선 통신 디바이스) 가 미디어 파일들 또는 콘텐츠 (예를 들어, 오디오 파일들, 비디오 파일들, 모바일 브로드캐스트 서비스들 이네이블러 모음 (Mobile Broadcast Services Enabler Suite; BCAST) 텔레비전 (TV), 웹캐스트 TV 등) 을 디코딩하면, 그러한 전자 디바이스 또는 플랫폼은 미래 이용을 예견하도록 훈련될 수도 있다. 파일들 또는 콘텐츠를 보관 (archiving) 하기 위한 오버헤드가 수락가능하다고 결정되면, 이러한 파일들 또는 콘텐츠는 로컬 스토리지 디바이스들, 예컨대 플래시 메모리, 시큐어 디지털 (SD) 카드 내에, 또는 국지적으로 네트워킹된 디바이스들 내에 블루투스, Wi-Fi 등을 통하여 (예를 들어, IEEE 802.11 표준들에 따라서) 저장될 수도 있다. 예를 들어, 선호하는 곡명 또는 가수를 비디오 웹사이트 (예를 들어, 유튜브) 상에서 검색하는 사용자를 고려한다. 비디오 재생리스트들은 처음에 원격 웹사이트 서버 상에 저장된다. 전자 디바이스가 재생리스트에 액세스하기만 하면, 압축된 비디오 콘텐츠 또는 파일들은 로컬 스토리지 디바이스들 내에 또는 국지적으로 네트워킹된 디바이스들 내에 저장될 수도 있다. 재생리스트가 국지적으로 (예를 들어, 전자 디바이스 상에 또는 국지적으로 네트워킹된 디바이스 상에) 보관되면, 콘텐츠 또는 파일 액세스 오버헤드가 실질적으로 감소될 수도 있다. 더욱이, 하나 이상의 네이티브 포맷들 (native formats) 이 이용되어 콘텐츠를 국지적으로 저장할 수도 있는데, 이것도 역시 미래 이용을 위하여 요구되는 처리를 감소시킬 수도 있다. 빈번하게 이용되는 파일들 또는 콘텐츠를 보관하기 위한 이러한 캐싱 기술의 이용은, 전자 디바이스 (예를 들어, 무선 통신 디바이스) 에 대한 미디어 파일들 (예를 들어, 파일들 또는 스트림들) 의 전력 효율적인 디코딩을 일으킬 수도 있다. 물론, 미디어 파일들의 상이한 타입들이 처리 대역폭의 상이한 양들을 요구할 수도 있다. 이에 상응하여, 노래들 및 음악을 보관할 때와 비디오 및 무비들을 보관할 때에는 상이한 장점들이 획득될 수도 있다. 따라서, 본 명세서에서 개시된 시스템들 및 방법들은, 전자 디바이스 (예를 들어, 무선 통신 디바이스) 이동성과 독립적인 더 양호한 서비스 품질 (Quality of Service; QoS) 을 이네이블하면서, 증가된 전력 효율적인 미디어 (예를 들어, 오디오/비디오) 디코딩을 허용할 수도 있다.
다양한 구성들이 도면들을 참조하여 이제 설명되는데, 여기서 유사한 참조 번호들은 기능적으로 유사한 엘리먼트들을 표시할 수도 있다. 본 명세서에서 도면들에서 일반적으로 설명되고 도시되는 바와 같은 시스템들 및 방법들은 광범위한 상이한 구성들에서 배치되고 설계될 수도 있다. 따라서, 도면들에 표현된 바와 같은 수 개의 구성들의 후속하는 발명을 실시하기 위한 구체적인 내용은 청구된 바와 같은 범위를 한정하려고 의도되지 않으며, 단지 시스템들 및 방법들을 대표할 뿐이다.
도 1 은, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 시스템들 및 방법들이 구현될 수도 있는 전자 디바이스들 (102, 118) 의 일 구성을 도시하는 블록도이다. 전자 디바이스 A (102) 는 하나 이상의 미디어 파일들 또는 스트림들 (120) 을 네트워크 (116) 를 이용하여 획득할 수 있다. 예를 들어, 전자 디바이스 A (102) 는 하나 이상의 전자 디바이스들 B (118) 와 네트워크 (116) 를 이용하여 통신한다. 네트워크 (116) 의 예들은 근거리 네크워크 (LAN), 광역 네트워크 (WAN), 공중 교환 전화 네트워크 (PSTN), 인터넷 등을 포함한다. 전자 디바이스 A (102) 의 예들은 무선 통신 디바이스들 (예를 들어, 셀룰러 폰들, 스마트 폰들, 음악 플레이어들, 넷북들, 랩탑 컴퓨터들, e-리더기들, 태블릿 디바이스들, 개인 휴대정보 단말기들 (PDAs), 모바일 게이밍 시스템들 등), 데스크탑 컴퓨터들, 텔레비전들, "육상 " 폰들, 서버들, 게이밍 시스템들 등을 포함한다. 본 명세서에서 사용될 때, 용어 "미디어 파일"은, 당업계에 공지된 임의의 전달 프로시저로 네트워크 (116) 를 이용하여 전달 (예를 들어, 스트리밍, 다운로드 등) 될 수도 있는, 미디어 (예를 들어, 오디오, 비디오, 하나 이상의 사운드들, 하나 이상의 이미지들 등) 데이터 또는 콘텐츠 (예를 들어, 파일, 스트림, 패킷들 등) 를 지칭한다. 예를 들어, 미디어 파일 (120) 은, 다운로드되거나 또는 스트리밍 등이 될 수도 있는, 음악 파일 또는 콘텐츠, 비디오 파일 또는 콘텐츠 및/또는 이미지 파일 또는 콘텐츠일 수도 있다. 미디어 파일 (120) 의 더 특정한 예들은 BCAST TV, 웹캐스트 TV, 노래, 무비 또는 쇼 등을 포함한다.
하나 이상의 전자 디바이스들 B (118) 는 네트워크 (116) 를 이용하여 전자 디바이스 A (102) 와 통신한다. 전자 디바이스 B (118) 의 예들은 데스크탑 컴퓨터들, 웹 서버들, 무선 통신 디바이스들 및 다른 전자 디바이스들 등을 포함한다. 하나 이상의 전자 디바이스들 B (118) 는 하나 이상의 미디어 파일들 (120) 을 포함한다.
전자 디바이스 A (102) 는 하나 이상의 프로세서들 (112), 메모리 (106) 및 전력 소스 (114) 를 포함한다. 메모리 (106) 는 전자 정보를 저장할 수 있는 하나 이상의 디바이스/디바이스들을 포함한다. 메모리 (106) 는 전자 디바이스 A (102) 내에서 제작될 수도 있고 그리고/또는 착탈식일 수도 있다. 예를 들어, 메모리 (106) 는 하드 디스크 드라이브, 플래시 메모리, 광학적 드라이브 (예를 들어, 컴팩트 디스크 (CD) 드라이브, 디지털 비디오 디스크 (DVD) 드라이브, 블루-레이® 디스크 드라이브 등), 시큐어 디지털 (SD) 카드, 범용 시리얼 버스 (USB) 드라이브 등일 수도 있다. 본 명세서의 시스템들 및 방법들에 따르면, 용어 "로컬 메모리"는 일반적으로 전자 디바이스 내에 제작될 수도 있고, 전자 디바이스로 커플링될 수도 있으며, 또는 로컬 네트워크 내의 전자 디바이스에 의하여 액세스될 수도 있는 메모리를 지칭한다. 메모리 (106) 는 캐시 (108) 를 포함한다. 캐시 (108) 는 가능한 미래 데이터 요청들에 대한 데이터 (예를 들어 파일들) 를 저장하도록 이용되는 메모리 (106) 의 일부이다. 본 명세서에서 개시된 시스템들 및 방법들에 따르면, 캐시 (108) 는 리소스 (예를 들어, 전력) 소비를 절감하기 위하여 이용될 수도 있다.
전력 소스 (114) 는 전기적 전력을 획득하기 위하여 이용되는 배터리 및/또는 인터페이스, 예컨대 전력을 예를 들어 전력 아웃렛으로부터 수신하기 위하여 이용되는 범용 시리얼 버스 (USB) 포트 또는 플러그 또는 어댑터일 수도 있다. 전자 디바이스 A (102) 는 네트워크 (116) 를 이용하여 미디어 파일 (120) 로의 액세스를 요청하고 및/또는 이에 액세스할 수도 있다. 예를 들어, 전자 디바이스 A (102) 는 미디어 파일들 (120), 예컨대 음악, 무비들 또는 이미지들을 다운로드하거나 스트리밍한다. 이러한 미디어 파일들 (120) 은 사용자에게 전자 디바이스 A (102) 에 의하여 제시될 수도 있다. 예를 들어, 전자 디바이스 A (102) 는 하나 이상의 미디어 파일들 (120) 로서 전자 디바이스 B (118) 로부터 취출되었던 이미지들, 비디오들 및/또는 오디오를 디스플레이하거나 또는 출력할 수도 있다.
전자 디바이스 A (102) 는 반복적으로 미디어 파일 (120) 을 요청하거나 액세스할 수도 있다. 예를 들어, 전자 디바이스 A (102) 의 사용자는 동일한 미디어 파일 (120) (예를 들어, 이미지, 비디오 또는 오디오) 에 반복적으로 액세스할 수도 있다. 예를 들어, 전자 디바이스 A (102) 의 사용자는 전자 디바이스 B (118) 에 의하여 제공되는 동일한 노래를 반복적으로 청취하거나 동일한 비디오를 시청하기를 원할 수도 있다. 동일한 미디어 파일 (120) 에 반복적으로 액세스하는 것은 비효율적이거나 불필요하게 네트워크 (116), 프로세서 (112), 메모리 (106) 및/또는 전력 소스 (114) 리소스들을 소모할 수도 있다. 예를 들어, 전자 디바이스 A (102) 가 미디어 파일 (120) 을 다운로드하거나 또는 스트리밍할 때마다, 프로세서 (112) 는 미디어 파일 (120) 을 디코딩할 필요가 있어, 이를 통하여 프로세서 (112) 리소스들 및 전력 소스 (114) 로부터의 전력을 소모하도록 할 수도 있다. 즉, 미디어 파일 (120) 은 제시가능한 포맷이 아닐 수도 있거나 또는 네이티브 포맷에서와 같이 효율적으로 제시되지 않는 포맷일 수도 있다. 따라서, 미디어 파일 (120) 은 무선 통신 디바이스 (102) 상에서의 프리젠테이션을 위하여 디코딩될 수도 있다. 또한, 네트워크 (116) 대역폭이 미디어 파일 (120) 의 전송 도중에 소모된다는 것에 주의하여야 한다.
전자 디바이스 A (102) 는 에이전트 (104) 를 포함할 수도 있다. 에이전트 (104) 는 전자 디바이스 A (102) 리소스들, 예컨대 전력 소스 (114), 프로세서 (112) 및/또는 메모리 (106) 리소스들을 보존하려고 시도하는 소프트웨어 및/또는 하드웨어 모듈일 수도 있다. 더욱이, 에이전트 (104) 는 네트워크 (116) 리소스들을 보존하려고 시도할 수도 있다. 일반적인 의미에서는, 에이전트 (104) 는 언제 미디어 파일 (120) 을 저장 또는 캐싱함으로써 리소스들이 보존될 가능성이 있는지를 결정할 수도 있다. 미디어 파일 (120) 은 원본 포맷 미디어 파일 (111) 로서 및/또는 네이티브 포맷 미디어 파일 (110) 로서 저장될 수도 있다. 예를 들어, 오디오, 비디오 또는 이미지 파일을 국지적으로 원본 포맷 (111) 으로 및/또는 네이티브 포맷 (110) 으로 제시하는 것은, 미디어 파일 (120) 을 네트워크 (116) 를 통하여 전송하는 것 및 프리젠테이션을 위하여 미디어 파일 (120) 을 디코딩하기 위하여 프로세서 (112), 메모리 (106) 및/또는 전력 소스 (114) 리소스들을 이용하는 것보다 더 적은 전력 소스 (114), 프로세서 (112), 네트워크 (116) 및/또는 메모리 (106) 리소스들을 소모할 수도 있다. 좀 더 구체적으로는, 미디어 파일 (120) 을 제시하기 위하여, 전자 디바이스 A (102) 는 미디어 파일 (120) 을 수신하고, 미디어 파일 (120) 패킷들을 결합하며, 미디어 파일 (120) 을 채널 디코딩하고 (channel decode), 미디어 파일 (120) 내의 에러들을 검출/정정하며, 잘못 수신된 미디어 파일 (120) 의 재송신을 요청하고, 미디어 파일 (120) 을 프리젠테이션을 위하여 디코딩 (예를 들어, 압축해제) 등을 할 필요가 있을 수도 있다. 이것은 로컬 메모리 (106) 내의 캐시 (108) 로부터의 네이티브 포맷 미디어 파일 (110) 또는 원본 포맷 미디어 파일 (111) 을 프리젠테이션을 위하여 디코딩 (예를 들어, 압축해제) 하는 것보다 더 많은 리소스들을 요구할 수도 있다. 예를 들어, 다운로드되거나 스트리밍된 동화상 전문가 그룹-1 (MPEG-1) 오디오 계층 3 (MP3) 파일 (예를 들어, 미디어 파일 (120)) 을 디코딩 (예를 들어, 압축해제) 하는 것은 30-40 밀리암페어 (mA) 를 전력 소스 (114) 로부터 소모할 수도 있는데, 반면에 메모리 (106) 로부터의 네이티브 포맷 (110) 의 파일을 디코딩하는 것은 5 mA를 전력 소스 (114) 로부터 소모할 수도 있다.
하나의 구성에서는, 전자 디바이스 A (102) 및 전자 디바이스 B (118) 사이에서 전송된 데이터 (예를 들어, 미디어 데이터 (110, 111)) 는 컨테이너들 내에서 캡슐화되어, 이것의 콘텐츠, 콘텐츠 포맷 및/또는 (예를 들어, 이것의 진실성 (authenticity) 를 검증하기 위한, 이것의 무결성 (integrity) 을 서명을 이용하여 검증하기 위한 등의) 포텐셜 보안 준비들 (potential security provisions) 을 특정한다. 이것은 파일 프로토콜에 따라서 수행될 수도 있다. (다른 정보를 스트립하고 (strip) 그리고) 의도된 콘텐츠로의 액세스를 획득하기 위한 파일 프로토콜을 처리하기 위하여 이용되는 하나 이상의 프로시저들은 "디코딩" 또는 "파일 디코딩" 으로서 지칭될 수도 있다.
본 명세서에서 사용될 때, 용어 "네이티브 포맷"은 효율적으로 디코딩 및/또는 제시될 수도 있는 파일 포맷을 지칭한다. 예를 들어, 전자 디바이스 A (102) 는 네이티브 포맷 미디어 파일들 (110) 을, 다른 (예를 들어, "비-네이티브") 포맷들의 미디어 파일들 (예를 들어, 미디어 파일들 (120)) 보다 더 효율적으로 디코딩 및/또는 제시하는 어떤 소프트웨어 및/또는 하드웨어를 포함할 수도 있다. 일 구성에서는, "네이티브 포맷"은 플랫폼 (예를 들어, 전자 디바이스 A (102)) 이 처리 또는 처리 단계들의 최소 양을 수행하도록 요구하는 프로토콜을 지칭할 수도 있다. 이에 상응하여, "네이티브 포맷"은 가장 효율적으로 처리되는 프로토콜을 지칭할 수도 있다. 일 구성에서는, 전자 디바이스 A (102) 는 네이티브 포맷 미디어 파일들 (110) 을 (효율적으로) 디코딩 및 제시하도록 설계된 멀티미디어 플레이어 소프트웨어를 포함한다. 추가적으로 또는 대안적으로는, 전자 디바이스 A (102) 는 네이티브 포맷 미디어 파일들 (110) 의 효율적인 디코딩을 보조하는 다른 특정한 하드웨어 및/또는 소프트웨어 모듈들을 포함할 수도 있다. 일 구성에서는, 전자 디바이스 A (102) 는 네이티브 포맷 미디어 파일들 (110) 을 위한 하드웨어 가속 모듈을 포함한다. 하드웨어 가속 모듈은 전자 디바이스 A (102) 가 네이티브 포맷 미디어 파일들 (110) 을, 미디어 파일들 (120) 을 상이한 포맷으로 디코딩 및/또는 제시하는 것보다 더 적은 전력 및/또는 처리 리소스들을 이용하여 디코딩 및/또는 제시하도록 이네이블한다. 추가적으로, 네이티브 포맷 미디어 파일들 (110) 은 다른 파일 포맷들보다, 전자 디바이스 A (102) 에 대해 더 적은 디코딩 복잡성을 가질 수도 있다.
일 구성에서는, 에이전트 (104) 는 전자 디바이스 A (102) 의 미디어 파일 (120) 로의 액세스를 모니터링하고 그리고 제어한다. 예를 들어, 에이전트 (104) 는 미디어 파일 (120) 이 로컬 메모리 (106) 캐시 (108) 내에 원본 포맷 미디어 파일 (111) 로서 또는 네이티브 포맷 미디어 파일 (110) 로서 저장 (예를 들어, 캐싱) 되어야 하는지 여부를 결정할 수도 있다. 예를 들어, 에이전트 (104) 는 얼마나 많이 전자 디바이스 A (102) 가 특정한 미디어 파일 (120) 로 액세스했는지를 모니터링할 수도 있다. 에이전트 (104) 는 전자 디바이스 A (102) 가 미디어 파일 (120) 을 네트워크 (116) 를 이용하여 요청했거나 액세스했던 횟수를 카운팅한다. 만일 미디어 파일 (120) 요청들의 횟수가 카운트 임계치에 도달하면, 에이전트 (104) 는 미디어 파일 (120) 을 원본 포맷으로 (예를 들어, 원본 포맷 미디어 파일 (111) 로서) 또는 네이티브 포맷으로 (예를 들어, 네이티브 포맷 미디어 파일 (110) 로서) 세이브 (예를 들어, 저장 또는 캐싱) 한다. 만일 전자 디바이스 A (102) 가 다시 미디어 파일 (120) 을 요청하거나 또는 액세스하면, 전자 디바이스 A (102) 는 원본 포맷 미디어 파일 (111) 또는 네이티브 포맷 미디어 파일 (120) 을 로컬 메모리 (106) 캐시 (108) 로부터 제시한다. 즉, 에이전트 (104) 는 후속 액세스 요청들을 검출하고 그리고 전자 디바이스 A (102) 에게, 전자 디바이스 B (118) 로부터의 미디어 파일 (120) 대신에 원본 포맷 미디어 파일 (111) 또는 네이티브 포맷 미디어 파일 (110) 을 제시하도록 지시할 수도 있다. 이것은 프로세서 (112), 전력 소스 (114), 네트워크 (116) 및/또는 메모리 (106) 리소스들을 보존할 수도 있다. 더욱이, 로컬 메모리 (106) 로부터 미디어 파일 (110, 111) 을 제시하는 것은, 모바일 전자 디바이스 A (102) 가 어떤 상태인지와 무관한 더 신뢰성 있는 프리젠테이션을 제공할 수도 있다. 예를 들어, 전자 디바이스 A (102) 가 무선 통신 디바이스라고 가정하면, 미디어 파일 (110, 111) 을 로컬 메모리로부터 제시하는 것은, 미디어 파일들 (120) 을 다운로드 또는 스트리밍하기 위하여 통상적으로 이용되는 무선 신호와 독립적일 수도 있다. 이것이 더 양호한 QoS를 이네이블할 수도 있다.
더 일반적인 의미에서는, 에이전트 (104) 는, 이 에이전트 (104) 가 리소스들이 이렇게 함으로써 보존될 가능성이 있다고 결정하는 경우에는, 미디어 파일 (120) 을 원본 또는 네이티브 포맷에서 저장함으로써 리소스들을 보존하려고 시도할 수도 있다. 이것은 다양한 방식들로 구현될 수도 있다. 위에서 논의된 바와 같이, 하나의 구성은 카운터 및 임계치를 이용함으로써, 원본 또는 네이티브 포맷 미디어 파일 (110) 을 저장 및/또는 제시하기 위하여 이용된 리소스들이 후속 요청들에 대하여 미디어 파일 (120) 을 획득, 디코딩 및/또는 제시하기 위하여 이용되는 리소스들보다 더 적을 가능성이 있을 것이라고 에이전트 (104) 가 결정하게 할 수도 있다. 예를 들어, 에이전트 (104) 는 10 개의 액세스들 또는 요청들로서 카운트 임계치를 설정할 수도 있다. 만일 전자 디바이스 A (102) 가 동일한 미디어 파일 (120) 을 10 번 요청하거나 또는 액세스하면, 에이전트 (104) 는 전자 디바이스 A (102) 가 후속하여 동일한 미디어 파일 (120) 을 요청 또는 액세스할 가능성이 있어서, 후속 요청들을 위하여 미디어 파일 (120) 을 세이브하는 것 및 원본 포맷 미디어 파일 (111) 또는 네이티브 포맷 미디어 파일 (110) 을 제시하는 것이 리소스들을 보존하도록 할 것이라고 결정한다. 또한, 추가적인 또는 대안적인 정보를 수반하는, 더욱 복잡한 접근 방법들이 역시 이용될 수도 있다. 추가적인 또는 대안적인 정보의 예들은 요청/액세스 레이트들, 미디어 파일 (120) 사이즈, 미디어 파일 (120) 타입, 이용 이력, 장르, 선호도들, 신호 강도, 신호 대 잡음 비 (Signal to Noise Ratio; SNR), 에러 레이트들 등을 포함한다.
도 2 는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 시스템들 및 방법들이 구현될 수도 있는 전자 디바이스들 (202, 218, 224) 의 다른 구성을 도시하는 블록도이다. 이러한 구성에서는, 전자 디바이스 A (202) 는 네트워크 (216) 를 이용하여 하나 이상의 전자 디바이스들 B (218) 과 통신한다. 전자 디바이스 A (202) 는 에이전트 (204), 프로세서 (212) 및 전력 소스 (214) 를 포함한다. 하나 이상의 전자 디바이스들 B (218) 는 하나 이상의 미디어 파일들 (220) 을 포함한다. 예를 들어, 전자 디바이스 A (202) 는 인터넷 (네트워크 (216)) 을 통하여 웹 서버 (전자 디바이스 B (218)) 와 통신하는 스마트 폰 또는 컴퓨터일 수도 있다. 다른 전자 디바이스 C (224) 는 메모리 (206) 내에 캐시 (208) 를 포함하고 그리고 로컬 네트워크 (222) 내의 전자 디바이스 A (202) 와 통신할 수도 있다. 예를 들어, 전자 디바이스 A (202) 는 무선 및/또는 유선 링크 (예를 들어, 블루투스, Wi-Fi, USB, 이더넷 등) 을 이용하여 전자 디바이스 C (224) 와 통신할 수도 있다. 전자 디바이스 C (224) 의 예들은 데스크탑 컴퓨터들, 랩탑 컴퓨터들, 서버들, 외부 스토리지 디바이스들, 무선 헤드셋들 등을 포함한다.
도 2 에서 도시된 구성에서는, 전자 디바이스 A (202) 는 미디어 파일 (220) 을 반복적으로 요청 또는 액세스할 수도 있다. 도 1 과 관련하여 유사하게 논의된 바와 같이, 에이전트 (204) 는 리소스들을 보존하기 위하여, 미디어 파일 (220) 이 국지적으로 저장되어야 하는지 여부를 결정한다. 이러한 구성에서는, 에이전트 (204) 가 이렇게 하는 것이 리소스들을 보존할 가능성이 있을 수 있다고 결정하는 경우, 전자 디바이스 A (202) 는 원본 포맷 미디어 파일 (211) 또는 네이티브 포맷 미디어 파일 (210) 을 전자 디바이스 C (224) 상의 로컬 메모리 (206) 내의 캐시 (208) 내에 저장한다. 즉, 도 1 에 도시된 구성들에 추가하거나 또는 이에 대안적으로, 로컬 메모리 (206) 는 로컬 네트워크 (222) 내의 별개의 전자 디바이스 (전자 디바이스 C (224)) 내에 포함될 수도 있다. 예를 들어, 에이전트 (204) 는, 로컬 네트워크 (222) 내의 전자 디바이스 C (224) 상의 로컬 메모리 (206) 내의 캐시 (208) 로부터의 네이티브 포맷 미디어 파일 (210) 을 저장 및 액세스하는 것이, 그 미디어 파일 (220) 을 전자 디바이스 B (218) 로부터 네트워크 (216) 를 이용하여 (가능하게는 반복적으로) 다운로드하고 디코딩하는 것에 비교할 때, 그 리소스들 (예를 들어, 프로세서 (212), 전력 소스 (214), 네트워크 (216) 리소스들 등) 을 보존할 가능성이 있을 것이라고 결정할 수도 있다.
도 3 은 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 시스템들 및 방법들이 구현될 수도 있는 무선 통신 디바이스 (302), 기지국 (330) 및 다른 전자 디바이스들 (318, 324) 의 구성들을 도시하는 블록도이다. 무선 통신 디바이스 (302) 는 에이전트 (304), 메모리 A (306a) 내의 캐시 A (308a), 프로세서 (312) 및 전력 소스 (314) 를 포함한다. 무선 통신 디바이스 (302) 는 전자 디바이스 C (324) 와 통신할 수도 있는데, 이것은 메모리 B (306b) 내의 캐시 B (308b) 를 포함한다. 무선 통신 디바이스 (302) 는 무선으로 기지국 (330) 과 통신하기 위한 하나 이상의 안테나들 (326) 을 포함한다. 또한, 기지국 (330) 은 무선 통신을 위하여 이용되는 하나 이상의 안테나들 (328) 을 포함한다. 기지국 (330) 은 네트워크 (316) 를 이용하여 하나 이상의 전자 디바이스들 B (318) 과 통신한다. 하나 이상의 전자 디바이스들 B (318) 는 하나 이상의 미디어 파일들 (320) 을 포함한다. 무선 통신 디바이스 (302) 는 하나 이상의 전자 디바이스들 B (318) 상의 하나 이상의 미디어 파일들 (320) 을 기지국 (330) 및 네트워크 (316) 를 이용하여 요청 또는 액세스할 수도 있다.
무선 통신 디바이스 (302) 상의 에이전트 (304) 는, 언제, 원본 포맷 미디어 파일 A (311a) 또는 네이티브 포맷 미디어 파일 A (310a) 을 로컬 메모리 A (306a) 내의 캐시 A (308a) 내에 저장함으로써 및/또는 원본 포맷 미디어 파일 B (311b) 또는 네이티브 포맷 미디어 파일 B (310b) 를 로컬 메모리 B (306b) 내의 캐시 B (308b) 내에 저장함으로써, 리소스들 (예를 들어, 프로세서 (312), 전력 소스 (314) 등) 이 보존될 가능성이 있을 수도 있는지를 결정한다. 에이전트 (304) 가 원본 포맷 미디어 파일 (311a 및 311b) 또는 네이티브 포맷 미디어 파일 (310a 및 310b) 을 로컬 메모리 (306a 및 306b) 내에 저장함으로써 리소스들이 보존될 가능성이 있을 것이라고 결정하면, 무선 통신 디바이스 (302) 는 미디어 파일 (320) 을 원본 포맷 미디어 파일 A (311a) 또는 네이티브 포맷 미디어 파일 A (310a) 로서 무선 통신 디바이스 (302) 상의 메모리 A (306a) 내의 캐시 A (308a) 내에 및/또는 원본 포맷 미디어 파일 B (311b) 또는 네이티브 포맷 미디어 파일 B (310b) 로서 전자 디바이스 C (324) 상의 메모리 B (306b) 내의 캐시 B (308b) 내에 저장한다. 만일 무선 통신 디바이스 (302) 가 후속하여 동일한 미디어 파일 (320) 을 요청하거나 액세스하려고 시도한다면, 에이전트 (304) 는 대신에 무선 통신 디바이스 (302) 에게 원본 포맷 미디어 파일 (311a 및 311b) 또는 네이티브 포맷 미디어 파일 (310a 및 310b) 을 로컬 메모리 A (306a) 또는 로컬 메모리 B (306b) 로부터 제시하도록 지시할 수도 있다.
도 4 는 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법 (400) 의 일 구성을 도시하는 흐름도이다. 전자 디바이스 A (102) 는 하나 이상의 미디어 파일들에 대한 요청들을 모니터링한다 (단계 402). 일반적으로, 전자 디바이스 A (102) 는 미디어 파일 (120) 액세스 요청들에 대하여 소프트웨어 및/또는 하드웨어 컴포넌트들을 모니터링한다. 예를 들어, 에이전트 (104) 는 네트워크 (116) 를 이용하여 미디어 파일 (120) 을 액세스하려는 요청들에 대하여 전자 디바이스 A (102) 상의 하나 이상의 소프트웨어 애플리케이션들 또는 하나 이상의 하드웨어 디바이스들을 모니터링할 수도 있다. 예를 들어, 에이전트 (104) 는 브라우저 애플리케이션 또는 멀티미디어 플레이어 애플리케이션을 미디어 파일 (120) 요청들에 대하여 모니터링할 수도 있다 (단계 402). 추가적으로 또는 대안적으로는, 에이전트 (104) 는 운영 체제 (Operating System; OS) 및/또는 애플리케이션 프로그래밍 인터페이스 (Application Programming Interface; API) 를 미디어 파일 (120) 요청들에 대하여 모니터링할 수도 있다 (단계 402). 더욱이, 에이전트 (104) 는 전자 디바이스 A (102) 상에 포함된 네트워킹 하드웨어를 미디어 파일 (120) 요청들에 대하여 모니터링할 수도 있다 (단계 402).
전자 디바이스 A (102) 는 미디어 파일 정보를 저장한다 (단계 404). 예를 들어, 에이전트 (104) 가 미디어 파일 (120) 요청들을 (모니터링 (단계 402) 도중에) 검출하는 경우, 에이전트 (104) 는 그 미디어 파일 요청과 연관된 정보를 획득 및/또는 저장할 수도 있다 (단계 404). 좀 더 구체적으로는, 에이전트 (104) 는 미디어 파일 정보 예컨대: 미디어 파일 (120) 명칭, 미디어 파일 (120) 위치 또는 어드레스 (예를 들어, 인터넷 프로토콜 (IP) 어드레스), (예를 들어, 바이트 단위의) 미디어 파일 (120) 사이즈, 미디어 파일 (120) 타입 (예를 들어, 비디오, 오디오, 이미지 등), 미디어 파일 (120) 포맷, 요청 시간, 및/또는 요청들의 이루어진 횟수 등을 저장할 수도 있다 (단계 404). 몇 개의 구성들에서는, 이러한 정보는 정보 또는 메타데이터, 예컨대 장르, 작가, 발행자 등도 역시 포함할 수도 있다. 미디어 파일 (120) 포맷들의 예들은 윈도우 미디어 비디오 (Windows Media Video; WMV), 퀵타임 파일 포맷 (MOV), 진보된 오디오 코딩 (Advanced Audio Coding; AAC), MP3, 파형 오디오 파일 포맷 (Waveform Audio File Format; WAV) 등을 포함한다.
전자 디바이스 A (102) 는 미디어 파일 (120) 이 로컬 메모리 (106) 캐시 (108) 내에 저장되어야 하는지 여부를 결정한다 (단계 406). 이러한 결정 (단계 406) 은 미디어 파일 정보 및 미디어 파일 (120) 이 이미 로컬 메모리 (106) 캐시 (108) 내에 저장되었는지 여부에 기초할 수도 있다. 일반적으로, 미디어 파일 (120) 이 저장되어야 하는지 여부의 결정 (단계 406) 은 미디어 파일 (120) 을 국지적으로 저장하는 것 또는 캐싱하는 것이 리소스들을 보존할 가능성이 있을 것인지 여부에 기초할 수도 있다. 이러한 결정 (단계 406) 은 미디어 파일 정보의 하나 이상의 조각들을 이용할 수도 있다.
일 구성에서는, 에이전트 (104) 는 미디어 파일 (120) 액세스들 또는 요청들의 횟수를 카운트하여 미디어 파일 (120) 이 저장되어야 하는지 여부를 결정한다 (단계 406). 이러한 미디어 파일 요청 카운트가 카운트 임계치와 비교된다. 카운트 임계치는 후속 액세스들 또는 요청들이 발생할 가능성이 있다고 간주되는 요청들의 횟수를 나타낸다. 예를 들어, 전자 디바이스 A (102) 가 이전에 10 회 요청했던 특정한 비디오 파일에 대하여, 후속 요청들이 있을 가능성이 있다고 간주될 수도 있다. 무선 통신 디바이스 (102) 가 비디오 파일을 네트워크 상에서 요청할 때마다, 에이전트 (104) 는 그 비디오 파일에 대한 카운트를 증분하고 그리고 이것을 카운트 임계치와 비교하여, 비디오 파일이 저장되어야 하는지 여부를 결정한다 (단계 406). 좀 더 일반적으로는, 에이전트 (104) 는, 미디어 파일 (120) 을 국지적으로 원본 및/또는 네이티브 포맷에서 저장하는 것이 리소스들을 보존할 가능성이 있는지 여부를 결정한다 (단계 406). 만일 비디오 파일이 10 회 요청되었다면, 카운터 값은 카운트 임계치 이상이다. 이러한 경우에서는, 전자 디바이스 A (102) 또는 에이전트 (104) 는 비디오 파일이 원본 포맷 미디어 파일 (111) 또는 네이티브 포맷 미디어 파일 (110) 로서 로컬 메모리 (106) 캐시 (108) 내에 세이브되어야 한다고 결정한다 (단계 406).
다른 구성에서는, 전자 디바이스 A (102) 는 미디어 파일 (120) 을 저장할지 여부를 요청 레이트 및 레이트 임계치에 기초하여 결정한다 (단계 406). 예를 들어, 에이전트 (104) 는 미디어 파일 (120) 요청들의 횟수 및 요청들이 발생된 시간들을 저장한다 (단계 404). 요청들의 횟수 및 시간들을 이용하면서, 에이전트 (104) 는 요청 레이트를 결정할 수도 있다. 만일 전자 디바이스 A (102) 의 요청 레이트가 레이트 임계치 이상이라면, 전자 디바이스 A (102) 는 미디어 파일 (120) 이 네이티브 포맷으로 로컬 메모리 (106) 캐시 (108) 내에 저장되어야 한다고 결정한다 (단계 406). 다른 구성들에서는, 미디어 파일 (120) 이 저장되어야 하는지 여부의 결정 (단계 406) 하기 위하여 많은 다른 인자들이 추가적으로 또는 대안적으로는 고려될 수도 있다. 이러한 다른 인자들 및 어떻게 이들이 이용될 수도 있는지에 대한 더 세부사항들이 아래에서 제공된다.
만일 전자 디바이스 A (102) 가 미디어 파일 (120) 이 저장되지 않아야 한다고 결정한다면 (단계 406), 이 전자 디바이스 A (102) 는 미디어 파일 (120) 이 이미 로컬 메모리 (106) 캐시 (108) 내에 저장되었는지 여부를 결정할 수도 있다 (단계 408). 예를 들어, 만일 에이전트 (104) 가 요청되는 중인 미디어 파일 (120) 에 대응하는 원본 포맷 미디어 파일 (111) 또는 네이티브 포맷 미디어 파일 (110) 을 이미 저장했다면, 에이전트 (104) 는 전자 디바이스 A (102) 에게 원본 포맷 미디어 파일 (111) 또는 네이티브 포맷 미디어 파일 (110) 을 (예를 들어, 미디어 파일 (120) 을 네트워크 (116) 상에서 액세스하는 대신에) 로컬 메모리 (106) 로부터 제시하도록 (단계 414) 지시한다. 전자 디바이스 A (102) 는 하나 이상의 미디어 파일들 (120) 에 대한 요청들을 모니터링 (단계 402) 하는 것을 계속할 수도 있다.
만일 전자 디바이스 A (102) 가 미디어 파일 (120) 을 저장하지 않기로, 그리고 미디어 파일 (120) 이 이미 저장되지 않았다고 결정하면 (단계 406), 이 전자 디바이스 A (102) 는 미디어 파일 (120) 을 제시한다 (단계 410). 예를 들어, 전자 디바이스 A (102) 는 미디어 파일 (120) 을 다운로드 또는 스트리밍, 디코딩 및 제시할 수도 있다 (단계 410). 예를 들어, 전자 디바이스 A (102) 는 음악 파일을 다운로드하고, 음악 파일을 디코딩하며, 그리고 음악 파일을 멀티-미디어 플레이어 및 하나 이상의 스피커들을 이용하여 출력한다. 그러면, 전자 디바이스 A (102) 는 하나 이상의 미디어 파일들 (120) 에 대한 요청들을 모니터링 (단계 402) 하는 것을 계속할 수도 있다.
만일 전자 디바이스 A (102) 가 미디어 파일 (120) 이 저장되어야 한다고 결정하면 (단계 406), 이 전자 디바이스 A (102) 는 미디어 파일 (120) 을 획득 (예를 들어, 다운로드, 스트리밍 등) 하고 그리고 미디어 파일 (120) 을 원본 또는 네이티브 포맷으로 세이브할 수도 있다 (단계 412). 예를 들어, 미디어 파일 (120) 이 비디오 파일이라고 가정한다. 에이전트 (104) 는 비디오 파일을 이것의 원본 포맷으로 세이브하거나 또는 비디오 파일을 네이티브 포맷으로 트랜스코딩한다. 예를 들어, 만일 비디오 파일이 윈도우 미디어 비디오 (WMV) 파일이고 그리고 전자 디바이스 A (102) 의 네이티브 포맷이 H.264 라면, 에이전트 (104) 는 WMV 파일을 H.264 포맷으로 트랜스코딩할 수도 있다. 이러한 트랜스코딩은 미디어 파일 (120) 이 디코딩되는 동안에 수행될 수도 있다. 즉, 전자 디바이스 A (102) 는 미디어 파일 (120) 을 디코딩 및 트랜스코딩할 수도 있다. 그러나, 만일 미디어 파일 (120) 이 이미 네이티브 포맷이라면, 그러면, 전자 디바이스 A (102) 는 미디어 파일 (120) 을 트랜스코딩하지 않을 수도 있다. 오히려, 전자 디바이스 A (102) 는 미디어 파일 (120) 을 네이티브 포맷 미디어 파일 (110) 로서 로컬 메모리 (106) 캐시 (108) 내에 저장할 수도 있다. 대안적으로는, 만일 에이전트 (104) 가, 미디어 파일 (120) 이 이것의 (즉, 네이티브 포맷이 아닌) 원본 포맷으로 세이브되어야 한다고 결정한다면, 전자 디바이스 (102) 는 미디어 파일 (120) 을 원본 포맷 미디어 파일 (111) 로서 세이브한다. 위에서 언급된 바와 같이, 로컬 메모리 (106) 는 전자 디바이스 A (102) 내로 제작될 수도 있고, 전자 디바이스 A (102) 로부터 탈착가능하며, 및/또는 로컬 네트워크 (222) 상의 전자 디바이스 A (102) 에 의하여 액세스가능할 수도 있다.
전자 디바이스 A (102) 는 미디어 파일 (110, 111) 을 제시할 수도 있다 (단계 414). 일 구성에서는, 미디어 파일 (120) 은 네이티브 포맷으로 (예를 들어, 네이티브 포맷 미디어 파일 (110) 로서) 로컬 메모리 (106) 캐시 (108) 로부터 제시될 수도 있다 (단계 414). 이러한 구성에서는, 네이티브 포맷 미디어 파일 (110) 은 디코딩되고 그리고 로컬 메모리 (106) 로부터 제시될 수도 있다 (단계 414). 예를 들어, 전자 디바이스 A (102) 는 비디오 또는 오디오를 멀티미디어 플레이어, 하나 이상의 디스플레이들 및/또는 하나 이상의 스피커들을 이용하여 재생한다. 다른 구성에서는, 전자 디바이스 A (102) 는 미디어 파일 (120) 을 그것의 원본 포맷에서 제시할 수도 있다 (단계 414). 예를 들어, 미디어 파일 (120) 은, 트랜스코딩되고 네이티브 포맷 미디어 파일 (110) 로서 세이브되는 도중에 (단계 412) 자신의 원본 포맷에서 디코딩될 수도 있다. 이러한 경우에서는, 전자 디바이스 A (102) 는, 미디어 파일 (120) 이 트랜스코딩되고 그리고 로컬 메모리 (106) 로 세이브되는 도중에 (단계 412), 디코딩된 미디어 파일 (120) 을 그것의 원본 포맷에서 제시할 수도 있다 (단계 414). 그러면, 후속 미디어 파일 (120) 요청들을 위하여, 네이티브 포맷 미디어 파일 (110) 이 제시될 수도 있다. 다른 구성에서는, 전자 디바이스 A (102) 는 로컬 메모리 (106) 내에 세이브되었던 원본 포맷 미디어 파일 (111) 를 제시한다. 전자 디바이스 A (102) 는 하나 이상의 미디어 파일들 (120) 에 대한 요청들을 모니터링 (단계 402) 하는 것을 계속할 수도 있다.
도 5 는 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법 (500) 의 더욱 상세한 구성을 도시하는 흐름도이다. 전자 디바이스 A (102) 는 하나 이상의 미디어 파일들 (120) 에 대한 요청들을 모니터링한다 (단계 502). 일반적으로, 전자 디바이스 A (102) 는 하나 이상의 미디어 파일들 (120) 에 대한 요청들에 대하여 소프트웨어 및/또는 하드웨어 컴포넌트들을 모니터링한다 (단계 502). 예를 들어, 에이전트 (104) 는 미디어 파일 (120) 을 액세스하려는 요청들에 대하여 전자 디바이스 A (102) 상의 하나 이상의 소프트웨어 애플리케이션들 또는 하나 이상의 하드웨어 디바이스들을 모니터링할 수도 있다 (단계 502). 예를 들어, 에이전트 (104) 는 미디어 파일 (120) 요청들에 대한 브라우저 애플리케이션 또는 멀티미디어 플레이어 애플리케이션을 모니터링한다 (단계 502). 추가적으로 또는 대안적으로는, 에이전트 (104) 는 미디어 파일 (120) 요청들에 대하여 운영 체제 (OS) 및/또는 애플리케이션 프로그래밍 인터페이스 (API) 를 모니터링한다 (단계 502). 더욱이, 에이전트 (104) 는 미디어 파일 (120) 요청들에 대하여 전자 디바이스 A (102) 상에 포함된 네트워킹 하드웨어를 모니터링할 수도 있다 (단계 502).
전자 디바이스 A (102) 는 미디어 파일 정보를 저장한다 (단계 504). 예를 들어, 에이전트 (104) 가 미디어 파일 (120) 요청을 (모니터링 (단계 502) 도중에) 검출하면, 에이전트 (104) 는 미디어 파일 (120) 요청과 연관된 정보를 저장할 수도 있다 (단계 504). 좀 더 구체적으로는, 에이전트 (104) 는, 예를 들어: 미디어 파일 (120) 명칭, 미디어 파일 (120) 위치 또는 어드레스 (예를 들어, 인터넷 프로토콜 (IP) 어드레스), (예를 들어, 바이트 단위의) 미디어 파일 (120) 사이즈, 미디어 파일 (120) 타입 (예를 들어, 비디오, 오디오, 이미지 등), 미디어 파일 (120) 포맷 (예를 들어, WMV, MOV, AAC, MP3 등), 요청 시간, 및/또는 이루어진 요청들의 횟수 등을 저장할 수도 있다 (단계 504). 몇 개의 구성들에서는, 이러한 정보는 정보 또는 메타데이터, 예컨대 장르, 작가, 발행자 등도 역시 포함할 수도 있다. 미디어 파일 정보는, 예를 들어 로컬 메모리 (106) 내의 파일 및/또는 데이터베이스 내에 저장될 수도 있다 (단계 504).
미디어 파일 정보를 저장 (단계 504) 할 때, 전자 디바이스 A (102) 는 미디어 파일 (120) 요청 카운트를 증분할 수도 있다. 예를 들어, 전자 디바이스 A (102) 는 최근 검출된 미디어 파일 (120) 요청에 대응하는 미디어 파일 정보 (예를 들어, 파일 명칭, 어드레스 등) 를 이전에 저장된 (단계 504) 미디어 파일 정보와 비교한다. 만일 전자 디바이스 A (102) 가 최근 미디어 파일 정보가 이전에 저장된 (단계 504) 미디어 파일 정보와 매칭한다고 결정하면 (이전에 요청된 미디어 파일 (120) 이 다시 요청되는 중이라는 것을 표시함), 이 전자 디바이스 A (102) 는 그 미디어 파일 (120) 에 대응하는 카운트를 증분할 수도 있다. 예를 들어, 미디어 파일 (120) 이 음악 파일이라고 가정한다. 전자 디바이스 A (102) 는 미디어 파일 (120) 요청을 (모니터링 (단계 502) 도중에) 검출하고 그리고 음악 파일 요청에 대응하는 정보, 예컨대 파일 명칭 및 IP 어드레스를 저장한다 (단계 504). 저장된 (단계 504) 다른 정보는 정보, 예컨대 파일 사이즈, 작가 명칭, 장르 등을 포함할 수도 있다. 전자 디바이스 A (102) 는, 예를 들어 파일 명칭 및 IP 어드레스를 이전에 기록된 (단계 504) 미디어 파일 정보와 비교하고 그리고 음악 파일이 이전에 두 번 요청되었다 (2 의 요청 카운트를 가진다) 고 결정한다. 이것은 음악 파일이 이미 두 번 전자 디바이스 A (102) 에 의하여 요청되었다는 것을 의미한다. 카운트는 3 으로 증분되고 그리고 동작은 진행한다. 그러나, 전자 디바이스 A (102) 가 요청된 미디어 파일 (120) 에 대한 매치를 발견하지 않으면, 이 전자 디바이스 A (102) 는 미디어 파일 정보 (단계 504) 를 포함하는 새로운 기록을 생성하고 그리고 그 미디어 파일 (120) 에 대한 카운트를 1 로 증분할 수도 있다.
전자 디바이스 A (102) 는 옵션으로 카운트 및/또는 레이트 임계치를 결정할 수도 있다 (단계 506). 위에서 설명된 바와 같이, 카운트 또는 레이트 임계치는 추가적 미디어 파일 (120) 요청들이 미디어 파일 (120) 요청들의 임계 횟수를 넘어 발생할 우도 또는 확률에 기초할 수도 있다. 카운트 또는 레이트 임계치는, 미디어 파일 (120) 의 반복된 액세스들이 임계치를 넘어 발생할 가능성이 있음으로써, 리소스들이 미디어 파일 (120) 을 저장함으로써 보존될 수도 있도록 선택될 수도 있다. 일 구성에서는, 카운트 또는 레이트 임계치는, 예를 들어 전자 디바이스 A (102) 의 사용자 또는 제조사에 의하여 설정될 수도 있다.
대안적으로는 또는 추가하여, 카운트 또는 레이트 임계치는 전자 디바이스 A (102) 에 의하여 결정할 수도 있다 (단계 506). 전자 디바이스 A (102) 의 상이한 구성들이 이러한 결정을 다양한 상이한 인자들에 기초하여, 개별적으로 또는 조합하여 수행할 수도 있다 (단계 506). 예를 들어, 카운트 또는 레이트 임계치는 인자들, 예컨대 사용자 거동들 (user behaviors) 에 기초하여 결정될 수도 있다 (단계 506). 이러한 포인트를 예시하기 위하여, 제 1 사용자 및 제 2 사용자가 상이한 이용 패턴들을 가진다고 가정한다. 예를 들어, 만일 제 1 사용자가 (다운로드되거나 스트리밍된) 노래를 두 번 청취한다면, 그는 지속적으로 동일한 노래를 약 200 회 청취하는 경향이 있다. 반면에, 제 2 사용자는 다른 것을 청취하기 이전에 (다운로드되거나 스트리밍된) 노래를 오직 한 번 또는 아마도 두 번만 청취하는 경향이 있다. 전자 디바이스 A (102) 는 이러한 이용 패턴들을 저장하여 카운트 임계치를 설정할 수도 있다 (단계 504). 논의된 예에서는, 전자 디바이스 A (102) 는 제 1 사용자에 대하여 카운트 임계치를 낮게 (예를 들어, 3 으로) 그리고 제 2 사용자에 대하여 높게 (예를 들어, 15 로) 설정할 수도 있다. 이것은 노래를 네이티브 포맷으로 저장함으로써 보존될 가능성이 있는 리소스들의 양이, 동일한 노래를 두 번조차 청취하지 않을 수도 있는 제 2 사용자에 비교할 때 제 1 사용자에 대하여 오직 몇 번 그 노래를 청취한 이후에 훨씬 더 크기 때문이다.
또한, 다른 사용자 이용 패턴들이 카운트 또는 레이트 임계치를 결정하기 위하여 이용될 수도 있다 (단계 506). 예를 들어, 사용자는 레슬링 경기는 거의 두 번 이상 시청하지 않으면서 재즈 장르의 노래들은 여러번 청취하는 경향이 있을 수도 있다. 이러한 예는 상이한 임계치들이 상이한 미디어 파일 (120) 타입들 및/또는 장르들에 대하여 바람직할 수도 있다는 것을 예시한다. 이러한 예에 따르면, 전자 디바이스 A (102) 는 사용자의 이용 패턴들을 저장하고 (단계 504) 그리고 재즈 음악 파일들에 대하여 낮은 임계치를 그리고 레슬링 비디오 파일들에 대하여 더 높은 임계치를 설정할 수도 있다.
카운트 또는 레이트 임계치를 결정 (단계 506) 하기 위하여 이용될 수도 있는 다른 인자들은 미디어 파일 (120) 포맷들 및 사이즈들을 포함한다. 예를 들어, 상이한 파일 포맷들이 다른 것들보다 디코딩 및/또는 트랜스코딩을 위하여 더 많은 처리를 요구할 수도 있다. 예시의 편의를 위하여, MOV (애플사의 무비) 파일이 WMV 파일보다 H.264 로의 트랜스코딩을 위하여 훨씬 더 많은 처리를 요구한다고 가정한다. 따라서, 카운트 또는 레이트 임계치는 MOV 파일들에 대하여보다 WMV 파일들에 대하여 더 낮게 설정될 수도 있다. 예를 들어, 파일 사이즈들이 카운트 또는 레이트 임계치를 결정하기 위하여 추가적으로 또는 대안적으로 이용될 수도 있다 (단계 506). 예를 들어, 큰 파일을 트랜스코딩하는 것은 처리 및 전력 리소스들의 상대적으로 큰 양 (예를 들어, 오버헤드) 을 요구할 수도 있다. 그러나, 리소스 절감들은 또한, 만일 사용자가 고 해상도 무비들을 여러 번 지속적으로 시청하는 경향이 있다면 잠재적으로 매우 클 수도 있다. 따라서, 카운트 또는 레이트 임계치는 그러한 경우에는 큰 파일 사이즈에 대하여 더 낮게 설정될 수도 있다. 그러나, 만일 다른 사용자가 각각의 고 해상도 무비를 오직 한 번만 시청한다면, 각각의 무비 파일을 트랜스코딩하고 저장하는 것은 리소스들을 낭비할 것이다. 따라서, 임계치는 그러한 경우에는 높게 설정될 수도 있다.
또 다른 인자들이 카운트 또는 레이트 임계치를 결정 (단계 506) 하기 위하여 이용될 수도 있다. 예를 들어, 신호 품질, SNR 또는 비트 에러 레이트가 카운트 또는 레이트 임계치를 결정 (단계 506) 하기 위하여 이용될 수도 있다. 예를 들어, 무선 통신 디바이스들 (302) 은, 그들이 기지국 (330) 과 약한 통신 신호를 가지는 경우에는, 이득을 부스팅하고, 더 낮은 데이터 레이트를 이용하며 그리고/또는 더 많은 리던던시 또는 더 긴 코딩 방식들을 이용할 수도 있다. 만일 그 신호가, 미디어 파일 (120) 을 트랜스코딩하고 이것을 네이티브 포맷에서 디코딩하는 것보다 미디어 파일 (120) 을 그것의 원본 포맷에서 반복적으로 수신 및/또는 디코딩하는 것이 더 많은 배터리 (예를 들어, 전력 소스 (314)) 를 요구하는 것이라면, 임계치는 더 낮아질 수도 있다.
전자 디바이스 A (102) 는 미디어 파일 (120) 이 로컬 메모리 (106) 내에 저장되어야 하는지 여부를 결정한다 (단계 508). 이러한 결정 (단계 508) 은 미디어 파일 정보 및 미디어 파일 (120) 이 이미 로컬 메모리 (106) 내에 저장되었는지 여부에 기초할 수도 있다. 일반적으로, 미디어 파일 (120) 이 저장되어야 하는지 여부의 결정 (단계 508) 은 국지적으로 미디어 파일 (120) 을 저장하는 것 또는 캐싱하는 것이 리소스들을 보존할 가능성이 있을 것인지 여부에 기초할 수도 있다. 이러한 결정 (단계 508) 은 미디어 파일 정보의 하나 이상의 조각들을 이용할 수도 있다.
일 구성에서는, 만일 미디어 파일 (120) 요청 카운트가 카운트 임계치 이상이고 그리고 미디어 파일 (120) 이 이미 네이티브 포맷으로 저장되지 않았다면, 전자 디바이스 A (102) 는 미디어 파일 (120) 이 로컬 메모리 (106) 내에 저장되어야 한다고 결정한다 (단계 508). 이것이 수학식 1 에 예시된다.
Figure 112013045445617-pct00001
수학식 1 에서, Request Count는 요청 카운트이고 Count Threshold는 카운트 임계치이다. 좀 더 구체적으로는, 에이전트 (104) 는 미디어 파일 (120) 요청들의 횟수를 카운트하여 미디어 파일 (120) 이 저장되어야 하는지 여부를 결정한다 (단계 508). 이러한 미디어 파일 요청 카운트는 카운트 임계치와 비교된다. 위에서 논의된 바와 같이, 후속 요청들이 발생할 가능성이 있는 것으로 간주되는 경우에 카운트 임계치는 요청들의 횟수를 나타낼 수도 있는다. 예를 들어, 후속 액세스들이 전자 디바이스 A (102) 가 이전에 10 번 요청했던 특정한 비디오 파일에 대하여 가능하다는 것이 간주될 수도 있다. 무선 통신 디바이스 (102) 가 비디오 파일을 네트워크 (116) 상에서 요청할 때마다, 에이전트 (104) 는 그 비디오 파일에 대한 카운터를 증분하고 그리고 이것을 카운트 임계치와 비교하여 비디오 파일이 저장되어야 하는지 여부 (예를 들어, 미디어 파일 (120) 을 저장하는 것이 리소스들을 보존할지 여부) 를 결정한다. 만일 비디오 파일이 10 번 요청되었다면, 카운터 값은 카운트 임계치 이상이고 그리고 전자 디바이스 A (102) 또는 에이전트 (104) 는 비디오 파일이 저장되어야 한다고 결정한다 (단계 508).
다른 구성에서는, 만일 미디어 파일 (120) 요청 레이트가 레이트 임계치 이상이고 그리고 미디어 파일 (120) 이 이미 저장되지 않으면, 전자 디바이스 A (102) 는 미디어 파일 (120) 이 원본 포맷 미디어 파일 (111) 또는 네이티브 포맷 미디어 파일 (110) 로서 로컬 메모리 (106) 캐시 (108) 내에 저장되어야 한다고 결정한다 (단계 508). 이러한 접근 방법이 수학식 2 내에 예시된다.
Figure 112013045445617-pct00002
수학식 2 에서, Request Rate는 요청 레이트이고 그리고 Rate Threshold는 레이트 임계치이다. 좀 더 구체적으로는, 전자 디바이스 A (102) 는 미디어 파일 (120) 을 저장할지 여부를 요청 레이트 및 레이트 임계치에 기초하여 결정한다 (단계 508). 예를 들어, 에이전트 (104) 는 미디어 파일 (120) 요청들의 횟수 및 그 요청들에 대응하는 시간들을 저장한다 (단계 504). 그러면, 에이전트 (104) 는 액세스들의 횟수 및 대응하는 시간들을 이용하여 요청 레이트 또는 평균 요청 레이트를 계산한다. 만일 전자 디바이스 A (102) 의 요청 레이트가 레이트 임계치 이상이라면, 전자 디바이스 A (102) 는 미디어 파일 (120) 이 저장되어야 한다고 결정한다 (단계 508).
다른 구성에서는, 결정 (단계 508) 은 미디어 파일 (120) 을 원본 포맷 미디어 파일 (111) 또는 네이티브 포맷 미디어 파일 (110) 로서 로컬 메모리 (106) 캐시 (108) 내에 저장하는 것이 어느 정도의 확률로 리소스들을 보존할지 여부에 직접적으로 기초할 수도 있다. (카운트 또는 레이트 임계치를 결정하기 위하여) 위에서 언급된 하나 이상의 동일한 또는 유사한 인자들이, 미디어 파일 (120) 을 네이티브 포맷 미디어 파일 (110) 로서 로컬 메모리 (106) 캐시 (108) 내에 저장하는 것이 리소스들을 보존할 가능성이 있는지 여부를 결정 (단계 508) 하기 위하여 직접적으로 이용될 수도 있다. 예를 들어, 만일 미디어 파일 (120) 을 네이티브 포맷 미디어 파일 (110) 로서 로컬 메모리 (106) 내에 저장하는 것이 리소스들을 보존할 확률이 이것이 보존하지 않을 (그리고 미디어 파일 (120) 이 네이티브 포맷 미디어 파일 (110) 로서 이미 저장되지 않을) 확률 이상이라면, 전자 디바이스 (102) 또는 에이전트 (104) 는 미디어 파일 (120) 이 네이티브 포맷 미디어 파일 (120) 로서 로컬 메모리 (106) 캐시 (108) 내에 저장되어야 한다고 결정한다 (단계 508). 이러한 접근 방법이 수학식 3 내에 예시된다.
Figure 112013045445617-pct00003
수학식 1 에서,
Figure 112013045445617-pct00004
는 미디어 파일 (120) 을 저장하는 것이 리소스들을 보존할 확률을 나타내고 그리고
Figure 112013045445617-pct00005
는 미디어 파일 (120) 을 저장하는 것이 리소스들을 보존하지 않을 확률을 나타낸다. 많은 상이한 접근 방법들이 다양한 인자들에 기초하여 이러한 확률을 계산하기 위하여 이용될 수도 있다. 인자들의 하나 이상은 미디어 파일 (120) 이 요청되었던 횟수, 언제 미디어 파일 (120) 이 요청되었는지, 미디어 파일 (120) 요청들의 레이트 (예를 들어,미디어 파일 (120) 이 시간의 주어진 양 내에서 얼마나 자주 요청되었는지), 미디어 파일 (120) 사이즈, 미디어 파일 (120) 포맷 (예를 들어, 파일 포맷, 예컨대 WMV, MOV, MP3 등), 미디어 파일 (120) 타입 (예를 들어, 비디오, 오디오, 이미지), 미디어 파일 (120) 메타데이터 (예를 들어, 작가, 장르, 제작자 등), 신호 전력, SNR, 비트 에러 레이트, 이용 패턴들, 네이티브 포맷 (예를 들어, H.264 등), 미디어 파일 (120) 을 트랜스코딩하는데 필요한 전력/처리의 양, 미디어 파일 (120) 을 디코딩하는데 필요한 전력/처리의 양, 네이티브 포맷 미디어 파일 (110) 또는 원본 포맷 미디어 파일 (111) 을 디코딩하는데 필요한 전력/처리의 양, 미디어 파일 (120) 을 다운로드하거나 스트리밍함에 의하여 야기되는 네트워크 부하 등을 포함할 수도 있다. 다시 말하면, 하나 이상의 이러한 또는 다른 인자들이 미디어 파일 (120) 을 원본 포맷 미디어 파일 (111) 또는 네이티브 포맷 미디어 파일 (110) 로서 저장하는 것이 하나 이상의 리소스들을 보존할 가능성을 계산하기 위하여 이용될 수도 있다.
전자 디바이스 A (102) 는 미디어 파일 (120) 저장되지 않아야 한다고 결정할 수도 있다 (단계 508). 이것은, 예를 들어: 만일 미디어 파일 (120) 요청 카운트가 카운트 임계치 이하이거나 또는 미디어 파일 (120) 이 이미 저장되면; 만일 미디어 파일 (120) 액세스 레이트가 레이트 임계치 이하이거나 또는 미디어 파일 (120) 이 이미 저장되면; 또는, 만일 미디어 파일 (120) 을 저장하는 것이 리소스들을 보존할 확률이 어느 정도의 확률을 만족하지 않거나 또는 미디어 파일 (120) 이 이미 저장되면 등의 경우에 발생할 수도 있다. 만일 전자 디바이스 A (102) 가 미디어 파일 (120) 이 저장되지 않아야 한다고 결정한다면 (단계 508), 이 전자 디바이스 A (102) 는 미디어 파일 (120) 이 로컬 메모리 (106) 캐시 (108) 내에 이미 저장되는지 여부를 결정할 수도 있다 (단계 510). 예를 들어, 만일 에이전트 (104) 가 요청되는 중인 미디어 파일 (120) 에 대응하는 미디어 파일 (110, 111) 을 이미 저장했다면, 에이전트 (104) 는 전자 디바이스 A (102) 에게 미디어 파일 (110, 111) 을 로컬 메모리 (106) 로부터 제시하도록 (단계 524) 지시한다. 전자 디바이스 A (102) 는 하나 이상의 미디어 파일들 (120) 에 대한 요청들을 모니터링 (단계 502) 하는 것을 계속할 수도 있다.
만일 전자 디바이스 A (102) 가 미디어 파일 (120) 을 저장하지 않고 그리고 미디어 파일 (120) 이 네이티브 포맷으로 이미 저장되지 않는다고 결정하면 (단계 508), 이 전자 디바이스 A (102) 는 미디어 파일 (120) 을 다운로드 또는 스트리밍 (단계 512) 할 수도 있다. 예를 들어, 전자 디바이스 A (102) 는 이용 소프트웨어 및/또는 하드웨어를 이용하여 미디어 파일 (120) 을 전자 디바이스 B (118) 로부터 요청 및/또는 수신할 수도 있다. 미디어 파일 (120) 은, 예를 들어 파일로서 다운로드되거나 (단계 512) 또는 데이터 스트림으로서 스트리밍 (예를 들어, 수신) 된다 (단계 512). 예를 들어, 전자 디바이스 A (102) 는 미디어 파일 (120) 을 디코딩할 수도 있다 (단계 514). 예를 들어, 전자 디바이스 A (102) 는 소프트웨어, 하드웨어 및/또는 하나 이상의 코덱들을 이용하여 미디어 파일 (120) 을 제시가능한 (예를 들어, 재생가능한) 포맷으로 디코딩할 수도 있다. 전자 디바이스 A (102) 는 미디어 파일 (120) 을 제시할 수도 있다 (단계 516). 요약하면, 예를 들어 전자 디바이스 A (102) 는 음악 파일을 다운로드 (단계 512) 하고, 그 음악 파일을 디코딩 (단계 514) 하며, 그리고 그 음악 파일을 멀티-미디어 플레이어 및 하나 이상의 스피커들을 이용하여 출력 (단계 516) 한다. 그러면, 전자 디바이스 A (102) 는 하나 이상의 미디어 파일들 (120) 에 대한 요청들을 모니터링 (단계 502) 하는 것을 계속한다.
만일 전자 디바이스 A (102) 가 미디어 파일 (120) 이 저장되어야 한다고 결정한다면 (단계 508), 이 전자 디바이스 A (102) 는 미디어 파일 (120) 을 하드웨어 및/또는 소프트웨어를 이용하여 전자 디바이스 A (102) 상에 다운로드 또는 스트리밍한다 (단계 518). 만일 필요하다면, 전자 디바이스 A (102) 는 미디어 파일을 트랜스코딩할 수도 있다 (단계 520). 예를 들어, 에이전트 (104) 는 트랜스코더 모듈을 이용하여 미디어 파일 (120) 을 하나의 파일 포맷으로부터 네이티브 파일 포맷으로 트랜스코딩하고, 이를 통하여 네이티브 포맷 미디어 파일 (110) 을 생성할 수도 있다. 예를 들어, 만일 비디오 파일이 윈도우 미디어 비디오 (WMV) 파일이고 그리고 전자 디바이스 A (102) 의 네이티브 포맷이 H.264 라면, 에이전트 (104) 는 WMV 파일을 H.264 포맷으로 트랜스코딩한다. 그러나, 만일 미디어 파일 (120) 이 이미 원하는 네이티브 포맷이라면, 에이전트 (104) 는 미디어 파일 (120) 을 트랜스코딩하지 않을 수도 있다. 트랜스코딩은 디코딩 도중에, 이후에, 또는 이와 독립적으로 실행될 수도 있다.
그러면, 전자 디바이스 A (102) 는 미디어 파일 (120) 을 원본 또는 네이티브 포맷으로 로컬 메모리 (106) 캐시 (108) 내에 세이브할 수도 있다 (단계 522). 예를 들어, 에이전트 (102) 는 원본 포맷 미디어 파일 (111) 또는 네이티브 포맷 미디어 파일 (110) 을 플래시 메모리, 하드 드라이브, 광학적 디스크, SD 카드, USB 드라이브, 국지적으로 네트워킹된 디바이스 상의 스토리지 등에 기입한다. 그러면, 전자 디바이스 A (102) 는 미디어 파일 (110, 111) 을 로컬 메모리 (106) 캐시 (108) 로부터 제시할 수도 있다 (단계 524). 예를 들어, 전자 디바이스 A (102) 는 네이티브 포맷 미디어 파일 (110) 을 디코딩 (예를 들어, 압축해제) 하고 그리고 미디어 파일을 재생 또는 출력할 수도 있다. 좀 더 구체적으로는, 만일 네이티브 포맷 미디어 파일 (110) 이 비디오 파일이라면, 전자 디바이스 A (102) 는 비디오를 디스플레이 상에 디스플레이하고 그리고 대응하는 오디오를 하나 이상의 스피커들을 이용하여 출력한다. 전자 디바이스 A (102) 는 하나 이상의 미디어 파일들에 대한 요청들을 계속하여 모니터링 (단계 502) 할 수도 있다.
도 6 은 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 시스템들 및 방법들이 구현될 수도 있는 전자 디바이스들 (602, 618) 의 더욱 상세한 구성을 도시하는 블록도이다. 전자 디바이스 A (602) 는 에이전트 (604), 액세싱 소프트웨어/하드웨어 (652), 메모리 (606), 하나 이상의 디코더들 (656), 트랜스코더 (658), 프로세서 (612) 및 전력 소스 (614) 를 포함할 수도 있다. 전자 디바이스 A (602) 는 하나 이상의 전자 디바이스들 B (618) 와 네트워크 (616) 를 이용하여 통신할 수도 있다. 하나 이상의 전자 디바이스들 B (618) 는 하나 이상의 파일 어드레스들 (660) 에서 액세스될 수도 있는 하나 이상의 미디어 파일들 (620) 을 포함할 수도 있다. 전력 소스 (614) 는 전력을 수신하기 위한 배터리 또는 인터페이스일 수도 있다.
에이전트 (604) 는, 리소스들, 예컨대 배터리 (614) 전력, 프로세서 (612) 리소스들 등을 보존하려는 시도에서 미디어 파일들 (620) 을 캐싱하기 위하여 이용되는 소프트웨어 및/또는 하드웨어 모듈일 수도 있다. 에이전트 (604) 는 미디어 파일 정보 (636) 를 포함한다. 미디어 파일 정보 (636) 는 하나 이상의 미디어 파일들 (620) 에 관련된 정보의 다양한 종류들을 포함할 수도 있다. 도 6 에서 도시된 예에서는, 미디어 파일 정보 (636) 는 하나 이상의 카운트 임계치들 (638), 하나 이상의 레이트 임계치들 (640), 하나 이상의 파일 어드레스들 (642), 하나 이상의 파일 명칭들 (644), 하나 이상의 요청 카운트들 (646), 하나 이상의 요청 시간들 (648) 및 다른 정보 (650) 를 포함한다. 미디어 파일 (620) 이 전자 디바이스 A (602) 에 의하여 요청되는 경우에, 에이전트 (604) 는 요청된 미디어 파일 (620) 과 관련한 미디어 파일 정보 (636) 를 저장 (그리고/또는 저장을 위한 정보를 결정) 한다.
예를 들어, 에이전트 (604) 는 하나 이상의 미디어 파일 요청들 (654) 에 대한 액세싱 소프트웨어 및/또는 하드웨어 (652) 를 모니터링한다. 액세싱 소프트웨어 및/또는 하드웨어 (652) 는 미디어 파일들 (620) 을 네트워크 (616) 상에서 요청하는 하나 이상의 모듈들을 포함할 수도 있다. 액세싱 소프트웨어/하드웨어 (652) 의 하나의 예는 미디어 파일들 (620) 을 요청하는, 전자 디바이스 A (602) 상의 브라우저 애플리케이션 또는 프로그램이다. 멀티미디어 플레이어 소프트웨어 및 네트워킹 하드웨어는 에이전트 (604) 가 미디어 파일 요청들 (654) 을 검출하기 위하여 모니터링할 수도 있는, 액세싱 소프트웨어/하드웨어 (652) 의 다른 예들이다.
미디어 파일 요청 (654) 이 검출되는 경우에, 에이전트 (604) 는 미디어 파일 정보 (636) 를 저장한다. 예를 들어, 에이전트 (604) 는 요청된 미디어 파일 (620) 의 파일 명칭 (644) 을 저장할 수도 있다. 미디어 파일 (620) 을 요청하기 위하여 이용되는 파일 어드레스 (642) 가 역시 저장될 수도 있다. 파일 어드레스 (642) 의 예들은 인터넷 프로토콜 (IP) 어드레스들, URL들 (Uniform Resource Locators), 네트워크 어드레스들 등을 포함한다. 또한, 에이전트 (604) 는 하나 이상의 요청 카운트들 (646) 및 하나 이상의 요청 시간들 (648) 을 저장할 수도 있다. 예를 들어, 특정한 미디어 파일 (620) 이 요청될 때마다, 에이전트 (604) 는 그 미디어 파일에 대한 요청 카운트 (646) 를 증분할 수도 있다. 따라서, 요청 카운트 (646) 는 특정한 미디어 파일 (620) 이 요청되었던 횟수를 표시한다. 또한, 에이전트 (604) 는 하나 이상의 특정한 미디어 파일들 (620) 이 요청되었던 시간들을 표시하는 요청 시간들 (648) 을 저장할 수도 있다. 에이전트 (604) 는, 구현된 구성에 의존하여, 추가적으로 또는 대안적으로는 다른 정보 (650) (예를 들어, 메타데이터, 파일 타입, SNR, 비트 에러 레이트 등) 을 저장할 수도 있다.
이에 옵션으로, 미디어 파일 정보 (636) 는 하나 이상의 카운트 임계치들 (638) 및/또는 하나 이상의 레이트 임계치들 (640) 을 포함할 수도 있다. 카운트 임계치(들)(638) 및/또는 레이트 임계치(들)(640) 는 전자 디바이스 A (602) 의 사용자에 의하여 설정될 수도 있다. 대안적으로는, 전자 디바이스 A (602) 는 하나 이상의 카운트 임계치들 (638) 및/또는 하나 이상의 레이트 임계치들 (640) 을 결정 (예를 들어, 계산) 할 수도 있다. 위에서 설명된 바와 같이, 카운트 임계치(들)(638) 및/또는 레이트 임계치(들)(640) 는 하나 이상의 인자들, 예컨대 이용 패턴들, 미디어 파일 (620) 사이즈, 미디어 파일 (620) 타입, 미디어 파일 (620) 을 트랜스코딩하기 위하여 필요한 리소스들 (예를 들어, 전력, 처리 등) 의 양, 미디어 파일 (620) 을 디코딩하기 위하여 필요한 리소스들 (예를 들어, 전력, 처리 등) 의 양 등에 기초하여 결정될 수도 있다. 에이전트 (604) 는 임계치 결정 모듈 (632) 을 이용하여 하나 이상의 카운트 임계치들 (638) 및/또는 하나 이상의 레이트 임계치들 (640) 을 결정할 수도 있다. 일 구성에서는, 단일 카운트 임계치 (638) 또는 레이트 임계치 (640) 가 모든 미디어 파일들 (620) 에 대하여 이용될 수도 있다. 다른 구성들에서는, 하나의 카운트 임계치 (638) 또는 레이트 임계치 (640) 는 각각의 미디어 파일 (620) 에 대하여 또는 미디어 파일들 (620) 의 그룹 또는 카테고리에 대하여 이용될 수도 있다.
또한, 에이전트 (604) 는 네이티브 포맷 결정 모듈 (634) 을 포함할 수도 있다. 네이티브 포맷 결정 모듈 (634) 은 미디어 파일 (620) 에 대한 네이티브 포맷을 결정할 수도 있다. 예를 들어, 네이티브 포맷 결정 모듈 (634) 은 가장 많은 리소스들을 보존할 가능성이 있는, 미디어 파일 (620) 에 대한 네이티브 포맷을 결정한다. 네이티브 포맷 결정 모듈 (634) 은 인자들, 예컨대 미디어 파일 (620) 을 하나의 포맷으로부터 하나 이상의 네이티브 포맷들로 트랜스코딩하기 위하여 필요한 리소스들 (예를 들어, 전력, 처리 등) 의 양, 미디어 파일 (620) 및 네이티브 포맷 미디어 파일 (610) 을 디코딩하기 위하여 필요한 리소스들의 양 등을 이용할 수도 있다.
전자 디바이스 A (602) 는 하나 이상의 디코더들 (656) 을 이용하여 미디어 파일들 (620) 및/또는 네이티브 포맷 미디어 파일들 (610) 을 디코딩할 수도 있다. 디코더 (656) 는 소프트웨어, 하드웨어 또는 양자의 조합으로서 구현될 수도 있다. 디코더들 (656) 의 예들은 소프트웨어 및/또는 하드웨어 코덱들을 포함한다. 예를 들어, 디코더 (656) 는 전자 디바이스 B (618) 로부터 다운로드되거나 또는 스트리밍되는 미디어 파일 (620) 을 디코딩 (예를 들어 압축 해제) 하기 위하여 이용된다. 미디어 파일 (620) 은 미디어 파일 (620) 을 전자 디바이스 A (602) 상에 제시하기 위하여 디코딩된다. 추가적으로, 디코더 (656) 는 네이티브 포맷 미디어 파일 (610) (또는 저장된 원본 포맷 미디어 파일) 을, 이 네이티브 포맷 미디어 파일 (610) 을 전자 디바이스 A (602) 상에 제시하기 위하여 디코딩할 수도 있다. 네이티브 포맷 미디어 파일 (610) 을 디코딩하는 것이 다운로드되거나 또는 스트리밍된 미디어 파일 (620) 을 디코딩하는 것보다 더 적은 리소스들을 이용할 수도 있다.
또한, 전자 디바이스 A (602) 는 트랜스코더 (658) 를 포함할 수도 있다. 트랜스코더 (658) 는 그 미디어 파일 (620) 을 하나의 포맷 (예를 들어, 코딩) 으로부터 다른 포맷 (예를 들어, 코딩) 으로 변환하는 하드웨어 및/또는 소프트웨어 모듈일 수도 있다. 예를 들어, 만일 미디어 파일의 (620) 포맷이 WMV이고 네이티브 포맷이 H.264 라면, 전자 디바이스 A (602) 는 WMV 파일을 H.264 네이티브 포맷 미디어 파일 (610) 로 변환한다. 미디어 파일 (620) 을 트랜스코딩하는 것은 미디어 파일 (620) 을 디코딩하는 것과 공동으로 수행될 수도 있다. 예를 들어, 미디어 파일 (620) 은 다운로드되고 그리고 (예를 들어, 디코더 (656) 를 이용하여) 중간 포맷으로 디코딩될 수도 있다. 그러면, 트랜스코더 (658) 는 중간 포맷 미디어 파일 (620) 을 네이티브 포맷 미디어 파일 (610) 로 코딩한다. 하나 이상의 네이티브 포맷 미디어 파일들 (610) 이 로컬 메모리 (606) 내의 캐시 (608) 내에 세이브 또는 저장될 수도 있다.
그러나, 몇 개의 구성들에서는, "트랜스코딩"은 인코딩된 데이터를 비코드화 (un-coded) 포맷으로 디코딩하지 않은 채 그 데이터를 다른 캐싱된 포맷으로 변환하기 위한 프로시저일 수도 있다. 예를 들어, 그러한 구성들에서는, 트랜스코더 (658) 가 데이터를 비코드화 포맷으로 디코딩하지 않은 채 하나의 코딩된 포맷의 데이터를 다른 포맷으로 변환할 수도 있다. 예를 들어, 비디오 데이터는 MPEG-4 포맷을 H.264 로 트랜스코딩할 경우 시청될 수 없을 수도 있다. 그러나, 다른 구성들에서는, "트랜스코딩"은, 데이터를 위에서 설명된 바와 같은 다른 코딩된 포맷으로 변환할 때, 그 데이터가 비코드화 포맷으로 디코딩되도록 허용할 수도 있다.
도 7 은 네이티브 포맷을 결정하기 위하여 전자 디바이스 (102) 에 의하여 이용될 수도 있는 정보 (700) 의 일 예를 도시하는 도면이다. 에이전트 (104) 는 이러한 정보 (700) 를 유지관리하고 업데이트할 수도 있다. 도시된 정보는 트랜스코딩을 위한 네이티브 포맷 (764) 을 결정하기 위하여 이용될 수도 있다. 예를 들어, 전자 디바이스 A (102) 는 하나 이상의 네이티브 포맷들 (764) 을 이용할 수도 있다. 일 구성에서는, 전자 디바이스 A (102) 는 미디어 파일들을 제시하기 위하여 상이한 네이티브 포맷들을 이용하는 상이한 소프트에어 애플리케이션들을 포함한다. 더욱이, 전자 디바이스 A (102) 는 상이한 파일들 타입들, 예컨대 오디오 파일들, 비디오 파일들 및 이미지 파일들을 조작할 수도 있다. 이러한 파일 타입들의 각각은 전자 디바이스 A (102) 상에서 상이한 네이티브 포맷 (764) 을 이용할 수도 있다. 다른 구성에서는, 전자 디바이스 A (102) 는 수 개의 상이한 네이티브 파일 포맷들 (764) 을 이용할 수도 있는 멀티미디어 플레이어를 포함한다. 위에서 설명된 바와 같이, 전자 디바이스 A (102) 는 몇 개의 (예를 들어, 네이티브) 포맷들에 대하여 디코딩을 더 효율적이 되게 하는 다른 소프트웨어 또는 하드웨어 모듈들 (예를 들어, 하드웨어 가속기) 를 포함할 수도 있다.
도 7 에서, 다중 미디어 파일 포맷들 (762a 내지 762n) 이 수 개의 네이티브 포맷들 (764a 내지 764n) 과 함께 도시된다. 예를 들어, 전자 디바이스 A (102) 는 트랜스코딩 비용들 (766aa 내지 766nn) 및/또는 네이티브 디코딩 비용들 (768aa 내지 768nn) 을 이용하여 어떤 네이티브 포맷 (764) 을 트랜스코딩 시에 이용할지를 결정할 수도 있다. 미디어 파일 포맷들 (762a 내지 762n) 의 각각은 미디어 파일 (120) 포맷 또는 코딩을 나타낸다. 미디어 파일 포맷 (762) 은 통상적으로 특정한 포맷 또는 코딩을 고수한다. 예를 들어, MP3 오디오 파일은 헤더 비트들로 지정된 어떤 비트들을 포함하는 특정한 프레임 구조를 가질 수도 있다. 이러한 헤더 비트들은 정보, 예컨대 주파수, 비트 레이트, 모드, 복사 정보 (copy information) 등을 표시한다. 처리의 어떤 양이 미디어 파일 (120) 을 그것의 포맷 (762) 으로부터 네이티브 포맷 (764) 으로 트랜스코딩하기 위하여 요구될 수도 있다. 미디어 파일들 (120) 을 트랜스코딩하기 위하여 요구되는 처리는 (예를 들어, 전력 소스 (114) 로부터의) 전기적 전력을 요구한다. 예를 들어, 트랜스코딩 비용 (766) 은 미디어 파일 (120) 데이터의 바이트 (B) 당 밀리암페어 (mA) 로 표현될 수도 있다. 더욱이, 각각의 네이티브 포맷 (764) 은 연관된 네이티브 디코딩 비용 (768) 을 가질 수도 있다. 네이티브 비용 (768) 은, 예를 들어 전자 디바이스 A (102) 상에서의 프리젠테이션을 위하여 네이티브 포맷 미디어 파일 (110) 을 디코딩하기 위하여 필요한 처리 및/또는 전력 리소스들의 양을 표시할 수도 있다. 일 구성에서는, 네이티브 디코딩 비용 (768) 은 네이티브 포맷 미디어 파일 (110) 데이터의 바이트당 밀리암페어로도 역시 표현될 수도 있다.
일 구성에서는, 전자 디바이스 A (102) 는 어떤 네이티브 포맷 (764) 을 (트랜스코딩을 위하여) 이용할지를 트랜스코딩 비용 (766) 및/또는 네이티브 디코딩 비용 (768) 에 기초하여 결정한다. 예를 들어, 전자 디바이스 A (102) 가 포맷 A (762a) 의 미디어 파일 (120) 을 수신한다고 가정한다. 전자 디바이스 A (102) 는 네이티브 포맷들 (764a 내지 764n) 의 트랜스코딩 비용들 (766aa 내지 766an) 및/또는 네이티브 디코딩 비용들 (768aa 내지 768an) 을 비교하여 어떤 네이티브 포맷 (764a 내지 764n) 이 가장 많은 리소스들을 보존할 가능성이 있는지를 결정할 수도 있다. 일 구성에서는, 전자 디바이스 A (102) 는 오직 네이티브 디코딩 비용들 (768aa 내지 768an) 만을 비교하고 그리고 최저 디코딩 비용을 가지는 네이티브 포맷 (764a 내지 764n) 을 선택한다.
다른 구성에서는, 전자 디바이스 A (102) 는 트랜스코딩 비용들 (766aa 내지 766an) 을 역시 비교한다. 예를 들어, 미디어 파일 (120) 을 포맷 A 로부터 네이티브 포맷 A (764a) 로 트랜스코딩하는 것이 (주어진 파일 사이즈에 대하여) 200 mA의 트랜스코딩 비용 AA (766aa) 및 5 mA의 네이티브 디코딩 비용 AA (768aa) 를 가진다고 가정한다. 더 나아가, (주어진 파일 사이즈에 대하여) 트랜스코딩 비용 AB (766ab) 가 100 mA이고 그리고 네이티브 디코딩 비용 AB (768ab) 가 20 mA 라고 가정한다. 보존될 가능성이 있을 수도 있는 전력의 양은 전자 디바이스 A (102) 가 네이티브 포맷 미디어 파일 (110) 을 프리젠테이션을 위하여 디코딩할 가능성이 있는 횟수에 의존한다. 예를 들어, 만일 전자 디바이스 A (102) 가 네이티브 포맷 미디어 파일 (110) 7 번 이상 디코딩한다면, 그러면, 네이티브 포맷 A (764a) 가 네이티브 포맷 B (764b) 보다 비용이 더 적을 수도 있는데, 그 이유는 (200mA + 7*5mA) = 235mA 가 (100mA + 7*20mA) = 240mA 보다 더 적기 때문이다. 그러나, 만일 전자 디바이스 A (102) 가 네이티브 포맷 미디어 파일 (110) 을 6 번 이하로 디코딩한다면, 그러면, 네이티브 포맷 B (764b) 가 네이티브 포맷 A (764a) 보다 비용이 더 적을 수도 있는데, 그 이유는 (100mA + 6*20mA) = 220mA 가 (200mA + 6*5mA) = 230mA 보다 더 적기 때문이다. 따라서, 전자 디바이스 A (102) 는, 만일 특정한 사용자가 동일한 미디어 파일 (120) 을 6 번 이하가 아니라 7 번 이상 요청할 가능성이 더 크다면 네이티브 포맷 A (764a) 를 선택할 수도 있다. 반대로, 만일 다른 사용자가 동일한 미디어 파일 (120) 을 7 회 이상이 아니라 6 회 이하로 요청할 가능성이 더 크다면, 전자 디바이스 A (102) 는 트랜스코딩을 위하여 네이티브 포맷 B (764b) 를 선택할 수도 있다.
몇 개의 경우들에서는, 몇 개의 미디어 파일들 (120) 이 이미 네이티브 포맷 (764) 일 수도 있다는 것에 주의하여야 한다. 즉, 미디어 파일 포맷들 (762) 은 하나 이상의 네이티브 포맷들 (764) 을 또한 포함할 수도 있다. 이러한 경우에서는, 전자 디바이스 A (102) 는, 미디어 파일 (120) 을 네이티브 포맷 (764) 으로 유지관리하는 것 또는 이 미디어 파일 (120) 을 다른 네이티브 포맷 (764) 으로 트랜스코딩하는 것에 의하여 더 많은 리소스들 (예를 들어, 처리, 전력) 이 보존될 것인지를 결정할 수도 있다. 이것은, 미디어 파일을 다른 네이티브 포맷 (764) 으로 트랜스코딩하기 위한 네이티브 디코딩 비용들 (768) 및/또는 트랜스코딩 비용 (766) 을 이것을 트랜스코딩하지 않는 것 (예를 들어 0mA의 트랜스코딩 비용) 과 비교함으로써 유사하게 실행될 수도 있다.
도 8 은 미디어 파일 (120) 을 원본 포맷 미디어 파일 (111) 로서 또는 네이티브 포맷 미디어 파일 (110) 로서 로컬 메모리 (106) 캐시 (108) 내에 저장할지 여부를 결정하기 위하여 전자 디바이스에 의하여 이용될 수도 있는 미디어 파일 정보 (836) 의 일 예를 도시하는 도면이다. 도 8 에서 도시된 미디어 파일 정보 (836) 는 에이전트 (104) 에 의하여 유지관리되고 그리고 업데이트될 수도 있다. 이러한 예에서는, 미디어 파일 정보 (836) 는 수 개의 미디어 파일들 (820a 내지 820n) 에 대한 요청들의 횟수 (846), 요청 시간들 (848), 파일 사이즈 (870), 파일 포맷 (872), 디코딩 비용 (874), 트랜스코딩 비용 (866), 네이티브 디코딩 비용 (868), 카운트 임계치 (838), 레이트 임계치 (840), 파일 어드레스 (842), 파일 명칭 (844), 파일 타입 (876), 메타데이터 (878) 및 다른 정보 (850) 를 포함한다.
각각의 미디어 파일 (846a 내지 846n) 에 대한 요청들의 횟수 (846) 는 특정한 미디어 파일 (120) 이 전자 디바이스 A (102) 에 의하여 요청되었던 횟수를 표시한다. 각각의 미디어 파일 (848a 내지 848n) 에 대한 요청 시간들 (848) 은 언제 각각의 요청이 이루어졌는지를 나타낸다. 각각의 미디어 파일 (870a 내지 870n) 에 대한 파일 사이즈 (870) 는 파일 사이즈를 (예를 들어, 바이트 등의 단위로) 표시한다. 각각의 미디어 파일 (872a 내지 872n) 에 대한 파일 포맷 (872) 은 각각의 미디어 파일 (820a 내지 820n) 의 포맷 (예를 들어, WMV, MOV, AAC, MP3, WAV 등) 을 나타낸다. 각각의 미디어 파일 (874a 내지 874n) 에 대한 디코딩 비용 (874) 은 전자 디바이스 B (118) 로부터의 각각의 미디어 파일 (820a 내지 820n) 을 디코딩 (및 이에 옵션으로 다운로드, 채널 디코딩 등) 하기 위하여 필요한 리소스들의 양을 표시한다. 각각의 미디어 파일 (866a 내지 866n) 에 대한 트랜스코딩 비용 (866) 은 각각의 미디어 파일 (820a 내지 820n) 을 네이티브 포맷 미디어 파일 (110) 로 트랜스코딩하기 위하여 필요한 리소스들의 양을 표시한다. 각각의 미디어 파일 (868a 내지 868n) 에 대한 네이티브 디코딩 비용 (868) 은 네이티브 포맷 미디어 파일 (110) 을 디코딩하기 위하여 필요한 리소스들의 양을 표시한다. 리소스들이 처리 리소스들, 메모리 리소스들, 전력 리소스들, 네트워크 리소스들, 통신 리소스들 등의 양의 관점에서 존재할 수도 있다는 것에 주의하여야 한다. 각각의 미디어 파일 (838a 내지 838n) 에 대한 카운트 임계치 (838) 는 (예를 들어, 만일 요청들의 횟수가 카운트 임계치 (838) 이상이라면) 각각의 미디어 파일 (820a 내지 820n) 을 네이티브 포맷 미디어 파일 (110) 로서 세이브하기 위한 카운트 임계치를 표시한다. 각각의 미디어 파일 (840a 내지 840n) 에 대한 레이트 임계치 (840) 는, 예를 들어, 만일 요청들의 레이트가 레이트 임계치 (840) 이상이라면, 각각의 미디어 파일 (820a 내지 820n) 을 네이티브 포맷 미디어 파일 (110) 로서 세이브하기 위한 레이트 임계치를 표시한다. 각각의 미디어 파일 (842a 내지 842n) 에 대한 파일 어드레스 (842) 는 각각의 미디어 파일 (820a 내지 820n) 에 대한 어드레스를 표시한다. 각각의 미디어 파일 (844a 내지 844n) 에 대한 파일 명칭 (844) 은 각각의 미디어 파일 (820a 내지 820n) 에 대한 파일 명칭을 표시한다. 각각의 미디어 파일 (876a 내지 876n) 에 대한 파일 타입 (876) 은 각각의 미디어 파일 (820a 내지 820n) 에 대한 파일 (예를 들어, 오디오, 비디오, 이미지) 의 타입을 표시한다. 각각의 미디어 파일 (878a 내지 878n) 에 대한 메타데이터 (878) 는 메타데이터, 예컨대 작가 명칭, 제작자 등을 포함할 수도 있다. 또한, 각각의 미디어 파일 (850a 내지 850n) 에 대한 다른 정보 (850) 가 이용될 수도 있다. 예를 들어, 전자 디바이스 A (102) 는 비용들, 예컨대 메모리 (106) 로부터의 원본 포맷 미디어 파일 (111) 을 액세스, 디코딩 및/또는 제시하기 위하여 필요한 처리 또는 전력의 양을 이용할 수도 있다.
위에서 설명된 바와 같이, 전자 디바이스 A (102) 는 하나 이상의 미디어 파일들 (820) 에 대한 요청들을 모니터링한다. 미디어 파일 (820) 요청이 검출되는 경우, 전자 디바이스 A (102) (예를 들어, 에이전트 (104)) 는 그 요청에 대응하는 미디어 파일 정보 (836) 를 저장한다. 예를 들어, 특정한 미디어 파일 (820) 에 대해 요청이 첫 번째로 실행되는 시간에, 에이전트 (104) 는 미디어 파일 (820) 이 이전에 요청되지 않았다고 결정할 수도 있는데, 그 이유는 이것의 파일 명칭 (844) 및/또는 파일 어드레스 (842) 가 미디어 파일 정보 (836) 내에 포함되지 않기 때문이다. 그러면, 에이전트 (104) 는 미디어 파일 (120) 명칭 (844), 어드레스 (842), 사이즈 (870), 포맷 (872), 타입 (876), 임의의 메타데이터 (878) 및 임의의 다른 관련된 정보 (850) 를 저장한다. 또한, 에이전트 (104) 는 요청들의 횟수 (846) 를 1 로 증분하고, 요청의 시간 (848) 을 결정하며, 디코딩 비용 (874) 을 결정하고, 트랜스코딩 비용 (866) 을 결정하며, 네이티브 디코딩 비용 (868) 을 결정하고, 카운트 임계치 (838) 를 결정하며 그리고/또는 레이트 임계치 (840) 를 결정할 수도 있다. 디코딩 비용 (874), 트랜스코딩 비용 (866) 및/또는 네이티브 디코딩 비용 (868) 은 값들을 전자 디바이스 A (102) 가 저장했던 테이블 내에서 룩업함으로써 결정할 수도 있다. 대안적으로는, 이러한 비용들 (874, 866, 868) 은 비용 추정들을 이전의 디코딩들/트랜스코딩들로부터 취출함으로써 또는 데이터의 샘플 양을 디코딩/트랜스코딩함으로써 결정될 수도 있다.
에이전트 (104) 가 미디어 파일 (820) 요청을 검출할 때마다, 이것은 요청들의 횟수 (846) 를 증분할 수도 있다. 또한, 에이전트 (104) 는 미디어 파일 (820) 이 네이티브 포맷 미디어 파일 (110) 로서 세이브되어야 하는지 여부를 결정할 수도 있다. 예를 들어, 에이전트 (104) 는 요청들의 횟수 (846) 가 카운트 임계치 (838) 이상인지 여부 또는 요청 레이트가 레이트 임계치 (840) 이상인지 여부를 결정할 수도 있다. 대안적으로는, 에이전트는 미디어 파일 정보 (836), 예컨대 요청들의 횟수 (846), 요청 시간들 (848), 파일 사이즈 (870), 파일 포맷 (872), 디코딩 비용 (874), 트랜스코딩 비용 (866), 네이티브 디코딩 비용 (868), 파일 타입 (876), 메타데이터 (878) 및/또는 다른 정보 (850) 등을 이용하여 미디어 파일 (820) 을 네이티브 포맷 미디어 파일 (110) 로서 또는 원본 포맷 미디어 파일 (111) 세이브하는 것이 리소스들을 보존할지를 어느 정도의 확률로 결정할 수도 있다. 또한, 전자 디바이스 A (102) 가 네이티브 포맷 미디어 파일 (110) 을 트랜스코딩하고 디코딩하기 위한 또는 원본 포맷 미디어 파일 (111) 을 세이브하고 디코딩기 위한 비용들을 비교하여, 어느 하나가 다른 것보다 더 많은 리소스들을 보존할 것인지, 그리고 미디어 파일 (120) 이 적어도 세이브되어야 하는지 여부를 결정할 수도 있다는 것에 주의하여야 한다.
도 9 는 리소스들을 보존하기 위한 미디어 파일 캐싱의 하나의 예를 도시하는 블록도이다. 이러한 예에서는, 무선 통신 디바이스 (902) 는 하나 이상의 디스플레이들 (980), 하나 이상의 스피커들 (982), 에이전트 (904), 멀티미디어 플레이어/브라우저 (952a), 네트워크 통신 모듈 (952b), 하나 이상의 디코더들 (956), 트랜스코더 (958), 메모리 (906), 프로세서 (912), 배터리 (914) 및 하나 이상의 안테나들 (926) 을 포함한다. 무선 통신 디바이스 (902) 는 기지국 (930) 과 통신한다. 예를 들어, 무선 통신 디바이스 (902) 는 하나 이상의 안테나들 (926) 를 이용하여 전자기 신호들을 기지국 (930) 으로 송신하고 그리고 전자기 신호들을 기지국 (930) 으로부터 수신한다. 기지국 (930) 은 하나 이상의 안테나들 (928) 를 이용하여 전자기 신호들을 무선 통신 디바이스 (902) 로부터 수신하고 그리고 전자기 신호들을 무선 통신 디바이스 (902) 로 송신한다. 기지국 (930) 은 서버 A (918a), 서버 B (918b) 및 서버 C (918c) 와 네트워크 (916) 를 이용하여 통신한다. 이러한 예에서는, 서버 A (918a) 는 음악 파일 (920a) 을 IP 어드레스 A (960a) 에서 포함하고, 서버 B (918b) 는 비디오 파일 (920b) 을 IP 어드레스 B (960b) 에서 포함하며 그리고 서버 C (918c) 는 BCAST 스트림 (920c) 을 IP 어드레스 C (960c) 에서 포함한다.
무선 통신 디바이스 (902) 는 멀티미디어 플레이어/브라우저 (952a) 및 네트워크 통신 모듈 (952b) 을 이용하여 음악 파일 (920a), 비디오 파일 (920b) 및 BCAST 스트림 (920c) 을 요청한다. 다시 말하면, 멀티미디어 플레이어/브라우저 (952a) 는 음악 요청 (954a), 비디오 요청 (954b) 및 BCAST 스트리밍 요청 (954c) 을 실행한다. 추가적으로 또는 대안적으로는, 네트워크 통신 모듈 (952b) 은 음악 요청 (954d), 비디오 요청 (954e) 및 BCAST 스트리밍 요청 (954f) 을 실행한다. 예를 들어, 멀티미디어 플레이어/브라우저 (952a) 는 사용자가 미디어 파일들 (920) 을 검색 및/또는 요청하기 위하여 이용하는 소프트웨어 모듈일 수도 있다. 네트워크 통신 모듈 (952b) 은 기지국 (930) 으로 그리고 네트워크 (916) 상으로의 송신의 요청들 (954) 을 포매팅하는 소프트웨어 및/또는 하드웨어 모듈일 수도 있다.
에이전트 (904) 는 멀티미디어 플레이어/브라우저 (952a) 및/또는 네트워크 통신 모듈 (952b) 에 의하여 실행되는 요청들 (954) 을 모니터링한다. 에이전트 (904) 가 요청들 (954) 을 검출하는 경우에, 이 에이전트 (904) 는 미디어 파일 정보를 저장한다. 이러한 예에서는, 에이전트 (904) 는 IP 어드레스 A (942a), 음악 파일 명칭 (944a) 및 작가 명칭 (984a) 및 장르 A (986a) 를 포함하는 몇 개의 메타데이터를 저장한다. 또한, 에이전트 (904) 는 IP 어드레스 B (942b), 비디오 파일 명칭 (944b), 및 시리즈 명칭 (984b) 및 장르 B (986b) 를 포함하는 메타데이터를 저장한다. 더욱이, 에이전트 (904) 는 IP 어드레스 C (942c), BCAST 스트리밍 명칭 (944c) 및 채널 명칭 (984c) 및 장르 C (986c) 를 포함하는 메타데이터를 저장한다. 이 예에서 더욱 도시되는 바와 같이, 에이전트 (904) 는 요청된 미디어 파일들 (920) 각각에 대하여 요청들의 횟수 (946) 를 추적해 왔다. 이러한 예에서는, 음악 파일 (920a) 은 51 개의 요청들 (946a) 을 가졌고, 비디오 파일 (920b) 은 12 개의 요청들 (946b) 을 가졌으며 그리고 웹 TV 파일 (920c) 은 2 개의 요청들 (946c) 을 가졌다.
이러한 예에서는, 에이전트 (904) 는 모든 미디어 파일들 (920) 에 대하여 단일 카운트 임계치 (938) 를 이용한다. 에이전트 (904) 가 임계치가 10 개의 요청들이라고 결정했다고 가정한다. 에이전트 (904) 가 음악 파일 (920a) 및 비디오 파일 (920b) 에 대하여 10 개 이상의 요청들을 검출했기 때문에, 이 에이전트 (904) 는 트랜스코더 (958) 를 이용하여 음악 파일 (960a) 을 네이티브 포맷 음악 파일 (910a) 로서 그리고 비디오 파일 (960b) 을 네이티브 포맷 비디오 파일 (910b) 로서 트랜스코딩하는데, 이것들이 로컬 메모리 (906) 캐시 (908) 내에 저장된다. 하나 이상의 디코더들 (956) 이 미디어 파일들 (920) 을 디코딩하기 위하여 이용된다. 예를 들어, 음악 파일 (920a) 및 비디오 파일 (920b) 의 처음 9 개의 요청들에 대해서는, 디코더들 (956) 이 파일들 (920a 및 920b) 을 그들의 원본 포맷으로부터 디코딩하기 위하여 이용되었는데, 이것들은 이제 하나 이상의 디스플레이들 (980) 및 하나 이상의 스피커들 (982) 를 이용하여 제시된다. (구성에 의존하여) 10 번째 또는 11 번째 요청부터는, 디코더들 (956) 은 디스플레이(들)(980) 및 스피커(들)(982) 상의 프리젠테이션을 위하여 네이티브 포맷 음악 파일 (910a) 및 네이티브 포맷 비디오 파일 (910b) 을 디코딩하기 위하여 이용된다.
예를 들어, 음악 파일 (920a) 의 원본 포맷이 MP3 이고, 이것이 네이티브 포맷을 디코딩하기 위하여 40mA를 소모하고 그리고 트랜스코딩하기 위하여 100mA를 소모한다고 가정한다. 더 나아가, 네이티브 포맷 음악 파일 (910a) 이 디코딩하기 위하여 5mA를 소모한다고 가정한다. 따라서, 도시된 예에서는, 네이티브 포맷 음악 파일 (910a) 을 디코딩하는 것이 배터리 (914) 에 대하여 40mA* (51-9) - 5mA* (51-9) - 100mA = 1680mA - 210mA - 100mA = 1370mA를 보존했다.
도시된 예에서는, BCAST 스트림 (920c) 이 오직 두 개의 요청들 (946c) 만을 가진다. 2 가 카운트 임계치 (938) 보다 더 적기 때문에, 무선 통신 디바이스 (902) 는 BCAST 스트림 (920c) 이 10 번 요청되었을 때까지 특정한 디코더 (956) 를 이용하여 그것의 원본 포맷의 BCAST 스트림 (920c) 을 디코딩하는데, 그 시점에서 이 무선 통신 디바이스 (902) 는 후속 요청들 (954) 에 대하여 BCAST 스트림 (920c) 트랜스코딩하고 및/또는 메모리 (906) 내에 저장할 수도 있다.
도 10 은 리소스들을 보존하기 위한 미디어 파일 캐싱의 다른 예를 도시하는 블록도이다. 이러한 예에서는, 무선 통신 디바이스 (1002) 는 디스플레이 (1080), 스피커들 (1082), 에이전트 (1004), 멀티미디어 플레이어 (1052), 하나 이상의 디코더들 (1056), 트랜스코더 (1058), H.264 하드웨어 가속기 (1088), 메모리 (1006), 프로세서 (1012), 배터리 (1014) 및 안테나 (1026) 를 포함한다. 무선 통신 디바이스 (1002) 및 기지국 (1030) 은 신호들을 안테나들 (1026, 1028) 를 이용하여 송신하고 수신함으로써 서로 통신한다. 기지국 (1030) 은 네트워크 (1016) 를 이용하여 서버 (1018) 와 통신한다. 서버 (1018) 는 WMV 포맷 무비 파일 (1020) 을 IP 어드레스 (1060) 에서 저장하고 및/또는 제공한다.
이러한 예에서는, 에이전트 (1004) 는 레이트 임계치 (1040) 를 이용한다. 일 구성에서는, 레이트 임계치 (1040) 는 타임의 윈도우 내의 임계치이다. 이러한 레이트 임계치 (1040) 의 하나의 예는 임의의 시간 윈도우 (hour window) 내의 3 개의 요청들일 수도 있다. 다른 구성에서는, 레이트 임계치 (1040) 는 제 1 미디어 파일 (120) 요청으로부터 측정된 평균 레이트 임계치이다. 예를 들어, 레이트 임계치 (1040) 가 임의의 24-시간 윈도우 내의 3 개의 요청들이라고 가정한다. 에이전트 (1004) 는 멀티미디어 플레이어 (1052) 를 모니터링하고 WMV 무비 파일 (1020) 에 대한 무비 요청 (1054) 을 3:00pm에 검출한다. 제 1 액세스 시에는, 에이전트는 무비 파일 명칭 (1044), IP 어드레스 (1042), 요청들의 횟수 (1046) (예를 들어, 1 로서), 액세스 시간 (1048) (예를 들어, 현재 날짜에 대한 3:00pm으로서), 파일 사이즈 (1070) 및 파일 포맷 (1072) (예를 들어, WMV로서) 을 저장한다. 무선 통신 디바이스 (1002) 는 디코더 (1056) 를 이용하여 그것의 원본 WMV 포맷에서 무비 파일 (1020) 을 디코딩하는데, 그러면, 이 무선 통신 디바이스 (1002) 는 이것을 디스플레이 (1080) 및 스피커들 (1082) 을 이용하여 제시한다. 에이전트 (1004) 는 미디어 파일 (120) 요청들에 대하여 멀티미디어 플레이어 (1052) 를 계속하여 모니터링한다. 7:00pm에서는, 멀티미디어 플레이어 (1052) 는 다시 WMV 무비 파일 (1020) 을 요청한다. 에이전트 (1004) 는 이러한 요청을 검출하고 그리고 요청들의 횟수 (1046) 를 2 로 증분하며, 그리고 현재 데이터에 대한 7:00pm의 추가적 액세스 시간 (1048) 를 저장한다. 다시 한번, WMV 무비 파일 (1020) 이 그것의 원본 WMV 포맷에서 디코더 (1056) 를 이용하여 디코딩된다. 다음날 아침에, 에이전트 (1004) 는 WMV 무비 파일 (1020) 에 대한 또 다른 요청을 검출한다. 에이전트 (1004) 는 요청들의 횟수 (1046) 를 3 으로 증분하고 그리고 초기 액세스 요청에 후속하는 날짜에 대한 10:00am의 추가적 액세스 시간 (1048) 을 저장한다. 에이전트 (1004) 는 WMV 무비 파일 (1020) 에 대한 요청들의 레이트가, 임의의 24-시간 기간 내의 3 개의 요청들인 레이트 임계치 (1040) 이상이라고 결정한다. 따라서, 에이전트 (1004) 는 WMV 무비 파일 (1020) 이 네이티브 포맷으로 세이브되어야 한다고 결정한다.
이러한 예에서는, 에이전트 (1004) 는 H.264 가 가장 큰 배터리 전력 보존 (예를 들어, 후속 요청들의 유사한 횟수 상의 가장 낮은 트랜스코딩 및/또는 디코딩 전력 비용) 을 제공할 가능성이 있을 비디오 포맷이라고 결정한다. 이것은 부분적으로 무선 통신 디바이스 (1002) 가 이 무선 통신 디바이스 (1002) 로 하여금 H.264 비디오 파일들을 효율적으로 디코딩하고 및/또는 제시하도록 허용하는 H.264 하드웨어 가속기 (1088) 를 포함한다는 사실에 기인할 수도 있다.
일 구성에서는, 무선 통신 디바이스 (1002) 는 WMV 무비 파일 (1020) 을 동일한 WMV 디코더 (1056) 를 이용하여 디코딩하고 제시하며, 그리고 이제 WMV 무비 파일 (1020) 을 H.264 무비 파일 (1010) 로, 디코딩 도중에 또는 그 이후에 트랜스코딩한다. H.264 무비 파일 (1010) 은 로컬 메모리 (1006) 캐시 (1008) 내에 저장된다. 다른 구성에서는, 무선 통신 디바이스 (1002) 는 WMV 무비 파일 (1020) 을 H.264 무비 파일 (1010) 로 우선 트랜스코딩하고, 그리고 이제 H.264 디코더 (1056) 및/또는 H.264 하드웨어 가속기 (1088) 를 이용하여 H.264 무비 파일 (1010) 을 디코딩하고, 디스플레이 (1080) 및 스피커들 (1082) 을 이용하여 제시한다. 그러면, H.264 무비 파일 (1010) 은, 후속 요청들에 대하여, 디코더 (1056) 및/또는 H.264 하드웨어 가속기 (1088) 를 이용하여 디코딩되고 제시될 수도 있다.
도 11 은 전자 디바이스 (1102) 에서 사용될 수도 있는 다양한 컴포넌트들을 도시한다. 도시된 컴포넌트들은 동일한 물리적 구조 내에 또는 내의 별개의 하우징들 또는 구조들 내에 위치될 수도 있다. 도 1, 도 2, 도 3 및 도 6 과 관련하여 논의된 전자 디바이스들 (102, 118, 202, 218, 224, 318, 324, 602, 618) 이 전자 디바이스 (1102) 와 유사하게 구성될 수도 있다. 전자 디바이스 (1102) 는 프로세서 (1112) 를 포함한다. 프로세서 (1112) 는 범용 단일- 또는 멀티-칩 마이크로프로세서 (예를 들어, ARM), 특수 목적 마이크로프로세서 (예를 들어, 디지털 신호 프로세서 (DSP)), 마이크로제어기, 프로그래밍가능한 게이트 어레이 등일 수도 있다. 프로세서 (1112) 는 중앙 처리 유닛 (CPU) 로서 지칭될 수도 있다. 비록 단일 프로세서 (1112) 만이 도 11 의 전자 디바이스 (1102) 내에 도시되지만, 대안적 구성에서는 프로세서들의 조합 (예를 들어, ARM 및 DSP) 이 이용될 수도 있다.
또한, 전자 디바이스 (1102) 는 프로세서 (1112) 와 전자적 통신 상태인 메모리 (1106) 를 포함한다. 즉, 프로세서 (1112) 는 메모리 (1106) 로부터 정보를 판독하고 및/또는 이것에 정보를 기입할 수 있다. 메모리 (1106) 는 전자 정보를 저장하는 기능을 가지는 임의의 전자적 컴포넌트일 수도 있다. 메모리 (1106) 는 랜덤 액세스 메모리 (RAM), 판독-전용 메모리 (ROM), 자기적 디스크 스토리지 미디어, 광학적 스토리지 미디어, RAM 내의 플래시 메모리 디바이스들, 프로세서에 포함되는 온-보드 메모리, 프로그래밍가능한 판독-전용 메모리 (PROM), 소거가능한 프로그래밍가능한 판독-전용 메모리 (EPROM), 전기적으로 소거가능한 PROM (EEPROM), 레지스터들, 및 이들의 조합들을 포함하는 기타 등등일 수도 있다.
데이터 (1192a) 및 명령들 (1190a) 은 메모리 (1106) 내에 저장될 수도 있다. 명령들 (1190a) 은 하나 이상의 프로그램들, 루틴들, 서브-루틴들, 함수들, 프로시저들 등을 포함할 수도 있다. 명령들 (1190a) 은 단일 컴퓨터 판독가능 작업 스테이트먼트 (statement) 또는 다중 컴퓨터 판독가능 작업 스테이트먼트들을 포함할 수도 있다. 명령들 (1190a) 은 위에서 설명되었던 방법들 (400, 500) 을 구현하기 위하여 프로세서 (1112) 에 의하여 실행가능할 수도 있다. 명령들 (1190a) 을 실행하는 것은, 메모리 (1106) 내에 저장된 데이터 (1192a) 의 이용을 수반할 수도 있다. 도 11 은 프로세서 (1112) 내로 로딩되는 몇 개의 명령들 (1190b) 및 데이터 (1192b) 를 도시한다.
또한, 전자 디바이스 (1102) 는 다른 전자 디바이스들과 통신하기 위한 하나 이상의 통신 인터페이스들 (1194) 을 포함할 수도 있다. 통신 인터페이스들 (1194) 은 유선 통신 기술, 무선 통신 기술, 또는 양자에 기초할 수도 있다. 통신 인터페이스들 (1194) 의 상이한 타입들의 예들은 시리얼 포트, 병렬 포트, 범용 시리얼 버스 (Universal Serial Bus; USB), 이더넷 어댑터, IEEE 1394 버스 인터페이스, 소형 컴퓨터 시스템 인터페이스 (small computer system interface; SCSI) 버스 인터페이스, 적외선 (IR) 통신 포트, 블루투스 무선 통신 어댑터, 및 기타 등등을 포함한다.
또한, 전자 디바이스 (1102) 는 하나 이상의 입력 디바이스들 (1196) 및 하나 이상의 출력 디바이스들 (1198) 을 포함할 수도 있다. 입력 디바이스들 (1196) 의 상이한 종류들의 예들은 키보드, 마우스, 마이크, 원격 제어 디바이스, 버튼, 조이스틱, 트랙볼, 터치패드, 광펜 (lightpen) 등을 포함한다. 출력 디바이스들 (1198) 의 등 상이한 종류들의 예들은 스피커, 프린터 등을 포함한다. 통상적으로 전자 디바이스 (1102) 내에 포함될 수도 있는 출력 디바이스의 하나의 특정 타입은 디스플레이 디바이스 (1180) 이다. 본 명세서에서 개시된 구성들과 함께 이용되는 디스플레이 디바이스들 (1180) 은 임의의 적절한 이미지 투사 기술, 예컨대 음극선관 (cathode ray tube; CRT), 액정 디스플레이 (liquid crystal display; LCD), 발광 다이오드 (light-emitting diode; LED), 가스 플라즈마, 전계발광, 또는 기타 등등을 사용할 수도 있다. 또한, 디스플레이 제어기 (1101) 가 메모리 (1106) 내에 저장된 데이터를 디스플레이 디바이스 (1180) 상에 표시된 텍스트, 그래픽들, 및/또는 동화상들 (적합한 경우) 로 변환하기 위하여 제공될 수도 있다.
전자 디바이스 (1102) 의 다양한 컴포넌트들은 하나 이상의 버스들에 의하여 서로 커플링될 수도 있는데, 이것은 전력 버스, 제어 신호 버스, 상태 신호 버스, 데이터 버스 등을 포함할 수도 있다. 간결성을 위하여, 다양한 버스들은 도 11 에서 버스 시스템 (1103) 으로서 도시된다. 도 11 이 오직 전자 디바이스 (1102) 의 하나의 가능한 구성만을 도시한다는 것에 주의하여야 한다. 다양한 다른 아키텍처들 및 컴포넌트들이 사용될 수도 있다.
도 12 는 무선 통신 디바이스 (1202) 내에 포함될 수도 있는 특정 컴포넌트들을 도시한다. 도 3, 도 9 및 도 10 와 관련하여 설명된 무선 통신 디바이스들 (302, 902, 1002) 이 도 12 에 도시된 무선 통신 디바이스 (1202) 와 유사하게 구성될 수도 있다. 무선 통신 디바이스 (1202) 는 프로세서 (1212) 를 포함한다. 프로세서 (1212) 는 범용 단일- 또는 멀티-칩 마이크로프로세서 (예를 들어, ARM), 특수 목적 마이크로프로세서 (예를 들어, 디지털 신호 프로세서 (DSP)), 마이크로제어기, 프로그래밍가능한 게이트 어레이 등일 수도 있다. 프로세서 (1212) 는 중앙 처리 유닛 (CPU) 로서 지칭될 수도 있다. 비록 단일 프로세서 (1212) 만이 도 12 의 무선 통신 디바이스 (1202) 내에 도시되지만, 대안적 구성에서는 프로세서들의 조합 (예를 들어, ARM 및 DSP) 이 이용될 수도 있다.
또한, 무선 통신 디바이스 (1202) 는 프로세서 (1212) 와 전자적 통신 상태인 메모리 (1206) 를 포함한다 (즉, 프로세서 (1212) 는 메모리 (1206) 로부터 정보를 판독하고 및/또는 거기에 정보를 기입할 수 있다). 메모리 (1206) 는 전자 정보를 저장하는 성능을 가지는 임의의 전자 컴포넌트일 수도 있다. 메모리 (1206) 는 랜덤 액세스 메모리 (RAM), 판독-전용 메모리 (ROM), 자기적 디스크 스토리지 미디어, 광학적 스토리지 미디어, RAM 내의 플래시 메모리 디바이스들, 프로세서에 포함되는 온-보드 메모리, 프로그래밍가능한 판독-전용 메모리 (PROM), 소거가능한 프로그래밍가능한 판독-전용 메모리 (EPROM), 전기적으로 소거가능한 PROM (EEPROM), 레지스터들, 및 이들의 조합들을 포함하는 기타 등등일 수도 있다.
데이터 (1292a) 및 명령들 (1290a) 은 메모리 (1206) 내에 저장될 수도 있다. 명령들 (1290a) 은 하나 이상의 프로그램들, 루틴들, 서브-루틴들, 함수들, 프로시저들 등을 포함할 수도 있다. 명령들 (1290a) 은 단일 컴퓨터 판독가능 작업 스테이트먼트 또는 다중 컴퓨터 판독가능 작업 스테이트먼트들을 포함할 수도 있다. 명령들 (1290a) 은 프로세서 (1212) 에 의하여 실행가능하여 위에서 설명된 방법들 (400,500) 을 구현할 수도 있다. 명령들 (1290a) 을 실행하는 것은, 메모리 (1206) 내에 저장된 데이터 (1292a) 의 이용을 수반할 수도 있다. 도 12 는 프로세서 (1212) 로 로딩되는 몇 개의 명령들 (1290b) 및 데이터 (1292b) 를 도시한다.
또한, 무선 통신 디바이스 (1202) 는 무선 통신 디바이스 (1202) 와 원격 위치 (예를 들어, 기지국 또는 다른 무선 통신 디바이스) 사이에서의 신호들의 송신 및 수신을 허용하기 위한 송신기 (1207) 및 수신기 (1209) 를 포함할 수도 있다. 송신기 (1207) 및 수신기 (1209) 는 총괄적으로 송수신기 (1205) 로서 지칭될 수도 있다. 안테나 (1226) 가 송수신기 (1205) 로 전기적으로 커플링될 수도 있다. 또한, 무선 통신 디바이스 (1202) 는 (미도시) 다중 송신기들, 다중 수신기들, 다중 송수신기들 및/또는 다중 안테나를 포함할 수도 있다.
무선 통신 디바이스 (1202) 의 다양한 컴포넌트들은 하나 이상의 버스들에 의하여 서로 커플링될 수도 있는데, 이것은 전력 버스, 제어 신호 버스, 상태 신호 버스, 데이터 버스 등을 포함할 수도 있다. 간결성을 위하여, 다양한 버스들은 도 12 에서 버스 시스템 (1203) 으로서 도시된다.
도 13 은 기지국 (1330) 내에 포함될 수도 있는 특정 컴포넌트들을 도시한다. 이전에 도 3, 도 9 및 도 10 과 관련하여 논의된 기지국들 (330, 930, 1030) 이 도 13 에 도시된 기지국 (1330) 과 유사하게 구성될 수도 있다. 기지국 (1330) 은 프로세서 (1312) 를 포함한다. 프로세서 (1312) 는 범용 단일- 또는 멀티-칩 마이크로프로세서 (예를 들어, ARM), 특수 목적 마이크로프로세서 (예를 들어, 디지털 신호 프로세서 (DSP)), 마이크로제어기, 프로그래밍가능한 게이트 어레이 등일 수도 있다. 프로세서 (1312) 는 중앙 처리 유닛 (CPU) 로서 지칭될 수도 있다. 비록 단일 프로세서 (1312) 만이 도 13 의 기지국 (1330) 내에 도시되지만, 대안적 구성에서는 프로세서들의 조합 (예를 들어, ARM 및 DSP) 이 이용될 수도 있다.
또한, 기지국 (1330) 은 프로세서 (1312) 와 전자적으로 통신하는 상태인 메모리 (1306) 를 포함한다 (즉, 프로세서 (1312) 는 메모리 (1306) 로부터 정보를 판독하고 및/또는 거기에 정보를 기입할 수 있다). 메모리 (1306) 는 전자적 정보를 저장하는 성능을 가지는 임의의 전자 컴포넌트일 수도 있다. 메모리 (1306) 는 랜덤 액세스 메모리 (RAM), 판독-전용 메모리 (ROM), 자기적 디스크 스토리지 미디어, 광학적 스토리지 미디어, RAM 내의 플래시 메모리 디바이스들, 프로세서에 구현되는 온-보드 메모리, 프로그래밍가능한 판독-전용 메모리 (PROM), 소거가능한 프로그래밍가능한 판독-전용 메모리 (EPROM), 전기적으로 소거가능한 PROM (EEPROM), 레지스터들, 및 이들의 조합들을 포함하는 기타 등등 일 수도 있다.
데이터 (1392a) 및 명령들 (1390a) 은 메모리 (1306) 내에 저장될 수도 있다. 명령들 (1390a) 은 하나 이상의 프로그램들, 루틴들, 서브-루틴들, 함수들, 프로시저들 등을 포함할 수도 있다. 명령들 (1390a) 은 단일 컴퓨터 판독가능 작업 스테이트먼트 또는 다중 컴퓨터 판독가능 작업 스테이트먼트들을 포함할 수도 있다. 명령들 (1390a) 은 프로세서 (1312) 에 의하여 실행가능하여 본 명세서에서 개시된 방법들 (400, 500) 을 구현할 수도 있다. 명령들 (1390a) 을 실행하는 것은 메모리 (1306) 내에 저장되는 데이터 (1392a) 의 이용을 수반할 수도 있다. 도 13 은 프로세서 (1312) 내로 로딩되는 몇 개의 명령들 (1390b) 및 데이터 (1392b) 을 도시한다.
또한, 기지국 (1330) 은 기지국 (1330) 및 원격 위치 (예를 들어, 무선 통신 디바이스) 사이에서의 신호들의 송신 및 수신을 허용하기 위한 송신기 (1307) 및 수신기 (1309) 를 포함할 수도 있다. 송신기 (1307) 및 수신기 (1309) 는 총괄적으로 송수신기 (1305) 로서 지칭될 수도 있다. 안테나 (1328) 는 송수신기 (1305) 로 전기적으로 커플링될 수도 있다. 또한, 기지국 (1330) 은 (미도시) 다중 송신기들, 다중 수신기들, 다중 송수신기들 및/또는 다중 안테나를 포함할 수도 있다.
기지국 (1330) 의 다양한 컴포넌트들은 하나 이상의 버스들에 의하여 서로 커플링될 수도 있는데, 이것은 전력 버스, 제어 신호 버스, 상태 신호 버스, 데이터 버스 등을 포함할 수도 있다. 간결성을 위하여, 다양한 버스들은 도 13 에서 버스 시스템 (1303) 으로서 도시된다.
위의 발명을 실시하기 위한 구체적인 내용에서, 다양한 용어들과 연계하여 가끔 참조 번호들이 이용되어 왔다. 어떤 용어가 참조 번호와 연계하여 이용되는 경우에는, 이것은 도면들 중 하나 이상에서 도시된 특정한 엘리먼트를 지칭하는 것을 의미할 수도 있다. 어떤 용어가 참조 번호가 없이 이용되는 경우에는, 이것은 임의의 특정한 도면으로의 한정이 없이 일반적으로 그 용어를 지칭하는 것을 의미할 수도 있다.
용어 "결정 (determining)"은 매우 광범위한 액션들을 망라하며, 그러므로 "결정"은 연산 (calculating), 계산 (computing), 처리 (processing), 유도 (deriving), 검사 (investigating), 룩업 (looking up) (예를 들어, 테이블, 데이터베이스 또는 다른 데이터 구조 내에서의 룩업 동작), 확인 (ascertaining) 및 기타 등등을 포함할 수 있다. 또한, "결정"은 수신 (예를 들어, 정보를 수신), 액세싱 (예를 들어, 메모리 내의 데이터에 액세스) 및 기타 등등을 포함할 수 있다. 또한, "결정"은 결단 (resolving), 선택 (selecting), 선택 (choosing), 확립 (establishing) 및 기타 등등을 포함할 수 있다.
어구 "~ 에 기초하여"는, 명백히 달리 특정되지 않으면 "~ 에만 기초하여 (based only on)"를 의미하지 않는다. 다시 말하면, 어구 "~ 에 기초하여"는 "~ 에만 기초하여" 및 "적어도 ~ 에 기초하여 (based at least on)" 모두를 기술한다.
본 명세서에서 설명된 함수들은 하나 이상의 명령들로서 프로세서-판독가능 또는 컴퓨터 판독가능 매체 상에 저장될 수도 있다. 용어 "컴퓨터 판독가능 매체"는 컴퓨터 또는 프로세서에 의하여 액세스될 수 있는 임의의 이용가능한 매체를 지칭한다. 예를 들자면, 이러한 매체는 RAM, ROM, EEPROM, 플래시 메모리, CD-ROM 또는 다른 광학적 디스크 스토리지, 자기적 디스크 스토리지 또는 다른 자기적 스토리지 디바이스들, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하기 위하여 이용될 수 있고 그리고 컴퓨터에 의하여 액세스될 수 있는 임의의 다른 매체를 포함할 수도 있다. 본 명세서에서 이용될 때, 디스크 (disk 및 disc) 는 컴팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루레이® 디스크를 포함하며, 여기서 디스크들 (disks) 은 일반적으로 데이터를 자기적으로 복제하는 반면, 디스크들 (discs) 은 데이터를 레이저를 이용하여 광학적으로 복제한다. 컴퓨터 판독가능 매체가 유형적이며 (tangible) 그리고 비일시적일 수도 있다는 것에 주의하여야 한다. 용어 "컴퓨터 프로그램 제품"은, 컴퓨팅 디바이스 또는 프로세서에 의하여 실행되고, 처리되며, 또는 계산될 수도 있는 코드 또는 명령들 (예를 들어, "프로그램") 과 조합된 컴퓨팅 디바이스 또는 프로세서를 지칭한다. 본 명세서에서 사용될 때, 용어 "코드"는 컴퓨팅 디바이스 또는 프로세서에 의하여 실행가능한 소프트웨어, 명령들, 코드 또는 데이터를 지칭할 수도 있다.
또한, 소프트웨어 또는 명령들은 송신 매체 상에서 송신될 수도 있다. 예를 들어, 만일 소프트웨어가 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광섬유 케이블, 연선 (twisted pair), 디지털 가입자 회선 (DSL), 또는 무선 기술들 이를테면 적외선, 라디오, 및/또는 마이크로파를 이용하여 전송된다면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술이 송신 매체의 정의에 포함된다.
본 명세서에서 설명된 방법들은 설명된 방법을 달성하기 위한 하나 이상의 단계들 또는 액션들을 포함한다. 방법 단계들 및/또는 액션들은 특허청구범위의 범위로부터 벗어나는 일 없이 서로 교환될 수도 있다. 다시 말하면, 단계들 또는 액션들의 특정한 순서가 설명되는 중인 방법의 적합한 동작을 위하여 요구되지 않는다면, 특정한 단계들 및/또는 액션들의 순서 및/또는 이용이 특허청구범위의 범위로부터 벗어나는 일 없이 변경될 수도 있다.
특허청구범위는 위에서 도시된 구체적인 구성 및 컴포넌트들로 한정되지 않는다는 것이 이해되어야 한다. 특허청구범위의 범위로부터 벗어나지 않으면서 다양한 변경들, 변화들 및 변동들이 본 명세서에서 설명되는 시스템들, 방법들, 및 장치의 배치, 동작 및 세부 사항들에서 이루어질 수도 있다.

Claims (44)

  1. 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스로서,
    프로세서;
    상기 프로세서와 전자적으로 통신하는 메모리; 및
    상기 메모리에 저장된 명령들을 포함하고,
    상기 명령들은,
    미디어 파일에 대한 요청들을 모니터링하고;
    상기 전자 디바이스에서 발생한 요청들의 카운트 임계치를 포함하는, 미디어 파일 정보를 저장하며;
    상기 미디어 파일 정보에 기초하여 상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하고, 상기 미디어 파일이 저장되어야 한다고 결정된다면, 상기 미디어 파일을 네이티브 포맷 (native format) 으로 세이브 (save) 하고;
    상기 미디어 파일을 제시하도록 실행가능한, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스.
  2. 제 1 항에 있어서,
    상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 것은, 요청들의 횟수에 기초하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스.
  3. 제 1 항에 있어서,
    상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 것은, 원본 포맷 디코딩 비용에 기초하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스.
  4. 제 1 항에 있어서,
    상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 것은, 네이티브 포맷 디코딩 비용에 기초하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스.
  5. 제 1 항에 있어서,
    상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 것은, 트랜스코딩 비용에 기초하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스.
  6. 제 1 항에 있어서,
    상기 명령들은 또한,
    상기 미디어 파일에 대한 후속 요청들을 검출하고;
    상기 미디어 파일에 대한 후속 요청들이 검출되는 경우, 상기 미디어 파일을 상기 네이티브 포맷으로 제시하도록 실행가능한, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스.
  7. 제 1 항에 있어서,
    상기 미디어 파일은 상기 전자 디바이스 상의 로컬 메모리에 세이브되는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스.
  8. 제 1 항에 있어서,
    상기 미디어 파일은 로컬 네트워크 내의 다른 전자 디바이스 상의 로컬 메모리에 세이브되는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스.
  9. 제 1 항에 있어서,
    상기 미디어 파일을 세이브하는 것은, 상기 미디어 파일을 원본 포맷으로부터 네이티브 포맷으로 트랜스코딩하는 것을 포함하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스.
  10. 제 1 항에 있어서,
    상기 명령들은 또한,
    상기 카운트 임계치를 결정하도록 실행가능한, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스.
  11. 제 1 항에 있어서,
    상기 미디어 파일은, 요청 카운트가 상기 카운트 임계치 이상인 경우, 저장되어야 하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스.
  12. 제 1 항에 있어서,
    상기 미디어 파일은, 요청 레이트가 레이트 임계치 이상인 경우, 저장되어야 하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스.
  13. 제 1 항에 있어서,
    상기 미디어 파일은 하나 이상의 미디어 스트림들을 포함하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스.
  14. 제 1 항에 있어서,
    상기 전자 디바이스는 무선 통신 디바이스인, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스.
  15. 제 1 항에 있어서,
    상기 미디어 파일은 상기 네이티브 포맷으로 제시되는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스.
  16. 제 1 항에 있어서,
    상기 미디어 파일은 원본 포맷으로 제시되는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 전자 디바이스.
  17. 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법으로서,
    미디어 파일에 대한 요청들을 모니터링하는 단계;
    상기 전자 디바이스에 의해 미디어 파일 정보를 저장하는 단계로서, 상기 미디어 파일 정보는 상기 전자 디바이스에서 발생한 요청들의 카운트 임계치를 포함하는, 상기 저장하는 단계; 및
    상기 전자 디바이스 상에서, 상기 미디어 파일 정보에 기초하여 상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 단계를 포함하고, 상기 미디어 파일이 저장되어야 한다고 결정된다면,
    상기 전자 디바이스에 의해 상기 미디어 파일을 네이티브 포맷으로 세이브하는 단계; 및
    상기 미디어 파일을 상기 전자 디바이스 상에 제시하는 단계를 포함하는, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법.
  18. 제 17 항에 있어서,
    상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 단계는, 요청들의 횟수에 기초하는, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법.
  19. 제 17 항에 있어서,
    상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 단계는, 원본 포맷 디코딩 비용에 기초하는, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법.
  20. 제 17 항에 있어서,
    상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 단계는, 네이티브 포맷 디코딩 비용에 기초하는, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법.
  21. 제 17 항에 있어서,
    상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 단계는, 트랜스코딩 비용에 기초하는, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법.
  22. 제 17 항에 있어서,
    상기 미디어 파일에 대한 후속 요청들을 검출하는 단계; 및
    상기 미디어 파일에 대한 후속 요청들이 검출되는 경우, 상기 미디어 파일을 상기 네이티브 포맷으로 제시하는 단계를 더 포함하는, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법.
  23. 제 17 항에 있어서,
    상기 미디어 파일은 상기 전자 디바이스 상의 로컬 메모리에 세이브되는, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법.
  24. 제 17 항에 있어서,
    상기 미디어 파일은 로컬 네트워크 내의 다른 전자 디바이스 상의 로컬 메모리에 세이브되는, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법.
  25. 제 17 항에 있어서,
    상기 미디어 파일을 세이브하는 단계는,
    상기 미디어 파일을 원본 포맷으로부터 상기 네이티브 포맷으로 트랜스코딩하는 단계를 포함하는, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법.
  26. 제 17 항에 있어서,
    상기 카운트 임계치를 결정하는 단계를 더 포함하는, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법.
  27. 제 17 항에 있어서,
    상기 미디어 파일은, 요청 카운트가 상기 카운트 임계치 이상인 경우, 저장되어야 하는, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법.
  28. 제 17 항에 있어서,
    상기 미디어 파일은, 요청 레이트가 레이트 임계치 이상인 경우, 저장되어야 하는, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법.
  29. 제 17 항에 있어서,
    상기 미디어 파일은 하나 이상의 미디어 스트림들을 포함하는, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법.
  30. 제 17 항에 있어서,
    상기 전자 디바이스는 무선 통신 디바이스인, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법.
  31. 제 17 항에 있어서,
    상기 미디어 파일은 상기 네이티브 포맷으로 제시되는, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법.
  32. 제 17 항에 있어서,
    상기 미디어 파일은 원본 포맷으로 제시되는, 전자 디바이스 상의 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 방법.
  33. 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한, 명령들을 저장한, 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은,
    전자 디바이스로 하여금 미디어 파일에 대한 요청들을 모니터링하도록 하기 위한 코드;
    상기 전자 디바이스로 하여금 미디어 파일 정보를 저장하도록 하기 위한 코드로서, 상기 미디어 파일 정보는 상기 전자 디바이스에서 발생한 요청들의 카운트 임계치를 포함하는, 상기 저장하도록 하기 위한 코드; 및
    상기 전자 디바이스로 하여금 상기 미디어 파일 정보에 기초하여 상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하도록 하기 위한 코드로서, 상기 미디어 파일이 저장되어야 한다고 결정된다면, 상기 미디어 파일을 네이티브 포맷으로 세이브하도록 하고; 상기 미디어 파일을 제시하도록 하기 위한, 상기 결정하도록 하기 위한 코드를 포함하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 컴퓨터 판독가능 저장 매체.
  34. 제 33 항에 있어서,
    상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 것은, 요청들의 횟수에 기초하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 컴퓨터 판독가능 저장 매체.
  35. 제 33 항에 있어서,
    상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 것은, 원본 포맷 디코딩 비용에 기초하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 컴퓨터 판독가능 저장 매체.
  36. 제 33 항에 있어서,
    상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 것은, 네이티브 포맷 디코딩 비용에 기초하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 컴퓨터 판독가능 저장 매체.
  37. 제 33 항에 있어서,
    상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 것은, 트랜스코딩 비용에 기초하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 컴퓨터 판독가능 저장 매체.
  38. 제 33 항에 있어서,
    상기 명령들은,
    상기 전자 디바이스로 하여금 상기 미디어 파일에 대한 후속 요청들을 검출하도록 하기 위한 코드; 및
    상기 미디어 파일에 대한 후속 요청들이 검출되는 경우, 상기 전자 디바이스로 하여금 상기 미디어 파일을 상기 네이티브 포맷으로 제시하도록 하기 위한 코드를 더 포함하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 컴퓨터 판독가능 저장 매체.
  39. 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 장치로서,
    미디어 파일에 대한 요청들을 모니터링하는 수단;
    미디어 파일 정보를 저장하는 수단으로서, 상기 미디어 파일 정보는 전자 디바이스에서 발생한 요청들의 카운트 임계치를 포함하는, 상기 저장하는 수단; 및
    상기 미디어 파일 정보에 기초하여 상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 수단으로서, 상기 미디어 파일이 저장되어야 한다고 결정된다면, 상기 미디어 파일을 네이티브 포맷으로 세이브하고; 상기 미디어 파일을 제시하는, 상기 결정하는 수단을 포함하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 장치.
  40. 제 39 항에 있어서,
    상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 것은, 요청들의 횟수에 기초하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 장치.
  41. 제 39 항에 있어서,
    상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 것은, 원본 포맷 디코딩 비용에 기초하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 장치.
  42. 제 39 항에 있어서,
    상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 것은, 네이티브 포맷 디코딩 비용에 기초하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 장치.
  43. 제 39 항에 있어서,
    상기 미디어 파일이 국지적으로 저장되어야 하는지 여부를 결정하는 것은, 트랜스코딩 비용에 기초하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 장치.
  44. 제 39 항에 있어서,
    상기 미디어 파일에 대한 후속 요청들을 검출하는 수단; 및
    상기 미디어 파일에 대한 후속 요청들이 검출되는 경우, 상기 미디어 파일을 상기 네이티브 포맷으로 제시하는 수단을 더 포함하는, 리소스들을 보존하기 위한 미디어 파일 캐싱을 위한 장치.
KR1020137013147A 2010-10-27 2011-10-24 리소스들을 보존하기 위한 전자 디바이스에 대한 미디어 파일 캐싱 KR101501858B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/912,901 2010-10-27
US12/912,901 US9002826B2 (en) 2010-10-27 2010-10-27 Media file caching for an electronic device to conserve resources
PCT/US2011/057553 WO2012058172A1 (en) 2010-10-27 2011-10-24 Media file caching for an electronic device to conserve resources

Publications (2)

Publication Number Publication Date
KR20130082164A KR20130082164A (ko) 2013-07-18
KR101501858B1 true KR101501858B1 (ko) 2015-03-18

Family

ID=44908130

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137013147A KR101501858B1 (ko) 2010-10-27 2011-10-24 리소스들을 보존하기 위한 전자 디바이스에 대한 미디어 파일 캐싱

Country Status (6)

Country Link
US (1) US9002826B2 (ko)
EP (1) EP2633692A1 (ko)
JP (1) JP5661940B2 (ko)
KR (1) KR101501858B1 (ko)
CN (1) CN103181184B (ko)
WO (1) WO2012058172A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10380022B2 (en) * 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
EP2759145A1 (en) * 2011-09-21 2014-07-30 Telefonaktiebolaget LM Ericsson (PUBL) Methods, devices and computer programs for transmitting or for receiving and playing media streams
US9104582B1 (en) * 2011-12-29 2015-08-11 Juniper Networks, Inc. Optimized data storage
TWI558183B (zh) 2012-07-09 2016-11-11 Vid衡器股份有限公司 功率知覺視訊解碼及串流
US9112922B2 (en) 2012-08-28 2015-08-18 Vantrix Corporation Method and system for self-tuning cache management
JP6020196B2 (ja) * 2013-01-23 2016-11-02 富士ゼロックス株式会社 情報提供装置及びプログラム
CN105191329B (zh) 2013-03-06 2018-10-19 交互数字专利控股公司 用于视频流的功率感知自适应
US10530882B2 (en) 2013-03-15 2020-01-07 Vivint, Inc. Content storage and processing in network base stations and methods for content delivery in a mesh network
US9507781B2 (en) * 2013-04-30 2016-11-29 Jpmorgan Chase Bank, N.A. System and method for mobile presentation processing
US9620148B2 (en) * 2013-07-01 2017-04-11 Toyota Motor Engineering & Manufacturing North America, Inc. Systems, vehicles, and methods for limiting speech-based access to an audio metadata database
US20150120535A1 (en) * 2013-10-31 2015-04-30 Damon Evans Media distribution systems and methods
US10248328B2 (en) 2013-11-07 2019-04-02 Netlist, Inc. Direct data move between DRAM and storage on a memory module
KR20160083926A (ko) 2013-11-07 2016-07-12 넷리스트 인코포레이티드 하이브리드 메모리 모듈, 및 그를 동작시키는 시스템 및 방법
US11182284B2 (en) 2013-11-07 2021-11-23 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
CN103618868A (zh) * 2013-12-13 2014-03-05 广东欧珀移动通信有限公司 移动设备的低分辨率视频播放方法及系统
CN105225683B (zh) * 2014-06-18 2019-11-05 中兴通讯股份有限公司 音频播放方法及装置
US10257112B1 (en) 2014-11-07 2019-04-09 Edward Fredkin Computer system making bandwidth-efficient use of internet resources
US10880357B2 (en) * 2014-12-23 2020-12-29 Adobe Inc. Reducing requests for media segments in streaming of multimedia content
CN108476328B (zh) * 2016-01-04 2021-04-20 瑞典爱立信有限公司 改进的网络记录设备
US10798393B2 (en) * 2018-07-09 2020-10-06 Hulu, LLC Two pass chunk parallel transcoding process
KR102134250B1 (ko) * 2019-08-12 2020-07-16 네이버 주식회사 스트리밍 콘텐츠의 재생 방법 및 시스템
JP7318899B2 (ja) * 2020-01-02 2023-08-01 レベル スリー コミュニケーションズ,エルエルシー 二次ストレージにコンテンツアイテムを格納するためのシステムおよび方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004508605A (ja) * 1999-09-07 2004-03-18 リベレイト テクノロジーズ エルエルシー マルチメディアデータの格納、読み出し、再生の方法、装置、およびシステム
KR20060085910A (ko) * 2003-09-30 2006-07-28 소니 가부시끼 가이샤 정보재생장치, 방법 및 프로그램

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549577B2 (en) * 1997-09-26 2003-04-15 Sarnoff Corporation Computational resource allocation in an information stream decoder
JP2000066844A (ja) 1998-08-17 2000-03-03 Nec Off Syst Ltd ディスク装置圧縮システム
US6745368B1 (en) 1999-06-11 2004-06-01 Liberate Technologies Methods, apparatus, and systems for storing, retrieving and playing multimedia data
US6341304B1 (en) 1999-09-23 2002-01-22 International Business Machines Corporation Data acquisition and distribution processing system
US6959436B2 (en) 2000-12-15 2005-10-25 Innopath Software, Inc. Apparatus and methods for intelligently providing applications and data on a mobile device system
US6651141B2 (en) * 2000-12-29 2003-11-18 Intel Corporation System and method for populating cache servers with popular media contents
US20030028673A1 (en) 2001-08-01 2003-02-06 Intel Corporation System and method for compressing and decompressing browser cache in portable, handheld and wireless communication devices
US7769823B2 (en) * 2001-09-28 2010-08-03 F5 Networks, Inc. Method and system for distributing requests for content
US20040098463A1 (en) 2002-11-19 2004-05-20 Bo Shen Transcoding-enabled caching proxy and method thereof
US20040193659A1 (en) 2003-03-27 2004-09-30 International Business Machines Corporation Method, apparatus, and program for archive management based on access log
US20060069746A1 (en) * 2004-09-08 2006-03-30 Davis Franklin A System and method for smart persistent cache
FI119067B (fi) 2005-03-23 2008-07-15 Metso Paper Inc Kalanteri ja menetelmä kuiturainan, erityisesti paperi- tai kartonkirainan kalanteroinnissa
US20060253608A1 (en) * 2005-03-30 2006-11-09 Nokia Corporation Method, device, and system for managing a cache of network caches
AU2006280105B9 (en) * 2005-08-12 2011-08-18 Nokia Solutions And Networks Gmbh & Co. Kg A multi-source and resilient video on demand streaming system for a peer-to-peer subscriber community
US20080059886A1 (en) 2006-08-31 2008-03-06 Ati Technologies Inc. Smart picture selector and cache
WO2008048558A2 (en) * 2006-10-13 2008-04-24 Mark Phillips Method and system for efficient and dynamically adaptable digitally-encoded-information distribution
WO2008100345A2 (en) 2007-02-09 2008-08-21 Novarra, Inc. Method and system for transforming and delivering video file content for mobile devices
US20080227440A1 (en) 2007-03-16 2008-09-18 Vinay Kumar Chowdary Settepalli Methods and apparatus for discovering and updating a mobile device via user behavior
US8832220B2 (en) 2007-05-29 2014-09-09 Domingo Enterprises, Llc System and method for increasing data availability on a mobile device based on operating mode
US8763058B2 (en) * 2007-06-28 2014-06-24 Apple Inc. Selective data downloading and presentation based on user interaction
US8561116B2 (en) * 2007-09-26 2013-10-15 Charles A. Hasek Methods and apparatus for content caching in a video network
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US20100017516A1 (en) * 2008-07-16 2010-01-21 General Instrument Corporation Demand-driven optimization and balancing of transcoding resources
JP2010091752A (ja) * 2008-10-08 2010-04-22 Sony Ericsson Mobile Communications Ab 携帯情報端末、情報処理方法、及び、情報処理プログラム
US8175584B2 (en) * 2009-09-14 2012-05-08 Texas Instruments Incorporated System and method to facilitate downloading data at a mobile wireless device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004508605A (ja) * 1999-09-07 2004-03-18 リベレイト テクノロジーズ エルエルシー マルチメディアデータの格納、読み出し、再生の方法、装置、およびシステム
KR20060085910A (ko) * 2003-09-30 2006-07-28 소니 가부시끼 가이샤 정보재생장치, 방법 및 프로그램

Also Published As

Publication number Publication date
WO2012058172A1 (en) 2012-05-03
US20120110036A1 (en) 2012-05-03
CN103181184B (zh) 2016-02-24
CN103181184A (zh) 2013-06-26
US9002826B2 (en) 2015-04-07
JP5661940B2 (ja) 2015-01-28
EP2633692A1 (en) 2013-09-04
JP2013545187A (ja) 2013-12-19
KR20130082164A (ko) 2013-07-18

Similar Documents

Publication Publication Date Title
KR101501858B1 (ko) 리소스들을 보존하기 위한 전자 디바이스에 대한 미디어 파일 캐싱
US20200221151A1 (en) Content insertion in streaming media content
US8914529B2 (en) Dynamically adapting media content streaming and playback parameters for existing streaming and playback conditions
US9043797B2 (en) Using pause on an electronic device to manage resources
US11057680B2 (en) Methods and apparatus to measure exposure to streaming media
EP2475146B1 (en) Anchoring and sharing time positions and media reception information on a presentation timeline for multimedia content streamed over a network
US11539990B2 (en) Adaptive content selection
US10904642B2 (en) Methods and apparatus for updating media presentation data
US8082507B2 (en) Scalable user interface
WO2012116342A1 (en) Controlling access to media for an electronic device
US20090178096A1 (en) Intelligent over-transmission of media data segments
CN106797487B (zh) 云流服务器
US8837578B2 (en) MPEG-W decoder
WO2021143360A1 (zh) 资源传输方法及计算机设备
US20120084435A1 (en) Smart Real-time Content Delivery
CA2944985C (en) Receiver, transmitter, data communication method, and data processing method
KR102319932B1 (ko) 수신 장치 및 수신 방법, 재생 장치 및 재생 방법, 공급 장치 및 공급 방법, 그리고 프로그램
US20230300416A1 (en) Systems and methods to insert additional content
US11412309B2 (en) Method for managing the connections of an electronic device
AU2023233568A1 (en) Systems and methods to insert additional content

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee