(57)【特許請求の範囲】
【請求項１】
入力画像を形成する各ラインを分割することにより形成される画素ブロック毎に前記入力画像を順番に圧縮して複数の圧縮ブロックを生成し、生成した前記圧縮ブロックに付加情報を付加してフレームバッファに格納し、前記圧縮ブロックの位置情報と伸長対象の前記圧縮ブロックを伸長するために、１つ前の順番で生成された圧縮ブロックから生成したデコード情報とを有する経過情報をパラメータバッファに格納する符号化部と、
前記フレームバッファに格納されている前記複数の圧縮ブロックの中から伸長対象の圧縮ブロックを特定し、特定した前記圧縮ブロックを前記フレームバッファからリードするリード部と、
前記リード部がリードした前記圧縮ブロックを伸長して伸長ブロックを生成する復号部と、
前記パラメータバッファに格納された、前記リード部が前記伸長対象の圧縮ブロックを特定するのに使用する前記位置情報、若しくは前記復号部が前記伸長対象の前記圧縮ブロックを伸長するために、１つ前の順番で生成された圧縮ブロックから生成した前記デコード情報を取得し、前記圧縮ブロックの付加情報から、前記位置情報、若しくは前記デコード情報を更新する情報取得部と、を備え、
前記付加情報は、前記圧縮ブロックの前記位置情報と前記デコード情報とを、前記圧縮ブロックの次の順番で生成された圧縮ブロックの前記位置情報と前記デコード情報へと更新させ、
前記復号部は、前記入力画像を回転させて回転画像を出力するときに、伸長する前記圧縮ブロックの順番を、前記入力画像を回転させる方向に応じて変更する、
画像処理装置。
【請求項２】
前記復号部は、前記情報取得部が取得した前記デコード情報を使用して前記圧縮ブロックを伸長する、
請求項１に記載の画像処理装置。
【請求項３】
前記符号化部は、前記入力画像をライン単位で圧縮することにより、前記入力画像を、それぞれ複数の前記圧縮ブロックで構成される複数の圧縮ラインに変換し、前記複数の圧縮ラインを前記フレームバッファに格納する、
請求項２に記載の画像処理装置。
【請求項４】
入力画像を形成する各ラインを分割することにより形成される画素ブロック毎に前記入力画像を順番に圧縮して複数の圧縮ブロックを生成し、生成した前記圧縮ブロックに付加情報を付加してフレームバッファに格納し、前記圧縮ブロックの位置情報と伸長対象の前記圧縮ブロックを伸長するために、１つ前の順番で生成された圧縮ブロックから生成したデコード情報とを有する経過情報をパラメータバッファに格納する符号化部と、
前記フレームバッファに格納されている前記複数の圧縮ブロックの中から伸長対象の圧縮ブロックを特定し、特定した前記圧縮ブロックを前記フレームバッファからリードするリード部と、
前記リード部がリードした前記圧縮ブロックを伸長して伸長ブロックを生成する復号部と、
前記パラメータバッファに格納された、前記リード部が前記伸長対象の圧縮ブロックを特定するのに使用する位置情報、若しくは前記復号部が前記伸長対象の前記圧縮ブロックを伸長するために、１つ前の順番で生成された圧縮ブロックから生成したデコード情報を取得し、前記圧縮ブロックの付加情報から、前記位置情報、若しくは前記デコード情報を更新する情報取得部と、を備え、
前記付加情報は、前記圧縮ブロックの前記位置情報と前記デコード情報とを、前記圧縮ブロックの次の順番で生成された圧縮ブロックの前記位置情報と前記デコード情報へと更新させ、
前記符号化部は、前記入力画像をライン単位で圧縮することにより、前記入力画像を、それぞれ複数の前記圧縮ブロックで構成される複数の圧縮ラインに変換して、前記複数の圧縮ラインを前記フレームバッファに格納し、
前記情報取得部は、前記復号部が前記伸長対象の圧縮ブロックを伸長する度に、伸長により生成された前記伸長ブロックに基づき、前記伸長対象の圧縮ブロックと同じ前記圧縮ラインにある前記伸長対象の圧縮ブロックの次の順番で生成された圧縮ブロックの伸長に使用する前記デコード情報を取得し、取得した前記デコード情報をライン毎に分類して記憶部に保存し、
前記復号部は、前記記憶部に保存されている前記デコード情報を使用して前記圧縮ブロックを伸長する画像処理装置。
【請求項５】
入力画像を形成する各ラインを分割することにより形成される画素ブロック毎に前記入力画像を順番に圧縮して複数の圧縮ブロックを生成し、生成した前記圧縮ブロックに付加情報を付加してフレームバッファに格納し、前記圧縮ブロックの位置情報と伸長対象の前記圧縮ブロックを伸長するために、１つ前の順番で生成された圧縮ブロックから生成したデコード情報とを有する経過情報をパラメータバッファに格納し、
前記フレームバッファに格納されている前記複数の圧縮ブロックの中から伸長対象の圧縮ブロックを特定し、特定した前記圧縮ブロックを前記フレームバッファからリードし、
リードした前記圧縮ブロックを伸長して伸長ブロックを生成し、
前記パラメータバッファに格納された、前記伸長対象の圧縮ブロックを特定するのに使用する前記位置情報、若しくは前記伸長対象の前記圧縮ブロックを伸長するために、１つ前の順番で生成された圧縮ブロックから生成した前記デコード情報を取得し、前記圧縮ブロックの付加情報から、前記圧縮ブロックの前記位置情報と前記デコード情報とを、前記圧縮ブロックの次の順番で生成された圧縮ブロックの前記位置情報と前記デコード情報へと更新させ、
前記入力画像を回転させて回転画像を出力するときに、伸長する前記圧縮ブロックの順番を、前記入力画像を回転させる方向に応じて変更する、
画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施態様は、画像処理装置、及び画像処理方法に関する。
【背景技術】
【０００２】
画像処理装置の多くは、ディスプレイに画像を出力する前に、一旦、フレームバッファに画像を格納する。バッファ容量削減のため、一部の画像処理装置は、フレームバッファに画像を格納する前に、画像を圧縮する。
【０００３】
一般的にディスプレイは、水平かつ順方向（左から右）に、順次、画素を走査する（以下、ディスプレイの水平かつ順方向のことを「走査方向」という）。ディスプレイに映像信号を出力するために、画像処理装置は、フレームバッファに格納されている圧縮画像を、水平かつ順方向に、順次、伸長する（以下、画像の水平かつ順方向のことを「ライン方向」という）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−１５２９０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、画像の回転出力が可能な画像処理装置が増えている。例えばタブレット型端末などは、ディスプレイの回転に合わせて表示画像を回転させる。
【０００６】
画像を回転出力しない画像処理装置の場合、ディスプレイの走査方向と表示画像のライン方向は常に一致している。そのため、画像処理装置は、フレームバッファから画像をライン方向に沿って順次リードするだけで、走査方向に映像信号を出力できる。
【０００７】
しかしながら、画像の回転出力が可能な画像処理装置の場合、回転出力時、ディスプレイの走査方向と表示画像のライン方向は異なった方向となる。例えば、表示画像が９０°回転している場合、走査方向はライン方向と垂直になる。また、表示画像が１８０°回転している場合、走査方向はライン方向と逆方向になる。そのため、画像の回転出力が可能な画像処理装置は、走査方向に映像信号を出力するために、フレームバッファに格納されている画像を、ライン方向のみならず、他の方向からもリードしなければならない。
【０００８】
他の方向からのリードを可能とするためには、フレームバッファに格納される画像は無圧縮であることが望ましい。しかしながら、無圧縮の画像をフレームバッファに保持することになるため、画像処理装置は大容量のフレームバッファを備える必要がある。大容量のフレームバッファは製品コストを上昇させる。
【０００９】
本発明が解決しようとする課題は、小さな容量のフレームバッファで画像の回転出力を可能とすることである。
【課題を解決するための手段】
【００１０】
実施形態の画像処理装置は、入力画像を形成する各ラインを分割することにより形成される画素ブロック毎に前記入力画像を順番に圧縮して複数の圧縮ブロックを生成し、生成した前記圧縮ブロックに付加情報を付加してフレームバッファに格納し、前記圧縮ブロックの位置情報と伸長対象の前記圧縮ブロックを伸長するために、１つ前の順番で生成された圧縮ブロックから生成したデコード情報とを有する経過情報をパラメータバッファに格納する符号化部と、前記フレームバッファに格納されている前記複数の圧縮ブロックの中から伸長対象の圧縮ブロックを特定し、特定した前記圧縮ブロックを前記フレームバッファからリードするリード部と、前記リード部がリードした前記圧縮ブロックを伸長して伸長ブロックを生成する復号部と、前記パラメータバッファに格納された、前記リード部が前記伸長対象の圧縮ブロックを特定するのに使用する前記位置情報、若しくは前記復号部が前記伸長対象の前記圧縮ブロックを伸長するために、１つ前の順番で生成された圧縮ブロックから生成した前記デコード情報を取得し、前記圧縮ブロックの付加情報から、前記位置情報、若しくは前記デコード情報を更新する情報取得部と、を備え、前記付加情報は、前記圧縮ブロックの前記位置情報と前記デコード情報とを、前記圧縮ブロックの次の順番で生成された圧縮ブロックの前記位置情報と前記デコード情報へと更新させ、前記復号部は、前記入力画像を回転させて回転画像を出力するときに、伸長する前記圧縮ブロックの順番を、前記入力画像を回転させる方向に応じて変更する。
【図面の簡単な説明】
【００１１】
【図１】実施形態１の画像表示装置の外観図である。
【図２】実施形態１の画像表示装置のブロック図である。
【図３】入力画像生成部が生成する入力画像の一例である。
【図４】実施形態１の画像表示装置が備える出力画像生成部及び記憶部のブロック図である。
【図５】画像出力処理のフローチャートである。
【図６】画素ブロックを説明するための図である
【図７】フレームバッファに圧縮ラインが格納された様子を示す図である。
【図８】（Ａ）は先頭に付加情報が付された圧縮ブロックを示す図、（Ｂ）は末尾に付加情報が付された圧縮ブロックを示す図、（Ｃ）は先頭と末尾に付加情報が付された圧縮ブロックを示す図である。
【図９】表示部に無回転画像が表示された様子を示す図である。
【図１０】実施形態１の無回転画像出力処理のフローチャートである。
【図１１】伸長ラインが出力バッファに格納された様子を示す図である。
【図１２】（Ａ）は左回転状態の画像表示装置に右回転画像が表示された様子を示す図、（Ｂ）は標準状態の画像表示装置に右回転画像が表示された様子を示す図である。
【図１３】縦ラスタ出力を説明するための図である。
【図１４】右回転画像出力処理の場合の圧縮ブロックのリード順を示す図である。
【図１５】右回転画像出力処理のフローチャートである。
【図１６】位置情報とデコード情報のデータ構成の一例を示す図である
【図１７】伸長ブロックが出力バッファに格納された様子を示す図である。
【図１８】（Ａ）は、右回転状態の画像処理装置に左回転画像が表示された様子を示す図であり、（Ｂ）は、標準状態の画像処理装置に左回転画像が表示された様子を示す図である。
【図１９】逆縦ラスタ出力を説明するための図である。
【図２０】左回転画像出力処理の場合の圧縮ブロックのリード順を示す図である。
【図２１】左回転画像出力処理のフローチャートである。
【図２２】伸長ブロックが出力バッファに格納された様子を示す図である。
【図２３】（Ａ）は、１８０°回転状態の画像処理装置に１８０°回転画像が表示された様子を示す図であり、（Ｂ）は、標準状態の画像処理装置に１８０°回転画像が表示された様子を示す図である。
【図２４】逆横ラスタ出力を説明するための図である。
【図２５】１８０°回転画像出力処理の場合の圧縮ブロックのリード順を示す図である。
【図２６】１８０°回転画像出力処理の場合の圧縮ブロックのリード順を示す図である。
【図２７】１８０°回転画像出力処理のフローチャートである。
【図２８】伸長ブロックが出力バッファに格納された様子を示す図である。
【図２９】実施形態２の画像表示装置が備える出力画像生成部及び記憶部のブロック図である。
【発明を実施するための形態】
【００１２】
以下、発明を実施するための形態について図面を参照しながら説明する。なお、図中、同一または同等の部分には同一の符号を付す。
【００１３】
（実施形態１）
図１は、本実施形態に係る画像処理装置の一例の画像表示装置１００を示す図である。画像表示装置１００は、例えば、タブレット型端末である。画像表示装置１００は、一方の面（以下、ディスプレイ配置面という。）に、表示部１１０を備えている。表示部１１０はディスプレイ配置面の中央に位置している。また、図１の画像表示装置１００は、カメラ１２１と、操作ボタン１２２とを備えている。カメラ１２１と操作ボタン１２２は、表示部１１０を挟んで、ディスプレイ配置面の長手方向両端に位置している。なお、カメラ１２１は裏面に配置されていてもよい。また、操作ボタン１２２は、表示部１１０に表示されていてもよい。
【００１４】
以下の説明では、理解を容易にするため、カメラ１２１が上側、操作ボタン１２２が下側となる画像表示装置１００（あるいは表示部１１０）の状態を標準状態という。なお、この標準状態は、あくまで一例である。装置のどの状態を標準状態とするかは、装置設計者等が適宜変更可能である。
【００１５】
図２は、画像表示装置１００のブロック図である。画像表示装置１００は、表示部１１０と、入力部１２０と、制御部１３０と、入力画像生成部１４０と、出力画像生成部１５０と、記憶部１６０と、を備える。
【００１６】
表示部１１０は、液晶ディスプレイ（Liquid Crystal Display）、有機ＥＬディスプレイ（Organic Electro-Luminescent Display）等の表示装置である。表示部１１０は、制御部１３０の制御に従って、出力画像生成部１５０で生成された画像を表示する。表示部１１０は、水平かつ順方向（図面左から右）に順次画素を走査することで、画面上に画像を表示する。なお、以下の説明では、表示部１１０が画素を走査する方向を「走査方向」という。本実施形態の場合、走査方向は、画像表示装置１００（あるいは表示部１１０）が標準状態にあるときの水平かつ順方向のことである。
【００１７】
入力部１２０は、画像表示装置１００に各種情報を入力するための入力装置である。入力部１２０には、カメラ１２１と、操作ボタン１２２と、センサー１２３とが含まれる。カメラ１２１は、画像表示装置１００に画像を入力するための撮像装置である。また、操作ボタン１２２は、ユーザが画像表示装置１００に指示を与えるためのユーザインタフェースである。また、センサー１２３は、画像表示装置１００の傾き（回転位置）を検出する。
【００１８】
制御部１３０は、プロセッサ等の表示装置である。制御部１３０は、例えば不図示のＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）に格納されているプログラムに従って動作することで、画像表示装置１００の各部を制御する。
【００１９】
制御部１３０は、画像表示装置１００（あるいは表示部１１０）の回転状態を判別する機能を有している。制御部１３０は、センサー１２３からの信号に基づき、画像表示装置１００（あるいは表示部１１０）が、標準、左回転、右回転、及び１８０°回転のいずれの状態にあるのかを判別する。なお、左回転状態とは、画像表示装置１００が標準状態から左に９０°回転している状態のことである。また、右回転状態とは、画像表示装置１００が標準状態から右に９０°回転している状態のことである。また、１８０°回転状態とは、画像表示装置１００が標準状態から１８０°回転している状態のことである。回転状態の判別結果は、適宜、制御部１３０から出力画像生成部１５０に送信される。
【００２０】
画像表示装置１００は、ＰＳＲ（Panel Self Refresh）機能を有している。本実施形態の場合、入力画像生成部１４０が入力画像を出力画像生成部１５０に送信した後、出力画像生成部１５０が動作している間、制御部１３０が入力画像生成部１４０の動作を停止させることで、画像表示装置１００の消費電力を低減させる。
【００２１】
入力画像生成部１４０は、プロセッサ等の表示装置である。入力画像生成部１４０は、入力部１２０からの入力等に基づいて表示部１１０に表示する無圧縮の画像を生成する。入力画像生成部１４０は、制御部１３０の制御に従って、生成した入力画像を出力画像生成部１５０に送信する。なお、以下の説明では、入力画像生成部１４０が生成する無圧縮の画像を入力画像という。
【００２２】
図３は、入力画像生成部１４０が生成する入力画像の一例である。図中、破線は画素と画素の区切りを示している。以下の説明では、入力画像はＮ×Ｍ画素とする。また、入力画像の水平かつ順方向のことをライン方向という。
【００２３】
出力画像生成部１５０は、プロセッサ等の表示装置である。例えば、出力画像生成部１５０は、画像の圧縮伸長機能を有する半導体装置である。出力画像生成部１５０は、不図示のＲＯＭやＲＡＭに格納されているプログラムに従って動作することで、種々の動作を実現する。
【００２４】
図４は、出力画像生成部１５０及び記憶部１６０のブロック図である。出力画像生成部１５０は、符号化部１５１、リード部１５２、復号部１５３、情報取得部１５４、画像回転部１５５、画像出力部１５６、及び画像出力部１５６を備える。なお、出力画像生成部１５０は、１つのプロセッサから構成されていてもよいし、複数のプロセッサから構成されていてもよい。
【００２５】
記憶部１６０は、ＤＲＡＭ（Dynamic Random Access Memory）、ＳＲＡＭ（Static Random Access Memory）、半導体メモリ、ハードディスク等のデータ読み書き可能な記憶装置である。記憶部１６０は、フレームバッファ１６１と、パラメータバッファ１６２と、出力バッファ１６３と、を含む。
【００２６】
フレームバッファ１６１は、入力画像を圧縮した圧縮画像を一時的に保持する。パラメータバッファ１６２は、出力画像生成部１５０が画像の伸長に使用する各種パラメータ（例えば、量子化係数などのデコード情報）を格納する。出力バッファ１６３は、出力画像生成部１５０が伸長し、映像信号の生成に使用する画像を格納する。
【００２７】
次に、画像表示装置１００の動作について説明する。
入力画像生成部１４０が入力画像を出力画像生成部１５０に送信すると、制御部１３０は出力画像生成部１５０に対して画像出力処理の開始を命令する。このとき、制御部１３０は、入力画像生成部１４０に停止信号を送信して入力画像生成部１４０の動作を停止させる。出力画像生成部１５０は画像出力処理の開始命令を受信すると、「画像出力処理」を開始する。図５は画像出力処理のフローチャートである。
【００２８】
符号化部１５１は、受信した入力画像をライン毎に圧縮する。そして、符号化部１５１は、圧縮した入力画像（以下、圧縮画像という。）をフレームバッファ１６１に格納する（Ｓ１０１）。例えば、符号化部１５１は、入力画像の１ラインを単位として圧縮していく。なお、以下の説明では、符号化部１５１が圧縮した１ラインを圧縮ラインという。
【００２９】
圧縮ラインは、複数の圧縮ブロックで構成される。圧縮ブロックは、１ラインを複数個に分割した画素ブロックを圧縮したものである。例えば、画素ブロックは、ｎ（ｎ＜Ｎ）画素からなる。ｎはＮをｋ等分した値（ｋは任意の値）である。なお、以下の説明では、ｋ＝４とする。すなわち、画素ブロックは、Ｎ／４画素とする。
【００３０】
図６は入力画像の一例である。１ラインは、Ｂｍ（０）〜Ｂｍ（３）（ｍ＝０〜Ｍ−１）の４つの画素ブロックで構成される。第１画素ブロックＢｍ（０）は、（０，ｍ）から（Ｎ／４−１，ｍ）までのＮ／４個の画素で構成される。また、第２画素ブロックＢｍ（１）は、（Ｎ／４，ｍ）から（２Ｎ／４−１，ｍ）までのＮ／４個の画素で構成される。また、第３画素ブロックＢｍ（２）は、（２Ｎ／４，ｍ）から（３Ｎ／４−１，ｍ）までのＮ／４個の画素で構成される。また、第４画素ブロックＢｍ（３）は、（３Ｎ／４，ｍ）から（Ｎ−１，ｍ）までのＮ／４個の画素で構成される。
【００３１】
符号化部１５１は、入力画像の圧縮効率を高めるため、同じラインの他の画素ブロックの情報を使用して画素ブロックを圧縮する。例えば、符号化部１５１は、同じラインの前方（ライン方向と逆の方向）にある画素ブロックを参照ブロックとして画素ブロックを圧縮し、ブロック内でライン方向の画素を予測画素として参照してもよい（以下、このような圧縮を「前方参照圧縮」という）。例えば、画素ブロックＢｍ（３）を圧縮するのであれば、符号化部１５１は１つ前方にある画素ブロックＢｍ（２）を参照ブロックとして圧縮を実行する。例えば、符号化部１５１は、画素ブロックＢｍ（２）と画素ブロックＢｍ（３）の差分を算出し、算出した差分をランレングス符号化やハフマン符号化等を使用してエントロピー圧縮する。また、画素ブロックＢｍ（０）を圧縮する場合は、前方に画素ブロックがないので、符号化部１５１は画素ブロックＢｍ（０）単独で圧縮を実行する。
【００３２】
また、符号化部１５１は、同じラインの後方にある画素ブロックを参照ブロックとして（及び、ブロック内の逆ライン方向の画素を参照画素として）画素ブロックを圧縮してもよい（以下、このような圧縮を「後方参照圧縮」という）。例えば、画素ブロックＢｍ（０）を圧縮するのであれば、符号化部１５１は１つ後方にある画素ブロックＢｍ（１）を参照ブロックとして圧縮を実行する。画素ブロックＢｍ（３）を圧縮する場合は、後方に画素ブロックがないので、符号化部１５１は画素ブロックＢｍ（３）単独で圧縮を実行する。なお、符号化部１５１は、他の画素ブロックを参照せずに画素ブロック単独で圧縮することも可能である（以下、このような圧縮を「無参照圧縮」という）。
【００３３】
図７は、フレームバッファ１６１に圧縮ラインが格納された様子を示す図である。フレームバッファ１６１は、Ｍ個のデータ領域を有している。データ領域それぞれには、一意のアドレスが付されている。図７の例では、Ａｄｒ０〜ＡｄｒＭ−１のアドレスが付されている。各データ領域は、少なくとも１圧縮ライン分のデータが格納可能な容量を有している。データ領域はそれぞれ、複数の領域から構成される。領域のデータサイズは任意である。図７の例では、データ領域は、０〜Ｆのアドレスが付された１６個の領域から構成される。なお、以下の説明では、０〜Ｆのアドレスを領域番号という。
【００３４】
符号化部１５１は、圧縮ラインを生成する度に、新たなデータ領域に圧縮ラインを格納していく。なお、図７において、Ｃｍ（ｎ）（ｍ＝０〜Ｍ−１、ｎ＝０〜３）は、圧縮ブロックを示している。Ｃｍ（ｎ）は、図６の画素ブロックＢｍ（ｎ）に対応している。同じデータ領域に格納された複数の圧縮ブロックが１つの圧縮ラインである。例えば、Ａｄｒ０のデータ領域に格納された４つの圧縮ブロックＣ０（０）〜Ｃ０（３）が入力画像の１ライン目の圧縮ラインである。符号化部１５１が使用する圧縮方式は、圧縮率を保証するため、非可逆圧縮であってもよい。例えば、符号化部１５１が使用する圧縮方式は、左画素を参照画素とし差分をとり量子化後、各符号化を行う非可逆圧縮である。圧縮ブロックは、図７に示すように異なる長さとなる。
【００３５】
符号化部１５１は、圧縮ブロックをフレームバッファ１６１に格納する際に、圧縮ブロックに付加情報を付す。付加情報は、データサイズと前方ブロック情報とから構成される。図８（Ａ）〜（Ｃ）は、付加情報が付された圧縮ブロックの例を示している。図８（Ａ）は、付加情報を圧縮ブロックの先頭に付している。また、図８（Ｂ）は付加情報を圧縮ブロックの末尾に付している。また、図８（Ｃ）は付加情報を圧縮ブロックの先頭と末尾に分割して付している。例えば、データサイズは先頭に、前方ブロック情報は後方に付されていてもよい。付加情報は圧縮されていなくてもよいし、付加情報単独で伸長可能に圧縮されていてもよい。
【００３６】
なお、データサイズとは、格納される圧縮ブロックのサイズを示す情報のことである。また、前方ブロック情報とは、同じラインの１つ前方にある圧縮ブロックを特定するための情報（例えば、開始アドレス）のことである。例えば、図７の圧縮ブロックＣ０（２）の場合は、付加情報として、データサイズ“３”、前方ブロック情報“２”が付されている。
【００３７】
圧縮画像の格納が完了したら、出力画像生成部１５０は、画像表示装置１００の状態が標準状態か否かを判別する（Ｓ１０２）。画像表示装置１００の状態が標準状態の場合（Ｓ１０２：Ｙｅｓ）、出力画像生成部１５０は、無回転画像出力処理を開始する（Ｓ２００）。無回転画像出力処理では、表示部１１０に無回転画像を出力する。無回転画像は、画像のライン方向と表示部１１０の走査方向とが一致している。図９は、表示部１１０に無回転画像が表示された例である。画像表示装置１００は、ライン方向に沿って映像信号を出力（「横ラスタ出力」ともいう。）する。図１０は無回転画像出力処理のフローチャートである。以下、図１０のフローチャートを参照して無回転画像出力処理について説明する。
【００３８】
リード部１５２は、圧縮ラインをフレームバッファ１６１からリードする（Ｓ２０１）。続いて、リード部１５２は、パラメータバッファ１６２からデコード情報をリードする（Ｓ２０２）。デコード情報は、例えば入力画像の縦横のサイズ、ｂｉｔ深度、圧縮ラインの圧縮率、使用圧縮規格等である。復号部１５３は、デコード情報を使用して、Ｓ２０１でリードした圧縮ラインを伸長する（Ｓ２０３）。
【００３９】
次に、画像回転部１５５は、伸長された圧縮ライン（以下、伸長ラインという。）を出力バッファ１６３に格納する（Ｓ２０４）。図１１は、伸長ラインが格納された出力バッファ１６３を示す図である。図中、Ｄ０（０）、Ｄ０（１）・・・・は、圧縮ブロックＣ０（０）、Ｃ０（１）・・・・の伸長ブロックである。Ｄ０（０）〜Ｄ０（３）が圧縮ラインＣ０に対応する伸長ラインである。画像出力部１５６は、出力バッファ１６３に格納されている伸長ラインを、図１１に示す（ａ）の矢印に沿って順次、表示部１１０に出力する（Ｓ２０５）。
【００４０】
出力画像生成部１５０は、画像１枚分（すなわち、Ｍライン分）の出力が完了したか判別する（Ｓ２０６）。出力が完了していない場合（Ｓ２０６：Ｎｏ）、処理はＳ２０１に戻る。出力が完了している場合（Ｓ２０６：Ｙｅｓ）、出力画像生成部１５０は無回転画像出力処理を終了する。
【００４１】
一方、画像表示装置１００の状態が標準状態でない場合（Ｓ１０２：Ｎｏ）、出力画像生成部１５０は、画像表示装置１００の状態が左回転状態か否かを判別する（Ｓ１０３）。画像表示装置１００の状態が左回転状態の場合（Ｓ１０３：Ｙｅｓ）、出力画像生成部１５０は、右回転画像出力処理を開始する（Ｓ３００）。右回転画像出力処理は、表示部１１０に右回転画像を出力する。右回転画像は、無回転画像に対して９０°右に回転している。図１２（Ａ）は、左回転状態の画像表示装置１００に右回転画像が表示された例である。理解を容易にするため、図１２（Ｂ）に、標準状態の画像表示装置１００に右回転画像が表示された例を示す。
【００４２】
画像表示装置１００が右回転画像を出力する場合、図１２（Ｂ）に示すように、表示部１１０の走査方向と表示画像のライン方向とは異なったものとなる。走査方向に沿って映像信号を出力するためには、出力画像生成部１５０は、図１３に示す（ａ）の矢印のように、ライン前方から後方に向けて、映像信号を垂直に出力（「縦ラスタ出力」ともいう。）する必要がある。しかしながら、多くの場合、入力画像はライン単位で圧縮されるので、映像信号を垂直出力するためには、画像表示装置１００は、Ｍ個の圧縮ラインを、一旦、伸長しなければならない。この場合、画像出力開始までの時間が長くなり、また、消費されるメモリ量も大きくなる。
【００４３】
そこで、出力画像生成部１５０は、パラメータバッファ１６２に伸長の経過情報（例えば、後述の位置情報１６２ａやデコード情報１６２ｂ）を保持することで、図１４に示す（ａ）の矢印のように、圧縮ブロックをライン前方から後方に向けて垂直リードすることを可能とする。これにより、画像表示装置１００は、映像信号を垂直出力するために、全ての圧縮ラインを、一旦、伸長する必要がなくなる。
【００４４】
なお、Ｓ１０１の圧縮処理が後方参照圧縮の場合、出力画像生成部１５０は、右回転画像出力処理を実行する前に、符号化部１５１に対して入力画像の再圧縮を命令する。このとき、符号化部１５１は、前方参照圧縮で入力画像を圧縮する。Ｓ１０１の圧縮処理が前方参照圧縮の場合、出力画像生成部１５０は、再圧縮を命令することなく、右回転画像出力処理を実行する。以下、図１５のフローチャートを参照して右回転画像出力処理について説明する。
【００４５】
リード部１５２は、パラメータバッファ１６２から位置情報１６２ａをリードする（Ｓ３０１）。位置情報１６２ａは、復号部１５３が次に伸長する圧縮ブロック内のアドレスを特定する。
【００４６】
図１６は位置情報１６２ａのデータ構成の一例を示す図である。位置情報１６２ａは複数のアドレス情報を含む。各アドレス情報は各ラインに対応している。例えば、最初のアドレス情報０は入力画像の最初のラインに対応している。また、最後のアドレス情報Ｍ−１は、入力画像の最後のラインに対応している。アドレス情報は、例えば、ライン中で次に伸長対象となる圧縮ブロック内画素の先頭アドレスである。復号部１５３がすでに圧縮ブロックＣ０（０）の伸長を完了しているのであれば、アドレス情報０は圧縮ブロックＣ０（１）の開始アドレス（すなわち、Ａｄｒ０、領域番号２）となる。また、圧縮ブロックＣ０（０）の伸長が完了していなければ、そのアドレスを示すアドレス位置（例えばｂｉｔ位置）が格納される。
【００４７】
なお、リード部１５２は、リードが図１４に示す（ａ）の矢印の順番となるように、アドレス情報を選択する。初めに、リード部１５２はアドレス情報Ｍ−１をリードする。次に、リード部１５２はアドレス情報Ｍ−２をリードする。アドレス情報０のリードが完了したら、リード部１５２は、再びアドレス情報Ｍ−１をリードする。
【００４８】
続いて、リード部１５２は、リードしたアドレス情報に基づいて、フレームバッファ１６１から圧縮ブロックをリードする（Ｓ３０２）。例えば、アドレス情報が、“Ａｄｒ０、領域番号２”であれば、リード部１５２は、フレームバッファ１６１からＣ０（１）のブロック以降をリードする。
【００４９】
続いて、リード部１５２は、パラメータバッファ１６２からデコード情報１６２ｂをリードする（Ｓ３０３）。デコード情報１６２ｂは、復号部１５３が圧縮ブロックを伸長するために使用する。デコード情報１６２ｂはグローバルデコード情報と複数のローカルデコード情報とから構成される。リード部１５２は、デコード情報１６２ｂから、グローバルデコード情報と、リードした圧縮ブロックのローカルデコード情報をリードする。
【００５０】
図１７はデコード情報１６２ｂのデータ構成の一例を示す図である。グローバルデコード情報は、複数の圧縮ブロックで共通に使用される情報である。例えば、グローバルデコード情報は、入力画像の縦横のサイズ、ｂｉｔ深度、圧縮ラインの圧縮率、使用圧縮規格、１画素ブロックの画素数等の情報である。グローバルデコード情報は、例えば、右回転画像出力処理が開始される前に、制御部１３０によってパラメータバッファ１６２に格納される。
【００５１】
ローカルデコード情報は、圧縮ブロックそれぞれに固有の情報である。右回転画像出力処理の場合、ローカルデコード情報は、伸長対象ブロック或いは伸長対象ブロックの前方にある画素ブロックから抽出される情報である。例えば、ローカルデコード情報は、１つ前方にある画素ブロック（以下、前画素ブロックという。）の画素値の平均値であってもよいし、前画素ブロックそのものであってもよい。また、ローカルデコード情報は、ブロック内途中で打ち切った場合の参照画素、量子化係数等、圧縮伸長の際に使用される各種係数であってもよい。ローカルデコード情報は、符号化部１５１が使用した圧縮方法に合わせて適宜変更可能である。
【００５２】
デコード情報１６２ｂは複数のローカルデコード情報を含む。各ローカルデコード情報は各ラインに対応し、右回転画像出力処理の場合、同じライン中の次に伸長対象となる圧縮ブロックのデコード情報である。例えば、最初のローカルデコード情報０は入力画像の最初のラインに対応している。復号部１５３がすでに圧縮ブロックＣ０（０）の伸長を完了しているのであれば、ローカルデコード情報０は、圧縮ブロックＣ０（１）のデコード情報である。また、最後のローカルデコード情報Ｍ−１は、入力画像の最後のラインに対応している。
【００５３】
そして、復号部１５３は、リードしたデコード情報を使って、圧縮ブロックを伸長する（Ｓ３０４）。次に、情報取得部１５４は、パラメータバッファ１６２に格納されている位置情報１６２ａおよびデコード情報１６２ｂを更新する（Ｓ３０５）。より具体的には、情報取得部１５４は、伸長対象となった圧縮ブロックの開始アドレスとデータサイズの情報とに基づいて、同一ラインで次に伸長対象となる圧縮ブロックの開始アドレスを判別する。そして、情報取得部１５４は、今回伸長対象となったラインのアドレス情報を更新する。
【００５４】
本実施形態の場合、情報取得部１５４は、伸長対象となった圧縮ブロックと同一ラインで、１つ後方の圧縮ブロック（以下、後続圧縮ブロックという。）を次の伸長対象として特定する。このとき、情報取得部１５４は、圧縮ブロックのデータサイズの情報に基づき後続圧縮ブロックの開始アドレスを特定する。例えば、圧縮ブロックＣ０（０）が伸長対象となったのであれば、情報取得部１５４は、Ｃ０（０）の開始アドレスである“Ａｄｒ０領域番号２”と、Ｃ０（０）のデータサイズである“２”とに基づいて、後続圧縮ブロックの開始アドレスを“Ａｄｒ０領域番号２”と判別する。そして、情報取得部１５４は、アドレス情報０を“Ａｄｒ０、領域番号２”に書き換える。
【００５５】
また、情報取得部１５４は、伸長された圧縮ブロック（以下、伸長ブロックという。）から、後続圧縮ブロックの伸長で使用されるローカルデコード情報を抽出する。例えば、情報取得部１５４は、伸長ブロックの画素値の平均値を次に伸長する圧縮ブロックのローカルデコード情報として抽出する。そして、情報取得部１５４は、伸長対象となったラインのローカルデコード情報を更新する。例えば、圧縮ブロックＣ０（０）が伸長対象となったのであれば、情報取得部１５４は、ローカルデコード情報０を書き換える。
【００５６】
次に、画像回転部１５５は、伸長ブロックを出力バッファ１６３に格納する（Ｓ３０６）。図１７は、伸長ブロックが格納された出力バッファ１６３を示す図である。画像回転部１５５は、伸長ブロックを、出力バッファ１６３に順次、垂直ライトする。垂直ライトとは、画像データの垂直方向とバッファのリード方向（例えば、アドレス順。図１７の例であれば（ａ）で示す方向）が一致するように、画素データをバッファに配置していくライトである。
【００５７】
続いて、画像出力部１５６は、１ライン分の伸長ブロックが出力バッファ１６３に格納されているか判別する。画像出力部１５６は、出力バッファ１６３に横１列Ｎ個分（例えば、ＤＭ−１（０）からＤ０（０）まで）の伸長ブロックが格納されたか判別する（Ｓ３０７）。１ライン分の伸長ブロックが格納されていない場合（Ｓ３０７：Ｎｏ）、処理はＳ３０１に戻る。
【００５８】
１ライン分の伸長ブロックが格納されている場合（Ｓ３０７：Ｙｅｓ）、画像出力部１５６は、出力バッファ１６３に格納されている伸長ブロックを、アドレス順に（すなわち、図１７に示す（ａ）の矢印に沿って）表示部１１０に出力する（Ｓ３０８）。
【００５９】
出力画像生成部１５０は、画像１枚分（すなわち、Ｍライン分）の出力が完了したか判別する（Ｓ３０９）。出力が完了していない場合（Ｓ３０９：Ｎｏ）、処理はＳ３０１に戻る。出力が完了している場合（Ｓ３０９：Ｙｅｓ）、出力画像生成部１５０は右回転画像出力処理を終了する。
【００６０】
なお、出力画像生成部１５０は、画像１枚分（Ｍライン分）を一度に表示部１１０に出力する必要はない。出力画像生成部１５０は、Ｍライン揃っていいなくても１ライン保持していれば、その分だけ出力することも可能である。図１４の例であれば、Ｃｍ（０）の１画素をデコードして次のＣｍ−１（０）の１画素をデコードする。１ライン分の画像が揃ったら、出力画像生成部１５０は表示部１１０に１ライン分の画像を出力する。この処理は、以下に説明する右回転画像出力処理、左回転画像出力処理、１８０°回転画像出力処理にも適用か可能である。
【００６１】
画像表示装置１００の状態が左回転状態でない場合（Ｓ１０３：Ｎｏ）、出力画像生成部１５０は、画像表示装置１００の状態が右回転状態か否かを判別する（Ｓ１０４）。画像表示装置１００の状態が右回転状態の場合（Ｓ１０４：Ｙｅｓ）、出力画像生成部１５０は、左回転画像出力処理を開始する（Ｓ４００）。左回転画像出力処理は、表示部１１０に左回転画像を出力する。左回転画像は、無回転画像に対して９０°左に回転している。図１８（Ａ）は、右回転状態の画像表示装置１００に左回転画像が表示された例である。理解を容易にするため、図１８（Ｂ）に、標準状態の画像表示装置１００に左回転画像が表示された例を示す。
【００６２】
画像表示装置１００が左回転画像を出力する場合、図１８（Ｂ）に示すように、表示部１１０の走査方向と表示画像のライン方向とは異なったものとなる。走査方向に沿って映像信号を出力するためには、出力画像生成部１５０は、図１９に示す（ａ）の矢印のように、ライン後方から前方に向けて、映像信号を垂直に出力（「逆縦ラスタ出力」ともいう。）する必要がある。そこで、出力画像生成部１５０は、図２０に示す（ａ）の矢印のように、圧縮ブロックをライン後方から前方に向けて垂直リードする。垂直リードとは、ライン方向と垂直な方向にバッファから画素データを取り出すリードである。
【００６３】
なお、Ｓ１０１の圧縮処理が前方参照圧縮の場合、出力画像生成部１５０は、左回転画像出力処理を実行する前に、符号化部１５１に対して入力画像の再圧縮を命令してもよい。このとき、符号化部１５１は、後方参照圧縮で入力画像を圧縮してもよい。Ｓ１０１の圧縮処理が後方参照圧縮或いは無参照圧縮の場合、出力画像生成部１５０は、再圧縮を命令することなく、左回転画像出力処理を実行する。以下、図２１のフローチャートを参照して左回転画像出力処理について説明する。
【００６４】
リード部１５２は、パラメータバッファ１６２から位置情報１６２ａをリードする（Ｓ４０１）。位置情報１６２ａに格納されるアドレス情報は、例えば、ライン中で次に伸長対象となる圧縮ブロックの先頭アドレスである。復号部１５３がすでに図２０に示す圧縮ブロックＣ０（３）の伸長を完了しているのであれば、アドレス情報０は、圧縮ブロックＣ０（２）の開始アドレス（すなわち、Ａｄｒ０、領域番号６）となる。
【００６５】
なお、リード部１５２は、リードが図２０に示す（ａ）の矢印の順番となるように、アドレス情報を選択する。初めに、リード部１５２はアドレス情報０をリードする。次に、リード部１５２はアドレス情報１をリードする。アドレス情報Ｍ−１のリードが完了したら、リード部１５２は、再びアドレス情報０をリードする。
【００６６】
続いて、リード部１５２は、リードしたアドレス情報に基づいて、フレームバッファ１６１から圧縮ブロックをリードする（Ｓ４０２）。例えば、アドレス情報が、“Ａｄｒ０、領域番号６”であれば、リード部１５２は、フレームバッファ１６１からＣ０（２）のブロック以降をリードする。
【００６７】
続いて、リード部１５２は、パラメータバッファ１６２からデコード情報１６２ｂをリードする（Ｓ４０３）。左回転画像出力処理の場合、ローカルデコード情報は、同じライン中の次に伸長対象となる圧縮ブロックのデコード情報である。例えば、復号部１５３がすでに圧縮ブロックＣ０（３）の伸長を完了しているのであれば、ローカルデコード情報０は、圧縮ブロックＣ０（２）のデコード情報である。
【００６８】
リード部１５２は、デコード情報１６２ｂから、グローバルデコード情報と、リードした圧縮ブロックのローカルデコード情報をリードする。そして、復号部１５３は、デコード情報を使って、圧縮ブロックを伸長する（Ｓ４０４）。
【００６９】
次に、情報取得部１５４は、パラメータバッファ１６２に格納されている位置情報１６２ａおよびデコード情報１６２ｂを更新する（Ｓ４０５）。より具体的には、情報取得部１５４は、圧縮ブロックに付加されている前方ブロック情報に基づいて、同一ラインで次に伸長対象となる圧縮ブロックの開始アドレスを判別する。そして、情報取得部１５４は、今回伸長対象となったラインのアドレス情報を更新する。
【００７０】
本実施形態の場合、情報取得部１５４は、伸長対象となった圧縮ブロックと同一ラインで、１つ前方の圧縮ブロック（以下、前圧縮ブロックという。）を次の伸長対象として特定する。例えば、圧縮ブロックＣ０（２）が伸長対象となったのであれば、情報取得部１５４は、アドレス情報０を“Ａｄｒ０、領域番号２”に書き換える。
【００７１】
また、情報取得部１５４は、伸長ブロックから、前圧縮ブロックの伸長で使用されるローカルデコード情報を抽出する。例えば、情報取得部１５４は、伸長ブロックの画素値の平均値を前圧縮ブロックのローカルデコード情報として抽出する。そして、情報取得部１５４は、伸長対象となったラインのローカルデコード情報を更新する。例えば、圧縮ブロックＣ０（２）が伸長対象となったのであれば、情報取得部１５４は、ローカルデコード情報０を書き換える。
【００７２】
次に、画像回転部１５５は、伸長ブロックを出力バッファ１６３に格納する（Ｓ４０６）。図２２は、伸長ブロックが格納された出力バッファ１６３を示す図である。画像回転部１５５は、伸長ブロックを、出力バッファ１６３に順次、垂直ライトする。
【００７３】
続いて、画像出力部１５６は、１ライン分の伸長ブロックが出力バッファ１６３に格納されているか判別する。画像出力部１５６は、出力バッファ１６３に横１列Ｎ個分（例えば、Ｄ０（３）からＤＭ−１（３）まで）の伸長ブロックが格納されたか判別する（Ｓ４０７）。１ライン分の伸長ブロックが格納されていない場合（Ｓ４０７：Ｎｏ）、処理はＳ４０１に戻る。
【００７４】
１ライン分の伸長ブロックが格納されている場合（Ｓ４０７：Ｙｅｓ）、画像出力部１５６は、出力バッファ１６３に格納されている伸長ブロックを、アドレス順に（すなわち、図２２に示す（ａ）の矢印に沿って）表示部１１０に出力する（Ｓ４０８）。
【００７５】
出力画像生成部１５０は、画像１枚分（すなわち、Ｍライン分）の出力が完了したか判別する（Ｓ４０９）。出力が完了していない場合（Ｓ４０９：Ｎｏ）、処理はＳ４０１に戻る。出力が完了している場合（Ｓ４０９：Ｙｅｓ）、出力画像生成部１５０は左回転画像出力処理を終了する。
【００７６】
一方、画像表示装置１００の状態が右回転状態でない場合（Ｓ１０４：Ｎｏ）、出力画像生成部１５０は、画像表示装置１００の状態が１８０°回転状態か否かを判別する（Ｓ１０５）。画像表示装置１００の状態が１８０°回転状態の場合（Ｓ１０４：Ｙｅｓ）、出力画像生成部１５０は、１８０°回転画像出力処理を開始する（Ｓ５００）。１８０°回転画像出力処理は、表示部１１０に１８０°回転画像を出力する。１８０°回転画像は、無回転画像に対して１８０°回転している。図２３（Ａ）は、１８０°回転状態の画像表示装置１００に１８０°回転画像が表示された例である。理解を容易にするため、図２３（Ｂ）に、標準状態の画像表示装置１００に１８０°回転画像が表示された例を示す。
【００７７】
画像表示装置１００が１８０°回転画像を出力する場合、図２３（Ｂ）に示すように、表示部１１０の走査方向と表示画像のライン方向とは逆向きとなる。走査方向に沿って映像信号を出力するためには、出力画像生成部１５０は、図２４に示す（ａ）の矢印のように、ライン後方から前方に向けて順次、映像信号を水平に出力（「逆横ラスタ出力」ともいう。）する必要がある。そこで、出力画像生成部１５０は、図２５に示す（ａ）の矢印のように、圧縮ブロックをライン後方から前方に向けて水平リードする。水平リードとは、ライン方向に沿ってバッファから画素データを取り出すリードである。
【００７８】
なお、画像表示装置１００が１８０°回転画像を出力する場合、出力画像生成部１５０は、図２６に示す（ａ）の矢印のように、圧縮ブロックをライン前から後方に向けて水平リードしてもよい。そして、出力画像生成部１５０は、圧縮ブロックをリードした順に復号してもよい。この場合、画像表示装置１００は１ライン分のバッファを別途備え、出力画像生成部１５０は、その１ライン分のバッファに復号した１ライン分の画像データを格納してもよい。そして、出力画像生成部１５０は、１ライン分のバッファから逆向きに、すなわち、ライン後方から前方に向けて画素データをリードしてもよい。こうすることで、画像表示装置１００は、遅延を増加させるが、スループットを減少させることができる。
【００７９】
なお、Ｓ１０１の圧縮処理が前方参照圧縮の場合、出力画像生成部１５０は、１８０°回転画像出力処理を実行する前に、符号化部１５１に対して入力画像の再圧縮を命令してもよい。このとき、符号化部１５１は、後方参照圧縮で入力画像を圧縮してもよい。Ｓ１０１の圧縮処理が後方参照圧縮或いは無参照圧縮の場合、出力画像生成部１５０は、再圧縮を命令することなく、１８０°回転画像出力処理を実行する。以下、図２７のフローチャートを参照して左回転画像出力処理について説明する。
【００８０】
リード部１５２は、パラメータバッファ１６２から位置情報１６２ａをリードする（Ｓ５０１）。アドレス情報は、例えば、ライン中で次に伸長対象となる圧縮ブロックの先頭アドレスである。復号部１５３がすでに圧縮ブロックＣＭ−１（３）の伸長を完了しているのであれば、アドレス情報Ｍ−１は、圧縮ブロックＣＭ−１（２）の開始アドレス（すなわち、ＡｄｒＭ−１、領域番号６）となる。リード部１５２は、図２５に示す（ａ）の矢印のように、ライン後方から前方に向けて順次、アドレス情報を選択する。
【００８１】
続いて、リード部１５２は、リードしたアドレス情報に基づいて、フレームバッファ１６１から圧縮ブロックをリードする（Ｓ５０２）。例えば、アドレス情報が、“ＡｄｒＭ−１、領域番号６”であれば、リード部１５２は、圧縮ブロックＣＭ−１（２）をリードする。圧縮ブロックＣＭ−１（２）のブロックサイズはＣＭ−１（２）自身に付されている。
【００８２】
続いて、リード部１５２は、パラメータバッファ１６２からデコード情報１６２ｂをリードする（Ｓ５０３）。１８０°回転画像出力処理の場合、位置情報１６２ａに格納されるローカルデコード情報は、同じライン中の次に伸長対象となる圧縮ブロックのデコード情報である。例えば、復号部１５３がすでに圧縮ブロックＣＭ−１（３）の伸長を完了しているのであれば、ローカルデコード情報Ｍ−１は、圧縮ブロックＣＭ−１（２）のデコード情報である。
【００８３】
リード部１５２は、デコード情報１６２ｂから、グローバルデコード情報と、リードした圧縮ブロックのローカルデコード情報をリードする。そして、復号部１５３は、リードしたデコード情報を使って、圧縮ブロックを伸長する（Ｓ５０４）。
【００８４】
次に、情報取得部１５４は、パラメータバッファ１６２に格納されている位置情報１６２ａおよびデコード情報１６２ｂを更新する（Ｓ５０５）。より具体的には、情報取得部１５４は、圧縮ブロックに付加されている前方ブロック情報に基づいて、同一ラインで次に伸長対象となる圧縮ブロックの開始アドレスを判別する。そして、情報取得部１５４は、今回伸長対象となったラインのアドレス情報を更新する。
【００８５】
本実施形態の場合、情報取得部１５４は、伸長対象となった圧縮ブロックの１つ前方の圧縮ブロックを、次の伸長対象として特定する。例えば、圧縮ブロックＣＭ−１（２）が伸長対象となったのであれば、情報取得部１５４はアドレス情報Ｍ−１を“ＡｄｒＭ−１、領域番号３”に書き換える。
【００８６】
また、情報取得部１５４は、伸長ブロックから、前圧縮ブロックの伸長で使用されるローカルデコード情報を抽出する。例えば、情報取得部１５４は、伸長ブロックの画素値の平均値を前圧縮ブロックのローカルデコード情報として抽出する。そして、情報取得部１５４は、伸長対象となったラインのローカルデコード情報を更新する。例えば、圧縮ブロックＣＭ−１（２）が伸長対象となったのであれば、情報取得部１５４はローカルデコード情報Ｍ−１を書き換える。
【００８７】
次に、画像回転部１５５は、伸長ブロックを出力バッファ１６３に格納する（Ｓ５０６）。図２８は、伸長ブロックが格納された出力バッファ１６３を示す図である。続いて、画像出力部１５６は、１ライン分の伸長ブロックが出力バッファ１６３に格納されているか判別する。画像出力部１５６は、出力バッファ１６３に横１列４個分（例えば、ＤＭ−１（３）からＤＭ−１（０）まで）の伸長ブロックが格納されたか判別する（Ｓ５０７）。１ライン分の伸長ブロックが格納されていない場合（Ｓ５０７：Ｎｏ）、処理はＳ５０１に戻る。
【００８８】
１ライン分の伸長ブロックが出力バッファ１６３に格納されている場合（Ｓ５０７：Ｙｅｓ）、画像出力部１５６は、画像出力部１５６は、出力バッファ１６３に格納されている伸長ブロックを、アドレス順に（すなわち、図２８に示す（ａ）の矢印に沿って）表示部１１０に出力する（Ｓ５０８）。
【００８９】
出力画像生成部１５０は、画像１枚分（すなわち、Ｍライン分）の出力が完了したか判別する（Ｓ５０９）。出力が完了していない場合（Ｓ５０９：Ｎｏ）、処理はＳ５０１に戻る。出力が完了している場合（Ｓ５０９：Ｙｅｓ）、出力画像生成部１５０は１８０°回転画像出力処理を終了する。
【００９０】
出力画像生成部１５０は、入力画像生成部１４０が停止状態から復帰しているか判別する（Ｓ１０５）。入力画像生成部１４０が停止状態から復帰していない場合（Ｓ１０５：Ｎ０）、処理はＳ１０２に戻る。復帰している場合（Ｓ１０５：Ｙｅｓ）、出力画像生成部１５０は、画像出力処理を終了する。
【００９１】
本実施形態によれば、画像表示装置１００は、入力画像を圧縮して複数の圧縮ブロックを生成し、生成した圧縮ブロックをフレームバッファ１６１に格納している。しかも、圧縮ブロックは、１ラインより小さなサイズの画素ブロックを圧縮したブロックである。画像表示装置１００は、１ラインより小さなサイズを単位として、フレームバッファ１６１から圧縮画像を取り出しできる。したがって、本実施形態は、画像を回転させて表示するために圧縮画像の全てのラインを一旦、伸長する必要がない。すなわち、画像表示装置１００は、画像の回転出力のために、わざわざバッファ容量を確保する必要がない。よって、小さな容量のフレームバッファで画像の回転出力を実現できる。
【００９２】
なお、画像の圧縮効率は、圧縮の保証単位（ブロック）が小さなサイズであるほど低下する。しかし、本実施形態の画像表示装置１００は、１ラインを単位として圧縮保証しているので、圧縮効率はあまり低下しない。しかも、圧縮ラインは、複数の圧縮ブロックで構成されている。また、画像表示装置１００は、圧縮ブロック単位での伸長を可能とするために、パラメータバッファ１６２に伸長経過情報（位置情報およびデコード情報）を保持している。そのため、画像表示装置１００は、入力画像を１ラインより小さなサイズでフレームバッファ１６１を伸長できる。
【００９３】
なお、上述の実施形態では、圧縮ブロックがフレームバッファ１６１に格納される際に、符号化部１５１が圧縮ブロックに付加情報を付すものとして説明した。しかしながら、符号化部１５１は、圧縮ブロックをフレームバッファ１６１に格納する際に、圧縮ブロックに付加情報を付さなくてもよい。この場合、出力画像生成部１５０は、Ｓ４００の左回転画像出力処理を実行する前に、符号化部１５１に対して入力画像の再圧縮を命令してもよい。そして、出力画像生成部１５０は、再圧縮された画像に対して、Ｓ３００の右回転画像出力処理と同様の処理を実行してもよい。同様に、出力画像生成部１５０は、Ｓ５００の１８０°回転画像出力処理を実行する前に、符号化部１５１に対して入力画像の再圧縮を命令してもよい。そして、出力画像生成部１５０は、再圧縮された画像に対して、Ｓ２００の無回転画像出力処理と同様の処理を実行してもよい。これにより付加情報を各ブロックに付加しなくても画像を伸長することが可能になるため圧縮効率が高まる。
【００９４】
（実施形態２）
実施形態２の画像表示装置１００は、図１に示す実施形態１の画像表示装置１００と同様に、表示部１１０と、入力部１２０と、制御部１３０と、入力画像生成部１４０と、出力画像生成部１５０と、記憶部１６０と、を備える。
【００９５】
図２９は、出力画像生成部１５０及び記憶部１６０のブロック図である。記憶部１６０は、ＤＲＡＭ、ＳＲＡＭ、半導体メモリ、ハードディスク等のデータ読み書き可能な記憶装置である。記憶部１６０は、フレームバッファ１６１ａと、フレームバッファ１６１ｂと、パラメータバッファ１６２と、出力バッファ１６３と、を含む。
【００９６】
フレームバッファ１６１ａ及びフレームバッファ１６１ｂは、入力画像を圧縮した圧縮画像を一時的に保持する。フレームバッファ１６１ａ及びフレームバッファ１６１ｂは、それぞれ、独立してデータをリードライト可能である。
【００９７】
符号化部１５１は、新たに入力画像を圧縮する度に、圧縮ブロックの格納場所を、別のフレームバッファに切り替える。例えば、符号化部１５１は、入力画像生成部１４０から画像が入力されたら、フレームバッファ１６１ａに圧縮画像を格納する。その後、入力画像生成部１４０から新たに画像が入力されたら、符号化部１５１は、フレームバッファ１６１ｂに圧縮画像を格納する。次に入力画像生成部１４０から画像が入力されたら、符号化部１５１は、再びフレームバッファ１６１ａに圧縮画像を格納する。
【００９８】
リード部１５２、復号部１５３、情報取得部１５４、画像回転部１５５、及び画像出力部１５６は、符号化部１５１と並行して動作可能である。リード部１５２、復号部１５３、情報取得部１５４、画像回転部１５５、及び画像出力部１５６は、符号化部１５１が入力画像を圧縮してフレームバッファに格納している間、もう一方のフレームバッファに格納されている圧縮画像を伸長して表示部１１０に出力する。例えば、符号化部１５１がフレームバッファ１６１ａに圧縮画像を格納しているのであれば、復号部１５３、情報取得部１５４、画像回転部１５５、及び画像出力部１５６は、フレームバッファ１６１ｂに格納されている圧縮画像を伸長して表示部１１０に出力する。
【００９９】
画像表示装置１００のその他の構成は、実施形態１の画像表示装置１００と同じであるので説明を省略する。
【０１００】
本実施形態によれば、画像表示装置１００は、複数のフレームメモリを有している。そして、符号化部１５１は、新たに入力画像を圧縮する度に、圧縮ブロックの格納場所を、別のフレームバッファに切り替えている。そして、リード部１５２、復号部１５３、情報取得部１５４、画像回転部１５５、及び画像出力部１５６は、符号化部１５１が入力画像を圧縮してフレームバッファに格納している間、もう一方のフレームバッファに格納されている圧縮画像を伸長して表示部１１０に出力するよう構成されている。そのため、画像表示装置１００は、画像が出力画像生成部１５０に入力されてから表示部１１０に出力されるまでの遅延を小さくすることができる。
【０１０１】
なお、上述の各実施形態は、それぞれ一例を示したものであり、種々の変更及び応用が可能である。例えば、上述の実施形態では、入力画像生成部１４０は、無圧縮の画像を出力画像生成部１５０に入力したが、入力画像生成部１４０が出力画像生成部１５０に入力する入力画像は圧縮画像であってもよい。このとき、符号化部１５１は入力画像を伸長して圧縮し直してもよいし、入力画像生成部１４０から取得した圧縮画像をそのままフレームバッファに格納してもよい。
【０１０２】
また、上述の各実施形態では、符号化部１５１は、画像が劣化する非可逆圧縮方式を使用して画素ブロックを圧縮したが、画素ブロックを圧縮する圧縮方式は非可逆圧縮に限定されない。符号化部１５１は、画像が劣化しない可逆圧縮を使用して画素ブロックを圧縮してもよい。
【０１０３】
また、上述の実施形態では、圧縮ブロックに付される付加情報がデータサイズと前方ブロック情報とから構成されるものとして説明したが、付加情報はデータサイズのみから構成されていてもよい。また、付加情報には、データサイズ及び前方ブロック情報に加えて、データサイズ及び前方ブロック情報以外の情報が含まれていてもよい。
【０１０４】
付加情報がデータサイズのみから構成される場合、付加情報は図８（Ｂ）に示すように、圧縮ブロックの末尾に付されていてもよい。そして、左回転画像出力処理及び１８０°回転画像出力処理において、情報取得部１５４は、前圧縮ブロックの末尾に付されている付加情報（データサイズ）に基づいて前圧縮ブロックの先頭アドレスを特定してもよい。この場合、情報取得部１５４は、位置情報１６２ａのアドレス情報に、前圧縮ブロックの先頭アドレスではなく、現在の圧縮ブロックの先頭アドレスを記録してもよい。
【０１０５】
また、上述の各実施形態では、入力画像の１ラインは４個の画素ブロックで構成されるものとして説明したが、入力画像の１ラインは４個以上の画素ブロックで構成されていてもよいし、４個以下の画素ブロックで構成されていてもよい。
【０１０６】
また、上述の各実施形態では、順方向を左から右と説明したが、装置の設計に合わせ、順方向を右から左としてもよい。
【０１０７】
また、出力画像生成部１５０が一度に復号する画素数は、圧縮ブロック単位でなくてもよい。例えば、出力画像生成部１５０は、Ｃｍ（０）の１画素だけを伸長した後、Ｃｍ（０）の伸長処理を打ち切り、次の行の圧縮ブロック（Ｃｍ−１（０）あるいはＣｍ＋１（０））の伸長に進む。その際、出力画像生成部１５０は、Ｃｍ（０）のデコードに使う情報（例えば、リードアドレスやローカルデコード画素、量子化係数、ゴロムライスのＫの情報)をローカルデコード情報としてパラメータバッファ１６２に格納する。そして、出力画像生成部１５０は、次にＣｍ（０）を復号するときに、ローカルデコード情報をパラメータバッファ１６２から読み込み、Ｃｍ（０）の２画素目の伸長を再開する。
【０１０８】
また、上述の各実施形態では、画像表示装置１００はタブレット端末であるものとして説明したが、画像表示装置１００は、テレビ、レコーダ、パーソナルコンピュータ、固定電話機、携帯電話機、スマートフォン、ＰＤＡ（Personal Digital Assistant）、ゲーム機等、スマートフォン以外の装置であってもよい。画像表示装置１００は表示部１１０を備えていなくてもよい。また、上述の実施形態では、本実施形態の画像処理装置の一例として画像表示装置１００を示したが、画像処理装置は表示部を備えない装置であってもよい。例えば、画像処理装置は画像表示装置１００に搭載される部品であってもよい。例えば、画像処理装置は、画像表示装置１００の制御部１３０を構成する半導体チップ、若しくはその半導体チップが実装された半導体基板であってもよい。
【０１０９】
本実施形態に係る画像表示装置１００は、専用のコンピュータシステムにより実現してもよいし、通常のコンピュータシステムにより実現してもよい。例えば、上述の動作を実行するためのプログラムを、光ディスク、半導体メモリ、磁気テープ、フレキシブルディスク等のコンピュータ読み取り可能な記録媒体に格納して配布し、該プログラムをコンピュータにインストールして、上述の処理を実行することによって画像表示装置１００を構成してもよい。また、上記プログラムをインターネット等のネットワーク上のサーバ装置が備えるディスク装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。また、上述の機能を、ＯＳ（Operating System）とアプリケーションソフトとの協働により実現してもよい。この場合には、ＯＳ以外の部分を媒体に格納して配布してもよいし、ＯＳ以外の部分をサーバ装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。
【０１１０】
本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことが出来る。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１１】
１００…画像表示装置
１１０…表示部
１２０…入力部
１２１…カメラ
１２２…操作ボタン
１２３…センサー
１３０…制御部
１４０…入力画像生成部
１５０…出力画像生成部
１５１…符号化部
１５２…リード部
１５３…復号部
１５４…情報取得部
１５５…画像回転部
１５６…画像出力部
１６０…記憶部
１６１、１６１ａ、１６１ｂ…フレームバッファ
１６２…パラメータバッファ
１６２ａ…位置情報
１６２ｂ…デコード情報
１６３…出力バッファ
【図１】
0006411250.tif 000002
【図２】
0006411250.tif 000003
【図３】
0006411250.tif 000004
【図４】
0006411250.tif 000005
【図５】
0006411250.tif 000006
【図６】
0006411250.tif 000007
【図７】
0006411250.tif 000008
【図８】
0006411250.tif 000009
【図９】
0006411250.tif 000010
【図１０】
0006411250.tif 000011
【図１１】
0006411250.tif 000012
【図１２】
0006411250.tif 000013
【図１３】
0006411250.tif 000014
【図１４】
0006411250.tif 000015
【図１５】
0006411250.tif 000016
【図１６】
0006411250.tif 000017
【図１７】
0006411250.tif 000018
【図１８】
0006411250.tif 000019
【図１９】
0006411250.tif 000020
【図２０】
0006411250.tif 000021
【図２１】
0006411250.tif 000022
【図２２】
0006411250.tif 000023
【図２３】
0006411250.tif 000024
【図２４】
0006411250.tif 000025
【図２５】
0006411250.tif 000026
【図２６】
0006411250.tif 000027
【図２７】
0006411250.tif 000028
【図２８】
0006411250.tif 000029
【図２９】
0006411250.tif 000030