(57)【要約】【課題】画像データから、低容量な可逆変換のデータを生成する。【解決手段】画像処理プログラムは、画像データに含まれ、所定ビット数の階調値で表される複数の画素について、各階調値の出現頻度を特定し、出現頻度が大きい階調値から順に所定個数の階調値を抽出し、抽出した前記階調値を前記所定個数に応じたビット数の符号化値にビット変換するための対応情報を生成し、前記複数の画素のうち、前記所定個数の階調値のいずれかを有する第１の画素を前記対応情報に基づきビット変換し、前記所定個数の階調値以外の階調値のいずれかを有する第２の画素を、階調値の値に基づいてビット変換することで、前記画像データを符号化する、処理をコンピュータに実行させる。【選択図】図３
2020123917.tif 000002
【特許請求の範囲】
【請求項１】
画像データに含まれ、所定ビット数の階調値で表される複数の画素について、各階調値の出現頻度を特定し、
出現頻度が大きい階調値から順に所定個数の階調値を抽出し、
抽出した前記階調値を前記所定個数に応じたビット数の符号化値にビット変換するための対応情報を生成し、
前記複数の画素のうち、前記所定個数の階調値のいずれかを有する第１の画素を前記対応情報に基づきビット変換し、前記所定個数の階調値以外の階調値のいずれかを有する第２の画素を、階調値の値に基づいてビット変換することで、前記画像データを符号化する、
処理をコンピュータに実行させる画像処理プログラム。
【請求項２】
前記画像データを符号化することで、
前記第１の画素及び／又は前記第２の画素の位置を示す位置データと、
前記第１の画素の符号化値のデータ、及び、前記第２の画素の符号化値のデータのうち、前記所定個数に応じたビット数に対応する符号化値のデータを含む第１のデータと、
前記第２の画素の符号化値のデータのうち、前記所定個数に応じたビット数に対応する符号化値以外の符号化値のデータを含む第２のデータと
を生成することを特徴とする請求項１に記載の画像処理プログラム。
【請求項３】
異なる個数の階調値を抽出して前記画像データを符号化した場合のそれぞれのデータ量に基づいて、前記所定個数を算出することを特徴とする請求項１または２に記載の画像処理プログラム。
【請求項４】
前記所定個数の階調値として、出現頻度が最大となる階調値と該階調値の前後の階調値とを含む所定個数の階調値、または、出現頻度が大きい階調値を降順に並べた場合の上位の所定個数の階調値、を抽出することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理プログラム。
【請求項５】
画像データに含まれ、所定ビット数の階調値で表される複数の画素について、各階調値の出現頻度を特定する特定部と、
出現頻度が大きい階調値から順に所定個数の階調値を抽出する抽出部と、
抽出した前記階調値を前記所定個数に応じたビット数の符号化値にビット変換するための対応情報を生成する生成部と、
前記複数の画素のうち、前記所定個数の階調値のいずれかを有する第１の画素を前記対応情報に基づきビット変換し、前記所定個数の階調値以外の階調値のいずれかを有する第２の画素を、階調値の値に基づいてビット変換することで、前記画像データを符号化する符号化部と
を有することを特徴とする画像処理装置。
【請求項６】
画像データに含まれ、所定ビット数の階調値で表される複数の画素について、各階調値の出現頻度を特定し、
出現頻度が大きい階調値から順に所定個数の階調値を抽出し、
抽出した前記階調値を前記所定個数に応じたビット数の符号化値にビット変換するための対応情報を生成し、
前記複数の画素のうち、前記所定個数の階調値のいずれかを有する第１の画素を前記対応情報に基づきビット変換し、前記所定個数の階調値以外の階調値のいずれかを有する第２の画素を、階調値の値に基づいてビット変換することで、前記画像データを符号化する、
処理をコンピュータが実行する画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プログラム、画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
従来より、橋梁等の構造物の点検においては、点検業者が近接目視で点検を行い、損傷箇所を撮像装置で撮影することで画像データの蓄積が行われている。また、近年、撮像装置が搭載されたドローンを飛行させ、撮影により得られた画像データを解析することで、構造物の損傷の有無等の判定も進められている。橋梁等の構造物の点検において撮影される画像データはデータ量が膨大であるため、保存する際には圧縮処理し、低容量なデータを生成することが求められる。
【０００３】
一方で、画像データの圧縮方法には種々の方法があり、橋梁等の色調が均一な構造物に対しては、例えば、下記特許文献のような、階調値の出現頻度に基づいて圧縮する方法等を適用することが考えられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−９１７２２号公報
【特許文献２】特開２００２−３００４０７号公報
【特許文献３】特開昭６３−９２１８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１及び２に記載の方法の場合、可逆圧縮ではないため、構造物の損傷の有無等の判定には適さない。また、上記特許文献３に記載の方法の場合、予め定められた符号化値に変換するため、データ量の削減効率が充分とはいえず、低容量なデータを生成できない場合がある。
【０００６】
一つの側面では、画像データから、低容量な可逆変換のデータを生成することを目的としている。
【課題を解決するための手段】
【０００７】
一態様によれば、画像処理プログラムは、
画像データに含まれ、所定ビット数の階調値で表される複数の画素について、各階調値の出現頻度を特定し、
出現頻度が大きい階調値から順に所定個数の階調値を抽出し、
抽出した前記階調値を前記所定個数に応じたビット数の符号化値にビット変換するための対応情報を生成し、
前記複数の画素のうち、前記所定個数の階調値のいずれかを有する第１の画素を前記対応情報に基づきビット変換し、前記所定個数の階調値以外の階調値のいずれかを有する第２の画素を、階調値の値に基づいてビット変換することで、前記画像データを符号化する、処理をコンピュータに実行させる。
【発明の効果】
【０００８】
画像データから、低容量な可逆変換のデータを生成することができる。
【図面の簡単な説明】
【０００９】
【図１】画像データ収集システムのシステム構成の一例を示す図である。
【図２】画像処理装置のハードウェア構成の一例を示す図である。
【図３】画像処理装置の符号化に関する機能の機能構成の一例を示す図である。
【図４】出現頻度特定部の処理の具体例を示す図である。
【図５】階調値抽出部及び対応表生成部の処理の具体例を示す第１の図である。
【図６】階調値抽出部及び対応表生成部の処理の具体例を示す第２の図である。
【図７】符号化部の処理の具体例を示す図である。
【図８】データ量算出部の処理の具体例を示す図である。
【図９】第１の実施形態に係る画像処理装置による画像処理の流れを示すフローチャートである。
【図１０】階調値抽出部及び対応表生成部の処理の具体例を示す第３の図である。
【図１１】第２の実施形態に係る画像処理装置による画像処理の流れを示すフローチャートである。
【図１２】階調値抽出部及び対応表生成部の処理の具体例を示す第４の図である。
【図１３】画像処理装置の復号に関する機能の機能構成の一例を示す図である。
【図１４】復号部の処理の具体例を示す図である。
【発明を実施するための形態】
【００１０】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【００１１】
［第１の実施形態］
＜画像データ収集システムのシステム構成＞
はじめに、第１の実施形態に係る画像処理装置を備える、画像データ収集システムのシステム構成について説明する。図１は、画像データ収集システムのシステム構成の一例を示す図である。
【００１２】
図１に示すように、画像データ収集システム１００は、ドローン１１０、画像処理装置１２０、データ格納部１３０を有する。
【００１３】
ドローン１１０は、撮像装置１１１を搭載し、橋梁等の構造物に沿って飛行することで、構造物の撮影を行う。なお、橋梁等の構造物に沿って飛行した際に撮像装置１１１により撮影された画像データは、画像処理装置１２０に送信される。
【００１４】
画像処理装置１２０は、撮像装置１１１より送信された画像データ（例えば、画像データ１４０）を受信する。また、画像処理装置１２０は、受信した画像データを符号化し、生成した符号化データをデータ格納部１３０に格納する。なお、画像処理装置１２０により生成される符号化データには、第１のデータ、第２のデータ、対応表データ及び位置データ（詳細は後述）が含まれる。
【００１５】
このように、画像処理装置１２０によれば、画像データから、低容量な可逆変換のデータ（符号化データ）を生成し、データ格納部１３０に格納することができる。
【００１６】
データ格納部１３０は、画像処理装置１２０において生成された符号化データ（第１のデータ、第２のデータ、対応表データ、位置データ）を格納する。なお、画像処理装置１２０は、必要に応じて、データ格納部１３０に格納した符号化データを、元の画像データに復号する復号処理を実行するものとする。
【００１７】
＜画像処理装置のハードウェア構成＞
次に、画像処理装置１２０のハードウェア構成について説明する。図２は、画像処理装置のハードウェア構成の一例を示す図である。図２に示すように、画像処理装置１２０は、ＣＰＵ（Central  Processing  Unit）２０１、ＲＯＭ（Read  Only  Memory）２０２、ＲＡＭ（Random  Access  Memory）２０３を有する。ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３は、いわゆるコンピュータを形成する。
【００１８】
また、画像処理装置１２０は、補助記憶装置２０４、表示装置２０５、操作装置２０６、Ｉ／Ｆ（Interface）装置２０７、ドライブ装置２０８を有する。なお、画像処理装置１２０の各ハードウェアは、バス２０９を介して相互に接続されている。
【００１９】
ＣＰＵ２０１は、補助記憶装置２０４にインストールされている各種プログラム（例えば、画像処理プログラム等）を実行する演算デバイスである。
【００２０】
ＲＯＭ２０２は、不揮発性メモリである。ＲＯＭ２０２は、補助記憶装置２０４にインストールされている各種プログラムをＣＰＵ２０１が実行するために必要な各種プログラム、データ等を格納する主記憶デバイスとして機能する。具体的には、ＲＯＭ２０２はＢＩＯＳ（Basic  Input/Output  System）やＥＦＩ（Extensible  Firmware  Interface）等のブートプログラム等を格納する、主記憶デバイスとして機能する。
【００２１】
ＲＡＭ２０３は、ＤＲＡＭ（Dynamic  Random  Access  Memory）やＳＲＡＭ（Static  Random  Access  Memory）等の揮発性メモリである。ＲＡＭ２０３は、補助記憶装置２０４にインストールされている各種プログラムがＣＰＵ２０１によって実行される際に展開される作業領域を提供する、主記憶デバイスとして機能する。
【００２２】
補助記憶装置２０４は、各種プログラムを格納する補助記憶デバイスである。表示装置２０５は、画像処理装置１２０の内部状態等を表示する表示デバイスである。操作装置２０６は、画像処理装置１２０の管理者が画像処理装置１２０に対して各種指示を入力するための入力デバイスである。
【００２３】
Ｉ／Ｆ装置２０７は、撮像装置１１１及びデータ格納部１３０と、画像処理装置１２０とを接続し、撮像装置１１１及びデータ格納部１３０と画像処理装置１２０との間で通信を行うための通信デバイスである。
【００２４】
ドライブ装置２０８は記録媒体２１０をセットするためのデバイスである。ここでいう記録媒体２１０には、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体２１０には、ＲＯＭ、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
【００２５】
なお、補助記憶装置２０４にインストールされる各種プログラムは、例えば、配布された記録媒体２１０がドライブ装置２０８にセットされ、該記録媒体２１０に記録された各種プログラムがドライブ装置２０８により読み出されることでインストールされる。あるいは、補助記憶装置２０４にインストールされる各種プログラムは、不図示のネットワークよりダウンロードされることでインストールされてもよい。
【００２６】
＜画像処理装置の機能構成（符号化）＞
次に、画像処理装置１２０において画像処理プログラムが実行されることで実現される符号化に関する機能の機能構成について説明する。図３は、画像処理装置の符号化に関する機能の機能構成の一例を示す図である。図３に示すように、画像処理装置１２０は、符号化に関する機能として、画像データ取得部３０１、出現頻度特定部３０２、階調値抽出部３０３、対応表生成部３０４、符号化部３０５、データ量算出部３０６、符号化データ出力部３０７を有する。
【００２７】
画像データ取得部３０１は、撮像装置１１１より画像データを取得する。画像データ取得部３０１は、取得した画像データを、出現頻度特定部３０２及び符号化部３０５に通知する。
【００２８】
出現頻度特定部３０２は特定部の一例である。出現頻度特定部３０２は、画像データに基づいてヒストグラムを生成する。これにより、出現頻度特定部３０２では、通知された画像データに含まれ、所定ビット数の階調値で表される複数の画素について、各階調値の出現頻度を特定する。また、出現頻度特定部３０２は、特定した各階調値の出現頻度を階調値抽出部３０３に通知する。
【００２９】
階調値抽出部３０３は、複数の階調値の中から、出現頻度が最大となる階調値を特定する。また、階調値抽出部３０３は、出現頻度が最大となる階調値と、該階調値の前後の階調値とを含む所定個数の階調値を抽出する。更に、階調値抽出部３０３は、抽出した所定個数の階調値を、対応表生成部３０４に通知する。
【００３０】
対応表生成部３０４は、抽出した所定個数の階調値を、該所定個数に応じたビット数の符号化値にビット変換するための対応表データ（対応情報）を生成する。対応表生成部３０４は、対応表データを符号化部３０５に通知する。
【００３１】
符号化部３０５は、画像データに含まれる複数の画素のうち、抽出した所定個数の階調値のいずれかを有する画素について、対応表データに基づいて、所定個数に応じたビット数の符号化値にビット変換する。また、符号化部３０５は、画像データに含まれる複数の画素のうち、抽出した所定個数の階調値以外の階調値のいずれかを有する画素を、階調値の値に基づき所定ビット数の符号化値にビット変換する。変換後、符号化部３０５は、ビット変換した符号化値を所定個数に応じたビット数と、残りのビット数それぞれの符号化値に分割する。
【００３２】
そして、符号化部３０５は、抽出した所定個数の階調値それぞれが、符号化値にビット変換された画素に関するデータと、抽出した所定個数の階調値以外の階調値が、所定個数に応じたビット数に分けられた画素に関するデータと、を含む第１のデータを生成する。
【００３３】
また、符号化部３０５は、抽出した所定個数の階調値以外の階調値が、残りのビット数に分けられた画素に関するデータを含む第２のデータを生成する。
【００３４】
また、符号化部３０５は、抽出した所定個数の階調値以外の階調値を有していた画素の位置を示す位置データを生成する。
【００３５】
更に、符号化部３０５は、生成した符号化データ（第１のデータ、第２のデータ、位置データ、対応表データ）を、データ量算出部３０６に通知する。
【００３６】
データ量算出部３０６は、画像データを符号化することで得られた符号化データのデータ量を算出する。データ量算出部３０６では、階調値抽出部３０３に設定した所定個数を異なる個数としたそれぞれの場合において、符号化部３０５より通知されるそれぞれの符号化データのデータ量を算出する。そして、データ量算出部３０６は、符号化部３０５より通知される符号化データのうち、データ量が最小となる符号化データを、符号化データ出力部３０７に通知する。
【００３７】
符号化データ出力部３０７は、データ量算出部３０６より通知された符号化データ（第１のデータ、第２のデータ、対応表データ、位置データ）を、データ格納部１３０に格納する。
【００３８】
＜各部の処理の具体例＞
次に、画像処理装置１２０の各部（ここでは、出現頻度特定部３０２、階調値抽出部３０３、対応表生成部３０４、符号化部３０５、データ量算出部３０６）の処理の具体例について説明する。
【００３９】
（１）出現頻度特定部の処理の具体例
はじめに、出現頻度特定部３０２の処理の具体例について説明する。図４は、出現頻度特定部の処理の具体例を示す図である。図４に示すように、出現頻度特定部３０２に通知される画像データ１４０は、ｎ個の画素を有し、各画素（Ｐ１〜Ｐｎ）は、それぞれ、（Ｒ１，Ｇ１，Ｂ１）〜（Ｒｎ，Ｇｎ，Ｂｎ）の所定ビット数（８ビット）の各階調値を有する。
【００４０】
図４に示すように、出現頻度特定部３０２は、ヒストグラム４１０を生成することで、画像データ１４０に含まれるｎ個の画素について、各階調値の出現頻度を特定する。なお、第１の実施形態において、出現頻度特定部３０２は、Ｒ値、Ｇ値、Ｂ値の各色成分にわけてヒストグラムを生成する。
【００４１】
（２）階調値抽出部及び対応表生成部の処理の具体例
次に、階調値抽出部３０３及び対応表生成部３０４の処理の具体例について説明する。図５は、階調値抽出部及び対応表生成部の処理の具体例を示す第１の図である。図５において、ヒストグラム５１０、５２０、５３０は、それぞれ、出現頻度特定部３０２により生成された、Ｒ値のヒストグラム、Ｇ値のヒストグラム、Ｂ値のヒストグラムである。
【００４２】
図５に示すように、階調値抽出部３０３は、ヒストグラム５１０から、出現頻度が最大となる階調値を特定する。また、階調値抽出部３０３は、出現頻度が最大となる階調値（Ｒｆ１）と、該階調値（Ｒｆ１）の前後の階調値（Ｒｆ２〜Ｒｆ３２）とを含む所定個数（ここでは、３２個）の階調値を抽出する。
【００４３】
また、対応表生成部３０４は、抽出された３２個の階調値（Ｒｆ１〜Ｒｆ３２）を、対応表データ５１１に基づいて、抽出された階調値の個数（３２個）に応じたビット数（５ビット）の符号化値（０〜３１）にビット変換する。
【００４４】
同様に、階調値抽出部３０３は、ヒストグラム５２０から、出現頻度が最大となる階調値を特定し、出現頻度が最大となる階調値（Ｇｆ１）と、該階調値（Ｇｆ１）の前後の階調値（Ｇｆ２〜Ｇｆ３２）とを含む３２個の階調値を抽出する。
【００４５】
また、対応表生成部３０４は、抽出された３２個の階調値（Ｇｆ１〜Ｇｆ３２）を、対応表データ５２１に基づいて、抽出された階調値の個数（３２個）に応じたビット数（５ビット）の符号化値（０〜３１）にビット変換する。
【００４６】
同様に、階調値抽出部３０３は、ヒストグラム５３０から、出現頻度が最大となる階調値を特定し、出現頻度が最大となる階調値（Ｂｆ１）と、該階調値（Ｂｆ１）の前後の階調値（Ｂｆ２〜Ｂｆ３２）とを含む３２個の階調値を抽出する。
【００４７】
また、対応表生成部３０４は、抽出された３２個の階調値（Ｂｆ１〜Ｂｆ３２）を、対応表データ５３１に基づいて、抽出された階調値の個数（３２個）に応じたビット数（５ビット）の符号化値（０〜３１）にビット変換する。
【００４８】
図６は、階調値抽出部及び対応表生成部の処理の具体例を示す第２の図である。図５との相違点は、階調値抽出部３０３が、ヒストグラム５１０、５２０、５３０からそれぞれ抽出する階調値の個数である。図６の場合、階調値抽出部３０３は、所定個数の階調値として、１６個の階調値を抽出する。
【００４９】
なお、階調値抽出部３０３により抽出される階調値の個数が１６個の場合、対応表生成部３０４では、抽出された１６個の階調値を、抽出された階調値の個数（１６個）に応じたビット数（４ビット）の符号化値（０〜１５）にビット変換する。
【００５０】
具体的には、対応表生成部３０４では、抽出された１６個の階調値（Ｒｆ１〜Ｒｆ１６）を、対応表データ６１１に基づいて、抽出された階調値の個数（１６個）に応じたビット数（４ビット）の符号化値（０〜１５）にビット変換する。
【００５１】
同様に、対応表生成部３０４では、抽出された１６個の階調値（Ｇｆ１〜Ｇｆ１６）を、対応表データ６２１に基づいて、抽出された階調値の個数（１６個）に応じたビット数（４ビット）の符号化値（０〜１５）にビット変換する。
【００５２】
同様に、対応表生成部３０４では、抽出された１６個の階調値（Ｂｆ１〜Ｂｆ１６）を、対応表データ６３１に基づいて、抽出された階調値の個数（１６個）に応じたビット数（４ビット）の符号化値（０〜１５）にビット変換する。
【００５３】
このように、階調値抽出部３０３では、ヒストグラム５１０、５２０、５３０それぞれから抽出する階調値の個数を、順次、変更する。なお、図４及び図５では、階調値抽出部３０３が抽出する階調値の個数として、“３２個”の場合と、“１６個”の場合とについて示したが、“３２個”及び“１６個”以外の所定個数（２の階乗数。例えば、２個、４個、６４個、１２８個）としてもよい。
【００５４】
（３）符号化部の処理の具体例
次に、符号化部３０５の処理の具体例について説明する。図７は、符号化部の処理の具体例を示す図である。図７（ａ）において、画像データ７０１は、画像データ１４０を、便宜上、階調値抽出部３０３によって抽出された３２個の階調値のいずれかを有する画素と、それ以外の階調値のいずれかを有する画素とにわけて示したものである。
【００５５】
画像データ７０１において、斜線領域は、階調値抽出部３０３によって抽出された階調値のいずれかを有する画素を含む領域である。また、画像データ７０１において、白色領域は、階調値抽出部３０３によって抽出された階調値以外の階調値のいずれかを有する画素を含む領域である。なお、画像データ７０１には、Ｒ値、Ｇ値、Ｂ値の各色成分の画像データが含まれ、更に、各画像データには、８ビットの画素がｎ個含まれることから、画像データ７０１のデータ量は、８ビット×３×ｎとなる。
【００５６】
符号化部３０５では、画像データ７０１に基づいて、位置データ７０２と、第１のデータ７０３と、第２のデータ７０４と、対応表データ５１１〜５３１とを含む符号化データを生成する。
【００５７】
位置データ７０２は、抽出した所定個数（ここでは３２個）の階調値以外の階調値のいずれかを有する画素の位置を示すデータである。図７（ａ）の例では、階調値抽出部３０３によって抽出された３２個の階調値のいずれかを有する画素の位置に“０”が割り当てられ、それ以外の階調値のいずれかを有する画素の位置に“１”が割り当てられることで位置データ７０２が生成される。ただし、図の簡略化のため、“０”は省略している。
【００５８】
なお、位置データ７０２には、Ｒ値、Ｇ値、Ｂ値の各色成分の位置データが含まれ、それぞれの位置データには、１ビットの画素がｎ個含まれることから、位置データ７０２のデータ量は、１ビット×３×ｎとなる。
【００５９】
第１のデータ７０３は、画像データ７０１に含まれる画素のうち、階調値抽出部３０３によって抽出された３２個の階調値のいずれかを有する画素に、対応表データ５１１〜５３１に基づいてビット変換された符号化値が割り当てられることで生成される。また、第１のデータ７０３は、画像データ７０１に含まれる画素のうち、階調値抽出部３０３によって抽出された階調値以外の階調値のいずれかを有する画素に、階調値の上位５ビットが割り当てられることで生成される。階調値の上位５ビットとは、例えば、階調値が“１９３”（“１１０００００１”）であった場合、“１１０００”である。
【００６０】
なお、第１のデータ７０３には、Ｒ値、Ｇ値、Ｂ値の各色成分の第１のデータが含まれ、それぞれの第１のデータには、５ビットの画素がｎ個含まれることから、第１のデータ７０３のデータ量は、５ビット×３×ｎとなる。
【００６１】
第２のデータ７０４は、画像データ７０１に含まれる画素のうち、階調値抽出部３０３によって抽出された階調値以外の階調値のいずれかを有する画素に、階調値の下位３ビットが割り当てられることで生成される。階調値の下位３ビットとは、例えば、階調値が“１９３”（“１１０００００１”）であった場合、“００１”である。
【００６２】
なお、第２のデータ７０４には、Ｒ値、Ｇ値、Ｂ値の各色成分の第２のデータが含まれ、それぞれの第２のデータには、３ビットの画素がＱ５個含まれることから、第２のデータ７０４のデータ量は、３ビット×３×Ｑ５となる。
【００６３】
上述の具体例では、階調値以外の階調値のいずれかを有する画素を、上位５ビットと下位３ビットに分割した場合の例を記載したが、必ずしも上位５ビットと下位３ビットに分ける必要はなく、例えば、下位５ビットと上位３ビットのように適宜変更してもよい。
【００６４】
図７（ａ）の例は、３２個の階調値それぞれを５ビットの符号化値にビット変換することで、データ量が“Ｄ５”の符号化データが生成された様子を示している。
【００６５】
一方、図７（ｂ）において、画像データ７１１は、画像データ１４０を、便宜上、階調値抽出部３０３によって抽出された１６個の階調値のいずれかを有する画素と、それ以外の階調値のいずれかを有する画素とにわけて示したものである。
【００６６】
画像データ７１１において、斜線領域は、階調値抽出部３０３によって抽出された階調値のいずれかを有する画素を含む領域である。また、画像データ７１１において、白色領域は、階調値抽出部３０３によって抽出された階調値以外の階調値のいずれかを有する画素を含む領域である。画像データ７０１との対比から明らかなように、階調値抽出部３０３によって抽出される階調値の個数を減らしたことで、斜線領域が減り、白色領域が増えることになる。
【００６７】
なお、画像データ７１１には、Ｒ値、Ｇ値、Ｂ値の各色成分の画像データが含まれ、更に、各画像データには、８ビットの画素がｎ個含まれることから、画像データ７１１のデータ量は、８ビット×３×ｎとなる。
【００６８】
符号化部３０５では、画像データ７１１に基づいて、位置データ７１２と、第１のデータ７１３と、第２のデータ７１４と、対応表データ６１１〜６３１とを含む符号化データを生成する。
【００６９】
位置データ７１２は、抽出した所定個数（ここでは１６個）の階調値以外の階調値のいずれかを有する画素の位置を示すデータである。
【００７０】
第１のデータ７１３は、画像データ７１１に含まれる画素のうち、階調値抽出部３０３によって抽出された１６個の階調値のいずれかを有する画素に、対応表データ６１１〜６３１に基づいてビット変換された符号化値が割り当てられることで生成される。また、第１のデータ７１３は、画像データ７１１に含まれる画素のうち、階調値抽出部３０３によって抽出された階調値以外の階調値のいずれかを有する画素に、階調値の上位４ビットが割り当てられることで生成される。階調値の上位４ビットとは、例えば、階調値が“１９３”（“１１０００００１”）であった場合、“１１００”である。
【００７１】
なお、第１のデータ７１３は、Ｒ値、Ｇ値、Ｂ値の各色成分の第１のデータが含まれ、それぞれの第１のデータには、４ビットの画素がｎ個含まれることから、第１のデータ７１３のデータ量は、４ビット×３×ｎとなる。
【００７２】
第２のデータ７１４は、画像データ７１１に含まれる画素のうち、階調値抽出部３０３によって抽出された階調値以外の階調値のいずれかを有する画素に、階調値の下位４ビットが割り当てられることで生成される。階調値の下位４ビットとは、例えば、階調値が“１９３”（“１１０００００１”）であった場合、“０００１”である。
【００７３】
なお、第２のデータ７１４には、Ｒ値、Ｇ値、Ｂ値の各色成分の第２のデータが含まれ、それぞれの第２のデータには、４ビットの画素がＱ４個含まれることから、第２のデータ７１４のデータ量は、４ビット×３×Ｑ４となる。
【００７４】
図７（ｂ）の例は、１６個の階調値それぞれを４ビットの符号化値にビット変換することで、データ量が“Ｄ４”の符号化データが生成された様子を示している。
【００７５】
（４）データ量算出部の処理の具体例
次に、データ量算出部３０６の処理の具体例について説明する。図８は、データ量算出部の処理の具体例を示す図である。図８に示すグラフにおいて、横軸は、符号化値のビット数を表し、縦軸は、符号化データのデータ量を表す。図８に示すように、符号化値のビット数（抽出する階調値の個数に対応）を、順次、変更することで、符号化データのデータ量が変化する。データ量算出部３０６では、符号化データのデータ量が最小となった際の、符号化値のビット数を判定する。
【００７６】
なお、符号化値のビット数を減らすと、１画素あたりの削減量は大きいが、階調値抽出部３０３によって抽出される階調値の個数が少なくなるため、ビット変換の対象となる画素数が減る。一方、符号化値のビット数を増やすと、１画素あたりの削減量は小さいが、階調値抽出部３０３によって抽出される階調値の個数が増えるため、ビット変換の対象となる画素数も増える。
【００７７】
このため、図８に示すように、符号化値のビット数を増減させることで、符号化データのデータ量の最小値を求めることができる。図８の例は、符号化値のビット数を“５ビット”にすることで、符号化データのデータ量が最小の“Ｄ５”となったことを示している。
【００７８】
＜画像処理装置による画像処理＞
次に、画像処理装置１２０による符号化時の画像処理の流れについて説明する。図９は、第１の実施形態に係る画像処理装置による画像処理の流れを示すフローチャートである。撮像装置１１１から画像データが送信されることで、図９に示す画像処理が開始される。なお、図９では、撮像装置１１１から送信される画像データのうちの、１フレーム分の画像データについての画像処理を示している。
【００７９】
ステップＳ９０１において、画像データ取得部３０１は、画像データを取得し、出現頻度特定部３０２は、取得された画像データについて、Ｒ値、Ｇ値、Ｂ値の各ヒストグラムを生成する。
【００８０】
ステップＳ９０２において、階調値抽出部３０３は、符号化値のビット数ｉに初期値として“８”を代入する。
【００８１】
ステップＳ９０３において、データ量算出部３０６は、符号化データのデータ量の最小値ｓに、初期値として、取得された画像データのデータ量（＝８×３×ｎ）を代入する。
【００８２】
ステップＳ９０４において、階調値抽出部３０３は、順次、変更する符号化値のビット数ｊに、初期値として“７”を代入する。
【００８３】
ステップＳ９０５において、階調値抽出部３０３は、抽出する階調値の個数ｗ（＝２ｊ）を算出する。
【００８４】
ステップＳ９０６において、階調値抽出部３０３は、Ｒ値、Ｇ値、Ｂ値の各ヒストグラムから、出現頻度が最大となる階調値を特定し、該階調値を含む該階調値の前後のｗ個の階調値を抽出する。
【００８５】
ステップＳ９０７において、データ量算出部３０６は、画像データに含まれる画素のうち、抽出された階調値以外の階調値のいずれかを有する画素の数Ｑｊを算出する。
【００８６】
ステップＳ９０８において、データ量算出部３０６は、ｗ個の階調値を抽出する場合の、符号化データのデータ量ｓ（ｊ）を算出する。
【００８７】
ステップＳ９０８において、データ量算出部３０６は、データ量ｓ（ｊ）が、データ量ｓより小さいか否かを判定する。ステップＳ９０８において、データ量ｓ（ｊ）が、データ量ｓより小さいと判定した場合には、ステップＳ９１０に進む。
【００８８】
ステップＳ９１０において、データ量算出部３０６は、ビット数ｉに、ビット数ｊを代入し、データ量ｓに、データ量ｓ（ｊ）を代入する。更に、データ量算出部３０６は、ビット数ｊをデクリメントする。
【００８９】
ステップＳ９１１において、データ量算出部３０６は、ビット数ｊが１未満であるか否かを判定する。ステップＳ９１１においてビット数ｊが１以上であると判定した場合には（ステップＳ９１１においてＮｏの場合には）、ステップＳ９０５に戻る。
【００９０】
一方、ステップＳ９１１においてビット数ｊが１未満であると判定した場合には（ステップＳ９１１においてＹｅｓの場合には）、ステップＳ９１２に進む。
【００９１】
ステップＳ９１２において、階調値抽出部３０３は、ｗ個の階調値を抽出し、対応表生成部３０４は、抽出した階調値を、ビット数ｉに基づく符号化値にビット変換するための対応表データを生成する。また、符号化部３０５は、符号化データを生成し、符号化データ出力部３０７は、生成した符号化データを出力する。
【００９２】
以上の説明から明らかなように、第１の実施形態に係る画像処理装置１２０では、出現頻度が最大となる階調値の前後の所定個数の階調値を抽出し、抽出した階調値を所定個数に応じたビット数の符号化値にビット変換するための対応表データを生成する。そして、第１の実施形態に係る画像処理装置１２０では、画像データに含まれる複数の画素のうち、所定個数の階調値のいずれかを有する画素を、対応表データに基づきビット変換する。また、第１の実施形態に係る画像処理装置１２０では、所定個数の階調値以外の階調値のいずれかを有する画素を、階調値の値に基づき所定ビット数の符号化値にビット変換する。変換後、符号化部３０５は、ビット変換した符号化値を所定個数に応じたビット数と、残りのビット数それぞれの符号化値に分割する。
【００９３】
このようにして画像データの各画素を処理することで、第１の実施形態に係る画像処理装置１２０によれば、画像データから、低容量な可逆変換のデータを生成することができる。
【００９４】
［第２の実施形態］
上記第１の実施形態では、所定個数の階調値として、出現頻度が最大となる階調値と、その前後の階調値とを抽出するものとして説明した。これに対して、第２の実施形態では、出現頻度が大きい階調値を降順に並べ替え、出現頻度が大きい上位の所定個数の階調値を抽出する。以下、第２の実施形態について、第１の実施形態との相違点を中心に説明する。
【００９５】
＜階調値抽出部及び対応表生成部の処理の具体例＞
図１０は、階調値抽出部及び対応表生成部の処理の具体例を示す第３の図である。図１０に示すように、第２の実施形態において階調値抽出部３０３では、ヒストグラム５１０から、出現頻度が大きい上位の３２個の階調値（Ｒｆ１〜Ｒｆ３２）を抽出する。また、対応表生成部３０４では、抽出された３２個の階調値（Ｒｆ１〜Ｒｆ３２）を、対応表データ１０１１に基づいて、抽出された階調値の個数（３２個）に応じたビット数（５ビット）の符号化値（０〜３１）にビット変換する。
【００９６】
同様に、階調値抽出部３０３では、ヒストグラム５２０から、出現頻度が大きい上位の３２個の階調値（Ｇｆ１〜Ｇｆ３２）を抽出する。また、対応表生成部３０４では、抽出された３２個の階調値（Ｇｆ１〜Ｇｆ３２）を、対応表データ１０２１に基づいて、抽出された階調値の個数（３２個）に応じたビット数（５ビット）の符号化値（０〜３１）にビット変換する。
【００９７】
同様に、階調値抽出部３０３では、ヒストグラム５３０から、出現頻度が大きい上位の３２個の階調値（Ｂｆ１〜Ｂｆ３２）を抽出する。また、対応表生成部３０４では、抽出された３２個の階調値（Ｂｆ１〜Ｂｆ３２）を、対応表データ１０３１に基づいて、抽出された階調値の個数（３２個）に応じたビット数（５ビット）の符号化値（０〜３１）にビット変換する。
【００９８】
＜画像処理装置による画像処理＞
次に、第２の実施形態に係る画像処理装置１２０による符号化時の画像処理の流れについて説明する。図１１は、第２の実施形態に係る画像処理装置による画像処理の流れを示すフローチャートである。図９との相違点は、ステップＳ１１０１である。
【００９９】
ステップＳ１１０１において、階調値抽出部３０３は、Ｒ値、Ｇ値、Ｂ値の各ヒストグラムから、出現頻度が大きい上位ｗ個の階調値を抽出する。
【０１００】
以上の説明から明らかなように、第２の実施形態に係る画像処理装置１２０では、階調値の出現頻度に基づいて、階調値を抽出する際、出現頻度の大きい階調値を降順に並べ替え、出現頻度が上位の所定個数の階調値を抽出する。これにより、第２の実施形態に係る画像処理装置１２０によれば、符号化値にビット変換される階調値の個数が同じであった場合に、ビット変換の対象となる画素数を最大にすることができる。
【０１０１】
［第３の実施形態］
上記第１及び第２の実施形態では、Ｒ値、Ｇ値、Ｂ値の各ヒストグラムについて、階調値の出現頻度に基づいて、ビット変換する階調値を抽出するものとして説明した。これに対して、第３の実施形態では、Ｒ値、Ｇ値、Ｂ値の各ヒストグラムを足し合わせ、足し合わせたヒストグラムから、階調値の出現頻度に基づいて、ビット変換する階調値の組み合わせを抽出する。以下、第３の実施形態について、上記第１または第２の実施形態との相違点を中心に説明する。
【０１０２】
＜階調値抽出部及び対応表生成部の処理の具体例＞
図１２は、階調値抽出部及び対応表生成部の処理の具体例を示す第４の図である。図１２に示すように、第３の実施形態において階調値抽出部３０３では、ヒストグラム５１０、５２０、５３０を足し合わせ、ヒストグラム１２００を生成する。ヒストグラム１２００は、ヒストグラム５１０、５２０、５３０の各階調値の出現頻度を、階調値ごとに足し合わせることで生成される。
【０１０３】
また、第３の実施形態において階調値抽出部３０３では、ヒストグラム１２００から、出現頻度が大きい上位３２個の階調値の組み合わせ（Ｒｆ１，Ｇｆ１，Ｂｆ１）〜（Ｒｆ３２，Ｇｆ３２，Ｂｆ３２）を抽出する。なお、階調値の組み合わせそれぞれにおいて、Ｒ値、Ｇ値、Ｂ値には同じ値が入るものとする。例えば、ヒストグラム１２００において、出現頻度が最大の階調値が“１２８”であったとすると、（Ｒｆ１，Ｇｆ１，Ｂｆ１）＝（１２８，１２８，１２８）となる。
【０１０４】
以上の説明から明らかなように、第３の実施形態に係る画像処理装置１２０では、階調値の出現頻度に基づいて階調値を抽出する際、各色成分のヒストグラムを足し合わせたヒストグラムを生成する。これにより、第３の実施形態に係る画像処理装置１２０によれば、色成分ごとに符号化値にビット変換する場合と比較して、符号化値にビット変換した際の１画素あたりの削減量を大きくすることができる。
【０１０５】
［第４の実施形態］
上記第１乃至第３の実施形態では、画像データから符号化データを生成する場合について説明した。これに対して、第４の実施形態では、符号化データを復号して画像データを生成する場合について説明する。
【０１０６】
＜画像処理装置の機能構成（復号）＞
はじめに、画像処理装置１２０の画像処理プログラムが実行されることで実現される復号に関する機能の機能構成について説明する。図１３は、画像処理装置の復号に関する機能の機能構成の一例を示す図である。図１３に示すように、画像処理装置１２０は、復号に関する機能として、データ取得部１３０１、対応表取得部１３０２、位置データ取得部１３０３、復号部１３０４を有する。
【０１０７】
データ取得部１３０１は、データ格納部１３０より第１のデータ、第２のデータを取得する。データ取得部１３０１は、取得した第１のデータ、第２のデータを、復号部１３０４に通知する。
【０１０８】
対応表取得部１３０２は、データ格納部１３０より対応表データを取得する。対応表取得部１３０２は、取得した対応表データを、復号部１３０４に通知する。
【０１０９】
位置データ取得部１３０３は、データ格納部１３０より位置データを取得する。位置データ取得部１３０３は、取得した位置データを、復号部１３０４に通知する。
【０１１０】
復号部１３０４は、第１のデータについて、位置データに基づいて、所定個数の階調値のいずれかに対応する画素を特定し、特定した画素の符号化値を、対応表データに基づいて８ビットの階調値に変換する。また、復号部１３０４は、第１のデータについて、位置データに基づいて、所定個数の階調値以外の階調値のいずれかに対応する画素を特定し、特定した画素の階調値に、第２のデータの対応する階調値をビット結合することで、８ビットの階調値を生成する。これにより、復号部１３０４は、画像データを生成することができる。
【０１１１】
＜復号部の処理の具体例＞
次に、復号部１３０４の処理の具体例について説明する。図１４は、復号部の処理の具体例を示す図である。ここでは、Ｒ値、Ｇ値、Ｂ値の各色成分が８ビットの階調値により表される画像データにおいて、３２個の階調値が抽出され５ビットの符号化値にビット変換された第１のデータ７０３を含む符号化データを復号する場合の具体例について説明する。
【０１１２】
図１４に示すように、位置データ７０２において、抽出された３２個の階調値以外の階調値のいずれかを有する画素には、“１”が割り当てられている。なお、抽出された３２個の階調値のいずれかを有する画素には、“０”が割り当てられるが、位置データ７０２では、図の簡略化のため、空欄としている。
【０１１３】
また、図１４に示すように、第１のデータ（５ビットデータ）７０３の各画素のうち、位置データ７０２において“０”が割り当てられている画素には、符号化値が含まれる。また、第１のデータ（５ビットデータ）７０３の各画素のうち、位置データ７０２において“１”が割り当てられている画素には、階調値の上位５ビットが含まれる。
【０１１４】
また、図１４に示すように、第２のデータ（３ビットデータ）７０４の各画素には、階調値の下位３ビットが含まれる。
【０１１５】
復号部１３０４は、位置データ７０２において“０”が割り当てられている画素を特定し、特定した画素について、第１のデータ（５ビットデータ）７０３の符号化値を、対応表データ５１１に基づいて、８ビットの階調値に変換する。
【０１１６】
また、復号部１３０４は、第１のデータ（５ビットデータ）について、位置データ７０２に基づいて“１”が割り当てられている画素を特定する。そして、復号部１３０４は、特定した画素の階調値に、第２のデータ（３ビットデータ）の対応する階調値をビット結合することで、８ビットの階調値を生成する。
【０１１７】
これにより、復号部１３０４では、
・位置データ７０２において“０”が割り当てられている画素に対応する画素に、変換した８ビットの階調値が含まれ、
・位置データ７０２において“１”が割り当てられている画素に対応する画素に、生成した８ビットの階調値が含まれる、
画像データを生成することができる。
【０１１８】
なお、復号部１３０４では、Ｒ値、Ｇ値、Ｂ値それぞれについて上記処理を行うことで、画像データ７０１を生成する。
【０１１９】
以上の説明から明らかなように、第４の実施形態に係る画像処理装置１２０では、データ格納部に格納された符号化データ（第１のデータ、第２のデータ、位置データ、対応表データ）を復号する。これにより、第４の実施形態に係る画像処理装置１２０によれば、符号化データから画像データを生成することができる。
【０１２０】
［その他の実施形態］
上記第１乃至第３の実施形態では、１フレームの画像データごとに、出現頻度が最大となる階調値を求め、対応表データを生成するものとして説明した。しかしながら、橋梁等の構造物の場合、撮影された画像データにおいて出現頻度が最大となる階調値は、所定の範囲に収まることが想定される。このため、出現頻度が最大となる階調値が収まる所定個数の階調値を予め設定し（例えば、中心となる階調値が同じ３２個の階調値、１６個の階調値を順次設定し）、設定した所定個数の階調値を符号化値にビット変換するように対応表データを生成してもよい。
【０１２１】
これにより、１フレームの画像データごとに、出現頻度が最大となる階調値を求め、対応表データを生成する必要がなくなり、全フレームの画像データに対して、共通の階調値を抽出して、共通の対応表データを生成することが可能となる。
【０１２２】
また、上記第１乃至第３の実施形態では、色成分がＲ値、Ｇ値、Ｂ値の画像データを符号化する場合について説明したが、色成分はＲ値、Ｇ値、Ｂ値に限定されず、他の色成分の画像データを符号化してもよい。
【０１２３】
また、上記第１乃至第３の実施形態では、所定ビット数として８ビットの階調値を有する画像データを符号化する場合について説明したが、画像データの各画素の階調値のビット数は８ビットに限定されず、１６ビット、３２ビット等であってもよい。
【０１２４】
また、第１のデータ及び第２のデータは必ずしも上述の形式に限定されるものではない。例えば、第１のデータを、対応表データに基づいて所定個数に応じたビット数の符号化値にビット変換された画素に関するデータを含むものとしてもよい。また、第２のデータを、階調値の値に基づき所定ビット数の符号化値にビット変換した画素に関するデータを含むものとしてもよい。
【０１２５】
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
（付記１）
画像データに含まれ、所定ビット数の階調値で表される複数の画素について、各階調値の出現頻度を特定し、
出現頻度が大きい階調値から順に所定個数の階調値を抽出し、
抽出した前記階調値を前記所定個数に応じたビット数の符号化値にビット変換するための対応情報を生成し、
前記複数の画素のうち、前記所定個数の階調値のいずれかを有する第１の画素を前記対応情報に基づきビット変換し、前記所定個数の階調値以外の階調値のいずれかを有する第２の画素を、階調値の値に基づいてビット変換することで、前記画像データを符号化する、
処理をコンピュータに実行させる画像処理プログラム。
（付記２）
前記画像データを符号化することで、
前記第１の画素及び／又は前記第２の画素の位置を示す位置データと、
前記第１の画素の符号化値のデータ、及び、前記第２の画素の符号化値のデータのうち、前記所定個数に応じたビット数に対応する符号化値のデータを含む第１のデータと、
前記第２の画素の符号化値のデータのうち、前記所定個数に応じたビット数に対応する符号化値以外の符号化値のデータを含む第２のデータと
を生成することを特徴とする付記１に記載の画像処理プログラム。
（付記３）
異なる個数の階調値を抽出して前記画像データを符号化した場合のそれぞれのデータ量に基づいて、前記所定個数を算出することを特徴とする付記１または２に記載の画像処理プログラム。
（付記４）
前記所定個数の階調値として、出現頻度が最大となる階調値と該階調値の前後の階調値とを含む所定個数の階調値、または、出現頻度が大きい階調値を降順に並べた場合の上位の所定個数の階調値、を抽出することを特徴とする付記１乃至３のいずれかの付記に記載の画像処理プログラム。
（付記５）
画像データに含まれ、所定ビット数の階調値で表される複数の画素について、各階調値の出現頻度を特定する特定部と、
出現頻度が大きい階調値から順に所定個数の階調値を抽出する抽出部と、
抽出した前記階調値を前記所定個数に応じたビット数の符号化値にビット変換するための対応情報を生成する生成部と、
前記複数の画素のうち、前記所定個数の階調値のいずれかを有する第１の画素を前記対応情報に基づきビット変換し、前記所定個数の階調値以外の階調値のいずれかを有する第２の画素を、階調値の値に基づいてビット変換することで、前記画像データを符号化する符号化部と
を有することを特徴とする画像処理装置。
（付記６）
画像データに含まれ、所定ビット数の階調値で表される複数の画素について、各階調値の出現頻度を特定し、
出現頻度が大きい階調値から順に所定個数の階調値を抽出し、
抽出した前記階調値を前記所定個数に応じたビット数の符号化値にビット変換するための対応情報を生成し、
前記複数の画素のうち、前記所定個数の階調値のいずれかを有する第１の画素を前記対応情報に基づきビット変換し、前記所定個数の階調値以外の階調値のいずれかを有する第２の画素を、階調値の値に基づいてビット変換することで、前記画像データを符号化する、
処理をコンピュータが実行する画像処理方法。
【０１２６】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【０１２７】
１００                  ：画像データ収集システム
１１０                  ：ドローン
１２０                  ：画像処理装置
１３０                  ：データ格納部
１４０                  ：画像データ
３０１                  ：画像データ取得部
３０２                  ：出現頻度特定部
３０３                  ：階調値抽出部
３０４                  ：対応表生成部
３０５                  ：符号化部
３０６                  ：データ量算出部
３０７                  ：符号化データ出力部
５１０、５２０、５３０  ：ヒストグラム
５１１、５２１、５３１  ：対応表データ
６１１、６２１、６３１  ：対応表データ
７０２、７１２          ：位置データ
７０３、７１３          ：第１のデータ
７０４、７１４          ：第２のデータ
１０１１〜１０３１      ：対応表データ
１２１０                ：対応表データ
【図１】
2020123917.tif 000003
【図２】
2020123917.tif 000004
【図３】
2020123917.tif 000005
【図４】
2020123917.tif 000006
【図５】
2020123917.tif 000007
【図６】
2020123917.tif 000008
【図７】
2020123917.tif 000009
【図８】
2020123917.tif 000010
【図９】
2020123917.tif 000011
【図１０】
2020123917.tif 000012
【図１１】
2020123917.tif 000013
【図１２】
2020123917.tif 000014
【図１３】
2020123917.tif 000015
【図１４】
2020123917.tif 000016