关键词搜索

源码搜索 ×
×

一段小小的C++代码(从保存H.264运动矢量过程中想到的)

发布2012-12-30浏览9196次

详情内容

        先看下面这段小小代码:

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int mv, i;
  6. for(mv = -10; mv < 0; mv++)
  7. {
  8. for(i = 0; i < 16; i++)
  9. {
  10. cout << mv << " ";
  11. }
  12. cout << endl;
  13. }
  14. return 0;
  15. }

       结果为:

-10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10
-9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9
-8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8
-7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7
-6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6
-5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5
-4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4
-3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3
-2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1


 

      假设有5个P-skip宏块(16 * 16),运动矢量分别为(-10, -9)(-8, -7)(-6, -5)(-4, -3)(-12, -1). 在JM8.6解码器中,对于每个P-skip宏块,都会认为每个4 * 4块有一个运动矢量,这样(-10, -9)就会分给16个4 * 4块,现在要把这16个运动矢量保存起来,显然,上面的程序不能实现,因为正确的形式应该是-10, -9,-10, -9...   , 那怎么办呢?想了一段时间,决定用下面的方式来实现:

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int buffer[2];
  6. int mv, i, flag = 0;
  7. for(mv = -10; mv < 0; mv++)
  8. {
  9. if(flag < 2)
  10. buffer[flag++] = mv;
  11. if(2 == flag)
  12. {
  13. for(i = 0; i < 16; i++)
  14. {
  15. cout << buffer[0] << " "
  16. << buffer[1] << " ";
  17. }
  18. flag = 0;
  19. cout << endl;
  20. }
  21. }
  22. return 0;
  23. }

         结果为:
-10 -9 -10 -9 -10 -9 -10 -9 -10 -9 -10 -9 -10 -9 -10 -9 -10 -9 -10 -9 -10 -9 -10
 -9 -10 -9 -10 -9 -10 -9 -10 -9
-8 -7 -8 -7 -8 -7 -8 -7 -8 -7 -8 -7 -8 -7 -8 -7 -8 -7 -8 -7 -8 -7 -8 -7 -8 -7 -8
 -7 -8 -7 -8 -7
-6 -5 -6 -5 -6 -5 -6 -5 -6 -5 -6 -5 -6 -5 -6 -5 -6 -5 -6 -5 -6 -5 -6 -5 -6 -5 -6
 -5 -6 -5 -6 -5
-4 -3 -4 -3 -4 -3 -4 -3 -4 -3 -4 -3 -4 -3 -4 -3 -4 -3 -4 -3 -4 -3 -4 -3 -4 -3 -4
 -3 -4 -3 -4 -3
-2 -1 -2 -1 -2 -1 -2 -1 -2 -1 -2 -1 -2 -1 -2 -1 -2 -1 -2 -1 -2 -1 -2 -1 -2 -1 -2
 -1 -2 -1 -2 -1

 

        OK, 实现了预定目标.

 

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载