写入码流函数
bs_write函数
- 作用:用于将一定数量的比特写入到比特流(bitstream)中。这个函数是编码过程中的基本操作,用于将数据序列化到字节流中。
- 函数参数:
bs_t *s
:指向比特流状态的指针。int i_count
:要写入的比特数量。uint32_t i_bits
:要写入的比特值。
- 原理过程:
- 32 位系统:在32位系统中,WORD_SIZE通常设置为8,因为32位等于8个4位的比特。
s->cur_bits
:左移i_count
位数当前比特值s->cur_bits
,并与要写入的比特值i_bits
进行或操作,最后赋值作为当前比特值s->cur_bits
。s->i_left
:更新剩余比特数,减去写入的比特数i_count
。- 如果剩余比特数小于或等于32,表示当前字(word)已满,需要写入到内存中:
#if WORDS_BIGENDIAN
:如果是大端序系统,直接将cur_bits
右移相应的位数写入内存