text:
\section{Introduction}
Nowadays, portable devices such as smartphones or tablet PCs have become an indispensable gadget for millions of users all over the world. A major drawback of these devices is that the battery capacity in conjunction with the power consumption of the system limits the operating time of the device. Hence, research aiming at reducing the power consumption of a process is a worthwhile task.

This paper addresses the power consumption of the video decoding process. Analyzing the power consumption of a portable device it was shown that during video playback, the decoding process consumes a major part of the battery power \cite{Carroll10}. To reduce the power consumption, great effort is pursued to optimize decoder implementations, not only on the software side \cite{FFmpeg}, but also on the hardware side \cite{Tikekar14, Kalali12, Adibelli11}. Using these techniques, energy can be saved in the range of several orders of magnitude. In this paper we proceed in a different direction
and tackle the following question: If we have given a fixed (and maybe optimized) decoder solution, is it possible to further reduce the decoding energy using knowledge about its energetic properties? In this paper, we show that for intraframe coded videos this is indeed possible.

To address this problem, we propose to construct bit streams that consume less energy during the decoding process than conventional bit streams. To this end, we provide information about the energetic properties of the decoder to the encoder such that it can exploit this knowledge to decide for energy saving coding modes. This paper investigates how much decoding energy can be saved when such knowledge is available.

As in this context the decision criterion of the encoder is changed, the resulting bit streams may have a lower rate-distortion performance than before. That means that we trade decoding energy against bitrate. At first glance this may seem counter-intuitive as it is usually assumed that a larger bit stream requires more energy during decoding. In contrast we argue that depending on the encoding decision, the decoding process may show a different complexity. E.g., we can encode a so-called transform-skip flag. If the flag is false, an inverse, computationally complex transform is performed requiring a certain amount of processing energy. If the flag is true, the transform is skipped and thus no additional processing energy is required. We can see that, although both decisions are expressed by only one bit, the required processing energy on the decoder side may differ significantly.

There were similar works in the past where power or processing complexity, which can be interpreted as an approximation to processing power, was investigated. E.g., Zhihai He et al. \cite{He05} incorporated the encoding power into the Rate-Distortion calculation to save energy on the encoder side. Using the encoder's processing complexity, this idea has been deeply investigated, e.g., by Xiang Li et al. \cite{Li11}. In another work, Yuwen He et al. \cite{He13} proposed a simple decoding complexity model for the modules deblocking filter and motion compensation and showed that operating times can be extended using power-aware optimization criteria. A more complex model for the decoder was presented by Ma et al. \cite{Ma11} where on the decoder side, dynamic voltage and frequency scaling is applied when the modeled processing complexity is small enough. A different approach using a high-level power model for a hardware-accelerated decoder is used by Xin Li et al. \cite{Li12}. In contrast, our approach uses energy values obtained from real measurements for a high number of different intraframe-coding tools such that more detailed and more accurate energy estimates are obtained. Furthermore, our work aims at optimizing the decoding energy at a constant objective visual quality.

The paper is organized as follows: Section \ref{sec:model} revisits the energy model that we use to obtain energy-aware encoding decisions. Afterwards, Section \ref{sec:DEDO} explains how this model is incorporated into the encoder and according to which criteria the encoding decisions are taken. Then, Section \ref{sec:eval} introduces our test setup and gives evaluation results for the proposed algorithm in a local playback and a streaming scenario. Section \ref{sec:concl} concludes the paper.

\section{Decoder Energy Model}
\label{sec:model}
The energy model that we use to describe the energy consumption of the decoder was presented in \cite{Herglotz14} and is applicable for various different decoding systems \cite{Herglotz15c}. It includes the processing energy of the CPU as well as the energy required by the random-access-memory (RAM). We adopt the accurate model to estimate the decoding energy for intra coded sequences that is calculated by
\begin{align}
  \hat E_\mathrm{dec}  = \ & E_0 + e_\mathrm{slice}\cdot n_\mathrm{slice} \notag \\
& +  \sum_\mathrm{\forall \mathrm{size}}{\left(\sum_{\forall \mathrm{mode}}{e_\mathrm{mode,size}}\cdot n_\mathrm{mode,size}\right)} \notag \\
& + \sum_{\forall \mathrm{size}} \left( \sum_{\forall \mathrm{comp}}  \!\!e_\mathrm{comp, size} \cdot n_\mathrm{comp, size}\right) \notag \\
& + e_\mathrm{coeff}\cdot n_\mathrm{coeff} + e_\mathrm{g1}\cdot n_\mathrm{g1} \notag  \\
& +  e_\mathrm{val}\cdot \sum_{\forall c\ne 0}{\log _2 \left| c\right|} + e_\mathrm{CSBF}\cdot n_\mathrm{CSBF} \notag \\
& + e_\mathrm{noMPM}\cdot n_\mathrm{noMPM} -  e_\mathrm{TSF}\cdot n_\mathrm{TSF}.
\label{eq:intraModel}
\end{align}
In this model, the values of the variables $e$ (``specific energies'') represent the energy required for executing different functions during the decoding process. These functions can be executed multiple times. For example, the coefficient $e_\mathrm{coeff}$ can be interpreted as the energy required to decode a single non-zero residual coefficient, $e_\mathrm{g1}$ is the additional decoding energy if the coefficient's value is greater than one. Likewise, the variables $e_\mathrm{mode,size}$ describe the intra-prediction process on a certain block size that can range from $32\times 32$ to $4\times 4$. CSBF corresponds to the coded subblock flags, MPM to the most probable modes, and TSF to the transform skip flags. $e_\mathrm{comp, size}$, where comp represents the color components Y, U and V, represents the energy required for transformation of the residual coefficients. Further information about these specific energies can be found online \cite{denesto}.

Counting how often these functions are executed during the decoding process of a single bit stream the so-called feature numbers $n$ can be determined. Multiplying these numbers $n$ with the specific energies $e$, we obtain an estimation for the complete required decoding energy. In \cite{Herglotz14} it was shown that estimation errors of less than $3\%$ with respect to the measured true energy consumption can be achieved.

There are two important reasons for choosing this model: First, if specific energies are given, the decoding energy can be estimated without having to execute the decoding process or having the decoder at hand. The information about the bit stream features, which is inherently available in the encoder, is sufficient. Second, most of the specific energies can be assigned to encoding decisions. An example shall visualize this property: Consider the encoder needs to decide if residual coefficients for the luma component on a certain block size shall be coded or not. In the first option, a certain number $n_\mathrm{coeff}$ of quantized coefficients will be coded where some of them are greater than one ($n_\mathrm{g1}$). Furthermore, the inverse transformation of this block has to be performed once ($n_\mathrm{comp=luma,size}=1$). Multiplying the numbers with the corresponding specific energies and adding up the products we obtain an estimation on how much energy the decoder needs to process these tasks. For the second option, none of these tasks needs to be executed such that no additional energy is required.

With the help of this approach, the encoder gets a third encoding criterion next to rate and distortion: the decoding energy that we exploit for Decoding-Energy-Rate-Distortion-Optimization (DERDO) in the next section.

\section{Decoding-Energy-Rate-Distortion Optimization}
\label{sec:DEDO}
In order to obtain savings in decoding energy we decided to modify the standard Rate-Distortion-Optimization (RDO) approach as presented in \cite{Sullivan98}. Therefore, we include the estimated decoding energy into the standard equation and obtain
\begin{equation}
  \min J_\mathrm{DERD} = D + \lambda_\mathrm{R} R + \lambda_\mathrm{E} \hat E,
  \label{eq:minJ_DERDO}
\end{equation}
where we adopt the parameters distortion $D$, rate $R$, and the corresponding Lagrange multiplier $\lambda_\mathrm{R}$ from the classic approach. In addition, we consider the estimated decoding energy $\hat E$ with a corresponding Lagrange multiplier $\lambda_\mathrm{E}$ that will be derived in the next subsection. $J_\mathrm{DERD}$ is the cost function to be minimized. During the encoding process, the decoding energy $\hat E$ is estimated at runtime using (\ref{eq:intraModel}).

Furthermore, we tested another approach neglecting the rate by calculating
\begin{equation}
  \min J_\mathrm{DED} = D + \lambda_\mathrm{E} \hat E.
  \label{eq:minJ_DEDO}
\end{equation}
The results to this approach will show the maximum potential energy savings. As the rate is not considered at all it can increase significantly. This approach is also used to obtain the $\lambda_\mathrm{E}$-QP relation as shown in the next subsection.

\subsection{Lambda-QP Relation}
A major challenge in constructing a helpful optimization formula is finding a relation between the Lagrange multiplier $\lambda_\mathrm{E}$ and the quantization parameter (QP). For optimal coding results, the QP should be independent from the choice of $\lambda_\mathrm{E}$ such that an exhaustive search across different QP values would be necessary. To save encoding time, in standard RDO, it was shown that for a fixed $\lambda_\mathrm{R}$, a single QP is chosen in most cases \cite{Wiegand01, binli13}, such that a fixed equation relating $\lambda_\mathrm{R}$ to the QP is proposed as
\begin{equation}
  \lambda_\mathrm{R} = c\cdot 2^{\frac{QP-12}{3}},
  \label{eq:lambda_QP_traditional}
\end{equation}
where $c=0.57$ has been determined experimentally and is used for the HM encoder implementation \cite{HM}.

We adopt this approach for DERDO and experimentally determine the relation between the QP and $\lambda_\mathrm{E}$. As decoding energy model, we take specific energies for the HM implementation that will be introduced in Section \ref{sec:eval}.

To get a first coarse approximation for $\lambda_\mathrm{E}$, we compared the decoding energy to the complete number of bits for several bit streams and found that the energy is usually lower by approximately six orders of magnitude (e.g., the sequence BasketballPass was encoded using $2.04$ MBits and requires $1.78$J for decoding). Hence, we multiplied the $\lambda$-values chosen in the reference software by $5\cdot10^6$ and tested eleven values for $\lambda_\mathrm{E}$ in the range of $[5.65\cdot10^5,5.84\cdot 10^9]$. To obtain the optimal QP, it was optimized on CTU-level in the corresponding range of $[5\pm 5, 45\pm5]$. The resulting relative occurences are depicted in Figure \ref{fig:lambda_QP_relation}.

\begin{figure}
\centering
\psfrag{000}[c][c]{}
\psfrag{001}[c][c]{$10$}
\psfrag{002}[c][c]{$20$}
\psfrag{003}[c][c]{$30$}
\psfrag{004}[c][c]{$40$}
\psfrag{005}[c][c]{$50$}
\psfrag{006}[r][r]{$0$}
\psfrag{007}[r][r]{$0.5$}
\psfrag{008}[r][r]{$1$}
\psfrag{009}[l][c]{$5.84\cdot10^9$}
\psfrag{010}[l][c]{$1.84\cdot10^9$}
\psfrag{011}[l][c]{$5.79\cdot10^8$}
\psfrag{012}[l][c]{$1.82\cdot10^8$}
\psfrag{013}[l][c]{$5.75\cdot10^7$}
\psfrag{014}[l][c]{$1.81\cdot10^7$}
\psfrag{015}[l][c]{$5.70\cdot10^6$}
\psfrag{016}[l][c]{$1.80\cdot10^6$}
\psfrag{017}[l][c]{$5.65\cdot10^5$}
\psfrag{018}[b][c]{Relative occurence [\%]}
\psfrag{019}[t][c]{QP value}
\includegraphics[width=0.5\textwidth]{gfx/chosen_QPs_altogether_relative_matlabfrag}
\caption{Relative frequency of occurences of the QPs for the $\lambda_\mathrm{E}$-values shown in the legend. The tested input sequences are listed in Table \ref{tab:eval_vids} below. }
\label{fig:lambda_QP_relation}
\end{figure}

We can observe that distinct peaks occur especially for lower values of $\lambda_\mathrm{E}$. For higher QPs the peaks shrink and even disappear. However, for simplification, we decided to stick to the traditional approach and found that
\begin{equation}
\lambda_\mathrm{E} = c_\mathrm{E} \cdot 2^{\frac{QP-12}{3}}
\label{eq:lambdaEfromQP}
\end{equation}
with $c_\mathrm{E} = 0.57\cdot 10^{7}$ is well suited to represent the relation. Figure \ref{fig:lambda_QP_appr} shows the experimental relation between the dominant QPs and the fixed $\lambda_\mathrm{E}$ as well as the curve described by (\ref{eq:lambdaEfromQP}).
\begin{figure}
\centering
\psfrag{000}[c][b]{$0$}
\psfrag{001}[c][b]{$10$}
\psfrag{002}[c][b]{$20$}
\psfrag{003}[c][b]{$30$}
\psfrag{004}[c][b]{$40$}
\psfrag{005}[c][b]{$50$}
\psfrag{006}[r][r]{$10^4$}
\psfrag{007}[r][r]{$10^6$}
\psfrag{008}[r][r]{$10^8$}
\psfrag{009}[r][r]{$10^{10}$}
\psfrag{010}[r][r]{$10^{12}$}
\psfrag{011}[l][c]{\footnotesize{Eq. (\ref{eq:lambdaEfromQP})}}
\psfrag{012}[l][c]{\footnotesize{mostly chosen QPs}}
\psfrag{013}[b][c]{$\lambda_\mathrm{E}$}
\psfrag{014}[t][l]{QP value}
\includegraphics[width=0.4\textwidth]{gfx/chosenQPs_n_fit02_matlabfrag}
\caption{Experimental relation between QP and $\lambda_\mathrm{E}$. The markers correspond to the maxima shown in Figure \ref{fig:lambda_QP_relation}, the curve is the proposed approximation.  }
\label{fig:lambda_QP_appr}
\end{figure}
We can see that for the more common intermediate QPs, the experimental result is well approximated.

\section{Evaluation}
\label{sec:eval}
We prove the applicability of our approach by testing the HM-13.0 decoder solution \cite{HM} and the optimized decoder in the FFmpeg framework \cite{FFmpeg} on a Pandaboard \cite{Panda}. The Pandaboard is a development platform that is equipped with an OMAP-4430 System-on-Chip that is typical for portable devices like smartphones. To suppress impacts from background processes or peripheral hardware, we performed the decoding on runlevel 1 with disabled LEDs and disabled monitoring tasks. The measurement setup used to determine the processing energy of the pure decoding process is the same as in \cite{Herglotz15a}.

To estimate the decoding energy in the encoder, we used the accurate model with energy parameter values for the HM-decoder that can be found online \cite{denesto}. For encoding, we adapted the HM-14.0 encoder by incorporating the specific energies $e$ into the respective decision stages. To obtain the real resulting energy savings, the decoding energy for all resulting bit streams was newly measured. Hence, the results given in this section describe the real energy savings and not the savings estimated by the model which may be inaccurate.

As input sequences, we chose a subset of the HEVC test set as shown in Table \ref{tab:eval_vids}.
\begin{table}[t]
\renewcommand{\arraystretch}{1.3}
\caption{Properties of input sequences. The sequences are taken from the HEVC test set and were encoded beginning with the first frame with QPs ranging from $15$ to $45$ in steps of $5$.  }
\label{tab:eval_vids}
\vspace{-.3cm}
\begin{center}
\footnotesize{\begin{tabular}{l|c|c|r}
\hline
Sequence & Class & Resolution & No. frames \\
\hline
PeopleOnStreet (PoS) & A & $2560\times1600$ & 5 \\
Traffic (Tr) & A & $2560\times1600$ & 5 \\
Kimono (Ki) & B & $1920\times1080$ & 16 \\
RaceHorses (RHC)& C & $832\times480$ & 50 \\
BasketballPass (BP)& D & $416\times240$ & 50 \\
BlowingBubbles (BB)& D & $416\times240$ & 50 \\
BQSquare (BQ)& D & $416\times240$ & 50 \\
RaceHorses (RHD)& D & $416\times240$ & 50 \\
vidyo3 (vid)& E & $1280\times720$ & 50 \\
SlideEditing (SE)& F & $1280\times720$ & 50 \\
 \hline
\end{tabular}}
\end{center}
\vspace{-0.5cm}
\end{table}
The restricted number of frames was chosen to keep processing and measuring time at a reasonable level, where further tests indicated that coding more frames does not change the coding efficiency significantly. All sequences were encoded three times for optimal HM-decoding where all frames were coded as intra frames:  First, we used the standard RDO and second, the proposed DERDO approach as shown in (\ref{eq:minJ_DERDO}). In the third approach (DEDO), the rate was neglected as shown in (\ref{eq:minJ_DEDO}).

We used the following three properties to compare the performance of both algorithms: First the YUV-PSNR that is calculated by
\begin{equation}
  \mathrm{PSNR}_\mathrm{YUV} = \frac{1}{8}\left( 6\cdot \mathrm{PSNR}_\mathrm{Y} + \mathrm{PSNR}_\mathrm{U} + \mathrm{PSNR}_\mathrm{V} \right),
  \label{eq:YUV_PSNR}
\end{equation}
second the bitrate $R$ in terms of bit stream file size, and third the measured complete decoding energy $E$ in Joule [J]. We evaluate the coding efficiency for two use cases: Local playback that focuses on the pure processing energy (Sec. \ref{secsec:locPlay}) and an online streaming application where transmission energies are considered (Sec. \ref{secsec:streaming}).

\subsection{Local Playback}
\label{secsec:locPlay}

The results given in this section describe the energy savings in a local playback scenario. Figures \ref{fig:RD_bubbles} and \ref{fig:DED_bubbles} compare the RD-performance and the energy saving performance of the proposed approaches for the BlowingBubbles sequence using the HM-decoder.
\begin{figure*}[ht]
\centering
\subfigur
{
\psfrag{000}[c][c]{$0$}
\psfrag{001}[c][c]{$20$}
\psfrag{002}[c][c]{$40$}
\psfrag{003}[r][r]{}
\psfrag{004}[r][r]{$40$}
\psfrag{005}[r][r]{$50$}
\psfrag{006}[r][c]{}
\psfrag{007}[r][c]{$0$}
\psfrag{008}[r][c]{$1$}
\psfrag{009}[r][c]{$2$}
\psfrag{010}[r][r]{$30$}
\psfrag{011}[r][r]{$40$}
\psfrag{012}[r][r]{$50$}
\psfrag{014}[l][c]{\footnotesize{DERDO}}
\psfrag{015}[l][c]{\footnotesize{DEDO}}
\psfrag{016}[l][c]{\footnotesize{RDO}}
\psfrag{018}[b][t]{$\mathrm{PSNR}_\mathrm{YUV}$}
\psfrag{017}[t][c]{Bitrate increase [\%]}
\psfrag{013}[t][l]{Bitrate [MBits]}
\psfrag{019}[t][l]{}
\includegraphics[width=0.48\textwidth]{gfx/bubbles_rate_matlabfrag03}
\label{fig:RD_bubbles}
}
\subfigur
{
\psfrag{000}[c][c]{$-30$}
\psfrag{001}[c][c]{$-15$}
\psfrag{002}[c][c]{$0$}
\psfrag{003}[r][r]{}
\psfrag{004}[r][r]{$40$}
\psfrag{005}[r][r]{$50$}
\psfrag{006}[r][c]{$0$}
\psfrag{007}[r][c]{$1$}
\psfrag{008}[r][c]{$2$}
\psfrag{009}[r][c]{$3$}
\psfrag{010}[r][c]{$4$}
\psfrag{011}[r][c]{$5$}
\psfrag{012}[r][r]{$30$}
\psfrag{013}[r][r]{$40$}
\psfrag{014}[r][r]{$50$}
\psfrag{015}[r][r]{$50$}
\psfrag{015}[l][c]{\footnotesize{DERDO}}
\psfrag{016}[l][c]{\footnotesize{DEDO}}
\psfrag{017}[l][c]{\footnotesize{RDO}}
\psfrag{019}[b][t]{$\mathrm{PSNR}_\mathrm{YUV}$}
\psfrag{018}[t][t]{Energy saving [\%]}
\psfrag{020}[t][t]{Decoding energy [J]}
\includegraphics[width=0.48\textwidth]{gfx/bubbles_energy_matlabfrag04}
\label{fig:DED_bubbles}}
\caption{Rate-Distortion (a) and Decoding-energy-distortion (b) performance of the standard RDO (blue lines) and the proposed DEDO (green lines) and DERDO (red lines) approach for the BlowingBubbles sequence decoded with the HM-software. The left diagrams in each subfigure relate distortion with rate and energy, respectively, where the markers depict the QPs ranging from $15$ to $50$ in steps of $5$. The right diagrams in each subfigure show the relative bitrate increases and energy savings in percentage in comparison to the standard RDO. }
\vspace{-.4cm}
\end{figure*}
In Figure \ref{fig:RD_bubbles} we can see that as expected, using the new minimization functions results in losses in RD-performance. For the complete QP range, the RD-curves from DEDO and DERDO lie below the curve from RDO. To visualize how many more bits have to be spent to achieve the same visual quality, the right diagram gives the relative amount of extra bits needed for the proposed approach. We can see that especially for high QPs (low image qualities) more bits are required.

In contrast, regarding Fig. \ref{fig:DED_bubbles} we can see that a significant amount of decoding energy can be saved. The right diagram indicates possible savings of up to $15\%$. The curves of the other sequences show a similar behavior, though we observed that they can be shifted towards higher or lower rates and energies depending on their content.
Furthermore, we can see that in terms of energy savings, the DEDO approach only performs slightly better than the DERDO approach. As in contrast DERDO shows a significantly lower bitrate increase, this approach seems to be more appropriate for practical use.

To summarize the results, we calculated the Bj{\o}ntegaard-Delta bitrate (BDBR) as proposed in \cite{BD_PSNR} for all sequences and both decoders. Furthermore, to give mean values for the energy savings, we use the same approach but replace the bitrate by the consumed energy and calculated a BD-decoding energy (BDDE). The resulting values for the HM decoder and the FFmpeg decoder are summarized in Table \ref{tab:BDvals}.

\begin{table}[t]
\renewcommand{\arraystretch}{1.3}
\caption{Average bitrate increases (BDBR) and decoding energy savings (BDDE) as calculated by the Bj{\o}ntegaard-Delta approach (QPs $15$, $25$, $35$, and $45$) for the HM and the FFmpeg decoder. }
\label{tab:BDvals}
\vspace{-0.3cm}
\begin{center}
\footnotesize{\begin{tabular}{l||r|r|r||r|r|r}
\hline
 & \multicolumn{3}{|c||}{DEDO} & \multicolumn{3}{|c}{DERDO} \\
\hline
Seq. & BDBR & \multicolumn{2}{|c||}{BDDE} & BDBR & \multicolumn{2}{|c}{BDDE} \\
\hline
 & & \multicolumn{1}{c|}{HM} & \multicolumn{1}{c||}{FFmpeg} & & \multicolumn{1}{c|}{HM} & \multicolumn{1}{c}{FFmpeg} \\
 \hline
PoS 	& $20.6\%$ & $17.4\%$ & $11.5 \%$ & $16.4\%$ & $16.7\%$ & $10.3 \%$\\
Tr 		& $18.9\%$ & $16.9\%$ & $14.9 \%$ & $15.3\%$ & $16.7\%$ & $14.2 \%$\\
Ki 		& $25.6\%$ & $10.6\%$ & $21.4\%$ & $21.3\%$ & $10.1\%$ & $19.2\%$\\
RHC		& $15.9\%$ & $15.0\%$ & $12.5 \%$ & $12.5\%$ & $14.5\%$ & $11.0 \%$\\
BP 		& $22.8\%$ & $13.5\%$ & $12.8 \%$ & $16.9\%$ & $12.9\%$ & $11.7 \%$\\
BB 		& $16.3\%$ & $15.8\%$ & $11.9 \%$ & $12.4\%$ & $15.1\%$ & $10.8 \%$\\
BQ 		& $13.9\%$ & $9.9\%$  & $7.6 \%$ & $9.9\%$  & $8.9\%$ & $5.9 \%$\\
RHD		& $17.6\%$ & $14.8\%$ & $10.3 \%$ & $13.0\%$ & $13.8\%$ & $9.4 \%$\\
vid 	& $28.7\%$ & $14.9\%$ & $17.4 \%$ & $23.1\%$ & $14.2\%$ & $16.2 \%$\\
SE 		& $10.4\%$ & $6.3\%$  & $5.2 \%$ & $6.7\%$  &  $5.7\%$ & $5.5 \%$\\
 \hline
\end{tabular}}
\end{center}
\vspace{-.6cm}
\end{table}

We can see that most energy can be saved for high resolution sequences. Furthermore, optimizing the bit stream for HM-decoding is also beneficial for a different decoding solution (FFmpeg), though savings are slightly lower (about $2\%$ in average). Interestingly, in some cases (sequence Ki and vid) savings are higher for the FFmpeg solution, which can be explained by inaccuracies in the energy model and the estimated specific energies. Summing up, when using the DERDO approach, accepting bitrate increases of $6\%$ to $24\%$, decoding energy can be saved in the range of $5\%$ to $17\%$.

\subsection{Online Streaming}
\label{secsec:streaming}
In this subsection, in order to show how streaming of the video bit stream
affects the overall energy consumption, we consider the transmission energy in a WiFi-streaming scenario. Therefore, we take the energy model proposed in \cite{Sun14}. In this model, a per-bit transmission energy $E_\mathrm{b}$ in nJ per bit can be estimated depending on the throughput $Th$ in megabit per second as
\begin{equation}
\hat E_\mathrm{b} = a\cdot Th^{-1}+b,
\end{equation}
where we take the values for parameter $a=305.3$ and $b=13.1$ for a universal transmission model (independent from protocol and packet size, values valid for a Google Nexus smartphone). Analog to our approach estimating the processing energy, we do not consider the idle transmission energy required for sustaining the network connection.

To estimate the energy required in the streaming scenario, we calculate the throughput $Th$ of each test sequence (which is the product of the bit stream file size $R$ with the frame rate divided by the number of frames), derive the corresponding per-bit energy $\hat E_\mathrm{b}$ ($23-8000$nJ per bit), and add the estimated transmission energy ($\hat E_\mathrm{tr}=R\cdot \hat E_\mathrm{b})$ to the measured decoding energy. The resulting energy values are used to calculate the Bj{\o}ntegaard-Delta values shown in Table \ref{tab:BDvals_transmission}.
\begin{table}[t]
\renewcommand{\arraystretch}{1.3}
\caption{Average bitrate increases and decoding energy savings as calculated by the Bj{\o}ntegaard-Delta approach (QPs $15$, $25$, $35$, and $45$) in an online streaming application (the BDBR-values are the same as in Table \ref{tab:BDvals}). }
\label{tab:BDvals_transmission}
\vspace{-0.3cm}
\begin{center}
\footnotesize{\begin{tabular}{l||r|r|r||r|r|r}
\hline
 & \multicolumn{3}{|c||}{DEDO} & \multicolumn{3}{|c}{DERDO} \\
\hline
Seq. & BDBR & \multicolumn{2}{|c||}{BDDE} & BDBR & \multicolumn{2}{|c}{BDDE} \\
\hline
 & & \multicolumn{1}{c|}{HM} & \multicolumn{1}{c||}{FFmpeg} & & \multicolumn{1}{c|}{HM} & \multicolumn{1}{c}{FFmpeg} \\
 \hline
PoS 	& $20.6\%$ & $17.2\%$ & $11.1 \%$ & $16.4\%$ & $15.6\%$ & $10.0 \%$\\
Tr 		& $18.9\%$ & $16.5\%$ & $14.5 \%$ & $15.3\%$ & $15.6\%$ & $13.8 \%$\\
Ki 		& $25.6\%$ & $9.2\%$ & $19.9\%$ & $21.3\%$ & $7.9\%$ & $17.9\%$\\
RHC		& $15.9\%$ & $14.0\%$ & $10.1 \%$ & $12.5\%$ & $12.9\%$ & $8.9 \%$\\
BP 		& $22.8\%$ & $11.4\%$ & $8.0 \%$ & $16.9\%$ & $10.2\%$ & $7.3 \%$\\
BB 		& $16.3\%$ & $14.2\%$ & $8.3 \%$ & $12.4\%$ & $12.9\%$ & $7.6 \%$\\
BQ 		& $13.9\%$ & $9.4\%$  & $5.5 \%$ & $9.9\%$  & $7.8\%$ & $4.3 \%$\\
RHD		& $17.6\%$ & $12.2\%$ & $6.1 \%$ & $13.0\%$ & $10.8\%$ & $5.6 \%$\\
vid 	& $28.7\%$ & $13.7\%$ & $16.1 \%$ & $23.1\%$ & $12.0\%$ & $15.0 \%$\\
SE 		& $10.4\%$ & $6.4\%$  & $4.6 \%$ & $6.7\%$  &  $5.5\%$ & $4.9 \%$\\
 \hline
\end{tabular}}
\end{center}
\vspace{-.6cm}
\end{table}
We can see that energy savings are about $0.3-3\%$ lower, where especially low resolution content is affected. For high resolution sequences, due to a much lower per-bit energy resulting from higher throughput, the transmission energy plays a minor role.

\section{Conclusion}
\label{sec:concl}
In this paper we showed that it is possible to encode decoding-energy saving bit streams when the energetic properties of the decoding system are known to the encoder. Decoding energy can be saved in the range of $5\%$ to $17\%$ at a constant objective visual quality when accepting a compression efficiency loss of $6\%$ to $24\%$  in terms of rate-distortion performance.
Online streaming only slightly affects the energy savings. Further work will extend this concept to interframe coding, test it on other decoding systems, and consider the transmission energy directly in the optimization process.

\section*{Acknowledgment}

This work was financed by the Research Training Group 1773 ``Heterogeneous Image Systems'', funded by the German Research Foundation (DFG).
\bibliographystyle{IEEEtran}

redpajama_set_name: RedPajamaArXiv


text:
https://www.wsj.com/articles/SB10001424052748703787304575075343044568842
Going Long on Charity
Hedge-fund manager donates money to causes with which he has a connection
By William Hutchings
The founder of U.K. hedge-fund manager CQS, Michael Hintze, nods towards the view out of his window, over the gardens of Buckingham Palace and towards central London.
"If we just look out there, we see churches, halls and hospitals that were all built by private individuals through private subscriptions," he says. "It all came from private philanthropy."
The Journal Report
See the complete Social Finance & Philanthropy report.
Mr. Hintze belongs to a group of hedge-fund managers, which includes the likes of Chris Hohn of TCI and Ian Wace of Marshall Wace, who are as well known—perhaps, even better known—for their charity work as for their day jobs.
Running a hedge fund is by necessity a secretive activity, while philanthropy thrives on publicity. It is a tension that the intensely private Mr. Hintze admits to wrestling with. It is perhaps one of the reasons that he uses the view out of his window to put in context the $35 million he has donated to a variety of causes within a long tradition of philanthropy.
He was reluctantly persuaded to abandon his policy of anonymity by the University of Sydney, his alma mater, when he donated funding for a professorial chair in international security. The university wanted to name the chair after him because it thought it would inspire other people to make similar bequests.
Michael Hintze, one of the public faces of philanthropy in the U.K.
VisMedia
It was a step he says he took with great trepidation: "I trusted them, so I did it. [But] it's like beating your chest. I cannot pretend to be modest for one second, but that was a big step."
Mr. Hintze has since become one of the public faces of philanthropy in the U.K. So many letters requesting donations pour into CQS's office that he has hired a person to deal with them. "Somebody has to read those letters, and treat those people with respect," says Mr. Hintze. "They are not asking just because they want something for nothing. You need to consider their requests, you need to think about them and you need to reply."
The Hintze Family Charitable Foundation has supported around 150 charities in the last five years. These range from the Wandsworth Museum, in an unfashionable borough of London, to the Victoria & Albert Museum, the world's largest museum of decorative arts and design.
A simple principle guides which charities Mr. Hintze supports: He wants to give something back to people and institutions with which he has a personal connection. "Wandsworth, for example, as a community has given a lot to me and my family," he says. Mr. Hintze lives with his wife and their four state-educated children in the South London neighborhood. He says the V&A has given him enormous pleasure and aided his intellectual growth. He backs the Conservative Party because "it is pretty clear to me that my success has happened in the U.K. because of the context that the Conservative Party provided."
Mr. Hintze cites his upbringing as one of the main motivators behind his largesse. Though quite poor, his family always contributed to charitable causes. His grandparents fled the Russian Revolution and went to China, where Mr. Hintze was born, only to up sticks again and move to Australia when Mao Zedong came to power. Mr. Hintze went to a school run by the Christian Brotherhood. Faith and the early example of the nuns and monks who educated him continue to inform his decisions.
"Is it Luke 12:48?," he asks. "'Unto whomsoever much is given, of him shall be much required.' I have been very fortunate, so much is expected of me. Religion is not unimportant. I do believe in Christ, but I would not hold myself up as any paragon of virtue at all—far from it, really."
Mr. Hintze is aware of the cynicism directed towards philanthropists and the assumption that there is some kind of angle to their generosity—perhaps that they feel the need to give their money away to atone for the ways in which they acquired it.
Some critics accused hedge funds of contributing to the credit crunch by short-selling weak banks and taking them over the edge. However, Mr. Hintze sees nothing wrong in running a hedge fund, short-selling badly run companies or in charging high fees for producing good returns.
"Charity is important; so is being fair and honest and honorable in your business—but you cannot mix the two," says Mr. Hintze. "People are happy to pay me because I produce good results. If I do not produce good results they will leave, whatever I am charging."
CQS is one of Europe's 20 largest hedge-fund managers. Mr. Hintze manages both his funds and the company—as founder, chief executive, senior investment officer and executive committee chairman.
Since the credit crunch, his firm's assets under management have fallen from almost $10 billion in 2007 to just under $7 billion, and he has reduced headcount from 270 to 200. He says: "My giving is discretionary, but keeping the business going is not."
His philosophy is reminiscent of Andrew Carnegie's dictum. The Victorian industrialist and philanthropist believed a person should spend a third of his or her life getting as good an education as possible, a third making as much money as possible and a third giving it away to worthwhile causes.
Mr. Carnegie advocated giving all one's worldly possessions to charity and a variety of Bible passages back up this point of view. Where does Mr. Hintze draw the line?
"You draw it with your imagination," he says. "I wonder if [the Bible] really does talk about giving everything in cash, or of giving everything in terms of one's soul? Families such as the Rothschilds and the Sainsburys have been very philanthropic over the years and they did not have to totally beggar themselves to do effective work. In fact, by not beggaring themselves they were able to keep going and to sustain both business and philanthropy."
Mr. Hintze struggles to pick which of his donations have given him the most pleasure. He contributed to the restoration of Michelangelo's frescoes in the Pauline Chapel at the Vatican. Climbing up the scaffolding for their unveiling was a very special moment. He also cites the professorial chair at the University of Sydney and his contribution towards a new inpatient center at Trinity Hospice in Wandsworth.
"But I must admit, it is all pretty humbling," says Mr. Hintze. "There are other people who physically did it. It gives me great joy to watch people take the initiative and make it happen.
"And it is fun. It really is fun. It's good to be a giver."
—Mr. Hutchings is the asset-management editor at Financial News in London . He can be reached at william.hutchings@dowjones.com.

redpajama_set_name: RedPajamaCommonCrawl


O2 shows us its new XDA Atom Life PDA phone. The O2 Atom Life supports both 3G and HSDPA. It is powered by an Intel PXA270 624 MHz processor, 1GB of ROM. It has a 2 Megapixel camera,a QVGA LCD touch-screen, WiFi, Bluetooth with A2DP and a miniSD Card slot. It is expected to be available in First Quarter.
O2 shows also the O2 Flame, we have covered before, in the same event.


text:
Bird Box, Book Review, Josh Malerman, Malorie
1 comment on Review of Malorie
Review of Malorie
Have you ever finished a book and felt that it concluded in such a fulfilling manner that it didn't deem a sequel? That's how I felt Josh Malerman's debut novel Bird Box ended. However, six years after Bird Box was published, Malerman comes out with Malorie.
Since this is a review of the second book, there will be spoilers for Bird Box. There will be minor spoilers for Malorie.
For those that have never read Bird Box or watched the film adaptation on Netflix, it's story where creatures suddenly appear and if you look at those creatures you go mad. Bird Box has the protagonist, Malorie, trying to survive the world pregnant and inside a house of fellow survivors. She eventually has the baby, along with another woman. However, the house is betrayed by a crazy person, named Gary, and everyone is killed. Except for Malorie and the two babies. Years go by and Malorie raises the children in a secluded home but has to escape that home as well. They end up going to a safe haven called The Jane Tucker School for the Blind.
Honestly, I didn't think that Bird Box needed a sequel. When I saw that Malerman was publishing Malorie, I wondered what the story would look like. Obviously, I would want to see how a school for the blind could survive in this new world and maybe there would be some inner politics or something of that nature. With creatures that were never described in the first book, maybe Malerman would take this opportunity to give readers some insight to what they looked like. Obviously, this is a thriller/horror book so the creatures would somehow break into the school and chaos would ensue.
Boy was I wrong.
Instead, Malorie and her two children leave the school after two years because of a person driven insane by the creatures. After escaping the school, there is a ten year leap and Malorie and the two teenagers are living in an abandoned campground in Michigan. After an encounter with a mysterious census taker, the three decide to travel north to find someone that Malorie thought was dead.
Three reasons why I liked Malorie:
1. The theme of progress. One of the major themes of the novel is the conflict of progress verse safety. Throughout the novel, Malorie is a strict teacher of safety which clashes against the curiosity of Tom, her teenage son. When they re-enter society Tom seeks a more progressive lifestyle. The waves of progress also erode at Malorie until she has to choose between the unwavering methods that kept them alive for ten years or adapt to a new, yet dangerous, lifestyle.
2. The creatures change tactics. Just looking at a creature automatically drives a person insane. In Malorie, Malerman changes tactics a bit by also adding touch as one of the ways a person can be driven mad. This theory adds a bit of tension throughout the story and also gives a little more depth into the creature's lore.
3. The other people. I was bored with Malorie as a character. I didn't enjoy her story arc in this novel, nor did I enjoy her interaction with other people. However, I enjoyed the other people. There are minor characters in the story that are interesting and that should have been fleshed out and explored more. It's my opinion that Malerman should've written the sequel about some of these characters. For instance, the creator of the Blind Train.
Three reasons I did not like Malorie:
1. The beginning was rushed. Like I said in the beginning of this review, I would have liked to see what life inside the school for the blind would be like. I would have liked to see Malorie and her children grow up a little and integrate with the society before things eventually crumbled. It was so important for them to reach the school at the end of the first book, but we never got to see the prize for reaching the goal. If Malerman spent more than eleven pages in the school, maybe readers would have felt that Malorie and the kids suffered some great loss. It was just a bump along the way it seems.
2. Too many: …what? There were so many times that I stopped reading and couldn't believe what I was reading. There are a plethora of moments that just didn't make sense. Without spoiling anything, I'll just leave it at that.
3. The ending was rushed. To me, it was obvious where the climax of the story take place. It was obvious which teenager would great that conflict. What I didn't see happening was how Malerman decided to transition into that last act. It was a surprising antagonist that made no sense whatsoever and the resolution between Malorie and that antagonist was the most disappointing thing in this novel.
If you're wanting to leave Malorie and her two children in peace, I suggest simply leaving them at the end of the first novel. If Malerman had asked me, I would have told him the same advice.
One response to "Review of Malorie"
Bah Humbook… books I don't recommend – The Writer's Apocalypse
[…] Malorie, written by Josh MalermanThe sequel to Malerman's hit debut, Bird Box, I wasn't sure why […]


text:
McSally to Introduce Military Sexual Assault Bill
Posted by Java Joe on Thursday, May 16, 2019 · Leave a Comment
Morning Coffee is a robust blend of links to news around the internet concerning the Naval Air Station Patuxent River economic community. The opinions expressed here do not reflect opinions of the Leader's owners or staff.
Sen. Martha McSally (R-AZ) will introduce a military sexual assault reform bill, reports the Hill, to address how the military handles sexual assault claims, including making sexual harassment a stand-alone offense under the military's criminal justice system.
Under pressure, the Pentagon published a contractor-fraud report, states Defense One, but the four-page document listing firms barred from government work lacks the detail of a predecessor report. The Defense Department last week released a congressionally mandated report on the extent of criminal contractor fraud, naming nine firms that were suspended or debarred.
The Pentagon disputes a British general's assessment on Iranian threat as it raised the threat level in the Middle East, reports Military Times. A top British general in Iraq said that Iranian-backed fighters do not pose an increased risk to coalition forces fighting the Islamic State in Iraq and Syria. The DoD is considering a crippling cyber attack on Iran and as well as a 120,000-troop deployment to the Middle East, reports Military Times.
In the first draft of the FY2020 defense budget, Democrats' budget plan includes a 3.1 percent pay raise for troops, reports Military Times, but cut the White House's end-strength request by 2,000 troops.
Pentagon hints at retaliation if the EU attempts to block US companies from a new defense pact, reports Reuters, saying the new pact risks shutting American companies out of defense contracts and undermining NATO.
DoD begins Exercise Northern Edge in Alaska, reports Defense News. Approximately 250 aircraft from the Air Force, Marines, Navy, National Guard, and five naval ships along with 10,000 US military personnel are participating in the 12-day joint training exercise.
Birth control policies at boot camp affect military readiness, study finds, reports Military.com. Army soldiers have more babies in their first two years of enlistment and miss more work as a result than do women in the other military branches, a finding researchers say is linked to different service policies on birth control education and access at basic training.
SECNAV censures two captains as part of "Fat Leonard" investigation, reports USNI News. The secretary of the Navy administratively punished a senior captain described as a linchpin in a corruption scandal that defrauded the US government of more than $34.8 million and ensnared dozens of commanders and officials in the bribery and fraud investigation.
T-45C Goshawk Training jet crash injures two, reports Navy Times. The Navy instructor and a student safely ejected from the aircraft and were taken to a local hospital after the crash last Friday at Naval Air Station Kingsville, TX.
Naval Academy plebes will take part in Sea Trials, reports Navy Times. The Naval Academy's freshmen class will be going through the annual 14-hour series of drills modeled after the Marine Corps' Crucible and the Navy's Battle Stations recruit programs. The exercise is considered a culmination of a midshipman's first year at the academy. It is designed to test teamwork and reinforce their bonds as a company and a class.
The Marine Corps is working on an advanced reconnaissance drone to launch from the MV-22 Osprey, reports Marine Corps Times. The 6-foot-long drone can fly at an altitude of 25,000 feet and carry a payload of up to 4.4 pounds, potentially providing other kinetic strike capabilities or sensors.
A DOD contractor's 9,400 percent profit on a half-inch pin, reports Bloomberg, has the Pentagon weighing legislation to give contracting officers the power to demand back-up data on spare parts costs after its inspector general said TransDigm Group Inc. could be paid about 9,400 percent in excess profit for a half-inch metal pin. A review found potential excess profits for 98 of 100 parts sampled.
Jacobs Government Services Co., Arlington, Virginia, was awarded a $15,394,247 firm-fixed-price contract for architect and engineering services. Bids were solicited via the internet with six received. Work will be performed in Arlington, Virginia, with an estimated completion date of June 14, 2026. Fiscal 2019 military construction; and other funds in the amount of $15,394,247 were obligated at the time of the award. US Army Corps of Engineers, Pyeongtaek, Republic of Korea, is the contracting activity (W912UM-19-C-0006).
The Boeing Co., Huntington Beach, California, is awarded a $13,353,939 cost-plus-fixed-fee modification to a previously-awarded contract (N00024-18-C-4103) for design agent and technical services for the AN/USQ-82(V) family of systems consisting of the Data Multiplex System, Fiber Optic Data Multiplex System, and Gigabit Ethernet Data Multiplex System. The Boeing Co., as the AN/USQ-82(V) design agent, will provide advanced and highly specialized technical engineering to assist with system sustainment; cybersecurity enhancement; configuration management; development, qualification and integration of systems; testing and technical support to manufacturing and repair vendors. The AN/USQ-82(V) systems are installed and deployed on Navy DDG 51-class destroyers, in Missile Defense Agency Aegis Ashore ballistic missile defense systems, on ships of three countries under Foreign Military Sales (FMS) cases, in various Navy and FMS land-based test sites, and are also being installed on new-construction LHA 8 and new FMS Japan and Korean DDGs. This contract involves foreign military sales to Korea and Japan. Work will be performed in Huntington Beach, California (69 percent); Arlington, Virginia (19 percent); Pascagoula, Mississippi (5 percent); Bath, Maine (5 percent); Seattle, Washington (1 percent); and Philadelphia, Pennsylvania (1 percent), and is expected to be completed by May 2020. Fiscal 2019 shipbuilding and conversion (Navy); fiscal 2019 other procurement (Navy); fiscal 2019 operations and maintenance (Navy); fiscal 2019 research, development, test, and evaluation (Navy); and Foreign Military Sales funding in the amount of $13,353,939 will be obligated at time of award and will not expire at the end of the current fiscal year. The Naval Sea Systems Command, Washington, District of Columbia, is the contracting activity.
Everest Consulting Group, Bethesda, Maryland, was awarded a $10,926,508 firm-fixed-price contract (HHM402-19-C-0029) for the Acquire to Retire Program Management Office Support Services for property, plant, and equipment (PP&E) requirement. This contract has a one-year base period and four one-year options, with an estimated completion date of May 14, 2024, if all options are exercised. Through this award, DIA's Office of Logistics and Global Readiness will obtain on-site subject matter expertise to provide financial transactions support for the Defense Travel System, and to develop and improve business practices and internal controls to achieve and sustain an unqualified audit opinion for PP&E. Work is to be performed in the National Capital Region. Fiscal 2019 operations and maintenance funds in the amount of $1,463,234 are being obligated at time of award. This was an 8(a) set-aside acquisition and four offers were received. The Virginia Contracting Activity, Washington, District of Columbia, is the contracting activity.
Sign up for Morning Coffee to be delivered to your inbox Monday through Thursday. Stay ahead of the curve with news around the internet concerning the Naval Air Station Patuxent River economic community.
Subscribe to Morning Coffee
Filed under Morning Coffee · Tagged with Exercise Northern Edge, Martha McSally, military sexual assault, MV-22 Osprey, Naval Academy, Northern Edge, T-45C Goshawk, troop pay raise


Although I can be a bit picky with some sauces that I prefer to make them from scratch, I am not averse to using products straight out of a jar. This Chinese-style fried fish with black beans and chili sauce was cooked by combining two Lee Kum Kee sauces. No, this is NOT a sponsored post. I just happen to be a fan of Lee Kum Kee products.
What Lee Kum Kee sauces? Black Bean Garlic Sauce and Chili Garlic Sauce. I simply fried a whole fish then poured the mixed sauces over it.
Just like that? Mix the sauces from the jars and pour over the fried fish? Well, no. Had I simply stirred the two sauces together, the result would have been too thick and not pourable at all. And the sauce would have been much too salty too. The mixture of sauces was diluted and other seasonings were added for balance. Sauteed mushrooms, bell pepper and scallions went on top of the fish too.
What does the dish taste like? Oh, beautiful. To say salty and spicy would be doing it an injustice. Black beans are salty but we're talking fermented black beans here which are salty with a unique depth and richness. The chili garlic sauce packs some heat but not in an overwhelming way. The mixed sauce that went over the fish was red and golden and brownish, and the the unusual hue enticed the eyes. And the flavor? So complex that anyone who did not see how it was prepared would have a hard time guessing what was in it.
What about the fish? What fish is good for this dish? I used white snapper but any firm and fleshy fish should be good. Just make sure to season it well. Sprinkling flour all over it prior to frying helps make a wonderful crisp crust.
It's funny that I wasn't even planning on posting a recipe for this dish. When I started cooking it, I wasn't very hopeful. I had a lovely fish but only odds and ends from the fridge to go with it. A few stalks of scallions, a lone red bell pepper, some leftover mushrooms that were literally begging to be cooked because they would soon be past their prime.
I wanted something different from all the other fish recipes in the past but I wasn't all that sure how to accomplish that with the not-so-inspiring collection of odds and ends. But then, you know, the shelves of the door of our fridge are lined with bottles and jars of sauces and condiments. It took me only half a minute to decide which to throw together.
When the dish was done, Alex (who had been helping me with the prepping) exclaimed, "Mommy, it's so pretty!" Oh, that made me smile. Yes, the dish is so pretty with the richly-colored sauce and the vegetables with their Christmassy colors. More importantly, it was so good that we were spooning the sauce over our rice. Who'd have imagined it would come out that way? Sometimes, I get so lucky.


text:
Q: Multiple slides in one page - w3schools sample I edited the w3schools example to put multiple sliders on a web page. The example shows two slides. I added a third. Now, the arrow on the right side shows all three images on all three sliders, but the arrow on the left side only shows two images.
w3schools Multi Sliders:
https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_slideshow_multiple
This is the original code plus the addition of a third slider.
html>
<meta name="viewport" content="width=device-width, initial-scale=1">

Multiple Slideshows

Slideshow 1:

  ❮
  ❯

Slideshow 2:

  ❮
  ❯

Slideshow 3:

  ❮
  ❯

So, I need the left arrow to show the 3 images, not 2 only.

redpajama_set_name: RedPajamaStackExchange


text:
Entries open for the 10th edition of Jagran Film Festival
Entertainment International News
Entries for the much-awaited 10th edition of the Jagran Film Festival are now open. With its 10th edition, the World's largest travelling film festival completes a decade of incessantly carrying the 'Cinematic Culture' from metro cities to smaller cities of India thereby spreading and promoting the appreciation of the cinematic art at the grass root level. The extravaganza is all set to travel to 18 cities starting from New Delhi from 18th July.
The festival invites filmmakers to submit entries on the website www.jff.co.in by 15th June 2019 for Delhi, however the entries will remain opened till 1stSeptember 2019 for other cities including Mumbai chapter.
Apart from the categories like World Cinema, Indian Showcase, Jagran Shorts and Jagran Docs, this year OTT has been added as a new category. Films can be submitted under the categories like Indian Showcase, World Cinema, Jagran Shots /docs and OTT. A multi-layered preview process followed by JFF invites entries with no submission fee.
The festival in its 10th year has grown to become the world's largest travelling film festival that screens films across the genres from around the globe. Jagran Film Festival celebrates 10 years of glorious journey with exciting new additions this year.
This year's festival will include new categories in Programming and Awards. 10th Jagran Film Festival will celebrate two Retrospectives -World and India. This year will also include "Icon of the World Cinema" as well in addition to "Icon of Indian Cinema".
Rajeev Masand, a noted film critic & international entertainment reporter from the Oscars, the Golden Globes, the Cannes and the Berlin Film Festival who has interviewed Hollywood heavyweights like Steven Spielberg, George Lucas, James Cameron, Tom Cruise, Tom Hanks, Julia Roberts, Daniel Craig and others is this year's Festival consultant.
10 edition of JFF will also have separate curation for India and International lead by Udita Jhunjhunwala, a well-established entertainment writer, film critic & contributing authors to Bollywood's Top 20 Stars (published by Penguin) and Aseem Chhabra, festival director of the New York Indian Film Festival and author of two biographies – Shashi Kapoor: The Householder, the Star and Priyanka Chopra: The Incredible Journey of a Global Bollywood Star.
The film festival will kick start from New Delhi on 18th July and will travel to Lucknow, Kanpur, Allahabad, Varanasi, Gorakhpur, Patna, Jamshedpur, Ranchi, Bhopal, Indore, Dehradun, Meerut, Hissar, Jalandhar, Agra, Raipur, and finally conclude on 29th September 2019 in Mumbai.
JFF provides filmmakers an audience of around 55,000 people and travels to 18 towns with 400+ screenings.
Basant Rathore, Senior Vice President – Strategy and Brand Development, Jagran Prakashan Ltd., says, "JFF has come a long way over the last 9 years. We have discovered many filmmakers, and films, and have prepared audiences to receive and appreciate world-class cinema. With the phenomenal response we received last year, we are determined to travel farther and spread the wonderful stories filmmakers have to tell. This year, we have introduced new categories in an effort to be more diverse and inclusive of all genres. The culture of appreciating great films and doing it as a community no matter where we come from is what the Jagran Film Festival is all about."
Microsoft announces 'Week of AI' to upskill developers and organizations on AI
World TV Premiere of "Adventures of Jojo" on 19th May on Jalsha Movies
Curate a Special Thali for your Mother at 6 Ballygunge Place Thali this Mother's Day
May 10, 2019 May 10, 2019 admin
Builders Association of India announces to take up issues affecting Construction Industry
India's top Dialysis & Kidney Care provider Nephroplus strengthens its presence in Kolkata


text:
Learn to Love like the French with these 5 Books
Catherine Rickman
With Valentine's Day approaching, it's not surprising that you've got amour on the brain. Maybe you're deeply ensconced in your Queen Size "home office" with your fiancé, or maybe you're thinking about preemptively deleting your ex's number just in case you have one too many at your Galentine's Zoom brunch. Either way, here are some books exploring the French approach to love, from the experts, the expats, and the Frenchies themselves.
1. Amour: How the French Talk About Love
A post shared by AMOUR de Stefania Rousselle (@stefaniarousselle)
The French-American Pulitzer-nominated journalist Stefania Rousselle has covered some of France's most difficult experiences in recent history. Yet out of horror, she was inspired to write a book about love. Amour: How the French Talk About Love is a HONY-style collection of essays and photographs about love, based on nearly a hundred interviews with French people of ages, races, sexualities, and relationship statuses. Rousselle asked them one question: "What is love?" What resulted was a vast and diverse quilt of experiences, happy and sad and complex and completely human. For purchase here.
2. Lust in Translation
You may know Pamela Druckerman from her bestseller Bringing Up Bébé, a guide to parenting like the French that stoked a global conversation about child rearing. Her other books on parenting include Bébé Day by Day and French Children Don't Throw Food. But her earliest book, Lust in Translation, focuses on a very different topic: infidelity. Druckerman goes all over the world and speaks to sex researchers, sociologists, therapists, and everyday citizens to find out why people cheat. Though she visits several countries, including Russia, Japan, and South Africa, there is a substantial chapter on the French attitude towards having a little something on the side. For purchase here.
3. When in French: Love in a Second Language
A post shared by Lauren Collins (@laurenzcollins)
New Yorker staff writer Lauren Collins didn't expect to wind up a Parisian-in-training. But after working as a journalist in New York and Buenos Aires, she followed her French husband-to-be to the City of Lights. When in French is her memoir about conjugal living and conjugations, a relatable relationship guide for anyone who has ever dated outside their native language. She talks about the everyday struggles of adapting to life in a foreign country in an honest and funny way. But now, with a French husband, two French children, and both feet planted firmly on Gallic soil, she reminds us why, at the end of the day, it just might be worth it. For purchase here.
5. How to Be Parisian Wherever You Are: Love, Style, and Bad Habits
A post shared by Alina 🇨🇦 books & bujo (@missalinaballerina)
Written as a collaboration between four remarkable parisiennes (Anne Berest, Audrey Diwan, Caroline de Maigret, and Sophie Mas), How to Be Parisian Wherever You Are is an intimate, irreverent look at the contradictions of modern French life. It's a somewhat satirical take on the self-help genre (including a chapter on how to make your lover think you're having an affair, and another titled "Parisian Snobbisms"), but it's a fun way to gobble up an afternoon on your terrace while sipping two to six espressos. For purchase here.
5. Love Parisienne: The French Woman's Guide to Love and Passion
Written by three parisiennes: Florence Besson, Claire Steinlen, and the aptly-named Eva Amor, Love Parisienne is a lighthearted relationship guide that covers everything from what to wear on a first date, to what to do if you wind up in an affair with a married man. It comes complete with song lists, movie recs, and romantic Parisian haunts to check out. For purchase here.
8 Books for The Francophile to Lose Themselves in This Winter
Love in France: The Peach Pie
@FedByAFrenchman: How to Hack the Marché
HÉLÈNE CARVALLO AND ANNE-CAROLE PLAÇAIS: YOUR PERSONAL EXPERTS IN INTERNATIONAL FAMILY LAW
Avocats / Notaires
Gift French Wines for the Holidays, delivered to your door
Le Petit Jardin (LPJ): a unique French Immersion Program for young children
BILINGUAL BEBE: AN ONLINE AFTER-SCHOOL TO LEARN FRENCH
Walkner Condon Financial Advisors: Financial Planning & Investing for Americans Abroad & U.S. Expats
Alliance Française Silicon Valley : immerse yourself in French culture
Chic Villas: luxury villas and chateaux rentals in France and Spain
Advertissements
Advertising Sales Manager (France)


text:
import yaml
import jsonschema
import pkg_resources
import os
import shutil
import pytest

from jsonschema.exceptions import ValidationError

class BaseSchemaValidationTest(object):
    def _test_validate(self, schema, expect_failure, input_files, input):
        """validates input yaml against schema.

        :param schema: schema yaml file
        :param expect_failure: should the validation pass or fail.
        :param input_files: pytest fixture used to access the test input files
        :param input: test input yaml doc filename"""
        schema_dir = pkg_resources.resource_filename('drydock_provisioner',
                                                     'schemas')
        schema_filename = os.path.join(schema_dir, schema)
        schema_file = open(schema_filename, 'r')
        schema = yaml.safe_load(schema_file)

        input_file = input_files.join(input)
        instance_file = open(str(input_file), 'r')
        instance = yaml.safe_load(instance_file)

        if expect_failure:
            with pytest.raises(ValidationError):
                jsonschema.validate(instance['spec'], schema['data'])
        else:
            jsonschema.validate(instance['spec'], schema['data'])

class TestValidation(BaseSchemaValidationTest):
    def test_validate_baremetalNode(self, input_files):
        self._test_validate('baremetalNode.yaml', False, input_files,
                            "baremetalNode.yaml")

    def test_validate_baremetalNode2(self, input_files):
        self._test_validate('baremetalNode.yaml', False, input_files,
                            "baremetalNode2.yaml")

    def test_invalidate_baremetalNode(self, input_files):
        self._test_validate('baremetalNode.yaml', True, input_files,
                            "invalid_baremetalNode.yaml")

    def test_invalidate_baremetalNode2(self, input_files):
        self._test_validate('baremetalNode.yaml', True, input_files,
                            "invalid_baremetalNode2.yaml")

    def test_validate_hardwareProfile(self, input_files):
        self._test_validate('hardwareProfile.yaml', False, input_files,
                            "hardwareProfile.yaml")

    def test_invalidate_hardwareProfile(self, input_files):
        self._test_validate('hardwareProfile.yaml', True, input_files,
                            "invalid_hardwareProfile.yaml")

    def test_validate_hostProfile(self, input_files):
        self._test_validate('hostProfile.yaml', False, input_files,
                            "hostProfile.yaml")

    def test_validate_hostProfile2(self, input_files):
        self._test_validate('hostProfile.yaml', False, input_files,
                            "hostProfile2.yaml")

    def test_invalidate_hostProfile(self, input_files):
        self._test_validate('hostProfile.yaml', True, input_files,
                            "invalid_hostProfile.yaml")

    def test_invalidate_hostProfile2(self, input_files):
        self._test_validate('hostProfile.yaml', True, input_files,
                            "invalid_hostProfile2.yaml")

    def test_validate_network(self, input_files):
        self._test_validate('network.yaml', False, input_files, "network.yaml")

    def test_validate_network2(self, input_files):
        self._test_validate('network.yaml', False, input_files,
                            "network2.yaml")

    def test_validate_network3(self, input_files):
        self._test_validate('network.yaml', False, input_files,
                            "network3.yaml")

    def test_validate_network4(self, input_files):
        self._test_validate('network.yaml', False, input_files,
                            "network4.yaml")

    def test_validate_network5(self, input_files):
        self._test_validate('network.yaml', False, input_files,
                            "network5.yaml")

    def test_invalidate_network(self, input_files):
        self._test_validate('network.yaml', True, input_files,
                            "invalid_network.yaml")

    def test_invalidate_network2(self, input_files):
        self._test_validate('network.yaml', True, input_files,
                            "invalid_network2.yaml")

    def test_invalidate_network3(self, input_files):
        self._test_validate('network.yaml', True, input_files,
                            "invalid_network3.yaml")

    def test_invalidate_network4(self, input_files):
        self._test_validate('network.yaml', True, input_files,
                            "invalid_network4.yaml")

    def test_invalidate_network5(self, input_files):
        self._test_validate('network.yaml', True, input_files,
                            "invalid_network5.yaml")

    def test_validate_networkLink(self, input_files):
        self._test_validate('networkLink.yaml', False, input_files,
                            "networkLink.yaml")

    def test_validate_networkLink2(self, input_files):
        self._test_validate('networkLink.yaml', False, input_files,
                            "networkLink2.yaml")

    def test_validate_networkLink3(self, input_files):
        self._test_validate('networkLink.yaml', False, input_files,
                            "networkLink3.yaml")

    def test_invalidate_networkLink(self, input_files):
        self._test_validate('networkLink.yaml', True, input_files,
                            "invalid_networkLink.yaml")

    def test_invalidate_networkLink2(self, input_files):
        self._test_validate('networkLink.yaml', True, input_files,
                            "invalid_networkLink2.yaml")

    def test_invalidate_networkLink3(self, input_files):
        self._test_validate('networkLink.yaml', True, input_files,
                            "invalid_networkLink3.yaml")

    def test_validate_region(self, input_files):
        self._test_validate('region.yaml', False, input_files, "region.yaml")

    def test_invalidate_region(self, input_files):
        self._test_validate('region.yaml', True, input_files,
                            "invalid_region.yaml")

    def test_validate_rack(self, input_files):
        self._test_validate('rack.yaml', False, input_files, "rack.yaml")

    def test_invalidate_rack(self, input_files):
        self._test_validate('rack.yaml', True, input_files,
                            "invalid_rack.yaml")

    @pytest.fixture(scope='module')
    def input_files(self, tmpdir_factory, request):
        tmpdir = tmpdir_factory.mktemp('data')
        samples_dir = os.path.dirname(str(
            request.fspath)) + "/" + "../yaml_samples"
        samples = os.listdir(samples_dir)

        for f in samples:
            src_file = samples_dir + "/" + f
            dst_file = str(tmpdir) + "/" + f
            shutil.copyfile(src_file, dst_file)

        return tmpdir

redpajama_set_name: RedPajamaGithub