JP2008042497A - デコード装置、情報再生装置及び電子機器 - Google Patents

デコード装置、情報再生装置及び電子機器 Download PDF

Info

Publication number
JP2008042497A
JP2008042497A JP2006213746A JP2006213746A JP2008042497A JP 2008042497 A JP2008042497 A JP 2008042497A JP 2006213746 A JP2006213746 A JP 2006213746A JP 2006213746 A JP2006213746 A JP 2006213746A JP 2008042497 A JP2008042497 A JP 2008042497A
Authority
JP
Japan
Prior art keywords
data
unit
decoding
processing
packet
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.)
Withdrawn
Application number
JP2006213746A
Other languages
English (en)
Inventor
Tsunenori Kimura
恒範 木村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2006213746A priority Critical patent/JP2008042497A/ja
Priority to US11/831,548 priority patent/US20080031357A1/en
Publication of JP2008042497A publication Critical patent/JP2008042497A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】 可変長符号化されたストリームデータを、低コストで高速化できるデコード装置、情報再生装置及び電子機器を提供する。
【解決手段】 第1及び第2のデータがストリーム化されたストリームデータをデコードするデコード装置100は、マクロブロック単位のパラメータデータに基づいてモードの解析処理と第1の可変長復号化処理とを行って、第2のデータが格納されるストリームバッファの先頭アドレスを求めるプレサーチ部と、第1の可変長復号化処理後のパラメータデータに基づき第1のデータをデコードし、当該マクロブロックのパラメータ値を求めるパラメータデコード部と、第2のデータに対して、第2の可変長復号化処理を行うデータデコード部とを含む。データデコード部は、プレサーチ部からの先頭アドレスに基づいてストリームバッファから読み出した第2のデータに対し第2の可変長復号化処理を行う。
【選択図】 図1

Description

本発明は、デコード装置、情報再生装置及び電子機器に関する。
動画像の画像データに対する汎用的な符号化方式として、MPEG−4(Moving Picture Experts Group Phase 4)やH.264/AVC(Advanced Video Coding)が規格化されている。特に、H.264/AVCは、動き補償の画像の処理単位を細かくしたり、参照フレーム数の数を増加させたり、エントロピー符号化の工夫、デブロッキングフィルタの採用等によって、MPEG−4等の従来の符号化方式に比べて高い圧縮符号化効率を達成している。しかも、H.264/AVCは、地上デジタル放送における動画像の画像データの圧縮符号化方式として定められるに至り、H.264/AVCがより一層重要になってきている。
この地上デジタル放送は、これまでの地上アナログ放送に代わって行われる放送であり、この放送の中に、携帯端末向けサービスとして、いわゆる「1セグメント放送」がある。「1セグメント放送」では、QPSK(Quadrature Phase Shift Keying)変調方式で変調されたデジタル変調波をOFDM(Orthogonal Frequency Division Multiplexing)変調方式で多重化することで、携帯端末の移動時でも安定した放送受信が可能となる。このようにバッテリ駆動の携帯電話機において、より一層複雑且つ高度なH.264/AVCの処理を実現するために高い処理能力が求められている。そのため、H.264/AVCの処理を実現するには、種々の工夫を行う必要がある。
例えば特許文献1には、並列可変長復号器を設け、2つの可変長符号語を並列に復号した後、更にランレングス復号化器により復号化し、その復号化後のデータに対して逆離散コサイン変換を行うようにした構成が開示されている。
特開平7−123407号公報
ところで、ストリームデータの可変長復号を行う場合、復号処理(デコード処理)の結果に応じて、後段に必要なビット数が判明する。即ち、ストリームデータに後段側の復号化の処理方法を特定する情報が含まれているため、前段の可変長復号器で復号してみないと、後段の復号化の処理方法を特定できない。この点、特許文献1に開示された技術では、並列可変長復号器により2つの可変長符号語の並列な復号処理が可能となるものの、その後段ではランレングス復号化器により復号化処理されている。即ち、並列可変長復号化器とランレングス復号化器とが並列に動作していないため、動作速度の高速化を図ることができない。
そのため、特許文献1に開示された技術であっても、高性能な中央演算処理装置で処理する必要があり、ストリームデータの可変長復号化を行う装置のコスト高を招くという問題があった。
また、H.264/AVCでは、コンテキスト適応型可変長符号化方式(Context-based Adaptive Variable Length Coding:以下、CAVLC)と呼ばれる可変長符号化方式が採用されている。CAVLCの処理は、これまでのランレングス復号化処理に比べて一層複雑化し、H.264/AVCの復号化処理速度が低下するという問題がある。
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、可変長符号化されたストリームデータを、低コストで高速化できるデコード装置、情報再生装置及び電子機器を提供することにある。
上記課題を解決するために本発明は、
第1の可変長符号化処理後の第1のデータと第2の可変長符号化処理後の第2のデータとがストリーム化されたストリームデータをデコードするためのデコード装置であって、
マクロブロック単位のパラメータデータに基づいてマクロブロックのモードの解析処理と前記第1の可変長符号化処理に対応する第1の可変長復号化処理とを行って、前記第2のデータが格納されるストリームバッファの先頭アドレスを求めるプレサーチ部と、
前記第1の可変長復号化処理後のパラメータデータに基づいて前記第1のデータをデコードし、当該マクロブロックのパラメータ値を求めるパラメータデコード部と、
前記第2のデータに対して、前記第2の可変長符号化処理に対応する第2の可変長復号化処理を行うデータデコード部とを含み、
前記データデコード部が、
前記プレサーチ部からの前記先頭アドレスに基づいて前記ストリームバッファから第2のデータを読み出し、該第2のデータに対して前記第2の可変長復号化処理を行うデコード装置に関係する。
また本発明に係るデコード装置では、
前記パラメータデコード部と前記可変長データデコード部とが、前記プレサーチ部の処理後に並列動作することができる。
また本発明に係るデコード装置では、
前記パラメータデコード部が、
前記ストリームバッファに格納されるデータに対して前記第1の可変長復号化処理を行って、該第1の可変長復号化処理後のパラメータデータに基づいて前記第1のデータをデコードすることができる。
上記のいずれかの発明においては、それぞれが可変長符号化された第1及び第2のデータがストリーム化されたストリームデータに対してデコード処理を行う場合に、第2のデータが格納されるストリームバッファの先頭アドレスを求めるプレサーチ部を設けるようにしている。そして、該プレサーチ部からの先頭アドレスを受けたデータデコード部が、第2のデータに対して可変長復号処理を行う。即ち、第1のデータのデコード結果が判明しないと第2のデータの先頭位置が不明なストリームデータに対し、プレサーチ部によって大まかに第1のデータを解析した後、データデコード部に対して第2のデータの先頭位置を特定する情報を与えるようにしている。その結果、データデコード部とパラメータデコード部とを並列に動作させることができるようになる。従って、低い処理能力のブロックを用いて、複雑なデコード処理を低コスト且つ高速に行うことができるようになる。
また本発明に係るデコード装置では、
前記第2の可変長復号化処理後のデータに対して逆量子化を行う逆量子化部と、
前記逆量子化部の出力データに対して逆離散コサイン変換を行う逆離散コサイン変換演算部と、
前記パラメータ値に基づいてインタ予測又はイントラ予測を行う予測部と、
前記予測部の結果と前記逆離散コサイン変換演算部の結果とを加算する加算部とを含み、
前記逆量子化部、前記逆離散コサイン変換演算部、前記予測部及び前記加算部が、前記パラメータデコード部及び前記データデコード部と並列動作することができる。
本発明によれば、例えば画像データのデコード処理を行うデコード装置を、低コスト且つ高速に処理させることができるようになる。
また本発明に係るデコード装置では、
前記データデコード部が、
CAVLC(Context-based Adaptive Variable Length Coding)の復号化処理を行うことができる。
本発明によれば、例えばH.264/AVC規格に準拠したデコード装置を、低コスト且つ高速に処理させることができるようになる。
また本発明は、
映像データ及び音声データの少なくとも1つを再生するための情報再生装置であって、
映像データを生成するための第1のTS(Transport Stream)パケット、音声データを生成するための第2のTSパケット、前記第1及び第2のTSパケット以外の第3のTSパケットを、トランスポートストリームから抽出する分離処理部と、
前記第1のTSパケットが格納される第1の記憶領域と、前記第2のTSパケットが格納される第2の記憶領域と、前記第3のTSパケットが格納される第3の記憶領域とを有するメモリと、
前記第1の記憶領域から読み出された前記第1のTSパケットに基づいて前記映像データを生成する映像デコード処理を行う映像デコーダと、
前記第2の記憶領域から読み出された前記第2のTSパケットに基づいて前記音声データを生成する音声デコード処理を行う音声デコーダとを含み、
前記映像デコーダが、上記のいずれか記載のデコード装置を含み、
前記映像デコーダが、前記第1の記憶領域から前記第1のTSパケットを、前記音声デコーダとは独立して読み出し、該第1のTSパケットに基づいて前記映像デコード処理を行うと共に、
前記音声デコーダが、前記第2の記憶領域から前記第2のTSパケットを、前記映像デコーダとは独立して読み出し、該第2のTSパケットに基づいて前記音声デコード処理を行う情報再生装置に関係する。
本発明によれば、上記の効果に加えて、処理能力の低い処理回路を用いて低消費電力で、処理負荷の重いデコード処理を実現する情報再生装置を提供できる。
また本発明は、
上記記載の情報再生装置と、
前記情報再生装置に対し、前記映像デコード処理及び前記音声デコード処理の少なくとも1つの処理開始を指示するホストとを含む電子機器に関係する。
また本発明は、
チューナと、
前記チューナからのトランスポートストリームが供給される上記記載の情報再生装置と、
前記情報再生装置に対し、前記映像デコード処理及び前記音声デコード処理の少なくとも1つの処理開始を指示するホストとを含む電子機器に関係する。
上記のいずれかの発明によれば、上記の効果に加えて、処理負荷の重い例えば1セグメント放送の再生処理を低消費電力で実現できる電子機器を提供できる。
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
1. デコード装置
図1に、本実施形態におけるデコード装置の構成要部のブロック図を示す。なおデコード装置100は、図1の構成に限定されず、その構成要素の一部を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。デコード装置100には、ストリームデータが入力され、該ストリームデータに対してデコード処理を行う。このストリームデータは、第1の可変長符号化処理後のパラメータデータ(第1のデータ)と第2の可変長符号化処理後の画像データ(第2のデータ)とがストリーム化されたデータである。そして、デコード装置100は、デコード処理に必要なパラメータデータのデコードを行いながら、例えば画像データが符号化されたデータのデコード処理を行う。
より具体的には、デコード装置100は、ストリームバッファ10と、VLD(Variable Length Decoding)プレサーチ部(広義には、プレサーチ部)20と、MB(Macro Block)パラメータデコード部(広義には、パラメータデコード部)30と、CAVLC部(広義には、データデコード部)40とを含む。ここで、MBは、画像の水平方向の所与の画素数、垂直方向の所与のライン数を単位とするブロックである。
ストリームバッファ10には、ストリームデータが格納される。VLDプレサーチ部(広義にはプレサーチ部)20は、MB単位のパラメータデータに基づいてMBのモードの解析処理と第1の可変長符号化処理に対応する第1の可変長復号化処理とを行って、画像データが格納されるストリームバッファ10の記憶領域の先頭アドレスを求める。MBパラメータデコード部30は、第1の可変長復号化処理後のパラメータデータに基づいてパラメータデータをデコードし、当該MBのパラメータ値を求める。当該MBのパラメータ値は、当該MBの画像データのデコード処理に用いられる。即ち、画像データのデコード処理は、パラメータ値に応じて変更される処理である。CAVLC部40は、画像データに対して、第2の可変長符号化処理に対応する第2の可変長復号化処理を行う。このとき、CAVLC部40は、VLDプレサーチ部20からのストリームバッファ10の先頭アドレスに基づいて該ストリームバッファ10から画像データを読み出し、該画像データに対して第2の可変長復号化処理を行う。
このようなデコード装置100は、更に、第1及び第2のバッファ22、42、予測部50、逆量子化部60、逆離散コサイン変換(Discrete Cosine Transform:以下、DCT)演算部70、加算部80を含むことができる。予測部50は、イントラ予測部52と、インタ予測部54とを含む。
第1のバッファ22には、VLDプレサーチ部20により行われた第1の可変長復号化処理後のデータが格納される。そして、VLDプレサーチ部20は、第1のバッファ22に格納された第1の可変長復号化処理後のデータを参照しながら、画像データが格納されるストリームバッファ10の記憶領域の先頭位置を示すストリームバッファ10の先頭アドレスを更新し、処理後の先頭アドレスをCAVLC部40に対して通知する。
第2のバッファ42には、CAVLC部40により行われた第2の可変長復号化処理後のデータが格納される。この第2のバッファ42には、可変長復号処理に必要なバッファリング機能を有する。そして、第2のバッファ42に格納されたデータが、逆量子化部60の処理に供される。
逆量子化部60は、MBパラメータデコード部30からのパラメータ値(例えば量子化パラメータ)を受けて、該パラメータ値を用いて第2のバッファ42に格納されたデータに対して公知の逆量子化処理を行う。逆DCT演算部70は、MBパラメータデコード部30からのパラメータ値(例えばブロックサイズ)を受けて、該パラメータ値を用いて逆量子化部60からのデータに対して公知の逆DCT処理を行う。
一方、予測部50は、MBパラメータデコード部30からのパラメータ値(例えばイントラブロックか、インタブロックかを示す情報)を受けて、イントラ予測又はインタ予測を行う。イントラ予測部52は、画面内符号化用の予測値を求める。インタ予測部54は、画面間符号化用の予測値を求める。
加算部80は、逆DCT演算部70からのデータと、イントラ予測部52又はインタ予測部54からのデータとを加算し、YUVデータとして出力する。
デコード装置100では、ストリームバッファ10に格納されたデータが、VLDプレサーチ部20又はCAVLC部40に供給され、両ブロックに供給されることはない。
以上のように、本実施形態においては、パラメータデータのデコード結果が判明しないと画像データの先頭位置が不明なストリームデータに対し、VLDプレサーチ部20によって大まかにパラメータデータを解析した後、CAVLC部40に対して画像データの先頭位置を特定する情報を与えるようにしている。その結果、パラメータデータの詳細なデコードを行ってパラメータ値を求めるMBパラメータデコード部30と、画像データに対してデコードを行うCAVLC部40とを並列に動作させることができるようになる。従って、低い処理能力のブロックを用いて、複雑なデコード処理を低コスト且つ高速に行うことができるようになる。
1.1 比較例との対比
ここで、本実施形態の比較例と対比しながら、本実施形態における効果を説明する。
図2に、本実施形態の比較例におけるデコード装置の構成要部のブロック図を示す。なお、図2において、図1と同一部分には同一符号を付し、適宜説明を省略する。
本比較例におけるデコード装置200では、図1のデコード装置100と比較すると、VLDプレサーチ部20に代えてVLD部210が設けられ、MBパラメータデコード部30に代えてMBパラメータデコード部220が設けられる。また、デコード装置200は、第1及び第2のバッファ22、42が省略されると共に、CAVLC部40に対してMBパラメータデコード部220から先頭アドレスが供給される。
VLD部210は、パラメータデータに対して後述するゴロム復号処理後のデータをMBパラメータデコード部220に出力する。このゴロム復号処理は、図1ではVLDプレサーチ部20において行われる。
MBパラメータデコード部220は、VLD部210からのデータに対して、動きベクトル値を求める計算、イントラモード値やインタモード値を求める計算、量子化パラメータを求める計算、マクロブロックタイプを求める計算等を行う。MBパラメータデコード部220のパラメータデータに対するデコード処理の結果、CAVLC部40が参照すべき第2のデータが格納されるストリームバッファ10の先頭アドレスが判明し、CAVLC部40に対して通知される。CAVLC部40は、MBパラメータデコード部220からの先頭アドレスを用いて、ストリームバッファ10から画像データを読み出し、該画像データに対してCAVLC処理を行う。
また、図2のデコード装置200では、VLD部210は、MBパラメータデコード部220から先頭アドレスが供給される。これは、図1のデコード装置100では、上記のようなMBパラメータデコード部220の処理の一部が、VLDプレサーチ部20において行われる点が異なるからである。即ち、VLDプレサーチ部20では、パラメータデータのうち、CAVLC部40が画像データに対する処理を行うのに必要な画像データの先頭アドレスを求める処理が行われる。この画像データの先頭アドレスを求める処理は、MBパラメータデコード部220の処理の一部である。
図3に、本比較例におけるデコード装置200の動作例の説明図を示す。
図3では、ストリームデータがパラメータデータと画像データとしてのCAVLCデータとが多重化されている場合、デコード装置200の各部の処理対象のデータをMB単位で示している。
例えば、VLD部210及びMBパラメータデコード部220が、MB番号が「0」のMBに対して処理を行い、これらの処理が終了した後に、CAVLC部40及び逆量子化部60が、MB番号が「0」のCAVLCデータに対する処理を行うこと示している。
続いて、「0」に続く「1」のMB番号のMBに対して、VLD部210及びMBパラメータデコード部220が処理を行い、これらの処理が終了した後に、CAVLC部40及び逆量子化部60が、MB番号が「1」のCAVLCデータに対する処理を行うこと示している。
このように、デコード装置200では、MBパラメータデコード部220の処理後にCAVLC部40の処理を行うため、デコード装置200の各部の処理時間を短縮しても、単位処理時間T0がそれほど短くならない。
図4に、本実施形態におけるデコード装置100の動作例の説明図を示す。
図4では、図3と同様に、ストリームデータがパラメータデータと画像データとしてのCAVLCデータとが多重化されている場合、デコード装置100の各部の処理対象のデータをMB単位で示している。
本実施形態では、VLDプレサーチ部20が、まずパラメータデータに対してCAVLC部40に必要なパラメータのデコードを行う。その結果、VLDプレサーチ部20は、例えばCAVLCデータが格納されるストリームバッファ10の記憶領域の先頭アドレスをCAVLC部40に通知する。その後、MBパラメータデコード部30、CAVLC部40及び逆量子化部60が、MB番号が「0」のCAVLCデータ及びパラメータデータに対して並列に動作することができる。
続いて、「0」に続く「1」のMB番号のMBに対して、VLDプレサーチ部20が、CAVLCデータが格納されるストリームバッファ10の記憶領域の先頭アドレスをCAVLC部40に通知する。その後、MBパラメータデコード部30、CAVLC部40及び逆量子化部60が、MB番号が「1」のCAVLCデータ及びパラメータデータに対して並列に動作することができる。このとき、逆DCT演算部70及び予測部50は、前のMB番号である「0」のMB番号のパラメータデータ及びCAVLCデータに対して、それぞれ処理を行ってパイプライン動作を行う。
続いて、「1」に続く「2」のMB番号のMBに対して、VLDプレサーチ部20が、CAVLCデータが格納されるストリームバッファ10の記憶領域の先頭アドレスをCAVLC部40に通知する。その後、MBパラメータデコード部30、CAVLC部40及び逆量子化部60が、MB番号が「2」のCAVLCデータ及びパラメータデータに対して並列に動作することができる。このとき、逆DCT演算部70及び予測部50は、前のMB番号である「1」のMB番号のパラメータデータ及びCAVLCデータに対して、それぞれ処理を行ってパイプライン動作を行う。また、加算部80は、MB番号が「0」のデータに対して加算処理を行う。
即ち、MBパラメータデコード部30とCAVLC部40とが、VLDプレサーチ部20の処理後に並列動作している。また、逆量子化部60、逆DCT演算部70、予測部50及び加算部80が、MBパラメータデコード部30及びCAVLC部40と並列動作している。
以上のように、本実施形態では、CAVLC部に必要なパラメータ値が、VLCプレサーチ部20において算出される。従って、本実施形態では、少なくともCAVLC部40とMBパラメータデコード部30とが並列に動作する。また、CAVLC部40及びMBパラメータデコード部30は、予測部50とパイプライン動作を行う。このように、本比較例ではMBパラメータデコード部220の処理を待ってVLD部210の処理を終了するのに対し、本実施形態では、VLDプレサーチ部20がMBパラメータデコード部30の処理の終了を待つ必要がない。更に、MBパラメータデコード部30においてデコードすべきパラメータ値を少なくでき、その結果、パイプライン時間としての単位処理時間T1を図3の単位処理時間T0より短くすることができるようになる。
1.2 H.264/AVC
次に、本実施形態おけるデコード装置100が適用可能なH.264/AVCに準拠したデコード処理を行うデコード装置について説明する。
図5に、本実施形態が適用可能なH.264/AVCに準拠したデコード処理を行うデコード装置の構成例のブロック図を示す。なお、図5において図1と同一部分には同一符号を付し、適宜説明を省略する。また、図5において、図1のストリームバッファ10、第1及び第2のバッファ22、42の図示を省略している。
図5では、1MB分のデータブロック単位のデータに対して行われるH.264/AVC規格の一連のデコード処理を実現するようになっている。より具体的には、デコード装置500は、H.264/AVC規格に従って、エントロピー符号化方式により符号化されたストリームデータを復号し、その後に逆量子化されたデータを生成する。
デコード装置500は、パラメータ解析部530、デブロックフィルタ550と、出力画像バッファ560と、動き補償部570とを含む。
パラメータ解析部530は、図1のVLDプレサーチ部20、MBパラメータデコード部30を含む。デブロックフィルタ550は、ブロックノイズを低減する処理を行う。出力画像バッファ560には、復号化処理後の画像データがバッファリングされる。動き補償部570は、動き予測を行うための動き補償処理を行う。
図6に、図5のデコード装置500の処理例のフロー図を示す。
デコード装置500では、まず、IDR(Instantaneous Decoding Refresh)ブロックの先頭が検出される(ステップS10)。IDRブロックは、ランダムアクセス機能を実現するために、過去のピクチャを参照することなく復号するためのブロックである。
次に、デコード装置500では、ストリームデータから所定のデータ単位を読み出してデコード処理に必要なパラメータ解析を行って、画像データを生成するためのビットデータの抽出や、動き予測等に必要なパラメータ(動きベクトル情報)等を求める(ステップS11)。
その後、CAVLC部40がCAVLC処理を行って、エントロピー符号化方式で符号化されたストリームデータを復号する処理を行う(ステップS12)。
そして、逆量子化部60によって逆量子化されたデータに対して、逆DCT演算部70が、逆DCT演算を行って動き予測又は動き補償を行った画像データを生成する(ステップS13)。
ステップS13において生成された画像データは、デブロックフィルタ550によってブロックノイズを低減させる処理が行われて出力画像の画像データとして出力される(ステップS14)。
そして、画像を分割した最終MBであるか否かが判別され(ステップS15)、最終MBであると判別されたとき(ステップS15:Y)、一連の処理を終了し、最終MBではないと判別されたとき(ステップS15:N)、ステップS11に戻る。
1.2.1 CAVLC処理
デコード装置500では、ストリームデータからパラメータを抽出するヘッダ解析処理、エントロピー符号化方式により符号化されたストリームデータから抽出されたデータを復号するCAVLC処理、逆量子化処理が行われる。
図7に、パラメータ解析部530によるヘッダ解析処理の一例のフロー図を示す。
パラメータ解析部530が、ストリームバッファからストリームデータを読み出す場合に、ストリームバッファ(図5では図示せず)に格納されたストリームデータから所定ビット数のデータを読み出す(ステップS20)。パラメータ解析部530は、ステップS20で読み出したデータがイントラ用パラメータであるか、インタ用パラメータであるかを判別する(ステップS21)。その結果、イントラ用パラメータ又はインタ用パラメータであると判別されたとき(ステップS21:Y)、イントラ用パラメータ又はインタ用パラメータを求める(ステップS22)。
ステップS21において、イントラ用パラメータ又はインタ用パラメータではないと判別されたとき(ステップS21:N)、或いはイントラ用パラメータ又はインタ用パラメータを求めると、次のパラメータのビット位置を求める(ステップS23)。これは、ストリームデータに、パラメータの種類やデータサイズ等を特定する情報が設定されており、ストリームデータを前の方から順番に解析する必要があることを意味する。
こうして、次のビット位置が特定されると、ヘッダ解析が終了のとき(ステップS24:Y)、一連の処理を終了し、ヘッダ解析を継続するとき(ステップS24:N)、ステップS20に戻って、ストリームデータから次の所定ビット数のデータを読み出す。
例えば図6のIDRブロックの先頭の検出処理や、該検出処理後のパラメータ解析処理では、上述のようにストリームデータをアクセスしながら各処理が行われる。
以上のようなヘッダ解析が行われると、デコード処理対象の画像データのビット位置が特定でき、CAVLC部40における復号化処理が開始される。
図8に、CAVLC部40の処理の一例のフロー図を示す。
CAVCL部40は、ストリームバッファに格納されたストリームデータから所定ビット数のデータを読み出す(ステップS30)。そして、CAVLC部40は、ステップS30で読み出したデータがCAVLCデータであるか否かを判別する(ステップS31)。ここで、CAVLCデータは、CAVLCにより符号化されたデータである。
CAVLCデータであると判別されたとき(ステップS31:Y)、図7のヘッダ解析によって得られたパラメータを用いてCAVLC演算を行い(ステップS32)、一連の処理を終了する(エンド)。
なおステップS31において、CAVLCデータではないと判別されたとき(ステップS31:N)、一連の処理を終了する(エンド)。
図9(A)、図9(B)、図9(C)に、CAVLC演算の説明図を示す。
図9(A)は、画像の水平方向に4画素、画像の垂直方向に4ライン分のデータブロックの量子化されたDCT係数値ED11、ED12、ED13、・・・、ED44を示している。ストリームデータの符号化側では、図9(A)に示す順序でデータが一次元化され、一旦、図9(B)に示すようなデータ列が生成される。その後、図9(B)に示すデータ列をエントロピー符号化方式により符号化することでストリームデータが生成される。
より具体的には、図9(C)に示すパラメータ値を順番に格納していくことで符号化される。図9(C)において、TotalCoeffは、図9(B)のデータ列の「非0係数の個数」を示す。TrailingOnesは、図9(B)のデータ列の「最後に連続する絶対値1の係数の個数」を示す。Trailing_ones_sign_flagは、図9(B)のデータ列の「最後に連続する絶対値1の係数の符号」を示す。levelは、図9(B)のデータ列の「量子化されたDCT係数値」を示す。total_zerosは、図9(B)の「最後の非0係数以前の0係数の個数」を示す。run_beforeは、図9(B)の「係数値の前の0の連続個数」を示す。
ところで、上述のようにCAVLC部40で復号されたデータは、更にゴロム(Golomb)符号により符号化されている。従って、CAVLC部40は、更にゴロム符号化されたデータを復号することができるようになっている。
図10(A)、図10(B)、図10(C)に、ゴロム符号の説明図を示す。
ゴロム符号は、CAVLCと同様にH.264/AVC規格において採用された符号化方式である。ゴロム符号は、図10(A)に示すように、セパレータSPRである「1」を境界に、プリフィックス(Prefix)部PX、サフィックス(Suffix)部SXを含む。プリフィックス部PXは「0」が所定の個数だけ連続し、サフィックス部SXは、符号化対象のデータに応じてプリフィックス部PXと同数の「0」又は「1」が入る。ここで、図10(A)に示すゴロム符号は、図10(B)に示すテーブルに従って符号番号に割り当てられる。更に、図10(B)に示す符号番号は、図10(C)に示すテーブルに従ってシンタックス要素値に割り当てられる。
そして、CAVLC部40は、図9(C)のようにパラメータ化された数値を解析して、図9(B)に示すデータ列に変換する。そして、CAVLC部40は、図9(A)に示すように、量子化されたDCT係数値群を生成することができる。このとき、CAVLC部40は、復号されたデータに対し、図10(C)に示すテーブル、図10(B)に示すテーブルに従って割り出されたゴロム符号を元に、復号化する。
図11に、CAVLC部40の動作例のフロー図を示す。
まず、CAVLC部40は、当該MBの近傍のMBの情報に基づいて、上述のテーブルを選択する。即ち、CAVLC部40は、画像の垂直方向に当該MBに対して上側に位置するMBと、該画像の水平方向に当該MBに対して左側に位置するMBとの間で、各MBの有効な係数の平均値を用いて、復号のためのテーブルを選択する。
続いて、CAVLC部40は、例えばストリームバッファをアクセスするデータアクセス回路に対して所定の要求ビット数を付加したgetリクエストを発行し、当該MBの有効係数を取得する(ステップS41)。このデータアクセス回路では、getリクエストを受け付けると、内部のバッファに所与のビット数が存在していなければ、ストリームバッファにアクセスしてビットデータを補充する制御を行う。こうして、所与のビット数のデータが得られると、CAVCL部40は、当該MBの係数のうち「非0係数」があるか否かを判別する一方、データアクセス回路により、不要なビットについてはungetリクエストにより返却する。この結果、データアクセス回路が保持し、リードアクセスにより先に進むストリームバッファのリードポインタを元に戻すことができる。
CAVLC部40は、再び、データアクセス回路に対して所定の要求ビット数を付加したgetリクエストを発行し、ステップS40で選択したテーブルを用いて上述のように有効係数を復元する(ステップS42)一方、データアクセス回路により、不要なビットについてはungetリクエストにより返却する。
CAVLC部40は、更に、再びデータアクセス回路に対して所定の要求ビット数を付加したgetリクエストを発行し、「0係数」の個数を検出する(ステップS43)一方、データアクセス回路により、不要なビットについてはungetリクエストにより返却する。
次に、CAVLC部40は、データアクセス回路に対して所定の要求ビット数を付加したgetリクエストを発行し、「0係数」の連続個数を検出する(ステップS44)一方、データアクセス回路により、不要なビットについてはungetリクエストにより返却する。
最後に、CAVLC部40は、データアクセス回路に対して所定の要求ビット数を付加したgetリクエストを発行し、検出された各種のデータを図9(A)に示すジグザグスキャンの方向に基づいて並び替えることでエントロピー符号化された係数を復元してMB単位のデータを生成し(ステップS45)、一連の処理を終了する(エンド)。
以上のようにエントロピー符号化方式により符号化されたストリームデータが復号されると、復号後のデータが逆量子化部60に入力される。
1.2.2 逆量子化処理
図12に、逆量子化部60の処理の説明図を示す。
上述のDCT係数値は、量子化ステップで除算した結果を整数値に丸めた値である。そのため、逆量子化部60は、上述の復号の結果として得られたDCT係数値に対し、量子化ステップを乗算することで、逆DCT演算部70に供給されるデータを生成する。
このとき、図12に示すような特性に従って量子化ステップを求めることが望ましい。図12では、量子化パラメータを横軸に、量子化ステップを縦軸に示した場合に、量子化パラメータと量子化ステップとが非線形性を有する。より具体的には、DCT係数値として量子化パラメータが与えられると、図12に示す特性に従って量子化ステップを求める。更に具体的には、量子化パラメータと量子化ステップの対数が比例するように、量子化ステップを導出する。
そして、この量子化ステップと量子化パラメータとを用いて、逆DCT演算部70に供給されるデータを生成する。
1.2.3 画像データの生成処理
図5において、逆DCT演算部70は、逆量子化部60からのデータに対して、H.264/AVC規格で規定された公知の逆DCT演算を行う。このとき、パラメータ解析部530では、既に当該MBのデータに対して、イントラ用パラメータ又はインタ用パラメータの解析が終了している。そこで、予測部50では、パラメータ解析部530の解析結果に応じて、画面内予測を行うかフレーム間予測を行うかが指定される。
画面内予測を行う場合には、予測部50のイントラ予測部52が、加算部80の出力結果に基づいて、当該フレーム内において公知の画面内予測処理を行う。
一方、動き補償部570は、出力画像バッファ560に格納された複数の参照フレームの中からパラメータ解析部530で解析されたフレームの参照フレームを用いて、H.264/AVC規格で規定された公知の動き補償処理を行う。そして、パラメータ解析部530の解析結果に基づいてフレーム間予測を行う場合には、インタ予測部54が、H.264/AVC規格で規定された公知の画面間予測処理を行う。
こうして動き予測又は動き補償が行われたデータは、加算部80において、逆DCT演算後のデータと加算される。
デブロックフィルタ550は、MB単位で、動き予測又は動き補償を行った画像データのブロックノイズを低減させる処理(デブロックフィルタ処理)を行う。そして、デブロックフィルタ処理が完了すると、出力画像の画像データとして出力される一方、出力画像バッファ560にバッファリングされる。出力画像バッファ560の画像データは、次の画像の画像データを生成するための動き補償処理及び動き予測処理に供される。
デブロックフィルタ550は、ブロック境界及びマクロブロック境界のうち少なくとも一方のブロックノイズを低減させる処理行うことができる。この処理は、H.264/AVC規格で規定された公知のデブロックフィルタ処理を採用できる。このようなデブロックフィルタ処理により、ブロックノイズが多い参照画像を用いて復号化処理されることがなくなり、ブロックノイズの伝搬を減らして、復号画像の高画質化に寄与できるようになる。
1.3 本実施形態の要部の動作
次に、図5のデコード装置500(図1のデコード装置100)に適用される本実施形態の要部の動作について詳細に説明する。
1.3.1 VLDプレサーチ部
本実施形態におけるVLDプレサーチ部20は、H.264/AVCのデコード処理に必要なパラメータデータのうち、以下に示すパラメータデータのみをデコードすることで、パラメータデータに続くCAVLCデータが格納されるストリームバッファ10の先頭アドレスを求める処理を行う。
図13及び図14に、図1のVLDプレサーチ部20の動作例のフロー図を示す。
まず、VLDプレサーチ部20は、当該MBがIスライスか否かを判別する(ステップS50)。当該MBがIスライスであると判別されたとき(ステップS50:Y)、ストリームバッファ10から余分に所定のビット数のデータを読み出し、該データに対してゴロム復号を行った後、ゴロム復号の結果として不要となったビットを上述のように返却する(ステップS51)。以下、このステップS51の処理をリードゴロム処理という。
その後、ゴロム復号されたデータによりMBタイプを判別し、イントラMBのモードを算出する(ステップS52)。
一方、ステップS50において当該MBがIスライスではないと判別されたとき(ステップS50:N)、デコード対象のデータがない等のスキップすべきMBか否かを判別する(ステップS53)。スキップすべきMBであると判別されたとき(ステップS53:Y)、所与のスキップ処理を行う(ステップS54)。ステップS53において、スキップすべきでないMBと判別されたとき(ステップS53:N)、インタMBのモードを算出する(ステップS55)。
ステップS52、ステップS54、ステップS55に続いて、当該MBがcopyモードか否か(当該MBがインタMBでコピーするだけか否か)を判別し(ステップS56)、copyモードであると判別されたとき(ステップS56:Y)、一連の処理を終了する(エンド)。ステップS56においてcopyモードではないと判別されたとき(ステップS56:N)、当該MBがIPCMモードか否か(当該MBがコード化されていないデータか否か)を判別する(ステップS57)。IPCMモードであると判別されたとき(ステップS57:Y)、一連の処理を終了する(エンド)。また、ICPMモードではないと判別されたとき(ステップS57:N)、当該MBがINTRAモードか否かを判別する(ステップS58)。
ステップS58においてINTRAモードであると判別されたとき(ステップS58:Y)、イントラ予測モードを取得する(ステップS59)。その後、イントラの16×16モードであるか否かを判別し(ステップS60)、イントラの16×16モードではないと判別されたとき(ステップS60:N)、MB内のどこのブロックにIDCT(逆DCT)係数(AC Transform Data)が存在するかを示すCBP(Code Block Pattern)を取得するためにリードゴロム処理を行う(ステップS61)。ステップS60においてイントラの16×16モードであると判別されたとき(ステップS60:Y)、或いはステップS61の次に、量子化パラメータを取得するためにリードゴロム処理を実行し(ステップS62)、一連の処理を終了する(エンド)。
ステップS58においてINTRAモードではないと判別されたとき(ステップS58:N)、8×8モードか否かを判別し(ステップS63)、8×8モードであるとき(ステップS63:Y)、リードゴロム処理を4回行って各ブロックのモードを取得する(ステップS64)。ステップS63において8×8モードではないと判別されたとき(ステップS63:N)、或いはステップS64の次に、リードゴロム処理を行って、デコードされている動きベクトル情報mvdを取得し(ステップS65)、その後リードゴロム処理を行ってCBPを取得する(ステップS66)。
CBPが0より大きいとき(ステップS67:Y)、当該MBのいずれかのブロックにIDCT係数が存在すると判断し、リードゴロム処理を行って量子化パラメータを取得し(ステップS68)、一連の処理を終了する(エンド)。ステップS67においてCBPが0より大きくないとき(ステップS67:N)、当該MBのどのブロックにもIDCT係数が存在しないものと判断し、一連の処理を終了する(エンド)。
以上のように、リードゴロム処理等によってアクセスした当該MBのデータをデコードする。そして、処理の完了後にストリームバッファ10のリードポインタが示すアドレスが、CAVLCデータの先頭アドレスとしてCAVLC部40に供給される。
1.3.2 MBパラメータデコード部
図13及び図14に示すようにしてストリームバッファ10をアクセスして得られたパラメータデータは、VLDプレサーチ部20によりCAVLCデータの先頭アドレスを算出するために簡略的にデコード処理された後、MBパラメータデコード部30により詳細にデコード処理される。
図15に、MBパラメータデコード部30の処理の例のフロー図を示す。
MBパラメータデコード部30は、図示しないCPU及びメモリを有し、該メモリに格納されたプログラムをCPUが実行することで、図15に示す処理を実現できるようになっている。
まず、MBパラメータデコード部30は、イントラ予測モードか否かを判別し(ステップS70)、イントラ予測モードであると判別されたとき(ステップS70:Y)、イントラ予測モード処理を行う(ステップS71)。また、MBパラメータデコード部30は、インタ予測モードであると判別されたとき(ステップS70:N)、インタ予測モードで動きベクトルMVを算出する処理を行う(ステップS72)。
ステップS71、ステップS72の次に、次のMBの処理があるとき(ステップS73:Y)、ステップS70に戻る(リターン)。ステップS73において、次のMBの処理がないとき(ステップS73)、一連の処理を終了する(エンド)。
図16に、図15のステップS71において行われるイントラ予測モード処理の処理例のフロー図を示す。
まず、MBパラメータデコード部30は、イントラの16×16モードであるか否かを判別し(ステップS80)、イントラの16×16モードであると判別されたとき(ステップS80:Y)、周辺のMBの予測モードからluma予測モードの予測値を求める(ステップS81)。次に、luma予測モードの予測値とストリームデータとを組み合わせて、luma予測モードを求める(ステップS82)。その後、ストリームデータのintra_choroma_pred_modeから、テーブルでchromaの予測モードを求めて(ステップS83)、一連の処理を終了する(エンド)。
ステップS80においてイントラの16×16モードはないと判別されたとき(ステップS80:N)、変数Nを0に初期化し(ステップS84)、周辺のSB(Sub Macro block)の予測モードからN番目のSBのluma予測モードの予測値を求める(ステップS85)。次に、luma予測モードの予測値とストリームデータとを組み合わせて、N番目のSBのluma予測モードを求める(ステップS86)。
Nが15のとき(ステップS87:Y)、ステップS83に進む。Nが15ではないとき(ステップS87:N)、Nをインクリメントして(ステップS88)、次のSBの処理に進む(ステップS85)。
以上のように、MBパラメータデコード部30は、イントラ予測に必要なパラメータデータを求める。
図17〜図20に、図15のステップS72において行われるインタ予測モードの動きベクトル算出処理の処理例のフロー図を示す。
まず、MBパラメータデコード部30は、インタの16×16モードであるか否かを判別し(ステップS90)、インタの16×16モードであると判別されたとき(ステップS90:Y)、周辺のSBの予測モードからN番目のSBの動きベクトル予測値MPVを求める(ステップS91)。次に、動きベクトル予測値MPVに動きベクトル情報mvdを加算して、動きベクトルMVを求めて(ステップS92)、一連の処理を終了する(エンド)。
ステップS90においてインタの16×16モードではないと判別されたとき(ステップS90:N)、MBパラメータデコード部30は、インタの8×16モードであるか否かを判別する(ステップS93)。インタの8×16モードであると判別されたとき(ステップS93:Y)、変数Nを0に初期化し(ステップS94)、周辺のMB又はSBの予測モードからN番目の8×16partitionの動きベクトル予測値MPVを求める(ステップS95)。次に、動きベクトル予測値MPVに動きベクトル情報mvdを加算して、N番目の8×16partitionの動きベクトルMVを求める(ステップS96)。Nが1のとき(ステップS97:Y)、一連の処理を終了し(エンド)、Nが1ではないとき(ステップS97:N)、Nをインクリメントして(ステップS98)、次のpartitionの処理に進む。
ステップS93においてインタの8×16モードではないと判別されたとき(ステップS93:N)、MBパラメータデコード部30は、インタの16×8モードであるか否かを判別する(ステップS99)。インタの16×8モードであると判別されたとき(ステップS99:Y)、変数Nを0に初期化し(ステップS100)、周辺のMB又はSBの予測モードからN番目の16×8partitionの動きベクトル予測値MPVを求める(ステップS101)。次に、動きベクトル予測値MPVに動きベクトル情報mvdを加算して、N番目の16×8partitionの動きベクトルMVを求める(ステップS102)。Nが1のとき(ステップS103:Y)、一連の処理を終了し(エンド)、Nが1ではないとき(ステップS103:N)、Nをインクリメントして(ステップS104)、次のpartitionの処理に進む。
ステップS99においてインタの16×8モードではないと判別されたとき(ステップS99:N)、MBパラメータデコード部30は、partitionを8×8に設定する(ステップS105)。そして、変数kを0に設定し(ステップS106)、MBパラメータデコード部30は、インタの4×4モードであるか否かを判別し(ステップS107)、インタの4×4モードであると判別されたとき(ステップS107:Y)、変数Nを0に初期化し(ステップS108)、周辺のMB又はSBの予測モードからN番目の4×4partitionの動きベクトル予測値MPVを求める(ステップS109)。次に、動きベクトル予測値MPVに動きベクトル情報mvdを加算して、N番目の4×4partitionの動きベクトルMVを求める(ステップS110)。Nが3のとき(ステップS111:Y)、kが3のとき(ステップS112:Y)に一連の処理を終了し(エンド)、kが3ではないとき(ステップS112:N)にはkをインクリメントして(ステップS113)、ステップS107に戻る。ステップS111において、Nが3ではないとき(ステップS111:N)、Nをインクリメントして(ステップS114)、次のpartitionの処理に進む。
ステップS107においてインタの4×4モードではないと判別されたとき(ステップS107:N)、MBパラメータデコード部30は、インタの4×8モードであるか否かを判別し(ステップS115)、インタの4×8モードであると判別されたとき(ステップS115:Y)、変数Nを0に初期化し(ステップS116)、周辺のMB又はSBの予測モードからN番目の4×8partitionの動きベクトル予測値MPVを求める(ステップS117)。次に、動きベクトル予測値MPVに動きベクトル情報mvdを加算して、N番目の4×8partitionの動きベクトルMVを求める(ステップS118)。Nが1のとき(ステップS119:Y)、kが3のとき(ステップS120:Y)に一連の処理を終了し(エンド)、kが3ではないとき(ステップS120:N)にはkをインクリメントして(ステップS121)、ステップS107に戻る。ステップS119において、Nが1ではないとき(ステップS119:N)、Nをインクリメントして(ステップS122)、次のpartitionの処理に進む。
ステップS115においてインタの4×8モードではないと判別されたとき(ステップS115:N)、MBパラメータデコード部30は、インタの8×4モードであるか否かを判別し(ステップS123)、インタの8×4モードであると判別されたとき(ステップS123:Y)、変数Nを0に初期化し(ステップS124)、周辺のMB又はSBの予測モードからN番目の8×4partitionの動きベクトル予測値MPVを求める(ステップS125)。次に、動きベクトル予測値MPVに動きベクトル情報mvdを加算して、N番目の8×4partitionの動きベクトルMVを求める(ステップS126)。Nが1のとき(ステップS127:Y)、kが3のとき(ステップS128:Y)に一連の処理を終了し(エンド)、kが3ではないとき(ステップS128:N)にはkをインクリメントして(ステップS129)、ステップS107に戻る。ステップS127において、Nが1ではないとき(ステップS127:N)、Nをインクリメントして(ステップS130)、次のpartitionの処理に進む。
ステップS123においてインタの8×4モードではないと判別されたとき(ステップS123:N)、MBパラメータデコード部30は、SBのpartitionを8×8に設定し(ステップS131)、周辺のMB又はSBの予測モードから8×8partitionの動きベクトル予測値MPVを求める(ステップS132)。次に、動きベクトル予測値MPVに動きベクトル情報mvdを加算して、8×8partitionの動きベクトルMVを求める(ステップS133)。その後、一連の処理を終了する(エンド)。
以上のように、MBパラメータデコード部30は、インタ予測に必要なパラメータデータを求める。
1.4 変形例
本実施形態におけるデコード装置は、図1に示す構成に限定されるものではなく、以下のような本実施形態の変形例におけるデコード装置であっても本実施形態と同様の効果を得ることができる。
図21に、本実施形態の変形例におけるデコード装置の構成要部のブロック図を示す。図21において、図1と同一部分には同一符号を付し、適宜説明を省略する。本変形例におけるデコード装置もまた、図5に示すデコード装置500に適用できる。
本変形例におけるデコード装置800が本実施形態のデコード装置100と異なる点は、第1のバッファ22が省略されている点である。即ち、本変形例におけるMBパラメータデコード部820には、VLDプレサーチ部20からパラメータデータが格納されるストリームバッファ10の先頭アドレスが通知される。そして、MBパラメータデコード部820が、ストリームバッファ10からVLD部810を介してゴロム復号等が行われたデータに対して、パラメータデータのデコード処理を行う。こうすることで、第1のバッファ22を省略する一方、CAVLC部40とMBパラメータデコード部820とを並列に動作させることができる。
1.5 ハードウェア構成例
図22に、本実施形態におけるデコード装置100のハードウェア構成例のブロック図を示す。図22において図1又は図5と同一部分には同一符号を付し、適宜説明を省略する。
デコード装置400は、メモリ410を有し、共通バスを介して、MBバッファ412、出力バッファ414、データアクセス部(図13におけるデータアクセス回路)416が接続される。MBバッファ412は、デブロックフィルタ処理部420に接続される。逆量子化部60は、ダブルバッファ430を介して逆DCT演算部70に接続される。逆DCT演算部70は、ダブルバッファ432を介して加算部80に接続される。
また、デコード装置400には、デコード装置400の外部に設けられたCPU450が接続され、該CPU450がMBパラメータデコード部30の機能を実現する。CPU450は、イントラ予測部52及びインタ予測部54にアクセスできる。またCPU450は、バスを介してメモリ410、MBバッファ412、出力バッファ414、データアクセス部416にアクセスすることができる。更にイントラ予測部52及びインタ予測部54と加算部80との間にダブルバッファ436が設けられている。
そしてVLDプレサーチ部20の出力結果は、バッファ434にバッファリングされた後にCPU450に供給される。
このようなダブルバッファ430、432、バッファ434を設けることで、バッファの前段側と後段側とでパイプライン動作を実現させることが可能となる。
2. 情報再生装置
次に、本実施形態におけるデコード装置が適用される情報再生装置について説明する。本実施形態における情報再生装置は、地上デジタル放送の再生を可能とし、H.264/AVC規格で符号化された映像データを復号することができる。
2.1 1セグメント放送の概要
地上アナログ放送に代わって登場する地上デジタル放送では、画像及び音声の高品質化に加えて種々の新サービスの提供に期待が寄せられている。
図23に、地上デジタル放送のセグメントの概念の説明図を示す。
地上デジタル放送では、予め割り当てられた周波数帯域を14個のセグメントに分割し、そのうちの13個のセグメントSEG1〜SEG13を使って放送が行われる。残り1個のセグメントは、ガードバンドとして用いられる。そして、放送を行うための13個のセグメントのうちの1個のセグメントSEGmが、携帯端末向けの放送の周波数帯域に割り当てられる。
1セグメント放送では、それぞれが符号化(圧縮処理)された映像データ、音声データ、その他のデータ(制御データ)が多重化されたトランスポートストリーム(Transport Stream:TS)が伝送される。より具体的には、TSの各パケットにリードソロモン符号の誤り訂正用符号が付加された後、階層分割され、各階層において畳み込み符号化やキャリア変調が施される。そして、階層合成後に、周波数インターリーブ、時間インターリーブが行われ、受信側に必要なパイロット信号を付加してOFDMセグメントフレームが形成される。このOFDMセグメントフレームに対し、逆フーリエ変換演算が施されてOFDM信号として伝送される。
図24に、TSの説明図を示す。
TSは、図24に示すように複数のTSパケット列で構成されている。各TSパケットの長さは、188バイトに固定されている。各TSパケットは、4バイトのTSヘッダ(TS Header:TSH)と呼ばれるヘッダ情報が付加されており、TSパケットの識別子となるPID(Packet Identifier)を含む。1セグメント放送の番組は、PIDにより特定される。
TSパケットは、アダプテーションフィールドを含み、映像データ、音声データ等の同期再生の基準となる時刻情報であるPCR(Program Clock Reference)やダミーデータが埋め込まれる。ペイロードは、PES(Packetized Elementary Stream)パケットやセクションを生成するためのデータを含む。
図25に、PESパケット及びセクションの説明図を示す。
PESパケット及びセクションのそれぞれは、1又は複数のTSパケットの各TSパケットのペイロードにより構成される。PESパケットは、PESヘッダとペイロードとを含み、該ペイロードには、映像データ、音声データ又は字幕データがES(Elementary Stream)データとして設定される。セクションには、PESパケットに設定される映像データ等の番組情報等が設定される。
従って、TSを受信すると、まずセクションに含まれる番組情報を解析し、放送される番組に対応するPIDを特定する必要がある。そして、該PIDに対応する映像データ、音声データをTSから抽出し、抽出後の映像データ、音声データを再生することになる。
2.2 携帯端末
1セグメント放送の受信機能を有する携帯端末では、上記のようなパケットの解析等の処理が必要となる。即ち、このような携帯端末では、高い処理能力が要求される。そのため、携帯端末(広義には電子機器)としての従来の携帯電話機に、1セグメント放送の受信機能を付加する場合には、高い処理能力を有するプロセッサ等を更に追加する必要がある。
図26に、本実施形態の比較例におけるマルチメディア処理CPUを含む携帯電話機の構成例のブロック図を示す。
この携帯電話機900では、アンテナ910を介して受信された受信信号を復調して電話用CPU920が着呼処理を行い、電話用CPU920が発呼処理を行った信号が変調されてアンテナ910を介して送信される。電話用CPU920は、メモリ922に格納されたプログラムを読み込んで着呼処理及び発呼処理を行うことができる。
またアンテナ930を介して受信された受信信号から、チューナ940を介して希望信号が取り出されると、該希望信号をOFDM信号として上記と逆の手順でTSが生成される。マルチメディア処理CPU950は、生成されたTSからTSパケットを解析してPESパケット及びセクションを判別し、所望の番組のTSパケットから映像データ、音声データのデコード処理を行う。マルチメディア処理CPU950は、メモリ952に格納されたプログラムを読み込んで上記のパケットの解析処理やデコード処理を行うことができる。表示パネル960は、デコード処理後の映像データに基づいて表示出力を行い、スピーカ970は、デコード処理後の音声データに基づいて音声出力を行う。
このようにマルチメディア処理CPU950として、非常に高い処理能力が必要となる。高い処理能力を有するプロセッサは、一般的に、動作周波数が高くなったり、回路規模が大きくなってしまう。
ところで、1セグメント放送のビットレートを考慮すると、その帯域のほとんどが映像データや音声データの帯域となり、データ放送自体の帯域が狭くなると考えられる。従って、マルチメディア処理CPUで実現できる処理のうち、映像データや音声データの再生処理のみで済む場合もあるにもかかわらず、マルチメディア処理CPUを常に動作させる必要があり、消費電力の増大を招く。
そこで、本実施形態では、映像データのデコード処理を行う映像デコーダと音声データのデコード処理を行う音声デコーダとを独立して設け、それぞれ独立にデコード処理を行わせることで、それぞれの処理能力として低いものを採用できる。更に、映像デコーダ及び音声データの一方の動作を適宜停止させて柔軟に低消費電力化を図ることができる。
更には、映像デコーダ及び音声デコーダを並列動作させることができるため、各デコーダの処理能力を低くて済み、より低消費電力化及び低コスト化を実現できる。
図27に、本実施形態における情報再生装置を含む携帯電話機の構成例のブロック図を示す。なお図27において、図26と同一部分には同一符号を付し、適宜説明を省略する。
携帯電話機(広義には電子機器)600は、ホストCPU(広義にはホスト)610、RAM(Random Access Memory)620、ROM(Read Only Memory)630、表示ドライバ640、DAC(Digital-to-Analog Converter)650、画像処理IC(Integrated Circuit)(広義には情報再生装置)700を含むことができる。更に携帯電話機600は、アンテナ910、930、チューナ940、表示パネル960、スピーカ970を含む。
ホストCPU610は、図26の電話用CPU920の機能を有すると共に、画像処理IC700を制御する機能を有する。ホストCPU610は、RAM620又はROM630に格納されたプログラムを読み出し、図26の電話用CPU920の処理、画像処理IC700を制御する処理を行う。この際、ホストCPU610は、RAM620をワークエリアとして用いることができる。
画像処理IC700は、チューナ940からのTSから、映像データを生成するための映像用TSパケット(第1のTSパケット)、音声データを生成するための音声用TSパケット(第2のTSパケット)を抽出し、図示しない共有メモリにバッファリングする。そして画像処理IC700は、互いに独立して動作停止制御が可能な映像デコーダ及び音声デコーダ(図示せず)を含み、映像デコーダ及び音声デコーダが、それぞれ映像用TSパケット及び音声用TSパケットをデコードして映像データ及び音声データを生成する。映像データ及び音声データは、同期しながら、それぞれ表示ドライバ640及びDAC650に供給される。ホストCPU610は、このような画像処理IC700に対し、映像デコード処理及び音声デコード処理の処理開始を指示することができる。なおホストCPU610は、画像処理IC700に対し、映像デコード処理及び音声デコード処理の少なくとも1つの処理開始を指示するようにしてもよい。
表示ドライバ(広義には駆動回路)640は、映像データに基づいて表示パネル(広義には電気光学装置)960を駆動する。より具体的には、表示パネル960は、複数の走査線、複数のデータ線、各画素が各走査線及び各データ線により特定される複数の画素を有し、表示パネル960として液晶表示(Liquid Crystal Display)パネルを採用できる。表示ドライバ640は、複数の走査線を走査する走査ドライバの機能と、該映像データに基づいて複数のデータ線を駆動するデータドライバの機能とを有する。
DAC650は、デジタル信号である音声データをアナログ信号に変換し、スピーカ970に供給する。スピーカ970は、DAC650からのアナログ信号に対応した音声出力を行う。
2.3 情報再生装置
図28に、本実施形態の情報再生装置としての図27の画像処理IC700の構成例のブロック図を示す。
画像処理IC700は、TS分離部(分離処理部)710と、メモリ(共有メモリ)720と、映像デコーダ730と、音声デコーダ740とを含む。また画像処理IC700は、更に、表示制御部750と、チューナI/F(Interface)760と、ホストI/F770と、ドライバI/F780と、オーディオI/F790とを含む。
ここで、映像デコーダ730は、図示しないCPUを含み、映像デコーダ730の機能が、本実施形態におけるデコード装置500によって実現される。
TS分離部710は、映像データを生成するための映像用TSパケット(第1のTSパケット)、音声データを生成するための音声用TSパケット(第2のTSパケット)、映像用TSパケット及び音声用TSパケット以外のパケット(第3のTSパケット)を、TSから抽出する。TS分離部710は、TSから一旦抽出された第3のTSパケットを解析するホストCPU610の解析結果に基づいて、第1及び第2のTSパケットを抽出することができる。
メモリ720は、各記憶領域の先頭アドレス及び終了アドレスが予め決められた複数の記憶領域を有する。そして、TS分離部710により分離された映像用TSパケット、音声用TSパケット、それ以外のTSパケットのそれぞれが、各TSパケット専用に設けられた記憶領域に格納される。
映像デコーダ730は、メモリ720の記憶領域のうち映像用TSパケット専用に設けられた記憶領域から映像用TSパケットを読み出し、該映像用TSパケットに基づいて映像データを生成する映像デコード処理を行う。
音声デコーダ740は、メモリ720の記憶領域のうち音声用TSパケット専用に設けられた記憶領域から音声用TSパケットを読み出し、該音声用TSパケットに基づいて音声データを生成する音声デコード処理を行う。
表示制御部750は、メモリ720から読み出された映像データにより表される画像の向きを回転させる回転処理や該画像のサイズを縮小又は拡大させるリサイズ処理を行う。回転処理後のデータやリサイズ処理後のデータは、ドライバI/F780に供給される。
チューナI/F760は、チューナ940とのインタフェース処理を行う。より具体的には、チューナI/F760は、チューナ940からのTSを受信する制御を行う。チューナI/F760は、TS分離部710に接続される。
ホストI/F770は、ホストCPU610とのインタフェース処理を行う。より具体的には、ホストI/F770は、ホストCPU610との間のデータの送受信の制御を行う。ホストI/F770は、TS分離部710、メモリ720、表示制御部750、オーディオI/F790に接続される。
ドライバI/F780は、表示制御部750を介してメモリ720から所定の周期で映像データを読み出し、該映像データを表示ドライバ640に対して供給する。ドライバI/F780は、表示ドライバ640に対して映像データを送信するためのインタフェース処理を行う。
オーディオI/F790は、メモリ720から所定の周期で音声データを読み出し、該音声データをDAC650に対して供給する。オーディオI/F790は、DAC650に対して音声データを送信するためのインタフェース処理を行う。
図28において、映像デコーダ730が、図5のデコード装置500の機能を実現する。図28において、メモリ720が、図1におけるストリームバッファの機能を実現する。
このような画像処理IC700では、TS分離部710により、チューナ940からのTSからTSパケットが抽出される。TSパケットは、共有メモリとしてのメモリ720の予め割り当てられた記憶領域に格納される。そして、映像デコーダ730及び音声デコーダ740が、それぞれメモリ720に割り当てられた専用の記憶領域からTSパケットを読み出して、映像データ及び音声データを生成し、互いに同期した映像データ及び音声データを表示ドライバ640及びDAC650に対して供給することができる。
図29に、図28の画像処理IC700の動作説明図を示す。
図29において、図28と同一部分には同一符号を付し、適宜説明を省略する。
メモリ720は、第1〜第8の記憶領域AR1〜AR8を有し、各記憶領域が予め割り当てられている。
第1の記憶領域AR1には、映像用TSパケット専用の記憶領域として、TS分離部710によって抽出された映像用TSパケット(第1のTSパケット)が格納される。第2の記憶領域AR2には、音声用TSパケット専用の記憶領域として、TS分離部710によって抽出された音声用TSパケット(第2のTSパケット)が格納される。第3の記憶領域AR3には、TS分離部710によって抽出されたTSパケットのうち映像用TSパケット及び音声用TSパケットを除くTSパケット(第3のTSパケット)が格納される。
第4の記憶領域AR4には、映像用ESデータ専用の記憶領域として、映像デコーダ730によって生成された映像用ESデータが格納される。第5の記憶領域AR5には、音声用ESデータ専用の記憶領域として、音声デコーダ740によって生成された音声用ESデータが格納される。
第6の記憶領域AR6には、ホストCPU610によって生成されるTSが、TSRAWデータとして格納される。TSRAWデータは、チューナ940からのTSに替わってホストCPU610により設定される。そして、TS分離部710は、TSRAWデータとして設定されたTSから、映像用TSパケット、音声用TSパケット、その他のTSパケットが抽出されるようになっている。
第7の記憶領域AR7には、映像デコーダ730によるデコード処理後の映像データが格納される。第7の記憶領域AR7に格納された映像データは、表示制御部750によって読み出され、表示パネル960による映像出力に供される。第8の記憶領域AR8には、音声デコーダ740によるデコード処理後の音声データが格納される。第8の記憶領域AR8に格納された音声データは、スピーカ970による音声出力に供される。
映像デコーダ730は、ヘッダ削除処理部732と、映像デコード処理部734とを含む。ヘッダ削除処理部732は、第1の記憶領域AR1から映像用TSパケットを読み出し、該映像用TSパケットのTSヘッダを解析してPESパケット(第1のPESパケット)を生成した後、そのPESヘッダを削除する処理を行ってそのペイロード部を映像用ESデータとしてメモリ720の第4の記憶領域AR4に格納する。映像デコード処理部734は、第4の記憶領域AR4から映像用ESデータを読み出し、H.264/AVC(Advanced Video Coding)の規格に従ったデコード処理(広義には映像デコード処理)を行って生成される映像データを第7の記憶領域AR7に書き込む。映像デコード処理部734が、図1のデコード装置100又は図21のデコード装置800の機能を実現する。
音声デコーダ740は、ヘッダ削除処理部742と、音声デコード処理部744とを含む。ヘッダ削除処理部742は、第2の記憶領域AR2から音声用TSパケットを読み出し、該音声用TSパケットのTSヘッダを解析してPESパケット(第2のPESパケット)を生成した後、そのPESヘッダを削除する処理を行ってそのペイロード部を音声用ESデータとしてメモリ720の第5の記憶領域AR5に格納する。音声デコード処理部744は、第5の記憶領域AR5から音声用ESデータを読み出し、MPEG−2AAC(Advanced Audio Coding)の規格に従ったデコード処理(広義には音声デコード処理)を行って生成される音声データを第8の記憶領域AR8に書き込む。
そして、映像デコーダ730が、第1の記憶領域AR1から映像用TSパケット(第1のTSパケット)を、音声デコーダ740とは独立して読み出し、該映像用TSパケットに基づいて上記の映像デコード処理を行う。また音声デコーダ740が、第2の記憶領域AR2から音声用TSパケット(第2のTSパケット)を、映像デコーダ730とは独立して読み出し、該音声用TSパケットに基づいて上記の音声デコード処理を行う。こうすることで、映像と音声とを同期させて出力させる場合には映像デコーダ730及び音声デコーダ740を動作させることができる一方、映像のみを出力させる場合には映像デコーダ730のみを動作させて音声デコーダ740の動作を停止させることができる。また音声のみを出力させる場合には音声デコーダ740のみを動作させて映像デコーダ730の動作を停止させることができる。
ホストCPU610は、第3の記憶領域AR3に格納されたその他のTSパケット(第3のTSパケット)を読み出し、該TSパケットからセクションを生成する。そして該セクションに含まれる各種テーブル情報を解析する。ホストCPU610は、その解析結果をメモリ720の所定の記憶領域に設定すると共にTS分離部710に対し制御情報として指定する。それ以降、TS分離部710は、チューナ940からのTSを該制御情報に従ってTSパケットを抽出する。一方、ホストCPU610は、映像デコーダ730及び音声デコーダ740に対して、それぞれ別個に起動コマンドを発行することができる。映像デコーダ730及び音声デコーダ740は、それぞれ独立してメモリ720にアクセスしてホストCPU610の解析結果を読み出し、該解析結果に対応したデコード処理を行う。
2.3.1 再生動作
次に、本実施形態における情報再生装置としての画像処理IC700において、TSに多重化された映像データ又は音声データを再生する場合の動作について説明する。
図30に、ホストCPU610による再生処理の動作例のフロー図を示す。ホストCPU610は、RAM620又はROM630に格納されたプログラムを読み出し、該プログラムに対応した処理を実行することで図30に示す処理を行うことができるようになっている。
まずホストCPU610は、放送受信開始処理を行う(ステップS150)。これによって、TSとして受信された複数の番組のうち所望の番組の映像データ又は音声データをTSから抽出することができる。そして、ホストCPU610は、画像処理IC700の映像デコーダ730及び音声デコーダ740の少なくとも1つを起動させる。
その後、ホストCPU610は、映像及び音声の再生を行う場合には映像デコーダ730及び音声デコーダ740によりデコード処理を行わせる。或いはホストCPU610は、映像のみの再生を行う場合には音声デコーダ740の動作を停止させて映像デコーダ730によりデコード処理を行わせる。或いはまた、ホストCPU610は、音声のみの再生を行う場合には映像デコーダ730の動作を停止させて音声デコーダ740によりデコード処理を行わせる(ステップS151)。
次に、ホストCPU610は、放送受信終了処理を行い(ステップS152)、一連の処理を終了する(エンド)。これによって、ホストCPU610は、画像処理IC700の各部の動作を停止させる。
2.3.1.1 放送受信開始処理
続いて、図30に示す放送受信開始処理の処理例について説明する。ここでは、映像及び音声の再生を行う場合について説明する。
図31に、図30の放送受信開始処理の動作例のフロー図を示す。ホストCPU610は、RAM620又はROM630に格納されたプログラムを読み出し、該プログラムに対応した処理を実行することで図31に示す処理を行うことができるようになっている。
まずホストCPU610は、画像処理IC700の映像デコーダ730、音声デコーダ740を起動する(ステップS160)。その後、ホストCPU610は、チューナ940を初期化すると共に所与の動作情報を設定する(ステップS161)。そしてホストCPU610は、DAC650に対しても初期化を行って所与の動作情報を設定する(ステップS162)。
その後ホストCPU610は、TSの受信を監視する(ステップS163:N)。TSの受信が開始されると、画像処理IC700では、TS分離部710が、上述のようにTSから映像用TSパケット、音声用TSパケット及びそれ以外のTSパケットに分離し、分離されたTSパケットは、専用に設けられたメモリ720の記憶領域に格納される。例えば画像処理IC700のメモリ720における第3の記憶領域AR3にTSパケットが格納されたことを条件に発生する割り込み信号により、ホストCPU610はTSの受信を検出できる。或いはホストCPU610が、周期的にメモリ720の第3の記憶領域AR3をアクセスすることで、TSパケットの書き込みが行われた否かを判断して、TSの受信を判別できる。
このようにしてTSの受信が検出されたとき(ステップS163:Y)、ホストCPU610は、第3の記憶領域AR3に記憶されたTSパケットを読み出してセクションを生成する。そして、セクションに含まれるPSI(Program Specific Information:番組特定情報)/SI(Service Information:番組配列情報)を解析する(ステップS164)。このPSI/SIは、MPEG−2システム(ISO/IEC 13818-1)にて規定されている。
PSI/SIは、NIT(Network Information Table:ネットワーク情報テーブル)やPMT(Program Map Table:番組対応テーブル)を含む。NITは、例えばどの放送局からのTSかを特定するためのネットワーク識別子、PMTを特定するためのサービス識別子、放送の種類を示すサービスタイプ識別子等を含む。PMTには、例えばTSにおいて多重化される映像用TSパケットのPIDと音声用TSパケットのPIDが設定される。
従って、ホストCPU610は、PSI/SIからPMTを特定するためのサービス識別子を抽出し、該サービス識別子に基づき、受信したTSの映像用TSパケット及び音声用TSパケットのPIDを特定できる(ステップS165)。そして、携帯端末のユーザに選択させた番組に対応するPID、若しくは予め決められた番組に対応するPIDを、ホストCPU610が、映像デコーダ730及び音声デコーダ740に参照できるようにメモリ720の所定の記憶領域(例えば第3の記憶領域AR3)に設定し(ステップS166)、一連の処理を終了する(エンド)。
こうすることで、映像デコーダ730及び音声デコーダ740は、メモリ720に設定されたPIDを参照しながら、映像用TSパケット及び音声用TSパケットに対してデコード処理を行うことができる。
なおホストCPU610は、例えばPMTを特定するためのサービス識別子に対応する情報を、画像処理IC700のTS分離部710に設定する。こうすることで、TS分離部710は、所定の時間間隔を置いて周期的に受信されるセクションを判別し、上記のサービス識別子に対応したPMTを解析し、該PMTにより特定される映像用TSパケット及び音声用TSパケットとそれ以外のTSパケットを抽出してメモリ720に格納していく。
図32に、図28及び図29の画像処理IC700の放送受信開始処理における動作説明図を示す。図32において、図27〜図29と同一部分には同一符号を付し、適宜説明を省略する。
なお図32において、第7の記憶領域AR7を第4の記憶領域AR4と共用化し、第8の記憶領域AR8を第5の記憶領域AR5と共用化している。また、PSI/SI、NIT、PMTは、第3の記憶領域AR3内の所定の記憶領域に格納されるものとする。
まずチューナ940からTSが入力される(SQ1)とTS分離部710は、PSI/SIが含まれるTSパケットをメモリ720に格納する(SQ2)。このとき、TS分離部710は、該TSパケットのPSI/SI自体を抽出してメモリ720に格納することができる。更にTS分離部710は、PSI/SIからNITを抽出してメモリ720に格納することができる。
ホストCPU610は、PSI/SI、NIT、PMTを読み出して(SQ3)、これらを解析し、デコード処理対象の番組に対応するPIDを特定する。そしてホストCPU610は、サービス識別子に対応する情報又はデコード処理対象の番組に対応するPIDを、TS分離部710に設定する(SQ4)。なおホストCPU610は、PIDを、メモリ720の所定の記憶領域にも設定し、映像デコーダ730及び音声デコーダ740のデコード処理の際に参照させる。
TS分離部710は、設定されたPIDに基づいてTSから映像用TSパケット及び音声用TSパケットを抽出し、それぞれ第1及び第2の記憶領域AR1、AR2に書き込む(SQ5)。
その後、ホストCPU610によって起動された映像デコーダ730及び音声デコーダ740は、第1及び第2の記憶領域AR1、AR2から映像用TSパケット及び音声用TSパケットを順次読み出して(SQ6)、映像デコード処理及び音声デコード処理を行う。
2.3.1.2 放送受信終了処理
次に、図30に示す放送受信終了処理の動作例について説明する。ここでは、映像及び音声の再生を行う場合について説明する。
図33に、図30の放送受信終了処理の処理例のフロー図を示す。ホストCPU610は、RAM620又はROM630に格納されたプログラムを読み出し、該プログラムに対応した処理を実行することで図33に示す処理を行うことができるようになっている。
まずホストCPU610は、画像処理IC700の映像デコーダ730、音声デコーダ740を停止させる(ステップS170)。これは、例えばホストCPU610から画像処理IC700に対し制御コマンドを発行し、画像処理IC700が該制御コマンドのデコード結果を用いて映像デコーダ730、音声デコーダ740を停止させることができる。
その後、ホストCPU610は、同様にTS分離部710を停止させる(ステップS171)。そして、ホストCPU610は、チューナ940を停止させる(ステップS172)。
図34に、図28及び図29の画像処理IC700の放送受信終了処理における動作説明図を示す。図34において、図32と同一部分には同一符号を付し、適宜説明を省略する。
まずホストCPU610が、表示制御部750の動作を停止させる制御を行い、表示ドライバ640への映像データの供給を停止させる(SQ10)。次に、ホストCPU610が、映像デコーダ730及び音声デコーダ740の動作を停止させ(SQ11)、その後TS分離部710、チューナ940の順に動作を停止させていく(SQ12、SQ13)。
2.3.1.3 再生処理
次に、映像データの再生処理を行う映像デコーダ730の動作例について説明する。
図35に、映像デコーダ730の動作例のフロー図を示す。
映像デコーダ730は、ホストCPU610によって起動されると、例えばメモリ720の所定の記憶領域に格納されたプログラムを読み出し、該プログラムに対応した処理を実行することで図35に示す処理を行うことができるようになっている。
まず、映像デコーダ730は、映像用TSバッファとして設けられた第1の記憶領域AR1がエンプティ状態か否かを判別する(ステップS180)。第1の記憶領域AR1から読み出されるべき映像用TSパケットがない場合、エンプティ状態となる。
ステップS180において映像用TSバッファである第1の記憶領域AR1がエンプティ状態でないと判別されたとき(ステップS180:N)、映像デコーダ730は、更に映像用ESバッファとして設けられた第4の記憶領域AR4がフル状態か否かを判別する(ステップS181)。これ以上映像用ESデータを第4の記憶領域AR4に格納できない場合、フル状態となる。
ステップS181において映像用ESバッファである第4の記憶領域AR4がフル状態でないと判別されたとき(ステップS181:N)、映像デコーダ730は、第1の記憶領域AR1から映像用TSパケットを読み出し、図31のステップS166においてホストCPU610により特定されたPID(指定PID)か否かを検出する(ステップS182)。
ステップS182において、映像用TSパケットのPIDが指定PIDであると検出されたとき(ステップS182:Y)、映像デコーダ730は、TSヘッダ、PESヘッダの解析を行い(ステップS183)、映像用ESデータを映像用ESバッファとして設けられた第4の記憶領域AR4に格納する(ステップS184)。
その後、映像デコーダ730は、映像用TSバッファである第1の記憶領域AR1の読み出しアドレスを特定するための読み出しポインタを更新し(ステップS185)、ステップS180に戻る(リターン)。
なお、ステップS182において映像用TSパケットのPIDが指定PIDではないと検出されたとき(ステップS182:N)、ステップS185に進む。また、ステップS180において映像用TSバッファである第1の記憶領域AR1がエンプティ状態であると判別されたとき(ステップS180:Y)、又はステップS181において映像用ESバッファである第4の記憶領域AR4がフル状態であると判別されたとき(ステップS181:Y)、ステップS180に戻る(リターン)。
こうして第4の記憶領域AR4に格納された映像用ESデータは、映像デコーダ730により、上述したようなH.264/AVCの規格に従ったデコード処理が行われて、映像データとして第7の記憶領域AR7(図29参照)に書き込まれる。
図36に、図28及び図29の画像処理IC700の映像デコーダの動作説明図を示す。図36において、図32と同一部分には同一符号を付し、適宜説明を省略する。
なお図36において、第7の記憶領域AR7を第4の記憶領域AR4と共用化し、第8の記憶領域AR8を第5の記憶領域AR5と共用化している。また、PSI/SI、NIT、PMTは、第3の記憶領域AR3内の所定の記憶領域に格納されるものとする。
まず図36に示すようにホストCPU610によりデコード処理対象の番組に対応するPIDがTS分離部710に設定される(SQ20)。チューナ940からTSが入力されたとき(SQ21)、TS分離部710は、チューナ940からのTSから映像用TSパケット、音声用TSパケット及びそれ以外のTSパケットをそれぞれ分離する(SQ22)。TS分離部710によって分離された映像用TSパケットは、第1の記憶領域AR1に格納される。TS分離部710によって分離された音声用TSパケットは、第2の記憶領域AR2に格納される。TS分離部710によって分離された映像用TSパケット及び音声用TSパケット以外のTSパケットは、PSI/SIとして第3の記憶領域AR3に格納される。この際、TS分離部710は、PSI/SIの中のNIT、PMTを抽出して第3の記憶領域AR3に格納する。
次にホストCPU610によって起動された映像デコーダ730は、第1の記憶領域AR1から映像用TSパケットを読み出し(SQ23)、映像用ESデータを生成し、該映像用ESデータを第4の記憶領域AR4に格納する(SQ24)。
その後、映像デコーダ730は、第4の記憶領域AR4から映像用ESデータを読み出して(SQ25)、H.264/AVCの規格に従ったデコード処理を行う。ここで、上述したように、本実施形態における並列動作が行われる。図36では、デコード処理後の映像データが表示制御部750に直接供給されている(SQ26)が、例えばデコード処理後の映像データを、一旦、メモリ720の所定の記憶領域に書き戻し、その後、音声データの出力タイミングと同期を取りながら表示制御部750に供給することが望ましい。
こうして表示制御部750に供給された映像データに基づいて、表示ドライバ640が表示パネルを駆動する(SQ27)。
なお音声データの再生処理を行う音声デコーダ740についても、同様に、音声用TSバッファとして設けられた第2の記憶領域AR2から音声用TSパケットを読み出し、TSヘッダ、PESヘッダの解析を行って、音声用ESデータを音声用ESバッファとして設けられた第5の記憶領域AR5に格納する。
こうして第5の記憶領域AR5に格納された音声用ESデータは、音声デコーダ740により、MPEG−2AACの規格に従ったデコード処理が行われて、音声データとして第8の記憶領域AR8(図29参照)に書き込まれる。
以上のような音声デコーダ740の動作は、映像デコーダ730の動作とは独立して行われる。
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。なお上記の実施形態又はその変形例では、地上デジタル放送に適用可能な例について説明したが、本発明は地上デジタル放送に適用可能なものに限定されるものではない。
また、本実施形態におけるデコード装置は、H.264/AVCに準拠したデコード処理に適用した場合について説明したが、これに限定されるものではなく、他の規格や、H.264/AVC規格を発展させた規格に準拠したデコード処理に適用できることは言うまでもない。
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
本実施形態におけるデコード装置の構成要部のブロック図。 本実施形態の比較例におけるデコード装置の構成要部のブロック図。 本比較例におけるデコード装置の動作例の説明図。 本実施形態におけるデコード装置の動作例の説明図。 本実施形態が適用可能なH.264/AVCに準拠したデコード処理を行うデコード装置の構成例のブロック図。 図5のデコード装置の処理例のフロー図。 パラメータ解析部によるヘッダ解析処理の一例のフロー図。 CAVLC部の処理の一例のフロー図。 図9(A)、図9(B)、図9(C)はCAVLC演算の説明図。 図10(A)、図10(B)、図10(C)はゴロム符号の説明図。 CAVLC部の動作例のフロー図。 逆量子化部の処理の説明図。 図1のVLDプレサーチ部の動作例のフロー図。 図1のVLDプレサーチ部の動作例のフロー図。 MBパラメータデコード部の処理の例のフロー図。 図15のイントラ予測モード処理の処理例のフロー図。 図15のインタ予測モードの動きベクトル算出処理の処理例のフロー図。 図15のインタ予測モードの動きベクトル算出処理の処理例のフロー図。 図15のインタ予測モードの動きベクトル算出処理の処理例のフロー図。 図15のインタ予測モードの動きベクトル算出処理の処理例のフロー図。 本実施形態の変形例におけるデコード装置の構成要部のブロック図。 本実施形態におけるデコード装置のハードウェア構成例のブロック図。 地上デジタル放送のセグメントの概念の説明図。 TSの説明図。 PESパケット及びセクションの説明図。 本実施形態の比較例におけるマルチメディア処理CPUを含む携帯電話機の構成例のブロック図。 本実施形態における情報再生装置を含む携帯電話機の構成例のブロック図。 本実施形態の画像処理ICの構成例のブロック図。 図28の画像処理ICの動作説明図。 ホストCPUによる再生処理の動作例のフロー図。 図30の放送受信開始処理の動作例のフロー図。 画像処理ICの放送受信開始処理における動作説明図。 図30の放送受信終了処理の処理例のフロー図。 画像処理ICの放送受信終了処理における動作説明図。 映像デコーダの動作例のフロー図。 画像処理ICの映像デコーダの動作説明図。
符号の説明
10 ストリームバッファ、 20 VLDプレサーチ部、 22 第1のバッファ、
30、220、820 MBパラメータデコード部、40 CAVLC部、
42 第2のバッファ、 50 予測部、 52 イントラ予測部、
54 インタ予測部、 60 逆量子化部、 70 逆DCT演算部、 80 加算部、
100、200、500、800 デコード装置、 210、810 VLD部、
450 CPU、 410、720 メモリ、 412 MBバッファ、
414 出力バッファ、 416 データアクセス部、
420 デブロックフィルタ処理部、 430、432 ダブルバッファ、
434 バッファ、 530 パラメータ解析部、 550 デブロックフィルタ、
560 出力画像バッファ、 570 動き補償部、 600 携帯電話機、
610 ホストCPU、 620 RAM、 630 ROM、
640 表示ドライバ、 650 DAC、 700 画像処理IC、
710 TS分離部、 730 映像デコーダ、 740 音声デコーダ、
750 表示制御部、 760 チューナI/F、 770 ホストI/F、
780 ドライバI/F、 790 オーディオI/F、 910、930 アンテナ、
940 チューナ、 960 表示パネル、 970 スピーカ

Claims (8)

  1. 第1の可変長符号化処理後の第1のデータと第2の可変長符号化処理後の第2のデータとがストリーム化されたストリームデータをデコードするためのデコード装置であって、
    マクロブロック単位のパラメータデータに基づいてマクロブロックのモードの解析処理と前記第1の可変長符号化処理に対応する第1の可変長復号化処理とを行って、前記第2のデータが格納されるストリームバッファの先頭アドレスを求めるプレサーチ部と、
    前記第1の可変長復号化処理後のパラメータデータに基づいて前記第1のデータをデコードし、当該マクロブロックのパラメータ値を求めるパラメータデコード部と、
    前記第2のデータに対して、前記第2の可変長符号化処理に対応する第2の可変長復号化処理を行うデータデコード部とを含み、
    前記データデコード部が、
    前記プレサーチ部からの前記先頭アドレスに基づいて前記ストリームバッファから第2のデータを読み出し、該第2のデータに対して前記第2の可変長復号化処理を行うことを特徴とするデコード装置。
  2. 請求項1において、
    前記パラメータデコード部と前記可変長データデコード部とが、前記プレサーチ部の処理後に並列動作することを特徴とするデコード装置。
  3. 請求項1又は2において、
    前記パラメータデコード部が、
    前記ストリームバッファに格納されるデータに対して前記第1の可変長復号化処理を行って、該第1の可変長復号化処理後のパラメータデータに基づいて前記第1のデータをデコードすることを特徴とするデコード装置。
  4. 請求項1乃至3のいずれかにおいて、
    前記第2の可変長復号化処理後のデータに対して逆量子化を行う逆量子化部と、
    前記逆量子化部の出力データに対して逆離散コサイン変換を行う逆離散コサイン変換演算部と、
    前記パラメータ値に基づいてインタ予測又はイントラ予測を行う予測部と、
    前記予測部の結果と前記逆離散コサイン変換演算部の結果とを加算する加算部とを含み、
    前記逆量子化部、前記逆離散コサイン変換演算部、前記予測部及び前記加算部が、前記パラメータデコード部及び前記データデコード部と並列動作することを特徴とするデコード装置。
  5. 請求項1乃至4のいずれかにおいて、
    前記データデコード部が、
    CAVLC(Context-based Adaptive Variable Length Coding)の復号化処理を行うことを特徴とするデコード装置。
  6. 映像データ及び音声データの少なくとも1つを再生するための情報再生装置であって、
    映像データを生成するための第1のTS(Transport Stream)パケット、音声データを生成するための第2のTSパケット、前記第1及び第2のTSパケット以外の第3のTSパケットを、トランスポートストリームから抽出する分離処理部と、
    前記第1のTSパケットが格納される第1の記憶領域と、前記第2のTSパケットが格納される第2の記憶領域と、前記第3のTSパケットが格納される第3の記憶領域とを有するメモリと、
    前記第1の記憶領域から読み出された前記第1のTSパケットに基づいて前記映像データを生成する映像デコード処理を行う映像デコーダと、
    前記第2の記憶領域から読み出された前記第2のTSパケットに基づいて前記音声データを生成する音声デコード処理を行う音声デコーダとを含み、
    前記映像デコーダが、請求項1乃至5のいずれか記載のデコード装置を含み、
    前記映像デコーダが、前記第1の記憶領域から前記第1のTSパケットを、前記音声デコーダとは独立して読み出し、該第1のTSパケットに基づいて前記映像デコード処理を行うと共に、
    前記音声デコーダが、前記第2の記憶領域から前記第2のTSパケットを、前記映像デコーダとは独立して読み出し、該第2のTSパケットに基づいて前記音声デコード処理を行うことを特徴とする情報再生装置。
  7. 請求項6記載の情報再生装置と、
    前記情報再生装置に対し、前記映像デコード処理及び前記音声デコード処理の少なくとも1つの処理開始を指示するホストとを含むことを特徴とする電子機器。
  8. チューナと、
    前記チューナからのトランスポートストリームが供給される請求項6記載の情報再生装置と、
    前記情報再生装置に対し、前記映像デコード処理及び前記音声デコード処理の少なくとも1つの処理開始を指示するホストとを含むことを特徴とする電子機器。
JP2006213746A 2006-08-04 2006-08-04 デコード装置、情報再生装置及び電子機器 Withdrawn JP2008042497A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006213746A JP2008042497A (ja) 2006-08-04 2006-08-04 デコード装置、情報再生装置及び電子機器
US11/831,548 US20080031357A1 (en) 2006-08-04 2007-07-31 Decoding device, information reproducing apparatus and electronic apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006213746A JP2008042497A (ja) 2006-08-04 2006-08-04 デコード装置、情報再生装置及び電子機器

Publications (1)

Publication Number Publication Date
JP2008042497A true JP2008042497A (ja) 2008-02-21

Family

ID=39029155

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006213746A Withdrawn JP2008042497A (ja) 2006-08-04 2006-08-04 デコード装置、情報再生装置及び電子機器

Country Status (2)

Country Link
US (1) US20080031357A1 (ja)
JP (1) JP2008042497A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009296200A (ja) * 2008-06-04 2009-12-17 Renesas Technology Corp 可変長復号装置およびそれを用いた動画復号装置
KR20190047672A (ko) * 2011-02-21 2019-05-08 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100150242A1 (en) * 2007-04-11 2010-06-17 Panasonic Corporation Image data decoding device and image data decoding method
KR101439848B1 (ko) * 2008-01-08 2014-09-17 삼성전자주식회사 움직임 보상 방법 및 장치
FR2932940A1 (fr) * 2008-06-23 2009-12-25 Thomson Licensing Procede de codage video avec mode non compresse et dispositif mettant en oeuvre le procede.
US20110249736A1 (en) * 2010-04-09 2011-10-13 Sharp Laboratories Of America, Inc. Codeword restriction for high performance video coding
US10033997B2 (en) * 2010-06-23 2018-07-24 Panasonic Intellectual Property Management Co., Ltd. Image decoding apparatus, image decoding method, integrated circuit, and program
EP2680583B1 (en) 2011-02-22 2018-04-11 Tagivan Ii Llc Filter method, dynamic image encoding device, dynamic image decoding device, and dynamic image encoding/decoding device
LT2736253T (lt) * 2011-07-19 2020-04-27 Tagivan Ii Llc Filtravimo būdas, judančio vaizdo dekodavimo būdas, judančio vaizdo kodavimo būdas, judančio vaizdo dekodavimo aparatas, judančio vaizdo kodavimo aparatas ir judančio vaizdo kodavimo/dekodavimo aparatas
US10628133B1 (en) 2019-05-09 2020-04-21 Rulai, Inc. Console and method for developing a virtual agent

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69631393T2 (de) * 1995-03-29 2004-10-21 Hitachi Ltd Dekoder für komprimierte und multiplexierte Bild- und Audiodaten
US6680974B1 (en) * 1999-12-02 2004-01-20 Lucent Technologies Inc. Methods and apparatus for context selection of block transform coefficients
US7095341B2 (en) * 1999-12-14 2006-08-22 Broadcom Corporation Programmable variable-length decoder
US6847735B2 (en) * 2000-06-07 2005-01-25 Canon Kabushiki Kaisha Image processing system, image processing apparatus, image input apparatus, image output apparatus and method, and storage medium
US6963613B2 (en) * 2002-04-01 2005-11-08 Broadcom Corporation Method of communicating between modules in a decoding system
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
JP4729279B2 (ja) * 2004-08-31 2011-07-20 株式会社日立製作所 映像または音声記録再生装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009296200A (ja) * 2008-06-04 2009-12-17 Renesas Technology Corp 可変長復号装置およびそれを用いた動画復号装置
KR20190047672A (ko) * 2011-02-21 2019-05-08 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR102071665B1 (ko) * 2011-02-21 2020-01-31 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치

Also Published As

Publication number Publication date
US20080031357A1 (en) 2008-02-07

Similar Documents

Publication Publication Date Title
US20230345002A1 (en) Image coding apparatus for coding tile boundaries
JP2008042497A (ja) デコード装置、情報再生装置及び電子機器
US20230370629A1 (en) Moving picture coding method, moving picture decoding method, moving picture coding apparatus, moving picture decoding apparatus, and moving picture coding and decoding apparatus
US10887590B2 (en) Image processing device and method
RU2690439C2 (ru) Устройство и способ кодирования изображений и устройство и способ декодирования изображений
US20060126744A1 (en) Two pass architecture for H.264 CABAC decoding process
WO2014002896A1 (ja) 符号化装置および符号化方法、復号装置および復号方法
JP4928726B2 (ja) ビデオストリーム中の有効エントリポイントの指示
EP2297957B1 (en) Fast channel switching in tv broadcast systems
WO2016194721A1 (ja) 画像処理装置および画像処理方法
US20140321528A1 (en) Video encoding and/or decoding method and video encoding and/or decoding apparatus
WO2015059973A1 (ja) 画像処理装置及び画像処理方法
US20140226712A1 (en) Image processing device and method
JP4906197B2 (ja) 復号装置および方法、並びに記録媒体
JP2007304797A (ja) データアクセス回路、デコード装置、情報再生装置及び電子機器
WO2016199574A1 (ja) 画像処理装置および画像処理方法
JP2007243763A (ja) デコード装置、その制御方法、情報再生装置及び電子機器
US20160286218A1 (en) Image encoding device and method, and image decoding device and method
TW202243473A (zh) 具跨分量縮放亮度映射方法及裝置
WO2017126331A1 (ja) 画像処理装置および方法
JP2007243764A (ja) デコード装置、その制御方法、情報再生装置及び電子機器

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100108