MXPA06006308A - Technique for film grain simulation using a database of film grain patterns - Google Patents
Technique for film grain simulation using a database of film grain patternsInfo
- Publication number
- MXPA06006308A MXPA06006308A MXPA/A/2006/006308A MXPA06006308A MXPA06006308A MX PA06006308 A MXPA06006308 A MX PA06006308A MX PA06006308 A MXPA06006308 A MX PA06006308A MX PA06006308 A MXPA06006308 A MX PA06006308A
- Authority
- MX
- Mexico
- Prior art keywords
- film grain
- block
- grain
- values
- group
- Prior art date
Links
- 238000004088 simulation Methods 0.000 title description 14
- 238000000034 method Methods 0.000 title description 13
- 241000023320 Luma <angiosperm> Species 0.000 claims abstract description 17
- 238000002156 mixing Methods 0.000 claims abstract description 9
- 102000004381 Complement C2 Human genes 0.000 claims description 3
- 108090000955 Complement C2 Proteins 0.000 claims description 3
- 230000000875 corresponding Effects 0.000 claims description 3
- 239000000789 fastener Substances 0.000 claims description 2
- 239000011159 matrix material Substances 0.000 claims 1
- 241001425761 Parthenos sylvia Species 0.000 abstract 1
- BQCADISMDOOEFD-UHFFFAOYSA-N silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 5
- 229910052709 silver Inorganic materials 0.000 description 5
- 239000004332 silver Substances 0.000 description 5
- 238000007906 compression Methods 0.000 description 4
- 239000000839 emulsion Substances 0.000 description 3
- 230000000977 initiatory Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001419 dependent Effects 0.000 description 2
- 230000001131 transforming Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000036881 Clu Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005755 formation reaction Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- -1 silver halide Chemical class 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000000153 supplemental Effects 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
Abstract
Individual pixels in an image block undergo blending with film grain from a film grain block randomly selected from among a pool (18) of previously established film grain blocks in accordance with a luma characteristic of the image block. Prior to blending, the selected film grain block undergoes deblocking by a deblocking filter (28). Following blending, a clipper (32) clips the individual pixels prior to display. The pool(18) of film grain blocks is created by scaling a set of film grain patterns in accordance with at least one parameter of a film grain information message that accompanies the image block.
Description
TECHNIQUE FOR FILM GRAIN SIMULATION USING A GRAIN PATTERN DATABASE
MOVIE
CROSS REFERENCE TO RELATED REQUESTS
This request claims priority according to 35 U.S.C. 119 (e) for the Provisional Patent Application of E.U.A. Series No. 60 / 527,895 filed on December 5, 2003, 2003, the teachings of which are incorporated herein.
TECHNICAL FIELD
This invention relates to a technique for simulating film grain in an image.
ANTECEDENT TECHNIQUE
The moving image films comprise silver halide crystals dispersed in an emulsion, which is covered with thin layers in a film base. The exposure and development of these crystals form the photographic image consisting of small separated particles of silver. In color negatives, small droplets of dye occur in places where silver crystals form and which allow chemical removal of silver during the development of the film base. These tiny stains of dye commonly carry the "grain" label on the color film. The grain appears randomly distributed in the resulting image due to the random formation of silver crystals in an original emulsion. Within a uniformly exposed area, some crystals develop after exposure while others do not. The grain varies in size and shape. The faster the film, the larger the silver groups formed and the generated dye drops, and the more random patterns will be grouped. The term "granularity" typically refers to the grain pattern. At first glance, it is not possible to distinguish the individual grains, which vary from 0.0002 mm to approximately 0.002 mm. Instead, the view solves the groups of grains, called drops. An observer identifies these groups of drops as film grain. While the image resolution becomes larger, the perception of the film grain becomes superior. The film grain becomes clearly noticeable in the cinema and High Definition (HD) images, while the film grain progressively loses importance in the Standard Definition (SD) and becomes imperceptible in smaller formats. Motion picture film typically contains image-dependent noise that results either from the physical procedure of exposure and development of the photographic film or from the subsequent editing of the images. Photographic film has an almost random pattern of characteristic, or texture, that results from the physical granularity of the photographic emulsion. Alternatively, simulation of the similar pattern can occur in computer generated images in order to mix them with. photographic film. In both cases, this image-dependent noise carries the designation "film grain". Frequently, the moderate grain texture presents a desirable feature in motion films. In some cases, the film grain provides visual clues that facilitate the correct perception of images in two dimensions. The film grade frequently varies within an individual film to provide several tracks as a reference of time, point of view, etc. There are many other technical and artistic demands to control grain texture in the motion picture industry. Therefore, preserving the appearance of image grain through image processing and delivery chains has become a requirement in the motion picture industry. Several commercially available products have the ability to simulate film grain, often to mix a computer-generated object in the natural scene. Cineon® by Eastman Kodak Co., Rochester New York, one of the first digital film applications to implement film grain simulation does not generate good performance for many high speed films due to the remarkable diagonal stripes produced by the application for configurations of top grain size. In addition, the Cineon® application fails to simulate grain with proper fidelity when the image is subjected to prior processing, for example, such as when images are copied or digitally processed. Another commercial product that simulates film grain is GrainSurgery ™ by Visual Infinity Inc., which is used as an Adobe® After Effects® connector. The Grain Surgery ™ product seems to generate synthetic grain by filtering a group of random numbers. This approach suffers from a disadvantage of superior computational complexity. In this way, there is a need for an efficient film grain simulation technique, which reduces the need for broadband memory, and computational effort, thus allowing the simulation of film grain in devices of higher volume of sensitive to the cost, such as TV boxes by cable.
COMPENDIUM OF THE INVENTION
Briefly, according to one aspect of the present invention, there is provided a method for creating a block of M X N pixels with film grain to be mixed with pixels of an image block, wherein N and M are integers greater than zero. The method begins with the receipt of film grain information that includes at least one parameter that specifies an attribute of the film grain to appear in the film grain block.
(Those parameters that are not transmitted must be set to default values.In a particular mode, the default values can be derived as specified in the H.264 | AVC standard). A film grain block of M x N pixels was selected from a database of previously established blocks containing film grain as a function of a pseudo-random number and a set of cut-off frequencies that characterize the grain pattern of film. All pixel values in the selected film grain block undergo classification according to the parameter in the received film grain information. The block created from film grain is then made part of a group of film grain blocks from which a block is selected to be mixed with the pixels in an image block to simulate film grain in the image block. According to another aspect of the present invention, a method for simulating film grain in a pixel image block is provided. The method begins with the selection of a block of film grain from a set of pre-set film grain values. The selection of the film grain block occurs randomly, according to a random number, between those group blocks for the luma intensity interval that corresponds to the average luma value of the image block. The selected film grain block suffers unlocking. At least one portion of the unblocked film grain block is mixed with individual pixels of the image block to simulate film grain and the resulting mixed pixels are held before the output, such as for display or the like.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 illustrates a schematic block drawing of an apparatus for generating pre-set film grain blocks for use in the simulation of subsequent film grain; and Figure 2 illustrates a schematic block drawing of an apparatus in accordance with current principles for simulating film grain on a pixel-by-pixel basis using the pre-set film grain blocks generated by the apparatus of Figure 1.
DETAILED DESCRIPTION
Introduction In accordance with current principles, film grain simulation occurs according to the film grain information transmitted with an image to which the simulated grain is mixed. In practice, the transmitted image typically undergoes compression (encoding) before transmission through one of a variety of well-known compression schemes, such as the H.264 compression scheme. With the transmitted image compressed using the H.264 compression scheme, the transmission of the film grain information typically occurs through a Supplemental Information Information (SEI) message. Following the contributions recently adopted by the body of standards responsible for promulgating the H.264 standard, the SEI message can now include several parameters that specify different attributes of film grain.
Obligations in the parameters of SEI messages of film grain The method of the current principles imposes some obligations with respect to the number of parameters and their range of possible values allowed by the recommendation of H.264. Table 1 provides a list of such parameters, including a description of their semantics and the obligations imposed by current principles.
TABLE 1
According to current principles, the parameters comp_model_value [0] [i] [1] and comp_model_value [0] [i] [2] can take different values. However, only a limited number of different pairs are allowed (comp_modelo_vaior [0] [i] [1], comp_modelo_valor [0] [i] [2], as specified in Table 2.
TABLE 2
All other parameters of the SEI message of film grain have no obligation with respect to the standard specification.
Precise Implementation of Film Grain Simulation Bit The simulation of film grain according to current principles occurs in a two-step procedure. First, the generation of a group of film grain blocks occurs during the initiation following the receipt of a SEI message preceding an I image, as described in greater detail with respect to Figure 1. From the group of blocks of film grain, a particular block of values is selected. After that, the portions of the selected block are added to each luminance pixel of each decoded image as described with respect to Figure 2. Figure 1 illustrates an apparatus 10 according to an illustrated mode of current principles for generating a group of film grain blocks to be used in the simulation of film grain. With the receipt of a film grain SEI message containing film grain information, an initiation procedure occurs to create a group of 4,096 (512x8) film grain pixel values for each of up to 8 intensity ranges of different luma. The number of luma intensity intervals is indicated by 1 plus the message field of SEl num_intensity_intervals_less1 [0]. The generation of the film grain samples starts with the lowest luma intensity interval. Precise bit simulation of film grain noise typically occurs by the use of a specific uniform pseudo-random number generator polynomial and by the use of a specific database of film grain patterns 12. In practice, the database 12 of the film grain patterns comprises 26 groups of 4,096 (512x8) values of the film grain (13 groups with round grain and 13 groups with elongated grain). The values are stored in the form of complement 2 and vary from [-127,127]. The list of values for each group can be predefined and stored in permanent storage accessible by the system or created using a precise bit method with system initiation or restart. The film grain patterns stored in the database 12 undergo selection through a selection block 14 and subsequent sorting through a sorting block 16 to obtain a group 18 of film grain blocks. The access to the database 12 of film grain patterns, the classification of the values by block 16, and subsequent storage of the values classified in the blocks in group 18 occurs according to the following routine: for (i) = 0..4,095) v = comp_model_value [0] [s] [0] * database [m] [n] [i] grUp? [S] [Í] = ^ v + 2log2_classification_factor_1 > >
log2_classification_factor) + 32) > > 6 where n is equal to comp_model_value [0] [s] [2] -3, m equals 0 when num_param_menos1 [0] is 1 and equal to 1 otherwise, and factor 6 classifies the grain values of movie stored in the database. This procedure is performed as many times as indicated by 1 plus the message field of SEl num_intensity_intervals_less1 [0].
Block and pixel operations before the pixel presentation Figure 2 illustrates an apparatus 20 for performing the operations necessary to add film grain to the decoded image at the block and pixel level. An average block of luma 22 processes each 8x8 block of the decoded image and calculates the average of the pixel values of luma by comparison against the message of intensity int_interval_inferior_link [0] [i] and parameters of intensity_interval_superior_link [0] [ ¡] To determine the correct luma intensity interval for the block. A uniform random number generator 24 generates a random number to enter a selector block 26 using a primitive polynomial module operator 2, x18 + x5 + x2 + x1 + 1. The selector block 26 accesses the film grain group 18 to select the film grain blocks according to the random number and the intensity value of luma. To appreciate the way in which the random number generator 24 generates the random number for the film grain block selection, ax (i, e) is allowed to indicate the ivo symbol of the sequence x, which starts with an initial seed and. (The seed is set to 1 with the receipt of each message of film grain SEl). The equivalent for the current 8x8 block of the film grain is generated as follows: previous_equivalent = equivalent equivalent = (x (i, 1)% 4,088) > > 2 equivalent? = index = = previous_equ iva lens) equivalent < < = 2 where the equivalent of 0 has been started after the creation of the group. After calculation of the equivalent, the 8x8 block of the film grain is extracted from the group as follows: for (i = 0..7, j = 0..7) block [i] [j] = group [s] [equivalent + i + j * 4096] The film grain block selected by the selector block according to the random number of the random number generator 24 and the average luminance value of the block 22 suffers unlocking of the pixels in the left and right columns. right of the block by an unlocking filter 28 before mixing. After that, an aggregator 30 adds the corresponding value of the unlocked film grain block to the corresponding decoded pixels, and a fastener 32 holds the results within the range [0.255] to generate luma pixels mixed with the film grain for presentation in a presentation (not shown) or for subsequent recording. It should be noted that the film grain noise is only added to luma pixels.
Unblocking filter 28 As described, the unblocking filter operates to unblock the film grain block before mixing to soften the blocking devices resulting from the small size of the transformation. In an illustrative embodiment, the deblocking filter 28 comprises a 3-liter filter applied to all the pixels surrounding the left and right edges of the 8x8 block. Given a row of pixels belonging to two adjacent 8x8 blocks, the transition between blocks that is located between pixels b and c.
Block A Block B
the filter is applied as follows: b '= (a + (b < <1) + c) > > 2 c '= (b + (c < < < 1) + d) > > 2 where b 'and c' replace the value of the original pixels b and c, respectively. Unlocking the edges of the left and right block is done for each block at the time of presentation. The method described above for simulating film grain can be practiced quickly by content replication devices, such as a DVD player (or player / recorder) or content delivery mechanism such as t.v. by cable or similar. In the case of a content replication device such as the DVD player or DVD player / recorder, the content medium (eg, the DVD) would convey the film grain information together with the same content (ie, compressed video) to allow the content replication device to simulate the film grain in the manner described. In that way, for example a DVD would carry both image information, typically in the form of compressed macroblocks, as well as film grain information, which would allow a DVD player or player / recorder to mix film grain with non-decompressed video for subsequent presentation . The foregoing describes a technique for simulating film grain in an image. Advantageously, the film grain simulation technique offers the ability to simulate elongated film grain to the benefit of the allowed values for the parameter num_model_values_less1 [0] as well as the allowed values for the parameters comp_model_value [0] [i] [1] , and comp_model_value [0] [¡] [2]. In addition, the film-sham simulation technique of the current principles, the selection of a group of film grain samples from the sample database 12 avoids the need to perform a Separate Cosine Transformation (DCT) and a DCT reverse.
Claims (17)
1. - A method to create a block of M x N pixels with film grain to be mixed with an image to simulate film grain, where N and M are integers greater than zero, comprising the steps of: receiving film grain information which includes at least one parameter that specifies an attribute of the film grain to appear in the image block; derive the parameters not transmitted based on predetermined preset values; selecting a film grain block of M x N pixels from a group of previously established blocks containing film grain as a function of a pseudo-random number and at least one parameter characterizing the film grain; and classifying all pixel values in the block as indicated by at least one parameter that characterizes the film grain; and store the created block of the film grain in a group of film grain blocks.
2. The method according to claim 1, wherein the selection step further comprises the step of selecting from a predetermined number of groups of 4096 values each.
3. The method according to claim 2, wherein each of the predetermined number of groups of values is ordered as an array of 512 x 8.
4. The method according to claim 3, wherein the predetermined number of value groups are stored in complement 2 and vary from [-127, 127].
5. The method according to claim 1, further comprising the steps of: selecting a block of film grain from among the group of film grain blocks according to a pseudo-random number and a luma characteristic of the incoming image; unlock the opposite edges of the selected film grain block; and mixing at least a portion of the selected film grain block with each pixel in the image block; and hold the image block pixels mixed with the film grain.
6. A method for simulating film grain in a pixel image block, comprising the steps of: randomly selecting a block of film grain from a group of pre-set film grain blocks for a value of luma that corresponds to a luma characteristic of the image block; unlock the selected film grain block; mixing at least a portion of the unlocked film grain block with each pixel of the image block to simulate film grain; hold the resulting mixed pixels before leaving.
7. The method according to claim 6, wherein the group of pre-established film grain blocks is created through the steps of: receiving film grain information including at least one parameter specifying an attribute of the grain of film to appear in the image block; selecting a block of film grain of M x N pixels from a group of previously established blocks containing film grain as a function of a pseudo-random number; classify all pixel values in the block as indicated by a parameter in the received film grain information; and store the created block of the film grain in a group of film grain blocks.
8. The method according to claim 7, wherein the selection step further comprises the step of selecting from a predetermined number of groups of 4096 values each.
9. The method according to claim 8, wherein each of the predetermined number of groups of values is ordered as an array of 512 x 8.
The method according to claim 8, wherein the predetermined number of value groups is stored in complement 2 and vary from [-127, 127].
11. - A data vehicle containing film grain blocks established according to the method according to claim 7, for mixing with video information carried by the data vehicle.
12. The method according to claim 11, wherein the data vehicle comprises a DVD.
13. The apparatus for creating a block of M x N pixels, comprising: a first storage tank for storing a group of previously established M x N pixel blocks containing film grain, where M and N are integers; a selector for selecting a block of film grain of M x N pixels of the first deposit as a function of a pseudo-random number; and a classification block for classifying all pixel values in the selected film grain block according to at least one movie grain information parameter received by the classification block; and a second storage tank that stores the film grain blocks.
14. The apparatus according to claim 13, wherein the first storage tank stores a predetermined number of groups of 4096 values each.
15. The apparatus according to claim 13, wherein each of the predetermined number of groups of values is arranged as a 512 x 8 matrix.
16. The apparatus according to claim 15, wherein the number The default group of values is stored in plug-in 2 and they vary from [-127, 127].
17. An apparatus for simulating film grain in a pixel image block, comprising: a group of previously established film grain values; a selector for randomly selecting a block of film grain from the group of pre-set film grain seals for a value of luma corresponding to a luma characteristic of the picture block; an unlock filter to unlock the selected film grain block; an aggregator for mixing at least a portion of the unlocked film grain block with each pixel of the image block to simulate the film grain; and a fastener to hold the resulting mixed pixels before leaving.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60/527,895 | 2003-12-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
MXPA06006308A true MXPA06006308A (en) | 2006-10-17 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5876691B2 (en) | Technology for simulating film grain using a film grain pattern database | |
KR100989897B1 (en) | Technique for bit-accurate film grain simulation | |
RU2378697C2 (en) | Method of simulating film granularity | |
KR101166948B1 (en) | Low-complexity film grain simulation technique | |
KR101274644B1 (en) | Film grain simulation technique for use in media playback devices | |
KR101170584B1 (en) | Film grain simulation method based on pre-computed transform coefficients | |
BRPI0410383B1 (en) | "METHOD AND APPARATUS FOR SIMULATING FILM GRAIN BY ONE OR MORE PARAMETERS" | |
KR101169826B1 (en) | Bit-accurate film grain simulation method based on pre-computed transformed coefficients | |
MXPA06006308A (en) | Technique for film grain simulation using a database of film grain patterns | |
EP1809043A1 (en) | Technique for film grain simulation using a database of film grain patterns |