?? changes_rm52i.txt
字號:
一. VEC問題: based on AVS-M1956 by Grandview Semi.
Encoder:
1. picture_header() in image.c
* row 159, 183
write the VEC_EXT byte to bitstream
* row 170, 194
force to write the value 3 to bitstream
because of the first I picture
2. PartitionMotionSearch() in mv-search.c
PartitionMotionSearch_bid() in mv-search.c
* row 1982, 2087
force the cost to maximum when forward precition
3. encode_one_macroblock() in rdopt.c
* row 1903
skip the Direct_B8x8 prediction
* row 2403
skip the Direct_16x16 prediction
* row 2406~2409, 2461~2462
skip the situation wehn vec_ext = 3
4. image.c
misc modification only for displaying more information
about VEC status.
Decoder:
1. Header() in image.c
* row 720~728
if finds the vec_flag and vec_ext is 1,
the current B picture should be discarded,
and find the next start code,
otherwise,
begin decoding for current picture.
* row 734~740
discard the middle slice_header start codes.
2. decode_one_frame() in image.c
* row 235~256
pls focus on 'vec_pr_flag'.
misc modification only for displaying more information
about VEC status.
二. IDCT問題 浙大修改
**Encoder:
inv_transform_B8() in block.c
Line:357~364 changed as
curr_blk[yy][0]=((__int16)((__int16)(b[0]+b[4])+4))>>3;
curr_blk[yy][1]=((__int16)((__int16)(b[1]+b[5])+4))>>3;
curr_blk[yy][2]=((__int16)((__int16)(b[2]+b[6])+4))>>3;
curr_blk[yy][3]=((__int16)((__int16)(b[3]+b[7])+4))>>3;
curr_blk[yy][7]=((__int16)((__int16)(b[0]-b[4])+4))>>3;
curr_blk[yy][6]=((__int16)((__int16)(b[1]-b[5])+4))>>3;
curr_blk[yy][5]=((__int16)((__int16)(b[2]-b[6])+4))>>3;
curr_blk[yy][4]=((__int16)((__int16)(b[3]-b[7])+4))>>3;
Line:421~428 changed as
curr_blk[0][xx]=((__int16)((__int16)(b[0]+b[4])+64))>>7;
curr_blk[1][xx]=((__int16)((__int16)(b[1]+b[5])+64))>>7;
curr_blk[2][xx]=((__int16)((__int16)(b[2]+b[6])+64))>>7;
curr_blk[3][xx]=((__int16)((__int16)(b[3]+b[7])+64))>>7;
curr_blk[7][xx]=((__int16)((__int16)(b[0]-b[4])+64))>>7;
curr_blk[6][xx]=((__int16)((__int16)(b[1]-b[5])+64))>>7;
curr_blk[5][xx]=((__int16)((__int16)(b[2]-b[6])+64))>>7;
curr_blk[4][xx]=((__int16)((__int16)(b[3]-b[7])+64))>>7;
**Decoder:
inv_transform_B8() in block.c
Line:150~157 changed as
curr_blk[yy][0]=((__int16)((__int16)(b[0]+b[4])+4))>>3;
curr_blk[yy][1]=((__int16)((__int16)(b[1]+b[5])+4))>>3;
curr_blk[yy][2]=((__int16)((__int16)(b[2]+b[6])+4))>>3;
curr_blk[yy][3]=((__int16)((__int16)(b[3]+b[7])+4))>>3;
curr_blk[yy][7]=((__int16)((__int16)(b[0]-b[4])+4))>>3;
curr_blk[yy][6]=((__int16)((__int16)(b[1]-b[5])+4))>>3;
curr_blk[yy][5]=((__int16)((__int16)(b[2]-b[6])+4))>>3;
curr_blk[yy][4]=((__int16)((__int16)(b[3]-b[7])+4))>>3;
Line:224~231 changed as
curr_blk[0][xx]=((__int16)((__int16)(b[0]+b[4])+64))>>7;
curr_blk[1][xx]=((__int16)((__int16)(b[1]+b[5])+64))>>7;
curr_blk[2][xx]=((__int16)((__int16)(b[2]+b[6])+64))>>7;
curr_blk[3][xx]=((__int16)((__int16)(b[3]+b[7])+64))>>7;
curr_blk[7][xx]=((__int16)((__int16)(b[0]-b[4])+64))>>7;
curr_blk[6][xx]=((__int16)((__int16)(b[1]-b[5])+64))>>7;
curr_blk[5][xx]=((__int16)((__int16)(b[2]-b[6])+64))>>7;
curr_blk[4][xx]=((__int16)((__int16)(b[3]-b[7])+64))>>7;
三. MAX_SYMBOLS_PER_MB 問題 清華大學修改
based on output of AVS zhuhai about the AVS-M1942
Encoder:
1. global.h
* row 532
change the difinition of MB_SyntaxElements
2. lencod.c
* row 314
allocate the memory for MB_SyntaxElements
the size is (img->height*img->width/256)+1200
3. lencod.c
*row 392
free the memory
四. reserved bit 問題 法國電信修改
(based on output of AVS zhuhai about the AVS-M1936 and mail from gaoyanjun
Encoder:
1. bitstream.c
*line 706-708
add WriteCopyrightExtension() and WriteCameraParametersExtension() to function start_sequence()
2. bitstream.c
*line 504-591
revise function WriteCameraParametersExtension() according to newest AVS1-P2 specification AVS_N1349 page 19-20
3. bitstream.c
*line 443-491
revise function WriteCopyrightExtension() according to newest AVS1-P2 pecification AVS_N1349 page 19
Decoder:
1. header.c
*line 433-481
revise function cameraparameters_extension() according to newest AVS1-P2 pecification AVS_N1349 page 19-20
2. header.c
*line 334-366
implement picture_display_extension() according to newest AVS1-P2 specification AVS_N1349 page 22 and page 37
2. header.c
*line 286-287
add picture_display_extension() to function extension_data(char *buf,int startcodepos, int length) according to newest AVS1-P2 specification AVS_N1349 page 17-18
五.M1929修改軟件部分 清華大學修改
Encoder:
1.header.c
* line 320
* line 319
decoder:
1.header.c
* line 578
2.macroblock.c
* line 520 ,521,802,817
六 一致性測試 :9.5 參考代碼中視頻碼流的第一個序列頭部分掉了0x80問題 清華大學修改
Encoder:
1.bitstream.c
* line 56 265 183
Decoder:
image.c
line 116
header.c
line 73
七 一致性測試:9.10 參考代碼中運動矢量還是會超出邊界16個像素之外問題 清華大學修改
encoder:
1.fastme.c
*line 802~821
* line 1748~1765
2.mv-search.c
* line 1422~1441
line 1635~1656
八. 一致性測試:9.12 bbv_buffer_size問題 清華大學修改
encoder
1.bitstream.c
* line 250
九. 一致性測試:9.6 picture_distance問題 清華大學修改
encoder
1. int calculate_distance(int blkref, int fw_bw ) mv-serach.c Ln93-214 見注釋// Tsinghua 200701
2. image() Ln788 見注釋// Tsinghua 200701
3. main() Ln152,154, 225
十.mb_delta_qp的問題 參考代碼原來的處理為正確的(參考前面一個MB的qp值),具體位置
decoder macroblock.c line 1212
十一. 20070204后解決的問題
1. deocoder bitstream.c 刪除尋找起始碼的條件 line 291
// if(img->current_mb_nr == 0) //commented by cjw AVS 20070204
// {
// if(StartCodePosition>6 && StartCodePosition<20)
// return 1;
// else
// {
// currStream->frame_bitoffset = currentbitoffset;
// return 0;
// }
// }
2. encoder bitstream.c 注釋掉679行,在一幅圖像結尾后不應該再次對齊
// write_align_stuff(pORABS); //commented by cjw AVS 20070204
3. encoder lencod.c line148 修改picture_distance的計算方法1
if(img->number==0) //modified by cjw AVS 20070204 S1pec. 7.2.3.1
picture_distance = 0;
else
{
if(img->type==B_IMG)
picture_distance = ((IMG_NUMBER - 1) * (input->jumpd + 1) + img->b_interval * img->b_frame_to_code)%256; // Tsinghua 200701
else
picture_distance = (IMG_NUMBER * (input->jumpd + 1))%256; // Tsinghua 200701
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -