Version 0.1
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,95 @@
|
||||
|
||||
\usetikzlibrary{arrows,matrix}
|
||||
\usetikzlibrary{fit}
|
||||
\usetikzlibrary{intersections}
|
||||
\usetikzlibrary{intersections}
|
||||
% \usetkzobj{all}
|
||||
|
||||
\pgfdeclarelayer{background}
|
||||
\pgfdeclarelayer{foreground}
|
||||
\pgfsetlayers{background,main,foreground}
|
||||
|
||||
|
||||
\def\scale{1}
|
||||
|
||||
|
||||
\begin{tikzpicture}[
|
||||
font=\scriptsize,
|
||||
auto,
|
||||
node distance=1cm,
|
||||
scale=\scale,
|
||||
every node/.style={scale=\scale},
|
||||
template/.style={thick, text centered},
|
||||
block/.style={template, rectangle, text width=1.3cm, ,inner sep=3, minimum height=.6cm},
|
||||
arrow/.style={template, draw, -latex},
|
||||
point/.style={template, draw, fill=black, circle,inner sep=0, minimum size=3}
|
||||
]
|
||||
|
||||
% Define extra block styles
|
||||
\tikzstyle{sumBlock} = [template, draw, circle, inner sep=0cm, minimum size=0.3cm]
|
||||
\tikzstyle{propBlock} = [block, draw, fill=blue!15]
|
||||
\tikzstyle{refBlock} = [block, draw, fill=gray!10]
|
||||
\tikzstyle{propBlockNoDraw} = [block, fill=\TikZColorFillProp]
|
||||
\tikzstyle{refBlockNoDraw} = [block, fill=\TikZColorFill]
|
||||
|
||||
|
||||
\newcommand{\DrawEdgesTwoNodes}[2]{\path[arrow,-] (#1.south west) |- (#2.north east) |- (#1.south west);}
|
||||
|
||||
%% Encoder/Decoder
|
||||
\node [refBlockNoDraw, text width=1.1cm, minimum height=.6cm] (Encoder) at (0,0) {Encoder};
|
||||
\node [refBlockNoDraw, text width=0.6cm, minimum height=.6cm, right=-0.03 of Encoder.south east, anchor=south west, text centered] (EncoderNAL) {NAL};
|
||||
\node [refBlockNoDraw, text width=1.1cm, minimum height=.6cm, above=-0.03 of Encoder.north west, anchor=south west] (Decoder) {Decoder};
|
||||
\path[arrow,-] (Encoder.south west) |- (Decoder.north east) |- (EncoderNAL.north east) |- (Encoder.south west);
|
||||
\path[arrow,-,densely dotted] (EncoderNAL.south west -| Decoder.south east) -- (Decoder.south east); % Draw inside lines
|
||||
\path[arrow,-,densely dotted] (Decoder.south west |- EncoderNAL.north west) -- (EncoderNAL.north west); % Draw inside lines
|
||||
|
||||
|
||||
%% NALU Loss and EC optimisation
|
||||
\node [propBlock, above=2.2 of Encoder.west, anchor=south west, text width=3.8cm, minimum height=2.4cm] (ConcOpt) {Saliency-weighted EC Mode Decision};
|
||||
\node [propBlock, below=.8 of ConcOpt.south east, anchor=north east, text width=1.7cm, minimum height=.9cm] (LossSim) {NALU Loss Simulation};
|
||||
\path[arrow] (EncoderNAL -| LossSim.south) -- (LossSim) node[point] at (EncoderNAL -| LossSim) {};;
|
||||
\path[arrow] (Decoder) -- (ConcOpt.south -| Decoder) node[pos=.6,coordinate] (p2) {} node[point] at (p2) {};
|
||||
\path[arrow] (LossSim) -- (ConcOpt.south -| LossSim);
|
||||
|
||||
|
||||
%% EL encoder
|
||||
\node [propBlockNoDraw, right=4cm of ConcOpt.south, anchor=south west, text width=1.4cm, minimum height=1cm] (Scalable) {EL\\Encoder};
|
||||
\node [refBlockNoDraw, text width=.2cm, right=-.025 of Scalable.south east, anchor=south west, text centered, minimum height=1cm] (ScalableNAL) {N\\[-2pt]A\\[-2pt]L};
|
||||
\DrawEdgesTwoNodes{Scalable}{ScalableNAL}; % Draw border
|
||||
\path[arrow,-,densely dotted] (ScalableNAL.south west) -- (ScalableNAL.north west); % Draw inside lines
|
||||
|
||||
|
||||
%% Diff
|
||||
\node [sumBlock, left=.75 of Scalable] (ConcDiff) {$-$};
|
||||
\path[arrow] (ConcDiff) -- (Scalable) node[above, pos=0, xshift=.2cm] {$e^c$};
|
||||
\path[arrow] (ConcOpt.east |- ConcDiff) -- (ConcDiff) node[above, pos=1, xshift=-.3cm] {$\tilde f$};
|
||||
\path[arrow,-, shorten >=3] (p2) -- (p2 -| LossSim.north);
|
||||
\path[arrow, shorten <=3] (p2 -| LossSim.north) -| (ConcDiff) node[right, pos=1, yshift=-.3cm] {$\hat f$};
|
||||
|
||||
|
||||
%% EC mode coding
|
||||
\node [propBlockNoDraw, anchor=north west, text width=1.4cm, minimum height=1cm] at (ConcOpt.north -| Scalable.west) (Signalling) {EC Mode Coding};
|
||||
\node [refBlockNoDraw, text width=.2cm, right=-.025 of Signalling.south east, anchor=south west, text centered, minimum height=1cm] (SignallingNAL) {N\\[-2pt]A\\[-2pt]L};
|
||||
\DrawEdgesTwoNodes{Signalling}{SignallingNAL}; % Draw border
|
||||
\path[arrow,-,densely dotted] (SignallingNAL.south west) -- (SignallingNAL.north west); % Draw inside lines
|
||||
\path[arrow] (ConcOpt.east |- Signalling) -- (Signalling) node[above, pos=.45, yshift=-1] {\scriptsize M1...M4};
|
||||
|
||||
%% Input
|
||||
\node[text width=.5cm, text centered] at (-1.7,4.5) (Input) {Input video};
|
||||
\path[arrow] (Input) |- (Encoder);
|
||||
\path[arrow] (Input |- ConcOpt) -- (ConcOpt) node[point] at (Input |- ConcOpt) {};
|
||||
|
||||
%% TS Mux and output
|
||||
\path (Encoder.south) -- (Encoder |- Signalling.north) node[midway] (middleRef) {}; % Find middle ref
|
||||
\node [refBlock, right=8.5 of middleRef, text width=.7cm, minimum height=5.5cm] (NAL) {TS Mux};
|
||||
\node [right of=NAL, node distance=1.5cm, coordinate] (Out) {};
|
||||
|
||||
\path[arrow] (EncoderNAL) -- (NAL.west |- EncoderNAL) node[above,pos=1, xshift=-.4cm] {VCL$_0$};
|
||||
\path[arrow] (ScalableNAL) -- (NAL.west |- Scalable) node[above,pos=1, xshift=-.4cm] {VCL$_1$};
|
||||
\path[arrow] (SignallingNAL) -- (NAL.west |- Signalling) node[above,pos=1, xshift=-.4cm] {SEI};
|
||||
\path[arrow] (NAL) -- (Out) node[above,pos=1, xshift=-.2cm, text width=1.3cm] {Transport Stream};
|
||||
|
||||
|
||||
\end{tikzpicture}
|
||||
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,97 @@
|
||||
\usetikzlibrary{calc,trees,positioning,arrows,chains,shapes.geometric,%
|
||||
decorations.pathreplacing,decorations.pathmorphing,shapes,%
|
||||
matrix,shapes.symbols,plotmarks,decorations.markings,shadows,backgrounds}
|
||||
|
||||
\def\MVE{\mbox{MVE}}
|
||||
\def\MVBASE{\mbox{BASE\_MC}}
|
||||
\def\INTERVIEW{\mbox{INTERVIEW\_COPY}}
|
||||
\def\COMBMC{\mbox{COMB\_MC}}
|
||||
\def\COMBMCDISP{\mbox{COMB\_MC\_Disp}}
|
||||
|
||||
\newcommand{\scale}{0.4}
|
||||
|
||||
% Define block styles
|
||||
% \tikzstyle{simple_block} = [rectangle, text width=1.4cm, text centered, minimum height=1cm,node distance = 1.7cm]
|
||||
% \tikzstyle{block} = [simple_block,draw,fill=gray!10]
|
||||
% \tikzstyle{node_circle} = [circle, draw, text centered]
|
||||
%
|
||||
% \tikzstyle{decision} = [diamond, draw, text centered, node distance=3cm]
|
||||
% \tikzstyle{line} = [draw, -latex', thick]
|
||||
|
||||
|
||||
\def\scale{1}
|
||||
|
||||
|
||||
|
||||
|
||||
\begin{tikzpicture}[
|
||||
font=\footnotesize,
|
||||
auto,
|
||||
every node/.style={scale=\scale},
|
||||
template/.style={thick, text centered},
|
||||
block/.style={template, draw,fill=\TikZColorFill, rectangle, text width=2.2cm, text centered, minimum height=.9cm, node distance=1cm},
|
||||
labels/.style={template, scale=1.2},
|
||||
line/.style={template, draw, -latex', thick},
|
||||
point/.style={template, draw, fill=black, circle,inner sep=0, minimum size=3}
|
||||
]
|
||||
|
||||
\tikzset{
|
||||
between/.style args={#1 and #2}{
|
||||
at = ($(#1)!0.5!(#2)$)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
\node [block] (BMVE) {Block-based \\ MVE};
|
||||
\node [block, right=of BMVE] (PMVE) {Pixel-based \\ MVE};
|
||||
\node [block, right=of PMVE] (MVE) {MVE};
|
||||
\node [block, right=of MVE] (MC) {MC};
|
||||
|
||||
\node[coordinate, yshift=1cm, between=BMVE and PMVE] (p1) {};
|
||||
\node[coordinate, yshift=1cm, between=MVE and MC] (p2) {};
|
||||
|
||||
\node [block, above=.6cm of p1, text width=3.7cm] (MotionEst) {Optical flow estimation};
|
||||
\path [line] (MotionEst) |- (BMVE |- p1) -- (BMVE);
|
||||
\path [line] (MotionEst) |- (PMVE |- p1) -- (PMVE);
|
||||
|
||||
|
||||
\node [block, text width=2cm] at (MotionEst -| p2) (MotionExtraction) {MV parser};
|
||||
\path [line] (MotionExtraction) |- (MVE |- p2) -- (MVE);
|
||||
\path [line] (MotionExtraction) |- (MC |- p2) -- (MC);
|
||||
|
||||
\node[above=0cm of p2, xshift=.3cm] {$v_{-1}$};
|
||||
|
||||
\node[coordinate, between=PMVE and MVE] (p3) {};
|
||||
\node[labels,above=3.4 of p3] (FTM1) {$f_{-1}$};
|
||||
\node[labels] at (FTM1 -| MotionEst.140) (FTM2) {$f_{-2}$};
|
||||
|
||||
|
||||
\path [line] (FTM2) -- (MotionEst.140);
|
||||
\path [line] (FTM1) -- ($(FTM1 |- MotionExtraction)+(0,1)$) -| (MotionEst.40);
|
||||
\path [line] (FTM1) -- ($(FTM1 |- MotionExtraction)+(0,1)$) -| (MotionExtraction.north);
|
||||
|
||||
|
||||
|
||||
\newcommand{\MDistance}{.6cm}
|
||||
\node [below=\MDistance of BMVE] (M1) {M1};
|
||||
\path [line] (BMVE) -- (M1);
|
||||
\node [below=\MDistance of PMVE] (M2) {M2};
|
||||
\path [line] (PMVE) -- (M2);
|
||||
\node [below=\MDistance of MVE] (M3) {M3};
|
||||
\path [line] (MVE) -- (M3);
|
||||
\node [below=\MDistance of MC] (M4) {M4};
|
||||
\path [line] (MC) -- (M4);
|
||||
|
||||
|
||||
|
||||
% \path (BMVE.west) -- (MC.east) node[pos=0.5] (p2) {};
|
||||
% \node [block, below of=p2, text width=7.5cm,node distance=1.8cm] (Select) {Concealment method selection and signalling};
|
||||
|
||||
% \path[line] (BMVE.south) -- (Select.north -| BMVE);
|
||||
% \path[line] (PMVE.south) -- (Select.north -| PMVE);
|
||||
% \path[line] (MVE.south) -- (Select.north -| MVE);
|
||||
% \path[line] (MC.south) -- (Select.north -| MC);
|
||||
|
||||
|
||||
\end{tikzpicture}
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,44 @@
|
||||
\newcommand{\scale}{1}
|
||||
|
||||
|
||||
\begin{tikzpicture}[scale=\scale, auto]
|
||||
% Place nodes
|
||||
|
||||
% Define block styles
|
||||
\tikzstyle{block} = [rectangle, fill=white, text centered, minimum height=0.6cm, inner sep=1,font=\scriptsize]
|
||||
\tikzstyle{blockDepth} = [draw,block,minimum width=0.75cm]
|
||||
\tikzstyle{blockEC} = [draw,block,minimum width=0.5cm]
|
||||
\tikzstyle{blockPoints} = [block, minimum width=0.3cm]
|
||||
\tikzstyle{text_labels} = [anchor=center,font=\footnotesize,minimum height=0.1cm]
|
||||
|
||||
\tikzstyle{neighbour} = [right=-.01 of Node,]
|
||||
|
||||
|
||||
\node [blockPoints] (Node) at (0,0) {...};
|
||||
\node [neighbour, blockDepth] (Node) {\textit{split}=1};
|
||||
\node [neighbour, blockDepth] (Node) {\textit{split}=0};
|
||||
\node [neighbour, blockEC] (Node) {\textit{ecm}};
|
||||
\node [neighbour, blockDepth] (Node) {\textit{split}=0};
|
||||
\node [neighbour, blockEC] (Node) {\textit{ecm}};
|
||||
\node [neighbour, blockPoints] (Node) {...};
|
||||
\node [neighbour, blockDepth] (Node) {\textit{split}=1};
|
||||
\node [neighbour, blockPoints] (Node) {...};
|
||||
\node [neighbour, blockDepth] (Node) {\textit{split}=1};
|
||||
\node [neighbour, blockEC] (Node) {\textit{ecm}};
|
||||
\node [neighbour, blockEC] (Node) {\textit{ecm}};
|
||||
\node [neighbour, blockEC] (Node) {\textit{ecm}};
|
||||
\node [neighbour, blockEC] (Node) {\textit{ecm}};
|
||||
\node [neighbour, blockPoints] (Node) {...};
|
||||
|
||||
\draw[text_labels, anchor=center,latex-latex] (.15,-.4) -- ++(5*.75cm+6*.5cm+2*.3cm+.1cm,0) node [pos=0.5,below,yshift=0cm] (VLC) {CTU};
|
||||
|
||||
\node[draw,dashed, minimum height=1.3cm, minimum width=5*.75cm+6*.5cm+4*.3cm+2*.1cm, anchor=south west] (DashedBox) at (-.2cm,-.9cm) {};
|
||||
\node[text_labels, text centered, above=0cm of DashedBox] {Supplemental Enhancement Information (SEI)};
|
||||
|
||||
\begin{scope}[xshift=-.15cm,yshift=-1.2cm]
|
||||
\node[text_labels, anchor=west, text width=7cm, node distance=0.6cm] at (0,0) (D) {\textit{split}: flag to mark quadtree splitting};
|
||||
\node[text_labels, anchor=west, text width=7cm, below of=D,node distance=0.4cm] (EC) {\textit{ecm}: error concealment method selected for each ECU};
|
||||
\end{scope}
|
||||
|
||||
|
||||
\end{tikzpicture}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 164 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 162 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 312 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 312 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 385 KiB |
@@ -0,0 +1,207 @@
|
||||
|
||||
\usetikzlibrary{calc}
|
||||
\usetikzlibrary{snakes}
|
||||
\usetikzlibrary{arrows}
|
||||
\usetikzlibrary{positioning}
|
||||
\usetikzlibrary{decorations}
|
||||
\usetikzlibrary{decorations.markings}
|
||||
\usetikzlibrary{arrows.meta}
|
||||
|
||||
\newcommand{\scale}{0.65}
|
||||
% \newcommand{\TikZyslant}{-0.2}
|
||||
% \newcommand{\TikZyfshift}{0.05cm}
|
||||
\newcommand{\yframeshift}{0.05cm}
|
||||
\newcommand{\xframeshift}{7cm}
|
||||
|
||||
|
||||
\pgfdeclarelayer{background}
|
||||
\pgfdeclarelayer{foreground}
|
||||
\pgfdeclarelayer{L0}
|
||||
\pgfdeclarelayer{L1}
|
||||
\pgfdeclarelayer{L2}
|
||||
\pgfdeclarelayer{L3}
|
||||
\pgfsetlayers{background,L0,L1,L2,L3,main,foreground}
|
||||
|
||||
|
||||
|
||||
|
||||
\begin{tikzpicture}[scale=\scale,every node/.style={minimum size=1cm},on grid ]
|
||||
|
||||
\tikzstyle{pel}=[rectangle,draw=black, thick]
|
||||
\tikzstyle{refblock}=[rectangle,draw=darkgray, thick]
|
||||
\tikzstyle{projectedblock}=[rectangle,draw=black, thick,dashed]
|
||||
\tikzstyle{refmv_linestyle}=[-, thick]
|
||||
|
||||
\tikzstyle{refmv}=[black!60!green, refmv_linestyle,decoration={markings,mark=at position 1 with {\arrow[ultra thick,scale=1]{latex}}},postaction={decorate}]
|
||||
\tikzstyle{extrapolated_mv}=[refmv_linestyle,dashed, blue, decoration={markings,mark=at position 1 with {\arrow[ultra thick,scale=1]{latex}}},postaction={decorate}]
|
||||
|
||||
\tikzstyle{arrow}=[draw, ->,>=stealth',thick,,decoration={markings,mark=at position 1 with {\arrow[ultra thick,scale=0.5]{stealth}}},postaction={decorate}]
|
||||
|
||||
\tikzstyle{every node}=[font=\large]
|
||||
|
||||
\tikzstyle{frame_contour}=[ultra thick,fill=white,draw=black,fill opacity=.7]
|
||||
|
||||
\newcommand{\DrawFrame}[2]
|
||||
{
|
||||
\fill[fill=#1,fill opacity=.6] (0,0) rectangle (#2+1,#2+1); % Opacity
|
||||
\draw[thick] (0,0) rectangle (#2+1,#2+1);
|
||||
\foreach \x in {1,...,#2}
|
||||
\draw[dotted] (\x,0) -- ++(0,#2+1);
|
||||
\foreach \y in {1,...,#2}
|
||||
\draw[dotted] (0,\y) -- ++(#2+1,0);
|
||||
}
|
||||
|
||||
% Frame t
|
||||
\begin{pgfonlayer}{L1}
|
||||
\begin{scope}[ yshift=3*\yframeshift, xshift=3*\xframeshift,
|
||||
style={yslant=\TikZyslant,xscale=\TikZxscale}]
|
||||
|
||||
|
||||
%Draw a frame
|
||||
\draw[very thick,fill=white,draw=black,fill opacity=.7,dashed](0,0) rectangle (5,5);
|
||||
\foreach \x in {0,2,4}
|
||||
\foreach \y in {0,2,4}
|
||||
\draw[black, dotted] (\x,\y) +(0,0) rectangle ++(1,1);
|
||||
\foreach \x in {1,3}
|
||||
\foreach \y in {1,3}
|
||||
\draw[black, dotted] (\x,\y) +(0,0) rectangle ++(1,1);
|
||||
|
||||
\coordinate (TB1) at (1+0.7,4+0.8);
|
||||
\draw[projectedblock] (TB1) rectangle ++(1,-1);
|
||||
|
||||
\coordinate (TB2) at (3,4);
|
||||
\draw[projectedblock] (TB2) rectangle ++(1,-1);
|
||||
|
||||
\coordinate (TB3) at (3+0.2/2,2-0.8/2);
|
||||
\draw[projectedblock] (TB3) rectangle ++(1,-1);
|
||||
|
||||
\coordinate (TB4) at (3,2);
|
||||
\draw[projectedblock] (TB4) rectangle ++(1,-1);
|
||||
|
||||
\end{scope}
|
||||
\end{pgfonlayer}
|
||||
|
||||
|
||||
% % Frame t+1
|
||||
% \begin{pgfonlayer}{L0}
|
||||
% \begin{scope}[ yshift=4*\yframeshift, xshift=4*\xframeshift,
|
||||
% style={yslant=\TikZyslant,xscale=\TikZxscale}]
|
||||
%
|
||||
%
|
||||
% \coordinate (TP1B1) at (1,4);
|
||||
% \coordinate (TP1B2) at (3,4);
|
||||
% \coordinate (TP1B3) at (1,2);
|
||||
% \coordinate (TP1B4) at (3,2);
|
||||
%
|
||||
% %Draw a frame
|
||||
% \DrawFrame{white}{4}
|
||||
%
|
||||
% % \draw[black,very thick] (TP1B2) +(0,0) rectangle ++(1,-1);
|
||||
% \draw[black,very thick] (TP1B4) +(0,0) rectangle ++(1,-1);
|
||||
%
|
||||
% \end{scope}
|
||||
% \end{pgfonlayer}
|
||||
|
||||
% Frame t-1
|
||||
\begin{pgfonlayer}{L1}
|
||||
\begin{scope}[ yshift=2*\TikZyfshift, xshift=2*\xframeshift,
|
||||
style={yslant=\TikZyslant,xscale=\TikZxscale}]
|
||||
|
||||
\coordinate (T0B1) at (1,4);
|
||||
\coordinate (T0B2) at (3,4);
|
||||
\coordinate (T0B3) at (1,2);
|
||||
\coordinate (T0B4) at (3,2);
|
||||
|
||||
\coordinate (TM1AuxB3) at (1,2);
|
||||
|
||||
\coordinate (Bottom_V1) at (2.5,0);
|
||||
|
||||
\draw[extrapolated_mv] (TB1) to (T0B1);
|
||||
|
||||
% Draw Motion vectors
|
||||
\coordinate (TM1B0) at (3+0.2,2-0.8);
|
||||
\coordinate (TM1B0C) at (3+0.2/2,2-0.8/2);
|
||||
% \draw[refmv] (TP1B4) to (TM1B0);
|
||||
\draw[refblock] (TM1B0) rectangle ++(1,-1);
|
||||
\draw[extrapolated_mv] (TB3) to (TM1B0);
|
||||
|
||||
\draw[refblock] (TM1B0C) rectangle ++(1,-1);
|
||||
\draw[extrapolated_mv] (TB4) to (TM1B0C);
|
||||
|
||||
|
||||
\coordinate (TM1B1) at (3-0.6,4-0.5);
|
||||
\draw[extrapolated_mv] (TB2) to (TM1B1);
|
||||
|
||||
\DrawFrame{white}{4}
|
||||
|
||||
\draw[black,very thick] (T0B1) +(0,0) rectangle ++(1,-1);
|
||||
\draw[black,very thick] (T0B2) +(0,0) rectangle ++(1,-1);
|
||||
|
||||
\end{scope}
|
||||
\end{pgfonlayer}
|
||||
|
||||
% Frame t-2
|
||||
\begin{pgfonlayer}{L2}
|
||||
\begin{scope}[ yshift=1*\TikZyfshift, xshift=1*\xframeshift,
|
||||
style={yslant=\TikZyslant,xscale=\TikZxscale}]
|
||||
|
||||
%Define Points
|
||||
\coordinate (TM2B1) at (1-0.7,4-0.8);
|
||||
\coordinate (TM2B2) at (3-0.6,4-0.5);
|
||||
|
||||
% Draw Motion vectors
|
||||
\draw[refmv] (T0B1) to (TM2B1);
|
||||
\draw[refmv] (T0B2) to (TM2B2);
|
||||
|
||||
\DrawFrame{white}{4}
|
||||
|
||||
\coordinate (TM2B4_aux) at (3+0.3/2,2-0.4/2);
|
||||
|
||||
% Draw block
|
||||
\draw[refblock] (TM2B1) rectangle ++(1,-1);
|
||||
\draw[refblock] (TM2B2) rectangle ++(1,-1);
|
||||
|
||||
\end{scope}
|
||||
\end{pgfonlayer}
|
||||
|
||||
|
||||
%MVs name
|
||||
\node[scale=0.5] at (3*\xframeshift-1.0cm,4.9) {(2)};
|
||||
\node[scale=0.5] at (3*\xframeshift-1.0cm,3) {(1)};
|
||||
% \node[scale=0.5] at (3*\xframeshift-2.0cm,2) {(2)};
|
||||
% \node[scale=0.5] at (3*\xframeshift-1.0cm,0.3) {(4)};
|
||||
|
||||
\tikzstyle{frame_label}=[anchor=center,scale=0.8]
|
||||
% \node[frame_label,scale=0.95] (LostFrameLabel) at (4*\xframeshift-0.9cm,-1.8) {Lost frame };
|
||||
% \path[draw,-latex,thick] (LostFrameLabel) edge[out=90, in=0] (3*\xframeshift+5cm*\TikZxscale,0cm);
|
||||
|
||||
% Frame number
|
||||
\begin{scope}[xshift=2.5cm*\TikZxscale,yshift=5.5cm]
|
||||
% \node[frame_label] at (0*\xframeshift,\yframeshift*3) { $f_{-3}, v_{-3}$ };
|
||||
\node[frame_label] at (1*\xframeshift,\yframeshift*3) { $f_{-2}, v_{-2}$ };
|
||||
\node[frame_label] at (2*\xframeshift,\yframeshift*3) { $f_{-1,} v_{-1}$ };
|
||||
\node[frame_label] at (3*\xframeshift,\yframeshift*3) { $f_{0}, v_{0}$ };
|
||||
% \node[frame_label] at (4*\xframeshift,\yframeshift*4) { $f_{1}, v_{1}$ };
|
||||
\end{scope}
|
||||
|
||||
% Frame number
|
||||
\begin{scope}[xshift=2.5cm*\TikZxscale,yshift=-1.2cm]
|
||||
% \node[frame_label] at (0*\xframeshift,\yframeshift*3) { $t_{-3}$ };
|
||||
\node[frame_label] at (1*\xframeshift,\yframeshift*3) { $t_{-2}$ };
|
||||
\node[frame_label] at (2*\xframeshift,\yframeshift*3) { $t_{-1}$ };
|
||||
\node[frame_label] at (3*\xframeshift,\yframeshift*3) { $t_{0}$ };
|
||||
% \node[frame_label] at (4*\xframeshift,\yframeshift*4) { $t_{1}$ };
|
||||
\end{scope}
|
||||
|
||||
% \begin{scope}[yshift=-3.2cm,xshift=-0.5cm]
|
||||
% \begin{scope}
|
||||
% \draw[refmv] (0,0) to (1.5,0);
|
||||
% \fill (2cm,0) node[frame_label,scale=0.95,right]{Original Motion Vector};
|
||||
% \end{scope}
|
||||
% \begin{scope}[xshift=14cm]
|
||||
% \draw[extrapolated_mv] (0,0) to (1.5,0);
|
||||
% \fill (2cm,0) node[frame_label,scale=0.95,right]{Extrapolated Motion Vector};
|
||||
% \end{scope}
|
||||
% \end{scope}
|
||||
|
||||
\end{tikzpicture}
|
||||
Binary file not shown.
Reference in New Issue
Block a user