[go: up one dir, main page]

JP2006319944A - Decoding control device and method, recording medium, and program - Google Patents

Decoding control device and method, recording medium, and program Download PDF

Info

Publication number
JP2006319944A
JP2006319944A JP2005241993A JP2005241993A JP2006319944A JP 2006319944 A JP2006319944 A JP 2006319944A JP 2005241993 A JP2005241993 A JP 2005241993A JP 2005241993 A JP2005241993 A JP 2005241993A JP 2006319944 A JP2006319944 A JP 2006319944A
Authority
JP
Japan
Prior art keywords
decoding
unit
picture
slice
control unit
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
JP2005241993A
Other languages
Japanese (ja)
Inventor
Miyoko Shibata
三代子 柴田
Shiho So
志芳 曾
Junichi Ogikubo
純一 荻窪
Taro Shigata
太郎 志潟
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2005241993A priority Critical patent/JP2006319944A/en
Publication of JP2006319944A publication Critical patent/JP2006319944A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Television Signal Processing For Recording (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To enable to more rapidly decode a video image stream. <P>SOLUTION: A decoding region setting section 563 sets divided decoding regions to be decoded by each of decoders 565 by dividing the slices in a picture in order from the top for each of the number of divided slices obtained by dividing the number of slices in a picture of a video image stream by the number of decoders 565. A decoding control section 564 controls each of the decoders 565 so as to execute variable length decoding and dequantization of slices in the divided decoding region assigned to each of the decoders 565 in parallel to the other decoders 565, and controls a decoding section 601 so as to execute inverse discrete cosine transform in parallel to decoding by each of the decoders 565. This device is applicable to a video reproducing device for reproducing a video image stream. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、復号制御装置および方法、記録媒体、並びに、プログラムに関し、特に、映像ストリームの復号の高速化を実現するようにした復号制御装置および方法、記録媒体、並びに、プログラムに関する。   The present invention relates to a decoding control apparatus and method, a recording medium, and a program, and more particularly, to a decoding control apparatus and method, a recording medium, and a program that realize high-speed decoding of a video stream.

従来、映像ストリームのデコードを迅速に開始するために、エンコード時に、ユーザにより指定されたフレームの記録位置をインデックスデータとして記録し、デコード時に、インデックスデータを用いてデコードを開始する位置を検出することが提案されている(例えば、特許文献1参照)。   Conventionally, in order to quickly start decoding a video stream, the recording position of a frame specified by the user is recorded as index data at the time of encoding, and the position to start decoding is detected using the index data at the time of decoding. Has been proposed (see, for example, Patent Document 1).

また、映像ストリームのデコードを高速化するために、デコード処理を複数のスレッドに分割して、複数のプロセッサで並列してデコードすることが考えられる。例えば、MPEG(Moving Picture Experts Group)2方式によりエンコードされた映像ストリームの場合、ピクチャ内のスライスを1単位として、デコード処理が分割される。具体的には、4つのプロセッサによりデコード処理を分割して行う場合、図1の左側に示されるように、1つのピクチャ内に16のスライスが含まれるとき、ピクチャ内のいちばん上のスライスから順番に1つずつ各プロセッサが並列してデコードする。すなわち、各プロセッサは、図1の右側に示される、スライス1−1乃至1−4、スライス2−1乃至2−4、スライス3−1乃至3−4、および、スライス4−1乃至4−4の4組のうちいずれかの組のスライスをデコードする。   In order to speed up the decoding of the video stream, it is conceivable to divide the decoding process into a plurality of threads and perform the decoding in parallel with a plurality of processors. For example, in the case of a video stream encoded by the MPEG (Moving Picture Experts Group) 2 method, the decoding process is divided with a slice in a picture as one unit. Specifically, when the decoding process is divided by four processors, as shown on the left side of FIG. 1, when 16 slices are included in one picture, the top slice in the picture is ordered. Each processor decodes one by one in parallel. That is, each processor has slices 1-1 to 1-4, slices 2-1 to 2-4, slices 3-1 to 3-4, and slices 4-1 to 4- shown on the right side of FIG. 4. Decode any of the four sets of four slices.

特開平11−341437号公報JP 11-341437 A

しかしながら、図1に示されるように処理を分割した場合、各プロセッサは1つのスライスをデコードする毎に、次にデコードするスライスの位置を検出する必要があり、各プロセッサのデコード位置の検出処理に要する時間が増大する。さらに、特許文献1に記載した発明を適用したとしても、スライスの位置の検出時間は短縮されないため、各プロセッサのデコード位置の検出処理に要する時間はほとんど短縮されない。   However, when the processing is divided as shown in FIG. 1, each processor needs to detect the position of the slice to be decoded each time one slice is decoded. The time required increases. Furthermore, even when the invention described in Patent Document 1 is applied, the time required for detecting the decoding position of each processor is hardly reduced because the time for detecting the slice position is not shortened.

本発明は、このような状況に鑑みてなされたものであり、より高速に映像ストリームを復号することができるようにするものである。   The present invention has been made in view of such a situation, and makes it possible to decode a video stream at a higher speed.

本発明のプログラムは、映像ストリームのピクチャに対応する領域を第1の復号手段の数に応じて分割した分割領域であって、前記映像ストリームを復号する前記第1の復号手段および第2の復号手段の処理単位である複数の単位領域を含む分割領域を設定する設定ステップと、前記第1の復号手段にそれぞれ割り当てた前記分割領域内の前記単位領域の所定の途中の段階までの復号を他の前記第1の復号手段と並行して実行するように前記第1の復号手段を制御する前半復号制御ステップと、前記第1の復号手段による復号と並行して前記途中の段階まで復号された前記単位領域の残りの段階の復号を実行するように前記第2の復号手段を制御する後半復号制御ステップとを含む処理をコンピュータに実行させる。   The program according to the present invention is a divided area obtained by dividing an area corresponding to a picture of a video stream according to the number of first decoding means, and the first decoding means and the second decoding for decoding the video stream. A setting step for setting a divided area including a plurality of unit areas which are processing units of the means, and decoding up to a predetermined middle stage of the unit area in the divided area respectively assigned to the first decoding means The first half decoding control step for controlling the first decoding means to be executed in parallel with the first decoding means, and decoding to the middle stage in parallel with the decoding by the first decoding means A computer is caused to execute processing including a second half decoding control step of controlling the second decoding means so as to execute decoding of the remaining stages of the unit area.

前記映像ストリームはMPEG(Moving Picture Experts Group)方式により符号化された映像ストリームであるようにすることができる。   The video stream may be a video stream encoded by a moving picture experts group (MPEG) method.

前記前半復号制御ステップにおいては、前記スライスの可変長復号および逆量子化を含む復号を行うように前記第1の復号手段が制御され、前記後半復号制御ステップにおいては、前記スライスの逆離散コサイン変換を含む復号を行うように前記第2の復号手段が制御されるようにすることができる。   In the first half decoding control step, the first decoding means is controlled to perform decoding including variable length decoding and inverse quantization of the slice, and in the second half decoding control step, the inverse discrete cosine transform of the slice is performed. The second decoding means can be controlled to perform decoding including

前記単位領域はスライスであるようにすることができる。   The unit area may be a slice.

前記第1の復号手段と前記第2の復号手段とは異なるハードウェアにより実現されるようにすることができる。   The first decoding unit and the second decoding unit may be realized by different hardware.

前記第2の復号手段は、GPU(Graphics Processing Unit)により実現されるようにすることができる。   The second decoding means can be realized by a GPU (Graphics Processing Unit).

前記後半復号制御ステップにおいては、どの段階まで前記単位領域の復号が終了しているかを示す情報が前記第2の復号手段に供給される。   In the latter half decoding control step, information indicating how far the unit area has been decoded is supplied to the second decoding means.

本発明の記録媒体は、本発明のプログラムが記録されている。   The recording medium of the present invention records the program of the present invention.

本発明の復号制御方法は、映像ストリームのピクチャに対応する領域を第1の復号手段の数に応じて分割した分割領域であって、前記映像ストリームを復号する前記第1の復号手段および第2の復号手段の処理単位である複数の単位領域を含む分割領域を設定する設定ステップと、前記第1の復号手段にそれぞれ割り当てた前記分割領域内の前記単位領域の所定の途中の段階までの復号を他の前記第1の復号手段と並行して実行するように前記第1の復号手段を制御する前半復号制御ステップと、前記第1の復号手段による復号と並行して前記途中の段階まで復号された前記単位領域の残りの段階の復号を実行するように前記第2の復号手段を制御する後半復号制御ステップとを含む。   The decoding control method of the present invention is a divided area obtained by dividing an area corresponding to a picture of a video stream according to the number of first decoding means, wherein the first decoding means and the second decoding means for decoding the video stream A setting step of setting a divided area including a plurality of unit areas which are processing units of the decoding means, and decoding up to a predetermined middle stage of the unit area in the divided area respectively assigned to the first decoding means The first half decoding control step for controlling the first decoding means so as to be executed in parallel with the other first decoding means, and decoding up to the intermediate stage in parallel with the decoding by the first decoding means And a second half decoding control step of controlling the second decoding means so as to execute the decoding of the remaining stage of the unit area.

本発明の復号制御装置は、映像ストリームのピクチャに対応する領域を第1の復号手段の数に応じて分割した分割領域であって、前記映像ストリームを復号する前記第1の復号手段および第2の復号手段の処理単位である複数の単位領域を含む分割領域を設定する設定手段と、前記第1の復号手段にそれぞれ割り当てた前記分割領域内の前記単位領域の所定の途中の段階までの復号を他の前記第1の復号手段と並行して実行するように前記第1の復号手段を制御し、前記第1の復号手段による復号と並行して前記途中の段階まで復号された前記単位領域の残りの段階の復号を実行するように前記第2の復号手段を制御する復号制御手段とを含む。   The decoding control apparatus of the present invention is a divided area obtained by dividing an area corresponding to a picture of a video stream according to the number of first decoding means, wherein the first decoding means and the second decoding means for decoding the video stream Setting means for setting a divided area including a plurality of unit areas which are processing units of the decoding means, and decoding up to a predetermined intermediate stage of the unit area in the divided area respectively assigned to the first decoding means The unit region is controlled to be executed in parallel with the other first decoding means, and is decoded to the intermediate stage in parallel with the decoding by the first decoding means. Decoding control means for controlling the second decoding means so as to execute the remaining stages of decoding.

本発明のプログラム、記録媒体に記録されているプログラム、復号制御方法、および、復号制御装置においては、映像ストリームのピクチャに対応する領域を第1の復号手段の数に応じて分割した分割領域であって、前記映像ストリームを復号する前記第1の復号手段および第2の復号手段の処理単位である複数の単位領域を含む分割領域が設定され、前記第1の復号手段にそれぞれ割り当てた前記分割領域内の前記単位領域の所定の途中の段階までの復号を他の前記第1の復号手段と並行して実行するように前記第1の復号手段が制御され、前記第1の復号手段による復号と並行して前記途中の段階まで復号された前記単位領域の残りの段階の復号を実行するように前記第2の復号手段が制御される。   In the program of the present invention, the program recorded on the recording medium, the decoding control method, and the decoding control apparatus, the area corresponding to the picture of the video stream is divided into areas divided according to the number of first decoding means. The divided areas including a plurality of unit areas, which are processing units of the first decoding means and the second decoding means for decoding the video stream, are set and assigned to the first decoding means, respectively. The first decoding unit is controlled so that decoding up to a predetermined intermediate stage of the unit area in the area is performed in parallel with the other first decoding unit, and decoding by the first decoding unit is performed. The second decoding means is controlled so as to execute the decoding of the remaining stage of the unit area decoded up to the middle stage in parallel.

本発明によれば、より高速に映像ストリームを復号することができる。   According to the present invention, a video stream can be decoded at a higher speed.

以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。   Embodiments of the present invention will be described below. Correspondences between constituent elements described in the claims and specific examples in the embodiments of the present invention are exemplified as follows. This description is to confirm that specific examples supporting the invention described in the claims are described in the embodiments of the invention. Therefore, even though there are specific examples that are described in the embodiment of the invention but are not described here as corresponding to the configuration requirements, the specific examples are not included in the configuration. It does not mean that it does not correspond to a requirement. On the contrary, even if a specific example is described here as corresponding to a configuration requirement, this means that the specific example does not correspond to a configuration requirement other than the configuration requirement. not.

さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。   Further, this description does not mean that all the inventions corresponding to the specific examples described in the embodiments of the invention are described in the claims. In other words, this description is an invention corresponding to the specific example described in the embodiment of the invention, and the existence of an invention not described in the claims of this application, that is, in the future, a divisional application will be made. Nor does it deny the existence of an invention added by amendment.

請求項1に記載のプログラムは、映像ストリームのピクチャに対応する領域を第1の復号手段(例えば、図28のデコーダ565−1乃至565−4)の数に応じて分割した分割領域(例えば、分割デコード領域)であって、前記映像ストリームを復号する前記第1の復号手段および第2の復号手段(例えば、図29のデコード部601)の処理単位である複数の単位領域(例えば、スライス)を含む分割領域を設定する設定ステップ(例えば、図31のステップS462)と、前記第1の復号手段にそれぞれ割り当てた前記分割領域内の前記単位領域の所定の途中の段階までの復号を他の前記第1の復号手段と並行して実行するように前記第1の復号手段を制御する前半復号制御ステップ(例えば、図31のステップS464)と、前記第1の復号手段による復号と並行して前記途中の段階まで復号された前記単位領域の残りの段階の復号を実行するように前記第2の復号手段を制御する後半復号制御ステップ(例えば、図31のステップS509またはS511)とを含む処理をコンピュータに実行させる。   The program according to claim 1, a divided region (for example, a divided region) obtained by dividing a region corresponding to a picture of a video stream according to the number of first decoding means (for example, decoders 565-1 to 565-4 in FIG. 28). A plurality of unit regions (for example, slices) that are processing units of the first decoding unit and the second decoding unit (for example, the decoding unit 601 in FIG. 29) that decode the video stream. A setting step (for example, step S462 in FIG. 31) for setting a divided region including the decoding region, and decoding up to a predetermined middle stage of the unit region in the divided region respectively assigned to the first decoding means. A first half decoding control step (for example, step S464 in FIG. 31) for controlling the first decoding means to be executed in parallel with the first decoding means; In the second half decoding control step of controlling the second decoding means to execute the decoding of the remaining stage of the unit area decoded up to the intermediate stage in parallel with the decoding by the decoding means (for example, FIG. Causing the computer to execute processing including step S509 or S511).

請求項6に記載のプログラムにおいては、前記第2の復号手段は、GPU(Graphics Processing Unit)(例えば、図27のGPU521)により実現されるようにすることができる。   In the program according to the sixth aspect, the second decoding means can be realized by a GPU (Graphics Processing Unit) (for example, the GPU 521 in FIG. 27).

請求項9に記載の復号制御方法は、映像ストリームのピクチャに対応する領域を第1の復号手段(例えば、図28のデコーダ565−1乃至565−4)の数に応じて分割した分割領域(例えば、分割デコード領域)であって、前記映像ストリームを復号する前記第1の復号手段および第2の復号手段(例えば、図29のデコード部601)の処理単位である複数の単位領域(例えば、スライス)を含む分割領域を設定する設定ステップ(例えば、図31のステップS462)と、前記第1の復号手段にそれぞれ割り当てた前記分割領域内の前記単位領域の所定の途中の段階までの復号を他の前記第1の復号手段と並行して実行するように前記第1の復号手段を制御する前半復号制御ステップ(例えば、図31のステップS464)と、前記第1の復号手段による復号と並行して前記途中の段階まで復号された前記単位領域の残りの段階の復号を実行するように前記第2の復号手段を制御する後半復号制御ステップ(例えば、図31のステップS509またはS511)とを含む。   The decoding control method according to claim 9, wherein a region corresponding to a picture of a video stream is divided according to the number of first decoding means (for example, decoders 565-1 to 565-4 in FIG. 28) ( For example, a plurality of unit regions (for example, divided decoding regions), which are processing units of the first decoding unit and the second decoding unit (for example, the decoding unit 601 in FIG. 29) that decode the video stream. A setting step (for example, step S462 in FIG. 31) for setting a divided region including a slice), and decoding up to a predetermined intermediate stage of the unit region in the divided region respectively assigned to the first decoding means A first half decoding control step (for example, step S464 in FIG. 31) for controlling the first decoding means to be executed in parallel with the other first decoding means; In the second half decoding control step (for example, FIG. 31), the second decoding means is controlled so as to execute decoding of the remaining stages of the unit area decoded up to the intermediate stage in parallel with decoding by the first decoding means. Step S509 or S511).

請求項10の復号制御装置(例えば、図28のデコード部551)は、映像ストリームのピクチャに対応する領域を第1の復号手段(例えば、図28のデコーダ565−1乃至565−4)の数に応じて分割した分割領域(例えば、分割デコード領域)であって、前記映像ストリームを復号する前記第1の復号手段および第2の復号手段(例えば、図29のデコード部601)の処理単位である複数の単位領域(例えば、スライス)を含む分割領域を設定する設定手段(例えば、図28のデコード領域設定部563)と、前記第1の復号手段による復号と並行して前記途中の段階まで復号された前記単位領域の残りの段階の復号を実行するように前記第2の復号手段を制御する復号制御手段(例えば、図28のデコード制御部564)とを含む。   The decoding control device according to claim 10 (for example, the decoding unit 551 in FIG. 28) sets the area corresponding to the picture of the video stream to the number of first decoding means (for example, the decoders 565-1 to 565-4 in FIG. 28). Divided into regions (for example, divided decoding regions), and each processing unit of the first decoding unit and the second decoding unit (for example, the decoding unit 601 in FIG. 29) that decodes the video stream. Setting means (for example, the decoding area setting unit 563 in FIG. 28) for setting a divided area including a plurality of unit areas (for example, slices) and the intermediate stage in parallel with the decoding by the first decoding means Decoding control means (for example, the decoding control unit 564 in FIG. 28) for controlling the second decoding means so as to execute decoding of the remaining stage of the decoded unit area. .

以下、図を参照して、本発明の実施の形態について説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

図2は、本発明を適用したAV(Audio/Visual)処理システム101の一実施の形態を示す図である。AV処理システム101は、AV(Audio/Visual)処理装置111、ドライブ112、外部映像記録再生装置113−1乃至113−n、マウス114、および、キーボード115を含むように構成される。   FIG. 2 is a diagram showing an embodiment of an AV (Audio / Visual) processing system 101 to which the present invention is applied. The AV processing system 101 is configured to include an AV (Audio / Visual) processing device 111, a drive 112, external video recording / playback devices 113-1 to 113-n, a mouse 114, and a keyboard 115.

AV処理装置111は、映像ストリーム、音声ストリーム、映像ストリームおよび音声ストリームが多重化されたAV(Audio/Visual)ストリーム、静止画像データなどのAV(Audio/Visual)データの再生、記録、表示、出力、デコード、エンコードなどの処理を行う。   The AV processing device 111 reproduces, records, displays, and outputs AV (Audio / Visual) data such as a video stream, an audio stream, an AV (Audio / Visual) stream in which the video stream and the audio stream are multiplexed, and still image data. Processes such as decoding and encoding.

ドライブ112は、AV処理装置111のインタフェース129−3に接続される。ドライブ112は、光ディスク、光磁気ディスク、あるいは半導体メモリなどよりなるリムーバブルメディア116が適宜接続され、リムーバブルメディア116から読み出した各種のデータをAV処理装置111に入力したり、AV処理装置111から出力される各種のデータをリムーバブルメディア116に記録させる。また、ドライブ112は、光ディスク、光磁気ディスク、あるいは半導体メモリなどよりなるリムーバブルメディア117が適宜接続され、そこから読み出されプログラムが、HDD124にインストールされる。   The drive 112 is connected to the interface 129-3 of the AV processing device 111. The drive 112 is connected to a removable medium 116 such as an optical disk, a magneto-optical disk, or a semiconductor memory as appropriate. Various data read from the removable medium 116 are input to the AV processing device 111 or output from the AV processing device 111. Various kinds of data are recorded on the removable medium 116. In addition, the drive 112 is appropriately connected to a removable medium 117 including an optical disk, a magneto-optical disk, or a semiconductor memory, and the program read from the removable medium 117 is installed in the HDD 124.

外部映像記録再生装置113−1乃至113−nは、AV処理装置111のインタフェース129−2に接続される。外部映像記録再生装置113−1乃至113−nは、AVストリーム、映像ストリーム、音声ストリーム、静止画像データなどのAVデータを再生し、再生したストリームをAV処理装置111に入力する。また、外部映像記録再生装置113−1乃至113−nは、AV処理装置111から出力されるAVストリーム、映像ストリーム、音声ストリーム、静止画像データなどのAVデータを記録する。   The external video recording / reproducing devices 113-1 to 113-n are connected to the interface 129-2 of the AV processing device 111. The external video recording / playback devices 113-1 to 113-n play back AV data such as an AV stream, a video stream, an audio stream, and still image data, and input the played back stream to the AV processing device 111. The external video recording / playback devices 113-1 to 113-n record AV data such as an AV stream, a video stream, an audio stream, and still image data output from the AV processing device 111.

また、外部映像記録再生装置113−1乃至113−nは、AV処理装置111の映像特殊効果音声ミキシング処理部126に接続される。外部映像記録再生装置113−1乃至113−nは、AVストリーム、映像ストリーム、音声ストリーム、静止画像データなどのAVデータを映像特殊効果音声ミキシング処理部126に入力し、各種の特殊効果またはミキシングが施されたAVデータを映像特殊効果音声ミキシング処理部126から取得する。   The external video recording / reproducing devices 113-1 to 113-n are connected to the video special effect audio mixing processing unit 126 of the AV processing device 111. The external video recording / playback apparatuses 113-1 to 113-n input AV data such as an AV stream, a video stream, an audio stream, and still image data to the video special effect audio mixing processing unit 126, and perform various special effects or mixing. The applied AV data is acquired from the video special effect audio mixing processing unit 126.

なお、以下、外部映像記録再生装置113−1乃至113−nを個々に区別する必要がない場合、単に外部映像記録再生装置113と称する。   Hereinafter, the external video recording / reproducing devices 113-1 to 113-n are simply referred to as the external video recording / reproducing device 113 when it is not necessary to individually distinguish them.

マウス114およびキーボード115は、AV処理装置111のインタフェース129−1に接続される。   The mouse 114 and the keyboard 115 are connected to the interface 129-1 of the AV processing device 111.

AV処理装置111は、CPU(Central Processing Unit)121、ROM(Read Only Memory)122、RAM(Random Access Memory)123、ハードディスク(HDD)124、信号処理部125、映像特殊効果音声ミキシング処理部126、ディスプレイ127、スピーカ128、および、インタフェース(I/F)129−1乃至129−3を含むように構成される。CPU121、ROM122、RAM123、HDD124、信号処理部125、映像特殊効果音声ミキシング処理部126、および、インタフェース129−1乃至129−3は、バス130を介して相互に接続される。   The AV processing device 111 includes a CPU (Central Processing Unit) 121, a ROM (Read Only Memory) 122, a RAM (Random Access Memory) 123, a hard disk (HDD) 124, a signal processing unit 125, a video special effect audio mixing processing unit 126, A display 127, a speaker 128, and interfaces (I / F) 129-1 to 129-3 are included. The CPU 121, ROM 122, RAM 123, HDD 124, signal processing unit 125, video special effect audio mixing processing unit 126, and interfaces 129-1 to 129-3 are connected to each other via the bus 130.

CPU121は、インタフェース129−1およびバス130を介して、ユーザがマウス114またはキーボード115を用いて入力した処理の指示やデータの入力を受け、入力された処理の指示などに基づいて、ROM122に記憶されているプログラム、または、HDD124からRAM123にロードされたプログラムに従って各種の処理を実行する。   The CPU 121 receives processing instructions and data input by the user using the mouse 114 or the keyboard 115 via the interface 129-1 and the bus 130, and stores them in the ROM 122 based on the input processing instructions. Various processes are executed according to the stored program or the program loaded from the HDD 124 to the RAM 123.

また、CPU121は、AVストリーム、映像ストリーム、音声ストリーム、静止画像データなどのAVデータの各種の処理(例えば、多重化、分離、エンコード、デコードなど)を行う。例えば、CPU121は、マルチコアプロセッサにより構成され、図4などを参照して後述するように、所定のプログラムを実行することにより、所定の方式(例えば、MPEG2方式)によりエンコード(符号化)された映像ストリームのデコード(復号)処理を複数のスレッドに分割して、複数のプロセッサコアにより並列して映像ストリームをデコードする。さらに、CPU121は、図11などを参照して後述するように、エンコード前のベースバンド信号である映像ストリームを、所定の方式(例えば、MPEG2方式)によりエンコード(符号化)する。   Further, the CPU 121 performs various types of processing (for example, multiplexing, separation, encoding, decoding, etc.) of AV data such as an AV stream, a video stream, an audio stream, and still image data. For example, the CPU 121 is composed of a multi-core processor and, as will be described later with reference to FIG. 4 and the like, a video encoded by a predetermined method (eg, MPEG2 method) by executing a predetermined program. A stream decoding process is divided into a plurality of threads, and a video stream is decoded in parallel by a plurality of processor cores. Further, as described later with reference to FIG. 11 and the like, the CPU 121 encodes (encodes) a video stream, which is a baseband signal before encoding, by a predetermined method (for example, MPEG2 method).

ROM122は、CPU121が使用するプログラムや演算用のパラメータのうちの基本的に固定のデータを格納する。   The ROM 122 stores basically fixed data among programs used by the CPU 121 and calculation parameters.

RAM123は、CPU121の実行において使用するプログラムや、その実行において適宜変化するパラメータやデータを格納する。   The RAM 123 stores programs used in the execution of the CPU 121 and parameters and data that change as appropriate during the execution.

HDD124は、例えば、CPU121によって実行するプログラムや情報を記録または再生させる。   For example, the HDD 124 records or reproduces a program executed by the CPU 121 and information.

信号処理部125は、AVストリーム、映像ストリーム、音声ストリーム、静止画像データなどのAVデータの各種の処理(例えば、多重化、分離、エンコード、デコードなど)を、ハードウェアにより実行する。また、信号処理部125は、入力された映像ストリームから、ディスプレイ127の規格に適応した映像信号を生成し、ディスプレイ127に供給する。また、信号処理部125は、入力された音声ストリームから、スピーカ128の規格に適応した音声信号を生成し、スピーカ128に供給する。   The signal processing unit 125 executes various processes (for example, multiplexing, separation, encoding, decoding, etc.) of AV data such as an AV stream, a video stream, an audio stream, and still image data by hardware. Further, the signal processing unit 125 generates a video signal adapted to the standard of the display 127 from the input video stream, and supplies the video signal to the display 127. Further, the signal processing unit 125 generates an audio signal adapted to the standard of the speaker 128 from the input audio stream, and supplies the audio signal to the speaker 128.

映像特殊効果音声ミキシング処理部126は、CPU121、信号処理部125、または、外部映像記録再生装置113から供給されるAVストリーム、映像ストリーム、音声ストリーム、静止画像データなどのAVデータに、各種の特殊効果(例えば、画像の合成、分割、変換など)またはミキシング(例えば、音声の合成など)を施す。映像特殊効果音声ミキシング処理部126は、各種の特殊効果またはミキシングを施したAVデータを、CPU121、信号処理部125、または、外部映像記録再生装置113に供給する。   The video special effect audio mixing processing unit 126 converts various special data into AV data such as an AV stream, a video stream, an audio stream, and still image data supplied from the CPU 121, the signal processing unit 125, or the external video recording / playback device 113. Effects (eg, image synthesis, division, conversion, etc.) or mixing (eg, voice synthesis, etc.) are applied. The video special effect audio mixing processing unit 126 supplies AV data subjected to various special effects or mixing to the CPU 121, the signal processing unit 125, or the external video recording / reproducing device 113.

ディスプレイ127は、例えば、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などにより構成され、信号処理部125から供給される映像信号に基づく映像を表示する。   The display 127 is configured by, for example, a CRT (Cathode Ray Tube), an LCD (Liquid Crystal Display), and the like, and displays an image based on the video signal supplied from the signal processing unit 125.

スピーカ128は、信号処理部125から供給される音声信号に基づく音声を出力する。   The speaker 128 outputs sound based on the sound signal supplied from the signal processing unit 125.

なお、以下、AV処理装置111が、MPEG2方式により映像ストリームをエンコードまたはデコードする場合の処理の例を説明する。   Hereinafter, an example of processing when the AV processing apparatus 111 encodes or decodes a video stream by the MPEG2 method will be described.

図3は、所定のプログラムを実行するCPU121により実現されるデコード部151の機能の構成の例を示す図である。デコード部151は、ストリーム読出し制御部161、ストリーム解析部162、デコード領域設定部163、デコード制御部164、デコーダ165−1乃至165−4、および、ベースバンド出力制御部166を含むように構成される。   FIG. 3 is a diagram illustrating an example of a functional configuration of the decoding unit 151 realized by the CPU 121 that executes a predetermined program. The decode unit 151 is configured to include a stream read control unit 161, a stream analysis unit 162, a decode region setting unit 163, a decode control unit 164, decoders 165-1 to 165-4, and a baseband output control unit 166. The

ストリーム読出し制御部161は、ドライブ112を制御して、リムーバブルメディア116に記録されている映像ストリームを読み出させる。ストリーム読出し制御部161は、ドライブ112により読み出された映像ストリームを、インタフェース129−3およびバス130を介して取得する。また、ストリーム読出し制御部161は、バス130を介して、HDD124に記録されている映像ストリームを読み出す。ストリーム読出し制御部161は、必要に応じて、取得した映像ストリームを、CPU121内の図示せぬキャッシュメモリなどにより構成されるストリーム用メモリ152に一時的に記憶させる。また、ストリーム読出し制御部161は、必要に応じて、取得した映像ストリームを、ストリーム解析部162またはデコーダ165−1乃至165−4に供給する。   The stream read control unit 161 controls the drive 112 to read the video stream recorded on the removable medium 116. The stream read control unit 161 acquires the video stream read by the drive 112 via the interface 129-3 and the bus 130. Further, the stream read control unit 161 reads the video stream recorded in the HDD 124 via the bus 130. The stream read control unit 161 temporarily stores the acquired video stream in the stream memory 152 including a cache memory (not shown) in the CPU 121 as necessary. The stream read control unit 161 supplies the acquired video stream to the stream analysis unit 162 or the decoders 165-1 to 165-4 as necessary.

ストリーム解析部162は、映像ストリームのピクチャ層までの層をデコードし、デコードすることにより得られた情報をデコード制御部164に供給する。また、ストリーム解析部162は、映像ストリームのシーケンス層をデコードすることにより得られた映像ストリームの画像サイズ(画像の縦横の画素数)を示す情報をデコード領域設定部163に供給する。   The stream analysis unit 162 decodes layers up to the picture layer of the video stream, and supplies information obtained by decoding to the decode control unit 164. In addition, the stream analysis unit 162 supplies information indicating the image size (number of pixels in the vertical and horizontal directions of the video stream) obtained by decoding the sequence layer of the video stream to the decoding region setting unit 163.

デコード領域設定部163は、図4および図5を参照して後述するように、映像ストリームの映像サイズおよびデコード部151のデコーダの数に基づいて、映像ストリームの各フレームに対して、デコーダ165−1乃至165−4により分割してデコードする領域(以下、分割デコード領域と称する)を設定する。デコード領域設定部163は、設定した分割デコード領域を示す情報をデコード制御部164に供給する。   As will be described later with reference to FIGS. 4 and 5, the decode area setting unit 163 performs a decoder 165-for each frame of the video stream based on the video size of the video stream and the number of decoders of the decoding unit 151. An area to be divided and decoded by 1 to 165-4 (hereinafter referred to as a divided decoding area) is set. The decode area setting unit 163 supplies information indicating the set divided decode area to the decode control unit 164.

デコード制御部164は、ユーザがマウス114またはキーボード115を用いて入力したデコードの指示、または、AV処理装置111の各部、あるいは、CPU121により実現されるデコード部151と異なる機能ブロックから入力されるデコードの指示に基づいて、デコード部151の処理を制御する。デコード制御部164は、ストリーム解析部162またはデコーダ165−1乃至165−4への映像ストリームの供給を指示する情報をストリーム読出し制御部161に供給する。また、デコード制御部164は、デコードの開始を指示する情報をデコーダ165−1乃至165−4に供給する。   The decoding control unit 164 is a decoding instruction input by the user using the mouse 114 or the keyboard 115, or each unit of the AV processing device 111 or a decoding input from a functional block different from the decoding unit 151 realized by the CPU 121. The processing of the decoding unit 151 is controlled based on the instruction. The decode control unit 164 supplies information for instructing the supply of the video stream to the stream analysis unit 162 or the decoders 165-1 to 165-4 to the stream read control unit 161. In addition, the decode control unit 164 supplies information instructing the start of decoding to the decoders 165-1 to 165-4.

さらに、デコード制御部164は、デコーダ165−1乃至165−4から、デコードの終了またはエラーの発生を通知する情報を取得する。デコード制御部164は、デコードのエラーの発生を通知する情報を取得した場合、デコードを再開する位置を決定し、決定した位置からのデコードの再開を指示する情報を、エラーが発生したデコーダに供給する。さらに、デコード制御部164は、映像ストリームをデコードすることにより得られたベースバンド信号である映像ストリームの出力を指示する情報をベースバンド出力制御部166に供給する。   Further, the decode control unit 164 acquires information notifying completion of decoding or occurrence of an error from the decoders 165-1 to 165-4. When the decoding control unit 164 obtains information for notifying the occurrence of a decoding error, the decoding control unit 164 determines a position at which decoding is to be resumed, and supplies information for instructing to resume decoding from the decided position to the decoder in which the error has occurred. To do. Further, the decode control unit 164 supplies information indicating the output of the video stream, which is a baseband signal obtained by decoding the video stream, to the baseband output control unit 166.

デコーダ165−1乃至165−4は、映像ストリームの各フレーム内の各デコーダに割り当てられた分割デコード領域を並列してデコードする。すなわち、デコーダ165−1乃至165−4は、映像ストリームのスライス層以下のデコードを行う。デコーダ165−1乃至165−4は、デコードしたデータをベースバンド出力制御部166に供給する。なお、以下、デコーダ165−1乃至165−4を個々に区別する必要がない場合、単にデコーダ165と称する。   The decoders 165-1 to 165-4 decode the divided decoding areas assigned to the decoders in the frames of the video stream in parallel. That is, the decoders 165-1 to 165-4 perform decoding below the slice layer of the video stream. The decoders 165-1 to 165-4 supply the decoded data to the baseband output control unit 166. Hereinafter, the decoders 165-1 to 165-4 are simply referred to as a decoder 165 when it is not necessary to distinguish them individually.

ベースバンド出力制御部166は、デコーダ165−1乃至165−4から供給されたデータを合成して、デコード後のベースバンド信号である映像ストリームを生成する。ベースバンド出力制御部166は、必要に応じて、例えば、CPU121内の図示せぬキャッシュメモリなどにより構成されるベースバンド用メモリ153に、生成した映像ストリームを一時的に記憶させる。ベースバンド出力制御部166は、デコード制御部164の指示に基づいて、映像ストリームを外部(例えば、バス130を介して信号処理部125)に出力する。   The baseband output control unit 166 combines the data supplied from the decoders 165-1 to 165-4 to generate a video stream that is a baseband signal after decoding. For example, the baseband output control unit 166 temporarily stores the generated video stream in the baseband memory 153 configured by a cache memory (not shown) in the CPU 121, for example. The baseband output control unit 166 outputs the video stream to the outside (for example, the signal processing unit 125 via the bus 130) based on an instruction from the decode control unit 164.

次に、図4および図5のフローチャートを参照して、デコード部151により実行されるデコード処理を説明する。なお、この処理は、例えば、デコード制御部164が、ユーザがマウス114またはキーボード115を用いて入力したデコードの指示を、インタフェース129−1およびバス130を介して取得した場合、開始される。また、以下、リムーバブルメディア116に記録されている映像ストリームをデコードする場合の例を説明する。   Next, the decoding process executed by the decoding unit 151 will be described with reference to the flowcharts of FIGS. This process is started when, for example, the decode control unit 164 acquires a decode instruction input by the user using the mouse 114 or the keyboard 115 via the interface 129-1 and the bus 130. Hereinafter, an example of decoding a video stream recorded on the removable medium 116 will be described.

ステップS1において、デコード制御部164は、映像ストリームを全てデコードしたか否かを判定する。デコード制御部164は、ユーザによりデコードが指示された範囲の映像ストリームをまだ全てデコードしていない場合、まだ映像ストリームを全てデコードしていないと判定し、処理はステップS2に進む。   In step S1, the decode control unit 164 determines whether or not all video streams have been decoded. If the decoding control unit 164 has not yet decoded all the video streams in the range instructed to be decoded by the user, the decoding control unit 164 determines that all the video streams have not been decoded yet, and the process proceeds to step S2.

ステップS2において、ストリーム解析部162は、シーケンス層をデコードする。具体的には、デコード制御部164は、デコードする映像ストリームのシーケンス層の読出しを指示する情報をストリーム読出し制御部161に供給する。ドライブ112は、ストリーム読出し制御部161の制御の基に、デコードする映像ストリームのシーケンス層をリムーバブルメディア116から読み出し、読み出したデータを、インタフェース129−3およびバス130を介して、ストリーム読出し制御部161に供給する。ストリーム読出し制御部161は、映像ストリームのシーケンス層をストリーム解析部162に供給する。ストリーム解析部162は、シーケンス層をデコードし、デコードすることにより得られた情報をデコード制御部164に供給する。   In step S2, the stream analysis unit 162 decodes the sequence layer. Specifically, the decode control unit 164 supplies the stream read control unit 161 with information that instructs reading of the sequence layer of the video stream to be decoded. The drive 112 reads the sequence layer of the video stream to be decoded from the removable medium 116 under the control of the stream read control unit 161, and reads the read data via the interface 129-3 and the bus 130. To supply. The stream read control unit 161 supplies the sequence layer of the video stream to the stream analysis unit 162. The stream analysis unit 162 decodes the sequence layer and supplies information obtained by decoding to the decode control unit 164.

ステップS3において、ストリーム解析部162は、映像ストリームの画像サイズを検出する。具体的には、ストリーム解析部162は、映像ストリームのシーケンス層の情報に基づいて、映像ストリームの画像サイズを検出する。ストリーム解析部162は、検出した画像サイズを示す情報をデコード領域設定部163に供給する。   In step S3, the stream analysis unit 162 detects the image size of the video stream. Specifically, the stream analysis unit 162 detects the image size of the video stream based on the information of the sequence layer of the video stream. The stream analysis unit 162 supplies information indicating the detected image size to the decode region setting unit 163.

ステップS4において、デコード領域設定部163は、各デコーダ165がデコードする領域を設定する。具体的には、まず、デコード領域設定部163は、各デコーダ165が1フレームあたりにデコードするスライス数(以下、分割スライス数とも称する)を算出する。なお、以下、各スライスの横方向の幅はフレーム(ピクチャ)の幅と等しく、1つのスライスは行間をまたがないものとする。   In step S4, the decode area setting unit 163 sets an area to be decoded by each decoder 165. Specifically, first, the decoding area setting unit 163 calculates the number of slices (hereinafter also referred to as the number of divided slices) that each decoder 165 decodes per frame. In the following description, it is assumed that the horizontal width of each slice is equal to the width of the frame (picture), and one slice does not extend between rows.

デコード領域設定部163は、映像ストリームの画像サイズに基づいて、映像ストリームの1フレーム(ピクチャ)内に含まれるスライス数を検出する。例えば、映像ストリームの縦方向の画像サイズをSpv、スライスの縦方向のサイズをSsvとすると、1フレーム当たりのスライス数Nsfは、以下の式(1)により検出される。   The decode area setting unit 163 detects the number of slices included in one frame (picture) of the video stream based on the image size of the video stream. For example, when the vertical image size of the video stream is Spv and the vertical size of the slice is Ssv, the number of slices Nsf per frame is detected by the following equation (1).

Nsf=Spv÷Ssv ・・・(1)   Nsf = Spv ÷ Ssv (1)

デコード領域設定部163は、検出した1フレーム当たりのスライス数をデコーダ165の数で割ることにより、分割スライス数を算出する。例えば、デコーダ165の数をNdとすると、分割スライス数をXは、式(2)により算出される。   The decode area setting unit 163 calculates the number of divided slices by dividing the detected number of slices per frame by the number of decoders 165. For example, if the number of decoders 165 is Nd, the number of divided slices X is calculated by equation (2).

X=Nsf÷Nd ・・・(2)   X = Nsf ÷ Nd (2)

従って、各デコーダ165が、デコードするスライス数は等しくなり、1フレーム当たりにデコードするデータ量はほぼ等しくなる。   Accordingly, the number of slices to be decoded by each decoder 165 is equal, and the amount of data to be decoded per frame is substantially equal.

例えば、映像ストリームの縦方向の画像サイズを1088画素、スライスの縦方向のサイズを16画素とした場合、いまの場合、デコーダ165の数が4つなので、分割スライス数Xは、以下のとおり17となる。   For example, when the vertical image size of the video stream is 1088 pixels and the vertical size of the slice is 16 pixels, the number of divided slices X is 17 as follows because the number of decoders 165 is four in this case. It becomes.

Nsf=1088÷16=68
X=68÷4=17
Nsf = 1088 ÷ 16 = 68
X = 68 ÷ 4 = 17

次に、デコード領域設定部163は、フレーム内のスライスを上から順番に、分割スライス数ごとに分割することにより、分割デコード領域を設定する。例えば、図6の左側の図のように、1フレーム内に16のスライスが含まれ、4つのデコーダにより並行してデコードする場合、分割スライス数は4となるので、フレーム内のスライスを上から順番に4つごとに分割した領域、すなわち、スライス181−1乃至181−4を含む領域、スライス182−1乃至182−4を含む領域、スライス183−1乃至183−4を含む領域、および、スライス184−1乃至184−4を含む領域の4つの領域が分割デコード領域に設定される。   Next, the decode area setting unit 163 sets divided decode areas by dividing the slices in the frame in order from the top for each number of divided slices. For example, as shown in the diagram on the left side of FIG. 6, when 16 slices are included in one frame and decoding is performed in parallel by four decoders, the number of divided slices is 4, so the slices in the frame are A region divided into four in order, that is, a region including slices 181-1 to 181-4, a region including slices 182-1 to 182-4, a region including slices 183-1 to 183-4, and Four areas including the slices 184-1 to 184-4 are set as divided decoding areas.

なお、MPEG2方式でエンコードされた映像ストリームにおいて、スライス(スライス層)は、先頭にスタートコードが付加されることにより映像ストリームの解析を行わなくても開始位置を検出することができる層の最下層であり、映像ストリームを復号する場合の最小の処理単位となる。従って、分割デコード領域は、デコーダ165の処理単位である複数のスライスを含み、映像ストリームのピクチャに対応する領域をデコーダ165の数に応じて分割した領域となる。また、映像ストリーム上で連続するスライスが、フレーム(ピクチャ)内でいちばん上から順に配列されるので、分割デコード領域内のスライスは、分割デコード領域のいちばん上から下方向の順に映像ストリーム上において連続する。   Note that, in a video stream encoded by the MPEG2 system, a slice (slice layer) is the lowest layer in a layer where a start position can be detected without adding a start code to the start code. This is the minimum processing unit for decoding a video stream. Therefore, the divided decoding area includes a plurality of slices which are processing units of the decoder 165, and is an area obtained by dividing the area corresponding to the picture of the video stream according to the number of decoders 165. In addition, since consecutive slices on the video stream are arranged in order from the top in the frame (picture), slices in the divided decoding area are continuous on the video stream in order from the top to the bottom of the divided decoding area. To do.

デコード領域設定部163は、設定した分割デコード領域を示す情報をデコード制御部164に供給する。   The decode area setting unit 163 supplies information indicating the set divided decode area to the decode control unit 164.

ステップS5において、デコード制御部164は、全てのGOP(Group Of Pictures)をデコードしたか否かを判定する。デコード制御部164は、ステップS2においてデコードされたシーケンス層より下に含まれる全てのGOPがデコードされたか否かを判定し、まだ全てのGOPがデコードされていないと判定された場合、処理はステップS6に進む。   In step S5, the decode control unit 164 determines whether all GOPs (Group Of Pictures) have been decoded. The decoding control unit 164 determines whether all GOPs included below the sequence layer decoded in step S2 have been decoded. If it is determined that all GOPs have not been decoded yet, the process proceeds to step Proceed to S6.

ステップS6において、ストリーム解析部162は、GOP層をデコードする。具体的には、デコード制御部164は、次にデコードするGOPの読出しを指示する情報をストリーム読出し制御部161に供給する。ドライブ112は、ストリーム読出し制御部161の制御の基に、次にデコードするGOPをリムーバブルメディア116から読み出し、読み出したGOPを、インタフェース129−3およびバス130を介して、ストリーム読出し制御部161に供給する。ストリーム読出し制御部161は、取得したGOPをストリーム用メモリ152に一時的に記憶させる。ストリーム読出し制御部161は、取得したGOPのGOP層をストリーム解析部162に供給する。ストリーム解析部162は、GOP層をデコードし、デコードすることにより得られた情報をデコード制御部164に供給する。   In step S6, the stream analysis unit 162 decodes the GOP layer. Specifically, the decode control unit 164 supplies information that instructs reading of the GOP to be decoded next to the stream read control unit 161. The drive 112 reads the GOP to be decoded next from the removable medium 116 under the control of the stream read control unit 161, and supplies the read GOP to the stream read control unit 161 via the interface 129-3 and the bus 130. To do. The stream read control unit 161 temporarily stores the acquired GOP in the stream memory 152. The stream read control unit 161 supplies the GOP layer of the acquired GOP to the stream analysis unit 162. The stream analysis unit 162 decodes the GOP layer and supplies information obtained by decoding to the decode control unit 164.

なお、ステップS6において、複数のGOPを一度にリムーバブルメディア116から読み出し、ストリーム用メモリ152に記憶させるようにしてもよい。   In step S 6, a plurality of GOPs may be read from the removable medium 116 at a time and stored in the stream memory 152.

ステップS7において、デコード制御部164は、GOP内の全てのピクチャをデコードしたか否かを判定する。まだGOP内の全てのピクチャがデコードされていないと判定された場合、処理はステップS8に進む。   In step S7, the decode control unit 164 determines whether all the pictures in the GOP have been decoded. If it is determined that all the pictures in the GOP have not been decoded yet, the process proceeds to step S8.

ステップS8において、ストリーム読出し制御部161は、次にデコードするピクチャのピクチャ層を読み出す。具体的には、デコード制御部164は、次にデコードするピクチャのピクチャ層の読出しを指示する情報をストリーム読出し制御部161に供給する。ストリーム読出し制御部161は、ストリーム用メモリ152に記憶されているGOPについて、次にデコードするピクチャの開始位置(ピクチャスタートコード)をGOPの先頭から検索していき、検出した開始位置から次にデコードするピクチャのピクチャ層を読み出す。ストリーム読出し制御部161は、読み出したピクチャ層をストリーム解析部162に供給する。   In step S8, the stream read control unit 161 reads the picture layer of the next picture to be decoded. Specifically, the decode control unit 164 supplies information that instructs reading of the picture layer of the picture to be decoded next to the stream read control unit 161. The stream read control unit 161 searches the GOP stored in the stream memory 152 for the start position (picture start code) of the next picture to be decoded from the head of the GOP, and decodes it next from the detected start position. The picture layer of the picture to be read is read out. The stream read control unit 161 supplies the read picture layer to the stream analysis unit 162.

ステップS9において、ストリーム解析部162は、ピクチャ層をデコードする。ストリーム解析部162は、ピクチャ層をデコードすることにより得られた情報をデコード制御部164に供給する。   In step S9, the stream analysis unit 162 decodes the picture layer. The stream analysis unit 162 supplies information obtained by decoding the picture layer to the decode control unit 164.

ステップS10において、デコード制御部164は、デコードの開始を指示する。具体的には、デコード制御部164は、各デコーダ165に割り当てられた分割デコード領域に含まれるスライスの各デコーダ165への供給を指示する情報をストリーム読出し制御部161に供給する。また、デコード制御部164は、デコードの開始を指示する情報を各デコーダ165に供給する。   In step S10, the decode control unit 164 instructs the start of decoding. Specifically, the decode control unit 164 supplies the stream read control unit 161 with information for instructing the supply of each slice included in the divided decode area assigned to each decoder 165 to each decoder 165. In addition, the decode control unit 164 supplies information indicating the start of decoding to each decoder 165.

ステップS11において、ストリーム読出し制御部161は、分割デコード領域の開始位置を検出する。具体的には、ストリーム読出し制御部161は、ストリーム用メモリ152に記憶されているGOPについて、次にデコードするピクチャのスライス層の開始位置(スライススタートコード)を順に検索していき、各デコーダ165に割り当てられている分割デコード領域の先頭のスライスの開始位置、すなわち、各デコーダ165がデコードを開始する位置を検出する。   In step S11, the stream read control unit 161 detects the start position of the divided decode area. Specifically, the stream read control unit 161 sequentially searches the start position (slice start code) of the slice layer of the picture to be decoded next for each GOP stored in the stream memory 152, and each decoder 165. Is detected, that is, the position at which each decoder 165 starts decoding.

ステップS12において、デコーダ165は、デコードを開始する。具体的には、ストリーム読出し制御部161は、ステップS11において検出した各分割デコード領域の開始位置から始まる分割スライス数のスライス、すなわち、各分割デコード領域に含まれるスライスをストリーム用メモリ152から順に読み出す。ストリーム読出し制御部161は、読み出したスライスを、分割デコード領域ごとに、その分割デコード領域のデコードが割り当てられたデコーダ165に供給する。デコーダ165は、分割デコード領域内の先頭のスライスからデコードを開始する。デコーダ165は、デコードしたデータを順次ベースバンド出力制御部166に供給する。ベースバンド出力制御部166は、取得したデータをベースバンド用メモリ153に記憶させる。   In step S12, the decoder 165 starts decoding. Specifically, the stream read control unit 161 sequentially reads, from the stream memory 152, slices having the number of divided slices starting from the start position of each divided decode area detected in step S11, that is, slices included in each divided decode area. . The stream read control unit 161 supplies the read slice to the decoder 165 to which the decoding of the divided decoding area is assigned for each divided decoding area. The decoder 165 starts decoding from the first slice in the divided decoding area. The decoder 165 sequentially supplies the decoded data to the baseband output control unit 166. The baseband output control unit 166 stores the acquired data in the baseband memory 153.

ステップS13において、デコード制御部164は、エラーが発生したか否かを判定する。具体的には、デコード制御部164は、デコーダ165からエラーの発生を通知する情報が供給されている場合、エラーが発生していると判定し、処理はステップS14に進む。   In step S13, the decode control unit 164 determines whether an error has occurred. Specifically, when the information notifying the occurrence of an error is supplied from the decoder 165, the decode control unit 164 determines that an error has occurred, and the process proceeds to step S14.

ステップS14において、デコード制御部164は、デコードを再開する位置を決定する。デコード制御部164は、例えば、デコードを失敗したスライスの次のスライスをデコードを再開する位置に決定する。   In step S14, the decode control unit 164 determines a position at which decoding is resumed. For example, the decode control unit 164 determines a slice next to a slice that has failed to be decoded as a position to resume decoding.

ステップS15において、デコーダ165は、デコードを再開する。具体的には、デコード制御部164は、エラーが発生したスライスの次のスライスからのデコードの再開を指示する情報を、エラーが発生したデコーダ165に供給する。デコーダ165は、指定されたスライスからデコードを再開する。   In step S15, the decoder 165 resumes decoding. Specifically, the decode control unit 164 supplies information instructing restart of decoding from the slice following the slice in which the error has occurred to the decoder 165 in which the error has occurred. The decoder 165 resumes decoding from the designated slice.

ステップS13において、デコード制御部164は、デコーダ165からエラーの発生を通知する情報が供給されていない場合、エラーが発生していないと判定し、ステップS14およびS15の処理はスキップされ、処理はステップS16に進む。   In step S13, the decode control unit 164 determines that no error has occurred when the information notifying the occurrence of the error is not supplied from the decoder 165, the processing of steps S14 and S15 is skipped, and the processing is step. Proceed to S16.

ステップS16において、デコード制御部164は、全てのデコーダ165の処理が終了したか否かを判定する。具体的には、デコード制御部164は、各デコーダ165に割り当てられた分割デコード領域の全てのスライスのデコードの終了を通知する情報が、全てのデコーダ165から供給されているか否かを検出する。デコード制御部164は、各デコーダ165に割り当てられた分割デコード領域の全てのスライスのデコードの終了を通知する情報が、まだ全てのデコーダ165から供給されていない場合、まだ全てのデコーダ165の処理がまだ終了していないと判定し、処理はステップS13に戻り、ステップS16において、全てのデコーダ165の処理が終了したと判定されるまで、ステップS13乃至S16の処理が繰り返し実行される。   In step S16, the decode control unit 164 determines whether or not the processing of all the decoders 165 has been completed. Specifically, the decode control unit 164 detects whether or not information notifying the end of decoding of all slices in the divided decode area assigned to each decoder 165 is supplied from all the decoders 165. When the information for notifying the end of decoding of all the slices of the divided decoding area allocated to each decoder 165 is not yet supplied from all the decoders 165, the decode control unit 164 still performs the processing of all the decoders 165. The process returns to step S13, and the process of steps S13 to S16 is repeatedly executed until it is determined in step S16 that the processes of all the decoders 165 have been completed.

ステップS16において、全てのデコーダ165の処理が終了したと判定された場合、すなわち、各デコーダ165に割り当てられた分割デコード領域の全てのスライスのデコードの終了を通知する情報が、全てのデコーダ165からデコード制御部164に供給されている場合、処理はステップS17に進む。   When it is determined in step S16 that the processing of all the decoders 165 has been completed, that is, information for notifying the end of decoding of all the slices in the divided decoding area assigned to each decoder 165 is received from all the decoders 165. If it is supplied to the decode control unit 164, the process proceeds to step S17.

ステップS17において、ベースバンド出力制御部166は、1フレーム分のデータを出力する。具体的には、デコード制御部164は、1フレーム分のデータの出力を指示する情報をベースバンド出力制御部166に供給する。ベースバンド出力制御部166は、ベースバンド用メモリ153に記憶されている1フレーム分のデータを外部(例えば、バス130を介して信号処理部125)に出力する。その後、処理はステップS7に戻る。   In step S17, the baseband output control unit 166 outputs data for one frame. Specifically, the decode control unit 164 supplies information for instructing output of data for one frame to the baseband output control unit 166. The baseband output control unit 166 outputs the data for one frame stored in the baseband memory 153 to the outside (for example, the signal processing unit 125 via the bus 130). Thereafter, the process returns to step S7.

ステップS7において、まだGOP内の全てのピクチャがデコードされていないと判定された場合、処理はステップS8に進み、上述したステップS8以降の処理が実行される。すなわち、次のピクチャがデコードされる。   If it is determined in step S7 that all the pictures in the GOP have not been decoded yet, the process proceeds to step S8, and the processes after step S8 described above are executed. That is, the next picture is decoded.

ステップS7において、GOP内の全てのピクチャがデコードされたと判定された場合、処理はステップS5に戻る。   If it is determined in step S7 that all the pictures in the GOP have been decoded, the process returns to step S5.

ステップS5において、まだ全てのGOPがデコードされていないと判定された場合、処理はステップS6に進み、上述したステップS6以降の処理が実行される。すなわち、次のGOPがデコードされる。   If it is determined in step S5 that not all GOPs have been decoded yet, the process proceeds to step S6, and the processes after step S6 described above are executed. That is, the next GOP is decoded.

ステップS5において、全てのGOPがデコードされたと判定された場合、処理はステップS1に戻る。   If it is determined in step S5 that all GOPs have been decoded, the process returns to step S1.

ステップS1において、まだ映像ストリームが全てデコードされていないと判定された場合、処理はステップS2に進み、上述したステップS2以降の処理が実行される。すなわち、映像ストリームの次のシーケンス層がデコードされる。   If it is determined in step S1 that the entire video stream has not been decoded yet, the process proceeds to step S2, and the processes after step S2 described above are executed. That is, the next sequence layer of the video stream is decoded.

ステップS1において、映像ストリームが全てデコードされたと判定された場合、デコード処理は終了する。   If it is determined in step S1 that the entire video stream has been decoded, the decoding process ends.

このように、各フレーム(ピクチャ)について、各デコーダ165がデコードを開始する位置として各分割デコード領域の開始位置を検出するだけでよいため、各デコーダ165がデコードを開始する位置を検出する時間が短縮され、映像ストリームのデコードを高速化することができる。   As described above, since it is only necessary to detect the start position of each divided decode area as the position where each decoder 165 starts decoding for each frame (picture), the time for detecting the position where each decoder 165 starts decoding is determined. This shortens the video stream decoding speed.

次に、図7乃至図15を参照して、映像ストリームのデコードを高速化する他の実施の形態について説明する。   Next, another embodiment for speeding up decoding of a video stream will be described with reference to FIGS.

図7は、所定のプログラムを実行するCPU121により実現されるエンコード部201の機能の構成の例を示す図である。エンコード部201は、エンコーダ211、ピクチャカウント部212、スライスカウント部213、スタート位置メモリ214、スタート位置記録制御部215、および、ストリーム出力制御部216を含むように構成される。   FIG. 7 is a diagram illustrating an example of a functional configuration of the encoding unit 201 realized by the CPU 121 that executes a predetermined program. The encoding unit 201 includes an encoder 211, a picture count unit 212, a slice count unit 213, a start position memory 214, a start position recording control unit 215, and a stream output control unit 216.

エンコーダ211は、ユーザがマウス114またはキーボード115を用いて入力したエンコードの指示、または、AV処理装置111の各部、あるいは、CPU121に実現されるエンコード部201と異なる機能ブロックから入力されるエンコードの指示に基づいて、外部から入力されるエンコード前のベースバンド信号である映像ストリームを、MPEG2方式に基づいてエンコード(符号化)し、エンコードしたデータをストリーム出力制御部216に供給する。   The encoder 211 is an instruction for encoding input by the user using the mouse 114 or the keyboard 115, or an instruction for encoding input from each unit of the AV processing device 111 or from a functional block different from the encoding unit 201 implemented in the CPU 121. The video stream, which is a baseband signal before encoding, input from the outside is encoded (encoded) based on the MPEG2 system, and the encoded data is supplied to the stream output control unit 216.

また、エンコーダ211は、ピクチャ(ピクチャ層)のエンコードを開始する度に、ピクチャのエンコードの開始を通知する情報をピクチャカウント部212およびスタート位置記録制御部215に供給する。さらに、エンコーダ211は、エンコードした映像ストリームの各フレーム(ピクチャ)の開始位置を示す情報(以下、ピクチャ開始位置情報と称する)を、スタート位置メモリ214に記録させる。また、エンコーダ211は、各ピクチャのエンコードが終了する度に、ピクチャのエンコードの終了を通知する情報をスライスカウント部213、および、スタート位置記録制御部215に供給する。さらに、エンコーダ211は、エンコードしたピクチャのデータ長を示す情報(以下、ピクチャデータ長情報と称する)を、スタート位置メモリ214に記録させる。   The encoder 211 supplies information notifying the start of picture encoding to the picture count unit 212 and the start position recording control unit 215 every time encoding of a picture (picture layer) is started. Further, the encoder 211 causes the start position memory 214 to record information indicating the start position of each frame (picture) of the encoded video stream (hereinafter referred to as picture start position information). The encoder 211 supplies information for notifying the end of picture encoding to the slice count unit 213 and the start position recording control unit 215 every time encoding of each picture is completed. Further, the encoder 211 records information indicating the data length of the encoded picture (hereinafter referred to as picture data length information) in the start position memory 214.

さらに、エンコーダ211は、スライス(スライス層)のエンコードを開始する度に、スライスのエンコードの開始を通知する情報をスライスカウント部213およびスタート位置記録制御部215に供給する。さらに、エンコーダ211は、エンコードした映像ストリームの開始位置を示す情報(以下、スライス開始位置情報と称する)を、スタート位置メモリ214に記録させる。また、エンコーダ211は、各スライスのエンコードが終了する度に、スライスのエンコードの終了を通知する情報をスタート位置記録制御部215に供給する。さらに、エンコーダ211は、エンコードしたスライスのデータ長を示す情報(以下、スライスデータ長情報と称する)を、スタート位置メモリ214に記録させる。   Further, every time encoding of a slice (slice layer) is started, the encoder 211 supplies information notifying start of encoding of the slice to the slice count unit 213 and the start position recording control unit 215. Further, the encoder 211 records information indicating the start position of the encoded video stream (hereinafter referred to as slice start position information) in the start position memory 214. The encoder 211 supplies information for notifying the end of the encoding of the slice to the start position recording control unit 215 every time the encoding of each slice is completed. Furthermore, the encoder 211 causes the start position memory 214 to record information indicating the data length of the encoded slice (hereinafter referred to as slice data length information).

ピクチャカウント部212は、映像ストリームを記録媒体上で管理する単位であるクリップ内のピクチャの数をカウントする。具体的には、ピクチャカウント部212は、ピクチャカウンタを管理し、エンコーダ211からピクチャのエンコードの開始を通知する情報が供給される毎に、ピクチャカウンタの値をインクリメントする。ピクチャカウント部212は、ピクチャカウンタの値を示す情報をスタート位置記録制御部215に供給する。   The picture count unit 212 counts the number of pictures in a clip, which is a unit for managing a video stream on a recording medium. Specifically, the picture count unit 212 manages the picture counter, and increments the value of the picture counter every time information that notifies the start of picture encoding is supplied from the encoder 211. The picture count unit 212 supplies information indicating the value of the picture counter to the start position recording control unit 215.

スライスカウント部213は、ピクチャ内のスライスの数をカウントする。具体的には、スライスカウント部213は、スライスカウンタを管理し、エンコーダ211からスライスのエンコードの開始を通知する情報が供給される毎に、スライスカウンタの値をインクリメントする。また、スライスカウント部213は、エンコーダ211からピクチャのエンコードの終了を通知する情報が供給された場合、スライスカウンタの値をリセットする。   The slice count unit 213 counts the number of slices in the picture. Specifically, the slice count unit 213 manages the slice counter, and increments the value of the slice counter every time information that notifies the start of encoding of the slice is supplied from the encoder 211. Also, the slice count unit 213 resets the value of the slice counter when information that notifies the end of picture encoding is supplied from the encoder 211.

スタート位置記録制御部215は、スタート位置メモリ214に記録されているピクチャ開始位置情報、スライス開始位置情報、ピクチャデータ長情報、または、スライスデータ長情報を読み出す。また、スタート位置記録制御部215は、ピクチャカウンタの値を示す情報をピクチャカウント部212から取得する。さらに、スタート位置記録制御部215は、スライスカウンタの値を示す情報をスライスカウント部213から取得する。   The start position recording control unit 215 reads picture start position information, slice start position information, picture data length information, or slice data length information recorded in the start position memory 214. In addition, the start position recording control unit 215 acquires information indicating the value of the picture counter from the picture count unit 212. Further, the start position recording control unit 215 acquires information indicating the value of the slice counter from the slice count unit 213.

スタート位置記録制御部215は、ピクチャカウンタの値、ピクチャ開始位置情報、および、ピクチャデータ長情報に基づく、各ピクチャの位置を示す情報(以下、ピクチャ位置情報と称する)の映像ストリームへの記録を指示する情報をストリーム出力制御部216に供給することにより、ピクチャ位置情報の記録を制御する。また、スタート位置記録制御部215は、スライスカウンタの値、スライス開始位置情報、および、スライスデータ長情報に基づく、各スライスの位置を示す情報(以下、スライス位置情報と称する)の映像ストリームへの記録を指示する情報をストリーム出力制御部216に供給することにより、スライス位置情報の記録を制御する。   The start position recording control unit 215 records information indicating the position of each picture (hereinafter referred to as picture position information) in the video stream based on the value of the picture counter, the picture start position information, and the picture data length information. By supplying the instructed information to the stream output control unit 216, the recording of the picture position information is controlled. The start position recording control unit 215 also applies information indicating the position of each slice (hereinafter referred to as slice position information) to the video stream based on the value of the slice counter, slice start position information, and slice data length information. By supplying information for instructing recording to the stream output control unit 216, recording of slice position information is controlled.

ストリーム出力制御部216は、エンコーダ211によりエンコードされた映像ストリームを、例えば、CPU121内のキャッシュメモリなどにより構成されるストリーム用メモリ202に一時的に記憶させる。ストリーム出力制御部216は、スタート位置記録制御部215の指示に基づいて、例えば、エンコードされた映像ストリームの各GOPに対応するGOP層のユーザデータ(User Data)領域にピクチャ位置情報を記録する。なお、シーケンス層以下に含まれる全てのGOPに対応するピクチャ位置情報を、映像ストリームのシーケンス層のエクステンション・アンド・ユーザ(Extension and User)領域のユーザデータ(User Data)領域に記録するようにしてもよい。また、ストリーム出力制御部216は、スタート位置記録制御部215の指示に基づいて、例えば、エンコードされた映像ストリームの各ピクチャに対応するピクチャ層のエクステンション・アンド・ユーザ(Extension and User)領域のユーザデータ(User Data)領域にスライス位置情報を記録する。   The stream output control unit 216 temporarily stores the video stream encoded by the encoder 211 in the stream memory 202 configured by, for example, a cache memory in the CPU 121. Based on the instruction from the start position recording control unit 215, the stream output control unit 216 records picture position information in a user data (User Data) area of the GOP layer corresponding to each GOP of the encoded video stream, for example. Note that the picture position information corresponding to all GOPs included in the sequence layer and below is recorded in the user data (User Data) area of the extension and user area of the sequence layer of the video stream. Also good. Also, the stream output control unit 216, based on the instruction of the start position recording control unit 215, for example, a user in the extension and user (Extension and User) area of the picture layer corresponding to each picture of the encoded video stream Record slice position information in the data (User Data) area.

ストリーム出力制御部216は、ストリーム用メモリ202に記憶されている映像ストリームを読み出し、読み出した映像ストリームを外部(例えば、バス130を介して、ドライブ112またはHDD124)に出力する。   The stream output control unit 216 reads the video stream stored in the stream memory 202, and outputs the read video stream to the outside (for example, the drive 112 or the HDD 124 via the bus 130).

図8は、所定のプログラムを実行するCPU121により実現されるデコード部251の機能の構成の例を示す図である。デコード部251は、図3のデコード部151と比較して、デコード領域設定部163の代わりにスタート位置検出部271が設けられている点が異なる。なお、図中、図3と対応する部分については下2桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。   FIG. 8 is a diagram illustrating an example of a functional configuration of the decoding unit 251 realized by the CPU 121 that executes a predetermined program. The decoding unit 251 is different from the decoding unit 151 in FIG. 3 in that a start position detection unit 271 is provided instead of the decoding region setting unit 163. In the figure, the parts corresponding to those in FIG. 3 are given the same reference numerals in the last two digits, and the description of the parts having the same processing will be omitted because it will be repeated.

デコード部251は、ストリーム読出し制御部261、ストリーム解析部262、デコード制御部264、デコーダ265−1乃至265−4、ベースバンド出力制御部266、および、スタート位置検出部271を含むように構成される。   The decoding unit 251 includes a stream read control unit 261, a stream analysis unit 262, a decode control unit 264, decoders 265-1 to 265-4, a baseband output control unit 266, and a start position detection unit 271. The

ストリーム解析部262は、図3のストリーム解析部162の処理に加えて、映像ストリームに記録されているピクチャ位置情報およびスライス位置情報を抽出し、抽出したピクチャ位置情報およびスライス位置情報をスタート位置検出部271に供給する。   In addition to the processing of the stream analysis unit 162 in FIG. 3, the stream analysis unit 262 extracts picture position information and slice position information recorded in the video stream, and starts position detection of the extracted picture position information and slice position information. To the unit 271.

デコード制御部264は、図3のデコード制御部164の処理に加えて、ピクチャNo.(図9)により指定したピクチャの開始位置の検出を指示する情報(以下、開始位置検出指示情報と称する)、または、スライスNo.(図10)により指定したスライスの開始位置の検出を指示する開始位置検出指示情報をスタート位置検出部271に供給する。   In addition to the processing of the decode control unit 164 in FIG. 3, the decode control unit 264 instructs information to detect the start position of the picture designated by the picture number (FIG. 9) (hereinafter referred to as start position detection instruction information). Alternatively, start position detection instruction information for instructing detection of the start position of the slice designated by the slice number (FIG. 10) is supplied to the start position detection unit 271.

スタート位置検出部271は、ピクチャ位置情報またはスライス位置情報に基づいて、開始位置検出指示情報により指定されたピクチャまたはスライスの開始位置を検出する。スタート位置検出部271は、検出したピクチャまたはスライスの開始位置を示す情報をデコード制御部264に供給する。   The start position detection unit 271 detects the start position of the picture or slice specified by the start position detection instruction information based on the picture position information or the slice position information. The start position detection unit 271 supplies information indicating the start position of the detected picture or slice to the decode control unit 264.

なお、以下、デコーダ265−1乃至265−4を個々に区別する必要がない場合、単に、デコーダ265と称する。   Hereinafter, the decoders 265-1 to 265-4 are simply referred to as a decoder 265 when it is not necessary to distinguish them individually.

図9は、ピクチャ位置情報のデータの構成の例を示す図である。ピクチャ位置情報は、映像ストリーム内のGOPごとに記録され、ピクチャ開始アドレス、および、GOPに含まれる各ピクチャに対応する個別情報を含むように構成される。   FIG. 9 is a diagram illustrating an example of a data structure of picture position information. The picture position information is recorded for each GOP in the video stream, and is configured to include a picture start address and individual information corresponding to each picture included in the GOP.

ピクチャ開始アドレスは、GOP内の先頭のピクチャの開始位置のクリップの先頭からの相対位置(相対アドレス)を示す。なお、映像ストリームを記録媒体(例えば、リムーバブルメディア116またはHDD124)に記録する場合、ピクチャ開始アドレスを、GOP内の先頭のピクチャが記録媒体に記録される位置の先頭のアドレスとするようにしてもよい。   The picture start address indicates a relative position (relative address) from the start of the clip at the start position of the first picture in the GOP. Note that when a video stream is recorded on a recording medium (for example, the removable medium 116 or the HDD 124), the picture start address may be the first address of the position where the first picture in the GOP is recorded on the recording medium. Good.

個別情報は、ピクチャNo.、データ長、および、オフセットを含むように構成される。   The individual information is configured to include a picture number, a data length, and an offset.

ピクチャNo.は、クリップ内の先頭のピクチャを起点にしてカウントしたシリアルNo.である。ピクチャNo.は、1つのクリップ内でリセットされないため、クリップの先頭から何番目のピクチャであるかを示す。   The picture number is a serial number counted from the first picture in the clip. Since the picture number is not reset in one clip, it indicates the number of the picture from the beginning of the clip.

データ長は、ピクチャのデータ長を示す。   The data length indicates the data length of the picture.

オフセットは、ピクチャ開始アドレスからのオフセット(相対アドレス)を示す。従って、ピクチャ開始アドレスとオフセットに基づいて、各ピクチャの開始位置のクリップの先頭からの相対アドレスを求めることができる。なお、映像ストリームを記録媒体(例えば、リムーバブルメディア116またはHDD124)に記録する場合、映像ストリームを記録媒体に記録する場合、各ピクチャについて、オフセットの代わりに、ピクチャが記録媒体に記録される位置の先頭のアドレスを記録するようにしてもよい。   The offset indicates an offset (relative address) from the picture start address. Accordingly, based on the picture start address and the offset, a relative address from the beginning of the clip at the start position of each picture can be obtained. In addition, when recording a video stream on a recording medium (for example, the removable medium 116 or the HDD 124), when recording a video stream on a recording medium, for each picture, instead of an offset, the position of the picture is recorded on the recording medium. The head address may be recorded.

図10は、スライス位置情報のデータの構成の例を示す図である。スライス位置情報は、映像ストリーム内のピクチャごとに記録され、スライス開始アドレス、および、ピクチャに含まれる各スライスに対応する個別情報を含むように構成される。   FIG. 10 is a diagram illustrating an example of a data configuration of slice position information. The slice position information is recorded for each picture in the video stream, and is configured to include a slice start address and individual information corresponding to each slice included in the picture.

スライス開始アドレスは、ピクチャ内の先頭のスライスの開始位置のクリップの先頭からの相対アドレスを示す。なお、スライス開始アドレスを、ピクチャ内の先頭のスライスが記録媒体(例えば、リムーバブルメディア116またはHDD124)に記録される位置の先頭のアドレスとするようにしてもよい。   The slice start address indicates a relative address from the start of the clip at the start position of the first slice in the picture. Note that the slice start address may be the head address of the position where the head slice in the picture is recorded on the recording medium (for example, the removable medium 116 or the HDD 124).

個別情報は、スライスNo.、データ長、および、オフセットを含むように構成される。   The individual information is configured to include a slice number, a data length, and an offset.

スライスNo.は、ピクチャ内の先頭のスライスを起点にしてカウントしたシリアルNo.である。スライスNo.は、ピクチャが変わるごとにリセットされるため、ピクチャ内において先頭から何番目のスライスであるかを示す。   The slice number is a serial number counted starting from the first slice in the picture. Since the slice number is reset every time the picture changes, it indicates the number of the slice from the beginning in the picture.

データ長は、スライスのデータ長を示す。   The data length indicates the data length of the slice.

オフセットは、スライス開始アドレスからのオフセット(相対アドレス)を示す。従って、スライス開始アドレスとオフセットに基づいて、各スライスの開始位置のクリップの先頭からの相対アドレスを求めることができる。なお、映像ストリームを記録媒体(例えば、リムーバブルメディア116またはHDD124)に記録する場合、各スライスについて、オフセットの代わりに、スライスが記録媒体(例えば、リムーバブルメディア116またはHDD124)に記録される位置のアドレスを記録するようにしてもよい。   The offset indicates an offset (relative address) from the slice start address. Therefore, based on the slice start address and the offset, the relative address from the beginning of the clip at the start position of each slice can be obtained. When recording a video stream on a recording medium (for example, the removable medium 116 or the HDD 124), for each slice, an address of a position at which the slice is recorded on the recording medium (for example, the removable medium 116 or the HDD 124) instead of the offset. May be recorded.

次に、図11のフローチャートを参照して、エンコード部201により実行されるエンコード処理を説明する。なお、この処理は、例えば、エンコーダ211が、ユーザがマウス114またはキーボード115を用いて入力したエンコードの指示を、インタフェース129−1およびバス130を介して取得した場合、開始される。また、以下、外部映像記録装置113−1からエンコード前のベースバンド信号である映像ストリームが、インタフェース129−2およびバス130を介してエンコーダ211に入力され、エンコードされた映像ストリームがリムーバブルメディア116に記録される場合の例を説明する。   Next, the encoding process executed by the encoding unit 201 will be described with reference to the flowchart of FIG. This process is started when, for example, the encoder 211 acquires an encoding instruction input by the user using the mouse 114 or the keyboard 115 via the interface 129-1 and the bus 130. Hereinafter, a video stream that is a baseband signal before encoding is input from the external video recording apparatus 113-1 to the encoder 211 via the interface 129-2 and the bus 130, and the encoded video stream is input to the removable medium 116. An example of recording will be described.

ステップS101において、エンコーダ211は、全ての映像ストリームをエンコードしたか否かを判定する。まだ全ての映像ストリームがエンコードされていないと判定された場合、例えば、外部映像記録装置113−1からの映像ストリームの入力が継続している場合、処理はステップS102に進む。   In step S101, the encoder 211 determines whether all video streams have been encoded. If it is determined that all the video streams are not yet encoded, for example, if the input of the video streams from the external video recording device 113-1 is continued, the process proceeds to step S102.

ステップS102において、エンコーダ211は、シーケンス層を変更するか否かを判定する。シーケンス層を変更すると判定された場合、例えば、映像ストリームの画像サイズが変更されたり、外部からエンコーダ211にシーケンス層の変更を指示する情報が入力された場合、処理はステップS103に進む。   In step S102, the encoder 211 determines whether to change the sequence layer. If it is determined that the sequence layer is to be changed, for example, if the image size of the video stream is changed or information for instructing the change of the sequence layer is input from the outside to the encoder 211, the process proceeds to step S103.

ステップS103において、エンコーダ211は、映像ストリームのシーケンス層をエンコードする。エンコーダ211は、エンコードしたデータをストリーム出力制御部216に供給する。ストリーム出力制御部216は、取得したデータをストリーム用メモリ202に記憶させる。   In step S103, the encoder 211 encodes the sequence layer of the video stream. The encoder 211 supplies the encoded data to the stream output control unit 216. The stream output control unit 216 stores the acquired data in the stream memory 202.

ステップS102において、シーケンス層を変更しないと判定された場合、ステップS103の処理はスキップされ、処理はステップS104に進む。   If it is determined in step S102 that the sequence layer is not changed, the process of step S103 is skipped, and the process proceeds to step S104.

ステップS104において、エンコーダ211は、GOP層をエンコードする。このとき、エンコーダ211は、GOP層のユーザデータ領域にピクチャ位置情報を後から記録するための領域を確保する。エンコーダ211は、エンコードしたデータをストリーム出力制御部216に供給する。ストリーム出力制御部216は、取得したデータをストリーム用メモリ202に記憶させる。   In step S104, the encoder 211 encodes the GOP layer. At this time, the encoder 211 reserves an area for later recording picture position information in the user data area of the GOP layer. The encoder 211 supplies the encoded data to the stream output control unit 216. The stream output control unit 216 stores the acquired data in the stream memory 202.

ステップS105において、エンコード部201は、ピクチャ層以下エンコード処理を行う。ピクチャ層以下エンコード処理の詳細は、図12を参照して後述するが、この処理により、ピクチャ層以下がエンコードされる。その後、処理はステップS101に戻り、ステップS101において、映像ストリームが全てエンコードされたと判定されるまで、ステップS101乃至S105の処理が繰り返し実行され、映像ストリームがエンコードされる。   In step S105, the encoding unit 201 performs an encoding process below the picture layer. The details of the encoding process below the picture layer will be described later with reference to FIG. Thereafter, the processing returns to step S101, and the processing of steps S101 to S105 is repeatedly executed until it is determined in step S101 that the video stream has been encoded, and the video stream is encoded.

ステップS101において、映像ストリームが全てエンコードされたと判定された場合、例えば、外部映像記録装置113−1からの映像ストリームの入力が終了し、入力された映像ストリームのエンコードが全て終了している場合、エンコード処理は終了する。   If it is determined in step S101 that the video stream has been encoded, for example, if the input of the video stream from the external video recording device 113-1 has been completed and the encoding of the input video stream has been completed, The encoding process ends.

次に、図12のフローチャートを参照して、図11のステップS105のピクチャ層以下エンコード処理の詳細を説明する。   Next, the details of the encoding processing below the picture layer in step S105 of FIG.

ステップS121において、エンコーダ211は、GOP内の全てのピクチャをエンコードしたか否かを判定する。エンコーダ211は、現在エンコード中のGOPに含める予定の数のピクチャをエンコードしたか否かを確認し、まだ現在エンコード中のGOPに含める予定の数のピクチャをエンコードしていない場合、まだGOP内の全てのピクチャをエンコードしていないと判定し、処理はステップS122に進む。   In step S121, the encoder 211 determines whether all pictures in the GOP have been encoded. The encoder 211 checks whether or not the number of pictures to be included in the currently encoded GOP have been encoded. If the number of pictures to be included in the currently encoded GOP has not yet been encoded, It is determined that not all pictures have been encoded, and the process proceeds to step S122.

ステップS122において、ピクチャカウント部212は、ピクチャカウンタをインクリメントする。具体的には、エンコーダ211は、次のピクチャのエンコードの開始を通知する情報をピクチャカウント部212に供給する。ピクチャカウント部212は、ピクチャカウンタをインクリメントする。   In step S122, the picture count unit 212 increments the picture counter. Specifically, the encoder 211 supplies information notifying the start of encoding of the next picture to the picture count unit 212. The picture count unit 212 increments the picture counter.

ステップS123において、エンコーダ211は、ピクチャの開始位置を決定する。具体的には、エンコーダ211は、次にエンコードするピクチャの記録を開始する位置を決定する。エンコーダ211は、次にエンコードするピクチャがGOPの先頭のピクチャである場合、決定した開始位置のクリップの先頭からの相対アドレスを示すピクチャ開始位置情報をスタート位置メモリ214に記憶させる。また、エンコーダ211は、次にエンコードするピクチャがGOPの先頭のピクチャでない場合、決定した開始位置のGOPの先頭のピクチャからのオフセットを示すピクチャ開始位置情報をスタート位置メモリ214に記憶させる。   In step S123, the encoder 211 determines the start position of the picture. Specifically, the encoder 211 determines a position where recording of a picture to be encoded next is started. When the next picture to be encoded is the first picture of the GOP, the encoder 211 stores, in the start position memory 214, picture start position information indicating a relative address from the start of the clip at the determined start position. If the next picture to be encoded is not the first picture of the GOP, the encoder 211 stores picture start position information indicating an offset from the first picture of the GOP at the determined start position in the start position memory 214.

ステップS124において、ストリーム出力制御部216は、ピクチャの開始位置を記録する。具体的には、エンコーダ211は、次のピクチャのエンコードの開始を通知する情報をスタート位置記録制御部215に供給する。スタート位置記録制御部215は、ピクチャカウント部212から、ピクチャカウンタの値を示す情報を取得し、スタート位置メモリ214から、ピクチャ開始位置情報を取得する。   In step S124, the stream output control unit 216 records the start position of the picture. Specifically, the encoder 211 supplies information that notifies the start of encoding of the next picture to the start position recording control unit 215. The start position recording control unit 215 acquires information indicating the value of the picture counter from the picture count unit 212 and acquires picture start position information from the start position memory 214.

次にエンコードするピクチャがGOPの先頭のピクチャである場合、ストリーム出力制御部216は、スタート位置記録制御部215の制御の基に、ストリーム用メモリ202に記憶されているエンコード中のGOPに対応するピクチャ位置情報について、ピクチャ開始アドレスにピクチャ開始位置情報の値を記録する。また、ストリーム出力制御部216は、スタート位置記録制御部215の制御の基に、エンコード中のGOPに対応するピクチャ位置情報の先頭の個別情報について、ピクチャNo.にピクチャカウンタの値を記録し、オフセットに0を記録する。   When the next picture to be encoded is the first picture of the GOP, the stream output control unit 216 corresponds to the GOP being encoded stored in the stream memory 202 under the control of the start position recording control unit 215. For picture position information, the value of picture start position information is recorded at the picture start address. Also, the stream output control unit 216 records the value of the picture counter in the picture No. for the individual information at the head of the picture position information corresponding to the GOP being encoded under the control of the start position recording control unit 215, Record 0 for the offset.

また、次にエンコードするピクチャがGOPの先頭のピクチャでない場合、ストリーム出力制御部216は、スタート位置記録制御部215の制御の基に、エンコード中のGOPに対応するピクチャ位置情報の次にエンコードするピクチャに対応する個別情報について、ピクチャNo.にピクチャカウンタの値を記録し、オフセットにピクチャ開始位置情報の値を記録する。   When the next picture to be encoded is not the first picture of the GOP, the stream output control unit 216 encodes next to the picture position information corresponding to the GOP being encoded under the control of the start position recording control unit 215. For individual information corresponding to a picture, the value of the picture counter is recorded in the picture No., and the value of the picture start position information is recorded in the offset.

ステップS125において、エンコーダ211は、ピクチャ層をエンコードする。このとき、エンコーダ211は、ピクチャ層のユーザデータ領域にスライス位置情報を後から記録するための領域を確保する。エンコーダ211は、エンコードしたデータをストリーム出力制御部216に供給する。ストリーム出力制御部216は、取得したデータをストリーム用メモリ202に記憶させる。   In step S125, the encoder 211 encodes the picture layer. At this time, the encoder 211 reserves an area for later recording slice position information in the user data area of the picture layer. The encoder 211 supplies the encoded data to the stream output control unit 216. The stream output control unit 216 stores the acquired data in the stream memory 202.

ステップS126において、エンコーダ211は、ピクチャ内の全てのスライスをエンコードしたか否かを判定する。エンコーダ211は、ピクチャ内に含まれる所定の数のスライスをエンコードしたか否かを確認し、まだピクチャ内に含まれる所定の数のスライスをエンコードしていない場合、まだピクチャ内の全てのスライスをエンコードしていないと判定し、処理はステップS127に進む。   In step S126, the encoder 211 determines whether all slices in the picture have been encoded. The encoder 211 checks whether or not a predetermined number of slices included in the picture have been encoded. If the predetermined number of slices included in the picture has not yet been encoded, all the slices in the picture have not been encoded yet. It is determined that encoding has not been performed, and the process proceeds to step S127.

ステップS127において、スライスカウント部213は、スライスカウンタをインクリメントする。具体的には、エンコーダ211は、次のスライスのエンコードの開始を通知する情報をスライスカウント部213に供給する。スライスカウント部213は、スライスカウンタをインクリメントする。   In step S127, the slice count unit 213 increments the slice counter. Specifically, the encoder 211 supplies information notifying the start of encoding of the next slice to the slice count unit 213. The slice count unit 213 increments the slice counter.

ステップS128において、エンコーダ211は、スライスの開始位置を決定する。具体的には、エンコーダ211は、次にエンコードするスライスの記録を開始する位置を決定する。エンコーダ211は、次にエンコードするスライスがピクチャの先頭のスライスである場合、決定した開始位置のクリップの先頭からの相対アドレスを示すスライス開始位置情報をスタート位置メモリ214に記憶させる。また、エンコーダ211は、次にエンコードするスライスがピクチャの先頭のスライスでない場合、決定した開始位置のピクチャの先頭のスライスからのオフセットを示すスライス開始位置情報をスタート位置メモリ214に記憶させる。   In step S128, the encoder 211 determines the start position of the slice. Specifically, the encoder 211 determines a position where recording of a slice to be encoded next is started. When the slice to be encoded next is the first slice of the picture, the encoder 211 stores slice start position information indicating the relative address from the start of the clip at the determined start position in the start position memory 214. Also, if the slice to be encoded next is not the first slice of the picture, the encoder 211 stores slice start position information indicating an offset from the first slice of the picture at the determined start position in the start position memory 214.

ステップS129において、ストリーム出力制御部216は、スライスの開始位置を記録する。具体的には、エンコーダ211は、次のスライスのエンコードの開始を通知する情報をスタート位置記録制御部215に供給する。スタート位置記録制御部215は、スライスカウント部213から、スライスカウンタの値を示す情報を取得し、スタート位置メモリ214から、スライス開始位置情報を取得する。   In step S129, the stream output control unit 216 records the start position of the slice. Specifically, the encoder 211 supplies information that notifies the start of encoding of the next slice to the start position recording control unit 215. The start position recording control unit 215 acquires information indicating the value of the slice counter from the slice count unit 213, and acquires slice start position information from the start position memory 214.

次にエンコードするスライスがピクチャの先頭のスライスである場合、ストリーム出力制御部216は、スタート位置記録制御部215の制御の基に、ストリーム用メモリ202に記憶されているエンコード中のピクチャに対応するスライス位置情報について、スライス開始アドレスにスライス開始位置情報の値を記録する。また、ストリーム出力制御部216は、スタート位置記録制御部215の制御の基に、エンコード中のピクチャに対応するスライス位置情報内の先頭の個別情報について、スライスNo.にスライスカウンタの値を記録し、オフセットに0を記録する。   When the next slice to be encoded is the first slice of the picture, the stream output control unit 216 corresponds to the picture being encoded stored in the stream memory 202 under the control of the start position recording control unit 215. For slice position information, the value of slice start position information is recorded at the slice start address. Also, the stream output control unit 216 records the value of the slice counter in the slice number for the individual information at the beginning of the slice position information corresponding to the picture being encoded, based on the control of the start position recording control unit 215. Record 0 in the offset.

また、次にエンコードするスライスがピクチャの先頭のスライスでない場合、ストリーム出力制御部216は、スタート位置記録制御部215の制御の基に、エンコード中のピクチャに対応するスライス位置情報内の次にエンコードするスライスに対応する個別情報について、スライスNo.にスライスカウンタの値を記録し、オフセットにスライス開始位置情報の値を記録する。   If the next slice to be encoded is not the first slice of the picture, the stream output control unit 216 performs the next encoding in the slice position information corresponding to the picture being encoded, under the control of the start position recording control unit 215. For the individual information corresponding to the slice to be recorded, the slice counter value is recorded in the slice number, and the slice start position information value is recorded in the offset.

ステップS130において、エンコーダ211は、スライス層以下の層をエンコードする。エンコーダ211は、エンコードしたデータをストリーム出力制御部216に供給する。ストリーム出力制御部216は、取得したデータをストリーム用メモリ202に記憶させる。   In step S130, the encoder 211 encodes layers below the slice layer. The encoder 211 supplies the encoded data to the stream output control unit 216. The stream output control unit 216 stores the acquired data in the stream memory 202.

ステップS131において、ストリーム出力制御部216は、スライスのデータ長を記録する。具体的には、エンコーダ211は、エンコードが終了したスライスのデータ長を示すスライスデータ長情報をスタート位置メモリ214に記憶させる。また、エンコーダ211は、スライスのエンコードが終了したことを示す情報をスタート位置記録制御部215に供給する。スタート位置記録制御部215は、スタート位置メモリ214から、スライスデータ長情報を取得する。ストリーム出力制御部216は、スタート位置記録制御部215の制御の基に、ストリーム用メモリ202に記憶されているエンコード中のピクチャに対応するスライス位置情報内のエンコードが終了したスライスに対応する個別情報について、データ長にスライスデータ長情報の値を記録する。   In step S131, the stream output control unit 216 records the data length of the slice. Specifically, the encoder 211 causes the start position memory 214 to store slice data length information indicating the data length of the slice that has been encoded. The encoder 211 supplies information indicating that the encoding of the slice is completed to the start position recording control unit 215. The start position recording control unit 215 acquires slice data length information from the start position memory 214. Based on the control of the start position recording control unit 215, the stream output control unit 216 performs individual information corresponding to a slice that has been encoded within the slice position information corresponding to the picture being encoded stored in the stream memory 202. For, record the value of slice data length information in the data length.

その後、処理はステップS126に戻り、ステップS126において、ピクチャ内の全てのスライスがエンコードされたと判定されるまで、ステップS126乃至S131の処理が繰り返し実行され、ピクチャ内の全てのスライスがエンコードされる。   Thereafter, the processing returns to step S126, and the processing of steps S126 to S131 is repeatedly executed until it is determined in step S126 that all slices in the picture are encoded, and all slices in the picture are encoded.

ステップS126において、エンコーダ211は、ピクチャ内に含まれる所定の数のスライスのエンコードが終了している場合、ピクチャ内の全てのスライスをエンコードしたと判定し、処理はステップS132に進む。   In step S126, when the encoding of a predetermined number of slices included in the picture has been completed, the encoder 211 determines that all the slices in the picture have been encoded, and the process proceeds to step S132.

ステップS132において、ストリーム出力制御部216は、ピクチャのデータ長を記録する。具体的には、エンコーダ211は、エンコードが終了したピクチャのデータ長を示すピクチャデータ長情報をスタート位置メモリ214に記憶させる。また、エンコーダ211は、ピクチャのエンコードが終了したことを示す情報をスタート位置記録制御部215に供給する。スタート位置記録制御部215は、スタート位置メモリ214から、ピクチャデータ長情報を取得する。ストリーム出力制御部216は、スタート位置記録制御部215の制御の基に、ストリーム用メモリ202に記憶されているエンコード中のGOPに対応するピクチャ位置情報内のエンコードが終了したピクチャに対応する個別情報について、データ長にピクチャデータ長情報の値を記録する。   In step S132, the stream output control unit 216 records the data length of the picture. Specifically, the encoder 211 causes the start position memory 214 to store picture data length information indicating the data length of a picture that has been encoded. Also, the encoder 211 supplies information indicating that the encoding of the picture has been completed to the start position recording control unit 215. The start position recording control unit 215 acquires picture data length information from the start position memory 214. Based on the control of the start position recording control unit 215, the stream output control unit 216 performs individual information corresponding to a picture that has been encoded within the picture position information corresponding to the GOP being encoded stored in the stream memory 202. Is recorded with the value of the picture data length information in the data length.

ステップS133において、スライスカウント部213は、スライスカウンタをリセットする。具体的には、エンコーダ211は、ピクチャのエンコードが終了したことを示す情報をスライスカウント部213に供給する。スライスカウント部213は、スライスカウンタをリセットする。   In step S133, the slice count unit 213 resets the slice counter. Specifically, the encoder 211 supplies the slice count unit 213 with information indicating that picture encoding has been completed. The slice count unit 213 resets the slice counter.

その後、処理はステップS121に戻り、ステップS121において、GOP内の全てのピクチャがエンコードされたと判定されるまで、ステップS121乃至S133の処理が繰り返し実行され、GOP内の全てのピクチャがエンコードされる。   Thereafter, the processing returns to step S121, and in step S121, the processing in steps S121 to S133 is repeatedly executed until it is determined that all the pictures in the GOP are encoded, and all the pictures in the GOP are encoded.

ステップS121において、エンコーダ211は、現在エンコード中のGOPに含める予定の数のピクチャのエンコードが終了している場合、GOP内の全てのピクチャをエンコードしたと判定し、処理はステップS134に進む。   In step S121, when encoding of the number of pictures to be included in the currently encoded GOP has been completed, the encoder 211 determines that all the pictures in the GOP have been encoded, and the process proceeds to step S134.

ステップS134において、ストリーム出力制御部216は、映像ストリームを出力し、ピクチャ層以下エンコード処理は終了する。具体的には、例えば、ストリーム出力制御部216は、ストリーム用メモリ202のデータ量が所定の閾値を超えている場合、ストリーム用メモリ202に記憶されているエンコードされた映像ストリームを、バス130およびインタフェース129−3を介して、ドライブ112に供給する。ドライブ112は、リムーバブルメディア116に映像ストリームを記録する。   In step S134, the stream output control unit 216 outputs the video stream, and the encoding processing below the picture layer ends. Specifically, for example, when the data amount of the stream memory 202 exceeds a predetermined threshold, the stream output control unit 216 converts the encoded video stream stored in the stream memory 202 into the bus 130 and It is supplied to the drive 112 via the interface 129-3. The drive 112 records the video stream on the removable medium 116.

次に、図13および図14のフローチャートを参照して、エンコード部201によりエンコードされた映像ストリームをデコード部251によりデコードする場合のデコード処理を説明する。なお、この処理は、例えば、デコード制御部264が、ユーザがマウス114またはキーボード115を用いて入力したデコードの指示を、インタフェース129−1およびバス130を介して取得した場合、開始される。また、以下、リムーバブルメディア116に記録されている映像ストリームをデコードする場合の例を説明する。さらに、以下、上述した図1の右側に示されるように、各ピクチャについて、ピクチャ内のいちばん上のスライスから順番に1つずつ各デコーダ265が並列してスライスをデコードするものとする。   Next, a decoding process in the case where the video stream encoded by the encoding unit 201 is decoded by the decoding unit 251 will be described with reference to the flowcharts of FIGS. This process is started when, for example, the decode control unit 264 acquires a decode instruction input by the user using the mouse 114 or the keyboard 115 via the interface 129-1 and the bus 130. Hereinafter, an example of decoding a video stream recorded on the removable medium 116 will be described. Further, hereinafter, as shown on the right side of FIG. 1 described above, for each picture, the decoders 265 sequentially decode the slices in order from the top slice in the picture.

ステップS151において、上述した図4のステップS1と同様の処理により、映像ストリームが全てデコードされたか否かが判定される。まだ映像ストリームが全てデコードされていないと判定された場合、処理はステップS152に進む。   In step S151, it is determined whether or not the entire video stream has been decoded by the same processing as in step S1 of FIG. 4 described above. If it is determined that the video stream has not been completely decoded, the process proceeds to step S152.

ステップS152において、上述した図4のステップS2と同様の処理により、デコードする映像ストリームのシーケンス層がリムーバブルメディア116から読み出され、シーケンス層がデコードされる。   In step S152, the sequence layer of the video stream to be decoded is read from the removable medium 116 by the same process as in step S2 of FIG. 4 described above, and the sequence layer is decoded.

ステップS153において、上述した図4のステップS5と同様の処理により、全てのGOPがデコードされたか否かが判定される。まだ全てのGOPがデコードされていないと判定された場合、処理はステップS154に進む   In step S153, it is determined whether or not all GOPs have been decoded by the same processing as in step S5 of FIG. 4 described above. If it is determined that not all GOPs have been decoded yet, the process proceeds to step S154.

ステップS154において、上述した図4のステップS6と同様の処理により、次にデコードするGOPがリムーバブルメディア116から読み出され、読み出されたGOPのGOP層がデコードされる。   In step S154, the GOP to be decoded next is read from the removable medium 116 by the same processing as in step S6 of FIG. 4 described above, and the GOP layer of the read GOP is decoded.

ステップS155において、ストリーム解析部262は、ピクチャ位置情報を抽出する。具体的には、ストリーム解析部262は、ステップS154においてデコードしたGOP層のユーザデータ領域に記録されているピクチャ位置情報を抽出する。ストリーム解析部262は、抽出したピクチャ位置情報をスタート位置検出部271に供給する。   In step S155, the stream analysis unit 262 extracts picture position information. Specifically, the stream analysis unit 262 extracts the picture position information recorded in the user data area of the GOP layer decoded in step S154. The stream analysis unit 262 supplies the extracted picture position information to the start position detection unit 271.

ステップS156において、上述した図4のステップS7と同様の処理により、GOP内の全てのピクチャがデコードされたか否かが判定される。まだGOP内の全てのピクチャがデコードされていないと判定された場合、処理はステップS157に進む。   In step S156, it is determined whether or not all the pictures in the GOP have been decoded by the same processing as in step S7 of FIG. 4 described above. If it is determined that all the pictures in the GOP have not been decoded yet, the process proceeds to step S157.

ステップS157において、ストリーム読出し制御部261は、次にデコードするピクチャのピクチャ層を読み出す。具体的には、デコード制御部264は、ピクチャNo.を指定することにより次にデコードするピクチャの開始位置の検出を指示する開始位置検出指示情報をスタート位置検出部271に供給する。スタート位置検出部271は、ピクチャ位置情報に基づいて、指定されたピクチャNo.のピクチャの開始位置を検出する。スタート位置検出部271は、検出したピクチャの開始位置を示す情報をデコード制御部264に供給する。デコード制御部264は、スタート位置検出部271により検出されたピクチャの開始位置からのピクチャ層の読出しを指示する情報をストリーム読出し制御部261に供給する。ストリーム読出し制御部261は、指定された開始位置から始まる、次にデコードするピクチャのピクチャ層をストリーム用メモリ152に記憶されているGOPから読み出す。ストリーム読出し制御部261は、読み出したピクチャ層をストリーム解析部262に供給する。   In step S157, the stream read control unit 261 reads the picture layer of the picture to be decoded next. Specifically, the decode control unit 264 supplies start position detection instruction information for instructing detection of the start position of the next picture to be decoded to the start position detection unit 271 by designating the picture number. The start position detector 271 detects the start position of the picture of the designated picture number based on the picture position information. The start position detection unit 271 supplies information indicating the detected start position of the picture to the decode control unit 264. The decode control unit 264 supplies the stream read control unit 261 with information instructing to read the picture layer from the start position of the picture detected by the start position detection unit 271. The stream read control unit 261 reads the picture layer of the next picture to be decoded starting from the designated start position from the GOP stored in the stream memory 152. The stream read control unit 261 supplies the read picture layer to the stream analysis unit 262.

ステップS158において、上述した図4のステップS9と同様の処理により、ピクチャ層がデコードされる。   In step S158, the picture layer is decoded by the same processing as in step S9 of FIG. 4 described above.

ステップS159において、ストリーム解析部262は、スライス位置情報を抽出する。具体的には、ストリーム解析部262は、ステップS158においてデコードしたピクチャ層のユーザデータ領域に記録されているスライス位置情報を抽出する。ストリーム解析部262は、抽出したスライス位置情報をスタート位置検出部271に供給する。   In step S159, the stream analysis unit 262 extracts slice position information. Specifically, the stream analysis unit 262 extracts slice position information recorded in the user data area of the picture layer decoded in step S158. The stream analysis unit 262 supplies the extracted slice position information to the start position detection unit 271.

ステップS160において、スタート位置検出部271は、デコードを開始する位置を検出する。具体的には、デコード制御部264は、スライスNo.を指定することにより次に各デコーダ265がデコードする各スライスの開始位置の検出を指示する開始位置検出指示情報をスタート位置検出部271に供給する。スタート位置検出部271は、スライス位置情報に基づいて、指定されたスライスNo.のスライスの開始位置を検出する。デコード制御部264は、検出した各スライスの開始位置を示す情報をデコード制御部264に供給する。   In step S160, the start position detector 271 detects a position where decoding is to start. Specifically, the decode control unit 264 supplies start position detection instruction information for instructing detection of the start position of each slice to be decoded next by each decoder 265 to the start position detection unit 271 by designating a slice number. To do. The start position detector 271 detects the start position of the slice of the designated slice number based on the slice position information. The decode control unit 264 supplies information indicating the detected start position of each slice to the decode control unit 264.

ステップS161において、デコード制御部264は、デコードの開始を指示する。具体的には、デコード制御部264は、ステップS160において検出された開始位置から始まる各スライスの各デコーダ265への供給を指示する情報をストリーム読出し制御部261に供給する。また、デコード制御部264は、次のスライスのデコードの開始を指示する情報を各デコーダ265に供給する。   In step S161, the decode control unit 264 instructs to start decoding. Specifically, the decode control unit 264 supplies the stream read control unit 261 with information instructing supply to each decoder 265 of each slice starting from the start position detected in step S160. In addition, the decoding control unit 264 supplies information indicating the start of decoding of the next slice to each decoder 265.

ステップS162において、デコーダ265は、デコードを開始する。具体的には、ストリーム読出し制御部261は、デコード制御部264により指示された開始位置から始まるスライスをストリーム用メモリ152から読み出し、読み出したスライスを各デコーダ265に供給する。デコーダ265は、取得したスライスのデコードを開始する。デコーダ265は、ステップS162において開始したスライスのデコードが終了した場合、デコードが終了したことを示す情報をデコード制御部264に供給し、デコードしたデータをベースバンド出力制御部266に供給する。ベースバンド出力制御部266は、取得したデータをベースバンド用メモリ153に記憶させる。   In step S162, the decoder 265 starts decoding. Specifically, the stream read control unit 261 reads a slice starting from the start position instructed by the decode control unit 264 from the stream memory 152 and supplies the read slice to each decoder 265. The decoder 265 starts decoding the acquired slice. When the decoding of the slice started in step S162 is completed, the decoder 265 supplies information indicating that the decoding is completed to the decode control unit 264, and supplies the decoded data to the baseband output control unit 266. The baseband output control unit 266 stores the acquired data in the baseband memory 153.

ステップS163において、上述した図5のステップS13と同様の処理により、エラーが発生したか否かが判定される。エラーが発生していないと判定された場合、処理はステップS164に進む。   In step S163, whether or not an error has occurred is determined by the same processing as in step S13 of FIG. If it is determined that no error has occurred, the process proceeds to step S164.

ステップS164において、デコード制御部264は、デコードが終了したデコーダ265があるか否かを判定する。デコード制御部264は、デコードが終了したことを示す情報をどのデコーダ165からも取得していない場合、デコードが終了したデコーダ265がないと判定し、処理はステップS163に戻り、ステップS163において、エラーが発生したと判定されるか、または、ステップS164において、デコードが終了したデコーダ265があると判定されるまで、ステップS163およびS164の判定処理が繰り返し実行される。   In step S164, the decode control unit 264 determines whether there is a decoder 265 that has been decoded. If the decoding control unit 264 has not obtained any information indicating that decoding has been completed from any decoder 165, the decoding control unit 264 determines that there is no decoder 265 that has completed decoding, and the process returns to step S163. In step S163, an error is detected. Until it is determined that the error has occurred or it is determined in step S164 that there is a decoder 265 that has finished decoding, the determination processing in steps S163 and S164 is repeatedly executed.

ステップS164において、デコード制御部264は、デコードが終了したことを示す情報を1つ以上のデコーダ165から取得している場合、デコードが終了したデコーダ265があると判定し、処理はステップS165に進む。   In step S164, if the decoding control unit 264 has acquired information indicating that decoding has been completed from one or more decoders 165, the decoding control unit 264 determines that there is a decoder 265 that has completed decoding, and the process proceeds to step S165. .

ステップS165において、デコード制御部264は、デコードが終了したデコーダ265が、デコード中のピクチャにおいて割り当てられたスライスを全てデコードしたか否かを判定する。デコード中のピクチャにおいて割り当てられているスライスがまだ全てデコードされていないと判定された場合、処理はステップS160に戻り、ステップS160以降の処理が実行される。すなわち、デコードが終了したデコーダ265は、デコード中のピクチャにおいて割り当てられている次のスライスをデコードする。   In step S165, the decoding control unit 264 determines whether or not the decoder 265 that has finished decoding has decoded all the slices allocated in the picture being decoded. If it is determined that all the allocated slices in the picture being decoded have not been decoded yet, the process returns to step S160, and the processes after step S160 are executed. That is, the decoder 265 that has finished decoding decodes the next slice assigned in the picture being decoded.

ステップS163において、エラーが発生したと判定された場合、処理はステップS166に進む。   If it is determined in step S163 that an error has occurred, the process proceeds to step S166.

ステップS166において、デコード制御部264は、デコードを再開する位置を決定する。デコード制御部264は、例えば、デコードを失敗したスライスの次のスライスをデコードの再開位置に決定する。その後、処理はステップS160に戻り、ステップS160以降の処理が実行される。すなわち、エラーが発生したデコーダ265は、エラーが発生したスライスの次のスライスをデコードする。   In step S166, the decoding control unit 264 determines a position at which decoding is resumed. For example, the decoding control unit 264 determines the next slice of the slice that has failed to be decoded as the decoding restart position. Thereafter, the process returns to step S160, and the processes after step S160 are executed. That is, the decoder 265 in which the error has occurred decodes the slice next to the slice in which the error has occurred.

ステップS165において、デコードが終了したデコーダ265が、デコード中のピクチャにおいて割り当てられたスライスを全てデコードしたと判定された場合、処理はステップS167に進む。   If it is determined in step S165 that the decoder 265 that has finished decoding has decoded all the slices allocated in the picture being decoded, the process proceeds to step S167.

ステップS167において、デコード制御部264は、全てのデコーダ265の処理が終了したか否かを判定する。具体的には、デコード制御部264は、デコード中のピクチャにおいてそれぞれ割り当てられたスライスのデコードが終了していないデコーダ265があるか否かを検出し、割り当てられたスライスのデコードが終了していないデコーダ265がある場合、まだ全てのデコーダ265の処理が終了していないと判定し、処理はステップS163に戻り、ステップS163以降の処理が実行される。すなわち、デコード中のピクチャにおいて割り当てられたスライスのデコードが終了したデコーダ265は待機したまま、割り当てられたスライスのデコードが終了していないデコーダ265の処理が継続して実行される。   In step S167, the decode control unit 264 determines whether or not the processing of all the decoders 265 has been completed. Specifically, the decoding control unit 264 detects whether there is a decoder 265 that has not finished decoding the assigned slice in the picture being decoded, and has not finished decoding the assigned slice. If there is a decoder 265, it is determined that the processing of all the decoders 265 has not been completed yet, the processing returns to step S163, and the processing after step S163 is executed. That is, the decoder 265 that has finished decoding the allocated slice in the picture being decoded is in a standby state, and the processing of the decoder 265 that has not finished decoding the allocated slice is continuously executed.

ステップS167において、全てのデコーダ265の処理が終了したと判定された場合、処理はステップS168に進む。   If it is determined in step S167 that all the decoders 265 have been processed, the process proceeds to step S168.

ステップS168において、上述した図5のステップS17と同様の処理により、1フレーム分のデータが出力され、処理はステップS156に戻る。   In step S168, data for one frame is output by the same process as in step S17 of FIG. 5 described above, and the process returns to step S156.

ステップS156において、まだGOP内の全てのピクチャがデコードされていないと判定された場合、処理はステップS157に進み、上述したステップS157以降の処理が実行される。すなわち、次のピクチャがデコードされる。   If it is determined in step S156 that all the pictures in the GOP have not been decoded yet, the process proceeds to step S157, and the processes after step S157 described above are executed. That is, the next picture is decoded.

ステップS156において、GOP内の全てのピクチャがデコードされたと判定された場合、処理はステップS153に戻る。   If it is determined in step S156 that all the pictures in the GOP have been decoded, the process returns to step S153.

ステップS153において、まだ全てのGOPがデコードされていないと判定された場合、処理はステップS154に進み、上述したステップS154以降の処理が実行される。すなわち、次のGOPがデコードされる。   If it is determined in step S153 that not all GOPs have been decoded yet, the process proceeds to step S154, and the processes after step S154 described above are executed. That is, the next GOP is decoded.

ステップS153において、全てのGOPがデコードされたと判定された場合、処理はステップS151に戻る。   If it is determined in step S153 that all GOPs have been decoded, the process returns to step S151.

ステップS151において、まだ映像ストリームが全てデコードされていないと判定された場合、処理はステップS152に進み、上述したステップS152以降の処理が実行される。すなわち、映像ストリームの次のシーケンス層がデコードされる。   If it is determined in step S151 that the entire video stream has not been decoded yet, the process proceeds to step S152, and the processes after step S152 described above are executed. That is, the next sequence layer of the video stream is decoded.

ステップS151において、映像ストリームが全てデコードされたと判定された場合、デコード処理は終了する。   If it is determined in step S151 that the entire video stream has been decoded, the decoding process ends.

次に、図15のフローチャートを参照して、映像ストリームを先頭からデコードせずに、ユーザの指示などにより指定されてピクチャからデコードを開始する場合、デコード部251により実行されるデコード開始位置検出処理を説明する。   Next, referring to the flowchart of FIG. 15, the decoding start position detection process executed by the decoding unit 251 when decoding is started from a picture specified by a user instruction or the like without decoding the video stream from the beginning. Will be explained.

ステップS181において、デコード制御部164は、デコードを開始する位置を検出する。具体的には、デコード制御部164は、ユーザにより指示されたデコードの開始位置のピクチャのピクチャNo.を検出する。   In step S181, the decode control unit 164 detects a position where decoding is started. Specifically, the decoding control unit 164 detects the picture number of the picture at the decoding start position designated by the user.

ステップS182において、上述した図4のステップS2と同様の処理により、シーケンス層がデコードされる。   In step S182, the sequence layer is decoded by the same processing as in step S2 of FIG. 4 described above.

ステップS183において、上述した図4のステップS6と同様の処理により、デコードを開始するピクチャを含むGOPのGOP層がデコードされる。   In step S183, the GOP layer of the GOP including the picture to be decoded is decoded by the same processing as in step S6 of FIG. 4 described above.

ステップS184において、上述した図13のステップS155と同様の処理により、デコードを開始するピクチャを含むGOPのピクチャ位置情報が抽出される。   In step S184, GOP picture position information including a picture to be decoded is extracted by the same processing as in step S155 of FIG. 13 described above.

ステップS185において、上述した図13のステップS157と同様の処理により、ピクチャ位置情報に基づいて、デコードを開始するピクチャのピクチャ層が読み出される。   In step S185, the picture layer of the picture to be decoded is read based on the picture position information by the same process as in step S157 of FIG.

ステップS186において、上述した図13のステップS158と同様の処理により、デコードを開始するピクチャのピクチャ層がデコードされる。   In step S186, the picture layer of the picture to be decoded is decoded by the same processing as in step S158 of FIG. 13 described above.

ステップS187において、上述した図13のステップS159と同様の処理により、デコードを開始するピクチャのスライス情報が抽出される。   In step S187, slice information of a picture to start decoding is extracted by the same processing as in step S159 of FIG.

ステップS188において、上述した図13のステップS160と同様の処理により、スライス位置情報に基づいて、各デコーダ265がデコードを開始するスライスの位置が検出される。   In step S188, the position of the slice at which each decoder 265 starts decoding is detected based on the slice position information by the same processing as in step S160 of FIG. 13 described above.

ステップS189において、上述した図13のステップS161と同様の処理により、ステップS188において検出された開始位置から始まる各スライスの各デコーダ265への供給を指示する情報がストリーム読出し制御部261に供給され、ステップS188に検出された開始位置から始まるスライスのデコードの開始が各デコーダ265に指示され、デコード開始位置検出処理は終了する。   In step S189, information instructing supply to each decoder 265 of each slice starting from the start position detected in step S188 is supplied to the stream read control unit 261 by the same processing as in step S161 of FIG. Each decoder 265 is instructed to start decoding a slice starting from the start position detected in step S188, and the decoding start position detection process ends.

このように、ストリーム解析部262がピクチャ層をデコードする場合、映像ストリーム上のピクチャ層の開始位置(スタートコード)を検索することなく、ピクチャ位置情報に基づいて、迅速にデコードの開始位置が検出される。また、各デコーダ465がスライスをデコードする場合、映像ストリーム上のスライス層の開始位置(スタートコード)を検索することなく、スライス位置情報に基づいて、迅速にデコードの開始位置が検出される。従って、デコードを開始する位置を検出する時間が短縮され、映像ストリームのデコードを高速化することができる。なお、デコード処理を分割せずに1つのデコーダによりデコードする場合も同様に、デコードを開始する位置を検出する時間が短縮され、映像ストリームのデコードを高速化することができる。   In this way, when the stream analysis unit 262 decodes the picture layer, the decoding start position can be quickly detected based on the picture position information without searching for the start position (start code) of the picture layer on the video stream. Is done. Further, when each decoder 465 decodes a slice, the start position of decoding is quickly detected based on the slice position information without searching for the start position (start code) of the slice layer on the video stream. Therefore, the time for detecting the position to start decoding is shortened, and the decoding of the video stream can be speeded up. Similarly, when decoding is performed by one decoder without dividing the decoding process, the time for detecting the position to start decoding is shortened, and the decoding of the video stream can be speeded up.

なお、ピクチャ位置情報およびスライス位置情報を、映像ストリーム内に記録せずに、映像ストリームとは異なるファイルに記録することも可能である。図16乃至図23を参照して、ピクチャ位置情報およびスライス位置情報を映像ストリームとは異なるファイルに記録する場合の実施の形態を説明する。   Note that the picture position information and the slice position information can be recorded in a file different from the video stream without being recorded in the video stream. With reference to FIGS. 16 to 23, an embodiment in which picture position information and slice position information are recorded in a file different from a video stream will be described.

図16は、所定のプログラムを実行するCPU121により実現されるエンコード部301の機能の構成の例を示す図である。エンコード部301は、図7のエンコード部201と比較して、GOPカウント部321が設けられている点が異なる。なお、図中、図7と対応する部分については下2桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。   FIG. 16 is a diagram illustrating an example of a functional configuration of the encoding unit 301 realized by the CPU 121 that executes a predetermined program. The encoding unit 301 is different from the encoding unit 201 in FIG. 7 in that a GOP count unit 321 is provided. In the figure, the parts corresponding to those in FIG. 7 are given the same reference numerals in the last two digits, and the description of the parts having the same processing will be omitted because it will be repeated.

エンコード部301は、エンコーダ311、ピクチャカウント部312、スライスカウント部313、スタート位置メモリ314、スタート位置記録制御部315、ストリーム出力制御部316、および、GOPカウント部321を含むように構成される。   The encoding unit 301 includes an encoder 311, a picture count unit 312, a slice count unit 313, a start position memory 314, a start position recording control unit 315, a stream output control unit 316, and a GOP count unit 321.

エンコーダ311は、図7のエンコーダ211の処理に加えて、映像ストリームのエンコードを開始する前に、エンコードすることにより生成される映像ストリームのクリップの記録媒体(例えば、リムーバブルメディア116またはHDD124)への記録を開始する位置を示す情報(以下、クリップ開始位置情報と称する)を、スタート位置メモリ314に記憶させる。また、エンコーダ311は、映像ストリームのエンコードを開始するとき、映像ストリームのエンコードの開始を通知する情報をスタート位置記録制御部315に供給する。さらに、エンコーダ311は、GOP(GOP層)のエンコードを開始する度に、GOPのエンコードの開始を通知する情報をGOPカウント部321およびスタート位置記録制御部315に供給する。   In addition to the processing of the encoder 211 in FIG. 7, the encoder 311 sends the clip of the video stream generated by encoding to the recording medium (for example, the removable medium 116 or the HDD 124) before starting the encoding of the video stream. Information indicating the recording start position (hereinafter referred to as clip start position information) is stored in the start position memory 314. In addition, when the encoding of the video stream is started, the encoder 311 supplies information for notifying the start of the encoding of the video stream to the start position recording control unit 315. Further, every time encoding of the GOP (GOP layer) is started, the encoder 311 supplies information notifying the start of encoding of the GOP to the GOP count unit 321 and the start position recording control unit 315.

GOPカウント部321は、クリップ内のGOPの数をカウントする。具体的には、GOPカウント部321は、GOPカウンタを管理し、エンコーダ311からGOPのエンコードの開始を通知する情報が供給される毎に、GOPカウンタの値をインクリメントする。   The GOP count unit 321 counts the number of GOPs in the clip. Specifically, the GOP count unit 321 manages the GOP counter, and increments the value of the GOP counter every time information that notifies the start of GOP encoding is supplied from the encoder 311.

スタート位置記録制御部315は、スタート位置メモリ314に記録されているピクチャ開始位置情報、スライス開始位置情報、ピクチャデータ長情報、スライスデータ長情報、または、クリップ開始位置情報を読み出す。また、スタート位置記録制御部315は、ピクチャカウンタの値を示す情報をピクチャカウント部312から取得する。さらに、スタート位置記録制御部315は、スライスカウンタの値を示す情報をスライスカウント部313から取得する。また、スタート位置記録制御部315は、GOPカウンタの値を示す情報をGOPカウント部321から取得する。   The start position recording control unit 315 reads picture start position information, slice start position information, picture data length information, slice data length information, or clip start position information recorded in the start position memory 314. In addition, the start position recording control unit 315 acquires information indicating the value of the picture counter from the picture count unit 312. Further, the start position recording control unit 315 acquires information indicating the value of the slice counter from the slice count unit 313. Also, the start position recording control unit 315 acquires information indicating the value of the GOP counter from the GOP count unit 321.

スタート位置記録制御部315は、クリップ内の各ピクチャおよび各スライスの位置を示す情報(以下、クリップ位置情報と称する)を生成する。スタート位置記録制御部315は、ストリーム用メモリ202にクリップ位置情報を一時的に記憶させ、クリップ位置情報を適宜更新する。   The start position recording control unit 315 generates information indicating the position of each picture and each slice in the clip (hereinafter referred to as clip position information). The start position recording control unit 315 temporarily stores the clip position information in the stream memory 202, and updates the clip position information as appropriate.

ストリーム出力制御部316は、エンコーダ311によりエンコードされた映像ストリームをストリーム用メモリ202に一時的に記憶させる。ストリーム出力制御部316は、トリーム用メモリ202に記憶されている映像ストリームまたはクリップ位置情報を読み出し、読み出した映像ストリームまたはクリップ位置情報を外部(例えば、バス130を介して、ドライブ112またはHDD124)に出力する。   The stream output control unit 316 temporarily stores the video stream encoded by the encoder 311 in the stream memory 202. The stream output control unit 316 reads the video stream or clip position information stored in the trim memory 202, and externally reads the read video stream or clip position information (for example, the drive 112 or the HDD 124 via the bus 130). Output.

図17は、所定のプログラムを実行するCPU121により実現されるデコード部351の機能の構成の例を示す図である。なお、図中、図8と対応する部分については下2桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。   FIG. 17 is a diagram illustrating an example of a functional configuration of the decoding unit 351 realized by the CPU 121 that executes a predetermined program. In the figure, portions corresponding to those in FIG. 8 are denoted by the same reference numerals in the last two digits, and the description of the portions having the same processing will be omitted because it will be repeated.

デコード部351は、ストリーム読出し制御部361、ストリーム解析部362、デコード制御部364、デコーダ365−1乃至365−4、および、ベースバンド出力制御部366、および、スタート位置検出部371を含むように構成される。   The decoding unit 351 includes a stream read control unit 361, a stream analysis unit 362, a decode control unit 364, decoders 365-1 to 365-4, a baseband output control unit 366, and a start position detection unit 371. Composed.

デコード制御部364は、図8のデコード制御部264の処理に加えて、デコードする映像ストリームのクリップに対応するクリップ位置情報の取得を指示する情報をスタート位置検出部371に供給する。   In addition to the processing of the decode control unit 264 of FIG. 8, the decode control unit 364 supplies information for instructing acquisition of clip position information corresponding to the clip of the video stream to be decoded to the start position detection unit 371.

スタート位置検出部371は、デコードする映像ストリームのクリップに対応するクリップ位置情報を、クリップが記録されている記録媒体から読み出す。スタート位置検出部371は、クリップ位置情報に基づいて、デコード制御部364からの開始位置検出指示情報により指定されたピクチャまたはスライスの開始位置を検出する。スタート位置検出部371は、検出したピクチャまたはスライスの開始位置を示す情報をデコード制御部364に供給する。   The start position detection unit 371 reads clip position information corresponding to the clip of the video stream to be decoded from the recording medium on which the clip is recorded. The start position detection unit 371 detects the start position of the picture or slice specified by the start position detection instruction information from the decode control unit 364 based on the clip position information. The start position detection unit 371 supplies information indicating the start position of the detected picture or slice to the decode control unit 364.

なお、以下、デコーダ365−1乃至365−4を個々に区別する必要がない場合、単にデコーダ365と称する。   Hereinafter, when it is not necessary to distinguish the decoders 365-1 to 365-4 from each other, they are simply referred to as a decoder 365.

図18は、クリップ位置情報のデータの構成の例を示す図である。クリップ位置情報は、映像ストリームのクリップごとに記録され、クリップNo.、クリップ開始アドレス、ピクチャ位置情報、および、スライス位置情報を含むように構成される。   FIG. 18 is a diagram illustrating an example of a data structure of clip position information. The clip position information is recorded for each clip of the video stream, and is configured to include a clip number, a clip start address, picture position information, and slice position information.

クリップNo.は、クリップ位置情報に対応するクリップを識別するための番号であって、記録媒体に記録されている映像ストリームのクリップを一意に識別するために割り当てられた番号である。   The clip number is a number for identifying a clip corresponding to the clip position information, and is a number assigned for uniquely identifying the clip of the video stream recorded on the recording medium.

クリップ開始アドレスは、クリップが記録媒体(例えば、リムーバブルメディア116またはHDD124)に記録される位置の先頭のアドレスを示す。   The clip start address indicates the start address of the position where the clip is recorded on the recording medium (for example, the removable medium 116 or the HDD 124).

ピクチャ位置情報は、図19を参照して後述するように、クリップに含まれる各GOPについて、GOP内の各ピクチャの位置を示す情報が記録される。   As the picture position information, as will be described later with reference to FIG. 19, information indicating the position of each picture in the GOP is recorded for each GOP included in the clip.

スライス位置情報は、図20を参照して後述するように、クリップに含まれる各ピクチャについて、ピクチャ内の各スライスの位置を示す情報が記録される。   As described later with reference to FIG. 20, the slice position information records information indicating the position of each slice in the picture for each picture included in the clip.

図19は、図18のクリップ位置情報に含まれるピクチャ位置情報のデータの構成の例を示す図である。クリップ位置情報のピクチャ位置情報は、図10のピクチャ位置情報と比較して、GOP No.が追加されている点が異なる。GOP No.は、クリップ内のGOPを一意に識別するために割り当てられた番号であり、ピクチャ位置情報に対応するGOPのGOP No.を示す。   FIG. 19 is a diagram illustrating an example of a data structure of picture position information included in the clip position information of FIG. The picture position information of the clip position information is different from the picture position information of FIG. 10 in that a GOP No. is added. The GOP No. is a number assigned to uniquely identify the GOP in the clip, and indicates the GOP No. of the GOP corresponding to the picture position information.

図20は、図18のクリップ位置情報に含まれるスライス位置情報のデータの構成の例を示す図である。クリップ位置情報のスライス位置情報は、図11のスライス位置情報と比較して、ピクチャ No.が追加されている点が異なる。ピクチャ No.は、スライス位置情報に対応するピクチャのピクチャ No.を示す。   FIG. 20 is a diagram illustrating an example of a data configuration of slice position information included in the clip position information of FIG. The slice position information of the clip position information is different from the slice position information of FIG. 11 in that a picture number is added. The picture number indicates the picture number of the picture corresponding to the slice position information.

次に、図21のフローチャートを参照して、エンコード部301により実行されるエンコード処理を説明する。なお、この処理は、例えば、エンコーダ311が、ユーザがマウス114またはキーボード115を用いて入力したエンコードの指示を、インタフェース129−1およびバス130を介して取得した場合、開始される。また、以下、外部映像記録装置113−1からエンコード前のベースバンド信号である映像ストリームが、インタフェース129−2およびバス130を介してエンコーダ311に入力され、エンコードされた映像ストリームがリムーバブルメディア116に記録される場合の例を説明する。   Next, the encoding process executed by the encoding unit 301 will be described with reference to the flowchart of FIG. This process is started when, for example, the encoder 311 acquires an encoding instruction input by the user using the mouse 114 or the keyboard 115 via the interface 129-1 and the bus 130. Hereinafter, a video stream that is a baseband signal before encoding is input from the external video recording apparatus 113-1 to the encoder 311 via the interface 129-2 and the bus 130, and the encoded video stream is input to the removable medium 116. An example of recording will be described.

ステップS201において、エンコーダ311は、クリップの開始位置を決定する。具体的には、エンコーダ311は、エンコードする映像ストリームのクリップのリムーバブルメディア116への記録を開始する位置を決定する。エンコーダ311は、決定した開始位置を示すクリップ開始位置情報をスタート位置メモリ314に記憶させる。   In step S201, the encoder 311 determines the start position of the clip. Specifically, the encoder 311 determines a position where recording of the clip of the video stream to be encoded onto the removable medium 116 is started. The encoder 311 stores clip start position information indicating the determined start position in the start position memory 314.

ステップS202において、スタート位置記録制御部315は、クリップの開始位置を記録する。具体的には、エンコーダ311は、映像ストリームのエンコードの開始を通知する情報をスタート位置記録制御部315に供給する。スタート位置記録制御部315は、スタート位置メモリ314からクリップ開始位置情報を取得する。スタート位置記録制御部315は、クリップ位置情報を生成する。スタート位置記録制御部315は、エンコードを開始する映像ストリームのクリップのクリップNo.をクリップ位置情報に記録する。また、スタート位置記録制御部315は、クリップ位置情報のクリップ開始アドレスに、クリップ開始位置情報の値を記録する。スタート位置記録制御部315は、クリップ位置情報をストリーム用メモリ152に記憶させる。   In step S202, the start position recording control unit 315 records the start position of the clip. Specifically, the encoder 311 supplies information that notifies the start of encoding of the video stream to the start position recording control unit 315. The start position recording control unit 315 acquires clip start position information from the start position memory 314. The start position recording control unit 315 generates clip position information. The start position recording control unit 315 records the clip number of the clip of the video stream to start encoding in the clip position information. In addition, the start position recording control unit 315 records the value of the clip start position information at the clip start address of the clip position information. The start position recording control unit 315 stores the clip position information in the stream memory 152.

ステップS203において、上述した図11のステップS101と同様の処理により、映像ストリームが全てエンコードされたか否かが判定される。まだ全ての映像ストリームがエンコードされていないと判定された場合、処理はステップS204に進む。   In step S203, it is determined whether or not the entire video stream has been encoded by the same processing as in step S101 of FIG. 11 described above. If it is determined that not all video streams have been encoded yet, the process proceeds to step S204.

ステップS204において、上述した図11のステップS102と同様の処理により、シーケンス層を変更するか否かが判定される。シーケンス層を変更すると判定された場合、処理はステップS205に進む。   In step S204, whether or not to change the sequence layer is determined by the same processing as in step S102 of FIG. If it is determined to change the sequence layer, the process proceeds to step S205.

ステップS205において、上述した図11のステップS103と同様の処理により、シーケンス層がエンコードされる。   In step S205, the sequence layer is encoded by the same process as in step S103 of FIG.

ステップS204において、シーケンス層を変更しないと判定された場合、ステップS205の処理はスキップされ、処理はステップS206に進む。   If it is determined in step S204 that the sequence layer is not changed, the process of step S205 is skipped, and the process proceeds to step S206.

ステップS206において、GOPカウント部321は、GOPカウンタをインクリメントする。具体的には、エンコーダ311は、次のGOPのエンコードの開始を通知する情報をGOPカウント部321に供給する。GOPカウント部321は、GOPカウンタをインクリメントする。   In step S206, the GOP count unit 321 increments the GOP counter. Specifically, the encoder 311 supplies information notifying the start of encoding of the next GOP to the GOP count unit 321. The GOP count unit 321 increments the GOP counter.

ステップS207において、スタート位置記録制御部315は、GOP No.を記録する。具体的には、エンコーダ311は、次のGOPのエンコードの開始を通知する情報をスタート位置記録制御部315に供給する。スタート位置記録制御部315は、GOPカウント部321から、GOPカウンタの値を示す情報を取得する。スタート位置記録制御部315は、ストリーム用メモリ202に記憶されているクリップ位置情報の次にエンコードするGOPに対応するピクチャ位置情報について、GOP No.にGOPカウンタの値を記録する。   In step S207, the start position recording control unit 315 records the GOP No. Specifically, the encoder 311 supplies information for notifying the start of encoding of the next GOP to the start position recording control unit 315. The start position recording control unit 315 acquires information indicating the value of the GOP counter from the GOP count unit 321. The start position recording control unit 315 records the value of the GOP counter in the GOP No. for the picture position information corresponding to the GOP to be encoded next to the clip position information stored in the stream memory 202.

ステップS208において、上述した図11のステップS104と同様の処理により、GOP層がエンコードされる。   In step S208, the GOP layer is encoded by the same processing as in step S104 of FIG. 11 described above.

ステップS209において、図12を参照して上述したピクチャ層以下エンコード処理が行われる。なお、図7のエンコーダ211により実行されるピクチャ層以下エンコード処理と異なり、ピクチャ位置情報およびスライス位置情報が、ストリーム用メモリ202に記憶されているクリップ位置情報に記録される。   In step S209, the encoding processing below the picture layer described above with reference to FIG. 12 is performed. Note that, unlike the encoding processing below the picture layer executed by the encoder 211 in FIG. 7, picture position information and slice position information are recorded in clip position information stored in the stream memory 202.

その後、処理はステップS203に戻り、ステップS203において、映像ストリームを全てエンコードしたと判定されるまで、ステップS203乃至S209の処理が繰り返し実行される。   Thereafter, the process returns to step S203, and the processes of steps S203 to S209 are repeatedly executed until it is determined in step S203 that all the video streams have been encoded.

ステップS203において、映像ストリームが全てエンコードされたと判定された場合、処理はステップS210に進む。   If it is determined in step S203 that the entire video stream has been encoded, the process proceeds to step S210.

ステップS210において、ストリーム出力制御部316は、クリップ位置情報を出力し、エンコード処理は終了する。具体的には、ストリーム出力制御部316は、ストリーム用メモリ202に記憶されているクリップ位置情報を読出し、読み出したクリップ位置情報を、バス130およびインタフェース129−3を介して、ドライブ112に供給する。ドライブ112は、リムーバブルメディア116に、対応するクリップとは別のファイルとしてクリップ位置情報を記録する。   In step S210, the stream output control unit 316 outputs clip position information, and the encoding process ends. Specifically, the stream output control unit 316 reads the clip position information stored in the stream memory 202, and supplies the read clip position information to the drive 112 via the bus 130 and the interface 129-3. . The drive 112 records the clip position information on the removable medium 116 as a file different from the corresponding clip.

次に、図22および図23のフローチャートを参照して、デコード部351により実行されるデコード処理を説明する。図22および図23のフローチャートは、上述した図13および図14のフローチャートと比較して、ステップS251の処理が追加されている。   Next, the decoding process executed by the decoding unit 351 will be described with reference to the flowcharts of FIGS. In the flowcharts of FIGS. 22 and 23, the process of step S251 is added as compared with the flowcharts of FIGS. 13 and 14 described above.

すなわち、ステップS251において、スタート位置検出部371は、クリップ位置情報を取得する。具体的には、デコード制御部364は、デコードする映像ストリームのクリップに対応するクリップ位置情報の取得を指示する情報をスタート位置検出部371に供給する。ドライブ112は、スタート位置検出部371の制御の基に、クリップ位置情報をリムーバブルメディア116から読み出し、読み出したクリップ位置情報を、インタフェース129−3およびバス130を介して、スタート位置検出部371に供給する。   That is, in step S251, the start position detection unit 371 acquires clip position information. Specifically, the decode control unit 364 supplies information for instructing acquisition of clip position information corresponding to the clip of the video stream to be decoded to the start position detection unit 371. The drive 112 reads the clip position information from the removable medium 116 under the control of the start position detection unit 371, and supplies the read clip position information to the start position detection unit 371 via the interface 129-3 and the bus 130. To do.

また、図22および図23のフローチャートは、上述した図13および図14のフローチャートと比較して、映像ストリームに記録されているピクチャ位置情報およびスライス位置情報を抽出する必要がないため、図13のステップS155およびS159に相当する処理が削除される。従って、ピクチャ位置情報およびスライス位置情報の抽出に要する時間が短縮される。   Further, the flowcharts of FIGS. 22 and 23 do not need to extract the picture position information and the slice position information recorded in the video stream as compared with the flowcharts of FIGS. 13 and 14 described above. Processing corresponding to steps S155 and S159 is deleted. Therefore, the time required for extracting picture position information and slice position information is shortened.

その他のステップの処理は、図13および図14を参照して上述した処理と同様であり、その説明は繰り返しになるので省略する。なお、ピクチャ層のデコードの開始位置、および、各デコーダ365のデコードの開始位置が、クリップ位置情報に基づいて検出される。   The processing of the other steps is the same as the processing described above with reference to FIGS. 13 and 14, and the description thereof will be omitted because it will be repeated. Note that the decoding start position of the picture layer and the decoding start position of each decoder 365 are detected based on the clip position information.

なお、図3乃至図6を参照して上述した処理と、図7乃至図15または図16乃至図21を参照して上述した処理とを組み合わせることにより、すなわち、映像ストリーム上で連続したスライスを含むように分割デコード領域を設定するとともに、ピクチャ位置情報およびスライス位置情報を記録するようにした場合、さらに映像ストリームのデコードを高速化することかできる。以下、図3乃至図6を参照して上述した処理と、図7乃至図15を参照して上述した処理とを組み合わせた場合の実施の形態を説明する。なお、映像ストリームのエンコードについては、図7、図11および図12を参照して上述した処理と同様であり、その説明は繰り返しになるので省略する。   Note that, by combining the processing described above with reference to FIGS. 3 to 6 and the processing described above with reference to FIGS. 7 to 15 or FIGS. When the division decoding area is set so as to include the picture position information and the slice position information is recorded, the decoding of the video stream can be further speeded up. Hereinafter, an embodiment in which the processing described above with reference to FIGS. 3 to 6 and the processing described above with reference to FIGS. 7 to 15 are combined will be described. Note that the encoding of the video stream is the same as the processing described above with reference to FIGS. 7, 11, and 12, and the description thereof will be omitted because it will be repeated.

図24は、所定のプログラムを実行するCPU121により実現されるデコード部451の機能の構成の例を示す図である。デコード部451は、図8のデコード部251と比較して、デコード領域設定部463が設けられている点が異なる。なお、図中、図8と対応する部分については下2桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。   FIG. 24 is a diagram illustrating an example of a functional configuration of the decoding unit 451 realized by the CPU 121 that executes a predetermined program. The decoding unit 451 is different from the decoding unit 251 in FIG. 8 in that a decoding area setting unit 463 is provided. In the figure, portions corresponding to those in FIG. 8 are denoted by the same reference numerals in the last two digits, and the description of the portions having the same processing will be omitted because it will be repeated.

デコード部451は、ストリーム読出し制御部461、ストリーム解析部462、デコード領域設定部463、デコード制御部464、デコーダ465−1乃至465−4、ベースバンド出力制御部466、および、スタート位置検出部471を含むように構成される。   The decoding unit 451 includes a stream read control unit 461, a stream analysis unit 462, a decode area setting unit 463, a decode control unit 464, decoders 465-1 to 465-4, a baseband output control unit 466, and a start position detection unit 471. It is comprised so that it may contain.

ストリーム解析部462は、映像ストリームのピクチャ層までの層をデコードし、デコードすることに得られた情報をデコード制御部464に供給する。また、ストリーム解析部462は、映像ストリームのシーケンス層をデコードすることにより得られた映像ストリームの画像サイズを示す情報をデコード領域設定部463に供給する。さらに、ストリーム解析部462は、映像ストリームに記録されているピクチャ位置情報およびスライス位置情報を抽出し、抽出したピクチャ位置情報およびスライス位置情報をスタート位置検出部471に供給する。   The stream analysis unit 462 decodes layers up to the picture layer of the video stream, and supplies information obtained by decoding to the decode control unit 464. In addition, the stream analysis unit 462 supplies information indicating the image size of the video stream obtained by decoding the sequence layer of the video stream to the decoding region setting unit 463. Further, the stream analysis unit 462 extracts picture position information and slice position information recorded in the video stream, and supplies the extracted picture position information and slice position information to the start position detection unit 471.

デコード領域設定部463は、図3のデコード領域設定部163と同様に、分割デコード領域を設定する。デコード領域設定部163は、設定した分割デコード領域を示す情報を、デコード制御部464に供給する。   The decode area setting unit 463 sets a divided decode area in the same manner as the decode area setting unit 163 in FIG. The decode area setting unit 163 supplies information indicating the set divided decode area to the decode control unit 464.

デコード制御部464は、図8のデコード制御部264の処理に加えて、分割デコード領域に基づいて、デコーダ465−1乃至465−4がデコードするスライスを決定する。   In addition to the processing of the decode control unit 264 in FIG. 8, the decode control unit 464 determines slices to be decoded by the decoders 465-1 to 465-4 based on the divided decode region.

なお、以下、デコーダ465−1乃至465−4を個々に区別する必要がない場合、単にデコーダ465と称する。   Hereinafter, the decoders 465-1 to 465-4 are simply referred to as a decoder 465 when it is not necessary to distinguish them individually.

次に、図25および図26のフローチャートを参照して、デコード部451により実行されるデコード処理を説明する。   Next, the decoding process executed by the decoding unit 451 will be described with reference to the flowcharts of FIGS.

ステップS351において、上述した図4のステップS1と同様の処理により、映像ストリームが全てデコードされたか否かが判定される。まだ映像ストリームが全てデコードされていないと判定された場合、処理はステップS352に進む。   In step S351, it is determined whether or not the entire video stream has been decoded by the same processing as in step S1 of FIG. If it is determined that the video stream has not been completely decoded, the process proceeds to step S352.

ステップS352において、上述した図4のステップS2と同様の処理により、デコードする映像ストリームのシーケンス層がリムーバブルメディア116から読み出され、シーケンス層がデコードされる。   In step S352, the sequence layer of the video stream to be decoded is read from the removable medium 116 by the same process as in step S2 of FIG. 4 described above, and the sequence layer is decoded.

ステップS353において、上述した図4のステップS3と同様の処理により、映像ストリームの画像サイズが検出される。   In step S353, the image size of the video stream is detected by the same processing as in step S3 of FIG. 4 described above.

ステップS354において、上述した図4のステップS4と同様の処理により、各デコーダ465がデコードする分割デコード領域が設定され、分割デコード領域を示す情報がデコード制御部464に供給される。   In step S354, a divided decoding area to be decoded by each decoder 465 is set by the same processing as in step S4 in FIG. 4 described above, and information indicating the divided decoding area is supplied to the decoding control unit 464.

ステップS355において、上述した図4のステップS5と同様の処理により、全てのGOPがデコードされたか否かが判定される。まだ全てのGOPがデコードされていないと判定された場合、処理はステップS356に進む   In step S355, it is determined whether or not all GOPs have been decoded by the same processing as in step S5 of FIG. 4 described above. If it is determined that not all GOPs have been decoded yet, the process proceeds to step S356.

ステップS356において、上述した図4のステップS6と同様の処理により、次にデコードするGOPがリムーバブルメディア116から読み出され、読み出されたGOPのGOP層がデコードされる。   In step S356, the GOP to be decoded next is read from the removable medium 116 by the same processing as in step S6 of FIG. 4 described above, and the GOP layer of the read GOP is decoded.

ステップS357において、上述した図13のステップS155と同様の処理により、ピクチャ位置情報が抽出され、ピクチャ位置情報がスタート位置検出部471に供給される。   In step S357, picture position information is extracted by the same processing as in step S155 of FIG. 13 described above, and the picture position information is supplied to the start position detection unit 471.

ステップS358において、上述した図4のステップS7と同様の処理により、GOP内の全てのピクチャがデコードされたか否かが判定される。まだGOP内の全てのピクチャがデコードされていないと判定された場合、処理はステップS359に進む。   In step S358, it is determined whether or not all the pictures in the GOP have been decoded by the same processing as in step S7 of FIG. 4 described above. If it is determined that all the pictures in the GOP have not been decoded yet, the process proceeds to step S359.

ステップS359において、上述した図13のステップS157と同様の処理により、次にデコードするピクチャのピクチャ層が読み出され、ピクチャ層がストリーム解析部462に供給される。   In step S359, the picture layer of the picture to be decoded next is read out by the same processing as in step S157 of FIG. 13 described above, and the picture layer is supplied to the stream analysis unit 462.

ステップS360において、上述した図4のステップS9と同様の処理により、ピクチャ層がデコードされる。   In step S360, the picture layer is decoded by the same process as in step S9 of FIG. 4 described above.

ステップS361において、上述した図13のステップS159と同様の処理により、スライス位置情報が取得され、スライス位置情報がスタート位置検出部471に供給される。   In step S361, slice position information is acquired by the same processing as in step S159 of FIG. 13 described above, and the slice position information is supplied to the start position detection unit 471.

ステップS362において、スタート位置検出部471は、分割デコード領域の開始位置を検出する。具体的には、デコード制御部464は、次にデコードするピクチャにおいて、各デコーダ465がデコードする分割デコード領域の先頭のスライスのスライスNo.を指定することにより、各分割デコード領域の開始位置の検出を指示する開始位置検出指示情報をスタート位置検出部471に供給する。スタート位置検出部471は、スライス位置情報に基づいて、指定されたスライスNo.のスライスの開始位置、すなわち、各分割デコード領域の開始位置を検出する。スタート位置検出部471は、検出した開始位置を示す情報をデコード制御部464に供給する。   In step S362, the start position detection unit 471 detects the start position of the divided decode area. Specifically, the decode control unit 464 detects the start position of each divided decode area by designating the slice number of the first slice of the divided decode area decoded by each decoder 465 in the next picture to be decoded. Is supplied to the start position detector 471. The start position detection unit 471 detects the start position of the slice of the designated slice number, that is, the start position of each divided decode area, based on the slice position information. The start position detection unit 471 supplies information indicating the detected start position to the decode control unit 464.

ステップS363において、デコード制御部464は、デコードの開始を指示する。具体的には、デコード制御部464は、ステップS362において検出された開始位置から始まる各分割デコード領域に含まれるスライスの各デコーダ465への供給を指示する情報をストリーム読出し制御部461に供給する。また、デコード制御部464は、次のピクチャのデコードの開始を指示する情報を各デコーダ465に供給する。   In step S363, the decode control unit 464 instructs the start of decoding. Specifically, the decode control unit 464 supplies the stream read control unit 461 with information instructing the supply to each decoder 465 of the slices included in each divided decode region starting from the start position detected in step S362. In addition, the decoding control unit 464 supplies information indicating the start of decoding of the next picture to each decoder 465.

ステップS364において、デコーダ465は、デコードを開始する。具体的には、ストリーム読出し制御部461は、デコード制御部464により指示された開始位置から始まる各分割デコード領域に含まれるスライスをストリーム用メモリ152から読出す。ストリーム読出し制御部461は、読み出したスライスを、分割デコード領域ごとに、その分割デコード領域のデコードが割り当てられたデコーダ465に供給する。デコーダ465は、分割デコード領域内の先頭のスライスからデコードを開始する。デコーダ465は、デコードしたデータを順次ベースバンド出力制御部466に供給する。ベースバンド出力制御部466は、取得したデータをベースバンド用メモリ153に記憶させる。   In step S364, the decoder 465 starts decoding. Specifically, the stream read control unit 461 reads the slice included in each divided decode area starting from the start position instructed by the decode control unit 464 from the stream memory 152. The stream read control unit 461 supplies the read slice to the decoder 465 to which the decoding of the divided decoding area is assigned for each divided decoding area. The decoder 465 starts decoding from the first slice in the divided decoding area. The decoder 465 sequentially supplies the decoded data to the baseband output control unit 466. The baseband output control unit 466 stores the acquired data in the baseband memory 153.

ステップS365において、上述した図5のステップS13と同様の処理により、エラーが発生したか否かが判定される。エラーが発生したと判定された場合、処理はステップS366に進む。   In step S365, whether or not an error has occurred is determined by the same processing as in step S13 of FIG. If it is determined that an error has occurred, the process proceeds to step S366.

ステップS366において、デコード制御部464は、デコードを再開する位置を決定する。デコード制御部464は、例えば、デコードを失敗したスライスの次のスライスをデコードを再開する位置に決定する。   In step S366, the decode control unit 464 determines a position at which decoding is resumed. For example, the decode control unit 464 determines a slice next to a slice that has failed to be decoded as a position to resume decoding.

ステップS367において、デコーダ465は、デコードを再開する。具体的には、デコード制御部464は、エラーが発生したスライスの次のスライスからのデコードの再開を指示する情報を、エラーが発生したデコーダ465に供給する。デコーダ465は、指定されたスライスからデコードを再開する。   In step S367, the decoder 465 resumes decoding. Specifically, the decode control unit 464 supplies information instructing to resume decoding from the slice following the slice in which the error has occurred to the decoder 465 in which the error has occurred. The decoder 465 resumes decoding from the designated slice.

ステップS365において、エラーが発生していないと判定された場合、ステップS366およびS367の処理はスキップされ、処理はステップS368に進む。   If it is determined in step S365 that no error has occurred, the processes in steps S366 and S367 are skipped, and the process proceeds to step S368.

ステップS368において、上述した図5のステップS16と同様の処理により、全てのデコーダ465の処理が終了したか否かが判定される。まだ全てのデコーダ465の処理がまだ終了していないと判定された場合、処理はステップS365に戻り、ステップS368において、全てのデコーダ465の処理が終了したと判定されるまで、ステップS365乃至S368の処理が繰り返し実行される。   In step S368, it is determined whether or not the processing of all the decoders 465 has been completed by the same processing as in step S16 of FIG. If it is determined that the processes of all the decoders 465 have not been completed yet, the process returns to step S365, and in steps S368, the processes of steps S365 to S368 are performed until it is determined that the processes of all the decoders 465 have been completed. The process is executed repeatedly.

ステップS368において、全てのデコーダ465の処理が終了したと判定された場合、処理はステップS369に進む。   If it is determined in step S368 that the processing of all the decoders 465 has been completed, the processing proceeds to step S369.

ステップS369において、上述した図5のステップS17と同様の処理により、1フレーム分のデータが出力される。その後、処理はステップS358に戻る。   In step S369, data for one frame is output by the same process as in step S17 of FIG. Thereafter, the process returns to step S358.

ステップS358において、まだGOP内の全てのピクチャをデコードしてないと判定された場合、処理はステップS359に進み、上述したステップS359以降の処理が実行される。すなわち、次のピクチャがデコードされる。   If it is determined in step S358 that all the pictures in the GOP have not been decoded yet, the process proceeds to step S359, and the processes after step S359 described above are executed. That is, the next picture is decoded.

ステップS358において、GOP内の全てのピクチャがデコードされたと判定された場合、処理はステップS355に戻る。   If it is determined in step S358 that all the pictures in the GOP have been decoded, the process returns to step S355.

ステップS355において、まだ全てのGOPがデコードされていないと判定された場合、処理はステップS356に進み、上述したステップS356以降の処理が実行される。すなわち、次のGOPがデコードされる。   If it is determined in step S355 that not all GOPs have been decoded yet, the process proceeds to step S356, and the processes after step S356 described above are executed. That is, the next GOP is decoded.

ステップS355において、全てのGOPがデコードされたと判定された場合、処理はステップS351に戻る。   If it is determined in step S355 that all GOPs have been decoded, the process returns to step S351.

ステップS351において、まだ映像ストリームを全てデコードしていないと判定された場合、処理はステップS352に進み、上述したステップS352以降の処理が実行される。すなわち、映像ストリームの次のシーケンス層がデコードされる。   If it is determined in step S351 that the entire video stream has not been decoded yet, the process proceeds to step S352, and the processes after step S352 described above are executed. That is, the next sequence layer of the video stream is decoded.

ステップS351において、映像ストリームを全てデコードしたと判定された場合、デコード処理は終了する。   If it is determined in step S351 that the entire video stream has been decoded, the decoding process ends.

このように、ストリーム解析部462がピクチャ層をデコードする場合、映像ストリーム上のピクチャ層の開始位置(スタートコード)を検索することなく、ピクチャ位置情報に基づいて、迅速にデコードの開始位置が検出される。また、各デコーダ465がデコードする場合、各フレーム(ピクチャ)について、各デコーダ465がデコードを開始する位置として各分割デコード領域の開始位置を検出するだけでよく、かつ、映像ストリーム上のスライス層の開始位置(スタートコード)を検索することなく、スライス位置情報に基づいて、迅速に各分割デコード領域の開始位置が検出される。従って、デコードを開始する位置を検出する時間が短縮され、映像ストリームのデコードを高速化することができる。なお、デコード処理を分割せずに1つのデコーダによりデコードする場合も同様に、デコードを開始する位置を検出する時間が短縮され、映像ストリームのデコードを高速化することができる。   In this way, when the stream analysis unit 462 decodes the picture layer, the decoding start position can be quickly detected based on the picture position information without searching for the start position (start code) of the picture layer on the video stream. Is done. Further, when each decoder 465 decodes, it is only necessary to detect the start position of each divided decode area as the position at which each decoder 465 starts decoding for each frame (picture), and the slice layer on the video stream. Without searching for the start position (start code), the start position of each divided decode area is quickly detected based on the slice position information. Therefore, the time for detecting the position to start decoding is shortened, and the decoding of the video stream can be speeded up. Similarly, when decoding is performed by one decoder without dividing the decoding process, the time for detecting the position to start decoding is shortened, and the decoding of the video stream can be speeded up.

なお、図3乃至図6を参照して上述した処理と、図16乃至図23を参照して上述した処理とを組み合わせた場合も、ピクチャ位置情報およびスライス位置情報がクリップ位置情報に記録されていることを除いて、図24乃至図26を参照して上述した処理とほぼ同様の処理となるため、その説明は省略する。   Note that also when the process described above with reference to FIGS. 3 to 6 and the process described above with reference to FIGS. 16 to 23 are combined, the picture position information and the slice position information are recorded in the clip position information. Except for the above, the processing is almost the same as the processing described above with reference to FIGS.

また、映像ストリームのデコード処理をさらに複数の段階に分割し、分割した各段階のデコード処理を複数のハードウェアにより並行して行うことにより、さらにデコード処理を高速化することが可能である。図27乃至図37を参照して、デコード処理を複数の段階に分割し、分割した各段階のデコード処理を複数のハードウェアにより並行して行う場合の実施の形態を説明する。   Further, it is possible to further speed up the decoding process by further dividing the decoding process of the video stream into a plurality of stages and performing the divided decoding process in each stage by a plurality of hardware in parallel. With reference to FIGS. 27 to 37, an embodiment will be described in which the decoding process is divided into a plurality of stages and the divided decoding processes are performed in parallel by a plurality of hardware.

図27は、デコード処理を複数の段階に分割し、分割した各段階のデコード処理を複数のハードウェアにより並行して行うAV処理システム501の一実施の形態を示す図である。なお、図中、図2と対応する部分については同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。   FIG. 27 is a diagram showing an embodiment of an AV processing system 501 in which the decoding process is divided into a plurality of stages and the divided decoding processes are performed in parallel by a plurality of hardware. In the figure, portions corresponding to those in FIG. 2 are denoted by the same reference numerals, and description of portions having the same processing will be omitted because it will be repeated.

AV処理システム501は、図2のAV処理システム101と比較して、ドライブ112、外部映像記録再生装置113−1乃至113−n、マウス114、および、キーボード115を含む点が共通し、AV処理装置111の代わりにAV処理装置511が設けられている点が異なる。   Compared with the AV processing system 101 of FIG. 2, the AV processing system 501 is common in that it includes a drive 112, external video recording / playback devices 113-1 to 113-n, a mouse 114, and a keyboard 115. The difference is that an AV processing device 511 is provided instead of the device 111.

また、AV処理装置511は、図2のAV処理装置111と比較して、CPU121、ROM122、RAM123、ハードディスク124、信号処理部125、映像特殊効果音声ミキシング処理部126、ディスプレイ127、スピーカ128、および、インタフェース129−1乃至129−3を含む点が共通し、GPU(Graphics Processing Unit)521が設けられている点が異なる。なお、CPU121、ROM122、RAM123、HDD124、信号処理部125、映像特殊効果音声ミキシング処理部126、インタフェース129−1乃至129−3、および、GPU521は、バス130を介して相互に接続される。   Further, the AV processing device 511 has a CPU 121, a ROM 122, a RAM 123, a hard disk 124, a signal processing unit 125, a video special effect audio mixing processing unit 126, a display 127, a speaker 128, and the AV processing device 111 of FIG. The difference is that the interfaces 129-1 to 129-3 are included, and a GPU (Graphics Processing Unit) 521 is provided. Note that the CPU 121, ROM 122, RAM 123, HDD 124, signal processing unit 125, video special effect audio mixing processing unit 126, interfaces 129-1 to 129-3, and GPU 521 are connected to each other via the bus 130.

GPU521は、主にグラフィックス処理を行うプロセッサである。AV処理装置511においては、後述するように、CPU121およびGPU521の2つのハードウェア(プロセッサ)が、映像ストリームのデコード処理を2つの段階に分割し、分割した各段階のデコード処理を並行して実行する。   The GPU 521 is a processor that mainly performs graphics processing. In the AV processing device 511, as will be described later, the two hardware (processors) of the CPU 121 and the GPU 521 divide the video stream decoding process into two stages and execute the divided decoding processes in parallel. To do.

図28は、所定のプログラムを実行するCPU121により実現されるデコード部551の機能の構成の例を示す図である。なお、図中、図24と対応する部分については下2桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。   FIG. 28 is a diagram illustrating an example of a functional configuration of the decoding unit 551 realized by the CPU 121 that executes a predetermined program. In the figure, portions corresponding to those in FIG. 24 are denoted by the same reference numerals in the last two digits, and description of portions having the same processing will be omitted because it will be repeated.

デコード部551は、ストリーム読出し制御部561、ストリーム解析部562、デコード領域設定部563、デコード制御部564、デコーダ565−1乃至565−4、スタート位置検出部571、スライスデータ蓄積メモリ572、転送用メモリ573、および、メモリ転送制御部574を含むように構成される。   The decode unit 551 includes a stream read control unit 561, a stream analysis unit 562, a decode area setting unit 563, a decode control unit 564, decoders 565-1 to 565-4, a start position detection unit 571, a slice data storage memory 572, and a transfer The memory 573 and the memory transfer control unit 574 are configured to be included.

ストリーム読出し制御部561は、ドライブ112を制御して、リムーバブルメディア116に記録されている映像ストリームを読み出させる。ストリーム読出し制御部561は、ドライブ112により読み出された映像ストリームを、インタフェース129−3およびバス130を介して取得する。また、ストリーム読出し制御部561は、バス130を介して、HDD124に記録されている映像ストリームを読み出す。ストリーム読出し制御部561は、必要に応じて、取得した映像ストリームを、CPU121内の図示せぬキャッシュメモリなどにより構成されるストリーム用メモリ152に一時的に記憶させる。また、ストリーム読出し制御部561は、必要に応じて、取得した映像ストリームを、ストリーム解析部562またはデコーダ565−1乃至565−4に供給する   The stream read control unit 561 controls the drive 112 to read the video stream recorded on the removable medium 116. The stream read control unit 561 acquires the video stream read by the drive 112 via the interface 129-3 and the bus 130. Further, the stream read control unit 561 reads a video stream recorded in the HDD 124 via the bus 130. The stream read control unit 561 temporarily stores the acquired video stream in the stream memory 152 including a cache memory (not shown) in the CPU 121 as necessary. In addition, the stream read control unit 561 supplies the acquired video stream to the stream analysis unit 562 or the decoders 565-1 to 565-4 as necessary.

デコード制御部564は、図24のデコード制御部464の処理に加えて、分割デコード領域内のスライスの所定の途中の段階までのデコード処理(図32を参照して後述するデコード前半処理)を実行させるためのスレッドを生成し、各デコーダに割り当てた分割デコード領域に対する前半デコード処理を他のデコーダと並行して実行するようにデコーダ565−1乃至565−4を制御する。また、デコード制御部564は、デコーダ565−1乃至565−4により途中の段階までデコードされたスライスの残りの段階のデコード処理(図33および図34を参照して後述するデコード後半処理)を実行させるためのスレッドを生成し、デコーダ565−1乃至565−4によるデコード前半処理と並行してデコード後半処理を実行するようにメモリ転送制御部574およびGPU521を制御する。   In addition to the processing of the decoding control unit 464 in FIG. 24, the decoding control unit 564 executes decoding processing up to a predetermined middle stage of the slice in the divided decoding area (decoding first half process described later with reference to FIG. 32). The decoders 565-1 to 565-4 are controlled so as to execute the first half decoding process on the divided decoding area assigned to each decoder in parallel with the other decoders. Further, the decode control unit 564 executes the decoding process (decoding latter half process described later with reference to FIG. 33 and FIG. 34) of the remaining slice of the slice decoded to the middle stage by the decoders 565-1 to 565-4. And the memory transfer control unit 574 and the GPU 521 are controlled to execute the latter half of the decoding process in parallel with the first half decoding process by the decoders 565-1 to 565-4.

さらに、デコード制御部564は、GPU521の処理が終了したことを通知する情報を、バス130を介してGPU521から取得する。また、デコード制御部564は、GPU521が処理を実行中であるか否かを示す情報を、デコーダ565−1乃至565−4に供給する。さらに、デコード制御部564は、デコード前半処理の開始を指示する情報をデコーダ565−1乃至565−4に供給する(デコード前半処理を実行させるスレッドを呼び出し、呼び出したスレッドにデコード前半処理に必要な情報を与える)。   Further, the decode control unit 564 acquires information notifying that the processing of the GPU 521 has been completed from the GPU 521 via the bus 130. Also, the decode control unit 564 supplies information indicating whether or not the GPU 521 is executing processing to the decoders 565-1 to 565-4. Further, the decode control unit 564 supplies information for instructing the start of the first half of the decoding process to the decoders 565-1 to 565-4 (calls a thread for executing the first half decoding process and is necessary for the first half decoding process to the calling thread. Give information).

また、デコード制御部564は、デコード後半処理の開始を指示する情報をメモリ転送制御部574およびGPU521に供給する(デコード後半処理を実行させるスレッドを呼び出し、呼び出したスレッドにデコード後半処理に必要な情報を与える)。このデコード後半処理の開始を指示する情報には、例えば、デコードする対象となるスライスがどの段階までデコードされているかを示す履歴情報が含まれる。   Further, the decode control unit 564 supplies information for instructing the start of the second half of the decoding process to the memory transfer control unit 574 and the GPU 521 (calls a thread for executing the second half decoding process, and the information necessary for the second half decoding process is called to the calling thread) give). The information instructing the start of the latter half of the decoding process includes, for example, history information indicating how far the slice to be decoded has been decoded.

デコーダ565−1乃至565−4は、各デコーダに割り当てられた映像ストリームの各フレーム内の分割デコード領域を並列してデコード(可変長復号および逆量子化)する。デコーダ565−1乃至565−4は、VLD(可変長復号)部581−1乃至581−4およびIQ(逆量子化)部582−1乃至582−4をそれぞれ1組ずつ含むように構成される。なお、以下、デコーダ565−1乃至565−4を個々に区別する必要がない場合、単にデコーダ565と称し、VLD部581−1乃至581−4を個々に区別する必要がない場合、単にVLD部581と称し、IQ部582−1乃至582−4を個々に区別する必要がない場合、単にIQ部582と称する。   The decoders 565-1 to 565-4 decode (variable length decoding and inverse quantization) the divided decoding areas in each frame of the video stream assigned to each decoder in parallel. Decoders 565-1 to 565-4 are configured to include one set each of VLD (variable length decoding) units 581-1 to 581-4 and IQ (inverse quantization) units 582-1 to 582-4. . Hereinafter, when it is not necessary to individually distinguish the decoders 565-1 to 565-4, they are simply referred to as the decoder 565, and when it is not necessary to individually distinguish the VLD units 581-1 to 581-4, they are simply referred to as the VLD unit. When it is called 581 and it is not necessary to individually distinguish the IQ parts 582-1 to 582-4, they are simply called IQ parts 582.

VLD部581は、ストリーム読出し制御部561から供給されたデータ(映像ストリーム)を可変長復号し、可変長復号したデータをIQ部582に供給する。また、VLD部581は、復号したデータに含まれる予測モード、動きベクトル、および、フレーム/フィールド予測フラグを示す情報を、バス130を介してGPU521に供給する。さらに、VLD部581は、復号したデータに含まれる量子化スケールを示す情報をIQ部582に供給する。   The VLD unit 581 performs variable length decoding on the data (video stream) supplied from the stream read control unit 561 and supplies the variable length decoded data to the IQ unit 582. In addition, the VLD unit 581 supplies information indicating the prediction mode, the motion vector, and the frame / field prediction flag included in the decoded data to the GPU 521 via the bus 130. Further, the VLD unit 581 supplies information indicating the quantization scale included in the decoded data to the IQ unit 582.

IQ部582は、VLD部581より供給された量子化スケールに従って、VLD部581より供給されたデータを逆量子化し、逆量子化したデータをスライスデータ蓄積メモリ572に記憶させる。また、IQ部582は、自分が逆量子化したデータがスライスデータ蓄積メモリ572に1スライス分蓄積された場合、その1スライス分のデータをスライスデータ蓄積メモリ572から転送用メモリ573に転送する。   The IQ unit 582 dequantizes the data supplied from the VLD unit 581 according to the quantization scale supplied from the VLD unit 581 and stores the dequantized data in the slice data storage memory 572. Further, when the data that has been inversely quantized by the IQ unit 582 is stored in the slice data storage memory 572 for one slice, the IQ unit 582 transfers the data for one slice from the slice data storage memory 572 to the transfer memory 573.

メモリ転送制御部574は、転送用メモリ573に記憶されているデータを、バス130を介してGPU521に転送する。   The memory transfer control unit 574 transfers the data stored in the transfer memory 573 to the GPU 521 via the bus 130.

図29は、所定のプログラムを実行するGPU521により実現されるデコード部601の機能の構成の例を示す図である。デコード部601は、スライスデータメモリ611、IDCT(逆離散コサイン変換)部612、動き補償部613、フレームデータ生成部614、および、フレームメモリ615を含むように構成される。   FIG. 29 is a diagram illustrating an example of a functional configuration of the decoding unit 601 realized by the GPU 521 that executes a predetermined program. The decoding unit 601 is configured to include a slice data memory 611, an IDCT (Inverse Discrete Cosine Transform) unit 612, a motion compensation unit 613, a frame data generation unit 614, and a frame memory 615.

スライスデータメモリ611は、バス130を介して、メモリ転送制御部574から供給される1スライス分の逆量子化されたデータを記憶する。   The slice data memory 611 stores the inversely quantized data for one slice supplied from the memory transfer control unit 574 via the bus 130.

IDCT部612は、デコード制御部564の制御の基に、スライスデータメモリ611に記憶されているスライスに対して、図34を参照して後述するIDCT処理を行う。IDCT部612は、IDCT処理を行うことにより得られた画像データをフレームデータ生成部614に供給する。なお、IDCT部612は、例えば、Fast IDCTのアルゴリズムに基づいて、映像ストリームのマクロブロックのIDCTを行う。Fast IDCTのアルゴリズムの詳細については、例えば、「Yukihiro Arai他2名、尿 Fast DCT-SQ Scheme for Images THE TRANSACTIONS OF THE IEICE, VOL.E 71, NO.11 NOBEMBER 1988,pp.1095-1097」に、その詳細が開示されている。   The IDCT unit 612 performs an IDCT process, which will be described later with reference to FIG. The IDCT unit 612 supplies the image data obtained by performing the IDCT process to the frame data generation unit 614. Note that the IDCT unit 612 performs IDCT of the macroblock of the video stream, for example, based on the Fast IDCT algorithm. For details on the Fast IDCT algorithm, see, for example, “Yukihiro Arai and 2 others, Urine Fast DCT-SQ Scheme for Images THE TRANSACTIONS OF THE IEICE, VOL.E 71, NO.11 NOBEMBER 1988, pp.1095-1097” The details are disclosed.

動き補償部613は、バス130を介して、VLD部581から供給される予測モード、動きベクトル、および、フレーム/フィールド予測フラグを示す情報を取得する。動き補償部613は、次にフレームデータ生成部614が生成する画像データが順方向予測モードのPピクチャである場合、フレームメモリ615の過去参照画像部615aに記憶されている1フレーム前の画像データに、VLD部581より供給された動きベクトルに対応する動き補償を施して、予測画像データを生成する。動き補償部613は、生成した予測画像データをフレームデータ生成部614に供給する。   The motion compensation unit 613 acquires information indicating the prediction mode, the motion vector, and the frame / field prediction flag supplied from the VLD unit 581 via the bus 130. When the next image data generated by the frame data generation unit 614 is a P picture in the forward prediction mode, the motion compensation unit 613 stores the image data of the previous frame stored in the past reference image unit 615a of the frame memory 615. Then, motion compensation corresponding to the motion vector supplied from the VLD unit 581 is performed to generate predicted image data. The motion compensation unit 613 supplies the generated predicted image data to the frame data generation unit 614.

また、動き補償部613は、次にフレームデータ生成部614が生成する画像データがBピクチャである場合、VLD部581より供給された予測モードに対応して、フレームメモリ615の過去参照画像部615aに記憶されている画像データ(順方向予測モードの場合)、未来参照画像部615bに記憶されている画像データ(逆方向予測モードの場合)、または、その両方の画像データ(双方向予測モードの場合)に、VLD部581より供給された動きベクトルに対応する動き補償を施して、予測画像データを生成する。動き補償部613は、生成した予測画像データをフレームデータ生成部614に供給する。   In addition, when the image data generated next by the frame data generation unit 614 is a B picture, the motion compensation unit 613 corresponds to the prediction mode supplied from the VLD unit 581 and the past reference image unit 615a of the frame memory 615. Stored in the image data (in the case of the forward prediction mode), the image data stored in the future reference image unit 615b (in the case of the backward prediction mode), or both of the image data (in the bidirectional prediction mode). In the case), motion compensation corresponding to the motion vector supplied from the VLD unit 581 is performed to generate predicted image data. The motion compensation unit 613 supplies the generated predicted image data to the frame data generation unit 614.

さらに、動き補償部613は、未来画像参照部615bに記憶されている画像データがPピクチャである場合、そのPピクチャより時系列で前に位置するBピクチャのデコードが全て終了したとき、未来画像参照部615bに記憶されているPピクチャを読出し、動き補償を施さずに、フレームデータ生成部614に供給する。   Further, when the image data stored in the future image reference unit 615b is a P picture, the motion compensation unit 613 determines that the future image is decoded when all the decoding of the B picture located in time series before the P picture is completed. The P picture stored in the reference unit 615b is read and supplied to the frame data generation unit 614 without performing motion compensation.

フレームデータ生成部614は、デコード制御部564の制御の基に、IDCT部612から供給された画像データを蓄積するとともに、1フレーム分の画像データを生成し、生成した画像データを出力する。具体的には、IDCT部612から供給された画像データがIピクチャ、または、フレーム内予測モードのPピクチャもしくはBピクチャである場合、フレームデータ生成部614は、IDCT部612から供給された画像データに基づいて生成した1フレーム分の画像データを生成する。また、IDCT部612から供給された画像データがフレーム内予測モードでないPピクチャまたはBピクチャである場合、フレームデータ生成部614は、IDCT部612から供給された画像データに基づいて生成した画像データに、動き補償部613から供給される予測画像データを加算して、1フレーム分の画像データを生成する。   The frame data generation unit 614 stores the image data supplied from the IDCT unit 612 under the control of the decode control unit 564, generates image data for one frame, and outputs the generated image data. Specifically, when the image data supplied from the IDCT unit 612 is an I picture, or a P picture or B picture in the intra-frame prediction mode, the frame data generation unit 614 supplies the image data supplied from the IDCT unit 612. One frame of image data generated based on the above is generated. In addition, when the image data supplied from the IDCT unit 612 is a P picture or B picture that is not in the intra-frame prediction mode, the frame data generation unit 614 generates image data generated based on the image data supplied from the IDCT unit 612. The predicted image data supplied from the motion compensation unit 613 is added to generate image data for one frame.

フレームデータ生成部614は、生成した画像データがIピクチャである場合、生成した画像データを、デコード部601の外部(例えば、バス130を介して信号処理部125)に出力するとともに、フレームメモリ615の過去参照画像部615aまたは未来参照画像部615bに記憶させる。また、フレームデータ生成部614は、生成した画像データがPピクチャである場合、生成した画像データを、デコード部601の外部に出力せずに、フレームメモリ615の未来参照画像部615bに記憶させる。さらに、フレームデータ生成部614は、生成した画像データがBピクチャである場合、生成した画像データを、デコード部601の外部に出力する。   When the generated image data is an I picture, the frame data generation unit 614 outputs the generated image data to the outside of the decoding unit 601 (for example, the signal processing unit 125 via the bus 130) and the frame memory 615. Are stored in the past reference image portion 615a or the future reference image portion 615b. In addition, when the generated image data is a P picture, the frame data generation unit 614 stores the generated image data in the future reference image unit 615b of the frame memory 615 without outputting the generated image data to the outside of the decoding unit 601. Furthermore, when the generated image data is a B picture, the frame data generation unit 614 outputs the generated image data to the outside of the decoding unit 601.

また、フレームデータ生成部614は、未来画像参照部615bに記憶されている画像データ(Pピクチャ)が動き補償部613から供給された場合、供給された画像データをデコード部601の外部に出力する。   Further, when the image data (P picture) stored in the future image reference unit 615 b is supplied from the motion compensation unit 613, the frame data generation unit 614 outputs the supplied image data to the outside of the decoding unit 601. .

さらに、フレームデータ生成部614は、デコード後半処理が終了したことを通知する情報を、バス130を介してデコード制御部564に供給する。   Furthermore, the frame data generation unit 614 supplies information notifying that the latter half of the decoding process has been completed to the decode control unit 564 via the bus 130.

フレームメモリ615は、上述したように、予測画像データを生成するために用いる画像データ(IピクチャまたはPピクチャ)を過去参照画像部615aまたは未来参照画像部615bに記憶させる。また、必要に応じて、過去参照画像部615aおよび未来参照画像部615bの間で、画像データの転送を行う(バンク切替えを行う)。   As described above, the frame memory 615 stores the image data (I picture or P picture) used to generate the predicted image data in the past reference image unit 615a or the future reference image unit 615b. Further, image data is transferred (bank switching) between the past reference image unit 615a and the future reference image unit 615b as necessary.

次に、図30および図31のフローチャートを参照して、デコード部551により実行されるデコード処理を説明する。なお、以下、説明を簡単にするために、各マクロブロックのブロックタイプはイントラ(フレーム内符号化)タイプであるものとする。また、説明を簡単にするために、上述したエラー発生時の対応処理(例えば、図26のステップS365乃至S367)に関するステップは、図30および図31のフローチャートにおいて省略されている。   Next, decoding processing executed by the decoding unit 551 will be described with reference to the flowcharts of FIGS. Hereinafter, in order to simplify the description, it is assumed that the block type of each macroblock is an intra (intraframe coding) type. Further, for the sake of simplicity, the steps related to the error occurrence processing described above (for example, steps S365 to S367 in FIG. 26) are omitted in the flowcharts in FIGS. 30 and 31.

ステップS451およびステップS462の処理は、上述した図25および図26のステップS351乃至S362の処理と同様であり、その説明は繰り返しになるので省略する。   The processing of step S451 and step S462 is the same as the processing of steps S351 to S362 of FIG. 25 and FIG. 26 described above, and the description thereof will be omitted because it will be repeated.

ステップS463において、デコード制御部564は、デコード前半処理の開始を指示する。具体的には、デコード制御部564は、ステップS462において検出された開始位置から始まる各分割デコード領域に含まれるスライスの各デコーダ465への供給を指示する情報をストリーム読出し制御部461に供給する。また、デコード制御部464は、次のピクチャのデコード前半処理の開始を指示する情報を各デコーダ565に供給する。   In step S463, the decode control unit 564 instructs the start of the first half of the decoding process. Specifically, the decode control unit 564 supplies the stream read control unit 461 with information instructing the supply to each decoder 465 of the slice included in each divided decode area starting from the start position detected in step S462. In addition, the decode control unit 464 supplies information indicating the start of the first half of the decoding process for the next picture to each decoder 565.

ステップS464において、各デコーダ565は、デコード前半処理を行う。デコード前半処理の詳細は、図32を参照して後述する。   In step S464, each decoder 565 performs the first half of the decoding process. Details of the first decoding process will be described later with reference to FIG.

ステップS465において、デコード制御部564は、全てのデコーダ565の処理が終了したか否かを判定する。具体的には、デコード制御部564は、各デコーダ565に割り当てられた分割デコード領域の全てのスライスのデコードの終了を通知する情報が、全てのデコーダ565から供給されているか否かを検出する。デコード制御部564は、デコードの終了を通知する情報が全てのデコーダから供給されるまで、ステップS465の判定処理を繰返し行い、デコードの終了を通知する情報が全てのデコーダから供給された場合、全てのデコーダ565の処理が終了したと判定され、処理はステップS458に戻る。その後、ステップS458以降の処理が実行される。   In step S465, the decode control unit 564 determines whether or not the processing of all the decoders 565 has been completed. Specifically, the decode control unit 564 detects whether or not information notifying the end of decoding of all slices in the divided decoding area allocated to each decoder 565 is supplied from all the decoders 565. The decode control unit 564 repeats the determination process in step S465 until information for notifying the end of decoding is supplied from all the decoders. When the information for notifying the end of decoding is supplied from all the decoders, Is determined to have been completed, and the process returns to step S458. Thereafter, the processing after step S458 is executed.

次に、図32のフローチャートを参照して、図31のステップS464のデコード前半処理の詳細を説明する。   Next, details of the first half of the decoding process in step S464 in FIG. 31 will be described with reference to the flowchart in FIG.

ステップS501において、VLD部581は、可変長復号する。具体的には、VLD部581は、ストリーム読出し制御部561から供給されたスライスの先頭のマクロブロックを可変長復号する。VLD部581は、可変長復号したマクロブロックをIQ部582に供給する。また、VLD部581は、マクロブロックの逆量子化に用いる量子化スケールを示す情報をIQ部582に供給する。   In step S501, the VLD unit 581 performs variable length decoding. Specifically, the VLD unit 581 performs variable length decoding on the first macroblock of the slice supplied from the stream read control unit 561. The VLD unit 581 supplies the variable length decoded macroblock to the IQ unit 582. Also, the VLD unit 581 supplies information indicating the quantization scale used for inverse quantization of the macroblock to the IQ unit 582.

ステップS502において、IQ部582は、逆量子化する。具体的には、IQ部582は、VLD部581から供給された量子化スケールに従って、VLD部581から供給されたマクロブロックを逆量子化する。   In step S502, the IQ unit 582 performs inverse quantization. Specifically, the IQ unit 582 performs inverse quantization on the macroblock supplied from the VLD unit 581 according to the quantization scale supplied from the VLD unit 581.

ステップS503において、IQ部582は、ステップS502において逆量子化したデータをスライスデータ蓄積メモリ572に記憶させる。   In step S503, the IQ unit 582 stores the data dequantized in step S502 in the slice data storage memory 572.

ステップS504において、IQ部582は、1スライス分のデータが蓄積されたか否かを判定する。具体的には、IQ部582は、スライスデータ蓄積メモリ572に蓄積されている、自分が逆量子化したデータが1スライス分に達していない場合、1スライス分のデータが蓄積されていないと判定し、処理はステップS501に戻り、ステップS504において、1スライス分のデータが蓄積されたと判定されるまで、ステップS501乃至S504の処理が繰り返し実行される。すなわち、スライスの先頭から2番目以降のマクロブロックが順に可変長復号および逆量子化される。   In step S504, the IQ unit 582 determines whether data for one slice has been accumulated. Specifically, the IQ unit 582 determines that the data for one slice is not accumulated when the data that has been inversely quantized by the IQ unit 582 has not reached one slice. Then, the process returns to step S501, and the processes of steps S501 to S504 are repeatedly executed until it is determined in step S504 that data for one slice has been accumulated. That is, the second and subsequent macroblocks from the beginning of the slice are sequentially subjected to variable length decoding and inverse quantization.

ステップS504において、IQ部582は、スライスデータ蓄積メモリ572に蓄積されている、自分が逆量子化したデータが1スライス分に達している場合、1スライス分のデータが蓄積されていると判定し、処理はステップS505に進む。   In step S504, the IQ unit 582 determines that the data for one slice is stored when the data dequantized by itself stored in the slice data storage memory 572 reaches one slice. The process proceeds to step S505.

ステップS505において、IQ部582は、GPU521の処理が終了しているか否かを判定する。具体的には、IQ部582は、GPU521が処理を実行中であるか否かを示す情報をデコード制御部564から取得する。GPU521がIDCT処理を実行中である場合、IQ部582は、GPU521の処理が終了していないと判定し、処理はステップS506に進む。   In step S505, the IQ unit 582 determines whether the processing of the GPU 521 has ended. Specifically, the IQ unit 582 acquires information indicating whether or not the GPU 521 is executing processing from the decode control unit 564. If the GPU 521 is executing the IDCT process, the IQ unit 582 determines that the process of the GPU 521 has not ended, and the process proceeds to step S506.

ステップS506において、IQ部582は、分割デコード領域内の全てのマクロブロックを処理したか否かを判定する。IQ部582は、分割デコード領域内のマクロブロックをまだ全て処理していない、すなわち、まだ可変長復号および逆量子化されていないマクロブロックが自分に割り当てられた分割デコード領域内にある場合、処理はステップS501に戻り、分割デコード領域内のマクロブロックの可変長復号および逆量子化が継続して行われる。   In step S506, the IQ unit 582 determines whether all macroblocks in the divided decoding area have been processed. If the IQ block 582 has not yet processed all the macroblocks in the divided decoding area, that is, if the macroblock that has not yet been variable-length decoded and dequantized is in the divided decoding area assigned to itself, Returning to step S501, variable-length decoding and inverse quantization of the macroblock in the divided decoding area are continuously performed.

ステップS506において、分割デコード領域内のマクロブロックを全て処理していると判定された場合、すなわち、自分に割り当てられた分割デコード領域内の全てのマクロブロックを可変長復号および逆量子化している場合、処理はステップS507に進む。   If it is determined in step S506 that all the macroblocks in the divided decoding area have been processed, that is, all the macroblocks in the divided decoding area assigned to the variable decoding and inverse quantization have been performed. The process proceeds to step S507.

ステップS507において、ステップS505の処理と同様に、GPU521の処理が終了しているか否かが判定される。GPU521の処理が終了していると判定されるまで、ステップS507の処理は繰り返し実行され、GPU521の処理が終了していると判定された場合、すなわち、GPU521がアイドル状態である場合、処理はステップS508に進む。   In step S507, as in the process of step S505, it is determined whether or not the processing of the GPU 521 has ended. Until it is determined that the processing of the GPU 521 has ended, the processing of step S507 is repeatedly executed. When it is determined that the processing of the GPU 521 has ended, that is, when the GPU 521 is in the idle state, The process proceeds to S508.

ステップS508において、IQ部582は、逆量子化したデータを転送する。具体的には、IQ部582は、スライスデータ蓄積メモリ572に蓄積されている自分が逆量子化したデータのうち、先頭の1スライス分のデータを転送用メモリ573に転送する。   In step S508, the IQ unit 582 transfers the dequantized data. Specifically, the IQ unit 582 transfers the data of the first slice of the data stored in the slice data storage memory 572 and dequantized by itself to the transfer memory 573.

ステップS509において、デコード制御部564は、後半デコード処理の開始を指示する。デコード制御部564は、転送用メモリ573に蓄積されたスライスに対するデコード後半処理の開始を指示する情報を、メモリ転送制御部574およびデコード部601に供給する。これにより、図33を参照して後述するデコード後半処理が開始される。その後、処理はステップS513に進む。   In step S509, the decode control unit 564 instructs the start of the second half decoding process. The decode control unit 564 supplies the memory transfer control unit 574 and the decoding unit 601 with information instructing the start of the latter half of the decoding process for the slice accumulated in the transfer memory 573. Thereby, the latter half of the decoding process described later with reference to FIG. 33 is started. Thereafter, the process proceeds to step S513.

ステップS505において、GPU521の処理が終了していると判定された場合、処理はステップS510に進む。   If it is determined in step S505 that the processing of the GPU 521 has been completed, the processing proceeds to step S510.

ステップS510において、ステップS507の処理と同様に、1スライス分の逆量子化したデータが転送用メモリ573に転送される。   In step S510, similarly to the processing in step S507, the inversely quantized data for one slice is transferred to the transfer memory 573.

ステップS511において、上述したステップS509の処理と同様に、デコード後半処理の開始が指示される。   In step S511, the start of the latter half of the decoding process is instructed in the same manner as the process in step S509 described above.

ステップS512において、ステップS506の処理と同様に、分割デコード領域内の全てのマクロブロックを処理したか否かが判定される。分割デコード領域内のマクロブロックをまだ全て処理していないと判定された場合、処理はステップS501に戻り、分割デコード領域内のマクロブロックの可変長復号および逆量子化が継続して行われる。   In step S512, it is determined whether or not all macroblocks in the divided decoding area have been processed, similar to the process in step S506. If it is determined that all the macroblocks in the divided decoding area have not yet been processed, the process returns to step S501, and variable length decoding and inverse quantization of the macroblock in the divided decoding area are continued.

ステップS512において、分割デコード領域内の全てのマクロブロックを処理したと判定された場合、処理はステップS513に進む。   If it is determined in step S512 that all macroblocks in the divided decoding area have been processed, the process proceeds to step S513.

ステップS513において、IQ部582は、逆量子化したデータを全て転送したか否かを判定する。IQ部582は、自分が逆量子化したデータのうちまだ転送用メモリ573に転送していないデータがスライスデータ蓄積メモリ572に残っている場合、逆量子化したデータをまだ全て転送していないと判定し、処理はステップS507に戻る。その後、ステップS513において、逆量子化したデータを全て転送したと判定されるまで、ステップS507、S508およびS513の処理が繰り返し実行される。   In step S513, the IQ unit 582 determines whether all the dequantized data has been transferred. If the data that has not been transferred to the transfer memory 573 among the data that has been dequantized by the IQ unit 582 remains in the slice data storage memory 572, the IQ unit 582 has not yet transferred all the dequantized data. Determination is made, and the process returns to step S507. Thereafter, the processes in steps S507, S508, and S513 are repeatedly executed until it is determined in step S513 that all the dequantized data has been transferred.

ステップS513において、逆量子化したデータを全て転送したと判定された場合、処理はステップS514に進む。   If it is determined in step S513 that all the dequantized data has been transferred, the process proceeds to step S514.

ステップS514において、デコーダ565は、デコード前半処理の終了を通知し、デコード前半処理は終了する。具体的には、デコーダ565は、デコード前半処理の終了を通知する情報をデコード制御部564に供給する。   In step S514, the decoder 565 notifies the end of the first half of the decoding process, and the first half of the decoding process ends. Specifically, the decoder 565 supplies information that notifies the end of the first half of the decoding process to the decoding control unit 564.

なお、以上では、1つのデコーダに注目してデコード前半処理を説明したが、実際には、このデコード前半処理はデコーダ565−1乃至565−4により並行して実行される。   In the above description, the first half of the decoding process has been described with a focus on one decoder. In practice, this first half of the decoding process is executed in parallel by the decoders 565-1 to 565-4.

次に、図33のフローチャートを参照して、図32のデコード前半処理に対応して、デコード部551およびデコード部601により実行されるデコード後半処理を説明する。なお、この処理は、図32を参照して上述した各デコーダ565により実行されるデコード前半処理と並行して実行される。   Next, the decoding latter half process executed by the decoding unit 551 and the decoding unit 601 corresponding to the decoding first half process of FIG. 32 will be described with reference to the flowchart of FIG. This process is executed in parallel with the first half decoding process executed by each decoder 565 described above with reference to FIG.

ステップS521において、メモリ転送制御部574は、デコード後半処理の開始が指示されたか否かを判定する。デコード後半処理の開始が指示されたと判定されるまで、ステップS521の判定処理は繰り返し実行され、上述した図32のステップS509またはS511において、デコード後半処理の開始を指示する情報がデコード制御部564からメモリ転送制御部574に供給された場合、デコード後半処理の開始が指示されたと判定され、処理はステップS522に進む。   In step S521, the memory transfer control unit 574 determines whether or not an instruction to start the latter half of the decoding process has been issued. Until it is determined that the start of the latter half of the decoding process has been instructed, the determination process of step S521 is repeatedly executed. In step S509 or S511 of FIG. When supplied to the memory transfer control unit 574, it is determined that the start of the second half of the decoding process has been instructed, and the process proceeds to step S522.

ステップS522において、メモリ転送制御部574は、データを転送する。具体的には、メモリ転送制御部574は、転送用メモリ573に蓄積されている1スライス分の逆量子化されたデータを、バス130を介して、デコード部601のスライスデータメモリ611に転送し、記憶させる。   In step S522, the memory transfer control unit 574 transfers data. Specifically, the memory transfer control unit 574 transfers the inversely quantized data for one slice stored in the transfer memory 573 to the slice data memory 611 of the decoding unit 601 via the bus 130. , Remember.

ステップS523において、IDCT部612は、IDCT(逆離散コサイン変換)処理を行う。なお、IDCT処理の詳細は、図34を参照して後述する。   In step S523, the IDCT unit 612 performs IDCT (inverse discrete cosine transform) processing. Details of the IDCT process will be described later with reference to FIG.

ステップS524において、フレームデータ生成部614は、1フレーム分の画像データがデコードされたか否かを判定する。1フレーム分の画像データがデコードされていないと判定された場合、処理はステップS525に進む。   In step S524, the frame data generation unit 614 determines whether image data for one frame has been decoded. If it is determined that the image data for one frame has not been decoded, the process proceeds to step S525.

ステップS525において、フレームデータ生成部614は、1フレーム分の画像データを出力する。具体的には、フレームデータ生成部614は、デコードが完了した1フレーム分の画像データを外部(例えば、バス130を介して信号処理部125)に出力する。   In step S525, the frame data generation unit 614 outputs image data for one frame. Specifically, the frame data generation unit 614 outputs image data for one frame for which decoding has been completed to the outside (for example, the signal processing unit 125 via the bus 130).

ステップS524において、1フレーム分の画像データがデコードされていないと判定された場合、ステップS525の処理はスキップされ、処理はステップS526に進む。   If it is determined in step S524 that the image data for one frame has not been decoded, the process in step S525 is skipped, and the process proceeds to step S526.

ステップS526において、フレームデータ生成部614は、デコード後半処理の終了を通知する。具体的には、フレームデータ生成部614は、デコード後半処理が終了したことを通知する情報を、バス130を介してデコード制御部564に供給する。その後、処理はステップS521に戻り、上述したステップS521以降の処理が実行される。   In step S526, the frame data generation unit 614 notifies the end of the second half of the decoding process. Specifically, the frame data generation unit 614 supplies information notifying the end of the second half of the decoding process to the decode control unit 564 via the bus 130. Thereafter, the process returns to step S521, and the processes after step S521 described above are executed.

次に、図34のフローチャートを参照して、図33のステップS523のIDCT処理の詳細を説明する。   Next, details of the IDCT processing in step S523 in FIG. 33 will be described with reference to the flowchart in FIG.

ステップS541において、IDCT部612は、テクスチャを生成する。具体的には、IDCT部612は、スライスデータメモリ611に蓄積されている1スライス分のデータを読出す。   In step S541, the IDCT unit 612 generates a texture. Specifically, the IDCT unit 612 reads data for one slice stored in the slice data memory 611.

なお、以下、1スライス分のデータが、図35のスライス651に示されるフォーマットにより構成されるものとして説明する。スライス651は、n個のマクロブロック(MB)により構成される。1つのマクロブロックは、16×16個の輝度情報Y、それぞれ16×8個の色差情報Cb,Crにより構成される。すなわち、輝度情報Yと色差情報Cb,Crの3つの成分の比率は4:2:2である。また、縦16×横16個の輝度情報Y、縦16×横8個の色差情報Cb、縦16×横8個の色差情報Cr、縦16×横8個の色差情報Cb、縦16×横8個の色差情報Crという順にマクロブロックの先頭から各情報が配置される。   In the following description, it is assumed that the data for one slice is composed of the format shown in the slice 651 in FIG. The slice 651 is composed of n macro blocks (MB). One macroblock includes 16 × 16 pieces of luminance information Y and 16 × 8 pieces of color difference information Cb and Cr, respectively. That is, the ratio of the three components of the luminance information Y and the color difference information Cb and Cr is 4: 2: 2. Also, 16 × 16 luminance information Y, 16 × 8 chrominance information Cb, 16 × 8 chrominance information Cr, 16 × 8 chrominance information Cb, 16 × vertical Each piece of information is arranged from the top of the macroblock in the order of eight pieces of color difference information Cr.

IDCT部612は、スライス651に含まれる各マクロブロックについて、1マクロブロックあたり、輝度情報Y×64個、色差情報Cb×16個、色差情報Cr×16個、色差情報Cb×16個、色差情報Cr×16個の順に配列した4つの情報の列を生成する。IDCT部612は、各マクロブロックから生成した4つの情報の列を、各列ごとに順に整列した4つのテクスチャ661乃至664を生成する。従って、1つのテクスチャは、縦n×横128個の情報により構成される。   For each macroblock included in the slice 651, the IDCT unit 612 has luminance information Y × 64, color difference information Cb × 16, color difference information Cr × 16, color difference information Cb × 16, color difference information per macroblock. Four columns of information arranged in the order of Cr × 16 are generated. The IDCT unit 612 generates four textures 661 to 664 in which four columns of information generated from each macroblock are arranged in order for each column. Therefore, one texture is composed of vertical n × horizontal 128 pieces of information.

ステップS542において、IDCT部612は、行変換を行う。具体的には、IDCT部612は、テクスチャ661乃至664の先頭の行(横方向の列)に配列されている情報、すなわち、スライス651の先頭のマクロブロックに含まれる情報から、縦8個×横8個×奥行き8個の情報により構成される3次元のブロック671−1を生成する。   In step S542, the IDCT unit 612 performs row conversion. Specifically, the IDCT unit 612 uses the information arranged in the top row (horizontal column) of the textures 661 to 664, that is, the information included in the top macroblock of the slice 651. A three-dimensional block 671-1 composed of 8 horizontal × 8 deep information is generated.

なお、3次元ブロック671−1を構成する各情報は、所定の規則に従って、テクスチャ661乃至664の先頭の行(横方向の列)の各情報に所定の係数を乗じ、係数を乗じた情報を足し合わせることにより生成される。また、ブロック671−1の上から1行目乃至4行目に、輝度情報Yが配置され、上から5行目および6行目に色差情報Cbが配置され、上から7行目および8行目に色差情報Crが配置される。   Each piece of information constituting the three-dimensional block 671-1 is obtained by multiplying each piece of information in the first row (horizontal column) of the textures 661 to 664 by a predetermined coefficient and multiplying the information according to a predetermined rule. Generated by adding together. The luminance information Y is arranged in the first to fourth lines from the top of the block 671-1, and the color difference information Cb is arranged in the fifth and sixth lines from the top, and the seventh and eighth lines from the top. Color difference information Cr is arranged in the eye.

ステップS543において、IDCT部612は、行変換が全て終了したか否かを判定する。行変換がまだ全て終了していないと判定された場合、処理はステップS542に戻り、ステップS543において、行変換が全て終了したと判定されるまで、ステップS542およびS543の処理が繰り返し実行される。すなわち、テクスチャ661乃至664の各行に対して、上述した行変換が順次行われ、その結果、3次元ブロック671−1乃至671−nが生成される。   In step S543, the IDCT unit 612 determines whether all the row conversions have been completed. If it is determined that the row conversion has not been completed yet, the process returns to step S542, and the processes of steps S542 and S543 are repeatedly executed until it is determined in step S543 that all the row conversions have been completed. That is, the row conversion described above is sequentially performed on each row of the textures 661 to 664, and as a result, three-dimensional blocks 671-1 to 671-n are generated.

なお、以下、3次元ブロック671−m(m=1,2,3,…n)を構成する縦8個×横8個の情報からなる8個の2次元のブロックを2次元ブロック671−m1乃至671−m8(m=1,2,3,…n)と称する。 In the following description, eight two-dimensional blocks comprising eight pieces of vertical information and eight pieces of horizontal information constituting the three-dimensional block 671-m (m = 1, 2, 3,... N) are represented by the two-dimensional block 671-m. 1 to 671-m 8 (m = 1, 2, 3,... N).

ステップS543において、行変換が全て終了した判定された場合、処理はステップS544に進む。   If it is determined in step S543 that all the row conversions have been completed, the process proceeds to step S544.

ステップS544において、IDCT部612は、列変換を行う。具体的には、IDCT部612は、所定の規則に従って、スライス651の先頭のマクロブロックから生成された3次元ブロック671−1から、縦8個×横8個×奥行き8個の情報からなる3次元ブロック681−1を生成する。   In step S544, the IDCT unit 612 performs column conversion. Specifically, the IDCT unit 612 is composed of 3 pieces of information of 8 vertical × 8 horizontal × 8 depth from the three-dimensional block 671-1 generated from the top macroblock of the slice 651 according to a predetermined rule. A dimension block 681-1 is generated.

なお、3次元ブロック681−1の奥行き方向の各列の情報は、所定の規則により各列に対応づけられている3次元ブロック671−1の横方向の行の情報に所定の係数を乗じたり、係数を乗じた情報を足し合わせることにより生成される。例えば、3次元ブロック681−1のいちばん上の面の図内左端の奥行き方向の列の情報は、その列に対応する3次元ブロック671−1を構成する2次元ブロック671−11の図内横方向の1行目の情報に所定の係数を乗じたり、係数を乗じた情報を足し合わせることにより生成される。また、ブロック681−1の上から1行目乃至4行目に、輝度情報Yが配置され、上から5行目および6行目に色差情報Cbが配置され、上から7行目および8行目に色差情報Crが配置される。 The information of each column in the depth direction of the three-dimensional block 681-1 may be obtained by multiplying the information of the row in the horizontal direction of the three-dimensional block 671-1 associated with each column by a predetermined rule by a predetermined coefficient. , And the information multiplied by the coefficient are added together. For example, three-dimensional block uppermost Diagram depth direction information of the leftmost column of the surface of the 681-1 is two-dimensional blocks 671-1 1 of FIG constituting the three-dimensional block 671-1 that corresponds to that column It is generated by multiplying the information in the first row in the horizontal direction by a predetermined coefficient or adding the information multiplied by the coefficient. The luminance information Y is arranged in the first to fourth lines from the top of the block 681-1, the color difference information Cb is arranged in the fifth and sixth lines from the top, and the seventh and eighth lines from the top. Color difference information Cr is arranged in the eye.

ステップS545において、IDCT部612は、列変換が全て終了したか否かを判定する。列変換がまだ全て終わっていないと判定された場合、処理はステップS544に戻り、ステップS545において、列変換が全て終了したと判定されるまで、ステップS544およびS545の処理が繰り返し実行される。すなわち、3次元ブロック671−1乃至671−nに対して、上述した列変換が順次行われ、その結果、3次元ブロック681−1乃至681−nが生成される。   In step S545, the IDCT unit 612 determines whether all column conversions have been completed. If it is determined that all the column conversions have not been completed, the process returns to step S544, and the processes of steps S544 and S545 are repeatedly executed until it is determined in step S545 that all the column conversions have been completed. That is, the above-described column conversion is sequentially performed on the three-dimensional blocks 671-1 to 671-n, and as a result, three-dimensional blocks 681-1 to 681-n are generated.

なお、以下、3次元ブロック681−m(m=1,2,3,…n)を構成する縦8個×横8個の情報からなる8個の2次元のブロックを2次元ブロック681−m1乃至681−m8(m=1,2,3,…n)と称する。 In the following description, eight two-dimensional blocks comprising eight pieces of vertical information and eight pieces of horizontal information constituting the three-dimensional block 681-m (m = 1, 2, 3,... N) are represented by the two-dimensional block 681-m. 1 to 681-m 8 (m = 1, 2, 3,... N).

ステップS545において、列変換が全て終了したと判定された場合、処理はステップS546に進む。   If it is determined in step S545 that all column conversions have been completed, the process proceeds to step S546.

ステップS546において、IDCT部612は、情報を並び替える。具体的には、IDCT部612は、図36に示すように、3次元ブロック681−1のいちばん上の面(2次元ブロック681−11乃至681−18のいちばん上の行)に含まれる輝度情報Yから8×8のマクロブロック711−1を生成する。同様に、IDCT部612は、ブロック681−1の上から2番目の面に含まれる輝度情報Yからマクロブロック711−2を生成し、上から3番目の面に含まれる輝度情報Yからマクロブロック711−3を生成し、上から4番目の面に含まれる輝度情報Yからマクロブロック711−4を生成する。 In step S546, the IDCT unit 612 rearranges the information. Specifically, IDCT unit 612, as shown in FIG. 36 is included at the top side of the three-dimensional block 681-1 (topmost row of the two-dimensional blocks 681-1 1 to 681-1 8) An 8 × 8 macroblock 711-1 is generated from the luminance information Y. Similarly, the IDCT unit 612 generates a macroblock 711-2 from the luminance information Y included in the second surface from the top of the block 681-1, and the macroblock from the luminance information Y included in the third surface from the top. 711-3 is generated, and a macroblock 711-4 is generated from the luminance information Y included in the fourth surface from the top.

さらに、デコード中のスライスを含むピクチャがフィールド構造である場合、IDCT部612は、マクロブロック711−1および711−3の各行を交互に配列したマクロブロック712−1および712−2を生成し、マクロブロック711−2および711−4の各行を交互に配列したマクロブロック712−3および712−4を生成する。IDCT部612は、図中、マクロブロック712−1を左上、マクロブロック712−2を左下、マクロブロック712−3を右上、マクロブロック712−4を右下に配列した16×16のマクロブロック713を生成する。   Further, when the picture including the slice being decoded has a field structure, the IDCT unit 612 generates macro blocks 712-1 and 712-2 in which the rows of the macro blocks 711-1 and 711-3 are alternately arranged, Macro blocks 712-3 and 712-4 in which the rows of the macro blocks 711-2 and 711-4 are alternately arranged are generated. In the figure, the IDCT unit 612 is a 16 × 16 macro block 713 in which the macro block 712-1 is arranged at the upper left, the macro block 712-2 is arranged at the lower left, the macro block 712-3 is arranged at the upper right, and the macro block 712-4 is arranged at the lower right. Is generated.

また、デコード中のスライスを含むピクチャがフレーム構造である場合、IDCT部612は、図中、マクロブロック711−1を左上、マクロブロック711−2を右上、マクロブロック711−3を左下、マクロブロック711−4を右下に配列した16×16のマクロブロック714を生成する。   When the picture including the slice being decoded has a frame structure, the IDCT unit 612 has the macro block 711-1 in the upper left, the macro block 711-2 in the upper right, the macro block 711-3 in the lower left, and the macro block. A 16 × 16 macroblock 714 in which 711-4 is arranged in the lower right is generated.

IDCT部612は、3次元ブロック681−2乃至681−nに含まれる輝度情報Yについても同様の並び替えを行う。また、3次元ブロック681−1乃至681−nに含まれる色差情報Cr,Cbについても同様の並び替えを行う。また、IDCT部612は、情報を並び替えたマクロブロックを先頭から順に配列したスライス691を生成する。例えば、デコード中のスライスを含むピクチャがフィールド構造である場合、図37に示されるように、3次元ブロック681−1から生成されたマクロブロック712−1乃至712−4がスライス691の先頭(図内、左端)に配置され、以降、同様に、3次元ブロック681−2乃至688−nから生成されたマクロブロックが順番に配列される。   The IDCT unit 612 performs similar rearrangement on the luminance information Y included in the three-dimensional blocks 681-2 to 681-n. Similar rearrangement is performed on the color difference information Cr and Cb included in the three-dimensional blocks 681-1 to 681-n. In addition, the IDCT unit 612 generates a slice 691 in which macroblocks in which information is rearranged are arranged in order from the top. For example, when a picture including a slice being decoded has a field structure, as shown in FIG. 37, macroblocks 712-1 to 712-4 generated from the three-dimensional block 681-1 are the top of the slice 691 (see FIG. In the same manner, the macroblocks generated from the three-dimensional blocks 681-2 to 688-n are sequentially arranged.

ステップS547において、IDCT部612は、RGB変換を行い、IDCT処理は終了する。具体的には、スライス691を構成する輝度情報Y、色差情報Cb,Crを、RGB方式のR信号、G信号、B信号に変換することにより画像データ701を生成する。IDCT部612は、生成した画像データ701をフレーム生成部614に供給する。また、IDCT部612は、IDCT処理が終了したことを通知する情報を、バス130を介してデコード制御部564に供給する。   In step S547, the IDCT unit 612 performs RGB conversion, and the IDCT processing ends. Specifically, the image data 701 is generated by converting the luminance information Y and the color difference information Cb and Cr constituting the slice 691 into RGB R, G, and B signals. The IDCT unit 612 supplies the generated image data 701 to the frame generation unit 614. In addition, the IDCT unit 612 supplies information notifying that the IDCT processing is completed to the decode control unit 564 via the bus 130.

このように、スライス層以下のデコード処理をCPU121とGPU521により分割かつ並行して実行することにより、デコード処理に要する時間を短縮することができるとともに、CPU121の負荷を軽減することができる。また、CPUなどの高性能なプロセッサと比較して安価なGPU521を用いることにより、コストを削減することができる。   As described above, the decoding processing below the slice layer is divided and executed in parallel by the CPU 121 and the GPU 521, whereby the time required for the decoding processing can be reduced and the load on the CPU 121 can be reduced. In addition, the cost can be reduced by using an inexpensive GPU 521 as compared with a high-performance processor such as a CPU.

以上のように、映像ストリームのピクチャに対応する領域を第1の復号手段の数に応じて分割した分割領域であって、映像ストリームを復号する第1の復号手段および第2の復号手段の処理単位である複数の単位領域を含む分割領域を設定し、第1の復号手段にそれぞれ割り当てた分割領域内の単位領域の所定の途中の段階までの復号を他の第1の復号手段と並行して実行するように第1の復号手段を制御し、第1の復号手段による復号と並行して途中の段階まで復号された単位領域の残りの段階の復号を実行するように第2の復号手段を制御する場合には、より高速に映像ストリームを復号することができる。   As described above, the areas corresponding to the pictures of the video stream are divided areas according to the number of the first decoding means, and the processing of the first decoding means and the second decoding means for decoding the video stream A division area including a plurality of unit areas as a unit is set, and decoding up to a predetermined intermediate stage of the unit area in the division area assigned to each of the first decoding means is performed in parallel with the other first decoding means. The second decoding means controls the first decoding means so as to execute the decoding, and executes the decoding of the remaining stage of the unit area decoded up to an intermediate stage in parallel with the decoding by the first decoding means. When controlling the video stream, the video stream can be decoded at a higher speed.

なお、以上の説明では、CPUにより実現されるデコーダの数を4つとする例を示したが、4以外の数とするようにしてもよい。   In the above description, an example in which the number of decoders realized by the CPU is four is shown, but a number other than four may be used.

また、以上の説明では、GPUにより実現されるデコーダの数を1つとする例を説明したが、1つのGPUにより複数のデコーダを実現するようにしたり、複数のデコーダを設けるようにしたりして、デコード後半処理を複数のデコーダにより並行して実行するようにしてもよい。   In the above description, the example in which the number of decoders realized by the GPU is one has been described. However, a plurality of decoders may be realized by one GPU, or a plurality of decoders may be provided. The latter half of the decoding process may be executed in parallel by a plurality of decoders.

さらに、以上の説明では、CPU121をマルチコアプロセッサにより構成するようにしたが、CPU等のプロセッサを複数設けて、CPU121により実現される各デコーダの処理を複数のプロセッサにより並列して行うようにしてもよい。   Furthermore, in the above description, the CPU 121 is configured by a multi-core processor. However, a plurality of processors such as CPUs may be provided, and the processing of each decoder realized by the CPU 121 may be performed in parallel by a plurality of processors. Good.

また、以上の説明では、MPEG2方式により映像ストリームをエンコードまたはデコードする場合の例を示したが、本発明は、例えば、映像ストリームのフレームの位置(例えば、映像ストリームの先頭からの相対位置、記録媒体に記録する位置など)、または、映像ストリームをデコードする場合の処理単位の位置(例えば、映像ストリームの先頭からの相対位置、記録媒体に記録する位置など)を示す情報を記録しない方式により映像ストリームをエンコードまたはデコードする場合に適用することができる。また、本発明は、例えば、映像ストリームの1フレームの画像に対応する映像ストリーム上の領域に処理単位が複数含まれる方式でエンコードされた映像ストリームを、複数のデコーダにより並列してデコードする場合に適用することができる。   In the above description, an example in which a video stream is encoded or decoded by the MPEG2 system has been described. However, the present invention can be applied to, for example, the position of a frame of a video stream (for example, the relative position from the beginning of the video stream, recording Video by a method that does not record information indicating the position of the recording unit on the medium or the position of the processing unit when decoding the video stream (for example, the relative position from the beginning of the video stream, the position of recording on the recording medium, etc.) This can be applied when encoding or decoding a stream. In addition, the present invention provides, for example, a case where a video stream encoded by a method in which a plurality of processing units are included in an area on a video stream corresponding to an image of one frame of the video stream is decoded in parallel by a plurality of decoders. Can be applied.

さらに、図30のステップS509またはS511において、デコード制御部564が、転送用メモリ573に記憶されているスライスがどの段階までデコードされているかを示す履歴情報を、スライスと関連づけて転送用メモリ573に記憶させるようにしてもよい。これにより、各デコーダが転送用メモリ573に記憶されているスライスがどの段階までデコードされているかが明確になるので、例えば、デコード処理を3段階以上に分けてデコードする場合、転送用メモリ573に記憶されているスライスを次にどのデコーダがデコードするかを決定するための情報として用いることができる。   Further, in step S509 or S511 of FIG. 30, the decode control unit 564 stores history information indicating how far the slice stored in the transfer memory 573 is decoded in the transfer memory 573 in association with the slice. You may make it memorize | store. As a result, it becomes clear to which stage the slice stored in the transfer memory 573 is decoded by each decoder. For example, when decoding is divided into three or more stages, the transfer memory 573 The stored slice can be used as information for determining which decoder will decode next.

上述した一連の処理は、ハードウェア(例えば、図2または図27の信号処理部125)により実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、例えばAV処理装置111などに、ネットワークや記録媒体からインストールされる。   The series of processes described above can be executed by hardware (for example, the signal processing unit 125 in FIG. 2 or FIG. 27) or can be executed by software. When a series of processing is executed by software, a program constituting the software is installed from, for example, a network or a recording medium into the AV processing device 111 or the like.

この記録媒体は、図2または図27に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア117により構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM122、または、HDD124などで構成される。   As shown in FIG. 2 or FIG. 27, this recording medium is not only composed of a removable medium 117 on which a program is recorded, which is distributed to provide a program to a user separately from the computer. Are provided to the user in a state of being preinstalled in the ROM 122 on which a program is recorded, the HDD 124, or the like.

また、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。   Further, in the present specification, the step of describing the program stored in the recording medium is not limited to the processing performed in time series according to the described order, but is not necessarily performed in time series. It also includes processes that are executed individually.

また、本明細書において、システムの用語は、複数の装置、手段などにより構成される全体的な装置を意味するものである。   Further, in the present specification, the term “system” means an overall apparatus constituted by a plurality of apparatuses and means.

従来、複数のプロセッサにより並列して映像ストリームをデコードする場合の処理の分割の例を説明する図である。It is a figure explaining the example of the division | segmentation of a process at the time of decoding a video stream in parallel by several conventional processors. 本発明を適用したAV処理システムの一実施の形態を示すブロック図である。1 is a block diagram showing an embodiment of an AV processing system to which the present invention is applied. 図2のCPUにより実現されるデコード部の機能の構成の例を示すブロック図である。It is a block diagram which shows the example of a function structure of the decoding part implement | achieved by CPU of FIG. 図3のデコード部により実行されるデコード処理を説明するフローチャートである。It is a flowchart explaining the decoding process performed by the decoding part of FIG. 図3のデコード部により実行されるデコード処理を説明するフローチャートである。It is a flowchart explaining the decoding process performed by the decoding part of FIG. 図3のデコード部により並列して映像ストリームをデコードする場合の処理の分割の例を説明する図である。FIG. 4 is a diagram illustrating an example of processing division when a video stream is decoded in parallel by the decoding unit of FIG. 3. 図2のCPUにより実現されるエンコード部の機能の構成の例を示すブロック図である。It is a block diagram which shows the example of a function structure of the encoding part implement | achieved by CPU of FIG. 図2のCPUにより実現されるデコード部の機能の構成の他の例を示すブロック図である。It is a block diagram which shows the other example of a structure of the function of the decoding part implement | achieved by CPU of FIG. ピクチャ位置情報のデータの構成の例を示す図である。It is a figure which shows the example of a structure of the data of picture position information. スライス位置情報のデータの構成の例を示す図である。It is a figure which shows the example of a structure of the data of slice position information. 図7のエンコード部により実行されるエンコード処理を説明するフローチャートである。It is a flowchart explaining the encoding process performed by the encoding part of FIG. 図11のステップS105のピクチャ層以下エンコード処理の詳細を説明するフローチャートである。12 is a flowchart for explaining details of encoding processing for a picture layer and below in step S105 of FIG. 11. 図8のデコード部により実行されるデコード処理を説明するフローチャートである。It is a flowchart explaining the decoding process performed by the decoding part of FIG. 図8のデコード部により実行されるデコード処理を説明するフローチャートである。It is a flowchart explaining the decoding process performed by the decoding part of FIG. 図8のデコード部により実行されるデコード開始位置検出処理を説明するフローチャートである。It is a flowchart explaining the decoding start position detection process performed by the decoding part of FIG. 図2のCPUにより実現されるエンコード部の機能の構成の他の例を示すブロック図である。It is a block diagram which shows the other example of a structure of the function of the encoding part implement | achieved by CPU of FIG. 図2のCPUにより実現されるデコード部の機能の構成のさらに他の例を示すブロック図である。FIG. 10 is a block diagram showing still another example of a functional configuration of a decoding unit realized by the CPU of FIG. 2. クリップ位置情報のデータの構成の例を示す図である。It is a figure which shows the example of a structure of the data of clip position information. 図18のクリップ位置情報に含まれるピクチャ位置情報のデータの構成の例を示す図である。It is a figure which shows the example of a structure of the data of the picture position information contained in the clip position information of FIG. 図18のクリップ位置情報に含まれるスライス位置情報のデータの構成の例を示す図である。It is a figure which shows the example of a structure of the data of the slice position information contained in the clip position information of FIG. 図16のエンコード部により実行されるエンコード処理を説明するフローチャートである。It is a flowchart explaining the encoding process performed by the encoding part of FIG. 図17のデコード部により実行されるデコード処理を説明するフローチャートである。It is a flowchart explaining the decoding process performed by the decoding part of FIG. 図17のデコード部により実行されるデコード処理を説明するフローチャートである。It is a flowchart explaining the decoding process performed by the decoding part of FIG. 図2のCPUにより実現されるデコード部の機能の構成のさらに他の例を示すブロック図である。FIG. 10 is a block diagram showing still another example of a functional configuration of a decoding unit realized by the CPU of FIG. 2. 図24のデコード部により実行されるデコード処理を説明するフローチャートである。It is a flowchart explaining the decoding process performed by the decoding part of FIG. 図24のデコード部により実行されるデコード処理を説明するフローチャートである。It is a flowchart explaining the decoding process performed by the decoding part of FIG. 本発明を適用したAV処理システムの他の実施の形態を示すブロック図である。It is a block diagram which shows other embodiment of the AV processing system to which this invention is applied. 図27のCPUにより実現されるデコード部の機能の構成の例を示すブロック図である。It is a block diagram which shows the example of a function structure of the decoding part implement | achieved by CPU of FIG. 図27のGPUにより実現されるデコード部の機能の構成の例を示すブロック図である。It is a block diagram which shows the example of a function structure of the decoding part implement | achieved by GPU of FIG. 図28のデコード部により実行されるデコード処理を説明するフローチャートである。It is a flowchart explaining the decoding process performed by the decoding part of FIG. 図28のデコード部により実行されるデコード処理を説明するフローチャートである。It is a flowchart explaining the decoding process performed by the decoding part of FIG. 図31のステップS464のデコード前半処理の詳細を説明するフローチャートである。It is a flowchart explaining the detail of the decoding first half process of step S464 of FIG. 図28のデコード部および図29のデコード部により実行されるデコード後半処理を説明するフローチャートである。It is a flowchart explaining the decoding latter half process performed by the decoding part of FIG. 28, and the decoding part of FIG. 図33のステップS423のIDCT処理の詳細を説明するフローチャートである。It is a flowchart explaining the detail of the IDCT process of step S423 of FIG. IDCT処理により生成されるデータの遷移を説明する図である。It is a figure explaining the transition of the data produced | generated by IDCT process. マクロブロックを構成する情報の並び替えを説明する図である。It is a figure explaining rearrangement of the information which constitutes a macroblock. スライス内の情報の配列を説明するための図である。It is a figure for demonstrating the arrangement | sequence of the information in a slice.

符号の説明Explanation of symbols

101 AV処理システム, 111 AV処理装置, 112 ドライブ, 116,117 リムーバブルメディア, 121 CPU, 122 ROM, 124 HDD, 125 信号処理部, 151 デコード部, 161 ストリーム読出し制御部, 162 ストリーム解析部, 163 デコード領域設定部, 164 デコード制御部, 165 デコーダ, 166 ベースバンド出力制御部, 201 エンコード部, 211 エンコーダ, 212 ピクチャカウント部, 213 スライスカウント部, 214 スタート位置メモリ, 215 スタート位置記録制御部, 216 ストリーム出力制御部, 251 デコード部, 261 ストリーム読出し制御部, 262 ストリーム解析部, 264 デコード制御部, 265 デコーダ, 266 ベースバンド出力制御部, 271 スタート位置検出部, 301 エンコード部, 311 エンコーダ, 312 ピクチャカウント部, 313 スライスカウント部, 314 スタート位置メモリ, 315 スタート位置記録制御部, 316 ストリーム出力制御部, 321 GOPカウンタ, 351 デコード部, 361 ストリーム読出し制御部, 362 ストリーム解析部, 364 デコード制御部, 365 デコーダ, 366 ベースバンド出力制御部, 371 スタート位置検出部, 451 デコード部, 461 ストリーム読出し制御部, 462 ストリーム解析部, 463 デコード領域設定部, 464 デコード制御部, 465 デコーダ, 466 ベースバンド出力制御部, 471 スタート位置検出部, 501 AV処理システム, 511 AV処理装置, 521 GPU, 551 デコード部, 561 ストリーム読出し制御部, 562 ストリーム解析部, 563 デコード領域設定部, 564 デコード制御部, 565 デコーダ, 571 スタート位置検出部, 572 スライスデータ蓄積メモリ, 574 メモリ転送制御部, 601 デコード部, 612 IDCT部, 613 動き補償部, 614 フレームデータ生成部, 651 スライス, 671 3次元ブロック, 681 3次元ブロック, 691 スライス, 701 画像データ   101 AV processing system, 111 AV processing device, 112 drive, 116, 117 removable media, 121 CPU, 122 ROM, 124 HDD, 125 signal processing unit, 151 decoding unit, 161 stream read control unit, 162 stream analysis unit, 163 decoding Area setting unit, 164 decoding control unit, 165 decoder, 166 baseband output control unit, 201 encoding unit, 211 encoder, 212 picture count unit, 213 slice count unit, 214 start position memory, 215 start position recording control unit, 216 stream Output control unit, 251 decoding unit, 261 stream reading control unit, 262 stream analysis unit, 264 decoding control unit, 265 decoder, 266 Baseband output control unit, 271 start position detection unit, 301 encoding unit, 311 encoder, 312 picture count unit, 313 slice count unit, 314 start position memory, 315 start position recording control unit, 316 stream output control unit, 321 GOP counter , 351 decode unit, 361 stream read control unit, 362 stream analysis unit, 364 decode control unit, 365 decoder, 366 baseband output control unit, 371 start position detection unit, 451 decode unit, 461 stream read control unit, 462 stream analysis 463 decode area setting unit 464 decode control unit 465 decoder 466 baseband output control unit 471 start position detection unit 501 AV processing system, 511 AV processing device, 521 GPU, 551 decoding unit, 561 stream read control unit, 562 stream analysis unit, 563 decoding area setting unit, 564 decoding control unit, 565 decoder, 571 start position detection unit, 572 slice Data storage memory, 574 memory transfer control unit, 601 decoding unit, 612 IDCT unit, 613 motion compensation unit, 614 frame data generation unit, 651 slice, 671 3D block, 681 3D block, 691 slice, 701 image data

Claims (10)

映像ストリームのピクチャに対応する領域を第1の復号手段の数に応じて分割した分割領域であって、前記映像ストリームを復号する前記第1の復号手段および第2の復号手段の処理単位である複数の単位領域を含む分割領域を設定する設定ステップと、
前記第1の復号手段にそれぞれ割り当てた前記分割領域内の前記単位領域の所定の途中の段階までの復号を他の前記第1の復号手段と並行して実行するように前記第1の復号手段を制御する前半復号制御ステップと、
前記第1の復号手段による復号と並行して前記途中の段階まで復号された前記単位領域の残りの段階の復号を実行するように前記第2の復号手段を制御する後半復号制御ステップと
を含む処理をコンピュータに実行させるプログラム。
A divided area obtained by dividing an area corresponding to a picture of a video stream in accordance with the number of first decoding means, which is a processing unit of the first decoding means and the second decoding means for decoding the video stream. A setting step for setting a divided area including a plurality of unit areas;
The first decoding means so as to execute decoding up to a predetermined intermediate stage of the unit area in the divided area respectively assigned to the first decoding means in parallel with the other first decoding means. A first half decoding control step for controlling
A second half decoding control step of controlling the second decoding means so as to execute decoding of the remaining stages of the unit area decoded up to the intermediate stage in parallel with decoding by the first decoding means. A program that causes a computer to execute processing.
前記映像ストリームはMPEG(Moving Picture Experts Group)方式により符号化された映像ストリームである
請求項1に記載のプログラム。
The program according to claim 1, wherein the video stream is a video stream encoded by a moving picture experts group (MPEG) method.
前記前半復号制御ステップにおいて、前記スライスの可変長復号および逆量子化を含む復号を行うように前記第1の復号手段が制御され、
前記後半復号制御ステップにおいて、前記スライスの逆離散コサイン変換を含む復号を行うように前記第2の復号手段が制御される
請求項2に記載のプログラム。
In the first half decoding control step, the first decoding means is controlled to perform decoding including variable length decoding and inverse quantization of the slice;
The program according to claim 2, wherein in the second half decoding control step, the second decoding unit is controlled to perform decoding including inverse discrete cosine transform of the slice.
前記単位領域はスライスである
請求項2に記載のプログラム。
The program according to claim 2, wherein the unit area is a slice.
前記第1の復号手段と前記第2の復号手段とは異なるハードウェアにより実現される
請求項1に記載のプログラム。
The program according to claim 1, wherein the first decoding unit and the second decoding unit are realized by different hardware.
前記第2の復号手段は、GPU(Graphics Processing Unit)により実現される
請求項4に記載のプログラム。
The program according to claim 4, wherein the second decoding unit is realized by a GPU (Graphics Processing Unit).
前記後半復号制御ステップにおいて、どの段階まで前記単位領域の復号が終了しているかを示す情報が前記第2の復号手段に供給される
請求項1に記載のプログラム。
The program according to claim 1, wherein in the latter half decoding control step, information indicating to which stage decoding of the unit area has been completed is supplied to the second decoding means.
請求項1に記載のプログラムが記録されている記録媒体。   A recording medium on which the program according to claim 1 is recorded. 映像ストリームのピクチャに対応する領域を第1の復号手段の数に応じて分割した分割領域であって、前記映像ストリームを復号する前記第1の復号手段および第2の復号手段の処理単位である複数の単位領域を含む分割領域を設定する設定ステップと、
前記第1の復号手段にそれぞれ割り当てた前記分割領域内の前記単位領域の所定の途中の段階までの復号を他の前記第1の復号手段と並行して実行するように前記第1の復号手段を制御する前半復号制御ステップと、
前記第1の復号手段による復号と並行して前記途中の段階まで復号された前記単位領域の残りの段階の復号を実行するように前記第2の復号手段を制御する後半復号制御ステップと
を含む復号制御方法。
A divided area obtained by dividing an area corresponding to a picture of a video stream in accordance with the number of first decoding means, which is a processing unit of the first decoding means and the second decoding means for decoding the video stream. A setting step for setting a divided area including a plurality of unit areas;
The first decoding means so as to execute decoding up to a predetermined intermediate stage of the unit area in the divided area respectively assigned to the first decoding means in parallel with the other first decoding means. A first half decoding control step for controlling
A second half decoding control step of controlling the second decoding means so as to execute decoding of the remaining stages of the unit area decoded up to the intermediate stage in parallel with decoding by the first decoding means. Decryption control method.
映像ストリームのピクチャに対応する領域を第1の復号手段の数に応じて分割した分割領域であって、前記映像ストリームを復号する前記第1の復号手段および第2の復号手段の処理単位である複数の単位領域を含む分割領域を設定する設定手段と、
前記第1の復号手段にそれぞれ割り当てた前記分割領域内の前記単位領域の所定の途中の段階までの復号を他の前記第1の復号手段と並行して実行するように前記第1の復号手段を制御し、前記第1の復号手段による復号と並行して前記途中の段階まで復号された前記単位領域の残りの段階の復号を実行するように前記第2の復号手段を制御する復号制御手段と
を含む復号制御装置。
A divided area obtained by dividing an area corresponding to a picture of a video stream in accordance with the number of first decoding means, which is a processing unit of the first decoding means and the second decoding means for decoding the video stream. Setting means for setting a divided area including a plurality of unit areas;
The first decoding means so as to execute decoding up to a predetermined intermediate stage of the unit area in the divided area respectively assigned to the first decoding means in parallel with the other first decoding means. Decoding control means for controlling the second decoding means so as to execute decoding of the remaining stages of the unit area decoded up to the intermediate stage in parallel with decoding by the first decoding means And a decoding control device comprising:
JP2005241993A 2005-04-15 2005-08-24 Decoding control device and method, recording medium, and program Pending JP2006319944A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005241993A JP2006319944A (en) 2005-04-15 2005-08-24 Decoding control device and method, recording medium, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005119001 2005-04-15
JP2005241993A JP2006319944A (en) 2005-04-15 2005-08-24 Decoding control device and method, recording medium, and program

Publications (1)

Publication Number Publication Date
JP2006319944A true JP2006319944A (en) 2006-11-24

Family

ID=37540141

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005241993A Pending JP2006319944A (en) 2005-04-15 2005-08-24 Decoding control device and method, recording medium, and program

Country Status (1)

Country Link
JP (1) JP2006319944A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008252818A (en) * 2007-03-30 2008-10-16 Toshiba Corp Information processing device
JP2009048469A (en) * 2007-08-21 2009-03-05 Fujitsu Ltd Information processing apparatus and information processing method
JP2010035230A (en) * 2009-11-10 2010-02-12 Toshiba Corp Information processor and video playback method
CN101895746A (en) * 2009-05-22 2010-11-24 索尼公司 Decoding processing apparatus and method, data distribution program and decoding handling procedure
JP2011151855A (en) * 2011-04-20 2011-08-04 Toshiba Corp Information processor, video reproduction method, and video reproduction program
KR101063424B1 (en) 2009-02-02 2011-09-07 주식회사 코아로직 Video data processing device and method
JP2016072826A (en) * 2014-09-30 2016-05-09 株式会社ソニー・コンピュータエンタテインメント Image decoding device, graphic processing device, image decoding method, and graphic processing method

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844704A (en) * 1994-07-29 1996-02-16 Sony Corp Digital signal processor device
JPH10178644A (en) * 1996-12-18 1998-06-30 Sharp Corp Video decoding device
JPH10262248A (en) * 1997-03-17 1998-09-29 Fujitsu Ltd Microcontroller
JPH1186456A (en) * 1994-04-13 1999-03-30 Toshiba Corp Recording medium and playback device
JPH11346366A (en) * 1998-06-01 1999-12-14 Sony Corp Coder, its method, decoder and its method
JP2003224847A (en) * 2002-01-29 2003-08-08 Sony Corp Image encoder and method thereof, and image decoder and method thereof
JP2003319389A (en) * 2002-04-26 2003-11-07 Matsushita Electric Ind Co Ltd Image data decoding apparatus and structure of image data

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1186456A (en) * 1994-04-13 1999-03-30 Toshiba Corp Recording medium and playback device
JPH0844704A (en) * 1994-07-29 1996-02-16 Sony Corp Digital signal processor device
JPH10178644A (en) * 1996-12-18 1998-06-30 Sharp Corp Video decoding device
JPH10262248A (en) * 1997-03-17 1998-09-29 Fujitsu Ltd Microcontroller
JPH11346366A (en) * 1998-06-01 1999-12-14 Sony Corp Coder, its method, decoder and its method
JP2003224847A (en) * 2002-01-29 2003-08-08 Sony Corp Image encoder and method thereof, and image decoder and method thereof
JP2003319389A (en) * 2002-04-26 2003-11-07 Matsushita Electric Ind Co Ltd Image data decoding apparatus and structure of image data

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008252818A (en) * 2007-03-30 2008-10-16 Toshiba Corp Information processing device
JP2009048469A (en) * 2007-08-21 2009-03-05 Fujitsu Ltd Information processing apparatus and information processing method
KR101063424B1 (en) 2009-02-02 2011-09-07 주식회사 코아로직 Video data processing device and method
CN101895746A (en) * 2009-05-22 2010-11-24 索尼公司 Decoding processing apparatus and method, data distribution program and decoding handling procedure
US20100296585A1 (en) * 2009-05-22 2010-11-25 Masaru Matsuura Decode processing apparatus, decode processing method, data distribution program, and decode processing program
US9179158B2 (en) 2009-05-22 2015-11-03 Sony Corporation Decode processing apparatus, decode processing method, data distribution program, and decode processing program
JP2010035230A (en) * 2009-11-10 2010-02-12 Toshiba Corp Information processor and video playback method
JP2011151855A (en) * 2011-04-20 2011-08-04 Toshiba Corp Information processor, video reproduction method, and video reproduction program
JP2016072826A (en) * 2014-09-30 2016-05-09 株式会社ソニー・コンピュータエンタテインメント Image decoding device, graphic processing device, image decoding method, and graphic processing method

Similar Documents

Publication Publication Date Title
JP4374548B2 (en) Decoding device and method, recording medium, and program
JP7159427B2 (en) Image decoding device, image decoding method and program
CN109417642B (en) Video bitstream generation method and device for high-resolution video stream
US9264708B2 (en) Method and apparatus for encoding and decoding coding unit of picture boundary
US8374250B2 (en) Image coding apparatus and method
KR102041744B1 (en) Coding apparatus, decoding apparatus, coding method, decoding method, and computer-readable storage medium
KR102043579B1 (en) Image coding apparatus, method for coding image, image decoding apparatus, method for decoding image, and computer readable medium
KR20190094407A (en) Encoding device, encoding method and program, decoding device, decoding method and program
US20120320977A1 (en) Encoding/decoding apparatus, imaging apparatus, and methods for controlling therefor
JPH08251595A (en) Image decompressor
EP3243329B1 (en) Image decoding apparatus, image decoding method, and storage medium
JP2013229674A (en) Image coding device, image decoding device, image coding method, image decoding method, image coding program, and image decoding program
JP2006512838A (en) Encoding dynamic graphic content views
JP2006319944A (en) Decoding control device and method, recording medium, and program
JP2008252874A (en) Moving picture encoding method, moving picture decoding method, moving picture encoding apparatus, and moving picture decoding apparatus
US20170070734A1 (en) Coding apparatus, decoding apparatus, and video transmission system
US9219926B2 (en) Image encoding apparatus, image encoding method and program, image decoding apparatus, image decoding method and program
KR20080061379A (en) Coding / decoding method and apparatus for improving video error concealment
JP4708821B2 (en) Moving picture coding apparatus, control method therefor, computer program, and storage medium
WO2012140889A1 (en) Image encoding apparatus, image encoding method, image encoding program, image decoding apparatus, image decoding method, and image decoding program
JP6838888B2 (en) Coding device and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110315

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110705