Communication networks, including computer networks, such as the Internet, increasingly rely on sequences of characters as addresses for identifying resources or information. An object on the Internet is assigned a Universal Resource Identifier (URI), which can be used to access the object. Typically, users transmit the URI to the server that contains the corresponding object, and then the server returns the corresponding object. A type of URI is a URL (Uniform Resource Locator). For example, a user desiring to view a particular Internet web page typically must enter a URI comprising a domain name and elements specifying a path or subpath under that domain name.
Due to the magnitude of the information already addressable using URIs and the efficiency with which the information can be retrieved using this addressing method, many applications are implemented to access objects using corresponding URIs to identify the object.
Currently, a URI may identify a media object, such as an image, video, or audio file. However, a URI may only identify the whole media object, and cannot identify a portion of the media object. For example, a user may want to share an interesting image of the last minute touchdown catch at a football game by using a URI. However, the user may really want to share that particular image because the image also shows the football receiver's foot out of bounds as he catches the ball. The user wanting to point out the football receiver's foot may need to provide additional information for a second user after sharing the whole image with a URI so that the second user will notice the portion of interest of the image.
Therefore, methods and systems for easily identifying portions of media objects is desired.
In accordance with embodiments of the present invention, a method for providing a portion of a media object to a user is provided. The method includes receiving a URI associated with a media object. The URI indicates a portion of the media object. The method further includes determining the portion of the media object indicated by the URI. The method also includes providing the portion of the media object to a user.
Further, in accordance with embodiments of the present invention, a computer-readable medium encoded with executable instructions for a processor is provided. The instructions including instructions for providing a portion of a media object to a user. The instructions include instructions for receiving a URI associated with a media object. The URI indicates a portion of the media object. The instructions also include instructions for determining the portion of the media object indicated by the URI, and providing the portion of the media object to a user.
Moreover, in accordance with embodiments of the present invention, a system for providing a portion of a media object to a user is provided. The system includes a memory, logic for receiving a URI associated with a media object, and a processor. The processor is for determining the portion of the media object indicated by the URI, and providing the portion of the media object to a user.
Other features and aspects of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings which illustrate, by way of example, the features in accordance with embodiments of the invention. The summary is not intended to limit the scope of the invention.
In the following description, reference is made to the accompanying drawings which form a part thereof, and which illustrate several embodiments of the present invention. It is understood that other embodiments may be utilized and structural and operational changes may be made without departing from the scope of the present invention. The use of the same reference symbols in different drawings indicates similar or identical items.
The following description is presented to enable any person of ordinary skill in the art to make and use the invention. Descriptions of specific materials, techniques, and applications are provided only as examples. Various modifications to the examples described herein will be readily apparent to those of ordinary skill in the art, and the general principles defined herein may be applied to other examples and applications without departing from the spirit and scope of the invention. Thus, the present invention is not intended to be limited to the examples described and shown.
A universal resource identifier (URI) typically includes a number of elements. For example, URIs specify a domain name consisting of a name chosen by the holder of the domain and a suffix indicating the top level domain under which the domain is established (e.g., .com or .org). In addition, paths, which may include paths and subpaths, that are identified by additional elements appended to the domain name may be formed under the domain. The elements specifying paths and subpaths can be arbitrarily assigned by the holder of the domain. A URL (Uniform Resource Locator) is a type of URI.
For example, an image is a two-dimensional object and a video is a three-dimensional object. By specifying the dimensions within the URI, a portion of the media object may be indicated by the URI.
In general, a media URI, or media URL, may have a format of: protocol://server/path/to/filename[innerpath]. The [innerpath] may be, for example, the following:
The time units and coordinate units may be specified according to other embodiments of the invention. Moreover, in some embodiments of the invention, mixed units may be used.
Delimiters in the [innerpath] may also be used to define portions of media objects. The [innerpath] may be the following, for example:
In other embodiments, the [innerpath] can be in the path and resolved via a rewrite rule. Further, the [innerpath] can be a fragment and handled by the browser.
For example, traditionally, the URL, http://example.com/movies/movie1.mov/2/10/100/100/200/200/, would serve the file http://example.com/movies/movie1.mov/2/10/100/100/200/200/default.file. However, a server side rewrite rule to the same URL (http://example.com/movies/movie1.mov/2/10/100/100/200/200/), would serve http://example.com/movies/movie1.mov.
To accomplish this on the client side, a fragment of #/2/10/100/100/200/200/ can be added to the base URL of http://example.com/movies/movie1.mov for a URL of http://example.com/movies/movie1.mov#/2/10/100/100/200/200/(fragment).
As described, the URL may define the crop box of an image to define an image portion. For example,
Coordinates for x1 and x2 dimensions define an x-dimension 206 of the area 202. Similarly, y1 and y2 coordinates define a y-dimension 204 of area 202. A URL identifies area 202 and provides area 202 or image 200 to a user, as illustrated in
The media URL for providing the area 202 may be as follows, for example:
In other embodiments, if one point is defined for an image, the media URL for providing the area 202 may be as follows, for example:
In other embodiments of the invention, a URL may be associated with a video.
A URL may be defined: http://example.com/movies/movie1.mov#/1s/3s/50/50/100/100/
The x-y coordinates in the URL defines the areas 302 and 304. The start time and stop time are also specified in the URL. The portions determined by the URL are provided a user accessing the URL as illustrated in
Similar to images, mixed units may be used in a media URL associated with a video portion. Media URL examples may be as follows:
Furthermore, in some embodiments, other identifiers can be used to clarify values. For example, a media URL may be generated as follows:
As illustrated in the following examples, r specifies a crop region/bounding box that may move over time, expressed as a bitmask (mov), vector animation (swf/svg), points over time (xml, csv) or a javascript function to be evaluated client side as the movie is played. In the former cases, the crop may be evaluated server side.
For example, the following URL refers to using a black & white bitmask to crop the source video:
As another example, the following URLs refer to vector animations for cropping the source video:
As other examples, the following URLs refer to files which identify a set of time-stamped coordinates to crop the video:
In another example, the following URL identifies coordinate list inline the URL:
In the following example, the URL indicates that a client side javascript function, which returns the pan and crop information, is to be evaluated on every second of playback:
In other embodiments, media URLs may be used to identify portions of audio files.
In other embodiments, in audio and video objects, layers, tracks, or channels may be accessed like a port on a server. For example, the media URL of http://example.com/movies/movie1.mov:v2/5s/10m/ would define a portion by pulling the second layer/track/channel out of the movie1.mov. The portion duration is from 5 seconds to 10 minutes and plays all audio channels.
In another example, the URL of http://example.com/movies/movie1.mov:v3a2/5s/10m/ defines a portion of movie1.mov. The portion provided in this example is the third layer/track/channel out of the movie1.mov, and the second audio track.
In another example, the URL of http://example.com/movies/movie1.mov:a1/5s/10m/ would specify a portion of just the first audio track of the movie1.mov. No video is included in the portion. This could also be included as “v0” in the URL: http://example.com/movies/movie1.mov:v0a1/5s/10m/
Similarly, the URL may specify no audio is included in the portion and just the first layer of movie1.mov is provided, such as in http://example.com/movies/movie1.mov:v1a0/5s/10m/.
As described before, the [innerpath] of the URL may be a fragment. For example, the following media URLs will identify equivalent portions of a media object:
While aspects of the invention, including the above described systems and methods, are described in terms of particular embodiments and illustrative figures, those of ordinary skill in the art will recognize that the invention is not limited to the embodiments or figures described. Those skilled in the art will recognize that the operations of the various embodiments may be implemented using hardware, software, firmware, or combinations thereof, as appropriate. For example, some processes can be carried out using processors or other digital circuitry under the control of software, firmware, or hard-wired logic. (The term “logic” herein refers to fixed hardware, programmable logic, and/or an appropriate combination thereof, as would be recognized by one skilled in the art to carry out the recited functions.) Software and firmware can be stored on computer-readable media. Some other processes can be implemented using analog circuitry, as is well known to one of ordinary skill in the art. Additionally, memory or other storage, as well as communication components, may be employed in embodiments of the invention.
Computing system 600 can also include a main memory 608, for example random access memory (RAM) or other dynamic memory, for storing information and instructions to be executed by processor 604. Main memory 608 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 604. Computing system 600 may likewise include a read only memory (“ROM”) or other static storage device coupled to bus 602 for storing static information and instructions for processor 604.
The computing system 600 may also include information storage mechanism 610, which may include, for example, a media drive 612 and a removable storage interface 620. The media drive 612 may include a drive or other mechanism to support fixed or removable storage media, such as a hard disk drive, a floppy disk drive, a magnetic tape drive, an optical disk drive, a CD or DVD drive (R or RW), or other removable or fixed media drive. Storage media 618 may include, for example, a hard disk, floppy disk, magnetic tape, optical disk, CD or DVD, or other fixed or removable medium that is read by and written to by media drive 614. As these examples illustrate, the storage media 618 may include a computer-readable storage medium having stored therein particular computer software or data.
In alternative embodiments, information storage mechanism 610 may include other similar instrumentalities for allowing computer programs or other instructions or data to be loaded into computing system 600. Such instrumentalities may include, for example, a removable storage unit 622 and an interface 620, such as a program cartridge and cartridge interface, a removable memory (for example, a flash memory or other removable memory module) and memory slot, and other removable storage units 622 and interfaces 620 that allow software and data to be transferred from the removable storage unit 618 to computing system 600.
Computing system 600 can also include a communications interface 624. Communications interface 624 can be used to allow software and data to be transferred between computing system 600 and external devices. Examples of communications interface 624 can include a modem, a network interface (such as an Ethernet or other NIC card), a communications port (such as for example, a USB port), a PCMCIA slot and card, etc. Software and data transferred via communications interface 624 are in the form of signals which can be electronic, electromagnetic, optical, or other signals capable of being received by communications interface 624. These signals are provided to communications interface 624 via a channel 628. This channel 628 may carry signals and may be implemented using a wireless medium, wire or cable, fiber optics, or other communications medium. Some examples of a channel include a phone line, a cellular phone link, an RF link, a network interface, a local or wide area network, and other communications channels.
In this document, the terms “computer program product” and “computer-readable medium” may be used generally to refer to media such as, for example, memory 608, storage device 618, storage unit 622, or signal(s) on channel 628. These and other forms of computer-readable media may be involved in providing one or more sequences of one or more instructions to processor 604 for execution. Such instructions, generally referred to as “computer program code” (which may be grouped in the form of computer programs or other groupings), when executed, enable the computing system 600 to perform features or functions of embodiments of the present invention.
In an embodiment where the elements are implemented using software, the software may be stored in a computer-readable medium and loaded into computing system 600 using, for example, removable storage drive 614, drive 612 or communications interface 624. The control logic (in this example, software instructions or computer program code), when executed by the processor 604, causes the processor 604 to perform the functions of the invention as described herein.
It will be appreciated that, for clarity purposes, the above description has described embodiments of the invention with reference to different functional units and processors. However, it will be apparent that any suitable distribution of functionality between different functional units, processors or domains may be used without detracting from the invention. For example, functionality illustrated to be performed by separate processors or controllers may be performed by the same processor or controller. Hence, references to specific functional units are only to be seen as references to suitable means for providing the described functionality, rather than indicative of a strict logical or physical structure or organization.
Although the present invention has been described in connection with some embodiments, it is not intended to be limited to the specific form set forth herein. Rather, the scope of the present invention is limited only by the claims. Additionally, although a feature may appear to be described in connection with particular embodiments, one skilled in the art would recognize that various features of the described embodiments may be combined in accordance with the invention. Moreover, aspects of the invention describe in connection with an embodiment may stand alone as an invention.
Furthermore, although individually listed, a plurality of means, elements or method steps may be implemented by, for example, a single unit or processor. Additionally, although individual features may be included in different claims, these may possibly be advantageously combined, and the inclusion in different claims does not imply that a combination of features is not feasible and/or advantageous. Also, the inclusion of a feature in one category of claims does not imply a limitation to this category, but rather the feature may be equally applicable to other claim categories, as appropriate.
Moreover, it will be appreciated that various modifications and alterations may be made by those skilled in the art without departing from the spirit and scope of the invention. The invention is not to be limited by the foregoing illustrative details, but is to be defined according to the claims.
Number | Name | Date | Kind |
---|---|---|---|
5446891 | Kaplan et al. | Aug 1995 | A |
5493692 | Theimer et al. | Feb 1996 | A |
5583763 | Atcheson et al. | Dec 1996 | A |
5651068 | Klemba et al. | Jul 1997 | A |
5761662 | Dasan | Jun 1998 | A |
5794210 | Goldhaber et al. | Aug 1998 | A |
5835087 | Herz et al. | Nov 1998 | A |
6014638 | Burge et al. | Jan 2000 | A |
6021403 | Horvitz et al. | Feb 2000 | A |
6047234 | Cherveny et al. | Apr 2000 | A |
6098065 | Skillen et al. | Aug 2000 | A |
6112181 | Shear et al. | Aug 2000 | A |
6157924 | Austin | Dec 2000 | A |
6266667 | Olsson | Jul 2001 | B1 |
6314365 | Smith | Nov 2001 | B1 |
6502033 | Phuyal | Dec 2002 | B1 |
6571279 | Herz et al. | May 2003 | B1 |
6601012 | Horvitz et al. | Jul 2003 | B1 |
6662195 | Langseth et al. | Dec 2003 | B1 |
6694316 | Langseth et al. | Feb 2004 | B1 |
6701315 | Austin | Mar 2004 | B1 |
6741980 | Langseth et al. | May 2004 | B1 |
6757661 | Blaser et al. | Jun 2004 | B1 |
6813501 | Kinnunen et al. | Nov 2004 | B2 |
6842761 | Diamond et al. | Jan 2005 | B2 |
6850252 | Hoffberg | Feb 2005 | B1 |
6853913 | Cherveny et al. | Feb 2005 | B2 |
6853982 | Smith et al. | Feb 2005 | B2 |
6904160 | Burgess | Jun 2005 | B2 |
6961660 | Underbrink et al. | Nov 2005 | B2 |
6985839 | Motamedi et al. | Jan 2006 | B1 |
7010492 | Bassett et al. | Mar 2006 | B1 |
7058508 | Combs et al. | Jun 2006 | B2 |
7062510 | Eldering | Jun 2006 | B1 |
7065345 | Carlton et al. | Jun 2006 | B2 |
7069308 | Abrams | Jun 2006 | B2 |
7073129 | Robarts et al. | Jul 2006 | B1 |
7110776 | Sambin | Sep 2006 | B2 |
7149696 | Shimizu et al. | Dec 2006 | B2 |
7194512 | Creemer et al. | Mar 2007 | B1 |
7203597 | Sato et al. | Apr 2007 | B2 |
7219013 | Young et al. | May 2007 | B1 |
7236969 | Skillen et al. | Jun 2007 | B1 |
7254581 | Johnson et al. | Aug 2007 | B2 |
7257570 | Riise et al. | Aug 2007 | B2 |
7343364 | Bram et al. | Mar 2008 | B2 |
7437312 | Bhatia et al. | Oct 2008 | B2 |
7451102 | Nowak | Nov 2008 | B2 |
7461168 | Wan | Dec 2008 | B1 |
7522995 | Nortrup | Apr 2009 | B2 |
7584215 | Saari et al. | Sep 2009 | B2 |
7624104 | Berkhin et al. | Nov 2009 | B2 |
7634465 | Sareen et al. | Dec 2009 | B2 |
7657907 | Fennan et al. | Feb 2010 | B2 |
7769745 | Naaman | Aug 2010 | B2 |
7865308 | Athsani | Jan 2011 | B2 |
20010013009 | Greening et al. | Aug 2001 | A1 |
20010047384 | Croy | Nov 2001 | A1 |
20020014742 | Conte et al. | Feb 2002 | A1 |
20020023230 | Bolnick et al. | Feb 2002 | A1 |
20020054089 | Nicholas | May 2002 | A1 |
20020065844 | Robinson et al. | May 2002 | A1 |
20020069218 | Sull et al. | Jun 2002 | A1 |
20020099695 | Abajian et al. | Jul 2002 | A1 |
20020112035 | Carey | Aug 2002 | A1 |
20020133400 | Terry et al. | Sep 2002 | A1 |
20020138331 | Hosea et al. | Sep 2002 | A1 |
20020152267 | Lennon | Oct 2002 | A1 |
20020173971 | Stirpe et al. | Nov 2002 | A1 |
20030032409 | Hutcheson et al. | Feb 2003 | A1 |
20030033331 | Sena et al. | Feb 2003 | A1 |
20030149574 | Rudman | Aug 2003 | A1 |
20030191816 | Landress et al. | Oct 2003 | A1 |
20040030798 | Andersson et al. | Feb 2004 | A1 |
20040043758 | Sorvari et al. | Mar 2004 | A1 |
20040070602 | Kobuya et al. | Apr 2004 | A1 |
20040139025 | Coleman | Jul 2004 | A1 |
20040139047 | Rechsteiner | Jul 2004 | A1 |
20040209602 | Joyce et al. | Oct 2004 | A1 |
20040267880 | Patiejunas | Dec 2004 | A1 |
20050050043 | Pyhalammi et al. | Mar 2005 | A1 |
20050105552 | Osterling | May 2005 | A1 |
20050131727 | Sezan et al. | Jun 2005 | A1 |
20050151849 | Fitzhugh et al. | Jul 2005 | A1 |
20050159970 | Buyukkokten et al. | Jul 2005 | A1 |
20050165699 | Hahn-Carlson | Jul 2005 | A1 |
20050171955 | Hull et al. | Aug 2005 | A1 |
20050177385 | Hull et al. | Aug 2005 | A1 |
20050187786 | Tsai | Aug 2005 | A1 |
20050192025 | Kaplan | Sep 2005 | A1 |
20050203801 | Morgenstern et al. | Sep 2005 | A1 |
20050216295 | Abrahamsohn | Sep 2005 | A1 |
20050216300 | Appelman et al. | Sep 2005 | A1 |
20050219375 | Hasegawa et al. | Oct 2005 | A1 |
20060020631 | Cheong Wan et al. | Jan 2006 | A1 |
20060026067 | Nicholas et al. | Feb 2006 | A1 |
20060053058 | Hotchkiss et al. | Mar 2006 | A1 |
20060069616 | Bau | Mar 2006 | A1 |
20060069749 | Herz et al. | Mar 2006 | A1 |
20060085419 | Rosen | Apr 2006 | A1 |
20060089876 | Boys | Apr 2006 | A1 |
20060123053 | Scannell, Jr. | Jun 2006 | A1 |
20060173838 | Garg et al. | Aug 2006 | A1 |
20060184579 | Mills | Aug 2006 | A1 |
20060242139 | Butterfield et al. | Oct 2006 | A1 |
20060242178 | Butterfield et al. | Oct 2006 | A1 |
20060258368 | Granito et al. | Nov 2006 | A1 |
20070043766 | Nicholas et al. | Feb 2007 | A1 |
20070067104 | Mays | Mar 2007 | A1 |
20070086061 | Robbins | Apr 2007 | A1 |
20070161382 | Melinger et al. | Jul 2007 | A1 |
20070219708 | Brasche et al. | Sep 2007 | A1 |
20070282621 | Altman et al. | Dec 2007 | A1 |
20080010206 | Coleman | Jan 2008 | A1 |
20080120183 | Park | May 2008 | A1 |
20080147743 | Taylor et al. | Jun 2008 | A1 |
20080172632 | Stambaugh | Jul 2008 | A1 |
20080177706 | Yuen | Jul 2008 | A1 |
20080270579 | Herz et al. | Oct 2008 | A1 |
20090073191 | Smith et al. | Mar 2009 | A1 |
20090106356 | Brase et al. | Apr 2009 | A1 |
Number | Date | Country |
---|---|---|
1020000036897 | Jul 2000 | KR |
1020000054319 | Sep 2000 | KR |
10-2000-0064105 | Nov 2000 | KR |
1020030049173 | Jun 2003 | KR |
W02006116196 | Nov 2006 | WO |
WO 2007070358 | Jun 2007 | WO |
Number | Date | Country | |
---|---|---|---|
20100030870 A1 | Feb 2010 | US |