JP2008072336A - Decoding device and decoding method - Google Patents

Decoding device and decoding method Download PDF

Info

Publication number
JP2008072336A
JP2008072336A JP2006248237A JP2006248237A JP2008072336A JP 2008072336 A JP2008072336 A JP 2008072336A JP 2006248237 A JP2006248237 A JP 2006248237A JP 2006248237 A JP2006248237 A JP 2006248237A JP 2008072336 A JP2008072336 A JP 2008072336A
Authority
JP
Japan
Prior art keywords
encoded
stream
frame
memory area
frames
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.)
Granted
Application number
JP2006248237A
Other languages
Japanese (ja)
Other versions
JP4476261B2 (en
Inventor
Daizo Nagahara
大三 長原
Kenichi Imai
憲一 今井
Yoshihiro Tamura
吉弘 田村
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 Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2006248237A priority Critical patent/JP4476261B2/en
Publication of JP2008072336A publication Critical patent/JP2008072336A/en
Application granted granted Critical
Publication of JP4476261B2 publication Critical patent/JP4476261B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To provide a decoding device and decoding method which solves the problem, wherein advanced programming is required for listing displaying a plurality of animation thumbnails on a table. <P>SOLUTION: A changeover section 14 reads the encoding data of an encoding stream by a changeover, to one among a plurality of encoding streams, when frames for a dynamic image are given a plurality of the encoded encoding streams. A video decoder 20 decodes the encoding data of the encoding stream read by the changeover section 14 and generates the frames, and writes the frames to a frame buffer 26. The frame buffer 26 contains a shared memory region 28, for temporarily holding a fixed number of the frames decoded from each of a plurality of the encoding streams for a display as a single-memory region shared among a plurality of the encoding streams. The stream buffer 26 is configured in a storable manner, even in either space region, without being subjected to the restrictions of a storage place in the shared memory region 28, even if the frames is one decoded from either encoding stream. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

この発明は、動画像が符号化されたストリームを復号する復号装置および復号方法に関する。   The present invention relates to a decoding apparatus and a decoding method for decoding a stream in which a moving image is encoded.

DVD(Digital Versatile Disc)などの大容量の光ディスクメディアを再生可能なメディアプレーヤやパーソナルコンピュータが普及しており、高品質の映像コンテンツがDVDなどに格納されて提供されている。また、テレビ放送などで提供されるコンテンツをDVDに録画することのできるDVDレコーダも普及している。DVDなどの記録媒体にビデオやオーディオを蓄積するためには圧縮符号化技術が不可欠であり、MPEG(Moving Picture Experts Group)やH.264/AVC(Advanced Video Coding)のような動画像圧縮符号化技術の規格がある。圧縮符号化されたビデオデータとオーディオデータは、再生時刻情報など同期再生に必要なヘッダ情報とともに一つのストリームに多重化されて、記録媒体に蓄積される。   Media players and personal computers capable of reproducing large-capacity optical disc media such as DVDs (Digital Versatile Discs) have become widespread, and high-quality video content is stored and provided on DVDs or the like. In addition, DVD recorders that can record content provided by television broadcasting or the like on a DVD are also widespread. In order to store video and audio on a recording medium such as a DVD, a compression coding technique is indispensable, MPEG (Moving Picture Experts Group) and H.264. There is a standard for moving picture compression coding technology such as H.264 / AVC (Advanced Video Coding). The compression-coded video data and audio data are multiplexed into one stream together with header information necessary for synchronous reproduction such as reproduction time information, and stored in a recording medium.

DVDプレイヤ、パーソナルコンピュータ、携帯端末などで映像コンテンツを再生する際、ハードディスクや記録媒体に格納された複数の映像コンテンツをまず動画サムネイルとして同時に画面に一覧表示し、ユーザに閲覧させるインタフェースが提供されることがある。ユーザが動画サムネイルの一覧表示において、いずれかの動画サムネイルを選択すると、その動画がフルサイズで再生される。   When playing back video content on a DVD player, personal computer, portable terminal, or the like, an interface is provided in which a plurality of video content stored in a hard disk or a recording medium is first displayed as a list of moving image thumbnails on the screen at the same time so that the user can browse. Sometimes. When the user selects any one of the moving image thumbnails in the moving image thumbnail list display, the moving image is reproduced in full size.

特許文献1には、複数の圧縮画像データを伸張して同時に表示する画像表示装置が開示されている。
特開平7−271345号公報
Patent Document 1 discloses an image display device that decompresses and simultaneously displays a plurality of compressed image data.
Japanese Patent Laid-Open No. 7-271345

複数の動画サムネイルを一覧表示するためには、複数のデコーダを用いて同時に表示する複数の動画ストリームを並列に復号する必要があり、デコーダをハードウェアで実装する場合は回路規模が大きくなり、ソフトウェアで実装する場合は、メモリやCPUなどのシステムリソースを大量に消費する。また、同時に表示する動画ストリームの本数に応じてデコーダの個数を調整できるスケーラブルな復号処理の構成を容易する必要があるが、ハードウェアでそのようなスケーラビリティをもつ復号回路を実装することは困難である。またソフトウェアでスケーラビリティをもたせるには並列処理を実装する必要があり、高度で複雑なプログラミングが要求される。また、複数の動画ストリームを並列に復号処理する過程で、システムリソースが枯渇した場合、同時に表示すべき動画ストリームの一部の復号が間に合わず、フレーム落ちが生じることもある。   In order to display a list of a plurality of video thumbnails, it is necessary to decode a plurality of video streams to be displayed simultaneously using a plurality of decoders in parallel. In the case of mounting with the above, a large amount of system resources such as memory and CPU are consumed. In addition, it is necessary to facilitate the configuration of scalable decoding processing that can adjust the number of decoders according to the number of video streams to be displayed at the same time, but it is difficult to implement a decoding circuit having such scalability in hardware. is there. In order to provide scalability in software, it is necessary to implement parallel processing, which requires sophisticated and complicated programming. Further, when system resources are exhausted in the process of decoding a plurality of moving picture streams in parallel, decoding of a part of the moving picture streams to be displayed at the same time may not be in time, resulting in frame dropping.

本発明はこうした課題に鑑みてなされたものであり、その目的は、動画像が符号化された複数のストリームを同時に効率良く再生することができる復号装置および復号方法を提供することにある。   The present invention has been made in view of these problems, and an object of the present invention is to provide a decoding apparatus and a decoding method capable of efficiently and simultaneously reproducing a plurality of streams in which moving images are encoded.

上記課題を解決するために、本発明のある態様の復号装置は、動画像のフレームが符号化された符号化ストリームが複数与えられた場合、複数の符号化ストリームのいずれか一つに切り替えて前記符号化ストリームの符号化データを読み出す切替部と、
前記切替部により選択された前記符号化ストリームの符号化データを復号してフレームを生成するデコーダと、各符号化ストリームから復号されたフレームを一時的にバッファするフレームバッファとを含む。前記フレームバッファは、前記複数の符号化ストリームの間で共有される単一のメモリ領域であって、前記複数の符号化ストリームの各々から復号された所定枚数のフレームを一時的に保持するための共有メモリ領域を含み、いずれの符号化ストリームから復号されたフレームであっても、当該共有メモリ領域内の格納位置の制限を受けることなく、いずれの空き領域にも格納可能に構成される。
In order to solve the above problems, a decoding device according to an aspect of the present invention switches to one of a plurality of encoded streams when a plurality of encoded streams in which a frame of a moving image is encoded are given. A switching unit for reading out encoded data of the encoded stream;
A decoder that decodes encoded data of the encoded stream selected by the switching unit to generate a frame; and a frame buffer that temporarily buffers a frame decoded from each encoded stream. The frame buffer is a single memory area shared between the plurality of encoded streams, and temporarily stores a predetermined number of frames decoded from each of the plurality of encoded streams. A frame including a shared memory area and decoded from any encoded stream can be stored in any free area without being restricted by the storage position in the shared memory area.

本発明の別の態様は復号方法である。この方法は、動画像のフレームが符号化された符号化ストリームが複数与えられた場合、複数の符号化ストリームのいずれか一つに切り替えて前記符号化ストリームの符号化データを読み出すステップと、読み出された前記符号化ストリームの符号化データを復号してフレームを生成するステップと、前記複数の符号化ストリーム間で共有される単一のメモリ領域であって、前記複数の符号化ストリームの各々から復号された所定枚数のフレームを一時的に保持するための共有メモリ領域に、各符号化ストリームから復号されたフレームを、いずれの符号化ストリームから復号されたものであっても、当該共有メモリ領域内の格納位置を制限せずに、いずれかの空き位置に格納するステップとを含む。   Another aspect of the present invention is a decoding method. In this method, when a plurality of encoded streams in which a frame of a moving image is encoded are given, a step of switching to any one of the plurality of encoded streams and reading out encoded data of the encoded stream, A step of generating a frame by decoding encoded data of the encoded stream that is output, and a single memory area shared between the plurality of encoded streams, each of the plurality of encoded streams In the shared memory area for temporarily holding a predetermined number of frames decoded from the frame, the shared memory can be obtained from any of the encoded streams decoded from each encoded stream. Storing in any empty position without restricting the storage position in the area.

本発明のさらに別の態様はプログラムである。このプログラムは、動画像のフレームが符号化された符号化ストリームが複数与えられた場合、複数の符号化ストリームのいずれか一つに切り替えて前記符号化ストリームの符号化データを読み出す切替機能と、前記切替機能により選択された前記符号化ストリームの符号化データを復号してフレームを生成する復号機能と、前記複数の符号化ストリーム間で共有される単一のメモリ領域であって、前記複数の符号化ストリームの各々から復号された所定枚数のフレームを一時的に保持するための共有メモリ領域に、各符号化ストリームから復号されたフレームを、いずれの符号化ストリームから復号されたものであっても、当該共有メモリ領域内の格納位置を制限せずに、いずれかの空き位置に格納するバッファリング機能とをコンピュータに実現させる。   Yet another embodiment of the present invention is a program. This program has a switching function of switching to any one of a plurality of encoded streams and reading the encoded data of the encoded stream when a plurality of encoded streams in which a frame of a moving image is encoded is given, A decoding function for decoding the encoded data of the encoded stream selected by the switching function to generate a frame, and a single memory area shared between the plurality of encoded streams, A frame decoded from each encoded stream is decoded from any encoded stream in a shared memory area for temporarily holding a predetermined number of frames decoded from each encoded stream. In addition, the storage location in the shared memory area is not limited, and a buffering function that stores data in any free location is used. To realize to.

このプログラムは、ビデオやオーディオのデコーダのライブラリとして提供されてもよく、あるいはビデオやオーディオのデコーダ等のハードウエア資源の基本的な制御を行なうために機器に組み込まれるファームウエアの一部として提供されてもよい。このファームウエアは、たとえば、機器内のROMやフラッシュメモリなどの半導体メモリに格納される。このファームウエアを提供するため、あるいはファームウエアの一部をアップデートするために、このプログラムを記録したコンピュータ読み取り可能な記録媒体が提供されてもよく、また、このプログラムが通信回線で伝送されてもよい。   This program may be provided as a library of video and audio decoders, or as part of firmware that is built into the equipment to perform basic control of hardware resources such as video and audio decoders. May be. This firmware is stored, for example, in a semiconductor memory such as a ROM or a flash memory in the device. In order to provide the firmware or to update a part of the firmware, a computer-readable recording medium storing the program may be provided, and the program may be transmitted through a communication line. Good.

なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。   It should be noted that any combination of the above-described constituent elements and the expression of the present invention converted between a method, an apparatus, a system, a computer program, a data structure, a recording medium, etc. are also effective as an aspect of the present invention.

本発明によれば、動画像が符号化された複数のストリームを同時に効率良く再生することができる。   According to the present invention, a plurality of streams in which moving images are encoded can be simultaneously and efficiently reproduced.

図1は、実施の形態に係る復号装置100の構成図である。同図は機能に着目したブロック図を描いており、これらの機能ブロックはハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現することができる。   FIG. 1 is a configuration diagram of a decoding device 100 according to an embodiment. This figure depicts a block diagram focusing on functions, and these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof.

復号装置100は、オーディオデータとビデオデータが符号化されて多重化されたストリーム(以下、「符号化ストリーム」または単に「ストリーム」と呼ぶ)を復号して再生する。符号化ストリームにおいて、ビデオデータはMPEG(Moving Picture Experts Group)−2やMPEG−4、H.264/AVCなどの規格にしたがって符号化されており、オーディオデータはMPEGオーディオなどの規格にしたがって符号化されている。復号装置100は、符号化ストリームからオーディオデータとビデオデータを分離した上でそれぞれを復号してオーディオとビデオを同期再生する。   The decoding apparatus 100 decodes and reproduces a stream in which audio data and video data are encoded and multiplexed (hereinafter referred to as “encoded stream” or simply “stream”). In the encoded stream, the video data is MPEG (Moving Picture Experts Group) -2, MPEG-4, H.264, or the like. The audio data is encoded in accordance with a standard such as H.264 / AVC, and the audio data is encoded in accordance with a standard such as MPEG audio. The decoding apparatus 100 separates audio data and video data from the encoded stream, and then decodes each to reproduce audio and video synchronously.

復号装置100は、複数の符号化ストリームの各々からフレームを復号して、ディスプレイ110の画面に複数の動画サムネイルを同時に表示する。ユーザはディスプレイ110の画面上で複数の動画サムネイルを閲覧し、いずれかの動画サムネイルを選択することで、選択した動画をフルサイズで再生することができる。このとき、オーディオも同期して再生される。   The decoding apparatus 100 decodes a frame from each of a plurality of encoded streams and simultaneously displays a plurality of moving image thumbnails on the screen of the display 110. The user browses a plurality of moving image thumbnails on the screen of the display 110 and selects any one of the moving image thumbnails, thereby reproducing the selected moving image in full size. At this time, the audio is also reproduced in synchronization.

ストレージ10には、複数の符号化ストリームが記録される。ストレージ10は、一例として、ハードディスクなどの大容量記録装置やDVDなどの記録媒体である。同図では、ストレージ10が復号装置100の内部にあるが、ストレージ10が外部サーバにあって、ネットワーク経由で外部サーバのストレージ10から符号化ストリームを読み出す構成にしてもよい。   A plurality of encoded streams are recorded in the storage 10. The storage 10 is, for example, a large capacity recording device such as a hard disk or a recording medium such as a DVD. In the figure, the storage 10 is inside the decoding apparatus 100. However, the storage 10 may be in an external server, and the encoded stream may be read from the storage 10 of the external server via the network.

ストレージ10から読み出された複数の符号化ストリームは、復号処理のために一時的にストリームバッファ12に記憶される。ストリームバッファ12には、複数の符号化ストリームのデータが順に配置されており、バイト位置を指定することにより、ある符号化ストリームのデータをそのバイト位置から読み出すことができる。   The plurality of encoded streams read from the storage 10 are temporarily stored in the stream buffer 12 for decoding processing. A plurality of encoded stream data are sequentially arranged in the stream buffer 12, and by specifying a byte position, data of a certain encoded stream can be read from the byte position.

符号化ストリームには、ビデオデータとオーディオデータが多重化されており、一般にはビデオデータは、GOP(Group of Picture)と呼ばれる符号化単位でフレーム間予測符号化されている。符号化ストリームのヘッダには、ストリーム属性とGOPの区切りを示すエントリポイントのマップ情報が格納されており、エントリポイントのマップ情報によってGOPの区切りとなるバイト位置を知ることができる。エントリポイントのマップ情報は、符号化ストリームのヘッダ情報として与えられる以外に、符号化ストリームとは別ファイルで与えられてもよい。   Video data and audio data are multiplexed in the encoded stream, and generally video data is inter-frame prediction encoded in an encoding unit called GOP (Group of Picture). The encoded stream header stores entry point map information indicating the stream attribute and GOP delimiter, and the byte position at which the GOP delimiter can be known from the entry point map information. The entry point map information may be provided as a separate file from the encoded stream, in addition to being provided as header information of the encoded stream.

H.264/AVCでは、GOPの区切りには、IDR(Instantaneous Decoding Refresh)フレームと呼ばれるフレームが存在する。IDRフレームは、当該フレームよりも前のフレームの情報がなくても、それ以降のフレームの復号が可能となるフレームである。IDRフレームが読み出されると、フレーム間予測符号化で参照するフレームを一時的に保持していたバッファがリセットされる。言い換えれば、IDRフレームは、後続のフレームに自分より前のフレームを参照する事を禁止するフレームである。IDRフレームで区切られるGOPはクローズドGOPと呼ばれ、そのGOPを構成するフレームのみを参照してフレーム間予測符号化がなされる。   H. In H.264 / AVC, there is a frame called an IDR (Instantaneous Decoding Refresh) frame at the GOP delimiter. An IDR frame is a frame in which subsequent frames can be decoded even if there is no information about the previous frame. When the IDR frame is read, the buffer that temporarily holds the frame to be referred to in the inter-frame prediction encoding is reset. In other words, the IDR frame is a frame that prohibits a subsequent frame from referring to a frame before itself. A GOP delimited by an IDR frame is called a closed GOP, and interframe predictive coding is performed with reference to only frames constituting the GOP.

時間的に前のGOPに含まれる画像を参照画像として利用しないGOPがクローズドGOPと呼ばれるのに対して、時間的に前のGOPに含まれる画像を参照画像として利用するGOPはオープンGOPと呼ばれる。フレーム間予測符号化がなされた動画ストリームにおいて、クローズドGOP内では他のGOPのフレームを参照することなく復号が可能であり、クローズドGOPは単独で復号可能な最小単位の符号化フレームの集合を与える。   A GOP that does not use an image included in the previous GOP as a reference image is called a closed GOP, whereas a GOP that uses an image included in the previous GOP as a reference image is called an open GOP. In a video stream that has been subjected to inter-frame predictive encoding, decoding can be performed within the closed GOP without referring to frames of other GOPs, and the closed GOP provides a set of encoded frames of the smallest unit that can be decoded independently. .

切替部14は、ストリームバッファ12に記憶された複数の符号化ストリームのいずれか一つに切り替えながら、いずれか一つの符号化ストリームのデータをGOP単位で読み出し、多重化分離部18に与える。切替部14は、ある符号化ストリームから一つのGOPを構成するフレームの符号化データを読み出し、一つのGOPの読み出しが終わると、次の符号化ストリームに切り替えてその符号化ストリームから同様に一つのGOPを構成するフレームの符号化データを読み出す。   The switching unit 14 reads the data of any one encoded stream in units of GOP while switching to any one of the plurality of encoded streams stored in the stream buffer 12, and provides the data to the demultiplexing unit 18. The switching unit 14 reads out encoded data of a frame constituting one GOP from a certain encoded stream, and when reading of one GOP is completed, the switching unit 14 switches to the next encoded stream and similarly switches one encoded stream from the encoded stream. Read the encoded data of the frames constituting the GOP.

切替部14は、GOP単位で符号化データを切り出すために、前述のエントリポイントのマップ情報を参照して、シンク(sync)フレームやH.264/AVCでいうIDRフレームなど最小復号単位となる画像シーケンスの先頭を示すフレームのバイト位置を検出することでGOPの区切りを検出する。別の方法として、エントリポイントのマップ情報などのメタ情報に頼らずに、符号化ストリーム内に多重化されたビデオストリームのヘッダを先頭から順に解析することでGOPの区切りを検出してもよい。   The switching unit 14 refers to the entry point map information described above in order to cut out the encoded data in GOP units. The GOP delimiter is detected by detecting the byte position of a frame indicating the head of an image sequence that is a minimum decoding unit such as an IDR frame in H.264 / AVC. As another method, the GOP delimiter may be detected by analyzing the header of the video stream multiplexed in the encoded stream in order from the top without depending on the meta information such as the map information of the entry point.

切替部14がGOP単位で複数の符号化ストリームを切り替えることにより、以下、多重化分離部18、ビデオデコーダ20およびオーディオデコーダ22において、切替部14により選択された符号化ストリームがGOP単位で復号される。クローズドGOPの場合、他のGOPのフレームを参照することなく、フレーム間予測符号化がなされているため、GOP内で完全に閉じて復号を行うことができ、多重化分離部18、ビデオデコーダ20およびオーディオデコーダ22が1つのインスタンスであっても、複数の符号化ストリームをGOP単位で切り替えながら並行して復号していくことができる。   When the switching unit 14 switches a plurality of encoded streams in GOP units, the encoded stream selected by the switching unit 14 is decoded in GOP units in the demultiplexing unit 18, the video decoder 20, and the audio decoder 22 hereinafter. The In the case of a closed GOP, inter-frame predictive coding is performed without referring to a frame of another GOP. Therefore, the closed GOP can be completely closed within the GOP to perform decoding, and the demultiplexing unit 18 and the video decoder 20 Even if the audio decoder 22 is one instance, it is possible to decode a plurality of encoded streams in parallel while switching in units of GOPs.

切替部14は、ラウンドロビン方式で複数の符号化ストリームを順番に切り替え、いずれか一つの符号化ストリームのデータをGOP単位で読み出す。あるいは、優先制御部16が複数の符号化ストリームの間に何らかの優先順位をつけ、切替部14は優先制御部16によって指定された優先順位にしたがって、優先度の高い符号化ストリームのデータを優先して読み出してもよい。優先制御部16の構成はオプションであり、優先制御部16の構成は省略してもよい。優先制御部16による優先制御は、後段の処理と関連する場合もあるため、後に具体的な例を説明する。   The switching unit 14 sequentially switches a plurality of encoded streams by a round robin method, and reads data of any one encoded stream in units of GOPs. Alternatively, the priority control unit 16 gives some priority among the plurality of encoded streams, and the switching unit 14 gives priority to the data of the encoded stream with high priority according to the priority specified by the priority control unit 16. May be read out. The configuration of the priority control unit 16 is optional, and the configuration of the priority control unit 16 may be omitted. Since priority control by the priority control unit 16 may be related to subsequent processing, a specific example will be described later.

多重化分離部18は、切替部14から供給された符号化ストリームのデータからオーディオの符号化データとビデオの符号化データを分離し、ビデオの符号化データはビデオデコーダ20に、オーディオの符号化データはオーディオデコーダ22に与える。   The demultiplexing unit 18 separates audio encoded data and video encoded data from the encoded stream data supplied from the switching unit 14, and the video encoded data is sent to the video decoder 20 for audio encoding. The data is given to the audio decoder 22.

オーディオデコーダ22は、符号化されたオーディオを復号する。復号されたオーディオは、ビデオデコーダ20により復号されたビデオのフレームに同期して再生される。オーディオの復号処理や、ビデオとオーディオの同期再生処理については公知の技術を用いることができる。   The audio decoder 22 decodes the encoded audio. The decoded audio is reproduced in synchronization with the video frame decoded by the video decoder 20. Known techniques can be used for audio decoding processing and video / audio synchronous reproduction processing.

ビデオデコーダ20は、切替部14により選択された符号化ストリームからGOP単位で読み出されたビデオの符号化データを復号する。ビデオデコーダ20は、可変長復号部、逆量子化部、逆直交変換部、動き補償部など復号処理に必要な構成を含み、GOP内の各符号化フレームを復号してフレームを復元する。GOP内のフレームが、フレーム内符号化がなされたI(Intra)フレームである場合、フレーム内符号化を復号し、フレーム間予測符号化されたP(Predictive)フレームまたはB(Bidirectionally predictive)フレームの予測画像を生成する際の参照画像として保持する。GOP内のフレームが、PフレームまたはBフレームである場合、その画像データは差分画像であるため、その差分画像と動き補償により得られる予測画像とを加算することにより、元のフレームを復元する。ビデオデコーダ20は、こうして符号化ストリームから復号されたGOP内の各フレームをフレームバッファ26の共有メモリ領域28に書き込む。   The video decoder 20 decodes the encoded video data read in GOP units from the encoded stream selected by the switching unit 14. The video decoder 20 includes components necessary for decoding processing, such as a variable length decoding unit, an inverse quantization unit, an inverse orthogonal transform unit, and a motion compensation unit, and decodes each encoded frame in the GOP to restore the frame. When the frame in the GOP is an I (Intra) frame that has been subjected to intraframe coding, the intraframe coding is decoded, and an interframe predictive coded P (Predictive) frame or B (Bidirectionally predictive) frame It is stored as a reference image when generating a predicted image. When the frame in the GOP is a P frame or a B frame, the image data is a difference image. Therefore, the original frame is restored by adding the difference image and a predicted image obtained by motion compensation. The video decoder 20 writes each frame in the GOP thus decoded from the encoded stream in the shared memory area 28 of the frame buffer 26.

図2は、フレームバッファ26の共有メモリ領域28のデータ構造を説明する図である。フレームバッファ26は、複数の符号化ストリーム間で共有される単一の共有メモリ領域28を含む。共有メモリ領域28は、各符号化ストリームからGOP単位で復号されたフレームを表示するために一時的に保持するものであり、GOPを構成するフレームの枚数(「GOPフレーム数」という)Mに復号対象の符号化ストリームの本数Nを乗算したMN個のフレームを保持するだけの容量を有する。一般にGOPフレーム数は可変であり、符号化ストリーム毎に異なる。そこで、GOPフレーム数Mは、GOPを構成するフレームの平均的な枚数や取りうる最大枚数で見積もり、共有メモリ領域28の容量を設計する。   FIG. 2 is a diagram for explaining the data structure of the shared memory area 28 of the frame buffer 26. The frame buffer 26 includes a single shared memory area 28 that is shared among a plurality of encoded streams. The shared memory area 28 is temporarily held to display frames decoded from each encoded stream in GOP units, and is decoded into the number of frames constituting the GOP (referred to as “GOP frame number”) M. It has a capacity to hold MN frames multiplied by the number N of target encoded streams. In general, the number of GOP frames is variable and differs for each encoded stream. Therefore, the number M of GOP frames is estimated by the average number of frames constituting the GOP or the maximum number of frames that can be taken, and the capacity of the shared memory area 28 is designed.

共有メモリ領域28は、復号されたフレームを保持するためのブロック(同図ではa〜zの記号で表記される)に分かれており、各ブロックのバイト位置を指定することで、そのブロックに対して復号後のフレームデータを読み書きすることができる。共有メモリ領域28内の各ブロックは、いずれの符号化ストリームから復号されたフレームであっても格納することができ、符号化ストリームによって格納位置が制限されることがない。すなわち、共有メモリ領域28は複数の符号化ストリームの間で共用される単一のメモリ領域であり、符号化ストリーム毎に格納領域が区分けされているのではない。   The shared memory area 28 is divided into blocks (represented by symbols a to z in the figure) for holding the decoded frame, and by specifying the byte position of each block, Thus, the decoded frame data can be read and written. Each block in the shared memory area 28 can store a frame decoded from any encoded stream, and the storage position is not limited by the encoded stream. That is, the shared memory area 28 is a single memory area shared between a plurality of encoded streams, and the storage area is not divided for each encoded stream.

N本のストリームの内、第i番目のストリーム#iについて、第j番目に表示される復号後のフレームをフレーム#i−jと表記する。各ストリームから復号されたフレームは共有メモリ領域28内の任意の空きブロックに格納することができる。同図では、第1ストリーム#1のフレーム#1−1、#1−2、フレーム#1−3、フレーム#1−Mは、それぞれ共有メモリ領域28のブロックa、e、i、tに格納されている。   Of the N streams, for the i-th stream #i, the decoded frame displayed at the j-th is denoted as frame # i-j. A frame decoded from each stream can be stored in an arbitrary empty block in the shared memory area 28. In the figure, frames # 1-1, # 1-2, # 1-3, and # 1-M of the first stream # 1 are stored in blocks a, e, i, and t of the shared memory area 28, respectively. Has been.

同様に、第2ストリーム#2のフレーム#2−1、#2−2、フレーム#2−Mは、それぞれ共有メモリ領域28のブロックb、c、sに格納されており、第Nストリーム#Nのフレーム#N−1、フレーム#N−Mは、それぞれ共有メモリ領域28のブロックh、zに格納されている。   Similarly, frames # 2-1, # 2-2, and # 2-M of the second stream # 2 are respectively stored in the blocks b, c, and s of the shared memory area 28, and the Nth stream #N Frame # N-1 and frame # N-M are stored in blocks h and z of the shared memory area 28, respectively.

共有メモリ領域28においてフレームが格納されたブロックはそのフレームの再生が終わると無効化されて空きブロックとなる。空きブロックは他のストリームのフレームを保持するために使われる。   The block in which the frame is stored in the shared memory area 28 is invalidated and becomes an empty block when the reproduction of the frame is completed. Free blocks are used to hold frames from other streams.

ビデオデコーダ20は、フレームバッファ26の共有メモリ領域28の空きブロックに各ストリームから復号されたフレームを書き込む。このとき、ビデオデコーダ20は、共有メモリ領域28内のフレームの格納位置に関する情報、フレームの再生順序に関する情報、およびフレームの属性をストリーム毎にバッファ管理テーブル24に記録する。   The video decoder 20 writes a frame decoded from each stream into an empty block in the shared memory area 28 of the frame buffer 26. At this time, the video decoder 20 records the information on the storage position of the frame in the shared memory area 28, the information on the playback order of the frame, and the attribute of the frame in the buffer management table 24 for each stream.

図3は、バッファ管理テーブル24のデータ構造を説明する図である。バッファ管理テーブル24は、共有メモリ領域28の空きブロック情報と、復号対象であるストリーム#1〜#Nの管理情報とを格納する。空きブロック情報は、共有メモリ領域28においてフレームの再生が終了して無効化された空きブロック(同図の例では、ブロックj、k、m、p)のバイト位置のリストである。空きブロック情報は、ブロック数分の無効フラグの配列に空きであるかどうかを示すバイナリデータを保持することで管理してもよい。ビデオデコーダ20は、バッファ管理テーブル24の空きブロック情報を参照して、各ストリームから復号されたフレームをGOP単位で空きブロックに書き込む。   FIG. 3 is a diagram for explaining the data structure of the buffer management table 24. The buffer management table 24 stores free block information of the shared memory area 28 and management information of streams # 1 to #N to be decoded. The empty block information is a list of byte positions of empty blocks (blocks j, k, m, and p in the example shown in the figure) that have been invalidated after the reproduction of the frame is completed in the shared memory area 28. The empty block information may be managed by holding binary data indicating whether or not the invalid flag array for the number of blocks is empty. The video decoder 20 refers to the empty block information in the buffer management table 24 and writes a frame decoded from each stream to the empty block in GOP units.

各ストリーム#1〜#Nの管理情報は、共有メモリ領域28に再生待ちの状態で格納されている復号されたフレームの格納先ブロックとフレーム属性を含む。たとえば、図2の共有メモリ領域28の例に対応して、ストリーム#1の管理情報は、GOPを構成するフレームのフレーム番号1、2、3、…、Mに格納先ブロックa、e、i、…、tのバイト位置を対応づけたものであり、各フレームがIピクチャ、Pピクチャ、Bピクチャのいずれであるかを示す属性も合わせて対応づけられる。フレーム番号は再生順序を示しており、各ストリームについてフレーム番号の順にフレーム番号に対応づけられた格納先ブロックからフレームを読み出して表示することで、各ストリームを動画として再生することができる。   The management information of each stream # 1 to #N includes the storage destination block and the frame attribute of the decoded frame stored in the shared memory area 28 in a state of waiting for reproduction. For example, in correspondence with the example of the shared memory area 28 in FIG. 2, the management information of the stream # 1 is stored in the storage destination blocks a, e, i in the frame numbers 1, 2, 3,. ,..., T are associated with each other, and an attribute indicating whether each frame is an I picture, a P picture, or a B picture is also associated. The frame number indicates the reproduction order, and each stream can be reproduced as a moving image by reading out and displaying the frame from the storage destination block associated with the frame number in the order of the frame number for each stream.

表示制御部30は、バッファ管理テーブル24を参照して、各符号化ストリームから復号されたフレームの再生順序と格納位置に関する情報を取得する。そして、表示制御部30は、ディスプレイ110の垂直同期信号(VSYNC;vertical synchronizing signal)に同期してフレームバッファ26の共有メモリ領域28から各ストリームのフレームを1枚ずつ読み出し、ディスプレイ110の画面に各ストリームの動画サムネイルを同時に表示する制御を行う。表示制御部30は、垂直同期信号によって指示される垂直同期周波数でフレームバッファ26から各ストリームの次のフレームを読み出し、画面に表示された各ストリームの動画サムネイルをリフレッシュする。表示制御部30は、2回の垂直同期信号(2VSYNC)毎に動画サムネイルをリフレッシュしてもよい。たとえば、プログレッシブ方式の場合、(1/60)秒の周期で与えられる垂直同期信号毎に画面を1回リフレッシュするが、インタレース方式の場合、2回の垂直同期信号毎、すなわち(1/30)秒の周期で1回、偶数番号の走査ラインからなるフィールドまたは奇数番号の走査ラインからなるフィールドを交互にリフレッシュする。   The display control unit 30 refers to the buffer management table 24 and obtains information regarding the playback order and storage position of frames decoded from each encoded stream. Then, the display control unit 30 reads out one frame of each stream from the shared memory area 28 of the frame buffer 26 in synchronization with a vertical synchronizing signal (VSYNC) of the display 110, and displays each frame on the screen of the display 110. Control to display the video thumbnails of the stream at the same time. The display control unit 30 reads the next frame of each stream from the frame buffer 26 at the vertical synchronization frequency indicated by the vertical synchronization signal, and refreshes the moving image thumbnail of each stream displayed on the screen. The display control unit 30 may refresh the moving image thumbnail every two vertical synchronization signals (2VSYNC). For example, in the case of the progressive method, the screen is refreshed once for each vertical synchronization signal given at a period of (1/60) seconds. In the case of the interlace method, for example, every two vertical synchronization signals, that is, (1/30). ) The field consisting of even-numbered scanning lines or the field consisting of odd-numbered scanning lines is alternately refreshed once every second.

ここで、各ストリームのフレームレートに違いがある場合は、表示制御部30は、各ストリームのフレームレートに応じた周期でフレームバッファ26の共有メモリ領域28から各ストリームのフレームを1枚ずつ読み出し、ディスプレイ110のVRAMなどに書き込むことで、各ストリームのフレームレートで動画をディスプレイ110に表示することができる。これにより、たとえば、24フレーム/秒のストリームと30フレーム/秒のストリームが混合している場合にも対応することができる。なお、この場合でも、VRAMなどのフレームメモリからピクセルデータが読み出されて、ディスプレイ110に出力されるタイミング、すなわちリフレッシュレートは、前述の垂直同期信号で制御される。   Here, when there is a difference in the frame rate of each stream, the display control unit 30 reads out one frame of each stream from the shared memory area 28 of the frame buffer 26 at a cycle according to the frame rate of each stream, By writing to the VRAM or the like of the display 110, a moving image can be displayed on the display 110 at the frame rate of each stream. Thereby, for example, a case where a stream of 24 frames / second and a stream of 30 frames / second are mixed can be handled. Even in this case, the timing at which pixel data is read from a frame memory such as a VRAM and output to the display 110, that is, the refresh rate, is controlled by the above-described vertical synchronization signal.

表示制御部30は、各ストリームについて表示が終了したフレームについてはバッファ管理テーブル24のフレーム番号を各ストリームの管理情報から消去し、そのフレーム番号に対応づけられた格納先ブロックを空きブロックに変更してバッファ管理テーブル24の空きブロック情報にその空きブロックを追加する。   The display control unit 30 deletes the frame number of the buffer management table 24 from the management information of each stream for the frame that has been displayed for each stream, and changes the storage block associated with the frame number to an empty block. Then, the empty block is added to the empty block information of the buffer management table 24.

表示制御部30の動作により、フレームバッファ26の共有メモリ領域28から垂直同期信号のタイミングで各ストリーム#1〜#Nの次に表示すべきフレームが1枚ずつ読み出され、各ストリームのフレームが格納されていたブロックが空きブロックになる。すなわち、同時に動画サムネイルとして表示されるストリーム数(「同時表示ストリーム数」)Nと同じ数のフレームが同時に共有メモリ領域28から読み出され、N個の空きブロックが生じる。   By the operation of the display control unit 30, the frames to be displayed next to each stream # 1 to #N are read one by one from the shared memory area 28 of the frame buffer 26 at the timing of the vertical synchronization signal, and the frames of each stream are The stored block becomes a free block. That is, the same number of frames as the number of streams (“simultaneous display stream number”) N simultaneously displayed as moving image thumbnails are simultaneously read from the shared memory area 28, and N empty blocks are generated.

同時表示ストリーム数Nが、GOPフレーム数M以上であれば、表示制御部30が垂直同期信号に同期して動画をリフレッシュの度に、共有メモリ領域28には1GOP内のフレームを格納するだけの空きブロックが生じることになり、ビデオデコーダ20はあるストリームからGOP単位で復号されたフレームの集合をこれらの空きブロックに書き込むことができる。同時表示ストリーム数NがGOPフレーム数Mの半分であれば、表示制御部30が2回リフレッシュすると、ビデオデコーダ20は1GOPのフレーム集合を空きブロックに書き込むことができる。   If the number N of simultaneous display streams is equal to or greater than the number M of GOP frames, the display control unit 30 only stores frames in one GOP in the shared memory area 28 every time the moving image is refreshed in synchronization with the vertical synchronization signal. Free blocks are generated, and the video decoder 20 can write a set of frames decoded from a stream in units of GOPs to these free blocks. If the number of simultaneous display streams N is half of the number of GOP frames M, the video decoder 20 can write a frame set of 1 GOP in an empty block when the display control unit 30 refreshes twice.

このように、表示制御部30が複数のストリームから復号される動画を同時に画面にサムネイル表示することから、フレームバッファ26からは各ストリームのフレームが1枚ずつ消費され、同時に複数の空きブロックが生じる。この点に着目して、本実施の形態では、フレームバッファ26に共有メモリ領域28を設け、同時に表示されるストリーム間で共有するようにし、いずれのストリームのフレームでも格納位置の制約を受けることなく、書き込むことができるようにした。これにより、同時に表示されるストリームを並列に復号処理をする代わりに、単一のビデオデコーダ20が切替部14により選択された一つのストリームについてのみGOP単位の復号処理を行っていても、同時に表示されるストリームの動画サムネイルが一斉にリフレッシュされるのを受けて、選択されたストリームから復号された1GOP内のフレーム集合を共有メモリ領域28の空きブロックに一気に書き込むことができ、ビデオデコーダ20は次のストリームに切り替えてGOP単位の復号処理を続けることができる。   As described above, since the display control unit 30 simultaneously displays the moving images decoded from the plurality of streams on the screen, one frame of each stream is consumed from the frame buffer 26, and a plurality of empty blocks are generated at the same time. . Focusing on this point, in the present embodiment, a shared memory area 28 is provided in the frame buffer 26 so that it can be shared among streams displayed at the same time, and any frame of any stream is not restricted by the storage position. , So that you can write. As a result, instead of performing parallel decoding on the simultaneously displayed streams, even if the single video decoder 20 performs GOP unit decoding only for one stream selected by the switching unit 14, the simultaneous display is performed. As the video thumbnails of the stream to be streamed are refreshed all at once, the set of frames in 1 GOP decoded from the selected stream can be written to the empty block of the shared memory area 28 at a stroke. It is possible to continue the decoding process in units of GOP by switching to this stream.

共有メモリ領域28を中心に見れば、表示制御部30は、各ストリームの次のフレームを共有メモリ領域28から読み出す処理を行い、ビデオデコーダ20は、切替部14により選択されたストリームについてGOP単位で復号されたフレームを共有メモリ領域28の空きブロックに書き込む処理を行う。表示制御部30による共有メモリ領域28からの読み出し処理と、ビデオデコーダ20による共有メモリ領域28への書き込み処理は非同期に行われる。   Looking at the shared memory area 28 as a center, the display control unit 30 performs a process of reading the next frame of each stream from the shared memory area 28, and the video decoder 20 performs GOP unit for the stream selected by the switching unit 14. A process of writing the decoded frame into an empty block in the shared memory area 28 is performed. The reading process from the shared memory area 28 by the display control unit 30 and the writing process to the shared memory area 28 by the video decoder 20 are performed asynchronously.

表示制御部30は、垂直同期信号が与えられる周期で各ストリームのフレームを読み出す一方、ビデオデコーダ20は、共有メモリ領域28に1GOP分の空きブロックがないときは、1GOP分の空きブロックが生じるまで復号処理をサスペンドする。表示制御部30は、画面に表示している動画サムネイルの本数分のストリームのフレームを同時に共有メモリ領域28から読み出すため、共有メモリ領域28には1GOP分の空きブロックがすぐに生じる。ビデオデコーダ20は、1GOP分の空きブロックが生じると直ちに既に復号した1GOP分のフレームを書き込み、サスペンドしていたプロセスをレジュームし、その後の他のストリームの復号処理に移行する。   The display control unit 30 reads out the frames of each stream at a cycle in which the vertical synchronization signal is given. On the other hand, when the video decoder 20 has no 1 GOP free block in the shared memory area 28, until the 1 GOP free block is generated. Suspend the decryption process. Since the display control unit 30 simultaneously reads frames of the number of moving image thumbnails displayed on the screen from the shared memory area 28, an empty block for 1 GOP is immediately generated in the shared memory area 28. As soon as an empty block for 1 GOP is generated, the video decoder 20 writes the already decoded frame for 1 GOP, resumes the suspended process, and then shifts to decoding processing for another stream.

もっとも、実装上は、ビデオデコーダ20は自身で内部バッファをもつため、フレームバッファ26の共有メモリ領域28に1GOP分の空きブロックがないときでも、プロセスをサスペンドせずにビデオデコーダ20は復号処理を進め、復号されたフレームを内部バッファに蓄積しておくことができる。また、共有メモリ領域28に1GOP分の空きブロックがなくても、ビデオデコーダ20は復号されたフレームを可能な限り、内部バッファから共有メモリ領域28の空きブロックに移すことができる。1GOPに含まれるフレームの枚数は実際に復号してみないとわからないため、ビデオデコーダ20は共有メモリ領域28の空きブロックの数に関係なく、可能な限りデコード処理を進めることが効率的であり、システムリソースを有効に用いることができる。以下の図4A〜図4Fでは、説明が必要以上に煩雑にならないように、このような実装上の工夫に直接触れることなく、動作を説明するが、図4A〜図4Fにおいて、ここで述べた実装上の工夫を加えれば、さらに効率を上げることができることに留意する。   However, since the video decoder 20 itself has an internal buffer in terms of implementation, the video decoder 20 performs the decoding process without suspending the process even when there is no free block for 1 GOP in the shared memory area 28 of the frame buffer 26. The decoded frame can be stored in an internal buffer. Even if there is no free block for 1 GOP in the shared memory area 28, the video decoder 20 can move the decoded frame from the internal buffer to the free block in the shared memory area 28 as much as possible. Since the number of frames included in one GOP cannot be known without actually decoding, it is efficient for the video decoder 20 to proceed as much as possible regardless of the number of empty blocks in the shared memory area 28, System resources can be used effectively. In the following FIGS. 4A to 4F, the operation will be described without directly touching such a device in order to prevent the description from becoming unnecessarily complicated. However, in FIGS. 4A to 4F, the operation is described here. It should be noted that the efficiency can be further improved by adding ingenuity on mounting.

表示制御部30は、GOP単位で復号されたフレームを全部読み出して再生が終わると、次のGOPのフレームデータを必要とする。ビデオデコーダ20は、表示制御部30が次のGOPに移る前に、画面に同時に表示されているすべてのストリームについて次のGOPの復号を完了して、共有メモリ領域28にフレームデータを書き込んでいなければならない。   When all the frames decoded in units of GOP are read and reproduced, the display control unit 30 needs the frame data of the next GOP. Before the display control unit 30 moves to the next GOP, the video decoder 20 completes the decoding of the next GOP for all the streams simultaneously displayed on the screen and writes the frame data to the shared memory area 28. There must be.

同時表示ストリーム数がN、GOPフレーム数がMのとき、表示制御部30がM枚のフレームをリフレッシュする時間、たとえば、垂直同期信号の周期がL秒であるとすると、LM秒の間に、ビデオデコーダ20は、N本の符号化ストリームのすべてについて次の1GOP分の復号処理、すなわち合計MN個のフレームの復号を完了し、共有メモリ領域28に書き込んでいないといけない。すなわち、ビデオデコーダ20には、LM秒でMN個、すなわちL秒でN個のフレームを復号する性能が要求される。たとえば、同時表示動画サムネイル数Nが10、垂直同期信号の周期Lが33ミリ秒であるとすると、1秒で約300枚のフレームを復号する性能が要求される。   When the number of simultaneous display streams is N and the number of GOP frames is M, if the display control unit 30 refreshes M frames, for example, if the period of the vertical synchronization signal is L seconds, during LM seconds, The video decoder 20 must complete the decoding process for the next 1 GOP for all of the N encoded streams, that is, the decoding of a total of MN frames and write it to the shared memory area 28. That is, the video decoder 20 is required to have a capability of decoding MN frames in LM seconds, that is, N frames in L seconds. For example, if the simultaneous display moving image thumbnail number N is 10 and the period L of the vertical synchronization signal is 33 milliseconds, a performance of decoding about 300 frames per second is required.

ビデオデコーダ20は、上記の性能が保証される限り、ハードウェアもしくはソフトウェア、あるいは両者の組合せのいずれで実現されてもよい。たとえば、ビデオデコーダ20は、高性能なCPUもしくはマルチプロセッサ、あるいは複数のプロセッサコアを一つのパッケージに集積したマルチコアプロセッサ上で実行されるプログラムであってもよい。あるいは、ビデオデコーダ20は、MPEGなどの規格にしたがって復号処理を行う専用回路であってもよい。   The video decoder 20 may be implemented by hardware, software, or a combination of both as long as the above performance is guaranteed. For example, the video decoder 20 may be a high-performance CPU or multiprocessor, or a program executed on a multicore processor in which a plurality of processor cores are integrated in one package. Alternatively, the video decoder 20 may be a dedicated circuit that performs a decoding process according to a standard such as MPEG.

図4A〜図4Fは、共有メモリ領域28に対してフレームが読み書きされる様子を時系列順に説明する図である。これらの図を参照して、ビデオデコーダ20によって共有メモリ領域28に各符号化ストリームから復号されたフレームが書き込まれ、表示制御部30によって共有メモリ領域28からフレームが読み出されて再生される手順を説明する。ここでは、簡単のため、同時表示ストリーム数Nは3、GOPフレーム数Mは4または5であるとして説明する。   FIG. 4A to FIG. 4F are diagrams for explaining how frames are read from and written to the shared memory area 28 in chronological order. Referring to these figures, a procedure in which a frame decoded from each encoded stream is written in shared memory area 28 by video decoder 20 and a frame is read from shared memory area 28 by display control unit 30 and reproduced. Will be explained. Here, for the sake of simplicity, it is assumed that the simultaneous display stream number N is 3 and the GOP frame number M is 4 or 5.

図4Aは、共有メモリ領域28に各ストリームのGOPを構成するフレームが書き込まれた状態を示す図である。共有メモリ領域28は15個のブロックa〜oを含み、最初はすべてのブロックが空いている。同図に示すように、第1ストリーム#1の最初のGOPを構成する5枚のフレーム#1−1〜#1−5は共有メモリ領域28の5個の空きブロックa〜eに格納され、第2ストリーム#2の最初のGOPを構成する5枚のフレーム#2−1〜#2−5は共有メモリ領域28の5個の空きブロックf〜jに格納され、第3ストリーム#3の最初のGOPを構成する5枚のフレーム#3−1〜#3−5は共有メモリ領域28の5個の空きブロックk〜oに格納される。   FIG. 4A is a diagram showing a state in which the frames constituting the GOP of each stream are written in the shared memory area 28. The shared memory area 28 includes 15 blocks a to o, and all the blocks are initially empty. As shown in the figure, the five frames # 1-1 to # 1-5 constituting the first GOP of the first stream # 1 are stored in five free blocks a to e in the shared memory area 28, The five frames # 2-1 to # 2-5 constituting the first GOP of the second stream # 2 are stored in five empty blocks f to j in the shared memory area 28, and the first of the third stream # 3 is stored. The five frames # 3-1 to # 3-5 constituting the GOP are stored in the five empty blocks k to o in the shared memory area 28.

図4Bは、最初の垂直同期信号に同期して図4Aに示した状態の共有メモリ領域28から各ストリームの最初のフレームが1枚ずつ読み出されて表示された状態を示す図である。表示制御部30は、最初の垂直同期信号に同期して、共有メモリ領域28から第1ストリーム#1の最初のフレーム#1−1、第2ストリーム#2の最初のフレーム#2−1、第3ストリーム#3の最初のフレーム#3−1をそれぞれ読み出し、ディスプレイ110の画面に動画サムネイル111、112、113として表示する。共有メモリ領域28において各ストリーム#1、#2、#3の最初のフレーム#1−1、#2−1、#3−1が格納されていたブロックa、f、kは空きブロックになる。もっとも、フレームレートの違いから、次のリフレッシュのタイミングでも引き続き、これらのブロックa、f、kに格納されていたフレームデータが必要で、そのデータを共有メモリ領域28から読み出す構成であれば、これらのブロックを空きブロックとしなくてもよい。次のリフレッシュのタイミングでフレームデータが不要となるブロックだけを空きブロックとすればよい。   FIG. 4B is a diagram showing a state in which the first frame of each stream is read and displayed one by one from the shared memory area 28 in the state shown in FIG. 4A in synchronization with the first vertical synchronization signal. The display control unit 30 synchronizes with the first vertical synchronization signal from the shared memory area 28 for the first frame # 1-1 of the first stream # 1, the first frame # 2-1 of the second stream # 2, the first The first frame # 3-1 of 3 stream # 3 is read out and displayed as moving image thumbnails 111, 112, and 113 on the screen of the display 110, respectively. In the shared memory area 28, the blocks a, f, and k in which the first frames # 1-1, # 2-1, and # 3-1 of each stream # 1, # 2, and # 3 are stored become empty blocks. Of course, if the frame data stored in these blocks a, f, and k is required continuously from the shared memory area 28 due to the difference in the frame rate, the frame data stored in these blocks a, f, and k are required. The blocks may not be empty blocks. Only blocks that do not require frame data at the next refresh timing may be set as empty blocks.

図4Cは、2回目の垂直同期信号に同期して図4Bに示した状態の共有メモリ領域28から各ストリームの2番目のフレームが1枚ずつ読み出されて表示された状態を示す図である。表示制御部30は、2回目の垂直同期信号に同期して、共有メモリ領域28から第1ストリーム#1の2番目のフレーム#1−2、第2ストリーム#2の2番目のフレーム#2−2、第3ストリーム#3の2番目のフレーム#3−2をそれぞれ読み出し、ディスプレイ110の画面に表示された各ストリーム#1、#2、#3の動画サムネイル111、112、113をそれぞれの2番目のフレームで更新する。共有メモリ領域28において各ストリーム#1、#2、#3の2番目のフレーム#1−2、#2−2、#3−2が格納されていたブロックb、g、iも空きブロックとなる。   FIG. 4C is a diagram illustrating a state in which the second frame of each stream is read and displayed one by one from the shared memory area 28 in the state illustrated in FIG. 4B in synchronization with the second vertical synchronization signal. . The display control unit 30 synchronizes with the second vertical synchronization signal, from the shared memory area 28, the second frame # 1-2 of the first stream # 1, the second frame # 2- of the second stream # 2. 2 and the second frame # 3-2 of the third stream # 3 are read out, and the moving image thumbnails 111, 112, and 113 of the streams # 1, # 2, and # 3 displayed on the screen of the display 110 are respectively read. Update at the second frame. In the shared memory area 28, the blocks b, g, and i in which the second frames # 1-2, # 2-2, and # 3-2 of the respective streams # 1, # 2, and # 3 are stored are also empty blocks. .

図4Dは、図4Cに示した状態の共有メモリ領域28の空きブロックに第1ストリーム#1の次のGOPを構成するフレームが書き込まれた状態を示す図である。表示制御部30によりディスプレイ110の画面に各ストリーム#1、#2、#3の2番目のフレーム#1−2、#2−2、#3−2がサムネイル表示された後、ビデオデコーダ20が第1ストリーム#1について次のGOPを構成する5枚のフレーム#1−6〜#1−10の復号を完了したとする。ビデオデコーダ20は、新たに復号された5枚のフレーム#1−6〜#1−10を共有メモリ領域28の空きブロックに書き込む。共有メモリ領域28において6個のブロックa、b、f、g、k、lが空き状態であった(図4C)から、ビデオデコーダ20は、第1ストリーム#1の次のGOP内の5枚のフレーム#1−6〜#1−10を5個の空きブロックa、b、f、g、kに格納する。   FIG. 4D is a diagram illustrating a state in which a frame constituting the next GOP of the first stream # 1 is written in an empty block in the shared memory area 28 in the state illustrated in FIG. 4C. After the second frames # 1-2, # 2-2, and # 3-2 of the respective streams # 1, # 2, and # 3 are displayed as thumbnails on the screen of the display 110 by the display control unit 30, the video decoder 20 Assume that decoding of five frames # 1-6 to # 1-10 constituting the next GOP for the first stream # 1 is completed. The video decoder 20 writes the five newly decoded frames # 1-6 to # 1-10 into the empty blocks in the shared memory area 28. Since the six blocks a, b, f, g, k, and l are in an empty state in the shared memory area 28 (FIG. 4C), the video decoder 20 determines that the five blocks in the GOP next to the first stream # 1. Frames # 1-6 to # 1-10 are stored in five empty blocks a, b, f, g, and k.

図4Eは、3回目の垂直同期信号に同期して図4Dに示した状態の共有メモリ領域28から各ストリームの3番目のフレームが1枚ずつ読み出されて表示された状態を示す図である。表示制御部30は、3回目の垂直同期信号に同期して、共有メモリ領域28から第1ストリーム#1の3番目のフレーム#1−3、第2ストリーム#2の3番目のフレーム#2−3、第3ストリーム#3の2番目のフレーム#3−3をそれぞれ読み出し、ディスプレイ110の画面の動画サムネイル111、112、113を更新する。共有メモリ領域28において各ストリーム#1、#2、#3の3番目のフレーム#1−3、#2−3、#3−3が格納されていたブロックc、h、mが新たに空きブロックになる。これにより、既に空いていたブロックlも含めて4つのブロックが空き状態になる。   FIG. 4E is a diagram illustrating a state in which the third frame of each stream is read out and displayed one by one from the shared memory area 28 in the state illustrated in FIG. 4D in synchronization with the third vertical synchronization signal. . The display control unit 30 synchronizes with the third vertical synchronization signal, from the shared memory area 28, the third frame # 1-3 of the first stream # 1, and the third frame # 2- of the second stream # 2. 3. The second frame # 3-3 of the third stream # 3 is read out, and the moving image thumbnails 111, 112, 113 on the screen of the display 110 are updated. Blocks c, h, and m in which the third frames # 1-3, # 2-3, and # 3-3 of the streams # 1, # 2, and # 3 are stored in the shared memory area 28 are newly free blocks. become. As a result, the four blocks including the block l which has already been vacant are in an empty state.

図4Fは、図4Eに示した状態の共有メモリ領域28の空きブロックに第2ストリーム#2の次のGOPを構成するフレームが書き込まれた状態を示す図である。ディスプレイ110の画面に各ストリームの3番目のフレームがサムネイル表示された後、第2ストリーム#2について次のGOPを構成する4枚のフレーム#2−6〜#2−9が復号されたとする。共有メモリ領域28において4個のブロックc、h、l、mが空き状態であった(図4E)から、第2ストリーム#2の次のGOP内の4枚のフレーム#2−6〜#2−9はこれら4個の空きブロックc、h、l、mに格納される。   FIG. 4F is a diagram showing a state in which a frame constituting the next GOP of the second stream # 2 is written in the empty block of the shared memory area 28 in the state shown in FIG. 4E. Assume that after the third frame of each stream is displayed as a thumbnail on the screen of the display 110, four frames # 2-6 to # 2-9 constituting the next GOP are decoded for the second stream # 2. Since four blocks c, h, l, and m are empty in the shared memory area 28 (FIG. 4E), four frames # 2-6 to # 2 in the next GOP of the second stream # 2 -9 is stored in these four empty blocks c, h, l, m.

ここで、実装上の工夫について触れると、復号するまではGOPを構成するフレーム数はわからないから、ビデオデコーダ20は、第2ストリーム#2について次のGOPの復号を進め、少なくとも最初の4枚のフレームについては共有メモリ領域28の4個の空きブロックに順次格納していく。仮に復号の結果、GOPを構成するフレームが4枚でなく、5枚であったという場合でも、最初の4枚のフレームについては復号して共有メモリ領域28にバッファリングすることができる。また、ビデオデコーダ20内部にもバッファがあるから、共有メモリ領域28に空きがなくても、ビデオデコーダ20は、1GOP分の復号を終え、内部バッファに格納しておくこともできる。   Here, touching on the ingenuity on implementation, since the number of frames constituting the GOP is not known until decoding, the video decoder 20 advances the decoding of the next GOP for the second stream # 2, and at least the first four frames Frames are sequentially stored in four empty blocks in the shared memory area 28. Even if the number of frames constituting the GOP is five instead of four as a result of decoding, the first four frames can be decoded and buffered in the shared memory area 28. Since the video decoder 20 also has a buffer, the video decoder 20 can finish decoding for 1 GOP and store it in the internal buffer even if the shared memory area 28 is not empty.

また、ビデオデコーダ20の復号処理のサスペンドとレジュームを制御する機構として、共有メモリ領域28内の空きブロック数と、復号されたGOPを構成するフレーム数を比較し、空きブロック数がGOPフレーム数よりも大きい場合には、GOPを構成するフレームをすべて共有メモリ領域28に書き込んで、次のストリームの復号処理に切り替え、空きブロック数がGOPフレーム数よりも小さい場合には、空きブロック数がGOPフレーム数に達するまでそれ以降の復号処理をサスペンドする制御部を設けてもよい。   Further, as a mechanism for controlling the suspend and resume of the decoding process of the video decoder 20, the number of free blocks in the shared memory area 28 is compared with the number of frames constituting the decoded GOP, and the number of free blocks is determined from the number of GOP frames. If the number of free blocks is too large, all the frames constituting the GOP are written into the shared memory area 28 and switched to the decoding process of the next stream. If the number of free blocks is smaller than the number of GOP frames, the number of free blocks is the GOP frame. You may provide the control part which suspends the decoding process after that until it reaches a number.

このように、表示制御部30が同時に表示される3つのストリーム#1〜#3のフレームを1枚ずつ共有メモリ領域28から読み出して動画サムネイル111〜113を更新すると、3個の空きブロックが生じ、次の垂直同期信号に同期して動画サムネイル111〜113を更新すると、3つのストリーム#1〜#3の次のフレームが1枚ずつ共有メモリ領域28から読み出されてさらに3個の空きブロックが生じる。ビデオデコーダ20があるストリームのGOPを復号し、GOP内のすべてのフレームを書き込むだけの空きブロックが共有メモリ領域28内に生じたならば、ビデオデコーダ20は直ちにそのGOP内のフレームを空きブロックに書き込み、次のストリームのGOPの復号処理を進める。ビデオデコーダ20は、共有メモリ領域28に1GOPを構成するフレームを格納するだけの空きブロックが生じるまでは復号処理を中断し、待ち状態になる。   Thus, when the display control unit 30 reads the frames of the three streams # 1 to # 3 displayed simultaneously from the shared memory area 28 one by one and updates the video thumbnails 111 to 113, three empty blocks are generated. When the video thumbnails 111 to 113 are updated in synchronization with the next vertical synchronization signal, the next frames of the three streams # 1 to # 3 are read out one by one from the shared memory area 28, and three more empty blocks are read out. Occurs. If the video decoder 20 decodes the GOP of a stream and a free block is generated in the shared memory area 28 for writing all the frames in the GOP, the video decoder 20 immediately converts the frame in the GOP into a free block. Write and proceed with the decoding process of the GOP of the next stream. The video decoder 20 interrupts the decoding process and enters a waiting state until an empty block sufficient to store a frame constituting 1 GOP is generated in the shared memory area 28.

本実施の形態では、フレームバッファ26において複数のストリームで共有される共有メモリ領域28を設け、いずれのストリームから復号されたフレームであっても区別することなく、任意の空きブロックに格納されるように構成した。画面に同時に複数の動画サムネイルを表示することにより、動画サムネイルがリフレッシュされる度に複数のフレームが同時に共有メモリ領域28から読み出され、共有メモリ領域28に複数の空きブロックが不連続に発生する。ビデオデコーダ20は、復号されたGOP単位のフレームをこの空きブロックに非同期に書き込んで、次の符号化ストリームのGOPの復号処理を進めることができる。   In the present embodiment, a shared memory area 28 that is shared by a plurality of streams is provided in the frame buffer 26 so that a frame decoded from any stream is stored in an arbitrary empty block without being distinguished. Configured. By displaying a plurality of moving image thumbnails simultaneously on the screen, a plurality of frames are simultaneously read from the shared memory area 28 every time the moving image thumbnails are refreshed, and a plurality of empty blocks are generated discontinuously in the shared memory area 28. . The video decoder 20 can asynchronously write the decoded GOP unit frame in this empty block and proceed with the GOP decoding process of the next encoded stream.

ここで、フレームバッファ26内に共有メモリ領域28を設けた意義をより良く理解するため、図5A〜図5Dを参照して、フレームバッファ26内に共有メモリ領域28を設けず、ストリーム毎に独立した専用メモリ領域を設けた場合のフレームの読み書きの手順を時系列順に説明する。この場合、フレームバッファ26において、ストリーム毎にメモリ領域が区分けされ、あるストリーム用に割り当てられたメモリ領域は、そのストリームから復号されたフレームのみを格納し、他のストリームから復号されたフレームを格納することはできないという制約が設けられる。   Here, in order to better understand the significance of providing the shared memory area 28 in the frame buffer 26, referring to FIGS. 5A to 5D, the shared memory area 28 is not provided in the frame buffer 26, and each stream is independent. A frame read / write procedure when the dedicated memory area is provided will be described in chronological order. In this case, in the frame buffer 26, the memory area is divided for each stream, and the memory area allocated for a certain stream stores only frames decoded from the stream and stores frames decoded from other streams. There is a restriction that it cannot be done.

図5Aは、ストリーム毎に独立に設けられた専用メモリ領域に各ストリームのGOPを構成するフレームが書き込まれた状態を示す図である。フレームバッファ26には、第1ストリーム#1用の専用メモリ領域(「第1専用メモリ領域」と呼ぶ)29a、第2ストリーム#2用の専用メモリ領域(「第2専用メモリ領域」と呼ぶ)29b、第3ストリーム#3用の専用メモリ領域(「第3専用メモリ領域」と呼ぶ)29cが独立に設けられる。第1、第2、第3専用メモリ領域29a、29b、29cはそれぞれ5個のブロック1a〜1e、2a〜2e、3a〜3eを含み、これらのブロックは、それぞれのストリームのフレームだけを格納するために用いられ、他のストリームのフレームを格納することはできない。   FIG. 5A is a diagram showing a state in which frames constituting the GOP of each stream are written in a dedicated memory area provided independently for each stream. In the frame buffer 26, a dedicated memory area for the first stream # 1 (referred to as “first dedicated memory area”) 29a and a dedicated memory area for the second stream # 2 (referred to as “second dedicated memory area”) 29b, a dedicated memory area (referred to as “third dedicated memory area”) 29c for the third stream # 3 is provided independently. The first, second, and third dedicated memory areas 29a, 29b, and 29c include five blocks 1a to 1e, 2a to 2e, and 3a to 3e, respectively, and these blocks store only the frames of the respective streams. It cannot be used to store frames of other streams.

第1ストリーム#1のGOPを構成する5枚のフレーム#1−1〜#1−5は、第1専用メモリ領域29aの5個のブロック1a〜1eに格納される。同様に、第2ストリーム#2のGOPを構成する5枚のフレーム#2−1〜#2−5は、第2専用メモリ領域29bの5個のブロック2a〜2eに、第3ストリーム#3のGOPを構成する5枚のフレーム#3−1〜#3−5は、第3専用メモリ領域29cの5個のブロック3a〜3eに格納される。   The five frames # 1-1 to # 1-5 constituting the GOP of the first stream # 1 are stored in the five blocks 1a to 1e of the first dedicated memory area 29a. Similarly, the five frames # 2-1 to # 2-5 constituting the GOP of the second stream # 2 are transferred to the five blocks 2a to 2e of the second dedicated memory area 29b to the third stream # 3. The five frames # 3-1 to # 3-5 constituting the GOP are stored in the five blocks 3a to 3e of the third dedicated memory area 29c.

図5Bは、最初の垂直同期信号に同期して図5Aに示した状態の各専用メモリ領域29a、29b、29cから各ストリームの最初のフレームが1枚ずつ読み出されて表示された状態を示す図である。最初の垂直同期信号に同期して各専用メモリ領域29a、29b、29cから最初のフレーム#1−1、#2−1、#3−1が読み出され、画面に動画サムネイル111、112、113が表示される。このとき、各専用メモリ領域29a、29b、29cにはそれぞれ一つの空きブロック1a、2a、3aが生じる。   FIG. 5B shows a state in which the first frame of each stream is read out and displayed one by one from each dedicated memory area 29a, 29b, 29c in the state shown in FIG. 5A in synchronization with the first vertical synchronization signal. FIG. The first frames # 1-1, # 2-1, and # 3-1 are read from the dedicated memory areas 29a, 29b, and 29c in synchronization with the first vertical synchronization signal, and the moving image thumbnails 111, 112, and 113 are displayed on the screen. Is displayed. At this time, one free block 1a, 2a, 3a is generated in each of the dedicated memory areas 29a, 29b, 29c.

図5Cは、2回目の垂直同期信号に同期して図5Bに示した状態の各専用メモリ領域29a、29b、29cから各ストリームの2番目のフレームが1枚ずつ読み出されて表示された状態を示す図である。2回目の垂直同期信号に同期して各専用メモリ領域29a、29b、29cから2番目のフレーム#1−2、#2−2、#3−2が読み出され、画面の動画サムネイル111、112、113が更新される。各専用メモリ領域29a、29b、29cにはもう一つ空きブロック1b、2b、3bが生じる。   FIG. 5C shows a state in which the second frame of each stream is read and displayed one by one from each dedicated memory area 29a, 29b, 29c in the state shown in FIG. 5B in synchronization with the second vertical synchronization signal. FIG. The second frames # 1-2, # 2-2, and # 3-2 are read from the dedicated memory areas 29a, 29b, and 29c in synchronization with the second vertical synchronization signal, and the moving image thumbnails 111 and 112 on the screen are read. 113 are updated. Another free block 1b, 2b, 3b is generated in each dedicated memory area 29a, 29b, 29c.

この時点で、第1ストリーム#1の次のGOPを構成する5枚のフレーム#1−6〜#1−10が復号されたとする。第1専用メモリ領域29aに2個の空きブロック1a、1b、第2専用メモリ領域29bに2個の空きブロック2a、2b、第3専用メモリ領域29cに2個の空きブロック3a、3bがあり、合計で6個の空きブロックがある。しかし、第1ストリーム#1の5枚のフレーム#1−6〜#1−10は、第1専用メモリ領域29aにしか格納することができないため、これらのフレームはフレームバッファ26に書き込むことができず、ビデオデコーダ20は待ち状態となり、次のストリームの復号処理に進むことができない。   At this point, it is assumed that the five frames # 1-6 to # 1-10 constituting the next GOP of the first stream # 1 have been decoded. The first dedicated memory area 29a has two empty blocks 1a and 1b, the second dedicated memory area 29b has two empty blocks 2a and 2b, and the third dedicated memory area 29c has two empty blocks 3a and 3b. There are a total of 6 free blocks. However, since the five frames # 1-6 to # 1-10 of the first stream # 1 can be stored only in the first dedicated memory area 29a, these frames can be written to the frame buffer 26. Therefore, the video decoder 20 enters a waiting state and cannot proceed to the decoding process for the next stream.

図5Dは、3〜5回目の垂直同期信号を経て各専用メモリ領域29a〜29cから各ストリームの残りのフレームがすべて読み出された状態を示す図である。同図に示すように、第1、第2、第3ストリーム#1、#2、#3の5番目のフレーム#1−5、#2−5、#3−5がそれぞれ第1、第2、第3専用メモリ領域29a、29b、29cから読み出されて画面の動画サムネイル111、112、113が更新されるまでは、第1専用メモリ領域に5個の空きブロックが生じない。このときようやく、第1ストリーム#1の次のGOPを構成する5枚のフレーム#1−6〜#1−10が第1専用メモリ領域29aに書き込まれ、ビデオデコーダ20は次の符号化ストリームの復号処理を進めることができるようになる。   FIG. 5D is a diagram illustrating a state in which all the remaining frames of each stream are read from the dedicated memory areas 29a to 29c through the third to fifth vertical synchronization signals. As shown in the figure, the fifth frames # 1-5, # 2-5, and # 3-5 of the first, second, and third streams # 1, # 2, and # 3 are the first and second frames, respectively. Until the moving image thumbnails 111, 112, 113 on the screen are read out from the third dedicated memory areas 29a, 29b, 29c and updated, five empty blocks do not occur in the first dedicated memory area. Finally, five frames # 1-6 to # 1-10 constituting the next GOP of the first stream # 1 are written into the first dedicated memory area 29a, and the video decoder 20 transmits the next encoded stream. The decryption process can proceed.

しかし、この時点で第2、第3ストリーム#2、#3についてはまだ次のGOPの復号処理が行われていないため、第2、第3専用メモリ領域29b、29cには表示すべきフレームがバッファリングされていない。6回目の垂直同期信号のタイミングで動画サムネイルを更新するとき、第1ストリーム#1については画像を更新できるが、第2、第3ストリーム#2、#3については画像を更新することができず、フレームが欠落する。   However, since the next GOP decoding process has not yet been performed for the second and third streams # 2 and # 3 at this point, there are frames to be displayed in the second and third dedicated memory areas 29b and 29c. Not buffered. When the moving image thumbnail is updated at the timing of the sixth vertical synchronization signal, the image can be updated for the first stream # 1, but the image cannot be updated for the second and third streams # 2 and # 3. , The frame is missing.

このように、フレームバッファ26にストリーム毎に別々に独立した専用メモリ領域を設けると、専用メモリ領域に1GOPのフレームを格納できるたけの空き領域が生じるまでに時間がかかり、その間、ビデオデコーダ20の復号処理が停止し、次のストリームに切り替えて復号処理を進めることができないから、複数の動画サムネイルを同時にフレーム落ちさせることなく表示することが難しくなる。そこで、本実施の形態では、フレームバッファ26内に共有メモリ領域28を設けて、複数の符号化ストリームの間で区別することなくフレームを空きブロックに書き込むことができるように構成し、同時に複数の動画サムネイルをフレーム落ちさせることなく表示することを可能にした。   As described above, when the dedicated buffer memory area is provided separately for each stream in the frame buffer 26, it takes time until a free area that can store a frame of 1 GOP is generated in the dedicated memory area. Since the process is stopped and the decoding process cannot proceed by switching to the next stream, it becomes difficult to display a plurality of moving image thumbnails without dropping frames simultaneously. Therefore, in the present embodiment, a shared memory area 28 is provided in the frame buffer 26 so that a frame can be written into an empty block without distinguishing between a plurality of encoded streams. Video thumbnails can be displayed without dropping frames.

なお、本実施の形態のフレームバッファ26は、複数のストリームの各々から復号された1GOP分のフレームデータを蓄積しておくための「バッファプール」を意味し、ディスプレイに表示されるピクセルデータを保持するVRAM(Video Random Access Memory)とは異なる意味であることに留意する。ディスプレイ110にピクセルデータを出力するためのVRAMなどのフレームメモリがフレームバッファ26とは別途設けられもよく、あるいは、フレームバッファ26がディスプレイ110にピクセルデータを出力するためのフレームメモリとして流用されてもよい。   The frame buffer 26 according to the present embodiment means a “buffer pool” for storing frame data for 1 GOP decoded from each of a plurality of streams, and holds pixel data displayed on the display. Note that this has a different meaning from VRAM (Video Random Access Memory). A frame memory such as a VRAM for outputting pixel data to the display 110 may be provided separately from the frame buffer 26, or the frame buffer 26 may be used as a frame memory for outputting pixel data to the display 110. Good.

また、ビデオデコーダ20はそれ自身で復号処理のためのバッファを内部にもっており、フレーム間予測符号化されたフレームの復号に必要な参照フレームのデータをその内部バッファに保持することができる。したがって、ビデオデコーダ20は、クローズドGOPであるかオープンGOPであるかを問わず、復号することができる。オープンGOP、すなわち他のGOPのフレームの参照が必要なGOPの場合、ビデオデコーダ20は、復号の際に参照が必要なフレームをデコーダ内部のバッファに残しておいて、次のGOPの復号に利用すればよい。   In addition, the video decoder 20 has its own buffer for decoding processing, and can store the reference frame data necessary for decoding the frame subjected to the interframe prediction encoding in the internal buffer. Therefore, the video decoder 20 can decode regardless of whether it is a closed GOP or an open GOP. In the case of an open GOP, that is, a GOP that needs to reference a frame of another GOP, the video decoder 20 leaves a frame that needs to be referred to when decoding in a buffer in the decoder and uses it for decoding the next GOP. do it.

ただし、本実施の形態のビデオデコーダ20は、GOP単位でストリームを切り替えて復号する構成であるため、オープンGOPの場合に、あるストリームについて次のGOPの復号で参照すべきフレームをデコーダ内部のバッファに保持すると、ストリームの切り替えが一巡して、当該ストリームに戻るまでその参照フレームをバッファ内に保持し続けなければならない。ビデオデコーダ20の内部バッファの容量に制限がある場合、あるストリームの次回のGOPの復号に用いられる参照フレームを、ストリームの切り替えが一巡するまでバッファリングすることはメモリ容量の面では得策ではない。   However, since the video decoder 20 of the present embodiment is configured to switch and decode streams in units of GOPs, in the case of an open GOP, a frame to be referred to in the decoding of the next GOP for a certain stream is buffered in the decoder. If this is held, the switching of the stream is completed, and the reference frame must be held in the buffer until returning to the stream. When the capacity of the internal buffer of the video decoder 20 is limited, buffering the reference frame used for decoding the next GOP of a certain stream until the stream switching is completed is not a good strategy in terms of memory capacity.

そこで、あるストリームについて次のGOPの復号に用いられる参照フレームは、ビデオデコーダ20の内部バッファではなく、フレームバッファ26内に残し、ストリームの切り替えが一巡して、当該ストリームに戻ったときに、ビデオデコーダ20がその参照フレームをフレームバッファ26から読み出して復号に利用するように構成してもよい。ビデオデコーダ20の内部バッファよりも、複数のストリームのフレームデータを蓄積可能なフレームバッファ26の方がメモリ容量を大きく設計するのが普通である。フレームバッファ26に参照フレームを保持して、ビデオデコーダ20がフレームバッファ26を参照する構成は、システムのメモリ設計の面で有利である。   Therefore, the reference frame used for decoding the next GOP for a certain stream remains in the frame buffer 26 instead of the internal buffer of the video decoder 20, and the video is switched when the stream is switched once and returned to the stream. The decoder 20 may be configured to read the reference frame from the frame buffer 26 and use it for decoding. In general, the frame buffer 26 capable of storing a plurality of streams of frame data is designed to have a larger memory capacity than the internal buffer of the video decoder 20. The configuration in which the reference frame is held in the frame buffer 26 and the video decoder 20 refers to the frame buffer 26 is advantageous in terms of the memory design of the system.

ここで、表示制御部30による動画サムネイルの表示制御と、優先制御部16による復号対象の複数の符号化ストリームの優先制御について、いくつかの具体例を挙げながら説明する。   Here, the display control of the moving image thumbnail by the display control unit 30 and the priority control of a plurality of encoded streams to be decoded by the priority control unit 16 will be described with some specific examples.

図6(a)〜(c)は、動画サムネイルの表示制御の例を説明する図である。表示制御部30は、ディスプレイ110の画面に動画サムネイルを上下に配列して表示し、上下のスクロール操作により画面に表示される動画サムネイルを切り替えるように制御する。この場合、画面に表示されていない動画サムネイルであっても、上下のスクロール操作によって表示対象となることがあるから、ビデオデコーダ20は、上下のスクロール操作により表示される可能性があるストリームについても復号処理を実行し、共有メモリ領域28に書き込む。表示制御部30は、画面に動画サムネイルとして表示されているストリームについてのみ共有メモリ領域28からフレームを読み出して表示する。   6A to 6C are diagrams illustrating an example of display control of a moving image thumbnail. The display control unit 30 displays moving image thumbnails arranged vertically on the screen of the display 110, and controls to switch the moving image thumbnails displayed on the screen by an up and down scroll operation. In this case, even video thumbnails that are not displayed on the screen may be displayed by scrolling up and down, so the video decoder 20 can also display streams that may be displayed by scrolling up and down. Decryption processing is executed and written to the shared memory area 28. The display control unit 30 reads and displays a frame from the shared memory area 28 only for the stream displayed as the moving image thumbnail on the screen.

図6(a)の例では、ビデオデコーダ20が復号する9本のストリーム#1〜#9の内、5つのストリーム#3〜#7だけが画面に動画サムネイル121〜125として表示されており、他の4つのストリーム#1、#2、#8、#9については、現時点では画面の外側にあり、動画サムネイルとして表示されていない。中央のストリーム#5の動画サムネイル123は他のストリーム#3、#4、#6、#7の動画サムネイル121、122、124、125よりも大きく表示され、オーディオデコーダ22は、中央の動画サムネイル124についてはオーディオを復号してビデオに同期して再生する。   In the example of FIG. 6A, among the nine streams # 1 to # 9 decoded by the video decoder 20, only five streams # 3 to # 7 are displayed as moving image thumbnails 121 to 125 on the screen. The other four streams # 1, # 2, # 8, and # 9 are currently outside the screen and are not displayed as moving image thumbnails. The moving image thumbnail 123 of the central stream # 5 is displayed larger than the moving image thumbnails 121, 122, 124, and 125 of the other streams # 3, # 4, # 6, and # 7, and the audio decoder 22 displays the central moving image thumbnail 124. For audio, the audio is decoded and played in sync with the video.

ユーザは矢印キーなどを操作することで画面を上下にスクロールさせて中央に表示される動画サムネイルを切り替えることができる。たとえば、画面上で動画サムネイル列が上向きにシフトするようにスクロール操作を行うと、図6(b)のように、それまで中央にあったストリーム#5の動画サムネイル123は一つ上の位置に移動し、すぐ下の位置にあったストリーム#6の動画サムネイル124が中央に移動して大きく表示される。このとき、図6(a)において画面の外側にあったストリーム#8が新たに画面の最下端の位置に動画サムネイル126として表示され、図6(a)において画面の最上端の位置に表示されていたストリーム#3の動画サムネイル121は画面の外側に出るため、それ以降は表示されなくなる。   The user can switch the moving image thumbnail displayed in the center by scrolling the screen up and down by operating an arrow key or the like. For example, when the scroll operation is performed so that the moving image thumbnail row is shifted upward on the screen, the moving image thumbnail 123 of the stream # 5 that has been in the center until then is moved to the upper position as shown in FIG. The moving image thumbnail 124 of the stream # 6 that has been moved and located immediately below is moved to the center and displayed large. At this time, the stream # 8 outside the screen in FIG. 6 (a) is newly displayed as the moving image thumbnail 126 at the lowermost position of the screen, and is displayed at the uppermost position of the screen in FIG. 6 (a). Since the moving image thumbnail 121 of the stream # 3 that has been displayed appears outside the screen, it is not displayed thereafter.

ビデオデコーダ20は、図6(a)において画面の外側にあるストリーム#1、#2、#8、#9についても復号し、共有メモリ領域28にフレームを格納しているため、ユーザがスクロール操作を行っても画面に新たに現れるストリームを動画サムネイルとして直ちに表示することができる。図6(a)の例では、上下に動画サムネイル2つ分スクロールさせても、画面には動画サムネイルが遅延なく表示される。   Since the video decoder 20 also decodes the streams # 1, # 2, # 8, and # 9 outside the screen in FIG. 6A and stores the frames in the shared memory area 28, the user can perform a scroll operation. The stream that newly appears on the screen can be immediately displayed as a moving image thumbnail even if the operation is performed. In the example of FIG. 6A, even when scrolling up and down by two moving image thumbnails, the moving image thumbnails are displayed on the screen without delay.

優先制御部16は、図6(a)において画面に表示されている5本のストリーム#3〜#7を、画面の外側にあって表示されていない4本のストリーム#1、#2、#8、#9よりも優先度を高くする優先順位を設定する。切替部14は、優先制御部16により設定された優先順位にしたがった優先度付きラウンドロビン方式で、復号対象の9本のストリーム#1〜#9を切り替える。これにより表示中の5本のストリーム#3〜#7は、非表示の4本のストリーム#1、#2、#8、#9よりも復号される頻度が高くなり、復号処理に使うことのできる計算資源に限度がある場合でも、表示中の5本のストリーム#3〜#7については再生時間に間に合うように復号処理を確実に行うことができる。   The priority control unit 16 converts the five streams # 3 to # 7 displayed on the screen in FIG. 6A to the four streams # 1, # 2, #, which are outside the screen and are not displayed. 8 and # 9 are set to be higher in priority than # 9. The switching unit 14 switches the nine streams # 1 to # 9 to be decoded by the round robin method with priority according to the priority set by the priority control unit 16. As a result, the five displayed streams # 3 to # 7 are decoded more frequently than the four non-displayed streams # 1, # 2, # 8, and # 9, and can be used for the decoding process. Even when there is a limit to the computational resources that can be obtained, the decoding process can be reliably performed in time for the five streams # 3 to # 7 that are being displayed.

優先制御部16は、図6(a)において画面の中央に表示されているストリーム#5の優先度を最も高くしてもよい。また、画面の中央に近いストリームほど優先度を高くしてもよい。たとえば、#5、#4、#6、#3、#7、#2、#8、#1、#9の順に優先度が下がるようにストリームの優先順位を設定してもよい。   The priority control unit 16 may make the priority of the stream # 5 displayed at the center of the screen in FIG. Further, the priority may be higher for a stream closer to the center of the screen. For example, the priority order of the streams may be set so that the priority decreases in the order of # 5, # 4, # 6, # 3, # 7, # 2, # 8, # 1, # 9.

画面のスクロール操作により図6(b)の状態になると、切替部14は、復号対象のストリームを入れ替え、図6(c)のように、最上端のストリーム#1は復号対象から外し、最下端にストリーム#10を新たに復号対象に含める。これにより、新たな9本のストリーム#2〜#10がビデオデコーダ20の復号対象となる。このように画面のスクロール操作に応じて復号対象となるストリームを入れ替えることで画面のスクロールにリアルタイムに適応して、動画サムネイルをいつでもスムーズに表示させることができる。   When the screen scroll operation results in the state of FIG. 6B, the switching unit 14 replaces the decoding target stream, and the uppermost stream # 1 is excluded from the decoding target as shown in FIG. Stream # 10 is newly included in the decoding target. As a result, nine new streams # 2 to # 10 are to be decoded by the video decoder 20. In this way, moving picture thumbnails can be smoothly displayed at any time by adapting to the screen scrolling in real time by switching the streams to be decoded in accordance with the screen scrolling operation.

表示制御部30による表示制御と優先制御部16による優先制御にはいろいろなバリエーションが考えられる。上記の例では、表示制御部30は、画面の中央にある動画サムネイルを大きく表示させ、画面をスクロールさせることにより注目したい動画サムネイルを中央に移動させるユーザインタフェースを提供した。表示制御部30は、動画サムネイルを一覧表示し、ユーザが矢印キーなどでカーソルを移動させて注目したい動画サムネイルを選択させるインタフェースを提供し、選択された動画サムネイルを大きく表示させてもよい。   Various variations are conceivable for the display control by the display control unit 30 and the priority control by the priority control unit 16. In the above example, the display control unit 30 provides a user interface that displays a moving image thumbnail at the center of the screen in a large size and moves the moving image thumbnail to be noticed to the center by scrolling the screen. The display control unit 30 may display a list of moving image thumbnails, provide an interface for the user to select a moving image thumbnail to be noticed by moving the cursor with an arrow key or the like, and display the selected moving image thumbnail in a large size.

また、ユーザが注目している動画サムネイルを強調表示する他の方法として、表示制御部30は、注目している動画サムネイルは、それ以外の動画サムネイルよりも高いフレームレートで再生したり、あるいは、注目している動画サムネイルは通常のフレームレートで復号し、それ以外の動画サムネイルはフレームレートを落として再生することで、注目している動画サムネイルの品質を相対的に高めてもよい。   As another method of highlighting the video thumbnail that the user is paying attention to, the display control unit 30 plays the video thumbnail that is focused on at a higher frame rate than other video thumbnails, or The video thumbnails of interest may be decoded at a normal frame rate, and other video thumbnails may be played back at a reduced frame rate, so that the quality of the video thumbnails of interest may be relatively improved.

優先制御部16による優先制御のバリエーションを以下にまとめて説明する。これらの優先制御のバリエーションは単独もしくは組み合わせて用いることができる。   Variations of priority control by the priority control unit 16 will be described together below. These variations of priority control can be used alone or in combination.

(a)優先制御部16は、各ストリームのGOPフレーム数に依存した優先順位を設定する。たとえば、GOPフレーム数が小さいストリームほど優先度を高く設定する。GOP内のフレーム枚数が少ないストリームほど、早いタイミングで再生が終わるため、フレームバッファ26の共有メモリ領域28内のフレームが早く消費されてなくなる。GOPフレーム数が小さいストリームを優先して復号することで、再生に必要なフレームが共有メモリ領域28内で枯渇するのを防ぎ、フレーム落ちを防ぐことができる。   (A) The priority control unit 16 sets a priority order depending on the number of GOP frames of each stream. For example, a higher priority is set for a stream having a smaller number of GOP frames. A stream with a smaller number of frames in the GOP finishes reproduction at an earlier timing, so that frames in the shared memory area 28 of the frame buffer 26 are not consumed earlier. By preferentially decoding a stream with a small number of GOP frames, it is possible to prevent the frames necessary for reproduction from being depleted in the shared memory area 28 and to prevent frame dropping.

(b)優先制御部16は、バッファ管理テーブル24を参照して、フレームバッファ26の共有メモリ領域28内で再生されずに残存するフレームの枚数をストリーム毎に調べ、残存するフレームの枚数に依存した優先順位を設定する。たとえば、共有メモリ領域28内に残存するフレームの枚数が少ないストリームほど優先度を高くする。これにより、複数のストリーム間でフレームの残存数を平均化することができ、再生に必要なフレームが枯渇してフレーム落ちが発生する状況を未然に防ぐことができる。   (B) The priority control unit 16 refers to the buffer management table 24 to check the number of frames remaining without being reproduced in the shared memory area 28 of the frame buffer 26 for each stream, and depends on the number of remaining frames. Set the priority. For example, the priority is set higher for a stream with a smaller number of frames remaining in the shared memory area 28. As a result, the number of remaining frames can be averaged between a plurality of streams, and a situation in which frames necessary for reproduction are exhausted and frames are dropped can be prevented.

(c)優先制御部16は、各ストリームのフレームレートに依存した優先順位を設定する。高フレームレートのストリームほど共有メモリ領域28からフレームが速く消費されるため、優先度を高くする。これにより、高フレームレートのストリームについて、フレームデータが再生時間に間に合うように復号され、共有メモリ領域28にバッファリングされる。   (C) The priority control unit 16 sets a priority order depending on the frame rate of each stream. Since the higher the frame rate stream, the faster the frame is consumed from the shared memory area 28, the priority is increased. As a result, for the high frame rate stream, the frame data is decoded in time for the reproduction time and buffered in the shared memory area 28.

(d)画面に現時点で表示されているストリーム以外にも近い将来表示される可能性のあるストリームをあらかじめ復号しておくことがある。表示される可能性のあるストリームを前もって復号する例として、図6(a)〜(c)で説明したスクロール操作による場合以外に、ある動画サムネイルに他のストリームがリンクづけされており、ユーザの操作によりリンク先のストリームの動画サムネイルを表示する場合などがある。そのような場合、優先制御部16は、画面に表示されるストリームを画面に表示されないストリームよりも優先する優先順位を設定する。これにより、画面に表示されるストリームをより確実に復号してフレームバッファ26に格納しておくとともに、画面に表示される可能性のある符号化ストリームを低い優先度で復号してフレームバッファ26に格納し、再生の潜在的な可能性に備えることができる。   (D) In addition to the stream currently displayed on the screen, a stream that may be displayed in the near future may be decoded in advance. As an example of decoding a stream that may be displayed in advance, in addition to the case of the scroll operation described with reference to FIGS. In some cases, an operation displays a video thumbnail of a link destination stream. In such a case, the priority control unit 16 sets a priority order that gives priority to a stream displayed on the screen over a stream not displayed on the screen. As a result, the stream displayed on the screen is more reliably decoded and stored in the frame buffer 26, and the encoded stream that may be displayed on the screen is decoded with low priority to the frame buffer 26. You can store and prepare for the potential of playback.

(e)表示制御部30が画面に表示する複数の動画サムネイルの再生品質を異ならせる制御を行う場合、優先制御部16は、動画サムネイルの再生品質に応じた優先順位を設定する。たとえば、動画サムネイルの再生品質が高いストリームほど優先度が高くなる優先順位を設定し、再生品質要求の高いストリームを他のストリームよりも優先的に復号することで、再生品質要求の高いストリームについては高フレームレートや高解像度で再生するといった強調表示が可能になる。   (E) When the display control unit 30 performs control to change the reproduction quality of a plurality of moving image thumbnails displayed on the screen, the priority control unit 16 sets a priority order according to the reproduction quality of the moving image thumbnails. For example, for a stream with a high playback quality requirement, a priority is set such that the higher the playback quality of the video thumbnail, the higher the priority, and the higher playback quality request stream is decoded over other streams. Highlight display such as playback at a high frame rate or high resolution becomes possible.

以上述べたように、本実施の形態の復号装置100によれば、単一のビデオデコーダ20が、複数のストリームを切り替えながらGOP単位で復号して共有メモリ領域28にバッファリングし、表示制御部30は、共有メモリ領域28から表示すべき複数のストリームのフレームを読み出して画面に同時に動画像として表示することができる。ビデオデコーダ20は表示制御部30とは非同期に動作し、共有メモリ領域28にGOP単位で復号されたフレームを格納するための空き領域がなければ、復号処理をいったん停止する。そのため、共有メモリ領域28以上の容量を設ける必要がなく、メモリ量を節約できる。   As described above, according to the decoding device 100 of the present embodiment, a single video decoder 20 decodes in units of GOPs while switching a plurality of streams, buffers them in the shared memory area 28, and displays the display control unit. 30 can read frames of a plurality of streams to be displayed from the shared memory area 28 and display them simultaneously as moving images on the screen. The video decoder 20 operates asynchronously with the display control unit 30. If there is no free area in the shared memory area 28 for storing frames decoded in GOP units, the decoding process is temporarily stopped. Therefore, it is not necessary to provide a capacity larger than the shared memory area 28, and the amount of memory can be saved.

表示制御部30は、同時に複数のストリームを表示するため、動画のリフレッシュの度に共有メモリ領域28には同時表示ストリーム数のフレーム分の空き領域が生じる。共有メモリ領域28に1GOP分のフレームを格納するための空き領域が生じれば、ビデオデコーダ20は直ちに1GOP分のフレームを空き領域に書き込み、速やかに次のストリームの復号処理に移ることができるから、共有メモリ領域28にフレームデータが枯渇してフレーム落ちが発生することがない。   Since the display control unit 30 displays a plurality of streams at the same time, an empty area corresponding to the number of simultaneous display streams is generated in the shared memory area 28 every time the moving image is refreshed. If an empty area for storing a frame for 1 GOP is generated in the shared memory area 28, the video decoder 20 can immediately write the frame for 1 GOP to the empty area and immediately proceed to the decoding process of the next stream. Frame data is not depleted in the shared memory area 28 and frame dropping does not occur.

本実施の形態の復号装置100では、多重化分離部18およびビデオデコーダ20を一つだけ用意して複数のストリームを復号するため、ハードウェアで実装する場合、複数の多重化分離部18およびビデオデコーダ20を用いる構成に比べて、回路規模を小さくすることができる。ソフトウェアで実装する場合でも、多重化分離部18およびビデオデコーダ20のインスタンスを1つだけ実行させればよいから、システム制御プログラムを軽量化することができ、また、同時表示ストリーム数に応じてスケーラブルなソフトウェア構成を取ることができる。さらに、必然的にメモリやCPUなどの計算資源の使用率も低減される。システム性能やシステムリソースに応じて、ビデオデコーダ20のインスタンスを2つ以上設けてもかまわない。いずれにしても、極力少ない数のビデオデコーダ20のインスタンスにより、多数のストリームを実質的に並列に復号して、多数の動画を同時に再生できる点に利点がある。   In the decoding apparatus 100 according to the present embodiment, since only one demultiplexing unit 18 and video decoder 20 is prepared and a plurality of streams are decoded, when implemented in hardware, the plurality of demultiplexing units 18 and the video are provided. The circuit scale can be reduced as compared with the configuration using the decoder 20. Even when implemented by software, since only one instance of the demultiplexing unit 18 and the video decoder 20 needs to be executed, the system control program can be reduced in weight, and scalable according to the number of simultaneous display streams. Can take various software configurations. Furthermore, the usage rate of computing resources such as memory and CPU is inevitably reduced. Two or more instances of the video decoder 20 may be provided according to system performance and system resources. In any case, there is an advantage in that a large number of video decoders 20 can be reproduced in parallel by decoding a large number of streams substantially in parallel by using as few instances of the video decoder 20 as possible.

以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。そのような変形例を説明する。   The present invention has been described based on the embodiments. The embodiments are exemplifications, and it will be understood by those skilled in the art that various modifications can be made to combinations of the respective constituent elements and processing processes, and such modifications are within the scope of the present invention. . Such a modification will be described.

上記の実施の形態では、複数の符号化ストリームを復号して同時に動画サムネイルとして一覧表示する例をもとに本発明を説明したが、本発明は、複数の符号化ストリームを復号して同時に再生する他の用途にも同様に適用することができる。たとえば、コンピュータグラフィックスで生成された仮想空間の画面に複数の動画を貼り付けて表示する場合にも本発明を適用して、単一のデコーダで複数の動画を効率良く同時再生することができる。   In the above embodiment, the present invention has been described based on an example in which a plurality of encoded streams is decoded and displayed as a list of moving image thumbnails at the same time. However, the present invention decodes a plurality of encoded streams and reproduces them simultaneously. It can be applied to other uses as well. For example, even when a plurality of moving images are pasted and displayed on a virtual space screen generated by computer graphics, the present invention can be applied to efficiently reproduce a plurality of moving images simultaneously with a single decoder. .

また、実施の形態では、ビデオの復号を説明したが、本発明は原理的にはオーディオの復号にも適用できる。オーディオにもビデオと同様にオーディオフレームと呼ばれる符号化および復号の単位があり、ビデオストリームの場合と同様、複数のオーディオストリームを切り替えながら、ビデオのGOPに対応した最小復号単位でオーディオフレームの集合を復号してもよい。本発明を適用して複数のオーディオを同時に再生するニーズとして、たとえば、次のようなアプリケーションが考えられる。コンピュータグラフィックスにより生成される仮想空間において、場所によって異なる音声や音楽が聞こえてくる環境を実現し、ユーザが操作するキャラクタがその場所に近づくと音が大きく聞こえ、遠ざかると音が小さく聞こえるように構成する。このような仮想空間環境において、ユーザのキャラクタの周辺から各場所の音声または音楽が同時に聞こえてくるように複数のオーディオストリームを同時に再生する。   In the embodiments, video decoding has been described. However, the present invention is also applicable to audio decoding in principle. Similarly to video, audio has a unit of encoding and decoding called an audio frame. As in the case of a video stream, a plurality of audio streams are switched, and a set of audio frames is set in a minimum decoding unit corresponding to a video GOP. You may decode. As a need for reproducing a plurality of audios simultaneously by applying the present invention, for example, the following applications can be considered. In a virtual space generated by computer graphics, an environment where different voices and music can be heard depending on the location is realized, and when the character operated by the user approaches the location, the sound can be heard loudly, and the sound can be heard quietly when moving away. Constitute. In such a virtual space environment, a plurality of audio streams are simultaneously reproduced so that the voice or music of each place can be heard simultaneously from around the user's character.

実施の形態では、符号化ストリームがフレーム間予測符号化されていることを前提として最小復号単位であるGOP単位で切り出して復号する例を説明したが、Motion−JPEGのようなフレーム間予測符号化を行わない規格で符号化された動画ストリームについては、たとえば同時に表示されるストリームの本数に応じて設計されるフレーム数で切り出して複数のストリームを切り替えて復号してもよい。   In the embodiment, the example in which the coded stream is cut out and decoded in units of GOP which is the minimum decoding unit on the assumption that the encoded stream is subjected to inter-frame predictive coding has been described. However, inter-frame predictive coding such as Motion-JPEG is described. For example, a moving image stream encoded according to a standard that does not perform the extraction may be cut out with the number of frames designed according to the number of simultaneously displayed streams, and a plurality of streams may be switched and decoded.

実施の形態に係る復号装置の構成図である。It is a block diagram of the decoding apparatus concerning embodiment. 図1のフレームバッファの共有メモリ領域のデータ構造を説明する図である。It is a figure explaining the data structure of the shared memory area | region of the frame buffer of FIG. 図1のバッファ管理テーブルのデータ構造を説明する図である。It is a figure explaining the data structure of the buffer management table of FIG. 図1の共有メモリ領域に各ストリームのGOPを構成するフレームが書き込まれた状態を示す図である。It is a figure which shows the state by which the frame which comprises GOP of each stream was written in the shared memory area | region of FIG. 最初の垂直同期信号に同期して図4Aに示した状態の共有メモリ領域から各ストリームの最初のフレームが1枚ずつ読み出されて表示された状態を示す図である。FIG. 4B is a diagram showing a state in which the first frame of each stream is read and displayed one by one from the shared memory area in the state shown in FIG. 4A in synchronization with the first vertical synchronization signal. 2回目の垂直同期信号に同期して図4Bに示した状態の共有メモリ領域から各ストリームの2番目のフレームが1枚ずつ読み出されて表示された状態を示す図である。FIG. 4B is a diagram illustrating a state in which the second frame of each stream is read and displayed one by one from the shared memory area in the state illustrated in FIG. 4B in synchronization with the second vertical synchronization signal. 図4Cに示した状態の共有メモリ領域の空きブロックに第1ストリームの次のGOPを構成するフレームが書き込まれた状態を示す図である。FIG. 4D is a diagram illustrating a state in which a frame constituting the next GOP of the first stream is written in an empty block in the shared memory area in the state illustrated in FIG. 4C. 3回目の垂直同期信号に同期して図4Dに示した状態の共有メモリ領域から各ストリームの3番目のフレームが1枚ずつ読み出されて表示された状態を示す図である。FIG. 5D is a diagram showing a state in which the third frame of each stream is read and displayed one by one from the shared memory area in the state shown in FIG. 4D in synchronization with the third vertical synchronization signal. 図4Eに示した状態の共有メモリ領域の空きブロックに第2ストリームの次のGOPを構成するフレームが書き込まれた状態を示す図である。FIG. 4B is a diagram illustrating a state in which a frame constituting the next GOP of the second stream is written in an empty block in the shared memory area in the state illustrated in FIG. 4E. ストリーム毎に独立に設けられた専用メモリ領域に各ストリームのGOPを構成するフレームが書き込まれた状態を示す図である。It is a figure which shows the state by which the frame which comprises GOP of each stream was written in the dedicated memory area provided independently for every stream. 最初の垂直同期信号に同期して図5Aに示した状態の各専用メモリ領域から各ストリームの最初のフレームが1枚ずつ読み出されて表示された状態を示す図である。FIG. 5B is a diagram showing a state in which the first frame of each stream is read out and displayed one by one from each dedicated memory area in the state shown in FIG. 5A in synchronization with the first vertical synchronization signal. 2回目の垂直同期信号に同期して図5Bに示した状態の各専用メモリ領域から各ストリームの2番目のフレームが1枚ずつ読み出されて表示された状態を示す図である。FIG. 5B is a diagram showing a state in which the second frame of each stream is read and displayed one by one from each dedicated memory area in the state shown in FIG. 5B in synchronization with the second vertical synchronization signal. 3〜5回目の垂直同期信号を経て図5Bに示した状態の各専用メモリ領域から各ストリームの残りのフレームがすべて読み出された状態を示す図である。FIG. 6 is a diagram illustrating a state in which all the remaining frames of each stream have been read from each dedicated memory area in the state illustrated in FIG. 5B through the third to fifth vertical synchronization signals. 図6(a)〜(c)は、動画サムネイルの表示制御の例を説明する図である。6A to 6C are diagrams illustrating an example of display control of a moving image thumbnail.

符号の説明Explanation of symbols

10 ストレージ、 12 ストリームバッファ、 14 切替部、 16 優先制御部、 18 多重化分離部、 20 ビデオデコーダ、 22 オーディオデコーダ、 24 バッファ管理テーブル、 26 フレームバッファ、 28 共有メモリ領域、 30 表示制御部、 100 復号装置、 110 ディスプレイ。   10 storage, 12 stream buffer, 14 switching unit, 16 priority control unit, 18 demultiplexing unit, 20 video decoder, 22 audio decoder, 24 buffer management table, 26 frame buffer, 28 shared memory area, 30 display control unit, 100 Decoding device, 110 display.

Claims (12)

動画像のフレームが符号化された符号化ストリームが複数与えられた場合、複数の符号化ストリームのいずれか一つに切り替えて前記符号化ストリームの符号化データを読み出す切替部と、
前記切替部により選択された前記符号化ストリームの符号化データを復号してフレームを生成するデコーダと、
各符号化ストリームから復号されたフレームを一時的にバッファするフレームバッファとを含み、
前記フレームバッファは、前記複数の符号化ストリームの間で共有される単一のメモリ領域であって、前記複数の符号化ストリームの各々から復号された所定枚数のフレームを一時的に保持するための共有メモリ領域を含み、いずれの符号化ストリームから復号されたフレームであっても、当該共有メモリ領域内の格納位置の制限を受けることなく、いずれの空き領域にも格納可能に構成されることを特徴とする復号装置。
When a plurality of encoded streams in which a frame of a moving image is encoded are given, a switching unit that switches to any one of the plurality of encoded streams and reads out the encoded data of the encoded stream;
A decoder that decodes encoded data of the encoded stream selected by the switching unit to generate a frame;
A frame buffer that temporarily buffers frames decoded from each encoded stream;
The frame buffer is a single memory area shared between the plurality of encoded streams, and temporarily stores a predetermined number of frames decoded from each of the plurality of encoded streams. Any frame including a shared memory area and decoded from any encoded stream can be stored in any free area without being limited by the storage position in the shared memory area. A characteristic decoding apparatus.
前記複数の符号化ストリームの内、少なくとも一つ以上の符号化ストリームから復号されたフレームを前記共有メモリ領域から読み出して画面に動画像として同時に表示させる表示制御部をさらに含み、
前記デコーダは、前記表示制御部が少なくとも一つ以上の符号化ストリームを動画像として同時に表示させることによって、前記切替部により選択された前記符号化ストリームから復号された所定枚数のフレームを書き込むための空き領域が前記共有メモリ領域に生じたことを契機に、前記所定枚数のフレームをその空き領域に書き込み、前記切替部により次に選択される符号化ストリームの復号処理に進むことを特徴とする請求項1に記載の復号装置。
A display control unit that reads a frame decoded from at least one of the plurality of encoded streams from the shared memory area and simultaneously displays the frame as a moving image on a screen;
The decoder is configured to write a predetermined number of frames decoded from the encoded stream selected by the switching unit by causing the display control unit to simultaneously display at least one encoded stream as a moving image. When the free area is generated in the shared memory area, the predetermined number of frames are written in the free area, and the process proceeds to the decoding process of the next selected encoded stream by the switching unit. Item 4. The decoding device according to Item 1.
前記共有メモリ領域内に格納される前記複数の符号化ストリームの各々から復号されたフレームについて、共有メモリ領域内のフレームの格納位置に関する情報とフレームの再生順序に関する情報を前記符号化ストリーム毎に保持するバッファ管理テーブルをさらに含み、
前記表示制御部は、前記バッファ管理テーブルの前記格納位置に関する情報と前記再生順序に関する情報を参照して、前記複数の符号化ストリームの内、少なくとも一つ以上の符号化ストリームから復号されたフレームを前記共有メモリ領域から読み出すことを特徴とする請求項2に記載の復号装置。
For each frame decoded from each of the plurality of encoded streams stored in the shared memory area, information on the storage position of the frame in the shared memory area and information on the playback order of the frames are held for each encoded stream. A buffer management table for
The display control unit refers to information on the storage position and information on the playback order in the buffer management table, and displays frames decoded from at least one of the plurality of encoded streams. The decoding device according to claim 2, wherein reading is performed from the shared memory area.
前記切替部は、前記複数の符号化ストリームの各々について復号可能な最小単位である所定枚数のフレームのグループを切り替えの単位として、前記複数の符号化ストリームのいずれか一つに切り替えて前記フレームのグループの符号化データを読み出し、前記デコーダに供給することを特徴とする請求項1から3のいずれかに記載の復号装置。   The switching unit switches a group of a predetermined number of frames, which is a minimum decodable unit for each of the plurality of encoded streams, to a switching unit and switches to any one of the plurality of encoded streams. 4. The decoding apparatus according to claim 1, wherein encoded data of a group is read and supplied to the decoder. 前記切替部は、前記複数の符号化ストリームの各々の前記フレームのグループに含まれるフレーム枚数が少ないほど優先度が高くなる優先順位にもとづいて、前記複数の符号化ストリームのいずれか一つに切り替えて前記フレームのグループの符号化データを読み出すことを特徴とする請求項4に記載の復号装置。   The switching unit switches to any one of the plurality of encoded streams based on a priority order in which the priority becomes higher as the number of frames included in the frame group of each of the plurality of encoded streams decreases. 5. The decoding apparatus according to claim 4, wherein the encoded data of the group of frames is read out. 前記切替部は、前記共有メモリ領域内で再生されずに残存するフレームの枚数が少ない符号化ストリームほど優先度が高くなる優先順位にもとづいて、前記複数の符号化ストリームのいずれか一つに切り替えて前記符号化ストリームの符号化データを読み出すことを特徴とする請求項1から4のいずれかに記載の復号装置。   The switching unit switches to any one of the plurality of encoded streams based on a priority order in which the priority becomes higher as the encoded stream has a smaller number of remaining frames that are not reproduced in the shared memory area. The decoding apparatus according to claim 1, wherein the encoded data of the encoded stream is read out. 前記切替部は、前記複数の符号化ストリームの内、画面に動画像として再生される符号化ストリームを画面に動画像として再生されない符号化ストリームよりも優先する優先順位にもとづいて、前記複数の符号化ストリームのいずれか一つに切り替えて前記符号化ストリームの符号化データを読み出すことを特徴とする請求項1から4のいずれかに記載の復号装置。   The switching unit, based on a priority order that gives priority to an encoded stream that is reproduced as a moving image on a screen over an encoded stream that is not reproduced as a moving image on a screen, among the plurality of encoded streams. 5. The decoding apparatus according to claim 1, wherein the encoded data of the encoded stream is read by switching to any one of the encoded streams. 6. 前記切替部は、画面に表示される複数の動画像の品質が異なる場合、動画像としての表示品質が高い符号化ストリームほど優先度が高くなる優先順位にもとづいて、前記複数の符号化ストリームのいずれか一つに切り替えて前記符号化ストリームの符号化データを読み出すことを特徴とする請求項1から4のいずれかに記載の復号装置。   When the quality of the plurality of moving images displayed on the screen is different, the switching unit determines whether the plurality of encoded streams are based on the priority order in which the higher the priority is as the encoded stream has a higher display quality as a moving image. 5. The decoding device according to claim 1, wherein the encoded data of the encoded stream is read by switching to any one of them. 前記切替部は、画面に表示される複数の動画像の配列がユーザの操作に応じてスクロールする場合、現時点で画面に動画像として表示されている符号化ストリームをユーザのスクロール操作により次に画面に動画像が表示されることになる符号化ストリームよりも優先する優先順位にもとづいて、前記複数の符号化ストリームのいずれか一つに切り替えて前記符号化ストリームの符号化データを読み出すことを特徴とする請求項1から4のいずれかに記載の復号装置。   When the arrangement of a plurality of moving images displayed on the screen scrolls according to a user's operation, the switching unit moves the encoded stream currently displayed on the screen as a moving image to the next screen by the user's scrolling operation. The encoded data of the encoded stream is read out by switching to any one of the plurality of encoded streams based on a priority order that has priority over the encoded stream on which a moving image is to be displayed. The decoding device according to any one of claims 1 to 4. 動画像のフレームが符号化された符号化ストリームが複数与えられた場合、複数の符号化ストリームのいずれか一つに切り替えて前記符号化ストリームの符号化データを読み出すステップと、
読み出された前記符号化ストリームの符号化データを復号してフレームを生成するステップと、
前記複数の符号化ストリーム間で共有される単一のメモリ領域であって、前記複数の符号化ストリームの各々から復号された所定枚数のフレームを一時的に保持するための共有メモリ領域に、各符号化ストリームから復号されたフレームを、いずれの符号化ストリームから復号されたものであっても、当該共有メモリ領域内の格納位置を制限せずに、いずれかの空き位置に格納するステップとを含む復号方法。
When a plurality of encoded streams in which a frame of a moving image is encoded are given, a step of switching to any one of the plurality of encoded streams and reading the encoded data of the encoded stream;
Decoding encoded data of the read encoded stream to generate a frame;
A single memory area shared between the plurality of encoded streams, each of which is a shared memory area for temporarily holding a predetermined number of frames decoded from each of the plurality of encoded streams; Storing a frame decoded from the encoded stream in any empty position without limiting the storage position in the shared memory area, regardless of which encoded stream is used for decoding. Including decryption method.
動画像のフレームが符号化された符号化ストリームが複数与えられた場合、複数の符号化ストリームのいずれか一つに切り替えて前記符号化ストリームの符号化データを読み出す切替機能と、
前記切替機能により選択された前記符号化ストリームの符号化データを復号してフレームを生成する復号機能と、
前記複数の符号化ストリーム間で共有される単一のメモリ領域であって、前記複数の符号化ストリームの各々から復号された所定枚数のフレームを一時的に保持するための共有メモリ領域に、各符号化ストリームから復号されたフレームを、いずれの符号化ストリームから復号されたものであっても、当該共有メモリ領域内の格納位置を制限せずに、いずれかの空き位置に格納するバッファリング機能とをコンピュータに実現させることを特徴とするプログラム。
When a plurality of encoded streams in which a frame of a moving image is encoded are given, a switching function of switching to any one of a plurality of encoded streams and reading the encoded data of the encoded stream;
A decoding function for decoding the encoded data of the encoded stream selected by the switching function to generate a frame;
A single memory area shared between the plurality of encoded streams, each of which is a shared memory area for temporarily holding a predetermined number of frames decoded from each of the plurality of encoded streams; A buffering function for storing frames decoded from an encoded stream in any empty position without restricting the storage position in the shared memory area, regardless of which encoded stream is used for decoding. A program characterized by causing a computer to realize the above.
前記共有メモリ領域内に格納される前記複数の符号化ストリームから復号されたフレームについて、共有メモリ領域内のフレームの格納位置に関する情報とフレームの再生順序に関する情報を前記複数の符号化ストリーム毎にバッファ管理テーブルに保持するバッファ管理機能と、
前記バッファ管理テーブルの前記格納位置に関する情報と前記再生順序に関する情報を参照して、前記複数の符号化ストリームの内、少なくとも一つ以上の符号化ストリームから復号されたフレームを前記共有メモリ領域から読み出して画面に動画像として同時に表示させる表示制御機能とをさらにコンピュータに実現させることを特徴とする請求項11に記載のプログラム。
For frames decoded from the plurality of encoded streams stored in the shared memory area, information on the storage position of the frames in the shared memory area and information on the reproduction order of the frames are buffered for each of the plurality of encoded streams. A buffer management function held in the management table;
With reference to the information about the storage position and the information about the playback order in the buffer management table, a frame decoded from at least one of the plurality of encoded streams is read from the shared memory area. The program according to claim 11, further causing a computer to realize a display control function for simultaneously displaying a moving image on a screen.
JP2006248237A 2006-09-13 2006-09-13 Decoding device and decoding method Active JP4476261B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006248237A JP4476261B2 (en) 2006-09-13 2006-09-13 Decoding device and decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006248237A JP4476261B2 (en) 2006-09-13 2006-09-13 Decoding device and decoding method

Publications (2)

Publication Number Publication Date
JP2008072336A true JP2008072336A (en) 2008-03-27
JP4476261B2 JP4476261B2 (en) 2010-06-09

Family

ID=39293550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006248237A Active JP4476261B2 (en) 2006-09-13 2006-09-13 Decoding device and decoding method

Country Status (1)

Country Link
JP (1) JP4476261B2 (en)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008191241A (en) * 2007-02-01 2008-08-21 Sharp Corp Video display device and image display method
JP2010074787A (en) * 2008-09-22 2010-04-02 Sony Corp Device and method for display control and program
JP2010283750A (en) * 2009-06-08 2010-12-16 Canon Inc Image editing apparatus, control method thereof and program
JP2011072029A (en) * 2010-12-09 2011-04-07 Sony Corp Device and method for display control, and program
US20140079139A1 (en) * 2012-09-20 2014-03-20 Casio Computer Co., Ltd. Moving image processing apparatus that processes a plurality of moving image data sets
JP2015517777A (en) * 2012-05-24 2015-06-22 サムスン エレクトロニクス カンパニー リミテッド Multiple video playback method and apparatus
JP2017034402A (en) * 2015-07-30 2017-02-09 キヤノン株式会社 Information processor and control method and program thereof
WO2020017317A1 (en) * 2018-07-17 2020-01-23 ソニー株式会社 Signal processing device, signal processing method, and signal processing program
CN111913523A (en) * 2020-06-19 2020-11-10 国网河南省电力公司焦作供电公司 Double-buffer IRIG-B code generation method
CN112637634A (en) * 2020-12-24 2021-04-09 北京睿芯高通量科技有限公司 High-concurrency video processing method and system for multi-process shared data
CN113271468A (en) * 2020-02-14 2021-08-17 北京灵汐科技有限公司 SoC video decoding and buffering method and device based on GOP
CN113994707A (en) * 2019-07-05 2022-01-28 蒂莱德梅迪亚有限责任公司 Method and apparatus for rendering video on a display
CN114697675A (en) * 2020-12-25 2022-07-01 扬智科技股份有限公司 Decoding display system and memory access method thereof
CN115858081A (en) * 2023-02-24 2023-03-28 深圳市东微智能科技股份有限公司 UI (user interface) media resource display method, device and equipment and storage medium

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008191241A (en) * 2007-02-01 2008-08-21 Sharp Corp Video display device and image display method
US9191714B2 (en) 2008-09-22 2015-11-17 Sony Corporation Display control device, display control method, and program
JP4683103B2 (en) * 2008-09-22 2011-05-11 ソニー株式会社 Display control apparatus, display control method, and program
US8484682B2 (en) 2008-09-22 2013-07-09 Sony Corporation Display control device, display control method, and program
JP2010074787A (en) * 2008-09-22 2010-04-02 Sony Corp Device and method for display control and program
JP2010283750A (en) * 2009-06-08 2010-12-16 Canon Inc Image editing apparatus, control method thereof and program
JP2011072029A (en) * 2010-12-09 2011-04-07 Sony Corp Device and method for display control, and program
JP2015517777A (en) * 2012-05-24 2015-06-22 サムスン エレクトロニクス カンパニー リミテッド Multiple video playback method and apparatus
CN103686180A (en) * 2012-09-20 2014-03-26 卡西欧计算机株式会社 Moving image processing apparatus, moving image processing method, and program
US20140079139A1 (en) * 2012-09-20 2014-03-20 Casio Computer Co., Ltd. Moving image processing apparatus that processes a plurality of moving image data sets
KR101570907B1 (en) * 2012-09-20 2015-11-20 가시오게산키 가부시키가이샤 Moving image processing apparatus and moving image processing method
JP2014064124A (en) * 2012-09-20 2014-04-10 Casio Comput Co Ltd Video processing device, video processing method, and program
JP2017034402A (en) * 2015-07-30 2017-02-09 キヤノン株式会社 Information processor and control method and program thereof
WO2020017317A1 (en) * 2018-07-17 2020-01-23 ソニー株式会社 Signal processing device, signal processing method, and signal processing program
CN113994707A (en) * 2019-07-05 2022-01-28 蒂莱德梅迪亚有限责任公司 Method and apparatus for rendering video on a display
CN113271468A (en) * 2020-02-14 2021-08-17 北京灵汐科技有限公司 SoC video decoding and buffering method and device based on GOP
CN111913523B (en) * 2020-06-19 2024-05-07 国网河南省电力公司焦作供电公司 Dual-buffer IRIG-B code generation method
CN111913523A (en) * 2020-06-19 2020-11-10 国网河南省电力公司焦作供电公司 Double-buffer IRIG-B code generation method
CN112637634A (en) * 2020-12-24 2021-04-09 北京睿芯高通量科技有限公司 High-concurrency video processing method and system for multi-process shared data
CN114697675B (en) * 2020-12-25 2024-04-05 扬智科技股份有限公司 Decoding display system and memory access method thereof
CN114697675A (en) * 2020-12-25 2022-07-01 扬智科技股份有限公司 Decoding display system and memory access method thereof
CN115858081A (en) * 2023-02-24 2023-03-28 深圳市东微智能科技股份有限公司 UI (user interface) media resource display method, device and equipment and storage medium

Also Published As

Publication number Publication date
JP4476261B2 (en) 2010-06-09

Similar Documents

Publication Publication Date Title
JP4476261B2 (en) Decoding device and decoding method
CN100556117C (en) Reproducing device, playback method and playback programs
JP4516682B2 (en) Video recording / playback device
EP1440574A1 (en) Trick play using an information file
JP2007510230A (en) Annotating media content using user-specified information
JP2007235690A (en) Reproducing apparatus, method, and program
US20100247066A1 (en) Method and apparatus for reverse playback of encoded multimedia content
US7693008B2 (en) Video reproduction apparatus, video reproduction method, and video reproduction process program
JP2001086462A (en) Moving image recording device and moving image reproducing device
JPWO2009060682A1 (en) Video information recording method and video information reproducing apparatus
JP2005117660A (en) Information storage medium with av data containing non-multiplexed streams recorded thereon, and method and apparatus for reproducing the same
WO2008035459A1 (en) Dynamic image reproducing method and device
US6999090B2 (en) Data processing apparatus, data processing method, information storing medium, and computer program
KR101302869B1 (en) Reproduction apparatus and reproduction method
JP2006287578A (en) Video processing system, video processor, video processing method and computer program
US20090109810A1 (en) Recording/reproduction apparatus
JP4591549B2 (en) Reproduction processing apparatus, reproduction processing method, and program
JP3704356B2 (en) Decoded video signal decoding apparatus and storage decoding apparatus using the same
JP2013046357A (en) Image reproduction apparatus, image reproduction method, and image reproduction program
JP5188209B2 (en) Display control apparatus, method, and program
JP2012100162A (en) Image decoding apparatus and decoding program
JP4048809B2 (en) Data processing apparatus and method, recording medium, and program
JP5355176B2 (en) Movie storage device and control method thereof
JP2014064124A (en) Video processing device, video processing method, and program
JP2006050192A (en) Multiplexing method, information recording medium, and data reproducing method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090331

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091027

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091126

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100309

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100309

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 3