U.S. patent application number 09/024400 was filed with the patent office on 2001-09-20 for random picture decoding.
Invention is credited to BARRON, STEVEN A., CANFIELD, BARTH A., HAGUE, JOHN ALAN, SCHULTZ, MARK ALAN, WILLIS, DONALD HENRY, XIE, JIANLEI.
Application Number | 20010022891 09/024400 |
Document ID | / |
Family ID | 27268731 |
Filed Date | 2001-09-20 |
United States Patent
Application |
20010022891 |
Kind Code |
A1 |
SCHULTZ, MARK ALAN ; et
al. |
September 20, 2001 |
RANDOM PICTURE DECODING
Abstract
An apparatus for reproducing a digitally encoded signal from a
disk medium, comprises a transducer which transduces the digitally
encoded signal. A memory is coupled to the transducer for storing
the digitally encoded signal. A decoder is responsive to the
digitally encoded signal for decoding a picture therefrom. A
controller for the memory, wherein a first operational mode the
controller controls the memory to read the stored digitally encoded
signal from the memory responsive to a first sequence and in a
second operational mode the controller controls the memory to read
the stored digitally encoded signal from the memory in a second
sequence.
Inventors: |
SCHULTZ, MARK ALAN; (CARMEL,
IN) ; WILLIS, DONALD HENRY; (INDIANAPOLIS, IN)
; XIE, JIANLEI; (CARMEL, IN) ; HAGUE, JOHN
ALAN; (INDIANAPOLIS, IN) ; BARRON, STEVEN A.;
(COUNTY, IN) ; CANFIELD, BARTH A.; (INDIANAPOLIS,
IN) |
Correspondence
Address: |
JOSEPH S. TRIPOLI
PATENT OPERATION
GE & RCA LICENSING MANAGEMENT OPERATION
CN 5312
PRINCETON
NJ
085430028
|
Family ID: |
27268731 |
Appl. No.: |
09/024400 |
Filed: |
February 17, 1998 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60039573 |
Feb 18, 1997 |
|
|
|
Current U.S.
Class: |
386/351 ;
375/E7.094; 375/E7.211; 375/E7.267; 386/E5.052; G9B/27.002;
G9B/27.019; G9B/27.033 |
Current CPC
Class: |
G11B 27/005 20130101;
G11B 27/105 20130101; H04N 21/4435 20130101; G11B 27/3027 20130101;
H04N 21/42646 20130101; H04N 5/85 20130101; H04N 19/423 20141101;
H04N 7/52 20130101; H04N 5/783 20130101; H04N 21/44004 20130101;
G11B 2220/2562 20130101; H04N 9/8042 20130101; H04N 21/44029
20130101; H04N 21/4325 20130101; H04N 9/8227 20130101; H04N 19/61
20141101; H04N 9/8063 20130101 |
Class at
Publication: |
386/68 ; 386/70;
386/109; 386/111 |
International
Class: |
H04N 005/783; H04N
005/91; H04N 007/26 |
Foreign Application Data
Date |
Code |
Application Number |
Feb 19, 1997 |
GB |
9703467.2 |
Claims
What is claimed is:
1. An apparatus for reproducing a digitally encoded signal from a
disk medium, comprising: a transducer transduces said digitally
encoded signal; a memory coupled to said transducer for storing
said digitally encoded signal; a decoder responsive to said
digitally encoded signal for decoding a picture therefrom; a
controller for said decoder, wherein a first operational mode said
controller controls said decoder to read said stored digitally
encoded signal from said memory responsive to a first sequence and
in a second operational mode said controller controls said decoder
to read said stored digitally encoded signal from said memory in a
second sequence.
2. The reproducing apparatus of claim 1, wherein said first
operational mode represents a normal play mode.
3. The reproducing apparatus of claim 1, wherein said second
operational mode represents a trick play mode.
4. The reproducing apparatus of claim 1, wherein said first
sequence is a sequential series of consecutive memory
addresses.
5. The reproducing apparatus of claim 1, wherein said second
sequence is a non-sequential series of memory addresses.
6. The reproducing apparatus of claim 5, wherein said second
sequence is responsive to a specific trick play algorithm.
7. The reproducing apparatus of claim 6, wherein said addresses for
said second sequence are determined by analysis of said digitally
encoded signal.
8. The reproducing apparatus of claim 5, wherein said second
sequence of memory addresses includes a duplicate address.
9. The reproducing apparatus of claim 5, wherein said second
sequence of memory addresses includes a consecutive series of
memory addresses with a pair of consecutive addresses reversed in
said consecutive series.
10. The reproducing apparatus of claim 9, wherein said consecutive
memory addresses including transposed non consecutive
addresses.
11. An apparatus for reproducing a digitally encoded signal from a
disk medium, comprising: a transducer transduces said digitally
encoded signal; a memory coupled to said transducer for storing
said digitally encoded signal; a decoder responsive to said
digitally encoded signal for decoding a picture therefrom; a
controller for said memory, wherein a first operational mode said
controller controls said memory to read said stored digitally
encoded signal from said memory responsive to a first sequence and
in a second operational mode said controller controls said memory
to read said stored digitally encoded signal from said memory in a
second sequence.
12. The reproducing apparatus of claim 11, wherein said first
operational mode represents a normal play mode.
13. The reproducing apparatus of claim 11, wherein said second
operational mode represents a trick play mode.
14. The reproducing apparatus of claim 11, wherein said second
sequence is a non-sequential series of memory addresses.
Description
[0001] This is a non-provisional application of provisional
application Ser. No. 60/039,573 by Mark A. Schultz et al.
FIELD OF THE INVENTION
[0002] This invention relates to the reproduction of a digitally
encoded signal from a medium and in particular to the selection of
picture type for decoding.
BACKGROUND OF THE INVENTION
[0003] The introduction of disks recorded with digitally compressed
audio and video signals, for example, utilizing MPEG compression
protocols, offers the consumer sound and picture quality virtually
indistinguishable from the original material. However, consumer
users will expect such digital video disks or DVDs to offer
features similar to those of their analog video cassette recorder
or VCR. For example, a VCR may reproduce in either forward or
reverse directions at speeds other than the recorded speed. Such
non-standard speed playback features are also known as trick play
modes. The provision of trick play features are less easily
provided with MPEG encoded video signals due to the hierarchical
nature of the compression which forms pictures into groups having
varying degrees of compression. These groups are termed groups of
pictures or GOPs, and require decoding in sequence. A detailed
description of the MPEG 2 standard is published as ISO/IEC Standard
13818-2. However, in simple terms, an MPEG 2 signal stream may
comprise three types of pictures having varying degrees of content
compression. An intra-coded frame or I frame has the least
compression of the three types and may be decoded without reference
to any other frame. A predicted frame or P frame is compressed with
reference to a preceding I or P frame and achieves greater degree
of compression than an intra-coded frame. The third type of MPEG
frame, termed a bi-directionally coded or B frame, may be
compressed based on predictions from preceding and/or succeeding
frames. Bi-directionally coded frames have the greatest degree of
compression. The three types of MPEG frames are arranged in groups
of pictures or GOPs. The GOP may for example contain 12 frames
arranged as illustrated in FIG. 1A. Since only an intra-coded frame
is decodable without reference to any other frame, each GOP may
only be decoded following the decoding of the I frame. The first
predicted frame or P frame, may be decoded and stored based on
modification of the stored, preceding I frame. Subsequent P frames
may be predicted from the stored preceding P frame. The prediction
of P frames is indicated in FIG. 1A by the curved, solid arrow head
lines. Finally, bi-directionally coded or B frames may be decoded
by means of predictions from preceding and or succeeding frames,
for example, stored I and P frames. Decoding of B frames by
predictions from adjacent stored frames is depicted in FIG. 1A by
the curved, dotted arrow head lines.
[0004] The hierarchical nature of the coded frames comprising MPEG
groups of pictures necessitates that the I and P frames of each GOP
are decoded in the forward direction. Thus, reverse mode features
may be provided by effectively jumping back to an earlier, or
preceding I frame and then decoding in a forward direction through
that GOP. The decoded frames being stored in frame buffer memories
for subsequent read out in reverse to achieve the desired reverse
program sequence. FIG. 1B illustrates play back in the forward
direction at normal speed and at a time prior to time t0, a reverse
three times speed mode trick play mode is selected. The trick play
mode is initiated at time t0 where I-frame I(25) is decoded and
displayed. The next frame required for decoding is I-frame I(13),
thus the transducer is repositioned, as indicated by arrow J1 to
acquire frame I(13). Having recovered and decoded I-frame I(13),
the transducer tracks, as indicated by arrow J2 to acquire and
decode frame P(16). The process is repeated as indicated by arrows
J3, J4. Following the acquisition and decoding of frame P (22) the
transducer is moved as depicted by arrow Jn to recover frame I (1).
To smoothly portray scene motion requires the decoding and display
of I, P, and possibly B-frames. The jump and play process is
repeated for preceding GOP, thereby progressing haltingly backwards
through the records whilst smoothly portraying the program material
in a reverse sequence at the video output.
[0005] The provision of visually smooth reproduction during trick
mode reproduction requires timely disk retrieval and access to
specific pictures from memory. Although each digital disk is
encoded with navigation data which provides picture access points
within each video object unit, these are limited in number, and may
inherently contribute to temporally aliased image motion. To
achieve temporally smooth trick mode reproduction, at multiple
speeds in forward and reverse directions requires access to, and
decoding of all encoded pictures. Although such performance is
attainable at the cost of storage capacity, however trick play mode
specific picture decoding provides opportunities for improved trick
mode reproduction.
SUMMARY OF THE INVENTION
[0006] In an inventive arrangement, an apparatus for reproducing a
digitally encoded signal from a disk medium, comprises a transducer
which transduces the digitally encoded signal. A memory is coupled
to the transducer for storing the digitally encoded signal. A
decoder is responsive to the digitally encoded signal for decoding
a picture therefrom. A controller for the memory, wherein a first
operational mode the controller controls the memory to read the
stored digitally encoded signal from the memory responsive to a
first sequence and in a second operational mode the controller
controls the memory to read the stored digitally encoded signal
from the memory in a second sequence.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] FIG. 1A illustrates an MPEG 2 group of pictures.
[0008] FIG. 1B illustrates recorded groups of pictures, during
replay and reverse trick play at three times speed.
[0009] FIG. 2 is a block diagram of an exemplary digital disk
player including inventive arrangements.
[0010] FIG. 3 shows in greater detail part of FIG. 2 and depicting
various inventive arrangements.
[0011] FIG. 4 shows the digital disk player of FIG. 2 including
other advantageous arrangements to those of FIG. 2.
[0012] FIGS. 5A and 5B depict an exemplary bit stream before track
buffering.
[0013] FIGS. 5C-5D depict exemplary data in buffer memory.
[0014] FIG. 6 is a flow chart illustrating an inventive arrangement
for the recovery of start codes distributed across sector
boundaries.
DETAILED DESCRIPTION
[0015] FIG. 2 depicts an exemplary block diagram of a digital video
disk player. In block 10 a deck is shown which may accept a
digitally recorded disk 14 for rotation by a motor 12. A digital
signal is recorded on disk 14 as a spiral track containing pits
with respective pit lengths determined by an 8/16 modulation coding
responsive to respective signal data bits. The record on disk 14 is
read by pick up 15 which gathers reflected illumination from a
laser. The reflected laser light is collected by a photo detector
or opto pick-up device. An imaging device, for example a lens or
mirror, which form part of transducer pick-up 15, is servo
controlled and driven by motor 11 to follow the recorded track.
Different parts of the recording may be accessed by rapidly
repositioning the imaging device. Servo controlled motors 11 and 12
are driven by integrated circuit drive amplifier 20. Pick up 15 is
coupled to an opto preamplifier, block 30, which includes drive
circuitry for the laser illuminator and a preamplifier which
provides amplification and equalization for the reflected signal
output from the opto pick-up device. The amplified and equalized
replay signal from opto preamplifier 30 is connected to a channel
processor block 40 where the replay signal is employed to
synchronize a phase locked loop which is utilized to demodulate the
8:16 modulation employed for recording.
[0016] The MPEG encoded bitstream is encoded for error detection
and correction by means of Reed Solomon product coding which is
applied in blocks of 16 sectors, where each sector contains 2048
bytes of payload data. Thus following 8:16 demodulation the replay
data stream is de-interleaved or unshuffled and error corrected by
means of Reed Solomon product correction implemented in ECC buffer
memories 45 and 46 of FIG. 4. Each buffer stores 16 sectors of the
replay data stream arranged as an array to facilitate
de-interleaving and to enable the required row and column product
processing. The cascaded ECC buffer memories introduce a delay to
reproduced serial bit stream of approximately (2*16*1.4)
milliseconds, where 2 represents the pair of ECC buffers, 16
represents the sectors over which the correction is applied and 1.4
milliseconds represents a sector period at 1.times. rotational
speed. Thus the reproduced serial bit stream is delayed by a
minimum of approximately 45 milliseconds.
[0017] The error corrected signal bitstream 41 is coupled via a
link processor to a bit stream or mechanical/track buffer memory
60A. The track buffer comprises a DRAM memory type and is used to
store an amount of replayed data such that data losses during
transducer or pickup 15 repositioning will not result in any
visible deficiency when decoded. Thus the final output image stream
will appear to be continuous or seamless to the viewer. Bitstream
buffer memory 60A is part of an exemplary 16 megabit DRAM memory. A
further exemplary 16 megabit SDRAM memory block is partitioned to
provide frame buffers 60C and 60D which provide storage for at
least two decoded image frames, compressed video bit stream storage
in buffer 60B prior to decoding, an audio bit stream buffer 60E and
other storage in buffers 60F, G and H. The channel processor 40
also includes timing control circuitry which control writing by
link 505 to bitstream buffer 60A. Data may be intermittently
written to the bitstream buffer as a consequence of changes in
replay track addresses, for example, resulting from user defined
replay video content such as a "Directors cut", parental guidance
selection, or even user selectable alternative shot angles. To
facilitate more rapid access and recovery of the recorded signal,
disk 14 may be rotated at an increased speed resulting in the
transduced bitstream having a higher bit rate, and possibly
intermittent delivery.
[0018] As has been described, the recorded data stream is arranged
in ECC blocks of 16 sectors. Each sector has a unique sector
identification address which is protected with error correction
bits that are processed by ECC block 47 of FIG. 4.
[0019] However, because the sector address is short and sector
specific, any delay to sector address signal 42 resulting from
error correction processing block 47 is insignificant. Sector
address signal 42 is coupled to provide positional information to
servo control integrated circuit 50. Integrated circuit 50 provides
drive and control signals for servo motors 11 and 12. Motor 12
rotates disk 14 and provides servo controlled rotation at a
plurality of speeds. The opto pickup or transducer 15 is positioned
and servo controlled by motor 11 responsive to sector address
signal 42, and in addition, may be controlled to rapidly reposition
or jump to another sector address, or location on the disk surface
in response to a sector address request, transmitted by I.sup.2C
control bus 514, and coupled via element 54 of FIG. 4.
[0020] The digital video disk player is controlled by a central
processing unit or CPU, element 510 of block 500, which accepts the
reproduced bitstream and error flags from channel IC 40, and
provides control instructions to servo IC 50. In addition CPU 510
accepts user control commands from user interface 90, and MPEG
decoder control functions from the MPEG decoder element 530 of
block 500. A system buffer memory 80 is addressed by and provides
data to CPU 510. For example, buffer 80 may comprise both RAM and
PROM memory locations. The RAM may be used to store various data
extracted from bitstream 41 by CPU 510, for example such data may
include descrambling or decryption information, bitstream and frame
buffer memory management data, and navigation data. The PROM may,
for example contain advantageous transducer jump algorithms which
facilitate trick mode operation at a selection of speeds in forward
or reverse directions.
[0021] The MPEG encoded bitstream is coupled to link processor 505
in FIG. 3, which may function as a hardware demultiplexor to
separate MPEG encoded audio, video and control information from the
DVD formatted bitstream. Alternatively, bitstream demultiplexing
may be accomplished by software control of direct memory access or
DMA of buffer 60A, from CPU 510 of FIG. 3. The encoded bitstream
prior to or within track buffer 60A is searched by microcontroller
510 to locate and read headers and to extract navigation data.
Adventageous bit stream searching will be discussed with reference
to FIG. 6.
[0022] Microcontroller 510 is coupled the front end via I.sup.2C
control bus signal 514 to control or request transducer
repositioning to acquire the next sector required by a trick play
sequence. The transducer positioning may be controlled by an
advantageous stored sequence, or jump play pattern which is indexed
with reference to replayed sector addresses and GOP sector
addresses read from navigation pack data contained in each video
object unit or VOBU. Exemplary sector addresses and VOBU navigation
pack are depicted in FIG. 5A. However, following transducer
repositioning, the sectors initially retrieved from the front end
may be identified by exemplary microcontroller 510 as not those
requested by the jump instruction. Thus, microcontroller 510
advantageously overwrites this unwanted data in track buffer 60A
and ensures that only the requested data is present in the
buffer.
[0023] Having identified sector addresses or headers,
microcontroller 510 controls direct memory access of buffer 60A
which effectively separates MPEG data from other DVD formatted data
stored in the buffer. Thus, video DMA 515 separates compressed
video bits which are coupled for storage in exemplary video bit
buffer 60B. Similarly compressed audio bits are read from buffer
60A and stored in audio buffer 60E. Sub-picture data is also
retrieved from track buffer 60A by DMA and stored in buffer
60F.
[0024] The compressed video bit stream in video bit buffer 60B is
searched to locate picture or higher level start codes by start
code detector 520. A detected start code signal 512 is coupled to
microcontroller 510 which then communicates with MPEG decoder 530,
via signal 511, to indicate the next picture type, the quantizer
setting and to initiate decoding. A decoder status signal 513 is
coupled back to microcontroller 510 to indicate the completion of
decoding and that picture data available for display or storage.
Compressed video bit buffer 60B may be considered to function as a
FIFO or circular buffer where the stored bitstream is sequentially
accessed for MPEG decoding, however, trick mode operation may be
advantageously facilitated by random access of buffer 60B, as will
be described.
[0025] Within MPEG decoder 530 the video bit stream is processed by
a variable length decoder 531 which searches the bitstream to
locate slice and macro-block start codes. Certain pictures decoded
from each group of pictures are written to frame buffers 60C and
60D for subsequent use as predictors when deriving or constructing
other pictures, for example P and B pictures, of the GOP. Frame
buffers 60C and 60D have a storage capacity of at least two video
frames. Separated audio packets are stored in audio bit buffer 60E
which is read out and coupled for audio decoding in block 110.
Following MPEG or AC3 audio decoding a digitized audio signal
results which is coupled to an audio post processor 130 for digital
to analog conversion and generation of various base band audio
signal outputs. A digital video output signal is transformed into
raster scan format by display buffer 580 from decoded blocks read
from reference frame buffer 60C/D. However, during trick mode
operation the output signal source may be a field memory
advantageously reconfigured from memory unused during tick mode
operation. Thus block to raster scan conversion within display
buffer 580 may be advantageously controlled responsive to trick
mode operation. The display buffer is coupled to encoder 590 which
provides digital to analog signal conversion and generates baseband
video components and encoded video signals.
[0026] Operation of the exemplary video player illustrated in FIG.
2 may be considered with reference to FIG. 1B which illustrates a
forward play and reverse trick play sequence. As described
previously, the coded relationship existing within each GOP
necessitates that each group of pictures is decoded in a forward
direction starting from an I-frame or picture. Thus, reverse mode
features may be provided by effectively jumping back to transduce
an earlier, or preceding I picture and then decoding in a forward
direction through that GOP. The decoded pictures are stored in
frame buffer memories for subsequent read out in reverse order.
However, sequences that include B pictures may utilize further
advantageous features which will be described. In FIG. 1B it will
be assumed that at some time prior to time t0, for example at
I-picture I(1), the exemplary video player assumed a forward play
condition in response to a user command. Each group of pictures is
decoded in the forward direction as illustrated in FIG. 1A by the
arrow headed lines linking I, B and P frames. At a time prior to
time t0, a three times play speed reverse trick mode is selected,
and initiated at time t0 where I-picture 1(25) is decoded and
displayed. As previously described the next picture required for
reverse trick play decoding is I-picture I(13), thus the transducer
is moved, as indicated by arrow J1 to acquire picture I(13). The
signal recovery and decoding then follows a play sequence indicated
in FIG. 1B by arrows J1, to acquire I(13), J2, to acquire P(16),
J3, to P(19), J4 to P(22) . . . Jn. The intervening B pictures
shown in FIG. 1B are transduced but may be discarded, for example,
in the buffer by over writing or by decoder inhibit, as required
specific to each trick play mode. To avoid the previously described
requirement for additional reverse mode video buffering, various
advantageous methods for MPEG decoder, buffer memory control and
allocation are employed.
[0027] The determination of picture data may be performed in units
of sectors referenced in bit stream 41 or track buffer 60A.
However, since an MPEG picture start code is buried within DVD data
formatting and is not constrained to start coincident with a sector
boundary the resulting location of picture start codes in units of
sectors may inevitably include fragments of a preceding, possibly
non-video sector. FIG. 5A shows part of exemplary bit stream 41
including a video object unit containing audio video and
sub-picture data sectors. Each sector contains 2048 payload bytes
with sector addresses shown shaded at the sector boundary. In FIG.
5B video picture A is shown ending in sector 54 and is immediately
followed by the start code for video picture B. However, the
remainder of video picture B start code occurs in sector 65, with
intervening sectors 55-64 containing sub-picture and audio data.
Determination or location of picture data/video sectors in units of
sectors is illustrated in FIG. 5C where a start code for exemplary
picture A is shown in sector 2 with the start code of next picture
B, occurring in sector 9. Equation 1 shows picture data location by
sector count, since picture A starts in sector 2 and ends in sector
9, picture A has a duration of 8 sectors. Unwanted data fragments
are illustrated FIG. 5C, where video data is depicted referenced to
(video) sector numbers. However such video sector numbering may be
directly related to the sector number or address in the reproduced
bit stream. In FIG. 5C a video bit stream is shown with an
exemplary picture A depicted with a picture start code initiated at
byte 1000 of video sector 2. Clearly the preceding 999 bytes of
sector 2 correspond to data from a preceding picture. It is
possible to employ more detailed processing where the picture data
is located in units of bytes. Byte accurate processing may require
more complexity of memory control than that required for sector
level accuracy. However, if byte accurate processing is employed
only complete picture data are stored in the video bit buffer, thus
fragments are eliminated and hang up of MPEG decoder 530 is
avoided. Byte accurate picture determination is shown in FIG. 5C
for exemplary picture A, where a picture start code begins at byte
1000 of video sector 2 and picture B start code starts at byte 500
of sector 9. Hence the size of picture A may be calculated, by use
of equation 2, as 13,835 bytes. Thus byte accurate picture
addressing allows microprocessor 510 to point to a specific byte in
exemplary video bit buffer 60B from which variable length decoder
VLD 531, of FIG. 3, is to start decoding.
[0028] If picture data is determined in units of sectors, the MPEG
decoder reading pictures from the video bit buffer must be
protected from hang up due to fragments of discarded pictures
occurring before or after the wanted picture is decoded. Such
picture fragments are depicted in exemplary video bit buffer of
FIG. 5D which shows multiple sectors containing P and B pictures
where unwanted data from a previous, or following picture are shown
with diagonal shading. Each video object block unit or VOBU
includes navigation data that identifies the end sector address of
the first I picture and the last sector addresses of two following
reference or P pictures of the first GOP of the VOBU. In addition
the navigation data includes sector addresses of I-pictures in
preceding and succeeding VOBUs, hence an I-picture only trick mode
may be readily provided. However, problems resulting from picture
fragments may be avoided if the end byte of the wanted picture can
be identified. Microprocessor 510/A, for example type ST20, is
advantageously configured as a hardware search engine which
searches through data stored in the track buffer to locate the the
end sector to find the last byte of the I-picture stored in buffer
60A. Thus by precisely identifying an I-picture, it alone may be
loaded into video bit buffer 60B, hence avoiding the storage of
partial pictures which may cause problems of decoder lockup. The
exemplary microprocessor 510/A may be employed to find start codes
in an I-picture only mode since the ending sector is known from the
navigation data. However, for P, B or multiple I-pictures, the
exemplary microprocessor may not provide a practical solution since
testing has to be performed on every byte of data in the bitstream,
which represents an operationally intensive usage of microprocessor
510.
[0029] The location and determination of start codes prior to
decoding may be facilitated by an arrangement which utilizes the
link interface block 505 of FIG. 3 to search for start codes in the
bitstream prior to track buffer 60A. Such use of link interface 505
advantageously provides early pre-processing or parsing for picture
and or audio headers which may be signaled to microprocessor 510.
Thus, having identified headers in the incoming bitstream prior to
the track buffer, pictures and audio required by a specific mode
may be stored in exemplary track buffer 60A with unwanted pictures
and or other data deleted in the buffer by overwriting.
[0030] In a first arrangement start codes are located by use of
start code detector 520 which searches the bit stream in the video
bit buffer 60B. Although this method has an advantage in that MPEG
start code detector design is known, the detector however requires
contiguous data. Hence only data in the video bit buffer, stripped
of DVD and transport data structure may be searched. Thus searching
for MPEG data within the mechanical/track buffer is difficult to
facilitate, and may not optimally use memory, and exemplary
microprocessor 510 may be heavily loaded with interrupts, thus
requiring the addition of a second microprocessor for example, 510A
specifically to implement start code detection.
[0031] In an advantageous arrangement, start code detection is
facilitated by a start code detector which searches the bit stream
exclusively for MPEG start codes prior to, or within track buffer
60A. Thus by advantageously providing early parsing for MPEG video
headers within the bit stream, trick play picture requirements may
be anticipated and memory manipulation specific to trick play
operation may be performed. The same adventageous parsing may be
applied to the video packet stream prior to the video bit buffer
during trick mode operation. For example, in a reverse replay mode,
such pre-processing permits trick play specific selection between
pictures to be buffered for decoding, and those unwanted pictures
to be discarded before storage. Such picture selection, for example
discarding B-frames, may approximately double the number of I and P
pictures stored in exemplary video bit buffer 60B during trick play
operation. Thus the identification of wanted from unwanted data is
a direct consequence of pre-processing or parsing prior to buffer
storage which allows video bit buffer 60B to store only wanted, or
trick play specific pictures. Hence more trick play specific video
object units or VOBUs may be stored facilitating smooth trick play
motion rendition.
[0032] In an advantageous arrangement the storage capacity track
buffer 60A and video bit buffer 60B are increased during a trick
play mode by only selecting for storage data that is to be used
subsequently. For example, in an exemplary trick play mode B frames
may not be decoded, hence need not be stored in the track or video
bit buffers. Thus only needed pictures are stored, and unwanted
picture or other data is discarded. To facilitate this advantageous
selection between wanted and unwanted pictures requires that the
bit stream or video packet stream be preprocessed, parsed or
searched to locate a sequence_header, group_of_picture_header or
picture_header prior to storage. Thus parsing or pre-processing of
the compressed bit stream allows the determination of MPEG
parameters such as, time_code, closed_gop, and broken_link data for
each group of pictures or GOP. In addition, by pre-processing the
packet stream the picture_start_code may be located thus permitting
processing of the picture_header which in turn allows the
determination of, for example, the temporal_reference,
picture_coding_type (I, P and B). However, such advantageous MPEG
parsing is difficult, as has been described, due to DVD
partitioning MPEG like data into sectors of 2048 bytes. In
addition, because the MPEG start codes (4 bytes) are not sector
aligned, an exemplary picture start code may be distributed across
a sector boundary. FIG. 5B illustrates a bitstream prior to track
buffer 60A where video picture A ends in sector 54 and is
immediately followed by the start code for video picture B.
However, the remainder of video picture B start code occurs in
sector 65, with intervening sectors 55-64 containing sub-picture
and audio data. FIG. 5C illustrates a demultiplexed video sector
bitstream prior to video bit buffer 60B where a start code for
exemplary picture A is shown in sector 2 with the start code of
next picture B, occurring in sector 9. A distributed start code
occurs for picture C which is initiated at byte 2046 of sector 12
and continues in sector 13. Hence, part of the start code is in one
video sector with the remainder in the next video sector.
[0033] To enable a bitstream with distributed start codes to be
parsed an adventageous method shown in FIG. 6 is employed.
[0034] The method shown in FIG. 6 identifies and saves sector types
and addresses, and in addition identifies and saves wanted start
codes. Distributed or partial start codes are identified and saved
by the use of an inventive partial start code flag which indicates
the occurrence. The remainder of the start code occuring in the
next video sector is identified and recovered to complete start
code. The inventive method of FIG. 6, depicts searching and MPEG
parsing applied to bit stream 41 prior to track buffering. The bit
stream is for wanted sectors, for example a video sector, which is
then surched for distributed start codes. A distributed start code
may be separated by other non-video sectors containing for example
audio, sub-pictures, navigation data etc. Thus the bit stream is
searched and the subsequent video sector identified and processed,
while the intervening non-video sectors, not currently required,
for example during a specific trick mode, are not processed and may
be discarded prior to storage or over written in exemplary track
buffer 60A. Thus having identified the next video sector, the
packet data is searched to locate the next start code. However,
because the partial start code flag is set, the remainder of the
partial start code is searched for, and with its occurrence this
remainder is combined with that of the preceding video sector to
complete the start code.
[0035] The chart in FIG. 6 illustrates the inventive method
employed for bit stream searching to identify wanted sector
addresses, picture types and addresses, and for detecting and
reassembling distributed start codes. The method starts at step 10
where an error corrected bitstream is searched to locate specific
wanted sectors from a plurality of sectors including, navigation,
audio video sector sub-picture data sectors. A video sector is
detected at step 100, where a NO result forms a loop which
continues the bitstream search. Similarly, an audio sector may be
detected at step 105 and its sector address stored accordingly. If
step 100 tests YES, a video sector is detected and the sector
address is stored at step 101. A detected video sector initiates a
further test at step 200 to detect a start code within the video
sector. Step 200 depicts picture start code, however, various start
codes may be present, for example sequence-headers, GOP headers or
picture-headers all exist within the video sector hence any may
suffer distribution across a sector boundary. A NO at step 200
forms a loop which continues to search for a start code within the
video sector. A YES at step 200 indicates detection of a start code
which initiates a further test to detect a partial start code at
step 250. A NO at step 250 forms a loop to wait for a partial start
code occurrence. In addition, the NO at step 250 also indicates
detection of a complete start code which is tested at step 255 to
determine if it is a wanted type. Wanted start codes test YES at
step 255 which results in the storage of the type and byte location
within the sector address at step 260.
[0036] Detection of a partial start results in a YES at step 250
which causes the sequence to restart searching the bitstream to
locate the next video sector by looping back to step 100. The YES
at step 250 also initiates a test at step 300 to determine if a
partial start code flag is set. The partial start code flag is not
set until a first distributed or partial start code is detected.
Thus NO at step 300 sets the partial start code flag at step 350,
and in addition stores the value of the partial start code at step
400. A YES at test 300 indicates detection of the remainder or
residue of the distributed start code and results in resetting the
partial start code flag at step 500. The YES at step 300 also
results in storage of the detected start code remainder at step
450. At step 550 the values of the partial start code from step 400
and its remainder from step 450 are combined to reform the
distributed start code. Finally at step 575 the reformed start code
type, byte and sector address are stored. Hence the inventive
method described identifies and stores specific sector types and
addresses, identifies and stores start code types and byte
addresses within sectors, and identifies and reassembles
distributed start code fragments. Thus a DVD format bit stream may
be parsed to determine for example, specific MPEG coded picture
types, prior to buffer storage.
[0037] During trick mode operation, and particularly during reverse
play speed operation, maximized picture buffer capacity is required
to store a group of pictures for read out in reverse order. During
such trick modes certain player functions or features may not be
required, may be non-useful or unavailable. Such functions or
features include audio, multiple languages, sub-pictures and on
screen displays and all utilize buffer memory capacity. Thus buffer
memory capacity unused by these functions or features may be
reallocated during trick mode operation to provide additional
picture storage. However, during certain trick modes, for example a
fast play mode, there may be a beneficial requirement for the
accompanying audio to be reproduced at high speed, and pitch
corrected to assist in scene location. In addition a limited on
screen display may be required to indicate trick play speed and
direction. Thus unused buffer memory capacity may be dynamically
reconfigured to advantageously facilitate trick mode buffering for
compressed pictures, decoded frame predictors, and video display
fields.
[0038] The block diagram of FIG. 4 shows the same functions and
element numbering as depicted in FIG. 2, however, FIG. 4 includes
additional advantageous arrangements which enhance digital disk
player operation. The exemplary digital video disk player shown in
FIGS. 2, 3 and 4 may be considered to comprise two parts namely a
front end and a back end. The front end controls the disk and
transducer with the back end providing MPEG decoding and overall
control. Such functional partitioning may represent an obvious
solution for consistent, steady state, MPEG decoding. However, such
partitioning of processing with control from the back end may
result in microcontroller overload, for example, during trick mode
operation and particularly in the reverse direction.
[0039] MPEG picture decoding order is determined, as is well known,
by the encoded picture hierarchy, hence forward mode operation the
decoding sequence is followed. However, trick play operation may be
advantageously facilitated by controlling MPEG picture decoding
order based on picture sequences required by a predetermined trick
play algorithm and knowledge of where the pictures start and stop
in the video bit buffer. Thus knowledge of picture location in the
video bit buffer 60B, for example as calculated in FIG. 5C, or as
determined by bitstream search of FIG. 6, permits memory start
pointers in the start code detector 520 and variable length
detector 531 to be advantageously directed to randomly access
pictures as required, for example, during trick mode operation. An
exemplary video bit buffer is shown FIG. 5D containing picture
fragments as described previously. A start code detector memory
pointer is depicted as arrow SCD which searches through the
exemplary video bit buffer to locate MPEG start codes. However in
the third sector of the first P picture the start code detector
memory pointer SCD1 indicates detection of a start code from the
next, but unwanted picture. Hence by advantageously directing the
start code memory pointer to known byte accurate memory locations
unwanted pictures and undesirable decoder hang ups are avoided, as
is indicated by arrow SCD2 of FIG. 5D.
[0040] In a further adventageous trick mode arrangement, unwanted
data from previous pictures is cleared input and output FIFOs,
first in first out registers of start code detector (SCD) 520 and
variable length decoder (VLD) 531. Signals 521/532 depicted in FIG.
3 clear or reset respective FIFOs to purge data remaining from
previous decode operations. Such clearance or flushing of the FIFOs
ensures that the SCD and VLD start the next decode operation with
new data from exemplary bit buffer 60B thus eliminating a further
source of decoder mis-operation resulting from residual prior
data.
[0041] Operation in reverse at play speed requires the reproduction
of B-frames and in a further trick mode optimization reverse mode
operation is advantageously simplified in terms of buffer memory
requirements by reversing the order in which adjacent B pictures
are decoded. This advantageous reversal of decoding order is
achieved by setting or controlling the memory start pointers to
enable decoding of specific pictures required by the trick mode. In
another trick mode optimization, buffer memory size and control may
be simplified during trick play operation by advantageously
skipping or not reading pictures in the video bit buffer by address
manipulation as required by specific trick play algorithms. Memory
size and control may be further optimized during trick play by
advantageously enabling multiple decoding of pictures either
immediately or as specifically required by the trick play
algorithm. The provision of these advantageous features requires
careful control of read/write functions and the synchronization
therebetween.
[0042] In yet a further trick mode optimization, a decoder control
capability which facilitates audio video synchronization or
lip-syncing by skipping picture decoding is advantageous increased
in control range and utilized during trick mode operation to allow
a number of pictures, selectable between 2 and at least 6 to be
skipped or not decoded. Such picture manipulation advantageous
facilitates trick play operation at six times play speed by
skipping over B-pictures within each GOP.
* * * * *