h.264帧间搜索中,inter16x16方式。假设帧的长宽为(1920,1088),即x=0~1919,y=1087。若当前子宏块的顶点坐标为(1888,1072),且MVP(16,16)。则起始搜索点为(1888+16,1072+16),即为(1904,1088)。y的坐标已经超过边界,则:
1.最终有效搜索点为(1919,1087),对吗?
2.参考块使用(1904,1087)作为搜索起始点,然后使用(1904,1087)所在行作为填充?即使用1904到1919(1904+15=1919)像素,复制15行,作为相应位置的值。然后进行与残差相减?
h.264帧间搜索中,inter16x16方式。假设帧的长宽为(1920,1088),即x=0~1919,y=1087,越界问题的疑惑?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答 默认 最新
关注让【宝码香车】来帮您解答,本回答参考DeepSeek编写,并整理提供。
如果答案让您满意,请采纳、点赞、关注,非常感谢!
.
每日一句正能量,让它带给您好心情:你比你想象中更勇敢,比你看起来更强大。
.在H.264帧间预测的inter16x16模式中,当搜索点超出图像边界时,需要按照标准规范进行边界处理。针对您的问题:
1. 最终有效搜索点
当前子宏块顶点坐标(1888,1072),MVP(16,16),计算得到初始搜索点:
(1888+16, 1072+16) = (1904, 1088)由于图像有效范围是x∈[0,1919],y∈[0,1087]:
- x坐标1904在有效范围内(1904 ≤ 1919)
- y坐标1088超出下边界(1088 > 1087)
根据H.264标准,超出边界的坐标会被钳制到有效范围内:
最终有效搜索点 = (min(1904,1919), min(1088,1087)) = (1904, 1087)因此实际搜索起始点为**(1904,1087)**,而不是(1919,1087)。
2. 参考块填充方式
当参考块部分超出下边界时,标准规定:
- 水平方向:x坐标1904在有效范围内,可直接使用1904-1919的像素
- 垂直方向:y=1087是最后一行有效行,需要将第1087行复制填充到虚拟的1088-1102行(16x16块需要16行)
具体操作:
- 以(1904,1087)为左上角点,实际可用的参考区域为:
- 宽度:16像素(1904到1919)
- 高度:1行(仅第1087行)
- 将第1087行(y=1087)的1904-1919像素垂直复制16次,构造出16x16的参考块
- 使用这个填充后的参考块与当前块计算残差
验证计算
- 参考块实际需要覆盖:y从1087到1087+15=1102
- 有效行只有y=1087,因此1088-1102行都需要用y=1087行填充
- 最终参考块数据完全来自第1087行的1904-1919像素的重复
总结
- 实际搜索起始点:**(1904,1087)** ✓
- 填充方式:使用y=1087行1904-1919的像素复制16行 ✓
- 残差计算使用填充后的16x16块进行
这种边界处理符合H.264标准规定的像素填充规范,确保运动补偿时能够正常获取参考像素值。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报