《视频解密》中文版(第四版)第十章 H.261和H.263(第一部分)

有多种视频会议的规范,如表10.1所示。图10.1~10.3显示了一些常用视频会议系统的框图。

 

 

H.310

H.320

H.321

H.322

H.323

H.324

H.324/C

网路

宽带ISDN

ATM LAN

窄带交换数字ISDN

宽带ISDN

ATM LAN

固定带宽包交换网络

固定带宽包交换网络(以太网)

PSTN或POTS

移动式

视频编解码器

MPEG-2

H.261

H.261

H.263

H.261

H.263

H.261

H.263

H.261

H.263

H.261

H.263

H.261

H.263

音频编解码器

MPEG-2

G.711

G.722

G.728

G.711

G.722

G.728

G.711

G.722

G.728

G.711

G.722

G.728

G.711,G.722

G723,G.728

G.729

G.723

G.723

复用

H.222.0

H.222.1

H.221

H.221

H.221

H.225.0

H.223

H.223A

控制

H.245

H.230

H.242

H.242

H.230

H.242

H.245

H.245

H.245

多点

 

H.231

H.231

H.231

H.323

 

 

数据

T.120

T.120

T.120

T.120

T.120

T.120

T.120

通信接口

AAL I.363

AJM I.361

PHY I.432

I.400

AAL I.363

AJM I.361

PHY I.400

I.400

和TCP/IP

TCP/IP

V.34调制解调

移动通信

 

表10.1视频会议系列标准


H.261

ITU-T H.261是为视频会议开发的第一个视频压缩和解压缩标准。起初设计的比特率是p×64kbps,这儿p的范围是1~30,H.261是现在所有视频会议标准中的最低要求,如表10.1所示。

一个典型的H.261编码器框图如图10.4所示。提供了一路环回数字视频流,和其它的信号复用,如控制和音频信号。视频解码器执行相反的处理。

H.261视频数据使用图3.7中的4:2:0YCbCr格式的视频数据,基本的规范列于表10.2。最大图像速率可能会限制于传输图像之间的0,1,2或3非传输图像。

支持两种类型的图像(即,帧):

内或I帧:一个没有预测参考帧的帧。

间或P帧:一个基于前一帧的帧。

《视频解密》中文版(第四版)第十章 H.261和H.263(第一部分) - 生翼 - 生翼的博客

 图10.1典型H.320系统

《视频解密》中文版(第四版)第十章 H.261和H.263(第一部分) - 生翼 - 生翼的博客

 图10.2典型H.323系统

《视频解密》中文版(第四版)第十章 H.261和H.263(第一部分) - 生翼 - 生翼的博客

 图10.3典型H.324系统


视频编码层

如图10.4所示,基本功能是预测,块变换和量化。

预测误差(间模式)或输入图像(内模式)被分解成8采样点×8行的块,分段成发送或非发送。4个亮度块和2个空间相关的色彩块组合成一个16采样点×16行的宏块,如图10.5所示。

模式和传输块的准则没有被推荐,作为编码策略的一部分可以动态变化。传输块被变换以及由此产生的量化系数和可变长编码。


预测

预测是图片之间的,可能包括运动补偿和空间滤波器。使用预测的编码模式叫做帧间,没有使用预测的编码模式叫做帧内。


运动补偿

运动补偿在编码器中是可选的。解码器必须支持接受每个宏块一个运动向量。运动向量是受限的——所有以它们参考的采样点必须包含在解码的图像区域中。

运动向量的水平和垂直分量有不超过±15的整数值。运动向量用于宏块中的所有体格Y块。Cb和Cr块的运动向量由宏块向量值的一半推导得到。

运动向量的一个正的水平和垂直分量值指示从前一图像样本点形成的预测是空间上向右或向下的样本点被预测。

《视频解密》中文版(第四版)第十章 H.261和H.263(第一部分) - 生翼 - 生翼的博客

 图10.4典型的H.261编码器

 


参数

CIF

QCIF

有效分辨率(Y)

352×288

176×144

帧刷新率

29.97Hz

YCbCr采样结构

4:2:0

YCbCr编码形式

PCM均匀量化,每个采样点8位


 

表10.2    H.261 YCbCr参数


环路滤波器

预测处理可能使用一个2D空间滤波器,处理一个预测的包换8×8采样点的块。

滤波器被分成水平和垂直功能。两者都是非递归的,系数是0.25,0.5,0.25,除了块的边缘,那里有一个抽头在块之外。在这种情况下,系数变成0,1,0。

根据宏块的类型,对于一个宏块中的所有6个块,滤波器开启或关闭。


DCT,IDCT

发送的块首先经过一个8×8的DCT(离散余弦变换)处理。IDCT的输出(逆DCT)经过裁剪后的范围是-256~255,用9位表示。

变换的计算过程没有定义,但是逆变换必须符合公差在一定范围内。


量化

在一个宏块内部,除了一个帧内DC之外,所有的系数都是用相同的量化。第一个帧内系数通常使用一个步长为8没有死区的线性量化DC变换值。其它31个量化也是线性的,但是在0的周围有一个中央死区,一个范围2~62的偶数补偿。


图像重构裁剪

裁剪功能被用来阻止变换系数幅度量化失真,可能导致在编码器和解码器环路中的数学溢出。裁剪工具被应用于重构图像,由预测求和和预测误差导致的。裁剪强制小于0的值为0,大于255的值为255。


编码控制

虽然不是H.261的一部分,但是几个参数可能多用于控制编码的视频数据速率。这些包括预编码处理,量化,块意义准则,时间欠采样。时间欠采样通过丢弃完整图像执行。


强制更新

这是通过强制使用帧内模式的编码算法实现的。为了控制逆变换不匹配误差的叠加,一个宏块应该在它每传送132次至少被强制更新。


视频比特流

除非另外指定,最高比特被首先传送。这是第1位,在编码表中的最左端位。除非另有规定,所有未使用或空闲位被设置成“1”。

《视频解密》中文版(第四版)第十章 H.261和H.263(第一部分) - 生翼 - 生翼的博客

 图10.5    H.261组块,宏块和块的分布

 

视频比特流是一个4层的层次化结构。由高到底的层次是:

             图像

             组块(GOB)

             宏块(MB)

             块


图像层

每个图像数据包括一个图像头,跟随其后的组块(GOBs)。结构如图10.6所示。删除图像的图像头不传送。

图像开始码(PSC)

PCS是一个20-比特的字,值是0000 0000 0000 0001 0000。

时间参考(TR)

TR是一个5-比特的二进制数,表示32个可能值。它是由前面非传送的图片的图片头的值加1得到(29.97Hz)。算术仅处理最低5位。

类型信息(PTYPE)

图像的6位信息是:

位1      画面分割指标:“0”= 关毕,“1”= 开启

位2      摄像机文件指标:“0”= 关闭,“1”= 开启

位3      冻结图像释放:“0”= 关闭,“1”= 开启

位4      源格式:“0”= QCIF,“1”= CIF

位5      可选的静止图像模式:“0”= 开启,“1”= 关闭

位6      备用

《视频解密》中文版(第四版)第十章 H.261和H.263(第一部分) - 生翼 - 生翼的博客

 图10.6    H.261视频比特流层次结构

额外插入信息(PEI)

PEI是一个位,当被置“1”时,表示存在以下可选字段。

备用信息(PSPARE)

如果PEI被置“1”,那么跟随的这9比特包括8比特数据(PSPARE)和另一个PEI位以指示是否还跟随另一个9比特,以此类推。


组块(GOB)层

每个图像被分成组块(GOB)。一个GOB包含1/12幅CIF图片区域1/3幅QCIF图片区域(见图10.5)。一个GOB对应176采样点×48行的Y和88×24阵列的Cb和Cb数据。

每个GOB数据包含GOB头,跟随其后的是宏块数据,如图10.6所示。在图10.5中的顺序编号的CIF或QCIF图像开始码之间每个GOB头传送一次,即使没有宏块数据存在于GOB中。

组块开始码(GBSC)

GBSC是一个16比特字,值是0000 0000 0000 0001。

组块编号(GN)

GN是一个4位的二进制值,指示组块的位置。在图10.5中这些比特是二进制表示的编号。编号13,15和15保留为将来使用。

量化信息(CQUANT)

CQUANT是一个5-比特的二进制值指示组块所使用的量化,直到被任何接下来的MQUANT重写。允许值是1~31。

额外插入信息(GEI)

GEI是一个比特,它为“1”时,指示随后存在可选数据字段。

空闲信息(GSPARE)

如果GEI被设置为“1”,那么跟随的这9比特包含8比特的数据(GSPARE)另一个GEI比特指示是否还有9比特数据跟随其后,以此类推。


宏块(MB)层

每个GOB被分成33个宏块,如图10.5所示。一个宏块对应16个采样×16行的Y和8×8阵列的Cb和Cr数据。

宏块数据包括一个宏块头,跟随块数据(见图10.6)。

宏块地址(MBA)

MBA是一个可变长的码字指示在一个组块中宏块的位置。发送次序如图10.5所示。对于一个GOB的第一个宏块,MBA是图10.5中的绝对地址。接下来的宏块,MBA是和绝对地址宏块和最后发送宏块之间的偏移量。MBA的码表有表10.3给出。

一个码字可以立即填充在GOB头后面或一个编码的宏块(叫做MBA填充)。这个码字被解码器丢弃。

起始码的码字也在表10.3中列举。MBA通常包括在传送的宏块中。当红块包含的图像部分没有信息时,它们不被传送。

类型信息(MTYPE)

MTYPE是一个可变长的码字包含宏块和数据元存在的信息。宏块类型包括元素和可变长码字,如表10.4所列。MTYPE通常包含在发送的宏块中。

量化(MQUANT)

MQUANT目前仅由MTYPE指示。它是一个5-bit码字指示这里和任何组块中的块的量化,直到被任何接下来的MQUANT覆盖为止。MQUANT的码字和GQUANT一样。

 

MBA

编码

MBA

编码

1

1

 

 

17

0000

0101

10

 

2

011

 

 

18

0000

0101

01

 

3

010

 

 

19

0000

0101

00

 

4

0011

 

 

20

0000

0100

11

 

5

0010

 

 

21

0000

0100

10

 

6

0001

1

 

22

0000

0100

011

 

7

0001

0

 

23

0000

0100

010

 

8

0000

111

 

24

0000

0100

001

 

9

0000

110

 

25

0000

0100

000

 

10

0000

1011

 

26

0000

0011

111

 

11

0000

1010

 

27

0000

0011

110

 

12

0000

1001

 

28

0000

0011

101

 

13

0000

1000

 

29

0000

0011

100

 

14

0000

0111

 

30

0000

0011

011

 

15

0000

0110

 

31

0000

0011

010

 

16

0000

0101

11

32

0000

0011

001

 

 

33

0000

0011

000

 

MBA填充

0000

0001

111

 

开始码

0000

0000

0000

0001

 

表10.3    H.261的MBA可变长编码表

 

 

 

 

预测

MQUANT

MVD

CBP

TCOEFF

编码

帧内

 

 

 

×

0001

001

 

帧内

×

 

 

×

0000

 

 

帧间

 

 

×

×

1

1

 

帧间

×

 

×

×

0000

0000

1

帧间+MC

 

×

 

 

0000

0001

 

帧间+MC

 

×

×

×

0000

0000

01

帧间+MC

×

×

×

×

0000

 

 

帧间+MC+FIL

 

×

 

 

001

 

 

帧间+MC+FIL

 

×

×

×

01

 

 

帧间+MC+FIL

×

×

×

×

0000

01

 

 

表10.4    H.261 MTYPE可变长码表

运动向量数据(MVD)

运动向量数据包括宏块的所有运动补偿(MC),有MTYPE指示。MVD由宏块向量减去前面宏块的向量包含。在如下情况下前面宏块的向量被认为是0:

(a)宏块1,12和23的MVD评定。

(b)MBA不存在的不同于1的宏块MVD评定。

(c)前面宏块的MTYPE不是运动补偿的。

运动向量数据包括一个可变长的水平分量码字,跟随一个可变长的垂直分量码字。可变长码字列举于表10.5

 


向量差

编码

向量差

编码

-16&16

0000

0011

001

1

010

 

 

-15&17

0000

0011

011

2&-30

0010

 

 

-16&18

0000

0011

101

3&-29

0000

0

 

-13&19

0000

0011

111

4&-28

0000

110

 

-12&20

0000

0100

001

5&-27

0000

1010

 

-11&21

0000

0100

011

6&-26

0000

1000

 

-10&22

0000

0100

11

7&-25

0000

0110

 

-9&23

0000

0101

01

8&-24

0000

0101

10

-8&24

0000

0101

11

9&-23

0000

0101

00

-7&25

0000

0111

 

10&-22

0000

0100

10

-6&26

0000

1001

 

11&-21

0000

0100

010

-5&27

0000

1011

 

12&-20

0000

0100

000

-4&28

0000

111

 

13&-19

0000

0011

110

-3&29

0001

1

 

14&-18

0000

0011

100

-2&30

0011

 

 

15&-17

0000

0011

010

-1

011

 

 

 

0

0

 

 


表10.5    H.261 MVD可变长码表

编码块特征(CBP)

如果MTYPE指示,那么可变长的CBP存在。它指示宏块中的哪个块有至少一个变换系数被传送。特征序号表示为:

P0P1P2P3P4P5

CBP序号的码字由表10.6给出。


块层

一个宏块有4个Y块,一个Cb块和一个Cr块组成(见图10.5)。

一个8采样×8行的数据块包含变换系数码字,跟随一个块结束(EOB)标志如图10.6所示。块的传送顺序如图10.5所示。

 


CBP

码字

CBP

码字

60

111

 

62

0100

0

4

1101

 

24

0011

11

8

1100

 

36

0011

10

16

1011

 

3

0011

01

32

1010

 

63

0011

00

12

1001

1

5

0010

111

48

1001

0

9

0010

110

20

1000

1

17

0010

101

40

1000

0

33

0010

100

28

0111

1

6

0010

011

44

0111

0

10

0010

010

52

0110

1

18

0010

001

56

0110

0

34

0010

000

1

0101

1

7

0001

1111

61

0101

0

11

0001

1110

2

0100

1

19

0001

1101


 

表10.6a  H.261 CBP可变长码表 

 


CBP

码字

CBP

码字

35

0001

1100

38

0000

1100

 

13

0001

1011

29

0000

1011

 

49

0001

1010

45

0000

1010

 

21

0001

1001

53

0000

1001

 

41

0001

1000

57

0000

1000

 

14

0001

0111

30

0000

0111

 

50

0001

0110

46

0000

0110

 

22

0001

0101

54

0000

0101

 

42

0001

0100

58

0000

0100

 

15

0001

0011

31

0000

0011

1

51

0001

0010

47

0000

0011

0

23

0001

0001

55

0000

0010

1

43

0001

0000

59

0000

0010

0

25

0000

1111

27

0000

0001

1

37

0000

1110

39

0000

0001

0

26

0000

1101

 


 

表10.6b  H.261 CBP可变长码表

传输系数(TCOEFF)

当MTYPE指示帧内时,传输系数存在于宏块中的所有6个。否则,MTYPE和CBP信号指示它们中的哪一块有系数数据。量化的DCT系数的传输顺序如图7.59所示。

最常见的情况是连续0(RUN)组合跟着一些值(电平),使用可变长码编码,列举与表10.7。由于CBP指示的是没有系数数据的块,EOB不能在第一个系数处出现。最后的比特“s”指示电平的符号:“0” = 正,“1” = 负。

另外的组合(RUN,电平)使用一个20-比特的编码:6比特游程(ESC),6比特的RUN,和8比特的电平,如表10.8所示。

两个编码表使用可变长编码:一个用于帧间第一个电平,帧间+MC和帧间+MC+FIL块;另一个用于除了第一个帧内块之外的所有其它电平,它是一个固定长度的8比特编码。

除了帧内DC之外,所有系数有范围为-2048~2047的重构电平(REC)。重构电平是由如下方程恢复过来的,并会导致剪辑。QUANT的范围是1~31,由GQUANT或MQUANT传送。

QUANT = 奇数:

      对于电平 > 0

             REC = QUANT×(2×LEVEL + 1)

      对于电平 < 0

             REC = QUANT×(2×LEVEL - 1)

QUANT = 偶数:

      对于电平 > 0

             REC = (QUANT×(2×LEVEL + 1))- 1

      对于电平 < 0

             REC = (QUANT×(2×LEVEL - 1))+ 1

      对于电平 = 0

             REC = 0

对于帧内DC块,第一个系数典型有一个8阶梯的量化值没有死区,产生一个8-比特编码值,n。黑色的编码值是0001 0000(16),白色的编码值是1110 1011(235)。一个值1024的变换值是1111 1111。编码值0000 0000和1000 0000没有使用。解码值是8n。除了n值是255将重建1024值之外。


静态图像传输

H.261允许传送一个静止图像4次,分辨率是当前所选的视频格式。如果格式是QCIF,那么一个静态的CIF分辨率可能被传送;如果视频格式是CIF的,一个静态的704×576分辨率可能被传送。

《视频解密》中文版(第四版)第十章 H.261和H.263(第一部分) - 生翼 - 生翼的博客

 图10.7典型H.261解码序列 

 


Run

Level

编码

EOB

 

10

 

 

 

0

1

1s

如果是块中的第一个系数*

0

1

11s

如果不是块中的第一个系数

0

2

0100

s

 

 

0

3

0010

1s

 

 

0

4

0000

110s

 

 

0

5

0010

0110

s

 

0

6

0010

0001

s

 

0

7

0000

0010

10s

 

0

8

0000

0001

1101

s

0

9

0000

0001

1000

s

0

10

0000

0001

0011

s

0

11

0000

0001

0000

s

0

12

0000

0001

1101

0s

0

13

0000

0000

1100

1s

0

14

0000

0000

1100

0s

0

15

0000

0000

1011

1s

1

1

011s

 

 

 

1

2

0001

10s

 

 

1

3

0010

0101

s

 

1

4

0000

0011

00s

 

1

5

0000

0001

1011

s

1

6

0000

0000

1011

0s

1

7

0000

0000

1010

1s

2

1

0101

s

 

 

2

2

0000

100s

 

 

2

3

0000

0010

11s

 

2

4

0000

0001

0100

s

2

5

0000

0000

1010

0s

3

1

0011

1s

 

 

3

2

0010

0100

s

 

3

3

0000

0001

1100

s

3

4

0000

0000

1001

1s


 

表10.7a  H.261 TCOEFF可变长编码

*在帧内宏块中从不使用 

 


Run

Level

编码

4

1

0011

0s

 

 

4

2

0000

0011

11s

 

4

3

0000

0001

0010

s

5

1

0001

11s

 

 

5

2

0000

0010

01s

 

5

3

0000

0000

1001

0s

6

1

0001

01s

 

 

6

2

0000

0001

1110

s

7

1

0001

00s

 

 

7

2

0000

0001

0101

s

8

1

0000

111s

 

 

8

2

0000

0001

0001

s

9

1

0000

101s

 

 

9

2

0000

0000

1000

1s

10

1

0010

0111

s

 

10

2

0000

0000

1000

0s

s11

1

0010

0011

s

 

12

1

0010

0010

s

 

13

1

0010

0000

s

 

14

1

0000

0011

10s

 

15

1

0000

0011

01s

 

16

1

0000

0010

00s

 

17

1

0000

0001

1111

s

18

1

0000

0001

1010

s

19

1

0000

0001

1001

s

20

1

0000

0001

0111

s

21

1

0000

0001

0110

s

22

1

0000

0000

1111

1s

23

1

0000

0000

1111

0s

24

1

0000

0000

1110

1s

25

1

0000

0000

1110

0s

26

1

0000

0000

1101

1s

ESC

 

0000

01

 

 


 表10.7b  H.261 TCOEFF可变长编码

 

Run

编码

电平

编码

0

0000 00

-128

禁止

1

0000 01

-127

1000 0001

63

1111 11

-2

1111 1110

 

 

-1

1111 1111

 

 

0

禁止

 

 

1

0000 0001

 

 

2

0000 0010

 

 

 

 

127

0111 1111

 

表10.8    H.261 Run,电平码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据DES加密的过程,第一轮输出的4,17,41和45位是通过以下步骤计算得出的: 1. 将初始置换IP作用于输入的64位明文,得到L0和R0,其中L0为左32位,R0为右32位。 2. 将R0进行扩展置换,得到48位的扩展R0。 3. 将扩展R0和密钥的第一轮子密钥进行异或运算,得到48位的结果。 4. 将异或结果分成8组,每组6位,对每组进行S盒替代,得到4位输出。 5. 将每组的4位输出连接起来,得到32位输出。 6. 将32位输出进行置换,得到最终的32位结果。 因此,对于密文和密钥的各位全为1的情况,第一轮子密钥为: 密钥全为1,经过PC-1置换后得到56位密钥:1111111100000011111111000000111111110000001111111100000011111111 将上述密钥分成左右两部分,分别循环左移1位,再将左右两部分合并后,经过PC-2置换得到第一轮子密钥: 密钥左移1位后:1111111000000111111110000001111111100000011111111000000111111 密钥右移1位后:1111111110000001111111100000111111110000001111111100000011111111 合并后得到第一轮子密钥:1111111000000111111110000001111111110000001111111100000011111111 将上述密钥按位与扩展后的R0进行运算得到48位的结果: R0扩展后:1111111100000011000000111111110000001100000011110000000011111111 异或结果:000000010000010011111100111111101010111000011101 将上述结果分成8组,每组6位,得到以下8组: 000000, 010000, 010011, 111100, 111111, 101010, 111000, 011101 对于每组6位,根据DES标准中的S盒,得到4位输出。根据S盒的定义,S盒的输入为6位,输出为4位,因此共输出32位。将每组的4位输出连接起来,得到32位输出: 0010 1111 1101 0100 1010 0000 1111 0101 最后,将32位输出进行置换,得到最终的32位结果: 1100 1000 0001 0000 1100 1101 1110 0101 因此,DES解密第一轮输出的4,17,41和45位分别为1100,0001,1100和1110。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值