⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changes_detail.txt

📁 H.264 codec source code
💻 TXT
字号:
Changes for JM 7.5
------------------
I updated the reference encoder with proper reference picture list handling
(independent list_0 and list_1 prediction), especially for MB and picture AFF.

Also picture and MB AFF can now be enabled independently in the config file.

I merged the updated deblocking filter along with many other fixes that were
already in the decoder dpb code.

This version is not a complete working encoder, but it's a big step forward
in code correction and cleanup.

I only worked through the main code paths, which means RD-optimization on,
standard motion estimation (no fme), no stored B pictures, no rate-control,
no prediction weights, no FMO.

The Non-RD-optimized code should probably work, but hasn't been tested.

The FME implementation copies large sections of encode_one_macroblock inside
a #define. That code duplication is bad coding style, which is the main
reason why I didn't touch it. I did some modifications in fast_me.c, but
due to some interface changes the file won't compile when enabling the
#define FAST_ME

The rate control makes many assumptions from the config file AFF options. 
I tried to update these, but I'm not sure if this works. In some places the 
if/else decisions seemed redundant. There were also lots of flags that
indicated frame or field coding. I tried to reduce these to a minimum.

I put some suggestions for updating FME/rate control in the section 
"implementation hints" below.

RDopt=2 mode: The simulated decoders of this mode actually don't have 
anything to do with current real decoders. I also think, the compile fixes 
that went into this section probably broke the mode at all. I would suggest
to remove the mode as long as there is nobody willing to invest much
time in a proper upgrade. So, is somebody interested in working on
this mode? TU Munich?

The weigted prediction functions make some keen assumptions on the reference
picture list organization (e.g. that there is only one list which contains 
exactly one backward reference picture in case of B pictures...)
I vaguely remember Jill Boyce saying something like: WP can't work properly
in the current reference software. We will fix that when there is working
reference picture list support.
Well, we now have proper reference picture list support...

In case of enabling stored B pictures the bidirectional prediction functions
need also an update. They make also assumptions about the reference picture
list sturcture.


known problems:
---------------
- num_slice_groups_minus1>0 (FMO) is broken

- slice coding needs to be checked (fixed number of bytes has been reported to fail)

- weigted prediction doesn't work

- RDOpt mode 2 doesn't work

- stored B pictures need to be checkeded (function call is disabled)

- rate control needs to be checked

- FME needs update

- direct mode mismatches with HHI software if direct_8x8_inference_flag=false
  (ldecod matches lencod)

- data partitioning?

- profile and level are set hard coded

- CABAC doesn't work for mb aff (context model selection problem at the encoder,
  HHI is working on a fix)


implementation hints:
---------------------
- all reference picture indexes and motion vectors are stored in enc_picture
  (global arrays are removed)

- all_mv has additional dimension for LIST_0 / LIST_1

- img->MbAffFrameFlag=1 indicates MB AFF coding in current picture

- img->mb_data[img->current_mb_nr].mb_field=1 indicates field coding for current mb pair

- (img->current_mb_nr%2)==0 indicates top mb (of mb pair)

- img->structure= TOP_FIELD/BOTTOM_FIELD/FRAME indiactes picture structure

- img->pix_x, img->pix_y -> current pixel coordinates in enc_picture

- img->opix_x, img->opix_y -> current pixel coordinates in original and reference picture

- img->block_x, img->block_y -> current 4x4 block coordinates in enc_picture


(KS)


Changes for JM 6.2
------------------

The decoder should be nearly in JVT-G50 (final draft) state. 

Known problems:
  - the old Parameter Set syntax is used by default. Enable
    #define G50_SPS
    in defines.h for the new syntax
  - the transform/inverse transform has not been reversed
  - the direct modes seem to have some mismatches (compared with the
    HHI implementation) for MB AFF (Alexis Tourapis is working on that)
  - PCM macroblock mode not supported
  - deblocking filter is not aligned to the text
  - reference picture reordering / mmco hasn't got much testing

The encoder in this version is completely broken. I started merging some
code from the decoder, but currently don't have the time to finish that.

If you're interested in encoder work, please contact me.

Karsten
Changes for JM 7.1 encoder
--------------------------
Known problems:
   - Decoder sometimes can't decode the bitstream with CABAC on, 
     multiple reference and B slice coding option.
   - constrained intra prediction

Siwei

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -