WO2013057977A1 - 映像情報再生方法及び映像情報再生装置 - Google Patents

映像情報再生方法及び映像情報再生装置 Download PDF

Info

Publication number
WO2013057977A1
WO2013057977A1 PCT/JP2012/063121 JP2012063121W WO2013057977A1 WO 2013057977 A1 WO2013057977 A1 WO 2013057977A1 JP 2012063121 W JP2012063121 W JP 2012063121W WO 2013057977 A1 WO2013057977 A1 WO 2013057977A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual machine
playback
program
decryption
encryption
Prior art date
Application number
PCT/JP2012/063121
Other languages
English (en)
French (fr)
Inventor
龍 智明
Original Assignee
三菱電機株式会社
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 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to DE112012004368.5T priority Critical patent/DE112012004368T5/de
Priority to US14/236,308 priority patent/US9020331B2/en
Priority to JP2013539549A priority patent/JP5615445B2/ja
Priority to CN201280051355.2A priority patent/CN103890848B/zh
Publication of WO2013057977A1 publication Critical patent/WO2013057977A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2541Blu-ray discs; Blue laser DVR discs

Definitions

  • the present invention relates to a video information playback method and a video information playback apparatus for playing back video from a recording medium on which virtual machine-based content capable of controlling playback of video by a program operating on a virtual machine is recorded. is there.
  • DVD player As a device for playing back video content such as movies and dramas.
  • a navigation command which is a relatively simple control language, is used.
  • BD Blu-ray disc
  • Java virtual machine is employed in order to enable viewing of complex and highly interactive content (see, for example, Patent Document 1). .
  • DVD playback data is composed of video data, audio data, graphic data, and video control data, and these data are superimposed on one file.
  • playback when playback is stopped (suspended or suspended) and then playback is started (resume playback), playback from the previous playback stop position is resumed with a waiting time of about several seconds.
  • a waiting time of about several seconds.
  • reproduction can be resumed from the reproduction stop position by reading out the management information file having a small data size from the optical disc again. As a result, the waiting time until restart of reproduction is short.
  • the present invention has been made to solve the above-described problems, and its purpose is to start normal and quick reproduction from a recording medium on which virtual machine-based content is recorded at the start of resume reproduction.
  • Video information reproducing method and video information reproducing apparatus capable of performing
  • the video information playback method is a video information playback method for playing back a recording medium on which virtual machine-based content capable of video playback control is recorded from a plurality of programs operating on a virtual machine,
  • a decryption auxiliary program that is one of a plurality of programs operating on the virtual machine is a numerical value from an encryption / decryption program that decrypts the encrypted virtual machine-based content.
  • the decryption auxiliary program executes a predetermined operation using the numerical value, and the encryption / decryption program decrypts the virtual machine utilization type content using the result of the operation, and the virtual machine utilization type Resume playback that is executed after the content playback is stopped halfway, and the instruction to resume playback is given.
  • a proxy program that operates in an environment other than the virtual machine is started, and the proxy program and the encryption / decryption program exchange data.
  • the video of the virtual machine utilization type content is executed.
  • a video information playback apparatus plays back a recording medium on which a virtual machine-based content capable of video playback control by a program operating on a virtual machine is recorded, and playback processing in the playback unit.
  • a playback control unit for controlling, and during normal playback of the virtual machine utilization type content the playback control unit operates on the virtual machine in the playback control unit and operates on the encryption / decryption control unit in the playback unit
  • the virtual machine usage type content is decrypted with an encryption / decryption program for decrypting the encrypted virtual machine usage type content, and the playback of the virtual machine usage type content is stopped halfway, At the start of resume playback to be executed after the instruction is given, the playback control unit operates on the virtual machine.
  • a proxy program that operates in an environment other than the virtual machine is started, and the proxy program and the encryption / decryption program exchange data, while It is characterized by executing video playback.
  • resume playback is performed by executing a proxy program that operates in an environment other than the virtual machine. Playback can be started normally and quickly from the recording medium on which the content is recorded.
  • FIG. 1 is a block diagram schematically showing a configuration of a video information reproducing apparatus according to an embodiment of the present invention. It is a figure which shows an example of the directory structure in the recording medium which concerns on embodiment of this invention. It is a figure which shows an example of the syntax of a plst file. It is a figure which shows an example of the relationship between a play list and a stream file. It is a figure which shows an example of the syntax of a clip file. Movie. It is a figure which shows an example of the syntax of a title file. It is a figure which shows an example of a structure of a jar file. It is FIG. (1) which shows the source code of a Java application program. It is FIG. (2) which shows the source code of a Java application program.
  • FIG. (3) which shows the source code of a Java application program.
  • (A) And (b) is a figure which shows an example of the graphic image displayed by a Java application. It is a figure which shows the syntax of the plst file which concerns on the video information reproduction method which concerns on embodiment of this invention. It is a figure which shows an example of the menu screen which concerns on embodiment of this invention. It is an operation
  • movement sequence diagram which shows the process in the video information reproduction method which concerns on embodiment of this invention. It is a flowchart which shows the process in the video information reproduction method which concerns on embodiment of this invention. It is a flowchart which shows the process in the video information reproduction method which concerns on embodiment of this invention. It is a flowchart which shows the process in the video information reproduction method which concerns on embodiment of this invention.
  • (A) And (b) is a timing diagram which shows the process of the reproduction
  • FIG. 1 is a block diagram schematically showing a configuration of a video information reproducing apparatus according to an embodiment of the present invention.
  • the video information playback apparatus controls the playback of the main video by an application program that runs on a virtual machine (hereinafter also referred to as “program that runs on a virtual machine” or “application”). It is possible to play back a recording medium on which content (virtual machine utilization type content) that can be recorded is recorded.
  • the recording medium on which such content is recorded is, for example, an optical disc such as a DVD, CD, or Blu-ray disc, but may be other media such as a nonvolatile semiconductor memory.
  • BD Blu-ray disc
  • Java registered trademark
  • the video information playback apparatus shown in FIG. 1 has a playback section 10 that plays back an optical disc (BD) 11 that is an example of a recording medium, and playback control that executes control of the entire apparatus and a Java application (a program that runs on a virtual machine).
  • a CPU 21 as a unit, and a nonvolatile memory 22.
  • the reproduction unit 10 includes a drive 12, an encryption / decryption processing CPU 18 as an encryption / decryption control unit, a demultiplexer 13, a video decoder 14, a caption decoder 15, an audio decoder 16, and a graphics superimposing unit 17.
  • the drive 12 reads information from the optical disk 11 and outputs this information to the encryption / decryption processing CPU 18.
  • the encryption / decryption processing CPU 18 decrypts the received information and outputs this information to the demultiplexer 13.
  • the demultiplexer 13 separates the data read by the drive 12 into video information, audio information, and caption graphic information.
  • the video decoder 14 decodes the video information
  • the subtitle decoder 15 decodes the subtitle graphic information
  • the audio decoder 16 decodes the audio information.
  • the graphics superimposing unit 17 superimposes the graphics information displayed by the Java application input from the CPU 21 on the decoded video information and the decoded subtitle graphic information.
  • the video signal output from the graphics superimposing unit 17 is sent to the external display device 31 and the external display device 31 displays the video.
  • the audio signal output from the audio decoder 16 is sent to the audio output device, and the audio is output by the audio output device.
  • the CPU 21 uses the Java application when a stop operation is performed during playback of the main video of the virtual machine using type content using the Java application, and resume playback is performed from the stop position. Then, it is possible to start reproduction and exchange data with the encryption / decryption processing CPU 18 (encryption / decryption application) (in the case of a comparative example shown in FIG. 17B described later). However, in such a reproduction method, the waiting time until the reproduction is started becomes long, and the convenience for the user is lowered.
  • FIG. 2 is a diagram showing an example of the configuration of files and directories that are recorded on the optical disc 11 and are necessary for BD playback.
  • a “Movie.title” file is a file in which information necessary for controlling a title, which is the highest playback unit, is described.
  • PLST is a PLST folder in which a file in which information necessary for playback control of a play list (PlayList) is described is stored.
  • a plurality of plst files “xxx.plst” exist in the PLST folder.
  • xxx is a three-digit number.
  • STREAM is a STREAM (stream) folder in which files necessary for reproduction such as video information, audio information, and graphics information are stored.
  • yyy is a three-digit number.
  • the stream file is composed of TS (transport stream) adopted in digital broadcasting, and is a file on which video information, audio information, and graphics information having a unique packet ID are superimposed.
  • CLIP is a CLIP folder in which a clip file in which information necessary for playback control of a stream file is described is stored.
  • a plurality of clip files “zzz.clip” exist in the CLIP folder.
  • “zzz” is a three-digit number.
  • the clip file and the stream file have a one-to-one correspondence.
  • the clip file “123.clip” exists in the CLIP folder
  • the stream corresponding to “123.clip” exists in the STREAM folder.
  • the file “123.strm” exists.
  • JAR is a JAR (Java Archive) folder that stores an application that operates on a Java virtual machine and performs title playback control.
  • the JAR folder there is a jar file “ ⁇ .jar” obtained by compressing a set of files necessary for running a Java application into a ZIP format.
  • “ ⁇ ” is a three-digit number.
  • a “Decrypt.prg” file is a file that stores a program for decrypting encrypted content. The detailed operation of the “Decrypt.prg” file will be described later.
  • FIG. 3 is a diagram showing an example of the syntax of the plst file “xxx.plst” in FIG.
  • number_of_stream indicates the total number of stream files that are reproduced in the playlist (PlayList). The next “for” and subsequent loops are repeated as many as “number_of_stream”.
  • stream_file_name in this loop describes the file name of the stream file to be reproduced.
  • in_time and “out_time”, the start time and the end time of the part to be reproduced of the stream file are described. These times are described in a PTS (Presentation Time Stamp) added to the stream file packet.
  • PTS Presentation Time Stamp
  • FIG. 4 is a diagram illustrating an example of the relationship between the playlist (PlayList) and the stream file indicated by the plst file in FIG.
  • the portion from “in_time” to “out_time” of “001.strm” and the portion from “in_time” to “out_time” of “003.strm” are sequentially played back. .
  • FIG. 5 is a diagram showing an example of the syntax of the clip file “zzz.clip” in FIG.
  • superimposition information such as video information and audio information of a stream file paired therewith, and index information necessary for random access are described.
  • stream_info () attribute information of the superimposed video information, audio information, and graphics information is described.
  • index_info () describes time information and position information at the head of each GOP of the stream file.
  • Numberer_of_GOP indicates the total number of GOPs (Group of Pictures) included in the stream file. The next for loop is repeated as many as “number_of_GOP”.
  • Start_PTS indicates PTS information included in the I picture at the head of the GOP.
  • Relative_byte indicates the relative number of bytes from the top of the stream file to the top of the I picture.
  • FIG. 6 is a diagram illustrating an example of the syntax of the “Movie.title” file.
  • the drive 12 first reads a “Movie.title” file from the optical disk 11 under the control of the CPU 21.
  • “number_of_title” is the total number of titles recorded on the optical disc 11.
  • the next for loop is a loop that is repeated by the number “number_of_title”.
  • “Title_type” is set to “1” in the case of title content using the Java application, and is set to “0” in the case of title content not using the Java application.
  • “Title_attribute” is set to “1” when the title is a title for menu screen display, and is set to “0” when the title is not a title for menu screen display.
  • “title_type” is “1”
  • the jar file name is, for example, “123.jar”.
  • a play list file to be reproduced is described when “title_type” is “0”.
  • the play list file to be reproduced is, for example, “123.plst”.
  • “next_title_id” “title_id” to be reproduced next after the reproduction of the currently reproduced title is described.
  • FIG. 7 is a diagram showing an example of the configuration of “001.jar” corresponding to the jar file in the JAR folder of FIG.
  • the “001.jar” file includes three files “test_img.png”, “test.class”, and “test $ timer.class”.
  • Test_img.png is a file obtained by compressing image data used in this application in the PNG format.
  • Test.class and “test $ timer.class” are execution files obtained by compiling a Java application into an execution format. The operation of “test.class” and “test $ timer.class” will be described below using source code before compilation.
  • FIG. 8 to FIG. 10 are diagrams showing a series of source codes before compiling “test.class” and “test $ timer.class”.
  • test.class the source code shown in FIGS. 8 to 10
  • test $ timer.class the source code shown in FIGS. 8 to 10
  • the T1 part of the source code shown in FIG. 8 is a part for importing a package necessary for executing the application.
  • “Org.disc.net.DiscLocator” is a package unique to the present embodiment prepared for playlist playback because playback of playlists is not supported in Java.
  • the T2 portion of the source code shown in FIG. 8 is a portion where variables are declared. I_POS [] [] The following description indicates the coordinate information of the image data “test_img.png” displayed using the Java application.
  • FIGS. 11A and 11B are diagrams illustrating an example of an image displayed using a Java application.
  • FIG. 11A is a schematic diagram of an image represented by “test_img.png”, and (Xn, Yn) represents coordinate values on the memory.
  • This means that a square part having the coordinates (X1, Y1) (128, 128) as the vertex (two vertices existing on the diagonal line) is cut out and displayed. That is, the image “1” in FIG. 11A is displayed.
  • the image display mode (FIG. 11B) shown in FIG. 11A will be described later.
  • the T3 portion of the source code shown in FIG. 9 is a portion that reads “test_img.png” and decodes the PNG file. After decoding of the T3 part is completed, the process proceeds to the T4 part of the source code.
  • the T4 to T6 portions of the source code are portions for playing back a play list (PlayList) such as a trailer that is played before the menu screen is displayed.
  • PlayList a play list
  • iPlayListID is the file name of the playlist to be played back, and since “iPlayListID” is described as “0” in the T4 part of the source code, the file name “000.plst”. "Playlist playback" is executed.
  • FIG. 12 is a diagram showing the syntax of the plst file according to the video information reproducing method according to the embodiment of the present invention.
  • the operation of the CPU 21 when the reproduction of the playlist “000.plst” is controlled by executing the process of the T4 part of the source code will be described.
  • the Java control unit in the CPU 21 confirms the playback time of the playlist “000.plst” with respect to the playlist playback unit in the CPU 21 at regular intervals. .
  • the playlist playback unit notifies the current playback time of the playlist in response to a confirmation request from the Java control unit.
  • the Java control unit recognizes that the playback of the playlist “000.plst” has been completed, The processing of the next T5 part is executed, and the play list “001.plst” is reproduced in the same sequence.
  • the T7 part of the source code is the source code for executing the process for displaying the menu screen after executing the process of the T4 part to the T6 part (after displaying the playlist such as the trailer).
  • the T7 part is not related to the essence of the present invention and is not described in detail.
  • FIG. 13 is a diagram showing a menu screen displayed by executing the process of the T7 part of the source code.
  • the menu screen shown in FIG. 13 has three selectable buttons, and can selectively reproduce any of the three main video images by operating any of the three buttons. In the present embodiment, an operation when the leftmost “main part 1” is selected will be described.
  • FIG. 10 is a diagram showing source code for executing reproduction of a playlist that constitutes the main part 1.
  • the process of the T8 part of the source code shown in FIG. 10 is executed.
  • the portion T8 displays a graphic image of the Java application shown in FIG. 11A while reproducing the playlist “003.plst”.
  • the images “1” to “30” shown in FIG. 11A are superimposed on the playlist video 40 specified by “003.plst”, and are moved from the top to the bottom of FIG. 11B.
  • “Scene No. 1” to “Scene No. 15” displayed side by side are sequentially displayed every second.
  • the graphics screens “1” to “30” shown in FIG. 11A generated by the CPU 21, the output screen of the video decoder 14, and the output screen of the caption decoder 15 are combined into the graphics superimposing unit 17.
  • the image signal of the superimposed image is output to the external display device 31.
  • the Java application As described above, by using the Java application, it is possible to reproduce complicated video such as simultaneously displaying various graphic images on the main video.
  • the Java application is described so as to decode the PNG file used for displaying the graphic image in the T3 portion of the source code before the reproduction is started. This is because the decoding process of PNG data and JPEG data is a very heavy process for the CPU specialized for the playback device, and if the decoding is performed while executing the Java application, the graphics display is smooth. This is because it cannot be executed. For this reason, there is a waiting time of several tens of seconds to several minutes from when the user gives an instruction to start playback until the decoding of the PNG file or the like is completed and the playback video is actually displayed.
  • the video information playback apparatus does not operate the Java application and resumes playback as a playlist that does not use the Java application (also called “simple resume playback”). Say). Thereby, the reproduction can be started promptly at the start of the resume reproduction.
  • “1” to “30” graphics are not displayed.
  • the main video from the video decoder 14 and the audio from the audio decoder 16 are reproduced. .
  • video, audio, and subtitles can be displayed even if the Java application is not operating, and the contents of the content Can be fully understood.
  • FIG. 14 is a sequence diagram at the time of normal reproduction showing the exchange of data between the encryption / decryption processing CPU 18 and the CPU 21.
  • “numerical value A” is delivered from the encryption / decryption application of the encryption / decryption processing CPU 18 to the Java application of the CPU 21.
  • the “numerical value A” is a value generated as a result of processing in the encryption / decryption application of the encryption / decryption processing CPU 18 and is an unspecified value.
  • the Java application of the CPU 21 calculates the predetermined function F (A) using the received “numerical value A”.
  • the “numerical value B” that is the calculation result of the function F (A) is delivered to the encryption / decryption application of the encryption / decryption processing CPU 18.
  • the decryption process is performed using the “numerical value B” that is the operation result.
  • the exchange of the above data is periodically performed, whereby the encrypted content is decrypted.
  • the data exchange between the Java application of the CPU 21 and the encryption / decryption application of the encryption / decryption processing CPU 18 is a one-to-one exchange of “numerical value A” and “numerical value B”.
  • number A and “numerical value B” are not limited to one-to-one data exchange.
  • the encryption / decryption application of the encryption / decryption processing CPU 18 passes “numerical value A” and “numerical value C” to the Java application of the CPU 21, and the Java application of the CPU 21 encrypts the operation result of the function F (A, C) as “numerical value B”. It may be a two-to-one exchange of data such as returning to the encryption / decryption application of the decryption processing CPU 18.
  • a method for normally decrypting encrypted content without starting a Java application at the start of resume playback will be described.
  • a predetermined function F (A) is calculated.
  • This function F (A) can grasp the calculation contents by analyzing a JAR file. is there.
  • the calculation contents in the Java application can be replaced with a language other than Java. That is, by performing an arithmetic operation equivalent to the function F (A) using a C language or the like that operates natively on the CPU 21 and performing a proxy operation, the encryption can be performed even at the start of resume playback where the Java application does not start.
  • the decrypted data can be decrypted.
  • FIG. 15 is a flowchart showing processing in the Java application of the CPU 21 when detecting exchange of numerical values performed between the Java application of the CPU 21 and the encryption / decryption application of the encryption / decryption processing CPU 18 during normal playback.
  • the Java application of the CPU 21 monitors whether or not there is exchange of numerical values (reception of numerical values and delivery of numerical values) with the encryption / decryption application of the encryption / decryption processing CPU 18 (step S1).
  • the Java application of the CPU 21 receives an instruction to stop playback (NO in step S1) when there is no exchange of numerical values with the encryption / decryption application (YES in step S2), the flag “crypt_flag” is set to “0”. (Step S3).
  • step S1 When the Java application of the CPU 21 detects provision of a numerical value from the encryption / decryption application of the encryption / decryption processing CPU 18 (YES in step S1), the flag “crypt_flag” is set to “1” (step S4), and an instruction to stop playback is issued. When received (YES in step S5), the process is stopped.
  • “crypt_flag” is a flag that is set to “1” when a numerical value is transferred from the encryption / decryption application of the encryption / decryption processing CPU 18, and is set to “0” when there is no value, and the CPU 21 Information stored in the work memory. If it is necessary to store this information even after the video information reproducing apparatus is powered off, it is necessary to store this information in the nonvolatile memory 22.
  • FIG. 16 is a flowchart showing an encryption / decryption process at the start of resume reproduction.
  • the CPU 21 checks whether or not the value of the flag “crypt_flag” is set to “1” (step S11).
  • the value of the “flag crypto_flag” is not set to “1” (NO in step S11)
  • the content is not exchanged between the Java application and the encryption / decryption application, and therefore the encryption / decryption processing CPU 18 Normal resume reproduction (resume reproduction without using a proxy application) without encryption / decryption by the encryption / decryption application is performed (step S16).
  • the Java application of the CPU 21 monitors the delivery of “numerical value A” from the encryption / decryption application of the encryption / decryption processing CPU 18 (step S12).
  • the function F in the proxy application is equivalent to the arithmetic processing F (A) of the Java application and is described as a proxy program written in the C language.
  • the proxy calculation of the Java application is executed using the calculation process of (A) (step S13).
  • the proxy application of the CPU 21 delivers the result calculated by the function F ′ (A) to the encryption / decryption application of the encryption / decryption processing CPU 18 (step S14).
  • the proxy application of the CPU 21 performs the decryption processing of the encrypted content by repeating the processing from step S12 to S14 (step S15).
  • the Java application Resume playback is started by operating a proxy application, which is a simpler program than the Java application, without operating immediately.
  • the proxy application executes numerical value exchange with the encryption / decryption application of the encryption / decryption processing CPU 18 and decrypts the encrypted data. Normal reproduction can be started immediately after the instruction. Since the proxy application is executed by the proxy application that runs natively on the CPU 21 and decrypts the encrypted data, the resume playback can be normally started immediately after the resume playback instruction. .
  • FIG. 17 (a) and 17 (b) are timing charts showing the content reproduction start processing in the video information reproduction methods of Comparative Examples 1 and 2, respectively.
  • FIG. 18 is a video information reproduction method according to the present embodiment. It is a timing diagram which shows the process of the reproduction start of the content in.
  • a video information playback method (Comparative Example 1) that shortens the time to start playback by treating content using a Java application as content that does not use a Java application, as shown in FIG.
  • normal playback is interrupted at time t0
  • playback (function-restricted playback) starts immediately after the playback start operation is performed at time t1
  • normal playback is started at time t2 after the Java application startup preparation is completed. Transition.
  • some virtual machine-based content when decrypting encrypted video data and audio data, data is exchanged between the encryption / decryption application and the Java application, so that the encryption decryption process is performed. There is a case (Comparative Example 2).
  • the normal application is interrupted at time t0 and the proxy application is started immediately after the playback start operation is performed at time t1.
  • Resume playback is started from time t22 when the preparation for starting the proxy application is completed, and normal playback is started at time t23 after completion of preparation for starting the Java application.
  • the Java application is not operated immediately. Since the encrypted data is decrypted by operating the proxy application that is a simpler program and performing the resume playback, the playback can be normally started immediately after the resume playback instruction.
  • the proxy application is a program that includes the minimum components necessary for starting resume playback, and is a program that can start operating in a shorter time than a Java application.
  • FIG. 19 is a flowchart showing processing improved from FIG. In FIG. 19, the same steps as those in FIG. 16 are denoted by the same reference numerals.
  • processing is performed as follows. First, when the CPU 21 detects exchange of numerical values between the Java application and the encryption / decryption application (YES in step S1), the CPU 21 sets the value of the flag “crypt_flag” to 1 (step S4), and sets the numerical value between the encryption / decryption application and the numerical value.
  • the JAR file including the Java application that exchanges the above is analyzed, and the fixed value included in the function F (A) is searched (step S20).
  • the fixed value detected here is a value held on the work memory of the CPU 21 like the flag “crypt_flag”. If this value needs to be stored even after the power is turned off, the fixed value is stored in the nonvolatile memory 22. Hold.
  • the process at the start of resume reproduction is the same as the process shown in FIG. 16, but in the execution of the proxy calculation in step S13 in FIG. 16, the calculation of F ′ (A) is performed using the fixed value obtained above. Need to run.
  • the case where there is one fixed value has been described, but there may be a plurality of fixed values.
  • the fixed value used in the function F (A) is different for each optical disc, the fixed value is searched from the jar file before the simple reproduction is started, and the searched fixed value is used.
  • the function F ′ (A) By performing the calculation of the function F ′ (A), it is possible to decrypt the encrypted data and reproduce it normally.

Abstract

 レジューム再生の開始時に、ユーザーの利便性が確保できる映像情報再生方法及び映像情報再生装置であって、この映像情報再生方法は、仮想マシン利用型コンテンツが記録された記録媒体を再生する方法であって、仮想マシン利用型コンテンツの通常再生時には、仮想マシン上で動作するプログラムと暗号化された仮想マシン利用型コンテンツの復号を行う暗号復号プログラムとが、データのやり取りを行いながら、仮想マシン利用型コンテンツの復号処理を行い、仮想マシン利用型コンテンツの再生を途中停止した後、再生開始の指示がなされた後に実行されるレジューム再生の開始時には、仮想マシン上で動作するプログラムの代わりに代理プログラムを起動させ、代理プログラムと暗号復号プログラムとが、データのやり取りを行いながら、仮想マシン利用型コンテンツの映像の再生を実行する。

Description

映像情報再生方法及び映像情報再生装置
 本発明は、仮想マシン上で動作するプログラムにより映像の再生を制御することが可能な仮想マシン利用型コンテンツが記録された記録媒体から映像を再生する映像情報再生方法及び映像情報再生装置に関するものである。
 映画やドラマなどの映像コンテンツを再生する機器として、DVDプレーヤーがある。DVDプレーヤーにおいて映像の再生を制御するために、比較的単純な制御用の言語であるナビゲーション・コマンドが利用されている。一方、近年普及し始めているBlu-rayディスク(BD)プレーヤーにおいては、複雑でインタラクティビティの高いコンテンツを視聴できるようにするために、Java仮想マシンが採用されている(例えば、特許文献1参照)。
 DVDの再生データは、映像データ、音声データ、グラフィックデータ、映像制御データから構成されており、これらのデータは、1本のファイルに重畳されている。DVDプレーヤーにおいて、再生を停止(中断又はサスペンド)し、その後、再生開始(レジューム再生)の操作がされた場合、数秒程度の待ち時間で、前回の再生停止位置からの再生が再開される。この場合、映像データや音声データなどの再生に必要なデータが1本のファイルにすべて重畳されているので、データサイズが小さい管理情報ファイルを光ディスクから再度読み出すことによって再生停止位置から再生を再開でき、その結果、再生再開までの待ち時間は短い。
 しかし、Blu-rayディスク(BD)のJavaアプリケーションを利用したコンテンツ(Java仮想マシン利用型コンテンツ)の再生においては、再生を停止した後、レジューム再生の操作がされた場合、BDを映像情報再生装置に挿入した初期状態から再生動作を行うことになるため、仮想マシン上で動作するプログラムであるJavaアプリケーションを再起動しなければならず、前回の再生停止位置から再生が再開されるまでに、数十秒から数分の時間を要する。これを回避するために、Javaアプリケーションを利用したコンテンツを、Javaアプリケーションを利用しないコンテンツとして扱うことで、再生再開までの時間を短縮する方法も考えられる。
特開2009-193642号公報
 しかし、一部の仮想マシン利用型コンテンツにおいて、暗号化された映像データや音声データを復号する際に、暗号復号アプリケーションとJavaアプリケーションとの間でデータのやり取りを行うことで、暗号の復号処理を行っている場合がある。このようなコンテンツにおいて、Javaアプリケーションを起動させずにレジューム再生を行った場合、映像データや音声データの暗号化を解除することができなくなるため、結局、Javaアプリケーションを再起動しなければならない。このため、BDプレーヤーにおけるレジューム再生の開始時には、ユーザーの利便性が大きく損なわれるという問題があった。
 本発明は、上記の課題を解決するためになされたものであり、その目的は、レジューム再生の開始時に、仮想マシン利用型コンテンツが記録された記録媒体から、正常且つ迅速に再生を開始することができる映像情報再生方法及び映像情報再生装置を提供することである。
 本発明に係る映像情報再生方法は、仮想マシン上で動作する複数のプログラムから映像の再生制御が可能な仮想マシン利用型コンテンツが記録された記録媒体を再生する映像情報再生方法であって、前記仮想マシン利用型コンテンツの通常再生時には、前記仮想マシン上で動作する複数のプログラムの一つである復号化補助プログラムが、暗号化された前記仮想マシン利用型コンテンツの復号を行う暗号復号プログラムから数値を受け取り、前記復号化補助プログラムは前記数値を使い所定の演算を実行し、前記演算の結果を利用して前記暗号復号プログラムが前記仮想マシン利用型コンテンツの復号処理を行い、前記仮想マシン利用型コンテンツの再生を途中停止した後、再生再開の指示がなされた後に実行されるレジューム再生の開始時には、前記仮想マシン上で動作する前記復号化補助プログラムの代わりに前記仮想マシン上以外の環境で動作する代理プログラムを起動させ、前記代理プログラムと前記暗号復号プログラムとが、データのやり取りを行いながら、前記仮想マシン利用型コンテンツの映像の再生を実行することを特徴としている。
 本発明に係る映像情報再生装置は、仮想マシン上で動作するプログラムによる映像の再生制御が可能な仮想マシン利用型コンテンツが記録された記録媒体を再生する再生部と、前記再生部における再生処理を制御する再生制御部とを有し、前記仮想マシン利用型コンテンツの通常再生時には、前記再生制御部における前記仮想マシン上で動作する前記復号化補助プログラムと前記再生部内の暗号復号制御部上で動作する暗号化された前記仮想マシン利用型コンテンツの復号を行う暗号復号プログラムとで、前記仮想マシン利用型コンテンツの復号処理を行い、前記仮想マシン利用型コンテンツの再生を途中停止した後、再生開始の指示がなされた後に実行されるレジューム再生の開始時には、前記再生制御部において前記仮想マシン上で動作する前記復号化補助プログラムの代わりに前記仮想マシン上以外の環境で動作する代理プログラムを起動させ、前記代理プログラムと前記暗号復号プログラムとが、データのやり取りを行いながら、前記仮想マシン利用型コンテンツの映像の再生を実行することを特徴としている。
 本発明によれば、仮想マシン上で動作するプログラムの代わりに、前記仮想マシン上以外の環境で動作する代理プログラムを実行させることでレジューム再生を行うので、レジューム再生の開始時に、仮想マシン利用型コンテンツが記録された記録媒体から、正常且つ迅速に再生を開始することができる。
本発明の実施の形態に係る映像情報再生装置の構成を概略的に示すブロック図である。 本発明の実施の形態に係る記録媒体におけるディレクトリ構成の一例を示す図である。 plstファイルのシンタックスの一例を示す図である。 プレイリストとstreamファイルとの関係の一例を示す図である。 clipファイルのシンタックスの一例を示す図である。 Movie.titleファイルのシンタックスの一例を示す図である。 jarファイルの構成の一例を示す図である。 Javaアプリケーションプログラムのソースコードを示す図(その1)である。 Javaアプリケーションプログラムのソースコードを示す図(その2)である。 Javaアプリケーションプログラムのソースコードを示す図(その3)である。 (a)及び(b)は、Javaアプリケーションにより表示されるグラフィック画像の一例を示す図である。 本発明の実施の形態に係る映像情報再生方法に係るplstファイルのシンタックスを示す図である。 本発明の実施の形態に係るメニュー画面の一例を示す図である。 本発明の実施の形態に係る映像情報再生方法における処理を示す動作シーケンス図である。 本発明の実施の形態に係る映像情報再生方法における処理を示すフローチャートである。 本発明の実施の形態に係る映像情報再生方法における処理を示すフローチャートである。 (a)及び(b)はそれぞれ、比較例1及び2の映像情報再生方法におけるコンテンツの再生開始の処理を示すタイミング図である。 本実施の形態に係る映像情報再生方法におけるコンテンツの再生開始の処理を示すタイミング図である。 本発明の実施の形態に係る映像情報再生方法における処理の他の例を示すフローチャートである。
 図1は、本発明の実施の形態に係る映像情報再生装置の構成を概略的に示すブロック図である。本実施の形態に係る映像情報再生装置は、仮想マシン上で動作するアプリケーションプログラム(以下「仮想マシン上で動作するプログラム」、又は、「アプリケーション」とも言う。)により本編映像の再生を制御することが可能なコンテンツ(仮想マシン利用型コンテンツ)を記録した記録媒体を再生するものである。このようなコンテンツを記録した記録媒体は、例えば、DVD、CD、Blu-rayディスクなどの光ディスクであるが、不揮発性半導体メモリなどの他の媒体であってもよい。なお、本実施の形態においては、記録媒体がBlu-rayディスク(BD)であり、仮想マシンがJava(登録商標)仮想マシンである場合を説明する。
 図1に示す映像情報再生装置は、記録媒体の一例である光ディスク(BD)11を再生する再生部10と、装置全体の制御及びJavaアプリケーション(仮想マシン上で動作するプログラム)を実行する再生制御部としてのCPU21と、不揮発メモリ22とを有する。再生部10は、ドライブ12と、暗号復号制御部としての暗号復号処理CPU18と、デマルチプレクサ13と、ビデオデコーダ14と、字幕デコーダ15と、オーディオデコーダ16と、グラフィックス重畳部17とを有する。
 ドライブ12は、光ディスク11から情報を読み出し、この情報を暗号復号処理CPU18に出力する。暗号復号処理CPU18は、受け取った情報を復号し、この情報を、デマルチプレクサ13に出力する。デマルチプレクサ13は、ドライブ12により読み出されたデータを、映像情報、音声情報、字幕グラフィック情報に分離する。ビデオデコーダ14は、映像情報をデコードし、字幕デコーダ15は、字幕グラフィック情報をデコードし、オーディオデコーダ16は、音声情報をデコードする。グラフィックス重畳部17は、デコードされた映像情報及びデコードされた字幕グラフィック情報に、CPU21から入力されるJavaアプリケーションにより表示されるグラフィックス情報を重畳する。グラフィックス重畳部17から出力される映像信号は、外部表示装置31に送られ、外部表示装置31によって映像が表示される。オーディオデコーダ16から出力される音声信号は、音声出力装置に送られ、音声出力装置によって音声が出力される。
 本実施の形態に係る映像情報再生装置において、CPU21は、Javaアプリケーションを利用した仮想マシン利用型コンテンツの本編映像の再生中に停止操作がされ、停止位置からレジューム再生を行う場合、Javaアプリケーションを利用して、再生を開始し、暗号復号処理CPU18(暗号復号アプリケーション)とデータのやり取りを行うことは可能である(後述する、図17(b)の比較例の場合)。しかし、このような再生方法では、再生開始までの待ち時間が長くなり、ユーザーの利便性が低下する。そこで、本実施の形態に係る映像情報再生装置及び方法では、仮想マシン利用型コンテンツの再生を途中停止した後、再生再開の指示がなされた後に実行されるレジューム再生の開始時には、仮想マシン上で動作するプログラムであるJavaアプリケーションの代わりに前記仮想マシン上以外の環境で動作する代理プログラムとしての代理アプリケーションを起動させ、この代理アプリケーションと暗号復号プログラムとが、データのやり取りを行いながら、仮想マシン利用型コンテンツの映像の再生を実行することで、レジューム再生の開始時において正常な再生を実現する。
 図2は、光ディスク11に記録されている、BDの再生に必要なファイルとディレクトリの構成の一例を示す図である。図2において、“Movie.title”ファイルは、最上位の再生単位であるタイトルの制御に必要な情報が記述されたファイルである。図2において、“PLST”は、プレイリスト(PlayList)の再生制御に必要な情報が記述されたファイルが格納されているPLSTフォルダである。PLSTフォルダ内には、plstファイル“xxx.plst”が複数存在する。ここで、“xxx”は、3桁の数字である。図2において、“STREAM”は、映像情報、音声情報、グラフィックス情報などの再生に必要なファイルが格納されているSTREAM(ストリーム)フォルダである。STREAMフォルダ内には、streamファイル“yyy.strm”が複数存在する。ここで、“yyy”は、3桁の数字である。なお、streamファイルは、デジタル放送で採用されているTS(トランスポートストリーム)から構成され、固有のパケットIDを持つ映像情報、音声情報、グラフィックス情報が重畳されたファイルである。図2において、“CLIP”は、streamファイルの再生制御に必要な情報が記述されたclipファイルが格納されているCLIPフォルダである。CLIPフォルダ内には、clipファイル“zzz.clip”が複数存在する。ここで、“zzz”は、3桁の数字である。clipファイルとstreamファイルとは、1対1に対応しており、例えば、CLIPフォルダ内にclipファイル“123.clip”が存在する場合、STREAMフォルダ内には、“123.clip”に対応するstreamファイル“123.strm”が存在する。図2において、“JAR”は、Java仮想マシン上で動作する、タイトル再生制御を行うアプリケーションが格納されたJAR(Java Archive)フォルダである。JARフォルダ内には、Javaのアプリケーションを動かすために必要なファイル一式をZIP形式に圧縮したjarファイル“¥¥¥.jar”が存在する。ここで、“¥¥¥”は、3桁の数字である。図2において、“Decrypt.prg”ファイルは、暗号化されたコンテンツを復号するためのプログラムが格納されたファイルである。“Decrypt.prg”ファイルの詳細な動作については、後で説明を行う。
 図3は、図2のplstファイル“xxx.plst”のシンタックスの一例を示す図である。図3において、“number_of_stream”は、プレイリスト(PlayList)の中で再生されるstreamファイルの総数を示す。次の“for”以下のループは、“number_of_stream”の数だけ繰り返される。また、このループ内の“stream_file_name”には、再生対象となるstreamファイルのファイル名が記述される。また、“in_time”及び“out_time”には、streamファイルの再生対象となる部分の開始時刻と終了時刻が記述される。これらの時刻は、streamファイルのパケットに付加されたPTS(Presentation Time Stamp)に記述される。
 図4は、図2のplstファイルが示すプレイリスト(PlayList)とstreamファイルとの関係の一例を示す図である。図4に示すプレイリストの再生においては、“001.strm”の“in_time”から“out_time”までの部分と、“003.strm”の“in_time”から“out_time”までの部分が順次再生される。
 図5は、図2のclipファイル“zzz.clip”のシンタックスの一例を示す図である。図5において、clipファイルには、これと対をなすstreamファイルの映像情報、音声情報などの重畳情報や、ランダムアクセスなどに必要なインデックス情報が記述される。“stream_info()”には、重畳された映像情報、音声情報、グラフィックス情報の属性情報が記述される。ただし、“stream_info()”は、本発明とは、直接関係しないため、詳細に説明していない。また、“index_info()”には、streamファイルの各GOPの先頭の時間情報及び位置情報が記述される。“number_of_GOP”は、streamファイル中に含まれるGOP(Group of Picture)の総数を示す。次のforループは、“number_of_GOP”の数だけ繰り返される。“start_PTS”は、GOP先頭のIピクチャーが持つPTS情報を示す。“relative_byte”は、streamファイルの先頭からIピクチャーの先頭までの相対バイト数を示す。
 図6は、“Movie.title”ファイルのシンタックスの一例を示す図である。光ディスク11がドライブ12に挿入されると、CPU21の制御に従って、ドライブ12は、先ず、光ディスク11から“Movie.title”ファイルを読み出す。図6において、“number_of_title”は、光ディスク11に記録されているタイトルの総数である。次のforループは、“number_of_title”の数だけ繰り返されるループである。“title_type”は、Javaアプリケーションを利用したタイトルコンテンツの場合、“1”に設定され、Javaアプリケーションを利用しないタイトルコンテンツの場合、“0”に設定される。“title_attribute”は、当該タイトルが、メニュー画面表示用のタイトルである場合、“1”に設定され、メニュー画面表示用のタイトルでない場合、“0”に設定される。次のif文においては、“title_type”が“1”のときに、Javaアプリケーションが格納されたjarファイル名が記述される。jarファイル名は、例えば、“123.jar”となる。次のelse文においては、“title_type”が“0”のときに、再生されるプレイリストのファイルが記述される。再生されるプレイリストのファイルは、例えば、“123.plst”となる。“next_title_id”には、現在再生しているタイトルの再生終了後、次に再生すべき“title_id”が記述される。
 CPU21は、ドライブ12によって光ディスク11から読み出された“Movie.title”ファイルに基づいて、先頭に記述されたtitle情報に従って処理を行う。ここで、
title_type=1
title_attribute=0
の場合、当該タイトルは、Javaアプリケーションを利用したタイトルコンテンツであることから、CPU21は、使用するJavaアプリケーションが格納されたファイル(例えば、“001.jar”)を読出し、解析を行う。
 図7は、図2のJARフォルダ内のjarファイルに相当する“001.jar”の構成の一例を示す図である。図7において、“001.jar”ファイルは、“test_img.png”、“test.class”、及び“test$timer.class”の3つのファイルにより構成されている。“test_img.png”は、このアプリケーションで使用する画像データをPNGフォーマットで圧縮したファイルである。“test.class”及び“test$timer.class”は、Javaアプリケーションを実行形式にコンパイルした実行ファイルである。以下、コンパイル前のソースコードを使って“test.class”及び“test$timer.class”の動作を説明する。
 図8乃至図10は、“test.class”及び“test$timer.class”のコンパイル前の一連のソースコードを示す図である。以下、図8乃至図10に示すソースコードに基づく映像情報再生装置の動作について説明する。
 図8に示すソースコードのT1部は、アプリケーションの実行に必要なパッケージをインポートする部分である。“org.disc.net.DiscLocator”は、Javaではプレイリストの再生は、サポートされていないため、プレイリスト再生のために用意された本実施の形態に固有のパッケージである。
 図8に示すソースコードのT2部は、変数を宣言している部分である。I_POS[][]以下の記述は、Javaアプリケーションを利用して表示される画像データ“test_img.png”の座標情報を示す。
 図11(a)及び(b)は、Javaアプリケーションを利用して表示される画像の一例を示す図である。図11(a)は、“test_img.png”により表される画像の模式図であり、(Xn,Yn)は、メモリ上の座標値を表している。ここで、図8に示すソースコードのT2部に示すI_POS[][]における{0,0,128,128}の座標情報は、(X0,Y0)=(0,0)で示される座標と(X1,Y1)=(128,128)で示される座標とを頂点(対角線上に存在する2つの頂点)とする正方形の部分を切り出して表示すること意味する。すなわち、図11(a)における「1」の画像が表示される。なお、図11(a)に示す画像の表示態様(図11(b))については、後述する。
 図9に示すソースコードのT3部は、“test_img.png”を読み込んで、PNGファイルのデコードを行う部分である。T3部のデコード完了後、処理はソースコードのT4部へ進む。ソースコードのT4部~T6部は、メニュー画面が表示されるまでに再生される、予告編等のプレイリスト(PlayList)の再生を実行する部分である。ここで、“iPlayListID”は、再生対象とするプレイリストのファイル名であり、ソースコードのT4部においては、“iPlayListID”は、“0”と記述されていることから、ファイル名“000.plst”のプレイリスト再生が実行される。同様に、ソースコードのT5部においては、“iPlayListID=1”と記述されていることから、“001.plst”のプレイリストの再生が実行され、ソースコードのT6部においては、“iPlayListID=2”と記述されていることから、“002.plst”のプレイリストの再生が実行される。ソースコードのT4部~T6部の各々において、プレイリストの再生が指示されると、ドライブ12において、光ディスク11から対応するプレイリストのデータが読み出される。読み出されたデータは、デマルチプレクサ13により、映像情報、音声情報、字幕グラフィックス情報に分離され、映像情報は、ビデオデコーダ14でデコードされ、音声情報は、オーディオデコーダ16でデコードされ、字幕グラフィックス情報は、字幕デコーダ15でデコードされる。
 図12は、本発明の実施の形態に係る映像情報再生方法に係るplstファイルのシンタックスを示す図である。ここで、ソースコードのT4部の処理を実行してプレイリスト“000.plst”の再生制御をする際のCPU21の動作について説明する。プレイリスト“000.plst”の再生が開始されると、CPU21内のJava制御部は、CPU21内のプレイリスト再生部に対してプレイリスト“000.plst”の再生時間を一定時間毎に確認する。プレイリストの再生中、プレイリスト再生部は、Java制御部からの確認の要求に対し、プレイリストの現在の再生時間を通知する。プレイリスト再生部から通知されるプレイリストの再生時間が、プレイリスト“000.plst”の最終時間と一致すると、Java制御部は、プレイリスト“000.plst”の再生が完了したと認識し、次のT5部の処理を実行し、同様のシーケンスでプレイリスト“001.plst”の再生を行う。
 ソースコードのT7部は、T4部~T6部の処理を実行した後(予告編等のプレイリスト表示した後)、メニュー画面を表示するための処理を実行するソースコードである。T7部は、本出願に係る発明の本質とは関係がないため、詳細には説明していない。
 図13は、ソースコードのT7部の処理を実行することにより表示されるメニュー画面を示す図である。図13に示すメニュー画面は、選択可能な3つのボタンを備え、3本の本編映像のいずれかを、3つのボタンのいずれかの操作によって、選択的に再生することができる。本実施の形態では、一番左の“本編1”が選択された時の動作について説明をする。
 図10は、本編1を構成するプレイリストの再生を実行するソースコードを示す図である。メニュー画面中の“本編1”のボタンが選択されると、図10に示すソースコードのT8部の処理が実行される。T8部は、プレイリスト“003.plst”の再生を行いながら、図11(a)に示すJavaアプリケーションのグラフィック画像を表示するものである。具体的には、図11(a)に示す「1」~「30」の画像が“003.plst”により指定されるプレイリスト映像40に重畳して、図11(b)の上から下に向けて並べて示される「シーンNo.1」~「シーンNo.15」ように、例えば、1秒毎に順次表示される。この際、CPU21により生成された図11(a)に示す「1」~「30」のグラフィックス画面と、ビデオデコーダ14の出力画面と、字幕デコーダ15の出力画面とが、グラフィックス重畳部17で重畳され、重畳された画像の画像信号が外部表示装置31に出力される。
 以上のようにして、Javaアプリケーションを利用することにより、本編映像上に種々のグラフィック画像を同時に表示する等の複雑な映像の再生を行うことができる。ここで、Javaアプリケーションは、再生開始前、ソースコードのT3部において、グラフィック画像表示に使用するPNGファイルのデコードを行うように記述されている。これは、PNGデータやJPEGデータのデコードのデコード処理は、再生装置に特化したCPUにとって非常に負荷の重い処理であり、Javaアプリケーションを実行しながらデコードを行うと、グラフィックスの表示がスムーズに実行できないためである。このため、ユーザーが再生開始を指示してから、PNGファイル等のデコードが完了し、実際に再生映像が表示されるまでに、数十秒から数分の待ち時間が発生する。
 ここで、Javaアプリケーションを利用したコンテンツの再生を中断し、レジューム再生を行う場合に生じる問題点について説明する。例えば、図11(a)に示す「15」の画像を表示した時点で再生が中断された場合、「15」の画像を表示した時点からレジューム再生をするには、「15」の画像を表示していた時点のCPU21の状態と、CPU21の外部メモリ(RAM)の情報を全て、フラッシュメモリなどの不揮発メモリに待避して保持することが必要である。しかし、映像再生機能を実現するための最低限のハードウェア機器で構成する民生用の装置においては、このような構成を採用することが難しい。このため、Javaアプリケーションを利用したレジューム再生を行う場合は、ソースコードのT1部~T3部の処理を再度実行した上で、プレイリストの先頭(「1」の表示画面)から再生を開始することとなり、ユーザーの利便性が大きく損なわれる。
 上記の問題を解消するため、本実施の形態に係る映像情報再生装置においては、Javaアプリケーションを動作させずに、Javaアプリケーションを利用しないプレイリストとして再生を開始するレジューム再生(「簡易レジューム再生」とも言う)を行う。これにより、レジューム再生の開始時に、速やかに再生を開始することができる。この場合、Javaアプリケーションが動作しないため、「1」~「30」のグラフィックスの表示は、行われないが、例えば、ビデオデコーダ14からの本編映像とオーディオデコーダ16からの音声は、再生される。一般的に市販されているような映画ソフトの場合、一部の機能が制限されるものの、Javaアプリケーションが動作していていなくても、映像、音声、字幕は、表示可能であり、コンテンツの内容は、十分に理解することができる。
 次に、CPU21のJavaアプリケーションと、暗号復号処理CPU18の暗号復号アプリケーションとの間のデータのやり取りで、暗号化されたコンテンツが復号される手順について説明する。暗号化されたstreamファイルを含むプレイリストが再生される場合において、復号アプリケーションが格納された“decrypt.prg”ファイルが、図2の暗号復号処理CPU18にロードされる。暗号復号処理CPU18上には、暗号復号アプリケーションを実行するための仮想マシン(Java仮想マシンとは、異なる仮想マシン)が実装されており、この仮想マシン上で暗号復号アプリケーションが実行される。仮想マシン上で暗号復号アプリケーションが実行されることで、暗号復号処理CPU18上でどのような演算処理が行われているか推測することが非常に困難なため、ハッキングを受けにくいというメリットがある。暗号復号アプリケーションがロードされると同時に、暗号復号アプリケーションとデータのやり取りを行うJavaアプリケーションを含むJARファイル“xxx.jar”がCPU21にロードされる。“xxx”は、プレイリスト再生のためにロードされたJARファイルの中に記述されているため、特に指定しない。
 図14は、暗号復号処理CPU18とCPU21との間の、データのやり取りを示した通常再生時のシーケンス図である。図14に示されるように、暗号復号処理CPU18の暗号復号アプリケーションから、“数値A”がCPU21のJavaアプリケーションに引き渡される。ここで“数値A”は、暗号復号処理CPU18の暗号復号アプリケーション内の処理の結果、生成される値であり、不特定の値である。
 次に、CPU21のJavaアプリケーションは、受け取った“数値A”を用いて、所定の関数F(A)の演算を行う。
 次に、関数F(A)の演算結果である“数値B”が、暗号復号処理CPU18の暗号復号アプリケーションに引き渡される。暗号復号処理CPU18の暗号復号アプリケーションでは、演算結果である“数値B”を用いて復号処理を行う。
 以上のデータのやり取りが、定期的に行われることで、暗号化されたコンテンツの復号処理が行われる。以上では、CPU21のJavaアプリケーションと暗号復号処理CPU18の暗号復号アプリケーションとの間のデータのやり取りが、“数値A”と“数値B”の1対1のデータのやり取りである場合を説明したが、“数値A”と“数値B”との対応は、1対1のデータのやり取りに限定されるものではない。例えば、暗号復号処理CPU18の暗号復号アプリケーションが“数値A”及び“数値C”をCPU21のJavaアプリケーションに引渡し、CPU21のJavaアプリケーションが関数F(A,C)の演算結果を“数値B”として暗号復号処理CPU18の暗号復号アプリケーションに返すといった、2対1のデータのやり取りであってもよい。
 以上は、Javaアプリケーションがロードされている通常再生時の動作であるが、レジューム再生の開始時には、Javaアプリケーションを起動させずに再生が行われる。Javaアプリケーションが起動していないと、暗号復号アプリケーションは、復号処理に必要な“数値B”を得ることができないため、正常に復号処理ができなくなり、映像や音声が正常に再生されない問題がある。
 以下、本実施の形態に係る映像情報再生方法及び映像情報再生装置において、レジューム再生の開始時に、Javaアプリケーションを起動させなくても、暗号化されたコンテンツを正常に復号する方法について説明する。暗号復号アプリケーションとデータのやりとりを行うJavaアプリケーションでは、所定の関数F(A)が演算されるが、この関数F(A)は、JARファイルを解析することで演算内容を把握することが可能である。また、Javaアプリケーション内の演算内容は、Java以外の言語に置き換えることも可能である。即ち、関数F(A)に等価な演算処理を、CPU21上でネイティブに動作するC言語等を使用して、代理演算をさせることで、Javaアプリケーションが起動しないレジューム再生の開始時においても、暗号化されたデータの復号処理が可能である。
 図15は、通常再生時にCPU21のJavaアプリケーションと暗号復号処理CPU18の暗号復号アプリケーションとの間で行われる数値のやり取りを検知する際の、CPU21のJavaアプリケーションにおける処理を示すフローチャートである。図15に示されるように、CPU21のJavaアプリケーションは、暗号復号処理CPU18の暗号復号アプリケーションとの数値のやり取り(数値の受取り、及び、数値の引渡し)があるかどうかをモニターする(ステップS1)。CPU21のJavaアプリケーションは、暗号復号アプリケーションとの数値のやり取りが無い(ステップS1においてNO)ときに、再生停止の指示を受けると(ステップS2のYES)、フラグ“crypt_flag”を“0”にセットする(ステップS3)。CPU21のJavaアプリケーションは、暗号復号処理CPU18の暗号復号アプリケーションからの数値の提供を検知すると(ステップS1でYES)、フラグ“crypt_flag”を“1”にセットし(ステップS4)、再生停止の指示を受けたときに(ステップS5においてYES)、処理を停止する。ここで、“crypt_flag”は、暗号復号処理CPU18の暗号復号アプリケーションから数値の受け渡しがあった場合は、“1”にセットされ、無かった場合は、“0”にセットされるフラグであり、CPU21のワークメモリ上に保持される情報である。映像情報再生装置の電源オフ後にもこの情報を記憶する必要がある場合には、不揮発メモリ22にこの情報を保持する必要がある。
 図16は、レジューム再生の開始時の暗号復号処理を示すフローチャートである。図16に示されるように、CPU21は、レジューム再生の開始の指示を受け取ると、フラグ“crypt_flag”の値が“1”にセットされているか否かを確認する(ステップS11)。“フラグcrypt_flag”の値が“1”にセットされていない(ステップS11においてNO)場合は、Javaアプリケーションと暗号復号アプリケーションとの間で数値のやり取りを行わないコンテンツであるため、暗号復号処理CPU18の暗号復号アプリケーションによる暗号復号を伴わない通常のレジューム再生(代理アプリケーションを使用しないレジューム再生)を行う(ステップS16)。フラグ“crypt_flag”の値が“1”にセットされている場合、CPU21のJavaアプリケーションは、暗号復号処理CPU18の暗号復号アプリケーションからの、“数値A”の引渡しを監視する(ステップS12)。CPU21のJavaアプリケーションは、暗号アプリケーションからの“数値A”の引渡しを検知すると、Javaアプリケーションの演算処理F(A)に等価で、且つ、C言語で記述された代理プログラムとしての代理アプリケーションにおける関数F′(A)の演算処理を用いてJavaアプリケーションの代理演算を実行する(ステップS13)。CPU21の代理アプリケーションは、関数F′(A)で演算された結果を、暗号復号処理CPU18の暗号復号アプリケーションに引渡す(ステップS14)。CPU21の代理アプリケーションは、ステップS12からS14までの処理を繰り返すことで、暗号化されたコンテンツの復号処理を行う(ステップS15)。
 以上に説明したように、本実施の形態においては、レジューム再生の開始時に、CPU21のJavaアプリケーションと暗号復号処理CPU18の暗号復号アプリケーションとの間で数値のやり取りを行うコンテンツであっても、Javaアプリケーションを直ぐに動作させずに、Javaアプリケーションよりも簡易なプログラムである代理アプリケーションを動作させてレジューム再生を開始する。このように、レジューム再生の指示を受けた直後においては、暗号復号処理CPU18の暗号復号アプリケーションとの数値のやり取りを、代理アプリケーションによって実行させ、暗号化されたデータを復号しているので、レジューム再生の指示の直後から正常に再生を開始することが可能となる。なお、代理アプリケーションは、CPU21上でネイティブに動作する代理アプリケーションによって実行させ、暗号化されたデータを復号しているので、レジューム再生の指示の直後から正常にレジューム再生を開始することが可能となる。
 以下に、本実施の形態の効果をより詳細に説明する。図17(a)及び(b)はそれぞれ、比較例1及び2の映像情報再生方法におけるコンテンツの再生開始の処理を示すタイミング図であり、図18は、本実施の形態に係る映像情報再生方法におけるコンテンツの再生開始の処理を示すタイミング図である。
 例えば、Javaアプリケーションを利用したコンテンツを、Javaアプリケーションを利用しないコンテンツとして扱うことで、再生開始までの時間を短縮する映像情報再生方法の場合(比較例1)には、図17(a)に示されるように、時刻t0で通常再生が中断され、時刻t1で再生開始の操作がなされた直後から再生(機能制限再生)が開始され、Javaアプリケーションの起動準備完了後の時刻t2に、通常再生に移行する。
 しかし、一部の仮想マシン利用型コンテンツにおいて、暗号化された映像データや音声データを復号する際に、暗号復号アプリケーションとJavaアプリケーションとの間でデータのやり取りを行うことで、暗号の復号処理を行っている場合(比較例2)がある。このようなコンテンツにおいて、Javaアプリケーションを起動させずにレジューム再生を行った場合、データの暗号化を解除することができないため、Javaアプリケーションを起動しなければならない。このため、図17(b)に示されるように、時刻t0で通常再生が中断され、時刻t1で再生開始の操作がなされた直後から再生(機能制限再生)を開始せずに、Javaアプリケーションの起動準備完了後の時刻t12に通常再生が開始される。
 このように、比較例の映像情報再生方法では、図17(a)のようにレジューム再生が再生開始操作の直後から始まる場合と、図17(b)のようにレジューム再生が再生開始操作時からレジューム再生の準備に要する時間が経過した後から始まる場合とがあり、レジューム再生が開始されるまでの待ち時間が短縮されない場合がある。
 これに対し、本実施の形態に係る映像情報再生方法においては、図18に示されるように、時刻t0で通常再生が中断され、時刻t1で再生開始の操作がなされた直後から代理アプリケーションの起動が行われ、代理アプリケーションの起動準備が完了した時刻t22からレジューム再生が開始され、Javaアプリケーションの起動準備完了後の時刻t23に、通常再生に移行する。このように、本実施の形態においては、レジューム再生の開始時に、Javaアプリケーションと暗号復号アプリケーションとの間で数値のやり取りを行うコンテンツであっても、Javaアプリケーションを直ぐには動作させずに、Javaアプリケーションよりも簡易なプログラムである代理アプリケーションを動作させてレジューム再生を行うことによって、暗号化されたデータを復号しているので、レジューム再生の指示の直後から正常に再生を開始することが可能となる。なお、代理アプリケーションは、レジューム再生の開始に必要な最低限の構成要素を含むプログラムであって、Javaアプリケーションよりも短時間で動作を開始することができるプログラムである。
 図19は、図16を改良した処理を示すフローチャートである。図19において、図16におけるステップと同じステップには、同じ符合を付す。図19における処理では、関数F(A)は、例えば、「F(A)=“数値A”&“固定値”」のように、「数値A」と「固定値」とを使用して関数F(A)の演算が定義されている場合がある。すなわち、ある条件の下では「F(A)=“数値A”」であるが、他の条件の下では「F(A)=“固定値”」となる場合である。この固定値は、光ディスク毎に異なり、また、F(A)も光ディスク毎に異なる。そのため、CPU21の代理アプリケーションによる代理演算を行うための関数F′(A)の演算結果だけでは、暗号復号処理を正常に行うことができなくなる。
 そこで、図19の例では、以下のように処理を行う。先ず、CPU21は、Javaアプリケーションと、暗号復号アプリケーションとの間で数値のやり取りを検知すると(ステップS1においてYES)、フラグ“crypt_flag”の値を1にセットし(ステップS4)、暗号復号アプリケーションと数値のやり取りを行うJavaアプリケーションを含むJARファイルの中を解析し、関数F(A)に含まれる固定値の検索を実行する(ステップS20)。ここで検出された、固定値は、フラグ“crypt_flag”と同様に、CPU21のワークメモリ上で保持される値であり、電源オフ後にもこの値を記憶する必要がある場合は、不揮発メモリ22に保持する。レジューム再生の開始時の処理は、図16に示される処理と同様であるが、図16のステップS13の代理演算実行では、上記で得られた固定値を利用してF′(A)の演算を実行する必要がある。なお、上記例では、固定値が1つである場合を説明したが、固定値は複数の場合もある。
 以上、説明したように、光ディスク毎に関数F(A)で使用される固定値が異なる場合において、簡易再生を開始する前に、jarファイルから固定値を検索し、検索された固定値を使って関数F′(A)の演算を行うことで、暗号化されたデータを復号し正常に再生することが可能となる。
 10 再生部、 11 光ディスク(記録媒体)、 12 ドライブ、 13 デマルチプレクサ、 14 ビデオデコーダ、 15 字幕デコーダ、 16 オーディオデコーダ、 17 グラフィックス重畳部、 18 暗号復号処理CPU、 21 CPU(再生制御手段)、 22 不揮発メモリ、 31 外部表示装置。

Claims (6)

  1.  仮想マシン上で動作する複数のプログラムから映像の再生制御が可能な仮想マシン利用型コンテンツが記録された記録媒体を再生する映像情報再生方法であって、
     前記仮想マシン利用型コンテンツの通常再生時には、前記仮想マシン上で動作する複数のプログラムの一つである復号化補助プログラムが、暗号化された前記仮想マシン利用型コンテンツの復号を行う暗号復号プログラムから数値を受け取り、
     前記復号化補助プログラムは前記数値を使い所定の演算を実行し、
     前記演算の結果を利用して前記暗号復号プログラムが前記仮想マシン利用型コンテンツの復号処理を行い、
     前記仮想マシン利用型コンテンツの再生を途中停止した後、再生再開の指示がなされた後に実行されるレジューム再生の開始時には、前記仮想マシン上で動作する前記復号化補助プログラムの代わりに前記仮想マシン上以外の環境で動作する代理プログラムを起動させ、前記代理プログラムと前記暗号復号プログラムとが、データのやり取りを行いながら、前記仮想マシン利用型コンテンツの映像の再生を実行する
     ことを特徴とする映像情報再生方法。
  2.  前記仮想マシン利用型コンテンツの再生中に、前記仮想マシン上で動作する前記復号化補助プログラムと前記暗号復号プログラムとの間のデータのやり取りを検知し、前記データのやり取りを行っているか否かを示すフラグの値を前記検知の結果に基づいて設定し、
     前記レジューム再生の開始時に、前記フラグの値に基づいて前記代理プログラムを起動させるか否かを決定する
     ことを特徴とする請求項1に記載の映像情報再生方法。
  3.  前記仮想マシン利用型コンテンツの再生中に、前記暗号復号プログラムとやり取りを行う前記代理プログラムの中の演算で使用される固定値を前記仮想マシン上で動作する前記プログラムの中から検索し、
     前記レジューム再生の開始時に、前記検索された固定値を用いて前記代理プログラムを実行させる
     ことを特徴とする請求項1に記載の映像情報再生方法。
  4.  仮想マシン上で動作するプログラムによる映像の再生制御が可能な仮想マシン利用型コンテンツが記録された記録媒体を再生する再生部と、
     前記再生部における再生処理を制御する再生制御部と、
     を有し、
     前記仮想マシン利用型コンテンツの通常再生時には、前記再生制御部における前記仮想マシン上で動作する前記復号化補助プログラムと前記再生部内の暗号復号制御部上で動作する暗号化された前記仮想マシン利用型コンテンツの復号を行う暗号復号プログラムとで、前記仮想マシン利用型コンテンツの復号処理を行い、
     前記仮想マシン利用型コンテンツの再生を途中停止した後、再生開始の指示がなされた後に実行されるレジューム再生の開始時には、前記再生制御部において前記仮想マシン上で動作する前記復号化補助プログラムの代わりに前記仮想マシン上以外の環境で動作する代理プログラムを起動させ、前記代理プログラムと前記暗号復号プログラムとが、データのやり取りを行いながら、前記仮想マシン利用型コンテンツの映像の再生を実行する
     ことを特徴とする映像情報再生装置。
  5.  前記仮想マシン利用型コンテンツの再生中に、前記再生制御部は、
     前記仮想マシン上で動作する前記復号化補助プログラムと前記暗号復号プログラムとの間のデータのやり取りを検知し、前記データのやり取りを行っているか否かを示すフラグの値を前記検知の結果に基づいて設定し、
     前記レジューム再生の開始時に、前記フラグの値に基づいて前記代理プログラムを起動させるか否かを決定する
     ことを特徴とする請求項4に記載の映像情報再生装置。
  6.  前記仮想マシン利用型コンテンツの再生中に、前記再生制御部は、前記暗号復号プログラムとやり取りを行う前記代理プログラムの中の演算で使用される固定値を前記仮想マシン上で動作する前記プログラムの中から検索し、
     前記再生制御部は、前記レジューム再生の開始時に、前記検索された固定値を用いて前記代理プログラムを実行させる
     ことを特徴とする請求項4に記載の映像情報再生装置。
PCT/JP2012/063121 2011-10-21 2012-05-23 映像情報再生方法及び映像情報再生装置 WO2013057977A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE112012004368.5T DE112012004368T5 (de) 2011-10-21 2012-05-23 Videobildinformations-wiedergabeverfahren und videobildinformations-wiedergabevorrichtung
US14/236,308 US9020331B2 (en) 2011-10-21 2012-05-23 Video image information playback method and video image information playback device
JP2013539549A JP5615445B2 (ja) 2011-10-21 2012-05-23 映像情報再生方法及び映像情報再生装置
CN201280051355.2A CN103890848B (zh) 2011-10-21 2012-05-23 视频信息再现方法以及视频信息再现装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-231903 2011-10-21
JP2011231903 2011-10-21

Publications (1)

Publication Number Publication Date
WO2013057977A1 true WO2013057977A1 (ja) 2013-04-25

Family

ID=48140637

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/063121 WO2013057977A1 (ja) 2011-10-21 2012-05-23 映像情報再生方法及び映像情報再生装置

Country Status (5)

Country Link
US (1) US9020331B2 (ja)
JP (1) JP5615445B2 (ja)
CN (1) CN103890848B (ja)
DE (1) DE112012004368T5 (ja)
WO (1) WO2013057977A1 (ja)

Families Citing this family (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8528086B1 (en) 2004-04-01 2013-09-03 Fireeye, Inc. System and method of detecting computer worms
US8549638B2 (en) 2004-06-14 2013-10-01 Fireeye, Inc. System and method of containing computer worms
US7587537B1 (en) 2007-11-30 2009-09-08 Altera Corporation Serializer-deserializer circuits formed from input-output circuit registers
US8171553B2 (en) 2004-04-01 2012-05-01 Fireeye, Inc. Heuristic based capture with replay to virtual machine
US9106694B2 (en) 2004-04-01 2015-08-11 Fireeye, Inc. Electronic message analysis for malware detection
US8881282B1 (en) 2004-04-01 2014-11-04 Fireeye, Inc. Systems and methods for malware attack detection and identification
US8898788B1 (en) 2004-04-01 2014-11-25 Fireeye, Inc. Systems and methods for malware attack prevention
US8584239B2 (en) 2004-04-01 2013-11-12 Fireeye, Inc. Virtual machine with dynamic data flow analysis
US8566946B1 (en) 2006-04-20 2013-10-22 Fireeye, Inc. Malware containment on connection
US8793787B2 (en) 2004-04-01 2014-07-29 Fireeye, Inc. Detecting malicious network content using virtual environment components
US8997219B2 (en) 2008-11-03 2015-03-31 Fireeye, Inc. Systems and methods for detecting malicious PDF network content
US8832829B2 (en) 2009-09-30 2014-09-09 Fireeye, Inc. Network-based binary file extraction and analysis for malware detection
US10572665B2 (en) 2012-12-28 2020-02-25 Fireeye, Inc. System and method to create a number of breakpoints in a virtual machine via virtual machine trapping events
US8990944B1 (en) 2013-02-23 2015-03-24 Fireeye, Inc. Systems and methods for automatically detecting backdoors
US9367681B1 (en) 2013-02-23 2016-06-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications using symbolic execution to reach regions of interest within an application
US9009823B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications installed on mobile devices
US9195829B1 (en) 2013-02-23 2015-11-24 Fireeye, Inc. User interface with real-time visual playback along with synchronous textual analysis log display and event/time index for anomalous behavior detection in applications
US9176843B1 (en) 2013-02-23 2015-11-03 Fireeye, Inc. Framework for efficient security coverage of mobile software applications
US9355247B1 (en) 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
US9104867B1 (en) 2013-03-13 2015-08-11 Fireeye, Inc. Malicious content analysis using simulated user interaction without user involvement
US9626509B1 (en) 2013-03-13 2017-04-18 Fireeye, Inc. Malicious content analysis with multi-version application support within single operating environment
US9311479B1 (en) 2013-03-14 2016-04-12 Fireeye, Inc. Correlation and consolidation of analytic data for holistic view of a malware attack
US9430646B1 (en) 2013-03-14 2016-08-30 Fireeye, Inc. Distributed systems and methods for automatically detecting unknown bots and botnets
US10713358B2 (en) 2013-03-15 2020-07-14 Fireeye, Inc. System and method to extract and utilize disassembly features to classify software intent
US9413781B2 (en) 2013-03-15 2016-08-09 Fireeye, Inc. System and method employing structured intelligence to verify and contain threats at endpoints
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9635039B1 (en) 2013-05-13 2017-04-25 Fireeye, Inc. Classifying sets of malicious indicators for detecting command and control communications associated with malware
US10133863B2 (en) 2013-06-24 2018-11-20 Fireeye, Inc. Zero-day discovery system
US9300686B2 (en) 2013-06-28 2016-03-29 Fireeye, Inc. System and method for detecting malicious links in electronic messages
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US10515214B1 (en) 2013-09-30 2019-12-24 Fireeye, Inc. System and method for classifying malware within content created during analysis of a specimen
US9690936B1 (en) 2013-09-30 2017-06-27 Fireeye, Inc. Multistage system and method for analyzing obfuscated content for malware
US9171160B2 (en) 2013-09-30 2015-10-27 Fireeye, Inc. Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses
US9736179B2 (en) 2013-09-30 2017-08-15 Fireeye, Inc. System, apparatus and method for using malware analysis results to drive adaptive instrumentation of virtual machines to improve exploit detection
US9628507B2 (en) 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
US9921978B1 (en) 2013-11-08 2018-03-20 Fireeye, Inc. System and method for enhanced security of storage devices
US9189627B1 (en) * 2013-11-21 2015-11-17 Fireeye, Inc. System, apparatus and method for conducting on-the-fly decryption of encrypted objects for malware detection
US9747446B1 (en) 2013-12-26 2017-08-29 Fireeye, Inc. System and method for run-time object classification
US9756074B2 (en) 2013-12-26 2017-09-05 Fireeye, Inc. System and method for IPS and VM-based detection of suspicious objects
US9740857B2 (en) 2014-01-16 2017-08-22 Fireeye, Inc. Threat-aware microvisor
US9262635B2 (en) 2014-02-05 2016-02-16 Fireeye, Inc. Detection efficacy of virtual machine-based analysis with application specific events
US9241010B1 (en) 2014-03-20 2016-01-19 Fireeye, Inc. System and method for network behavior detection
US10242185B1 (en) 2014-03-21 2019-03-26 Fireeye, Inc. Dynamic guest image creation and rollback
US9591015B1 (en) 2014-03-28 2017-03-07 Fireeye, Inc. System and method for offloading packet processing and static analysis operations
US9223972B1 (en) 2014-03-31 2015-12-29 Fireeye, Inc. Dynamically remote tuning of a malware content detection system
US9432389B1 (en) 2014-03-31 2016-08-30 Fireeye, Inc. System, apparatus and method for detecting a malicious attack based on static analysis of a multi-flow object
US9594912B1 (en) 2014-06-06 2017-03-14 Fireeye, Inc. Return-oriented programming detection
US9973531B1 (en) 2014-06-06 2018-05-15 Fireeye, Inc. Shellcode detection
US9438623B1 (en) 2014-06-06 2016-09-06 Fireeye, Inc. Computer exploit detection using heap spray pattern matching
US10084813B2 (en) 2014-06-24 2018-09-25 Fireeye, Inc. Intrusion prevention and remedy system
US9398028B1 (en) 2014-06-26 2016-07-19 Fireeye, Inc. System, device and method for detecting a malicious attack based on communcations between remotely hosted virtual machines and malicious web servers
US10805340B1 (en) 2014-06-26 2020-10-13 Fireeye, Inc. Infection vector and malware tracking with an interactive user display
US10002252B2 (en) 2014-07-01 2018-06-19 Fireeye, Inc. Verification of trusted threat-aware microvisor
US9363280B1 (en) 2014-08-22 2016-06-07 Fireeye, Inc. System and method of detecting delivery of malware using cross-customer data
US10671726B1 (en) 2014-09-22 2020-06-02 Fireeye Inc. System and method for malware analysis using thread-level event monitoring
US9773112B1 (en) 2014-09-29 2017-09-26 Fireeye, Inc. Exploit detection of malware and malware families
US10027689B1 (en) 2014-09-29 2018-07-17 Fireeye, Inc. Interactive infection visualization for improved exploit detection and signature generation for malware and malware families
US9690933B1 (en) 2014-12-22 2017-06-27 Fireeye, Inc. Framework for classifying an object as malicious with machine learning for deploying updated predictive models
US10075455B2 (en) 2014-12-26 2018-09-11 Fireeye, Inc. Zero-day rotating guest image profile
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US9838417B1 (en) 2014-12-30 2017-12-05 Fireeye, Inc. Intelligent context aware user interaction for malware detection
US9690606B1 (en) 2015-03-25 2017-06-27 Fireeye, Inc. Selective system call monitoring
US10148693B2 (en) 2015-03-25 2018-12-04 Fireeye, Inc. Exploit detection system
US9438613B1 (en) 2015-03-30 2016-09-06 Fireeye, Inc. Dynamic content activation for automated analysis of embedded objects
US10417031B2 (en) 2015-03-31 2019-09-17 Fireeye, Inc. Selective virtualization for security threat detection
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US9483644B1 (en) 2015-03-31 2016-11-01 Fireeye, Inc. Methods for detecting file altering malware in VM based analysis
US9654485B1 (en) 2015-04-13 2017-05-16 Fireeye, Inc. Analytics-based security monitoring system and method
US9594904B1 (en) 2015-04-23 2017-03-14 Fireeye, Inc. Detecting malware based on reflection
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US10715542B1 (en) 2015-08-14 2020-07-14 Fireeye, Inc. Mobile application risk analysis
US10176321B2 (en) 2015-09-22 2019-01-08 Fireeye, Inc. Leveraging behavior-based rules for malware family classification
US10033747B1 (en) 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
US10210329B1 (en) 2015-09-30 2019-02-19 Fireeye, Inc. Method to detect application execution hijacking using memory protection
US10706149B1 (en) 2015-09-30 2020-07-07 Fireeye, Inc. Detecting delayed activation malware using a primary controller and plural time controllers
US10817606B1 (en) 2015-09-30 2020-10-27 Fireeye, Inc. Detecting delayed activation malware using a run-time monitoring agent and time-dilation logic
US10601865B1 (en) 2015-09-30 2020-03-24 Fireeye, Inc. Detection of credential spearphishing attacks using email analysis
US9825989B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Cyber attack early warning system
US9825976B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Detection and classification of exploit kits
US10284575B2 (en) 2015-11-10 2019-05-07 Fireeye, Inc. Launcher for setting analysis environment variations for malware detection
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
US10621338B1 (en) 2015-12-30 2020-04-14 Fireeye, Inc. Method to detect forgery and exploits using last branch recording registers
US10050998B1 (en) 2015-12-30 2018-08-14 Fireeye, Inc. Malicious message analysis system
US10565378B1 (en) 2015-12-30 2020-02-18 Fireeye, Inc. Exploit of privilege detection framework
US10133866B1 (en) 2015-12-30 2018-11-20 Fireeye, Inc. System and method for triggering analysis of an object for malware in response to modification of that object
US9824216B1 (en) 2015-12-31 2017-11-21 Fireeye, Inc. Susceptible environment detection system
US11552986B1 (en) 2015-12-31 2023-01-10 Fireeye Security Holdings Us Llc Cyber-security framework for application of virtual features
US10581874B1 (en) 2015-12-31 2020-03-03 Fireeye, Inc. Malware detection system with contextual analysis
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10671721B1 (en) 2016-03-25 2020-06-02 Fireeye, Inc. Timeout management services
US10476906B1 (en) 2016-03-25 2019-11-12 Fireeye, Inc. System and method for managing formation and modification of a cluster within a malware detection system
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable malware detection system
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
US10169585B1 (en) 2016-06-22 2019-01-01 Fireeye, Inc. System and methods for advanced malware detection through placement of transition events
US10462173B1 (en) 2016-06-30 2019-10-29 Fireeye, Inc. Malware detection verification and enhancement by coordinating endpoint and malware detection systems
US10592678B1 (en) 2016-09-09 2020-03-17 Fireeye, Inc. Secure communications between peers using a verified virtual trusted platform module
US10491627B1 (en) 2016-09-29 2019-11-26 Fireeye, Inc. Advanced malware detection using similarity analysis
US10795991B1 (en) 2016-11-08 2020-10-06 Fireeye, Inc. Enterprise search
US10587647B1 (en) 2016-11-22 2020-03-10 Fireeye, Inc. Technique for malware detection capability comparison of network security devices
US10552610B1 (en) 2016-12-22 2020-02-04 Fireeye, Inc. Adaptive virtual machine snapshot update framework for malware behavioral analysis
US10581879B1 (en) 2016-12-22 2020-03-03 Fireeye, Inc. Enhanced malware detection for generated objects
US10523609B1 (en) 2016-12-27 2019-12-31 Fireeye, Inc. Multi-vector malware detection and analysis
US10904286B1 (en) 2017-03-24 2021-01-26 Fireeye, Inc. Detection of phishing attacks using similarity analysis
US10798112B2 (en) 2017-03-30 2020-10-06 Fireeye, Inc. Attribute-controlled malware detection
US10902119B1 (en) 2017-03-30 2021-01-26 Fireeye, Inc. Data extraction system for malware analysis
US10848397B1 (en) 2017-03-30 2020-11-24 Fireeye, Inc. System and method for enforcing compliance with subscription requirements for cyber-attack detection service
US10791138B1 (en) 2017-03-30 2020-09-29 Fireeye, Inc. Subscription-based malware detection
US10880272B2 (en) * 2017-04-20 2020-12-29 Wyse Technology L.L.C. Secure software client
US10855700B1 (en) 2017-06-29 2020-12-01 Fireeye, Inc. Post-intrusion detection of cyber-attacks during lateral movement within networks
US10601848B1 (en) 2017-06-29 2020-03-24 Fireeye, Inc. Cyber-security system and method for weak indicator detection and correlation to generate strong indicators
US10503904B1 (en) 2017-06-29 2019-12-10 Fireeye, Inc. Ransomware detection and mitigation
US10893068B1 (en) 2017-06-30 2021-01-12 Fireeye, Inc. Ransomware file modification prevention technique
US10747872B1 (en) 2017-09-27 2020-08-18 Fireeye, Inc. System and method for preventing malware evasion
US10805346B2 (en) 2017-10-01 2020-10-13 Fireeye, Inc. Phishing attack detection
US11108809B2 (en) 2017-10-27 2021-08-31 Fireeye, Inc. System and method for analyzing binary code for malware classification using artificial neural network techniques
US11005860B1 (en) 2017-12-28 2021-05-11 Fireeye, Inc. Method and system for efficient cybersecurity analysis of endpoint events
US11240275B1 (en) 2017-12-28 2022-02-01 Fireeye Security Holdings Us Llc Platform and method for performing cybersecurity analyses employing an intelligence hub with a modular architecture
US11271955B2 (en) 2017-12-28 2022-03-08 Fireeye Security Holdings Us Llc Platform and method for retroactive reclassification employing a cybersecurity-based global data store
US10826931B1 (en) 2018-03-29 2020-11-03 Fireeye, Inc. System and method for predicting and mitigating cybersecurity system misconfigurations
US11558401B1 (en) 2018-03-30 2023-01-17 Fireeye Security Holdings Us Llc Multi-vector malware detection data sharing system for improved detection
US10956477B1 (en) 2018-03-30 2021-03-23 Fireeye, Inc. System and method for detecting malicious scripts through natural language processing modeling
US11003773B1 (en) 2018-03-30 2021-05-11 Fireeye, Inc. System and method for automatically generating malware detection rule recommendations
US11314859B1 (en) 2018-06-27 2022-04-26 FireEye Security Holdings, Inc. Cyber-security system and method for detecting escalation of privileges within an access token
US11075930B1 (en) 2018-06-27 2021-07-27 Fireeye, Inc. System and method for detecting repetitive cybersecurity attacks constituting an email campaign
US11228491B1 (en) 2018-06-28 2022-01-18 Fireeye Security Holdings Us Llc System and method for distributed cluster configuration monitoring and management
US11316900B1 (en) 2018-06-29 2022-04-26 FireEye Security Holdings Inc. System and method for automatically prioritizing rules for cyber-threat detection and mitigation
US11182473B1 (en) 2018-09-13 2021-11-23 Fireeye Security Holdings Us Llc System and method for mitigating cyberattacks against processor operability by a guest process
CN110944228B (zh) * 2018-09-21 2022-04-01 中国移动通信有限公司研究院 一种视频流保护方法、装置、计算装置和可读介质
US11763004B1 (en) 2018-09-27 2023-09-19 Fireeye Security Holdings Us Llc System and method for bootkit detection
US11368475B1 (en) 2018-12-21 2022-06-21 Fireeye Security Holdings Us Llc System and method for scanning remote services to locate stored objects with malware
US11258806B1 (en) 2019-06-24 2022-02-22 Mandiant, Inc. System and method for automatically associating cybersecurity intelligence to cyberthreat actors
US11556640B1 (en) 2019-06-27 2023-01-17 Mandiant, Inc. Systems and methods for automated cybersecurity analysis of extracted binary string sets
US11392700B1 (en) 2019-06-28 2022-07-19 Fireeye Security Holdings Us Llc System and method for supporting cross-platform data verification
US11886585B1 (en) 2019-09-27 2024-01-30 Musarubra Us Llc System and method for identifying and mitigating cyberattacks through malicious position-independent code execution
US11637862B1 (en) 2019-09-30 2023-04-25 Mandiant, Inc. System and method for surfacing cyber-security threats with a self-learning recommendation engine

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033628A (ja) * 2008-07-25 2010-02-12 Panasonic Corp 簡易レジューム再生装置及び簡易レジューム再生方法
WO2010064433A1 (ja) * 2008-12-04 2010-06-10 三菱電機株式会社 映像情報再生方法、映像情報再生装置、記録媒体、及び映像コンテンツ
JP2010277618A (ja) * 2009-05-26 2010-12-09 Mitsubishi Electric Corp 映像情報再生方法及び映像情報再生装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5132871B2 (ja) 2003-10-10 2013-01-30 シャープ株式会社 コンテンツ再生装置、コンテンツ再生装置の制御方法、コンテンツ記録媒体、制御プログラム、制御プログラムを記録したコンピュータ読み取り可能な記録媒体
KR100848437B1 (ko) 2003-10-10 2008-07-28 샤프 가부시키가이샤 콘텐츠 재생 장치, 콘텐츠 재생 장치의 제어 방법, 콘텐츠 기록 매체, 및 컴퓨터 판독 가능한 기록 매체
JP4641046B2 (ja) 2003-10-10 2011-03-02 シャープ株式会社 再生装置、ビデオデータの再生方法、コンテンツ記録媒体、制御プログラム、制御プログラムを記録したコンピュータ読み取り可能な記録媒体
AU2004293960A1 (en) * 2003-11-28 2005-06-09 Sony Corporation Reproduction device, reproduction method, reproduction program, and recording medium
JP5249920B2 (ja) 2007-07-05 2013-07-31 パナソニック株式会社 データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路
JP5092782B2 (ja) 2008-02-15 2012-12-05 ソニー株式会社 ディスク、オーサリング方法、および再生制御方法、並びに情報処理装置
JP2009232123A (ja) 2008-03-21 2009-10-08 Fujitsu Ten Ltd コンテンツ再生装置およびコンテンツ再生制御方法
JP2009259356A (ja) 2008-04-18 2009-11-05 Fujitsu Ten Ltd コンテンツ再生装置およびコンテンツ再生制御方法
JP5197202B2 (ja) * 2008-07-14 2013-05-15 富士通テン株式会社 コンテンツ再生装置、方法およびプログラム
RU2539717C2 (ru) * 2009-05-20 2015-01-27 Сони Дадк Аустриа Аг Способ защиты от копирования
EP2254116A1 (en) * 2009-05-20 2010-11-24 Sony DADC Austria AG Method for copy protection
WO2010143439A1 (ja) * 2009-06-12 2010-12-16 パナソニック株式会社 再生装置、集積回路、記録媒体
GB2471456B (en) * 2009-06-29 2012-06-20 Geco Technology Bv Interpolation and/or extrapolation of seismic data
KR20110001618A (ko) * 2009-06-30 2011-01-06 애니포인트 미디어 그룹 장치-특화 및 애플리케이션-특화된 컴퓨팅 장치, 재생 장치 및 컴퓨팅 장치를 이용한 재생 장치의 제어 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033628A (ja) * 2008-07-25 2010-02-12 Panasonic Corp 簡易レジューム再生装置及び簡易レジューム再生方法
WO2010064433A1 (ja) * 2008-12-04 2010-06-10 三菱電機株式会社 映像情報再生方法、映像情報再生装置、記録媒体、及び映像コンテンツ
JP2010277618A (ja) * 2009-05-26 2010-12-09 Mitsubishi Electric Corp 映像情報再生方法及び映像情報再生装置

Also Published As

Publication number Publication date
CN103890848A (zh) 2014-06-25
JP5615445B2 (ja) 2014-10-29
CN103890848B (zh) 2016-03-09
DE112012004368T5 (de) 2014-07-31
US20140169762A1 (en) 2014-06-19
JPWO2013057977A1 (ja) 2015-04-02
US9020331B2 (en) 2015-04-28

Similar Documents

Publication Publication Date Title
JP5615445B2 (ja) 映像情報再生方法及び映像情報再生装置
US8428428B2 (en) Reproduction device and program
JP5269097B2 (ja) 映像情報再生方法、映像情報再生装置、記録媒体、及び映像コンテンツ
JP5395074B2 (ja) 再生装置、再生方法、プログラム
JP5032408B2 (ja) 簡易レジューム再生装置及び簡易レジューム再生方法
JPWO2006115151A1 (ja) 記録装置、再生装置、記録再生装置、記録プログラムとその記録媒体、再生プログラムとその記録媒体
JP2008532194A (ja) 記録媒体、データ復号装置及び方法
US20110262104A1 (en) Reproduction device, reproduction method, recording medium, application, and authoring device
JP2009505326A (ja) データを再生する装置及び方法、データを記録する装置及び方法並びに記録媒体
CN106233389B (zh) 再现方法、再现装置以及记录介质
JP5347714B2 (ja) 映像情報再生方法及び映像情報再生装置
JP4682267B1 (ja) プログレッシブダウンロード再生方法及び再生用プログラム
JPWO2009157163A1 (ja) 再生装置、再生装置の制御方法
JP5235074B2 (ja) ビデオ再生装置
JP2012174328A (ja) 映像情報再生方法及び映像情報再生装置
JP5393847B2 (ja) 簡易レジューム再生装置、及びプログラム
JP2008140450A (ja) データ再生装置
JP2012226790A (ja) ディスク再生装置、ディスク再生方法およびプログラム
KR20170083868A (ko) 데이터 이동 장치 및 데이터 이동 방법

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201280051355.2

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12841892

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013539549

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14236308

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 112012004368

Country of ref document: DE

Ref document number: 1120120043685

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12841892

Country of ref document: EP

Kind code of ref document: A1