Implementations are described that relate to a pictorial summary of a video. Various particular implementations relate to using a configurable, fine-grain, hierarchical, scene-based analysis to create a pictorial summary of a video.
Video can often be long, making it difficult for a potential user to determine what the video contains and to determine whether the user wants to watch the video. Various tools exist to create a pictorial summary, also referred to as a story book or a comic book or a narrative abstraction. The pictorial summary provides a series of still shots that are intended to summarize or represent the content of the video. There is a continuing need to improve the available tools for creating a pictorial summary, and to improve the pictorial summaries that are created.
According to a general aspect, one or more parameters from a configuration guide are accessed. The configuration guide includes one or more parameters for configuring a pictorial summary of a video. The video is accessed. The pictorial summary for the video is generated. The pictorial summary conforms to the one or more accessed parameters from the configuration guide.
The details of one or more implementations are set forth in the accompanying drawings and the description below. Even if described in one particular manner, it should be clear that implementations may be configured or embodied in various manners. For example, an implementation may be performed as a method, or embodied as an apparatus, such as, for example, an apparatus configured to perform a set of operations or an apparatus storing instructions for performing a set of operations, or embodied in a signal. Other aspects and features will become apparent from the following detailed description considered in conjunction with the accompanying drawings and the claims.
Pictorial summaries can be used advantageously in many environments and applications, including, for example, fast video browsing, media bank previewing or media library previewing, and managing (searching, retrieving, etc.) user-generated and/or non-user-generated content. Given that the demands for media consumption are increasing, the environments and applications that can use pictorial summaries are expected to increase.
Pictorial summary generating tools can be fully automatic, or allow user input for configuration. Each has its advantages and disadvantages. For example, the results from a fully automatic solution are provided quickly, but might not be appealing to a broad range of consumers. In contrast, however, complex interactions with a user-configurable solution allow flexibility and control, but might frustrate novice consumers. Various implementations are provided in this application, including implementations that attempt to balance automatic operations and user-configurable operations. One implementation provides the consumer with the ability to customize the pictorial summary by specifying a simple input of the number of pages that are desired for the output pictorial summary.
Referring to
The Scene i 116 includes a series of shots, with the hierarchical structure 100 illustrating a Shot 1122 beginning the Scene i 116, a Shot j 124 which is a shot at an unspecified distance from the two ends of the Scene i 116, and a Shot Ki 126 which is the last shot in the Scene i 116.
The Shot j 124 includes a series of pictures. One or more of these pictures is typically selected as a highlight picture (often referred to as a highlight frame) in a process of forming a pictorial summary. The hierarchical structure 100 illustrates three pictures being selected as highlight pictures, including a first highlight picture 132, a second highlight picture 134, and a third highlight picture 136. In a typical implementation, selection of a picture as a highlight picture also results in the picture being included in the pictorial summary.
Referring to
A script or screenplay is frequently defined as a written work by screenwriters for a film or television program. In a script, each scene is typically described to define, for example, “who” (character or characters), “what” (situation), “when” (time of day), “where” (place of action), and “why” (purpose of the action). The script 200 is for a single scene, and includes the following components, along with typical definitions and explanations for those components:
The process 300 includes synchronizing (320) a script and a video that correspond to each other. For example, in typical implementations, the video and the script are both for a single movie. At least one implementation of the synchronizing operation 320 synchronizes the script with subtitles that are already synchronized with the video. Various implementations perform the synchronization by correlating the text of the script with the subtitles. The script is thereby synchronized with the video, including video timing information, through the subtitles. One or more such implementations perform the script-subtitle synchronization using known techniques, such as, for example, dynamic time warping methods as described in M. Everingham, J. Sivic, and A. Zisserman, “‘Hello! My name is . . . Buffy.’ Automatic Naming of Characters in TV Video”, in Proc. British Machine Vision Conf., 2006 (the “Everingham” reference). The contents of the Everingham reference are hereby incorporated by reference in their entirety for all purposes, including, but not limited to, the discussion of dynamic time warping.
The synchronizing operation 320 provides a synchronized video as output. The synchronized video includes the original video, as well as additional information that indicates, in some manner, the synchronization with the script. Various implementations use video time stamps by, for example, determining the video time stamps for pictures that correspond to the various portions of a script, and then inserting those video time stamps into the corresponding portions of the script.
The output from the synchronizing operation 320 is, in various implementations, the original video without alteration (for example, annotation), and an annotated script, as described, for example, above. Other implementations do alter the video instead of, or in addition to, altering the script. Yet other implementations do not alter either the video or the script, but do provide synchronizing information separately. Still, further implementations do not even perform synchronization.
The process 300 includes weighting one or more scenes in the video (330). Other implementations weight a different portion of the video, such as, for example, shots, or groups of scenes. Various implementations use one or more of the following factors in determining the weight of a scene:
S
LEN
[i]=LEN[i]/Video_Len,i=1,2,M,
L
high
[i]=L
high
[i]/maximum(Lhigh[i],i=1,2, . . . ,M).
In at least one implementation, except for the start scene and the end scene, all other scene weights (shown as the weight for a scene “i”) are calculated by the following formula:
where:
In various such implementations, Sstart and Send are given the highest weights, in order to increase the representation of the start scene and the end scene in the pictorial summary. This is done because the start scene and the end scene are typically important in the narration of the video. The weights of the start scene and the end scene are calculated as follows for one such implementation:
The process 300 includes budgeting the pictorial summary pictures among the scenes in the video (340). Various implementations allow the user to configure, in the user input operation 310, the maximum length (that is, the maximum number of pages, referred to as PAGES) of the pictorial summary that is generated from the video (for example, movie content). The variable, PAGES, is converted into a maximum number of pictorial summary highlight pictures, Thighlight, using the formula:
T
highlight=PAGES*NUMFp,
where NUMFp is the average number of pictures (frequently referred to as frames) allocated to each page of a pictorial summary, which is set at 5 in at least one embodiment and can also be set by user interactive operation (for example, in the user input operation 310).
Using that input, at least one implementation determines the picture budget (for highlight picture selection for the pictorial summary) that is to be allocated to the ith scene from the following formula:
FBug[i]=ceil(Thighlight*SCEweight[i]/Σi=1MSCEweight[i])
This formula allocates a fraction of the available pictures, based on the scene's fraction of total weight, and then rounds up using the ceiling function. It is to be expected that towards the end of the budgeting operation, it may not be possible to round up all scene budgets without exceeding Thighlight. In such a case, various implementations, for example, exceed Thighlight, and other implementations, for example, begin rounding down.
Recall that various implementations weight a portion of the video other than a scene. In many such implementations, the operation 340 is frequently replaced with an operation that budgets the pictorial summary pictures among the weighted portions (not necessarily scenes) of the video.
The process 300 includes evaluating the pictures in the scenes, or more generally, in the video (350). In various implementations, for each scene “i”, the Appealing Quality is calculated for every picture in the scene as follows:
AQ[k]=PIX
edges
/PIX
total.
The process 300 includes selecting pictures for the pictorial summary (360). This operation 360 is often referred to as selecting highlight pictures. In various implementations, for each scene “i”, the following operations are performed:
Other implementations perform any of a variety of methodologies to determine which pictures from a scene (or other portion of a video to which a budget has been applied) to include in the pictorial summary. One implementation takes the picture from each shot that has the highest Appealing Quality (that is, AQ[1]), and if there are remaining pictures in FBug[i], then the remaining pictures with the highest Appealing Quality, regardless of shot, are selected.
The process 300 includes providing the pictorial summary (370). In various implementations, providing (370) includes displaying the pictorial summary on a screen. Other implementations provide the pictorial summary for storage and/or transmission.
Referring to
The system 400 accepts as input a video 404, a script 406, and user input 408. The provision of these inputs can correspond, for example, to the user input operation 310.
The video 404 and the script 406 correspond to each other. For example, in typical implementations, the video 404 and the script 406 are both for a single movie. The user input 408 includes input for one or more of a variety of units, as explained below.
The system 400 includes a synchronization unit 410 that synchronizes the script 406 and the video 404. At least one implementation of the synchronization unit performs the synchronizing operation 320.
The synchronization unit 410 provides a synchronized video as output. The synchronized video includes the original video 404, as well as additional information that indicates, in some manner, the synchronization with the script 406. As described earlier, various implementations use video time stamps by, for example, determining the video time stamps for pictures that correspond to the various portions of a script, and then inserting those video time stamps into the corresponding portions of the script. Other implementations determine and insert video time stamps for a scene or shot, rather than for a picture. Determining a correspondence between a portion of a script and a portion of a video can be performed, for example, (i) in various manners known in the art, (ii) in various manners described in this application, or (iii) by a human operator reading the script and watching the video.
The output from the synchronization unit 410 is, in various implementations, the original video without alteration (for example, annotation), and an annotated script, as described, for example, above. Other implementations do alter the video instead of, or in addition to, altering the script. Yet other implementations do not alter either the video or the script, but do provide synchronizing information separately. Still, further implementations do not even perform synchronization. As should be clear, depending on the type of output from the synchronization unit 410, various implementations do not need to provide the original script 406 to other units of the system 400 (such as, for example, a weighting unit 420, described below).
The system 400 includes the weighting unit 420 that receives as input (i) the script 406, (ii) the video 404 and synchronization information from the synchronization unit 410, and (iii) the user input 408. The weighting unit 420 performs, for example, the weighting operation 330 using these inputs. Various implementations allow a user, for example, to specify, using the user input 408, whether or not the first and last scenes are to have the highest weight or not.
The weighting unit 420 provides, as output, a scene weight for each scene being analyzed. Note that in some implementations, a user may desire to prepare a pictorial summary of only a portion of a movie, such as, for example, only the first ten minutes of the movie. Thus, not all scenes are necessarily analyzed in every video.
The system 400 includes a budgeting unit 430 that receives as input (i) the scene weights from the weighting unit 420, and (ii) the user input 408. The budgeting unit 430 performs, for example, the budgeting operation 340 using these inputs. Various implementations allow a user, for example, to specify, using the user input 408, whether a ceiling function (or, for example, floor function) is to be used in the budget calculation of the budgeting operation 340. Yet other implementations, allow the user to specify a variety of budgeting formulas, including non-linear equations that do not assign pictures of the pictorial summary proportionately to the scenes based on scene weight. For example, some implementations give increasingly higher percentages to scenes that are weighted higher.
The budgeting unit 430 provides, as output, a picture budget for every scene (that is, the number of pictures allocated to every scene). Other implementations provide different budgeting outputs, such as, for example, a page budget for every scene, or a budget (picture or page, for example) for each shot.
The system 400 includes an evaluation unit 440 that receives as input (i) the video 404 and synchronization information from the synchronization unit 410, and (ii) the user input 408. The evaluation unit 440 performs, for example, the evaluation operation 350 using these inputs. Various implementations allow a user, for example, to specify, using the user input 408, what type of Appealing Quality factors are to be used (for example, PSNR, Sharpness level, Color Harmonization level, Aesthetic level), and even a specific equation or a selection among available equations.
The evaluation unit 440 provides, as output, an evaluation of one or more pictures that are under consideration. Various implementations provide an evaluation of every picture under consideration. However, other implementations provide evaluations of, for example, only the first picture in each shot.
The system 400 includes a selection unit 450 that receives as input (i) the video 404 and synchronization information from the synchronization unit 410, (ii) the evaluations from the evaluation unit 440, (iii) the budget from the budgeting unit 430, and (iv) the user input 408. The selection unit 450 performs, for example, the selection operation 360 using these inputs. Various implementations allow a user, for example, to specify, using the user input 408, whether the best picture from every shot will be selected.
The selection unit 450 provides, as output, a pictorial summary. The selection unit 450 performs, for example, the providing operation 370. The pictorial summary is provided, in various implementations, to a storage device, to a transmission device, or to a presentation device. The output is provided, in various implementations, as a data file, or a transmitted bitstream.
The system 400 includes a presentation unit 460 that receives as input the pictorial summary from, for example, the selection unit 450, a storage device (not shown), or a receiver (not shown) that receives, for example, a broadcast stream including the pictorial summary. The presentation unit 460 includes, for example, a television, a computer, a laptop, a tablet, a cell phone, or some other communications device or processing device. The presentation unit 460 in various implementations provides a user interface and/or a screen display as shown in
The elements of the system 400 can by implemented by, for example, hardware, software, firmware, or combinations thereof. For example, one or more processing devices, with appropriate programming for the functions to be performed, can be used to implement the system 400.
Referring to
The screen 500 includes a video section 505 and a comic book (pictorial summary) section 510. The screen 500 also includes a progress field 515 that provides indications of the progress of the software. The progress field 515 of the screen 500 is displaying an update that says “Display the page layout . . . ” to indicate that the software is now displaying the page layout. The progress field 515 will change the displayed update according to the progress of the software.
The video section 505 allows a user to specify various items of video information, and to interact with the video, including:
The comic book section 510 allows a user to specify various pieces of information for the pictorial summary, and to interact with the pictorial summary, including:
It should be clear that the screen 500 provides an implementation of a configuration guide. The screen 500 allows a user to specify the various discussed parameters. Other implementations provide additional parameters, with or without providing all of the parameters indicated in the screen 500. Various implementations also specify certain parameters automatically and/or provide default values in the screen 500. As discussed above, the comic book section 510 of the screen 500 allows a user to specify, at least, one or more of (i) a range from a video that is to be used in generating a pictorial summary, (ii) a width for a picture in the generated pictorial summary, (iii) a height for a picture in the generated pictorial summary, (iv) a horizontal gap for separating pictures in the generated pictorial summary, (v) a vertical gap for separating pictures in the generated pictorial summary, or (vi) a value indicating a desired number of pages for the generated pictorial summary.
Referring to
The screen shot 600 includes six pictures, which are highlight pictures from a video identified in the user interface screen 500 (see the filename field 528). The six pictures, in order of appearance in the video, are:
Each of the six pictures 605-630 is automatically sized and cropped to focus the picture on the objects of interest. The tool also allows a user to navigate the video using any of the pictures 605-630. For example, when a user clicks on, or (in certain implementations) places a cursor over, one of the pictures 605-630, the video begins playing from that point of the video. In various implementations, the user can rewind, fast forward, and use other navigation operations.
Various implementations place the pictures of the pictorial summary in an order that follows, or is based on, (i) the temporal order of the pictures in the video, (ii) the scene ranking of the scenes represented by the pictures, (iii) the appealing quality (AQ) rating of the pictures of the pictorial summary, and/or (iv) the size, in pixels, of the pictures of the pictorial summary. Furthermore, the layout of the pictures of a pictorial summary (for example, the pictures 605-630) is optimized in several implementations. More generally, a pictorial summary is produced, in certain implementations, according to one or more of the implementations described in EP patent application number 2 207 111, which is hereby incorporated by reference in its entirety for all purposes.
As should be clear, in typical implementations, the script is annotated with, for example, video time stamps, but the video is not altered. Accordingly, the pictures 605-630 are taken from the original video, and upon clicking one of the pictures 605-630 the original video begins playing from that picture. Other implementations alter the video in addition to, or instead of, altering the script. Yet other implementations, do not alter either the script or the video, but, rather, provide separate synchronizing information.
The six pictures 605-630 are actual pictures from a video. That is, the pictures have not been animated using, for example, a cartoonization feature. Other implementations, however, do animate the pictures before including the pictures in the pictorial summary.
Referring to
The process 700 includes accessing a first scene and a second scene (710). In at least one implementation, the operation 710 is performed by accessing a first scene in a video, and a second scene in the video.
The process 700 includes determining a weight for the first scene (720), and determining a weight for the second scene (730). The weights are determined, in at least one implementation, using the operation 330 of
The process 700 includes determining a quantity of pictures to use for the first scene based on the weight for the first scene (740). In at least one implementation, the operation 740 is performed by determining a first number that identifies how many pictures from the first portion are to be used in a pictorial summary of a video. In several such implementations, the first number is one or more, and is determined based on the weight for the first portion. The quantity of pictures is determined, in at least one implementation, using the operation 340 of
The process 700 includes determining a quantity of pictures to use for the second scene based on the weight for the second scene (750). In at least one implementation, the operation 750 is performed by determining a second number that identifies how many pictures from the second portion are to be used in a pictorial summary of a video. In several such implementations, the second number is one or more, and is determined based on the weight for the second portion. The quantity of pictures is determined, in at least one implementation, using the operation 340 of
Referring to
The process 800 includes accessing a video (820). The process 800 further includes generating, for the video, a pictorial summary having a page count based on the accessed value (830). In at least one implementation, the operation 830 is performed by generating a pictorial summary for a video, wherein the pictorial summary has a total number of pages, and the total number of pages is based on an accessed value indicating a desired number of pages for the pictorial summary.
Referring to
The process 900 includes accessing the video (920). The process 900 further includes generating, for the video, a pictorial summary based on the accessed parameter (930). In at least one implementation, the operation 930 is performed by generating the pictorial summary for the video, wherein the pictorial summary conforms to one or more accessed parameters from the configuration guide.
Various implementations of the process 900, or of other processes, include accessing one or more parameters that relate to the video itself. Such parameters include, for example, the video resolution, the video width, the video height, and/or the video mode, as well as other parameters, as described earlier with respect to the video section 505 of the screen 500. In various implementations, the accessed parameters (relating to the pictorial summary, the video, or some other aspect) are provided, for example, (i) automatically by a system, (ii) by user input, and/or (iii) by default values in a user input screen (such as, for example, the screen 500).
The process 700 is performed, in various implementations, using the system 400 to perform selected operations of the process 300. Similarly, the processes 800 and 900 are performed, in various implementations, using the system 400 to perform selected operations of the process 300.
In various implementations, there are not enough pictures in a pictorial summary to represent all of the scenes. For other implementations, there could be enough pictures in theory, but given that higher-weighted scenes are given more pictures, these implementations run out of available pictures before representing all of the scenes in the pictorial summary. Accordingly, variations of many of these implementations include a feature that allocates pictures (in the pictorial summary) to the higher-weighted scenes first. In that way, if the implementation runs out of available pictures (in the pictorial summary), then the higher-weighted scenes have been represented. Many such implementations process scenes in order of decreasing scene weight, and therefore do not allocate pictures (in the pictorial summary) to a scene until all higher-weighted scenes have had pictures (in the pictorial summary) allocated to them.
In various implementations that do not have “enough” pictures to represent all scenes in the pictorial summary, the generated pictorial summary uses pictures from one or more scenes of the video, and the one or more scenes are determined based on a ranking that differentiates between scenes of the video including the one or more scenes. Certain implementations apply this feature to portions of a video other than scenes, such that the generated pictorial summary uses pictures from one or more portions of the video, and the one or more portions are determined based on a ranking that differentiates between portions of the video including the one or more portions. Several implementations determine whether to represent a first portion (of a video, for example) in a pictorial summary by comparing a weight for the first portion with respective weights of other portions of the video. In certain implementations, the portions are, for example, shots.
It should be clear that some implementations use a ranking (of scenes, for example) both (i) to determine whether to represent a scene in a pictorial summary, and (ii) to determine how many picture(s) from a represented scene to include in the pictorial summary. For example, several implementations process scenes in order of decreasing weight (a ranking that differentiates between the scenes) until all positions in the pictorial summary are filled. Such implementations thereby determine which scenes are represented in the pictorial summary based on the weight, because the scenes are processed in order of decreasing weight. Such implementations also determine how many pictures from each represented scene are included in the pictorial summary, by, for example, using the weight of a scene to determine the number of budgeted pictures for the scene.
Variations of some of the above implementations determine initially whether, given the number of pictures in the pictorial summary, all scenes will be able to be represented in the pictorial summary. If the answer is “no”, due to a lack of available pictures (in the pictorial summary), then several such implementations change the allocation scheme so as to be able to represent more scenes in the pictorial summary (for example, allocating only one picture to each scene). This process produces a result similar to changing the scene weights. Again, if the answer is “no”, due to a lack of available pictures (in the pictorial summary), then some other implementations use a threshold on the scene weight to eliminate low-weighted scenes from being considered at all for the pictorial summary.
Note that various implementations simply copy selected pictures into the pictorial summary. However, other implementations perform one or more of various processing techniques on the selected pictures before inserting the selected pictures into the pictorial summary. Such processing techniques include, for example, cropping, re-sizing, scaling, animating (for example, applying a “cartoonization” effect), filtering (for example, low-pass filtering, or noise filtering), color enhancement or modification, and light-level enhancement or modification. The selected pictures are still considered to be “used” in the pictorial summary, even if the selected pictures are processed prior to being inserted into the pictorial summary.
Various implementations are described that allow a user to specify the desired number of pages, or pictures, for the pictorial summary. Several implementations, however, determine the number of pages, or pictures, without user input. Other implementations allow a user to specify the number of pages, or pictures, but if the user does not provide a value then these implementations make the determination without user input. In various implementations that determine the number of pages, or pictures, without user input, the number is set based on, for example, the length of the video (for example, a movie) or the number of scenes in a video. For a video that has a run-length of two hours, a typical number of pages (in various implementations) for a pictorial summary is approximately thirty pages. If there are six pictures per page, then a typical number of pictures in such implementations is approximately one-hundred eighty.
A number of implementations have been described. Variations of these implementations are contemplated by this disclosure. A number of variations are obtained by the fact that many of the elements in the figures, and in the implementations are optional in various implementations. For example:
A number of variations are obtained by modifying, without eliminating, one or more elements in the figures, and in the implementations. For example:
Several variations of described implementations involve adding further features. One example of such a feature is a “no spoilers” feature, so that crucial story points are not unintentionally revealed. Crucial story points of a video can include, for example, who the murderer is, or how a rescue or escape is accomplished. The “no spoilers” feature of various implementations operates by, for example, not including highlights from any scene, or alternatively from any shot, that are part of, for example, a climax, a denouement, a finale, or an epilogue. These scenes, or shots, can be determined, for example, by (i) assuming that all scenes or shots within the last ten (for example) minutes of a video should be excluded, or by (ii) metadata that identifies the scenes and/or shots to be excluded, wherein the metadata is provided by, for example, a reviewer, a content producer, or a content provider.
Various implementations assign weight to one or more different levels of a hierarchical fine-grain structure. The structure includes, for example, scenes, shots, and pictures. Various implementations weight scenes in one or more manners, as described throughout this application. Various implementations also, or alternatively, weight shots and/or pictures, using one or more manners that are also described throughout this application. Weighting of shots and/or pictures can be performed, for example, in one or more of the following manners:
A number of independent systems or products are provided in this application. For example, this application describes systems for generating a pictorial summary starting with the original video and script. However, this application also describes a number of other systems, including, for example:
Implementations described in this application provide one or more of a variety of advantages. Such advantages include, for example:
This application provides implementations that can be used in a variety of different environments, and that can be used for a variety of different purposes. Some examples include, without limitation:
This application provides multiple figures, including the hierarchical structure of
We have thus provided a number of implementations. It should be noted, however, that variations of the described implementations, as well as additional applications, are contemplated and are considered to be within our disclosure. Additionally, features and aspects of described implementations may be adapted for other implementations.
Various implementations refer to “images” and/or “pictures”. The terms “image” and “picture” are used interchangeably throughout this document, and are intended to be broad terms. An “image” or a “picture” may be, for example, all or part of a frame or of a field. The term “video” refers to a sequence of images (or pictures). An image, or a picture, may include, for example, any of various video components or their combinations. Such components, or their combinations, include, for example, luminance, chrominance, Y (of YUV or YCbCr or YPbPr), U (of YUV), V (of YUV), Cb (of YCbCr), Cr (of YCbCr), Pb (of YPbPr), Pr (of YPbPr), red (of RGB), green (of RGB), blue (of RGB), S-Video, and negatives or positives of any of these components. An “image” or a “picture” may also, or alternatively, refer to various different types of content, including, for example, typical two-dimensional video, an exposure map, a disparity map for a 2D video picture, a depth map that corresponds to a 2D video picture, or an edge map.
Reference to “one embodiment” or “an embodiment” or “one implementation” or “an implementation” of the present principles, as well as other variations thereof, mean that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment of the present principles. Thus, the appearances of the phrase “in one embodiment” or “in an embodiment” or “in one implementation” or “in an implementation”, as well any other variations, appearing in various places throughout the specification are not necessarily all referring to the same embodiment.
Additionally, this application or its claims may refer to “determining” various pieces of information. Determining the information may include one or more of, for example, estimating the information, calculating the information, predicting the information, or retrieving the information from memory.
Further, this application or its claims may refer to “accessing” various pieces of information. Accessing the information may include one or more of, for example, receiving the information, retrieving the information (for example, retrieving from memory), storing the information, processing the information, transmitting the information, moving the information, copying the information, erasing the information, calculating the information, determining the information, predicting the information, or estimating the information.
It is to be appreciated that the use of any of the following “/”, “and/or”, and “at least one of”, for example, in the cases of “A/B”, “A and/or B” and “at least one of A and B”, is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of both options (A and B). As a further example, in the cases of “A, B, and/or C” and “at least one of A, B, and C” and “at least one of A, B, or C”, such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of the first and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and B and C). This may be extended, as readily apparent by one of ordinary skill in this and related arts, for as many items listed.
Additionally, many implementations may be implemented in a processor, such as, for example, a post-processor or a pre-processor. The processors discussed in this application do, in various implementations, include multiple processors (sub-processors) that are collectively configured to perform, for example, a process, a function, or an operation. For example, the system 400 can be implemented using multiple sub-processors that are collectively configured to perform the operations of the system 400.
The implementations described herein may be implemented in, for example, a method or a process, an apparatus, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method), the implementation of features discussed may also be implemented in other forms (for example, an apparatus or program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, laptops, cell phones, tablets, portable/personal digital assistants (“PDAs”), and other devices that facilitate communication of information between end-users.
Implementations of the various processes and features described herein may be embodied in a variety of different equipment or applications. Examples of such equipment include an encoder, a decoder, a post-processor, a pre-processor, a video coder, a video decoder, a video codec, a web server, a television, a set-top box, a router, a gateway, a modem, a laptop, a personal computer, a tablet, a cell phone, a PDA, and other communication devices. As should be clear, the equipment may be mobile and even installed in a mobile vehicle.
Additionally, the methods may be implemented by instructions being performed by a processor, and such instructions (and/or data values produced by an implementation) may be stored on a processor-readable medium such as, for example, an integrated circuit, a software carrier or other storage device such as, for example, a hard disk, a compact diskette (“CD”), an optical disc (such as, for example, a DVD, often referred to as a digital versatile disc or a digital video disc), a random access memory (“RAM”), or a read-only memory (“ROM”). The instructions may form an application program tangibly embodied on a processor-readable medium. Instructions may be, for example, in hardware, firmware, software, or a combination. Instructions may be found in, for example, an operating system, a separate application, or a combination of the two. A processor may be characterized, therefore, as, for example, both a device configured to carry out a process and a device that includes a processor-readable medium (such as a storage device) having instructions for carrying out a process. Further, a processor-readable medium may store, in addition to or in lieu of instructions, data values produced by an implementation.
As will be evident to one of skill in the art, implementations may produce a variety of signals formatted to carry information that may be, for example, stored or transmitted. The information may include, for example, instructions for performing a method, or data produced by one of the described implementations.
For example, a signal may be formatted to carry as data the rules for writing or reading syntax, or to carry as data the actual syntax-values generated using the syntax rules. Such a signal may be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or as a baseband signal. The formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information that the signal carries may be, for example, analog or digital information. The signal may be transmitted over a variety of different wired or wireless links, as is known. The signal may be stored on a processor-readable medium.
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, elements of different implementations may be combined, supplemented, modified, or removed to produce other implementations. Additionally, one of ordinary skill will understand that other structures and processes may be substituted for those disclosed and the resulting implementations will perform at least substantially the same function(s), in at least substantially the same way(s), to achieve at least substantially the same result(s) as the implementations disclosed. Accordingly, these and other implementations are contemplated by this application.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2013/072248 | 3/6/2013 | WO | 00 |