JP2017500792A - Hdrビデオフレームのための評価尺度 - Google Patents

Hdrビデオフレームのための評価尺度 Download PDF

Info

Publication number
JP2017500792A
JP2017500792A JP2016534116A JP2016534116A JP2017500792A JP 2017500792 A JP2017500792 A JP 2017500792A JP 2016534116 A JP2016534116 A JP 2016534116A JP 2016534116 A JP2016534116 A JP 2016534116A JP 2017500792 A JP2017500792 A JP 2017500792A
Authority
JP
Japan
Prior art keywords
video frame
hdr video
value
pixel
exposure
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.)
Pending
Application number
JP2016534116A
Other languages
English (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 JP2017500792A publication Critical patent/JP2017500792A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/90Dynamic range modification of images or parts thereof
    • G06T5/92Dynamic range modification of images or parts thereof based on global image properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20208High dynamic range [HDR] image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30168Image quality inspection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

最小露出パラメータ値を用いてピクセルの初期露出値を計算し、以前に計算された露出値及び定数から更なる露出値を計算することによって、HDRビデオフレーム(10)のための評価尺度が計算される。露出値は、LDR値に変換され、誤差を計算するのに用いられる。次に、HDRビデオフレーム(10)内の全てのピクセル及び全ての露出パラメータ値について、誤差に基づいて評価尺度が計算される。【選択図】図1

Description

本実施形態は、包括的には、ハイダイナミックレンジ(HDR)ビデオフレームのための評価尺度に関し、特に、HDRビデオフレーム及びビデオの符号化及び圧縮に関連して用いることができるような評価尺度に関する。
標準ダイナミックレンジ(SDR)ビデオとしても知られる、通常のローダイナミックレンジ(LDR)ビデオの分野において、ピーク信号対雑音比(PSNR)が、損失の多い圧縮コーデックの再構成の品質を表す客観的評価尺度として長い間用いられてきた。完全な尺度ではないが、PSNRはSDRビデオについて十分その目的を果たしてきた。
ハイダイナミックレンジ/広色域(HDR/WGC)における動画エキスパートグループ(MPEG)アドホックグループにおいて、調査のうちの1つは、HDRビデオのための客観的評価尺度を得ることを目指している。理由は、PSNRが、HDRビデオの場合に、LDRビデオの場合よりも機能がはるかに不良であるためである。したがって、HDRビデオのために適合された代替的な評価尺度が提案されてきた。
HDRビデオは、LDRビデオで可能であるよりも大きなダイナミックレンジの明度を生じる。HDRビデオの特徴は、人間の眼に、視覚系を通じて日常生活において馴染みの深い輝度範囲に類似した輝度範囲を提示することである。
HDRビデオの2つの主要なタイプは、複数のLDRカメラ又はSDRカメラを統合した結果得られるコンピュータレンダリング及びビデオである。HDRビデオは、オーバーサンプリング式バイナリ画像センサのような特殊な画像センサを用いて入手することもできる。LDRビデオは通常、赤、緑、青(RGB)色空間を用いるとき、色成分又はチャネルあたり8ビット、すなわち24ビットパーピクセル(bpp)によって表される。HDRビデオは、これに応じて、色成分あたり16ビット浮動小数点数を用いて表すことができ、結果として、RGB色空間を用いるとき、48bppとなる。
静止HDR画像に対しては、評価尺度としてマルチ露出PSNR(mPSNR)が提案されている[1]。しかしながら、この評価尺度は、シャッター速度値が手動で選択されるので、HDRビデオには適用可能でない。
このため、評価尺度の分野における改善、特に、HDRビデオのために用いられるそのような評価尺度が依然として必要とされている。
包括的な目標は、HDRビデオフレームに適した評価尺度を提供することである。
詳細な目標は、そのような評価尺度を決定するための改善されたかつ/又は高速な解決策を提供することである。
これらの目標及び他の目標は、本明細書に開示されるような実施形態によって達成される。
実施形態の一態様は、ハイダイナミックレンジ(HDR)ビデオフレームのための評価尺度を決定する方法に関する。本方法は、HDRビデオフレーム内のピクセルごとに、最小露出パラメータ値を用いてHDRビデオフレーム内のピクセルの初期露出値を計算することを含む。本方法はまた、HDRビデオフレーム内のピクセルごとに、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの初期露出値を計算することを含む。本方法は、HDRビデオフレーム内のピクセルごとに、また最小露出パラメータ値から開始して最大露出パラメータ値までの露出パラメータ値ごとに、HDRビデオフレーム内のピクセルの以前に計算された露出値に定数を乗算したものから、HDRビデオフレーム内のピクセルの露出値を計算することを更に含む。本方法は、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの以前に計算された露出値に定数を乗算したものから、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を計算することを更に含む。本方法は、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレーム内のピクセルの露出値を、HDRビデオフレーム内のピクセルのローダイナミックレンジ(LDR)値に変換することを更に含む。また、本方法は、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルのLDR値に変換することを含む。本方法は、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレーム内のピクセルのLDR値と、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルのLDR値との差を表す誤差を計算することを更に含む。本方法は、HDRビデオフレーム内の全てのピクセル及び全ての露出値について、誤差に基づいて評価尺度を計算することを更に含む。
実施形態の別の態様は、HDRビデオフレームの評価尺度を決定するためのエンコーダに関する。エンコーダは、HDRビデオフレーム内のピクセルごとに、最小露出パラメータ値を用いてHDRビデオフレーム内のピクセルの初期露出値を計算するように設定される。また、エンコーダは、HDRビデオフレーム内のピクセルごとに、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの初期露出値を計算するように設定される。エンコーダは、HDRビデオフレーム内のピクセルごとに、また最小露出パラメータ値から開始して最大露出パラメータ値までの露出パラメータ値ごとに、HDRビデオフレーム内のピクセルの以前に計算された露出値に定数を乗算したものから、HDRビデオフレーム内のピクセルの露出値を計算するように更に設定される。エンコーダは、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの以前に計算された露出値に定数を乗算したものから、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を計算するように更に設定される。また、エンコーダは、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレーム内のピクセルの露出値を、HDRビデオフレーム内のピクセルのLDR値に変換するように設定される。エンコーダは、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルのLDR値に変換するように更に設定される。エンコーダは、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレーム内のピクセルのLDR値と、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルのLDR値との差を表す誤差を計算するように更に設定される。また、エンコーダは、HDRビデオフレーム内の全てのピクセル及び全ての露出パラメータ値について、誤差に基づいて評価尺度を計算するように設定される。
実施形態の関連する態様が、HDRビデオフレームのための評価尺度を決定するためのエンコーダを定義する。エンコーダは、HDRビデオフレーム内のピクセルごとに、i)最小露出パラメータ値を用いてHDRビデオフレーム内のピクセルの初期露出値を計算し、ii)HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの初期露出値を計算するための初期露出値計算機を備える。また、エンコーダは、HDRビデオフレーム内のピクセルごとに、また最小露出パラメータ値から開始して最大露出パラメータ値までの露出パラメータ値ごとに、i)HDRビデオフレーム内のピクセルの以前に計算された露出値に定数を乗算したものから、HDRビデオフレーム内のピクセルの露出値を計算し、ii)HDRビデオフレームの圧縮に続いて取得されるHDRビデオのバージョンにおける対応するピクセルの以前に計算された露出値に定数を乗算したものから、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を計算するための露出値計算機を備える。エンコーダは、HDRビデオフレーム内のピクセルごとに、また、露出パラメータ値ごとに、i)HDRビデオフレーム内のピクセルの露出値を、HDRビデオフレーム内のピクセルのLDR値に変換し、ii)HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルのLDR値に変換するための露出値変換器を更に備える。エンコーダは、HDRビデオフレーム内のピクセルごとに、また、露出パラメータ値ごとに、HDRビデオフレーム内のピクセルのLDR値と、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルのLDR値との差を表す誤差を計算するための誤差計算機を更に備える。また、エンコーダは、HDRビデオフレーム内の全てのピクセル及び全ての露出パラメータ値について、誤差に基づいて評価尺度を計算するための評価尺度計算機を備える。
実施形態の更なる態様は、命令を含むコンピュータプログラムに関する。これらの命令は、プロセッサによって実行されると、プロセッサに、HDRビデオフレーム内のピクセルごとに、最小露出パラメータ値を用いてHDRビデオフレーム内のピクセルの初期露出値を計算させる。また、プロセッサは、HDRビデオフレーム内のピクセルごとに、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの初期露出値を計算させられる。プロセッサは更に、HDRビデオフレーム内のピクセルごとに、また最小露出パラメータ値から開始して最大露出パラメータ値までの露出パラメータ値ごとに、HDRビデオフレーム内のピクセルの以前に計算された露出値に定数を乗算したものから、HDRビデオフレーム内のピクセルの露出値を計算させられる。プロセッサは更に、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの以前に計算された露出値に定数を乗算したものから、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を計算させられる。また、プロセッサは、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレーム内のピクセルの露出値を、HDRビデオフレーム内のピクセルのローダイナミックレンジ(LDR)値に変換させられる。プロセッサは更に、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルのLDR値に変換させられる。プロセッサは更に、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレーム内のピクセルのLDR値と、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルのLDR値との差を表す誤差を計算させられる。また、プロセッサは、HDRビデオフレーム内の全てのピクセル及び全ての露出パラメータ値について、誤差に基づいて評価尺度を計算させられる。
実施形態の関連する態様は、上記で定義したコンピュータプログラムを備えるキャリアを定義する。キャリアは、電子信号、光信号、電磁信号、磁気信号、電気信号、無線信号、マイクロ波信号又はコンピュータ可読ストレージ媒体のうちの1つである。
本実施形態は、HDRビデオフレームのために適合された評価尺度を提供する。この評価尺度は、改善された高速な実施により計算することができる。したがって、評価尺度はHDRビデオの符号化及び圧縮中に用いることができる。
実施形態は、その更なる目標及び利点と共に、添付の図面と併せて以下の説明を参照することによって最も良好に理解することができる。
一実施形態による、評価尺度を決定するための方法を示すフローチャートである。 元のHDRビデオフレーム及びHDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョン(再構成されたHDRビデオフレーム)のLDRバージョンの作成を概略的に示す。 図1に示す方法の追加のオプションのステップを示すフローチャートである。 一実施形態による、様々な露出パラメータ値の誤差重みの分布を示す図である。 図1における評価尺度の計算の一実施形態を示すフローチャートである。 一実施形態による、HDRビデオフレームを符号化する方法を示すフローチャートである。 一実施形態によるエンコーダの概略ブロック図である。 別の実施形態によるエンコーダの概略ブロック図である。 更なる実施形態によるエンコーダの概略ブロック図である。 一実施形態によるユーザ機器の概略ブロック図である。 更に別の実施形態によるエンコーダの概略ブロック図である。 一実施形態によるHDRビデオフレーム符号化デバイスの概略ブロック図である。 実施形態のクラウドベースの実施態様の概略ブロック図である。
図面全体を通じて、同じ参照符号は、類似した要素又は対応する要素のために用いられる。
本実施形態は、包括的にはHDRビデオのための評価尺度に関し、特に、HDRビデオの符号化及び圧縮に関連して用いることができるような評価尺度に関する。
したがって、実施形態の評価尺度は、例えば、様々な符号化モード又は圧縮モードを互いに比較し、これによって、当該技術分野においてHDRのビデオ画像若しくはHDRビデオピクチャとも呼ばれるHDRビデオフレーム、又はHDRビデオフレームの少なくとも一部分を圧縮するのに最も適した符号化モード又は圧縮モードを選択するために、符号化及び圧縮に関連して用いることができる。したがって、実施形態の評価尺度によって表されるような、最良の結果をもたらす符号化モード又は圧縮モードは、HDRビデオフレーム又は少なくともその一部分を符号化又は圧縮するときに用いられるように選択される。
本明細書に記載されるように評価尺度が決定されるHDRビデオフレームは、好ましくはHDRビデオのフレーム、画像又はピクチャである。HDRビデオは通常、LDR又はSDRビデオの場合に可能であるよりも大きなダイナミックレンジの明度を有する。目的は、人間の眼に、視覚系を通じて日常生活において馴染みのある輝度範囲により類似した輝度範囲を提示することである。人間の眼は、環境内に偏在する広い動的変化に対し絶えず調整を行う。脳は、この情報を継続的に解釈し、これによってほとんどの人が広範にわたる光条件で見ることができる。
HDRビデオの2つの主要なタイプは、複数のLDRカメラ又はSDRカメラを統合した結果得られるコンピュータレンダリング及びビデオである。HDRビデオは、オーバーサンプリング式バイナリ画像センサのような特殊な画像センサを用いて入手することもできる。
グラフィック内で、LDRビデオ又はSDRビデオは通常、赤、緑、青(RGB)色空間を用いるとき、色成分あたり8ビット、すなわち24ビットパーピクセル(bpp)によって表される。これに応じて、HDRビデオは、色成分あたり16ビット浮動小数点数を用いて表すことができ、結果として、RGB色空間を用いるとき、48bppとなる。
HDRビデオ内の個々のHDRビデオフレームについて適切な符号化モード又は圧縮モードを選択するために、HDRビデオの符号化に関連して評価尺度を用いることができる。
図1は、ハイダイナミックレンジ(HDR)ビデオフレームのための評価尺度を決定するための方法を示すフローチャートである。本方法は、符号化又は圧縮されることになるHDRビデオフレーム内又はHDRビデオフレームの少なくとも一部分におけるピクセルごとにステップS1〜S7を実行することを含む。これについては図1の線L1によって概略的に表されている。ステップS1は、最小露出パラメータ値を用いてHDRビデオフレーム内のピクセルの初期露出値を計算することを含む。ステップS2は、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの初期露出値を計算することを含む。ステップS1及びステップS2は、任意の順序で又は少なくとも部分的に並列に行うことができる。後続のステップS3〜S6は、最小露出パラメータ値から開始して最大露出パラメータ値までの露出パラメータ値ごとに実行される。これについては図1の線L2によって概略的に示されている。ステップS3は、露出パラメータ値について、HDRビデオフレーム内のピクセルの以前に計算された露出値に定数を乗算したものから、HDRビデオフレーム内のピクセルの露出値を計算することを含む。ステップS4は、露出パラメータ値について、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの以前に計算された露出値に定数を乗算したものから、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を計算することを含む。ステップS5は、HDRビデオフレーム内のピクセルの露出値を、HDRビデオフレーム内のピクセルのローダイナミックレンジ(LDR)値に変換することを含む。ステップS6は、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルのLDR値に変換することを含む。ステップS3〜S6は、ステップS5がステップS3の後に実行され、ステップS6がステップS4の後に実行されている限り、任意の順序で又は少なくとも部分的に並列に実行することができる。後続のステップS7は、HDRビデオフレーム内のピクセルのLDR値と、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルのLDR値との差を表す誤差を計算することを含む。次のステップS8は、HDRビデオフレーム内の全てのピクセル及び全ての露出値について、誤差に基づいて評価尺度を計算することを含む。
図2は、元のHDRビデオフレーム10と、HDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20との間の関係を概略的に示す。このため、元のHDRビデオフレーム10は、圧縮モード又は符号化モードに従って圧縮又は符号化され、圧縮されたHDRビデオフレーム又は符号化されたHDRビデオフレームが得られる。次に、圧縮された又は符号化されたHDRビデオフレームは、本明細書において再構成されたHDRビデオフレーム20とも呼ばれるHDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20を取得するために、解凍又は復号される。
通常、圧縮又は符号化プロセスは損失を伴い、圧縮又は符号化されたHDRビデオフレームが、元のHDRビデオフレーム10のフレームコンテンツ、すなわち、ピクセル又はサンプル値を表すための不正確な近似であることを暗に意味する。したがって、圧縮又は符号化されたHDRビデオフレームの解凍又は復号によって取得される再構成されたHDRビデオフレーム20は、圧縮−解凍/符号化−復号手順を通じて処理された元のHDRビデオフレーム10のバージョン又は表現である。異なる圧縮モード及び符号化モードの結果として、解凍又は復号後、異なる圧縮HDRビデオフレーム及び異なる再構成されたHDRビデオフレーム20が得られる。したがって、評価尺度は、「最良の」圧縮モード又は符号化モード、したがって、元のHDRビデオフレーム10のための「最良の」圧縮又は符号化されたHDRビデオフレームを選択するために用いることができる。
図2に示すように、図1のステップS5及びS6において、複数のLDRバージョン又はいわゆるトーンマッピングされたバージョン11、21が、元のHDRビデオフレーム10と、再構成されたHDRビデオフレーム20との双方について作成される。これは、所与の元のHDRビデオフレーム10について、元のHDRビデオフレーム10の複数のLDRバージョン11が得られることを意味する。これに対応して、再構成されたHDRビデオフレーム20について、再構成されたHDRビデオフレーム20の複数のLDRバージョン21が取得される。それぞれのそのようなLDRバージョン11、21は、最小露出パラメータ値から最大露出パラメータ値にまで及ぶ露出パラメータ値ごとに生成される。したがって、最小露出パラメータ値から最大露出パラメータ値までの露出パラメータ値の範囲又は組がN≧2個の露出パラメータ値からなる場合、ステップS5及びS6において元のHDRビデオフレーム10のN個のLDRバージョン11及び再構成されたHDRビデオフレーム20のN個のLDRバージョン21が作成され、図1のステップS7においてN個の誤差が計算される。
HDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20における対応するピクセルは、好ましくは、HDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20内において、現在のピクセルがHDRビデオフレーム10において占めるのと同じピクセル位置を占める。このため、現在のピクセルがHDRビデオフレーム10内のピクセル位置(x,y)を占める場合、対応するピクセルは、再構成されたHDRビデオフレーム20、すなわち、HDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20におけるピクセル位置(x,y)を占める。
本実施形態は、HDRビデオ及びHDRビデオフレームに適切でありかつこれらに適合された評価尺度の計算を大幅に単純化し、高速化する。これは、ステップS1及びS2において最小露出パラメータ値を用いて、ピクセル及び対応するピクセルの初期露出値を計算することによって可能である。次に、ピクセル及び対応するピクセルの露出値は、ピクセル及び対応するピクセルの以前に計算された露出値に定数を乗算したものの関数として、段階的に計算される。以前に計算された露出値とは、好ましくは、露出パラメータに対して直前の露出パラメータ値である。このため、ステップS3及びS4における段階的計算は、最小露出パラメータ値(cmin)から最大露出パラメータ値(cmax)まで、露出パラメータ値の組又は範囲にわたって行われる。
一実施形態では、ステップS1及びS2における計算は、好ましくは、cmin−1に等しい露出パラメータ値cを用いて実行される。これはひいては、ステップS3〜S7のループがc∈[cmin,cmax]にわたって行われることを意味する。次に、好ましくは、所与の露出パラメータ値cについてステップS3において計算されるような、HDRビデオフレーム10内のピクセル位置(x,y)におけるピクセルの露出パラメータ値が、c∈[cmin,cmax]について、R (x,y)=R c−1(x,y)×定数に基づいて計算される。
ピクセル及び対応するピクセルの露出値を計算するこの手順は、HDRビデオフレーム10及び再構成されたHDRビデオフレーム20の複数のLDRバージョン11、21を、トーンマッピング関数を用いて以下のように直接計算することと比較して、はるかに計算効率が良い:
RLDR C(x,y)=clamp(0,255,round(255*(2c*RHDR(x,y))(1/γ)))
GLDR C(x,y)=clamp(0,255,round(255*(2c*GHDR(x,y))(1/γ)))
BLDR C(x,y)=clamp(0,255,round(255*(2c*BHDR(x,y))(1/γ)))
ここで、三つ組(RLDR (x,y),GLDR (x,y),BLDR (x,y))は、露出パラメータ値cのためのHDRビデオフレーム10内のピクセル位置におけるピクセルのLDRバージョンを表し、三つ組(RHDR(x,y),GHDR(x,y),BHDR(x,y))は、ピクセルの元のピクセル値、すなわち、ピクセルの元のHDR値を表す。
したがって、実施形態は、計算コストが高い冪関数と比較して、単一の乗算を用いて以前の露出値から露出値を計算することによる、計算的にはるかに効率的な露出値計算技法を提供する。
以下において、図1に示す方法ステップの様々な実施の実施形態をより詳細に説明する。
一実施形態において、図1のステップS5は、HDRビデオフレーム内のピクセルの露出値を、0.5の加算及びキャスティング演算を用いてLDR値に変換することを含む。
一実施形態において、図1のステップS6は、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおいて、対応するピクセルの露出値を、0.5の加算、min関数及びキャスティング演算を用いてLDR値に変換することを含む。
当該技術分野においてキャスト演算、タイプ変換又は型強制とも呼ばれるキャスティング演算は、通常、1つのデータタイプのエンティティを別のデータタイプに変更することを伴う。そのようなキャスティング演算の例は、浮動小数点数を整数に変更すること、すなわち、数を、浮動小数点表現から整数表現に変更することである。
これは、LDR値への露出値の変換を、計算効率の良い演算を用いて行うことができることを意味する。したがって、冪演算も対数演算も必要とされず、LDR値を計算するのに用いられる上述したトーンマッピング関数と比較して、条件文の数が最小限になる。
このため、これらの実施形態では、LDR値の計算は、ピクセル及び対応するピクセルについて2ステップで行われる。第1のステップにおいて、露出値が計算され、次に、これらが上記で開示したようにLDR値に変換される。そのような手法により、入力HDR値からLDR値を計算するための単一の計算ステップを用いることと比較して、評価尺度の計算が大幅に高速化する。
一実施形態では、HDRビデオフレーム10内の各ピクセルは、赤色成分、青色成分及び緑色成分を含む。このため、この実施形態では、HDRビデオフレーム10内のピクセル、したがって、HDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20、すなわち再構成されたHDRビデオフレーム20におけるピクセルは、RGB色の観点のそれぞれのピクセル値を有する。しかしながら、これは単に、実施形態の説明のための例とみなされるべきである。一般的に、HDRビデオフレーム10内の各ピクセル及び再構成されたHDRビデオフレーム20における各対応するピクセルは、色の三つ組、すなわち3つの色成分の観点のピクセル値を含む。一般的な実施形態において、これらの色成分は、第1の色成分、第2の色成分及び第3の色成分として表され得る。色成分は、HDRビデオフレームの符号化及び復号中に従来から用いられている様々な色形式又は色空間において表すことができる。そのような色形式の、限定ではなく説明のための例は、赤、緑、青(RGB)並びに輝度及びクロミナンス、すなわち、1つの輝度成分及び2つのクロミナンス成分を含む。以下において、RGBを色空間として用いて実施形態を更に説明及び例示する。しかしながら、実施形態は、RGB色成分を、輝度成分及び2つのクロミナンス成分、例えば、輝度、クロミナンス青及びクロミナンス赤(YCbCr);輝度、クロミナンス緑及びクロミナンス橙(YCgCo)、YUV、Lab、XYZ等の別の色空間に従う色成分と置き換えることも含む。
図3は、図1に示す方法の追加のオプションのステップを示すフローチャートである。ステップS11は、ceil(γ×log(0.5/255.0)/log(2)−log(colMax)/log(2))に基づいて最小露出パラメータ値を計算することを含む。ceil(x)は、xを切り上げる演算であり、γはディスプレイガンマを表し、colMaxは、HDRビデオフレーム10内のピクセルの赤色成分、緑色成分及び青色成分のうちの最も大きな色成分値を表す。ステップS12は、floor(γ×log(254.5/255.0)/log(2)−log(colMax)/log(2))に基づいて最大露出パラメータ値を計算することを含む。floor(x)は、xを切り下げる演算である。ステップS11及びS12は、任意の順序で、又は少なくとも部分的に並列に実行することができる。
このため、HDRビデオフレーム内の現在のピクセルの最大色成分に基づいて、ステップS11及びS12において最小露出パラメータ値及び最大露出パラメータ値が計算される。このため、本方法の一実施形態では、図3に示すような追加のステップS10を含む。このステップS10は、HDRビデオフレーム10内のピクセルの赤色成分、緑色成分及び青色成分の最大色成分を特定することを含む。次に、露出パラメータ範囲の端点、すなわち最小露出パラメータ値及び最大露出パラメータ値を計算するために、この最大色成分をステップS11及びS12において用いる。
ステップS11及びS12において用いられているディスプレイガンマγは、好ましくは2.2である。
ガンマは、ピクセルの数値と、その実際の輝度との間の関係を定義する。ガンマを用いない場合、輝度を整数、例えば0〜255として表すことは、L=100×n/255を用いて行うことができる。ここで、Lは、カンデラ毎平方メートル(cd/m)単位の輝度であり、nはコード値である。しかしながら、これは、暗い値の場合は過度に大きな相対誤差を与え、明るい値の場合は不要に小さな誤差を与えることになる。例として、n=1からn=2に進むとき、輝度はL(1)=100×1/255=0.3921cd/mからL(2)=100×2/255=0.7843に2倍となり、相対差は(0.7843−0.3921)/0.3921=100%となる。明るいエリアでは、n=254からn=255へ進むことにより、はるかに低い相対差がもたらされる。なぜなら、L(254)=99.60及びL(255)=100であり、相対差が(100−99.60)/99.60=0.39%となるためである。眼は、絶対誤差よりも相対誤差に対してより感度が高い可能性があるため、L=100×n/255等の線形関数を用いてローダイナミックレンジ画像を表すことは良い着想ではない。したがって、代わりに、ガンマ関数;L=100×(n/255)γを用いてLDR画像が表される。ここで、γは2.2等の正の値である。ここで、n=20は、n=1が以前に与えたものと類似した輝度値;L(20)=100×20/255)2.2=0.3697cd/mを与える、これは0.3921cd/mに近い。しかし、ここで、n=21まで1ステップ進む場合、L(21)=100×(21/255)2.2=0.4116の輝度を得る。ここで、相対誤差は(0.4116−0.3697)/0.3697=11.3%であり、これは100%よりもはるかに小さい。この利点は、100cd/mに近い精度と引き換えに得られ、最後の2ステップはL(254)=100×(254/255)2.2=99.1393及びL(255)=100×(21/255)2.2=100であり、(100−99.1393)/99.1393=0.87%の相対誤差を与える。
要約すると、整数を輝度に変換するときにディスプレイガンマγを用いることにより、暗い輝度の場合の相対誤差が実質的に下がるが、これは、明るい輝度の場合の相対誤差の小さな増大という犠牲を伴い、この誤差は、人間の視覚系によるLDR画像の知覚の仕方に同調させた方がよい。したがって、LDR画像はガンマ形式で表され、2つの画像間の比較も、多くの場合、線形輝度値間ではなく、ガンマ表現間で行われる。
一実施形態では、図1のステップS1は、HDRビデオフレーム10内のピクセルの初期露出値を以下のように計算することを含む。
rOrigProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×rOrig))
gOrigProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×gOrig))
bOrigProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×bOrig))
この実施形態では、rOrigProcessedは、HDRビデオフレーム10内のピクセルの赤色成分の露出値を表し、gOrigProcessedは、HDRビデオフレーム10内のピクセルの緑色成分の露出値を表し、bOrigProcessedは、上記HDRビデオフレーム10内のピクセルの青色成分の露出値を表す。パラメータtwoToC=exp((cMin−1)×log(2.0))である。ここで、cMinは最小露出パラメータ値を表す。rOrigはHDRビデオフレーム10内のピクセルの赤色成分を表す。gOrigはHDRビデオフレーム10内のピクセルの緑色成分を表し、bOrigはHDRビデオフレーム10内のピクセルの青色成分を表す。HDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20における対応するピクセルの初期露出値は、ステップS2において以下のように計算されることが好ましい:
rCopyProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×rCopy))
gCopyProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×gCopy))
bCopyProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×bCopy))
この実施形態において、rCopyProcessedは、HDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20における対応するピクセルの赤色成分の露出値を表し、gCopyProcessedは、HDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20における対応するピクセルの緑色成分の露出値を表し、bCopyProcessedは、HDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20における対応するピクセルの青色成分の露出値を表す。rCopyは、HDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20における対応するピクセルの赤色成分を表し、gCopyは、HDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20における対応するピクセルの緑色成分を表し、bCopyは、HDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20における対応するピクセルの青色成分を表す。
このため、rOrig、gOrig及びbOrigは、HDRビデオフレーム10内のピクセルの元のHDRピクセル値を表し、これに対し、rCopy、gCopy及びbCopyは、再構成されたHDRビデオフレーム20における対応するピクセルの元のHDRピクセル値を表す。
一実施形態において、ステップS3においてHDRビデオフレーム10内のピクセルの露出値を計算することは、最小露出パラメータ値から開始して最大露出パラメータ値までの露出パラメータ値ごとに以下を計算することを含む:
rOrigProcessed×=factor
gOrigProcessed×=factor
bOrigProcessed×=factor
この実施形態において、定数factor=exp((1.0/γ)×log(2.0))である。HDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20における対応するピクセルの露出値は、好ましくは、ステップS4において、最小露出パラメータ値から開始して最大露出パラメータ値までの露出パラメータ値ごとに以下のように計算される:
rCopyProcessed×=factor
gCopyProcessed×=factor
bCopyProcessed×=factor
本明細書において用いられるとき、表記「a×=b」は、演算a=a×bに対応し、このため、パラメータaは、パラメータaをパラメータbと乗算することによって更新される。
このため、この実施形態において、ピクセル又は対応するピクセルの以前に計算された露出値に乗算するのに用いられる定数は、好ましくはディスプレイガンマに依拠し、すなわち、exp((1.0/γ)×log(2.0))に依拠する。これは、HDRビデオフレーム10内のピクセル位置(x,y)におけるピクセル、及び露出パラメータの現在の値cについて、R (x,y)=R c−1(x,y)×factorとして色成分Rを計算することに対応する。
一実施形態では、ステップS5においてHDRビデオフレーム10内のピクセルの露出値を変換することは、以下を計算することを含む。
LDRorigR=(int)(rOrigProcessed+0.5)
LDRorigG=(int)(gOrigProcessed+0.5)
LDRorigB=(int)(bOrigProcessed+0.5)
この実施形態において、LDRorigRはHDRビデオフレーム10内のピクセルの赤色成分のLDR値を表し、LDRorigGはHDRビデオフレーム10内のピクセルの緑色成分のLDR値を表し、LDRorigBはHDRビデオフレーム10内のピクセルの青色成分のLDR値を表す。(int)はキャスティング演算を表す。キャスティング演算のこの実施形態は、赤色、緑色及び青色成分のLDR値を整数LDR値として出力する。
この実施形態において、ステップS6においてHDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20における対応するピクセルの露出値を変換することは、好ましくは以下を計算することを含む:
LDRcopyR=(int)dMin(rCopyProcessed+0.5,255.5)
LDRcopyG=(int)dMin(gCopyProcessed+0.5,255.5)
LDRcopyB=(int)dMin(bCopyProcessed+0.5,255.5)
この実施形態において、LDRcopyRは、HDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20における対応するピクセルの赤色成分のLDR値を表し、LDRcopyGは、HDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20における対応するピクセルの緑色成分のLDR値を表し、LDRcopyBは、HDRビデオフレーム10の圧縮に続いて取得されるHDRビデオフレーム10のバージョン20における対応するピクセルの青色成分のLDR値を表す。dMin(x,y)は、(x>y)の場合、yを返し、そうでない場合、xを返すように実装されるmin関数を表す。
第1の実施形態において、ステップS7において誤差を計算することは、誤差を以下のように計算することを含む:
(LDRorigR-LDRcopyR)×(LDRorigR-LDRcopyR)+(LDRorigG-LDRcopyG)×(LDRorigG-LDRcopyG)+(LDRorigB-LDRcopyB)×(LDRorigB-LDRcopyB)
第2の実施形態において、ステップS7において誤差を計算することは、誤差を以下のように計算することを含む:
|LDRorigR-LDRcopyR|+|LDRorigG-LDRcopyG|+|LDRorigB-LDRcopyB|
第3の実施形態において、ステップS7において誤差を計算することは、誤差を以下のように計算することを含む:
wR×(LDRorigR-LDRcopyR)×(LDRorigR-LDRcopyR)+wG×(LDRorigG-LDRcopyG)×(LDRorigG-LDRcopyG)+wB×(LDRorigB-LDRcopyB)×(LDRorigB-LDRcopyb)
第4の実施形態において、ステップS7において誤差を計算することは、誤差を以下のように計算することを含む:
wR×|LDRorigR-LDRcopyR|+wG×|LDRorigG-LDRcopyG|+wB×|LDRorigB-LDRcopyB|
これらの実施形態において、w、w、wは重みである。
上記の第1の実施形態及び第2の実施形態は、3つの色成分について1に等しい同じ重みを用いることによって、第3の実施形態及び第4の実施形態の特定の実施例とみなすことができる。第3の実施形態及び第4の実施形態は、ステップS7において誤差を計算するときに、異なる色成分について異なる重みを可能にすることによって、より一般化される。また、第3の実施形態及び第4の実施形態において、図1の線L2によって表されるステップS3〜S7の異なるループに異なる重みを用いることも可能である。これは、異なる露出パラメータ値について異なる重みを用いることに対応する。このため、特定の実施形態において、重みw、w、wは、露出パラメータ値cに基づいて求められ、すなわち、いくつかの定義済み関数f(・)、f(・)及びf(・)についてw=f(c)、w=f(c)及びw=f(c)である。
上記の第1の実施形態及び第2の実施形態は、評価尺度を計算するときに暗い雑音を増幅する傾向を有する。第3の実施形態及び第4の実施形態は、異なる露出パラメータ値及び/又は異なる色成分に異なる重みを用いることによって、そのような暗い雑音を抑制することができる。
図4は、一実施形態による、様々な露出パラメータ値のための重みの分布を示す図である。この特定の実施形態において、より低い重みw、w、wは通常、露出パラメータの中間範囲値と比較して、低い値の露出パラメータ及び高い値の露出パラメータのために用いられる。
一実施形態において、w=w=w=f(c)である。これは、同じ重みが3つ全ての色成分に用いられ、重みの値が図4に示すような露出パラメータ値に依拠することを意味する。別の実施形態では、3つの色成分のうちの少なくとも2つ又は全てに対して別個の重みを用いることができる。次に、そのような各重みを、上述したような露出パラメータ値の所与の関数として求めることができる。そのような場合、各色成分は、異なる露出パラメータ値についてそれぞれの重み分布を有し得る。
重みが用いられない場合、暗いピクセルにおける小さな変化が、評価尺度の最終値に対し大きく寄与する場合がある。例えば、HDRビデオフレーム内の2つのピクセル、すなわち、元のHDR RGB値が(0.3,0.3,0.3)に等しい第1のピクセル、及び元のHDR RGB値が(3000,3000,3000)に等しいピクセルを仮定する。圧縮及び解凍後、2つのピクセルについて再構成されたHDR RGB値がそれぞれ(0.6,0.6,0.6)及び(3300,3300,3300)になると仮定する。第1のピクセルのための最小露出パラメータ値及び最大露出パラメータ値は、それぞれc=−18及びc=1になる。20個の露出のLDR値を計算する場合、以下の誤差が得られる:
Figure 2017500792
このため、最も右側の列を合計する場合、第1のピクセルによって寄与される総誤差は、27462となる。
一方、第2のピクセルのための露出パラメータ値は、c=−31〜c=−12となる。この第2のピクセルのための類似したテーブルは以下のようになる:
Figure 2017500792
ここで、最も右側の列を合計する場合、このピクセルによって寄与される総誤差は、633であることがわかる。このため、第1のピクセルは、第2のピクセルの誤差(633)よりもはるかに大きな誤差(27462)を伴って評価尺度に寄与することになる。一方、HDRピクセル値を見ると、誤差は第2のピクセルにおいてはるかに大きい:
Figure 2017500792
第1のピクセルにおいて、各成分において誤差は0.3である。一方、第2のピクセルにおいて、誤差は各成分において300である。通常、300cd/mの誤差は、0.3cd/mの誤差よりも容易に気づくが、この例では、第2のピクセルと比較して、第1のピクセルの方が評価尺度に寄与している。これは、第1のピクセルからの寄与に第1の重みを用いて重み付けし、第2のピクセルからの寄与に、第1の重みよりも大きい第2の重みを用いて重み付けすることが有利である場合があることを意味する。
これを達成する1つの方法は、露出パラメータcごとに1つの重みを有することである。例として、c=−12であるとき(c=−12は双方のテーブルにおいて入手可能である)、重みはw(−12)=100とすることができる。これは、第1のピクセルの合計二乗誤差12に100を乗算して1200になり、第2のピクセルの合計二乗誤差300に100を乗算して30000になることを意味する。一方、c=−13のときの重みは、より大きく、例えばw(−13)=110にすることができる。第1のピクセルのそのレベルにおける合計二乗誤差3は、110を乗算され、330になる。同時に、第2のピクセルのそのレベルにおける合計二乗誤差147は、110を乗算され、16170になる。cの小さな値についてより大きな重みを有することによって、第2のピクセルの誤差値により評価尺度への大きな寄与が生じることを確実にすることができる。例として、c=−31の重みは非常に大きい場合があり、これは第2のピクセルにおいてのみ用いられる。
一方、第1のピクセルについて、実際に相対誤差はより小さいことに留意されたい。これが、重み付けされていない誤差尺度を用いる場合に、第1のピクセルが第2のピクセルよりも誤差尺度に大きく寄与することになる理由である。
図5は、図1における計算ステップS8の一実施形態を示すフローチャートである。この実施形態において、本方法は、図1のステップS7から継続する。後続のステップS13は、平均二乗誤差(MSE)を、HDRビデオフレーム内の全てのピクセル及び全ての露出値についての平均誤差として計算することを含む。次に、本方法はステップS14に続く。ステップS14は、平均二乗誤差に基づいて評価尺度を計算することを含む。
一実施形態において、ステップS14において評価尺度を計算することは、評価尺度を、平均二乗誤差のピーク信号対雑音比として以下のように計算することを含む:
10×log((255×255)/MSE)/log(10)
この実施形態において、MSEは平均二乗誤差を表す。
実施形態は、本明細書においてmPSNRと表される評価尺度に関する。mPSNRは、HDRビデオフレームの評価のために用いることができる。要するに、HDRビデオフレームごとに、異なる仮想シャッター速度、すなわち露出パラメータ値を有する仮想写真又はトーンマッピングされたバージョンの形態等のいくつかのLDRバージョンが作成され、次に、PSNR尺度がこれらのLDRバージョンについて計算される。mPSNR値は、これらのPSNR尺度のアグリゲートである。
露出パラメータ値cの範囲は好ましくは制限される。この理由は、小さな値のc(大きな負の値)の場合、ほとんどのピクセルが黒(0,0,0)になり、したがって、MSEがこれらのピクセルに対して小さくなるためである。これは、圧縮にアーチファクトがないという印象を与えるが、必ずしも当てはまらない。実際には、これらのピクセルは情報を一切保有しておらず、このため、これらを除外することにより尺度がより良好になる。同様に、255よりも大きな値について、cが十分大きいとき、ほとんどの値は白(255,255,255)になり、これもまた、圧縮にアーチファクトがないという誤った印象を与える。
また、(4000,1,2)等、1つの成分に非常に大きな値を有し、他の成分に小さな値を有する場合、人間の眼には、これと、圧縮結果であり得る、例えば(4000,2,2)との差を見分けることが難しい。しかし、十分大きなcの数を用いると、(4000,1,2)が、例えば(255,90,180)にマッピングされるのに対し、圧縮結果(4000,2,2)は(255,180,180)にマッピングされる。この結果、緑色成分に大きな誤差が生じるが、これは実際のピクセルでは可視でない可能性が高い。このため、このピクセルを計算から除去することは道理にかなっており、提案される方法において行われる。なぜなら、赤色成分が255に飽和しているためである。
コードの元の最適化されていないバージョンは、以下のように説明することができる。
sse=0
for c=−34〜15の全ての露出
for 画像内の全てのピクセル
元画像のHDR R、G、BからLDRredOrig、LDRgreenOrig、LDRblueOrigを計算
コピーのHDR R、G、BからLDRredCopy、LDRgreenCopy、LDRblueCopyを計算
if ピクセルが飽和していない
sse+=(LDRredOrig-LDRredCopy)2
sse+=(LDRgreenOrig-LDRgreenCopy)2
sse+=(LDRblueOrig-LDRblueCopy)2
numpixcels++;
end
end
end
mse=sse/(3.0*numpixels)
mPSNR=PSNR=10*log((255*255)/mse)/log(10);
この最適化されていないバージョンにおいて、露出パラメータ値の固定された組又は範囲[−34,15]が用いられる。この結果、通常、評価尺度mPSNRの計算が非効率になる。これについて本明細書において更に説明する。
元のHDR浮動小数点数値RからLDRredOrigを計算することは以下のように行われる:
RLDR C(x,y)=clamp(0,255,round(255*(2c*RHDR(x,y))(1/γ)))
ここで、LDRredOrig=RLDR を用いた。対応する式は、他の2つの色成分に当てはまる。最も内側の値255*(2*RHDR(x,y))(1/γ)を見る場合、これは2つの冪関数xからなる。まず、2(pはcである)、及び次に(RHDR(x,y))(1/γ)(pは1/γ)である。そのような冪関数は、通常、対数:x=exp(ln(x))=exp(p*ln(x))を用いて実施される。指数関数exp(・)及び対数ln(・)の双方が、計算コストが高いため、これは非常にコストの高い演算である。これにより、したがって、最適化の1つの目標は、これらのコストの高い計算を回避することである。
全てのLDRredOrig値が最終結果に影響を及ぼすわけではないことに留意するべきである;LDRredOrig値が飽和試験を通過した場合にのみ、この値が変数sseに影響を及ぼす。飽和試験は以下のとおりである:
if LDRredOrig==0 AND LDRgreenOrig==0 AND LDRblueOrig==0
return false:
else if LDRredOrig==255 OR LDRgreenOrig==255 OR LDRblueOrig==255
return false
else
return true
end
ここで、再びLDRredOrigについての式、
RLDR C(x,y)=clamp(0,255,round(255*(2c*RHDR(x,y))(1/γ)))
を調べると、値255*(2*RHDR(x,y))(1/γ)は、254.5よりも大きい場合、255に丸められるため、この値が255に等しくなることがわかる。この場合、ピクセルは飽和し、用いられない。これは、cがcMax=γln(254.5/255)/ln(2)−ln(RHDR(x,y))/ln(2)よりも大きいことと等価である。cは、−34〜15(15を含む)間の全ての値にわたってループすることに留意されたい。しかし、あるピクセルについてcMaxよりも大きいc値に到達するとすぐ、より大きな全てのcがそのピクセルのsseに寄与しないことがわかる。実際は、3つの色成分R、G及びBのうちの最も大きなもののみを見ればよい。最も大きなものによって、計算に影響を及ぼすcの最大値が決まる。
同様に、全ての成分がゼロになるほど小さいc値も飽和ピクセルとみなされるので、このc値を調べる必要がない。cが、最も大きな成分であっても0.5未満の値になるほど小さい場合、0に量子化されることになる。これは計算に影響を及ぼさないことがわかっている。
このため、あるピクセルについて、−34から15ではなく、cMinIntからcMaxInt、すなわち、最小露出パラメータ値から最大露出パラメータ値にループすることができる。これによって、cMaxInt−cMinIntが通常、50ではなく約20であるため、大量の計算が節減される。これが機能するためには、forループの順序を反転させる必要がある。要約すると、以下を用いることができる:
sse=0
for 画像内の全てのピクセル
colMax=元画像内のmax(R,G,B)
cMinInt=ceil(gamma*log(0.5/255.0)/log(2)-log(colMax)/log(2);
cMaxInt=floor(gamma*log(254.5/255.0)/log(2)-log(colMax)/log(2);
for c=cMinInt〜cMaxInt
元画像のHDR R、G、BからLDRredOrig、LDRgreenOrig、LDRblueOrigを計算
コピーのHDR R、G、BからLDRredCopy、LDRgreenCopy、LDRblueCopyを計算
sse+=(LDRredOrig-LDRredCopy)2
sse+=(LDRgreenOrig-LDRgreenCopy)2
sse+=(LDRblueOrig-LDRblueCopy)2
numpixcels++;
end
end
mse=sse/(3.0*numpixcels)
mPSNR=PSNR=10*log((255*255)/mse)/log(10);
ここで、floor(x)はxを切り下げ、ceil(x)はxを切り上げる。ピクセルのいずれも飽和しないことがわかっているため、飽和の試験はもはや必要ないことに留意されたい。
これらの最適化を用いる場合であっても、評価尺度を計算するには依然としてかなりの時間がかかる。大量の計算は、LDRredOrig、LDRgreenOrig等の計算から生じるため、これを再び検討する。式
RLDR C(x,y)=clamp(0,255,round(255*(2c*RHDR(x,y))(1/γ)))
は2ステップで計算することができる;
RP C(x,y)=255*(2c*RHDR(x,y))(1/γ)
及び
RLDR C(x,y)=clamp(0,255,round(RP C(x,y)))
第1のステップを見ると、これを以下のように書き換えることができることがわかる。
RP C(x,y)=255*(2c*RHDR(x,y))(1/γ)=
255*(2c)(1/γ)*(RHDR(x,y))(1/γ)=
255*(RHDR(x,y))(1/γ)*(2(1/γ))c
しかし、これは以下に更に単純化することができる。
255*(RHDR(x,y))(1/γ)*(2(1/γ))(c-1)*(2(1/γ))=
RP C-1(x,y)*(2(1/γ))
また、(2(1/γ))は定数であることに留意されたい。このため、R (x,y)を得るためには,単に以前の値R C−1(x,y)をこの定数と乗算する。
したがって、本発明によれば、方法を以下のように書き換えることができる。
sse=0
for 画像内の全てのピクセル
元画像のcolMax=max(R,G,B)
cMinInt=ceil(gamma*log(0.5/255.0)/log(2)-log(colMax)/log(2);
cMaxInt=floor(gamma*log(254.5/255.0)/l2-log(colMax)/log(2);

twoToC=exp((cMinInt-1)*log(2));
factor=exp(inverseGamma*log(2));

rOrigP=255.0*exp(inverseGamma*log((((twoToC))*rOrig)));
gOrigP=255.0*exp(inverseGamma*log((((twoToC))*gOrig)));
bOrigP=255.0*exp(inverseGamma*log((((twoToC))*bOrig)));

rCopyP=255.0*exp(inverseGamma*log((((twoToC))*rCopy)));
gCopyP=255.0*exp(inverseGamma*log((((twoToC))*gCopy)));
bCopyP=255.0*exp(inverseGamma*log((((twoToC))*bCopy)));

for c=cMinInt〜cMaxInt
rOrigP*=factor
gOrigP*=factor
bOrigP*=factor

rCopyP*=factor
gCopyP*=factor
bCopyP*=factor

LDRredOrig=round(clamp(0,255,rOrigP))
LDRgreenOrig=round(clamp(0,255,gOrigP))
LDRblueOrig=round(clamp(0,255,bOrigP))

LDRredCopy=round(clamp(0,255,rCopyP))
LDRgreenCopy=round(clamp(0,255,gCopyP))
LDRblueCopy=round(clamp(0,255,bCopyP))

sse+=(LDRredOrig-LDRredCopy)2
sse+=(LDRgreenOrig-LDRgreenCopy)2
sse+=(LDRblueOrig-LDRblueCopy)2
numpixcels++;
end
end
mse=sse/(3.0*numpixcels)
mPSNR=PSNR=10*log((255*255)/mse)/log(10);
このプログラムは、下線を付されたコードを有するループの内側におけるLDRredOrigの計算を交換した。このプログラムは、コストの高い任意のexp(・)関数及びlog(・)関数を回避することに留意されたい。代わりに、これは、多くのアーキテクチャにおいて単一クロックサイクルで実行することができる単純な浮動小数点乗算に置き換えられる。次に、この値は丸められ、クランプされて、下線を付されたコード内を更に進んでLDR値LDRredOrigを生成する。また、ループの前のコード、すなわち、斜体のtwoToC=で始まるforループの前の8行も追加した。これらの行は、後続の露出値を計算するのに用いられる開始値を生成するのに必要とされる。これらの行は、コストの高いexp(・)関数及びlog(・)関数を利用する。しかしながら、これらはループの外側であるため、ループの内側の行ほど計算行に寄与しない。
この実施形態によって、上記で提示されたコードの元の最適化されていないバージョンと比較して計算時間が大幅に低減することになる。その最適化されていないコードと比較して、実行時間は、HDRビデオフレームあたり約14秒から3.7秒に低減し、約3.8×のスピードアップとなる。
しかしながら、更なるスピードアップが可能である。ほとんどの時間は、通常、ループの内側に費やされる。ここでループの内側を見ると、これは非常に単純な算術演算;浮動小数点及び整数データの乗算、減算及び加算のみからなっている。例外は、丸め演算及びクランピング演算におけるものである。これらは、通常、高速実行の妨げとなるif文からなる。高速実行の妨げとなる理由は、if文が、CPUが分岐予測において誤った推定をするときに、CPUの実行パイプラインにおいてバブルを生成するためである。例として、クランプ演算は多くの場合、以下のように実施される。
if(x>255.0)
x=255.0;
else if(x<0.0)
x=0.0;
end;
これによって、2つのif文が生成される。双方の場合に、CPUは、最も可能性の高い結果を推定し、推定が誤っているとき、パイプラインをフラッシュしなくてはならず、いくつかのクロックサイクルのペナルティが生じる。
しかしながら、本発明の一実施形態によれば、比較が始まる前の画像の元のバージョン及び圧縮バージョンの値について、通常、クランプステップ、すなわちクリップステップが存在することに注目する。入力、すなわち、元の画像及び圧縮画像は、線形光を表し、光は負になり得ないため、負値をゼロにクランプすること、すなわち、負値を0に置き換えることは意味を成す。同様に、65504は半精度浮動小数点において表現可能な最大値であるため、無限等の65504よりも大きい値を65504にクランプすることは意味を成す。これは通常、太字で示す以下のコードを挿入することによって行われている。
sse=0
for 画像内の全てのピクセル
rOrig=clamp(0,65504,RHDRorig)
gOrig=clamp(0,65504,GHDRorig)
bOrig=clamp(0,65504,BHDRorig)
rCopy=clamp(0,65504,RHDRcopy)
gCopy=clamp(0,65504,GHDRcopy)
bCopy=clamp(0,65504,BHDRcopy)

元画像のcolMax=max(R,G,B)
cMinInt=ceil(gamma*log(0.5/255.0)/log(2)-log(colMax)/log(2);
cMaxInt=floor(gamma*log(254.5/255.0)/l2-log(colMax)/log(2);

ここで、fClip(a,b,x)とも書かれるclamp(a,b,x)は、aよりも小さい値をaと置き換え、bよりも大きい値をbと置き換え、a〜b間の値を変更しない。本発明において、これが、露出値R (x,y)が決して負になり得ないことを意味することを認識することによって、これを利用する。これを理解するために、
RP C(x,y)=255*(2c*RHDR(x,y))(1/γ)
であるため、R (x,y)がとり得る最小値が255*(2*0)(1/γ)であり、0に等しいことに留意されたい。ここで、RHDR(x,y)は、上記の擬似コードにおけるrOrig値を表す。このため、R (x,y)の負値を有することは決してあり得ず、クランピング比較において負値に対し試験することは不要である。このため、下線を付された最後の6行を以下と置き換えることができる。
LDRredOrig=round(min(255,rOrigP))
LDRgreenOrig=round(min(255,gOrigP))
LDRblueOrig=round(min(255,bOrigP))

LDRredCopy=round(min(255,rCopyP))
LDRgreenCopy=round(min(255,gCopyP))
LDRblueCopy=round(min(255,bCopyP))
min(x,y)は通常以下のように実装される。
if(x>y)
return y
else
return x
これは、置き換えたクランプ演算と比較してif文が1つ減っており、より迅速な実行につながる。このため、本発明の1つの態様によれば、露出値rCopyPは、丸めの後のmin演算を用いてLDR値に変換される。本発明のこの部分は、上記の太字の擬似コードにおいて記載されたように値が既に事前にクランプされていることを条件にし、これも時間がかかる。しかしながら、この事前クランプはピクセルごとに1回しか生じず、このため、ループの内側で毎回生じる、最大で20倍頻度の高い露出値のクランプよりも消費時間が短い。
本発明の更なる実施形態では、元画像の処理された値が決して254.5を超えないことを確実にするようにc値が計算されること(上記を参照)に注目する。これは、c値を255に対して試験する必要もないことを意味する。これはコピーには当てはまらない。このため、上記を更に単純な以下のものに置き換えることができる。
LDRredOrig=round(rOrigP)
LDRgreenOrig=round(gOrigP)
LDRblueOrig=round(bOrigP)

LDRredCopy=round(min(255,rCopyP))
LDRgreenCopy=round(min(255,gCopyP))
LDRblueCopy=round(min(255,bCopyP))
これによって、CPUが実行する必要があるif文の量が更に低減し、ここでも結果としてスピードアップがもたらされる。
更に別の実施形態では、round(・)演算が通常以下のように実施されることに目を向ける:
if(x>=0)
return (int)(x+0.5)
else
return (int)(x-0.5)
この結果、実行を低速化させることになる別のif文が生じる。しかしながら、R (x,y)がゼロ未満に決してなり得ないことを既に認識している。このため、round(・)演算は、(int)(x+0.5)によって単純に置き換えることができ、上記のコードは以下に更に単純化することができる。
LDRredOrig=(int)(rOrigP+0.5)
LDRgreenOrig=(int)(gOrigP+0.5)
LDRblueOrig=(int)(bOrigP+0.5)

LDRredCopy=(int)(min(255.5,rCopyP+0.5))
LDRgreenCopy=(int)(min(255.5,gCopyP+0.5))
LDRblueCopy=(int)(min(255.5,bCopyP+0.5))
上記で言及したように、例示的な実施形態において、赤色成分Rは色空間を例示するのに用いられるが、当業者であれば、実施形態は、緑色G及び青色B、並びにYCbCr、YUV、Lab、XYZ等のような他の色空間についても有効であることを認識するであろう。
このため、本発明の1つの態様によれば、露出値rOrigPは、0.5の加算及びキャスティング演算のみを用いてLDR値LDRredOrigに変換される。上3行を参照されたい。
更に、本発明の別の態様によれば、露出値rCopyPは、加算、min演算及びキャスティング演算を用いてLDR値LDRredCopyに変換される。下3行を参照されたい。
いくつかのアーキテクチャにおいて、0.5の加算の代わりに浮動小数点数に2を乗算する方が早い場合がある。この場合、以下を用いることが可能である。
LDRredOrig=(((int)(2*rOrigP))+1)>>1
LDRgreenOrig=(((int)(2*gOrigP))+1)>>1
LDRblueOrig=(((int)(2*bOrigP))+1)>>1

LDRredCopy=(((int)(min(551,2*rCopyP)))+1)>>1
LDRgreenCopy=(((int)(min(551,2*gCopyP)))+1)>>1
LDRblueCopy=(((int)(min(551,2*bCopyP)))+1)>>1
ここで、>>はビットシフトを示す。
最後に、ループの毎ターンにnumpixcelを1増大させる代わりに、ループの外側でnumpixcelにcMaxInt−cMinInt+1を加算することができる。これによって計算時間が更に節減される。全てのこれらの実施形態が組み合わされると、結果として得られる実行時間は、HDRビデオフレームあたり1.97秒である。14秒で実行する上記で説明した一変形と比較して、これは7.1×のスピードアップである。
以下に、実施形態のC++による実装が続く:
double DistortionMetricmPSNRfast::calculateErrorRGB(Frame*inp0,Frame*inp1)
{
static const double gamma=2.20;
static const double inverseGamma=1.0/gamma;

double sse=0.0;
int numPixcels=0;
int widthXheight=inp0->m_compSize[R_COMP];

float *inp0Comp0=inp0->m_floatComp[0];
float *inp0Comp1=inp0->m_floatComp[1];
float *inp0Comp2=inp0->m_floatComp[2];

float *inp1Comp0=inp1->m_floatComp[0];
float *inp1Comp1=inp1->m_floatComp[1];
float *inp1Comp2=inp1->m_floatComp[2];

m_sse[R_COMP]=0.0;
m_sse[G_COMP]=0.0;
m_sse[B_COMP]=0.0;

for(int x=0;x<widthXheight;x++){
//まず、可能な限り最も小さいcを計算する。
//元のピクセルも圧縮されたピクセルも、0未満とならず65504を超えないことを確実にする。
//半精度浮動小数点数の場合の最大値は65504である。Infは65504にクリップされる。
float rOrig=fClip(inp0Comp0[x],0.0f,65504.0f);
float gOrig=fClip(inp0Comp1[x],0.0f,65504.0f);
float bOrig=fClip(inp0Comp2[x],0.0f,65504.0f);

float rCopy=fClip(inp1Comp0[x],0.0f,65504.0f);
float gCopy=fClip(inp1Comp1[x],0.0f,65504.0f);
float bCopy=fClip(inp1Comp2[x],0.0f,65504.0f);

//最大の色成分を得る。
double colMax=dMax(bOrig,dMax(rOrig,gOrig));

//寄与を与える第1の値を計算する。
//これは255*(2^c*colMax)^(1/gamma)が厳密に0.5であるときに生じる。
//これは、cMin=gamma*log(0.5/255)/log(2)-log(colMax)/log(2)に等しい。
double l2=log(2.0);
double cMin=2.2*log(0.5/255.0)/l2-log(colMax)/l2;

//最後の値を計算する。
//これは、255*(2^c*colMax)^(1/gamma)が厳密に254.5であるときに生じる。
//これは、cMin=gamma*log(254.5/255)/log(2)-log(colMax)/log(2)に等しい。
double cMax=2.2*log(254.5/255.0)/l2-log(colMax)/l2;

//cMinが例えば−10.6である場合、第1の有効な整数cは−10となる。
int cMinInt=double2IntCeil(cMin);
//cMaxが例えば4.6である場合、最後の有効なcは4となる。
int cMaxInt=double2IntFloor(cMax);

//nextValue=oldValue*(2^(1/gamma))であることを用いる。
double twoToC=exp((cMinInt-1)*l2);
double factor=exp(inverseGamma*l2);
//開始値。
double rOrigProcessed=255.0*exp(inverseGamma*log(((1.0*(twoToC))*rOrig)));
double gOrigProcessed=255.0*exp(inverseGamma*log(((1.0*(twoToC))*gOrig)));
double bOrigProcessed=255.0*exp(inverseGamma*log(((1.0*(twoToC))*bOrig)));
double rCopyProcessed=255.0*exp(inverseGamma*log(((1.0*(twoToC))*rCopy)));
double gCopyProcessed=255.0*exp(inverseGamma*log(((1.0*(twoToC))*gCopy)));
double bCopyProcessed=255.0*exp(inverseGamma*log(((1.0*(twoToC))*bCopy)));

for(int c=cMinInt;c<=cMaxInt;c++){
rOrigProcessed*=factor;
gOrigProcessed*=factor;
bOrigProcessed*=factor;
rCopyProcessed*=factor;
gCopyProcessed*=factor;
bCopyProcessed*=factor;

//ここで、これらの値を[0,255]にクランプし、整数に丸める。
//クランプ後、全ての値は正であり、dRound(x)の代わりに(int)(x+.5)を用いることができる。
//クランプの前であっても、x>0の場合、255*(2^c*x)^(1/gamma)>0であるため、全ての値が正である。
//このため、dClip(x,0,255)の代わりにdMin(x,255)を用いることができる。
//元の値は254.5未満であることが保証されるため、クランプを完全に回避することができる。
int LDRorigR=(int)(rOrigProcessed+0.5);
int LDRorigG=(int)(gOrigProcessed+0.5);
int LDRorigB=(int)(bOrigProcessed+0.5);

int LDRcopyR=(int)dMin(rCopyProcessed+0.5,255.5);
int LDRcopyG=(int)dMin(gCopyProcessed+0.5,255.5);
int LDRcopyB=(int)dMin(bCopyProcessed+0.5,255.5);

m_sse[R_COMP]+=(LDRorigR-LDRcopyR)*(LDRorigR-LDRcopyR);
m_sse[G_COMP]+=(LDRorigG-LDRcopyG)*(LDRorigG-LDRcopyG);
m_sse[B_COMP]+=(LDRorigB-LDRcopyB)*(LDRorigB-LDRcopyB);
}
numpixcels+=(cMaxInt-cMinInt+1);
}
sse=m_sse[R_COMP]+m_sse[G_COMP]+m_sse[B_COMP];
mse=sse/(3.0*numPixcels);
mPSRN=10*log((255*255)/mse/log(10);
return mPSRN;
}
このコードにおいて、元のHDRビデオフレームの線形光RGB値は、それぞれ、inp0Comp0[x],inp0Comp1[x]及びinp0Comp2[x]において得られる。圧縮されたHDRビデオフレーム、すなわち、再構成されたHDRビデオフレームのための対応する値は、それぞれinp1Comp0[x]、inp2Comp1[x]及びinp1Comp2[x]において得られる。
クランプされた値は、元のHDRビデオフレームの場合、それぞれrOrig、gOrig、bOrigにおいて得られ、圧縮されたHDRビデオフレーム、すなわち、再構成されたHDRビデオフレームの場合、それぞれrCopy、gCopy、bCopyにおいて得られる。
露出値は、元のHDRビデオフレームの場合、それぞれrOrigProcessed、gOrigProcessed及びbOrigProcesedにおいて得られ、圧縮されたHDRビデオフレーム、すなわち、再構成されたHDRビデオフレームの場合、それぞれrCopyProcessed、gCopyProcessed及びbCopyProcessedにおいて得られる。
LDR値は、元のHDRビデオフレームの場合、LDRorigR、LDRorigG及びLDRorigBにおいて得られ、圧縮されたHDRビデオフレーム、すなわち、再構成されたHDRビデオフレームの場合、LDRcopyR、LDRcopyG、LDRcopyBにおいて得られる。
最終的なmPSNR値はmPSNR変数において得られる。
提案される実施形態により、通常用いられる指数関数呼び出し及び対数関数呼び出しの数を低減することによって、大幅なスピードアップが得られる。また、提案される実施形態は、いくつかの値が特定の範囲内にあることが保証され、これによって、クランプ、すなわちクリップ演算及び丸め演算を多くの場合に回避することができるか又は大幅に簡略化することができることを利用する。
1つの態様によれば、単一の乗算を用いて以前の露出値から露出値R (x,y)が計算される。露出値を用いてmPSNR値を計算する。好ましい実施形態では、露出値R (x,y)は、定数α=2(1/γ)との乗算を用いて直前の露出値R C−1(x,y)からR (x,y)=αR C−1(x,y)として計算される。
これは、exp(・)及びlog(・)によって実施されるコストのかかる冪関数を用いて各露出値を計算する技術と対照的である。
このため、定数と以前に計算された露出値との間の単一の乗算のみを用いて露出値が計算される、マルチ露出ピーク信号対雑音比(mPSNR)尺度を計算する方法が提案される。
例示される実施形態では、赤色成分Rを用いて色空間を例示するが、当業者であれば、実施形態は、緑色G及び青色B、並びにYCbCr、YUV、Lab、XYZ等の他の色空間にも有効であることを認識するであろう。
別の実施形態によれば、露出値R (x,y)は、0.5の加算及びキャスティング演算を用いることによってLDR値RLDR (x,y)に変換される。これは、通常、実行するのにはるかに長い時間がかかる、複数の条件文であるif文を含む丸め演算及びクランピング演算と対照的である。これは、元のビデオフレームに対して有効であり得る。
更に別の態様によれば、露出値R (x,y)は、0.5の加算、min関数及びキャスティング演算を用いることによってLDR値RLDR (x,y)に変換される。これは、通常、単一の条件文であるif文のみを含むmin動作を実行するよりもはるかに長い時間がかかる、複数の条件文であるif文を伴う丸め演算及びクランピング演算と対照的である。これは、圧縮されたビデオフレームに対して有効であり得る。
図6は、HDRビデオフレームを符号化する方法を示すフローチャートである。本方法は、HDRビデオフレームの少なくとも一部分の複数の圧縮されたバージョンを取得するために、ステップS20において複数の圧縮モードに従ってHDRビデオフレームの少なくとも一部分を圧縮することを含む。以下のステップS21は、複数の圧縮モードの圧縮モードごとに、実施形態に従ってHDRビデオフレームのそれぞれの評価尺度を決定することを含む。次のステップS22は、複数の評価尺度に基づいて、HDRビデオフレームの少なくとも一部分の圧縮されたバージョンを、HDRビデオフレームの少なくとも一部分の符号化された表現として選択することを含む。
図6に示す方法において、HDRビデオフレーム全部が圧縮若しくは符号化されるか、又はHDRビデオフレームの一部が圧縮若しくは符号化される。この部分は、例えば、HDRビデオフレームのスライスに対応するか、又は実際にHDRビデオフレーム内のピクセルブロックに対応する可能性がある。通常、HDRビデオフレーム又はその一部分を、複数の圧縮モード又は符号化モードに従って圧縮又は符号化することができる。例えば、H.264及びH.265(HEVC)によるビデオコーディングにおいて、画像又はピクチャとも呼ばれるビデオフレームは、複数のイントラ予測モードのうちの1つに従ってイントラフレームとして、又は様々なインター予測モードに従ってインターフレームとして符号化することができる。そのような場合、ステップS20及びS21は、そのような圧縮モード又は符号化モードごとに実行され、これについては図6の線L3によって概略的に表されている。
これは、元のHDRビデオフレーム10又はその一部分が、圧縮されたHDRビデオフレームを得るために、ステップS20において第1の圧縮モード又は符号化モードに従って圧縮又は符号化されることを意味する。この圧縮されたHDRビデオフレームは、次に、対応する解凍モード又は復号モードに従って解凍又は復号され、再構成されたHDRビデオフレーム20が得られる。次に、所与の元のHDRビデオフレーム−再構成されたHDRビデオフレームの対について、すなわち、現在の圧縮モード又は符号化モードについて評価尺度が計算される。
この手順は、次に、それぞれの再構成されたHDRビデオフレーム20を与える他の利用可能な圧縮モード又は符号化モードについて実行される。異なる圧縮モード又は符号化モードにおいて、元のHDRビデオフレーム10は同じであることに留意されたい。したがって、通常、他の圧縮モード又は符号化モードが試験されるために、元のHDRビデオフレーム10内のピクセルの露出値を再計算する必要はない。このため、再構成されたHDRビデオフレーム20の露出値のみが、第2の後続の圧縮モード又は符号化モードについて計算される必要がある。ステップS20における圧縮及びステップS21における決定は、計算をスピードアップするために、異なる圧縮モードについて少なくとも部分的に並列に行うことができる。
したがって、各試験された圧縮モード又は符号化モードの結果、ステップS21において決定され、本明細書において説明されたようなそれぞれの評価尺度が得られる。次に、ステップS22において、HDRビデオフレーム10の圧縮されたバージョンのうちの1つ又はその一部分を、元のHDRビデオフレーム10の符号化された表現として選択するために、異なる評価尺度同士が比較される。
特定の実施形態では、ステップS22は、HDRビデオフレーム10の少なくとも一部分の符号化された表現として、HDRビデオフレーム10のこの少なくとも一部分の複数の圧縮されたバージョンの中から、最高の評価尺度を有するHDRビデオフレーム10の少なくとも一部分の圧縮されたバージョンを選択することを含む。
このため、これによって、結果として最も高いか又は最も大きい評価尺度が得られる、圧縮モード又は符号化モードを用いて得られたHDRビデオフレーム10の少なくとも一部分の圧縮されたバージョンが、HDRビデオフレーム10の少なくとも一部分の符号化された表現として選択され、用いられる。
実施形態の別の態様は、HDRビデオフレームのための評価尺度を決定するためのエンコーダに関する。エンコーダは、HDRビデオフレーム内のピクセルごとに、最小露出パラメータ値を用いてHDRビデオフレーム内のピクセルの初期露出値を計算するように設定される。また、エンコーダは、HDRビデオフレーム内のピクセルごとに、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの初期露出値を計算するように設定される。エンコーダは、HDRビデオフレーム内のピクセルごとに、また最小露出パラメータ値から開始して最大露出パラメータ値までの露出パラメータ値ごとに、HDRビデオフレーム内のピクセルの以前に計算された露出値に定数を乗算したものから、HDRビデオフレーム内のピクセルの露出値を計算するように更に設定される。エンコーダは、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの以前に計算された露出値に定数を乗算したものから、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を計算するように更に設定される。また、エンコーダは、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレーム内のピクセルの露出値を、HDRビデオフレーム内のピクセルのLDR値に変換するように設定される。エンコーダは、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルのLDR値に変換するように更に設定される。エンコーダは、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレーム内のピクセルのLDR値と、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルのLDR値との間の差を表す誤差を計算するように更に設定される。また、エンコーダは、HDRビデオフレーム内の全てのピクセルについて、及び全ての露出パラメータ値について、誤差に基づいて評価尺度を計算するように設定される。
一実施形態では、エンコーダは、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレーム内のピクセルの露出値を、0.5の加算及びキャスティング演算を用いてLDR値に変換するように設定される。
一実施形態では、エンコーダは、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を、0.5の加算、min関数及びキャスティング演算を用いてLDR値に変換するように設定される。
一実施形態では、HDRビデオフレーム内の各ピクセルは、赤色成分と、青色成分と、緑色成分とを含む。この実施形態では、エンコーダは、HDRビデオフレーム内のピクセルごとに、ceil(γ×log(0.5/255.0)/log(2)−log(colMax)/log(2))に基づいて最小露出パラメータ値を計算するように設定される。また、エンコーダは、HDRビデオフレーム内のピクセルごとに、floor(γ×log(254.5/255.0)/log(2)−log(colMax)/log(2))に基づいて最大露出値を計算するように設定される。
一実施形態では、エンコーダは、HDRビデオフレーム内のピクセルごとに、以下を計算するように設定される:
rOrigProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×rOrig))
gOrigProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×gOrig))
bOrigProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×bOrig))
rCopyProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×rCopy))
gCopyProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×gCopy))
bCopyProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×bCopy))
一実施形態では、エンコーダは、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、以下を計算するように設定される:
rOrigProcessed×=factor
gOrigProcessed×=factor
bOrigProcessed×=factor
rCopyProcessed×=factor
gCopyProcessed×=factor
bCopyProcessed×=factor
一実施形態では、エンコーダは、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、以下を計算するように設定される:
LDRorigR=(int)(rOrigProcessed+0.5)
LDRorigG=(int)(gOrigProcessed+0.5)
LDRorigB=(int)(bOrigProcessed+0.5)
LDRcopyR=(int)dMin(rCopyProcessed+0.5,255.5)
LDRcopyG=(int)dMin(gCopyProcessed+0.5,255.5)
LDRcopyB=(int)dMin(bCopyProcessed+0.5,255.5)
一実施形態では、エンコーダは、誤差を(LDRorigR−LDRcopyR)×(LDRorigR−LDRcopyR)+(LDRorigG−LDRcopyG)×(LDRorigG−LDRcopyG)+(LDRorigB−LDRcopyB)×(LDRorigB−LDRcopyB)として計算するように設定される。
別の実施形態では、エンコーダは、誤差をw×(LDRorigR−LDRcopyR)×(LDRorigR−LDRcopyR)+w×(LDRorigG−LDRcopyG)×(LDRorigG−LDRcopyG)+w×(LDRorigB−LDRcopyB)×(LDRorigB−LDRcopyb)として計算するように設定される。ここで、w、w、wは重みである。
更なる実施形態では、エンコーダは、誤差を|LDRorigR−LDRcopyR|+|LDRorigG−LDRcopyG|+|LDRorigB−LDRcopyB|として計算するように設定される。
更に別の実施形態では、エンコーダは、誤差をw×|LDRorigR−LDRcopyR|+w×|LDRorigG−LDRcopyG|+w×|LDRorigB−LDRcopyB|として計算するように設定される。
一実施形態では、エンコーダは、平均二乗誤差を、HDRビデオフレーム内の全てのピクセル及び全ての露出パラメータ値についての平均誤差として計算するように設定される。この実施形態では、エンコーダはまた、平均二乗誤差に基づいて評価尺度を計算するように設定される。
一実施形態では、エンコーダは、評価尺度を平均二乗誤差のピーク信号対雑音比として10×log((255×255)/MSE)/log(10)として計算するように設定される。
本明細書において説明する方法及び配置は、様々な形で実施し、組み合わせ、再配置することができることが理解されよう。
例えば、実施形態は、ハードウェアにおいて、又は適切な処理回路によって実行するためのソフトウェアにおいて、又はこれらの組合せで実施することができる。
本明細書に記載されるステップ、関数、手順、モジュール及び/又はブロックは、汎用電子回路及び特定用途向け回路の双方を含む、ディスクリート回路又は集積回路技術等の任意の従来技術を用いてハードウェアで実施することができる。
代替的に又は補完するものとして、本明細書に記載されるステップ、関数、手順、モジュール及び/又はブロックのうちの少なくともいくつかを、1つ又は複数のプロセッサ又は処理装置等の適切な処理回路によって実行するためのコンピュータプログラム等のソフトウェアにおいて実施することができる。
処理回路の例は、限定ではないが、1つ又は複数のマイクロプロセッサ、1つ又は複数のデジタル信号プロセッサ(DSP)、1つ又は複数の中央処理装置(CPU)、ビデオアクセラレーションハードウェア、及び/又は1つ若しくは複数のフィールドプログラマブルゲートアレイ(FPGA)若しくは1つ若しくは複数のプログラマブルロジックコントローラ(PLC)等の任意の適切なプログラマブル論理回路を含む。
提案される技術が実施される任意の従来のデバイス又は装置の汎用処理機能を再利用することが可能であり得ることも理解されるべきである。例えば、既存のソフトウェアを再プログラムすることによって、又は新たなソフトウェアコンポーネントを追加することによって、既存のソフトウェアを再利用することも可能であり得る。
図7は、一実施形態によるプロセッサメモリ実施に基づくエンコーダ100の一例を示す概略ブロック図である。この特定の例では、エンコーダ100はプロセッサ101及びメモリ102を備える。メモリ102は、プロセッサ101によって実行可能な命令を含む。プロセッサ101は、初期露出値を計算し、露出値を計算し、露出値をLDR値に変換し、誤差を計算し、評価尺度を計算するように動作可能である。
オプションで、エンコーダ100は、通信回路の説明のための例として、入出力装置103も備えることができる。入出力装置103は、他のデバイス及び/又はネットワークノードとの有線及び/又は無線通信のための機能も含むことができる。特定の例では、入出力装置103は、1つ又は複数の他のノードとの、情報の送信及び/又は受信を含む通信のための無線回路に基づくことができる。入出力回路103は、プロセッサ101及び/又はメモリ102と相互接続することができる。例として、入出力装置103は、以下のもの:受信機、送信機、送受信機、入出力(I/O)回路、入力ポート及び/又は他のポート、のうちの任意のものを含むことができる。
特定の実施形態では、入出力装置103は、符号化又は圧縮されるHDRビデオフレームを受信するように設定され、符号化又は圧縮されたHDRビデオフレームを含むビットストリームを出力する。
図8は、一実施形態によるハードウェア回路実装に基づく、エンコーダ110の別の例を示す概略的なブロック図である。適切なハードウェア回路の特定の例は、1つ又は複数の適切に設定された、又は場合によっては再設定可能な電子回路、例えば特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は適切なレジスタ(REG)及び/若しくはメモリ装置(MEM)と接続して特殊な機能を実行するように相互接続されたディスクリート論理ゲート及び/若しくはフリップフロップに基づく回路等の任意の他のハードウェアロジックを含む。
図9は、適切なメモリ装置121と接続したプロセッサ122、123及びハードウェア回路124、125の双方の組合せに基づく、エンコーダ120の更に別の例を示す概略的なブロック図である。エンコーダ120は、1つ又は複数のプロセッサ122、123と、ソフトウェア(SW)及びデータのためのストレージを含むメモリ121と、ASIC及び/又はFPGA等のハードウェア回路124、125の1つ又は複数のユニットとを備える。このため、全体的な機能は、1つ又は複数のプロセッサ122、123における実行のためにプログラムされたソフトウェアと、ASIC及び/又はFPGA等の、1つ又は複数の事前に設定されるか又は場合によっては再設定可能なハードウェア回路124、125との間で分割される。実際のハードウェア−ソフトウェア間の分割は、処理速度、実装コスト及び他の要件を含む複数の要因に基づいてシステム設計者によって決めることができる。
図10は、一実施形態による、ユーザ機器(UE)200のコンピュータ実装の一例を示す概略図である。この特定の例では、本明細書に記載されるステップ、機能、手順、モジュール及び/又はブロックの少なくともいくつかがコンピュータプログラム240において実施される。コンピュータプログラム240は、1つ又は複数のプロセッサ210を含む処理回路によって実行されるようにメモリ240内にロードされる。プロセッサ210及びメモリ220は通常のソフトウェア実行を可能にするように互いに相互接続される。オプションの入出力(I/O)装置230も、符号化若しくは圧縮されるHDRビデオフレームの入力、及び/又は符号化若しくは圧縮されるHDRビデオフレームのビットストリームの出力を可能にするように、プロセッサ210及び/又はメモリ220に相互接続することができる。
「プロセッサ」という用語は、プログラムコード又はコンピュータプログラム命令を実行して、特定の処理、決定又は計算タスクを行うことが可能な任意のシステム又はデバイスとして汎用的な意味で解釈されるべきである。
このため、1つ又は複数のプロセッサ210を備える処理回路は、コンピュータプログラム240を実行するとき、本明細書に説明した処理タスク等の明確に定義された処理タスクを行うように設定される。
処理回路は、上記で記載したステップ、関数、手順及び/又はブロックを実行することのみに専用である必要はなく、他のタスクも実行することができる。
特定の実施形態において、コンピュータプログラム240は、プロセッサ210によって実行されると、プロセッサ210に、HDRビデオフレーム内のピクセルごとに、最小露出値パラメータ値を用いてHDRビデオフレーム内のピクセルの初期露出値を計算させる命令を含む。また、プロセッサ210は、HDRビデオフレーム内のピクセルごとに、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの初期露出値を計算させられる。プロセッサ210は更に、HDRビデオフレーム内のピクセルごとに、また最小露出パラメータ値から開始して最大露出パラメータ値までの露出パラメータ値ごとに、HDRビデオフレーム内のピクセルの以前に計算された露出値に定数を乗算したものから、HDRビデオフレーム内のピクセルの露出値を計算させられる。プロセッサ210は更に、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの以前に計算された露出値に定数を乗算したものから、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を計算させられる。また、プロセッサ210は、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレーム内のピクセルの露出値を、HDRビデオフレーム内のピクセルのLDR値に変換させられる。プロセッサ210は更に、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルのLDR値に変換させられる。プロセッサ210は更に、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレーム内のピクセルのLDR値と、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルのLDR値との間の差を表す誤差を計算させられる。また、プロセッサ210は、HDRビデオフレーム内の全てのピクセルについて、及び全ての露出パラメータ値について、誤差に基づいて評価尺度を計算させられる。
提案される技術は、コンピュータプログラム240を備えるキャリア250も提供する。キャリア250は、電子信号、光信号、電磁信号、磁気信号、電気信号、無線信号、マイクロ波信号又はコンピュータ可読ストレージ媒体のうちの1つである。
例として、ソフトウェア又はコンピュータプログラム240は、通常、コンピュータ可読媒体250、特に不揮発性媒体において搬送又は記憶されるコンピュータプログラム製品として実現することができる。コンピュータ可読媒体250は、限定ではないが、読出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイディスク、ユニバーサルシリアルバス(USB)メモリ、ハードディスクドライブ(HDD)ストレージデバイス、フラッシュメモリ、磁気テープ、又は任意の他の従来のメモリデバイスを含む1つ又は複数の取外し可能又は非取外し可能メモリデバイスを含むことができる。このため、コンピュータプログラム240は、図10のユーザ機器200によって表されるコンピュータ又は等価な処理デバイスの動作メモリ内に、その処理回路によって実行されるようにロードすることができる。
本明細書において提示される1つ又は複数の流れ図は、1つ又は複数のプロセッサによって実行されるとき、1つ又は複数のコンピュータ流れ図とみなすことができる。対応するエンコーダは、機能モジュールのグループとして定義することができ、プロセッサによって実行される各ステップは機能モジュールに対応する。この場合、機能モジュールは、プロセッサ上で実行されるコンピュータプログラムとして実装される。
このため、メモリ内に常駐するコンピュータプログラムは、プロセッサによって実行されると、本明細書に記載されるステップ及び/又はタスクの少なくとも一部を実行するように設定される適切な機能モジュールとして編成することができる。
図11は、HDRビデオフレームのための評価尺度を決定するためのエンコーダ130の一例を示す概略図である。エンコーダ130は、HDRビデオフレーム内のピクセルごとに、i)最小露出パラメータ値を用いてHDRビデオフレーム内のピクセルの初期露出値を計算し、ii)HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの初期露出値を計算するための初期露出値計算機131を備える。また、エンコーダ130は、HDRビデオフレーム内のピクセルごとに、また最小露出パラメータ値から開始して最大露出パラメータ値までの露出パラメータ値ごとに、i)HDRビデオフレーム内のピクセルの以前に計算された露出値に定数を乗算したものから、HDRビデオフレーム内のピクセルの露出値を計算し、ii)HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの以前に計算された露出値に定数を乗算したものから、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を計算するための露出値計算機132も備える。エンコーダ130は、HDRビデオフレーム内のピクセルごとに、また、露出パラメータ値ごとに、i)HDRビデオフレーム内のピクセルの露出値を、HDRビデオフレーム内のピクセルのLDR値に変換し、ii)HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルの露出値を、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルのLDR値に変換するための露出値変換器133を更に備える。エンコーダ130は、HDRビデオフレーム内のピクセルごとに、また露出パラメータ値ごとに、HDRビデオフレーム内のピクセルのLDR値と、HDRビデオフレームの圧縮に続いて取得されるHDRビデオフレームのバージョンにおける対応するピクセルのLDR値との差を表す誤差を計算するための誤差計算機134を更に備える。エンコーダ130は、HDRビデオフレーム内の全てのピクセル及び全ての露出パラメータ値について、誤差に基づいて評価尺度を計算するための評価尺度計算機135を更に備える。
実施形態の更なる態様は、図12に示すようなHDRビデオフレーム符号化デバイス140に関する。HDRビデオフレーム符号化デバイス140は、上記で記載され、図7〜図9、図11のうちの任意のものにおいて開示された実施形態のエンコーダ100、110、120、130を備える。エンコーダ100、110、120、130は、HDRビデオフレームの少なくとも一部分の複数の圧縮されたバージョンを取得するために、複数の圧縮モードに従ってHDRビデオフレームの少なくとも一部分を圧縮し、複数の圧縮モードの圧縮モードごとに、HDRビデオフレームのそれぞれの評価尺度を決定するように設定される。また、HDRビデオフレーム符号化デバイス140は、複数の評価尺度に基づいて、HDRビデオフレームの少なくとも一部分の圧縮されたバージョンを、HDRビデオフレームの少なくとも一部分の符号化された表現として選択するように設定される選択器141も備える。
一実施形態では、選択器141は、HDRビデオフレーム10の少なくとも一部分の符号化された表現として、HDRビデオフレームのこの少なくとも一部分の複数の圧縮されたバージョンの中から、最高の評価尺度を有するHDRビデオフレームの圧縮されたバージョンを選択するように設定される。
選択器141は、図7に示すようなエンコーダ100、図8に示すようなハードウェア要素、図9に示すようなソフトウェア+プロセッサ及びハードウェア要素の組合せの他の機能と併せて、又は図11に示すような機能モジュールとして、プロセッサによって実施することができる。
HDRビデオフレーム符号化デバイス140は、プロセッサによって実行可能な命令を含むコンピュータプログラムとして更に実施することができる。
ネットワークノード及び/又はサーバ等の、リソースがネットワークを介して遠隔ロケーションにサービスとして送達されるネットワークデバイスにおいてコンピューティングサービスを提供することがますます一般的になっている。例として、これは、本明細書において記載されるような機能を、1つ又は複数の別個の物理ノード又はサーバに分散又は再割当てすることができることを意味する。機能は、別個の物理ノード、すなわちいわゆるクラウド内に配置することができる1つ又は複数の協働動作する物理マシン及び/又は仮想マシンに再配置又は分散することができる。これは、場合によってはクラウドコンピューティングとも呼ばれる。クラウドコンピューティングは、ネットワーク、サーバ、ストレージ、アプリケーション及び汎用サービス又はカスタマイズされたサービス等の設定可能なコンピューティングリソースのプールへのユビキタスなオンデマンドネットワークアクセスを可能にするためのモデルである。
図13は、1つ又は複数のクラウドベースのネットワークデバイス300と協働する、アクセスネットワーク320及び/又はコアネットワーク330及び/又は運用及びサポートシステム(OSS)340を含む無線通信システムの一例を示す概略図である。そのような場合、本明細書において開示されるようなHDRビデオフレームのための評価尺度の決定及び/又はHDRビデオフレームの符号化は、ネットワーク310を通じて相互接続された1つ又は複数のそのようなネットワークデバイス300において実施することができる。
ネットワークデバイス300は、通常、ネットワーク310において他の電子デバイスに通信可能に接続されている電子デバイスとみなすことができる。
例として、ネットワークデバイス300は、ハードウェア、ソフトウェア又はこれらの組合せにおいて実施することができる。例えば、ネットワークデバイス300は、専用ネットワークデバイス又は汎用ネットワークデバイス又はこれらのハイブリッドとすることができる。
様々な態様による方法は、デバイス、例えばエンコーダによって実施することができる。更に、デバイスは、ビデオカメラ、携帯電話、スマートフォン等のユーザデバイスとすることができる。このため、そのようなデバイスは、様々な実施形態及び態様に従って説明される方法ステップを実行するように設定される。
デバイスは、命令、例えば本方法を実行するためのソフトウェアコードを記憶するためのメモリと、命令を実行するように設定されるプロセッサとを備えることができる。
上記で記載した実施形態は、本発明のいくつかの説明のための例として理解される。当業者であれば、本発明の範囲から逸脱することなく、様々な変更、組合せ及び変形を実施形態に対し行うことができることが理解するであろう。特に、異なる実施形態における異なる部分的解決策を、技術的に可能な場合、他の設定において組み合わせることができる。一方、本発明の範囲は、添付の特許請求の範囲によって定義される。
参考文献
[1]Munkbergら「High dynamic range texture compression for graphics hardware」ACM Transactions on Graphics(Proceedings of AM SIGGRAPH 2006,vol.25,no.3,2006)

Claims (29)

  1. ハイダイナミックレンジ(HDR)ビデオフレーム(10)のための評価尺度を決定するための方法であって、
    前記HDRビデオフレーム(10)内のピクセルごとに、
    最小露出パラメータ値を用いて前記HDRビデオフレーム(10)内の前記ピクセルの初期露出値を計算すること(S1)と、
    前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)のバージョン(20)における対応するピクセルの初期露出値を計算すること(S2)と、
    前記最小露出パラメータ値から開始して最大露出パラメータ値までの露出パラメータ値ごとに、
    前記露出パラメータ値について、前記HDRビデオフレーム(10)内の前記ピクセルの以前に計算された露出値に定数を乗算したものから、前記HDRビデオフレーム(10)内の前記ピクセルの露出値を計算するステップ(S3)、
    前記露出パラメータ値について、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの以前に計算された露出値に前記定数を乗算したものから、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの露出値を計算するステップ(S4)、
    前記HDRビデオフレーム(10)内の前記ピクセルの前記露出値を、前記HDRビデオフレーム(10)内の前記ピクセルのローダイナミックレンジ(LDR)値に変換するステップ(S5)、
    前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記露出値を、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルのLDR値に変換するステップ(S6)、及び
    前記HDRビデオフレーム(10)内の前記ピクセルの前記LDR値と、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記LDR値との差を表す誤差を計算するステップ(S7)を実行することと、
    を実行することと、
    前記HDRビデオフレーム(10)内の全てのピクセル及び全ての露出パラメータ値について、前記誤差に基づいて前記評価尺度を計算すること(S8)と、
    を含む、方法。
  2. 前記HDRビデオフレーム(10)内の前記ピクセルの前記露出値を変換すること(S5)は、前記HDRビデオフレーム(10)内の前記ピクセルの前記露出値を、0.5の加算及びキャスティング演算を用いて前記LDR値に変換することを含む、請求項1に記載の方法。
  3. 前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記露出値を変換すること(S6)は、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)において、前記対応するピクセルの前記露出値を、0.5の加算、min関数及びキャスティング演算を用いて前記LDR値に変換すること(S6)を含む、請求項1又は2に記載の方法。
  4. 前記HDRビデオフレーム(10)内の各ピクセルは、赤色成分、青色成分及び緑色成分を含み、前記方法は、
    ceil(γ×log(0.5/255.0)/log(2)−log(colMax)/log(2))に基づいて前記最小露出パラメータ値を計算すること(S11)であって、ここで、ceil(x)は、xを切り上げ、γはディスプレイガンマを表し、colMaxは、前記HDRビデオフレーム(10)内の前記ピクセルの前記赤色成分、前記緑色成分及び前記青色成分のうちの最も大きな色成分値を表すことと、
    floor(γ×log(254.5/255.0)/log(2)−log(colMax)/log(2))に基づいて前記最大露出パラメータ値を計算すること(S12)であって、ここで、floor(x)は、xを切り下げることと、
    を更に含む、請求項1ないし3のいずれか一項に記載の方法。
  5. 前記HDRビデオフレーム(10)内の前記ピクセルの前記初期露出値を計算すること(S1)は、
    rOrigProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×rOrig))
    gOrigProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×gOrig))
    bOrigProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×bOrig))
    を計算すること(S1)を含み、ここで、rOrigProcessedは、前記HDRビデオフレーム(10)内の前記ピクセルの赤色成分の露出値を表し、gOrigProcessedは、前記HDRビデオフレーム(10)内の前記ピクセルの緑色成分の露出値を表し、bOrigProcessedは、前記HDRビデオフレーム(10)内の前記ピクセルの青色成分の露出値を表し、twoToC=exp((cMin−1)×log(2.0))であり、cMinは前記最小露出パラメータ値を表し、rOrigは前記HDRビデオフレーム(10)内の前記ピクセルの前記赤色成分を表し、gOrigは前記HDRビデオフレーム(10)内の前記ピクセルの前記緑色成分を表し、bOrigは前記HDRビデオフレーム(10)内の前記ピクセルの前記青色成分を表し、
    前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記初期露出値を計算すること(S2)は、
    rCopyProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×rCopy))
    gCopyProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×gCopy))
    bCopyProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×bCopy))
    を計算すること(S2)を含み、ここで、rCopyProcessedは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの赤色成分の露出値を表し、gCopyProcessedは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの緑色成分の露出値を表し、bCopyProcessedは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの青色成分の露出値を表し、rCopyは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記赤色成分を表し、gCopyは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記緑色成分を表し、bCopyは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記青色成分を表す、請求項4に記載の方法。
  6. 前記HDRビデオフレーム(10)内の前記ピクセルの前記露出値を計算すること(S3)は、前記最小露出パラメータ値から開始して前記最大露出パラメータ値までの露出パラメータ値ごとに、
    rOrigProcessed×=factor
    gOrigProcessed×=factor
    bOrigProcessed×=factor
    を計算すること(S3)を含み、ここで、factor=exp((1.0/γ)×log(2.0))であり、
    前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記露出値を計算すること(S4)は、前記最小露出パラメータ値から開始して前記最大露出パラメータ値までの露出パラメータ値ごとに、
    rCopyProcessed×=factor
    gCopyProcessed×=factor
    bCopyProcessed×=factor
    を計算すること(S4)を含む、請求項5に記載の方法。
  7. 前記HDRビデオフレーム(10)内の前記ピクセルの前記露出値を変換すること(S5)は、
    LDRorigR=(int)(rOrigProcessed+0.5)
    LDRorigG=(int)(gOrigProcessed+0.5)
    LDRorigB=(int)(bOrigProcessed+0.5)
    を計算すること(S5)を含み、ここで、LDRorigRは前記HDRビデオフレーム(10)内の前記ピクセルの赤色成分のLDR値を表し、LDRorigGは前記HDRビデオフレーム(10)内の前記ピクセルの緑色成分のLDR値を表し、LDRorigBは前記HDRビデオフレーム(10)内の前記ピクセルの青色成分のLDR値を表し、(int)はキャスティング演算を表し、
    前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記露出値を変換すること(S6)は、
    LDRcopyR=(int)dMin(rCopyProcessed+0.5,255.5)
    LDRcopyG=(int)dMin(gCopyProcessed+0.5,255.5)
    LDRcopyB=(int)dMin(bCopyProcessed+0.5,255.5)
    を計算すること(S6)を含み、ここで、LDRcopyRは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの赤色成分のLDR値を表し、LDRcopyGは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの緑色成分のLDR値を表し、LDRcopyBは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの青色成分のLDR値を表し、dMin(x,y)は、(x>y)の場合、yを返し、そうでない場合、xを返すように実装されるmin関数を表す、請求項6に記載の方法。
  8. 前記誤差を計算すること(S7)は、前記誤差を、
    (LDRorigR-LDRcopyR)×(LDRorigR-LDRcopyR)+(LDRorigG-LDRcopyG)×(LDRorigG-LDRcopyG)+(LDRorigB-LDRcopyB)×(LDRorigB-LDRcopyB)
    として計算すること(S7)を含む、請求項7に記載の方法。
  9. 前記誤差を計算すること(S7)は、前記誤差を、
    wR×(LDRorigR-LDRcopyR)×(LDRorigR-LDRcopyR)+wG×(LDRorigG-LDRcopyG)×(LDRorigG-LDRcopyG)+wB×(LDRorigB-LDRcopyB)×(LDRorigB-LDRcopyB)
    として計算すること(S7)を含み、w、w、wは重みである、請求項7に記載の方法。
  10. 前記評価尺度を計算すること(S8)は、
    平均二乗誤差を、前記HDRビデオフレーム(10)内の全てのピクセル及び全ての露出パラメータ値のための平均誤差として計算すること(S13)と、
    前記平均二乗誤差に基づいて前記評価尺度を計算すること(S14)と、
    を含む、請求項1ないし9のいずれか一項に記載の方法。
  11. 前記評価尺度を計算すること(S14)は、前記評価尺度を、前記平均二乗誤差のピーク信号対雑音比として、
    10×log((255×255)/MSE)/log(10)
    として計算すること(S14)を含み、MSEは前記平均二乗誤差を表す、請求項10に記載の方法。
  12. ハイダイナミックレンジ(HDR)ビデオフレーム(10)を符号化する方法であって、前記方法は、
    前記HDRビデオフレーム(10)の少なくとも一部分の複数の圧縮されたバージョンを取得するために、複数の圧縮モードに従って前記HDRビデオフレーム(10)の前記少なくとも一部分を圧縮すること(S20)と、
    前記複数の圧縮モードの圧縮モードごとに、請求項1〜11のいずれか一項に従って前記HDRビデオフレーム(10)のそれぞれの評価尺度を決定すること(S21)と、
    複数の評価尺度に基づいて、前記HDRビデオフレーム(10)の前記少なくとも一部分の圧縮されたバージョンを、前記HDRビデオフレーム(10)の前記少なくとも一部分の符号化された表現として選択すること(S22)と、
    を含む、方法。
  13. ハイダイナミックレンジ(HDR)ビデオフレーム(10)の評価尺度を決定するためのエンコーダ(100、110、120)であって、
    前記エンコーダ(100、110、120)は、前記HDRビデオフレーム(10)内のピクセルごとに、最小露出パラメータ値を用いて前記HDRビデオフレーム(10)内の前記ピクセルの初期露出値を計算するように設定され、
    前記エンコーダ(100、110、120)は、前記HDRビデオフレーム(10)内のピクセルごとに、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)のバージョン(20)における対応するピクセルの初期露出値を計算するように設定され、
    前記エンコーダ(100、110、120)は、前記HDRビデオフレーム(10)内のピクセルごとに、また前記最小露出パラメータ値から開始して最大露出パラメータ値までの露出パラメータ値ごとに、前記HDRビデオフレーム(10)内の前記ピクセルの以前に計算された露出値に定数を乗算したものから、前記HDRビデオフレーム(10)内の前記ピクセルの露出値を計算するように設定され、
    前記エンコーダ(100、110、120)は、前記HDRビデオフレーム(10)内のピクセルごとに、また前記最小露出パラメータ値から開始して前記最大露出パラメータ値までの露出パラメータ値ごとに、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの以前に計算された露出値に前記定数を乗算したものから、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの露出値を計算するように設定され、
    前記エンコーダ(100、110、120)は、前記HDRビデオフレーム(10)内のピクセルごとに、また前記最小露出パラメータ値から開始して前記最大露出パラメータ値までの露出パラメータ値ごとに、前記HDRビデオフレーム(10)内の前記ピクセルの前記露出値を、前記HDRビデオフレーム(10)内の前記ピクセルのローダイナミックレンジ(LDR)値に変換するように設定され、
    前記エンコーダ(100、110、120)は、前記HDRビデオフレーム(10)内のピクセルごとに、また前記最小露出パラメータ値から開始して前記最大露出パラメータ値までの露出パラメータ値ごとに、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記露出値を、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルのLDR値に変換するように設定され、
    前記エンコーダ(100、110、120)は、前記HDRビデオフレーム(10)内のピクセルごとに、また前記最小露出パラメータ値から開始して前記最大露出パラメータ値までの露出パラメータ値ごとに、前記HDRビデオフレーム(10)内の前記ピクセルの前記LDR値と、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記LDR値との差を表す誤差を計算するように設定され、
    前記エンコーダ(100、110、120)は、前記HDRビデオフレーム(10)内の全てのピクセル及び全ての露出パラメータ値について、前記誤差に基づいて前記評価尺度を計算するように設定される、エンコーダ。
  14. 前記エンコーダ(100、110、120)は、前記HDRビデオフレーム(10)内のピクセルごとに、また前記最小露出パラメータ値から開始して前記最大露出パラメータ値までの露出パラメータ値ごとに、前記HDRビデオフレーム(10)内の前記ピクセルの前記露出値を、0.5の加算及びキャスティング演算を用いて前記LDR値に変換するように設定される、請求項13に記載のエンコーダ。
  15. 前記エンコーダ(100、110、120)は、前記HDRビデオフレーム(10)内のピクセルごとに、また前記最小露出パラメータ値から開始して前記最大露出パラメータ値までの露出パラメータ値ごとに、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)において、前記対応するピクセルの前記露出値を、0.5の加算、min関数及びキャスティング演算を用いて前記LDR値に変換するように設定される、請求項13又は14に記載のエンコーダ。
  16. 前記HDRビデオフレーム(10)内の各ピクセルは、赤色成分、青色成分及び緑色成分を含み、
    前記エンコーダ(100、110、120)は、前記HDRビデオフレーム(10)内のピクセルごとに、ceil(γ×log(0.5/255.0)/log(2)−log(colMax)/log(2))に基づいて前記最小露出パラメータ値を計算するように設定され、ここで、ceil(x)は、xを切り上げ、γはディスプレイガンマを表し、colMaxは、前記HDRビデオフレーム(10)内の前記ピクセルの前記赤色成分、前記緑色成分及び前記青色成分のうちの最も大きな色成分値を表し、
    前記エンコーダ(100、110、120)は、前記HDRビデオフレーム(10)内のピクセルごとに、floor(γ×log(254.5/255.0)/log(2)−log(colMax)/log(2))に基づいて前記最大露出パラメータ値を計算するように設定され、ここで、floor(x)は、xを切り下げる、請求項13ないし15のいずれか一項に記載のエンコーダ。
  17. 前記エンコーダ(100、110、120)は、前記HDRビデオフレーム(10)内のピクセルごとに、
    rOrigProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×rOrig))
    gOrigProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×gOrig))
    bOrigProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×bOrig))
    rCopyProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×rCopy))
    gCopyProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×gCopy))
    bCopyProcessed=255.0×exp((1.0/γ)×log(1.0×twoToC×bCopy))
    を計算するように設定され、ここで、rOrigProcessedは、前記HDRビデオフレーム(10)内の前記ピクセルの赤色成分の露出値を表し、gOrigProcessedは、前記HDRビデオフレーム(10)内の前記ピクセルの緑色成分の露出値を表し、bOrigProcessedは、前記HDRビデオフレーム(10)内の前記ピクセルの青色成分の露出値を表し、twoToC=exp((cMin−1)×log(2.0))であり、cMinは前記最小露出パラメータ値を表し、rOrigは前記HDRビデオフレーム(10)内の前記ピクセルの前記赤色成分を表し、gOrigは前記HDRビデオフレーム(10)内の前記ピクセルの前記緑色成分を表し、bOrigは前記HDRビデオフレーム(10)内の前記ピクセルの前記青色成分を表し、rCopyProcessedは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの赤色成分の露出値を表し、gCopyProcessedは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの緑色成分の露出値を表し、bCopyProcessedは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの青色成分の露出値を表し、rCopyは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記赤色成分を表し、gCopyは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記緑色成分を表し、bCopyは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記青色成分を表す、請求項16に記載のエンコーダ。
  18. 前記エンコーダ(100、110、120)は、前記HDRビデオフレーム(10)内のピクセルごとに、また前記最小露出パラメータ値から開始して前記最大露出パラメータ値までの露出パラメータ値ごとに、
    rOrigProcessed×=factor
    gOrigProcessed×=factor
    bOrigProcessed×=factor
    rCopyProcessed×=factor
    gCopyProcessed×=factor
    bCopyProcessed×=factor
    を計算するように設定され、factor=exp((1.0/γ)×log(2.0))である、請求項17に記載のエンコーダ。
  19. 前記エンコーダ(100、110、120)は、前記HDRビデオフレーム(10)内のピクセルごとに、また前記最小露出パラメータ値から開始して前記最大露出パラメータ値までの露出パラメータ値ごとに、
    LDRorigR=(int)(rOrigProcessed+0.5)
    LDRorigG=(int)(gOrigProcessed+0.5)
    LDRorigB=(int)(bOrigProcessed+0.5)
    LDRcopyR=(int)dMin(rCopyProcessed+0.5,255.5)
    LDRcopyG=(int)dMin(gCopyProcessed+0.5,255.5)
    LDRcopyB=(int)dMin(bCopyProcessed+0.5,255.5)
    を計算するように設定され、ここで、LDRorigRは前記HDRビデオフレーム(10)内の前記ピクセルの赤色成分のLDR値を表し、LDRorigGは前記HDRビデオフレーム(10)内の前記ピクセルの緑色成分のLDR値を表し、LDRorigBは前記HDRビデオフレーム(10)内の前記ピクセルの青色成分のLDR値を表し、(int)はキャスティング演算を表し、LDRcopyRは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの赤色成分のLDR値を表し、LDRcopyGは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの緑色成分のLDR値を表し、LDRcopyBは、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの青色成分のLDR値を表し、dMin(x,y)は、(x>y)の場合、yを返し、そうでない場合、xを返すように実装されるmin関数を表す、請求項18に記載のエンコーダ。
  20. 前記エンコーダ(100、110、120)は、前記誤差を、
    (LDRorigR-LDRcopyR)×(LDRorigR-LDRcopyR)+(LDRorigG-LDRcopyG)×(LDRorigG-LDRcopyG)+(LDRorigB-LDRcopyB)×(LDRorigB-LDRcopyB)
    として計算するように設定される、請求項19に記載のエンコーダ。
  21. 前記エンコーダ(100、110、120)は、前記誤差を、
    wR×(LDRorigR-LDRcopyR)×(LDRorigR-LDRcopyR)+wG×(LDRorigG-LDRcopyG)×(LDRorigG-LDRcopyG)+wB×(LDRorigB-LDRcopyB)×(LDRorigB-LDRcopyb)
    として計算するように設定され、w,w,wは重みである、請求項19に記載のエンコーダ。
  22. 前記エンコーダ(100、110、120)は、平均二乗誤差を、前記HDRビデオフレーム(10)内の全てのピクセル及び全ての露出パラメータ値についての平均誤差として計算するように設定され、
    前記エンコーダ(100、110、120)は、前記平均二乗誤差に基づいて前記評価尺度を計算するように設定される、請求項13ないし21のいずれか一項に記載のエンコーダ。
  23. 前記エンコーダ(100、110、120)は、前記評価尺度を、前記平均二乗誤差のピーク信号対雑音比として、
    10×log((255×255)/MSE)/log(10)
    として計算するように設定され、MSEは前記平均二乗誤差を表す、請求項22に記載のエンコーダ。
  24. プロセッサ(111)と、
    前記プロセッサ(111)によって実行可能な命令を含むメモリ(112)と、
    を備え、前記プロセッサ(111)は、
    前記初期露出値を計算し、
    前記露出値を計算し、
    前記露出値を前記LDR値に変換し、
    前記誤差を計算し、
    前記評価尺度を計算する、
    ように動作可能である、請求項13ないし23のいずれか一項に記載のエンコーダ。
  25. ハイダイナミックレンジ(HDR)ビデオフレーム(10)のための評価尺度を決定するためのエンコーダ(130)であって、前記エンコーダ(130)は、
    前記HDRビデオフレーム(10)内のピクセルごとに、i)最小露出パラメータ値を用いて前記HDRビデオフレーム(10)内の前記ピクセルの初期露出値を計算し、ii)前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)のバージョン(20)における対応するピクセルの初期露出値を計算するための初期露出値計算機(131)と、
    前記HDRビデオフレーム(10)内のピクセルごとに、また、前記最小露出パラメータ値から開始して最大露出パラメータ値までの露出パラメータ値ごとに、i)前記HDRビデオフレーム(10)内の前記ピクセルの以前に計算された露出値に定数を乗算したものから、前記HDRビデオフレーム(10)内の前記ピクセルの露出値を計算し、ii)前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの以前に計算された露出値に前記定数を乗算したものから、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの露出値を計算するための露出値計算機(132)と、
    前記HDRビデオフレーム(10)内のピクセルごとに、また、前記最小露出パラメータ値から開始して前記最大露出パラメータ値までの露出パラメータ値ごとに、i)前記HDRビデオフレーム(10)内の前記ピクセルの前記露出値を、前記HDRビデオフレーム(10)内の前記ピクセルのローダイナミックレンジ(LDR)値に変換し、ii)前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記露出値を、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルのLDR値に変換するための露出値変換器(133)と、
    前記HDRビデオフレーム(10)内のピクセルごとに、また、前記最小露出パラメータ値から開始して前記最大露出パラメータ値までの露出パラメータ値ごとに、前記HDRビデオフレーム(10)内の前記ピクセルの前記LDR値と、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記LDR値との差を表す誤差を計算するための誤差計算機(134)と、
    前記HDRビデオフレーム(10)内の全てのピクセル及び全ての露出パラメータ値について、前記誤差に基づいて前記評価尺度を計算するための評価尺度計算機(135)と、
    を備える、エンコーダ。
  26. ハイダイナミックレンジ(HDR)ビデオフレーム符号化デバイス(140)であって、
    請求項13〜25のいずれか一項に記載のエンコーダ(100、110、120、130)であって、前記HDRビデオフレーム(10)の少なくとも一部分の複数の圧縮されたバージョンを取得するために、複数の圧縮モードに従って前記HDRビデオフレーム(10)の前記少なくとも一部分を圧縮し、前記複数の圧縮モードの圧縮モードごとに、前記HDRビデオフレーム(10)のそれぞれの評価尺度を決定するように設定される、エンコーダと、
    前記複数の評価尺度に基づいて、前記HDRビデオフレーム(10)の前記少なくとも一部分の圧縮されたバージョンを、前記HDRビデオフレーム(10)の前記少なくとも一部分の符号化された表現として選択するように設定される選択器(141)と、
    を備える、HDRビデオフレーム符号化デバイス。
  27. 前記選択器(141)は、前記HDRビデオフレーム(10)の前記少なくとも一部分の前記符号化された表現として、前記HDRビデオフレーム(10)の前記少なくとも一部分の前記複数の圧縮されたバージョンの中から、最高の評価尺度を有する前記HDRビデオフレーム(10)の圧縮されたバージョンを選択するように設定される、請求項26に記載のHDRビデオフレーム符号化デバイス。
  28. 命令を含むコンピュータプログラム(240)であって、前記命令は、プロセッサ(210)によって実行されると、前記プロセッサ(210)に、
    前記HDRビデオフレーム(10)内のピクセルごとに、最小露出パラメータ値を用いて前記HDRビデオフレーム(10)内の前記ピクセルの初期露出値を計算させ、
    前記HDRビデオフレーム(10)内のピクセルごとに、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)のバージョン(20)における対応するピクセルの初期露出値を計算させ、
    前記HDRビデオフレーム(10)内のピクセルごとに、また前記最小露出パラメータ値から開始して最大露出パラメータ値までの露出パラメータ値ごとに、前記HDRビデオフレーム(10)内の前記ピクセルの以前に計算された露出値に定数を乗算したものから、前記HDRビデオフレーム(10)内の前記ピクセルの露出値を計算させ、
    前記HDRビデオフレーム(10)内のピクセルごとに、また前記最小露出パラメータ値から開始して前記最大露出パラメータ値までの露出パラメータ値ごとに、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの以前に計算された露出値に定数を乗算したものから、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの露出値を計算させ、
    前記HDRビデオフレーム(10)内のピクセルごとに、また前記最小露出パラメータ値から開始して前記最大露出パラメータ値までの露出パラメータ値ごとに、前記HDRビデオフレーム(10)内の前記ピクセルの前記露出値を、前記HDRビデオフレーム(10)内の前記ピクセルのローダイナミックレンジ(LDR)値に変換させ、
    前記HDRビデオフレーム(10)内のピクセルごとに、また前記最小露出パラメータ値から開始して前記最大露出パラメータ値までの露出パラメータ値ごとに、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記露出値を、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルのLDR値に変換させ、
    前記HDRビデオフレーム(10)内のピクセルごとに、また前記最小露出パラメータ値から開始して前記最大露出パラメータ値までの露出パラメータ値ごとに、前記HDRビデオフレーム(10)内の前記ピクセルの前記LDR値と、前記HDRビデオフレーム(10)の圧縮に続いて取得される前記HDRビデオフレーム(10)の前記バージョン(20)における前記対応するピクセルの前記LDR値との差を表す誤差を計算させ、
    前記HDRビデオフレーム(10)内の全てのピクセル及び全ての露出パラメータ値について、前記誤差に基づいて前記評価尺度を計算させる、コンピュータプログラム。
  29. 請求項28に記載のコンピュータプログラム(240)を備えるキャリア(250)であって、前記キャリア(250)は、電子信号、光信号、電磁信号、磁気信号、電気信号、無線信号、マイクロ波信号又はコンピュータ可読ストレージ媒体のうちの1つである、キャリア。
JP2016534116A 2014-10-06 2015-09-24 Hdrビデオフレームのための評価尺度 Pending JP2017500792A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462060155P 2014-10-06 2014-10-06
US62/060,155 2014-10-06
PCT/SE2015/050998 WO2016056974A1 (en) 2014-10-06 2015-09-24 Evaluation measure for hdr video frames

Publications (1)

Publication Number Publication Date
JP2017500792A true JP2017500792A (ja) 2017-01-05

Family

ID=55653445

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016534116A Pending JP2017500792A (ja) 2014-10-06 2015-09-24 Hdrビデオフレームのための評価尺度

Country Status (3)

Country Link
US (1) US20160277743A1 (ja)
JP (1) JP2017500792A (ja)
WO (1) WO2016056974A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107040776B (zh) * 2017-03-29 2019-01-18 华南理工大学 一种基于高动态范围的视频质量评估方法
US10643358B2 (en) * 2017-04-24 2020-05-05 Intel Corporation HDR enhancement with temporal multiplex
US11327802B2 (en) * 2019-07-31 2022-05-10 Microsoft Technology Licensing, Llc System and method for exporting logical object metadata
CN110599418B (zh) * 2019-09-05 2023-04-28 西安邮电大学 一种变换域融合的全局色调映射方法
US11710220B2 (en) * 2019-09-23 2023-07-25 Intel Corporation Compressing dynamic range in images using darkness gamma transfer function
CN112714246A (zh) * 2019-10-25 2021-04-27 Tcl集团股份有限公司 连拍照片获取方法、智能终端及存储介质
DE112019007869T5 (de) * 2019-11-01 2022-09-15 LG Electronics Inc. Signalverarbeitungsvorrichtung und Bilderzeugungsvorrichtung damit

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013106333A (ja) * 2011-11-17 2013-05-30 Sony Corp 画像処理装置および方法
JP2013528034A (ja) * 2010-04-19 2013-07-04 ドルビー ラボラトリーズ ライセンシング コーポレイション 高ダイナミックレンジ、視覚ダイナミックレンジおよび広色範囲の画像およびビデオの品質評価
JP2015529890A (ja) * 2012-10-08 2015-10-08 コーニンクレッカ フィリップス エヌ ヴェ 色制約付きの輝度変更画像処理
JP2016517637A (ja) * 2013-02-21 2016-06-16 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 改善されたhdrイメージ符号化及び復号化方法、装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000013806A (ja) * 1998-06-23 2000-01-14 Mitsubishi Electric Corp 画像処理装置及び画像処理方法
US8085852B2 (en) * 2007-06-26 2011-12-27 Mitsubishi Electric Research Laboratories, Inc. Inverse tone mapping for bit-depth scalable image coding
WO2016003349A1 (en) * 2014-07-01 2016-01-07 Telefonaktiebolaget L M Ericsson (Publ) Evaluation measure for images

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013528034A (ja) * 2010-04-19 2013-07-04 ドルビー ラボラトリーズ ライセンシング コーポレイション 高ダイナミックレンジ、視覚ダイナミックレンジおよび広色範囲の画像およびビデオの品質評価
JP2013106333A (ja) * 2011-11-17 2013-05-30 Sony Corp 画像処理装置および方法
JP2015529890A (ja) * 2012-10-08 2015-10-08 コーニンクレッカ フィリップス エヌ ヴェ 色制約付きの輝度変更画像処理
JP2016517637A (ja) * 2013-02-21 2016-06-16 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 改善されたhdrイメージ符号化及び復号化方法、装置

Also Published As

Publication number Publication date
US20160277743A1 (en) 2016-09-22
WO2016056974A1 (en) 2016-04-14

Similar Documents

Publication Publication Date Title
JP2017500792A (ja) Hdrビデオフレームのための評価尺度
US11272175B2 (en) Deringing filter for video coding
US10469849B2 (en) Video and image encoding process
US9299317B2 (en) Local multiscale tone-mapping operator
TWI539822B (zh) 利用時間性同調動態範圍對映的視訊編碼技術
US11122263B2 (en) Deringing filter for video coding
WO2020258010A1 (zh) 图像编解码方法、编码器、解码器以及存储介质
US9749635B2 (en) Method and apparatus for quantization level clipping
WO2016003349A1 (en) Evaluation measure for images
JP7293330B2 (ja) ビデオコーディングにおけるフィルタリングのための装置および方法
JP6360841B2 (ja) 画像ダイナミックレンジ変換演算子を選択するための方法およびデバイス
JP2017505001A (ja) ビデオ符号化および復号におけるシンタックス要素符号化方法および装置
US20190238866A1 (en) An efficient lut implementation of luma adjustment
KR20160102414A (ko) 높은 동적 범위 이미지를 인코딩 및/또는 비트스트림을 디코딩하기 위한 방법 및 장치
KR20160019060A (ko) 큰 동적 범위 픽처들의 평균 휘도를 적응시키기 위한 인코딩과 디코딩 방법들 및 대응하는 인코더 및 디코더
US20140092116A1 (en) Wide dynamic range display
US20180278968A1 (en) Method for the encoding and decoding of hdr images
JP2016063284A (ja) 画像処理装置、画像処理方法および画像処理プログラム
US20160337666A1 (en) Methods and apparatus to perform fractional-pixel interpolation filtering for media coding
US11785204B1 (en) Frequency domain mode decision for joint chroma coding
US11930163B2 (en) Methods and systems for combined lossless and lossy coding
KR20140139684A (ko) 이미지 코덱 회로의 동작 방법, 이미지 데이터를 인코딩하는 인코딩 방법 및 이미지 데이터를 디코딩하는 디코딩 방법
WO2024124188A1 (en) Method and apparatus for cross-component prediction for video coding
KR101087108B1 (ko) 양자화된 정지 영상의 복원 방법
EP3568983A1 (en) Encoder and decoder and methods thereof

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20161221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20171010