U.S. patent application number 13/452852 was filed with the patent office on 2012-08-16 for intelligent caching of media files.
Invention is credited to Joseph Leo Claude Mario Lavalliere, XAVIER LEVEQUE, Richard Elliott Norton.
Application Number | 20120209956 13/452852 |
Document ID | / |
Family ID | 40624827 |
Filed Date | 2012-08-16 |
United States Patent
Application |
20120209956 |
Kind Code |
A1 |
LEVEQUE; XAVIER ; et
al. |
August 16, 2012 |
INTELLIGENT CACHING OF MEDIA FILES
Abstract
A method of receiving and forwarding a multimedia message is
provided. The multimedia message is adapted with a first adaptation
profile into a first adapted message to be received in a first
device. The multimedia message and the first adapted message are
stored in a media cache. The message may then be forwarded from the
first device to a second device that has a second adaptation
profile by retrieving the first adapted message from the media
cache and sending it to the second device if the first and second
adaptation profiles match, otherwise the multimedia message is
retrieved from the media cache and adapted with the second
adaptation profile into a second adapted message that is then sent
to the second device. In addition, the second adapted message is
stored in the media cache. A corresponding system for processing
and forwarding the multimedia message is also provided.
Inventors: |
LEVEQUE; XAVIER; (Laval,
CA) ; Norton; Richard Elliott; (Ste-Genevieve,
CA) ; Lavalliere; Joseph Leo Claude Mario;
(Mascouche, CA) |
Family ID: |
40624827 |
Appl. No.: |
13/452852 |
Filed: |
April 21, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
12114798 |
May 4, 2008 |
8171167 |
|
|
13452852 |
|
|
|
|
60987460 |
Nov 13, 2007 |
|
|
|
Current U.S.
Class: |
709/217 |
Current CPC
Class: |
H04L 67/303 20130101;
H04L 51/38 20130101; H04L 67/28 20130101; H04L 67/2842 20130101;
H04L 67/2823 20130101; H04L 51/066 20130101 |
Class at
Publication: |
709/217 |
International
Class: |
G06F 15/16 20060101
G06F015/16 |
Claims
1. A method for caching and forwarding a multimedia message,
comprising: employing at least one hardware processor for:
forwarding a multimedia message, comprising a message body having
one or more media parts, to a destination device, comprising: (a)
determining a transcoding profile corresponding to capabilities of
the destination device; (b) provided the message body matches a
cached message body and the transcoding profile matches a cached
transcoding profile: (i) retrieving the cached message body; and
(ii) forwarding the multimedia message comprising the retrieved
cached message body to the destination device; otherwise: (c)
processing the one or more media parts of the message body,
comprising: (iii) retrieving cached source media files,
corresponding to individual the one or more media parts; (iv)
transcoding the retrieved cached source media files into
corresponding adapted media files in accordance with the
transcoding profile; (v) generating an adapted multimedia message
comprising an adapted message body having the adapted media files;
and (d) forwarding the adapted multimedia message to the
destination device.
2. A system for caching and forwarding a multimedia message,
comprising: at least one hardware processor; and a non-transitory
computer readable storage medium having computer readable
instructions stored thereon for execution by the at least one
processor, causing the at least one processor to forward a
multimedia message, comprising a message body having one or more
media parts, to a destination device, comprising: (a) determining a
transcoding profile corresponding to capabilities of the
destination device; (b) provided the message body matches a cached
message body and the transcoding profile matches a cached
transcoding profile: (i) retrieving the cached message body; and
(ii) forwarding the multimedia message comprising the retrieved
cached message body to the destination device; otherwise: (c)
processing the one or more media parts of the message body,
comprising: (iii) retrieving cached source media files,
corresponding to individual the one or more media parts; (iv)
transcoding the retrieved cached source media files into
corresponding adapted media files in accordance with the
transcoding profile; (v) generating an adapted multimedia message
comprising an adapted message body having the adapted media files;
and (d) forwarding the adapted multimedia message to the
destination device.
Description
RELATED APPLICATIONS
[0001] The present application is a Continuation of U.S. patent
application Ser. No. 12/114,798 filed on May 4, 2008, which has now
issued into a U.S. Pat. No. 8,171,167 on May 1, 2012, which claims
benefit from the U.S. provisional application Ser. No. 60/987,460
to LEV QUE, Xavier, entitled "Intelligent Caching of Media Files"
filed on Nov. 13, 2007, entire contents of the applications and the
issued patent being incorporated herein by reference.
FIELD OF THE INVENTION
[0002] The present invention relates to the adaptation and
forwarding of multimedia files, specifically the caching of
previously forwarded files and adapted files.
BACKGROUND OF THE INVENTION
[0003] The multimedia messaging service (MMS) provides methods for
the peer-to-peer and server-to-client transmission of various types
of data including text, audio, still images, and moving images,
primarily over wireless networks, see, for example, Open Mobile
Alliance (OMA) Multimedia Messaging Service, Architecture Overview,
Approved Version 1.2 1 Mar. 2005, available from
http://www.openmobilealliance.org/release_program/mms_v1.sub.--2.html.
[0004] While the MMS provides standard methods for encapsulating
such data, the type of data may be coded in any of a large number
of standard formats such as plain text, 3GP video and audio/speech,
SP-MIDI for synthetic audio, JPEG still images. For details on any
one of those standards, please refer to "Multimedia Messaging
Service", published by Media formats and codecs, 3GPP TS 26.140,
V7.1.0 (June 2007), available from
http://www.3gpp.org/ftp/Specs/html-info/26140.htm.
[0005] FIG. 1 illustrates one example of an MMS system architecture
100, including an Originating Node 102, a Service Delivery Platform
104, a Destination Node "I" 106, and an Adaptation Engine 108. The
Originating Node 102 is able to communicate with the Service
Delivery Platform 104 over a Network "A" 110. Similarly, the
Destination Node "I" 106 is able to communicate with the Service
Delivery Platform 104 over a Network "B" 112. The Networks "A" and
"B" are merely examples, shown to illustrate a possible set of
connectivities, and many other configurations are also possible.
For example, the Originating Node 102 and the Destination Node "I"
106 may be able to communicate with the Service Delivery Platform
104 over a single network; the Originating Node 102 may be directly
connected to the Service Delivery Platform 104 without an
intervening network, etc.
[0006] The Adaptation Engine 108 may be directly connected with the
Service Delivery Platform 104 over a link 114 as shown in FIG. 1,
or alternatively, may be connected to it through a network, or may
be embedded in the Service Delivery Platform 104.
[0007] In a trivial case, the Originating Node 102 may send a
multimedia message that is destined for the Destination Node "I"
106. The message is forwarded through the Network "A" 110 to the
Service Delivery Platform 104 from which the message is sent to the
Destination Node "I" 106 via the Network "B" 112. The Originating
Node 102 and the Destination Node "I" 106 may for instance be
wireless devices, the Networks "A" and "B" (110 and 112) may in
this case be wireless networks, and the Service Delivery Platform
104 may provide the multimedia message forwarding service.
[0008] In another instance, the Originating Node 102 may be a
server of a content provider, connected to the Service Delivery
Platform 104 through a data network, i.e. the Network "A" 110 may
be the Internet, while the Network "B" 112 may be a wireless
network serving the Destination Node "I" 106 which may be a
wireless device.
[0009] In a more general case, the capabilities of the Destination
Node "I" 106 may not include the ability to receive, decode, or
display the message in the form in which it was sent from the
Originating Node 102. In order for the Destination Node "I" 106 to
handle the message, the message received from the Originating Node
102 may be modified in the Adaptation Engine 108 before being
delivered to the Destination Node "I" 106.
[0010] A "Standard Coding Interface" (STI) proposed by the "Open
Mobile Alliance" provides a framework for standardizing an approach
to message adaptation for the MMS in "Architecture of the
Environment using the Standard Transcoding Interface" as described
in the Open Mobile Alliance document
OMA-AD-STI-V1.sub.--0-20270515-A "Architecture of the Environment
using the Standard Transcoding Interface" Approved Version 1.0
dated 15 May 2007.
[0011] In the example configuration of FIG. 1, transmission of a
message from the Originating Node 102 to the Destination Node "I"
106 would involve the following five steps, assuming that message
adaptation is required:
[0012] Step 1: [0013] a "source message" is sent from the
Originating Node 102 to the Service Delivery Platform 104;
[0014] Step 2: [0015] the Service Delivery Platform 104 determines
the capabilities of the Destination Node "I" 106, for example by
interrogating the Destination Node "I" 106 directly or by
consulting a database of capabilities;
[0016] Step 3: [0017] the Service Delivery Platform 104 sends a
request to the Adaptation Engine 108, the request including the
original "source message", and a description of the capabilities of
the Destination Node "I" 106;
[0018] Step 4: [0019] the Adaptation Engine 108 performs the
adaptation of the "source message" into an "adapted message";
and
[0020] Step 5: [0021] the Adaptation Engine 108 returns the
"adapted message" to the Service Delivery Platform 104 which
forwards it to the Destination Node "I" 106.
[0022] In addition to adapting a message based on the capabilities
of a destination node, the Adaptation Engine 108 may also perform
additional processing on the message.
[0023] FIG. 2 illustrates one example of an expanded MMS system
architecture 200, including the MMS system architecture 100,
augmented with an additional Network "C" (116), connecting a second
Destination Node "II" (118) with the Service Delivery Platform
104.
[0024] As in the MMS system architecture 100 described above, a
source message from the Originating Node 102 may be adapted in the
adaptation engine 108 into an adapted message before being sent to
the Destination Node "I" 106, and a second adapted message may be
sent to the Destination Node "II" 118, where the second adapted
message may be independently adapted depending on the capabilities
of the Destination Node "II" 118.
[0025] In another example, it may be desired to forward a message
received in the Destination Node "I" 106 to the Destination Node
"II" 118. If the capabilities of the two destination nodes differ,
the forwarded message may have to be adapted again. If the original
source message had been adapted first to the capabilities of the
Destination Node "I" 106, it may have lost in quality which cannot
be regained when the message is subsequently forwarded to the
Destination Node "II" 118 even though the Destination Node "II" 118
may have higher capabilities that would have enabled it to receive
the original source message without loss of quality, for
example.
[0026] In another example, the Destination Node "I" 106 may modify
a multimedia source message before forwarding it to the Destination
Node "II" 118. In this case, it may be inconvenient or impossible
to retain some original content in the forwarded message.
[0027] In yet another example, a source message may be directed to
two or more destinations. While the present systems allow the
message to be adapted according to the capabilities of each
destination, some unnecessary adaptations may be perform when some
destinations have equal or compatible capabilities.
[0028] To overcome these and other deficiencies of the prior art,
there remains a requirement for developing systems and methods that
would allow messages to be more efficiently forwarded or broadcast
to other destinations, and without loss of quality where this is
possible.
SUMMARY OF THE INVENTION
[0029] There is an object of the invention to provide an improved
method and system for the adaptation and forwarding of multimedia
files, using an intelligent caching of media files.
[0030] According to one aspect of the invention, there is provided
a method of sending a source media file of a multimedia message
from a service center to a first and second devices via one or more
adaptation servers, at least one of the servers having a media
cache, the method comprising the steps of: [0031] (a) computing a
signature of the source media file; [0032] (b) using the signature
of the source media file as index for locating an original copy of
the source media file in the media cache; [0033] (c) locating a
first adapted version of the original copy of the source media file
in the media cache; [0034] (d) sending the first adapted version to
the first device; [0035] (e) locating the second adapted version of
the original copy of the source media file in the media cache; and
[0036] (f) sending the second adapted version to the second
device.
[0037] The step (c) comprises performing adaptation of the original
copy of the source media file into the first adapted version if the
locating of the first adapted version has not been successful.
[0038] Beneficially, the step (c) further comprises: [0039]
computing a signature of the first adapted version; and [0040]
using the signature of the first adapted version as index for
storing the first adapted version in the media cache.
[0041] The step (c) further comprises storing the source media file
in the media cache as the original copy, and transcoding the source
media file into the first adapted version if the locating of the
original copy of the source media file in the step (b) has not been
successful.
[0042] Conveniently, the step (c) further comprises: [0043]
computing a signature of the first adapted version; and [0044]
using the signature of the first adapted version as index for
storing the first adapted version in the media cache.
[0045] The step (e) comprises performing adaptation of the original
copy of the source media file into the second adapted version if
the locating of the second adapted version has not been
successful.
[0046] The step (e) further comprises storing the source media file
in the media cache as the original copy, and transcoding the source
media file into the second adapted version if the locating of the
original copy of the source media file in the step (b) has not been
successful.
[0047] Conveniently, the step (e) further comprises: [0048]
computing a signature of the second adapted version; and [0049]
using the signature of the second adapted version as index for
storing the second adapted version in the media cache.
[0050] Advantageously, the method further comprises the steps of:
[0051] determining capabilities of the first and second devices;
and [0052] locating first and second adapted versions that are
compatible with the capabilities of the first and second devices
respectively.
[0053] According to another aspect of the invention, there is
provided a media cache system for intelligent caching of a
plurality of original and adapted versions of media files, the
system comprising: [0054] a media files repository, containing
original versions and adapted versions of media files, in which
each adapted version is adapted from one of the plurality of
original versions according to one of a plurality of transcoding
profiles; [0055] a signatures repository, containing signatures of
the original versions and the adapted versions; and [0056] a
database engine, comprising a computer readable software program
code means stored in a computer readable medium to be executed by a
processor, for providing access to the media files repository, to
signatures repositories, and to links carrying multimedia messages
to be cached by the media cache system; and for keeping track of
the original versions and the adapted versions by maintaining index
schemas based on the signatures of the respective media files.
[0057] In the media cache system, the signatures are generated in
the processor, by computing a digest function over each said media
file, for example, a standard Message Digest 5 (MD5) function.
[0058] In the media cache system, the plurality of transcoding
profiles includes transcoding profiles for at least one type of
device capable of receiving media files.
[0059] According to yet another aspect of the invention, there is
provided an adaptation server for adapting source media files,
received over a link, into adapted versions according to the
capabilities of destination devices, including: [0060] a processor
for performing the adapting; and [0061] a media cache for
intelligent caching of a plurality of original and adapted versions
of media files, the media cache including: [0062] a media files
repository, containing original versions and adapted versions of
media files, in which each adapted version is adapted from one of
the plurality of original versions according to one of a plurality
of transcoding profiles; [0063] a signatures repository, containing
signatures of the original versions and the adapted versions; and
[0064] a database engine, comprising a computer readable software
program code means stored in a computer readable medium to be
executed by a processor, for providing access to the media files
repository, to signatures repositories, and to links carrying
multimedia messages to be cached by the media cache system; and for
keeping track of the original versions and the adapted versions by
maintaining index schemas based on the signatures of the respective
media files.
[0065] According to one more aspect of the invention, there is
provided a method for forwarding an original multimedia message
from a first device to a second device, each device being
characterized by a transcoding profile, through an adaptation
server having a media cache, comprising the steps of: [0066] (a)
receiving the original multimedia message from a service center;
[0067] (b) transcoding the original message into a first adapted
message in accordance with a first transcoding profile; [0068] (c)
sending the first adapted message to the first device; [0069] (d)
storing the original multimedia message in the media cache; [0070]
(e) storing the first adapted message, and the first transcoding
profile in the media cache; [0071] (f) receiving the first adapted
message from the first device; [0072] (g) generating a second
adapted message; and [0073] (h) sending the second adapted message
to the second device.
[0074] In the method described above, the step (f) further includes
locating the first transcoding profile, the first adapted message
and the stored original message stored in the media cache; and the
step (g) further includes verifying that the first and a second
transcoding profiles are identical, and copying the first adapted
message to generate the second adapted message instead of
transcoding, otherwise, verifying that the first and a second
transcoding profiles are not identical, and transcoding the
original message into the second adapted message in accordance with
the second transcoding profile.
[0075] Conveniently, the step (g) further includes: [0076]
determining added elements of the received first adapted message
compared with the original multimedia message stored in the media
cache, and [0077] transcoding a combination of the original
multimedia message augmented by the added elements into the second
adapted message.
[0078] In the method described above: [0079] the step (d) further
includes computing and storing a signature of the original
multimedia message; [0080] the step (e) further includes computing
and storing signatures of the first adapted message and of the
first transcoding profile; and [0081] the step (f) further includes
using the stored signatures in locating the first transcoding
profile, the first adapted message and the stored original
message.
[0082] According to one more aspect of the invention, there is
provided a method for forwarding an original message from a first
device to a second device through an adaptation server having a
media cache, comprising the steps of: [0083] (a) receiving the
original message from a service center; [0084] (b) transcoding
media file components of the original message into a first adapted
message in accordance with a first transcoding profile; [0085] (c)
sending the first adapted message to the first device; [0086] (d)
storing the media file components of the original message and
signatures of the media file components in the media cache; [0087]
(e) storing the first adapted message and the first transcoding
profile in the media cache; [0088] (f) receiving the first adapted
message from the first device; [0089] (g) generating a second
adapted message; and [0090] (h) sending the second adapted message
to the second device.
[0091] Beneficially, [0092] the step (f) further includes locating
the first transcoding profile, the first adapted message and the
stored original message stored in the media cache; and [0093] the
step (g) further includes: [0094] verifying that the first and a
second transcoding profiles are identical, and copying the first
adapted message to generate the second adapted message instead of
transcoding; [0095] otherwise, verifying that the first and a
second transcoding profiles are not identical, and transcoding the
original message into the second adapted message in accordance with
the second transcoding profile.
[0096] Conveniently, [0097] the step (d) further includes computing
and storing signatures of the media file components of the original
message; [0098] the step (e) further includes computing and storing
signatures of the first adapted message and of the first
transcoding profile; and [0099] the step (f) further includes using
the stored signatures in locating the first transcoding profile,
the first adapted message and the media file components of the
stored original message.
[0100] According to one more aspect of the invention, there is
provided a method for adapting an original media file into adapted
media files, and sending an appropriate one of said adapted media
files to each of a plurality of devices, comprising the steps of:
[0101] (a) receiving the original media file from a service center;
[0102] (b) storing the original media file in the media cache;
[0103] (c) determining a transcoding profile for the first device;
[0104] (d) locating an adapted media file corresponding to the
original media file according to said transcoding profile in a
media cache; [0105] otherwise transcoding the original media file
into the adapted media file with said transcoding profile and
storing it in the media cache; [0106] (e) sending the adapted media
file to the first device; and [0107] (f) repeating the steps (c) to
(e) for each of the devices.
[0108] The steps (b), (c) (d) comprise computing respective
signatures of the original media file, the adapted media file, and
the transcoding profiles; and [0109] using the computed signatures
as indices for storing and retrieving the original media file, the
adapted media file, and the transcoding profiles respectively.
[0110] According to yet one more aspect of the invention, there is
provided a method of sending a multimedia message from a first
device to a second device, comprising the steps of: [0111]
receiving the multi-media message in the first device having a
first adaptation profile; and [0112] forwarding the multi-media
message from the first device to the second device having a second
adaptation profile; [0113] wherein the step of receiving comprises:
[0114] adapting with the multimedia message into a first adapted
message according to the first adaptation profile; [0115] sending
the first adapted message to the first device; and [0116] storing
the multimedia message and the first adapted message in a media
cache; and wherein the step of forwarding comprises: [0117]
retrieving the first adapted message from the media cache and
sending it to the second device provided the first and second
adaptation profiles match; otherwise: [0118] retrieving the
multimedia message from the media cache; [0119] adapting the
retrieved multi-media message into a second adapted message
according to the second adaptation profile; [0120] sending the
second adapted message to the second device, and [0121] storing the
second adapted message in the media cache.
BRIEF DESCRIPTION OF THE DRAWINGS
[0122] An embodiment of the invention will now be described, by way
of example, with reference to the accompanying drawings in
which:
[0123] FIG. 1 illustrates an example of an MMS system architecture
100 of the prior art;
[0124] FIG. 2 illustrates an example of an expanded MMS system
architecture 200 of the prior art, which includes the MMS system
architecture 100;
[0125] FIG. 3 shows an adaptation data flow diagram 300 of an
embodiment of the present invention;
[0126] FIG. 4 illustrates a Generic System Diagram 400 of an
embodiment of the present invention;
[0127] FIG. 5 is a flowchart 500 of a Generic Use case applied to
the Generic System 400 of FIG. 4;
[0128] FIG. 6 is a flow chart expanding the step 502 (Device "A"
408 receives a new message) of FIG. 5;
[0129] FIG. 7 is a flow chart expanding the step 610 (P/A "I" uses
Transcoder "I" to adapt message) of FIG. 6;
[0130] FIG. 8 is a flow chart expanding the step 504 (Device "A"
forwards the adapted message to Device "B") of FIG. 5; and
[0131] FIG. 9 is a flow chart expanding the step 810 (P/A "II" uses
Transcoder "II" to adapt message) of FIG. 8.
DETAILED DESCRIPTION OF THE EMBODIMENTS OF THE INVENTION
[0132] To overcome the above stated deficiencies, a centralized
media cache is introduced for caching both original and adapted
messages. This will permit the forwarding of a message without loss
of quality or information, even if the original message had to be
adapted (and for example reduced in size and resolution) to meet
the requirements of the device of the first recipient of the
message (a first device). In addition to providing other
advantages, it is an objective of the invention to enable the
recipient of a forwarded message to receive a freshly adapted
message, based on the original message, rather than based on the
adapted message that was actually received by the first recipient.
This is especially important when the capabilities of the device
displaying the forwarded message (a second device) exceed those of
the first device.
[0133] FIG. 3 shows an adaptation data flow diagram 300, including
a Source Media 302, an Adapted Media 304, an Adaptation Function
306, and a Media Cache 308, indicating basic elements of an
embodiment of the invention.
[0134] As indicated by 7 (seven) data flow arrows (data flows 310
to 322): [0135] the Source Media 302 may be input to the Adaptation
Function 306 (Source Media to Adaptation flow 310); [0136] the
Source Media 302 may be input to the Adapted Media 304 directly
(Adaptation Bypass flow 312); [0137] the Source Media 302 may be
input to the Media Cache 308 (Source Media to Cache flow 314);
[0138] cached media may be sent from the Media Cache 308 to the
Adaptation Function 306 (Cache to Adaptation flow 316); [0139]
adapted media may be sent from the Adaptation Function 306 to the
Media Cache 308 (Adaptation to Cache flow 318); [0140] adapted
media may be sent from the Adaptation Function 306 to the Adapted
Media 304 (Adaptation to Adapted Media flow 320); and [0141] cached
media may be sent from Media Cache 308 to the Adapted Media 304
(Cache to Adapted Media flow 322).
[0142] In other words, the adaptation data flow diagram 300
illustrates the possible inputting of the Source Media 302 into the
Adaptation Function 306 (the flow 310), and into the Media Cache
308 (the flow 314); and possibilities of obtaining the Adapted
Media 304 directly from the Source Media 302 through the Adaptation
Bypass flow 312, from the Adaptation Function 306 (the flow 320),
or from the Media Cache 308 (the flow 322). The output of the
Adaptation Function 306 may also be input into the Media Cache 308
(the flow 318). Furthermore, the Media Cache 308 may send media
into the Adaptation Function 306 (the flow 316).
[0143] The Media Cache 308 includes a Media File Repository 324, a
Signature Repository 326, and a Database Engine 328.
[0144] The Source Media 302 includes original media as well as
forwarded media that may already have been adapted. The Adaptation
Bypass flow 320 may serve to convey the Source Media 302 directly,
without further adaptation, to become the Adapted Media 304.
[0145] The Adaptation Function 306 includes functionality to
transcode the Source Media 302 into the Adapted Media 304 using a
transcoding profile. The Adaptation Function 306 may further
include the capability of filtering and disinfecting the media, and
enhancing and transforming it.
[0146] The Media Cache 308 has the capability of storing and
retrieving both original and adapted media files in the Media File
Repository 324. Media files are, generally, the individual
components of multimedia messages.
[0147] The media files are stored in the Media Cache 308 with
signatures derived from the contents of the original media file and
of the adapted media file, as well as signatures derived from the
transcoding profiles and signatures derived from the enhancement or
transformation parameters. The signatures are preferably generated
from the data with a hashing algorithm such as defined in the Media
Digest 5 MD5) standard, described in Message Digest 5,
specifications RFC1321 available from
http://tools.ietf.org/html/rfc1321. The signatures are stored in
the Signature Repository 326 and are used as keys by the Database
Engine 328 to permit the quick retrieval of the associated stored
media files. By matching the stored signatures (keys) with the
signatures of newly arrived Source Media 302, it is also possible
to determine if an already adapted media file is present in the
Media Cache 308, and also to find the original cached (source)
media file that corresponds to a previously adapted media file. The
Media Cache 308 may conveniently be implemented in a relational
database management system (DBMS), for example MySQL (see
Relational Database System (RDBS), available from
http://www.mysql.org/), with disk storage for the Media File and
Signature Repositories 324 and 326, and processing performed by the
Database Engine 328.
[0148] The Media Cache 308 may also provide additional repositories
for transcoding profiles, message processing ("enhancement")
settings, and other data associated with multimedia message
adaptation that may be advantageously cached, as required from time
to time.
[0149] In addition, to the capability of retrieving individual
media files and their associated data by their signatures (used as
Database keys), the relational Database built into the Media Cache
308 permits associating and retrieving adapted media files through
references (i.e. signatures) to their original version and
transcoding profiles. For example, a list of previously adapted
versions of a given original media file may be simply retrieved by
a Database query. In a more complex query one may find first the
given original media file to a specific received source media file,
then obtain a list of previously adapted versions of this given
original media file, and finally select from the list a specific
previously adapted version whose transcoding profile matches a
desired profile, thus locating the adapted version which may be
required to satisfy the capabilities of a specific device.
[0150] The following examples of use cases #1 to #8 show
applications of some of the functionality that is illustrated in
the adaptation data flow diagram 300. These examples are merely
illustrations of some of the uses of the invention, and should not
be construed to limit the invention which may allow many other
application scenarios, based the Media Cache 308 which is a
powerful Database of media files indexed with file and data
signatures that are used as Database keys.
[0151] The Use Cases #1 to #5 may be Aapplicable to All Types of
Media:
[0152] Use Case #1--Basic Media Adaptation
[0153] In the basic case, a received media file (Source Media 302)
is adapted in the Adaptation Function 306 for a specific
destination device (data flows 310 and 320), where the Source Media
302 has not already been adapted for this type of device and thus
is not available in the Media Cache 308. The Source Media 302 is
thus adapted in the Adaptation Function 306 with the appropriate
profile, into the Adapted Media 304. The Source Media 302 as well
as the Adapted Media 304 are speculatively stored into the Media
Cache 308 (data flows 314 and 318 respectively), for possible reuse
later in another use case (e.g. Use Case #2).
[0154] Use Case #2--Media that has Already Been Adapted with the
Same Profile
[0155] In the case that a media file (the Source Media 302) has
already been adapted for a specific device and stored in the Media
Cache 308 and is thus available in the Media Cache 308; and a
similar device requests the same media file, the Adapted Media 304
may be obtained from the Media Cache 308 without having to invoke
the Adaptation Function 306.
[0156] Use Case #3--Bulk Media Sent
[0157] When a same media file is sent to multiple targets, it will
be adapted only once per type of destination device. The adapted
versions will be stored in the Media Cache 308 to be reused for
other destinations using the same types of device. In
implementation, this is equivalent to the use case #2 above.
[0158] Use Case #4--Media with a Reduced Quality Attachment is
Being Adapted for a Higher Quality Device
[0159] In the case where a media file (the Source Media 302) is a
forwarded media file that had been adapted from the original
because of the device capabilities of the forwarding phone, and the
media file is forwarded to a destination device with higher
capabilities, the original high quality media file may be retrieved
in the Cache to Adaptation flow 316 from the Media Cache 308 and
after adaptation in the Adaptation Function 306 sent as Adapted
Media 304 to the destination device.
[0160] Use Case #5--Media Modified or Adapted Off-Net
[0161] In the case where a media file (the Source Media 302) is
received that was adapted or modified in any way in another
network, there will be no way to bind or correlate it again to
previously adapted or original media file in the present network
since its signature has obviously changed. In this case the
modified source media file will now be considered as a new original
media file.
[0162] Use Cases #6 to #8 are MMS-Specific
[0163] If the signature (for example an MD5 checksum), is
calculated on the entire message (headers+body), it is very
unlikely that there will ever be a cache hit on it because the date
stamp and message identifier in the MMS header is unique. Thus, the
signatures would need to be generated from the multi-part body of
the message, i.e. only the data contained in the message body,
without the MMS headers. Only the body (data) of the MMS message
will be stored in the cache, the headers will have to be
reconstructed separately when a cached media file is retrieved from
the cache.
[0164] Use Case #6--Message has Already Been Adapted
[0165] If an MMS message with zero or more attachments has already
been adapted with the same profile, the adapted message body
(without the main headers) can be retrieved from the Media Cache
308 and the message headers may be changed to reflect the input
message.
[0166] Use Case #7--Bulk Message Sent
[0167] When an identical MMS message is sent to multiple
destination devices, it will be adapted only once per type of
device. The adapted versions (without the MMS headers, just the
bodies) will be stored in the cache to be reused for other targets
using the same type of device. This is similar to the use case #2
above.
[0168] Use Case #8--Adding New Components to the Original
Message
[0169] If the original message is known to be an advertising
message which contains elements to encourage the forwarding of the
message, and when the transcoding platform adapts a forwarded
message which contains new or additional elements compared to the
original message, the original message can be retrieved from the
media cache and the additional components may be added to it before
processing the adaptation. The "encouraging" of messages may occur
when a Mobile Operator (in collaboration with 3rd party
companies/providers that want to send advertising messages) offer
rewards to subscribers to forward the advertising MMS messages they
receive. A subscriber may modify such messages, and a modified
message can be forwarded, but the missing, removed, or modified
parts of the original MMS message may be re-added in order to
protect the integrity of the original message while also keeping
the new content that was added by the forwarder.
[0170] A Generic Use Case for forwarding an adapted message is
described in the following with the help of a system diagram (FIG.
4) and a flow chart (FIG. 5).
[0171] FIG. 4 illustrates a Generic System Diagram 400 for use in
describing the Generic Use Case that includes steps of processing a
first message that is adapted for a first destination "A" and its
subsequent forwarding to a second destination "B".
[0172] The Generic System Diagram 400 includes first and second
Adaptation Servers 402 and 404; the Media Cache 308 (see FIG. 3); a
Multi Media Service Center (Service Center) 406; a first Device "A"
408; and a second Device "B" 410.
[0173] The first Adaptation Server 402 includes a first Transcoder
Node "I" 416 providing adaptation functionality, and a first
Protocol Adaptor (P/A) "I" 418. Correspondingly, the second
Adaptation Server 404 includes a second Transcoder Node "II" 420
and a second Protocol Adaptor (P/A) "II" 422. The Media Cache 308
is preferentially located within the first Adaptation Server 402.
Alternatively, the Media Cache 308 may be located within the second
Adaptation Server 404, or elsewhere, for example in an independent
storage server (not shown).
[0174] The first and second Protocol Adaptors P/A "I" 418 and P/A
"II" 422 may provide implementations of the MM1 specification as
defined by the 3GPP in TS 23.140, on 3GPP organization at
http://www.3gpp.org/ftp/Specs/html-info/23140.htm; other protocols
may also be implemented and are within the scope of the invention,
such as: STI (Standard Transcoding Interface) described in the Open
Mobile Alliance document OMA-AD-STI-V1.sub.--0-20270515-A
"Architecture of the Environment using the Standard Transcoding
Interface" Approved Version 1.0--15 May 2007 cited above; MM3
(Multimedia Messaging interface version 3) defined by the 3GPP in
TS 23.140, on 3GPP organization at
http://www.3gpp.org/ftp/Specs/html-info/23140.htm, and MM4
(Multimedia Messaging interface versions 3 and 4) defined by the
3GPP in TS 23.140, on 3GPP organization at
http://www.3gpp.org/ftp/Specs/html-info/23140.htm; MM7 (Multimedia
Messaging interface version 7) defined by the 3GPP in TS 23.140, on
3GPP organization at
http://www.3gpp.org/ftp/Specs/html-info/23140.htm; ICAP (Internet
Content Adaptation Protocol) described in Request for Comments
(RFC) 3597 available from http://www.ietf.org/rfc/rfc3507.txt, and
also at ICAP Forum at http://www.i-cap.org/; and EAIF (External
Application Interface), see "Internet Content Adaptation Protocol"
document cited above, which is an interface specific to a
Multimedia Messaging Service Centre manufactured by the Nokia
Corporation, see reference for EAIF protocol available at
http://www.forum.nokia.com/info/sw.nokia.com/id/d0ee4125-3879-4482-b55d-9-
0e3afe17a31/Ext_App_Interface_FAQ.pdf.html.
[0175] However, these other protocol specifications may be used in
different network architectures. In the architecture shown as a
detailed example here, only MM1 is proxied to perform transcoding
between the device and the Service Center. For STI, for example,
any application can send transcoding requests, typically directly
to a Service Center. The other protocol specifications cited above
are used in different contexts than MM1 and are not reflected by
the diagrams provided in the present example.
[0176] Message links between the elements of the Generic System
Diagram 400 include: [0177] a link 424 between the first Device "A"
408 and the first P/A "I" 418; [0178] a link 426 between the first
P/A "I" 418 and the Service Center 406; [0179] a direct link 428
between the first Device "A" 408 and the Service Center 406; [0180]
a link 430 between the second Device "B" 410 and the second P/A
"II" 422; [0181] a link 432 between the second P/A "II" 422 and the
Service Center 406; [0182] a direct link 434 between the second
Device "B" 410 and the Service Center 406; [0183] a link 438
between the first Transcoder Node "I" 416 and the Media Cache 308;
and [0184] a link 442 between the second Transcoder Node "II" 420
and the Media Cache 308.
[0185] The links 424 to 442 may be implemented as conventional
network links, including wireless network links, using network
protocols such as HTTP to carry MMS messages and other messages as
will be detailed below.
[0186] The Service Center 406 may be standard call control node
providing basic messaging connection service between terminals, for
example the first and second Devices "A" and "B" labeled by
reference numerals 408 and 410 respectively. One example of the
Service Center 406 may be the MMS server of a Mobile Operator
system which may have multiple interfaces to serve devices as well
as transcoding servers. The first and second Adaptation Servers 402
and 404 are examples of transcoding platforms offering functionally
equivalent interfaces as the Service Center 406 for use as proxies
in front of the Service Center 406.
[0187] The first and second Devices "A" and "B" (408 and 410) may
be wireless devices such as multimedia mobile telephones (cell
phones). But within the scope of the invention, each device is not
necessary a cell phone, but may be any other type of handset, a
regular computer, or even a television set. Each of the links 424,
426, 428, 430, 432, and 434 (linking the first and second Devices
"A" and "B" with the Service Center 406 and the first and second
Adaptation Servers 402 and 404) may accordingly be implemented as a
wireless network link, a virtual link in the form of an Internet
connection, or any other type of link that is supported by each
individual device (the first and second Device "A" or "B"
respectively).
[0188] The first Transcoder Node "I" 416 provides adaptation
functionality in the first Adaptation Server 402, and communicates
with the Media Cache 308 over the link 438. Similarly, the second
Transcoder Node "II" 420 in the second Adaptation Server 404
communicates with the Media Cache 308 over the link 442.
[0189] FIG. 5 is a flowchart 500 of a Generic Use case applied to
the Generic System 400 of FIG. 4. The flowchart 500 illustrates two
steps of a typical scenario in which one user (the first Device "A"
408) receives a new original message (in the step 502: Device "A"
408 receives a new message) that needs to be adapted for his
device, and subsequently forwards the message to another user (the
step 504: Device "A" 408 forwards the message to Device "B" 410)
which may be different type of device. In each step, the message
may be adapted, and each adaptation request may be sent to a
different transcoder node (in this example): the first Device "A"
408 sends the adaptation request to the first Transcoder Node "I"
416 in the first Adaptation Server 402, while the second Device "B"
410 sends the adaptation request to the second Transcoder Node "II"
420 in the second Adaptation Server 404. The steps 502 and 504 are
expanded in the following figures.
[0190] FIG. 6 is a flow chart expanding the step 502 (Device "A"
408 receives a new message) of FIG. 5, into sequential steps:
[0191] step 602--New message for "A" arrives in Service Center;
[0192] step 604--"A" is notified by Service Center;
[0193] step 606--"A" sends request to Service Center through P/A
"I";
[0194] step 608--P/A "I" obtains message from Service Center;
[0195] step 610--P/A "I" uses Transcoder "I" to adapt message;
and
[0196] step 612--P/A "I" returns 1st adapted message to "A".
[0197] In the step 602 (New message for "A" arrives in Service
Center) a new original message for the first Device "A" 408 is
received by the Service Center 406.
[0198] In the step 604 ("A" is notified by Service Center), the
Service Center 406 sends a notification to the first Device "A" 408
over the link 428 telling it that a new message is available for
it.
[0199] In the step 606 ("A" sends request to Service Center through
P/A "I") the first Device "A" 408 sends a request to the first
Service Center 406 through the first P/A "I" 418 via the links 424
and 426, to get the new message.
[0200] In the step 608 (P/A "I" obtains message from Service
Center) the (new) original message for the first Device "A" 408 is
obtained by the first P/A "I" 418 from the Service Center 406 via
the link 426. The original message is now available in the first
Adaptation Server 402 which contains the first Transcoder Node "I"
416.
[0201] In the step 610 (P/A "I" uses Transcoder "I" to adapt
message) the first P/A "I" 418 uses the first Transcoder Node "I"
416 to adapt the original message into a first adapted message. The
step 610 is further expanded in FIG. 7 below.
[0202] FIG. 7 is a flow chart expanding the step 610 (P/A "I" uses
Transcoder "I" to adapt message) of FIG. 6, into sequential
steps:
[0203] step 702--"Calculate signature of source media";
[0204] step 704--"Locate original version of source media in
cache";
[0205] step 706--"Locate adapted version in cache";
[0206] step 708--"Original version found in cache?";
[0207] step 710--"Perform adaptation of cached original
version";
[0208] step 711--"Add source media as Original media in cache";
[0209] step 712--"Perform adaptation of source media";
[0210] step 714--"Calculate signature of 1st adapted media";
and
[0211] step 716--"Add 1st adapted media in cache.
[0212] Note that in adapting a multi media message, the media
components of the message are of interest in the transformation or
adaptation, and are collectively referred to in the following as
"media file".
[0213] In the step 702 (Calculate signature of source media) the
first Transcoder Node "I" 416 of the first Adaptation Server 402
uses the message from the Service Center 406 (step 608, FIG. 6) to
calculate the unique signature of the source media file.
[0214] In the step 704 (Locate original version of source media in
cache), and using the signature obtained in the step 702, the first
Transcoder Node "I" 416 locates the original version of the media
file in the Media Cache 308 (FIG. 4) via the link 438.
[0215] In the step 706 (Locate adapted version in cache), the first
Transcoder Node "I" 416 attempts to locate a first adapted version
of the media file specific to the targeted device (the Device "A"
408) in the Media Cache 308. If the first adapted version already
exists ("FOUND"), the first adapted version of the media file is
retrieved from the Media Cache 308 and the step 610 is complete
(goto "End" in FIG. 7); processing then continues with the step 612
(FIG. 6). The first adapted version (if it exists) may be located
in the Media Cache 308 by standard database techniques, for example
by scanning a list of all adapted versions of the original version
of the media file, stored in the Media Cache 308.
[0216] If the first adapted version of the media file is not found
in the Media Cache 308 ("NOT FOUND" from the step 706), processing
continues with the step 708.
[0217] In the step 708 (Original version found in cache?) the first
Transcoder Node "I" 416 checks the result of the earlier step 704
(Locate original version of source media in cache) whether a cached
copy of the original media file exists. If it already exists ("YES"
from the step 708), this copy of the original media file is
retrieved by the first Transcoder Node "I" 416 from the Media Cache
308 and will be used in the subsequent adaptation step 710 (Perform
adaptation of cached original version).
[0218] If the result of the step 708 is "NO", i.e. the original
version was not found in the cache, the source media file in the
message that had been obtained from the Service Center 406 in the
step 608 (FIG. 6 above) is stored into the cache as original media
file in the step 711 (Add source media as original media in cache)
and is adapted in the step 712 (Perform adaptation of source
media).
[0219] In the steps 710 and 712 the first Transcoder Node "I" 416
thus adapts the cached original or the source media file
respectively into the first adapted version of the media file
according to: [0220] the profile of capabilities of the first
Device "A" 408; [0221] the set of filtering rules (if filtering is
required); and [0222] any specified enhancement operations.
[0223] In the step 714 (Calculate signature of the 1st adapted
media), the first Transcoder Node "I" 416 calculates the unique
signature of the first adapted media file.
[0224] In the step 716 (Add 1st adapted media), the first
Transcoder Node "I" 416 saves the first adapted media file with its
key (i.e. the unique signature) in the Media Cache 308. Processing
then continues with the step 612 (FIG. 6) described in the
following.
[0225] Referring to FIG. 6 again, in the step 612 (P/A "I" returns
1st adapted message to "A"), the first adapted message (including
the first adapted media file) is sent via the first P/A "I" 418 and
the link 424 to the first Device "A" 408.
[0226] To summarize FIGS. 6 and 7, the first Device "A" 408, after
notification from the Service Center 406 of an available original
message, requests this message from the first P/A "I" 418 which
acts as a proxy for the Service Center 406. The first P/A "I" 418
intercepts the request and eventually returns the first adapted
message to the first Device "A" 408 after first looking for an
existing copy of the original message to be adapted unless a
suitably adapted message is already in the cache; if the original
message is not found in the cache the available original message is
adapted by the first Transcoder Node "I" 416.
[0227] FIG. 8 is a flow chart expanding the step 504 (Device "A"
forwards the message to Device "B") of FIG. 5, into sequential
steps:
[0228] step 802--Adapted message is forwarded to "B";
[0229] step 804--"B" is notified by Service Center;
[0230] step 806--"B" sends request to Service Center through P/A
"II";
[0231] step 808--P/A "II" obtains message from Service Center;
[0232] step 810--P/A "II" uses Transcoder "II" to adapt message;
and
[0233] step 812--P/A "II" returns 2nd adapted message to "B".
[0234] In the step 802 (Adapted message is forwarded to "B"), the
first Device "A" 408 forwards the first adapted message to another
user (i.e. the second Device "B" 410) by sending it to the Service
Center 406 via the link 428. Note that the second Device "B" 410
may be a different type of device than the first Device "A".
[0235] In the step 804 ("B" is notified by Service Center), the
Service Center 406 sends a notification to the second Device "B"
410 over the link 434 telling it that a "new message" for it is
available. This notification actually refers to the forwarded first
adapted message, but as far as the second Device "B" 410 is
concerned, it is simply a "new message".
[0236] In the step 806 ("B" sends request to Service Center through
P/A "II") the second Device "B" 410 sends a request to the Service
Center 406 through P/A "II" 422 via the links 434 and 432, to get
the "new message".
[0237] In the step 808 (P/A "II" obtains message from Service
Center) the new message for the second Device "B" 410 is obtained
by the second P/A "II" 422 from the Service Center 406 via the link
432. This message is the first adapted message that was previously
adapted for the first Device "A" 408, and is now being forwarded to
the second Device "B" 410; it is now available in the second
Adaptation Server 404 which also contains the second Transcoder
Node "II" 420.
[0238] In the step 810 (P/A "II" uses Transcoder "II" to adapt
message) the second Transcoder Node "II" 420 adapts the first
adapted message into a second adapted message. The step 810 is
analogous to the step 610 (P/A "I" uses Transcoder "I" to adapt
message) and its sub-steps 702 to 708 described in FIG. 7. The step
810 is expanded in FIG. 9 below.
[0239] FIG. 9 is a flow chart expanding the step 810 (P/A "II" uses
Transcoder "II" to adapt message) of FIG. 8, into sequential
steps:
[0240] step 902--"Calculate signature of input media";
[0241] step 904--"Locate original version of input media in
cache";
[0242] step 906--"Locate adapted version in cache (II)";
[0243] step 908--"Original version found in cache (II)?";
[0244] step 910--"Perform adaptation (II) of cached original
version";
[0245] step 911--"Add input media as original media in cache";
[0246] step 912--"Perform adaptation (II) of input media";
[0247] step 914--"Calculate signature of 2nd adapted media";
and
[0248] step 916--"Add 2nd adapted media in cache".
[0249] The steps 902 to 916 (sub steps of the step 810 P/A "II")
uses the second Transcoder "II" to adapt the message. These steps
are analogous to the steps 702 to 716 which are the sub steps of
the step 610 (P/A "I" uses Transcoder "I" to adapt message), but
are performed by the second Transcoder Node "II" 420 instead of the
first Transcoder Node "I" 416.
[0250] In the step 902 (Calculate signature of input media) the
second Transcoder Node "II" 420 of the second Adaptation Server 404
uses the message (the first adapted message) received from the
Service Center 406 (step 808, FIG. 6) to calculate the unique
signature of the input media file. This signature will be a key to
locating the original media file in the media cache 308, i.e. the
message before it was adapted into the first adapted message.
[0251] In the step 904 (Locate original version of input media in
cache), using the signature obtained in the step 902, the second
Transcoder Node "II" 420 locates the original version of the media
file in the Media Cache 308 (FIG. 4) via the link 442.
[0252] In the step 906 (Locate adapted version in cache (II), the
second Transcoder Node "II" 420 attempts to locate a second adapted
version of the original media file specific to the targeted device
(the Device "B" 410) in the Media Cache 308. If it already exists
("FOUND"), the second adapted version of the original media file is
retrieved as the second adapted media file from the Media Cache 308
and the step 810 is complete (goto "End" in FIG. 9); processing
then continues with the step 812 (FIG. 8). The second adapted
version (if it exists) may be located in the Media Cache 308 by
standard database techniques, for example by scanning a list of all
adapted versions of the original version of the media file, stored
in the Media Cache 308.
[0253] If the second adapted version of the original media file is
not found in the Media Cache 308 ("NOT FOUND" from the step 906),
processing continues with the step 908 following.
[0254] In the step 908 (Original version found in cache (II)?) the
Transcoder Node "II" 420 checks the result of the earlier step 904
(Locate original version of input media in cache) whether a cached
copy of the original media file exists. If it exists ("YES" from
the step 908), this copy of the original media file is retrieved by
the Transcoder Node "II" 420 from the Media Cache 308 and will be
used in the subsequent adaptation step 910 (Perform adaptation (II)
of cached original version).
[0255] If the result of the step 908 is "NO", i.e. the original
version was not found in the cache, the input media file in the
message that had been obtained from the Service Center 406 in the
step 808 (FIG. 8 above) is stored into the cache as original media
file in the step 911 (Add input media as original media in cache)
and is adapted in the step 912 (Perform adaptation (II) of input
media).
[0256] In the steps 910 and 912 the first Transcoder Node "I" 416
thus adapts the cached original or the source media file
respectively into the second adapted version of the media file
according to: [0257] the profile of capabilities of the second
Device "B" 410; [0258] the set of filtering rules (if filtering is
required); and [0259] any specified enhancement operations.
[0260] In the step 914 (Calculate signature of 2nd adapted media),
the second Transcoder Node "II" 420 calculates the unique signature
of the second adapted media file.
[0261] In the step 916 (Add 2nd adapted media in cache), the second
Transcoder Node "II" 420 saves the second adapted media file with
its key (the unique signature) in the Media Cache 308. Processing
then continues with the step 812 (FIG. 8) described in the
following.
[0262] Referring to FIG. 8 again, in the step 812 (P/A "II" returns
2nd adapted message to "B"), the second adapted message (including
the second adapted media file) is sent via the second P/A "II" 422
and the link 430 to the second Device "B" 410.
[0263] To summarize FIGS. 8 and 9, the second Device "B" 410, after
notification from the Service Center 406 of an available input
message, requests this message from the second P/A "II" 422 which
acts as a proxy for the Service Center 406. The second P/A "II" 422
intercepts the request and eventually returns the second adapted
message to the second Device "B" 410 after first looking for an
existing copy of the original message that corresponds to the input
message to be adapted unless a suitably adapted message is already
in the cache; if the original message is not found in the cache the
input message is adapted by the second Transcoder Node "II"
420.
[0264] It may be noted that both the steps 502 (Device "A" 408
receives a new message) and 504 (Device "A" 408 forwards the
message to Device "B" 410) are expanded into two equivalent series
of sub-steps. One series of sub-steps (the steps 602 to 612 and 702
to 714) represent the steps performed with respect to a newly
received message destined for the first Device "A" 408. The other
series of sub-steps (the steps 802 to 812 and 902 to 914) represent
the steps performed with respect to a forwarded message destined
for the second Device "B" 410. Both first and second Transcoder
Nodes (416 and 420) access the same Media Cache 308 for storing and
retrieving messages. Generally it is preferred to simply use a
previously adapted version that is suitable for the target device
type (if it is available in the cache), or adapt the original
message if it is available.
[0265] In this generic example a single common cache, but two
distinct adaptation servers are used. In alternative
implementations, the cache may be distributed in a network of
caches, and there may be any number of adaptation servers. For
example, there may be a cache physically associated with one or
more of the adaptation servers, and a distributed database scheme
may be used that allows each of the adaptation servers to
effectively access every one of the caches.
[0266] Furthermore, in this generic example, only one Service
Center (406) is shown, acting as a multimedia server for MMS
messages, and the Protocol first and second Adapters (P/A "I" and
"II", 418 and 422 respectively) implement the MM1 protocol acting
as proxy front ends for the Service Center. Alternatively, multiple
Service Centers may be employed, the Service Centers may be
configured as Multimedia servers, and the communications between
the devices, the Service Centers, and the Protocol Adapters may be
based on different protocols and conventions. For example, the
direct links 428 and 434 between the devices and the Service
Center(s) may not be required when the links 426 and 432 (between
the Service Center and the first and second Adaptation Servers 402
and 404 employ the standard STI protocol (see "Architecture of the
Environment using the Standard Transcoding Interface" document
cited above) for obtaining transcoding services from the Adaptation
Servers.
[0267] Keys and their Relationship with Media Files in the Media
Cache
[0268] The unique key or signature of a media file is not enough to
retrieve a message (for example an entire MMS message) or an
adapted version of a media file or message. It is necessary to add
additional information to differentiate them, and to keep the
relationship between an adapted media file and its original
version. We also need to keep track of the relationship between a
message (i.e. an entire MMS message) and its components or
parts.
[0269] In the current preferred embodiment of the invention, it has
been found convenient to employ a relational database scheme
(Relational Database System (RDBS) cited above, available from
http://www.mysql.org/) for indexing and retrieving the media files,
and to derive the unique keys from the contents of messages or data
directly in the form of MD5 signatures (see Message Digest 5,
specifications RFC1321 cited above). Other types of signatures may
also be found to be effective as keys.
[0270] Original Media File
[0271] The unique key for an original media file, message, or
message component may be generated fairly simply: [0272] Single
media file: MD5 signature of the entire media file; [0273] MMS
message: MD5 signature of the message's body without the main
headers; [0274] Message component: MD5 signature of the single
media part of the message component, without the component-specific
headers.
[0275] Adapted Media Files
[0276] An adapted media file is characterized by its unique
signature, but it is also characterized by the signature of the
parameters that were used to adapt it. Thus the unique key for an
adapted media file is the combination of several MD5 signatures,
for example,
[0277] Adapted single media file: [0278] MD5 signature of the
entire adapted media file; [0279] MD5 signature of the profile used
for transcoding; [0280] MD5 signature of enhancement settings (such
as clip merging, banner adding, etc.).
[0281] Adapted MMS message: [0282] MD5 signature of the adapted
message's body only, without the main headers; [0283] MD5 signature
of the profile used for transcoding; [0284] MD5 signature of
enhancement settings (clip merging, banner adding, etc.).
[0285] Adapted message component: [0286] MD5 signature of the
adapted single media part of the message component, without the
component-specific headers; [0287] MD5 signature of the profile
used for transcoding; [0288] MD5 signature of enhancement settings
(clip merging, banner adding, etc.).
[0289] With the media cache to keep original messages and
previously adapted messages available, the invention provides
increased efficiency when adapted messages can be re-used rather
than newly adapted, and improved quality when an adapted message is
forwarded, by virtue of being able to readapt the original version
for the forwarding target which may have higher display
capabilities than the device from which the message is forwarded.
The media cache of the invention, containing original media files
and previously adapted versions thereof, along with the MD5
signatures of media files, transcoding profiles, and enhancement
settings, facilitates the efficient retrieval of message components
for the subsequent generation of forwarded messages.
[0290] Although the embodiment of the invention has been described
in detail, it will be apparent to one skilled in the art that
variations and modifications to the embodiment may be made within
the scope of the following claims.
* * * * *
References