JP2006101323A - Information processing apparatus and program used for the processing apparatus - Google Patents

Information processing apparatus and program used for the processing apparatus Download PDF

Info

Publication number
JP2006101323A
JP2006101323A JP2004286543A JP2004286543A JP2006101323A JP 2006101323 A JP2006101323 A JP 2006101323A JP 2004286543 A JP2004286543 A JP 2004286543A JP 2004286543 A JP2004286543 A JP 2004286543A JP 2006101323 A JP2006101323 A JP 2006101323A
Authority
JP
Japan
Prior art keywords
computer
field
load
information processing
decoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004286543A
Other languages
Japanese (ja)
Inventor
Kosuke Uchida
耕輔 内田
Noriaki Kitada
典昭 北田
Satoshi Hoshina
聡 保科
Yoshihiro Kikuchi
義浩 菊池
Yuji Kawashima
裕司 川島
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004286543A priority Critical patent/JP2006101323A/en
Publication of JP2006101323A publication Critical patent/JP2006101323A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Television Signal Processing For Recording (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an information processing apparatus capable of smoothly executing decoding of a moving picture stream. <P>SOLUTION: A video playback application program 201 detects a present load amount of a computer 10. When the computer 10 is not in a high load state, the video playback application program 201 executes ordinary decode processing for decoding all coded images. When the computer 10 reaches the high load state, the video playback application program 201 executes particular decode processing. In the particular decode processing, decoding applied to either a top field or a bottom field is skipped and only the other field is decoded. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明はパーソナルコンピュータのような情報処理装置および同装置で用いられるデコード用のプログラムに関する。   The present invention relates to an information processing apparatus such as a personal computer and a decoding program used in the apparatus.

近年、DVD(Digital Versatile Disc)プレーヤ、TV装置のようなオーディオ・ビデオ(AV)機器と同様のAV機能を備えたパーソナルコンピュータが開発されている。   In recent years, personal computers having the same AV function as audio / video (AV) devices such as DVD (Digital Versatile Disc) players and TV devices have been developed.

このようなパーソナルコンピュータにおいては、圧縮符号化された動画像ストリームをソフトウェアによってデコードするソフトウェアデコーダが用いられている。ソフトウェアデコーダの使用により、専用のハードウェアを設けることなく、圧縮符号化された動画像ストリームをプロセッサ(CPU)によってデコードすることが可能になる。   In such a personal computer, a software decoder that decodes a compression-coded moving image stream by software is used. By using a software decoder, it is possible to decode a compression-coded moving image stream by a processor (CPU) without providing dedicated hardware.

また、圧縮符号化された動画像ストリームをデコードする装置としては、トップフィールドおよびボトムフィールドの一方のみを表示してスロー再生、静止画再生のような特殊再生を行う場合に、表示することが必要なトップフィールドおよびボトムフィールドの一方のみをデコードするシステムが知られている(例えば、特許文献1参照)。
特開平11−136679号公報
Also, as a device that decodes a compressed and encoded video stream, it is necessary to display only one of the top field and bottom field and perform special playback such as slow playback and still image playback. A system that decodes only one of the top field and the bottom field is known (see, for example, Patent Document 1).
JP-A-11-136679

しかし、トップフィールドおよびボトムフィールドの一方のみをデコードする処理が行われるのは特殊再生時のみである。このため、通常再生を行う場合には、トップフィールドおよびボトムフィールドの双方が常にデコードされることになる。   However, the process of decoding only one of the top field and the bottom field is performed only during special playback. For this reason, in normal playback, both the top field and the bottom field are always decoded.

ところで、最近では、次世代の動画像圧縮符号化技術として、H.264/AVC(AVC:Advanced Video Coding)規格が注目されている。H.264/AVC規格は、MPEG2、MPEG4のような従来の圧縮符号化技術よりも高能率の圧縮符号化技術である。このため、H.264/AVC規格に対応するエンコード処理およびデコード処理の各々においては、MPEG2、MPEG4のような従来の圧縮符号化技術よりも多くの処理量が必要とされる。   Recently, as a next-generation moving image compression coding technology, H.264 has been introduced. The H.264 / AVC (AVC: Advanced Video Coding) standard has attracted attention. H. The H.264 / AVC standard is a compression encoding technique that is more efficient than conventional compression encoding techniques such as MPEG2 and MPEG4. For this reason, H.C. Each of the encoding process and the decoding process corresponding to the H.264 / AVC standard requires a larger amount of processing than the conventional compression encoding techniques such as MPEG2 and MPEG4.

したがって、H.264/AVC規格で圧縮符号化された動画像ストリームをソフトウェアによってデコードするように設計されたパーソナルコンピュータにおいては、システムの負荷が増大すると、デコード処理自体に遅れが生じ、これによってスムーズな動画再生を実行できなくなる危険がある。   Therefore, H.H. In a personal computer designed to decode a video stream compressed and encoded by the H.264 / AVC standard by software, if the system load increases, the decoding process itself will be delayed, thereby enabling smooth video playback. There is a risk that it cannot be executed.

本発明は上述の事情を考慮してなされたものであり、動画像ストリームのデコードをスムーズに実行することが可能な情報処理装置およびプログラムを提供することを目的とする。   The present invention has been made in consideration of the above-described circumstances, and an object thereof is to provide an information processing apparatus and a program that can smoothly decode a moving image stream.

上述の課題を解決するため、本発明は、圧縮符号化された動画像ストリームをデコードするためのデコード処理を実行する情報処理装置において、前記情報処理装置の負荷を検出する負荷検出手段と、前記負荷検出手段によって検出された負荷が所定の基準値よりも大きい場合、前記動画像ストリームに含まれるシンタックス情報に基づいて前記動画像ストリームに含まれる各符号化画面がフィールド画像およびフレーム画像のいずれであるか否かを判別する手段と、前記動画像ストリームに含まれる各符号化画面がフィールド画像である場合、トップフィールドおよびボトムフィールドのいずれか一方に対する前記デコード処理の実行をスキップする制御手段とを具備することを特徴とする。   In order to solve the above-described problem, the present invention provides an information processing apparatus that executes a decoding process for decoding a compression-encoded moving image stream, a load detection unit that detects a load of the information processing apparatus, When the load detected by the load detection unit is larger than a predetermined reference value, each encoded screen included in the moving image stream is a field image or a frame image based on syntax information included in the moving image stream. And a control means for skipping the execution of the decoding process for one of a top field and a bottom field when each coding screen included in the moving image stream is a field image; It is characterized by comprising.

本発明によれば、動画像ストリームのデコードをスムーズに実行することが可能となる。   According to the present invention, it is possible to smoothly decode a moving image stream.

以下、図面を参照して、本発明の実施形態を説明する。
まず、図1および図2を参照して、本発明の一実施形態に係る情報処理装置の構成について説明する。この情報処理装置は、例えば、ノートブック型パーソナルコンピュータ10として実現されている。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
First, the configuration of an information processing apparatus according to an embodiment of the present invention will be described with reference to FIG. 1 and FIG. This information processing apparatus is realized as, for example, a notebook personal computer 10.

図1はノートブック型パーソナルコンピュータ10のディスプレイユニットを開いた状態における正面図である。本コンピュータ10は、コンピュータ本体11と、ディスプレイユニット12とから構成されている。ディスプレイユニット12にはLCD(Liquid Crystal Display)17から構成される表示装置が組み込まれており、そのLCD17の表示画面はディスプレイユニット12のほぼ中央に位置されている。   FIG. 1 is a front view of the notebook personal computer 10 with the display unit opened. The computer 10 includes a computer main body 11 and a display unit 12. The display unit 12 incorporates a display device composed of an LCD (Liquid Crystal Display) 17, and the display screen of the LCD 17 is positioned substantially at the center of the display unit 12.

ディスプレイユニット12は、コンピュータ本体11に対して開放位置と閉塞位置との間を回動自在に取り付けられている。コンピュータ本体11は薄い箱形の筐体を有しており、その上面にはキーボード13、本コンピュータ1を電源オン/オフするためのパワーボタン14、入力操作パネル15、およびタッチパッド16などが配置されている。   The display unit 12 is attached to the computer main body 11 so as to be rotatable between an open position and a closed position. The computer main body 11 has a thin box-shaped casing, and a keyboard 13, a power button 14 for turning on / off the computer 1, an input operation panel 15, and a touch pad 16 are arranged on the upper surface. Has been.

入力操作パネル15は、押されたボタンに対応するイベントを入力する入力装置であり、複数の機能をそれぞれ起動するための複数のボタンを備えている。これらボタン群には、TV起動ボタン15A、DVD(Digital Versatile Disc)起動ボタン15Bも含まれている。TV起動ボタン15Aは、デジタルTV放送番組のような放送番組データの再生及び記録を行うためのTV機能を起動するためのボタンである。TV起動ボタン15Aがユーザによって押下された時、TV機能を実行するためのアプリケーションプログラムが自動的に起動される。DVD起動ボタン15Bは、DVDに記録されたビデオコンテンツを再生するためのボタンである。DVD起動ボタン15Bがユーザによって押下された時、ビデオコンテンツを再生するためのアプリケーションプログラムが自動的に起動される。   The input operation panel 15 is an input device that inputs an event corresponding to a pressed button, and includes a plurality of buttons for starting a plurality of functions. These button groups also include a TV start button 15A and a DVD (Digital Versatile Disc) start button 15B. The TV activation button 15A is a button for activating a TV function for reproducing and recording broadcast program data such as a digital TV broadcast program. When the TV activation button 15A is pressed by the user, an application program for executing the TV function is automatically activated. The DVD start button 15B is a button for playing back video content recorded on a DVD. When the DVD activation button 15B is pressed by the user, an application program for reproducing video content is automatically activated.

次に、図2を参照して、本コンピュータ10のシステム構成について説明する。   Next, the system configuration of the computer 10 will be described with reference to FIG.

本コンピュータ10は、図2に示されているように、CPU111、ノースブリッジ112、主メモリ113、グラフィクスコントローラ114、サウスブリッジ119、BIOS−ROM120、ハードディスクドライブ(HDD)121、光ディスクドライブ(ODD)122、デジタルTV放送チューナ123、エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)124、およびネットワークコントローラ125等を備えている。   As shown in FIG. 2, the computer 10 includes a CPU 111, a north bridge 112, a main memory 113, a graphics controller 114, a south bridge 119, a BIOS-ROM 120, a hard disk drive (HDD) 121, and an optical disk drive (ODD) 122. , A digital TV broadcast tuner 123, an embedded controller / keyboard controller IC (EC / KBC) 124, a network controller 125, and the like.

CPU111は本コンピュータ10の動作を制御するために設けられたプロセッサであり、ハードディスクドライブ(HDD)121から主メモリ113にロードされる、オペレーティングシステム(OS)、およびビデオ再生アプリケーションプログラム201のような各種アプリケーションプログラムを実行する。   The CPU 111 is a processor provided to control the operation of the computer 10, and various types such as an operating system (OS) and a video playback application program 201 loaded from the hard disk drive (HDD) 121 to the main memory 113. Run the application program.

ビデオ再生アプリケーションプログラム201は、圧縮符号化された動画像データをデコードおよび再生するためのソフトウェアである。このビデオ再生アプリケーションプログラム201は、H.264/AVC規格に対応するソフトウェアデコーダである。ビデオ再生アプリケーションプログラム201は、H.264/AVC規格で定義された符号化方式で圧縮符号化されている動画像ストリーム(例えば、デジタルTV放送チューナ123によって受信されたデジタルTV放送番組、光ディスクドライブ(ODD)122から読み出されるHD(High Definition)規格のビデオコンテンツ、など)をデコードするための機能を有している。   The video reproduction application program 201 is software for decoding and reproducing the compression-coded moving image data. This video playback application program 201 is an H.264 file. This is a software decoder corresponding to the H.264 / AVC standard. The video playback application program 201 is an H.264 file. A moving image stream (for example, a digital TV broadcast program received by the digital TV broadcast tuner 123, an HD (High) read out from the optical disc drive (ODD) 122) that is compressed and encoded by the encoding method defined in the H.264 / AVC standard. Definition) standard video content, etc.).

このビデオ再生アプリケーションプログラム201は、図3に示すように、負荷検出モジュール211、デコード制御モジュール212、およびデコード実行モジュール213を備えている。   As shown in FIG. 3, the video playback application program 201 includes a load detection module 211, a decode control module 212, and a decode execution module 213.

デコード実行モジュール213は、H.264/AVC規格で定義されたデコード処理を実行するデコーダである。負荷検出モジュール211は、コンピュータ10の負荷を検出するモジュールである。この負荷検出モジュール211は、例えば、オペレーティングシステム(OS)200にコンピュータ10の現在の負荷を問い合わせることによって、コンピュータ10の現在の負荷量を検出する。コンピュータ10の負荷量は、例えば、CPU111の使用率に基づいて決定される。   The decode execution module 213 is an H.264 implementation. It is a decoder that executes a decoding process defined in the H.264 / AVC standard. The load detection module 211 is a module that detects the load of the computer 10. For example, the load detection module 211 detects the current load amount of the computer 10 by inquiring the current load of the computer 10 to the operating system (OS) 200. The load amount of the computer 10 is determined based on the usage rate of the CPU 111, for example.

また、コンピュータ10の負荷量は、CPU111の使用率とメモリ113の使用率との組み合わせによって決定することもできる。通常、ソフトウェアデコーダをスムーズに実行するためには、ある一定サイズ以上のメモリが必要である。システムのメモリ使用率が高くなると、OSのページングにより、ソフトウェアデコーダのデコードパフォーマンスは低下する。よって、CPU111の使用率とメモリ113の使用率との組み合わせによってコンピュータ10の負荷量を検出することにより、コンピュータ10の現在の負荷量がソフトウェアデコーダの実行に支障を来す負荷量(高負荷状態)であるかどうかをより精度よく判別することができる。   Further, the load amount of the computer 10 can be determined by a combination of the usage rate of the CPU 111 and the usage rate of the memory 113. Usually, in order to smoothly execute the software decoder, a memory having a certain size or more is required. As the memory usage rate of the system increases, the decoding performance of the software decoder decreases due to paging of the OS. Therefore, by detecting the load amount of the computer 10 based on the combination of the usage rate of the CPU 111 and the usage rate of the memory 113, the current load amount of the computer 10 interferes with the execution of the software decoder (high load state). ) Can be more accurately determined.

デコード制御モジュール212は、負荷検出モジュール211によって検出されたコンピュータ10の負荷に応じて、デコード実行モジュール213によって実行されるデコード処理の内容を制御する。   The decode control module 212 controls the content of the decoding process executed by the decode execution module 213 according to the load on the computer 10 detected by the load detection module 211.

具体的には、デコード制御モジュール212は、コンピュータ10の負荷量が予め決められた基準値以下である場合には、H.264/AVC規格で定義されたデコード処理がCPU111によって実行されるように、デコード実行モジュール213によって実行すべきデコード処理の内容を制御する。一方、コンピュータ10の負荷量が基準値よりも大きい場合には(高負荷状態)、デコード制御モジュール212は、H.264/AVC規格で定義されたデコード処理の一部が省略または簡略された処理に置換されるように、デコード実行モジュール213によって実行すべきデコード処理の内容を制御する。   Specifically, when the load amount of the computer 10 is equal to or less than a predetermined reference value, the decode control module 212 determines the H.264 standard. The contents of the decoding process to be executed by the decoding execution module 213 are controlled so that the decoding process defined by the H.264 / AVC standard is executed by the CPU 111. On the other hand, when the load amount of the computer 10 is larger than the reference value (high load state), the decode control module 212 determines that the H.264 is in the H.264 standard. The content of the decoding process to be executed by the decoding execution module 213 is controlled so that a part of the decoding process defined in the H.264 / AVC standard is replaced with a process that is omitted or simplified.

ビデオ再生アプリケーションプログラム201によってデコードされた動画像データは、表示ドライバ202を介してグラフィクスコントローラ114のビデオメモリ114Aに順次書き込まれる。これにより、デコードされた動画像データはLCD17に表示される。表示ドライバ202はグラフィクスコントローラ114を制御するためのソフトウェアである。   The moving image data decoded by the video playback application program 201 is sequentially written into the video memory 114A of the graphics controller 114 via the display driver 202. As a result, the decoded moving image data is displayed on the LCD 17. The display driver 202 is software for controlling the graphics controller 114.

また、CPU111は、BIOS−ROM120に格納されたシステムBIOS(Basic Input Output System)も実行する。システムBIOSはハードウェア制御のためのプログラムである。   The CPU 111 also executes a system BIOS (Basic Input Output System) stored in the BIOS-ROM 120. The system BIOS is a program for hardware control.

ノースブリッジ112はCPU111のローカルバスとサウスブリッジ119との間を接続するブリッジデバイスである。ノースブリッジ112には、主メモリ113をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ112は、AGP(Accelerated Graphics Port)バスなどを介してグラフィクスコントローラ114との通信を実行する機能も有している。   The north bridge 112 is a bridge device that connects the local bus of the CPU 111 and the south bridge 119. The north bridge 112 also includes a memory controller that controls access to the main memory 113. The north bridge 112 also has a function of executing communication with the graphics controller 114 via an AGP (Accelerated Graphics Port) bus or the like.

グラフィクスコントローラ114は本コンピュータ10のディスプレイモニタとして使用されるLCD17を制御する表示コントローラである。このグラフィクスコントローラ114はビデオメモリ(VRAM)114Aに書き込まれた画像データからLCD17に送出すべき表示信号を生成する。   The graphics controller 114 is a display controller that controls the LCD 17 used as a display monitor of the computer 10. The graphics controller 114 generates a display signal to be sent to the LCD 17 from the image data written in the video memory (VRAM) 114A.

サウスブリッジ119は、LPC(Low Pin Count)バス上の各デバイス、およびPCI(Peripheral Component Interconnect)バス上の各デバイスを制御する。また、サウスブリッジ119は、HDD121、ODD122を制御するためのIDE(Integrated Drive Electronics)コントローラを内蔵している。さらに、サウスブリッジ119は、デジタルTV放送チューナ123を制御する機能、およびBIOS−ROM120をアクセス制御するための機能も有している。   The south bridge 119 controls each device on an LPC (Low Pin Count) bus and each device on a PCI (Peripheral Component Interconnect) bus. The south bridge 119 incorporates an IDE (Integrated Drive Electronics) controller for controlling the HDD 121 and the ODD 122. Further, the south bridge 119 has a function of controlling the digital TV broadcast tuner 123 and a function of controlling access to the BIOS-ROM 120.

HDD121は、各種ソフトウェア及びデータを格納する記憶装置である。光ディスクドライブ(ODD)123は、ビデオコンテンツが格納されたDVDなどの記憶メディアを駆動するためのドライブユニットである。デジタルTV放送チューナ123は、デジタルTV放送番組のような放送番組データを外部から受信するための受信装置である。   The HDD 121 is a storage device that stores various software and data. The optical disk drive (ODD) 123 is a drive unit for driving a storage medium such as a DVD in which video content is stored. The digital TV broadcast tuner 123 is a receiving device for receiving broadcast program data such as a digital TV broadcast program from the outside.

エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)124は、電力管理のためのエンベデッドコントローラと、キーボード(KB)13およびタッチパッド16を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。このエンベデッドコントローラ/キーボードコントローラIC(EC/KBC)124は、ユーザによるパワーボタン14の操作に応じて本コンピュータ10をパワーオン/パワーオフする機能を有している。さらに、エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)124は、ユーザによるTV起動ボタン15A、DVD起動ボタン15Bの操作に応じて、本コンピュータ10をパワーオンすることもできる。ネットワークコントローラ125は、例えばインターネットなどの外部ネットワークとの通信を実行する通信装置である。   The embedded controller / keyboard controller IC (EC / KBC) 124 is a one-chip microcomputer in which an embedded controller for power management and a keyboard controller for controlling the keyboard (KB) 13 and the touch pad 16 are integrated. . The embedded controller / keyboard controller IC (EC / KBC) 124 has a function of powering on / off the computer 10 in accordance with the operation of the power button 14 by the user. Furthermore, the embedded controller / keyboard controller IC (EC / KBC) 124 can also power on the computer 10 in accordance with the operation of the TV start button 15A and the DVD start button 15B by the user. The network controller 125 is a communication device that executes communication with an external network such as the Internet.

次に、図4を参照して、ビデオ再生アプリケーションプログラム201によって実現されるソフトウェアデコーダの機能構成を説明する。   Next, the functional configuration of the software decoder realized by the video playback application program 201 will be described with reference to FIG.

ビデオ再生アプリケーションプログラム201のデコード実行モジュール213は、H.264/AVC規格に対応しており、図示のように、エントロピー復号部301、逆量子化部302、逆DCT部(DCT:Discrete Cosine Transform)303、加算部304、デブロッキングフィルタ部305、フレームメモリ306、動きベクトル予測部307、補間予測部308、重み付き予測部309、イントラ予測部310、およびモード切替スイッチ部311を含む。H.264の直交変換は整数精度であり、従来のDCTとは異なるが、ここではDCTと称することとする。   The decode execution module 213 of the video playback application program 201 is an H.264 file. As shown in the figure, the entropy decoding unit 301, the inverse quantization unit 302, the inverse DCT unit (DCT: Discrete Cosine Transform) 303, the addition unit 304, the deblocking filter unit 305, the frame memory 306, a motion vector prediction unit 307, an interpolation prediction unit 308, a weighted prediction unit 309, an intra prediction unit 310, and a mode changeover switch unit 311. H. The H.264 orthogonal transform has integer precision and is different from the conventional DCT, but is referred to as DCT here.

各画面(ピクチャ)の符号化は、たとえば16x16画素のマクロブロック単位で実行される。各マクロブロックごとに、フレーム内符号化モード(イントラ符号化モード)および動き補償フレーム間予測符号化モード(インター符号化モード)のいずれか一方が選択される。   Each screen (picture) is encoded in units of macroblocks of 16 × 16 pixels, for example. For each macroblock, either the intraframe coding mode (intra coding mode) or the motion compensated interframe prediction coding mode (inter coding mode) is selected.

動き補償フレーム間予測符号化モードにおいては、既に符号化された画面(ピクチャ)からの動きを推定することによって、符号化対象画面に対応する動き補償フレーム間予測信号が定められた形状単位で生成される。そして、符号化対象画面(ピクチャ)から動き補償フレーム間予測信号を引いた予測誤差信号が、直交変換(DCT)、量子化、およびエントロピー符号化によって、符号化される。また、イントラ符号化モードにおいては、符号化対象画面(ピクチャ)から予測信号が生成され、その予測信号が直交変換(DCT)、量子化、およびエントロピー符号化によって、符号化される。   In motion-compensated interframe predictive coding mode, motion-predicted interframe prediction signals corresponding to the current picture are generated in a defined shape unit by estimating the motion from the already coded picture (picture). Is done. A prediction error signal obtained by subtracting the motion compensation inter-frame prediction signal from the encoding target screen (picture) is encoded by orthogonal transform (DCT), quantization, and entropy encoding. Further, in the intra coding mode, a prediction signal is generated from a coding target screen (picture), and the prediction signal is encoded by orthogonal transform (DCT), quantization, and entropy coding.

H.264/AVC規格に対応するコーデックは、さらに圧縮率を高めるために、
(1)従来のMPEGよりも高い画素精度(1/4画素精度)の動き補償
(2)フレーム内符号化を効率的に行うためのフレーム内予測
(3)ブロック歪みを低減するためのデブロッキングフィルタ
(4)4x4画素単位の整数DCT
(5)任意の位置の複数の画面(ピクチャ)を参照画面として使用可能なマルチリファレンスフレーム
(6)重み付け予測
等の技術を利用する。
H. The codec corresponding to the H.264 / AVC standard,
(1) Motion compensation with higher pixel accuracy (1/4 pixel accuracy) than conventional MPEG (2) Intraframe prediction for efficient intraframe coding (3) Deblocking to reduce block distortion Filter (4) 4x4 pixel integer DCT
(5) A technique such as a multi-reference frame (6) weighted prediction that can use a plurality of screens (pictures) at arbitrary positions as a reference screen is used.

以下、図4のソフトウェアデコーダの動作を説明する。   Hereinafter, the operation of the software decoder of FIG. 4 will be described.

H.264/AVC規格にしたがって圧縮符号化された動画像ストリームは、まず、エントロピー復号部301に入力される。圧縮符号化された動画像ストリームには、符号化された画像情報の他に、動き補償フレーム間予測符号化(インター予測符号化)で用いられた動きベクトル情報、フレーム内予測符号化(イントラ予測符号化)で用いられたフレーム内予測情報、予測モード(インター予測符号化/イントラ予測符号化)を示すモード情報等が含まれている。   H. A moving image stream compression-encoded according to the H.264 / AVC standard is first input to the entropy decoding unit 301. In addition to encoded image information, motion vector information used in motion-compensated interframe prediction encoding (inter-prediction encoding), intra-frame prediction encoding (intra prediction encoding) Intraframe prediction information used in (encoding), mode information indicating a prediction mode (inter prediction encoding / intra prediction encoding), and the like are included.

デコード処理は、たとえば16x16画素のマクロブロック単位で実行される。エントロピー復号部301は動画像ストリームに対して可変長復号のようなエントロピー復号処理を施して、動画像ストリームから、量子化DCT係数、動きベクトル情報(動きベクトル差分情報)、フレーム内予測情報、およびモード情報を分離する。この場合、例えば、デコード対象画面(ピクチャ)内の各マクロブロックは4x4画素(または8x8画素)のブロック毎にエントロピー復号処理され、各ブロックは4x4(または8x8画素)の量子化DCT係数に変換される。以下では、各ブロックが4x4である場合を想定する。   The decoding process is executed in units of macro blocks of 16 × 16 pixels, for example. The entropy decoding unit 301 performs entropy decoding processing such as variable length decoding on the moving image stream, and from the moving image stream, the quantized DCT coefficient, motion vector information (motion vector difference information), intra-frame prediction information, and Separate mode information. In this case, for example, each macroblock in the decoding target screen (picture) is subjected to entropy decoding processing for each block of 4 × 4 pixels (or 8 × 8 pixels), and each block is converted into 4 × 4 (or 8 × 8 pixels) quantized DCT coefficients. The In the following, it is assumed that each block is 4 × 4.

動きベクトル情報は、動きベクトル予測部307に送られる。フレーム内予測情報は、イントラ予測部310に送られる。モード情報はモード切替スイッチ部311に送られる。   The motion vector information is sent to the motion vector prediction unit 307. The intra-frame prediction information is sent to the intra prediction unit 310. The mode information is sent to the mode changeover switch unit 311.

各デコード対象ブロックの4x4の量子化DCT係数は、逆量子化部302による逆量子化処理により4x4のDCT係数(直交変換係数)に変換される。この4x4のDCT係数は、逆DCT部303による逆整数DCT(逆直交変換)処理によって、周波数情報から、4x4の画素値に変換される。この4x4の画素値は、デコード対象ブロックに対応する予測誤差信号である。この予測誤差信号は加算部304に送られ、そこでデコード対象ブロックに対応する予測信号(動き補償フレーム間予測信号またはフレーム内予測信号)が加算され、これによってデコード対象ブロックに対応する4x4の画素値がデコードされる。   The 4 × 4 quantized DCT coefficients of each decoding target block are converted into 4 × 4 DCT coefficients (orthogonal transform coefficients) by the inverse quantization process by the inverse quantization unit 302. The 4 × 4 DCT coefficients are converted from frequency information into 4 × 4 pixel values by an inverse integer DCT (inverse orthogonal transform) process by the inverse DCT unit 303. This 4 × 4 pixel value is a prediction error signal corresponding to the decoding target block. This prediction error signal is sent to the adding unit 304, where a prediction signal (motion compensation inter-frame prediction signal or intra-frame prediction signal) corresponding to the decoding target block is added, and thereby a 4 × 4 pixel value corresponding to the decoding target block. Is decoded.

イントラ予測モードにおいては、モード切替スイッチ部311によってイントラ予測部310が選択され、これによってイントラ予測部310からのフレーム内予測信号が予測誤差信号に加算される。インター予測モードにおいては、モード切替スイッチ部311によって重み付き予測部309が選択され、これによって、動きベクトル予測部307、補間予測部308、および重み付き予測部309によって得られる動き補償フレーム間予測信号が予測誤差信号に加算される。   In the intra prediction mode, the intra prediction unit 310 is selected by the mode changeover switch unit 311, and thereby the intraframe prediction signal from the intra prediction unit 310 is added to the prediction error signal. In the inter prediction mode, the weighted prediction unit 309 is selected by the mode changeover switch unit 311, and thereby the motion compensation interframe prediction signal obtained by the motion vector prediction unit 307, the interpolation prediction unit 308, and the weighted prediction unit 309. Is added to the prediction error signal.

このように、デコード対象画面に対応する予測誤差信号に予測信号(動き補償フレーム間予測信号またはフレーム内予測信号)を加算してデコード対象画面をデコードする処理が所定のブロック単位で実行される。   As described above, the process of adding the prediction signal (motion-compensated inter-frame prediction signal or intra-frame prediction signal) to the prediction error signal corresponding to the decoding target screen and decoding the decoding target screen is executed in predetermined block units.

デコードされた各画面(ピクチャ)は、デブロッキングフィルタ部305によってデブロッキングフィルタ処理が施された後に、フレームメモリ306に格納される。このデブロッキングフィルタ部305は、例えば4x4画素のブロック単位で、デコードされた各画面に対してブロックノイズを低減するためのデブロッキングフィルタ処理を施す。このデブロッキングフィルタ処理は、ブロック歪みが参照画像に含まれてしまい、これによってブロック歪みが復号画像に伝搬してしまうことを防止する。デブロッキングフィルタ処理のための処理量は膨大であり、ソフトウェアデコーダの全処理量の50パーセントを占める場合もある。デブロッキングフィルタ処理は、ブロック歪みが生じやすい箇所に対してはより強いフィリタリングが施され、ブロック歪みが生じにくい箇所に対しては弱いフィリタリングが施されるように、適応的に実行される。デブロッキングフィルタ処理はループフィルタ処理によって実現されている。   Each decoded screen (picture) is subjected to deblocking filter processing by the deblocking filter unit 305 and then stored in the frame memory 306. The deblocking filter unit 305 performs a deblocking filter process for reducing block noise on each decoded screen, for example, in units of 4 × 4 pixel blocks. This deblocking filter processing prevents block distortion from being included in the reference image, and thereby block distortion propagates to the decoded image. The amount of processing for the deblocking filter processing is enormous and may occupy 50% of the total processing amount of the software decoder. The deblocking filter process is adaptively executed such that a stronger filtering is performed on a portion where block distortion is likely to occur, and a weak filtering is performed on a portion where block distortion is less likely to occur. The deblocking filter process is realized by a loop filter process.

そして、デブロッキングフィルタ処理された各画面は、フレームメモリ306から出力画像フレーム(または出力画像フィールド)として読み出される。また、動き補償フレーム間予測のための参照画像として使用されるべき各画面(参照画面)は、フレームメモリ306内に一定期間保持される。H.264/AVC規格の動き補償フレーム間予測符号化においては、複数の画面を参照画面として使用することができる。このため、フレームメモリ306は、複数画面分の画像を記憶するための複数個のフレームメモリ部を備えている。   Each screen subjected to the deblocking filter processing is read out from the frame memory 306 as an output image frame (or output image field). Each screen (reference screen) to be used as a reference image for motion compensation inter-frame prediction is held in the frame memory 306 for a certain period. H. In motion compensation interframe predictive coding according to the H.264 / AVC standard, a plurality of screens can be used as reference screens. For this reason, the frame memory 306 includes a plurality of frame memory units for storing images for a plurality of screens.

動きベクトル予測部307は、デコード対象ブロックに対応する動きベクトル差分情報に基づいて、動きベクトル情報を生成する。補間予測部308は、デコード対象ブロックに対応する動きベクトル情報に基づいて、参照画面内の、整数精度の画素群および1/4画素精度の予測補間画素群から、動き補償フレーム間予測信号を生成する。1/4画素精度の予測補間画素の生成においては、6タップフィルタ(入力6つ、出力1つ)が用いられる。このため、高周波成分まで考慮した高精度の予測補間処理を実行できるが、その分、動き補償には多くの処理量が必要となる。   The motion vector prediction unit 307 generates motion vector information based on the motion vector difference information corresponding to the decoding target block. The interpolation prediction unit 308 generates a motion compensation inter-frame prediction signal from the integer precision pixel group and the quarter pixel precision prediction interpolation pixel group in the reference screen based on the motion vector information corresponding to the decoding target block. To do. A 6-tap filter (six inputs, one output) is used in the generation of the prediction interpolation pixel with 1/4 pixel accuracy. For this reason, it is possible to execute highly accurate predictive interpolation processing considering even high frequency components. However, a large amount of processing is required for motion compensation.

重み付け予測部309は、動き補償フレーム間予測信号に対して重み係数を乗じる処理を動き補償ブロック単位で実行することにより、重み付けされた動き補償フレーム間予測信号を生成する。この重み付け予測は、デコード対象画面の明るさを予測する処理である。この重み付け予測処理により、フェード・イン、フェード・アウトのように、明るさが時間の経過と共に変化する画像の画質を向上することができる。しかし、その分、ソフトウェアデコードに必要な処理量は増大する。   The weighted prediction unit 309 generates a weighted motion compensation inter-frame prediction signal by executing a process of multiplying the motion compensation inter-frame prediction signal by a weighting coefficient for each motion compensation block. This weighted prediction is a process for predicting the brightness of the decoding target screen. This weighted prediction process can improve the image quality of an image whose brightness changes over time, such as fade-in and fade-out. However, the amount of processing required for software decoding increases accordingly.

イントラ予測部310は、デコード対象画面からその画面内に含まれるデコード対象ブロックのフレーム内予測信号を生成するものである。このイントラ予測部310は、上述のフレーム内予測情報に従って画面内予測処理を実行して、デコード対象ブロックと同一画面内に存在する、当該デコード対象ブロックに近接する既にデコードされた他のブロック内の画素値からフレーム内予測信号を生成する。このフレーム内予測(イントラ予測)は、ブロック間の画素相関を利用して圧縮率を高める技術である。このフレーム内予測においては、フレーム内予測情報に従って、垂直予測(予測モード0)、水平予測(予測モード1)、平均値予測(予測モード3)、平面予測(予測モード4)を含む4種類の予測モードの内の一つが、フレーム内予測ブロック(例えば16x16画素)単位で選択される。平面予測が選択される頻度は他のフレーム内予測モードよりも低いが、平面予測のために必要とされる処理量は、他のどのフレーム内予測モードの処理量よりも多い。   The intra prediction unit 310 generates an intra-frame prediction signal of a decoding target block included in the screen from the decoding target screen. The intra prediction unit 310 performs intra-screen prediction processing according to the intra-frame prediction information described above, and exists in the same screen as the decoding target block, in other already decoded blocks close to the decoding target block. An intra-frame prediction signal is generated from the pixel value. This intra-frame prediction (intra prediction) is a technique for increasing the compression rate using pixel correlation between blocks. In this intraframe prediction, four types including vertical prediction (prediction mode 0), horizontal prediction (prediction mode 1), average value prediction (prediction mode 3), and plane prediction (prediction mode 4) are determined according to the intraframe prediction information. One of the prediction modes is selected in units of intra-frame prediction blocks (for example, 16 × 16 pixels). The frequency with which plane prediction is selected is lower than in other intra-frame prediction modes, but the amount of processing required for plane prediction is greater than the processing amount in any other intra-frame prediction mode.

本実施形態においては、たとえコンピュータ10の負荷が増大しても時間制約内に動画像ストリームをリアルタイムにデコードできるようにするために、コンピュータ10の負荷に応じて、図4で説明したデコード処理(以下、通常デコード処理と称する)と、特殊デコード処理とを選択的に実行する。特殊デコード処理は、トップフィールドおよびボトムフィールドのいずれか一方のフィールドに対するデコード(図4のエントロピー復号よりも後の全ての処理)をスキップし、他方のフィールドのみをデコードするデコード処理である。   In the present embodiment, even if the load on the computer 10 increases, the decoding process (FIG. 4) described in FIG. Hereinafter, the normal decoding process) and the special decoding process are selectively executed. The special decoding process is a decoding process that skips decoding (all processes after entropy decoding in FIG. 4) for one of the top field and the bottom field and decodes only the other field.

以下、図5のフローチャートを参照して、ビデオ再生アプリケーションプログラム201によって実行されるデコード処理の手順を説明する。   Hereinafter, the procedure of the decoding process executed by the video playback application program 201 will be described with reference to the flowchart of FIG.

ビデオ再生アプリケーションプログラム201は、デコード処理の実行期間中、OSに対してコンピュータ10の現在の負荷を問い合わせることによってコンピュータ10の現在の負荷を検出する処理を定期的に繰り返し実行する(ステップS101)。このステップS101においては、ビデオ再生アプリケーションプログラム201は、CPU111の現在の使用率(プロセッサ使用率)と主メモリ113の現在の使用率(メモリ使用率)とをOSから取得する。   During the execution of the decoding process, the video playback application program 201 periodically and repeatedly executes a process for detecting the current load on the computer 10 by inquiring about the current load on the computer 10 from the OS (step S101). In this step S101, the video playback application program 201 acquires the current usage rate (processor usage rate) of the CPU 111 and the current usage rate (memory usage rate) of the main memory 113 from the OS.

そして、ビデオ再生アプリケーションプログラム201は、コンピュータ10の現在の負荷量が所定の基準値よりも大きいかどうかによって、コンピュータ10が高負荷状態であるかどうかを判別する(ステップS102)。ステップS102においては、例えば、ビデオ再生アプリケーションプログラム201は、現在のプロセッサ使用率が予め決められたプロセッサ基準使用率よりも大きいか否かを判別するとともに、現在のメモリ使用率が予め決められたメモリ基準使用率よりも大きいか否かを判別する。現在のプロセッサ使用率および現在のメモリ使用率のいずれか一方でもそれに対応する基準使用率よりも大きい場合には、ビデオ再生アプリケーションプログラム201は、コンピュータ10が高負荷状態であると判定する。現在のプロセッサ使用率および現在のメモリ使用率の双方がそれらに対応する基準使用率以下ならば、ビデオ再生アプリケーションプログラム201は、コンピュータ10が高負荷状態ではないと判定する。   Then, the video reproduction application program 201 determines whether or not the computer 10 is in a high load state depending on whether or not the current load amount of the computer 10 is larger than a predetermined reference value (step S102). In step S102, for example, the video playback application program 201 determines whether or not the current processor usage rate is larger than a predetermined processor reference usage rate, and the current memory usage rate is a predetermined memory. It is determined whether it is larger than the reference usage rate. If any one of the current processor usage rate and the current memory usage rate is larger than the corresponding reference usage rate, the video playback application program 201 determines that the computer 10 is in a high load state. If both the current processor usage rate and the current memory usage rate are equal to or lower than the corresponding reference usage rate, the video playback application program 201 determines that the computer 10 is not in a high load state.

コンピュータ10が高負荷状態ではないならば(ステップS102のNO)、ビデオ再生アプリケーションプログラム201は、CPU111に実行させるべきデコード処理として上述の通常デコード処理を選択し、これによって図4で説明した一連の処理をCPU111上で実行する(ステップS103)。   If the computer 10 is not in a high load state (NO in step S102), the video playback application program 201 selects the above-described normal decoding process as the decoding process to be executed by the CPU 111, and thereby the series of processes described in FIG. Processing is executed on the CPU 111 (step S103).

通常デコード処理においては、圧縮符号化された動画像ストリームに含まれる符号化画面(ピクチャ)群それぞれのデコードが順次実行される。コンピュータ10が高負荷状態にならない限り、つまりデコードパフォーマンスが低下しない限り、動画像ストリームは通常デコード処理によってデコードされる。   In the normal decoding process, decoding of each encoded screen (picture) group included in the compressed and encoded moving image stream is sequentially executed. Unless the computer 10 is in a high load state, that is, unless the decoding performance is deteriorated, the moving image stream is normally decoded by the decoding process.

一方、コンピュータ10が高負荷状態であるならば(ステップS102のYES)、ビデオ再生アプリケーションプログラム201は、CPU111に実行させるべきデコード処理として上述の特殊デコード処理を選択し、これによってトップフィールドおよびボトムフィールドのいずれか一方のフィールドに対するデコードを省略したデコード処理をCPU111上で実行する(ステップS104,S105)。この特殊デコード処理においては、ビデオ再生アプリケーションプログラム201は、動画像ストリームに含まれるシンタックス情報を解析して、デコード対象画面の構造を判別する(ステップS104)。シンタックス情報は動画像ストリームのシーケンス構造を示す情報である。上述の動きベクトル情報、フレーム内予測情報、およびモード情報等もシンタックス情報の一部である。   On the other hand, if the computer 10 is in a high load state (YES in step S102), the video playback application program 201 selects the above-described special decoding process as the decoding process to be executed by the CPU 111, thereby the top field and the bottom field. A decoding process in which decoding for any one of the fields is omitted is executed on the CPU 111 (steps S104 and S105). In this special decoding process, the video playback application program 201 analyzes the syntax information included in the moving image stream to determine the structure of the decoding target screen (step S104). The syntax information is information indicating the sequence structure of the moving image stream. The above-described motion vector information, intraframe prediction information, mode information, and the like are also part of the syntax information.

デコード対象画面の構造が、フィールド画像、またはフィールドモードのマクロブロック適用型フレーム/フィールド(MBAFF:Macroblock Adaptive Frame−Field)画像である場合、ビデオ再生アプリケーションプログラム201は、トップフィールドおよびボトムフィールドのいずれか一方のフィールドのデコードを省略し、他方のフィールドのデコードのみを実行する(ステップS105)。   When the structure of the screen to be decoded is a field image or a macroblock adaptive frame-field (MBAFF) image in the field mode, the video playback application program 201 is one of the top field and the bottom field. The decoding of one field is omitted, and only the decoding of the other field is executed (step S105).

MBAFF画像はMBAFF符号化によって符号化された画面である。MBAFF画像においては、1つの画面内に、フィールドモードで符号化されたマクロブロックペア(フィールドモードマクロブロックペア)とフレームモードモードで符号化されたマクロブロックペア(フレームモードマクロブロックペア)とを混在することができる。フィールドモードマクロブロックペアにおいては、一方のマクロブロックがトップフィールドに対応する画像から構成され、他方のマクロブロックがボトムフィールドに対応する画像から構成されている。つまり、フィールドモードマクロブロックペアにおいては、16画素x32ラインのフレーム画像領域内の16本の奇数ラインに対応する画像は一方のマクロブロックに集められており、また16画素x32ラインのフレーム画像領域内の16本の偶数ラインに対応する画像は他方のマクロブロックに集められている。ステップS105においては、各フィールドモードマクロブロックペアの中のトップフィールドおよびボトムフィールドのいずれか一方に対応するマクロブロックに対するデコード処理の実行がスキップされ、他方のマクロブロックに対するデコード処理のみが実行される。これにより、符号化画面がフィールド符号化された画像でない場合にも、トップフィールドおよびボトムフィールドのいずれか一方のフィールドのデコードを省略することができる。   The MBAFF image is a screen encoded by MBAFF encoding. In an MBAFF image, a macroblock pair encoded in the field mode (field mode macroblock pair) and a macroblock pair encoded in the frame mode mode (frame mode macroblock pair) are mixed in one screen. can do. In the field mode macroblock pair, one macroblock is composed of an image corresponding to the top field, and the other macroblock is composed of an image corresponding to the bottom field. In other words, in the field mode macroblock pair, images corresponding to 16 odd lines in the frame image area of 16 pixels × 32 lines are collected in one macroblock, and in the frame image area of 16 pixels × 32 lines. The images corresponding to the 16 even lines are collected in the other macroblock. In step S105, execution of the decoding process for the macroblock corresponding to one of the top field and the bottom field in each field mode macroblock pair is skipped, and only the decoding process for the other macroblock is executed. Thereby, even when the encoding screen is not a field-encoded image, decoding of one of the top field and the bottom field can be omitted.

このようにトップフィールドおよびボトムフィールドのいずれか一方のフィールドのデコード処理を省略することにより、ソフトウェアデコードに必要な処理量は大幅に低下する。よって、ソフトウェアデコードの実行中にたとえ他のプログラムが実行されてコンピュータ10が高負荷状態となっても、コマ落ちの発生や、オブジェクトの動きが極端に遅くなるなどの不具合を招くことなく、動画像データのデコードおよび再生をスムーズに継続して実行することができる。なお、特殊デコード処理によってデコードされた動画像をコンピュータ10の表示画面上に表示する場合には、デコードされたトップフィールドおよびボトムフィールドの一方から、例えば補間処理等によってフレーム画像を生成すればよい。   In this way, by omitting the decoding process of either the top field or the bottom field, the processing amount required for software decoding is greatly reduced. Therefore, even if another program is executed during software decoding and the computer 10 is in a heavy load state, the moving image does not cause a problem such as frame dropping or extremely slow movement of the object. The decoding and reproduction of the image data can be executed smoothly and continuously. When a moving image decoded by the special decoding process is displayed on the display screen of the computer 10, a frame image may be generated from one of the decoded top field and bottom field by, for example, an interpolation process.

動画像ストリーム全てのデコードが完了するまで、上述のステップS101〜S104の処理は繰り返し実行される(ステップS106)。他のプログラムの実行が終了されること等によってコンピュータ10の負荷が下がると、デコード処理は、特殊デコード処理から通常デコード処理に再び切り替えられる。   Until the decoding of all the moving image streams is completed, the processes in steps S101 to S104 described above are repeatedly executed (step S106). When the load on the computer 10 decreases due to termination of execution of other programs, the decoding process is switched again from the special decoding process to the normal decoding process.

H.264のシーケンスの構造は、図6のように複数のアクセスユニット(AU)から構成されている。各アクセスユニットは1つの画面に対応している。各アクセスユニットは複数のNAL(Network Abstraction Layer)ユニットから構成されている。各NALユニットは図7に示すようにヘッダ部とデータ部に分かれている。NALユニットは図11のように32種類あり、ヘッダ部を解析することによってその種類を判別することができる。図8は図6のAUの構造に具体的なNALユニットの種類を当てはめて示した図である。図8中の各ブロックはNALユニットを示している。   H. The structure of the H.264 sequence is composed of a plurality of access units (AU) as shown in FIG. Each access unit corresponds to one screen. Each access unit is composed of a plurality of NAL (Network Abstraction Layer) units. Each NAL unit is divided into a header part and a data part as shown in FIG. There are 32 types of NAL units as shown in FIG. 11, and the types can be discriminated by analyzing the header part. FIG. 8 is a diagram showing a specific NAL unit type applied to the AU structure of FIG. Each block in FIG. 8 represents a NAL unit.

H.264/AVCでは、符号化画面の構造は、図12に示すように、フィールド画像、フレーム画像、MBAFF(フレーム画像)の3通り存在する。本実施形態では、ビデオ再生アプリケーションプログラム201は、符号化画面の構造がフィールド画像、フレーム画像、MBAFF(フレーム画像)のいずれであるかを判別するために、図8に示されているSliceヘッダ中のfield_pic_flagと、図8に示されているシーケンスパラメタセットSPS中のmb_adaptive_frame_field_flagを参照する。また、ビデオ再生アプリケーションプログラム201は、各フィールド画像がトップフィールド画像およびボトムフィールド画像のどちらであるかを判別するために、図8に示されているSliceヘッダ中のbottom_field_flagを参照する。図13に示すように、bottom_field_flag=0はトップフィールド画像であることを示し、bottom_field_flag=1はボトムフィールド画像であることを示す。また、ビデオ再生アプリケーションプログラム201は、各マクロブロックペアがフィールドモードマクロブロックペアおよびフレームモードマクロブロックペアのどちらであるかを判別するために、図8に示されているSliceヘッダ中のmb_field_decoding_flagを参照する。図14に示すように、mb_field_decoding_flag=0はフレームモードマクロブロックペア(フレームMBペア)であることを示し、mb_field_decoding_flag=1はフィールドモードマクロブロックペア(フィールドMBペア)であることを示す。   H. In H.264 / AVC, as shown in FIG. 12, there are three types of coding screen structures: field images, frame images, and MBAFF (frame images). In the present embodiment, the video playback application program 201 determines whether the structure of the encoded screen is a field image, a frame image, or an MBAFF (frame image) in the Slice header shown in FIG. Field_pic_flag and mb_adaptive_frame_field_flag in the sequence parameter set SPS shown in FIG. 8 are referred to. The video playback application program 201 refers to the bottom_field_flag in the Slice header shown in FIG. 8 in order to determine whether each field image is a top field image or a bottom field image. As illustrated in FIG. 13, bottom_field_flag = 0 indicates a top field image, and bottom_field_flag = 1 indicates a bottom field image. Also, the video playback application program 201 refers to mb_field_decoding_flag in the Slice header shown in FIG. 8 in order to determine whether each macroblock pair is a field mode macroblock pair or a frame mode macroblock pair. To do. As shown in FIG. 14, mb_field_decoding_flag = 0 indicates a frame mode macroblock pair (frame MB pair), and mb_field_decoding_flag = 1 indicates a field mode macroblock pair (field MB pair).

次に、図9のフローチャートを参照して、特殊デコード処理の具体的な手順を説明する。   Next, a specific procedure of the special decoding process will be described with reference to the flowchart of FIG.

ビデオ再生アプリケーションプログラム201は、シンタックス情報を解析し(ステップS201)、その解析結果に応じてデコード処理を実行すべきか否かを判断する。具体的には、ビデオ再生アプリケーションプログラム201は、まず、field_pic_flagを参照して、デコード対象画面がフィールド画像およびフレーム画像のどちらであるかを判断する(ステップS202)。フィールド画像であれば(ステップS202のNO)、ビデオ再生アプリケーションプログラム201は、bottom_field_flagを参照して、デコード対象画面がトップフィールドおよびボトムフィールドのどちらであるかを判別する(ステップS203)。デコード対象画面がトップフィールドであるならば(ステップS203のYES)、ビデオ再生アプリケーションプログラム201は、デコード対象画面に対するデコード処理を実行する(ステップS204)。一方、デコード対象画面がボトムフィールドであるならば(ステップS203のNO)、ビデオ再生アプリケーションプログラム201は、ステップS204のデコード処理の実行をスキップする。   The video playback application program 201 analyzes the syntax information (step S201), and determines whether or not to execute the decoding process according to the analysis result. Specifically, the video playback application program 201 first refers to field_pic_flag to determine whether the decoding target screen is a field image or a frame image (step S202). If it is a field image (NO in step S202), the video playback application program 201 refers to bottom_field_flag to determine whether the decoding target screen is a top field or a bottom field (step S203). If the decoding target screen is the top field (YES in step S203), the video playback application program 201 executes a decoding process on the decoding target screen (step S204). On the other hand, if the decoding target screen is the bottom field (NO in step S203), the video playback application program 201 skips the decoding process in step S204.

デコード対象画面がフレーム画像である場合には(ステップS202のYES)、ビデオ再生アプリケーションプログラム201は、mb_adaptive_frame_field_flagを参照して、デコード対象画面がMBAFF画像であるか否かを判断する(ステップS205)。MBAFF画像ではない場合、つまりデコード対象画面が通常のフレーム画像であるならば(ステップS205のNO)、ビデオ再生アプリケーションプログラム201は、デコード対象画面に対するデコード処理を実行する(ステップS204)。   When the decoding target screen is a frame image (YES in step S202), the video playback application program 201 refers to mb_adaptive_frame_field_flag to determine whether or not the decoding target screen is an MBAFF image (step S205). If it is not an MBAFF image, that is, if the decoding target screen is a normal frame image (NO in step S205), the video playback application program 201 executes a decoding process on the decoding target screen (step S204).

一方、デコード対象画面がMBAFF画像であるならば(ステップS205のYES)、ビデオ再生アプリケーションプログラム201は、mb_field_decoding_flagを参照して、デコード対象マクロブロックを含むマクロブロックペアの構造がフィールドMBペアおよびフレームMBペアのいずれであるかを判断する(ステップS206)。フレームMBペアであるならば(ステップS206のNO)、ビデオ再生アプリケーションプログラム201は、デコード対象マクロブロックに対するデコード処理を実行する(ステップS204)。   On the other hand, if the decoding target screen is an MBAFF image (YES in step S205), the video playback application program 201 refers to mb_field_decoding_flag so that the structure of the macroblock pair including the decoding target macroblock is a field MB pair and a frame MB. It is determined which of the pair is present (step S206). If it is a frame MB pair (NO in step S206), the video playback application program 201 executes a decoding process on the decoding target macroblock (step S204).

フィールドMBペアであるならば(ステップS206のYES)、ビデオ再生アプリケーションプログラム201は、デコード対象マクロブロックがトップフィールドおよびボトムフィールドのどちらに対応するマクロブロックであるかを判断する(ステップS207)。MBAFFにおいては、マクロブロック番号は、図10に示すように画像の左上のマクロブロックから順に番号が割り当てられる。またフィールドMBペアの場合、トップ画像はMBペアのうち番号の小さい方のMBに集められ、ボトム画像は番号の大きい方のMBに集められる。つまりMB番号が偶数であれば、そのMBはトップフィールドに対応するMBであることがわかる。デコード対象のMBがトップフィールドに対応するMBであれば(ステップS207のYES)、ビデオ再生アプリケーションプログラム201は、そのデコード対象MBに対してデコード処理を実行する(ステップS204)。一方、デコード対象のMBがボトムフィールドに対応するMBであれば(ステップS207のNO)、ビデオ再生アプリケーションプログラム201は、そのデコード対象MBに対するステップS204のデコード処理の実行をスキップする。   If it is a field MB pair (YES in step S206), the video playback application program 201 determines whether the decoding target macroblock is a macroblock corresponding to the top field or the bottom field (step S207). In MBAFF, macroblock numbers are assigned in order from the macroblock at the upper left of the image as shown in FIG. In the case of a field MB pair, the top image is collected in the MB with the smaller number of the MB pairs, and the bottom image is collected in the MB with the larger number. That is, if the MB number is an even number, the MB is an MB corresponding to the top field. If the decoding target MB is an MB corresponding to the top field (YES in step S207), the video playback application program 201 executes a decoding process on the decoding target MB (step S204). On the other hand, if the decoding target MB is an MB corresponding to the bottom field (NO in step S207), the video playback application program 201 skips the execution of the decoding process in step S204 for the decoding target MB.

なお、本実施形態では、ボトムフィールドのデコードを省略したが、ボトムフィールドの代わりにトップフィールドのデコードをスキップしてもよい。   In the present embodiment, decoding of the bottom field is omitted, but decoding of the top field may be skipped instead of the bottom field.

また、上述のデコード制御処理は全てコンピュータプログラムによって実現されているので、このコンピュータプログラムをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータに導入するだけで、本実施形態と同様の効果を容易に実現することができる。   Further, since all the decoding control processes described above are realized by a computer program, the same effects as in the present embodiment can be easily realized simply by introducing the computer program into a normal computer through a computer-readable storage medium. be able to.

また、本実施形態のソフトウェアデコーダは、パーソナルコンピュータに限らず、PDA、携帯型電話機等にも適用することができる。   Further, the software decoder of the present embodiment can be applied not only to a personal computer but also to a PDA, a mobile phone, and the like.

また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。   Further, the present invention is not limited to the above-described embodiments as they are, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, you may combine a component suitably in different embodiment.

本発明の一実施形態に係るコンピュータの概観を示す斜視図。The perspective view showing the general view of the computer concerning one embodiment of the present invention. 図1のコンピュータのシステム構成を示すブロック図。The block diagram which shows the system configuration | structure of the computer of FIG. 図1のコンピュータで用いられるビデオ再生アプリケーションプログラムの機能構成を示すブロック図。The block diagram which shows the function structure of the video reproduction application program used with the computer of FIG. 図3のビデオ再生アプリケーションプログラムによって実現されるソフトウェアデコーダの構成を示すブロック図。The block diagram which shows the structure of the software decoder implement | achieved by the video reproduction application program of FIG. 図3のビデオ再生アプリケーションプログラムによって実行されるデコード処理の手順を示すフローチャート。FIG. 4 is a flowchart showing a procedure of decoding processing executed by the video playback application program of FIG. 3. FIG. 図3のビデオ再生アプリケーションプログラムによってデコードされる動画像ストリームの構造を示す図。The figure which shows the structure of the moving image stream decoded by the video reproduction application program of FIG. 図6の動画像ストリームのNALユニットの構造を示す図。The figure which shows the structure of the NAL unit of the moving image stream of FIG. 図6の動画像ストリームのアクセスユニットの構造を示す図。The figure which shows the structure of the access unit of the moving image stream of FIG. 図3のビデオ再生アプリケーションプログラムによって実行される特殊デコード処理の手順を示すフローチャート。4 is a flowchart showing a procedure of special decoding processing executed by the video playback application program of FIG. 3. 図3のビデオ再生アプリケーションプログラムによってデコードされるMBAFF画像を説明するための図。The figure for demonstrating the MBAFF image decoded by the video reproduction application program of FIG. 図6の動画像ストリームに含まれるNALユニットの種類を説明するための図。The figure for demonstrating the kind of NAL unit contained in the moving image stream of FIG. 図6の動画像ストリームに含まれる画面の種類を説明するための図。The figure for demonstrating the kind of screen contained in the moving image stream of FIG. 図6の動画像ストリームに含まれるフィールド画像の種類を説明するための図。The figure for demonstrating the kind of field image contained in the moving image stream of FIG. 図6の動画像ストリームに含まれるマクロブロックペアの種類を説明するための図。The figure for demonstrating the kind of macroblock pair contained in the moving image stream of FIG.

符号の説明Explanation of symbols

10…コンピュータ、111…CPU、113…メモリ、114…グラフィクスコントローラ、201…負荷検出モジュール、212…デコード制御モジュール、213…デコード実行モジュール、301…エントロピー復号部、302…逆量子化部、303…逆DCT部、304…加算部、305…デブロッキングフィルタ部、306…フレームメモリ、307…動きベクトル予測部、308…補間予測部、309…重み付き予測部、310…イントラ予測部、311…モード切替スイッチ部。   DESCRIPTION OF SYMBOLS 10 ... Computer, 111 ... CPU, 113 ... Memory, 114 ... Graphics controller, 201 ... Load detection module, 212 ... Decode control module, 213 ... Decode execution module, 301 ... Entropy decoding part, 302 ... Inverse quantization part, 303 ... Inverse DCT unit, 304 ... adding unit, 305 ... deblocking filter unit, 306 ... frame memory, 307 ... motion vector prediction unit, 308 ... interpolation prediction unit, 309 ... weighted prediction unit, 310 ... intra prediction unit, 311 ... mode Changeover switch part.

Claims (10)

圧縮符号化された動画像ストリームをデコードするためのデコード処理を実行する情報処理装置において、
前記情報処理装置の負荷を検出する負荷検出手段と、
前記負荷検出手段によって検出された負荷が所定の基準値よりも大きい場合、前記動画像ストリームに含まれるシンタックス情報に基づいて前記動画像ストリームに含まれる各符号化画面がフィールド画像およびフレーム画像のいずれであるか否かを判別する手段と、
前記動画像ストリームに含まれる各符号化画面がフィールド画像である場合、トップフィールドおよびボトムフィールドのいずれか一方に対する前記デコード処理の実行をスキップする制御手段とを具備することを特徴とする情報処理装置。
In an information processing apparatus that executes a decoding process for decoding a compression-encoded moving image stream,
Load detecting means for detecting a load of the information processing apparatus;
When the load detected by the load detection unit is larger than a predetermined reference value, each encoded screen included in the moving image stream is based on syntax information included in the moving image stream. Means for determining whether or not,
An information processing apparatus comprising: control means for skipping execution of the decoding process for one of a top field and a bottom field when each encoded screen included in the moving image stream is a field image; .
前記制御手段は、前記動画像ストリームに含まれる各符号化画面がフレーム画像である場合、前記シンタックス情報に基づいて、前記フレーム画像がマクロブロック適用型フレーム/フィールド画像であるか否かを判別する手段と、前記マクロブロック適用型フレーム/フィールド画像である場合、前記マクロブロック適用型フレーム/フィールド画像に含まれる各フィールドモードマクロブロックペアの中のトップフィールドおよびボトムフィールドのいずれか一方に対応するマクロブロックに対する前記デコード処理の実行をスキップする手段とを含むことを特徴とする請求項1記載の情報処理装置。   When each encoded screen included in the moving image stream is a frame image, the control unit determines whether the frame image is a macroblock application type frame / field image based on the syntax information. And a macroblock application type frame / field image corresponding to one of a top field and a bottom field in each field mode macroblock pair included in the macroblock application type frame / field image. The information processing apparatus according to claim 1, further comprising means for skipping execution of the decoding process for a macroblock. 前記負荷検出手段は、前記情報処理装置上で実行されるオペレーティングシステムに対して前記情報処理装置の負荷を問い合わせる手段を含むことを特徴とする請求項1記載の情報処理装置。   2. The information processing apparatus according to claim 1, wherein the load detecting means includes means for inquiring of an operating system executed on the information processing apparatus about a load of the information processing apparatus. 前記負荷検出手段は、前記情報処理装置に設けられたプロセッサの使用率に基づいて前記情報処理装置の負荷を検出する手段を含むことを特徴とする請求項1記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the load detection unit includes a unit that detects a load of the information processing apparatus based on a usage rate of a processor provided in the information processing apparatus. 前記負荷検出手段は、前記情報処理装置に設けられたプロセッサの使用率および前記情報処理装置に設けられたメモリの使用率に基づいて前記情報処理装置の負荷を検出する手段を含むことを特徴とする請求項1記載の情報処理装置。   The load detecting means includes means for detecting a load on the information processing device based on a usage rate of a processor provided in the information processing device and a usage rate of a memory provided in the information processing device. The information processing apparatus according to claim 1. 圧縮符号化された動画像ストリームをデコードするためのデコード処理をコンピュータに実行させるプログラムであって、
前記コンピュータの負荷を検出する処理を前記コンピュータに実行させる手順と、
前記検出された負荷が所定の基準値よりも大きい場合、前記動画像ストリームに含まれるシンタックス情報に基づいて前記動画像ストリームに含まれる各符号化画面がフィールド画像およびフレーム画像のいずれであるか否かを判別する処理を前記コンピュータに実行させる手順と、
前記動画像ストリームに含まれる各符号化画面がフィールド画像である場合、トップフィールドおよびボトムフィールドのいずれか一方に対する前記デコード処理の実行をスキップする制御処理を前記コンピュータに実行させる手順とを具備することを特徴とするプログラム。
A program for causing a computer to execute a decoding process for decoding a compression-coded moving image stream,
A procedure for causing the computer to execute a process of detecting a load on the computer;
If the detected load is larger than a predetermined reference value, whether each encoded screen included in the moving image stream is a field image or a frame image based on syntax information included in the moving image stream A procedure for causing the computer to execute a process of determining whether or not;
And a procedure for causing the computer to execute a control process for skipping the execution of the decoding process for one of a top field and a bottom field when each encoded screen included in the moving image stream is a field image. A program characterized by
前記制御処理は、前記動画像ストリームに含まれる各符号化画面がフレーム画像である場合、前記シンタックス情報に基づいて、前記フレーム画像がマクロブロック適用型フレーム/フィールド画像であるか否かを判別する処理と、前記マクロブロック適用型フレーム/フィールド画像である場合、前記マクロブロック適用型フレーム/フィールド画像に含まれる各フィールドモードマクロブロックペアの中のトップフィールドおよびボトムフィールドのいずれか一方に対応するマクロブロックに対する前記デコード処理の実行をスキップする処理とを含むことを特徴とする請求項6記載のプログラム。   The control processing determines whether or not the frame image is a macroblock application type frame / field image based on the syntax information when each encoded screen included in the moving image stream is a frame image. If the frame / field image is a macroblock application type frame / field image, it corresponds to either the top field or the bottom field in each field mode macroblock pair included in the macroblock application type frame / field image. The program according to claim 6, further comprising a process of skipping execution of the decoding process for a macroblock. 前記コンピュータの負荷を検出する処理を前記コンピュータに実行させる手順は、前記コンピュータ上で実行されるオペレーティングシステムに対して前記コンピュータの負荷を問い合わせる処理を、前記コンピュータに実行させる手順を含むことを特徴とする請求項6記載のプログラム。   The step of causing the computer to execute the process of detecting the load of the computer includes the step of causing the computer to execute a process of inquiring the operating system executed on the computer about the load of the computer. The program according to claim 6. 前記コンピュータの負荷を検出する処理を前記コンピュータに実行させる手順は、前記コンピュータに設けられたプロセッサの使用率に基づいて前記コンピュータの負荷を検出する処理を、前記コンピュータに実行させる手順を含むことを特徴とする請求項6記載のプログラム。   The procedure for causing the computer to execute a process for detecting the load on the computer includes a procedure for causing the computer to execute a process for detecting the load on the computer based on a usage rate of a processor provided in the computer. The program according to claim 6, wherein: 前記コンピュータの負荷を検出する処理を前記コンピュータに実行させる手順は、前記コンピュータに設けられたプロセッサの使用率および前記コンピュータに設けられたメモリの使用率に基づいて前記コンピュータの負荷を検出する処理を、前記コンピュータに実行させる手順を含むことを特徴とする請求項6記載のプログラム。   The procedure for causing the computer to execute a process for detecting the load on the computer includes a process for detecting the load on the computer based on a usage rate of a processor provided in the computer and a usage rate of a memory provided in the computer. The program according to claim 6, further comprising a procedure to be executed by the computer.
JP2004286543A 2004-09-30 2004-09-30 Information processing apparatus and program used for the processing apparatus Pending JP2006101323A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004286543A JP2006101323A (en) 2004-09-30 2004-09-30 Information processing apparatus and program used for the processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004286543A JP2006101323A (en) 2004-09-30 2004-09-30 Information processing apparatus and program used for the processing apparatus

Publications (1)

Publication Number Publication Date
JP2006101323A true JP2006101323A (en) 2006-04-13

Family

ID=36240694

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004286543A Pending JP2006101323A (en) 2004-09-30 2004-09-30 Information processing apparatus and program used for the processing apparatus

Country Status (1)

Country Link
JP (1) JP2006101323A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007288559A (en) * 2006-04-18 2007-11-01 Matsushita Electric Ind Co Ltd Reproduction method and reproduction apparatus
JP2010213349A (en) * 2009-01-19 2010-09-24 Panasonic Corp Decoding method and decoding apparatus
US8731065B2 (en) 2008-01-24 2014-05-20 Nec Corporation Dynamic image stream processing method and device, and dynamic image reproduction device and dynamic image distribution device using the same
US9319695B2 (en) 2010-04-28 2016-04-19 Fujitsu Limited Moving image output apparatus and method

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007288559A (en) * 2006-04-18 2007-11-01 Matsushita Electric Ind Co Ltd Reproduction method and reproduction apparatus
US8731065B2 (en) 2008-01-24 2014-05-20 Nec Corporation Dynamic image stream processing method and device, and dynamic image reproduction device and dynamic image distribution device using the same
JP2010213349A (en) * 2009-01-19 2010-09-24 Panasonic Corp Decoding method and decoding apparatus
JP4647034B2 (en) * 2009-01-19 2011-03-09 パナソニック株式会社 Decoding method and decoding apparatus
US8451890B2 (en) 2009-01-19 2013-05-28 Panasonic Corporation Coding method, decoding method, coding apparatus, decoding apparatus, program, and integrated circuit
US8548040B2 (en) 2009-01-19 2013-10-01 Panasonic Corporation Coding method, decoding method, coding apparatus, decoding apparatus, program, and integrated circuit
US8553761B2 (en) 2009-01-19 2013-10-08 Panasonic Corporation Coding method, decoding method, coding apparatus, decoding apparatus, program, and integrated circuit
US9319695B2 (en) 2010-04-28 2016-04-19 Fujitsu Limited Moving image output apparatus and method

Similar Documents

Publication Publication Date Title
JP4643453B2 (en) Information processing apparatus and moving picture decoding method for information processing apparatus
US8040951B2 (en) Information processing apparatus and program for use in the same
JP2006254230A (en) Information processing apparatus and program
US20070140355A1 (en) Information processing apparatus, control method, and program
JP4825524B2 (en) Moving picture decoding apparatus and moving picture decoding method
JP2008072647A (en) Information processor, decoder, and operational control method of reproducing device
JP2009038501A (en) Decoding device and decoding method
US20060203909A1 (en) Information processing apparatus and decoding method
US20060203910A1 (en) Information processing apparatus and decoding method
JP2006254232A (en) Information processing apparatus and program
US8611433B2 (en) Information processing apparatus and video decoding method of information processing apparatus
JP2006101322A (en) Information processing apparatus and program used for the processing apparatus
JP2006101321A (en) Information processing apparatus and program used for the processing apparatus
JP2006101405A (en) Information processing apparatus and program used for the processing apparatus
JP2006101406A (en) Information processing apparatus and program used for the processing apparatus
JP2007318615A (en) Moving image reproducing device, moving image reproduction method and program
JP5066232B2 (en) Information processing apparatus and image processing method
JP2006101323A (en) Information processing apparatus and program used for the processing apparatus
JP4282582B2 (en) Information processing apparatus and program used in the same apparatus
US20100316130A1 (en) Video decoder
JP2006101404A (en) Information processing apparatus and program used for the processing apparatus
JP2009182891A (en) Information processor and program
JP2006101402A (en) Information processing apparatus and program used for the processing apparatus
JP2008085868A (en) Information processor and information processing method
JP2010028436A (en) Dynamic image decoding apparatus, program, and simplified decoding method