예제 #1
0
        public void ShowMacroblock(Macroblock mb)
        {
            m_Mb = mb;
            int xFracL, yFracL;

            H264Mb mbH264 = (m_Mb.Mb as H264Mb);

            for (int i = 0; i < 16; ++i)
            {
                xFracL = mbH264.mvL0[i].x & 3;
                yFracL = mbH264.mvL0[i].y & 3;
                m_TextBlocks[i].Text  = "---List0---";
                m_TextBlocks[i].Text += String.Format("\nMV({0}, {1})\nMVD({2}, {3})", mbH264.mvL0[i].x, mbH264.mvL0[i].y, mbH264.mvd_l0[i].x, mbH264.mvd_l0[i].y);
                m_TextBlocks[i].Text += String.Format("\nFrac({0}, {1})", xFracL != 0 ? (xFracL == 2 ? "Half" : "Quater") : "Integer", yFracL != 0 ? (xFracL == 2 ? "Half" : "Quater") : "Integer");
                m_TextBlocks[i].Text += String.Format("\nPOC={0}, RefIdx={1}", mbH264.POC0[H264Mb.BLK4x4ToBLK8x8[i]], mbH264.ref_idx_L0[H264Mb.BLK4x4ToBLK8x8[i]]);
            }

            if (mbH264.SliceType == SliceType.B_SLICE)
            {
                for (int i = 0; i < 16; ++i)
                {
                    xFracL = mbH264.mvL1[i].x & 3;
                    yFracL = mbH264.mvL1[i].y & 3;
                    m_TextBlocks[i].Text += "\n---List1---";
                    m_TextBlocks[i].Text += String.Format("\nMV({0}, {1})\nMVD({2}, {3})", mbH264.mvL1[i].x, mbH264.mvL1[i].y, mbH264.mvd_l1[i].x, mbH264.mvd_l1[i].y);
                    m_TextBlocks[i].Text += String.Format("\nFrac({0}, {1})", xFracL != 0 ? (xFracL == 2 ? "Half" : "Quater") : "Integer", yFracL != 0 ? (xFracL == 2 ? "Half" : "Quater") : "Integer");
                    m_TextBlocks[i].Text += String.Format("\nPOC={0}, RefIdx={1}", mbH264.POC1[H264Mb.BLK4x4ToBLK8x8[i]], mbH264.ref_idx_L1[H264Mb.BLK4x4ToBLK8x8[i]]);
                }
            }
        }
        public void ShowMacroblock(Macroblock mb)
        {
            H264Mb mbH264 = (mb.Mb as H264Mb);

            m_TextBlockAddress.Text    = String.Format("{0}({1},{2})", mb.Mb.Address, mb.Mb.X, mb.Mb.Y);
            m_TextBlockLocation.Text   = String.Format("({0},{1})", mb.Mb.X << 4, mb.Mb.Y << 4);
            m_TextBlockType.Text       = mbH264.TypeDescription;
            m_TextBlockPicture.Text    = String.Format("{0} (DQId={1})", mb.PictureId, mb.LayerId);
            m_TextBlockSlice.Text      = String.Format("{0}\n{1}", mb.SliceId, mbH264.SliceType);
            m_TextBlockBitsStart.Text  = String.IsNullOrEmpty(mb.Mb.BitsStart) ? "-" : mb.Mb.BitsStart;
            m_TextBlockBitsCount.Text  = mb.Mb.BitsCount.ToString();
            m_TextBlockQP.Text         = mbH264.QP.ToString();
            m_TextBlockQPC.Text        = mbH264.QPC.ToString();
            m_TextBlockCBP.Text        = String.Format("{0}: L={1},C={2}", mbH264.CBP, mbH264.CBP & 15, mbH264.CBP >> 4);
            m_TextBlockMbPartNum.Text  = mbH264.NumMbPart.ToString();
            m_TextBlockMbPartSize.Text = String.Format("({0},{1})", mbH264.MbPartSize.Width, mbH264.MbPartSize.Height);
            if (mbH264.IsIntra)
            {
                m_TextBlockMbIntraChromaMode.Text = String.Format("[{0}] {1}", (int)mbH264.IntraChromaPredMode, mbH264.IntraChromaPredMode);
            }
            else
            {
                m_TextBlockMbIntraChromaMode.Text = "-";
            }
            m_TextBlockMD5.Text = String.Format("Y\t= {0}\nU\t= {1}\nV\t= {2}", mb.MD5Y, mb.MD5U, mb.MD5V).ToUpper();
        }
예제 #3
0
        public void ShowMacroblock(Macroblock mb)
        {
            H264Mb mbH264 = (mb.Mb as H264Mb);

            m_TextBlockInCropWindow.Text           = mbH264.IsInCropWindow ? "True" : "False";
            m_TextBlockResidualPredictionFlag.Text = mbH264.IsResidualPredictionFlag ? "1" : "0";
            m_TextBlockBLSkippedFlag.Text          = mbH264.IsBLSkippedFlag ? "1" : "0";
        }
예제 #4
0
        public void ShowMacroblock(Macroblock mb)
        {
            m_Mb = mb;

            H264Mb mbH264 = (m_Mb.Mb as H264Mb);

            m_TextBlock0.Text = mbH264.BlkModes[0].ToString();
            m_TextBlock1.Text = mbH264.BlkModes[1].ToString();
            m_TextBlock2.Text = mbH264.BlkModes[2].ToString();
            m_TextBlock3.Text = mbH264.BlkModes[3].ToString();
        }
예제 #5
0
        public void ShowMacroblock(Macroblock mb)
        {
            m_Mb = mb;

            H264Mb mbH264 = (m_Mb.Mb as H264Mb);

            for (int i = 0; i < 16; ++i)
            {
                m_TextBlocks[i].Text = String.Format("[{0}] {1}", (int)mbH264.Intra4x4PredMode[i], Utils.GetIntra4x4PredModeName(mbH264.Intra4x4PredMode[i]));
            }
        }
예제 #6
0
        public void ShowMacroblock(Macroblock mb)
        {
            m_Mb = mb;
            H264Mb mbH264 = m_Mb.Mb as H264Mb;

            if (mbH264 != null) // For now only H.264 is supported
            {
                // General
                if (m_ScreenGeneral == null)
                {
                    m_ScreenGeneral = new ScreenMbInfoGeneral();
                    AddToTabControl(m_ScreenGeneral, tabControl);
                }
                m_ScreenGeneral.ShowMacroblock(m_Mb);

                // Intra4x4PredMode
                if (mbH264.Mode == MbMode.INTRA_4X4)
                {
                    if (m_ScreenMbInfoI4x4PredMode == null)
                    {
                        m_ScreenMbInfoI4x4PredMode     = new ScreenMbInfoI4x4PredMode();
                        m_ScreenMbInfoI4x4PredMode.Tag = false;
                    }
                    if (!(m_ScreenMbInfoI4x4PredMode.Tag as Boolean?).Value)
                    {
                        AddToTabControl(m_ScreenMbInfoI4x4PredMode, tabControl);
                        m_ScreenMbInfoI4x4PredMode.Tag = true;
                    }
                    m_ScreenMbInfoI4x4PredMode.ShowMacroblock(m_Mb);
                }
                else
                {
                    if (m_ScreenMbInfoI4x4PredMode != null && (m_ScreenMbInfoI4x4PredMode.Tag as Boolean?).Value)
                    {
                        RemoveFromTabControl(m_ScreenMbInfoI4x4PredMode, tabControl);
                        m_ScreenMbInfoI4x4PredMode.Tag = false;
                    }
                }

                // SubBlocks
                if (mbH264.IsInter8x8)
                {
                    if (m_ScreenMbInfoSubBlocks == null)
                    {
                        m_ScreenMbInfoSubBlocks     = new ScreenMbInfoSubBlocks();
                        m_ScreenMbInfoSubBlocks.Tag = false;
                    }
                    if (!(m_ScreenMbInfoSubBlocks.Tag as Boolean?).Value)
                    {
                        AddToTabControl(m_ScreenMbInfoSubBlocks, tabControl);
                        m_ScreenMbInfoSubBlocks.Tag = true;
                    }
                    m_ScreenMbInfoSubBlocks.ShowMacroblock(m_Mb);
                }
                else
                {
                    if (m_ScreenMbInfoSubBlocks != null && (m_ScreenMbInfoSubBlocks.Tag as Boolean?).Value)
                    {
                        RemoveFromTabControl(m_ScreenMbInfoSubBlocks, tabControl);
                        m_ScreenMbInfoSubBlocks.Tag = false;
                    }
                }

                // InterPred
                if (!mbH264.IsIntra)
                {
                    if (m_ScreenMbInfoInterPred == null)
                    {
                        m_ScreenMbInfoInterPred     = new ScreenMbInfoInterPred();
                        m_ScreenMbInfoInterPred.Tag = false;
                    }
                    if (!(m_ScreenMbInfoInterPred.Tag as Boolean?).Value)
                    {
                        AddToTabControl(m_ScreenMbInfoInterPred, tabControl);
                        m_ScreenMbInfoInterPred.Tag = true;
                    }
                    m_ScreenMbInfoInterPred.ShowMacroblock(m_Mb);
                }
                else
                {
                    if (m_ScreenMbInfoInterPred != null && (m_ScreenMbInfoInterPred.Tag as Boolean?).Value)
                    {
                        RemoveFromTabControl(m_ScreenMbInfoInterPred, tabControl);
                        m_ScreenMbInfoInterPred.Tag = false;
                    }
                }

                // SVC
                if (m_ScreenMbInfoSVC == null)
                {
                    m_ScreenMbInfoSVC = new ScreenMbInfoSVC();
                    AddToTabControl(m_ScreenMbInfoSVC, tabControl);
                }
                m_ScreenMbInfoSVC.ShowMacroblock(m_Mb);
            }
        }