|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object | +--mediaframe.mpeg1.MPEG_video
The MPEG_video class implements the video decoder of the MPEG bit stream.
| Field Summary | |
private int |
ak_idx
The index of the frame coming into being. |
private int |
Asp_ratio
The aspect ratio used by the MPEG standard given in the sequence headerr. |
static int |
B_TYPE
B FRAME frame type constanta. |
private int |
back_idx
The index of the frame for backward prediction. |
private motion_data |
Backward
The object of class "motion_data" to notice and compute the backward motion values. |
private int |
backward_f
The the size of the motion data for backward prediction. |
private int |
backward_f_code
The motion code value for backward prediction. |
private int |
backward_r_size
The size of residual value for backward prediction. |
private int |
Bit_rate
The bit rate specified in the sequence header. |
private boolean |
Broken_Link
The Broken Link value specified in the group of pictures header. |
private boolean |
Closed_Group
The Closed Group value specified in the group of pictures header. |
private int |
col_y_incr
The increment for the luminance line, equals to pixel_per_col_line - 8. |
private boolean |
const_param
True if the constrained parameter flag was set in the sequence header and false otherwise. |
private int |
dct_dc_cb_past
The value of past DC (cb) value. |
private int |
dct_dc_cr_past
The value of past DC (cr) value. |
private int |
dct_dc_y_past
The value of past DC (y) value. |
private int[] |
dct_recon
The values before IDCT transformation. |
private boolean |
Drop_Flag
The Drop Flag value specified in the group of pictures header. |
private int |
error_count
The current amount of printed video errors. |
private static int |
EXT_START_CODE
MPEG VIDEO layer constanta. |
private int |
forw_f_code
The motion code value for forward prediction. |
private motion_data |
Forward
The object of class "motion_data" to notice and compute the forward motion values. |
private int |
forward_f
The the size of the motion data for forward prediction. |
private int |
forward_r_size
The size of residual value for forward prediction. |
private int |
Frame_nr
The frame number in the movie. |
private int |
Frame_nr_offset
The first frame number of last group of pictures. |
private boolean |
Full_pel_back_vector
Equals true if full pixel accuracy is used for backward prediction, equals false if half pixel accuracy is used. |
private boolean |
Full_pel_forw_vector
Equals true if full pixel accuracy is used for forward prediction, equals false if half pixel accuracy is used. |
private static int |
GOP_START_CODE
MPEG video layer constanta. |
private int |
Height
The height in pixels of the movie data. |
private int |
Hour
The Hour time value specified in the group of pictures header. |
private Huffmann |
Huf
The VLC (Hufmann) decoder. |
static int |
I_TYPE
I FRAME frame type constanta. |
private IDCT |
idct
An IDCT object to tranform the DCT coefficients. |
private int[] |
intramatrix
The default intramatrix. |
private boolean |
lum_block
False if in the current macroblock hasn't had any luminance blocks. |
private int |
lum_y_incr
The increment for the luminance line, equals to pixel_per_lum_line - 8. |
private int |
macro_block_address
The actual MB address. |
private boolean |
macro_block_intra
True if a macro block is for intra coded frames. |
private boolean |
macro_block_motion_backward
True if motion vector for backward prediction exists. |
private boolean |
macro_block_motion_forward
True if motion vector for forward prediction exists. |
private boolean |
macro_block_pattern
True if a coded block pattern supplied. |
private boolean |
macro_block_quant
True if a new quantization factor is supplied. |
private int |
mb_column
The actual column position of the macro block. |
private int |
mb_height
The macroblock height. |
private int |
mb_row
The actual row position of the macro block. |
private int |
mb_width
The macroblock width. |
private int |
Minute
The Minute time value specified in the group of pictures header. |
private java.lang.Thread |
moribund
The "Video Decoder" thread that is being stopped. |
private int |
motion_horiz_back_code
The motion code value of horizontal part for backward prediction. |
private int |
motion_horiz_back_r
The motion residual value of horizontal part for backward prediction. |
private int |
motion_horiz_forw_code
The motion code value of horizontal part for forward prediction. |
private int |
motion_horiz_forw_r
The motion residual value of horizontal part for forward prediction. |
private int |
motion_verti_back_code
The motion code value of vertical part for backward prediction. |
private int |
motion_verti_back_r
The motion residual value of vertical part for backward prediction. |
private int |
motion_verti_forw_code
The motion code value of vertical part for forward prediction. |
private int |
motion_verti_forw_r
The motion residual value of vertical part for forward prediction. |
private io_tool |
mpeg_stream
The input movie's data bit stream. |
private int[] |
non_intramatrix
A quantization matrix for non intra frames. |
private int[] |
nullmatrix
A matrix of zeros. |
static int |
P_TYPE
P FRAME frame type constanta. |
private int |
past_intra_address
The past MB address. |
private int[][][] |
Pel_buffer
The "Pel_buffer" is a main feature of the video scanner. 3 frames are stored at: Pel_buffer[0] Pel_buffer[1] Pel_buffer[2] The frame at index "ak_idx" is the frame coming into being. |
private int[] |
pel1
The array to grab the referred area from predicted frame. |
private int[] |
pel2
The array to grab the referred area from predicted frame. |
private int |
Pic_rate
The frame rate code used by the MPEG standard given in the sequence header. |
private int |
Pic_Type
The type of the frame (I, B, or P). |
private int |
Pict_Count
The Pict Count value specified in the group of pictures header. |
private static int |
PICTURE_START_CODE
MPEG video layer constanta. |
private int |
pixel_per_col_line
The number of pixels per colour line. |
private int |
pixel_per_lum_line
The number of pixels per luminance line. |
private MPEG1 |
Player
The reference to the applet. |
private int |
pred_idx
The index of the frame for forward prediction. |
private boolean |
quant_matrix
True if the quantizer matrix (intra or nonintra) should be loaded from MPEG stream. |
private int |
Quant_scale
The quantization factor. |
private int |
Second
The Second time value specified in the group of pictures header. |
private static int |
SEQ_END_CODE
MPEG video layer constanta. |
private static int |
SEQ_START_CODE
MPEG video layer constanta. |
private static int |
SLICE_MAX_START_CODE
MPEG video layer constanta. |
private static int |
SLICE_MIN_START_CODE
MPEG video layer constanta. |
private int |
Temp_ref
The display order of the picture in the group of pictures. |
private static int |
USER_START_CODE
MPEG VIDEO layer constanta. |
private int |
VBV_buffer
The vbv buffer size specified in the sequence header. |
private int |
VBV_Delay
The VBV delay value of the frame. |
private java.lang.Thread |
video_thread
The "Video Decoder" thread object. |
private int |
Width
The width in pixels of the movie data. |
private int[] |
zigzag
The reverse zigzag scan order. |
| Constructor Summary | |
(package private) |
MPEG_video(MPEG1 play,
io_tool tool)
Constructs a MPEG_video object, notices the parameters, inits "non_intra" and "null" matrixes
and creates an VLC (Hufmann) decoder object. |
| Method Summary | |
private void |
correct_col_pixel(int nr)
The method "correct_col_pixel" is called in predicted macro blocks. |
private void |
correct_lum_pixel(int nr)
The method "correct_lum_pixel" is called in predicted macro blocks. |
void |
join()
Waits until the "Video Decoder" thread is dead. |
private void |
Parse_Block(int nr)
The method "Parse_Block" parses a block according to ISO 11172-2. |
private void |
Parse_group_of_pictures()
The method "Parse_group_of_pictures" parses the group of pictures according to ISO 11172-2. |
private void |
Parse_macroblock(int b_nr)
The method "Parse_macroblock" parses a macroblock according to ISO 11172-2. |
private void |
Parse_picture()
The method "Parse_picture" parses a picture according to ISO 11172-2. |
private void |
Parse_sequence_header()
The method "Parse_sequence_header" parses the sequence header according to ISO 11172-2. |
private void |
Parse_slice()
The method "Parse_slice" parses a slice according to ISO 11172-2. |
void |
run()
The method "run" parses the MPEG video stream according to ISO 11172-2 and performs some initial steps. |
private void |
set_col_pixel(int nr)
The method "set_col_pixel" takes the re-transformed chrominance values and places them at the appropriate position. |
private void |
set_dct_diff(int dct_diff,
int dct_size)
The method "set_dct_diff" computes the DCT difference according to ISO 11172-2. |
private void |
set_lum_pixel(int nr)
The method "set_lum_pixel" takes the re-transformed luminance values and places them at the appropriate position. |
void |
start()
Starts the "Video Decoder" thread. |
void |
stop()
Stops the "Video Decoder" thread. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
private io_tool mpeg_stream
private Huffmann Huf
private int[] nullmatrix
private int[] intramatrix
private final int[] zigzag
private IDCT idct
private int[] dct_recon
private int[] non_intramatrix
private boolean lum_block
private int dct_dc_cr_past
private int dct_dc_cb_past
private int dct_dc_y_past
private int[][][] Pel_buffer
Pel_buffer[0] Pel_buffer[1] Pel_buffer[2]The frame at index "ak_idx" is the frame coming into being. The frame at index "pred_idx" is the frame for forward prediction. The frame at index "back_idx" is the frame for backward prediction. The method "Parse_Picture" administers the values of these 3 variables. The index in second dimension determins whether the information is:
luminance information - Pel_buffer[?][0] chrominance information (cr) - Pel_buffer[?][1] chrominance information (cb) - Pel_buffer[?][2]
private int ak_idx
private int pred_idx
private int back_idx
private MPEG1 Player
private static final int SEQ_END_CODE
private static final int SEQ_START_CODE
private static final int GOP_START_CODE
private static final int PICTURE_START_CODE
private static final int SLICE_MIN_START_CODE
private static final int SLICE_MAX_START_CODE
private static final int EXT_START_CODE
private static final int USER_START_CODE
public static final int I_TYPE
public static final int P_TYPE
public static final int B_TYPE
private int Width
private int Height
private int Asp_ratio
private int Pic_rate
private int mb_width
private int mb_height
private int Bit_rate
private int VBV_buffer
private boolean const_param
private boolean quant_matrix
private int Hour
private int Minute
private int Second
private int Pict_Count
private boolean Drop_Flag
private boolean Closed_Group
private boolean Broken_Link
private int Temp_ref
private int Pic_Type
private int Frame_nr_offset
private int Frame_nr
private int VBV_Delay
private boolean Full_pel_forw_vector
private int forw_f_code
private int forward_f
private int forward_r_size
private int motion_horiz_forw_code
private int motion_horiz_forw_r
private int motion_verti_forw_code
private int motion_verti_forw_r
private boolean Full_pel_back_vector
private int backward_f_code
private int backward_f
private int backward_r_size
private int motion_horiz_back_code
private int motion_horiz_back_r
private int motion_verti_back_code
private int motion_verti_back_r
private int Quant_scale
private int macro_block_address
private int past_intra_address
private int mb_row
private int mb_column
private boolean macro_block_motion_forward
private boolean macro_block_motion_backward
private boolean macro_block_pattern
private boolean macro_block_quant
private boolean macro_block_intra
private int[] pel1
private int[] pel2
private motion_data Forward
private motion_data Backward
private int pixel_per_lum_line
private int pixel_per_col_line
private int lum_y_incr
private int col_y_incr
private volatile java.lang.Thread video_thread
private int error_count
private volatile java.lang.Thread moribund
| Constructor Detail |
MPEG_video(MPEG1 play,
io_tool tool)
MPEG_video object, notices the parameters, inits "non_intra" and "null" matrixes
and creates an VLC (Hufmann) decoder object.
play - the reference to the applet.tool - the input movie's data bit stream.| Method Detail |
public void start()
public void stop()
public void join()
public void run()
run in interface java.lang.Runnable
private void Parse_sequence_header()
throws java.lang.InterruptedException,
java.io.EOFException
java.lang.InterruptedException - if another process interrupts the current process.
java.io.EOFException - if the end of the file has been reached.
private void Parse_group_of_pictures()
throws java.lang.InterruptedException,
java.io.EOFException
java.lang.InterruptedException - if another process interrupts the current process.
java.io.EOFException - if the end of the file has been reached.
private void Parse_picture()
throws java.lang.InterruptedException,
java.io.EOFException
java.lang.InterruptedException - if another process interrupts the current process.
java.io.EOFException - if the end of the file has been reached.
private final void Parse_slice()
throws java.lang.InterruptedException,
java.io.EOFException
java.lang.InterruptedException - if another process interrupts the current process.
java.io.EOFException - if the end of the file has been reached.
private final void Parse_macroblock(int b_nr)
throws java.lang.InterruptedException,
java.io.EOFException
b_nr - the macroblock number in slice.
java.lang.InterruptedException - if another process interrupts the current process.
java.io.EOFException - if the end of the file has been reached.
private final void Parse_Block(int nr)
throws java.lang.InterruptedException,
java.io.EOFException
nr - the block number (0..6) in macroblock.
java.lang.InterruptedException - if another process interrupts the current process.
java.io.EOFException - if the end of the file has been reached.
private void set_dct_diff(int dct_diff,
int dct_size)
dct_diff - the difference of the DC coefficientdct_size - the size of the DC coefficient.private void set_lum_pixel(int nr)
pixel_per_lum_line mb_row mb_columnare computed in "run()" as soon it was possible.
private void set_col_pixel(int nr)
pixel_per_col_line mb_row mb_columnare computed in "run()" as soon it was possible.
nr - the block number (0..6) in macroblock.private void correct_lum_pixel(int nr)
pixel_per_lum_line lum_y_incr mb_row mb_columnare computed in "run()" as soon it was possible.
nr - the block number (0..6) in macroblock.private void correct_col_pixel(int nr)
pixel_per_col_line col_y_incr mb_row mb_columnare computed in "run()" as soon it was possible.
nr - the block number (0..6) in macroblock.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||