Video descriptor generation device

The video descriptor generation device includes a first extraction unit, a second extraction unit, and a feature combining unit. The first extraction unit extracts a first feature for each picture which is a frame or a field of a video. The second extraction unit extracts a second feature from a region defined by an edge of an image included in the video. The feature combining unit combines the first feature and the second feature to generate a video descriptor.

CROSS REFERENCE TO RELATED APPLICATION

This application is a National Stage of International Application No. PCT/JP2010/000276 filed on Jan. 20, 2010, which claims priority from Japanese Patent Application No. 2009-012812, filed on Jan. 23, 2009, the contents of all of which are incorporated herein by reference in their entirety.

TECHNICAL FIELD

The present invention relates to video descriptor generation devices, video descriptor generation methods, and video descriptor generation programs, for retrieving videos, which are capable of detecting similar or identical moving image segments among a plurality of moving images.

BACKGROUND ART

An example of a video descriptor generation device is disclosed in Patent Document 1.FIG. 27is a block diagram showing a video descriptor generation device described in Patent Document 1.

An each-frame feature extraction unit10calculates a frame unit feature from an input video, and outputs it to a feature table creation unit20. The feature table creation unit20creates a feature table from the frame unit feature output from the each-frame feature extraction unit10, and outputs the feature table as a video descriptor.

Next, operation of the device shown inFIG. 27will be described.

The each-frame feature extraction unit10performs a process of extracting a feature such as the color of each frame from an input video, and outputs the obtained feature to the feature table creation unit20as a frame unit feature.

The feature table creation unit20performs processing on variations in the feature between frames using a threshold, and compresses the feature in a time direction. Specifically, the feature table creation unit20calculates a difference between the frame unit features of frames, and determines whether or not the difference is within a certain allowable variation range. Then, the feature table creation unit20divides the video into time segments in which the video is within the allowable variation range, and for each of the divided time segments, a set of the feature and the time segment length (the number of frames) is output as a video descriptor.

As such, the feature of the video obtained for each frame can be compressed in a time direction, whereby the feature size can be reduced. Further, high-speed matching can also be realized.

SUMMARY

However, the above system involves the following problems.

A first problem is that the retrieval accuracy is lowered when black bar regions or an L-shaped region is added around the video, because there is no means for performing feature extraction while detecting addition of the black bar regions or the L-shaped region. As such, even if black regions (hereinafter referred to as black bar regions) are inserted on top and bottom or right and left portions of the screen due to aspect conversion between 4:3 and 16:9, or when an L-shaped region is added for emergency flash report or the like, features are directly extracted without considering such a matter. As a result, as features are extracted including unnecessary black bar regions or an L-shaped region, the values of the features differ from the case of not including such regions, which deteriorates the retrieval accuracy.

OBJECT OF THE INVENTION

An object of the present invention is to provide a video descriptor generation device, a video descriptor generation method, and a video descriptor generation program, capable of maintaining retrieval accuracy even if black bar regions or an L-shaped region is added to a video.

According to an aspect of the present invention, a video descriptor generation device includes a first extraction unit that extracts a first feature for each picture which is a frame or a field of a video; a second extraction unit that extracts a second feature from a region defined by an edge of an image included in the video; and a feature combining unit that combines the first feature and the second feature to generate a video descriptor.

As the present invention is configured as described above, the present invention has an advantageous effect that retrieval accuracy can be maintained even if black bar regions or an L-shaped region is added to a video.

EXEMPLARY EMBODIMENTS

Referring toFIG. 1showing a video descriptor generation device of a first embodiment of the present invention, the device includes a video edge detection unit100, a visual feature extraction unit120, a position-corrected visual feature extraction unit130, and a feature combining unit140.

The video edge detection unit100calculates a video edge from a video, and outputs edge information to the position-corrected visual feature extraction unit130. The visual feature extraction unit120receives the video, obtains a first feature from the video, and outputs it to the feature combining unit140. The position-corrected visual feature extraction unit130obtains a second feature from the edge information output from the video edge detection unit100and the video, and outputs it to the feature combining unit140. The feature combining unit140calculates a video descriptor from the first feature and the second feature, and outputs it.

Next, operation of the first embodiment shown inFIG. 1will be described in detail.

First, a video is input to the visual feature extraction unit120. If the original video is encoded, the video is first decoded by a decoder, and then the data is input in picture units composed of frames or fields.

The visual feature extraction unit120calculates a feature vector of each picture. The visual feature extraction unit120considers a picture as one still image, and extracts a vector of visual features indicating features such as colors, patterns, shapes, and the like of this picture. The calculated feature vector is output to the feature combining unit140as a first feature.

On the other hand, the video is also input to the video edge detection unit100. The video edge detection unit100detects whether or not there are black bar regions or an L-shaped region which are not originally included in the video, and if there is one, obtains the edge region thereof.

It should be noted that black bar regions mean black extra regions inserted in top and bottom or right and left portions of the screen due to aspect conversion between 4:3 and 16:9. Although it is typically in black color, it is not necessarily black. On the other hand, an L-shaped (or inverse L-shaped) region is a video display technique used for broadcasting emergency news and the like, in which the actual video is slightly contracted to generate a space for broadcasting flash news. In that case, the color thereof is not black, usually. In either case, it is common that a region which is not in the original video is displayed. Examples of these regions are shown inFIG. 24. InFIG. 24, black regions correspond to black bar regions or L-shaped regions. Other than those regions, this category also includes such cases as the case of a video presenting technique of incorporating another image into an image, which is so-called Picture in Picture, and the case of capturing by a camera a video shown on the back screen of a anchorperson, as a frame appears around the main video. As such, by handling outside of the region which is displayed inside by Picture in Picture and outside of the frame of a screen in the same manner as the case of black bar regions, the method of present invention can be applied thereto.

The video edge detection unit100obtains such regions included in the picture, which have not been included in the original video, and the boundaries thereof. For example, it is possible to calculate the boundaries by applying Hough transform to the picture to detect linear components of the video, and obtaining linear components appearing at the same position within the picture in a temporarily continuous manner. Information describing the obtained video edges is output as edge information to the position-corrected visual feature extraction unit130. As the edge information, it is possible to use a distance from an edge of the actual screen to the edge generated by a black bar region or an L-shaped region, for example. If bar regions only exist in top and bottom portions, the distance value to the boundaries of right and left should be set to 0. If an edge which is slightly tilted is also allowed, the angle thereof may be described together. Further, the edge information is also possible to include symbols indicating the type of a black bar or an L-shaped region, such as an L shape, a horizontal black bar, and a vertical black bar, and parameters necessary for describing the bar regions of each pattern. For example, if the width of a portion where an L shape appears has been set to several types, the edge information should include a symbol representing the L-shape pattern and an index designating the width.

To the position-corrected visual feature extraction unit130, the video is also input in picture units, along with the edge information. The position-corrected visual feature extraction unit130calculates features without regarding the region outside the position defined by the edge information. This means that features are extracted on the supposition that the region inside the position defined by the edge information is the entire image. The feature to be extracted is the same as that extracted by the visual feature extraction unit120. For example, if the visual feature extraction unit120extracts a layout feature of color, the position-corrected visual feature extraction unit130also extracts a layout feature of color. The extracted feature is output as a second feature to the feature combining unit140.

The feature combining unit140combines the first feature output from the visual feature extraction unit120and the second feature output from the position-corrected visual feature extraction unit130to generate a video descriptor, and outputs it. In this example, both features may be simply combined to form one feature, or applied with particular encoding. It is also possible to encode the difference utilizing the fact that the first feature and the second feature have high correlation. This operation will be described below in detail.

Next, an embodiment of the feature combining unit140will be described with reference toFIG. 3.

Referring toFIG. 3showing an embodiment of the feature combining unit140, the feature combining unit140includes an encoding unit310, an encoding unit320, and a code sequence multiplexing unit230.

The encoding unit320encodes an input first feature, and outputs a first feature code sequence obtained therefrom to the code sequence multiplexing unit230. The encoding unit310encodes an input second feature and outputs a second feature code sequence obtained therefrom to the code sequence multiplexing unit230. The code sequence multiplexing unit230multiplexes the first feature code sequence and the second feature code sequence to generate a video descriptor, and outputs it.

Next, operation of the feature combining unit140shown inFIG. 3will be described.

First, a first feature is input to the encoding unit320. The encoding unit320encodes the feature and generates a first feature code sequence. Here, encoding means storing information in a predetermined format, including simply aligning the values of a feature vector according to the dimensions. For example, if an input vector is an integer vector in N dimensions, a format in which N pieces of integer values of the respective dimensions are aligned is acceptable. If an input vector has a float value, it is possible to perform quantization to express it as representative values of a limited number and align the indexes (quantization indexes) indicating the representative values. Further, it is also possible to perform entropy coding considering the appearance frequency of the respective values on the obtained integer values or representative values. As the entropy coding, Huffman coding or arithmetic coding may be used. If there is correlation between dimensions of the feature vector, it is possible to perform entropy coding after performing a process of removing the correlation. For example, it is possible to obtain a difference of values between dimensions having correlation to perform difference encoding, or perform quantization or entropy coding after performing frequency conversion or the like on the input feature vector to generate a code sequence. Further, as a feature vector, if there is correlation between pictures, it is possible to calculate a difference from the feature vector of a past picture and encode it by means of the above encoding method to generate a code sequence. The generated first feature code sequence is output to the code sequence multiplexing unit230.

On the other hand, the second feature is input to the encoding unit310. Operation of the encoding unit310is the same as that of the encoding unit320. The encoding unit310encodes the second feature to generate a second feature code sequence. The generated second feature code sequence is output to the code sequence multiplexing unit230.

The code sequence multiplexing unit230multiplexes the first feature code sequence and the second feature code sequence to thereby generate a video descriptor. As shown inFIG. 25, it is possible to simply integrating the first feature code sequence and the second feature code sequence with an identification code, which is used to specify a separable position, between them (however if the code sequences are in a fixed length or the length of the code sequence are described in somewhere, a code for identification is unnecessary), or constructing a video descriptor by alternately interleaving them in picture units.

With the feature combining unit140shown inFIG. 3, it is possible to generate a video description having both features obtained by performing feature extraction eliminating the black bar regions and features obtained by performing feature extraction using the entire screen.

Next, another embodiment of the feature combining unit140will be described with reference toFIG. 4.

Referring toFIG. 4showing an embodiment of the feature combining unit140, the feature combining unit140includes a feature subtraction unit300, an encoding unit320, a feature difference encoding unit340, and a code sequence multiplexing unit330.

The feature subtraction unit300subtracts the first feature from the second feature to calculate a difference between the features, and outputs a feature difference value to the feature difference encoding unit340. The encoding unit320encodes the first feature, and outputs the obtained first feature code sequence to the code sequence multiplexing unit330. The feature difference encoding unit340encodes the feature difference value output from the feature subtraction unit300, and outputs the feature difference value code sequence to the code sequence multiplexing unit330. The code sequence multiplexing unit330generates a video descriptor from the first feature code sequence output from the encoding unit320and the feature difference value code sequence output from the feature difference encoding unit340, and outputs it.

Next, operation of the feature combining unit140shown inFIG. 4will be described.

First, the first feature is input to the encoding unit320. Operation of the encoding unit320is the same as that shown inFIG. 3, and the first feature code sequence is output to the code sequence multiplexing unit330. The first feature is also input to the feature subtraction unit300. The second feature is also input to the feature subtraction unit300.

In the feature subtraction unit300, the first feature is subtracted from the second feature for each dimension of the feature vector, whereby a difference vector is calculated. The difference vector is output to the feature difference encoding unit340as a feature difference value.

The feature difference encoding unit340encodes the feature difference value to generate a feature difference value code sequence. As the first feature and the second feature are extracted from originally the same video with a difference in whether or not to include black bar regions or an L-shaped region, they have a large correlation. As such, it is considered that if differences between both features are calculated, distribution of the appeared values concentrates on the neighborhood of 0. By using this characteristic, it is possible to reduce the quantity of codes generated by performing entropy coding. Specifically, it is possible to calculate frequency distribution of difference values beforehand using learning data with respect to each dimension of the feature vector, and apply arithmetic coding to the difference values using the distribution. It is also possible to construct a Huffman coding table based on the frequency distribution, and encode the difference values based on the table. If the feature difference values concentrate on almost 0, it is also possible to construct a code sequence as a combination of an index of a dimension having a value other than 0 and a code indicating the non-zero value. The generated feature difference value code sequence is output to the code sequence multiplexing unit330.

The code sequence multiplexing unit330integrates the first feature code sequence and the feature difference value code sequence to generate a video descriptor. Operation thereof is the same as that of the code sequence multiplexing unit230shown inFIG. 3.

With the feature combining unit140shown inFIG. 4, by performing encoding after calculating the differences, it is possible to reduce the size of the features.

Next, another embodiment of the feature combining unit140will be described with reference toFIG. 6.

Referring toFIG. 6showing an embodiment of the feature combining unit140, the feature combining unit140includes a feature subtraction unit300, an encoding unit310, an encoding unit320, a feature difference encoding unit340, a code selection unit520, and a code sequence multiplexing unit530.

The connection relation between the feature subtraction unit300and the encoding unit320is the same as that shown inFIG. 4. The feature difference encoding unit340encodes a feature difference value output from the feature subtraction unit300, and outputs a feature difference value code sequence to the code selection unit520. The encoding unit310encodes a second feature, and outputs a second feature code sequence to the code selection unit520. The code selection unit520selects one of the feature difference value code sequence output from the feature difference encoding unit340and the second feature code sequence output from the encoding unit310, and outputs it to the code sequence multiplexing unit530as a third feature code sequence. The code sequence multiplexing unit530generates a video descriptor from the first feature code sequence output from the encoding unit320and the third feature code sequence output from the code selection unit520, and outputs it.

Next, operation of the feature combining unit140shown inFIG. 6will be described.

Operation of the encoding unit310and the encoding unit320is the same as that shown inFIG. 3. Further, operation of the feature subtraction unit300and the feature difference encoding unit340is the same as that shown inFIG. 4. The feature difference value code sequence output from the feature difference encoding unit340and the second feature code sequence output from the encoding unit310are input to the code selection unit520.

The code selection unit520compares the quantities of codes between the feature difference value code sequence and the second feature code sequence in each picture or in a unit of a plurality of pictures, selects a code sequence having smaller quantity of generated codes, and outputs it to the code sequence multiplexing unit530as a third feature code sequence. In this process, information indicating which way is used for coding is output, as mode information, to the code sequence multiplexing unit530in a picture unit or a unit of a plurality of pictures. The code sequence multiplexing unit530integrates the first feature code sequence and the third feature code sequence to generate a video descriptor. Although the operation thereof is almost similar to that of the code sequence multiplexing unit230shown inFIG. 3, the point that mode information is also included in the video descriptor is the difference.

As the feature combining unit140shown inFIG. 6has a means for directly encoding the second feature, it is possible to prevent an increase in the feature size even in the case where the features largely differ depending on black bar regions or an L-shaped region so that encoding a feature difference value is inappropriate from a viewpoint of encoding efficiency.

The first embodiment of the video descriptor generation device has been described above. With the first embodiment, it is possible to extract a video descriptor capable of preventing deterioration in retrieval accuracy even in the case of including black bar regions or an L-shaped region. This is because the first embodiment detects black bar regions or an L-shaped region, and has information of the features extracted from the regions excluding the detected regions. As such, in the case of a moving image including black bar regions or an L-shaped region, retrieval accuracy can be maintained by comparing the features of the regions excluding those regions. Further, the first embodiment also has the features with respect to the entire video in which those regions are not removed. As such, even if there are any errors in detecting black bar regions or an L-shaped region, it is possible to perform matching between the features of entire images, whereby deterioration of the accuracy can be prevented.

Next, a second embodiment of the present invention will be described in detail.

Referring toFIG. 2showing a video descriptor generation device of the second embodiment, the device includes a video edge detection unit100, a visual feature extraction unit120, a position-corrected visual feature extraction unit130, and a feature combining unit240.

Although the configuration is almost similar to that shown inFIG. 1, an aspect that a feature combining unit240is used instead of the feature combining unit140and edge information output from the video edge detection unit100is also input to the feature combining unit240differs from the case ofFIG. 1.

Next, operation of the second embodiment of the present invention shown inFIG. 2will be described.

Operation of the video edge detection unit100, the visual feature extraction unit120, and the position-corrected visual feature extraction unit130is the same as that of the video descriptor generation device shown inFIG. 1. A first feature output from the visual feature extraction unit120and a second feature output from the position-corrected visual feature extraction unit130are input to the feature combining unit240. Further, edge information output from the video edge detection unit100is also input to the feature combining unit240.

While the operation of the feature combining unit240is also similar basically to that of the feature combining unit140shown inFIG. 1, an aspect of generating a video descriptor by controlling an encoding method by edge information and an aspect of including the edge information or its related information in the video descriptor differ from the case shown inFIG. 1. The details of these aspects will be described below.

Next, an embodiment of the feature combining unit240will be described with reference toFIG. 5.

Referring toFIG. 5showing an embodiment of the feature combining unit240, the feature combining unit240includes a feature subtraction unit300, an encoding unit320, a feature difference encoding unit440, and a code sequence multiplexing unit430.

The connection relation between the feature subtraction unit300and the encoding unit320is the same as that shown inFIG. 4. The feature difference encoding unit440encodes a feature difference value from the feature difference value output from the feature subtraction unit300and edge information, and outputs a feature difference value code sequence to the code sequence multiplexing unit430. The code sequence multiplexing unit430generates a video descriptor from the first feature code sequence output from the encoding unit320, the feature difference value code sequence output from the feature difference encoding unit440, and the edge information, and outputs it.

Next, operation of the feature combining unit240shown inFIG. 5will be described.

Operation of the feature subtraction unit300and the encoding unit320is the same as that shown inFIG. 4.

The feature difference encoding unit440encodes the feature difference value output from the feature subtraction unit300to generate a feature difference value code sequence. This operation is basically similar to the operation of the feature difference encoding unit340described inFIG. 4. However, the case of the feature difference encoding unit440differs from the case of the feature difference encoding unit340in that an encoding parameter is controlled by edge information indicating black bar regions or an L-shaped region. As such, an encoding parameter is changed according to edge information. Distribution of difference values in the respective dimensions of a feature vector is changed depending on the size of black bar regions or an L-shaped region, appearance location thereof, and the like. As such, entropy coding is performed by selecting distribution of difference values to be used according to the edge information to perform arithmetic coding according to the distribution, or selecting a Huffman table to be used according to the edge information to perform Huffman coding. The generated feature difference value code sequence is output to the code sequence multiplexing unit430.

The code sequence multiplexing unit430generates a video descriptor by multiplexing a first feature code sequence output from the encoding unit320, a feature difference value code sequence output from the feature difference encoding unit440, and the edge information. While this operation is basically similar to that of the code sequence multiplexing unit330shown inFIG. 4, an aspect of multiplexing the edge information together differs. It should be noted that the edge information may be one obtained by encoding the information or indexing the information, rather than the information itself. For example, in the feature difference encoding unit440, if encoding parameters to be used in a Huffman table or arithmetic coding are classified into some classes and one of them is selected, it is possible to multiplex an index identifying this class, or allocate a code which can specify this index.

With the feature combining unit240shown inFIG. 5, it is possible to optimize an encoding parameter for encoding after calculating a difference between features, whereby the encoding efficiency of the features can be improved.

Next, another embodiment of the feature combining unit240will be described with reference toFIG. 7.

Referring toFIG. 7showing an embodiment of the feature combining unit240, the feature combining unit240includes a feature subtraction unit300, an encoding unit320, a difference encoding index determination unit600, an encoding unit610, a feature difference encoding unit640, and a code sequence multiplexing unit630.

The connection relation between the feature subtraction unit300and the encoding unit320is the same as that shown inFIG. 4. The difference encoding index determination unit600receives edge information, and outputs difference encoding indexes to the feature difference encoding unit640and the encoding unit610. The feature difference encoding unit640encodes a feature difference value output from the feature subtraction unit300based on the difference encoding indexes output from the difference encoding index determination unit600, and outputs a feature difference value code sequence to the code sequence multiplexing unit630. The encoding unit610encodes the second feature based on the difference encoding indexes output from the difference encoding index determination unit600, and outputs a second feature code sequence to the code sequence multiplexing unit630. The code sequence multiplexing unit630multiplexes the first feature code sequence output from the encoding unit320, the feature difference value code sequence output from the feature difference encoding unit640, the second feature code sequence output from the encoding unit610, and the edge information to generate a video descriptor, and outputs it.

Next, operation of the feature combining unit240shown inFIG. 7will be described.

Operation of the feature subtraction unit300and the encoding unit320is the same as that shown inFIG. 4.

The difference encoding index determination unit600determines dimensions for performing difference encoding, among the respective dimensions of the features, based on the input edge information, and outputs indexes indicating the dimensions as difference encoding indexes. The difference encoding indexes are output to the feature difference encoding unit640and the encoding unit610.

The feature difference encoding unit640encodes feature difference values with respect to the dimensions corresponding to the input difference encoding indexes to generate a feature difference value code sequence. The method of encoding the feature difference value is the same as the feature difference encoding unit340shown inFIG. 4. The generated feature difference value code sequence is output to the code sequence multiplexing unit630.

The encoding unit610encodes a second feature of dimensions not corresponding to the input difference encoding indexes to generate a second feature code sequence. The method of encoding the second feature is the same as that used by the encoding unit310shown inFIG. 3. The generated second feature code sequence is output to the code sequence multiplexing unit630.

The code sequence multiplexing unit630multiplexes the first feature code sequence output from the encoding unit320, the feature difference value code sequence output from the feature difference encoding unit640, the second feature code sequence output from the encoding unit610, and the edge information to thereby generate a video descriptor. The video descriptor may be generated by simply integrating those code sequences, or alternately interleaving them in picture units. Multiplexing of the edge information is the same as that performed by the code sequence multiplexing unit430shown inFIG. 5.

For some dimensions, it is preferable to encode differences between features, while it is not the case for other dimensions, and if it changes depending on edge information, it is possible to encode features more efficiently by the feature combining unit240shown inFIG. 7.

Next, another embodiment of the feature combining unit240will be described with reference toFIG. 8.

Referring toFIG. 8showing an embodiment of the feature combining unit240, the feature combining unit240includes a feature subtraction unit300, an encoding unit320, a difference encoding index determination unit600, an encoding unit610, a feature difference encoding unit640, and a code sequence multiplexing unit830.

The configuration of the feature combining unit240is similar to the configuration shown inFIG. 7except that a code sequence multiplexing unit830is used instead of the code sequence multiplexing unit630, and that a difference encoding index is input to the code sequence multiplexing unit830instead of edge information.

Next, operation of the feature combining unit240will be described.

Operation of the unit other than the code sequence multiplexing unit830is the same as that shown inFIG. 7. The operation of the code sequence multiplexing unit830is also similar to that of the code sequence multiplexing unit630shown inFIG. 7except for an aspect of multiplexing difference encoding indexes instead of edge information.

The feature combining unit240shown inFIG. 8provides another embodiment having the same advantageous effect as that ofFIG. 7.

Next, another embodiment of the feature combining unit240will be described with reference toFIG. 9.

Referring toFIG. 9showing an embodiment of the feature combining unit240, the feature combining unit240includes a feature subtraction unit300, an encoding unit320, a difference encoding index determination unit600, an encoding unit610, a feature difference encoding unit660, and a code sequence multiplexing unit630.

The configuration thereof is similar to that shown inFIG. 7except that the feature difference encoding unit660is used instead of the feature difference encoding unit640, and that the feature difference encoding unit660also receives edge information.

Next, operation of the feature combining unit240shown inFIG. 9will be described.

Operation other than that of the feature difference encoding unit660is the same as the case shown inFIG. 7. Operation of the feature difference encoding unit660is also similar to that of the feature difference encoding unit640shown inFIG. 7except that encoding is performed by changing an encoding parameter according to edge information. A method of performing encoding by changing an encoding parameter according to edge information is the same as the case of the feature difference encoding unit440shown inFIG. 5.

With the feature combining unit240shown inFIG. 9, as it is possible to improve the efficiency of feature difference encoding compared with the case shown inFIG. 7, encoding of features can be performed more effectively.

Next, another embodiment of the feature combining unit240will be described with reference toFIG. 10.

Referring toFIG. 10showing an embodiment of the feature combining unit240, the feature combining unit240includes a feature subtraction unit300, an encoding unit320, a difference encoding index determination unit600, an encoding unit310, a feature difference encoding unit640, a code selection unit720, and a code sequence multiplexing unit730.

The connection relation between the feature subtraction unit300, the encoding unit320, and the difference encoding index determination unit600is the same as that shown inFIG. 7. The feature difference encoding unit640applies difference-encoding to a feature difference value output from the feature subtraction unit300based on the difference encoding index output from the difference encoding index determination unit600, and outputs a feature difference value code sequence to the code selection unit720. The encoding unit310encodes a second feature and outputs a second feature code sequence to the code selection unit720. The code selection unit720selects a code sequence based on the difference encoding index output from the difference encoding index determination unit600, and outputs the selected code sequence as a third feature code sequence to the code sequence multiplexing unit730. The code sequence multiplexing unit730generates a video descriptor from the first feature code sequence output from the encoding unit320, the third feature code sequence output from the code selection unit720, and the edge information, and outputs it.

Next, operation of the feature combining unit240shown inFIG. 10will be described.

Operation of the feature subtraction unit300, the encoding unit320, the difference encoding index determination unit600, and the feature difference encoding unit640is the same as the case shown inFIG. 7. Further, operation of the encoding unit310is the same as the case shown inFIG. 6.

The code selection unit720calculates, with respect to each of the feature difference value code sequence output from the feature difference encoding unit640and the second feature code sequence output from the encoding unit310, the total sum of code quantities of the dimension corresponding to the difference encoding indexes output from the difference encoding index determination unit600. For the dimension corresponding to the difference encoding index, a code sequence with which the total sum of the code quantities becomes small is selected. On the other hand, for a dimensions not corresponding to the difference encoding index, the codes of the second feature code sequence are selected. This is determined at predetermined intervals. As the interval, it is possible to use a picture or a segment configured of a plurality of pictures may be used. Then, the code selection unit720outputs the selected code sequence to the code sequence multiplexing unit730as a third feature code sequence. In this process, information indicating which of the ways is used for encoding is output as mode information to the code sequence multiplexing unit730for each picture or for each unit of pictures.

The code sequence multiplexing unit730multiplexes the first feature code sequence output from the encoding unit320, the third feature code sequence output from the code selection unit720, the edge information, and the mode information to thereby generate a video descriptor. The multiplexing method is almost similar to that of the case of the code sequence multiplexing unit430shown inFIG. 5, except that the mode information is also included in the video descriptor.

Even if encoding cannot be performed effectively in the feature difference encoding, as the features can be encoded directly with the feature combining unit240shown inFIG. 10, it is possible to perform feature encoding more effectively compared with the case ofFIG. 7.

Next, another embodiment of the feature combining unit240will be described with reference toFIG. 11.

Referring toFIG. 11showing an embodiment of the feature combining unit240, the feature combining unit240includes a feature subtraction unit300, an encoding unit320, a difference encoding index determination unit600, an encoding unit310, a feature difference encoding unit640, a code selection unit720, and a code sequence multiplexing unit930.

The configuration thereof is similar to the case ofFIG. 10, except that the code sequence multiplexing unit930is used instead of the code sequence multiplexing unit730, and that a difference encoding index is input, instead of the difference encoding index, to the code sequence multiplexing unit930.

Next, operation of the feature combining unit240shown inFIG. 11will be described.

Operation other than that of the code sequence multiplexing unit930is the same as the case ofFIG. 10. Operation of the code sequence multiplexing unit930is also similar to that of the code sequence multiplexing unit730shown inFIG. 10except for an aspect of multiplexing difference encoding indexes instead of edge information.

The feature combining unit shown inFIG. 11provides another embodiment having the same effect as that ofFIG. 10.

Next, another embodiment of the feature combining unit240will be described with reference toFIG. 12.

Referring toFIG. 12showing an embodiment of the feature combining unit240, the feature combining unit240includes a feature subtraction unit300, an encoding unit320, a difference encoding index determination unit600, an encoding unit310, a feature difference encoding unit660, a code selection unit720, and a code sequence multiplexing unit730.

The configuration thereof is similar to that of the case shown inFIG. 10except that the feature difference encoding unit660is used instead of the feature difference encoding unit640and that edge information is also input to the feature difference encoding unit660.

Next, operation of the feature combining unit240shown inFIG. 12will be described.

Operation other than that of the feature difference encoding unit660is the same as the case shown inFIG. 10. Operation of the feature difference encoding unit660is also similar to the feature difference encoding unit640shown inFIG. 10except for an aspect of performing encoding by changing an encoding parameter according to edge information. The method of performing encoding by changing an encoding parameter according to edge information is the same as the case of the feature difference encoding unit440shown inFIG. 5.

With the feature combining unit240shown inFIG. 12, it is possible to improve the efficiency of the feature difference encoding compared with the case ofFIG. 10, whereby feature encoding can be performed more efficiently.

The second embodiment of the video descriptor generation device has been described above. With the second embodiment, it is possible to optimize the method of encoding features according to the size of black bars or an L-shaped region, whereby the encoding effectiveness of a video descriptor can be improved.

Next, an embodiment of a moving image matching device will be described in detail with reference to the drawings.

Referring toFIG. 13showing an embodiment of a moving image matching device of the present invention, the moving image matching device includes feature reproduction units1000and1010, feature matching units1020,1030,1040, and1050, and a selection unit1060.

The feature reproduction unit1000receives a first video descriptor, outputs a separated first feature of a first video to the feature matching units1020and1030, and outputs a separated second feature of the first video to the feature matching units1040and1050. The feature reproduction unit1010receives a second video descriptor, outputs a separated first feature of a second video to the feature matching units1020and1040, and outputs a separated second feature of the second video to the feature matching units1030and1050. The feature matching unit1020receives the first feature of the first video and the first feature of the second video, and outputs a first matching score to the selection unit1060. The feature matching unit1030receives the first feature of the first video and the second feature of the second video, and outputs a second matching score to the selection unit1060. The feature matching unit1040receives the second feature of the first video and the first feature of the second video, and outputs a third matching score to the selection unit1060. The feature matching unit1050receives the second feature of the first video and the second feature of the second video, and outputs a fourth matching score to the selection unit1060. The selection unit1060compares the first to fourth matching scores, selects one of them, and outputs it as a matching score.

Next, operation of the moving image matching device shown inFIG. 13will be described.

First, a first video descriptor is input to the feature reproduction unit1000. The feature reproduction unit1000reproduces the feature from the first video descriptor, extracts a first feature of a first video which is a feature of the case of not eliminating black bar regions and a second feature of the first video which is a feature of the case of eliminating the black bar regions, and outputs them. On the other hand, a second video descriptor is input to the feature reproduction unit1010. The feature reproduction unit1010similarly extracts a first feature of the second video which is a feature of the case of not eliminating black bar regions and a second feature of the second video which is a feature of the case of eliminating the black bar regions, and outputs them. The details of feature reproduction performed by the feature reproduction units1000and1010will be described below.

To the feature matching unit1020, the first feature of the first video and the first feature of the second video are input. In this step, matching is performed on the features of the first video and the second video of the case of not eliminating the black bar regions. In the matching, the values of the features are compared for each picture, and a scale representing a distance between the features or a similarity between the features is calculated. This process is performed on a plurality of continuous pictures to perform statistical processing, whereby a distance or a similarity (regarding the similarity, it is determined to be more similar as the value is larger) between the videos constituted of those pictures is calculated. The statistical processing includes calculating a total amount or an average of the values of each picture, calculating a maximum value, and calculating a median value. Further, it is also possible to determine outlier in the scores of a picture, and calculate the statistic such as an average or a median by eliminating it. Thereby, a matching result between the video segments is calculated. Hereinafter, this result is referred to as a matching score. The calculated matching score is output to the selection unit1060.

Operation of the feature matching unit1030, the feature matching unit1040, and the feature matching unit1050is also similar to that of the feature matching unit1020, basically. However, as the feature matching unit1030compares the first feature of the first video and the second feature of the second video, the feature matching unit1030calculates a matching score of the case of not eliminating the black bars in the first video and the case of eliminating the black bars in the second video. As the feature matching unit1040compares the second feature of the first video and the first feature of the second video, the feature matching unit1040calculates a matching score of the case of eliminating the black bars in the first video and the case of not eliminating the black bars in the second video. As the feature matching unit1050compares the second feature of the first video and the second feature of the second video, the feature matching unit1050calculates a matching score between the cases of eliminating the black bars in the first video and the second video. The matching scores are calculated while shifting the pictures in a time direction. It should be noted that the matching is performed on all combinations in which black bars are eliminated and not eliminated, in order to prevent deterioration in matching accuracy when black bars are erroneously detected in the black bar elimination processing. In this way, the matching scores calculated by the feature matching units1030,1040,1050, and1060are output to the selection unit1060.

The selection unit1060selects a score indicating the highest matching degree among the input matching scores. This means that if the matching score is defined by a distance, the selection unit1060selects a smallest value, while if the matching score is defined by a similarity, the selection unit1060selects a largest value.

With the moving image matching device shown inFIG. 13, it is possible to perform retrieval without deteriorating the retrieval accuracy even if black bar regions or an L-shaped region is included.

Next, an embodiment of the feature reproduction unit1000shown inFIG. 13will be described with reference toFIG. 14.

Referring toFIG. 14showing an embodiment of the feature reproduction unit1000corresponding to the feature combining unit140shown inFIG. 3, the feature reproduction unit1000includes a code sequence demultiplexing unit1100, a decoding unit1110, and a decoding unit1120.

The code sequence demultiplexing unit1100receives a video descriptor, outputs a separated first feature code sequence to the decoding unit1110, and also outputs a second feature code sequence to the decoding unit1120. The decoding unit1110decodes the first feature code sequence output from the code sequence demultiplexing unit1100, generates a first feature, and outputs it. The decoding unit1120decodes the second feature code sequence output from the code sequence demultiplexing unit1100, generates a second feature, and outputs it.

Next, operation of the feature reproduction unit1000shown inFIG. 14will be described.

A video descriptor on which matching is performed is first input to the code sequence demultiplexing unit1100. The code sequence demultiplexing unit1100separates the first feature code sequence and the second feature code sequence from the video descriptor by means of a demultiplexing method corresponding to the method used for multiplexing. For example, in the multiplexing, if the first feature code sequence and the second feature code sequence are simply integrated with a separable identification code between them, the code sequence demultiplexing unit1100identifies the identification code and separates them such that the part before the code is a first feature code sequence and the part after the code is a second feature code sequence. On the other hand, if the video descriptor is constructed by interleaving them in picture units, the code sequence demultiplexing unit1100separates them in picture units and reconstructs a code sequence. At that time, if they are constructed to be separable with an identification code between them, the code sequence demultiplexing unit1100separates them by identifying the identification code, while if the length of the code sequence for each of the pictures is included as header information, the code sequence demultiplexing unit1100separates them by delimiting them by the length. The first feature code sequence and the second feature code sequence separated in this manner are respectively output to the decoding unit1110and the decoding unit1120.

The decoding unit1110decodes the first feature code sequence to generate a first feature. The decoding method depends on the method used for encoding. For example, if an input vector is an integer vector in N dimensions and a code sequence is generated in a format of simply aligning N pieces of integer values of the respective dimensions, it is only necessary to simply acquire the N-dimensional vector. In the case where an input vector is quantized and representative values (quantization indexes) are aligned, it is possible to perform inverse quantization after acquiring the representative values (or representative values obtained from the quantization indexes). In the case where entropy coding is performed, decoding corresponding thereto should be performed to obtain the symbol. For example, if Huffman coding is performed as entropy coding, it is possible to perform decoding using the Huffman table used for the encoding. If arithmetic encoding is performed, it is possible to perform arithmetic decoding using frequency distribution of the symbol used for the encoding. If entropy coding is performed after performing a process of removing correlation between dimensions, features can be calculated by first performing entropy decoding and then performing decoding corresponding to the processing performed for removing the correlation. If quantization and entropy coding are performed by performing frequency conversion, it is possible to calculate features by performing inverse quantization and inverse conversion of the frequency conversion after entropy decoding. If encoding is performed by calculating a difference from a feature of a past picture, it is possible to calculate a current feature of the picture by adding the value obtained by decoding to the feature of the past picture.

The decoding unit1120decodes the second feature code sequence and generates a second feature. Operation of the decoding unit1120is the same as that of the decoding unit1110.

The feature reproduction unit1000shown inFIG. 14provides a means for separating the features combined by the feature combining unit140shown inFIG. 3.

Next, another embodiment of the feature reproduction unit1000shown inFIG. 13will be described with reference toFIG. 15.

Referring toFIG. 15showing an embodiment of the feature reproduction unit1000corresponding to the feature combining unit140shown inFIG. 4, the feature reproduction unit1000includes a code sequence demultiplexing unit1200, a decoding unit1110, a feature difference decoding unit1230, and a feature addition unit1240.

The code sequence demultiplexing unit1200receives a video descriptor, outputs a separated first feature code sequence to the decoding unit1110, and outputs a feature difference value code sequence to the feature difference decoding unit1230. The decoding unit1110decodes a first feature code sequence output from the code sequence demultiplexing unit1200, and outputs a first feature. The feature difference decoding unit1230decodes the feature difference value code sequence output from the code sequence demultiplexing unit1200, and outputs the obtained feature difference value to the feature addition unit1240. The feature addition unit1240adds the first feature output from the decoding unit1110and the feature difference value output from the feature difference decoding unit1230to calculate a second feature, and outputs it.

Next, operation of the feature reproduction unit1000shown inFIG. 15will be described.

A video descriptor on which matching is performed is first input to the code sequence demultiplexing unit1200. The code sequence demultiplexing unit1200separates the first feature code sequence and the feature difference value code sequence from the video descriptor by means of a demultiplexing method corresponding to the method used for multiplexing. This operation is the same as that performed by the code sequence demultiplexing unit1100of the feature reproduction unit shown inFIG. 14. The separated first feature code sequence and the feature difference value code sequence are respectively output to the decoding unit1110and the feature difference decoding unit1230.

Operation of the decoding unit1110is the same as the case shown inFIG. 14, and the decoding unit1110outputs a first feature. The first feature is also output to the feature addition unit1240.

The feature difference decoding unit1230decodes the feature difference value code sequence to obtain a feature difference value. In this case, decoding is performed by performing inverse processing to the processing performed for encoding. For example, if encoding is performed by Huffman coding or arithmetic coding, decoding is performed by a corresponding decoding process. The obtained feature difference value is output to the feature addition unit1240.

The feature addition unit1240adds the first feature output from the decoding unit1110and the feature difference value output from the feature difference decoding unit1230to reproduce the second feature, and outputs the obtained second feature.

The feature reproduction unit1000shown inFIG. 15provides a means for separating the features combined by the feature combining unit140shown inFIG. 14.

Next, another embodiment of the feature reproduction unit1000shown inFIG. 13will be described with reference toFIG. 16.

Referring toFIG. 16showing an embodiment of the feature reproduction unit1000corresponding to the feature combining unit240shown inFIG. 5, the feature reproduction unit1000includes a code sequence demultiplexing unit1300, a decoding unit1110, a feature difference decoding unit1330, and a feature addition unit1240.

The code sequence demultiplexing unit1300receives a video descriptor, outputs a separated first feature code sequence to the decoding unit1110, and also outputs a feature difference value code sequence and edge information to the feature difference decoding unit1330. The connection relation between the decoding unit1110and the feature addition unit1240is the same as that shown inFIG. 15. The feature difference decoding unit1330decodes the feature difference value code sequence output from the code sequence demultiplexing unit1300based on the edge information output from the code sequence demultiplexing unit1300, and outputs a feature difference value to the feature addition unit1240.

The decoding unit1110decodes the first feature code sequence output from the code sequence demultiplexing unit1300, and outputs a first feature. The feature addition unit1240adds the first feature output from the decoding unit1110and the feature difference value output from the feature difference decoding unit1330to calculate a second feature, and outputs it.

Next, operation of the feature reproduction unit1000shown inFIG. 16will be described.

A video descriptor on which matching is performed is first input to the code sequence demultiplexing unit1300. While operation of the code sequence demultiplexing unit1300is similar to that of the code sequence demultiplexing unit1200shown inFIG. 15, it also outputs edge information. The edge information is output to the feature difference decoding unit1330.

While operation of the feature difference decoding unit1330is basically similar to that of the feature difference decoding unit1230shown inFIG. 15, it differs in that a coding parameter is specified using the input edge information and decoding is performed using the parameter.

The operation other than such a difference is the same as that of the feature reproduction unit1000shown inFIG. 15.

The feature reproduction unit1000shown inFIG. 16provides a means for separating the features combined by the feature combining unit240shown inFIG. 5.

Next, another embodiment of the feature reproduction unit1000shown inFIG. 13will be described with reference toFIG. 17.

Referring toFIG. 17showing an embodiment of the feature reproduction unit1000corresponding to the feature combining unit140shown inFIG. 6, the feature reproduction unit1000includes a code sequence demultiplexing unit1400, a decoding unit1110, a decoding unit1410, a feature difference decoding unit1430, a feature addition unit1240, a switching unit1440, and a switching unit1450.

The code sequence demultiplexing unit1400receives a video descriptor, outputs a separated first feature code sequence to the decoding unit1110, and outputs a third feature code sequence to the switching unit1440. Further, the code sequence demultiplexing unit1400also outputs mode information for controlling switching units to the switching unit1440and the switching unit1450. The decoding unit1110receives the first feature code sequence output from the code sequence demultiplexing unit1400, and outputs a first feature. The switching unit1440outputs the third feature code sequence output from the code sequence demultiplexing unit1400to either the feature difference decoding unit1430or the decoding unit1410according to the mode information input from the code sequence demultiplexing unit1400. The feature difference decoding unit1430receives the third feature code sequence output from the switching unit1440, and outputs a feature difference value to the feature addition unit1240. The decoding unit1410receives the third feature code sequence output from the switching unit1440, and outputs a decoding result to the switching unit1450. The feature addition unit1240receives the first feature output from the decoding unit1110and the feature difference value output from the feature difference decoding unit1430, and outputs the addition result to the switching unit1450. The switching unit1450receives the addition result output from the feature addition unit1240and the decoding result output from the decoding unit1410, reconstructs the second feature based on the mode information output from the code sequence demultiplexing unit1400, and outputs it.

Next, operation of the feature reproduction unit1000shown inFIG. 17will be described.

A video descriptor on which matching is performed is first input to the code sequence demultiplexing unit1400. The code sequence demultiplexing unit1400separates the first feature code sequence and the third feature code sequence from the video descriptor by means of a demultiplexing method corresponding to the method used for multiplexing. This operation is the same as that performed by the code sequence demultiplexing unit1100of the feature reproduction unit shown inFIG. 14. The separated first feature code sequence and the third feature code sequence are respectively output to the decoding unit1110and the switching unit1440. The mode information is also demultiplexed from the video descriptor, and output to the switching unit1440and the switching unit1450.

Operation of the decoding unit1110is the same as the case shown inFIG. 14, and the decoding unit1110outputs a first feature. The first feature is also output to the feature addition unit1240.

The switching unit1440changes the output destination of the third feature code sequence according to the mode information output from the code sequence demultiplexing unit1400. If the mode information indicates that the feature included in the third feature code sequence is a feature difference value, the switching unit1440outputs the third feature code sequence to the feature difference decoding unit1430. On the other hand, if the mode information indicates that the feature included in the third feature code sequence is a second feature, the switching unit1440outputs the third feature code sequence to the decoding unit1410. The timing of switching the output destination according to the mode information depends on how the third feature code sequence is created at the time of encoding. If the entire video is encoded in one mode, it is possible to set the output destination once at the beginning according to the mode information. If the video is encoded such that the mode is switched in picture units, it is possible to perform switching in picture units. If the video is encoded such that the mode is switched for each unit of a plurality of pictures or switched in region units within the picture, it is possible to perform switching according to the units.

The feature difference decoding unit1430decodes the third feature code sequence output from the switching unit1440to thereby reproduce (a part of) the feature difference value. Operation of the feature difference decoding unit1430is basically similar to that of the feature difference decoding unit1230shown inFIG. 15. However, if a part of the feature difference value code sequence (e.g., only part of the pictures) is to be decoded by the feature difference decoding unit1430depending on the mode, information specifying that features corresponding to which pictures or which regions are to be decoded is also included in the third feature code sequence. As such, the feature difference decoding unit1430performs decoding while referring to such information. The obtained feature difference value is output to the feature addition unit1240.

Operation of the feature addition unit1240is the same as the case shown inFIG. 15, and an addition result which is a (part of) second feature is output to the switching unit1450.

The decoding unit1410decodes the third feature code sequence output from the switching unit1440to thereby reproduce (a part of) the second feature. Operation of the decoding unit1410is basically similar to that of the decoding unit1120shown inFIG. 14. However, if a part of the third feature code sequence (e.g., only part of the pictures) is to be decoded by the decoding unit1410depending on the mode, information specifying that features corresponding to which pictures or which regions are to be decoded is also included in the third feature code sequence. As such, the decoding unit1410performs decoding while referring to this information. The decoding result is output to the switching unit1450.

The switching unit1450switches the output source of the second feature according to the mode information output from the code sequence demultiplexing unit1400. If the mode information indicates that the feature included in the third feature code sequence is a feature difference value, the switching unit1450outputs the addition result output from the feature addition unit1240as a second feature. On the other hand, if the mode information indicates that the feature included in the third feature code sequence is a second feature, the switching unit1450outputs the decoding result output from the decoding unit1410as a second feature.

The feature reproduction unit shown inFIG. 17provides a means for separating the features combined by the feature combining unit140shown inFIG. 6.

Next, another embodiment of the feature reproduction unit1000shown inFIG. 13will be described with reference toFIG. 18.

Referring toFIG. 18showing an embodiment of the feature reproduction unit1000corresponding to the feature combining unit240shown inFIG. 7, the feature reproduction unit1000includes a code sequence demultiplexing unit1500, a decoding unit1110, a decoding unit1510, a feature difference decoding unit1530, a feature addition unit1240, a switching unit1540, a switching unit1550, and a difference encoding index determination unit1560.

The code sequence demultiplexing unit1500receives a video descriptor, outputs a separated first feature code sequence to the decoding unit1110, and outputs a third feature code sequence to the switching unit1540. The code sequence demultiplexing unit1500also outputs edge information to the difference encoding index determination unit1560. The difference encoding index determination unit1560receives the edge information output from the code sequence demultiplexing unit1500, and outputs difference encoding indexes to the switching unit1540and the switching unit1550. The decoding unit1110receives the first feature code sequence output from the code sequence demultiplexing unit1500, and outputs a first feature. The switching unit1540outputs the third feature code sequence output from the code sequence demultiplexing unit1500to either the feature difference decoding unit1530or the decoding unit1510, according to the difference encoding indexes input from the difference encoding index determination unit1560. The decoding unit1510receives the third feature code sequence output from the switching unit1540, and outputs the decoding result to the switching unit1550. The feature difference decoding unit1530receives the third feature code sequence output from the switching unit1540, and outputs a feature difference value to the feature addition unit1240. The feature addition unit1240adds the first feature output from the decoding unit1110and the feature difference value output from the feature difference decoding unit1530, and outputs the addition result to the switching unit1550. The switching unit1550receives the addition result output from the feature addition unit1240and the decoding result output from the decoding unit1510, reconstructs a second feature based on the difference encoding indexes output from the difference encoding index determination unit1560, and outputs it.

Next, operation of the feature reproduction unit1000shown inFIG. 18will be described.

A video descriptor on which matching is performed is first input to the code sequence demultiplexing unit1500. The code sequence demultiplexing unit1500separates the first feature code sequence and the third feature code sequence from the video descriptor by means of a demultiplexing method corresponding to the method used for multiplexing. This operation is the same as that performed by the code sequence demultiplexing unit1100of the feature reproduction unit shown inFIG. 14. The separated first feature code sequence and the third feature code sequence are respectively output to the decoding unit1110and the switching unit1540. The edge information, which is information describing the edge in the screen formed by black regions or an L-shaped region, is also demultiplexed from the video descriptor, and output to the difference encoding index determination unit1560.

The difference encoding index determination unit1560is the same as that used for encoding. The difference encoding index determination unit1560determines dimensions, among the respective dimensions of the feature, on which difference encoding is performed, and outputs indexes representing the dimension as difference encoding indexes.

Operation of the decoding unit1110is the same as the case ofFIG. 14, and the decoding unit1110outputs a first feature. The first feature is also output to the feature addition unit1240.

The switching unit1540changes the output destination of the third feature code sequence for each dimension of the feature, according to the difference encoding indexes output from the difference encoding index determination unit1560. With respect to the dimensions designated by the difference encoding indexes, the switching unit1540outputs the third feature code sequence to the feature difference decoding unit1530. On the other hand, with respect to the dimensions not designated by the difference encoding indexes, the switching unit1540outputs the third feature code sequence to the decoding unit1510.

The feature difference decoding unit1530decodes the third feature code sequence output from the switching unit1540, and reproduces the value, among the feature difference values, of the dimension designated by the difference encoding indexes. Operation of the feature difference decoding unit1530is basically similar to that of the feature difference decoding unit1230shown inFIG. 15. The obtained feature difference value is output to the feature addition unit1240.

Operation of the feature addition unit1240is the same as the case shown inFIG. 15, and the addition result which is (a part of) the second feature is output to the switching unit1550.

The decoding unit1510decodes the third feature code sequence output from the switching unit1540, and reproduces the value of the dimensions not designated by the difference encoding indexes, of the second feature. Operation of the decoding unit1510is basically similar to that of the decoding unit1120shown inFIG. 14. The decoding result is output to the switching unit1550.

The switching unit1550switches the output destination of the second feature according to the difference encoding indexes output from the difference encoding index determination unit1560. With respect to the dimensions included in the difference encoding indexes, the switching unit1550outputs the addition result output from the feature addition unit1240as a second feature. On the other hand, with respect to the dimensions not included in the difference encoding indexes, the switching unit1550outputs the decoding result output from the decoding unit1510as a second feature.

The feature reproduction unit1000shown inFIG. 18provides a means for separating the features combined by the feature combining unit240shown inFIG. 7.

Next, another embodiment of the feature reproduction unit1000shown inFIG. 13will be described with reference toFIG. 19.

Referring toFIG. 19showing an embodiment of the feature reproduction unit1000corresponding to the feature combining unit240shown inFIG. 8, the feature reproduction unit1000includes a code sequence demultiplexing unit1600, a decoding unit1110, a decoding unit1510, a feature difference decoding unit1530, a feature addition unit1240, a switching unit1540, and a switching unit1550.

The configuration thereof is similar to that shown inFIG. 18except for the code sequence demultiplexing unit1600, the switching unit1540, and the switching unit1550. The code sequence demultiplexing unit1600receives a video descriptor, outputs a separated first feature code sequence to the decoding unit1110, and also outputs a third feature code sequence to the switching unit1540. Further, the code sequence demultiplexing unit1600outputs difference encoding indexes to the switching unit1540and the switching unit1550. The switching unit1540outputs the third feature code sequence output from the code sequence demultiplexing unit1500to either the feature difference decoding unit1530or the decoding unit1510, according to the difference encoding indexes output from the code sequence demultiplexing unit1600. The switching unit1550receives the addition result output from the feature addition unit1240and the decoding result output from the decoding unit1510, reconstructs the second feature based on the difference encoding indexes output from the code sequence demultiplexing unit1600, and outputs it.

Next, operation of the feature reproduction unit1000shown inFIG. 19will be described.

Operation other than that of the code sequence demultiplexing unit1600is the same as the case ofFIG. 18. Operation of the code sequence demultiplexing unit1600is also similar to that of the code sequence demultiplexing unit1500shown inFIG. 18except for an aspect of demultiplexing a difference encoding indexes instead of edge information.

The feature reproduction unit1000shown inFIG. 19provides a means for separating the features combined by the feature combining unit240shown inFIG. 8.

Next, another embodiment of the feature reproduction unit1000shown inFIG. 13will be described with reference toFIG. 20.

Referring toFIG. 20showing an embodiment of the feature reproduction unit1000corresponding to the feature combining unit240shown inFIG. 9, the feature reproduction unit1000includes a code sequence demultiplexing unit1500, a decoding unit1110, a decoding unit1510, a feature difference decoding unit1730, a feature addition unit1240, a switching unit1540, and a switching unit1550.

The connection relation between the units other than the code sequence demultiplexing unit1500and the feature difference decoding unit1730is the same as that shown inFIG. 18. The code sequence demultiplexing unit1500receives a video descriptor, outputs a separated first feature code sequence to the decoding unit1110, and outputs a third feature code sequence to the switching unit1540. Further, the code sequence demultiplexing unit1500outputs edge information to the difference encoding index determination unit1560and the feature difference decoding unit1730. The feature difference decoding unit1730receives the third feature code sequence output from the switching unit1540and the edge information output from the code sequence demultiplexing unit1500, and outputs a feature difference value to the feature addition unit1240.

Next, operation of the feature reproduction unit1000shown inFIG. 20will be described.

Operation other than that of the feature difference decoding unit1730is the same as the case shown inFIG. 18. Operation of the feature difference decoding unit1730is also similar to that of the feature difference decoding unit1530shown inFIG. 18, except for an aspect of performing decoding by changing the coding parameter according to the edge information.

The feature reproduction unit1000shown inFIG. 20provides a means for separating the features combined by the feature combining unit240shown inFIG. 9.

Next, another embodiment of the feature reproduction unit1000shown inFIG. 13will be described with reference toFIG. 21.

Referring toFIG. 21showing an embodiment of the feature reproduction unit1000corresponding to the feature combining unit240shown inFIG. 10, the feature reproduction unit1000includes a code sequence demultiplexing unit1700, a decoding unit1110, a decoding unit1510, a feature difference decoding unit1530, a feature addition unit1240, a switching unit1740, a switching unit1750, and a difference encoding index determination unit1560.

The connection relation between the decoding unit1110, the decoding unit1510, the feature difference decoding unit1530, and the feature addition unit1240is the same as that shown inFIG. 18. The code sequence demultiplexing unit1700receives a video descriptor, outputs a separated first feature code sequence to the decoding unit1110, and also outputs a third feature code sequence to the switching unit1740. Further, the code sequence demultiplexing unit1700outputs edge information to the difference encoding index determination unit1560, and also outputs mode information to the switching unit1740and the switching unit1750. The difference encoding index determination unit1560receives the edge information output from the code sequence demultiplexing unit1700, and outputs difference encoding indexes to the switching unit1740and the switching unit1750. The switching unit1740outputs the third feature code sequence output from the code sequence demultiplexing unit1700to either the feature difference decoding unit1530or the decoding unit1510, according to the difference encoding index output from the difference encoding index determination unit1560or the mode information output from the code sequence demultiplexing unit1700. The switching unit1750receives the addition result output from the feature addition unit1240and the decoding result output from the decoding unit1510, reconstructs the second feature based on the difference encoding indexes output from the difference encoding index determination unit1560and the mode information output from the code sequence demultiplexing unit1700, and outputs it.

Next, operation of the feature reproduction unit1000shown inFIG. 21will be described.

A video descriptor on which matching is performed is first input to the code sequence demultiplexing unit1700. The code sequence demultiplexing unit1700separates a first feature code sequence and a third feature code sequence from the video descriptor by means of a demultiplexing method corresponding to the method used for multiplexing. This operation is the same as that performed by the code sequence demultiplexing unit1100of the feature reproduction unit shown inFIG. 14. The separated first feature code sequence and the third feature code sequence are respectively output to the decoding unit1110and the switching unit1740. The edge information, which is information describing the edge in the screen formed by black regions or an L-shaped region, is also demultiplexed from the video descriptor, and output to the difference encoding index determination unit1560. Further, the mode information is also demultiplexed from the video descriptor and output to the switching unit1740and the switching unit1750.

Operation of the difference encoding index determination unit1560is the same as the case ofFIG. 18, and difference encoding indexes are output.

Operation of the decoding unit1110is the same as the case ofFIG. 14, and a first feature is output. The first feature is also output to the feature addition unit1240.

The switching unit1740changes the output destination of the third feature code sequence for each dimension of the feature, according to the difference encoding indexes output from the difference encoding index determination unit1560and the mode information output from the code sequence demultiplexing unit1700. If the mode information indicates that the feature included in the third feature code sequence is a feature difference value, the switching unit1740outputs the third feature code sequence to the feature difference decoding unit1530with respect to the dimensions designated by the difference encoding indexes, while outputs third feature code sequence to the decoding unit1510with respect to the dimensions not designated by the difference encoding indexes. On the other hand, if the mode information indicates that the feather included in the third feature code sequence is a second feature, the switching unit1740outputs the third feature code sequence to the decoding unit1510.

Operation of the feature difference decoding unit1530, the feature addition unit1240, and the decoding unit1510is the same as the case ofFIG. 18

The switching unit1750switches the output destination of the second feature according to the difference encoding indexes output from the difference encoding index determination unit1560and the mode information output from the code sequence demultiplexing unit1700. If the mode information indicates that the feature included in the third feature code sequence is a feature difference value, the switching unit1750outputs the addition result output from the feature addition unit1240as a second feature with respect to the dimensions included in the difference encoding indexes, while outputs the decoding result output from the decoding unit1510as a second feature with respect to the dimensions not included in the difference encoding indexes. On the other hand, if the mode information indicates that the feature included in the third feature code sequence is a second feature, the switching unit1750outputs the decoding result output from the decoding unit1510as a second feature.

The feature reproduction unit shown inFIG. 21provides a means for separating the features combined by the feature combining unit240shown inFIG. 10.

Next, another embodiment of the feature reproduction unit1000shown inFIG. 13will be described with reference toFIG. 22.

Referring toFIG. 22showing an embodiment of the feature reproduction unit1000corresponding to the feature combining unit240shown inFIG. 11, the feature reproduction unit1000includes a code sequence demultiplexing unit1800, a decoding unit1110, a decoding unit1510, a feature difference decoding unit1530, a feature addition unit1240, a switching unit1740, and a switching unit1750.

The configuration thereof is similar to that of the case ofFIG. 20except for the code sequence demultiplexing unit1800, the switching unit1740, and the switching unit1750. The code sequence demultiplexing unit1800receives a video descriptor, outputs a separated first feature code sequence to the decoding unit1110, and also outputs a third feature code sequence to the switching unit1540. Further, the code sequence demultiplexing unit1800outputs difference encoding indexes and mode information to the switching unit1740and the switching unit1750. The switching unit1740outputs the third feature code sequence output from the code sequence demultiplexing unit1800to either the feature difference decoding unit1530or the decoding unit1510, according to the difference encoding index and the mode information output from the code sequence demultiplexing unit1800. The switching unit1750receives the addition result output from the feature addition unit1240and the decoding result output from the decoding unit1510, reconstructs the second feature based on the difference encoding indexes and the mode information output from the code sequence demultiplexing unit1800, and outputs it.

Next, operation of the feature reproduction unit1000shown inFIG. 22will be described.

Operation other than that of the code sequence demultiplexing unit1800is the same as the case shown inFIG. 21. Operation of the code sequence demultiplexing unit1800is also similar to that of the code sequence demultiplexing unit1700shown inFIG. 21except for an aspect of demultiplexing a difference encoding indexes instead of edge information.

The feature reproduction unit1000shown inFIG. 22provides a means for separating the features combined by the feature combining unit240.

Next, another embodiment of the feature reproduction unit1000will be described with reference toFIG. 23.

Referring toFIG. 23showing an embodiment of the feature reproduction unit1000corresponding to the feature combining unit240shown inFIG. 12, the feature reproduction unit1000includes a code sequence demultiplexing unit1700, a decoding unit1110, a decoding unit1510, a feature difference decoding unit1530, a feature addition unit1240, a switching unit1740, a switching unit1750, and a difference encoding index determination unit1560.

The connection relation between the units other than the code sequence demultiplexing unit1700and the feature difference decoding unit1730is the same as that shown inFIG. 21. The code sequence demultiplexing unit1700receives a video descriptor, outputs a separated first feature code sequence to the decoding unit1110, and also outputs a third feature code sequence to the switching unit1540. Further, the code sequence demultiplexing unit1700outputs edge information to the difference encoding index determination unit1560and the feature difference decoding unit1730, and outputs mode information to the switching unit1740and the switching unit1750. The feature difference decoding unit1730receives the third feature code sequence output from the switching unit1740an the edge information output from the third feature code sequence, and outputs a feature difference value to the feature addition unit1240.

Next, operation of the feature reproduction unit1000shown inFIG. 23will be described.

Operation other than that of the feature difference decoding unit1730is the same as the case shown inFIG. 21. Operation of the feature difference decoding unit1730is also similar to that of the feature difference decoding unit1530shown inFIG. 21except for an aspect of performing decoding by changing the coding parameter according to the edge information.

The feature reproduction unit shown inFIG. 23provides a means for separating the features combined by the feature combining unit240shown inFIG. 12.

The embodiment of the moving image matching device has been described above. With this embodiment, it is possible to perform matching on moving images using a video descriptor extracted by the video descriptor generation device. As such, even if black bars or an L-shaped region is included, it is possible to perform matching without degrading the accuracy.

Next, operation of another embodiment of the present invention will be described.

FIG. 26shows an exemplary method of extracting features from a picture. In this method, pairs of any two regions within a picture are set beforehand, and a difference between the features of the two regions of a pair is obtained as a feature vector. In this embodiment, respective pairs of regions are indicated as P1, P2, P3, . . . , and a feature determined from the nthpair is indicated as Vn. Pairs of regions may take various combinations of shapes and positions of regions, as shown in the figure. Also, various methods can be used for calculating the feature Vn from the pair Pn. For example, there is a method in which an average value of luminance is calculated in each of a shaded region and a reticulated region of a pair, and a value of the feature Vn is determined from the magnitude relation thereof. Specifically, an average luminance obtained within a reticulated region is subtracted from an average luminance obtained within a shaded region to calculate a difference, and if the difference is positive, Vn=1, while if the difference is negative, Vn=−1. It is also possible that if the absolute value of the difference is smaller than a threshold, Vn is zero, so that the feature Vn is indicated by a ternary values. Hereinafter, it is assumed that Vn takes a ternary value

The visual feature extraction unit120inFIG. 1performs the above-described processing on the N pieces of pairs, to thereby obtain feature vectors Vn in N dimensions. The video edge detection unit100performs Hough transform on each picture, to detect horizontal or vertical lines close to the edge of the video. Then, the video edge detection unit100measures continuity between the pictures, and if they continue for the number of pictures which is larger than a threshold, detects them as boundaries of black bar regions or L-shaped regions, and outputs edge information. The position-corrected visual feature extraction unit130regards the region excluding the edge region as the entire screen to perform the same processing as that performed by the visual feature extraction unit120to thereby obtain feature vectors V′n of the N dimensions. The feature combining unit140or240combines the feature vectors Vn and V′n of the N dimensions obtained for each picture to generate a video descriptor.

With respect to the feature vector Vn, the encoding unit320performs encoding. As each dimension takes a ternary value, if they are combined for 5 dimensions, the state is 35=243, which can be represented in one byte. As such, they are represented for each 5 dimensions, the value of which is represented as N/5 byte, and encoded.

If the feature combining unit140calculates a feature difference value, a difference value Dn between the features of each dimension is calculated by the equation
Dn=V′n−Vn
and the difference value Dn is encoded. As the value of the feature takes a ternary value, the value taken as Dn is a ternary value, although it depends on Vn. As such, if Vn=1, Dn=0, −1, or −2, if Vn=0, Dn=1, 0, or −1, if Vn=−1, Dn=2, 1, or 0. The feature difference value encoding unit340learns occurrence frequency of Dn for each of the values of Vn=1, 0, and −1 in advance, and performs entropy coding based on the result.

If difference indexes are determined as in the case ofFIG. 7, it is possible to consider to what degree the region used for calculating Vn moves due to insertion of black bar regions or an L-shaped region. A region at the center of the screen does not move largely even if black bar regions are inserted. On the other hand, a region in the surrounding area of the image shifts largely. As such, if the region used for calculating Vn is close to the center of the screen, the correlation between Vn and V′n is larger, while if the region used for calculating Vn is close to the surrounding area, the correlation is lower. Accordingly, for dimensions in which Vn is calculated from regions at the center of the screen, it is possible to encode Dn, and for other dimensions, it is possible to encode V′n. As described above, dimensions for which difference encoding should be performed can be obtained from the geometric characteristics, and difference encoding indexes can be determined. Of course, it is possible to determine difference encoding indexes from a degree of correlation between Vn and V′n by learning it with respect to images.

For other cases, it is possible to construct video descriptor generation devices with respect to the above-described features by applying the above-described methods.

While the invention has been described with reference to the embodiments thereof, the invention is not limited to these examples. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the present invention. Further, the video descriptor generation device and the moving image matching device of the present invention are adapted such that the functions thereof can be realized by computers and programs, as well as hardware. Such a program is provided in the form of being written on a computer readable recording medium such as a magnetic disk, a semiconductor memory, or the like, is read by a computer when the computer is started for example, and controls operation of the computer, to thereby allow the computer to function as the video descriptor generation device and the moving image matching device of the above-described embodiments.

This application is based upon and claims the benefit of priority from Japanese patent application No. 2009-12812, filed on Jan. 23, 2009, the disclosure of which is incorporated herein in its entirety by reference.

INDUSTRIAL APPLICABILITY

The present invention is applicable to retrieval of similar or identical videos from various videos with high accuracy. In particular, regarding retrieval of the same segments of videos, the present invention is applicable to identification of illegally copied moving images distributed on the networks and identification of commercials distributed on actual airwaves.