A METHOD AND DEVICE FOR ESTIMATING A COLOR MAPPING BETWEEN TWO DIFFERENT COLOR-GRADED VERSIONS OF A SEQUENCE OF PICTURES
20170339316 · 2017-11-23
Inventors
Cpc classification
H04N1/6058
ELECTRICITY
H04N1/6005
ELECTRICITY
International classification
Abstract
The present disclosure relates to a method and device for processing a sequence of pictures comprising estimating a color mapping between a first color-graded version of said sequence of pictures whose values are represented in a first color volume and a second color-graded version of said sequence of pictures whose values are represented in a second color volume. The method is characterized in that it comprises:—obtaining (10) a first composite picture by assembling at least two pictures of the first color-graded version of the sequence of pictures in order that the content of said first composite picture comprises at least a part of the content of each of said at least two pictures, and the second composite picture is obtained by assembling at least two pictures of the second color-graded version of the sequence of pictures in order that the content of said second composite picture comprises at least a part of the content of each of said at least two pictures; and—estimating (20) said color mapping between said first and second color-graded versions of the picture by estimating a color mapping function that maps the color values of said first composite picture onto the color values of said second composite picture.
Claims
1. A method for processing a sequence of pictures comprising estimating a color mapping between a first color-graded version of said sequence of pictures whose values are represented in a first color volume and a second color-graded version of said sequence of pictures whose values are represented in a second color volume, wherein it comprises: obtaining a first composite picture by assembling at least two pictures temporarily located at determined time instants in the first color-graded version of the sequence of pictures in order that the content of said first composite picture comprises at least a part of the content of each of said at least two pictures, and the second composite picture is obtained by assembling at least two pictures temporarily located in the second color-graded version of the sequence of pictures at the same determined time instants in order that the content of said second composite picture comprises at least a part of the content of each of said at least two pictures; and estimating said color mapping between said first and second color-graded versions of the sequence of pictures by estimating a color mapping function that maps the color values of said first composite picture onto the color values of said second composite picture.
2. The method of claim 1, wherein the time instants are determined in order that the pictures belongs to a same scene shot.
3. The method of claim 2, wherein some of the time instants are identical.
4. The method of claim 1, wherein the second color graded pictures are clipped before being combined.
5. The method of claim 1, wherein the method further comprises down-sampling the pictures located at the determined time instants in both the first and second color-graded version of the sequence of pictures before obtaining the first and second composite pictures.
6. The method of claim 1, wherein an estimate of said color mapping function is obtained iteratively until a criterion is reached.
7. The method of claim 6, wherein said color mapping function comprises two color transforms, wherein an estimate of said color mapping function is obtained at iteration k by: a) obtaining a third set of color values by applying a first color transform (F1.sup.k-1) estimated at iteration k−1 to the first set of color values; b) estimating a third color transform (F3.sup.k) by mapping the second set of color values onto the third set of color values; c) obtaining a fourth set of color values by applying said third color transform (F3.sup.k) to the second set of color values; d) estimating a first color transform (F1.sup.k) by mapping the first set of color values onto said forth set of color values; said first color transform (F1.sup.k) is used for updating the first color transform (F1.sup.k-1); e) obtaining a fifth set of color values by applying said first color transform (F1.sup.k) to the first set of color values; and f) estimating a second color transform (F2.sup.k) by mapping the fifth set of color values onto the second set of color values.
8. The method of claim 1, wherein the color mapping function is approximated by a three-dimensional look-up-table.
9. The method of claim 1, wherein said color mapping function comprises at least one color transform, said at least one color transform is approximated by a one-dimension piecewise linear function.
10. The method of claim 1, wherein said color mapping function comprises at least one color transform, said at least one color transform is approximated by a one-dimensional look-up-table.
11. The method of claim 1, wherein said color mapping function comprises at least one color transform, said at least one color transform is approximated by a linear matrix.
12. A device for processing a sequence of pictures comprising a processor configured for estimating a color mapping between a first color-graded version of said sequence of pictures whose values are represented in a first color volume and a second color-graded version of said sequence of pictures whose values are represented in a second color volume, wherein the processor is further configured for: obtaining a first composite picture by assembling at least two pictures temporarily located at determined time instants in the first color-graded version of the sequence of pictures in order that the content of said first composite picture comprises at least a part of the content of each of said at least two pictures, and the second composite picture is obtained by assembling at least two pictures temporarily located in the second color-graded version of the sequence of pictures at the same determined time instants in order that the content of said second composite picture comprises at least a part of the content of each of said at least two pictures; and estimating said color mapping between said first and second color-graded versions of the sequence of pictures by estimating a color mapping function that maps the color values of said first composite picture onto the color values of said second composite picture.
13. A computer program product comprising program code instructions to execute the steps of the method of claim 1 when this program is executed on a computer.
14. (canceled)
15. Non-transitory storage medium carrying instructions of program code for executing steps of the method of claim 1, when said program is executed on a computing device.
Description
4. BRIEF DESCRIPTION OF DRAWINGS
[0044] In the drawings, an embodiment of the present disclosure is illustrated by the following figures:
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
6. DESCRIPTION OF EMBODIMENTS
[0056] The present disclosure will be described more fully hereinafter with reference to the accompanying figures, in which embodiments of the disclosure are shown. This disclosure may, however, be embodied in many alternate forms and should not be construed as limited to the embodiments set forth herein. Accordingly, while the disclosure is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that there is no intent to limit the disclosure to the particular forms disclosed, but on the contrary, the disclosure is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the disclosure as defined by the claims.
[0057] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises”, “comprising,” “includes” and/or “including” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. Moreover, when an element is referred to as being “responsive” or “connected” to another element, it can be directly responsive or connected to the other element, or intervening elements may be present. In contrast, when an element is referred to as being “directly responsive” or “directly connected” to other element, there are no intervening elements present. As used herein the term “and/or” includes any and all combinations of one or more of the associated listed items and may be abbreviated as“/”.
[0058] It will be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element without departing from the teachings of the disclosure.
[0059] Some embodiments are described with regard to block diagrams and operational flowcharts in which each block represents a circuit element, module, or portion of code which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that in other implementations, the function(s) noted in the blocks may occur out of the order noted. For example, two blocks shown in succession may, in fact, be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending on the functionality involved.
[0060] Reference herein to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one implementation of the disclosure. The appearances of the phrase “in one embodiment” or “according to an embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments necessarily mutually exclusive of other embodiments.
[0061] Reference numerals appearing in the claims are by way of illustration only and shall have no limiting effect on the scope of the claims.
[0062] While not explicitly described, the present embodiments and variants may be employed in any combination or sub-combination.
[0063] Estimating a color mapping between a first color-graded version of a sequence of pictures and a second color-graded version of said sequence of pictures may be a step of a method for processing a sequence of pictures.
[0064]
[0065] In step 10, a module M0 obtains a first composite picture C1 by assembling at least two pictures P.sub.1,ti temporarily located at determined time instants t.sub.i in the first color-graded version E1 of the sequence of pictures in order that the content of said first composite picture comprises at least a part of the content of each of said at least two pictures, and a second composite picture C2 by assembling a same number of pictures P.sub.2,ti temporarily located in the second color-graded version E2 of the sequence of pictures at the same determined time instants t.sub.i in order that the content of said second composite picture comprises at least a part of the content of each of said at least two pictures
[0066] According to an embodiment, the time instants t.sub.i are determined in order that the pictures P.sub.1,ti and P.sub.2,ti belongs to a same scene shot. For that, for example, a shot transition detector is applied to the sequence of pictures in order to get at least one scene shot comprising at least one picture, and a first (and second) composite picture is obtained from the pictures of each detected scene shot. A color mapping function is thus estimated from each first and second pictures.
[0067] According to an embodiment, some of the time instants ti are identical. This allows for increasing the weight of the color samples in pictures ti.
[0068] According to an embodiment, illustrated on
[0069] According to an embodiment, sub-regions of the pictures are combined. This allows for removing not desirable regions such as black strips or logos, or contrarily emphasizing the computation on the colors of a logo.
[0070] Thus, the content of said first composite picture C1, respectively C2, comprises at least a part of the content of each of said at least two pictures P.sub.1,ti, respectively P.sub.2,ti.
[0071] According to an embodiment, the second color graded pictures are clipped before being combined. This allows colour mapping video sequences with different dynamic range values.
[0072] According to
[0073] According to another embodiment, illustrated on
[0074] Thus, the content of said first composite picture C1, respectively C2, comprises the content of each of said at least two pictures P.sub.1,ti, respectively P.sub.2,ti.
[0075] According to an embodiment of the step 10 on
[0076] This allows reducing the resolution (number of columns and/or number of rows) of the composite picture C1 and C2 and thus reducing the computing time for estimating the color mapping. Moreover, down-sampling a picture reduces the noise of the picture and thus increases the quality of the color mapping function.
[0077] In step 20, a module M estimates said color mapping CM between said first and second color-graded versions of the sequence of pictures by estimating a color mapping function CMF that maps the color values of said first composite picture C1 onto the color values of said second composite picture C2.
[0078] The color mapping function CMF is defined for mapping color values represented in the first color volume onto color values represented in the second color volume.
[0079] For example, only the dynamic ranges of the first and second color volume are different. The first color volume may be defined, for example, by using a RGB BT.2020 color space and the dynamic range of the values between 0 to 4000 nits (candela per square meter) and the second color volume is defined using a RGB BT.2020 color space and the dynamic range of the values between 0 to 1000 nits (candela per square meter).
[0080] According to another example, only the color gamuts of the first and second color volumes are different. The first color volume is defined, for example, by using a RGB BT.2020 color space and the dynamic range of the values between 0 to 1000 nits (candela per square meter) and the second color volume is defined using a RGB BT.709 color space and the dynamic range of the values between 0 to 1000 nits (candela per square meter).
[0081] According to another example, only the color spaces of the first and second color volumes are different. The first color volume is defined, for example, by using a RGB BT.2020 color space and the dynamic range of the values between 0 to 1000 nits (candela per square meter) and the second color volume is defined using a YUV BT.2020 color space and the dynamic range of the values between 0 to 1000 nits (candela per square meter).
[0082] The disclosure is not limited to these examples of color volumes and it is obvious that the first and second color volumes may be defined having more than one of these differences (color gamut, color space, dynamic range).
[0083] According to an embodiment of the disclosure, illustrated in
[0084] According to an embodiment of the step 20, illustrated on for each color transform F.sub.q according to the embodiment of the method illustrated in
[0085] For convenience; in the following, the color values of the first component picture C1 is called a first set of color values S1 and the color values of the second component picture C2 is called a second set of color values S2.
[0086] According to an embodiment, the first estimate of each color transform is a linear monotonous function and, when a color transform is a linear matrix, the first estimate of the color transform is the identity matrix.
[0087] According to another example, the first estimates of the color transforms are color mapping functions that transform the color space of the first color volume to the color space of the second color volume. Such color transforms are defined, for example, by the standard SMPTE RP 177.
[0088] Next, in step 110, at an iteration k (k is an integer value), a module M2 obtains an estimate for each color transform F.sub.q (an estimate CMF.sup.k of the color mapping function CMF) from the first S1 and the second S2 set of color values using an estimate
for each color transform F.sub.q (an estimate CMF.sup.k-1 of the color mapping CMF) calculated previously (iteration k−1).
[0089] The step 110 is repeated until a criterion is reached. A final estimate for each color transform F.sub.q (
of the color mapping function CMF) equals to the estimate
for each color transform F.sub.q (CMF.sup.p of the color mapping function CMF) with p (the last iteration) is thus obtained.
[0090] The criterion is reached for example when a maximum number of iterations k is reached or when the Euclidean distance between two successive estimates of the second color-graded version E2 of the picture, obtained by applying estimates CMF.sup.k-1 and CMF.sup.k of the color mapping function CMF, calculated during two successive iterations, to the first color-graded version E1 of the picture, is below a predefined threshold.
[0091] Alternatively, the criterion is reached when the Euclidean distance between an estimate of the second color-graded version E2 of the picture obtained by applying an estimate CMF.sup.k of the color transform function CMF to the first color-graded version E1 of the picture and the second color-graded version E2 of the picture, is below a predefined threshold.
[0092] According to an embodiment of the disclosure, the color mapping function CMF comprises two color transforms F1 and F2 which are estimated from said the first S1 and the second S2 sets of color values by the method illustrated in
[0093] Estimating the two color transforms F1 and F2 is an iterative process which comprises for each iteration k, k being an integer: [0094] a) obtaining a third set of color values S3 by applying a first color transform F1.sup.k-1 estimated at iteration (k−1) to the first set of color values S1; [0095] b) estimating a third color transform F3.sup.k by mapping the second set of color values S2 onto the third set of color values S3; [0096] c) obtaining a fourth set of color values S4 by applying said third color transform F3.sup.k to the second set of color values S2; [0097] d) estimating a first color transform F1.sup.k by mapping the first set of color values S1 onto said fourth set of color values S4; said first color transform F1.sup.k is used for updating the first color transform F1.sup.k-1; [0098] e) obtaining a fifth set of color values S5 by applying said first color transform F1.sup.k to the first set of color values S1; and [0099] f) estimating a second color transform F2.sup.k by mapping the fifth set of color values S5 onto the second set of color values S2.
[0100] The disclosure is not limited to a color mapping function CMF comprising two color transforms but extends to any color mapping comprising more than two color transforms.
[0101] For illustrative purpose,
[0113] It is not mandatory that the last step l) be executed at each iteration. This step shall be executed at least once, after the last iteration.
[0114] According to an embodiment, the step l) is executed at each iteration when, for example, the criterion (to stop or not the iterative method) requires the estimate of the color transform F21.sup.k at each iteration in order to evaluate a criterion to stop the iterative method described in relation with
[0115] The principle for estimating the color mapping function CMF may be easily extended according to
[0116] According to an embodiment of the method, the color mapping CMF is approximated by a three-dimensional look-up-table (3D LUT).
[0117] This allows few bits for representing the color mapping function CMF leading to reduced coding cost.
[0118]
[0119] The 3D LUT associates with at least one color value represented in a first color volume with a color value represented in a second color volume (different of the first color volume).
[0120] A 3D LUT allows for partitioning the first color volume into a set of regions delimited by the vertices of the 3D LUT. Exemplarily, a 3D LUT associates a set of color values with a triplet of color values in the first color volume. The set of color values can be a triplet of color values in the second color volume or a set of color values representative of the color transform (e.g. locally defined color mapping function parameters) used to transform color values in the first color volume into color values in the second color volume.
[0121] On
[0122] According to an embodiment of the method, the color mapping function CMF comprising at least one color transform, said at least one color transform is approximated by a one-dimension piecewise linear function.
[0123] According to an embodiment of the method, the color mapping function CMF comprising at least one color transform, said at least one color transform is approximated by a one-dimensional look-up-table.
[0124] This embodiment is advantageous because approximating a color mapping function by a combination of existing one-dimensional non-linear mapping functions already implemented in many screen, displays and TV is possible. They could be used to implement any kind of color transform, e.g. in the case where the color grading is color space dependent.
[0125] According to an embodiment of the method, the color mapping function CMF comprises a color transform which is represented by a matrix.
[0126] According to a non-limiting embodiment of the method, illustrated in }), a second color transform F21 which is approximated by C one-dimensional piecewise linear functions f.sub.2,j (j ε{1, . . . ,
}) and a linear matrix M (that may be considered as being another color transform F22). C is an integer number equals to the number of components of the picture. Usually C=3 as illustrated in
[0127] The color transforms F1, F21 and F22 are then estimated as described in }) and the fourth color transform F4.sup.k is a matrix.
[0128] Each one-dimensional piecewise linear function f.sub.1,j, f.sub.2,j or f.sub.3,j is estimated by mapping the j component of the color values belonging to an input set of color values, here E1.sub.j, onto the j component of color values belonging to an output set of color values, here E2.sub.j. For example relative to the
[0129] The disclosure is not limited by a specific method for estimating one-dimensional piecewise linear function by mapping a component of the color values belonging to an input set of color values onto a component of color values belonging to an output set of color values.
[0130] For example, the method of Cantoni et al. (“Optimal Curve Fitting With Piecewise Linear Functions,” IEEE Transactions on Computers, Vol. C-20, No 1, January 1971) as described in relation with
[0131]
[0132] A one-dimensional piece-wise linear function f is defined by intervals [X.sub.i;X.sub.i+1] and is linear in each interval. Note we consider here the case the intervals have equal range (equal to 1) for simplicity, but equivalent reasoning can apply to the general case (un-equal ranges). Then the values X.sub.i are considered as known.
[0133] For a given point with abscise sε[X.sub.i;X.sub.i+1], the corresponding image by f is y such as:
y=f(s)=L(X.sub.i)+(L(X.sub.i+1)−L(X.sub.i))*(s−X.sub.i)
[0134] One has to find the optimal values for the L(X.sub.i) for example by using a Least Square Minimization (LSM) method that minimizes the sum of the quadratic errors Err(X.sub.i)=(y.sub.o−f(s.sub.o)).sup.2 for the set of sample values(s.sub.o,y.sub.o), with s.sub.o ε[X.sub.i; X.sub.i+1] is a color values of the first set of color values S1 and y.sub.o is a color value of the second set of color values S2, for each interval [X.sub.i; X.sub.i+1].sub.i=0, . . . T. T is either a fixed integer value or a value to be optimized.
[0135] The Least Square Minimization (LSM) method consists in solving the set of equations of partial derivative of Err(X.sub.i) respectively to L(X.sub.i).sub.1=0, . . . T equal to zero.
[0136] The value of L(Xi) determines the function f on both intervals [X.sub.i−1; X.sub.i] and [X.sub.i; X.sub.i+1]:
y=f(s.sub.m)=L(X.sub.i−1)+(L(X.sub.i)−L(X.sub.i−1))*(s.sub.m−X.sub.i+1) if s.sub.mε[X.sub.i-1;X.sub.i] (4)
and y=f(s.sub.o)=L(X.sub.i)+(L(X.sub.i+1)−L(X.sub.i))*(s.sub.o−X.sub.i) if s.sub.oε[X.sub.i;X.sub.i+1] (5)
[0137] Once replacing f(s.sub.m) and f(s.sub.o) in equations (1-3) by their expressions given by equations (1) and (2), one obtains the following equations:
[0138] Applying the same reasoning for the other intervals, one obtains the following system:
[0139] The disclosure is not limited by a specific method for estimating a matrix (M or the forth color transform F4.sup.k) by mapping an input set of color values onto an output set of color values.
[0140] For example, when C equals 3 (three color components per color value), estimating a 3×3 matrix
by mapping an input set of color values
onto an output set of color values
comprises solving 3 linear systems of three equations each:
[0141] For a set of samples ((X.sub.0,X.sub.1,X.sub.2),Y.sub.i), a quadratic error is Err.sub.i=(Y.sub.i−m.sub.i(X.sub.0,X.sub.1,X.sub.2)).sup.2 is calculated and a Least Mean Squares method then consists in solving a system of 9 equations built from the partial derivative of mi( ) respectively to g.sub.i,j with i=0, 1, 2 and j=0, 1, 2.
[0142] On
[0143]
[0144] Device 900 comprises following elements that are linked together by a data and address bus 901: [0145] a microprocessor 902 (or CPU), which is, for example, a DSP (or Digital Signal Processor); [0146] a ROM (or Read Only Memory) 903; [0147] a RAM (or Random Access Memory) 904; [0148] an I/O interface 905 for reception of data to transmit, from an application; and [0149] a battery 906
[0150] According to a variant, the battery 906 is external to the device. Each of these elements of
[0151] RAM 904 comprises, in a register, the program executed by the CPU 902 and uploaded after switch on of the device 900, input data in a register, intermediate data in different states of the method in a register, and other variables used for the execution of the method in a register.
[0152] 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 or a device), the implementation of features discussed may also be implemented in other forms (for example a 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, cell phones, portable/personal digital assistants (“PDAs”), and other devices that facilitate communication of information between end-users.
[0153] According to a specific embodiment of the method or device for estimating said color mapping between the first color-graded version E1 of picture and the second color-graded version E2 of said picture whose values are represented in a second color volume, the first E1 and/or second E2 color-graded version of the picture and/or the first C1 and/or second C2 composite pictures are obtained from a source. The determined time instants t.sub.i may also be obtained from a source. For example, the source belongs to a set comprising: [0154] a local memory (903 or 904), e.g. a video memory or a RAM (or Random Access Memory), a flash memory, a ROM (or Read Only Memory), a hard disk; [0155] a storage interface (905), e.g. an interface with a mass storage, a RAM, a flash memory, a ROM, an optical disc or a magnetic support; [0156] a communication interface (907), e.g. a wireline interface (for example a bus interface, a wide area network interface, a local area network interface) or a wireless interface (such as a IEEE 802.11 interface or a Bluetooth® interface); and [0157] an picture capturing circuit (e.g. a sensor such as, for example, a CCD (or Charge-Coupled Device) or CMOS (or Complementary Metal-Oxide-Semiconductor)).
[0158] According to different embodiments, device 900 being configured to implement the method or device for estimating a color mapping described in relation with
[0178] Implementations of the various processes and features described herein may be embodied in a variety of different equipment or applications, particularly, for example, equipment or applications. Examples of such equipment include an encoder, a decoder, a post-processor processing output from a decoder, a pre-processor providing input to an encoder, a video coder, a video decoder, a video codec, a web server, a set-top box, a laptop, a personal computer, a cell phone, a PDA, and any other device for processing a picture or a video or any other communication devices. As should be clear, the equipment may be mobile and even installed in a mobile vehicle.
[0179] 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 computer readable storage medium. A computer readable storage medium can take the form of a computer readable program product embodied in one or more computer readable medium(s) and having computer readable program code embodied thereon that is executable by a computer. A computer readable storage medium as used herein is considered a non-transitory storage medium given the inherent capability to store the information therein as well as the inherent capability to provide retrieval of the information therefrom. A computer readable storage medium can be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. It is to be appreciated that the following, while providing more specific examples of computer readable storage mediums to which the present principles can be applied, is merely an illustrative and not exhaustive listing as is readily appreciated by one of ordinary skill in the art: a portable computer diskette; a hard disk; a read-only memory (ROM); an erasable programmable read-only memory (EPROM or Flash memory); a portable compact disc read-only memory (CD-ROM); an optical storage device; a magnetic storage device; or any suitable combination of the foregoing.
[0180] The instructions may form an application program tangibly embodied on a processor-readable medium.
[0181] 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.
[0182] 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 the syntax of a described embodiment, or to carry as data the actual syntax-values written by a described embodiment. 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.
[0183] 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.