headforever 2025-09-21 11:30 采纳率: 41%
浏览 7
已结题

h.264帧间搜索中,inter16x16方式。假设帧的长宽为(1920,1088),即x=0~1919,y=1087,越界问题的疑惑?

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行,作为相应位置的值。然后进行与残差相减?

  • 写回答

4条回答 默认 最新

  • 宝码香车 优质创作者: JavaScript技术领域 2025-09-21 11:32
    关注

    让【宝码香车】来帮您解答,本回答参考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行)

    具体操作:

    1. 以(1904,1087)为左上角点,实际可用的参考区域为:
    • 宽度:16像素(1904到1919)
    • 高度:1行(仅第1087行)
    1. 将第1087行(y=1087)的1904-1919像素垂直复制16次,构造出16x16的参考块
    2. 使用这个填充后的参考块与当前块计算残差

    验证计算

    • 参考块实际需要覆盖:y从1087到1087+15=1102
    • 有效行只有y=1087,因此1088-1102行都需要用y=1087行填充
    • 最终参考块数据完全来自第1087行的1904-1919像素的重复

    总结

    1. 实际搜索起始点:**(1904,1087)** ✓
    2. 填充方式:使用y=1087行1904-1919的像素复制16行
    3. 残差计算使用填充后的16x16块进行

    这种边界处理符合H.264标准规定的像素填充规范,确保运动补偿时能够正常获取参考像素值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 9月30日
  • 已采纳回答 9月22日
  • 创建了问题 9月21日