A control apparatus and method for reproducing data from a digital video disk at high speed

Abstract: A control apparatus for reproducing data from a digital video disk at high speed and a method therefor. The control apparatus including a descrambler (240) for descrambling the data which is read from the digital video disk (100), demodulated and error-corrected, and detecting a navigation pack sector from the data, a navigation interrupt generator (260) for generating a navigation interrupt if the navigation pack sector is detected by the descrambler (240), a memory (330) for storing the descrambled data, and a microprocessor (500) for determining a next reproducing position of the digital video disk (100) on the basis of information of the navigation pack sector contained in the descrambled data by accessing the memory (330) if the navigation interrupt is detected, and controlling a driving of the digital video disk (100).

Description: The present invention relates to a control apparatus and method for reproducing data stored on a digital video disk (DVD), and more particularly, to a control apparatus and method for controlling a digital video disk reproducing system so as to increase a reproducing speed of the data stored on the digital video disk. A digital video disk, which is one type of digital moving picture disk media, is a multimedia storage device for storing data of high picture quality and high sound quality for the next generation, and stores at least two hours worth of digital images according to the Moving Picture Experts Group (MPEG)-2 standard. To achieve a fast forward (FF), fast backward (FB) or navigation reproducing function, control means, such as a microprocessor, for controlling overall operations of a digital video disk reproducing system should collect navigation information. However, in a conventional structure of the digital video disk reproducing system, since the microprocessor can not directly or indirectly access a memory contained in a data processor and can not obtain descrambled data from the memory contained in the data processor, the microprocessor obtains the navigation information from another memory which is externally or internally installed in a video/audio decoder connected to a subsequent stage of the data processor. Further, since error flag information indicating whether or not data transmitted to the video/audio decoder from the data processor has an error is generated after corresponding data is transmitted, it is difficult to judge whether or not the currently transmitted data has an error. Consequently, it takes a long time for the microprocessor to collect the navigation information, and the user who demands the FF, FB or navigation reproducing function must wait a long time. Furthermore, when there is a defect in the digital video disk during FF or FB reproduction, if the data is not restored at once, defective data may be transmitted to the video/audio decoder, and an unexpected system error may be generated. EP 0,724,264 (KK Toshiba, 31 July 1996) discloses an optical recording medium having DVD-Video format data recorded thereon in video object units VOBUs including navigation pack sectors containing navigation information. During reproduction, in particular a FF or FB search, a system memory ROM/RAM stores the navigation information. Hence this system suffers the problems discussed above. Accordingly, it is an aim of the present invention to provide a control apparatus and method for controlling a digital video disk that increases efficiency of reproducing data stored on the digital video disk, and in particular that increases efficiency when reproducing data at an FF, FB or other reproducing speed. Other aims and advantages of embodiments of the invention will be set forth in part in the description which follows, and, in part, will be obvious from the description, or may be learned by practice of the invention. According to the present invention there is provided an apparatus and method as set forth in the appended claims. Preferred features of the invention will be apparent from the dependent claims, and the description which follows. For a better understanding of the invention, and to show how embodiments of the same may be carried into effect, reference will now be made, by way of example, to the accompanying diagrammatic drawings, in which: Figure 1 is a block diagram illustrating a schematic configuration of a digital video disk reproducing system according to an embodiment of the present invention; Figure 2 is a block diagram illustrating the detailed configuration of a data processor and its peripheral parts shown in Figure 1; Figure 3 is a diagram illustrating the configuration of a navigation interrupt generator shown in Figure 2; Figures 4A, 4B and 4C are diagrams illustrating a configuration of a register portion shown in Figure 2; Figure 5 is a drawing illustrating the structure of a video object ID according to the embodiment of the present invention; Figure 6 is a drawing illustrating the configuration of one video object unit shown in Figure 5; Figure 7 is a drawing illustrating the structure of a navigation pack sector shown in Figure 6; Figure 8 is a table for storing video object unit search information according to the embodiment of the present invention; and Figure 9 is a flow chart illustrating a control operation for reproducing the digital video disk at high speed according to the embodiment of the present invention. Reference will now be made in detail to the present preferred embodiment of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to like elements throughout. A preferred embodiment of the present invention will be more specifically described hereinbelow with reference to the attached drawings. As already noted, like reference numerals or symbols designate like elements throughout. In the following description, numerous specific details, such as elements constituting a circuit, are set forth to provide a more thorough understanding of the present invention. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without these specific details. Furthermore, well-known functions or constructions which may unnecessarily obscure the subject matter of the present invention will be not described in detail. Figure 1 is a diagram illustrating the schematic configuration of a digital video disk reproducing system applied to an embodiment of the present invention. When data from an optical disk 100 is to be reproduced, a disk motor 160 starts to rotate at a given speed. An optical pick-up unit 140 having a head 120 carries out tracking and focusing control to convert information (data) of the disk 100 into an analog RF (Radio Frequency) signal. The RF signal is shaped to a pulse waveform, and a data stream ESM is transmitted to a digital PLL (Phase Locked Loop) 300 and to a data processor 200. The digital PLL 300 includes a phase comparator, a voltage controlled oscillator, a demultiplier, etc., and generates a clock synchronized with a signal reproduced from any optical disk. A disk driving controller 400 controls a constant linear velocity of the rotation of the disk 100 and disk related operations in consideration of frequency servo, phase servo, etc. according to a frame synchronizing signal Sf generated from a synchronous detector (not shown) of the data processor 200. A memory 330 stores data for error correction and a variable bit rate (VBR) etc., and is used for data buffering. The data processor 200 demodulates data read from the disk 100 to a state prior to being written on the disk 100. The demodulated data is stored in the memory 330 and again read by a unit of block for the error correction. Data error-corrected through the data processor 200 is again stored in the memory 330. Moreover, the data processor 200 descrambles data read from the memory 330 and transmits the descrambled data to a parser 610. The parser 610 transmits an audio signal and a video signal to an AC3/MPEG audio decoder 630 and an MPEG-2 video decoder 620, respectively. A microprocessor 500 is a system controller for controlling overall operations of the optical disk reproducing system. If the video and audio decoders 620 and 630 are energized (that is, if the video and audio signals start to be reproduced) by a user's request or by a demand of control information within the disk, the video and audio decoders 620 and 630 make a request for data to the data processor 200. In this case, the microprocessor 500 controls the data processor 200 so as to carry out the error correction and descrambling from data within the disk 100 and to transmit the error-corrected and descrambled data to the video and audio decoders 620 and 630. Video and audio data demodulated from the video and audio decoders 620 and 630 are transmitted to an NTSC (or PAL) encoder 700 and a digital/analog converter 800 and generated through a monitor 960 and a speaker 970, respectively. Figure 2 is a block diagram illustrating the detailed configuration of the data processor 200 and its peripheral parts according to the embodiment of the present invention. A demodulator 250 demodulates the data stream ESM to a unit of symbol including prescribed bits. The demodulator 250 has, for example, a 32-bit shift register and a sixteen-to-eight demodulator. The data stream ESM is supplied to the shift register, and the 16 least significant bits (or the 16 most significant bits) among the 32 bits generated from the shift register are transmitted to the sixteen-to-eight demodulator. The sixteen-to-eight demodulator converts 16-bit data into 8-bit data constituting one symbol. An error correcting code (ECC) portion 230 performs the error correction in the horizontal and vertical directions with respect to an error correcting block including data read from the disk 100 which is a digital video disk. The horizontal and vertical directions may be (182, 172, 11) and (208, 192, 17), respectively. That is: the lengths of code words in the horizontal and vertical directions are 182 and 208, respectively; main data except a parity in the horizontal and vertical directions are 172 and 192, respectively; and intervals of the code words in the horizontal and vertical directions are 11 and 17, respectively. For this error correction, the memory 330 stores identification (ID) data and the main data generated from the demodulator 250 by a unit of block to form the error correcting block. The error correcting block includes data for 16 sectors. Moreover, the memory 330 performs the data buffering for the error correction of both directions and stores the error-corrected data. Since the main data among the error-corrected data stored in the memory 330 has been scrambled before it is written in the disk 100, a descrambler 240 receives and then descrambles the main data to restore the scrambled data to original data. Moreover, the descrambler 240 stores the restored data in the memory 330 and detects a navigation pack (NV_PCK) sector from the restored data. A memory controller 508 accesses the memory 330 for the error correction of the demodulated data and the descrambling of the error-corrected data. That is, the memory controller 508 reads out data to be descrambled from the memory 330 or controls the memory 330 so as to transmit the descrambled data to the video and audio decoders 620 and 630 according to a transmission control signal generated from the microprocessor 500. The video and audio decoders 620 and 630 transmit audio and video transmission request signals A/V RD to the memory controller 508. Then the microprocessor 500 transmits the transmission control signal to the memory controller 508. A navigation interrupt generator 260 generates a navigation interrupt signal NV_INT. A register portion 270 has 4 registers. A first register REG1 is a microprocessor memory read register; a second register REG2 is a microprocessor memory write register; a third register REG3 is a navigation pack unit number register; and a fourth register REG4 is a navigation pack ID address register. Figure 3 illustrates the configuration of the navigation interrupt generator 260 shown in Figure 2. The data descrambled from the descrambler 240 is sequentially supplied to a shift register 52. A pattern detector 54 receives specific shift data and detects a given pattern, that is, a pack header contained in the navigation pack (NV_PCK) sector. If the pack header is detected, the pattern detector 54 generates the navigation interrupt signal NV_INT to inform the microprocessor 500 that the pack header has been detected. Figures 4A, 4B and 4C are diagrams illustrating the configuration of the register portion 270 shown in Figure 2. Figure 4A shows a register having addresses for read-accessing the memory 330 by the microprocessor 500. Addresses 70-72 are addresses of the memory 330. An address 73 has a memory data value of a corresponding address. Figure 4B shows a register having addresses of the memory 330 in which a navigation pack sector is stored. The microprocessor 500 obtains a desired address of the memory 330 from the register of Figure 4B and calculates the address by a given calculation equation. Then the microprocessor 500 can access navigation pack data by a unit of byte by writing the calculated value into the addresses 70-72 of the register of Figure 4A. The register of Figure 4B has each address of a unit of 2-kilobyte. The addresses 70-72 indicated in Figure 4A are addresses of a unit of byte. In an address 87, B7-B0 indicate bit 7 - bit 0 among 10 bits constituting a corresponding register. The same principle is applied to the other address 86. Figure 4C shows a register having addresses of the disk 100 in which the navigation pack is stored, such addresses being referred to as ID addresses hereinafter. In an address 9C, B31-B24 indicate bit 31 - bit 24 among 32 bits constituting a corresponding register. The same principle is applied to the other addresses 9D through 9F. The navigation interrupt generator 260 detects the navigation pack sector from the descrambler 240 and stores the ID address of the disk 100 having the navigation pack sector in the register of Figure 4C. Thereafter, the navigation interrupt generator 260 stores the address of the memory 330 in which navigation pack sector data is stored in the register of Figure 4B, and transmits the navigation interrupt signal NV_INT to the microprocessor 500. Then the microprocessor 500 accesses the registers of Figures 4B and 4C, and accesses the navigation pack data of the memory 330 by using the register of Figure 4A. Figure 5 illustrates the structure of a video object ID used in the embodiment of the present invention. This structure is disclosed in the digital video disk standard. Figure 6 illustrates the configuration of one video object unit shown in Figure 5. The video object unit includes a navigation pack NV_PCK sector of 2048 bytes, and I picture, B picture, B picture, P picture, B picture, B picture, P picture, I picture, etc. in a sequential recording order. Figure 7 illustrates the structure of the navigation pack (NV_PCK) sector shown in Figure 6. The navigation pack (NV_PCK) sector is used for a navigation function together with volume information of the disk 100. The navigation function is to obtain information needed to search for a path of a desired position on the disk 100. As shown, one pack sector has 2048 bytes. The detection of a system header start code (00, 00, 01, BB) is started from the 15th byte. The detection of a packet header (00, 00, 01, BF, **, **) is started from the 39th byte. When a sub stream ID is '00' or '01', the navigation interrupt generator 260 generates the navigation interrupt signal NV_INT. The sub stream ID of '00' indicates that the following 979 bytes are presentation control information (PCI) data, and the sub stream ID of '01' indicates that the following 1,017 bytes are disc search information (DSI) data. Figure 8 illustrates a table for storing video object unit search information according to the embodiment of the present invention. FWDI indicates forward information and BWDI indicates backward information, corresponding to FWD indicating forward and BWD indicating backward, respectively, in Figure 5. Figure 9 is a flow chart illustrating a control operation for reproducing data from the digital video disk at high speed. While the data from the digital video disk is being reproduced, if the navigation pack NV_PCK sector is detected by the descrambler 240, the data processor 200 judges that a new VOBU (video object unit) is started. If the descrambling has ended, the data processor 200 stores the descrambled data in the memory 330 and generates the navigation interrupt signal NV_INT through the navigation interrupt generator 260. Thereafter, the data processor 200 determines a navigation pack unit number and an ID of a corresponding VOBU which are respectively stored in the second and third registers shown in Figures 4B and 4C. For convenience, it is assumed that the user selects a FF mode. If the navigation interrupt signal NV_INT is detected by the NV_INT generator 260 at step 10, the microprocessor 500 reads, at step 12, the navigation pack unit number and the navigation pack ID of a currently detected VOBU from the second and third registers of the register portion 270, respectively. The navigation pack unit number is a sector number indicating a position of the memory where the navigation pack unit exists. At step 14, the microprocessor 500 calculates a memory read address ADD and stores the calculated address in the addresses 70-72 of the register of Figure 4A. The memory read address ADD is calculated by the following equation (1). This calculation is for obtaining an address of a unit of byte. ADD = 2.48 × U NO + OFF1 + OFF2 where U NO indicates the navigation unit number, OFF1 is an offset value of a VOBU_SRI, and OFF2 is an offset value corresponding to the double speed of the VOBU_SRI. The VOBU_SRI is shown in Figure 8. Referring to Figure 7, the offset value of the VOBU_SRI represents the number of bytes including the position of the VOBU_SRI following a DSI_GI of a DSI_PCK from the start position (pack header) of a corresponding navigation pack. The offset value corresponding to the double speed of the VOBU_SRI means the number of bytes including a double speed term within the VOBU_SRI from the start position of the VOBU_SRI. For example, the ID to be jumped differs according to the double speed, quadruple speed, etc. The offset value corresponding to the double speed is obtained with reference to the VOBU_SRI shown in Figure 8. That is, if an FWDI n (n = 1-15, 20, 60, 120, 240) or BWDI n which is an object to be reproduced is searched according to a corresponding speed, a start address of a corresponding VOBU is contained in its contents. The microprocessor 500 reads, at step 16, the memory read address stored in the addresses 70-72 of the register of Figure 4A and transmits the memory read address to the memory controller 508 of the data processor 200. Then the data processor 200 reads data stored in the memory read address from the memory 330 through the memory controller 508 and stores the data in the address 73 of the register of Figure 4A. The microprocessor 500 reads, at step 18, an FWDI_offset (or BWDI_offset). The FWDI_offset (or BWDI_offset) is a value stored in the address 73 of the register 270 after the data processor 200 reads data of 4 bytes shown in Figure 8 from the memory 330. The FWDI_offset is a distance (sector) from a current navigation pack ID (NV_PCK_ID) to a jump ID (JP_ID) and indicates the contents of each item of the VOBU_SRI. That is, if an FWDI 1 of the VOBU_SRI is the jump ID to be next reproduced, the FWDI_offset is a value of 4 bytes contained in the FWDI 1 of the VOBU_SRI. At step 20, whether a current operation is a FF mode or a FB mode is checked. If it is a FF mode, the jump ID is calculated at step 22 by the following equation (2), and if it is a FB mode, the jump ID is calculated at step 24 by the following equation (3). JP_ID = CUR_NVPCK_ID + FWDI_offset JP_ID = CUR_NVPCK_ID - BWDI_offset where CUR_NVPCK_ID is an address of the disk 100 of a current navigation pack. After the jump ID is calculated, the microprocessor 500 reads, at step 26, an offset value of an end address VOBU_1STREF_EA of a first reference (I) picture in the VOBU containing the current navigation pack NV_PCK. The VOBU_1STREF_EA is one of general information contained in the DSI. The offset value of the VOBU_1STREF_EA is a value of a corresponding VOBU. At step 28, a data transmission end ID (TR_E_ID) is calculated by the following equation (4) to obtain an absolute address: TR_E_ID = CUR_NVPCK_ID + VOBU_ISTREF_EA_offset After calculating the data transmission end ID, only I picture data of the current VOBU is transmitted to the video decoder 620 at step 30. At step 32, the disk driving controller 400 is controlled to seek the jump ID calculated at step 22 (in the preferred embodiment, step 22 is used based upon the above described assumption) in order to transmit the I picture data of the next VOBU. Then data corresponding to the jump ID of the disk 100 is read and descrambled and stored in the memory 330. If the navigation interrupt signal NV_INT is generated, a series of processes for transmitting only the I picture of the corresponding VOBU to the video decoder 620 through the steps 10 to 32 and reading the data corresponding to the jump ID are repeated. Therefore, only the I picture data of the selected VOBU is transmitted to the video decoder 620, thereby performing the operation of the FF mode. As described above, the microprocessor of a digital video disk reproducing system is able to obtain navigation related information within a fast period of time, and the FF, FB or other reproducing speeds of data from the digital video disk can be increased. Although a few preferred embodiments have been shown and described, it will be appreciated by those skilled in the art that various changes and modifications might be made without departing from the scope of the invention, as defined in the appended claims.

Claims: A control apparatus for reproducing data from a digital video disk (100), comprising: a microprocessor (500) to control driving of the digital video disk (100); and a memory (330) to store descrambled data reproduced from the digital video disk (100); characterised by : a data processor (200) including: a descrambler (240) to descramble said data which is read from said digital video disk (100), demodulated and error-corrected, and to detect a navigation pack sector from said descrambled data; a register portion (270) to store navigation information from said navigation pack sector; and a navigation interrupt generator (260) to generate a navigation interrupt if said descrambler (240) detects said navigation pack sector; wherein if said microprocessor (500) receives said navigation interrupt from said navigation interrupt generator (260), the microprocessor (500) is arranged to: read said navigation information from said register portion (270) to calculate a memory address of said memory (330); read-access said memory (330) at said memory address to determine a current position; calculate a jump identification according to a fast forward or fast rewind mode; read an offset value of an end address of an I picture of a video object unit containing a currently detected navigation information to calculate a data transmission end identification; transmit said I picture; and control driving of said digital video disk (100) to reproduce a next video object unit by seeking said jump identification. The control apparatus of claim 1, wherein the register portion (270) stores a navigation pack unit number and an identification address of a video object unit of said descrambled data as said navigation information. The control apparatus of claim 1 or 2, characterised in that : said register portion (270) includes a first register (REG1) to store addresses to read-access said memory (330), a second register (REG3) to store addresses of said memory (330) in which navigation pack sectors are stored as navigation pack unit numbers, and a third register (REG4) to store addresses of the optical disk (100) in which said navigation pack sectors are stored as identification addresses; said data processor (200) determines that a new video object unit is started in response to said descrambler (240) detecting said navigation pack sector, stores said descrambled data in said memory (330), and determines and stores a corresponding navigation pack unit number and identification address in said second and third addresses, respectively, of said register portion (270); and said microprocessor (500) reads said navigation pack unit number and said identification address of a currently detected video object unit from said second and third registers (REG3, REG4) respectively, and determines a corresponding address to read-access said memory (330) from said first register (REG1) based upon said navigation pack unit number of said currently detected video object unit. The control apparatus of any preceding claim, wherein said navigation interrupt generator (260) comprises: a shift register (52) to sequentially store said descrambled data from said descrambler (240); and a pattern detector (54) to detect a pack header contained in said navigation pack sector of said sequentially stored descrambled data, and in response, generating said navigation interrupt to inform said microprocessor (500) that said pack header has been detected. The control apparatus of claim 4, wherein said pattern detector (54) detects a system header start code from a first position of said navigation pack sector of said sequentially stored descrambled data and then detects said pack header from a second position of said navigation pack sector of said sequentially stored descrambled data, detects a sub stream ID of said navigation pack sector of said sequentially stored descrambled data and generates said navigation interrupt if said sub stream ID has a particular value. The control apparatus of claim 3, 4 or 5, wherein said first register (REG1) stores said addresses to read-access said memory (330) in first units of a first size and said second register (REG3) stores said addresses of said memory (330) in which navigation pack sectors are stored in second units of a second size larger than said first size. The control apparatus of claim 6, wherein said first units are bytes and said second units are 2 kilobytes. The control apparatus of any preceding claim, wherein said microprocessor (500) determines a corresponding address to read-access said memory (330) based upon the following equation: ADD = 2.48 X U NO + OFF1 + OFF2, wherein U NO indicates said navigation pack unit number, OFF1 is an offset value of a VOBU_SRI representatives of a number of bytes including a position of said VOBU_SRI following a DSI_GI of a DSI_PCK from a start position of a corresponding navigation pack sector, and OFF2 is an offset value corresponding to a different speed of said VOBU_SRI representatives of a number of bytes including a different speed term within said VOBU_SRI from said start position of said VOBU_SRI. A control method for a control apparatus which reproduces data from a digital video disk (100) and includes means (240) for detecting a navigation pack sector from said data reproduced from said digital video disk (100) and means (270) for storing a navigation pack unit number and an identification address of a video object unit of said data reproduced from said digital video disk (100), said method comprising the steps of: (i) reading data from the optical disk (100); (ii) detecting the navigation pack sector from said data; and (iii) determining a next reproducing position of the optical disk (100) if said navigation pack sector is detected; characterised by : (a) if said navigation pack sector is detected, reading said navigation pack unit number and said identification address of a corresponding video object unit, and generating a navigation interrupt; (b) calculating a memory address by using said navigation pack unit number and said identification address, and reading said data corresponding to said memory address to determine a current position; (c) calculating a jump identification according to a fast forward or a fast backward mode, and reading an offset value of an end address of an I picture of the video object unit containing a currently detected navigation pack unit to calculate a data transmission end identification; (d) transmitting said I picture; and (e) seeking said jump identification, and returning to said step (a) in order to process a next video object unit of said data reproduced from said digital video disk (100).

Inventors: JEONG JEONG-JOO, SHIM JAE-SEONG, YIM JONG-SANG, JEONG, JEONG-JOO, SHIM, JAE-SEONG, YIM, JONG-SANG
Applicants: SAMSUNG ELECTRONICS CO LTD, SAMSUNG ELECTRONICS CO., LTD.
Application year: 1998
Main classification: G11B27
IPC codes: H04N5, H04N9, G11B27, G11B20