JP2023507589A - Noise synthesis for digital images - Google Patents

Noise synthesis for digital images Download PDF

Info

Publication number
JP2023507589A
JP2023507589A JP2022537579A JP2022537579A JP2023507589A JP 2023507589 A JP2023507589 A JP 2023507589A JP 2022537579 A JP2022537579 A JP 2022537579A JP 2022537579 A JP2022537579 A JP 2022537579A JP 2023507589 A JP2023507589 A JP 2023507589A
Authority
JP
Japan
Prior art keywords
noise
image
block
probability
generating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2022537579A
Other languages
Japanese (ja)
Other versions
JP7451710B2 (en
Inventor
カドゥ,ハルシャド
ヴィシュワナート,バラート
スゥ,グワン-ミーン
エヌ. フルヤルカール,サミール
Original Assignee
ドルビー ラボラトリーズ ライセンシング コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ドルビー ラボラトリーズ ライセンシング コーポレイション filed Critical ドルビー ラボラトリーズ ライセンシング コーポレイション
Publication of JP2023507589A publication Critical patent/JP2023507589A/en
Application granted granted Critical
Publication of JP7451710B2 publication Critical patent/JP7451710B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Discrete Mathematics (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Abstract

デジタル画像のためのノイズ合成の問題に対してソフトウェアおよびハードウェアに基づくソリューションを提供するための装置および方法である。一態様に従って、確率画像が生成され、かつ、ノイズブロックが確率画像内の場所にランダムに配置され、その場所は9閾値基準と比較される確率値を有し、合成ノイズ画像を生成する。実施形態は、合成フィルムグレイン画像および合成デジタルカメラノイズ画像を生成することを含む。An apparatus and method for providing a software and hardware based solution to the problem of noise synthesis for digital images. According to one aspect, a probability image is generated and noise blocks are randomly placed at locations within the probability image, the locations having probability values that are compared to nine threshold criteria to generate a composite noise image. Embodiments include generating a synthetic film grain image and a synthetic digital camera noise image.

Description

本開示は、一般的に、画像に関する。より詳細には、本開示の一つの実施形態は、画像のためのフィルムグレイン(film grain)およびカメラノイズの合成に関する。 This disclosure relates generally to images. More particularly, one embodiment of the present disclosure relates to combining film grain and camera noise for images.

本出願は、2019年12月19日に出願された米国仮特許出願第62/950466号、および、2019年12月19日に出願された欧州特許出願第19218144.4号について優先権の利益を主張するものであり、これらは、全体として参照によってここに組み込まれている。 This application claims the benefit of priority to U.S. Provisional Patent Application No. 62/950466, filed December 19, 2019, and European Patent Application No. 19218144.4, filed December 19, 2019 , which are hereby incorporated by reference in their entirety.

ここにおいて使用される、用語ノイズ合成(noise synthesis)は、そのノイズが通常どのように発生するか以外の手段によって、デジタル画像(ビデオフレームを含む)についてノイズ効果を発生することを意味する。ここにおける記載のいずれかの時点において、特定の重要性を有するように特定の意味が明示的に規定されていない限り、この用語は、いずれの意味においても、例えば、互換的に、使用され得ると推測されるべきである。 As used herein, the term noise synthesis means producing noise effects on a digital image (including video frames) by means other than how that noise is normally produced. At any point in the description herein, the terms may be used in either sense, e.g. should be inferred.

写真フィルムストリップは、デジタル技術の出現以前は、伝統的な写真撮影のためのキャンバスであった。このフィルムは、感光性物質(例えば、ハロゲン化銀)でカバーされた薄いプラスチックシートであり、フィルム化されるオブジェクトから発光され、または、反射される光を吸収する。これらのフィルムを処理した後で、キャプチャされた光が、画像へと変換され得る。ここにおいて使用される、「フィルムグレイン(“film grain”)とは、十分な光子を受けている色素クラウド(dye clouds)(または、銀粒子(silver particles))のせいで処理された画像において発達した(developed)視覚的なテクスチャを参照する。これは、フィルムの処理の最中に進行する化学プロセスによって引き起こされる光学現象であり、そして、フィルムが観察される精細度(definition)および使用されるフィルムストック(stock)のタイプの両方に依存する。 The photographic filmstrip was the canvas for traditional photography before the advent of digital technology. The film is a thin plastic sheet covered with a photosensitive material (eg, silver halide) that absorbs light emitted or reflected from the object being filmed. After processing these films, the captured light can be converted into images. As used herein, "film grain" means the development in processed images due to dye clouds (or silver particles) receiving sufficient photons. It refers to the visual texture developed, which is an optical phenomenon caused by the chemical processes that go on during the processing of a film, and the definition in which the film is observed and used. Both depend on the type of film stock.

デジタル写真はフィルムグレイン効果を本質的に欠いている。しかし、芸術的理由および質的な理由から、それは依然として望まれている。例えば、ハリウッドの映画会社(studios)は、よりフィルムグレインを有する映画コンテンツを好む。デジタル画像については、フィルムグレインパターンが合成され、そして、後処理の最中に画像上に重ね合わせられる必要がある。 Digital photography is inherently devoid of film grain effects. However, it is still desired for artistic and qualitative reasons. For example, Hollywood studios prefer movie content with more film grain. For digital images, the film grain pattern needs to be synthesized and superimposed on the image during post-processing.

「カメラノイズ(“camera noise”)」は、センサのサイズ、露出時間、ISO設定、等といった、カメラのエレクトロニクスによるデジタル画像における明るさ及び/又は色(画像における色付きの斑点(colored specks)の変化を参照する。典型的に、カメラノイズは、圧縮における問題を回避するために、様々な技術によってデジタル画像から除去されるが、場合によっては、画像がキャプチャされたときに有していたオリジナルの「外観(“look”)」を保持するために、カメラノイズが望まれる。 “Camera noise” refers to variations in brightness and/or color (colored specks in an image) in a digital image due to camera electronics such as sensor size, exposure time, ISO settings, etc. Typically, camera noise is removed from digital images by various techniques to avoid problems in compression, but in some cases the original image had when it was captured. Camera noise is desired to preserve the "look".

ここにおいて使用される用語「メタデータ(“metadata”)」は、コード化ビットストリームの一部として送信され、かつ、デコーディングされた画像をレンダリング(render)するためにデコーダを支援する任意の補助的な情報を参照する。そうしたメタデータは、これらに限定されるわけではないが、ここにおいて説明されるように、色空間(color space)または色域情報(gamut information)、参照表示パラメータ、および補助信号パラメータを含み得る。 As used herein, the term "metadata" means any aid that is transmitted as part of a coded bitstream and that assists a decoder to render a decoded image. See relevant information. Such metadata may include, but is not limited to, color space or gamut information, reference display parameters, and auxiliary signal parameters, as described herein.

実際には、デジタル画像は、1つ以上の色成分(例えば、ルマY、クロマCbおよびCr)を含み、ここで、各色成分は、ピクセル当たりn-ビット(例えば、n=8)の精度で表される。線形輝度コーディング(linear luminance coding)を使用して、n<8である画像(例えば、カラー24ビットJPEG画像)は、標準ダイナミックレンジ(Standard Dynamic Range、SDR)の画像としてみなされ、一方で、n>8である画像は、拡張ダイナミックレンジ(enhanced dynamic range、EDR)の画像とみなされ得る。EDRおよびHDR画像は、また、Industrial Light and Magicによって開発されたOpenEXRファイルフォーマットといった、高精度の浮動小数点フォーマット(例えば、16ビット)を使用して保管され、そして、配信され得る。 In practice, a digital image contains one or more color components (e.g. luma Y, chroma Cb and Cr), where each color component has a precision of n-bits per pixel (e.g. n=8). expressed. Using linear luminance coding, images with n<8 (e.g., color 24-bit JPEG images) are considered Standard Dynamic Range (SDR) images, while n Images that are >8 may be considered enhanced dynamic range (EDR) images. EDR and HDR images can also be stored and distributed using high precision floating point formats (eg, 16-bit), such as the OpenEXR file format developed by Industrial Light and Magic.

ここにおいて使用される、用語「ノイズ合成(“noise synthesis”)」は、これらに限定されるわけではないが、フィルムグレインまたはカメラノイズといった、フィルム/ビデオ/画像のキャプチャまたは発達によって通常引き起こされるノイズをデジタル画像内で合成することを含む。本用語は、また、あらゆる目的のために、デジタル画像の中へ人工的に挿入された任意のノイズも参照し得る。 As used herein, the term "noise synthesis" includes, but is not limited to, noise normally caused by film/video/image capture or development, such as film grain or camera noise. within the digital image. The term may also refer to any noise artificially inserted into a digital image for any purpose.

本セクションで説明されるアプローチは、追求され得るアプローチであるが、必ずしも以前に考案され、または、追求されたアプローチではない。従って、別段の指示がない限り、本セクションで説明されるいずれかの手法が、単に本セクションに含まれているという理由のみによって、先行技術として適格であるとみなされるべきではない。同様に1つ以上のアプローチに関して特定された問題は、別段の指示がない限り、本セクションに基づいて、いかなる先行技術においても認識されていたものと仮定されるべきではない。 The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Accordingly, unless otherwise indicated, any technique described in this section should not be considered to qualify as prior art merely because of its inclusion in this section. Similarly, the problems identified with respect to one or more of the approaches should not be assumed to have been recognized in any prior art based on this section unless otherwise indicated.

本開示に従った装置および方法は、デジタル画像についてノイズ合成の問題に対するソリューションを提供する。本開示の一つの実施形態に従って、合成されたフィルムグレインが、クリーンな(すなわち、ノイズのない(noise free))デジタルシーケンスに対して付加される。 Apparatus and methods according to the present disclosure provide a solution to the problem of noise composition for digital images. According to one embodiment of the present disclosure, synthesized film grain is added to a clean (ie, noise free) digital sequence.

ここにおいて示されるようなノイズを合成するプロセスは、画像伝送および表示において多くの利点を有している。例えば、ノイズを合成する能力は、ノイズのない(noise-free)圧縮画像の伝送を可能にし、それは、増加された伝送効率(データ速度、帯域幅、等)を提供することができる。合成されたノイズを非圧縮画像に加えることは、表示された画像における圧縮アーチファクト(artifacts)の影響を低減することができる。ノイズブロックの使用は、フィルムの粒度(grain size)、シャープネス、および、タイプ(ノイズ源エミュレーション)の制御を可能にし、そして、画像におけるそれらのランダムな配置は、タイル配置(tiled placement)によって引き起こされるであろうブロッキングアーチファクトを防止する。加えて、ハードウェアベースの実装のために、ライン毎の処理(per-line processing)の使用は、ノイズ合成のリソース効率の良い移植(implantation)を可能にする。 The process of synthesizing noise as presented here has many advantages in image transmission and display. For example, the ability to synthesize noise enables transmission of noise-free compressed images, which can provide increased transmission efficiency (data rate, bandwidth, etc.). Adding synthesized noise to the uncompressed image can reduce the effects of compression artifacts in the displayed image. The use of noise blocks allows control over film grain size, sharpness, and type (noise source emulation), and their random placement in the image is induced by tiled placement. prevent possible blocking artifacts. Additionally, for hardware-based implementations, the use of per-line processing allows resource-efficient implantation of noise synthesis.

本開示の第1態様に従って、デジタル画像に対する合成ノイズ画像を生成するためのコンピュータベースの方法が開示される。前記方法は、複数のノイズブロックパターンを提供するステップと、ノイズ画像を初期化するステップと、確率画像を生成するステップであり、該確率画像は、各ピクセルにおいてランダムに生成された確率値を含むステップと、前記確率画像における各確率値を閾値基準と比較するステップとを含む。前記確率値が前記閾値基準を満たす場合、前記複数のノイズブロックパターンからノイズブロックパターンを選択し、該ノイズブロックパターンはアンカーポイントを有しており、かつ、前記確率値が前記閾値基準を満たす場合、前記アンカーポイントが、前記閾値基準を満たす前記確率画像におけるピクセルに対応するように、前記ノイズブロックパターンを前記ノイズ画像内に配置することによって、合成されたノイズ画像を生成する。 According to a first aspect of the present disclosure, a computer-based method is disclosed for generating a synthetic noise image for a digital image. The method comprises providing a plurality of noise block patterns, initializing a noise image, and generating a probability image, the probability image including randomly generated probability values at each pixel. and comparing each probability value in the probability image to a threshold criterion. selecting a noise block pattern from the plurality of noise block patterns if the probability value satisfies the threshold criterion, the noise block pattern having an anchor point, and if the probability value satisfies the threshold criterion; and generating a synthesized noise image by placing the noise block pattern within the noise image such that the anchor points correspond to pixels in the probability image that meet the threshold criteria.

ノイズグレインブロックパターンは、ランダムに選択され得る。確率画像の確率値は、一様に分布した確率値であり得る。ノイズブロックパターンは、フィルムグレインブロックパターンを含み得る。また、本方法は、ノイズブロックパターンがオーバーラップするノイズ画像の領域における値を集約するステップを含み得る。本方法は、ノイズ画像を生成する前に、ノイズブロックパターンを生成するステップを含み得る。ここで、ノイズブロックパターンは、逆DCT技術を通じて生成される。この生成は、低周波数DCT係数の除去及び/又は高周波数DCT係数の除去を含み得る。確率画像およびノイズ画像は、ノイズ画像をビデオフレームにマッチするサイズにされ得る。本方法は、コンテンツ画像のチャネルに加えることによって、コンテンツ画像を編集するステップを含み得る。本方法は、コンテンツ画像にノイズ画像を加える前に、ノイズ画像における値を変調度で乗算するステップを含み得る。本値は、ノイズ画像のルマ強度値であり得る。本方法は、編集されたコンテンツ画像に基づいてYUVコンテンツ画像を生成するステップを含み得る。本方法は、YUVコンテンツ画像に基づいてRGBコンテンツ画像を生成するステップを含み得る。本方法は、当該方法を実施するためにエンコーディングされたデータを含むコンピュータプログラム製品上で実行され得る。 The noise grain block pattern can be randomly selected. The probability values of the probability image may be uniformly distributed probability values. A noise block pattern may include a film grain block pattern. The method may also include aggregating values in regions of the noisy image where the noise block patterns overlap. The method may include generating the noise block pattern prior to generating the noise image. Here, the noise block pattern is generated through an inverse DCT technique. This generation may include removing low frequency DCT coefficients and/or removing high frequency DCT coefficients. The probability image and noise image may be sized to match the noise image to the video frame. The method may include editing the content image by adding to the channel of the content image. The method may include multiplying the values in the noise image by the modulation depth before adding the noise image to the content image. This value can be the luma intensity value of the noise image. The method may include generating a YUV content image based on the edited content image. The method may include generating an RGB content image based on the YUV content image. The method may be executed on a computer program product containing data encoded for performing the method.

本方法は、ノイズ合成モジュールによって実行され、デバイス用の合成ノイズ画像を作成することができる。本デバイスは、エンコーディングされた画像を復号し、復号されたクリーンシーケンスを生成する、デコーダを含み得る。ここで、デコーダは、合成されたノイズ画像を復号されたクリーンシーケンスと組み合わせるように構成されており、表示のためのレンダリングされた画像を生成している。本デバイスは、復号されたクリーンシーケンスと組み合わせる前に、合成ノイズ画像を変調するための変調曲線モジュールを含み得る。 The method may be performed by a noise synthesis module to create a synthetic noise image for the device. The device may include a decoder that decodes the encoded image and produces a decoded clean sequence. Here the decoder is configured to combine the synthesized noise image with the decoded clean sequence to produce a rendered image for display. The device may include a modulation curve module for modulating the synthetic noise image before combining it with the decoded clean sequence.

本開示の第2態様に従って、画像において合成ノイズを生成するためのデバイスが開示される。前記デバイスは、前記画像からの行を含むラインバッファと、ノイズブロックパターンを含むファームウェアと、前記行におけるピクセルに対してランダム値を提供するための擬似乱数発生器と、前記ランダム値を閾値基準と比較するためのロジックと、ノイズブロック管理テーブルを含むデータストアと、前記行におけるピクセルに関連付けられている前記ファームウェアからのランダムノイズブロックパターンに基づいて前記ノイズブロック管理テーブルを生成するロジックであり、前記ピクセルに関連付けられた前記ランダム値は前記閾値基準を満たすロジックと、前記ノイズブロック管理テーブルに基づいて前記画像の前記行における各ピクセルの場所についてノイズ値を計算するロジックと、前記ノイズ値に基づいて前記行を修正するロジックと、を含む。 According to a second aspect of the disclosure, a device is disclosed for generating synthetic noise in an image. The device includes a line buffer containing lines from the image, firmware containing noise block patterns, a pseudo-random number generator for providing random values for pixels in the lines, and using the random values as threshold criteria. logic for comparing; a data store containing a noise block management table; logic for generating the noise block management table based on random noise block patterns from the firmware associated with pixels in the row; logic for determining that the random value associated with a pixel meets the threshold criteria; logic for calculating a noise value for each pixel location in the row of the image based on the noise block management table; and logic to modify the row.

本デバイスは、画像から変調曲線を決定し、変調度を計算し、かつ、行を修正する前に、変調度をノイズ値に適用するためのロジックを含み得る。疑似ランダムノイズ発生器は、行インデックスおよびランダムオフセット値に基づいてランダム数を生成し得る。画像は、ルマチャネル画像またはクロマチャネル画像であり得る。本デバイスは、画像を並列に処理するために、複数の擬似乱数発生器および複数のラインバッファを含み得る。 The device may include logic for determining the modulation curve from the image, calculating the modulation depth, and applying the modulation depth to the noise values prior to row modification. A pseudorandom noise generator may generate a random number based on the row index and the random offset value. The images can be luma channel images or chroma channel images. The device may include multiple pseudo-random number generators and multiple line buffers to process images in parallel.

本開示の第3態様に従って、デコーダ用のメタデータを生成する方法が開示される。前記方法は、ノイズカテゴリパラメータを設定するステップと、ブロックサイズパラメータを設定するステップと、閾値パラメータを設定するステップと、変調度曲線パラメータを設定するステップと、を含む。 According to a third aspect of the disclosure, a method of generating metadata for a decoder is disclosed. The method includes setting a noise category parameter, setting a block size parameter, setting a threshold parameter, and setting a modulation depth curve parameter.

メタデータを生成する方法は、ノイズ分散パラメータを設定するステップ、複数のブロックパターンパラメータを設定するステップ、及び/又は、ノイズブロック管理テーブルのエントリーパラメータを設定するステップ、を含み得る。 The method of generating metadata may include setting a noise variance parameter, setting a plurality of block pattern parameters, and/or setting a noise block management table entry parameter.

図1は、一つの実施形態に従った、ノイズ合成モジュールを含む例示的なデコーダシステムを示している。FIG. 1 shows an exemplary decoder system including a noise synthesis module, according to one embodiment. 図2Aは、一つの実施形態に従った、フィルムグレインブロックパターンを生成するための例示的なDCT行列を示している。FIG. 2A shows an exemplary DCT matrix for generating film grain block patterns, according to one embodiment. 図2Bは、一つの実施形態に従った、フィルムグレインブロックパターンを生成するための例示的なDCT行列を示している。FIG. 2B shows an exemplary DCT matrix for generating film grain block patterns, according to one embodiment. 図3は、一つの実施形態に従った、合成ノイズ発生を利用する例示的なデコーダシステムを示している。FIG. 3 shows an exemplary decoder system that utilizes synthetic noise generation, according to one embodiment. 図4は、一つの実施形態に従った、画像のルマチャネルにノイズを加える処理のための例示的なフローチャートを示している。FIG. 4 shows an exemplary flowchart for adding noise to the luma channel of an image, according to one embodiment. 図5は、一つの実施形態に従った、固定アルファを用いたルマ変調曲線の一つの例を示している。FIG. 5 shows an example luma modulation curve with a fixed alpha, according to one embodiment. 図6は、一つの実施形態に従った、固定ベータを用いたルマ変調曲線の例を示している。FIG. 6 shows an example luma modulation curve with fixed beta, according to one embodiment. 図7は、一つの実施形態に従った、色変換を用いたフィルムグレイン合成の一つの例を示している。FIG. 7 shows an example of film grain compositing using color transforms, according to one embodiment. 図8は、一つの実施形態に従った、色変換を用いたカメラノイズ合成の一つの例を示している。FIG. 8 shows an example of camera noise synthesis using color transforms, according to one embodiment. 図9は、一つの実施形態に従った、ハードウェアを介して合成フィルムグレインが注入されたコンテンツを生成するための例示的なブロック図を示している。FIG. 9 illustrates an exemplary block diagram for generating content infused with synthetic film grain via hardware, according to one embodiment. 図10は、一つの実施形態に従った、画像の各ピクセルが、ハードウェアにおけるフィルムグレインに関して、どのように評価され得るかの例を示している。FIG. 10 shows an example of how each pixel of an image can be evaluated with respect to film grain in hardware, according to one embodiment. 図11は、一つの実施形態に従った、ハードウェア実装を用いた使用のための例示的な16ビットレジスタを示している。FIG. 11 shows an exemplary 16-bit register for use with a hardware implementation, according to one embodiment. 図12は、一つの実施形態に従った、擬似乱数発生器からのブロックIDビットのピックする方法の例を示している。FIG. 12 shows an example method of picking block ID bits from a pseudo-random number generator, according to one embodiment. 図13は、一つの実施形態に従った、ピクセル値ロジックに対するNBMTの例を示している。FIG. 13 shows an example NBMT to pixel value logic, according to one embodiment. 図14は、一つの実施形態に従った、ソフトウェアベース(オリジナル)の変調曲線とハードウェアベース(区分的線形)の変調曲線とを比較する例示的なプロットを示している。FIG. 14 shows exemplary plots comparing software-based (original) and hardware-based (piecewise linear) modulation curves, according to one embodiment. 図15は、一つの実施形態に従った、デジタルカメラノイズ合成のハードウェア実装に係る例示的なブロック図を示している。FIG. 15 shows an exemplary block diagram of a hardware implementation of digital camera noise synthesis, according to one embodiment. 図16は、一つの実施形態に従った、クロマチャネルのための簡略化されたカメラノイズ合成システム/方法に係る例を示している。FIG. 16 shows an example of a simplified camera noise synthesis system/method for chroma channels, according to one embodiment. 図17は、一つの実施形態に従った、ハードウェア実装のための統一されたノイズ注入アーキテクチャの例を示している。FIG. 17 shows an example unified noise injection architecture for hardware implementation, according to one embodiment.

本開示の全体を通して、確率画像(probability image)は、ランダム値から作られたデジタル画像として定義される。 Throughout this disclosure, a probability image is defined as a digital image made up of random values.

ノイズは、画像化される環境以外の効果によって引き起こされるデジタル画像における輝度(ルマ)及び/又は色(クロマ)情報のランダムな変化を指す。 Noise refers to random variations in luminance (luma) and/or color (chroma) information in a digital image caused by effects other than the imaged environment.

フィルムグレインは、フィルム処理によって引き起こされるであろうといった、画像におけるランダムな光学的テクスチャを指す。フィルムグレインは、ルマチャネルにおけるノイズである。 Film grain refers to random optical texture in an image, such as may be caused by film processing. Film grain is noise in the luma channel.

粒子サイズは、フィルムグレインの個々の粒子の平均直径を指す。 Particle size refers to the average diameter of individual particles of the film grain.

カメラノイズは、デジタルカメラのハードウェアによって引き起こされるであろうといった、画像におけるランダムな光学的テクスチャを指す。カメラノイズは、ルマチャネルとクロマチャネルの両方におけるノイズである。カメラノイズ、合成されていないものは、センサのサイズ、熱効果、長い露出時間、高いISO設定、等を含む多くのソースから生じる。 Camera noise refers to random optical textures in an image, such as may be caused by digital camera hardware. Camera noise is noise in both luma and chroma channels. Camera noise, uncombined, comes from many sources, including sensor size, thermal effects, long exposure times, high ISO settings, and so on.

DCTは離散コサイン変換を指し、そして、IDCTは逆離散コサイン変換を指す。 DCT refers to Discrete Cosine Transform and IDCT refers to Inverse Discrete Cosine Transform.

デジタル画像は、数値的に表現される、画像、またはビデオのフレームを指す。 A digital image refers to an image or frame of video that is represented numerically.

フィルムグレインまたはカメラノイズといった、ノイズをデジタル画像(ビデオを含む)上に合成するためのシステムおよび方法が、ここにおいて説明される。以下の記載においては、説明の目的のため、多数の特定の詳細が、本開示の完全な理解を提供するために説明されている。しかしながら、現在クレームされている技術的事項(subject matter)は、これらの特定の詳細なしで実施され得ることは明らかであろう。他の例において、周知の構造および装置は、本開示を不必要に閉塞し、不明確にし、不明瞭にすることを避けるために、網羅的な詳細において説明されていない。 Systems and methods for compositing noise, such as film grain or camera noise, onto digital images (including video) are described herein. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be apparent, however, that the presently claimed subject matter may be practiced without these specific details. In other instances, well-known structures and devices have not been described in exhaustive detail in order to avoid unnecessarily obscuring, obscuring, or obscuring the present disclosure.

図1は、ノイズ合成を実装するデコーダのための例示的なアーキテクチャを示している。対応するメタデータ(112)と共に、エンコーディングされた画像(111)を送信するビットストリーム(110)が、システムによって受信される。デコーダ(120)は、デコーディングされたクリーンシーケンス(125)へと画像をデコーディングする。エンコーディングされた画像(111)は、エンコーディング以前に任意のノイズを消去した画像によって生成されるので、デコーディングされたクリーンシーケンス(125)も、また、(ほとんど)ノイズを含まない。メタデータ(112)は、ノイズ合成モジュール(130)、および、任意的に、変調曲線モジュール(140)に対してパラメータを提供する。ノイズ合成モジュール(130)は、合成ノイズ画像(135)を生成するために、メタデータ(112)を使用する。この合成されたノイズ画像(135)は、変調ノイズ画像(145)を生成するように、変調曲線モジュール(140)を通じて実行され得る。デコーディングされたクリーンシーケンス(125)および変調されたノイズ画像(145)(または、変調が実行されない場合は合成されたノイズ画像(135))は、1つ以上のチャネルにおいて結合され(150)、表示(155)または表示前の色変換のためにレンダリングされた画像を生成する。 FIG. 1 shows an exemplary architecture for a decoder implementing noise synthesis. A bitstream (110) carrying encoded images (111) along with corresponding metadata (112) is received by the system. A decoder (120) decodes the image into a decoded clean sequence (125). Since the encoded image (111) is produced by removing any noise prior to encoding, the decoded clean sequence (125) is also (almost) free of noise. The metadata (112) provides parameters for the noise synthesis module (130) and, optionally, the modulation curve module (140). A noise synthesis module (130) uses the metadata (112) to generate a synthesized noise image (135). This synthesized noise image (135) may be run through a modulation curve module (140) to produce a modulated noise image (145). the decoded clean sequence (125) and the modulated noise image (145) (or the synthesized noise image (135) if no modulation is performed) are combined (150) in one or more channels; Produces a rendered image for display (155) or color conversion prior to display.

ノイズ合成はデコーダに結び付けられることを要しない。例えば、ビデオ制作者は、ビデオ制作プレリリースのためにノイズ合成を使用することができる。非デコーダ実装の場合、デコーディングされたクリーンシーケンス(125)は、編集されるべきコンテンツ画像に置き換えることができる。例えば、ノイズ画像は、カラリスト(colorist)によって合成され、次いで、後に、コンテンツ画像に対して追加する前に変調され得る。 Noise synthesis does not need to be tied to the decoder. For example, a video producer can use noise synthesis for a video production pre-release. For non-decoder implementations, the decoded clean sequence (125) can be replaced with the content image to be edited. For example, a noise image can be composited by a colorist and then later modulated before adding to the content image.

ノイズは、所望の効果に応じて、ルマチャネル、クロマチャネル、または、その両方であってよい。例えば、フィルムグレインのエミュレーションについて、ノイズは、ルマチャネル内に存在し得るに過ぎない。デジタルカメラハードウェアによって引き起こされるノイズをエミュレートするために、ノイズは、ルマチャネルおよびクロマチャネルにおいて存在し得る。メタデータパラメータを適切に調整することによって、種々のタイプのノイズエミュレーションが可能である。 The noise may be luma channel, chroma channel, or both, depending on the desired effect. For example, for film grain emulation, noise can only be present in the luma channel. Noise may be present in the luma and chroma channels to emulate the noise caused by digital camera hardware. Various types of noise emulation are possible by properly adjusting the metadata parameters.

デジタル画像のノイズは、確率画像を通じて画像に対してノイズブロックパターンを追加するプロセスによって合成することができる。コンセプトは、オリジナルの画像をブロックへと分割するのではなく、ピクセルごとに(pixel-by-pixel)ブロックパターンを追加することである。 Noise in a digital image can be synthesized by the process of adding noise block patterns to the image through a probability image. The concept is to add a pixel-by-pixel block pattern instead of dividing the original image into blocks.

サイズB×Bのフィルムグレインブロックパターンを合成するためには、標準正規乱数のB×B行列Mで開始する(例えば、B=4,8、など)から始める。行列Mは、2D DCT係数を表しており、左上はDC係数(周波数=0)であり、右下は最高周波数AC(周波数>0)である。DC係数は、1とラベル付けされ(210)、そして、4×4ブロックの例について図2Aに示されるように、ジグザグ順にラベルが増加する。 To synthesize a film grain block pattern of size B×B, start with a B×B matrix M of standard normal random numbers (eg, B=4, 8, etc.). The matrix M represents the 2D DCT coefficients, the top left being the DC coefficients (frequency=0) and the bottom right being the highest frequency AC (frequency>0). The DC coefficients are labeled 210 as 1 and have increasing labels in a zigzag order as shown in FIG. 2A for the 4×4 block example.

これらの周波数係数は、3個のバンドへと広く分類することができる。すなわち、図2Bに示されるように、低、中、高である。Mにおける中周波数帯(230)は保存され、一方、低周波数(220)および高周波数(240)成分は除去される(または、代替的に、低周波数成分(220)またはコンポーネントだけが除去される)。例えば、4×4ブロックにおいて、4~10とラベル付けされた周波数係数が保存され、そして、係数1~3および11~16が除去され得る。保存され得る周波数係数の範囲は、カスタマイズ可能であり、少なくとも係数1は除去されている。 These frequency coefficients can be broadly grouped into three bands. That is, low, medium, and high, as shown in FIG. 2B. The mid-frequency band (230) in M is preserved, while the low-frequency (220) and high-frequency (240) components are removed (or alternatively, only the low-frequency component (220) or components are removed ). For example, in a 4×4 block, frequency coefficients labeled 4-10 may be preserved and coefficients 1-3 and 11-16 removed. The range of frequency coefficients that can be stored is customizable, with at least coefficient 1 removed.

midが、中周波数係数だけが保存され、かつ、低/高の係数がゼロに設定された行列Mを表すことにする。フィルムグレインブロックGrawは、式1にされるように、Mmidの逆DCTをとることによって、構成され得る。

Figure 2023507589000001
式1 Let Mmid denote the matrix M in which only the mid-frequency coefficients are preserved and the low/high coefficients are set to zero. The film grain block G raw may be constructed by taking the inverse DCT of M mid as given in Equation 1.
Figure 2023507589000001
formula 1

ブロックは、各要素をエネルギーEで割ることによって正規化される。そして、次いで、式2に示されるように所望の乗数(multiplier)Vにスケール化される。

Figure 2023507589000002
式2 Blocks are normalized by dividing each element by the energy E. It is then scaled to the desired multiplier V as shown in Equation 2.
Figure 2023507589000002
formula 2

Thnormはインターバル[0,1]に正規化された閾値である。Thnormの値の一つの例は0.1である。σn 2は、ノイズの分散である。ノイズ分散は、調整可能なパラメータである。16ビット画像について例示的な範囲は、1000~6000であり得る。 Th norm is the threshold normalized to the interval [0,1]. An example value for Th norm is 0.1. σ n 2 is the variance of the noise. Noise variance is an adjustable parameter. An exemplary range for a 16-bit image may be 1000-6000.

式3に示されるように、端に向かって丸め(rounding)が行われ、任意の少数部(fractional parts)を除去する。

Figure 2023507589000003
式3 Rounding is performed toward the ends to remove any fractional parts, as shown in Equation 3.
Figure 2023507589000003
formula 3

フィルムグレイン行列Gを計算するための擬似コードが以下に概説される。関数zigzag()は、行列における各位置の周波数ラベルを与える。保存されるべき周波数係数の範囲は、[fs,fe]である。

Figure 2023507589000004
Pseudocode for calculating the film grain matrix G is outlined below. The function zigzag() gives the frequency label for each position in the matrix. The range of frequency coefficients to be stored is [f s ,f e ].
Figure 2023507589000004

異なるブロックディメンションを有する複数のノイズパターンを、合成ノイズ画像を後に一体化するために使用されるように構築することができる。4×4、8×8、16×16、および32×32は、いくつかの典型的なブロックサイズである。
フィルムグレインのサイズは、周波数範囲を変更することによって変更することができる。LF領域に近い周波数係数の割合が周波数範囲[fs,fe]において有意であれば、粒子サイズは大きくなる。反対に、HF領域により近い周波数係数の部分が有意であれば、それはより小さな粒子を生成する。8×8ブロックの例について、周波数係数の範囲[4 - 10、]は[4 - 36]に比べて、より大きな粒子を生成する。
Multiple noise patterns with different block dimensions can be constructed to be used later to combine the synthetic noise image. 4x4, 8x8, 16x16, and 32x32 are some typical block sizes.
The film grain size can be changed by changing the frequency range. If the proportion of frequency coefficients close to the LF region is significant in the frequency range [f s ,f e ], the grain size will be large. Conversely, if the portion of the frequency coefficients closer to the HF region is significant, it produces smaller particles. For the 8x8 block example, the range of frequency coefficients [4 - 10,] produces larger particles than [4 - 36].

異なるサイズを有するいくつかのノイズブロックを予め計算し、そして、ブロックパターンデータセット

Figure 2023507589000005
(以降、G)に保管することができる。このデータベースは、多くの2Dノイズブロック数が次々にスタックされた3D行列として見ることができる。L×Lがフィルムグレインブロックの最大サイズである場合、GのディメンションはL×L×Qである。Q個の要素を有するベクトルSは、パターンデータセット内の各ブロックの対応するサイズを保管するように維持され得る。すなわち、i∈[0,Q-1]についてS(i)≦L。 Pre-compute some noise blocks with different sizes, and block pattern dataset
Figure 2023507589000005
(hereinafter referred to as G- ). This database can be viewed as a 3D matrix with many 2D noise block numbers stacked one after the other. The dimensions of G- are L×L×Q, where L×L is the maximum size of a film grain block. A vector S with Q elements may be maintained to store the corresponding size of each block in the pattern data set. That is, S(i)≤L for iε[0,Q-1].

図3は、合成ノイズ画像を構成する一つの例を示している。この例において、ノイズは、フィルムグレインをシミュレートしている。ブロックパターン(301)からディメンションH×Wの合成ノイズ画像(302)を構築するために、同じサイズの確率画像(300)から開始する。フィルムグレインの典型的なノイズ画像は、FHD(フル高精細度、例えば1080p)、UHD(ウルトラ高精細度、例えば4K)、および8K解像度である。確率画像は、例えば、インターバル[0,1]において、一様な乱数を有する行列である。閾値Thnorm(例えば、0.1)が選択され、そして、確率画像(300)内の全てのエントリが閾値に対して比較される。図3において、円(310)は、閾値未満の確率を有している場所(location)を示している。代替的に、場所は、閾値より大きい、低い、または、閾値以上の確率を有するピクセルにおいて選択され得る。基本的には、所与のピクセルにおける確率値を閾値と比較する基準が存在する。簡単にするために、いくつかの位置だけが示されているが、実際の確率画像は、より多くの場所を有し得る。ノイズブロックが、円に配置されている。これらの場所は、セットΨで示されている。 FIG. 3 shows one example of constructing a synthetic noise image. In this example, the noise simulates film grain. To construct a synthetic noise image (302) of dimension H×W from block patterns (301), we start with the same size probability image (300). Typical noise images of film grain are FHD (Full High Definition, eg 1080p), UHD (Ultra High Definition, eg 4K), and 8K resolutions. A probability image is, for example, a matrix with uniform random numbers in the interval [0,1]. A threshold Th norm (eg, 0.1) is selected and all entries in the probability image (300) are compared against the threshold. In FIG. 3, circles (310) indicate locations that have a probability below the threshold. Alternatively, locations may be selected at pixels that have a probability greater than, less than, or greater than the threshold. Basically, there is a criterion that compares the probability value at a given pixel to a threshold. Only a few locations are shown for simplicity, but a real probability image may have many more locations. Noise blocks are arranged in a circle. These locations are indicated by the set Ψ.

ノイズブロックは、図3に示されるように、確率画像における場所が、ノイズブロックの左上隅(320)に在るように、配置され得る。代替的に、場所は、ノイズブロックに対して、中央、他のコーナー、または任意の指定された場所に設定され得る。ノイズブロックが場所に対応するポイントは、ノイズブロックの「アンカーポイント(“anchor point”)」であり、全てのノイズブロックについて同じであり得る。 The noise block can be positioned such that the location in the probability image is at the upper left corner (320) of the noise block, as shown in FIG. Alternatively, the location can be set to the center, other corners, or any designated location for the noise block. The point to which a noise block corresponds to a location is the noise block's “anchor point” and can be the same for all noise blocks.

ブロックパターンセレクタ(305)は、セットΨ内の場所に挿入されるフィルムグレインブロックパターンをランダムに選択する。このブロックセレクタは、一様な乱数発生器であり得る。ブロックが適切な場所に配置された後、これらのブロックが図3に示されるようにオーバーラップし得る。オーバーラップしているブロック内の共配置(collocated)されたセルからのセルが、一緒に追加される。この集約値は、出力ノイズ画像(302)に入る。オーバーラップ領域は、平均化される代わりに集計されるので、フィルムグレインブロックは、ノイズ分散σn 2(式2を参照のこと)の代わりに、乗数Vによってスケール化することができる。これは、集約ノイズピクセル値が大きくなり過ぎるのを防止する。 A block pattern selector (305) randomly selects a film grain block pattern to be inserted at a location within the set Ψ. This block selector can be a uniform random number generator. After the blocks are in place, they can overlap as shown in FIG. Cells from collocated cells in overlapping blocks are added together. This aggregate value goes into the output noise image (302). Since the overlap regions are summed instead of averaged, the film grain blocks can be scaled by the multiplier V instead of the noise variance σ n 2 (see Equation 2). This prevents the aggregate noise pixel value from becoming too large.

フィルムグレイン画像Iを合成するために、ブロックパターンデータセットGを考えてみる。セットΨ内の全ての場所において、ブロックが、フィルムグレイン画像の中へ挿入されるべきデータセットからランダムにピックされ得る。rを、現在の場所について、ランダムに選択されたブロックのインデックスとする。本ブロックGのディメンションは、S(r)×S(r)であり、その結果、G=G(0:S(r)-1,0:S(r)-1,r)ある。現在の場所に挿入されるべき新しいブロックが存在するたびに、異なる乱数rが選択され得る。このための仮想コードは、以下のように示される。

Figure 2023507589000006
To synthesize a film grain image I, consider block pattern data set G . Everywhere within the set Ψ, blocks can be randomly picked from the dataset to be inserted into the film grain image. Let r be the index of a randomly chosen block for the current location. The dimension of this block G ' is S(r)*S(r), so that G ' = G- (0:S(r)-1,0:S(r)-1,r) . A different random number r may be selected each time there is a new block to be inserted at the current location. The virtual code for this is shown below.
Figure 2023507589000006

は、乱数rに基づいて、場所i,jに対して選択されたランダムブロックを示す。別の言葉で言えば、各場所i,jに対して、乱数rが選択され、次いで、rの関数としてGが生成される。 G ' denotes a random block selected for location i,j based on the random number r. In other words, for each location i,j, a random number r is chosen and then G ' is generated as a function of r.

フィルムグレインまたは類似のノイズを合成する場合について、ノイズは、画像の明るい領域において非常に厄介であり、かつ、侵入的であり得る。強度ベースのルマ変調曲線は、これらの明るい領域におけるノイズの強度を低減し、フィルムグレイン注入画像を視聴者に対してより望ましいものにしている。前のセクションで説明されたように、フィルムグレイン画像は、事前に生成されている。これらの画像は、次いで、共配置されたルマ強度に基づいて変調され、そして、ルマチャネルに追加される。 For synthesizing film grain or similar noise, the noise can be very annoying and intrusive in bright areas of the image. The intensity-based luma modulation curve reduces the intensity of noise in these bright regions, making film grain injected images more desirable to viewers. As explained in the previous section, the film grain image has been pre-generated. These images are then modulated based on the co-located luma intensities and added to the luma channel.

図4は、一実施形態について、限定するものではなく、画像のルマチャネル(例えば、Yチャネル)にノイズを加えるための一般的な方法を示している。最初に、ノイズ画像Iが初期化される(405)。ノイズ画像は、Yチャネル画像と同じディメンションを有し得る。初期化は、ノイズ画像の全てのピクセル値を0、または他の何らかの設定値に設定することができる。次に、確率画像Pが生成され(410)、そこでは、Pにおける各場所でランダム値が生成される。確率画像はノイズ画像と同じディメンションを有し得る。ランダム値は、0から1、または、任意の2個の値の間の範囲であり得る。次に、各ピクセルの場所に対するPにおける各確率値を閾値基準(例えば、設定した閾値以下である)と比較することによって、場所マップΨ(415)が生成される。Ψにおける閾値基準を満たしていると同定された各場所に対して、ランダムに選択されたノイズブロックが、Iにおける対応するピクセル場所に追加される。ブロックが1×1より大きい場合、ブロックは、所与のアンカーポイント(例えば、ブロックの左上隅のピクセル)であってよく、ここで、ブロックはIにおける対応するピクセル場所にアンカーされる。Ψにおける全ての同定された場所が処理されると、追加されたノイズブロックの集合体(aggregate)は、Iにおいて合成ノイズ画像を形成する(425)。合成ノイズ画像は、ルマチャネル(430)から計算できる変調度(435)によって変調され得る。変調された合成ノイズ画像は、次いで、画像のルマチャネル(440)に対して追加され得る。 FIG. 4 illustrates, for one embodiment and without limitation, a general method for adding noise to the luma channel (eg, Y channel) of an image. First, a noise image I is initialized (405). The noise image can have the same dimensions as the Y channel image. Initialization can set all pixel values of the noise image to 0, or some other set value. A probability image P is then generated (410), where at each location in P a random value is generated. The probability image can have the same dimensions as the noise image. The random value can range from 0 to 1 or between any two values. A location map Ψ (415) is then generated by comparing each probability value in P for each pixel location to a threshold criterion (eg, being less than or equal to a set threshold). For each location in Ψ identified as meeting the threshold criteria, a randomly selected noise block is added to the corresponding pixel location in I. If the block is larger than 1×1, the block may be a given anchor point (eg, the pixel in the upper left corner of the block), where the block is anchored at the corresponding pixel location in I. Once all identified locations in Ψ have been processed, the aggregate of added noise blocks form the composite noise image in I (425). The synthetic noise image can be modulated by a modulation index (435) that can be calculated from the luma channel (430). The modulated synthetic noise image can then be added to the luma channel (440) of the image.

ルマ変調曲線の例が図5、図6に示されている。これらのグラフは、ルマ強度の異なる値に対する変調度を示す。変調度(modulation factor)は、範囲[0,1]の有理数である。いくつかの実施形態において、制限なしに、係数(factor)は、低強度コードワードについては、ほぼ1(unity)に近く、そして、強度が増加するにつれて減少する。ルマチャネル内で共配置されたピクセルにフィルムグレインピクセルを追加する前に、システムは、フィルムグレイン値にその変調度を乗算することができる。変調度は、共配置されたルマ強度値と変調曲線から導出される。曲線の減衰傾向のせいで、フィルムグレイン強度は、画像内の明るい領域の場合に低減される。 Examples of luma modulation curves are shown in FIGS. These graphs show the modulation depth for different values of luma intensity. The modulation factor is a rational number in the range [0,1]. In some embodiments, without limitation, the factor is close to unity for low strength codewords and decreases as strength increases. The system may multiply the film grain value by its modulation depth before adding the film grain pixels to the co-located pixels in the luma channel. The modulation index is derived from the co-located luma intensity value and the modulation curve. Due to the attenuation trend of the curve, the film grain intensity is reduced for bright areas in the image.

ルマチャネルの強度値が、Btビットのコードワード範囲におけるlによって示されると仮定する。一つの例として、制限なしに、変調度曲線f(・)は、式4に示されるように計算することができる。

Figure 2023507589000007
(式4)
式4において、αおよびβは、曲線パラメータを示している。 Assume that the intensity value of the luma channel is denoted by l in the codeword range of B t bits. As an example and without limitation, the modulation depth curve f(·) can be calculated as shown in Equation 4.
Figure 2023507589000007
(Formula 4)
In Equation 4, α and β indicate curve parameters.

図5は、変数αおよびβ=2(Bt=16)についてルマ変調曲線の一つの例を示している。曲線は、α=0.15(501)、0.25(502)、0.4(503)について示されている。 FIG. 5 shows an example of a luma modulation curve for variables α and β=2 (B t =16). Curves are shown for α=0.15 (501), 0.25 (502), 0.4 (503).

図6は、変数α=0.25およびβ=2(Bt=16)についてルマ変調曲線の一つの例を示している。曲線は、β=1.0(601)、2.0(602)、4.0(603)について示されている。 FIG. 6 shows one example of a luma modulation curve for variables α=0.25 and β=2 (B t =16). Curves are shown for β=1.0 (601), 2.0 (602), 4.0 (603).

αまたはβを選択する自由は、異なる電気光学伝達関数(Electro-Optical Transfer Functions、EOTF)に対して、同じ方程式を使用することを可能にする。 The freedom to choose α or β allows using the same equations for different Electro-Optical Transfer Functions (EOTF).

Y(i,j)=yijがYチャネル画像内の場所(i,j)でのルマ強度の場合に、ノイズ画像内の場所(i,j)でのノイズ値は、ノイズ注入ルマ値を得るために、ルマチャネルによって乗算され、そして、ルマチャネルに加算される。

Figure 2023507589000008
Y(i,j)=y where ij is the luma intensity at location (i,j) in the Y channel image, the noise value at location (i,j) in the noise image is the noise injected luma value Multiplied by the luma channel and added to the luma channel to obtain
Figure 2023507589000008

図7は、色変換を用いたフィルムグレイン合成の一つの例を示している。確率画像(705)は、確率画像(705)の各ピクセルでの値を閾値と比較することによって生成され、そして、場所が選択される(710)。この例において、場所は、閾値を下回る値を有するピクセルである。一組のフィルムグレインパターン(715)が予め生成されており、そして、確率画像に注入されるように(725)ブロックがランダムに選択され(720)、フィルムグレイン画像を生成している(730)。画像のY(ルマ)チャネル(735)は、変調され(740)、ノイズに対する変調度を有する画像を生成する(745)。フィルムグレイン画像(730)と変調度画像(745)は組み合わされ(750)、ルマ変調フィルムグレイン画像(755)を生成する。ルマ変調フィルムグレイン画像(755)は、Yチャネル画像(735)と組み合わされ(760)、フィルムグレイン付加Yチャネル画像が生成される(765)。フィルムグレイン付加Yチャネルを含むYUV画像は、カラー変換されて(770)、全チャネルについて付加されたフィルムグレインノイズを伴うRGB画像を生成することができる(775)。 FIG. 7 shows an example of film grain compositing using color transformation. A probability image (705) is generated by comparing the value at each pixel of the probability image (705) to a threshold, and a location is selected (710). In this example, locations are pixels with values below a threshold. A set of film grain patterns (715) is pre-generated, and blocks are randomly selected (720) to be injected into the probability image (725) to generate the film grain image (730). . The Y (luma) channel (735) of the image is modulated (740) to produce an image with modulation to noise (745). The film grain image (730) and the modulation depth image (745) are combined (750) to produce the luma modulated film grain image (755). The luma modulated film grain image (755) is combined (760) with the Y channel image (735) to produce a film grain added Y channel image (765). A YUV image containing the film grain added Y channel can be color converted (770) to produce an RGB image with film grain noise added for all channels (775).

デジタルカメラノイズは、ガウス乱数を用いて合成することができる。乱数は、例えば、Box Muller変換またはMarsaglia Polar法を使用して、一様な乱数から生成することができる。 Digital camera noise can be synthesized using Gaussian random numbers. Random numbers can be generated from uniform random numbers using, for example, the Box Muller transform or the Marsaglia Polar method.

一様乱数からガウス乱数を生成するためのMarsaglia Polar法について、u1およびu2を範囲[0,1]から選択された2個の一様乱数であると仮定する。もし、条件0<u1 2+u2 2<1が満たされる場合、

Figure 2023507589000009
は、平均0(zero)および標準偏差1(unit)のガウス乱数である。条件が満たされる前に、プロセスがあまりにも長い間ループすることを許さないように注意する必要がある。 For the Marsaglia Polar method for generating Gaussian random numbers from uniform random numbers, suppose u 1 and u 2 are two uniform random numbers chosen from the range [0,1]. If the condition 0<u 1 2 +u 2 2 < 1 is satisfied,
Figure 2023507589000009
is a Gaussian random number with mean 0 (zero) and standard deviation 1 (unit). Care must be taken not to allow the process to loop too long before the condition is met.

デジタルカメラノイズはガウス乱数を用いてシミュレートできるので、カメラノイズ画像を合成することは、画像のディメンションを有しており、かつ、平均ゼロのガウス乱数を含む2D行列を生成することに帰着する。ノイズ画像は、前述のように、ルマ強度で変調される。ノイズ画像は、次いで、コンテンツのY、U、およびVチャネルに追加され、任意的に、色空間変換(例えば、RGBへ)が後に続く。 Since digital camera noise can be simulated using Gaussian random numbers, synthesizing a camera noise image results in generating a 2D matrix that has the dimensions of the image and contains zero-mean Gaussian random numbers. . The noise image is modulated with luma intensity as described above. A noise image is then added to the Y, U, and V channels of the content, optionally followed by a color space conversion (eg, to RGB).

図8は、に色変換を用いたカメラノイズ合成の一つの例を示している。これは、ノイズ合成のさらなる実施形態であり、そして、両方の実施形態に共通する特徴は、説明から省略されてよいが、依然として、両方に共通であると理解されるべきである。画像のY(ルマ)チャネル(810)は、変調度画像(「MFI」、815)を生成するために変調(805)される。3個のランダムなガウス画像(「RGI」、820)、各チャネルごとに1個、が生成され、そして、変調度画像を用いて(815)、3個のルマ変調ノイズ画像を生成する(830)。これらのノイズ画像(830)は、オリジナル画像内のそれぞれのチャネル(840)に追加される(835)。これらのチャネル(840)は、次いで、RGBといった、異なる色エンコーディングスキーム(850)へ変換され得る。ルマ変調ノイズ画像(830)は、対応するチャネルについてRGI画像(820)を用いたMFI画像(815)のピクセルごとの倍率(825)を表す。 FIG. 8 shows an example of camera noise synthesis using color transformation. This is a further embodiment of noise synthesis, and features common to both embodiments may be omitted from the description, but should still be understood to be common to both. The Y (luma) channel (810) of the image is modulated (805) to produce a Modulation Intensity Image (“MFI”, 815). Three random Gaussian images (“RGI”, 820), one for each channel, are generated, and the modulation depth image is used (815) to generate three luma modulated noise images (830 ). These noise images (830) are added (835) to respective channels (840) in the original image. These channels (840) can then be converted to different color encoding schemes (850), such as RGB. The luma modulated noise image (830) represents the pixel-by-pixel magnification (825) of the MFI image (815) using the RGI image (820) for the corresponding channel.

ノイズ合成をハードウェアで実装する場合、ソフトウェア、ソリューションとは対照的に、最適化のために4個の要因が考慮されるべきである。

1.ソフトウェア実装において、ノイズ画像は別々に合成され、そして、次いで、ルマチャネルに追加される。ハードウェアにおけるメモリ制限のせいで、フィルムグレイン画像のピクセルのみが計算され、そして、コンテンツのルマチャネルに対して直接的に追加される。このアプローチは、フィルムグレイン画像全体を保管するための任意の中間メモリバッファを除去し、そして、かなりの量のオンチップメモリを節約する。

2.ハードウェア実装において、画像はラインバッファを介してアクセスされる。ラインバッファは画像の行(row)を保管することができる。ハードウェアメモリは高価なので、ラインバッファの数は典型的に制限されており、よって、画像全体をこれらの少数のラインバッファにロードすることはできない。メモリに対する読み出しおよび書き込みも、また、時間を要する。このため、ハードウェアソリューションでは、一旦、画像の行をラインバッファへと読み出し、処理全体を実行し、そして、結果をメモリに一度だけ書き出すべきである。画像の同一部分のラインバッファへの複数の読み出しおよび書き込みは、最適ではない。

3.浮動小数点表現はハードウェアに優しいものではないので、ハードウェア実装のためには整数形式の場合、値がより効率的に取り扱われる。ノイズブロックパターン、画像ピクセル、閾値、等は、より単純なハードウェアの実装を可能にするために、整数形式で表現され得る。例えば、確率を0から1まで(実数)に設定する代わりに、0から255まで(整数)に設定することができる。

4.ハードウェア実装におけるブロックサイズは、全てのデコーダハードウェアチップにわたる一貫性のために固定されている(例えば、全てのブロックは8×8である)。記載の残りの部分について、固定ブロックサイズは、B×Bで表される。
When implementing noise synthesis in hardware, as opposed to software solutions, four factors should be considered for optimization.

1. In a software implementation, the noise image is synthesized separately and then added to the luma channel. Due to memory limitations in the hardware, only the film grain image pixels are calculated and added directly to the content luma channel. This approach eliminates any intermediate memory buffers for storing the entire film grain image and saves a significant amount of on-chip memory.

2. In a hardware implementation, images are accessed through line buffers. A line buffer can store rows of an image. Because hardware memory is expensive, the number of line buffers is typically limited, so the entire image cannot be loaded into these few line buffers. Reading and writing to memory also takes time. Thus, a hardware solution should read a line of the image into a line buffer once, perform the entire process, and write the result to memory only once. Multiple reads and writes to the line buffer of the same portion of the image is not optimal.

3. Floating point representation is not hardware friendly, so values are handled more efficiently in integer format for hardware implementation. Noise block patterns, image pixels, thresholds, etc. can be expressed in integer form to allow for simpler hardware implementations. For example, instead of setting the probabilities from 0 to 1 (real numbers), you can set them from 0 to 255 (integers).

4. Block sizes in hardware implementations are fixed for consistency across all decoder hardware chips (eg, all blocks are 8x8). For the rest of the description, the fixed block size is denoted by B×B.

ハードウェア実装のためにシステムを最適化するように、ノイズ合成アルゴリズムは、これらの要因を考慮に入れるように調整され得る。 The noise synthesis algorithm can be adjusted to take these factors into account so as to optimize the system for hardware implementation.

図9は、ノイズ、この場合にはフィルムグレイン、ハードウェアを介して注入されるコンテンツ、を生成するための例示的なブロック図を示している。フィルムグレイン(945)は、Y(ルマ)チャネル(955)にのみ追加されるが、他のノイズ注入技術は、VおよびUチャネルも同様に含み得る。プロセッサクロック(タイムスタンプ/日付/時刻/等)は、フレームレベル乱数シード(905)として使用され得る。この乱数シード(random seed)は、全ての行レベルの疑似乱数発生器(910)を初期化するために使用される。各ピクセルは、フィルムグレイン(920)に関して評価され、そして、次いで、変調(930、935)後のコンテンツのルマチャネル(925)に加えられる(940)。フィルムグレイン付加コンテンツ(956)は、最終的に、表示(970)のためにRGB(965)へ変換される。 FIG. 9 shows an exemplary block diagram for generating noise, in this case film grain, content injected via hardware. Film grain (945) is added only to the Y (luma) channel (955), but other noise injection techniques can include V and U channels as well. The processor clock (timestamp/date/time/etc) can be used as the frame-level random number seed (905). This random seed is used to initialize all row-level pseudo-random number generators (910). Each pixel is evaluated with respect to film grain (920) and then added (940) to the luma channel (925) of the content after modulation (930, 935). The film grain added content (956) is finally converted to RGB (965) for display (970).

図10は、各ピクセルが、フィルムグレインに関して、どのように評価され得るかの例を示している。フィルムグレインブロックパターンデータセットについては、均一なブロックサイズB×Bを仮定する。異なるブロックサイズは、フィルムグレインのサイズを変更するのに役立つが、同じサイズのブロックについて周波数範囲を変更することによって、同じ効果を達成することができる。従って、変数の数を減らすために、フィルムグレインパターンのブロックサイズは、ハードウェアで実装される場合、固定サイズに設定され得る。フィルムグレインブロックパターンは、ソフトウェア実装について説明したのと同じスキームを使用して生成することができる。図10は、行(row)Rにおける列(column)Cでのフィルムグレイン値を生成するためのステップを示している。 FIG. 10 shows an example of how each pixel can be evaluated with respect to film grain. A uniform block size of B×B is assumed for the film grain block pattern data set. Different block sizes serve to change the size of the film grain, but the same effect can be achieved by changing the frequency range for blocks of the same size. Therefore, to reduce the number of variables, the block size of the film grain pattern can be set to a fixed size when implemented in hardware. A film grain block pattern can be generated using the same scheme as described for the software implementation. FIG. 10 shows the steps for generating the film grain value at column C in row R.

ハードウェアソリューションにおいて明示的な確率画像は存在しない。その代わり、画像の各行に対して疑似乱数(PRN)シーケンス発生器(1010-1015)が存在する。行Rにおける各エントリ(ピクセル)に対して、PRNモジュールは、新たな乱数を生成する。PRNは、行インデックスおよびランダムオフセットの関数からシード(1005)することができる。乱数が閾値(1020)未満であり、かつ、ノイズブロック管理テーブル(NBMT)(1090)に十分な空間(room)がある場合、フィルムグレインブロック(1070)が、挿入されるように、フィルムグレインパターン(1030)のセットからランダムに選択され、この位置(1065)から開始する。ブロックは、直ちに画像に追加されるのではなく、むしろ、システムは、NBMT(1090)内にそのブロックのエントリ(1025)を入れる。NBMTからピクセル値(NMBT-to-pixel-value)論理ブロック(1035)は、ルマチャネル画像(1045)内の現在の場所におけるノイズ値を計算する。ハードウェア実装のために、閾値Thは正規化されず、それによって、計算コストを低減している。非正規化閾値は、シンボルにおける下付き文字「norm」なしで表されており、そして、方程式Th=round(Thnorm×2Bt)によって正規化閾値に関連付けられている。 There is no explicit probability image in hardware solutions. Instead, there is a pseudo-random number (PRN) sequence generator (1010-1015) for each row of the image. For each entry (pixel) in row R, the PRN module generates a new random number. The PRN can be seeded (1005) from a function of row index and random offset. film grain pattern such that if the random number is less than the threshold (1020) and there is enough room in the noise block management table (NBMT) (1090), the film grain block (1070) is inserted Randomly selected from the set of (1030), starting from this position (1065). The block is not added to the image immediately, rather the system puts an entry (1025) for that block in the NBMT (1090). The NBMT-to-pixel-value logic block (1035) calculates the noise value at the current location in the luma channel image (1045). Due to the hardware implementation, the threshold Th is not normalized, thereby reducing computational cost. The non-normalized threshold is denoted without the subscript "norm" in the symbol and is related to the normalized threshold by the equation Th=round(Th norm ×2 Bt ).

現在の場所でノイズ値を計算する一方で、以前の行から疑似乱数発生器を使用する理由は、効率のうち1つである。もし、B(ノイズブロックサイズ)が著しく大きい場合、各パスにおけるB行の読み出し/書き込みは、メモリ内のBラインバッファを必要とすることによって、メモリ入力/出力(I/O)およびハードウェアコストを著しく増加させる。 The reason for using the pseudo-random number generator from the previous row while calculating the noise value at the current location is one of efficiency. If B (noise block size) is significantly large, reading/writing B rows in each pass can reduce memory input/output (I/O) and hardware costs by requiring B-line buffers in memory. increase significantly.

反対に、本ソリューションは、ブロックサイズに関係なく、1ラインバッファだけを必要とする。所与の位置について、以前の行からのオーバーラップブロックが存在し得る。これらのブロックは、図10において画像(1060)内の破線の正方形(1070)で示されている。各PRN発生器に対する乱数シードは決定論的であるので、より以前の行が通過した乱数の順序を再現することができる。これらのシーケンスは、より以前の行で使用されたブロックおよびブロックパターンの正確な位置を提供する。本情報は、1つのラインバッファのみを有する任意の位置のための正しいフィルムグレイン値の計算を可能にし、それによって、I/O待ち時間およびハードウェアコストを低減している。ノイズブロック管理テーブル(990)は、各行について維持され、オーバーラップブロックを追跡する。 In contrast, our solution only requires a one-line buffer, regardless of block size. For a given position there may be overlapping blocks from previous rows. These blocks are indicated in FIG. 10 by the dashed squares (1070) in the image (1060). Since the random number seed for each PRN generator is deterministic, the order of random numbers passed by earlier rows can be reproduced. These sequences provide the precise location of blocks and block patterns used in earlier rows. This information allows calculation of the correct film grain value for any position with only one line buffer, thereby reducing I/O latency and hardware costs. A noise block management table (990) is maintained for each row to track overlapping blocks.

オリジナル、および、グレイン注入されたルマチャネル行Rが、図10では別々に示されているが、オリジナルの行Rは、フィルムグレイン注入行Rを得るために適所でアップデートされ得る。 Although the original and grain-implanted luma channel rows R are shown separately in FIG. 10, the original rows R can be updated in place to obtain the film grain injection rows R.

フィルムグレインブロックパターンは、ソフトウェアベースのソリューションについて記載されたものと同様なプロセスを使用して生成される。これらのブロックパターンを計算するメカニズムは、複雑な数学的演算の使用を必要とするので、このタスクは、ファームウェアに引き渡すことができる。合成されたブロックは、ハードウェアアクセスを容易にするために、後でオンチップSRAMに保管することができる。 A film grain block pattern is generated using a process similar to that described for the software-based solution. Since the mechanism of computing these block patterns requires the use of complex mathematical operations, this task can be handed over to the firmware. The synthesized blocks can later be stored in on-chip SRAM for easy hardware access.

ハードウェア実装の別の大きな課題は、乱数発生器である。より高速な実装のために、線形フィードバックシフトレジスタベースの擬似乱数発生器が使用され得る。これらの乱数内のいくつかのビットが、ブロックパターンのデータセットからフィルムグレインブロックを選択するために使用される。 Another major challenge for hardware implementation is the random number generator. For faster implementation, a linear feedback shift register based pseudo-random number generator can be used. Some bits in these random numbers are used to select film grain blocks from the block pattern data set.

線形フィードバックシフトレジスタは、ハードウェアチップ内で乱数のシーケンスを生成するために、一般的に使用されている。図11に示されている例示的な16ビットレジスタを考えてみる。次の乱数は、レジスタのコンテンツを1だけ右にシフトし、そして、最上位ビット(MSB)の場所(1110)に新しいビットを挿入することによって得られる。新しいビットは、レジスタにおける所定の予め定義された場所(1120)におけるビットの排他的論理和(XOR)である。図11に示される例において、インデックスの場所3、12、14、および15におけるビットがXORされる。XORゲート(1115)の出力は、MSBの場所(1110)へと供給される。 Linear feedback shift registers are commonly used to generate sequences of random numbers within hardware chips. Consider the exemplary 16-bit register shown in FIG. The next random number is obtained by right shifting the contents of the register by 1 and inserting the new bit at the most significant bit (MSB) location (1110). The new bit is the exclusive OR (XOR) of the bits at a given predefined location (1120) in the register. In the example shown in FIG. 11, the bits at index locations 3, 12, 14, and 15 are XORed. The output of the XOR gate (1115) is fed to the MSB location (1110).

タップポイントの場所が正しく選択されている場合、レジスタは、同じ数字に戻る前に、全ての異なる16ビットの数字を一度通過する。別の言葉で言えば、シーケンスは、所定の期間後に繰り返される。次の乱数は、レジスタの現在の状態の関数であることが分かり得る。従って、レジスタが全てゼロに初期化されないように注意する必要がある。全てゼロの場合、プロセスは、その状態でロックされる。 If the tap point location is chosen correctly, the register goes through every different 16-bit number once before returning to the same number. In other words, the sequence repeats after a predetermined period of time. It can be seen that the next random number is a function of the current state of the register. Therefore, care must be taken to ensure that registers are not initialized to all zeros. If all zeros, the process is locked in that state.

ハードウェア実装は、H×Wディメンションの確率画像を明示的に生成しない。回避策として、各行の乱数は、線形フィードバックシフトレジスタを使用して生成され得る。各行に割り当てられたシフトレジスタは、異なるランダムシードを用いて初期化される。このシードは、行インデックスRとランダムオフセットの関数である。
SeedR=(Const+R×Offset) mod 2D
ここで、Dは、レジスタの長さである。ランダムオフセットは、現在のタイムスタンプから導出され、そして、定数は、16ビットシフトレジスタについて214のような、任意の大きな数に設定される。オフセットは、ランダムに選択されるが、現在フレームの全ての行に対して固定されている。各行について異なる擬似乱数発生器が存在するが、任意の所与の時点で、ハードウェアにはB個以上のシフトレジスタは存在しない。ここで、B×Bは、ブロックパターンデータセットにおけるブロックのディメンションを示している。
The hardware implementation does not explicitly generate probability images of H×W dimensions. As a workaround, random numbers for each row can be generated using a linear feedback shift register. The shift registers assigned to each row are initialized with different random seeds. This seed is a function of row index R and random offset.
Seed R = (Const + R x Offset) mod 2D
where D is the length of the register. A random offset is derived from the current timestamp, and a constant is set to an arbitrarily large number, such as 2 14 for a 16-bit shift register. The offset is randomly chosen but fixed for all rows in the current frame. There is a different pseudo-random number generator for each row, but there are no more than B shift registers in hardware at any given time. Here, B×B denotes the dimension of blocks in the block pattern data set.

定数、オフセット、および行インデックスが既知なので、シードは決定論的である。このシードを決定論的にすることの背景にあるアイデアは、現在行Rを取り扱うときに、より以前の行が通過した乱数のシーケンスを再現することである。これにより、より以前の行からオーバーラップフィルムグレインブロックの場所を決定し、そして、その知識を使用して現在の場所についてフィルムグレイン値を計算することができる。 The seed is deterministic because the constant, offset, and row index are known. The idea behind making this seed deterministic is to reproduce the sequence of random numbers that earlier rows passed through when dealing with the current row R. This allows us to determine the location of overlapping film grain blocks from earlier rows and use that knowledge to calculate the film grain value for the current location.

ランダムシーケンスジェネレータとともに、以前の行のブロックの場所に関する情報を保管するために、テーブルを使用することができる。このテーブルは、ノイズブロック管理テーブル(Noise Block Management Table、)と呼ばれる。 Along with the random sequence generator, a table can be used to store information about the location of blocks in previous rows. This table is called a Noise Block Management Table.

NBMTは、特定の行についてルマチャネルの中へ注入されたフィルムグレインブロックの情報を保存する。全てのPRNシーケンスジェネレータ(図10を参照のこと)は、対応するNBMTを有している。テーブル中のエントリの数は、テーブル1に示されるように、設定可能なパラメータであり、そして、各エントリは、以下の3個の列を保持している。

Figure 2023507589000010
テーブル1:ノイズブロック管理テーブル NBMT stores the information of the film grain blocks injected into the luma channel for a particular row. Every PRN sequence generator (see Figure 10) has a corresponding NBMT. The number of entries in the table is a configurable parameter, as shown in Table 1, and each entry holds three columns:
Figure 2023507589000010
Table 1: Noise block management table

各場所での最終値を計算するために、システムは、その場所とオーバーラップする全てのブロックを考慮する必要がある。ノイズブロック管理テーブルは、画像内のブロックのブロックID bi、原点X座標xi、および原点Y座標yiを保管することにより、これらのオーバーラップブロックを追跡する。速さ及び計算効率のために、テーブル内のエントリの最大数は、ceil(B/4)に制限されている。 To compute the final value at each location, the system needs to consider all blocks that overlap with that location. The noise block management table keeps track of these overlapping blocks by storing the block ID b i , the origin x-coordinate x i , and the origin y-coordinate y i of the blocks in the image. For speed and computational efficiency, the maximum number of entries in the table is limited to ceil(B/4).

例えば、フィルムグレインブロックパターンのサイズがB×Bであり、かつ、システムがノイズ注入ルマチャネル画像内の場所(C,R)でフィルムグレイン注入値を計算していると仮定すると、上へB-1行、または、左へB-1列において発している(originating)ブロックは、未だに、現在の場所に影響を及ぼし得る。
この理由で、現在の行Rを処理している間に、システムは、その上のB-1行を考慮する。
For example, suppose the size of the film grain block pattern is B×B, and the system is calculating the film grain injection value at location (C,R) in the noise injected luma channel image, then up B−1 A row or block originating in column B-1 to the left can still affect the current location.
For this reason, while processing the current row R, the system considers B-1 rows above it.

図10に示されるように、システムは、オーバーラップするブロックを見つけるために、現在行Rの上のB-1行に対して擬似乱数発生器を開始する。現在の行は、また、PRN Row Rで示されている独自の乱数発生器を有することもできる。乱数シードは決定論的であるため、システムは、以前の行が通過した順序を常に再現することができる。行特定(row specific)の乱数発生器とは別に、これらのB行それぞれは、また、独自のNBMTを有することもできる。 As shown in Figure 10, the system starts a pseudo-random number generator for B-1 rows above the current row R to find overlapping blocks. The current row can also have its own random number generator, denoted PRN Row R. Since the random number seed is deterministic, the system can always reproduce the order through which the previous rows passed. Apart from a row specific random number generator, each of these B rows can also have its own NBMT.

Cを、処理されている行における現在の列を表すものとする。ルマチャネル画像の行Rは、ラインバッファへと読み出される。列Cは、1のステップで、C=0からC=W-1までインクリメントされる。Cの値それぞれに対して、システムは、以下のステップを実行することができる。

1.B個の乱数発生器それぞれは、乱数を生成する。数値が閾値Th以上の場合は、何もしない。

2.乱数が閾値より小さい場合は、
a.現在の場所に影響を与えないNBMT内の任意のエントリを削除する。例えば、ブロックサイズがB×Bで、xi<C-B+1またはyi<C-B+1のものは削除される。
b.その行についてNBMTが満杯でない場合、フィルムグレインパターンデータセットからランダムブロックが選択される。その行の擬似乱数発生器からのビットは、ブロックID biを選択するために使用される。図12は、擬似乱数発生器からブロックIDビットを選択する方法の一つの例を表している。16個の異なるブロックパターンのデータセットについて、ブロックID [15:12]=7は、データセット内の7番目のパターンである、ブロックID 7を参照する。順序付けはインデックス0で開始する。
c.そのブロックに対するエントリがNBMTに追加され、xi=Cであり、かつ、Y座標は行インデックスに等しい。ブロックIDは、以前のステップから導出される。

3.全てのR行のNBMTから場所(C,R)でのフィルムグレイン値を計算する。このステップは、ピクセル値に対するNBMTのロジック(NBMT to pixel value logic)と呼ばれ、図13に例示されている。
a.全てのNBMTにおける各エントリについて、ブロックが現在の場所(1310)とオーバーラップしているか確認する。ブロックは、xi≦C≦B+xi-1かつyi≦R≦B+yi-1である場合にオーバーラップする。
b.PRN発生器から抽出されたブロックIDを使用して、ブロックパターンデータセット(1320)から対応するブロックを選択する。現在の場所とオーバーラップするブロックにおける値をピックする。
c.複数のそうしたオーバーラップしているブロックが存在し得るので、値は、一緒に加算される(1330)。
d.この値は、ノイズ値に対するルマ変調度(1340)を計算する、次のステージに渡される。ルマ変調ノイズ値は、オリジナルのルマ(1355)に対して加算され(1350)、列(1360)でラインバッファに書き込まれる。

4.各行は、フィルムグレイン注入ルマチャネル画像を得るために、一度に1つずつ、このプロセスを通過する。その上にB-1行を有していない行については、利用可能な行だけが考慮される。
Let C denote the current column in the row being processed. Row R of the luma channel image is read into the line buffer. Column C is incremented in steps of 1 from C=0 to C=W-1. For each value of C, the system can perform the following steps.

1. Each of the B random number generators generates a random number. If the numerical value is greater than or equal to the threshold Th, nothing is done.

2. If the random number is less than the threshold,
a. Remove any entries in the NBMT that do not affect the current location. For example, if the block size is B×B and x i <C-B+1 or y i <C-B+1 are deleted.
b. If the NBMT is not full for that row, select a random block from the film grain pattern data set. Bits from the row's pseudo-random number generator are used to select the block ID b i . FIG. 12 represents one example of how the block ID bits are selected from the pseudo-random number generator. For a dataset of 16 different block patterns, block ID [15:12]=7 refers to block ID 7, which is the 7th pattern in the dataset. Ordering starts at index 0.
c. An entry for the block is added to the NBMT with x i =C and the Y coordinate equals the row index. Block ID is derived from the previous step.

3. Compute the film grain value at location (C,R) from the NBMTs of all R rows. This step is called NBMT to pixel value logic and is illustrated in FIG.
a. For each entry in all NBMTs, check if the block overlaps the current location (1310). Blocks overlap if x i ≤C≤B+x i -1 and y i ≤R≤B+y i -1.
b. Using the block ID extracted from the PRN generator, select the corresponding block from the block pattern data set (1320). Pick the value in the block that overlaps the current location.
c. Since there may be multiple such overlapping blocks, the values are added together (1330).
d. This value is passed to the next stage which computes the luma modulation index (1340) for the noise value. The luma modulated noise value is added (1350) to the original luma (1355) and written to the line buffer in column (1360).

4. Each row goes through this process one at a time to obtain a film grain injected luma channel image. For rows that do not have a B-1 row on them, only available rows are considered.

ハードウェア実装されたルマ強度ベースのノイズ変調技術のために、ソフトウェア実装の非線形曲線は、非線形演算でメモリサイクルを浪費することを避けるために、区分的(piecewise)線形セグメントによって置き換えるべきである。これらのラインセグメントのパラメータは、メタデータにおいてデコーダに対して信号化され得る。システムは、次いで、区分的線形曲線から各ルマ強度値に対する変調度を計算することができる。 For hardware-implemented luma intensity-based noise modulation techniques, software-implemented nonlinear curves should be replaced by piecewise linear segments to avoid wasting memory cycles in nonlinear operations. These line segment parameters can be signaled to the decoder in metadata. The system can then calculate the modulation index for each luma intensity value from the piecewise linear curve.

さらに、ソフトウェア実装のための曲線における値は分数である。ハードウェアでは、分数は扱いにくい(cumbersome)。従って、曲線

Figure 2023507589000011
における値は、区分的線形近似の前に、Bc=8ビット整数にスケール化され得る。すなわち、0≦l≦2Bc-1についてfhw(l)=round(f(l)×2Bc)である。曲線fhw(・)は、次いで、T+1個のピボット点を使用して、T個のセグメントへパーティション分割される。ピボット点の場所をベクトルΩで表されるようにする。つまり、0≦k≦Tについて0≦Ω(k)≦2Bc-1である。 Furthermore, the values in the curve for software implementation are fractional. Fractions are cumbersome in hardware. Therefore the curve
Figure 2023507589000011
The values in can be scaled to B c =8-bit integers before piecewise linear approximation. That is, f hw (l)=round(f(l)×2 Bc ) for 0≦l≦2 Bc −1 . The curve f hw (·) is then partitioned into T segments using T+1 pivot points. Let the location of the pivot point be represented by the vector Ω. That is, 0≦Ω(k)≦2 Bc −1 for 0≦k≦T.

曲線上の2つのピボットごと、つまり、x1=Ω(k)およびx2=Ω(k+1)について、点y1=fhw(x1)と点y2=fhw(x21)を接続するk番目のラインセグメントの式を計算する。ラインの式は3個のパラメータを有する。傾き、X切片(x1)、Y切片(y1)である。

Figure 2023507589000012
式5
Figure 2023507589000013
式6 For every two pivots on the curve, i.e. x1=Ω(k) and x2= Ω (k+1), the kth Compute the line segment formula. The line equation has three parameters. Slope, X-intercept (x1), Y-intercept (y1).
Figure 2023507589000012
Equation 5
Figure 2023507589000013
Formula 6

各セグメントの傾き、ピボット、およびY切片パラメータは、デコーダに対して送信される。各ルマ強度に対する変調度を計算するために、デコーダにおいて曲線が再構成される。説明のために、図14は、オリジナルの(ソフトウェアベースの)区分的線形曲線、および、α=0.25、β=2に対する区分的線形曲線をプロットしている。Y(C,R)=yCRがYチャネル内の場所(C,R)でのルマ強度である場合、ノイズ値、つまりnCRは、ノイズ注入ルマ値を得るために、f(yCR)で乗算され、そして、ルマチャネルに加算される。

Figure 2023507589000014
変調度がBcビットのコードワード範囲内なので、フィルムグレイン値と変調度の積は、正しいルマ変調フィルムグレイン値を得るために、Bcビットだけ右シフトされ得る。 The slope, pivot, and Y-intercept parameters of each segment are sent to the decoder. The curve is reconstructed at the decoder to compute the modulation index for each luma intensity. For illustration, FIG. 14 plots the original (software-based) piecewise linear curve and the piecewise linear curve for α=0.25, β=2. If Y(C,R)=y CR is the luma intensity at location (C,R) in the Y channel, then the noise value, n CR , is f(y CR ) to obtain the noise injected luma value and added to the luma channel.
Figure 2023507589000014
Since the modulation index is within the codeword range of B c bits, the product of the film grain value and the modulation index can be right-shifted by B c bits to obtain the correct luma modulated film grain value.

フィルムグレインノイズと同様に、デジタルカメラノイズのハードウェア実装も、また、いくつかの制限を有している。

1.ハードウェアにおけるガウス乱数の合成は、関連するログ関数(log function)のために高価である。回避策として、これらの数字は、ファームウェアで生成し、かつ、デジタルカメラのノイズブロックとして保管することができる。

2.メモリの制限のせいで、デジタルカメラのノイズ画像をオンチップメモリに保管することは高価である。ノイズピクセルは、変調の後で、直接的に、計算され、そして、Y、U、およびVチャネルに追加され得る。

3.Yチャネル、Uチャネル、Vチャネルのわずか数行が、処理のためにラインバッファとしてメモリに読み出される。画像サイズが巨大であり得るので、画像全体の処理はI/Oおよびメモリ集約的である。ラインバッファは、待ち時間(latency)およびメモリの必要性を緩和するのに役立つ。しかし、ソフトウェアソリューションと同様の結果を達成するために、アーキテクチャは大幅に変更され得る。

4.ハードウェア実装について、浮動小数点演算はより複雑であり、全ての値は、固定小数点形式に変換される。浮動小数点演算から固定小数点演算に移行する場合は、アーキテクチャに対するいくつかの変更が必要とされる。

5.デジタルカメラのノイズパターンのブロックサイズは1×1(B=1)に固定することができる。これは、本質的に、システムが、全ての場所で1つだけのガウス乱数を追加していることを意味する。これは、ソフトウェアソリューションに沿ったものである。
Similar to film grain noise, the hardware implementation of digital camera noise also has some limitations.

1. Gaussian random number synthesis in hardware is expensive due to the log function involved. As a workaround, these numbers can be generated in firmware and stored as the digital camera's noise block.

2. Due to memory limitations, storing digital camera noise images in on-chip memory is expensive. Noise pixels can be calculated and added to the Y, U, and V channels directly after modulation.

3. Only a few lines of the Y, U and V channels are read into memory as line buffers for processing. Processing the entire image is I/O and memory intensive as the image size can be huge. Line buffers help alleviate latency and memory requirements. However, the architecture can vary significantly to achieve similar results as software solutions.

4. For hardware implementation, floating point arithmetic is more complex and all values are converted to fixed point format. When moving from floating-point to fixed-point arithmetic, some changes to the architecture are required.

5.The block size of the noise pattern of the digital camera can be fixed to 1×1 (B=1). This essentially means that the system is adding only one Gaussian random number everywhere. This is in line with software solutions.

ハードウェアにおけるデジタルカメラノイズ合成の一つの実施形態は、デジタルカメラノイズパターンのブロックサイズを1×1に制限し、そして、行Rに対する確率閾値が2Dに設定され、一方で、他の行は、ゼロの閾値を有している。確率閾値を2Dに設定することは、ブロックが、Yチャネルにおける全てのピクセルの場所に追加されることを確保する。ブロックサイズが1×1に制限されているので、ブロック間のオーバーラップは存在しない。従って、行RのNMBTには1つのエントリだけが存在する。 One embodiment of digital camera noise synthesis in hardware limits the block size of the digital camera noise pattern to 1×1, and the probability threshold for row R is set to 2D , while the other rows are , has a threshold of zero. Setting the probability threshold to 2D ensures that blocks are added at every pixel location in the Y channel. Since the block size is limited to 1x1, there is no overlap between blocks. Therefore, there is only one entry in the NMBT of row R.

各行について疑似乱数発生器が存在している。行Rおよび列Cの処理中に、疑似乱数が2Dより小さい場合、システムは、デジタルカメラブロックをそのピクセルに追加する。これらの乱数は常に2Dより小さいので、システムは、各場所においてガウス乱数を追加する。ブロックは、擬似乱数発生器の先頭ビットを使用してランダムに選択される。そのブロックの情報は、その行のNBMT内に挿入することができる。ピクセル値に対するNBMTのロジックは、デジタルカメラのノイズ値を計算する。この値は、変調度を用いて変調され、そして、ラインバッファの列Cに追加される。サイズ1×1については、隣接するブロックからのオーバーラップがないので、B=1であり、かつ、ピクセル値に対するNBMTのロジックは単純である。図15は、図10の特殊な事例として説明可能な、デジタルカメラノイズ合成のハードウェア実装に係る一つの例示的なブロック図を示している。 There is a pseudo-random number generator for each row. While processing row R and column C, if the pseudo-random number is less than 2D , the system adds a digital camera block to that pixel. Since these random numbers are always less than 2D , the system adds Gaussian random numbers at each location. Blocks are randomly selected using the leading bits of a pseudo-random number generator. The information for that block can be inserted into the NBMT for that row. NBMT's logic for pixel values computes the digital camera's noise value. This value is modulated using the modulation index and added to column C of the line buffer. For size 1×1, there is no overlap from adjacent blocks, so B=1 and the logic of NBMT for pixel values is simple. FIG. 15 shows one exemplary block diagram of a hardware implementation of digital camera noise synthesis, which can be described as a special case of FIG.

デジタルカメラノイズは、ルマチャネルにのみ追加されるフィルムグレインとは対照的に、クロマチャネルにも追加される。ルマチャネルおよびクロマチャネルへのカメラノイズ注入のアーキテクチャは本質的に同じである。クロマチャネルのための設計は、図16の例に示されるように、図15のハードウェアアーキテクチャから、余分な疑似乱数発生器、閾値ブロック、NBMTおよびNBMTといった余分な構成要素をピクセル値ロジックから除去することによって、単純化することができる。 Digital camera noise is also added to the chroma channel, as opposed to film grain, which is only added to the luma channel. The architecture of camera noise injection into luma and chroma channels is essentially the same. The design for the chroma channel removes the superfluous pseudo-random number generator, threshold block, NBMT and NBMT from the pixel value logic from the hardware architecture of Fig. 15, as shown in the example of Fig. 16. can be simplified by doing

例えば、デジタルカメラノイズについて1024個のブロックパターンが存在すると仮定する。すると、ブロックインデックスbiを計算するために、PRN Row Rの最初の10ビットを使用することができる。1×1ブロックがデータセットから取り出され、ルマ強度で変調され、そして、現在の場所においてクロマチャネルラインバッファに追加される。 For example, assume there are 1024 block patterns for digital camera noise. Then the first 10 bits of PRN Row R can be used to calculate the block index b i . A 1×1 block is taken from the dataset, modulated with luma intensity, and added to the chroma channel line buffer at the current location.

YUV 444シーケンスについて、変調度は、ルマチャネル内の共配置された強度から計算することができる。ノイズ値は変調後にクロマチャネルに加算される。別の言葉で言えば、ノイズ値は、最初にルマ強度で変調され、そして、次にクロマチャネルに加算される。 For YUV 444 sequences, the modulation index can be calculated from the co-located intensities in the luma channel. A noise value is added to the chroma channel after modulation. In other words, the noise value is first modulated with the luma intensity and then added to the chroma channel.

YUV 422シーケンスについては、Yチャネルが幅で半分にサブサンプリングすることができ、そして、次いで、変調度がYチャネル内の共配置されたピクセルから計算される。ノイズ値は、ダウンサンプリングされたルマ強度で変調され、そして、次いで、クロマチャネルに加算される。従来のフィルタリングアプローチを使用するダウンサンプリングのアプローチは、ハードウェアについて高価であり得る。しかし、変調度は、粗く(crude)、かつ、概ねのダウンサンプリングを用いて機能することができる。ハードウェアの複雑さを低減するために、ルマチャネルは、ルマチャネルの行における隣接要素の単純な平均化によってサブサンプリングされる。本プロセスは、以下の擬似コードにおいて詳述されている。シンボルYhhは、同じ行における隣接要素の平均をとることによって、ルマチャネルYの水平方向にダウンサンプリングされたバージョンを示す。

Figure 2023507589000015
For YUV 422 sequences, the Y channel can be subsampled by half in width, and then the modulation index is calculated from the co-located pixels within the Y channel. The noise value is modulated with the downsampled luma intensity and then added to the chroma channel. Downsampling approaches using conventional filtering approaches can be expensive in terms of hardware. However, the modulation index can work with both crude and approximate downsampling. To reduce hardware complexity, the luma channel is subsampled by simple averaging of adjacent elements in the row of the luma channel. This process is detailed in the pseudocode below. The symbol Y hh denotes a horizontally downsampled version of the luma channel Y by averaging adjacent elements in the same row.
Figure 2023507589000015

図17は、ハードウェア実装のための統一されたノイズ注入アーキテクチャの例を示しており、複数のタイプのノイズ(この例では、フィルムグレインおよびカメラ)の合成を可能にする。擬似乱数発生器(1710)は、乱数列を生成することができる。これらの乱数が閾値条件を満たす場合、どのタイプのノイズが必要だと決定されるかに応じて(1715)、フィルムグレイン(1721)またはデジタルカメラノイズ(1722)ブロックデータセットを使用して、集合ノイズ値が計算される(1720)。この値は、ルマ強度で変調され(1730)、そして、オリジナルのルマまたはクロマチャネルに加算される。1行が一度に処理されるので(1740)、ラインバッファは、YUVコンテンツの行を収容するのに十分な大きさであることだけが必要である。ノイズ注入YUVコンテンツは、表示のためRGBに変換される(1750)。 FIG. 17 shows an example of a unified noise injection architecture for hardware implementation, allowing the synthesis of multiple types of noise (film grain and camera in this example). A pseudo-random number generator (1710) can generate a sequence of random numbers. If these random numbers satisfy a threshold condition, then aggregate using the film grain (1721) or digital camera noise (1722) block data sets, depending on which type of noise is determined (1715) needed. A noise value is calculated (1720). This value is modulated 1730 with luma intensity and added to the original luma or chroma channel. Since 1740 one line is processed at a time, the line buffer need only be large enough to accommodate a line of YUV content. The noise injected YUV content is converted 1750 to RGB for display.

ノイズ注入モデルがコンテンツの中へノイズを注入するために使用される、2個の異なるシナリオが存在する。第1のシナリオにおいて、コンテンツプロバイダは、ビデオに追加されるノイズの外観(look)を制御することができる。パラメータはエンコーダ側で設定され、そして、メタデータの一部としてデコーダに送信される。第2のシナリオについて、デコーダは、鑑賞条件または表示仕様に基づいてノイズを合成することができる。コンテンツプロバイダの設定は、ローカルな調整よりも高い優先度を有し得る。また、その逆も同様である。 There are two different scenarios in which the noise injection model is used to inject noise into content. In the first scenario, the content provider can control the look of the noise added to the video. Parameters are set at the encoder side and sent to the decoder as part of the metadata. For the second scenario, the decoder can synthesize noise based on viewing conditions or display specifications. Content provider settings may have higher priority than local adjustments. And vice versa.

ノイズ合成パラメータは、ワークフローの異なるステージ、すなわち、エンコーダ側コンテンツプロバイダの優先設定またはデコーダ側のローカル適応設定において設定され得る。デコーダパラメータは、ファームウェアまたはハードウェアの中へ構成され得る。 The noise synthesis parameters can be set at different stages of the workflow: the content provider's preference settings on the encoder side or the local adaptive settings on the decoder side. Decoder parameters may be configured into firmware or hardware.

芸術的な理由で、コンテンツプロバイダは、映像効果のためにビデオシーケンスにフィルムグレインまたはカメラノイズを追加することを望み得る。ノイズは、エンコーディングの間に圧縮され、そして、その結果、デコーダ側では映画的な効果が減少される。さらに、ノイズの多いシーケンスを圧縮するために、より高いビットレートが必要なので、デコーダ側でノイズを生成するためのパラメータと共にノイズのないシーケンスを送信することは、ビットレート要件を低下させ、そして、依然として映画的な効果を保持している。その目的のため、エンコーダ側でパラメータを設定し、そして、メタデータを介してデコーダに送信するオプションが存在する。パラメータが、テーブル2に示されている。

Figure 2023507589000016
テーブル2 For artistic reasons, a content provider may wish to add film grain or camera noise to a video sequence for visual effects. The noise is compressed during encoding and as a result the cinematic effect is reduced at the decoder side. Furthermore, since a higher bitrate is required to compress a noisy sequence, transmitting the noiseless sequence along with the parameters for generating the noise at the decoder side reduces the bitrate requirement, and It still retains its cinematic effect. For that purpose there is an option to set the parameters on the encoder side and send them to the decoder via metadata. The parameters are shown in Table 2.
Figure 2023507589000016
table 2

パラメータは、デコーダ側でノイズ発生モジュールを初期化するために、メタデータから読み出すことができる。同様に、パラメータは、鑑賞環境または表示仕様に基づいてデコーダ側で調整され得る。いずれにせよ、デコーダは、一連のパラメータが与えられ、ノイズを合成する必要がある。デコーダは、ファームウェアまたはプロセッサ、およびハードウェアシステムから構成されている。ファームウェアは、速度を犠牲にして複雑な数学的関数を計算することができるが、ハードウェアは、より速い速度で低レベルの論理演算を実行することができる。 Parameters can be read from the metadata to initialize the noise generation module on the decoder side. Similarly, parameters may be adjusted at the decoder side based on viewing environment or display specifications. Either way, the decoder is given a set of parameters and needs to synthesize the noise. A decoder consists of a firmware or processor and a hardware system. Firmware can compute complex mathematical functions at the expense of speed, while hardware can perform low-level logic operations at a faster speed.

速度要件および計算の複雑性に基づいて、ノイズ画像生成のタスクは、ファームウェアおよびハードウェアへと分割される必要がある。フィルムグレインまたはカメラノイズブロックの合成は、ハードウェアにとって計算集中的(computationally intensive)であるため、ファームウェアに対して引き渡され得る。構築するブロックパターンはほんの数個しか存在しないので、ファームウェアは、多くの処理オーバーヘッドなしで、システムのブートアップの最中に容易にそれらを構築することができる。 Based on speed requirements and computational complexity, the task of noise image generation needs to be split between firmware and hardware. Synthesizing film grain or camera noise blocks is computationally intensive for hardware and can be handed off to firmware. Since there are only a few block patterns to build, the firmware can easily build them during system bootup without much processing overhead.

例示的な実施形態
EE1.デジタル画像に対する合成ノイズ画像を生成するためのコンピュータベースの方法であって、前記方法は、複数のノイズブロックパターンを提供するステップと、ノイズ画像を初期化するステップと、確率画像を生成するステップであり、該確率画像は、各ピクセルにおいてランダムに生成された確率値を含む、ステップと、前記確率画像における各確率値を閾値基準と比較するステップと、を含む。前記確率値が前記閾値基準を満たす場合、前記複数のノイズブロックパターンからノイズブロックパターンを選択し、該ノイズブロックパターンはアンカーポイントを有しており、かつ、前記確率値が前記閾値基準を満たす場合、前記アンカーポイントが、前記閾値基準を満たす前記確率画像におけるピクセルに対応するように、前記ノイズブロックパターンを前記ノイズ画像内に配置することによって、合成されたノイズ画像を生成する。

EE2.ノイズグレインブロックパターンが、ランダムに選択される、EE1の方法。

EE3.前記確率画像の前記確率値は、一様に分布した確率値である、EE1またはEE2の方法。

EE4.前記ノイズブロックパターンは、フィルムグレインブロックパターンを含む、EE1-EE3いずれかの方法。

EE5.前記方法は、さらに、前記ノイズブロックパターンがオーバーラップする前記ノイズ画像の領域における値を集約するステップを含む、EE1-EE4の方法。

EE6.前記方法は、さらに、前記ノイズ画像を生成する前に、前記ノイズブロックパターンを生成するステップを含み、前記ノイズブロックパターンは、逆DCT技術を通じて生成される、EE1-EE5いずれかの方法。

EE7.前記生成するステップは、さらに、低周波DCT係数を除去することを含む、EE6の方法。

EE8.前記生成するステップは、さらに、高周波DCT係数を除去することを含む、EE6またはEE7の方法。

EE9.前記確率画像および前記ノイズ画像は、ビデオフレームにマッチするサイズにされる、EE1-EE8いずれかの方法。

EE10.前記方法は、さらに、前記ノイズ画像をコンテンツ画像のチャネルに加えることによって、前記コンテンツ画像を編集するステップを含む、EE1-EE9いずれかの方法。

EE11.前記方法は、さらに、前記ノイズ画像を前記コンテンツ画像に加える前に、前記ノイズ画像における値を変調度で乗算するステップを含む、EE10の方法。

EE12.前記値は、前記ノイズ画像のルマ強度値である、EE11の方法。

EE13.前記方法は、さらに、編集された前記コンテンツ画像に基づいて、YUVコンテンツ画像を生成するステップを含む、EE10-EE12いずれかの方法。

EE14.前記方法は、さらに、前記YUVコンテンツ画像に基づいて、RGBコンテンツ画像を生成するステップを含む、EE13の方法。

EE15.復号されたクリーンなシーケンスを生成するために、エンコーディングされた画像をデコーディングするためのデコーダと、合成ノイズ画像を生成するために、EE1-EE14いずれかの方法を実行するノイズ合成モジュールと、を含む、デバイスであって、前記デコーダは、表示のためのレンダリングされた画像を生成するために、前記合成ノイズ画像を前記復号されたクリーンシーケンスと組み合わせるように構成されている、デバイス。

EE16.前記デバイスは、さらに、前記復号されたクリーンシーケンスと組み合わせる前に、前記合成ノイズ画像を変調するための変調曲線モジュールを含む、EE15のデバイス。

EE17.データを含むコンピュータプログラムであって、前記データは、プロセッサ上で実行されると、EE1-EE14いずれかの方法を実行するようにエンコーディングされている、コンピュータプログラム。

EE18.画像において合成ノイズを生成するためのデバイスであって、前記デバイスは、前記画像からの行を含むラインバッファと、ノイズブロックパターンを含むファームウェアと、前記行におけるピクセルに対してランダム値を提供するための擬似乱数発生器と、前記ランダム値を閾値基準と比較するためのロジックと、ノイズブロック管理テーブルを含むデータストアと、前記行におけるピクセルに関連付けられている前記ファームウェアからのランダムノイズブロックパターンに基づいて前記ノイズブロック管理テーブルを生成するロジックであり、前記ピクセルに関連付けられた前記ランダム値は前記閾値基準を満たすロジックと、前記ノイズブロック管理テーブルに基づいて前記画像の前記行における各ピクセルの場所についてノイズ値を計算するロジックと、前記ノイズ値に基づいて、前記行を修正するロジックと、を含む、デバイス。

EE19.前記デバイスは、さらに、前記画像から変調曲線を決定し、変調度を計算し、かつ、前記行を修正する前に前記変調度を前記ノイズ値に適用するロジックを備える、EE18のデバイス。

EE20.疑似ランダムノイズ発生器は、行インデックスおよびランダムオフセット値に基づいてランダム数を生成する、EE18またはEE19のデバイス。

EE21.前記画像は、ルマチャネル画像である、EE18-EE20いずれかのデバイス。

EE22.前記画像は、クロマチャネル画像である、EE18-EE20いずれかのデバイス。

EE23.前記デバイスは、さらに、前記画像を並列に処理するために、複数の擬似乱数発生器および複数のラインバッファを備える、EE18-EE22いずれかのデバイス。

EE24.復号されたクリーンなシーケンスを生成するために、エンコーディングされた画像をデコーディングするためのデコーダと、合成ノイズ画像を生成するために、EE18-EE23いずれかのデバイスを含むノイズ合成モジュールと、を含む、デコーダシステムであって、前記デコーダは、表示のためのレンダリングされた画像を生成するために、前記合成ノイズ画像を前記復号されたクリーンシーケンスと組み合わせるように構成されている。

EE25.デコーダ用のメタデータを生成する方法であって、前記方法は、ノイズカテゴリパラメータを設定するステップと、ブロックサイズパラメータを設定するステップと、閾値パラメータを設定するステップと、変調度曲線パラメータを設定するステップとを含む。

EE26.前記方法は、さらに、ノイズ分散パラメータを設定するステップを含む、EE25の方法。

EE27.前記方法は、さらに、離散コサイン変換周波数範囲パラメータを設定するステップを含む、EE25またはEE26に記載の方法。

EE28.前記方法は、さらに、複数のブロックパターンパラメータを設定するステップを含む、EE25-EE27いずれかの方法。

EE29.前記方法は、さらに、ノイズブロック管理テーブルのエントリーパラメータを設定するステップを含む、EE25-EE28いずれかの方法。
exemplary embodiment
EE1. A computer-based method for generating a composite noise image for a digital image, the method comprising the steps of providing a plurality of noise block patterns, initializing the noise image, and generating a probability image. wherein the probability image includes a randomly generated probability value at each pixel; and comparing each probability value in the probability image to a threshold criterion. selecting a noise block pattern from the plurality of noise block patterns if the probability value satisfies the threshold criterion, the noise block pattern having an anchor point, and if the probability value satisfies the threshold criterion; and generating a synthesized noise image by placing the noise block pattern within the noise image such that the anchor points correspond to pixels in the probability image that meet the threshold criteria.

EE2. The method of EE1, wherein the noise grain block pattern is randomly selected.

EE3. The method of EE1 or EE2, wherein said probability values of said probability image are uniformly distributed probability values.

EE4. The method of any of EE1-EE3, wherein said noise block pattern comprises a film grain block pattern.

EE5. The method of EE1-EE4, wherein the method further comprises summarizing values in regions of the noise image where the noise block patterns overlap.

EE6. The method of any of EE1-EE5, wherein the method further comprises generating the noise block pattern prior to generating the noise image, wherein the noise block pattern is generated through an inverse DCT technique.

EE7. The method of EE6, wherein the generating step further includes removing low frequency DCT coefficients.

EE8. The method of EE6 or EE7, wherein the step of generating further includes removing high frequency DCT coefficients.

EE9. The method of any of EE1-EE8, wherein said probability image and said noise image are sized to match a video frame.

EE10. The method of any of EE1-EE9, further comprising editing the content image by adding the noise image to a channel of the content image.

EE11. The method of EE10, further comprising multiplying values in the noise image by a modulation index before adding the noise image to the content image.

EE12. The method of EE11, wherein said values are luma intensity values of said noise image.

EE13. The method of any of EE10-EE12, wherein the method further comprises generating a YUV content image based on the edited content image.

EE14. The method of EE13, wherein the method further comprises generating an RGB content image based on the YUV content image.

EE15. A decoder for decoding the encoded image to produce a decoded clean sequence and a noise synthesis module performing any method EE1-EE14 to produce a synthesized noise image; , wherein the decoder is configured to combine the synthesized noise image with the decoded clean sequence to produce a rendered image for display.

EE16. The device of EE15, wherein said device further comprises a modulation curve module for modulating said synthesized noise image prior to combining with said decoded clean sequence.

EE17. A computer program comprising data, said data encoded to perform any of the methods EE1-EE14 when executed on a processor.

EE18. A device for generating synthetic noise in an image, said device providing a line buffer containing lines from said image, firmware containing noise block patterns, and random values for pixels in said lines. logic for comparing the random value to a threshold criterion; a data store containing a noise block management table; and a random noise block pattern from the firmware associated with pixels in the row. wherein the random value associated with the pixel satisfies the threshold criterion; and logic for generating the noise block management table based on the noise block management table for each pixel in the row of the image. A device comprising logic to calculate a noise value for a location and logic to modify the row based on the noise value.

EE19. The device of EE18, wherein the device further comprises logic for determining a modulation curve from the image, calculating a modulation index, and applying the modulation index to the noise value before modifying the row.

EE20. A pseudo-random noise generator is an EE18 or EE19 device that generates a random number based on a row index and a random offset value.

EE21. The device of any of EE18-EE20, wherein said image is a luma channel image.

EE22. The device of any of EE18-EE20, wherein said image is a chroma channel image.

EE23. The device of any of EE18-EE22, wherein said device further comprises multiple pseudo-random number generators and multiple line buffers for processing said images in parallel.

EE24. A decoder for decoding the encoded image to produce a decoded clean sequence, and a noise synthesis module comprising any device EE18-EE23 for producing a synthesized noise image; wherein the decoder is configured to combine the synthesized noise image with the decoded clean sequence to generate a rendered image for display.

EE25. A method of generating metadata for a decoder, said method comprising the steps of: setting a noise category parameter; setting a block size parameter; setting a threshold parameter; and setting.

EE26. The method of EE25, wherein the method further comprises setting a noise variance parameter.

EE27. The method of EE25 or EE26, wherein the method further comprises setting a discrete cosine transform frequency range parameter.

EE28. The method of any of EE25-EE27, wherein the method further comprises setting a plurality of block pattern parameters.

EE29. The method of any of EE25-EE28, wherein the method further comprises the step of setting entry parameters of a noise block management table.

本開示の多くの実施形態が説明されてきた。それにもかかわらず、本開示の精神および範囲から逸脱することなく、種々の修正が成され得ることが理解されるだろう。従って、他の態様は、以降の請求項の範囲内にある。実施形態の任意の顕著な特徴は、適切な場合、全ての実施形態に共通である。 A number of embodiments of the disclosure have been described. Nevertheless, it will be understood that various modifications can be made without departing from the spirit and scope of the disclosure. Accordingly, other aspects are within the scope of the following claims. Any salient feature of the embodiments, where appropriate, is common to all embodiments.

上記の実施例は、本開示の実施形態をどのように作成し、かつ、使用するかの完全な開示および説明として当業者に対して提供されるものであり、そして、発明者がそれらの開示としてみなすものの範囲を制限するように意図されたものではない。 The above examples are provided as a complete disclosure and illustration of how to make and use the embodiments of the present disclosure, and are intended as the basis for the inventor's use of these disclosures. is not intended to limit the scope of what is considered

当業者にとって自明な、ここにおいて開示された方法およびシステムを実施するための上述のモードの修正は、以下の請求項の範囲内であるように意図されている。本明細書において言及された全ての特許および刊行物は、本開示が関連する当業者の技術のレベルを示している。この開示において引用された全ての参考文献は、各参考文献が個々にその全内容を参照により引用されたかのように、同じ程度まで参照により引用されている。 Modifications of the above-described modes for implementing the methods and systems disclosed herein that are obvious to those skilled in the art are intended to be within the scope of the following claims. All patents and publications mentioned in the specification are indicative of the level of skill of those skilled in the art to which this disclosure pertains. All references cited in this disclosure are incorporated by reference to the same extent as if each reference were individually incorporated by reference in its entirety.

本開示は、特定の方法またはシステムに限定されるものではなく、もちろん、変化し得ることが理解されるべきである。ここにおいて使用される用語は、特定の実施形態のみを説明する目的のためのものであり、かつ、限定することを意図するものではないことも、また、理解されるべきである。この明細書および添付の請求項において使用されるように、単数の形式である「一つの(“a”、“an”、および“the”)」は、そうでないものとコンテンツが明確に規定しない限り、複数の参照対象を包含するものである。用語「複数(“plurality”)」は、そうでないものとコンテンツが明確に規定しない限り、2つ以上の参照対象を含んでいる。そうでないものと規定されない限り、ここにおいて使用される全ての技術的および科学的用語は、本開示に関連する当業者によって一般的に理解されるものと同じ意味を有している。 It is to be understood that this disclosure is not limited to a particular method or system, as such may, of course, vary. It is also to be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used in this specification and the appended claims, the singular forms "a", "an", and "the" do not expressly prescribe otherwise. as long as it encompasses more than one referent. The term “plurality” includes two or more referents unless the content clearly dictates otherwise. Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains.

Claims (29)

デジタル画像に対する合成ノイズ画像を生成するためのコンピュータベースの方法であって、前記方法は、
複数のノイズブロックパターンを提供するステップと、
ノイズ画像を初期化するステップと、
確率画像を生成するステップであり、該確率画像は、各ピクセルにおいてランダムに生成された確率値を含む、ステップと、
前記確率画像における各確率値を閾値基準と比較するステップと、
を含み、
前記確率値が前記閾値基準を満たす場合、
前記複数のノイズブロックパターンからノイズブロックパターンを選択し、該ノイズブロックパターンはアンカーポイントを有しており、かつ、
前記確率値が前記閾値基準を満たす場合、
前記アンカーポイントが、前記閾値基準を満たす前記確率画像におけるピクセルに対応するように、前記ノイズブロックパターンを前記ノイズ画像内に配置することによって、合成されたノイズ画像を生成する、
方法。
A computer-based method for generating a synthetic noise image for a digital image, the method comprising:
providing a plurality of noise block patterns;
initializing the noise image;
generating a probability image, the probability image comprising a randomly generated probability value at each pixel;
comparing each probability value in the probability image to a threshold criterion;
including
if the probability value meets the threshold criterion,
selecting a noise block pattern from the plurality of noise block patterns, the noise block pattern having an anchor point; and
if the probability value meets the threshold criterion,
generating a synthesized noise image by placing the noise block pattern within the noise image such that the anchor points correspond to pixels in the probability image that meet the threshold criteria;
Method.
ノイズグレインブロックパターンが、ランダムに選択される、
請求項1に記載の方法。
A noise grain block pattern is randomly selected,
The method of claim 1.
前記確率画像の前記確率値は、一様に分布した確率値である、
請求項1または2に記載の方法。
the probability values of the probability image are uniformly distributed probability values;
3. A method according to claim 1 or 2.
前記ノイズブロックパターンは、フィルムグレインブロックパターンを含む、
請求項1乃至3いずれか一項に記載の方法。
wherein the noise block pattern comprises a film grain block pattern;
4. A method according to any one of claims 1-3.
前記方法は、さらに、
前記ノイズブロックパターンがオーバーラップする前記ノイズ画像の領域における値を集約するステップステップ、を含む、
請求項1乃至4いずれか一項に記載の方法。
The method further comprises:
aggregating values in regions of the noise image where the noise block patterns overlap;
5. A method according to any one of claims 1-4.
前記方法は、さらに、
前記ノイズ画像を生成する前に、前記ノイズブロックパターンを生成するステップ、を含み、
前記ノイズブロックパターンは、逆DCT技術を通じて生成される、
請求項1乃至5いずれか一項に記載の方法。
The method further comprises:
generating the noise block pattern prior to generating the noise image;
the noise block pattern is generated through an inverse DCT technique;
6. A method according to any one of claims 1-5.
前記生成するステップは、さらに、
低周波DCT係数を除去すること、を含む、
請求項6に記載の方法。
The generating step further comprises:
removing low frequency DCT coefficients;
7. The method of claim 6.
前記生成するステップは、さらに、
高周波DCT係数を除去すること、を含む、
請求項6または7に記載の方法。
The generating step further comprises:
removing high frequency DCT coefficients;
8. A method according to claim 6 or 7.
前記確率画像および前記ノイズ画像は、ビデオフレームにマッチするサイズにされる、
請求項1乃至8いずれか一項に記載の方法。
the probability image and the noise image are sized to match a video frame;
9. A method according to any one of claims 1-8.
前記方法は、さらに、
前記ノイズ画像をコンテンツ画像のチャネルに加えることによって、前記コンテンツ画像を編集するステップ、を含む、
請求項1乃至9いずれか一項に記載の方法。
The method further comprises:
editing the content image by adding the noise image to a channel of the content image;
10. A method according to any one of claims 1-9.
前記方法は、さらに、
前記ノイズ画像を前記コンテンツ画像に加える前に、前記ノイズ画像における値を変調度で乗算するステップ、を含む、
請求項10に記載の方法。
The method further comprises:
multiplying values in the noise image by a modulation index before adding the noise image to the content image;
11. The method of claim 10.
前記値は、前記ノイズ画像のルマ強度値である、
請求項11に記載の方法。
the value is the luma intensity value of the noise image;
12. The method of claim 11.
前記方法は、さらに、
編集された前記コンテンツ画像に基づいて、YUVコンテンツ画像を生成するステップ、を含む、
請求項10乃至12いずれか一項に記載の方法。
The method further comprises:
generating a YUV content image based on the edited content image;
13. A method according to any one of claims 10-12.
前記方法は、さらに、
前記YUVコンテンツ画像に基づいて、RGBコンテンツ画像を生成するステップ、を含む、
請求項13に記載の方法。
The method further comprises:
generating an RGB content image based on the YUV content image;
14. The method of claim 13.
復号されたクリーンなシーケンスを生成するために、エンコーディングされた画像をデコーディングするためのデコーダと、
合成ノイズ画像を生成するために、請求項1乃至14いずれか一項に記載の方法を実行するノイズ合成モジュールと、
を含む、デバイスであって、
前記デコーダは、表示のためのレンダリングされた画像を生成するために、前記合成ノイズ画像を前記復号されたクリーンシーケンスと組み合わせる、ように構成されている、
デバイス。
a decoder for decoding the encoded image to produce a decoded clean sequence;
a noise synthesis module for performing the method of any one of claims 1 to 14 to generate a synthetic noise image;
a device comprising
the decoder is configured to combine the synthesized noise image with the decoded clean sequence to produce a rendered image for display;
device.
前記デバイスは、さらに、
前記復号されたクリーンシーケンスと組み合わせる前に、前記合成ノイズ画像を変調するための変調曲線モジュール、を含む、
請求項15に記載のデバイス。
The device further comprises:
a modulation curve module for modulating the synthetic noise image prior to combining with the decoded clean sequence;
16. Device according to claim 15.
データを含むコンピュータプログラムであって、
前記データは、プロセッサ上で実行されると、請求項1乃至14いずれか一項に記載の方法を実行するようにエンコーディングされている、
コンピュータプログラム。
A computer program containing data,
The data are encoded so as to perform the method of any one of claims 1 to 14 when executed on a processor.
computer program.
画像において合成ノイズを生成するためのデバイスであって、前記デバイスは、
前記画像からの行を含むラインバッファと、
ノイズブロックパターンを含むファームウェアと、
前記行におけるピクセルに対してランダム値を提供するための疑似乱数発生器と、
前記ランダム値を閾値基準と比較するためのロジックと、
ノイズブロック管理テーブルを含むデータストアと、
前記行におけるピクセルに関連付けられている前記ファームウェアからのランダムノイズブロックパターンに基づいて、前記ノイズブロック管理テーブルを生成するロジックであり、前記ピクセルに関連付けられた前記ランダム値は前記閾値基準を満たす、ロジックと、
前記ノイズブロック管理テーブルに基づいて、前記画像の前記行における各ピクセルの場所についてノイズ値を計算するロジックと、
前記ノイズ値に基づいて、前記行を修正するロジックと、
を含む、デバイス。
A device for generating synthetic noise in an image, said device comprising:
a line buffer containing lines from the image;
firmware containing noise block patterns;
a pseudo-random number generator for providing random values for pixels in the row;
logic for comparing the random value to a threshold criterion;
a data store containing a noise block management table;
logic to generate the noise block management table based on random noise block patterns from the firmware associated with pixels in the row, wherein the random values associated with the pixels satisfy the threshold criteria; and,
logic to calculate a noise value for each pixel location in the row of the image based on the noise block management table;
logic to modify the row based on the noise value;
device, including
前記デバイスは、さらに、
前記画像から変調曲線を決定し、変調度を計算し、かつ、前記行を修正する前に前記変調度を前記ノイズ値に適用するロジック、を備える、
請求項18に記載のデバイス。
The device further comprises:
logic for determining a modulation curve from the image, calculating a modulation depth, and applying the modulation depth to the noise values before modifying the row;
19. Device according to claim 18.
疑似ランダムノイズ発生器は、行インデックスおよびランダムオフセット値に基づいて、ランダム数を生成する、
請求項18または19に記載のデバイス。
a pseudorandom noise generator generating a random number based on the row index and the random offset value;
20. Device according to claim 18 or 19.
前記画像は、ルマチャネル画像である、
請求項18乃至20いずれか一項に記載のデバイス。
wherein the image is a luma channel image;
21. A device according to any one of claims 18-20.
前記画像は、クロマチャネル画像である、
請求項18乃至20いずれか一項に記載のデバイス。
wherein the image is a chroma channel image;
21. A device according to any one of claims 18-20.
前記デバイスは、さらに、
前記画像を並列に処理するために、複数の擬似乱数発生器および複数のラインバッファを備える、
請求項18乃至22いずれか一項に記載のデバイス。
The device further comprises:
comprising multiple pseudo-random number generators and multiple line buffers for processing the image in parallel;
23. A device according to any one of claims 18-22.
復号されたクリーンなシーケンスを生成するために、エンコーディングされた画像をデコーディングするためのデコーダと、
合成ノイズ画像を生成するために、請求項18乃至23いずれか一項に記載のデバイスを含むノイズ合成モジュールと、
を含む、デコーダシステムであって、
前記デコーダは、表示のためのレンダリングされた画像を生成するために、前記合成ノイズ画像を前記復号されたクリーンシーケンスと組み合わせる、ように構成されている、
デコーダシステム。
a decoder for decoding the encoded image to produce a decoded clean sequence;
a noise synthesis module, comprising a device according to any one of claims 18 to 23, for generating a synthetic noise image;
A decoder system comprising:
the decoder is configured to combine the synthesized noise image with the decoded clean sequence to produce a rendered image for display;
decoder system.
デコーダ用のメタデータを生成する方法であって、前記方法は、
ノイズカテゴリパラメータを設定するステップと、
ブロックサイズパラメータを設定するステップと、
閾値パラメータを設定するステップと、
変調度曲線パラメータを設定するステップと、
を含む、方法。
A method of generating metadata for a decoder, the method comprising:
setting noise category parameters;
setting a block size parameter;
setting a threshold parameter;
setting modulation depth curve parameters;
A method, including
前記方法は、さらに、
ノイズ分散パラメータを設定するステップ、を含む、
請求項25に記載の方法。
The method further comprises:
setting a noise variance parameter;
26. The method of claim 25.
前記方法は、さらに、
離散コサイン変換周波数範囲パラメータを設定するステップ、を含む、
請求項25または26に記載の方法。
The method further comprises:
setting a discrete cosine transform frequency range parameter;
27. A method according to claim 25 or 26.
前記方法は、さらに、
複数のブロックパターンパラメータを設定するステップ、を含む、
請求項25乃至27いずれか一項に記載の方法。
The method further comprises:
setting a plurality of block pattern parameters;
28. The method of any one of claims 25-27.
前記方法は、さらに、
ノイズブロック管理テーブルのエントリーパラメータを設定するステップ、を含む、
請求項25乃至28いずれか一項に記載の方法。
The method further comprises:
setting entry parameters of the noise block management table;
29. The method of any one of claims 25-28.
JP2022537579A 2019-12-19 2020-12-21 Noise synthesis for digital images Active JP7451710B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962950466P 2019-12-19 2019-12-19
EP19218144.4 2019-12-19
US62/950,466 2019-12-19
EP19218144 2019-12-19
PCT/US2020/066366 WO2021127628A1 (en) 2019-12-19 2020-12-21 Noise synthesis for digital images

Publications (2)

Publication Number Publication Date
JP2023507589A true JP2023507589A (en) 2023-02-24
JP7451710B2 JP7451710B2 (en) 2024-03-18

Family

ID=74125718

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022537579A Active JP7451710B2 (en) 2019-12-19 2020-12-21 Noise synthesis for digital images

Country Status (5)

Country Link
US (1) US20230050950A1 (en)
EP (1) EP4078526B1 (en)
JP (1) JP7451710B2 (en)
CN (1) CN114945944A (en)
WO (1) WO2021127628A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023122039A1 (en) 2021-12-22 2023-06-29 Dolby Laboratories Licensing Corporation Film grain parameters adaptation based on viewing environment
CN115855017B (en) * 2023-02-28 2023-05-02 中国船舶集团有限公司第七〇七研究所 Noise compression modulation method and system based on fiber optic gyroscope

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ZA200601707B (en) 2003-08-29 2008-09-25 Thomson Licensing Sa Method and apparatus for modeling film grain patterns in the frequency domain
US7945106B2 (en) * 2003-09-23 2011-05-17 Thomson Licensing Method for simulating film grain by mosaicing pre-computer samples
WO2005057936A1 (en) 2003-12-05 2005-06-23 Thomson Licensing Technique for film grain simulation using a database of film grain patterns
JP6120665B2 (en) * 2013-04-26 2017-04-26 オリンパス株式会社 Imaging apparatus, image processing apparatus, image processing method, and image processing program
US9747673B2 (en) * 2014-11-05 2017-08-29 Dolby Laboratories Licensing Corporation Systems and methods for rectifying image artifacts

Also Published As

Publication number Publication date
US20230050950A1 (en) 2023-02-16
EP4078526A1 (en) 2022-10-26
EP4078526B1 (en) 2023-11-15
WO2021127628A1 (en) 2021-06-24
JP7451710B2 (en) 2024-03-18
CN114945944A (en) 2022-08-26

Similar Documents

Publication Publication Date Title
Xing et al. Invertible image signal processing
JP6255063B2 (en) Image processing for HDR images
TWI521973B (en) Encoding, decoding, and representing high dynamic range images
AU2005309975B2 (en) Low-complexity film grain simulation technique
CA2583156C (en) Film grain simulation method
ES2907226T3 (en) Method and apparatus for representing the granularity of an image by one or more parameters
US20060133686A1 (en) Film grain simulation technique for use in media playback devices
JP2015212978A (en) Method for local tone-mapping, device therefor, and recording medium
AU2005306921B2 (en) Film grain simulation method based on pre-computed transform coefficients
JP7451710B2 (en) Noise synthesis for digital images
WO2016120210A1 (en) A method and apparatus for inverse-tone mapping a picture
CA2587117C (en) Bit-accurate film grain simulation method based on pre-computed transformed coefficients
JP2012043268A (en) Image processing apparatus, and method for controlling image processing apparatus
Zhang et al. Lookup Table meets Local Laplacian Filter: Pyramid Reconstruction Network for Tone Mapping
Zabaleta et al. In-camera, photorealistic style transfer for on-set automatic grading
EP4377879A1 (en) Neural networks for dynamic range conversion and display management of images
CN118075493A (en) Dynamic NeRF-based volume video processing method and system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220726

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220726

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240306

R150 Certificate of patent or registration of utility model

Ref document number: 7451710

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150