摘要:
h.264标准中,CABAC的算术编码部分(9.3.4)只是一个参考,实际编码器中并不一定会按照它来实现,像JM中就有自己的算术编码实现方案。 在上篇文章CABAC中有详细的算术编码描述,在了解算术编码原理的基础上,下面分析JM18.6中的算术编码实现。 下图是JM方案编码的一个例子 结合上图的例子 阅读全文
摘要:
CABAC(Context-based Adaptive Binary Arithmetic Coding),基于上下文的自适应二进制算术编码。CABAC是H.264/AVC标准中两种熵编码中的一种,它的编码核心算法就是算术编码(Arithmetic Coding)。 算术编码 传统编码算法 算术编 阅读全文
摘要:
在H.264标准中,CAVLC(Context-based Adaptive Variable Length Coding)被用于亮度和色度残差数据编码。在标准的码流结构中,CAVLC编码方式描述为ce(v)。如果在编码时采用CAVLC,那么尽管在DCT时是以8x8块为单位进行的,在进行CAVLC时 阅读全文
摘要:
宏块在经过变换、量化后,得到大小为4x4或者8x8的矩阵,矩阵中的数据被称为transform coefficient levels。这些level在后面会被用于熵编码,因此我们需要把矩阵按照一定顺序进行扫描,得到数字序列。 扫描顺序在帧与场会有所不同 4x4块矩阵的扫描顺序如下 Zig-zag s 阅读全文
摘要:
宏块类型mb_type 宏块类型表示的是宏块不同的分割和编码方式,在h.264的语法结构中,宏块类型在宏块层(macroblock_layer)中用mb_type表示(请参考h.264语法结构分析中的macroblock_layer)。而mb_type是与当前宏块所在的slice相关的,相同数值的m 阅读全文
摘要:
NAL Unit Stream Network Abstraction Layer,简称NAL。 h.264把原始的yuv文件编码成码流文件,生成的码流文件就是NAL单元流(NAL unit Stream)。而NAL单元流,就是NAL单元组成的。 标准的Annex B规定了NAL单元组成NAL单元流 阅读全文
摘要:
在第2课中,我们有以下推导 首先我们知道傅里叶级数就是能通过不同频率的三角函数组合起来的数学表达式: $S_n(t) = \frac{a_0}{2}+\displaystyle{\sum^n_{k=1}}(a_kcos(2\pi kt)+b_ksin(2\pi kt))$ 它能通过推导得到以下复指数 阅读全文
摘要:
1. 傅里叶级数 (第1课) 周期性现象在数学上通过三角函数进行表述 (第2课) 现象能通过周期化都变得具有周期性。 有一种周期函数叫做傅里叶级数,他们由不同频率的三角函数组合而成,并且能进一步推导成复指数的形式,当中的系数被称为傅里叶系数。 可以推导出傅里叶系数为 $C_k = \displays 阅读全文
摘要:
X射线断层摄影术(Tomography) 在商业上有两种不同的成像方法:CT、MRI,两种方法在实现方法上有部分相通的地方,这里讲述的是CT。 假设上图为一个身体剖面图,内含有各种粘性物质,如骨头、肌肉、血管、脊髓等,用可变密度函数$\mu(x_1,x_2)$来描述。如果我们知道$\mu$是什么,则 阅读全文
摘要:
一维Ш函数复习 我们前面(十六课,十七课)已经学习过一维的Ш函数,标准的Ш函数表现为无数个脉冲函数分布在整数点上, 我们定义Ш为 $Ш(x) = \displaystyle{ \sum_{k=-\infty}^{\infty}\delta(x-k) }$ 而Ш函数最为深刻的一个性质就是:Ш的傅里叶变 阅读全文